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


William Gatliff writes:
 > Except that when GCC compiles your main(), it always inserts a call to _main() on
 > all the targets I'm familiar with.  So you always need a _main() if you have a
 > main(), regardless of your use of crt0, libgcc, etc. etc.

[sorry to repeat myself ...]
In the general case, ELF targets don't have _main (well, it's just a
name - but the point is main() doesn't call anything special).
With [IMHO] properly implemented ports, crt0 calls the
.init section before calling main.  All GCC has to do is ensure the
right thing appears in the init section.  GCC just uses a general
feature of the file format, _nothing_ special (i.e. gcc specific).

 > For the record, despite the fact that GCC started out life as a compiler for
 > "desktop" environments, it makes very few assumptions about "under the hood"
 > subjects.  In this respect, it's better than any commercial compiler I've dealt with
 > in my nine years of experience doing embedded work.

I won't quibble with your last sentence :-), but I would qualify your
first.  Clean and simple board support packages [and here I'm using
the term loosely] is something I think GCC has always needed in the
embedded space.  Each port does things its own way and that is just
plain wrong.  GCC should provide [mostly by staying _out_ of the way]
simple and general ways to add/roll-your-own board support packages
[and again, I'm using the term "BSP" loosely].

------
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]