This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Vtable incompatibility between GCC 3.0/3.2?


Stephan Bergmann <stephan.bergmann@sun.com> writes:

> Hi Andreas.
>
> 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.

The new C++ ABI (and I'm speaking only about C++ here) is quite stable
but our C++ developers and testers find often bugs in them - either
with the written ABI (so that interoperability with our compilers
might be a problem) or with previous versions (were either of them was
wrong).

In a nutshell:

- 3.0 had old libstdc++

- 3.1 has new libstdc++

- 3.2 is ABI incompatible to earlier compilers

- 3.3 was expected to be compatible to 3.2 but a few days a bug was
  found where 3.3 was not compatible to 3.2 (and not anymore to the
  written ABI).

- 3.4 is currently worked on, but will have a newer libstdc++ with a
  new version number.  Currently it is discussed to make it compliant
  with the C++ ABI and thereby making it incompatible with earlier
  releases.

NOte the 3.3 libstdc++ is only upward compatible, you cannot build a
program with the 3.3 libstdc++ and run it with a 3.2 one - the other
way round works.  In general (unless you hit that bug I mentioned),
objects compiled with 3.2 should work with 3.3.

Yes, making a web page out of this would be fine,
Andreas
-- 
 Andreas Jaeger, aj@suse.de, http://www.suse.de/~aj
  SuSE Linux AG, Deutschherrnstr. 15-19, 90429 Nürnberg, Germany
   GPG fingerprint = 93A3 365E CE47 B889 DF7F  FED1 389A 563C C272 A126

Attachment: pgp00000.pgp
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]