* elf-eh-frame.c (struct cie): New type.
authorJakub Jelinek <jakub@redhat.com>
Tue, 21 Nov 2006 11:25:17 +0000 (11:25 +0000)
committerJakub Jelinek <jakub@redhat.com>
Tue, 21 Nov 2006 11:25:17 +0000 (11:25 +0000)
commitbce613b9bfac3b56f4f9742776db11aeec875300
tree490c241e7cc00ebc00c8c9e29fcc1babb3900ab0
parentcaac47b8c3968932a8090e94f979f9bb7eb70f9d
* 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]