aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-elf/note-3.t
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2011-06-10 14:04:25 +0000
committerNick Clifton <nickc@redhat.com>2011-06-10 14:04:25 +0000
commit894891db7f1ff09f021a0d2c8bb471f3a73a776a (patch)
tree92496b5fd1ebc0c60c95f341ca77699e87569545 /ld/testsuite/ld-elf/note-3.t
parent12af614e24384fa939bbc1b55e40cfc28322c3a4 (diff)
downloadbinutils-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.t22
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/ : { *(*) }
+}