[PATCH, PPC/Darwin] Fix long double symbol exports.

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

[PATCH, PPC/Darwin] Fix long double symbol exports.

Iain Sandoe-5
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;

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH, PPC/Darwin] Fix long double symbol exports.

Mike Stump-3
On Dec 6, 2018, at 11:52 AM, Iain Sandoe <[hidden email]> wrote:

>
> 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?

Don't know if the libstdc++ want to review this or they want me to...  I'm fine with it.
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH, PPC/Darwin] Fix long double symbol exports.

Jonathan Wakely-3
On 06/12/18 14:36 -0800, Mike Stump wrote:

>On Dec 6, 2018, at 11:52 AM, Iain Sandoe <[hidden email]> wrote:
>>
>> 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?
>
>Don't know if the libstdc++ want to review this or they want me to...  I'm fine with it.

Me too. OK for trunk and 8.x - thanks.