.eh_frame section

Jason Merrill jason@cygnus.com
Tue Oct 7 23:14:00 GMT 1997


>>>>> Bruno Haible <haible@ilog.fr> writes:

>   2. The ".eh_frame" section takes up about 25% of an executable. For
>      an executable, this is nothing to worry about. But for a shared
>      library, "objdump --section-headers" shows that the .eh_frame
>      section has the attributes  CONTENTS, ALLOC, LOAD, RELOC, DATA.
>      The combination LOAD, RELOC means that, on most Unix systems,
>      this section will be completely read in and relocated when
>      the shared library is mapped into the process memory, i.e. usually
>      at program startup. Here at ILOG, we are routinely using executables
>      which are linked to a total of 20 MB of shared libraries. If 25%
>      of this must be read from disk each time the program starts up,
>      that will certainly be noticeable...

Agreed.

>      Would it be possible to replace the `pc_begin' pointer and the
>      `CIE_pointer' in `struct dwarf_fde' by position-independent entities?

That would be nice.  Anyone have suggestions?  The DWARF spec calls for the
CIE_pointer fields to be position-independent by making them offsets from
the beginning of the section (in the executable), but there's no way to
represent that in the assembler, so I changed it to a straight reloc.

Richard was muttering something about a possibly suitable reloc style the
other day, but I don't remember the upshot.

Jason



More information about the Gcc mailing list