This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: Question about __gxx_personality_v0 undefined symbol
- From: David Edelsohn <dje at watson dot ibm dot com>
- To: Tom Williams <tomdkat at attbi dot com>
- Cc: gcc-help at gcc dot gnu dot org
- Date: Fri, 19 Jul 2002 00:06:31 -0400
- Subject: Re: Question about __gxx_personality_v0 undefined symbol
- References: <3D24DA1A.49B80BC@attbi.com>
> Hi! Ok, I'm trying to build Mesa-4.0.3 using the gcc 3.1.1-20020701
> snapshot (as well as the production gcc-3.1 compiler) and Mesa compiles
> just fine, but the libGLU.so library refers to a missing
> "__gxx_personality_v0" symbol.
> Now, the libGLU library DOES get compiled with g++ since it's
> inplemented in C++, but I don't understand WHY the Java exceptions are
> being involved at all.
__gxx_personality_v0 is part of the G++ exception handling model defined
by the new C++ ABI in GCC. The symbol is provided by the libstdc++
library, which is added to the link line by g++. If you have a C++
routine using exceptions and link with Java, libstdc++.so may not be
referenced and the C++ support routines not found.
Many shared libraries on Linux are created with undefined symbols that are
expected to be satisfied at final link-edit time and/or runtime. the
libGNU.so reference to __gxx_personality_v0 is expected. The question is
whether libstdc++.so is installed and found in LIBPATH and how you are
performing the final link-edit so that libstdc++.so (or at least
libsupc++) is found to satisfy that symbol.
David