Linker problems with arm-wince, need help/info
pedro alves
pedro.alves at domatica.pt
Wed Jun 14 10:50:23 PDT 2006
Hi Chad and all,
Chad J wrote:
> 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.
Yes, it seems that wrong target underscoring is the problem here. I have
seen this problem too when moving Mamaich's toolchain into gcc4.
You should check cegcc's (http://cegcc.berlios.de) start files. They are
similar, but not the same.
There are other problems that I fixed for c++ and for binutils related
to underscoring. I have fixes (some are already in binutils mainline),
to enable the generation of correct dlls.
You will find patches for that at cegcc's file section.
I don't know if d is debuggable with gdb, but I have also improved on
gdb for
arm-wince-pe. For that you will need to get gdb from cegcc's svn.
That being said, are can try adding a
-fno-leading-underscore to TARGET_LIBGCC2_CFLAGS in
gcc/config/arm/t-wince-pe
Cheers,
Pedro Alves
More information about the D.gnu
mailing list