aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2017-12-07 17:50:57 +1030
committerAlan Modra <amodra@gmail.com>2017-12-07 17:52:49 +1030
commit05a5feafdd3869b81533993a23c344d60baa56de (patch)
treec055decac0fe025f4b3f4b82d5ee61202c75c636 /ld
parent34ac47f671d870c62635cac209d8df4250f20192 (diff)
downloadfsf-binutils-gdb-05a5feafdd3869b81533993a23c344d60baa56de.zip
fsf-binutils-gdb-05a5feafdd3869b81533993a23c344d60baa56de.tar.gz
fsf-binutils-gdb-05a5feafdd3869b81533993a23c344d60baa56de.tar.bz2
Rewrite check_shared_lib_support
* testsuite/lib/ld-lib.exp (check_shared_lib_support): Ask ld under test whether -shared is supported.
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog5
-rw-r--r--ld/testsuite/lib/ld-lib.exp63
2 files changed, 16 insertions, 52 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index d4758d4..5d51420 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2017-12-07 Alan Modra <amodra@gmail.com>
+
+ * testsuite/lib/ld-lib.exp (check_shared_lib_support): Ask ld
+ under test whether -shared is supported.
+
2017-12-06 Jim Wilson <jimw@sifive.com>
* testsuite/ld-elf/interleave-0.d, testsuite/ld-elf/interleave-4.d,
diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp
index 280a7b1..f960824 100644
--- a/ld/testsuite/lib/ld-lib.exp
+++ b/ld/testsuite/lib/ld-lib.exp
@@ -1782,61 +1782,20 @@ proc check_gc_sections_available { } {
}
# Returns true if -shared is supported on the target
-# Only used and accurate for ELF targets at the moment
proc check_shared_lib_support { } {
- if {![istarget aarch64*-*-elf]
- && ![istarget arc*-*-elf*]
- && ![istarget arm*-*-elf]
- && ![istarget avr-*-*]
- && ![istarget cr16-*-*]
- && ![istarget cris*-*-elf]
- && ![istarget crx-*-*]
- && ![istarget d10v-*-*]
- && ![istarget d30v-*-*]
- && ![istarget dlx-*-*]
- && ![istarget epiphany-*-*]
- && ![istarget fr30-*-*]
- && ![istarget frv-*-elf]
- && ![istarget ft32-*-*]
- && ![istarget h8300-*-*]
- && ![istarget i860-*-*]
- && ![istarget i960-*-*]
- && ![istarget ip2k-*-*]
- && ![istarget iq2000-*-*]
- && ![istarget lm32-*-elf]
- && ![istarget lm32-*-rtems*]
- && ![istarget m32c-*-*]
- && ![istarget m32r-*-elf]
- && ![istarget m6811-*-*]
- && ![istarget m6812-*-*]
- && ![istarget m68hc1*-*-*]
- && ![istarget mcore*-*-*]
- && ![istarget mep-*-*]
- && ![istarget microblaze-*-elf]
- && ![istarget mips*-*-elf]
- && ![istarget mn10200-*-*]
- && ![istarget moxie-*-*]
- && ![istarget msp430-*-*]
- && ![istarget mt-*-*]
- && ![istarget nds32*-*-elf]
- && ![istarget nios2-*-elf]
- && ![istarget or1k*-*-elf]
- && ![istarget pj-*-*]
- && ![istarget pru-*-*]
- && ![istarget rl78-*-*]
- && ![istarget rx-*-*]
- && ![istarget spu-*-*]
- && ![istarget v850*-*-*]
- && ![istarget visium-*-*]
- && ![istarget xc16x-*-elf]
- && ![istarget xgate-*-*]
- && ![istarget xstormy16-*-*]
- && ![istarget *-*-irix*]
- && ![istarget *-*-rtems] } {
- return 1
+ global shared_available_saved
+ global ld
+
+ if {![info exists shared_available_saved]} {
+ set ld_output [remote_exec host $ld "-shared"]
+ if { [ string first "not supported" $ld_output ] >= 0 } {
+ set shared_available_saved 0
+ } else {
+ set shared_available_saved 1
+ }
}
- return 0
+ return $shared_available_saved
}
# Return true if target uses genelf.em (assuming it is ELF).