public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Joe Buck <Joe.Buck@synopsys.com>
To: dje@watson.ibm.com (David Edelsohn)
Cc: davem@redhat.com (David S. Miller),
	Joe.Buck@synopsys.COM, mark@codesourcery.com, gcc@gcc.gnu.org
Subject: Re: C++ ABI Issues
Date: Tue, 27 Aug 2002 10:08:00 -0000	[thread overview]
Message-ID: <200208271708.KAA26617@atrus.synopsys.com> (raw)
In-Reply-To: <200208270224.WAA31450@makai.watson.ibm.com>

David Edelsohn writes:

> 	As was discussed during the GCC 3.2 transition, my personal
> opinion is that GCC needs a binary -fabi-correctly switch which defaults
> to *OFF*.  We maintain the GCC 3.2 ABI until a well-defined transition
> point in the future when the switch is changed to default to *ON*.

I would be satisfied with this approach, though we could probably come up
with a better choice of option names.  After all, we can never be certain
that we are correct.  All we can do is have two modes: 3.2 compatibility,
and 3.2 plus any ABI corrections found to date.

Maybe the flag should be -fabi-gcc-3.2 .  If true, we are compatible with
GCC 3.2; if false, we include as many bug fixes as we have to ABI conformance
at the time.  It would be true by default until we have reasonable
confidence that we've converged, and I think we need six months to achieve
such confidence, assuming that we do some rigorous testing in that time.

>  This
> allows GCC stability for the time being and interoperability with
> proprietary compilers outside the GNU/Linux and *BSD environments.
> Propritary compilers which run on GNU/Linux will probably have a GCC
> compatibility switch.

You are pretty much saying what I said; I suspect that we would only
differ on details of timing.

> 	The important points are that we make such a decision for GCC
> stability and we have a plan for eventually becoming conformant.  GCC 3.2
> may be a transient ABI, but it should not become a GNU/Linux
> counter-proposal to the C++ABI which it was trying to implement.  Also, we
> should develop a transition plan, as opposed to "we'll switch the option
> in some future release when it seems convenient."

