Linker problems with arm-wince, need help/info

Chad J gamerChad at
Tue Jun 13 22:42:01 PDT 2006

David Friedman wrote:
> Something I noticed in the original message:
> /usr/local/arm-wince-pe/EntryPoint/Console/crt0.o(.text+0x2c): undefined 
> reference to `main'
> Looking at the nm output, all global symbols a prefixed with an 
> underscore.  It looks like the main in crt0.o doesn't have an underscore 
> (I don't think GNU ld removes prefixes for error messages.)  That might 
> be the problem.  Does the gcc built along with gdc have the same 
> problem?  Where does EntryPoint/Console/crt0.o come from?
> David

It works for C and C plus plus, both for console apps and windows GUI 
apps.  Compiles without problems and runs correctly too, not sure about 
anything more advanced then that (like exception handling).  I should 
mention there is also an EntryPoint/Windows/crt0.o.  I wrote a dummy 
linker that tries to determine which kind of program you are writing, 
and calls the real linker with the appropriate startfile.  The 
startfiles themselves originate from some of the files Mamaich used in 
his arm-wince-pe C plus plus cross compiler.  The original crt0 
startfiles that came with the files I was using did not work - the 
compiler couldn't find the entry symbol on them.  To fix this I found 
the original assembly of crt0.o, crt0.S, and replaced the symbol I 
thought to be the intended entry point with the one that the 
compiler/linker was looking for, then assembled it.  I've attached what 
I believe to be the original crt0.S before my modifications, but it's 
been a while since I messed with it so I can't be sure if it's the right 

I've noticed that in a x86-linux install of GDC, there are a number of 
startfile looking object files in lib/gcc/i686-pc-linux-gnu/4.0.3 - 
crtbegin.o, crtbeginS.o, crtbeginT.o, crtend.o, and crtendS.o.  There's 
about 8.5 KB of important looking code there, whereas the cross compiler 
I've made has just the one 676 KB startfile.  I'm wondering why those 
other files didn't build with this cross compiler, and if their lack 
might be the problem.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: crt0.S

More information about the D.gnu mailing list