diff options
author | Nick Clifton <nickc@redhat.com> | 2011-06-10 14:04:25 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2011-06-10 14:04:25 +0000 |
commit | 894891db7f1ff09f021a0d2c8bb471f3a73a776a (patch) | |
tree | 92496b5fd1ebc0c60c95f341ca77699e87569545 /ld/testsuite/ld-elf/note-3.t | |
parent | 12af614e24384fa939bbc1b55e40cfc28322c3a4 (diff) | |
download | binutils-894891db7f1ff09f021a0d2c8bb471f3a73a776a.zip binutils-894891db7f1ff09f021a0d2c8bb471f3a73a776a.tar.gz binutils-894891db7f1ff09f021a0d2c8bb471f3a73a776a.tar.bz2 |
* elflink.c (_bfd_elf_link_create_dynamic_sections): If the
backend does not provide a function for creating dynamic sections
then fail.
(bfd_elf_final_link): Issue a warning message if a dynamic section
has the SHT_NOTE type.
(bfd_elf_final_link): Do not look for dynamic strings in a section
that does not have the SHT_STRTAB type or the name .dynstr.
* elf32-arm.c (elf32_arm_finish_dynamic_sections): Fail if the got
section is not in the output binary.
* elf32-hppa.c (elf32_hppa_finish_dynamic_sections): Likewise.
* ld-elf/elf.exp: Add test for linking a shared library with a
broken linker script that marks dynamic sections as being notes.
* ld-elf/note-3.s: New test source file.
* ld-elf/note-3.t: New test linker script.
* ld-elf/note-3.l: Expected output from the linker.
* lib/ld-lib.exp (run_ld_link_tests): Improve description.
Diffstat (limited to 'ld/testsuite/ld-elf/note-3.t')
-rw-r--r-- | ld/testsuite/ld-elf/note-3.t | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/ld/testsuite/ld-elf/note-3.t b/ld/testsuite/ld-elf/note-3.t new file mode 100644 index 0000000..13324ae --- /dev/null +++ b/ld/testsuite/ld-elf/note-3.t @@ -0,0 +1,22 @@ +PHDRS +{ + text PT_LOAD FILEHDR PHDRS ; + note PT_NOTE; +} +SECTIONS +{ + . = . + SIZEOF_HEADERS ; + .text : { *(.text) *(.rodata) } :text + .note : { *(.note) } :note :text + + /* BUG: This linker script is broken here. It has not reset the + output segment for the following sections, so they are all + treated as notes... */ + + .hash : { *(.hash) } + + .dynstr : { *(.dynstr) } + .dynsym : { *(.dynsym) } + .got.plt : { *(.got.plt) *(.igot.plt) } + /DISCARD/ : { *(*) } +} |