diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2010-04-30 18:27:32 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2010-04-30 18:27:32 +0000 |
commit | 0672748ac053cc4f8159af0d21ca88ae8b3778e6 (patch) | |
tree | 6ce1177f0a49e04ca388d25edc23db44dd3fd1b3 /ld | |
parent | 705b5767b7302e9fdd64d2a2ec5942ff22975a98 (diff) | |
download | gdb-0672748ac053cc4f8159af0d21ca88ae8b3778e6.zip gdb-0672748ac053cc4f8159af0d21ca88ae8b3778e6.tar.gz gdb-0672748ac053cc4f8159af0d21ca88ae8b3778e6.tar.bz2 |
Remove relocation against discarded sections for relocatable link.
bfd/
2010-04-30 H.J. Lu <hongjiu.lu@intel.com>
PR ld/11542
* elf-bfd.h (RELOC_AGAINST_DISCARDED_SECTION): New.
* elf32-i386.c (elf_i386_relocate_section): Use it.
* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
ld/testsuite/
2010-04-30 H.J. Lu <hongjiu.lu@intel.com>
PR ld/11542
* ld-elf/discard.ld: New.
* ld-elf/discard1.d: Likewise.
* ld-elf/discard1.s: Likewise.
* ld-elf/discard2.d: Likewise.
* ld-elf/discard2.s: Likewise.
* ld-elf/discard3.d: Likewise.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/testsuite/ChangeLog | 10 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/discard.ld | 3 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/discard1.d | 9 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/discard1.s | 11 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/discard2.d | 9 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/discard2.s | 12 | ||||
-rw-r--r-- | ld/testsuite/ld-elf/discard3.d | 11 |
7 files changed, 65 insertions, 0 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 2239cf6..34666d9 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,13 @@ +2010-04-30 H.J. Lu <hongjiu.lu@intel.com> + + PR ld/11542 + * ld-elf/discard.ld: New. + * ld-elf/discard1.d: Likewise. + * ld-elf/discard1.s: Likewise. + * ld-elf/discard2.d: Likewise. + * ld-elf/discard2.s: Likewise. + * ld-elf/discard3.d: Likewise. + 2010-04-22 Alan Modra <amodra@gmail.com> * ld-elf/extract-symbol-1sec.d: Update lma. diff --git a/ld/testsuite/ld-elf/discard.ld b/ld/testsuite/ld-elf/discard.ld new file mode 100644 index 0000000..bd094f2 --- /dev/null +++ b/ld/testsuite/ld-elf/discard.ld @@ -0,0 +1,3 @@ +SECTIONS { + /DISCARD/ : { *(.discard) } +} diff --git a/ld/testsuite/ld-elf/discard1.d b/ld/testsuite/ld-elf/discard1.d new file mode 100644 index 0000000..b80fbf0 --- /dev/null +++ b/ld/testsuite/ld-elf/discard1.d @@ -0,0 +1,9 @@ +#source: discard1.s +#ld: -r -T discard.ld +#readelf: -r +#target: x86_64-*-linux-gnu i?86-*-linux-gnu + +Relocation section '.rel.*.debug_info' at offset 0x[0-9a-z]+ contains 1 entries: +[ \t]+Offset[ \t]+Info[ \t]+Type[ \t]+Sym.* +[0-9a-f]+[ \t]+[0-9a-f]+[ \t]+R_.*[ \t]+[0-9a-f]+[ \t]+bar.* +#pass diff --git a/ld/testsuite/ld-elf/discard1.s b/ld/testsuite/ld-elf/discard1.s new file mode 100644 index 0000000..ac3b92f --- /dev/null +++ b/ld/testsuite/ld-elf/discard1.s @@ -0,0 +1,11 @@ + .globl bar + .data +bar: + .long 1 + .section .discard,"aw",%progbits + .align 4 +there: + .long 2 + .section .debug_info,"",%progbits + .long bar + .long there diff --git a/ld/testsuite/ld-elf/discard2.d b/ld/testsuite/ld-elf/discard2.d new file mode 100644 index 0000000..65a3abe --- /dev/null +++ b/ld/testsuite/ld-elf/discard2.d @@ -0,0 +1,9 @@ +#source: discard2.s +#ld: -r -T discard.ld +#readelf: -r +#target: x86_64-*-linux-gnu i?86-*-linux-gnu + +Relocation section '.rel.*.debug_info' at offset 0x[0-9a-z]+ contains 1 entries: +[ \t]+Offset[ \t]+Info[ \t]+Type[ \t]+Sym.* +[0-9a-f]+[ \t]+[0-9a-f]+[ \t]+R_.*[ \t]+[0-9a-f]+[ \t]+here.* +#pass diff --git a/ld/testsuite/ld-elf/discard2.s b/ld/testsuite/ld-elf/discard2.s new file mode 100644 index 0000000..27b66f4 --- /dev/null +++ b/ld/testsuite/ld-elf/discard2.s @@ -0,0 +1,12 @@ + .globl here + .data +here: + .long 1 + .globl there + .section .discard,"aw",%progbits + .align 4 +there: + .long 2 + .section .debug_info,"",%progbits + .long here + .long there diff --git a/ld/testsuite/ld-elf/discard3.d b/ld/testsuite/ld-elf/discard3.d new file mode 100644 index 0000000..07962b5 --- /dev/null +++ b/ld/testsuite/ld-elf/discard3.d @@ -0,0 +1,11 @@ +#source: discard1.s +#source: discard2.s +#ld: -r -T discard.ld +#readelf: -r +#target: x86_64-*-linux-gnu i?86-*-linux-gnu + +Relocation section '.rel.*.debug_info' at offset 0x[0-9a-z]+ contains 2 entries: +[ \t]+Offset[ \t]+Info[ \t]+Type[ \t]+Sym.* +[0-9a-f]+[ \t]+[0-9a-f]+[ \t]+R_.*[ \t]+[0-9a-f]+[ \t]+bar.* +[0-9a-f]+[ \t]+[0-9a-f]+[ \t]+R_.*[ \t]+[0-9a-f]+[ \t]+here.* +#pass |