On Fri, Oct 24, 2008 at 12:30:00PM -0400, Stefan Teleman wrote:
> >You can always say that the link in /bin points to the latest version
> >and so is Volatile or Uncommitted, or you can say it's Committed and
> >commit to carrying that version as the default for a long time.
> 
> Unfortunately, this discussion is, again, C-centric.
> 
> Yes, for C programs, it most likely does not matter that we will rev up the 
> GCC symlinks in /usr/bin -- GCC's C ABI is stable.
> 
> That is not the case for C++. GCC's C++ ABI is not stable, and it changes 
> in an incompatible way, even between Minor Releases.

I understand that.  This is why we have an interface stability taxonomy.

We decide what stability attribute we want to give to the G++ ABI, label
all the relevant interfaces accordingly, deliver them, and move on.

> [...]
> 
> The GCC C++ ABI has changed in an incompatible way between GCC 4.3.2 and 
> GCC 4.4.3. Unknown to the developer, we have changed the symlinks in a 
> patch, and they now point to GCC 4.4.3 instead of the previous GCC 4.3.2. 

The developer will either know because we've told him in the docs, or
this won't happen because the stability attribute that we decide to
apply to G++ is such that we cannot change the default version in a
minor release.

Note that the G++ ABI stability issue is a bigger issue that needs to be
addressed.

Options:

1) Don't deliver G++; tell developers that the C++ ABI for Solaris is
   the Sun Studio C++ ABI.

2) Deliver G++ and declare it Volatile; tell developers that we may
   change the default G++ version delivered at any patch/update/
   OpenSolaris release, and let them deal with the headaches.

3) Deliver G++ and declare it Committed; tell developers what to do in
   order to use the latest G++ instead of the default G++, and let them
   deal with the headaches.

4) Deliver G++ but not in /bin; tell developers how to find it and to
   pick the version they want, and let them deal with the headaches.

5) Deliver G++ and declare it Committed and commit to work with the GCC
   community to make its G++ ABI truly stable.

6) Something else??

(1), (5) and (6) are probably not realistic.

So choose from (2), (3) or (4), propose it, and if the ARC approves it,
your choice becomes our policy, else we'll eventually end up with one of
the other two options.

Nico
-- 

Reply via email to