This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: C++ ABI testing issues, gcc-3.3 <-> gcc-3.2 compatibility
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Benjamin Kosnik <bkoz at redhat dot com>
- Cc: gcc at gcc dot gnu dot org, rth at redhat dot com
- Date: Sat, 3 Aug 2002 12:36:07 +0200
- Subject: Re: C++ ABI testing issues, gcc-3.3 <-> gcc-3.2 compatibility
- References: <20020802091614.3930072f.bkoz@redhat.com>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Fri, Aug 02, 2002 at 09:16:14AM -0700, Benjamin Kosnik wrote:
> I'd apprecaite it if somebody could verify my results.
I've done 6 libstdc++ make check runs on i386-redhat-linux.
First did make bootstrap in gcc-3.2 and gcc-3.3 tree, run make check.
In both cases, there were 25 XPASSes (22_locale stuff) and 1 FAIL -
the usual 26_numerics/c99_classification_macros_c.cc.
Next step was to swap obj-i386-redhat-linux/libstdc++-v3/src/.libs/libstdc++.so.5.0.0
between the two trees and rerun make check.
In 3.2 tree with 3.3 built libstdc++.so.5 this resulted in additional:
FAIL: 27_io/filebuf_members.cc execution test
FAIL: 27_io/ifstream_members.cc execution test
WARNING: program timed out.
FAIL: 27_io/istream_unformatted.cc execution test
FAIL: 27_io/ofstream_members.cc execution test
FAIL: 27_io/ostream_inserter_other.cc execution test
FAIL: thread/pthread1.cc execution test
FAIL: thread/pthread5.cc execution test
FAIL: thread/pthread6.cc execution test
and in 3.3 tree with 3.2 built libstdc++.so.5 this ended up with:
FAIL: 27_io/filebuf_members.cc execution test
FAIL: 27_io/filebuf_virtuals.cc execution test
FAIL: 27_io/ifstream_members.cc execution test
FAIL: 27_io/istream_extractor_other.cc execution test
FAIL: 27_io/istream_seeks.cc execution test
WARNING: program timed out.
FAIL: 27_io/istream_unformatted.cc execution test
FAIL: 27_io/ofstream_members.cc execution test
FAIL: 27_io/ostream_inserter_other.cc execution test
FAIL: 27_io/ostream_seeks.cc execution test
The last step was to make clean in libstdc++-v3 and exchange gcc subdirectories
in the two trees (so that 3.2 build tree ended up with gcc 3.3 compiler and
vice versa), then run make in libstdc++-v3 followed by make check (ie.
basically built 3.2 libstdc++-v3 using g++ 3.3 and 3.3 libstdc++-v3 using
g++ 3.2. This resulted in just those 25 XPASSes and 1 26_numeric FAIL.
Which looks like that C++ compiler is (at least in the areas tested by the
testsuite) ABI compatible, while libstdc++-v3 is not.
One problem which might invalidate the above results is that 3.2 was build
from Red Hat rpm, ie. with a bunch of configure options including enabled
thread support while 3.3 build was just ../configure i386-redhat-linux.
I'll do ../configure i386-redhat-linux bootstrap on 3.2 branch and retry
the tests to make sure.
Jakub