This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: .eh_frame section


>>>>> 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]