Question about __gxx_personality_v0 undefined symbol

David Edelsohn dje@watson.ibm.com
Thu Jul 18 21:06:00 GMT 2002


> 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



More information about the Gcc-help mailing list