Created attachment 63289 [details] build.log.xz I've seen this on two machines today but of course it sometimes builds fine on those. Guess it started with r16-6442-g7a9b0d73fe6095. ``` make[2]: Entering directory '/var/tmp/portage/sys-devel/gcc-16.0.9999/work/build/gnattools' rm -rf ../gcc/ada/tools make[2]: Leaving directory '/var/tmp/portage/sys-devel/gcc-16.0.9999/work/build/gnattools' make[2]: Entering directory '/var/tmp/portage/sys-devel/gcc-16.0.9999/work/build/gnattools' mkdir -p ../gcc/ada/tools make[2]: Leaving directory '/var/tmp/portage/sys-devel/gcc-16.0.9999/work/build/gnattools' make[2]: Entering directory '/var/tmp/portage/sys-devel/gcc-16.0.9999/work/build/gnattools' Cannot build gnattools while gnatlib is out of date or unbuilt make[2]: *** [Makefile:162: ../gcc/stamp-gnatlib-rts] Error 1 make[2]: Leaving directory '/var/tmp/portage/sys-devel/gcc-16.0.9999/work/build/gnattools' make[2]: *** Waiting for unfinished jobs.... ``` I've attached the full log, I've not looked at the Makefiles. ``` /var/tmp/portage/sys-devel/gcc-16.0.9999/work/build/gnattools # ../gcc/xgcc -v Using built-in specs. COLLECT_GCC=../gcc/xgcc OFFLOAD_TARGET_NAMES=nvptx-none OFFLOAD_TARGET_DEFAULT=1 Target: x86_64-pc-linux-gnu Configured with: /var/tmp/portage/sys-devel/gcc-16.0.9999/work/gcc-16.0.9999/configure --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/16 --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/16/include --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/16 --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/16/man --infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/16/info --with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/16/include/g++-v16 --disable-silent-rules --disable-dependency-tracking --with-python-dir=/share/gcc-data/x86_64-pc-linux-gnu/16/python --enable-libphobos --enable-objc-gc --enable-languages=c,c++,d,objc,obj-c++,fortran,ada,rust --enable-obsolete --enable-secureplt --disable-werror --with-system-zlib --enable-nls --without-included-gettext --disable-libunwind-exceptions --enable-checking=yes,extra,rtl,df --with-bugurl=https://bugs.gentoo.org/ --with-pkgversion='Gentoo 16.0.9999 p, commit 105e7a429a1b55bdbf23b82f444a1079ea9b8070' --with-gcc-major-version-only --enable-libstdcxx-time --enable-lto --disable-libstdcxx-pch --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --with-tls=gnu2 --enable-multilib --with-multilib-list=m32,m64 --disable-fixed-point --enable-targets=all --enable-offload-defaulted --enable-offload-targets=nvptx-none --enable-libgomp --disable-libssp --enable-libada --enable-cet --disable-systemtap --enable-valgrind-annotations --enable-valgrind-interop --disable-vtable-verify --disable-libvtv --with-zstd --without-isl --enable-default-pie --enable-host-pie --enable-host-bind-now --enable-default-ssp --disable-fixincludes --with-gxx-libcxx-include-dir=/usr/include/c++/v1 --enable-linker-build-id --enable-linker-build-id --enable-linker-build-id --enable-linker-build-id --with-build-config='bootstrap-lto bootstrap-cet' Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 16.0.0 20260108 (experimental) 25c8599ad467f73953a6c4b838b1122c4803b1a1 (Gentoo 16.0.9999 p, commit 105e7a429a1b55bdbf23b82f444a1079ea9b8070) ```
Nevermind, it's the 32 commit: https://inbox.sourceware.org/gcc-patches/yddms2ncnc6.fsf@CeBiTec.Uni-Bielefeld.DE/
*** Bug 123497 has been marked as a duplicate of this bug. ***
I've reverted r16-6584 in my build and it still failed the same way. So I suspect r16-6582 instead. ./xgcc -B ./ -print-multi-directory . before and after, I suspect the @@ -597,7 +614,8 @@ else fi if [ -z "${with_multisubdir}" ]; then - ml_subdir= + ml_top_subdir=`${CC-gcc} --print-multi-directory 2>/dev/null` + ml_subdir=/$ml_top_subdir ml_builddotdot= : # ml_srcdotdot= # already set else hunk in config-ml.in. If that hunk is really needed, then I think it needs to special case ml_top_subdir being . and unset ml_subdir in that case, rather than setting it to /. which is what appears in these gcc/ada/rts_. (where there was RTSDIR = rts$(subst /,_,$(MULTISUBDIR)) ).
How can such a change be accepted at this stage in the first place?
The master branch has been updated by Jakub Jelinek <jakub@gcc.gnu.org>: https://gcc.gnu.org/g:5079424ade2deddfa8d39a48a892f60679e4e32d commit r16-6678-g5079424ade2deddfa8d39a48a892f60679e4e32d Author: Jakub Jelinek <jakub@redhat.com> Date: Sat Jan 10 11:36:25 2026 +0100 toplevel: Unbreak Ada build [PR123490] As written earlier, the config-ml.in change from the --with-multi-buildlist patch broke build of Ada, Ada uses RTSDIR = rts$(subst /,_,$(MULTISUBDIR)) and expects that the primary multilib will result in rts rather than rts_. it results in after the --with-multi-buildlist changes. The following patch fixes it by restoring previous behavior for ml_subdir / MULTISUBDIR such that for primary multilib it is still empty rather than /. 2026-01-10 Jakub Jelinek <jakub@redhat.com> PR ada/123490 * config-ml.in: Restore ml_subdir being empty instead of /. for the primary multilib.
Thanks for the stopgap fix.