mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-27 14:39:09 +08:00
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.
This commit is contained in:
10
ld/ChangeLog
10
ld/ChangeLog
@ -1,3 +1,13 @@
|
|||||||
|
2018-01-31 Maciej W. Rozycki <macro@mips.com>
|
||||||
|
|
||||||
|
* 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.
|
||||||
|
|
||||||
2018-01-31 Maciej W. Rozycki <macro@mips.com>
|
2018-01-31 Maciej W. Rozycki <macro@mips.com>
|
||||||
|
|
||||||
* testsuite/ld-elf/elf.exp: Move shared library tests over to...
|
* testsuite/ld-elf/elf.exp: Move shared library tests over to...
|
||||||
|
@ -41,6 +41,12 @@ set LFLAGS ""
|
|||||||
if [istarget "tic6x-*-*"] {
|
if [istarget "tic6x-*-*"] {
|
||||||
append LFLAGS " -melf32_tic6x_le"
|
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"
|
set testname "Common symbol override test"
|
||||||
|
|
||||||
|
@ -35,6 +35,12 @@ set AFLAGS_PIC ""
|
|||||||
if [istarget "tic6x-*-*"] {
|
if [istarget "tic6x-*-*"] {
|
||||||
append AFLAGS_PIC " -mpic -mpid=near"
|
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"
|
set testname "PROVIDE_HIDDEN test"
|
||||||
|
|
||||||
@ -77,7 +83,7 @@ run_ld_link_tests [list \
|
|||||||
"provide-hidden-3"] \
|
"provide-hidden-3"] \
|
||||||
[list \
|
[list \
|
||||||
"$testname 4" \
|
"$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 provide-hidden-3.s] \
|
||||||
[list "readelf -s provide-hidden-dynsec.nd"] \
|
[list "readelf -s provide-hidden-dynsec.nd"] \
|
||||||
@ -93,7 +99,7 @@ run_ld_link_tests [list \
|
|||||||
"provide-hidden-5"] \
|
"provide-hidden-5"] \
|
||||||
[list \
|
[list \
|
||||||
"$testname 6" \
|
"$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 provide-hidden-4.s] \
|
||||||
[list \
|
[list \
|
||||||
@ -129,7 +135,7 @@ run_ld_link_tests [list \
|
|||||||
"provide-hidden-9"] \
|
"provide-hidden-9"] \
|
||||||
[list \
|
[list \
|
||||||
"$testname 10" \
|
"$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 provide-hidden-3.s] \
|
||||||
[list "readelf -s provide-hidden-dynabs.nd"] \
|
[list "readelf -s provide-hidden-dynabs.nd"] \
|
||||||
@ -145,7 +151,7 @@ run_ld_link_tests [list \
|
|||||||
"provide-hidden-11"] \
|
"provide-hidden-11"] \
|
||||||
[list \
|
[list \
|
||||||
"$testname 12" \
|
"$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 provide-hidden-4.s] \
|
||||||
[list \
|
[list \
|
||||||
|
@ -57,6 +57,12 @@ set hpux ""
|
|||||||
if [istarget "*-*-hpux*"] {
|
if [istarget "*-*-hpux*"] {
|
||||||
set hpux "--defsym HPUX=1"
|
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] {
|
if [is_underscore_target] {
|
||||||
set ASFLAGS "$ASFLAGS --defsym UNDERSCORE=1"
|
set ASFLAGS "$ASFLAGS --defsym UNDERSCORE=1"
|
||||||
@ -332,7 +338,8 @@ run_ld_link_tests {
|
|||||||
# bfin does not currently support copy relocs.
|
# bfin does not currently support copy relocs.
|
||||||
run_ld_link_tests [list \
|
run_ld_link_tests [list \
|
||||||
[list "PR ld/14170" \
|
[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" ] \
|
{pr14170c.s} { } "pr14170" ] \
|
||||||
] "bfin-*-*"
|
] "bfin-*-*"
|
||||||
|
|
||||||
@ -361,7 +368,7 @@ run_ld_link_tests {
|
|||||||
{"Build shared library for broken linker scrip test"
|
{"Build shared library for broken linker scrip test"
|
||||||
"-shared --hash-style=sysv" "" "" "note-3.s" {} "note-3.so" }
|
"-shared --hash-style=sysv" "" "" "note-3.s" {} "note-3.so" }
|
||||||
{"Link using broken linker script"
|
{"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" } }
|
{ { ld "note-3.l" } }
|
||||||
"a.out" }
|
"a.out" }
|
||||||
}
|
}
|
||||||
@ -382,7 +389,9 @@ run_ld_link_tests {
|
|||||||
# bfin does not currently support copy relocs.
|
# bfin does not currently support copy relocs.
|
||||||
run_ld_link_tests {
|
run_ld_link_tests {
|
||||||
{"pr17068 link --as-needed lib in group"
|
{"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"}
|
{start.s pr17068.s} {} "pr17068"}
|
||||||
} "bfin-*-*"
|
} "bfin-*-*"
|
||||||
|
|
||||||
@ -419,7 +428,7 @@ setup_xfail "hppa*64*-*-hpux*"
|
|||||||
run_ld_link_tests [list \
|
run_ld_link_tests [list \
|
||||||
[list \
|
[list \
|
||||||
"pr20995" \
|
"pr20995" \
|
||||||
"" "tmpdir/pr20995.so" "$AFLAGS_NONPIC" \
|
"$LFLAGS" "tmpdir/pr20995.so" "$AFLAGS_NONPIC" \
|
||||||
{pr20995a.s} {{readelf {-S --wide} pr20995.r}} "pr20995"]]
|
{pr20995a.s} {{readelf {-S --wide} pr20995.r}} "pr20995"]]
|
||||||
|
|
||||||
# xfail on arm*-*-eabi* is particularly because of no support of GNU_RELRO.
|
# 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 \
|
run_ld_link_tests [list \
|
||||||
[list \
|
[list \
|
||||||
"pr20995-2" \
|
"pr20995-2" \
|
||||||
"" "tmpdir/pr20995-2.so" "$AFLAGS_NONPIC" \
|
"$LFLAGS" "tmpdir/pr20995-2.so" "$AFLAGS_NONPIC" \
|
||||||
{pr20995a.s} {{readelf {-S --wide} pr20995.r}} "pr20995-2"]]
|
{pr20995a.s} {{readelf {-S --wide} pr20995.r}} "pr20995-2"]]
|
||||||
|
|
||||||
setup_xfail "tic6x-*-*"
|
setup_xfail "tic6x-*-*"
|
||||||
|
@ -116,11 +116,18 @@ if { [is_elf_format] && [check_shared_lib_support] } then {
|
|||||||
if { [istarget tic6x-*] } then {
|
if { [istarget tic6x-*] } then {
|
||||||
set gasopt "-mpic -mpid=near"
|
set gasopt "-mpic -mpid=near"
|
||||||
}
|
}
|
||||||
|
# These targets do not default to linking with shared libraries.
|
||||||
|
set old_ldflags $LDFLAGS
|
||||||
|
if { [istarget "mips*vr4100*-*-elf*"] \
|
||||||
|
|| [istarget "mips*vr4300*-*-elf*"] \
|
||||||
|
|| [istarget "mips*vr5000*-*-elf*"] } {
|
||||||
|
append LDFLAGS " -call_shared"
|
||||||
|
}
|
||||||
if {![ld_assemble_flags $as $gasopt $srcdir/$subdir/libpersonality.s tmpdir/libpersonality.o]
|
if {![ld_assemble_flags $as $gasopt $srcdir/$subdir/libpersonality.s tmpdir/libpersonality.o]
|
||||||
|| ![ld_link $ld tmpdir/libpersonality.so "-shared tmpdir/libpersonality.o"] } then {
|
|| ![ld_link $ld tmpdir/libpersonality.so "-shared tmpdir/libpersonality.o"] } then {
|
||||||
fail libpersonality
|
fail libpersonality
|
||||||
} else {
|
} else {
|
||||||
run_dump_test "personality"
|
run_dump_test "personality" [list [list ld $LFLAGS]]
|
||||||
}
|
}
|
||||||
run_dump_test "pr18223"
|
run_dump_test "pr18223"
|
||||||
if {![ld_assemble_flags $as $gasopt $srcdir/$subdir/pr20022a.s tmpdir/pr20022a.o]
|
if {![ld_assemble_flags $as $gasopt $srcdir/$subdir/pr20022a.s tmpdir/pr20022a.o]
|
||||||
@ -129,6 +136,7 @@ if { [is_elf_format] && [check_shared_lib_support] } then {
|
|||||||
} else {
|
} else {
|
||||||
run_dump_test "pr20022"
|
run_dump_test "pr20022"
|
||||||
}
|
}
|
||||||
|
set LDFLAGS $old_ldflags
|
||||||
}
|
}
|
||||||
|
|
||||||
if { [is_remote host] || [which $CC] != 0 } {
|
if { [is_remote host] || [which $CC] != 0 } {
|
||||||
|
@ -136,7 +136,8 @@ proc mips_comm_data_test { abi flag emul reloc } {
|
|||||||
run_ld_link_tests [list \
|
run_ld_link_tests [list \
|
||||||
[list \
|
[list \
|
||||||
"$testname" \
|
"$testname" \
|
||||||
"$LDFLAGS $ZFLAG -T ../ld-elf/comm-data2.ld -Ltmpdir -lmips-$abi-$reloc-comm-data" "" \
|
"$LDFLAGS -call_shared $ZFLAG -T ../ld-elf/comm-data2.ld -Ltmpdir\
|
||||||
|
-lmips-$abi-$reloc-comm-data" "" \
|
||||||
"$AFLAGS -call_nonpic" \
|
"$AFLAGS -call_nonpic" \
|
||||||
{ ../ld-elf/comm-data2.s } \
|
{ ../ld-elf/comm-data2.s } \
|
||||||
{ \
|
{ \
|
||||||
|
Reference in New Issue
Block a user