This is the mail archive of the 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: C++ ABI testing issues, gcc-3.3 <-> gcc-3.2 compatibility

On Friday, August 2, 2002, at 09:16 AM, Benjamin Kosnik wrote:

I think it's important to insure that gcc-3.3 and gcc-3.2 are at the
same C++ ABI before gcc-3.2 is released.

As far as I know, there is no official ABI testing as per the release
process. Several people have suggested ways to test this.
An ABI test suite is a good idea.  Ultimately, of course, the real
test is the one users care about: can I generate a DSO (or, more
generally, an object file) with an old compiler, and link it to
something generated with the new compiler?  That's the whole
point of ABI stability.

But I'm not sure this really addresses the main problem.  A test
suite will make sure there aren't any accidental ABI changes.  But
has that actually been a problem?  Seems to me that the real
3.1/3.2 issue is intentional ABI changes: fixing ABI-related bugs in
3.1.  The question is whether we'll find more bugs in 3.2, and make
intentional changes to fix them for 3.3.

Preventing intentional ABI changes is less a technical issue than
a management decision.  Look at how Sun has maintained a
stable C++ ABI, for example.  Mostly it's because they made two
decisions, and made a commitment to stick to them:
 1. They decided that ABI stability was more important than
     correctness.  They decided that they will not fix certain kinds
     of bugs, if bug fixes would break compatibility.
 2. They decided that they would not release a compiler with
     something that they called a frozen ABI until they'd tested it
     thoroughly enough that they'd be sure there weren't  many
     such bugs.

(My guess is they also made a third unannounced decision:
that if they ever do introduce a new ABI it will be as an addition,
not a replacement, and that they will never stop shipping a
compiler that supports the current ABI.)

My impression is that we're not yet ready to make decision #1, that
at this point we still think correctness is more important than
stability.  I also don't have the impression that we're ready yet to
make decision #2; I don't think anyone wants to delay the 3.2 release
for six months worth of testing.  Am I right about both of those


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