This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC 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: [PATCH] Optionally use -mlong-double-128 by default on {powerpc{,64},s390{,x},sparc,alpha}-linux (take 3)


On Sat, Feb 04, 2006 at 03:55:18AM -0500, Jakub Jelinek wrote:
> Here is a new version that gets rid of all the ugly assembly filtering.

Further testing revealed problems with --enable-symvers=generic.
As I don't want to spam everybody with a new huge patch, posting just
incremental diff at this point.

One thing I forgot to about the patch I posted yesterday,
unlike previous patch there is no need for multilibbing libstdc++-v3
even if both -mlong-double-64 and -mlong-double-128 switches are supposed
to be supported for compiling C++ code against libstdc++.so.
The -mlong-double-128 compiled libstdc++.so is not only compatible
at runtime with DFmode and TFmode compiled code, but even at link time.

--- libstdc++-v3/src/locale-misc-inst.cc	2006-02-03 12:50:32.000000000 +0100
+++ libstdc++-v3/src/locale-misc-inst.cc	2006-02-04 15:29:26.000000000 +0100
@@ -55,6 +55,11 @@
   extern "C" void ldbl (void) __attribute__ ((alias (#dbl), weak))
 
+# if _GLIBCXX_C_LOCALE_GNU
 _GLIBCXX_LDBL_COMPAT(_ZSt16__convert_from_vIdEiPciPKcT_RKP15__locale_structi,
 		     _ZSt16__convert_from_vIeEiPciPKcT_RKP15__locale_structi);
+# else
+_GLIBCXX_LDBL_COMPAT(_ZSt16__convert_from_vIdEiPciPKcT_RKPii,
+		     _ZSt16__convert_from_vIeEiPciPKcT_RKPii);
+# endif
 
 #endif // _GLIBCXX_LONG_DOUBLE_COMPAT
--- libstdc++-v3/config/locale/generic/c_locale.cc	2006-02-03 10:11:08.000000000 +0100
+++ libstdc++-v3/config/locale/generic/c_locale.cc	2006-02-04 15:26:44.000000000 +0100
@@ -178,3 +178,3 @@
   extern "C" void ldbl (void) __attribute__ ((alias (#dbl)))
-_GLIBCXX_LDBL_COMPAT(_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct, _ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct);
+_GLIBCXX_LDBL_COMPAT(_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKPi, _ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKPi);
 #endif // _GLIBCXX_LONG_DOUBLE_COMPAT
--- libstdc++-v3/config/os/gnu-linux/ldbl-extra.ver	2006-02-03 13:49:34.000000000 +0100
+++ libstdc++-v3/config/os/gnu-linux/ldbl-extra.ver	2006-02-03 13:49:34.000000000 +0100
@@ -6,7 +6,7 @@
   _ZNSolsEg;
   _ZNSt13basic_istreamIwSt11char_traitsIwEErsERg;
   _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEg;
-  _ZSt14__convert_to_vIgEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct;
+  _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;
   *__gnu_cxx_ldbl128*;


	Jakub


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