From fa3ef7f9a0a4d221d65d0fd80c6983bfb76bf786 Mon Sep 17 00:00:00 2001 From: Stephanos Ioannidis Date: Tue, 24 Sep 2024 13:52:10 +0900 Subject: [PATCH] configure: Always add pre-installed header directories to search path configure script was adding the target directory flags, including the '-B' flags for the executable prefix and the '-isystem' flags for the pre-installed header directories, to the target flags only for non-Canadian builds under the premise that the host binaries under the executable prefix will not be able to execute on the build system for Canadian builds. While that is true for the '-B' flags specifying the executable prefix, the '-isystem' flags specifying the pre-installed header directories are not affected by this and do not need special handling. This patch updates the configure script to always add the 'include' and 'sys-include' pre-installed header directories to the target search path, in order to ensure that the availability of the pre-installed header directories in the search path is consistent across non-Canadian and Canadian builds. When '--with-headers' flag is specified, this effectively ensures that the libc headers, that are copied from the specified header directory to the sys-include directory, are used by libstdc++. ChangeLog: * configure.ac: Always add sys-include to search path. * configure: Regenerate. Signed-off-by: Stephanos Ioannidis --- configure | 16 ++++++++++------ configure.ac | 16 ++++++++++------ 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/configure b/configure index 5dcaab14ae99c..951a2e450bb8c 100755 --- a/configure +++ b/configure @@ -10251,13 +10251,17 @@ if test x"${build}" = x"${host}" ; then LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-${LDFLAGS}} fi -# On Canadian crosses, we'll be searching the right directories for -# the previously-installed cross compiler, so don't bother to add -# flags for directories within the install tree of the compiler -# being built; programs in there won't even run. -if test "${build}" = "${host}" && test -d ${srcdir}/gcc; then +if test -d ${srcdir}/gcc; then + # On Canadian crosses, we'll be searching the right directories for the + # previously-installed cross compiler, so don't bother to add flags for + # executable directories within the install tree of the compiler being built; + # programs in there won't even run. + if test "${build}" = "${host}"; then + FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/' + fi + # Search for pre-installed headers if nothing else fits. - FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include' + FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include' fi if test "x${use_gnu_ld}" = x && diff --git a/configure.ac b/configure.ac index 85977482aeeb0..79efb6c31935a 100644 --- a/configure.ac +++ b/configure.ac @@ -3432,13 +3432,17 @@ if test x"${build}" = x"${host}" ; then LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-${LDFLAGS}} fi -# On Canadian crosses, we'll be searching the right directories for -# the previously-installed cross compiler, so don't bother to add -# flags for directories within the install tree of the compiler -# being built; programs in there won't even run. -if test "${build}" = "${host}" && test -d ${srcdir}/gcc; then +if test -d ${srcdir}/gcc; then + # On Canadian crosses, we'll be searching the right directories for the + # previously-installed cross compiler, so don't bother to add flags for + # executable directories within the install tree of the compiler being built; + # programs in there won't even run. + if test "${build}" = "${host}"; then + FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/' + fi + # Search for pre-installed headers if nothing else fits. - FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include' + FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include' fi if test "x${use_gnu_ld}" = x &&