OSDN Git Service

bfd/
authorrsandifo <rsandifo>
Sat, 19 Sep 2009 08:06:10 +0000 (08:06 +0000)
committerrsandifo <rsandifo>
Sat, 19 Sep 2009 08:06:10 +0000 (08:06 +0000)
commitc8e7a94c25f0112272b8dcf5503489abae6d5be3
tree4890dee69f15ba79889fc0c74ad9c6dd08f67623
parentbdbb37fff0fa8180702b5638e32a5b65a5bbb305
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