[gcc r17-2336] build: Preserve all *_FOR_TARGET environment variables if already set.
Jeff Law
law@gcc.gnu.org
Sun Jul 12 04:46:30 GMT 2026
https://gcc.gnu.org/g:194b23b7ebe12015e2aa2989ada73f4e1c682c84
commit r17-2336-g194b23b7ebe12015e2aa2989ada73f4e1c682c84
Author: Manuel Jacob <me@manueljacob.de>
Date: Sat Jul 11 22:42:04 2026 -0600
build: Preserve all *_FOR_TARGET environment variables if already set.
Some of the *_FOR_TARGET environment variables (e.g. CC_FOR_TARGET) were
already preserved because they use the NCN_STRICT_CHECK_TARGET_TOOLS macro
directly. Other *_FOR_TARGET environment variables (e.g. AS_FOR_TARGET) use the
ACX_CHECK_INSTALLED_TARGET_TOOL macro, which falls back to
NCN_STRICT_CHECK_TARGET_TOOLS but overwrote the environment variable in some
cases before that. E.g. in the case `$build != $host`, the environment variable
was not preserved.
With this patch, each of the *_FOR_TARGET environment variables and their
unsuffixed (“for host”) correspondents are handled consistently in the sense
that a non-empty value takes precedence over:
- cached values
- values inferred by checking for a suitable program in PATH
- tools in the directory passed to --with-build-time-tools (applies only to *_FOR_TARGET)
Changelog
* configure: Regenerated.
config
* acx.m4 (ACX_CHECK_INSTALLED_TARGET_TOOL): Fix handling of
environment variables.
Signed-off-by: Manuel Jacob <me@manueljacob.de>
Diff:
---
config/acx.m4 | 5 ++++
configure | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 80 insertions(+)
diff --git a/config/acx.m4 b/config/acx.m4
index 10ed31ff11db..ef5468bdd356 100644
--- a/config/acx.m4
+++ b/config/acx.m4
@@ -340,6 +340,11 @@ rm conftest.c
AC_DEFUN([ACX_CHECK_INSTALLED_TARGET_TOOL], [
AC_REQUIRE([ACX_TOOL_DIRS])
AC_REQUIRE([ACX_HAVE_GCC_FOR_TARGET])
+if test -n "[$]$1"; then
+ ac_cv_path_$1=[$]$1
+elif test -n "$ac_cv_path_$1"; then
+ $1=$ac_cv_path_$1
+fi
if test -z "$ac_cv_path_$1" ; then
if test -n "$with_build_time_tools"; then
AC_MSG_CHECKING([for $2 in $with_build_time_tools])
diff --git a/configure b/configure
index 79c324786e7a..ad490083741e 100755
--- a/configure
+++ b/configure
@@ -16482,6 +16482,11 @@ rm conftest.c
+if test -n "$AR_FOR_TARGET"; then
+ ac_cv_path_AR_FOR_TARGET=$AR_FOR_TARGET
+elif test -n "$ac_cv_path_AR_FOR_TARGET"; then
+ AR_FOR_TARGET=$ac_cv_path_AR_FOR_TARGET
+fi
if test -z "$ac_cv_path_AR_FOR_TARGET" ; then
if test -n "$with_build_time_tools"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ar in $with_build_time_tools" >&5
@@ -16712,6 +16717,11 @@ fi
+if test -n "$AS_FOR_TARGET"; then
+ ac_cv_path_AS_FOR_TARGET=$AS_FOR_TARGET
+elif test -n "$ac_cv_path_AS_FOR_TARGET"; then
+ AS_FOR_TARGET=$ac_cv_path_AS_FOR_TARGET
+fi
if test -z "$ac_cv_path_AS_FOR_TARGET" ; then
if test -n "$with_build_time_tools"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for as in $with_build_time_tools" >&5
@@ -16942,6 +16952,11 @@ fi
+if test -n "$DLLTOOL_FOR_TARGET"; then
+ ac_cv_path_DLLTOOL_FOR_TARGET=$DLLTOOL_FOR_TARGET
+elif test -n "$ac_cv_path_DLLTOOL_FOR_TARGET"; then
+ DLLTOOL_FOR_TARGET=$ac_cv_path_DLLTOOL_FOR_TARGET
+fi
if test -z "$ac_cv_path_DLLTOOL_FOR_TARGET" ; then
if test -n "$with_build_time_tools"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlltool in $with_build_time_tools" >&5
@@ -17172,6 +17187,11 @@ fi
+if test -n "$DSYMUTIL_FOR_TARGET"; then
+ ac_cv_path_DSYMUTIL_FOR_TARGET=$DSYMUTIL_FOR_TARGET
+elif test -n "$ac_cv_path_DSYMUTIL_FOR_TARGET"; then
+ DSYMUTIL_FOR_TARGET=$ac_cv_path_DSYMUTIL_FOR_TARGET
+fi
if test -z "$ac_cv_path_DSYMUTIL_FOR_TARGET" ; then
if test -n "$with_build_time_tools"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dsymutil in $with_build_time_tools" >&5
@@ -17402,6 +17422,11 @@ fi
+if test -n "$LD_FOR_TARGET"; then
+ ac_cv_path_LD_FOR_TARGET=$LD_FOR_TARGET
+elif test -n "$ac_cv_path_LD_FOR_TARGET"; then
+ LD_FOR_TARGET=$ac_cv_path_LD_FOR_TARGET
+fi
if test -z "$ac_cv_path_LD_FOR_TARGET" ; then
if test -n "$with_build_time_tools"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld in $with_build_time_tools" >&5
@@ -17632,6 +17657,11 @@ fi
+if test -n "$LIPO_FOR_TARGET"; then
+ ac_cv_path_LIPO_FOR_TARGET=$LIPO_FOR_TARGET
+elif test -n "$ac_cv_path_LIPO_FOR_TARGET"; then
+ LIPO_FOR_TARGET=$ac_cv_path_LIPO_FOR_TARGET
+fi
if test -z "$ac_cv_path_LIPO_FOR_TARGET" ; then
if test -n "$with_build_time_tools"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for lipo in $with_build_time_tools" >&5
@@ -17862,6 +17892,11 @@ fi
+if test -n "$NM_FOR_TARGET"; then
+ ac_cv_path_NM_FOR_TARGET=$NM_FOR_TARGET
+elif test -n "$ac_cv_path_NM_FOR_TARGET"; then
+ NM_FOR_TARGET=$ac_cv_path_NM_FOR_TARGET
+fi
if test -z "$ac_cv_path_NM_FOR_TARGET" ; then
if test -n "$with_build_time_tools"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for nm in $with_build_time_tools" >&5
@@ -18092,6 +18127,11 @@ fi
+if test -n "$OBJCOPY_FOR_TARGET"; then
+ ac_cv_path_OBJCOPY_FOR_TARGET=$OBJCOPY_FOR_TARGET
+elif test -n "$ac_cv_path_OBJCOPY_FOR_TARGET"; then
+ OBJCOPY_FOR_TARGET=$ac_cv_path_OBJCOPY_FOR_TARGET
+fi
if test -z "$ac_cv_path_OBJCOPY_FOR_TARGET" ; then
if test -n "$with_build_time_tools"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objcopy in $with_build_time_tools" >&5
@@ -18322,6 +18362,11 @@ fi
+if test -n "$OBJDUMP_FOR_TARGET"; then
+ ac_cv_path_OBJDUMP_FOR_TARGET=$OBJDUMP_FOR_TARGET
+elif test -n "$ac_cv_path_OBJDUMP_FOR_TARGET"; then
+ OBJDUMP_FOR_TARGET=$ac_cv_path_OBJDUMP_FOR_TARGET
+fi
if test -z "$ac_cv_path_OBJDUMP_FOR_TARGET" ; then
if test -n "$with_build_time_tools"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdump in $with_build_time_tools" >&5
@@ -18552,6 +18597,11 @@ fi
+if test -n "$OTOOL_FOR_TARGET"; then
+ ac_cv_path_OTOOL_FOR_TARGET=$OTOOL_FOR_TARGET
+elif test -n "$ac_cv_path_OTOOL_FOR_TARGET"; then
+ OTOOL_FOR_TARGET=$ac_cv_path_OTOOL_FOR_TARGET
+fi
if test -z "$ac_cv_path_OTOOL_FOR_TARGET" ; then
if test -n "$with_build_time_tools"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for otool in $with_build_time_tools" >&5
@@ -18782,6 +18832,11 @@ fi
+if test -n "$RANLIB_FOR_TARGET"; then
+ ac_cv_path_RANLIB_FOR_TARGET=$RANLIB_FOR_TARGET
+elif test -n "$ac_cv_path_RANLIB_FOR_TARGET"; then
+ RANLIB_FOR_TARGET=$ac_cv_path_RANLIB_FOR_TARGET
+fi
if test -z "$ac_cv_path_RANLIB_FOR_TARGET" ; then
if test -n "$with_build_time_tools"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ranlib in $with_build_time_tools" >&5
@@ -19012,6 +19067,11 @@ fi
+if test -n "$READELF_FOR_TARGET"; then
+ ac_cv_path_READELF_FOR_TARGET=$READELF_FOR_TARGET
+elif test -n "$ac_cv_path_READELF_FOR_TARGET"; then
+ READELF_FOR_TARGET=$ac_cv_path_READELF_FOR_TARGET
+fi
if test -z "$ac_cv_path_READELF_FOR_TARGET" ; then
if test -n "$with_build_time_tools"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for readelf in $with_build_time_tools" >&5
@@ -19242,6 +19302,11 @@ fi
+if test -n "$STRIP_FOR_TARGET"; then
+ ac_cv_path_STRIP_FOR_TARGET=$STRIP_FOR_TARGET
+elif test -n "$ac_cv_path_STRIP_FOR_TARGET"; then
+ STRIP_FOR_TARGET=$ac_cv_path_STRIP_FOR_TARGET
+fi
if test -z "$ac_cv_path_STRIP_FOR_TARGET" ; then
if test -n "$with_build_time_tools"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for strip in $with_build_time_tools" >&5
@@ -19472,6 +19537,11 @@ fi
+if test -n "$WINDRES_FOR_TARGET"; then
+ ac_cv_path_WINDRES_FOR_TARGET=$WINDRES_FOR_TARGET
+elif test -n "$ac_cv_path_WINDRES_FOR_TARGET"; then
+ WINDRES_FOR_TARGET=$ac_cv_path_WINDRES_FOR_TARGET
+fi
if test -z "$ac_cv_path_WINDRES_FOR_TARGET" ; then
if test -n "$with_build_time_tools"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for windres in $with_build_time_tools" >&5
@@ -19702,6 +19772,11 @@ fi
+if test -n "$WINDMC_FOR_TARGET"; then
+ ac_cv_path_WINDMC_FOR_TARGET=$WINDMC_FOR_TARGET
+elif test -n "$ac_cv_path_WINDMC_FOR_TARGET"; then
+ WINDMC_FOR_TARGET=$ac_cv_path_WINDMC_FOR_TARGET
+fi
if test -z "$ac_cv_path_WINDMC_FOR_TARGET" ; then
if test -n "$with_build_time_tools"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for windmc in $with_build_time_tools" >&5
More information about the Gcc-cvs
mailing list