diff options
author | Maciej W. Rozycki <macro@linux-mips.org> | 2013-08-24 22:37:18 +0000 |
---|---|---|
committer | Maciej W. Rozycki <macro@linux-mips.org> | 2013-08-24 22:37:18 +0000 |
commit | fe9cd7ab17990a589ed8e14c4a6157d218ae9ae5 (patch) | |
tree | 968e9fc63d7924dace758dfe1af914aca29a4078 /ld/testsuite/ld-elf/comm-data.exp | |
parent | aea6ea421db3f7327c4943cbe13abceb42b84be6 (diff) | |
download | gdb-fe9cd7ab17990a589ed8e14c4a6157d218ae9ae5.zip gdb-fe9cd7ab17990a589ed8e14c4a6157d218ae9ae5.tar.gz gdb-fe9cd7ab17990a589ed8e14c4a6157d218ae9ae5.tar.bz2 |
* ld-elf/comm-data.exp: Use check_shared_lib_support rather than
explicit patterns for test target qualification. Define extra
tool flags for *-*-hpux* and tic6x-*-* targets. Link with a
linker script. Use alternative patterns for targets that do not
eliminate copy relocs, currently mn10300-*-* and vax-*-*.
* ld-elf/comm-data2.s: Handle HPUX's `.comm' syntax.
* ld-elf/comm-data2.ld: New test linker script.
* ld-elf/comm-data2.xd: Match section's VMA too. Ignore ASCII
data dump.
* ld-elf/comm-data2r.rd: New test pattern.
* ld-elf/comm-data2r.sd: New test pattern.
* ld-elf/comm-data2r.xd: New test pattern.
* ld-mips-elf/comm-data.exp: Use check_shared_lib_support rather
than an explicit pattern for test target qualification. Link
with a linker script.
Diffstat (limited to 'ld/testsuite/ld-elf/comm-data.exp')
-rw-r--r-- | ld/testsuite/ld-elf/comm-data.exp | 49 |
1 files changed, 33 insertions, 16 deletions
diff --git a/ld/testsuite/ld-elf/comm-data.exp b/ld/testsuite/ld-elf/comm-data.exp index e180693..71613c5 100644 --- a/ld/testsuite/ld-elf/comm-data.exp +++ b/ld/testsuite/ld-elf/comm-data.exp @@ -24,17 +24,22 @@ # Written by Maciej W. Rozycki <macro@codesourcery.com> # -# Exclude non-ELF targets. -if ![is_elf_format] { +# This test is for ELF shared-library targets. +if { ![is_elf_format] || ![check_shared_lib_support] } { return } -# Exclude some more targets; feel free to include your favorite one -# if you like. -if { ![istarget *-*-linux*] - && ![istarget *-*-nacl*] - && ![istarget *-*-gnu*] } { - return +# This target requires extra GAS options when building code for shared +# libraries. +set AFLAGS_PIC "" +if [istarget "tic6x-*-*"] { + append AFLAGS_PIC " -mpic -mpid=near" +} +# This target requires a non-default emulation for successful shared +# library/executable builds. +set LFLAGS "" +if [istarget "tic6x-*-*"] { + append LFLAGS " -melf32_tic6x_le" } set testname "Common symbol override test" @@ -43,8 +48,8 @@ set testname "Common symbol override test" run_ld_link_tests [list \ [list \ "$testname (auxiliary shared object build)" \ - "-shared" "" \ - "" \ + "$LFLAGS -shared" "" \ + "$AFLAGS_PIC" \ { comm-data1.s } \ { \ { readelf -s comm-data1.sd } \ @@ -58,23 +63,35 @@ set AFLAGS "" if [is_elf64 "tmpdir/libcomm-data.so"] { append AFLAGS " --defsym ELF64=1" } +# HPUX targets use a different .comm syntax. +if [istarget "*-*-hpux*"] { + append AFLAGS " --defsym HPUX=1" +} setup_xfail "arm*-*-*" "ld/13802" +# List targets here that keep copy relocs rather than eliminating +# them where possible in favour to dynamic relocs in the relevant +# loadable sections; see also the "-z nocopyreloc" command-line +# option and the ELIMINATE_COPY_RELOCS macro some backends use. +set copy_reloc [expr [istarget mn10300-*-*] || [istarget vax-*-*]] + # Verify that a common symbol has been converted to an undefined # reference to the global symbol of the same name defined above # and that the debug reference has been dropped. run_ld_link_tests [list \ [list \ "$testname" \ - "-Ltmpdir -lcomm-data" "" \ + "$LFLAGS -T comm-data2.ld -Ltmpdir -lcomm-data" "" \ "$AFLAGS" \ { comm-data2.s } \ - { \ - { readelf -s comm-data2.sd } \ - { readelf -r comm-data2.rd } \ - { readelf "-x .debug_foo" comm-data2.xd } \ - } \ + [list \ + [list readelf -s \ + [expr { $copy_reloc ? "comm-data2r.sd" : "comm-data2.sd"}]] \ + [list readelf -r \ + [expr { $copy_reloc ? "comm-data2r.rd" : "comm-data2.rd"}]] \ + [list readelf "-x .debug_foo" \ + [expr { $copy_reloc ? "comm-data2r.xd" : "comm-data2.xd"}]]] \ "comm-data" \ ] \ [list \ |