I am working on an API library for the new LEGO MINDSTORMS EV3 programmable 
brick.  The brick is running Linux on a TI AM1808 ARM chip.  I built a Free 
Pascal cross compiler using 2.7.1 source code along with the CodeSourcery Lite, 
2009q1 cross compiler (arm-2009q1-203-arm-none-linux-gnueabi.exe on Windows).  
Both of these compilers are integrated into my Bricx Command Center (BricxCC) 
IDE for programming LEGO MINDSTORMS programmable bricks.  I have successfully 
compiled and ran arm-linux binaries on the EV3 via my BricxCC IDE.  The goal, 
ultimately, is to have a full library of C/C++ and Pascal API functions for 
creating native arm-linux applications to control your LEGO MINDSTORMS EV3 
creations and so far I have been making very good progress in that direction. 
So far I can control LEDs, read button presses, and control motors in C, C++, 
or Pascal using these cross compilers.

Yesterday, however, I tried to run a binary for the first time that used 
TThread and I got a run-time error message that, via Google, told me I needed 
to use cthreads as the first unit in my program source code.  After adding that 
to my uses statement I now get linker errors.

lcd_test.dpr: warning: 31: "crti.o" not found, this will probably cause a 
linking failure
lcd_test.dpr: warning: 31: "crtbegin.o" not found, this will probably cause a 
linking failure
lcd_test.dpr: warning: 31: "crtend.o" not found, this will probably cause a 
linking failure
lcd_test.dpr: warning: 31: "crtn.o" not found, this will probably cause a 
linking failure
D:\FPC\2.7.1\units\arm-linux\rtl\cprt0.o: In function `_haltproc_eabi':
(.text+0x88): undefined reference to `_fini'
D:\FPC\2.7.1\units\arm-linux\rtl\cprt0.o: In function `_haltproc_eabi':
(.text+0x90): undefined reference to `_init'


Yesterday I tried a lot of -X options of various sorts based on things I found 
via Google but so far I haven not had much luck getting past these errors.  I 
have now added paths to units using -Fu for a folder(s) under my CodeSourcery 
Lite install where I found the 4 files mentioned above.  That gets rid of the 
warnings but I still get either the above error or "undefined reference to 
`__aeabi_unwind_cpp_pr0'"

I have spent the better part of two days solid trying to find a solution on the 
web and so far nothing has fixed the problem. I have turned on --verbose to see 
what the linker is doing and I have looked at the link.res file.  

Does anyone have any idea what is going wrong and how to fix this problem?  It 
sounds like it might be that I need to have the order that it tries to link the 
files and libraries modified so that it links the C runtime .o files after my 
own code or something like that.  But how do I accomplish that feat?

John Hansen
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to