From b59f8a90ba0866a8605106fdb09389833c7fe8ad Mon Sep 17 00:00:00 2001 From: =?utf8?q?Cl=C3=A9ment=20Chigot?= Date: Wed, 14 Sep 2022 15:53:18 +0200 Subject: [PATCH] ld/testsuite: allow to force another directory for gcc linker Add a new variable "ld_testsuite_tmpdir" to enable manual configuration of the -B flag added to gcc calls. This flag ensure that gcc is invoking the linker and the assembler we want to test. When launching the testsuite outside of the build tree, the links made by the testsuite in tmpdir/ld will point to nothing. Thus, even with the PATH correctly setup towards the linker directory, gcc might end up falling back to its default linker. Hence this variable to ensure that gcc, whatever happens, is using the linker we want. ld/ChangeLog: * testsuite/config/default.exp: Allow to change -B flag with ld_testsuite_bindir variable. --- ld/testsuite/config/default.exp | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/ld/testsuite/config/default.exp b/ld/testsuite/config/default.exp index 103b426bbd8..c1175c42760 100644 --- a/ld/testsuite/config/default.exp +++ b/ld/testsuite/config/default.exp @@ -57,14 +57,21 @@ remote_exec host "mkdir -p tmpdir" # Make symlinks from tmpdir/ld to the linker and assembler in the # build tree, so that we can use a -B option to gcc to force it to use -# the newly built linker and assembler. -if {![file isdirectory tmpdir/ld]} then { - catch "exec mkdir tmpdir/ld" status - catch "exec ln -s ../../ld-new tmpdir/ld/ld" status - catch "exec ln -s ld tmpdir/ld/collect-ld" status - catch "exec ln -s ../../../gas/as-new tmpdir/ld/as" status -} -set gcc_B_opt "-B[pwd]/tmpdir/ld/" +# the newly built linker and assembler. +# The variable ld_testsuite_bindir allows to provide another directory +# for -B option. This can be useful when launching the testsuite outside +# the build tree as the symlinks will be wrong in this case. +if {[info exists ld_testsuite_bindir]} { + set gcc_B_opt "-B$ld_testsuite_bindir/" +} else { + if {![file isdirectory tmpdir/ld]} then { + catch "exec mkdir tmpdir/ld" status + catch "exec ln -s ../../ld-new tmpdir/ld/ld" status + catch "exec ln -s ld tmpdir/ld/collect-ld" status + catch "exec ln -s ../../../gas/as-new tmpdir/ld/as" status + } + set gcc_B_opt "-B[pwd]/tmpdir/ld/" +} # load the linker path set ld_L_opt "" -- 2.30.2