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]
Other format: [Raw text]

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


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