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

Reply via email to