Subject: bristol: ftbfs with GCC-15

From: Matthias Klose <[email-masked]>
Date: Mon, 17 Feb 2025 17:05:53 +0000

Package: src:bristol
Version: 0.60.11-5
Severity: important
Tags: sid forky
User: [email-masked]
Usertags: ftbfs-gcc-15

[This bug is NOT targeted to the upcoming trixie release]

Please keep this issue open in the bug tracker for the package it
was filed for.  If a fix in another package is required, please
file a bug for the other package (or clone), and add a block in this
package. Please keep the issue open until the package can be built in
a follow-up test rebuild.

The package fails to build in a test rebuild on at least amd64 with
gcc-15/g++-15, but succeeds to build with gcc-14/g++-14. The
severity of this report will be raised before the forky release.

The full build log can be found at:
http://qa-logs.debian.net/2025/02/16/amd64exp/bristol_0.60.11-5_unstable_gccexp.log.gz
The last lines of the build log are at the end of this report.

To build with GCC 15, either set CC=gcc-15 CXX=g++-15 explicitly,
or install the gcc, g++, gfortran, ... packages from experimental.

  apt-get -t=experimental install g++ 

GCC 15 now defaults to the C23/C++23 standards, exposing many FTBFS.
Other Common build failures are new warnings resulting in build failures
with -Werror turned on, or new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-15/porting_to.html

[...]
audioEngineALSA.c:314:9: error: too many arguments to function ‘bristolfree’; expected 0, have 1
  314 |         bristolfree(pfds);
      |         ^~~~~~~~~~~ ~~~~
./../include/bristol/bristol.h:693:13: note: declared here
  693 | extern void bristolfree();
      |             ^~~~~~~~~~~
audioEngineALSA.c:151:23: warning: variable ‘fragsize’ set but not used [-Wunused-but-set-variable]
  151 |         unsigned long fragsize;
      |                       ^~~~~~~~
audioEngineALSA.c: In function ‘alsaDevOpen’:
audioEngineALSA.c:359:9: error: too many arguments to function ‘bristolfree’; expected 0, have 1
  359 |         bristolfree(output);
      |         ^~~~~~~~~~~ ~~~~~~
./../include/bristol/bristol.h:693:13: note: declared here
  693 | extern void bristolfree();
      |             ^~~~~~~~~~~
audioEngineALSA.c:398:9: error: too many arguments to function ‘bristolfree’; expected 0, have 1
  398 |         bristolfree(audioDev->fragBuf);
      |         ^~~~~~~~~~~ ~~~~~~~~~~~~~~~~~
./../include/bristol/bristol.h:693:13: note: declared here
  693 | extern void bristolfree();
      |             ^~~~~~~~~~~
audioEngineALSA.c:400:38: error: too many arguments to function ‘bristolmalloc’; expected 0, have 1
  400 |         audioDev->fragBuf = (char *) bristolmalloc(audioDev->fragSize);
      |                                      ^~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
./../include/bristol/bristol.h:691:15: note: declared here
  691 | extern void * bristolmalloc();
      |               ^~~~~~~~~~~~~
audioEngineALSA.c:326:13: warning: variable ‘err’ set but not used [-Wunused-but-set-variable]
  326 |         int err;
      |             ^~~
audioEngineALSA.c: In function ‘audioWrite’:
audioEngineALSA.c:488:1: warning: old-style function definition [-Wold-style-definition]
  488 | audioWrite(audioDev, buffer, count)
      | ^~~~~~~~~~
audioEngineALSA.c: In function ‘audioRead’:
audioEngineALSA.c:540:1: warning: old-style function definition [-Wold-style-definition]
  540 | audioRead(audioDev, buffer, count)
      | ^~~~~~~~~
audioEngineOSS.c: In function ‘ossAudioInit’:
audioEngineOSS.c:49:1: warning: old-style function definition [-Wold-style-definition]
   49 | ossAudioInit(audioDev, devID, fragSize)
      | ^~~~~~~~~~~~
audioEngineOSS.c:71:17: error: too many arguments to function ‘bristolfree’; expected 0, have 1
   71 |                 bristolfree(audioDev->fragBuf);
      |                 ^~~~~~~~~~~ ~~~~~~~~~~~~~~~~~
In file included from audioEngineOSS.c:43:
./../include/bristol/bristol.h:693:13: note: declared here
  693 | extern void bristolfree();
      |             ^~~~~~~~~~~
audioEngineOSS.c:233:46: error: too many arguments to function ‘bristolmalloc’; expected 0, have 1
  233 |                 audioDev->fragBuf = (char *) bristolmalloc(audioDev->fragSize);
      |                                              ^~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
./../include/bristol/bristol.h:691:15: note: declared here
  691 | extern void * bristolmalloc();
      |               ^~~~~~~~~~~~~
audioEngineOSS.c: In function ‘checkAudioCaps2’:
audioEngineOSS.c:253:1: warning: old-style function definition [-Wold-style-definition]
  253 | checkAudioCaps2(audioDev, devID, fd)
      | ^~~~~~~~~~~~~~~
make[3]: *** [Makefile:431: audioEngineALSA.o] Error 1
make[3]: *** [Makefile:431: audioEngineOSS.o] Error 1
make[3]: Leaving directory '/build/reproducible-path/bristol-0.60.11/libbristolaudio'
make[2]: *** [Makefile:451: all-recursive] Error 1
make[2]: Leaving directory '/build/reproducible-path/bristol-0.60.11'
make[1]: *** [Makefile:383: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/bristol-0.60.11'
dh_auto_build: error: make -j8 returned exit code 2
make: *** [debian/rules:14: binary] Error 255
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2