binary compatibility between g++ 3.3.1 and 3.4.3 on Redhat Linux 64 bit (x86_64)

Rathi, Dinesh drathi@informatica.com
Fri Apr 21 11:14:00 GMT 2006


Hi
            I have my executable built using g++ 3.3.1 and I am trying
to use a third party library built using g++ 3.4.3 (I don't link to it,
use dlopen to load it). I am seeing a crash like 

*** glibc detected *** double free or corruption
(out):0x0000000000f1ed70 *** and the stack trace is also put below. 

I tried to search information on it and it seems that binary built with
g++ 3.3.1 and 3.4.3 might be binary incompatible with each other, though
I could not find confirmation for x86_64 arch (gcc release notes mention
it for sparc/ mips). Does anyone know for sure that this wont work? Also
g++ 3.3.1 links with libstdc++.so.5 while 3.4.3 with libstdc++.so.6, as
a result both these libraries get loaded in context of my executable, is
that fine or can it give some trouble. 

Any information would be helpful!


#0  0x0000003a1a92e4dd in raise () from /lib64/tls/libc.so.6
(gdb) where
#0  0x0000003a1a92e4dd in raise () from /lib64/tls/libc.so.6
#1  0x0000003a1a92fc8e in abort () from /lib64/tls/libc.so.6
#2  0x0000003a1a962b41 in __libc_message () from /lib64/tls/libc.so.6
#3  0x0000003a1a96846f in _int_free () from /lib64/tls/libc.so.6
#4  0x0000003a1a968a06 in free () from /lib64/tls/libc.so.6
#5  0x0000003a1d6ade9e in operator delete () from
/usr/lib64/libstdc++.so.6
#6  0x0000003a1d6902b2 in std::string::_Rep::_M_destroy ()   from
/usr/lib64/libstdc++.so.6
....

Thanks
Dinesh



More information about the Gcc-help mailing list