This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: GCC compile models -- theory of operation?
On Fri, Aug 03, 2007 at 11:58:47AM -0400, Jonathan S. Shapiro wrote:
> So far as we can tell from looking at the linux versions, the only
> difference is that crtbeginT is calling
>
> register_frame_info_bases
> deregister_frame_info_bases
>
> I suspect that these are related to the exception frame walker, because
> if --static (therefore crtbeginT) is provided then --eh-frame-header is
> not applied by default. That is: I suspect that --static does not
> support exception frame walking. This smells like a Linux legacy issue
> that may not apply to us. Can anybody confirm or correct that guess?
Close but no. Exception unwinding works fine. But it's done using
register_frame_info_bases instead of --eh-frame-header, IIRC.
Yes, it probably does not apply to you.
> > But it sounds like you are modelling after the wrong target, a Linux
> > one when you should be using an ELF one as base instead. You don't
> > need three CRT files or a separate -static option if you don't have
> > dynamic linking. And then you don't need to build libgcc with PIC
> > code in it, and there won't be GOT references any more.
>
> We are going to want to have the PIE and shared models later, so I don't
> want to disable those. At the moment all I am really trying to do is to
> get --static working correctly.
Trying to configure the compiler to support anything involving dynamic
linking before you have the linker and execution support ready is
definitely going to be a headache.
--
Daniel Jacobowitz
CodeSourcery