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