This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
[PATCH, PPC/Darwin] Fix long double symbol exports.
- From: Iain Sandoe <iain at sandoe dot co dot uk>
- To: libstdc++ <libstdc++ at gcc dot gnu dot org>
- Cc: GCC-patches <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 6 Dec 2018 19:52:08 +0000
- Subject: [PATCH, PPC/Darwin] Fix long double symbol exports.
Hi,
During 8.x, the rs6000 target-specific mangling was reorganised which uncovered
a long-standing bug in Darwin’s mangling for ‘IBM’ long double. Now the symbols
are correctly mangled, and we end up with a bunch of test link fails.
This patch adds the necessary subset of the Linux long double exports to Darwin’s
export table.
I have tested this on a few bootstrap/regtest cycles on powerpc-darwin9, and on the
power7 linux system.
For the record, I’ve noted the library versions from the Linux side, although Darwin
does not version symbols in this way.
OK for trunk and 8.x?
thanks
Iain
libstdc++/
* /config/os/bsd/darwin/ppc-extra.ver: Append long double symbols.
diff --git a/libstdc++-v3/config/os/bsd/darwin/ppc-extra.ver b/libstdc++-v3/config/os/bsd/darwin/ppc-extra.ver
index ffe32b6..f0aee9e 100644
--- a/libstdc++-v3/config/os/bsd/darwin/ppc-extra.ver
+++ b/libstdc++-v3/config/os/bsd/darwin/ppc-extra.ver
@@ -1 +1,22 @@
__eprintf;
+# 3.4
+ _ZNSt14numeric_limitsIgE*;
+ _ZNSirsERg;
+ _ZNSolsEg;
+ _ZNSt13basic_istreamIwSt11char_traitsIwEErsERg;
+ _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEg;
+ _ZSt14__convert_to_vIgEvPKcRT_RSt12_Ios_IostateRKP*;
+ _ZStlsIg[cw]St11char_traitsI[cw]EERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E;
+ _ZStrsIg[cw]St11char_traitsI[cw]EERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E;
+# 3.4.7
+ _ZNSi10_M_extractIgEERSiRT_;
+ _ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIgEERS2_RT_;
+ _ZNSo9_M_insertIgEERSoT_;
+ _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIgEERS2_T_;
+# 3.4.10
+ _ZNKSt3tr14hashIgEclEg;
+ _ZNKSt4hashIgEclEg;
+# ldbl 1.3
+ _ZT[IS]g;
+ _ZT[IS]Pg;
+ _ZT[IS]PKg;