diff options
author | Hans-Peter Nilsson <hp@axis.com> | 2012-04-24 16:14:31 +0000 |
---|---|---|
committer | Hans-Peter Nilsson <hp@axis.com> | 2012-04-24 16:14:31 +0000 |
commit | 4646d23b552899b6993d5d71f31e8d8206b3d3ca (patch) | |
tree | b11b3abbc19ecac663c550c02911444e97543f62 /ld | |
parent | 2758625139030bb7c1cdffcc99ce46a27d6ca0ce (diff) | |
download | gdb-4646d23b552899b6993d5d71f31e8d8206b3d3ca.zip gdb-4646d23b552899b6993d5d71f31e8d8206b3d3ca.tar.gz gdb-4646d23b552899b6993d5d71f31e8d8206b3d3ca.tar.bz2 |
PR ld/13990
* ld-arm/arm-elf.exp: Run gc-hidden-1.
* ld-arm/gc-hidden-1.d: New test-file.
* ld-arm/gcdfn.s, ld-arm/hideall.ld, ld-arm/hidfn.s,
ld-arm/main.s: New files.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/testsuite/ChangeLog | 8 | ||||
-rw-r--r-- | ld/testsuite/ld-arm/arm-elf.exp | 1 | ||||
-rw-r--r-- | ld/testsuite/ld-arm/gc-hidden-1.d | 25 | ||||
-rw-r--r-- | ld/testsuite/ld-arm/gcdfn.s | 8 | ||||
-rw-r--r-- | ld/testsuite/ld-arm/hideall.ld | 1 | ||||
-rw-r--r-- | ld/testsuite/ld-arm/hidfn.s | 7 | ||||
-rw-r--r-- | ld/testsuite/ld-arm/main.s | 8 |
7 files changed, 58 insertions, 0 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index e91ed61..c18ba8e 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2012-04-24 Hans-Peter Nilsson <hp@axis.com> + + PR ld/13990 + * ld-arm/arm-elf.exp: Run gc-hidden-1. + * ld-arm/gc-hidden-1.d: New test-file. + * ld-arm/gcdfn.s, ld-arm/hideall.ld, ld-arm/hidfn.s, + ld-arm/main.s: New files. + 2012-04-23 Andreas Schwab <schwab@linux-m68k.org> * ld-pie/pie.exp: Remove extra braces. diff --git a/ld/testsuite/ld-arm/arm-elf.exp b/ld/testsuite/ld-arm/arm-elf.exp index 05dc7bb..b6eb3d3 100644 --- a/ld/testsuite/ld-arm/arm-elf.exp +++ b/ld/testsuite/ld-arm/arm-elf.exp @@ -759,3 +759,4 @@ run_dump_test "attr-merge-vfp-6r" run_dump_test "attr-merge-incompatible" run_dump_test "unresolved-1" run_dump_test "unresolved-1-dyn" +run_dump_test "gc-hidden-1" diff --git a/ld/testsuite/ld-arm/gc-hidden-1.d b/ld/testsuite/ld-arm/gc-hidden-1.d new file mode 100644 index 0000000..80c7e9e --- /dev/null +++ b/ld/testsuite/ld-arm/gc-hidden-1.d @@ -0,0 +1,25 @@ +#target: arm*-*-*eabi +#source: main.s +#source: gcdfn.s +#source: hidfn.s +#ld: --gc-sections --shared --version-script hideall.ld +#objdump: -dRT + +# See PR ld/13990: a forced-local PLT reference to a +# forced-local symbol is GC'ed, trigging a BFD_ASSERT. + +.*: file format elf32-.* + +DYNAMIC SYMBOL TABLE: +0+124 l d .text 0+ .text +0+ g DO \*ABS\* 0+ NS NS + +Disassembly of section .text: + +0+124 <_start>: + 124: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\) + 128: eb000000 bl 130 <hidfn> + 12c: e8bd8000 pop {pc} + +0+130 <hidfn>: + 130: e8bd8000 pop {pc} diff --git a/ld/testsuite/ld-arm/gcdfn.s b/ld/testsuite/ld-arm/gcdfn.s new file mode 100644 index 0000000..f2afae7 --- /dev/null +++ b/ld/testsuite/ld-arm/gcdfn.s @@ -0,0 +1,8 @@ + .text + .globl gcdfn + .type gcdfn, %function +gcdfn: + str lr, [sp, #-4]! + bl hidfn(PLT) + ldmfd sp!, {pc} + .size gcdfn, . - gcdfn diff --git a/ld/testsuite/ld-arm/hideall.ld b/ld/testsuite/ld-arm/hideall.ld new file mode 100644 index 0000000..077d6b5 --- /dev/null +++ b/ld/testsuite/ld-arm/hideall.ld @@ -0,0 +1 @@ +NS { local: *; }; diff --git a/ld/testsuite/ld-arm/hidfn.s b/ld/testsuite/ld-arm/hidfn.s new file mode 100644 index 0000000..a66b558 --- /dev/null +++ b/ld/testsuite/ld-arm/hidfn.s @@ -0,0 +1,7 @@ + .text + .globl hidfn + .hidden hidfn + .type hidfn, %function +hidfn: + ldmfd sp!, {pc} + .size hidfn, . - hidfn diff --git a/ld/testsuite/ld-arm/main.s b/ld/testsuite/ld-arm/main.s new file mode 100644 index 0000000..046d19d --- /dev/null +++ b/ld/testsuite/ld-arm/main.s @@ -0,0 +1,8 @@ + .text + .globl _start + .type _start, %function +_start: + str lr, [sp, #-4]! + bl hidfn(PLT) + ldmfd sp!, {pc} + .size _start, . - _start |