Undefined symbol problem
Thu Jul 3 05:52:00 GMT 2003
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'.
> I understand that the cause of this is that the glibc
> I built is inserting references to c++ exception
> handling routines in my c code, but that the glibc
> running on my target wasn't built with those symbols
> Now for what is no doubt a blazingly newbie question:
> how can I build a glibc that doesn't insert those
> references? What am I doing wrong? Adding a -f
> no-exceptions doesn't seem to cure the problem.
> I am using gcc 3.2.3 and glibc 2.2.5.
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:
This sounds not unlikely given that you're taking executables built with
the crosstool-0.10 toolchain, and running them against
shared libraries that are part of or were built by another toolchain.
Maybe that other toolchain used some other exception handling scheme.
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/ )
They wrestle with stuff like this all the time.
And let me know what you find out...
Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to email@example.com
More information about the crossgcc