bfd/
authorRichard Sandiford <rdsandiford@googlemail.com>
Sat, 19 Sep 2009 08:06:11 +0000 (08:06 +0000)
committerRichard Sandiford <rdsandiford@googlemail.com>
Sat, 19 Sep 2009 08:06:11 +0000 (08:06 +0000)
commit18e04883d03f67a6b9ec701089494d92841b92fd
tree144531f36fa1eb2069710f3759c9ed5ed201b499
parent8179e7399121c25d5e046368d223c3b44c32716a
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.
bfd/ChangeLog
bfd/elf-bfd.h
bfd/elf-eh-frame.c
ld/testsuite/ChangeLog
ld/testsuite/ld-mips-elf/eh-frame5.d [new file with mode: 0644]
ld/testsuite/ld-mips-elf/eh-frame5.ld [new file with mode: 0644]
ld/testsuite/ld-mips-elf/eh-frame5.s [new file with mode: 0644]
ld/testsuite/ld-mips-elf/mips-elf.exp