diff options
author | Maciej W. Rozycki <macro@mips.com> | 2018-01-31 14:47:12 +0000 |
---|---|---|
committer | Maciej W. Rozycki <macro@mips.com> | 2018-01-31 14:47:12 +0000 |
commit | 8988502d75343349cee39575c0e4a0b33f7c80e0 (patch) | |
tree | a5ed05a601c9c3c79dc2e006912beda909693490 /ld/testsuite/ld-elf | |
parent | f3a9baf18db14707276a8c911d4a6409ad965926 (diff) | |
download | binutils-8988502d75343349cee39575c0e4a0b33f7c80e0.zip binutils-8988502d75343349cee39575c0e4a0b33f7c80e0.tar.gz binutils-8988502d75343349cee39575c0e4a0b33f7c80e0.tar.bz2 |
MIPS/LD/testsuite: Correct dynamic links with VR4100, VR4300 and VR5000
Correct LD test suite failures with VR4100, VR4300 and VR5000 bare metal
MIPS/ELF targets which do not default to linking with shared libraries,
which leads to link failures like:
.../ld/ld-new: cannot find -lcomm-data
FAIL: Common symbol override test
or:
.../ld/ld-new: attempted static link of dynamic object `tmpdir/pr14170.so'
FAIL: PR ld/14170
removing:
FAIL: Build pr22471b.so
FAIL: Build pr22471
FAIL: Build pr22649-2b.so
FAIL: Build pr22649-2d.so
FAIL: Build pr22150
FAIL: PR ld/14170
FAIL: --gc-sections with __gxx_personality
test failures.
ld/
* testsuite/ld-elf/comm-data.exp: Pass `-call_shared' to links
involving a shared library for `mips*vr4100*-*-elf*',
`mips*vr4300*-*-elf*' and `mips*vr5000*-*-elf*' targets.
* testsuite/ld-elf/provide-hidden.exp: Likewise.
* testsuite/ld-elf/shared.exp: Likewise.
* testsuite/ld-gc/gc.exp: Likewise.
* testsuite/ld-mips-elf/comm-data.exp: Likewise.
Diffstat (limited to 'ld/testsuite/ld-elf')
-rw-r--r-- | ld/testsuite/ld-elf/comm-data.exp | 6 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/provide-hidden.exp | 14 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/shared.exp | 19 |
3 files changed, 30 insertions, 9 deletions
diff --git a/ld/testsuite/ld-elf/comm-data.exp b/ld/testsuite/ld-elf/comm-data.exp index b615074..d2c2ca5 100644 --- a/ld/testsuite/ld-elf/comm-data.exp +++ b/ld/testsuite/ld-elf/comm-data.exp @@ -41,6 +41,12 @@ set LFLAGS "" if [istarget "tic6x-*-*"] { append LFLAGS " -melf32_tic6x_le" } +# These targets do not default to linking with shared libraries. +if { [istarget "mips*vr4100*-*-elf*"] \ + || [istarget "mips*vr4300*-*-elf*"] \ + || [istarget "mips*vr5000*-*-elf*"] } { + append LFLAGS " -call_shared" +} set testname "Common symbol override test" diff --git a/ld/testsuite/ld-elf/provide-hidden.exp b/ld/testsuite/ld-elf/provide-hidden.exp index 2c64cb4..1fc4e61 100644 --- a/ld/testsuite/ld-elf/provide-hidden.exp +++ b/ld/testsuite/ld-elf/provide-hidden.exp @@ -35,6 +35,12 @@ set AFLAGS_PIC "" if [istarget "tic6x-*-*"] { append AFLAGS_PIC " -mpic -mpid=near" } +# These targets do not default to linking with shared libraries. +if { [istarget "mips*vr4100*-*-elf*"] \ + || [istarget "mips*vr4300*-*-elf*"] \ + || [istarget "mips*vr5000*-*-elf*"] } { + append LFLAGS " -call_shared" +} set testname "PROVIDE_HIDDEN test" @@ -77,7 +83,7 @@ run_ld_link_tests [list \ "provide-hidden-3"] \ [list \ "$testname 4" \ - "-T provide-hidden-1.ld" "tmpdir/provide-hidden-s.so" \ + "$LFLAGS -T provide-hidden-1.ld" "tmpdir/provide-hidden-s.so" \ "" \ [list provide-hidden-3.s] \ [list "readelf -s provide-hidden-dynsec.nd"] \ @@ -93,7 +99,7 @@ run_ld_link_tests [list \ "provide-hidden-5"] \ [list \ "$testname 6" \ - "-T provide-hidden-1.ld" "tmpdir/provide-hidden-s.so" \ + "$LFLAGS -T provide-hidden-1.ld" "tmpdir/provide-hidden-s.so" \ "" \ [list provide-hidden-4.s] \ [list \ @@ -129,7 +135,7 @@ run_ld_link_tests [list \ "provide-hidden-9"] \ [list \ "$testname 10" \ - "-T provide-hidden-2.ld" "tmpdir/provide-hidden-s.so" \ + "$LFLAGS -T provide-hidden-2.ld" "tmpdir/provide-hidden-s.so" \ "" \ [list provide-hidden-3.s] \ [list "readelf -s provide-hidden-dynabs.nd"] \ @@ -145,7 +151,7 @@ run_ld_link_tests [list \ "provide-hidden-11"] \ [list \ "$testname 12" \ - "-T provide-hidden-2.ld" "tmpdir/provide-hidden-s.so" \ + "$LFLAGS -T provide-hidden-2.ld" "tmpdir/provide-hidden-s.so" \ "" \ [list provide-hidden-4.s] \ [list \ diff --git a/ld/testsuite/ld-elf/shared.exp b/ld/testsuite/ld-elf/shared.exp index a1a44ff..5d9ed25 100644 --- a/ld/testsuite/ld-elf/shared.exp +++ b/ld/testsuite/ld-elf/shared.exp @@ -57,6 +57,12 @@ set hpux "" if [istarget "*-*-hpux*"] { set hpux "--defsym HPUX=1" } +# These targets do not default to linking with shared libraries. +if { [istarget "mips*vr4100*-*-elf*"] \ + || [istarget "mips*vr4300*-*-elf*"] \ + || [istarget "mips*vr5000*-*-elf*"] } { + append LFLAGS " -call_shared" +} if [is_underscore_target] { set ASFLAGS "$ASFLAGS --defsym UNDERSCORE=1" @@ -332,7 +338,8 @@ run_ld_link_tests { # bfin does not currently support copy relocs. run_ld_link_tests [list \ [list "PR ld/14170" \ - "--no-dynamic-linker tmpdir/pr14170a.o tmpdir/pr14170.so" "" $hpux \ + "$LFLAGS --no-dynamic-linker tmpdir/pr14170a.o tmpdir/pr14170.so" "" \ + $hpux \ {pr14170c.s} { } "pr14170" ] \ ] "bfin-*-*" @@ -361,7 +368,7 @@ run_ld_link_tests { {"Build shared library for broken linker scrip test" "-shared --hash-style=sysv" "" "" "note-3.s" {} "note-3.so" } {"Link using broken linker script" - "--script note-3.t tmpdir/note-3.so" "" "" "" + "$LFLAGS --script note-3.t tmpdir/note-3.so" "" "" "" { { ld "note-3.l" } } "a.out" } } @@ -382,7 +389,9 @@ run_ld_link_tests { # bfin does not currently support copy relocs. run_ld_link_tests { {"pr17068 link --as-needed lib in group" - "--as-needed --no-dynamic-linker" "--start-group tmpdir/pr17068a.a tmpdir/pr17068.so tmpdir/pr17068b.a --end-group" "" + "$LFLAGS --as-needed --no-dynamic-linker" + "--start-group tmpdir/pr17068a.a tmpdir/pr17068.so tmpdir/pr17068b.a\ + --end-group" "" {start.s pr17068.s} {} "pr17068"} } "bfin-*-*" @@ -419,7 +428,7 @@ setup_xfail "hppa*64*-*-hpux*" run_ld_link_tests [list \ [list \ "pr20995" \ - "" "tmpdir/pr20995.so" "$AFLAGS_NONPIC" \ + "$LFLAGS" "tmpdir/pr20995.so" "$AFLAGS_NONPIC" \ {pr20995a.s} {{readelf {-S --wide} pr20995.r}} "pr20995"]] # xfail on arm*-*-eabi* is particularly because of no support of GNU_RELRO. @@ -429,7 +438,7 @@ setup_xfail "hppa*64*-*-hpux*" run_ld_link_tests [list \ [list \ "pr20995-2" \ - "" "tmpdir/pr20995-2.so" "$AFLAGS_NONPIC" \ + "$LFLAGS" "tmpdir/pr20995-2.so" "$AFLAGS_NONPIC" \ {pr20995a.s} {{readelf {-S --wide} pr20995.r}} "pr20995-2"]] setup_xfail "tic6x-*-*" |