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.
diff --git a/contrib/test_installed b/contrib/test_installed
index 42c3f12b7d78..530d21ed74ec 100755
--- a/contrib/test_installed
+++ b/contrib/test_installed
@@ -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
--
Joseph S. Myers
[email protected]