This is the mail archive of the crossgcc@sourceware.cygnus.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more infromation.


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

RE: __main undefined symbol


If you use gcc to do the link, then gcc will call the linker with a command
line that is controlled by the contents of the 'specs' file, which is a text
file located in the targets 'lib' directory. 'specs' is normally used to
provide the default link options required by the target system, and this
usually includes some kind of startup module such as crt0 plus any other
runtime support files required by the target.

If you call the linker directly on the command line, then you have total
control over what gets linked and where, but then of course you are
responsible for ensuring that the necessary support code is included in the
link process, either on the command line or through a linker script.

-----Original Message-----
From: crossgcc-owner@sourceware.cygnus.com
[mailto:crossgcc-owner@sourceware.cygnus.com]On Behalf Of Matthew Majka
Sent: Wednesday, February 09, 2000 7:04 AM
To: Scott A Sumner; crossgcc@sourceware.cygnus.com
Subject: Re: __main undefined symbol


Scott A Sumner wrote:
>
> Time to vent:  On a related (startup code) and again frustrating note, my
> implementation of gcc requires me to have a crt0.o file.  This is not so
> bad in itself (although I can't rename it or change its extension), but
> what bugs me to no end is that it has to be in a subdirectory in the
> compiler's directory tree.  We like to keep our tools on a readonly
> network drive, so you can imagine the difficulties that arise with crt0.o
> when it needs to change.  Is there a way around this?  If not, why would
> the designers of my gcc implementation do what seems a dumb thing?  Or am
> I wrong in thinking it is a dumb thing to segregate crt0.o from the rest
> of the object modules?

I was under the impression that the only reason that a file named crt0.o
was only needed because it was specified in one of the default linker
scripts installed with the compiler and using a different startup/boot
file was simply a matter of writing your own linker script.  Can someone
confirm this for me?

--
__________________________________________
Matthew Majka - Software Engineer
Honeywell, Inc. (Defense Avionics Systems)
Albuquerque, New Mexico, USA

------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to
crossgcc-unsubscribe@sourceware.cygnus.com



------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com


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