This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
Re: Questions about ``[PATCH] GCC side of .eh_frame_hdr support (take 3)''
- From: Richard Henderson <rth at redhat dot com>
- To: rittle at labs dot mot dot com
- Cc: gcc at gcc dot gnu dot org, java at gcc dot gnu dot org
- Date: Wed, 24 Apr 2002 11:27:08 -0700
- Subject: Re: Questions about ``[PATCH] GCC side of .eh_frame_hdr support (take 3)''
- References: <200204241809.g3OI9gJ15955@latour.rsch.comm.mot.com>
On Wed, Apr 24, 2002 at 01:09:42PM -0500, Loren James Rittle wrote:
> Are these optimized EH frames readable by the unwinder in unwind-dw2-fde.c?
Yes. There is nothing unusual about these modified EH frames.
We eliminated some duplicate information is all.
> Do I need to add this to the port's configuration file for any port
> that might someday use GNU ld 2.12+? (Based on comment in alpha/elf.h,
> I suspect it is not strictly required when unwind-dw2-fde.c is used by
> a port.)
>
> #if defined(HAVE_LD_EH_FRAME_HDR)
> #define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
> #endif
It is not required until
(1) The OS implements dl_iterate_phdr or some equivalent functionality,
(2) unwind-dw2-fde.c is suitably modified (a-la unwind-dw2-fde-glibc)
to use (1).
> (I should not ask the obvious question: Why is something which depends
> solely upon the GNU ld version being added on a per-port basis?
> Perhaps adding it to config/elfos.h would have been wiser. Oh well.)
*shrug* I suppose Jakub was trying to save a bit of space in
the binary for those systems that never use the eh-frame-hdr.
> (I suspect so.) Does this likely mask a binutils and/or gcc port bug
> that should be tracked down?
Likely a binutils bug.
> The only difference I could detect with readelf(1) between GNU ld
> 2.12.1 without --traditional-format and GNU ld 2.12.1 with
> --traditional-format was the size of .eh_frame:
Look at the output of readelf -wf.
> Trick question: What does --traditional-format mean to GNU ld 2.12.1
> when it *is* the native linker for the system? ;-)
Don't fiddle with the bits. ;-)
r~