Hello all, I am porting Linux for a new architecture, and I chose to build a cross compiler link against uClibc in order to build my linux system.
I have ported uClibc-0.9.31 (I have not done anything dealing with shared libs yet). I have finally succeeded in building a static hello world executable (that is running on my port of uClinux-2.6.19 at the moment). But I am facing a problem, the execution stop with a SIGILL due to the following undefined symbols: __errno_location() and __h_errno_location() I have seen that most of symbols are compiles under an alias name __GI_foo (), and appear in the objdump -t output twice: foo and __GI_foo An objdump of __errno_location.o and __h_errno_location.o shows that these symbols are compiled under __GI__ alias names. Here is a objdump part of my hello_world exe: 00000000 w *UND* 00000000 __h_errno_location 00000000 w *UND* 00000000 __errno_location The function __uClibc_main() seems to expect these 2 function under their normal name, but there are compiled under alias name.. My first (trivial) question is: What does mean GI? Alias seem to work correcly with other symbols.. Is there something special for __errno_location() and __h_errno_location()? Why the cross-compiler doesn't complain about missing __errno_location and _h_errno_location symbols during compilation? Thanks in advance for your help. _______________________________________________ uClibc mailing list [email protected] http://lists.busybox.net/mailman/listinfo/uclibc
