#1097148 lam: ftbfs with GCC-15

Package:
src:lam
Source:
src:lam
Submitter:
Matthias Klose
Date:
2025-09-04 22:08:44 UTC
Severity:
normal
Tags:
#1097148#5
Date:
2025-02-17 17:29:56 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/lam_7.1.4-7.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

[...]
then mv -f ".deps/ndi_parse.Tpo" ".deps/ndi_parse.Plo"; else rm -f ".deps/ndi_parse.Tpo"; exit 1; fi
 gcc -DHAVE_CONFIG_H -I. -I. -I../../share/include -I../../share/include -DLAM_BUILDING=1 -D_REENTRANT -O3 -MT ndi_parse.lo -MD -MP -MF .deps/ndi_parse.Tpo -c ndi_parse.c -o ndi_parse.o
if /bin/bash ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../../share/include   -I../../share/include  -DLAM_BUILDING=1 -D_REENTRANT  -O3   -MT ndi_resolve.lo -MD -MP -MF ".deps/ndi_resolve.Tpo" -c -o ndi_resolve.lo ndi_resolve.c; \
then mv -f ".deps/ndi_resolve.Tpo" ".deps/ndi_resolve.Plo"; else rm -f ".deps/ndi_resolve.Tpo"; exit 1; fi
 gcc -DHAVE_CONFIG_H -I. -I. -I../../share/include -I../../share/include -DLAM_BUILDING=1 -D_REENTRANT -O3 -MT ndi_resolve.lo -MD -MP -MF .deps/ndi_resolve.Tpo -c ndi_resolve.c -o ndi_resolve.o
if /bin/bash ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../../share/include   -I../../share/include  -DLAM_BUILDING=1 -D_REENTRANT  -O3   -MT parse_id.lo -MD -MP -MF ".deps/parse_id.Tpo" -c -o parse_id.lo parse_id.c; \
then mv -f ".deps/parse_id.Tpo" ".deps/parse_id.Plo"; else rm -f ".deps/parse_id.Tpo"; exit 1; fi
 gcc -DHAVE_CONFIG_H -I. -I. -I../../share/include -I../../share/include -DLAM_BUILDING=1 -D_REENTRANT -O3 -MT parse_id.lo -MD -MP -MF .deps/parse_id.Tpo -c parse_id.c -o parse_id.o
if /bin/bash ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../../share/include   -I../../share/include  -DLAM_BUILDING=1 -D_REENTRANT  -O3   -MT pdi_parse.lo -MD -MP -MF ".deps/pdi_parse.Tpo" -c -o pdi_parse.lo pdi_parse.c; \
then mv -f ".deps/pdi_parse.Tpo" ".deps/pdi_parse.Plo"; else rm -f ".deps/pdi_parse.Tpo"; exit 1; fi
 gcc -DHAVE_CONFIG_H -I. -I. -I../../share/include -I../../share/include -DLAM_BUILDING=1 -D_REENTRANT -O3 -MT pdi_parse.lo -MD -MP -MF .deps/pdi_parse.Tpo -c pdi_parse.c -o pdi_parse.o
/bin/bash ../../libtool --tag=CC --mode=link gcc  -O3     -o liblamargs.la   all_argv.lo all_opt.lo do_args.lo ndi_parse.lo ndi_resolve.lo parse_id.lo pdi_parse.lo
mkdir .libs
x86_64-linux-gnu-ar cru .libs/liblamargs.a  all_argv.o all_opt.o do_args.o ndi_parse.o ndi_resolve.o parse_id.o pdi_parse.o
x86_64-linux-gnu-ar: `u' modifier ignored since `D' is the default (see `U')
x86_64-linux-gnu-ranlib .libs/liblamargs.a
creating liblamargs.la
(cd .libs && rm -f liblamargs.la && ln -s ../liblamargs.la liblamargs.la)
make[3]: Leaving directory '/build/reproducible-path/lam-7.1.4/share/args'
Making all in boot
make[3]: Entering directory '/build/reproducible-path/lam-7.1.4/share/boot'
if /bin/bash ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../../share/include  -DLAM_SYSCONFDIR="\"/usr/lib/lam/etc\"" -I../../share/include  -DLAM_BUILDING=1 -D_REENTRANT  -O3   -MT app_mgmt.lo -MD -MP -MF ".deps/app_mgmt.Tpo" -c -o app_mgmt.lo app_mgmt.c; \
then mv -f ".deps/app_mgmt.Tpo" ".deps/app_mgmt.Plo"; else rm -f ".deps/app_mgmt.Tpo"; exit 1; fi
 gcc -DHAVE_CONFIG_H -I. -I. -I../../share/include -DLAM_SYSCONFDIR=\"/usr/lib/lam/etc\" -I../../share/include -DLAM_BUILDING=1 -D_REENTRANT -O3 -MT app_mgmt.lo -MD -MP -MF .deps/app_mgmt.Tpo -c app_mgmt.c -o app_mgmt.o
if /bin/bash ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../../share/include  -DLAM_SYSCONFDIR="\"/usr/lib/lam/etc\"" -I../../share/include  -DLAM_BUILDING=1 -D_REENTRANT  -O3   -MT asc_parse.lo -MD -MP -MF ".deps/asc_parse.Tpo" -c -o asc_parse.lo asc_parse.c; \
then mv -f ".deps/asc_parse.Tpo" ".deps/asc_parse.Plo"; else rm -f ".deps/asc_parse.Tpo"; exit 1; fi
 gcc -DHAVE_CONFIG_H -I. -I. -I../../share/include -DLAM_SYSCONFDIR=\"/usr/lib/lam/etc\" -I../../share/include -DLAM_BUILDING=1 -D_REENTRANT -O3 -MT asc_parse.lo -MD -MP -MF .deps/asc_parse.Tpo -c asc_parse.c -o asc_parse.o
