This is the mail archive of the
mailing list for the GCC project.
Re: Vtable incompatibility between GCC 3.0/3.2?
- From: Stephan Bergmann <stephan dot bergmann at sun dot com>
- To: gcc at gcc dot gnu dot org
- Cc: Andreas Jaeger <aj at suse dot de>
- Date: Fri, 05 Sep 2003 14:59:35 +0200
- Subject: Re: Vtable incompatibility between GCC 3.0/3.2?
- References: <3F584E1E.firstname.lastname@example.org> <email@example.com>
Thanks for your quick reply and clarification. With only a change in
minor (from 3.1 to 3.2), I naively would have assumed that there are no
incompatible changes, at least no backwards incompatible ones.
Is there any specification of what exactly is guaranteed to work when
mixing different versions of GCC? I am mostly interested in scenarios
of the form "given a (C++) executable built with GCC version X and a
(C++) shared library built with GCC version Y, is it guaranteed that
they can be run together and can interoperate?" (This is the kind of
question that keeps arising for the component-based OpenOffice.org
suite.) I fail to find such information on the GCC web site.
Stephan Bergmann <firstname.lastname@example.org> writes:
I just found out the hard way :) that there is an incompatibility in
the vtable layout of GCC 3.0.1 and GCC 3.2.2, see below. Can anybody
confirm whether this is a known issue (a deliberate change?), and
between which two GCC versions the change was introduced? I did not
find anything about this in the changes notes.
GCC 3.2 is binary incompatible on the C++ level to earlier releases -
that's one of the reasons why we released it as 3.2. For details read