This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Switching the default for -fabi-version
- From: Mark Mitchell <mark at codesourcery dot com>
- To: law at redhat dot com
- Cc: Michael Matz <matz at suse dot de>, Joe Buck <jbuck at synopsys dot com>, gcc at gcc dot gnu dot org, david dot moore at intel dot com
- Date: 22 Oct 2003 08:08:19 -0700
- Subject: Re: Switching the default for -fabi-version
- Organization: CodeSourcery, LLC
- References: <200310221441.h9MEfCVk024429@speedy.slc.redhat.com>
On Wed, 2003-10-22 at 07:41, law@redhat.com wrote:
> In message <Pine.LNX.4.44.0310221445510.16615-100000@wotan.suse.de>, Michael Ma
> tz writes:
> >So, definitely yes. I doubt though, that it matters, because we also link
> >against libstdc++ (of course), and hence the new compiler anyway means
> >full recompilation and lost of backward compatibility. I hope that
> >somewhen this all becomes better, like with glibc ;-)
> All true. However, does KDE have a plug-in architecture? If so, then it's
> quite possible, even likely based on your data that revving up the ABI
> will mean that you also have to rebuild all the plug-ins if you rebuild
> KDE.
>
> Similarly for Mozilla (which worries me even more).
You should also be aware that -Wabi is very agressive.
In many cases, there is no way for the compiler to know for sure that
layouts will change. It's often warning that things *may* change.
"You've done something that might lead to classes derived from this
class changing."
I actually argued against -Wabi because I do not think there is a way to
build it that does not give huge numbers of false positives -- without
actually just compiling the same file with both ABIs and then
mechanically comparing the layouts/mangling/etc. of everything.
Without extreme magic, all plug-ins are *also* linked against the
standard library, so revving the standard library version number is
going to force them to be recompiled anyhow.
And there are bugs that can only be fixed by going to -fabi-version=2.
We're only talking about the *default* version of the ABI -- we're not
talking about removing -fabi-version=1.
--
Mark Mitchell <mark@codesourcery.com>
CodeSourcery, LLC