* dw2gencfi.c (dwcfi_seg_list): New struct.
authorNick Clifton <nickc@redhat.com>
Tue, 26 Apr 2011 15:28:08 +0000 (15:28 +0000)
committerNick Clifton <nickc@redhat.com>
Tue, 26 Apr 2011 15:28:08 +0000 (15:28 +0000)
commit72b016b4ac0d7532a8f173fe3472e2e88ac49d45
treee6d8dcd1c9cabcafcfe1713f55b366a2cbeefbec
parent4964e065b452a479b9ba0d636b28455c496ba9ab
* dw2gencfi.c (dwcfi_seg_list): New struct.
(dwcfi_hash): New static hash variable.
(get_debugseg_name): New.
(alloc_debugseg_item): New.
(make_debug_seg): New.
(dwcfi_hash_insert): New.
(dwcfi_hash_find): New.
(dwcfi_hash_find_or_make): New.
(cfi_insn_data): New member cur_seg.
(cie_entry): Likewise.
(fde_entry): New cseg and handled members.
(alloc_fde_entry): Initialize cseg member.
(alloc_cfi_insn_data): Initialize cur_seg member.
(dot_cfi_sections): Compare for beginning of
section names via strncmp.
(get_cfi_seg): New.
(cfi_finish): Treat link-once sections.
(is_now_linkonce_segment): New local helper.
(output_cie): Ignore cie entries not member of current
segment.
(output_fde): Likewise.
(select_cie_for_fde): Likewise.
(cfi_change_reg_numbers): Add new argument for current segment
and ignore insn elements, if not part of current segment.
* ehopt.c (get_cie_info): Use strncmp for
section name matching.
(heck_eh_frame): Likewise.

* coffcode.h (sec_to_styp_flags): Allow linkonce for
debugging sections.

* scripttempl/pe.sc: Handle .eh_frame($|.)* sections.
* scripttempl/pep.sc: Likewise.

* ld-pe/pe.exp: Add cfi/cfi32 tests.
* ld-pe/cfi.d: New.
* ld-pe/cfi32.d: New.
* ld-pe/cfia.s: New.
* ld-pe/cfib.s: New.
14 files changed:
bfd/ChangeLog
bfd/coffcode.h
gas/ChangeLog
gas/dw2gencfi.c
gas/ehopt.c
ld/ChangeLog
ld/scripttempl/pe.sc
ld/scripttempl/pep.sc
ld/testsuite/ChangeLog
ld/testsuite/ld-pe/cfi.d [new file with mode: 0644]
ld/testsuite/ld-pe/cfi32.d [new file with mode: 0644]
ld/testsuite/ld-pe/cfia.s [new file with mode: 0644]
ld/testsuite/ld-pe/cfib.s [new file with mode: 0644]
ld/testsuite/ld-pe/pe.exp