This is the mail archive of the
crossgcc@sourceware.org
mailing list for the crossgcc project.
See the CrossGCC FAQ for lots
more information.
[crossgcc] gcc/uClibc and '__register_frame_info'
- From: Piotr Sipika <piotreks at optonline dot net>
- To: crossgcc at sourceware dot org
- Date: Sat, 27 Mar 2010 15:26:41 -0400
- Subject: [crossgcc] gcc/uClibc and '__register_frame_info'
Hello All.
First, I wanted to say 'thank you' for providing a lot of useful info
when it comes to cross-compiling the gnu toolchain.
I was able to successfully cross-compile the following set of tools
(using 2.6.32.7 kernel headers)
- gcc 4.3.3 (gmp-5.0.0, mpfr-2.4.2)
- binutils 2.20
- uClibc 0.9.30.2
I compiled a simple 'Hello World' program in c, but when I run it on the
target, I get the following:
./hwcb: can't resolve symbol '__register_frame_info'
Target is running:
Linux OpenWrt 2.6.28.9 #2 Mon Dec 14 10:34:43 EST 2009 armv5teb unknown
From what I found on the list, the register_frame_info symbol should
have been resolved through linking against uClibc (I compiled the
program using
LD_RUN_PATH=/opt/armeb/lib:/opt/armeb/armv5b-unknown-linux-uclibc/lib,
which is where ld-uClibc.so is found). The executable 'looks' like it's
referencing the correct .so on the target:
root@OpenWrt:~# file ./hwcb
./hwcb: ELF 32-bit MSB executable, ARM, version 1, dynamically linked
(uses shared libs), not stripped
root@OpenWrt:~# ldd ./hwcb
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x4000e000)
libc.so.0 => /lib/libc.so.0 (0x40020000)
ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x40000000)
But when running 'nm' on the host, I see the libc symbols as being
undefined (note the 'U's):
...
00010718 A __end__
w __register_frame_info@@GLIBC_2.0
U __uClibc_main
00010718 A _bss_end__
000106f4 A _edata
00010718 A _end
000085b0 T _fini
00008390 T _init
000083f8 T _start
U abort
...
What am I missing?
Thanks in advance,
Piotr
--
For unsubscribe information see http://sourceware.org/lists.html#faq