aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas K. Hüttel <dilfridge@gentoo.org>2017-10-18 00:44:49 +0200
committerAndreas K. Hüttel <dilfridge@gentoo.org>2021-01-24 17:03:48 +0200
commitc5506098d2ebba50ef05f451c5bfeeca6bfba773 (patch)
tree3f21cc5065ae9b408e3caffd2434a75faaee4532
parentGentoo: ld: enable new dtags by default for linux/gnu targets (diff)
downloadbinutils-gdb-c5506098d2ebba50ef05f451c5bfeeca6bfba773.tar.gz
binutils-gdb-c5506098d2ebba50ef05f451c5bfeeca6bfba773.tar.bz2
binutils-gdb-c5506098d2ebba50ef05f451c5bfeeca6bfba773.zip
Gentoo: Pass --hash-style=sysv to ld in the testsuitegentoo/binutils-2.36-1gentoo/binutils-2.36
-rw-r--r--binutils/testsuite/lib/binutils-common.exp2
-rw-r--r--ld/testsuite/lib/ld-lib.exp16
2 files changed, 15 insertions, 3 deletions
diff --git a/binutils/testsuite/lib/binutils-common.exp b/binutils/testsuite/lib/binutils-common.exp
index 616a6cad3d..dd53b25abd 100644
--- a/binutils/testsuite/lib/binutils-common.exp
+++ b/binutils/testsuite/lib/binutils-common.exp
@@ -1280,7 +1280,7 @@ proc run_dump_test { name {extra_options {}} } {
# Add -L$srcdir/$subdir so that the linker command can use
# linker scripts in the source directory.
- set cmd "$LD $ld_extra_opt $LDFLAGS -L$srcdir/$subdir \
+ set cmd "$LD --hash-style=sysv $ld_extra_opt $LDFLAGS -L$srcdir/$subdir \
$opts(ld) -o $objfile $objfiles $opts(ld_after_inputfiles)"
# If needed then check for, or add a -Map option.
diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp
index 97b1ab3933..fd595529e1 100644
--- a/ld/testsuite/lib/ld-lib.exp
+++ b/ld/testsuite/lib/ld-lib.exp
@@ -167,7 +167,7 @@ proc default_ld_relocate { ld target objects } {
global HOSTING_EMU
remote_file host delete $target
- return [run_host_cmd_yesno "$ld" "$HOSTING_EMU -o $target -r $objects"]
+ return [run_host_cmd_yesno "$ld" "$HOSTING_EMU --hash-style=sysv -o $target -r $objects"]
}
# Check to see if ld is being invoked with a non-endian output format
@@ -198,8 +198,20 @@ proc default_ld_link { ld target objects } {
set flags [big_or_little_endian]
}
+ # Hilariously, this procedure is called sometimes with $CC and sometimes
+ # with $ld as parameter. If we want to change the default behaviour, we
+ # need to take the different option formats into account.
+ # We check the $ld parameter for
+ # - ld-new -> we're working with the new linker
+ # - otherwise -> we're likely working with the system compiler
+ if {[regexp {ld-new$} $ld]} {
+ set gentoosysv "--hash-style=sysv"
+ } else {
+ set gentoosysv "-Wl,--hash-style=sysv"
+ }
+
remote_file host delete $target
- set exec_output [run_host_cmd "$ld" "$flags -o $target $objects"]
+ set exec_output [run_host_cmd "$ld" "$gentoosysv $flags -o $target $objects"]
set exec_output [prune_warnings $exec_output]
# We don't care if we get a warning about a non-existent start