[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: gnat-3.2 transition plan



Matthias Klose <doko@cs.tu-berlin.de> writes:

> Rumour says, that there will be one more C++ ABI change to fix bugs
> found after the gcc-3.2 release (maybe for gcc-3.4), and then the C++
> ABI will be stable ...

I believe this is a misprediction of the future. Here is my prediction:

1. The "core" ABI of g++ (i.e. how to layout objects, mangle symbols,
   perform exception handling, etc) is already "stable" in the sense
   it won't change for "most" applications.

2. Bugs in that core ABI may be discovered from time to time (even
   after 3.4). It is likely that few applications are affected by the
   bugs. If the bugs get fixed, an ABI breakage will occur for those
   few applications. g++ will offer a warning if a program uses
   constructs that cause that breakage.

3. None of the bugs that have been already fixed for 3.4 triggers for
   the C++ code that ships with GCC itself (i.e. libstdc++). So even
   if the bugs get fixed, recompiling the current libstdc++ won't
   cause an ABI breakage.

4. OTOH, libstdc++ is likely to change with each compiler release; the
   ABI of that library is not yet stable. It is, unfortunately, quite
   easy to break that ABI - instantiating a template more or less in
   some implementation file already breaks the ABI. It is also quite
   difficult to detect such breakage automatically; one has to compare
   the header files to find out whether the changes introduced cause
   ABI breakage or not.

Regards,
Martin



Reply to: