From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Merrill To: Bruno Haible , egcs@cygnus.com Subject: Re: .eh_frame section Date: Tue, 07 Oct 1997 23:14:00 -0000 Message-id: References: <199710061406.QAA27126@halles.ilog.fr> X-SW-Source: 1997-10/msg00300.html >>>>> Bruno Haible 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