#1097944 streamripper: ftbfs with GCC-15

#1097944#5
Date:
2025-02-17 17:55:26 UTC
From:
To:
[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/streamripper_1.64.6-2_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

[...]
   67 | extern void free ();            /* Free malloc'd memory */
      |             ^~~~
lib/argv.c:67:13: note: ‘free’ is declared in header ‘<stdlib.h>’
lib/argv.c:68:14: error: conflicting types for ‘strdup’; have ‘char *(void)’
   68 | extern char *strdup ();         /* Duplicate a string */
      |              ^~~~~~
In file included from lib/argv.c:33:
/usr/include/string.h:187:14: note: previous declaration of ‘strdup’ with type ‘char *(const char *)’
  187 | extern char *strdup (const char *__s)
      |              ^~~~~~
lib/argv.c: In function ‘dupargv’:
lib/argv.c:100:1: warning: old-style function definition [-Wold-style-definition]
  100 | dupargv (argv)
      | ^~~~~~~
lib/argv.c:111:20: error: too many arguments to function ‘malloc’; expected 0, have 1
  111 |   copy = (char **) malloc ((argc + 1) * sizeof (char *));
      |                    ^~~~~~  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/argv.c:65:14: note: declared here
   65 | extern void *malloc ();         /* Standard memory allocater */
      |              ^~~~~~
lib/argv.c:119:20: error: too many arguments to function ‘malloc’; expected 0, have 1
  119 |       copy[argc] = malloc (sizeof (char *) * (len + 1));
      |                    ^~~~~~  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/argv.c:65:14: note: declared here
   65 | extern void *malloc ();         /* Standard memory allocater */
      |              ^~~~~~
lib/argv.c: In function ‘freeargv’:
lib/argv.c:144:6: warning: old-style function definition [-Wold-style-definition]
  144 | void freeargv (vector)
      |      ^~~~~~~~
lib/argv.c:153:11: error: too many arguments to function ‘free’; expected 0, have 1
  153 |           free (*scan);
      |           ^~~~  ~~~~~
lib/argv.c:67:13: note: declared here
   67 | extern void free ();            /* Free malloc'd memory */
      |             ^~~~
lib/argv.c:155:7: error: too many arguments to function ‘free’; expected 0, have 1
  155 |       free (vector);
      |       ^~~~  ~~~~~~
lib/argv.c:67:13: note: declared here
   67 | extern void free ();            /* Free malloc'd memory */
      |             ^~~~
lib/argv.c: In function ‘buildargv’:
lib/argv.c:199:8: warning: old-style function definition [-Wold-style-definition]
  199 | char **buildargv (input)
      |        ^~~~~~~~~
lib/argv.c:230:37: error: too many arguments to function ‘malloc’; expected 0, have 1
  230 |                   nargv = (char **) malloc (maxargc * sizeof (char *));
      |                                     ^~~~~~  ~~~~~~~~~~~~~~~~~~~~~~~~~
lib/argv.c:65:14: note: declared here
   65 | extern void *malloc ();         /* Standard memory allocater */
      |              ^~~~~~
lib/argv.c:235:37: error: too many arguments to function ‘realloc’; expected 0, have 2
  235 |                   nargv = (char **) realloc (argv, maxargc * sizeof (char *));
      |                                     ^~~~~~~  ~~~~
lib/argv.c:66:14: note: declared here
   66 | extern void *realloc ();        /* Standard memory reallocator */
      |              ^~~~~~~
lib/argv.c:309:24: error: too many arguments to function ‘strdup’; expected 0, have 1
  309 |           argv[argc] = strdup (copybuf);
      |                        ^~~~~~  ~~~~~~~
lib/argv.c:68:14: note: declared here
   68 | extern char *strdup ();         /* Duplicate a string */
      |              ^~~~~~
make[2]: *** [Makefile:750: argv.o] Error 1
make[2]: Leaving directory '/build/reproducible-path/streamripper-1.64.6'
make[1]: *** [Makefile:811: all-recursive] Error 1
make[1]: Leaving directory '/build/reproducible-path/streamripper-1.64.6'
make: *** [/usr/share/cdbs/1/class/makefile.mk:77: debian/stamp-makefile-build] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2