From 9f4b847e239cc0e20de3662855f25d298aad8b8c Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Sat, 15 Dec 2007 09:35:58 +0000 Subject: bfd/ * elf-bfd.h (eh_cie_fde): Remove need_lsda_relative. Move make_lsda_relative to u.cie. * elf-eh-frame.c (cie): Rename make_lsda_relative to can_make_lsda_relative. (_bfd_elf_parse_eh_frame): Don't set the old eh_cie_fde make_lsda_relative field. Update after cie renaming. Set u.cie.make_lsda_relative if can_make_lsda_relative and if we find a relocation against the LSDA. (_bfd_elf_discard_section_eh_frame): Copy make_lsda_relative when changing a CIE's group representative. (_bfd_elf_eh_frame_section_offset): Don't set need_ldsa_relative here. (_bfd_elf_write_section_eh_frame): Check u.cie.make_lsda_relative rather than need_lsda_relative. --- bfd/elf-bfd.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'bfd/elf-bfd.h') diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h index f5fcc6f..a4e974f 100644 --- a/bfd/elf-bfd.h +++ b/bfd/elf-bfd.h @@ -285,6 +285,11 @@ struct eh_cie_fde /* True if we have marked relocations associated with this CIE. */ unsigned int gc_mark : 1; + + /* True if we have decided to turn an absolute LSDA encoding into + a PC-relative one. It is the group representative's setting + that matters. */ + unsigned int make_lsda_relative : 1; } cie; } u; unsigned int reloc_index; @@ -299,8 +304,6 @@ struct eh_cie_fde 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_lsda_relative : 1; unsigned int per_encoding_relative : 1; unsigned int *set_loc; }; -- cgit v1.1