#1097997 tiger: ftbfs with GCC-15

Package:
src:tiger
Source:
src:tiger
Submitter:
Matthias Klose
Date:
2025-09-04 22:11:15 UTC
Severity:
normal
Tags:
#1097997#5
Date:
2025-02-17 17:57:10 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/tiger_3.2.4~rc1-3.4_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

[...]
  170 | void MD5Init (context)
      |      ^~~~~~~
md5.c:472:18: error: too many arguments to function ‘MD5Update’; expected 0, have 3
  472 | #define MDUpdate MD5Update
      |                  ^~~~~~~~~
md5.c:597:4: note: in expansion of macro ‘MDUpdate’
  597 |    MDUpdate (&context, buffer, len);
      |    ^~~~~~~~
md5.c:186:6: note: declared here
  186 | void MD5Update (context, input, inputLen)
      |      ^~~~~~~~~
md5.c:473:17: error: too many arguments to function ‘MD5Final’; expected 0, have 2
  473 | #define MDFinal MD5Final
      |                 ^~~~~~~~
md5.c:598:2: note: in expansion of macro ‘MDFinal’
  598 |  MDFinal (digest, &context);
      |  ^~~~~~~
md5.c:228:6: note: declared here
  228 | void MD5Final (digest, context)
      |      ^~~~~~~~
md5.c:603:2: error: too many arguments to function ‘MDPrint’; expected 0, have 1
  603 |  MDPrint (digest);
      |  ^~~~~~~  ~~~~~~
md5.c:455:13: note: declared here
  455 | static void MDPrint PROTO_LIST ((unsigned char [16]));
      |             ^~~~~~~
md5.c: In function ‘MDFilter’:
md5.c:471:16: error: too many arguments to function ‘MD5Init’; expected 0, have 1
  471 | #define MDInit MD5Init
      |                ^~~~~~~
md5.c:616:3: note: in expansion of macro ‘MDInit’
  616 |   MDInit (&context);
      |   ^~~~~~
md5.c:170:6: note: declared here
  170 | void MD5Init (context)
      |      ^~~~~~~
md5.c:472:18: error: too many arguments to function ‘MD5Update’; expected 0, have 3
  472 | #define MDUpdate MD5Update
      |                  ^~~~~~~~~
md5.c:618:2: note: in expansion of macro ‘MDUpdate’
  618 |  MDUpdate (&context, buffer, len);
      |  ^~~~~~~~
md5.c:186:6: note: declared here
  186 | void MD5Update (context, input, inputLen)
      |      ^~~~~~~~~
md5.c:473:17: error: too many arguments to function ‘MD5Final’; expected 0, have 2
  473 | #define MDFinal MD5Final
      |                 ^~~~~~~~
md5.c:619:3: note: in expansion of macro ‘MDFinal’
  619 |   MDFinal (digest, &context);
      |   ^~~~~~~
md5.c:228:6: note: declared here
  228 | void MD5Final (digest, context)
      |      ^~~~~~~~
md5.c:621:3: error: too many arguments to function ‘MDPrint’; expected 0, have 1
  621 |   MDPrint (digest);
      |   ^~~~~~~  ~~~~~~
md5.c:455:13: note: declared here
  455 | static void MDPrint PROTO_LIST ((unsigned char [16]));
      |             ^~~~~~~
md5.c: In function ‘MDPrint’:
md5.c:627:13: warning: old-style function definition [-Wold-style-definition]
  627 | static void MDPrint (digest)
      |             ^~~~~~~
make[2]: *** [Makefile:35: md5] Error 1
make[2]: Leaving directory '/build/reproducible-path/tiger-3.2.4~rc1/c'
make[1]: *** [Makefile:182: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/tiger-3.2.4~rc1'
make: *** [debian/rules:23: build-stamp] Error 2
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2

#1097997#10
Date:
2025-05-11 23:09:45 UTC
From:
To:
control: tags -1 + patch
thanks

The failure is because in c/md5.c the PROTO_LIST macro removes the
arguments unless PROTOTYPES is defined as 1. this means that functions
are being declared as having
no arguments, -- gcc-15 no longer supports this.

There are also a lot of warnings about (very) old-school definitions
that have the type not in the brackets. these are now warned about, so
this patch fixes those as well.

(you might get away with only the first hunk, but there will then be
lots of warnings about very old ways of declaring arguments).


Hope that helps (nb:  the git repository is missing around 2 years of
NMUs, including the addition of 'Rules-Requires-Root: binary-targets'
which is needed to make it build).