Undefined symbol __gxx_personality_sj0 (data) from stdexcept.o

law@redhat.com law@redhat.com
Thu May 17 09:00:00 GMT 2001


  In message < 200105171550.LAA08030@hiauly1.hia.nrc.ca >you write:
  > >   > /usr/ccs/bin/ld: Unsatisfied symbols:
  > >   >    __gxx_personality_sj0 (data)
  > >   > 
  > >   > This is under hpux 10.20 with the 3.0 branch.  This symbol comes from
  > >   > the stdexcept.o module in libstdc++.  Note that the symbol is `data'.
  > >   > I believe that this should be a text symbol.  This symbol reference
  > >   > is generated in cp/except.c.
  > > Yea.  Tracking this down is at the top of my gcc3 list for today.  Most
  > > likely we've got an incorrect or missing .import statement which in turn
  > > causes the wrong symbol type to be used.
  > 
  > Possibly, libsupc++/unwind-cxx.h needs to be included by stdexcept.cc.
  > However, it does seem that the compiler shouldn't be generating a
  > reference to a library function without an .import statement.  I did
  > look at the assembler output for stdexcept.cc and the only references
  > to __gxx_personality_sj0 were in the code itself.  For example,
  > 
  >         addil LR'__gxx_personality_sj0-$global$,%r27
  > 	ldo RR'__gxx_personality_sj0-$global$(%r1),%r1
  > 
  > There is no .import statementy.
OK.  Thanks.  That takes care of the first few steps in the debugging
process.    We definitely shouldn't reference an external symbol without
a .import statement.

The lack of a .import statement indicates a compiler bug -- usually it's
because we're missing a call to assemble_external somewhere in the 
front-end.

jeff



More information about the Libstdc++ mailing list