This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: binary compatibility between g++ 3.3.1 and 3.4.3 on Redhat Linux 64 bit (x86_64)
- From: Andrew Haley <aph at gcc dot gnu dot org>
- To: "Rathi, Dinesh" <drathi at informatica dot com>
- Cc: <gcc-help at gcc dot gnu dot org>
- Date: Fri, 21 Apr 2006 12:33:46 +0100
- Subject: Re: binary compatibility between g++ 3.3.1 and 3.4.3 on Redhat Linux 64 bit (x86_64)
- References: <02E7FA106DF5944BB0571C25A9243DE626FCCB@in23ex01.informatica.com>
Rathi, Dinesh writes:
> 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.
The version number bump from .5 to .6 is a clue: it generally means a
binary incompatible change. You really don't want two versions of
libstdc++ loaded at the same time.
We try not to break things on releases, so going from 3.4.2 to 3.4.3
(for example) should be OK.
Andrew.