------- Additional Comments From danglin at gcc dot gnu dot org 2007-12-30 02:39 ------- It appears this commit broke eh on hppa-linux:
CVSROOT: /cvs/src Module name: src Changes by: [EMAIL PROTECTED] 2007-12-15 09:34:48 Modified files: bfd : ChangeLog ecoff.c elf-bfd.h elf-eh-frame.c elflink.c section.c Log message: bfd/ * elf-bfd.h (eh_cie_fde): Add u.fde.next_for_section and u.cie.gc_mark. (bfd_elf_section_data): Add fde_list. (elf_fde_list): New macro. (elf_obj_tdata): Add eh_frame_section. (elf_eh_frame_section): New macro. (_bfd_elf_gc_mark_reloc): Remove last parameter. (_bfd_elf_gc_mark_fdes): Declare. * elf-eh-frame.c (_bfd_elf_get_eh_frame_sec_info): Chain the FDEs for each input section. (mark_entry, _bfd_elf_gc_mark_fdes): New functions. * elflink.c (_bfd_elf_gc_mark_reloc): Remove is_eh parameter. (_bfd_elf_gc_mark): Update call accordingly. Mark the relocations againts the section's FDEs. Don't mark the bfd's elf_eh_frame_section. (bfd_elf_gc_sections): Parse each input bfd's .eh_frame before marking any input sections. Remove the current EH handling. * section.c (bfd_section): Remove gc_mark_from_eh. * ecoff.c (bfd_debug_section): Update initializer accordingly. It's probably the unusal encoding (the only one that I could find that allowed a eh frame header table given available relocation support): /* This macro chooses the encoding of pointers embedded in the exception handling sections. If at all possible, this should be defined such that the exception handling section will not require dynamic relocations, and so may be read-only. Because the HP assembler auto aligns, it is necessary to use DW_EH_PE_aligned. It's not possible to make the data read-only on the HP-UX SOM port since the linker requires fixups for label differences in different sections to be word aligned. However, the SOM linker can do unaligned fixups for absolute pointers. We also need aligned pointers for global and function pointers. Although the HP-UX 64-bit ELF linker can handle unaligned pc-relative fixups, the runtime doesn't have a consistent relationship between text and data for dynamically loaded objects. Thus, it's not possible to use pc-relative encoding for pointers on this target. It may be possible to use segment relative encodings but GAS doesn't currently have a mechanism to generate these encodings. For other targets, we use pc-relative encoding for pointers. If the pointer might require dynamic relocation, we make it indirect. */ #define ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL) \ (TARGET_GAS && !TARGET_HPUX \ ? (DW_EH_PE_pcrel \ | ((GLOBAL) || (CODE) == 2 ? DW_EH_PE_indirect : 0) \ | (TARGET_64BIT ? DW_EH_PE_sdata8 : DW_EH_PE_sdata4)) \ : (!TARGET_GAS || (GLOBAL) || (CODE) == 2 \ ? DW_EH_PE_aligned : DW_EH_PE_absptr)) -- What |Removed |Added ---------------------------------------------------------------------------- CC| |rsandifo at sourceware dot | |org http://sourceware.org/bugzilla/show_bug.cgi?id=5526 ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-binutils