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