]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
contrib: Use config.sub in test_installed
authorJoseph Myers <josmyers@redhat.com>
Thu, 11 Dec 2025 23:20:54 +0000 (23:20 +0000)
committerJoseph Myers <josmyers@redhat.com>
Thu, 11 Dec 2025 23:20:54 +0000 (23:20 +0000)
Correctly running GCC testsuites with an installed compiler requires
both the canonical and noncanonical versions of the target triplet:
the canonical one for where the testsuite matches on target triplets,
and the noncanonical one for various "transform" calls used to find
binutils programs.  Make test_installed use config.sub to determine
the canonical target from any value passed with --target= (and thus
make logic to locate the toplevel source directory from its own
location unconditional, as it's now used to locate config.sub).

* test_installed: Use config.sub to determine canonical target.

contrib/test_installed

index 42c3f12b7d78649686f2c3e5028d10cd61b1983c..530d21ed74eca2848945a5216c9e09bf662cc3a1 100755 (executable)
@@ -104,13 +104,16 @@ EOF
   *) break;;
   esac
 done
-  
+
+# Determine the source directory to find config.sub, whether or not
+# that is also used to locate the testsuite sources.
+file=$0
+while [ -h $file ]; do
+  file=`ls -l $file | sed s/'.* -> '//`
+done
+top_srcdir=`CDPATH=. && cd \`echo "$file" | sed 's,/*[^/]*$,,;s,^$,.,'\`/.. >/dev/null && ${PWDCMD-pwd}`
 if test x"${testsuite+set}" != x"set" && test x"${srcdir+set}" != x"set"; then
-  file=$0
-  while [ -h $file ]; do
-    file=`ls -l $file | sed s/'.* -> '//`
-  done
-  srcdir=`CDPATH=. && cd \`echo "$file" | sed 's,/*[^/]*$,,;s,^$,.,'\`/.. >/dev/null && ${PWDCMD-pwd}`
+  srcdir=$top_srcdir
 fi
 
 cat >site.exp <<EOF
@@ -130,7 +133,8 @@ set HOSTCFLAGS ""
 set HOSTCXXFLAGS ""
 EOF
 if test x${target} != x; then
-  echo "set target_triplet $target" >> site.exp
+  target_canonical=`$top_srcdir/config.sub $target`
+  echo "set target_triplet $target_canonical" >> site.exp
   echo "set target_alias $target" >> site.exp
 fi
 if test x"$ALT_CC_UNDER_TEST" != x; then