This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: [v3] Regenerate Solaris 2 baselines for GCC 4.6.0 release
- From: Rainer Orth <ro at CeBiTec dot Uni-Bielefeld dot DE>
- To: gcc-patches at gcc dot gnu dot org
- Cc: libstdc++ at gcc dot gnu dot org, Jakub Jelinek <jakub at redhat dot com>, Benjamin Kosnik <bkoz at redhat dot com>
- Date: Tue, 15 Mar 2011 17:12:43 +0100
- Subject: Re: [v3] Regenerate Solaris 2 baselines for GCC 4.6.0 release
- References: <yddlj0gpqt3.fsf@manam.CeBiTec.Uni-Bielefeld.DE>
Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> writes:
> I think we agreed that it would be useful to regenerate the Solaris 2
> libstdc++ baselines close to the GCC 4.6.0 release, especially given
> that symbol versioning on Solaris appears in 4.6.0 for the first time
> and several symbols have been added to the libstdc++.so ABI since the
> last update.
>
> This patch does exactly that. It is based on make new-abi-baseline
> output across all of Solaris 8 to 11, both SPARC and x86. I'm
> currently re-running bootstraps on all of them on both mainline and the
> 4.6 branch.
[...]
> Ok for both if the bootstraps pass?
While 4.6 bootstrap has completed without regressions on Solaris 10 and
11/x86 and Solaris 10/SPARC, mainline bootstrap is broken by Benjamin's
recent patch
2011-03-14 Benjamin Kosnik <bkoz@redhat.com>
[...]
* libsupc++/nested_exception.cc: New. Add dtor for nested_exception.
* libsupc++/nested_exception.h: Adjust.
* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust line numbers.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Same.
* config/abi/pre/gnu.ver: Add new exports.
when using the Sun linker:
ld: fatal: libstdc++-symbols.ver-sun: 5130: symbol 'typeinfo for std::nested_exception' is already defined in file: libstdc++-symbols.ver-sun: symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 5132: symbol 'typeinfo name for std::nested_exception' is already defined in file: libstdc++-symbols.ver-sun: symbol version conflict
ld: fatal: libstdc++-symbols.ver-sun: 5134: symbol 'vtable for std::nested_exception' is already defined in file: libstdc++-symbols.ver-sun: symbol version conflict
collect2: ld returned 1 exit status
The lines in question are
##_ZTISt16nested_exception (glob)
_ZTISt16nested_exception;
##_ZTSSt16nested_exception (glob)
_ZTSSt16nested_exception;
##_ZTVSt16nested_exception (glob)
_ZTVSt16nested_exception;
in CXXABI_1.3.5, but the same symbols are also matched by
##_ZTISt[0-9][0-9][m-q]* (glob)
##_ZTSSt[0-9][0-9][m-q]* (glob)
##_ZTVSt[0-9][0-9][m-q]* (glob)
in GLIBCXX_3.4. I fear that I need to update contrib/make_sunver.pl to
handle this, but would need to know the exact semantics of such a
version script first.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University