On 26/04/19 12:48 +0200, Jakub Jelinek wrote:
Hi!
The following patch updates the baseline symbols files from April 18th
Fedora rpm build. I've verified the only added lines are for the
GLIBCXX_3.4.26 or CXXABI_1.3.12 symvers and I don't see any new long double
symbol on powerpc64 or s390x, except I had to manually remove
FUNC:_ZNSbIwSt11char_traitsIwESaIwEE19_M_replace_dispatchIPKcEERS2_N9__gnu_cxx17__normal_iteratorIPwS2_EESA_T_SB_St12__false_type@@GLIBCXX_3.4
lines that started to appear on all but s390x builds in Fedora rpm builds
(but they don't show up e.g. on my workstation). Guess we need to make the
wildcards more careful.
The attached patch would do that. The symbol above is a function
template, so we don't need to export it from the lib (because user
code that needs it will instantiate it anyway). It's only called from
the basic_string<C,T,A>::replace<Iter>(iterator, iterator, Iter, Iter)
function template, which isn't exported from the lib.
diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver
index e8cf6f0a4a9..7eff4e983f3 100644
--- a/libstdc++-v3/config/abi/pre/gnu.ver
+++ b/libstdc++-v3/config/abi/pre/gnu.ver
@@ -299,7 +299,8 @@ GLIBCXX_3.4 {
_ZNSbIwSt11char_traitsIwESaIwEE12_S_constructE[jmy]wRKS1_;
_ZNSbIwSt11char_traitsIwESaIwEE12_S_empty_repEv;
_ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_chars*;
- _ZNSbIwSt11char_traitsIwESaIwEE[0-9][0-9]_M_replace*;
+ _ZNSbIwSt11char_traitsIwESaIwEE14_M_replace_aux*;
+ _ZNSbIwSt11char_traitsIwESaIwEE15_M_replace_safe*;
_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_destroy*;
_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_dispose*;
_ZNSbIwSt11char_traitsIwESaIwEE4_Rep10_M_refcopyEv;