To have a reasonable chance of catching nearly all the ABI bugs, we're
probably going to need at least six months.  What this will mean, assuming
that Red Hat 8, Debian, FreeBSD, and SuSE all adopt 3.2 is that 3.2 will
be a de-facto standard ABI.  The effect of this can be minimized if we
provide warnings at points where there is a known error in 3.2's ABI
conformance and encourage distributors to avoid such coding in any C++
libraries (if a "hit" does occur, it's easy to make it go away by adding a
dummy field that fills in the empty space in the base class's padding).
If this can be done, then an eventual switch to a compiler that does
correct ABI will not cause compatibility problems, because code that could
trigger compatibility problems would be avoided.

By the way, I'd be eager to hear from the decision-makers for the
distributions on what their opinions are on this one.  It's important
to achieve some consensus on this.

Next question is whether the ABI errors affect KDE (the largest collection
of free C++ library code that distributors will have to deal with).  Once
we have a patch that flags ABI violations, I'd appreciate it if some
volunteer will build KDE with it and report on whether we get any hits.

> 	We shouldn't make GCC arbitrarily compatible with Intel's
> compiler, and we aren't.  Similarly, we should not ask Intel or HP or any
> other proprietary compiler to be arbitrarily compatible with GCC.  It cuts
> both ways.  GCC should avoid any appearance of making arbitrary changes to
> standards and forcing others to play catch-up.

I don't disagree, but I don't want to rush out a correction.

Once we have consensus on how to proceed, I think that we should announce
the decision and any recommendations and publicize them widely.


  parent reply	other threads:[~2002-08-27 10:08 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-08-26 15:18 Mark Mitchell
2002-08-26 16:18 ` Mike Stump
2002-08-26 16:43 ` Zack Weinberg
2002-08-26 21:58   ` Geoff Keating
2002-08-26 16:46 ` Loren James Rittle
2002-08-26 17:10 ` Joe Buck
2002-08-26 18:32   ` David Edelsohn
2002-08-26 18:35     ` David S. Miller
2002-08-26 19:25       ` David Edelsohn
2002-08-26 20:40         ` Per Bothner
2002-08-27 10:08         ` Joe Buck [this message]
2002-08-27 11:51           ` Jeff Law
2002-08-28  4:32             ` Richard Earnshaw
2002-08-26 18:47     ` Joe Buck
2002-08-26 23:27   ` Jakub Jelinek
2002-08-26 23:57     ` Mark Mitchell
2002-08-27  7:40     ` Jeff Law
2002-08-27 11:28   ` Phil Edwards
2002-08-27 11:32     ` Joe Buck
2002-08-27 11:43       ` Jan Hubicka
2002-08-27 12:00         ` Gabriel Dos Reis
2002-08-27 15:10           ` Joe Buck
2002-08-27 15:18             ` Gabriel Dos Reis
2002-08-27 12:09         ` Joe Buck
2002-08-27 12:34           ` Gabriel Dos Reis
2002-08-27 11:58       ` Gabriel Dos Reis
2002-08-27 14:50         ` Joe Buck
2002-08-27 15:06           ` Gabriel Dos Reis
2002-08-27 15:21             ` Joe Buck
2002-08-27 15:32               ` Gabriel Dos Reis
2002-08-27 15:46                 ` Joe Buck
2002-08-27 22:28                   ` Gabriel Dos Reis
2002-08-28 10:04                     ` Joe Buck
2002-08-26 19:18 ` Jamie Lokier
2002-08-26 23:44   ` Mark Mitchell
2002-08-27  5:33 ` Nathan Sidwell
2002-08-27  5:58   ` Allan Sandfeld Jensen
2002-08-27  7:32     ` Nathan Sidwell
2002-09-07 13:32     ` David O'Brien
2002-09-22  2:49 ` David O'Brien
2002-09-22 11:15   ` Mark Mitchell
2002-09-23 10:01     ` Joe Buck
2002-09-23 13:04       ` David O'Brien
  -- strict thread matches above, loose matches on Subject: below --
2002-08-27 10:26 Benjamin Kosnik
2002-08-27 11:06 ` Ziemowit Laski
2002-08-27 11:15   ` Mike Stump
2002-08-27 11:27     ` Ziemowit Laski
2002-08-27 11:56       ` Mike Stump
2002-08-27 15:19   ` Toon Moene
2002-09-07 13:33   ` David O'Brien
2002-08-27 14:37 ` Joe Buck
2002-08-28  4:41 ` Richard Earnshaw
2002-08-26 20:40 Benjamin Kosnik
2002-08-26 23:55 ` Mark Mitchell
2002-08-27  6:03   ` Daniel Jacobowitz
2002-08-27  6:40   ` Andreas Jaeger
2002-08-27  7:27     ` Jeff Law
2002-08-27  7:49   ` Jeff Law
2002-08-27  7:30 ` Jeff Law
2002-08-27  8:45   ` Mark Mitchell
2002-08-27  9:33     ` Janis Johnson
2002-08-27 14:55       ` Mark Mitchell
2002-08-27  9:50 ` Mark Mitchell
2002-08-27 10:50   ` Devang Patel
2002-08-27 12:02     ` Per Bothner
2002-08-27 10:37 ` Mike Stump
2002-03-18 13:44 C++ ABI issues mike stump
2002-03-18 10:30 Benjamin Kosnik
2002-03-18 13:05 ` Jason Merrill
2002-03-18 13:46   ` Mark Mitchell
2002-03-18 14:13   ` Benjamin Kosnik
2002-03-18 15:19     ` Jason Merrill
2002-03-17 16:33 Jason Merrill

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200208271708.KAA26617@atrus.synopsys.com \
    --to=joe.buck@synopsys.com \
    --cc=davem@redhat.com \
    --cc=dje@watson.ibm.com \
    --cc=gcc@gcc.gnu.org \
    --cc=mark@codesourcery.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).