OSDN Git Service

* elf-eh-frame.c (struct cie): New type.
authorjakub <jakub>
Tue, 21 Nov 2006 11:25:16 +0000 (11:25 +0000)
committerjakub <jakub>
Tue, 21 Nov 2006 11:25:16 +0000 (11:25 +0000)
commit809424ab3308ca0ca22f5ee27fdfed1d4309df27
treeca46078afe7f172d2e7acab4c2c753f2d47c2132
parenta22ee61ec7a84b32132692b51c8e0fe09bf82cd6
* elf-eh-frame.c (struct cie): New type.
(cie_compare): Removed.
(cie_eq, cie_hash, cie_compute_hash): New functions.
(_bfd_elf_discard_section_eh_frame): Rewrite not to rely on FDEs
pointing only to last CIE and allow merging of any duplicate CIEs,
not just duplicate consecutive CIEs.
(_bfd_elf_discard_section_eh_frame_hdr): Delete cies hash table.
* elf-bfd.h (struct cie_header, struct cie): Removed.
(struct eh_frame_sec_info): Remove alloced field.
(struct eh_frame_hdr_info): Remove last_cie, last_cie_sec
and last_cie_inf fields.  Add cies field.

* ld-elf/eh5.d: New test.
* ld-elf/eh5.s: New file.
* ld-elf/eh5a.s: New file.
* ld-elf/eh5b.s: New file.
bfd/ChangeLog
bfd/elf-bfd.h
bfd/elf-eh-frame.c
ld/testsuite/ChangeLog
ld/testsuite/ld-elf/eh5.d [new file with mode: 0644]
ld/testsuite/ld-elf/eh5.s [new file with mode: 0644]
ld/testsuite/ld-elf/eh5a.s [new file with mode: 0644]
ld/testsuite/ld-elf/eh5b.s [new file with mode: 0644]