Package: autoconf
Version: 2.72-6
Severity: important
Justification: causing GCC 16 FTBFSes in other packages
Tags: upstream
Forwarded: https://savannah.gnu.org/support/index.php?110879

Hi,

See https://savannah.gnu.org/support/index.php?110879.

It looks like autoconf decided to default to -std=gnu++11 when nothing
is specified.

This results in stuff like

dh_auto_configure -- --without-docs --disable-werror
        ./configure --build=x86_64-linux-gnu --prefix=/usr 
--includedir=\${prefix}/include --mandir=\${prefix}/share/man 
--infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var 
--disable-option-checking --disable-silent-rules 
--libdir=\${prefix}/lib/x86_64-linux-gnu --runstatedir=/run 
--disable-maintainer-mode --disable-dependency-tracking --without-docs 
--disable-werror
checking for a BSD-compatible install... /usr/bin/install -c
checking whether sleep supports fractional seconds... yes
checking filesystem timestamp resolution... 0.01
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking xargs -n works... yes
checking whether UID '1000' is supported by ustar format... yes
checking whether GID '1000' is supported by ustar format... yes
checking how to create a ustar tar archive... gnutar
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... none
checking for ar... ar
checking the archiver (ar) interface... ar
checking for gcc... (cached) gcc
checking whether the compiler supports GNU C... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to enable C11 features... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) none
checking how to run the C preprocessor... gcc -E
checking for g++... g++
checking whether the compiler supports GNU C++... yes
checking whether g++ accepts -g... yes
checking for g++ option to enable C++11 features... -std=gnu++11
checking dependency style of g++ -std=gnu++11... none

or

checking whether x86_64-linux-gnu-g++ supports C++20... yes (-std=c++20)
checking whether std::atomic can be used without link library... yes
checking whether x86_64-linux-gnu-g++ supports C++11 without Language Defect 
757... yes
checking whether x86_64-linux-gnu-g++ supports -fno-sized-deallocation... yes
checking whether x86_64-linux-gnu-g++ supports C++2a constinit sorted 
vectors... no
checking whether x86_64-linux-gnu-g++ implements C++ DR P1155R3... yes
checking whether x86_64-linux-gnu-g++ supports C++20 std::atomic_ref... yes
checking whether x86_64-linux-gnu-g++ supports -Wdeprecated-copy-dtor... yes
checking whether x86_64-linux-gnu-g++ might report false 
-Werror=maybe-uninitialized... no
checking whether x86_64-linux-gnu-g++ might report false 
-Werror=stringop-overflow=... no
checking whether x86_64-linux-gnu-g++ -std=gnu++11 can compile SSE2 
intrinsics... yes
checking whether x86_64-linux-gnu-g++ -std=gnu++11 can compile SSSE3 
intrinsics... yes
checking whether x86_64-linux-gnu-g++ -std=gnu++11 can compile SSE4.1 
intrinsics... yes
checking whether x86_64-linux-gnu-g++ -std=gnu++11 can compile SSE4.2 
intrinsics... yes
checking whether x86_64-linux-gnu-g++ -std=gnu++11 can compile AVX 
intrinsics... yes
checking whether x86_64-linux-gnu-g++ -std=gnu++11 can compile AVX2 
intrinsics... yes
checking whether x86_64-linux-gnu-g++ -std=gnu++11 can compile AVX512 
intrinsics... yes
checking whether x86_64-linux-gnu-g++ -std=gnu++11 can compile F16C 
intrinsics... yes
checking whether x86_64-linux-gnu-g++ -std=gnu++11 can compile FMA 
intrinsics... yes

here even changing inbetween.

That now breaks with gcc 16 apparently. See e.g. #1133513 and #1133524
and libreoffice got a workaround in
https://gerrit.libreoffice.org/c/core/+/202511 (where the second paste
is from) before knowing it was autoconf.

There's more stuff affected, like e.g. https://bugs.openmpt.org/view.php?id=1701

Please revert. This is https://savannah.gnu.org/support/index.php?110879
upstream.

One can successfully hack around it like

# work around autoconf unhelpfully adding -std=gnu++11 which breaks with gcc 16
SYSTEM_GCC_VERSION = $(shell gcc --version | sed -n 
'/^gcc/s/.*\(..\..\)\../\1/p' | cut -d" " -f1 | cut -d. -f1)
ifeq "$(shell test $(SYSTEM_GCC_VERSION) -ge 16 && echo true)" "true"
export DEB_CXXFLAGS_MAINT_APPEND += -std=gnu++17
endif

but that of course is extremely hacky and fixing autoconf would be
better.

Regards,

Rene

Reply via email to