This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [4.3.0] remove system_error support


On Thu, Feb 28, 2008 at 02:59:15PM -0800, Benjamin Kosnik wrote:
> After carefully reviewing the 4.3.0rc exports for libstdc++, I'm happy
> with one exception.
> 
> Support for C++0x <system_error>, incomplete in 4.3.0, still has
> potential for non-trivial changes going forward. Because this support
> in libstdc++ includes exports in libstdc++.so, it is my preference to
> pull support for the 4_3-branch, and keep what we have on the trunk,
> allowing us the ability to allow this functionality to settle before it
> is supported in an official GCC release.
> 
> The following patch against the 4_3-branch does exactly this.

The committed patch also removed std::hash functions, but has not adjusted
config/abi/pre/gnu.ver.
Here is a patch that does that, ok to commit to 4.3?

Unfortunately, while looking at this, I've found another ABI issue:
_ZNKSt3tr14hashI[eg]EclE[eg];
On ppc*-linux/sparc*-linux/alpha*-linux/s390*-linux we still allow
configuring gcc without --with-long-double-128, in fact with older glibc's
that's even the default, and we still support -mlong-double-64 complication
even on systems which default to 128-bit long double.
As std::tr1::hash<long double>::operator()(long double) const
is newly exported from libstdc++, it really should be exported as:
_ZNKSt3tr14hashIgEclEg@@GLIBCXX_LDBL_3.4.10
and
_ZNKSt3tr14hashIeEclEe@@GLIBCXX_3.4.10
Will work on a patch.
BTW, _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIgEERS2_T_ should
have been exported at @@GLIBCXX_LDBL_3.4.9 rather than at
@@GLIBCXX_LDBL_3.4.7, unfortunately 4.2 released with that, so it is too
late to cure.  But it is not as big deal as this _ZNKSt3tr14hashIgEclEg.

Because of these late libstdc++ changes, I think we'll need 4.3.0-rc2 today
and postpone 4.3.0 release for several days.

2008-02-29  Jakub Jelinek  <jakub@redhat.com>

	* config/abi/pre/gnu.ver: Remove std::hash exports.

--- libstdc++-v3/config/abi/pre/gnu.ver.jj	2008-02-29 09:11:54.000000000 +0100
+++ libstdc++-v3/config/abi/pre/gnu.ver	2008-02-29 09:58:19.000000000 +0100
@@ -759,13 +759,6 @@ GLIBCXX_3.4.10 {
     _ZNKSt3tr14hashISsEclESs;
     _ZNKSt3tr14hashI[eg]EclE[eg];
 
-    _ZNKSt4hashIRKSbIwSt11char_traitsIwESaIwEEEclES5_;
-    _ZNKSt4hashIRKSsEclES1_;
-    _ZNKSt4hashISbIwSt11char_traitsIwESaIwEEEclES3_;
-    _ZNKSt4hashISsEclESs;
-    _ZNKSt4hashISt10error_codeEclES0_;
-    _ZNKSt4hashI[eg]EclE[eg];
-
     _ZSt17__verify_grouping*;
     
     _ZNSt8__detail12__prime_listE;


	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]