From 353057a53cee99996317c9038f7de664a7d38b4c Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Tue, 16 Nov 2004 10:16:30 +0000 Subject: * elf-bfd.h (eh_cie_fde): Add new fields: add_augmentation_size and add_fde_encoding. Remove need_relative. * elf-eh-frame.c (extra_augmentation_string_bytes) (extra_augmentation_data_bytes, size_of_output_cie_fde): New functions. (_bfd_elf_discard_section_eh_frame): Consider changing the FDE encoding in cases where the CIE has no existing 'R' augmentation. Use size_of_output_cie_fde when assigning offsets. Use the final offset as the new section size. (_bfd_elf_eh_frame_section_offset): Remove need_relative handling. Account for any extra augmentation bytes in the returned offset. (_bfd_elf_write_section_eh_frame): Rework so that the entries are moved before being modified. Pad growing entries with DW_CFA_nops. Add 'z' and 'R' augmentations as directed by add_augmentation_size and add_fde_encoding. --- bfd/elf-bfd.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'bfd/elf-bfd.h') diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h index 541ad25..5367ad6 100644 --- a/bfd/elf-bfd.h +++ b/bfd/elf-bfd.h @@ -296,9 +296,10 @@ struct eh_cie_fde unsigned char lsda_offset; unsigned int cie : 1; unsigned int removed : 1; + unsigned int add_augmentation_size : 1; + unsigned int add_fde_encoding : 1; unsigned int make_relative : 1; unsigned int make_lsda_relative : 1; - unsigned int need_relative : 1; unsigned int need_lsda_relative : 1; unsigned int per_encoding_relative : 1; }; -- cgit v1.1