Undefined symbol problem

Dan Kegel dank@kegel.com
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
> defined.
> 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...
- Dan

Dan Kegel

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