g++ compiled programs that link with Java Hotspot core dump

Martin v. Loewis martin@mira.isdn.cs.tu-berlin.de
Tue Nov 30 23:39:00 GMT 1999


> 0xeef4521c in __0fKunsafe_iosEinitP6Jstreambuf ()
> (gdb) where
> #0  0xeef4521c in __0fKunsafe_iosEinitP6Jstreambuf ()
> #1  0xeef4c9b4 in __0oSistream_withassignasP6Jstreambuf ()
> #2  0xeef469a0 in __0oNIostream_initctv ()
> #3  0xeef63174 in _init ()
> #4  0xeefc9f58 in ?? ()
> #5  0xeefc9e10 in ?? ()
> #6  0xeefd15dc in ?? ()
> #7  0xeefc2d44 in ?? ()
> (gdb)
> 
> Any ideas?

This stack looks like mangled C++ names from the Sun C++ compiler (or
some other C++ compiler), in particular of iostreams. There is a
chance that some symbol of the GNU C++ library and the Sun C++ library
are in conflict, e.g. 'cout' or the like. If that is the case, the Sun
initializers might find themselves initialize g++ objects - which
would certainly break.

Of course, it could be just as well anything else.

> BTW, why does iso646.h have "#ifndef __cplusplus"?  You want those
> defines when you are compiling c++....???

No, in C++, these are keywords, not #defines.

Regards,
Martin



More information about the Gcc-bugs mailing list