__main call for c++ on sparc-elf target

Brenner Joel joel.brenner@nemerix.com
Fri Jun 27 07:06:00 GMT 2003


Jim Wilson wrote:

> Brenner Joel wrote:
>
>> Why gcc does not insert the call to __main ? I suppose __main should 
>> be in gcclib.a, but it isn't there, why?
>
>
> __main is archaic.  ELF systems use the .init/.fini sections to run 
> static construtors/destructors.  crti.o defines function prologues for 
> init/fini, crtn.o defines function epilogues, crt0.o branches to the 
> init function at startup, and registers passes the fini function to 
> atexit.  There various minor variations of this scheme.  There are 
> many working ELF targets that you can look at to see how this is done.
>
> Some of the older embedded ELF targets aren't using .init/.fini yet, 
> but should be fixed to do so.  Perhaps sparc-elf is one of them?  It 
> could be broken from lack of maintenance.  Fixing it to use 
> .init/.fini is the best long term option.  In the short term, adding a 
> define for INVOKE__main should get you the __main call back.
>
> Jim
>
>
I'm fully agree to use .init/.fini mechanism but I need some more 
detailed description of how use it because I need to use my own CRT0 
modified for my embedded target. Can somebody tell me where can I find a 
description of how this mechanism should work ?

An other problem using sparc-elf gcc is that crti, crtn artbegin and 
crtend is only built for solaris but I'm using soft/v8 target.

Joel Brenner




More information about the Gcc mailing list