OSDN Git Service

* elf-bfd.h (struct eh_cie_fde): Add set_loc pointer.
authorJakub Jelinek <jakub@redhat.com>
Tue, 3 Oct 2006 13:15:39 +0000 (13:15 +0000)
committerJakub Jelinek <jakub@redhat.com>
Tue, 3 Oct 2006 13:15:39 +0000 (13:15 +0000)
commit2ba297941b8cc2bc77cf2399a8840afdc41ad1eb
tree475d6d7b4cfa0c40753fb7edd166a90998035631
parent9370fd9358e73ea17983a5a9e1fac5d7080d3b37
* elf-bfd.h (struct eh_cie_fde): Add set_loc pointer.
* elf-eh-frame.c (skip_cfa_op): Fix handling of DW_CFA_advance_loc.
Handle DW_CFA_{remember,restore}_state, DW_CFA_GNU_window_save,
DW_CFA_val_{offset{,_sf},expression}.
(skip_non_nops): Record number of DW_CFA_set_loc ops.
(_bfd_elf_discard_section_eh_frame): Require skip_non_nops recognizes
all ops.  If there are any DW_CFA_set_loc ops and they are pcrel
or going to be pcrel, compute set_loc array.
(_bfd_elf_eh_frame_section_offset): If make_relative, kill relocations
against DW_CFA_set_loc operands.
(_bfd_elf_write_section_eh_frame): Handle DW_CFA_set_loc adjusting.

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