if /bin/bash ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../../share/include  -DLAM_SYSCONFDIR="\"/usr/lib/lam/etc\"" -I../../share/include  -DLAM_BUILDING=1 -D_REENTRANT  -O3   -MT asc_run.lo -MD -MP -MF ".deps/asc_run.Tpo" -c -o asc_run.lo asc_run.c; \
then mv -f ".deps/asc_run.Tpo" ".deps/asc_run.Plo"; else rm -f ".deps/asc_run.Tpo"; exit 1; fi
 gcc -DHAVE_CONFIG_H -I. -I. -I../../share/include -DLAM_SYSCONFDIR=\"/usr/lib/lam/etc\" -I../../share/include -DLAM_BUILDING=1 -D_REENTRANT -O3 -MT asc_run.lo -MD -MP -MF .deps/asc_run.Tpo -c asc_run.c -o asc_run.o
if /bin/bash ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../../share/include  -DLAM_SYSCONFDIR="\"/usr/lib/lam/etc\"" -I../../share/include  -DLAM_BUILDING=1 -D_REENTRANT  -O3   -MT asc_schedule.lo -MD -MP -MF ".deps/asc_schedule.Tpo" -c -o asc_schedule.lo asc_schedule.c; \
then mv -f ".deps/asc_schedule.Tpo" ".deps/asc_schedule.Plo"; else rm -f ".deps/asc_schedule.Tpo"; exit 1; fi
 gcc -DHAVE_CONFIG_H -I. -I. -I../../share/include -DLAM_SYSCONFDIR=\"/usr/lib/lam/etc\" -I../../share/include -DLAM_BUILDING=1 -D_REENTRANT -O3 -MT asc_schedule.lo -MD -MP -MF .deps/asc_schedule.Tpo -c asc_schedule.c -o asc_schedule.o
asc_schedule.c: In function ‘asc_schedule’:
asc_schedule.c:39:1: warning: old-style function definition [-Wold-style-definition]
   39 | asc_schedule(applist)
      | ^~~~~~~~~~~~
if /bin/bash ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../../share/include  -DLAM_SYSCONFDIR="\"/usr/lib/lam/etc\"" -I../../share/include  -DLAM_BUILDING=1 -D_REENTRANT  -O3   -MT asc_workdir.lo -MD -MP -MF ".deps/asc_workdir.Tpo" -c -o asc_workdir.lo asc_workdir.c; \
then mv -f ".deps/asc_workdir.Tpo" ".deps/asc_workdir.Plo"; else rm -f ".deps/asc_workdir.Tpo"; exit 1; fi
 gcc -DHAVE_CONFIG_H -I. -I. -I../../share/include -DLAM_SYSCONFDIR=\"/usr/lib/lam/etc\" -I../../share/include -DLAM_BUILDING=1 -D_REENTRANT -O3 -MT asc_workdir.lo -MD -MP -MF .deps/asc_workdir.Tpo -c asc_workdir.c -o asc_workdir.o
if /bin/bash ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../../share/include  -DLAM_SYSCONFDIR="\"/usr/lib/lam/etc\"" -I../../share/include  -DLAM_BUILDING=1 -D_REENTRANT  -O3   -MT bhostparse.lo -MD -MP -MF ".deps/bhostparse.Tpo" -c -o bhostparse.lo bhostparse.c; \
then mv -f ".deps/bhostparse.Tpo" ".deps/bhostparse.Plo"; else rm -f ".deps/bhostparse.Tpo"; exit 1; fi
 gcc -DHAVE_CONFIG_H -I. -I. -I../../share/include -DLAM_SYSCONFDIR=\"/usr/lib/lam/etc\" -I../../share/include -DLAM_BUILDING=1 -D_REENTRANT -O3 -MT bhostparse.lo -MD -MP -MF .deps/bhostparse.Tpo -c bhostparse.c -o bhostparse.o
bhostparse.c: In function ‘bhostparse’:
bhostparse.c:168:44: error: passing argument 2 of ‘al_init’ from incompatible pointer type [-Wincompatible-pointer-types]
  168 |       kvlist[node] = al_init(sizeof(ELEM), comp);
      |                                            ^~~~
      |                                            |
      |                                            int (*)(ELEM *, ELEM *)
In file included from ../../share/include/lam_config.h:623,
                 from ../../share/include/lamnet.h:23,
                 from ../../share/include/boot.h:25,
                 from bhostparse.c:27:
../../share/include/all_list.h:55:64: note: expected ‘int4 (*)(void)’ {aka ‘int (*)(void)’} but argument is of type ‘int (*)(ELEM *, ELEM *)’
   55 | extern LIST             *al_init __ARGS((int4 elemsize, int4 (*comp)()));
      |                                                         ~~~~~~~^~~~~~~
../../share/include/lam_config_bottom.h:333:25: note: in definition of macro ‘__ARGS’
  333 | #define __ARGS(a)       a
      |                         ^
bhostparse.c:55:12: note: ‘comp’ declared here
   55 | static int comp(ELEM *listelem1, ELEM *listelem2);
      |            ^~~~
make[3]: *** [Makefile:453: bhostparse.lo] Error 1
make[3]: Leaving directory '/build/reproducible-path/lam-7.1.4/share/boot'
make[2]: *** [Makefile:409: all-recursive] Error 1
make[2]: Leaving directory '/build/reproducible-path/lam-7.1.4/share'
make[1]: *** [Makefile:446: all-recursive] Error 1
make[1]: Leaving directory '/build/reproducible-path/lam-7.1.4'
make: *** [debian/rules:107: debian/static/usr/lib/lam/lib/liblam.a] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2