.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