Undefined symbol problem
Dan Kegel
dank@kegel.com
Thu Jul 3 17:18:00 GMT 2003
Dan Kegel wrote:
> Ichiro Barnes wrote:
>
>> I am using crosstool 0.10 to build a linux/arm linux
>> cross compilation environment, but my dynamically
>> linked executables fail to run on the target due to
>> undefined symbols such as 'register_frame_info'. ...
>
> Hmm. A bit of Google searching suggests that libc.so ought to be
> providing those symbols. (Is an option or a patch missing in
> crosstool?) See:
> http://www.gnu.org/software/libc/FAQ.html#s-2.8
> http://www.informatik.uni-oldenburg.de/~joey/Linux/Tips+Tricks/register-frame.html
> ...
> I have a funny feeling the --enable-sjlj-exceptions configure option
> for gcc has something to do with this.
>
> Try comparing the output of
> objdump -T libc.so.6 | grep __register_frame
> on the libc.so from the two toolchains, I betcha it's different.
>
> Anyway, I don't know enough to really solve your problem;
> you may need to ask the libc-alpha mailing list
> ( see http://sources.redhat.com/ml/libc-alpha/ )
Also, you might look at crosstool's README, which actually mentions
the problem, and gives links and a workaround, to wit:
"When running gcc execution tests with whatever glibc is laying about,
you may get the error "error in loading shared libraries: undefined symbol: __register_frame_info"
To work around this, see register_frame_info_fix.{sh,c}
The right fix is probably to use a chroot environment and test with your
newly built glibc."
::::::::::::::
register_frame_info_fix.c
::::::::::::::
/* See
* http://www.linuxhq.com/lnxlists/linux-gcc/lg_9902/msg00044.html
* http://www.informatik.uni-oldenburg.de/~joey/Linux/Tips+Tricks/register-frame.html
* http://www.rtems.com/rtems/maillistArchives/rtems-snapshots/1999/december/msg00078.html
* http://lists.debian.org/lsb-spec/1999/lsb-spec-199903/msg00002.html
* http://freestandards.org/pipermail/lsb-test/2002-January/000649.html
*/
__register_frame_info() {}
__deregister_frame_info() {}
::::::::::::::
register_frame_info_fix.sh
::::::::::::::
#!/bin/sh
# give a gcc as the 1st argument, flags as 2nd arg
$1 $2 -shared -o register_frame_info_fix.so register_frame_info_fix.c
--
Dan Kegel
http://www.kegel.com
http://counter.li.org/cgi-bin/runscript/display-person.cgi?user=78045
------
Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
More information about the crossgcc
mailing list