Subject: freecontact: ftbfs with GCC-15

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

Package: src:freecontact
Version: 1.0.21-14
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/freecontact_1.0.21-14_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

[...]
type lookup cache used 1228/65536 hits=6357 misses=1230
symbol lookup cache used 1006/65536 hits=8467 misses=1006
finished...
make[2]: Leaving directory '/build/reproducible-path/freecontact-1.0.21/lib'
make[1]: Leaving directory '/build/reproducible-path/freecontact-1.0.21'
   dh_auto_build
	make -j8
make[1]: Entering directory '/build/reproducible-path/freecontact-1.0.21'
Making all in lib
make[2]: Entering directory '/build/reproducible-path/freecontact-1.0.21/lib'
make  all-am
make[3]: Entering directory '/build/reproducible-path/freecontact-1.0.21/lib'
/bin/bash ../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.   -Wdate-time -D_FORTIFY_SOURCE=2 -fopenmp -Wall -fvisibility=hidden -falign-functions -falign-jumps -falign-labels -falign-loops -fbit-tests -fbranch-count-reg -fcaller-saves -fcode-hoisting -fcombine-stack-adjustments -fcompare-elim -fcprop-registers -fcrossjumping -fcse-follow-jumps -fdefer-pop -fdevirtualize -fdevirtualize-speculatively -fdse -fexpensive-optimizations -fext-dce -fforward-propagate -fgcse -fgcse-after-reload -fguess-branch-probability -fhoist-adjacent-loads -fif-conversion -fif-conversion2 -findirect-inlining -finline -finline-functions -finline-functions-called-once -finline-small-functions -fipa-bit-cp -fipa-cp -fipa-cp-clone -fipa-icf -fipa-icf-functions -fipa-icf-variables -fipa-modref -fipa-profile -fipa-pure-const -fipa-ra -fipa-reference -fipa-reference-addressable -fipa-sra -fipa-vrp -fisolate-erroneous-paths-dereference -fjump-tables -flate-combine-instructions -floop-interchange -floop-unroll-and-jam -flra-remat -fmove-loop-invariants -fmove-loop-stores -fomit-frame-pointer -foptimize-crc -foptimize-sibling-calls -foptimize-strlen -fpartial-inlining -fpeel-loops -fpeephole2 -fpredictive-commoning -free -freorder-blocks -freorder-blocks-and-partition -freorder-functions -frerun-cse-after-loop -fschedule-insns2 -fshrink-wrap -fsplit-loops -fsplit-paths -fsplit-wide-types -fssa-phiopt -fstore-merging -fstrict-aliasing -fthread-jumps -ftoplevel-reorder -ftree-bit-ccp -ftree-builtin-call-dce -ftree-ccp -ftree-ch -ftree-coalesce-vars -ftree-copy-prop -ftree-dce -ftree-dominator-opts -ftree-dse -ftree-fre -ftree-loop-distribute-patterns -ftree-loop-distribution -ftree-loop-vectorize -ftree-partial-pre -ftree-pre -ftree-pta -ftree-sink -ftree-slp-vectorize -ftree-slsr -ftree-sra -ftree-switch-conversion -ftree-tail-merge -ftree-ter -ftree-vrp -funreachable-traps -funroll-completely-grow-size -funroll-loops -funswitch-loops -fversion-loops-for-strides +  -munroll-only-small-loops   		[enabled] -ffast-math -funroll-loops -ftree-vectorizer-verbose=0 -pthread -g -O2 -ffile-prefix-map=/build/reproducible-path/freecontact-1.0.21=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -c -o libfreecontact_la-freecontact.lo `test -f 'freecontact.cpp' || echo './'`freecontact.cpp
/bin/bash ../libtool  --tag=FC   --mode=compile gfortran  -fvisibility=hidden -falign-functions -falign-jumps -falign-labels -falign-loops -fbit-tests -fbranch-count-reg -fcaller-saves -fcode-hoisting -fcombine-stack-adjustments -fcompare-elim -fcprop-registers -fcrossjumping -fcse-follow-jumps -fdefer-pop -fdevirtualize -fdevirtualize-speculatively -fdse -fexpensive-optimizations -fext-dce -fforward-propagate -fgcse -fgcse-after-reload -fguess-branch-probability -fhoist-adjacent-loads -fif-conversion -fif-conversion2 -findirect-inlining -finline -finline-functions -finline-functions-called-once -finline-small-functions -fipa-bit-cp -fipa-cp -fipa-cp-clone -fipa-icf -fipa-icf-functions -fipa-icf-variables -fipa-modref -fipa-profile -fipa-pure-const -fipa-ra -fipa-reference -fipa-reference-addressable -fipa-sra -fipa-vrp -fisolate-erroneous-paths-dereference -fjump-tables -flate-combine-instructions -floop-interchange -floop-unroll-and-jam -flra-remat -fmove-loop-invariants -fmove-loop-stores -fomit-frame-pointer -foptimize-crc -foptimize-sibling-calls -foptimize-strlen -fpartial-inlining -fpeel-loops -fpeephole2 -fpredictive-commoning -free -freorder-blocks -freorder-blocks-and-partition -freorder-functions -frerun-cse-after-loop -fschedule-insns2 -fshrink-wrap -fsplit-loops -fsplit-paths -fsplit-wide-types -fssa-phiopt -fstore-merging -fstrict-aliasing -fthread-jumps -ftoplevel-reorder -ftree-bit-ccp -ftree-builtin-call-dce -ftree-ccp -ftree-ch -ftree-coalesce-vars -ftree-copy-prop -ftree-dce -ftree-dominator-opts -ftree-dse -ftree-fre -ftree-loop-distribute-patterns -ftree-loop-distribution -ftree-loop-vectorize -ftree-partial-pre -ftree-pre -ftree-pta -ftree-sink -ftree-slp-vectorize -ftree-slsr -ftree-sra -ftree-switch-conversion -ftree-tail-merge -ftree-ter -ftree-vrp -funreachable-traps -funroll-completely-grow-size -funroll-loops -funswitch-loops -fversion-loops-for-strides +  -munroll-only-small-loops   		[enabled] -ffast-math -funroll-loops -ftree-vectorizer-verbose=0 -pthread -g -O2 -ffile-prefix-map=/build/reproducible-path/freecontact-1.0.21=. -fstack-protector-strong -fstack-clash-protection -fcf-protection -c -o libfreecontact_la-glassofast-real.lo `test -f 'glassofast-real.f90' || echo './'`glassofast-real.f90
libtool: compile:  gfortran -fvisibility=hidden -falign-functions -falign-jumps -falign-labels -falign-loops -fbit-tests -fbranch-count-reg -fcaller-saves -fcode-hoisting -fcombine-stack-adjustments -fcompare-elim -fcprop-registers -fcrossjumping -fcse-follow-jumps -fdefer-pop -fdevirtualize -fdevirtualize-speculatively -fdse -fexpensive-optimizations -fext-dce -fforward-propagate -fgcse -fgcse-after-reload -fguess-branch-probability -fhoist-adjacent-loads -fif-conversion -fif-conversion2 -findirect-inlining -finline -finline-functions -finline-functions-called-once -finline-small-functions -fipa-bit-cp -fipa-cp -fipa-cp-clone -fipa-icf -fipa-icf-functions -fipa-icf-variables -fipa-modref -fipa-profile -fipa-pure-const -fipa-ra -fipa-reference -fipa-reference-addressable -fipa-sra -fipa-vrp -fisolate-erroneous-paths-dereference -fjump-tables -flate-combine-instructions -floop-interchange -floop-unroll-and-jam -flra-remat -fmove-loop-invariants -fmove-loop-stores -fomit-frame-pointer -foptimize-crc -foptimize-sibling-calls -foptimize-strlen -fpartial-inlining -fpeel-loops -fpeephole2 -fpredictive-commoning -free -freorder-blocks -freorder-blocks-and-partition -freorder-functions -frerun-cse-after-loop -fschedule-insns2 -fshrink-wrap -fsplit-loops -fsplit-paths -fsplit-wide-types -fssa-phiopt -fstore-merging -fstrict-aliasing -fthread-jumps -ftoplevel-reorder -ftree-bit-ccp -ftree-builtin-call-dce -ftree-ccp -ftree-ch -ftree-coalesce-vars -ftree-copy-prop -ftree-dce -ftree-dominator-opts -ftree-dse -ftree-fre -ftree-loop-distribute-patterns -ftree-loop-distribution -ftree-loop-vectorize -ftree-partial-pre -ftree-pre -ftree-pta -ftree-sink -ftree-slp-vectorize -ftree-slsr -ftree-sra -ftree-switch-conversion -ftree-tail-merge -ftree-ter -ftree-vrp -funreachable-traps -funroll-completely-grow-size -funroll-loops -funswitch-loops -fversion-loops-for-strides + -munroll-only-small-loops "[enabled]" -ffast-math -funroll-loops -ftree-vectorizer-verbose=0 -pthread -g -O2 -ffile-prefix-map=/build/reproducible-path/freecontact-1.0.21=. -fstack-protector-strong -fstack-clash-protection -fcf-protection -c glassofast-real.f90  -fPIC -o .libs/libfreecontact_la-glassofast-real.o
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -fopenmp -Wall -fvisibility=hidden -falign-functions -falign-jumps -falign-labels -falign-loops -fbit-tests -fbranch-count-reg -fcaller-saves -fcode-hoisting -fcombine-stack-adjustments -fcompare-elim -fcprop-registers -fcrossjumping -fcse-follow-jumps -fdefer-pop -fdevirtualize -fdevirtualize-speculatively -fdse -fexpensive-optimizations -fext-dce -fforward-propagate -fgcse -fgcse-after-reload -fguess-branch-probability -fhoist-adjacent-loads -fif-conversion -fif-conversion2 -findirect-inlining -finline -finline-functions -finline-functions-called-once -finline-small-functions -fipa-bit-cp -fipa-cp -fipa-cp-clone -fipa-icf -fipa-icf-functions -fipa-icf-variables -fipa-modref -fipa-profile -fipa-pure-const -fipa-ra -fipa-reference -fipa-reference-addressable -fipa-sra -fipa-vrp -fisolate-erroneous-paths-dereference -fjump-tables -flate-combine-instructions -floop-interchange -floop-unroll-and-jam -flra-remat -fmove-loop-invariants -fmove-loop-stores -fomit-frame-pointer -foptimize-crc -foptimize-sibling-calls -foptimize-strlen -fpartial-inlining -fpeel-loops -fpeephole2 -fpredictive-commoning -free -freorder-blocks -freorder-blocks-and-partition -freorder-functions -frerun-cse-after-loop -fschedule-insns2 -fshrink-wrap -fsplit-loops -fsplit-paths -fsplit-wide-types -fssa-phiopt -fstore-merging -fstrict-aliasing -fthread-jumps -ftoplevel-reorder -ftree-bit-ccp -ftree-builtin-call-dce -ftree-ccp -ftree-ch -ftree-coalesce-vars -ftree-copy-prop -ftree-dce -ftree-dominator-opts -ftree-dse -ftree-fre -ftree-loop-distribute-patterns -ftree-loop-distribution -ftree-loop-vectorize -ftree-partial-pre -ftree-pre -ftree-pta -ftree-sink -ftree-slp-vectorize -ftree-slsr -ftree-sra -ftree-switch-conversion -ftree-tail-merge -ftree-ter -ftree-vrp -funreachable-traps -funroll-completely-grow-size -funroll-loops -funswitch-loops -fversion-loops-for-strides + -munroll-only-small-loops "[enabled]" -ffast-math -funroll-loops -ftree-vectorizer-verbose=0 -pthread -g -O2 -ffile-prefix-map=/build/reproducible-path/freecontact-1.0.21=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -c freecontact.cpp  -fPIC -DPIC -o .libs/libfreecontact_la-freecontact.o
f951: Warning: '-Werror=' argument '-funroll-completely-grow-size' is not valid for Fortran
cc1plus: warning: '-Werror=' argument '-funroll-completely-grow-size' is not valid for C++
gfortran: warning: +: linker input file unused because linking not done
gfortran: error: +: linker input file not found: No such file or directory
gfortran: warning: [enabled]: linker input file unused because linking not done
gfortran: error: [enabled]: linker input file not found: No such file or directory
make[3]: *** [Makefile:631: libfreecontact_la-glassofast-real.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
In file included from freecontact.cpp:32:
freecontact.h:69:54: warning: ignoring attributes on template argument '__m128i' [-Wignored-attributes]
   69 | class LIBFREEC_API ali_t : public std::vector<__m128i>
      |                                                      ^
freecontact.h: In constructor 'freecontact::ali_t::ali_t(uint16_t)':
freecontact.h:80:79: warning: ignoring attributes on template argument '__m128i' [-Wignored-attributes]
   80 |                     ali_t( const uint16_t __alilen = 0 ) : std::vector<__m128i>(), seqcnt(0), alilen(__alilen), alilen16(( alilen-1 )/16 + 1), alilenpad( 16 * alilen16 )
      |                                                                               ^
freecontact.cpp: In destructor 'virtual freecontact::_glasso_timer::~_glasso_timer()':
freecontact.cpp:232:43: warning: 'throw' will always call 'terminate' [-Wterminate]
  232 |         if (timer_delete(_timerid) == -1) throw std::runtime_error(strerror(errno));
      |                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
freecontact.cpp:232:43: note: in C++11 destructors default to 'noexcept'
freecontact.cpp: In member function 'freecontact::predictor::cont_res_t freecontact::predictor::run(const freecontact::ali_t&, const freq_vec_t&, double, double, double, uint16_t, double, double, bool, double, bool, bool, double, int, time_t, time_res_t*)':
freecontact.cpp:545:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
  545 |         if(__timing) (*__timing)["pairfreq"] = t_diff.tv_sec+t_diff.tv_usec/1e6; if(dbg) fprintf(stderr, "calculated pair frequency table in %g secs\n", t_diff.tv_sec+t_diff.tv_usec/1e6 ); }
      |         ^~
