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]

[Committed] libstdc++: Fix version script conflict for new time_get* symbols


Hi,

the abi_check testcase currently fails on s390 due to new time_get*
symbols added two the version script.

The following two patterns have a conflict:

GLIBCXX_3.4:
_ZNKSt8time_getI[cw]St19istreambuf_iteratorI[cw]St11char_traitsI[cw]EEE[0-9]*;

GLIBCXX_3.4.14:
_ZNKSt8time_getI[cw]St19istreambuf_iteratorI[cw]St11char_traitsI[cw]EEE24_M_extract_wday_or_month*;

The attached patch fixes the problem for me.

Tested on s390x. No regressions.
Paolo verified that the abi_check on x86_64 is still ok with the patch.

Patch approved off-list by Paolo Carlini. Committed to mainline.

Bye,

-Andreas-



Here the output from the abi_check tool:

2 incompatible symbols 
0                      
_ZNKSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE24_M_extract_wday_or_monthES3_S3_RiPPKwmRSt8ios_baseRSt12_Ios_Iostate
std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::_M_extract_wday_or_month(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, int&, wchar_t const**, unsigned long, std::ios_base&, std::_Ios_Iostate&) const
version status: incompatible
GLIBCXX_3.4
type: function
status: added


1
_ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE24_M_extract_wday_or_monthES3_S3_RiPPKcmRSt8ios_baseRSt12_Ios_Iostate
std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::_M_extract_wday_or_month(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, int&, char const**, unsigned long, std::ios_base&, std::_Ios_Iostate&) const
version status: incompatible
GLIBCXX_3.4
type: function
status: added

2010-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/abi/pre/gnu.ver: Avoid time_get pattern conflicts.


Index: libstdc++-v3/config/abi/pre/gnu.ver
===================================================================
--- libstdc++-v3/config/abi/pre/gnu.ver.orig	2010-01-26 12:55:36.000000000 +0100
+++ libstdc++-v3/config/abi/pre/gnu.ver	2010-01-26 17:02:46.000000000 +0100
@@ -461,8 +461,9 @@ GLIBCXX_3.4 {
 
     # std::time_get
     _ZNSt8time_get*;
-    _ZNKSt8time_getI[cw]St19istreambuf_iteratorI[cw]St11char_traitsI[cw]EEE[0-9]*;
-    _ZNKSt8time_getI[cw]St19istreambuf_iteratorI[cw]St11char_traitsI[cw]EEE1[0-9]*;
+    _ZNKSt8time_getI[cw]St19istreambuf_iteratorI[cw]St11char_traitsI[cw]EEE1*;
+    _ZNKSt8time_getI[cw]St19istreambuf_iteratorI[cw]St11char_traitsI[cw]EEE8*;
+    _ZNKSt8time_getI[cw]St19istreambuf_iteratorI[cw]St11char_traitsI[cw]EEE21*;
 
     # std::time_get_byname
     _ZNSt15time_get_byname*;


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