diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2009-09-19 08:06:11 +0000 |
---|---|---|
committer | Richard Sandiford <rdsandiford@googlemail.com> | 2009-09-19 08:06:11 +0000 |
commit | 18e04883d03f67a6b9ec701089494d92841b92fd (patch) | |
tree | 144531f36fa1eb2069710f3759c9ed5ed201b499 /ld/testsuite/ld-mips-elf/eh-frame5.ld | |
parent | 8179e7399121c25d5e046368d223c3b44c32716a (diff) | |
download | gdb-18e04883d03f67a6b9ec701089494d92841b92fd.zip gdb-18e04883d03f67a6b9ec701089494d92841b92fd.tar.gz gdb-18e04883d03f67a6b9ec701089494d92841b92fd.tar.bz2 |
bfd/
* elf-bfd.h (eh_cie_fde): Add personality_offset and
make_per_encoding_relative to the CIE structure. Add a padding field.
* elf-eh-frame.c (_bfd_elf_eh_frame_section_offset): Use 0x70
rather than 0xf0 when masking out the base address encoding
Record the offset of personality data from the start of the CIE.
Remove a repeated elf_backend_can_make_relative_eh_frame check.
(find_merged_cie): Take an info argument. If the personality
binds locally, try converting an absolute personality into
a local one.
(_bfd_elf_discard_section_eh_frame): Use 0x70 rather than 0xf0
when masking out the base address encoding. Update the call to
find_merged_cie.
(_bfd_elf_eh_frame_section_offset): Discard relocations against
the personality data if we are converting into PC-relative form.
(_bfd_elf_write_section_eh_frame): Use 0x70 rather than 0xf0
when masking out the base address encoding. Handle
make_per_encoding_relative.
ld/testsuite/
* ld-mips-elf/eh-frame5.s, ld-mips-elf/eh-frame5.ld,
ld-mips-elf/eh-frame5.d: New test.
* ld-mips-elf/mips-elf.exp: Run it.
Diffstat (limited to 'ld/testsuite/ld-mips-elf/eh-frame5.ld')
-rw-r--r-- | ld/testsuite/ld-mips-elf/eh-frame5.ld | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/ld/testsuite/ld-mips-elf/eh-frame5.ld b/ld/testsuite/ld-mips-elf/eh-frame5.ld new file mode 100644 index 0000000..f00cb27 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/eh-frame5.ld @@ -0,0 +1,18 @@ +SECTIONS +{ + . = 0; + .reginfo : { *(.reginfo) } + .dynamic : { *(.dynamic) } + .dynsym : { *(.dynsym) } + .dynstr : { *(.dynstr) } + .rel.dyn : { *(.rel.dyn) } + . = 0x800; + .text : { *(.text) } + . = 0xc00; + .eh_frame : { *(.eh_frame) } + . = 0x10000; + .data : { *(.data) } + . = 0x10400; + _gp = . + 0x7ff0; + .got : { *(.got) } +} |