freecontact.cpp:545:82: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
  545 |         if(__timing) (*__timing)["pairfreq"] = t_diff.tv_sec+t_diff.tv_usec/1e6; if(dbg) fprintf(stderr, "calculated pair frequency table in %g secs\n", t_diff.tv_sec+t_diff.tv_usec/1e6 ); }
      |                                                                                  ^~
freecontact.cpp:690:13: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
  690 |             if(__timing) (*__timing)["shrink"] = t_diff.tv_sec+t_diff.tv_usec/1e6; if(dbg) fprintf(stderr, "\nshrank covariance matrix in %g secs\n", t_diff.tv_sec+t_diff.tv_usec/1e6 ); }
      |             ^~
freecontact.cpp:690:84: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
  690 |             if(__timing) (*__timing)["shrink"] = t_diff.tv_sec+t_diff.tv_usec/1e6; if(dbg) fprintf(stderr, "\nshrank covariance matrix in %g secs\n", t_diff.tv_sec+t_diff.tv_usec/1e6 ); }
      |                                                                                    ^~
freecontact.cpp: In member function 'freecontact::predictor::cont_res_t freecontact::predictor::run(const freecontact::ali_t&, double, double, double, uint16_t, double, double, bool, double, bool, bool, double, bool, int, time_t, time_res_t*)':
freecontact.cpp:995:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
  995 |         if(__timing) (*__timing)["all"] = t_diff.tv_sec+t_diff.tv_usec/1e6; if(dbg) fprintf(stderr, "all done in %g secs\n", t_diff.tv_sec+t_diff.tv_usec/1e6); }
      |         ^~
freecontact.cpp:995:77: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
  995 |         if(__timing) (*__timing)["all"] = t_diff.tv_sec+t_diff.tv_usec/1e6; if(dbg) fprintf(stderr, "all done in %g secs\n", t_diff.tv_sec+t_diff.tv_usec/1e6); }
      |                                                                             ^~
g++: warning: +: linker input file unused because linking not done
g++: error: +: linker input file not found: No such file or directory
g++: warning: [enabled]: linker input file unused because linking not done
g++: error: [enabled]: linker input file not found: No such file or directory
make[3]: *** [Makefile:619: libfreecontact_la-freecontact.lo] Error 1
make[3]: Leaving directory '/build/reproducible-path/freecontact-1.0.21/lib'
make[2]: *** [Makefile:491: all] Error 2
make[2]: Leaving directory '/build/reproducible-path/freecontact-1.0.21/lib'
make[1]: *** [Makefile:475: all-recursive] Error 1
make[1]: Leaving directory '/build/reproducible-path/freecontact-1.0.21'
dh_auto_build: error: make -j8 returned exit code 2
make: *** [debian/rules:13: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2