commit:     90d9d881f2e83f884cbf8b26b0c4c4f473bc3372
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Jan  9 08:27:33 2026 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Jan  9 08:27:45 2026 +0000
URL:        https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=90d9d881

16.0.0: revert commit breaking Ada bootstrap

Bug: https://gcc.gnu.org/PR123490
Signed-off-by: Sam James <sam <AT> gentoo.org>

 16.0.0/gentoo/87_all_PR123490-ada-bootstrap.patch | 339 ++++++++++++++++++++++
 16.0.0/gentoo/README.history                      |   1 +
 2 files changed, 340 insertions(+)

diff --git a/16.0.0/gentoo/87_all_PR123490-ada-bootstrap.patch 
b/16.0.0/gentoo/87_all_PR123490-ada-bootstrap.patch
new file mode 100644
index 0000000..9ebb7bf
--- /dev/null
+++ b/16.0.0/gentoo/87_all_PR123490-ada-bootstrap.patch
@@ -0,0 +1,339 @@
+From 37728920016dc064ac1962c1412befe74ebb3427 Mon Sep 17 00:00:00 2001
+Message-ID: 
<37728920016dc064ac1962c1412befe74ebb3427.1767947222.git....@gentoo.org>
+From: Sam James <[email protected]>
+Date: Fri, 9 Jan 2026 08:27:00 +0000
+Subject: [PATCH] Revert "[PATCH v6 1/1] Add --with-multi-buildlist configure
+ option"
+
+This reverts commit 6ae5a2a6ba4bc8c3a2f337d49121a9f8f7eaa8b5.
+
+Signed-off-by: Sam James <[email protected]>
+---
+ config-ml.in         | 25 +------------------------
+ configure            | 15 ---------------
+ configure.ac         | 15 ---------------
+ gcc/Makefile.in      | 19 +------------------
+ gcc/configure        |  8 ++------
+ gcc/configure.ac     |  3 ---
+ gcc/configure.tgt    | 20 --------------------
+ gcc/doc/install.texi | 24 ------------------------
+ gcc/genmultilib      | 10 +++-------
+ 9 files changed, 7 insertions(+), 132 deletions(-)
+ delete mode 100644 gcc/configure.tgt
+
+diff --git a/config-ml.in b/config-ml.in
+index d184fdc6d828..9cdcae1191da 100644
+--- a/config-ml.in
++++ b/config-ml.in
+@@ -488,23 +488,6 @@ powerpc*-*-* | rs6000*-*-*)
+       ;;
+ esac
+ 
+-# Use a filtered multilib list if requested.
+-
+-if [ x$with_multi_buildlist != x ]; then
+-  old_multidirs="${multidirs}"
+-  if [ ! -f $with_multi_buildlist ]; then
+-    echo "config-ml.in: Failed to find $with_multi_buildlist"
+-    exit 1
+-  fi
+-  multidirs=""
+-  for x in ${old_multidirs}; do
+-    found=`grep "^${x}$" $with_multi_buildlist`
+-    if [ -n "$found" ]; then
+-      multidirs="${multidirs} ${x}"
+-    fi
+-  done
+-fi
+-
+ # Remove extraneous blanks from multidirs.
+ # Tests like `if [ -n "$multidirs" ]' require it.
+ multidirs=`echo "$multidirs" | sed -e 's/^[ ][ ]*//' -e 's/[ ][ ]*$//' -e 
's/[ ][ ]*/ /g'`
+@@ -614,8 +597,7 @@ else
+ fi
+ 
+ if [ -z "${with_multisubdir}" ]; then
+-  ml_top_subdir=`${CC-gcc} --print-multi-directory 2>/dev/null`
+-  ml_subdir=/$ml_top_subdir
++  ml_subdir=
+   ml_builddotdot=
+   : # ml_srcdotdot= # already set
+ else
+@@ -694,11 +676,6 @@ if [ -n "${multidirs}" ] && [ -z "${ml_norecursion}" ]; 
then
+ 
+   for ml_dir in ${multidirs}; do
+ 
+-    if [ "${ml_dir}" == "${ml_top_subdir}" ]; then
+-      echo "Skipping configure in multilib subdir ${ml_dir}"
+-      continue
+-    fi
+-
+     if [ "${ml_verbose}" = --verbose ]; then
+       echo "Running configure in multilib subdir ${ml_dir}"
+       echo "pwd: `${PWDCMD-pwd}`"
+diff --git a/configure b/configure
+index bb0905df77fa..d4e11d4cec3c 100755
+--- a/configure
++++ b/configure
+@@ -11760,21 +11760,6 @@ if test x${enable_multilib} = x ; then
+   target_configargs="--enable-multilib ${target_configargs}"
+ fi
+ 
+-# Source target-specific configuration fragment for GCC
+-if test -d ${srcdir}/gcc; then
+-  . ${srcdir}/gcc/configure.tgt
+-fi
+-
+-# Pass through with_multi_buildlist to host and target.  'gcc' needs it for 
the
+-# fixed includes which are multilib'd and target libraries need it as they use
+-# config-ml.in.
+-if test x${with_multi_buildlist} != x ; then
+-  target_configargs="--with-multi-buildlist=${with_multi_buildlist} \
+-  ${target_configargs}"
+-  host_configargs="--with-multi-buildlist=${with_multi_buildlist} \
+-  ${host_configargs}"
+-fi
+-
+ # Pass --with-newlib if appropriate.  Note that target_configdirs has
+ # changed from the earlier setting of with_newlib.
+ if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " 
newlib " > /dev/null 2>&1 && test -d ${srcdir}/newlib ; then
+diff --git a/configure.ac b/configure.ac
+index 5b8702567717..5edd041bf645 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -3830,21 +3830,6 @@ if test x${enable_multilib} = x ; then
+   target_configargs="--enable-multilib ${target_configargs}"
+ fi
+ 
+-# Source target-specific configuration fragment for GCC
+-if test -d ${srcdir}/gcc; then
+-  . ${srcdir}/gcc/configure.tgt
+-fi
+-
+-# Pass through with_multi_buildlist to host and target.  'gcc' needs it for 
the
+-# fixed includes which are multilib'd and target libraries need it as they use
+-# config-ml.in.
+-if test x${with_multi_buildlist} != x ; then
+-  target_configargs="--with-multi-buildlist=${with_multi_buildlist} \
+-  ${target_configargs}"
+-  host_configargs="--with-multi-buildlist=${with_multi_buildlist} \
+-  ${host_configargs}"
+-fi
+-
+ # Pass --with-newlib if appropriate.  Note that target_configdirs has
+ # changed from the earlier setting of with_newlib.
+ if test x${with_newlib} != xno && echo " ${target_configdirs} " | grep " 
newlib " > /dev/null 2>&1 && test -d ${srcdir}/newlib ; then
+diff --git a/gcc/Makefile.in b/gcc/Makefile.in
+index 41b689971725..917d586e5724 100644
+--- a/gcc/Makefile.in
++++ b/gcc/Makefile.in
+@@ -653,9 +653,6 @@ else
+   endif
+ endif
+ 
+-# Multilib control
+-with_multi_buildlist = @with_multi_buildlist@
+-
+ # ------------------------
+ # Installation directories
+ # ------------------------
+@@ -2531,12 +2528,11 @@ s-mlib: $(srcdir)/genmultilib Makefile
+           "$(MULTILIB_REQUIRED)" \
+           "$(if $(MULTILIB_OSDIRNAMES),,$(MULTIARCH_DIRNAME))" \
+           "$(MULTILIB_REUSE)" \
+-          "$(if $(with_multi_buildlist),true,false)" \
+           "@enable_multilib@" \
+           > tmp-mlib.h; \
+       else \
+         $(SHELL) $(srcdir)/genmultilib '' '' '' '' '' '' '' '' \
+-          "$(MULTIARCH_DIRNAME)" '' 'false' no \
++          "$(MULTIARCH_DIRNAME)" '' no \
+           > tmp-mlib.h; \
+       fi
+       $(SHELL) $(srcdir)/../move-if-change tmp-mlib.h multilib.h
+@@ -3635,23 +3631,10 @@ fixinc_list: s-fixinc_list; @true
+ s-fixinc_list : $(GCC_PASSES)
+ # Build up a list of multilib directories and corresponding sysroot
+ # suffixes, in form sysroot;multilib.
+-# Use a filtered multilib list if requested.
+       if $(GCC_FOR_TARGET) -print-sysroot-headers-suffix > /dev/null 2>&1; 
then \
+         set -e; for ml in `$(GCC_FOR_TARGET) -print-multi-lib`; do \
+           multi_dir=`echo $${ml} | sed -e 's/;.*$$//'`; \
+           flags=`echo $${ml} | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; \
+-          if [ x$(with_multi_buildlist) != x ]; then \
+-            if [ ! -f $(with_multi_buildlist) ]; then \
+-              echo "fixinc_list: Failed to find $(with_multi_buildlist)"; \
+-              exit 1; \
+-            fi; \
+-            set +e; \
+-            found=`grep "^$${multi_dir}$$" $(with_multi_buildlist)`; \
+-            set -e; \
+-            if [ -z "$$found" ]; then \
+-              continue; \
+-            fi; \
+-          fi; \
+           sfx=`$(GCC_FOR_TARGET) $${flags} -print-sysroot-headers-suffix`; \
+           if [ "$${multi_dir}" = "." ]; \
+             then multi_dir=""; \
+diff --git a/gcc/configure b/gcc/configure
+index 665a88be9531..fd9e3c88363f 100755
+--- a/gcc/configure
++++ b/gcc/configure
+@@ -859,7 +859,6 @@ enable_fixed_point
+ enable_decimal_float
+ DEFAULT_INSNEMIT_PARTITIONS
+ DEFAULT_MATCHPD_PARTITIONS
+-with_multi_buildlist
+ with_float
+ with_cpu
+ enable_multiarch
+@@ -7899,9 +7898,6 @@ $as_echo "$enable_multiarch$ma_msg_suffix" >&6; }
+ 
+ 
+ 
+-# needed for restricting the fixedincludes multilibs that we install
+-
+-
+ # default stack clash protection guard size as power of twos in bytes.
+ # Please keep these in sync with params.def.
+ stk_clash_min=12
+@@ -21939,7 +21935,7 @@ else
+   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+   lt_status=$lt_dlunknown
+   cat > conftest.$ac_ext <<_LT_EOF
+-#line 21942 "configure"
++#line 21938 "configure"
+ #include "confdefs.h"
+ 
+ #if HAVE_DLFCN_H
+@@ -22045,7 +22041,7 @@ else
+   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+   lt_status=$lt_dlunknown
+   cat > conftest.$ac_ext <<_LT_EOF
+-#line 22048 "configure"
++#line 22044 "configure"
+ #include "confdefs.h"
+ 
+ #if HAVE_DLFCN_H
+diff --git a/gcc/configure.ac b/gcc/configure.ac
+index ed37f00f0210..458f5c990287 100644
+--- a/gcc/configure.ac
++++ b/gcc/configure.ac
+@@ -887,9 +887,6 @@ AC_MSG_RESULT($enable_multiarch$ma_msg_suffix)
+ AC_SUBST(with_cpu)
+ AC_SUBST(with_float)
+ 
+-# needed for restricting the fixedincludes multilibs that we install
+-AC_SUBST(with_multi_buildlist)
+-
+ # default stack clash protection guard size as power of twos in bytes.
+ # Please keep these in sync with params.def.
+ stk_clash_min=12
+diff --git a/gcc/configure.tgt b/gcc/configure.tgt
+deleted file mode 100644
+index 2c570b87deda..000000000000
+--- a/gcc/configure.tgt
++++ /dev/null
+@@ -1,20 +0,0 @@
+-# -*- shell-script -*-
+-#   Copyright (C) 2025 Free Software Foundation, Inc.
+-
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2 of the License, or
+-# (at your option) any later version.
+-#
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
+-#
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not see <http://www.gnu.org/licenses/>.
+-
+-# This is the target specific configuration file.  This is invoked by the
+-# autoconf generated configure script.  Putting it in a separate shell file
+-# lets us skip running autoconf when modifying target specific information.
+-
+diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
+index 54f80308c9e0..a415898c000c 100644
+--- a/gcc/doc/install.texi
++++ b/gcc/doc/install.texi
+@@ -1601,30 +1601,6 @@ medlow code model; rv64ima with lp64 and medany code 
model
+ rv64ima-lp64--;--cmodel=medlow,medany
+ @end smallexample
+ 
+-@item --with-multi-buildlist=@var{file}
+-Specify a file containing a list of multilib directories to build.
+-
+-Each line in the file should contain a single multilib directory name,
+-as printed by @code{gcc --print-multi-lib}.  Only the listed directories
+-will be built and installed.
+-
+-This option is useful for reducing build time and binary size by
+-excluding unnecessary multilib variants.  It is especially beneficial
+-for embedded targets or vendor-specific toolchains.
+-
+-Example file contents:
+-
+-@smallexample
+-mips-r6-hard/lib
+-mips-r6-soft/lib32
+-mipsel-r6-hard/lib64
+-@end smallexample
+-
+-This option is target-independent and can be used with any architecture
+-that supports multilibs.  It is passed to both host and target
+-configuration stages and used during fixed includes installation and
+-multilib directory generation.
+-
+ @item --with-endian=@var{endians}
+ Specify what endians to use.
+ Currently only implemented for sh*-*-*.
+diff --git a/gcc/genmultilib b/gcc/genmultilib
+index a00d6d88683f..1367e5d3b7ae 100644
+--- a/gcc/genmultilib
++++ b/gcc/genmultilib
+@@ -88,9 +88,6 @@
+ # The optional tenth argument specifies how to reuse multilib for different
+ # option sets.
+ 
+-# The eleventh argument specifies whether the --with-multi-buildlist
+-# configure option is set (true or false).
+-
+ # The last option should be "yes" if multilibs are enabled.  If it is not
+ # "yes", all GCC multilib dir names will be ".".
+ 
+@@ -111,7 +108,7 @@
+ #   genmultilib 'm64/m32 mno-app-regs|mcmodel=medany' '64 32 alt'
+ #             'mcmodel?medany=mcmodel?medmid' 'm32/mno-app-regs* 
m32/mcmodel=*'
+ #             '' 'm32/!m64/mno-app-regs m32/!m64/mcmodel=medany'
+-#             '../lib64 ../lib32 alt' '' '' '' 'false' yes
++#             '../lib64 ../lib32 alt' '' '' '' yes
+ # This produces:
+ #   ". !m64 !m32 !mno-app-regs !mcmodel=medany;",
+ #   "64:../lib64 m64 !m32 !mno-app-regs !mcmodel=medany;",
+@@ -142,8 +139,7 @@ osdirnames=$7
+ multilib_required=$8
+ multiarch=$9
+ multilib_reuse=${10}
+-with_multi_buildlist=${11}
+-enable_multilib=${12}
++enable_multilib=${11}
+ 
+ echo "static const char *const multilib_raw[] = {"
+ 
+@@ -504,7 +500,7 @@ for rrule in ${multilib_reuse}; do
+       echo "The rule ${rrule} contains an option absent from 
MULTILIB_OPTIONS." >&2
+       exit 1
+     fi
+-  elif ! ${with_multi_buildlist}; then
++  else
+     echo "The rule ${rrule} is trying to reuse nonexistent multilib." >&2
+     exit 1
+   fi
+
+base-commit: 07df546fb904f68c346f600a7cd0df07706de217
+-- 
+2.52.0
+

diff --git a/16.0.0/gentoo/README.history b/16.0.0/gentoo/README.history
index 7ad51b2..5a74753 100644
--- a/16.0.0/gentoo/README.history
+++ b/16.0.0/gentoo/README.history
@@ -1,6 +1,7 @@
 30     ????
 
        - 87_all_PR123383-revert-devirt-ICE.patch
+       + 87_all_PR123490-ada-bootstrap.patch
 
 29     4 January 2026
 

Reply via email to