This is the mail archive of the
mailing list for the binutils project.
eh_frame_hdr generation quirk
- From: "Jan Beulich" <jbeulich at novell dot com>
- To: <binutils at sourceware dot org>
- Date: Fri, 06 Oct 2006 16:59:47 +0100
- Subject: eh_frame_hdr generation quirk
The first thing _bfd_elf_discard_section_eh_frame() does when
encountering an FDE is
/* Ensure this FDE uses the last CIE encountered. */
REQUIRE (hdr.id == (unsigned int) (buf - 4 - last_cie));
Can anyone explain why this condition is required? Compiler-generated
objects likely always meet this, but assembler generated sources easily
don't, due to the CIE re-use logic in gas.
Thus, even after working around the problem that ld doesn't make any
attempt to generate honour --eh-frame-hdr if no shared objects are
involved in linking an executable, the generation of the table still fails
when trying this with the Linux kernel.
Thanks for any clarification,