SOURCES: gcc4-ldbl-default-libstdc++.patch (NEW), gcc4-ldbl-defaul...

arekm arekm at pld-linux.org
Sun Dec 17 02:47:13 CET 2006


Author: arekm                        Date: Sun Dec 17 01:47:13 2006 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- GCC 4.1.1 patches

---- Files affected:
SOURCES:
   gcc4-ldbl-default-libstdc++.patch (1.1 -> 1.2)  (NEW), gcc4-ldbl-default.patch (1.1 -> 1.2)  (NEW), gcc4-libstdcxx-bitset.patch (1.1 -> 1.2)  (NEW), gcc4-pr19606.patch (1.1 -> 1.2)  (NEW), gcc4-pr19664_gnu_internal.patch (1.4 -> 1.5)  (NEW), gcc4-pr19664_libstdc++.patch (1.4 -> 1.5)  (NEW), gcc4-pr24419.patch (1.2 -> 1.3)  (NEW), gcc4-pr24879.patch (1.1 -> 1.2)  (NEW), gcc4-pr25626.patch (1.1 -> 1.2)  (NEW), gcc4-pr26435-pr20256.patch (1.1 -> 1.2)  (NEW), gcc4-pr7776.patch (1.2 -> 1.3)  (NEW), gcc4-alpha-ada_fix.patch (1.7 -> 1.8) , gcc4-enable-java-awt-qt.patch (1.6 -> 1.7) , gcc4-info.patch (1.14 -> 1.15) , gcc4-nodebug.patch (1.8 -> 1.9) , gcc4-pr17390.patch (1.2 -> 1.3) , gcc4-pr20218.patch (1.7 -> 1.8) 

---- Diffs:

================================================================
Index: SOURCES/gcc4-ldbl-default-libstdc++.patch
diff -u /dev/null SOURCES/gcc4-ldbl-default-libstdc++.patch:1.2
--- /dev/null	Sun Dec 17 02:47:13 2006
+++ SOURCES/gcc4-ldbl-default-libstdc++.patch	Sun Dec 17 02:47:07 2006
@@ -0,0 +1,1680 @@
+2006-02-07  Jakub Jelinek  <jakub at redhat.com>
+	    Benjamin Kosnik  <bkoz at redhat.com>
+
+	* configure.ac (_GLIBCXX_LONG_DOUBLE_COMPAT): New check.
+	If true, set also port_specific_symbol_files and create
+	as_symver_specs.
+	(GLIBCXX_LDBL_COMPAT): New GLIBCXX_CONDITIONAL.
+	* configure: Rebuilt.
+	* config.h.in: Rebuilt.
+	* config/os/gnu-linux/ldbl-extra.ver: New file.
+	* config/linker-map.gnu: Make sure no __float128 symbols are
+	exported.
+	* include/bits/c++config (_GLIBCXX_LONG_DOUBLE_COMPAT,
+	_GLIBCXX_LDBL_NAMESPACE, _GLIBCXX_BEGIN_LDBL_NAMESPACE,
+	_GLIBCXX_END_LDBL_NAMESPACE): Define.
+	* include/bits/localefwd.h: Use them to conditionally scope facets.
+	* include/bits/locale_facets.h: Surround std::{money,num}_{get,put}
+	with _GLIBCXX_BEGIN_LDBL_NAMESPACE and _GLIBCXX_END_LDBL_NAMESPACE.
+	[_GLIBCXX_LONG_DOUBLE_COMPAT] (std::money_get): Add __do_get method.
+	[_GLIBCXX_LONG_DOUBLE_COMPAT] (std::money_put): Add __do_put method.
+	[_GLIBCXX_LONG_DOUBLE_COMPAT] (std::num_get): Add __do_get method.
+	[_GLIBCXX_LONG_DOUBLE_COMPAT] (std::num_put): Add __do_put method.
+	* include/bits/locale_facets.tcc: Surround std::{money,num}_{get,put}
+	with _GLIBCXX_BEGIN_LDBL_NAMESPACE and _GLIBCXX_END_LDBL_NAMESPACE.
+	(std::money_get::__do_get, std::money_put::__do_put,
+	std::num_get::__do_get, std::num_put::__do_put): New
+	specializations.
+	* include/Makefile.am: Conditionally define
+	_GLIBCXX_LONG_DOUBLE_COMPAT in c++config.
+	* include/Makefile.in: Regenerate.
+	* src/locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT] (_GLIBCXX_LOC_ID,
+	_GLIBCXX_SYNC_ID): Define, use them.
+	* src/compatibility-ldbl.cc: New file.
+	* src/complex_io.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Add compatibility
+	symbols.
+	* src/limits.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
+	* src/locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
+	* src/locale-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.	
+	* src/locale-misc-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
+	* src/istream-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
+	* src/ostream-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
+	* src/locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
+	* src/wlocale-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
+	* src/compatibility.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
+	* config/locale/generic/c_locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]:
+	Likewise.
+	* config/locale/gnu/c_locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]:
+	Likewise.
+	* src/Makefile.am (libstdc++-symbol.ver): Append instead of
+	insert in the middle if port specific symbol file requests it.
+	(ldbl_compat_sources): New variable.
+	(sources): Use it.
+	(compatibility-ldbl.lo, compatibility-ldbl.o): New rules.
+	* src/Makefile.in: Rebuilt.
+	* testsuite/testsuite_abi.cc: Recognize GLIBCXX_LDBL_3.4,
+	GLIBCXX_LDBL_3.4.7, CXXABI_LDBL_1.3.	
+
+--- libstdc++-v3/configure.ac.jj	2006-02-02 16:38:33.000000000 +0100
++++ libstdc++-v3/configure.ac	2006-02-10 14:53:36.000000000 +0100
+@@ -281,6 +281,25 @@ fi
+ # This depends on GLIBCXX CHECK_LINKER_FEATURES, but without it assumes no.
+ GLIBCXX_ENABLE_SYMVERS([yes])
+ 
++ac_ldbl_compat=no
++case "$target" in
++  powerpc*-*-*gnu* | \
++  sparc*-*-linux* | \
++  s390*-*-linux* | \
++  alpha*-*-linux*)
++  AC_TRY_COMPILE(, [
++#if !defined __LONG_DOUBLE_128__ || (defined(__sparc__) && defined(__arch64__))
++#error no need for long double compatibility
++#endif
++  ], [ac_ldbl_compat=yes], [ac_ldbl_compat=no])
++  if test "$ac_ldbl_compat" = yes; then
++    AC_DEFINE([_GLIBCXX_LONG_DOUBLE_COMPAT],1,
++	      [Define if compatibility should be provided for -mlong-double-64.])
++    port_specific_symbol_files="\$(top_srcdir)/config/os/gnu-linux/ldbl-extra.ver"
++  fi
++esac
++GLIBCXX_CONDITIONAL(GLIBCXX_LDBL_COMPAT, test $ac_ldbl_compat = yes)
++
+ # This depends on GLIBCXX_ENABLE_SYMVERS and GLIBCXX_IS_NATIVE.
+ GLIBCXX_CONFIGURE_TESTSUITE
+ 
+--- libstdc++-v3/src/locale.cc.jj	2006-02-02 16:38:25.000000000 +0100
++++ libstdc++-v3/src/locale.cc	2006-02-10 14:57:26.000000000 +0100
+@@ -41,6 +41,21 @@ namespace __gnu_internal
+   static __glibcxx_mutex_define_initialized(locale_cache_mutex);
+ }
+ 
++// XXX GLIBCXX_ABI Deprecated
++#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
++# define _GLIBCXX_LOC_ID(mangled) extern std::locale::id mangled
++_GLIBCXX_LOC_ID (_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE);
++_GLIBCXX_LOC_ID (_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE);
++_GLIBCXX_LOC_ID (_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE);
++_GLIBCXX_LOC_ID (_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE);
++# ifdef _GLIBCXX_USE_WCHAR_T
++_GLIBCXX_LOC_ID (_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE);
++_GLIBCXX_LOC_ID (_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE);
++_GLIBCXX_LOC_ID (_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE);
++_GLIBCXX_LOC_ID (_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE);
++# endif
++#endif
++
+ namespace std 
+ {
+   // Definitions for static const data members of locale.
+@@ -398,9 +413,29 @@ namespace std 
+   locale::id::_M_id() const
+   {
+     if (!_M_index)
+-      _M_index = 1 + __gnu_cxx::__exchange_and_add(&_S_refcount, 1);
++      {
++	// XXX GLIBCXX_ABI Deprecated
++#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
++	locale::id *f = 0;
++# define _GLIBCXX_SYNC_ID(facet, mangled) \
++	if (this == &::mangled)				\
++	  f = &facet::id
++	_GLIBCXX_SYNC_ID (num_get<char>, _ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE);
++	_GLIBCXX_SYNC_ID (num_put<char>, _ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE);
++	_GLIBCXX_SYNC_ID (money_get<char>, _ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE);
++	_GLIBCXX_SYNC_ID (money_put<char>, _ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE);
++# ifdef _GLIBCXX_USE_WCHAR_T
++	_GLIBCXX_SYNC_ID (num_get<wchar_t>, _ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE);
++	_GLIBCXX_SYNC_ID (num_put<wchar_t>, _ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE);
++	_GLIBCXX_SYNC_ID (money_get<wchar_t>, _ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE);
++	_GLIBCXX_SYNC_ID (money_put<wchar_t>, _ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE);
++# endif
++	if (f)
++	  _M_index = 1 + f->_M_id();
++	else
++#endif
++	  _M_index = 1 + __gnu_cxx::__exchange_and_add(&_S_refcount, 1);
++      }
+     return _M_index - 1;
+   }
+ } // namespace std
+-
+-
+--- libstdc++-v3/src/ostream-inst.cc.jj	2006-02-02 16:38:25.000000000 +0100
++++ libstdc++-v3/src/ostream-inst.cc	2006-02-10 14:53:36.000000000 +0100
+@@ -1,6 +1,6 @@
+ // Explicit instantiation file.
+ 
+-// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
++// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2006
+ // Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+@@ -74,3 +74,19 @@ namespace std
+   template wostream& operator<<(wostream&, _Setw);
+ #endif
+ } // namespace std
++
++// XXX GLIBCXX_ABI Deprecated
++#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
++
++#define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \
++  extern "C" void ldbl (void) __attribute__ ((alias (#dbl), weak))
++_GLIBCXX_LDBL_COMPAT (_ZNSolsEd, _ZNSolsEe);
++_GLIBCXX_LDBL_COMPAT (_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEd,
++		      _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEe);
++// These 2 are in GCC 4.2+ only so far
++// _GLIBCXX_LDBL_COMPAT (_ZNSo9_M_insertIdEERSoT_,
++//			 _ZNSo9_M_insertIeEERSoT_);
++// _GLIBCXX_LDBL_COMPAT (_ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIdEERS2_T_,
++//			 _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIeEERS2_T_);
++
++#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
+--- libstdc++-v3/src/locale-inst.cc.jj	2006-02-02 16:38:25.000000000 +0100
++++ libstdc++-v3/src/locale-inst.cc	2006-02-10 14:53:36.000000000 +0100
+@@ -1,6 +1,6 @@
+ // Locale support -*- C++ -*-
+ 
+-// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
++// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2006
+ // Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+@@ -37,6 +37,7 @@
+ // Instantiation configuration.
+ #ifndef C
+ # define C char
++# define C_is_char
+ #endif
+ 
+ namespace std
+@@ -48,6 +49,7 @@ namespace std
+   template struct __moneypunct_cache<C, true>;
+   template class moneypunct_byname<C, false>;
+   template class moneypunct_byname<C, true>;
++_GLIBCXX_BEGIN_LDBL_NAMESPACE
+   template class money_get<C, istreambuf_iterator<C> >;
+   template class money_put<C, ostreambuf_iterator<C> >;
+   template
+@@ -73,11 +75,13 @@ namespace std
+     money_put<C, ostreambuf_iterator<C> >::
+     _M_insert<false>(ostreambuf_iterator<C>, ios_base&, C, 
+ 		     const string_type&) const;
++_GLIBCXX_END_LDBL_NAMESPACE
+ 
+   // numpunct, numpunct_byname, num_get, and num_put
+   template class numpunct<C>;
+   template struct __numpunct_cache<C>;
+   template class numpunct_byname<C>;
++_GLIBCXX_BEGIN_LDBL_NAMESPACE
+   template class num_get<C, istreambuf_iterator<C> >;
+   template class num_put<C, ostreambuf_iterator<C> >; 
+   template
+@@ -161,7 +165,8 @@ namespace std
+     num_put<C, ostreambuf_iterator<C> >::
+     _M_insert_float(ostreambuf_iterator<C>, ios_base&, C, char, 
+ 		    long double) const;
+-  
++_GLIBCXX_END_LDBL_NAMESPACE
++
+   // time_get and time_put
+   template class __timepunct<C>;
+   template struct __timepunct_cache<C>;
+@@ -314,3 +319,44 @@ namespace std
+ 		  ios_base::fmtflags, bool);
+ #endif
+ } // namespace std
++
++// XXX GLIBCXX_ABI Deprecated
++#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined C_is_char
++
++#define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \
++  extern "C" void ldbl (void) __attribute__ ((alias (#dbl), weak))
++
++_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIjEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
++		     _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIjEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
++_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIlEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
++		     _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIlEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
++_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intImEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
++		     _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intImEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
++_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intItEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
++		     _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intItEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
++_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIxEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
++		     _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIxEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
++_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIyEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
++		     _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIyEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
++_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIlEES4_S4_RSt8ios_basecT_,
++		     _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIlEES3_S3_RSt8ios_basecT_);
++_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intImEES4_S4_RSt8ios_basecT_,
++		     _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intImEES3_S3_RSt8ios_basecT_);
++_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIxEES4_S4_RSt8ios_basecT_,
++		     _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIxEES3_S3_RSt8ios_basecT_);
++_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIyEES4_S4_RSt8ios_basecT_,
++		     _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIyEES3_S3_RSt8ios_basecT_);
++_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES4_S4_RSt8ios_baseccT_,
++		     _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES3_S3_RSt8ios_baseccT_);
++_GLIBCXX_LDBL_COMPAT(_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES3_S3_RSt8ios_baseccT_,
++		     _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIeEES3_S3_RSt8ios_baseccT_);
++_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb0EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRSs,
++		     _ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb0EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs);
++_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb1EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRSs,
++		     _ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb1EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs);
++_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES4_S4_RSt8ios_basecRKSs,
++		     _ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES3_S3_RSt8ios_basecRKSs);
++_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES4_S4_RSt8ios_basecRKSs,
++		     _ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES3_S3_RSt8ios_basecRKSs);
++
++#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
+--- libstdc++-v3/src/compatibility.cc.jj	2006-02-02 16:38:25.000000000 +0100
++++ libstdc++-v3/src/compatibility.cc	2006-02-10 14:57:29.000000000 +0100
+@@ -1,6 +1,6 @@
+ // Compatibility symbols for previous versions -*- C++ -*-
+ 
+-// Copyright (C) 2005
++// Copyright (C) 2005, 2006
+ // Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+@@ -49,6 +49,7 @@
+ #include <istream>
+ #include <fstream>
+ #include <sstream>
++#include <cmath>
+ 
+ namespace std
+ {
+@@ -362,6 +363,107 @@ namespace std
+ 
+ #endif
+ 
++// gcc-4.1.0
++#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
++#define _GLIBCXX_MATHL_WRAPPER(name, argdecl, args, ver) \
++extern "C" double						\
++__ ## name ## l_wrapper argdecl					\
++{								\
++  return name args;						\
++}								\
++asm (".symver __" #name "l_wrapper, " #name "l@" #ver)
++
++#define _GLIBCXX_MATHL_WRAPPER1(name, ver) \
++  _GLIBCXX_MATHL_WRAPPER (name, (double x), (x), ver)
++
++#define _GLIBCXX_MATHL_WRAPPER2(name, ver) \
++  _GLIBCXX_MATHL_WRAPPER (name, (double x, double y), (x, y), ver)
++
++#ifdef _GLIBCXX_HAVE_ACOSL
++_GLIBCXX_MATHL_WRAPPER1 (acos, GLIBCXX_3.4.3);
++#endif
++#ifdef _GLIBCXX_HAVE_ASINL
++_GLIBCXX_MATHL_WRAPPER1 (asin, GLIBCXX_3.4.3);
++#endif
++#ifdef _GLIBCXX_HAVE_ATAN2L
++_GLIBCXX_MATHL_WRAPPER2 (atan2, GLIBCXX_3.4);
++#endif
++#ifdef _GLIBCXX_HAVE_ATANL
++_GLIBCXX_MATHL_WRAPPER1 (atan, GLIBCXX_3.4.3);
++#endif
++#ifdef _GLIBCXX_HAVE_CEILL
++_GLIBCXX_MATHL_WRAPPER1 (ceil, GLIBCXX_3.4.3);
++#endif
++#ifdef _GLIBCXX_HAVE_COSHL
++_GLIBCXX_MATHL_WRAPPER1 (cosh, GLIBCXX_3.4);
++#endif
++#ifdef _GLIBCXX_HAVE_COSL
++_GLIBCXX_MATHL_WRAPPER1 (cos, GLIBCXX_3.4);
++#endif
++#ifdef _GLIBCXX_HAVE_EXPL
++_GLIBCXX_MATHL_WRAPPER1 (exp, GLIBCXX_3.4);
++#endif
++#ifdef _GLIBCXX_HAVE_FLOORL
++_GLIBCXX_MATHL_WRAPPER1 (floor, GLIBCXX_3.4.3);
++#endif
++#ifdef _GLIBCXX_HAVE_FMODL
++_GLIBCXX_MATHL_WRAPPER2 (fmod, GLIBCXX_3.4.3);
++#endif
++#ifdef _GLIBCXX_HAVE_FREXPL
++_GLIBCXX_MATHL_WRAPPER (frexp, (double x, int *y), (x, y), GLIBCXX_3.4.3);
++#endif
++#ifdef _GLIBCXX_HAVE_HYPOTL
++_GLIBCXX_MATHL_WRAPPER2 (hypot, GLIBCXX_3.4);
++#endif
++#ifdef _GLIBCXX_HAVE_LDEXPL
++_GLIBCXX_MATHL_WRAPPER (ldexp, (double x, int y), (x, y), GLIBCXX_3.4.3);
++#endif
++#ifdef _GLIBCXX_HAVE_LOG10L
++_GLIBCXX_MATHL_WRAPPER1 (log10, GLIBCXX_3.4);
++#endif
++#ifdef _GLIBCXX_HAVE_LOGL
++_GLIBCXX_MATHL_WRAPPER1 (log, GLIBCXX_3.4);
++#endif
++#ifdef _GLIBCXX_HAVE_MODFL
++_GLIBCXX_MATHL_WRAPPER (modf, (double x, double *y), (x, y), GLIBCXX_3.4.3);
++#endif
++#ifdef _GLIBCXX_HAVE_POWL
++_GLIBCXX_MATHL_WRAPPER2 (pow, GLIBCXX_3.4);
++#endif
++#ifdef _GLIBCXX_HAVE_SINHL
++_GLIBCXX_MATHL_WRAPPER1 (sinh, GLIBCXX_3.4);
++#endif
++#ifdef _GLIBCXX_HAVE_SINL
++_GLIBCXX_MATHL_WRAPPER1 (sin, GLIBCXX_3.4);
++#endif
++#ifdef _GLIBCXX_HAVE_SQRTL
++_GLIBCXX_MATHL_WRAPPER1 (sqrt, GLIBCXX_3.4);
++#endif
++#ifdef _GLIBCXX_HAVE_TANHL
++_GLIBCXX_MATHL_WRAPPER1 (tanh, GLIBCXX_3.4);
++#endif
++#ifdef _GLIBCXX_HAVE_TANL
++_GLIBCXX_MATHL_WRAPPER1 (tan, GLIBCXX_3.4);
++#endif
++#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
++
++#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
++extern void *_ZTVN10__cxxabiv123__fundamental_type_infoE[];
++extern void *_ZTVN10__cxxabiv119__pointer_type_infoE[];
++extern __attribute__((used, weak)) const char _ZTSe[2] = "e";
++extern __attribute__((used, weak)) const char _ZTSPe[3] = "Pe";
++extern __attribute__((used, weak)) const char _ZTSPKe[4] = "PKe";
++extern __attribute__((used, weak)) const void *_ZTIe[2]
++  = { (void *) &_ZTVN10__cxxabiv123__fundamental_type_infoE[2],
++      (void *) _ZTSe };
++extern __attribute__((used, weak)) const void *_ZTIPe[4]
++  = { (void *) &_ZTVN10__cxxabiv119__pointer_type_infoE[2],
++      (void *) _ZTSPe, (void *) 0L, (void *) _ZTIe };
++extern __attribute__((used, weak)) const void *_ZTIPKe[4]
++  = { (void *) &_ZTVN10__cxxabiv119__pointer_type_infoE[2],
++      (void *) _ZTSPKe, (void *) 1L, (void *) _ZTIe };
++#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
++
+ #ifdef __APPLE__
+ #if (defined(__ppc__) || defined (__ppc64__)) && defined (PIC)
+ /* __eprintf shouldn't have been made visible from libstdc++, or
+--- libstdc++-v3/src/limits.cc.jj	2006-02-02 16:38:25.000000000 +0100
++++ libstdc++-v3/src/limits.cc	2006-02-10 14:53:36.000000000 +0100
+@@ -1,6 +1,6 @@
+ // Static data members of -*- C++ -*- numeric_limits classes
+ 
+-// Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
++// Copyright (C) 1999, 2001, 2002, 2006 Free Software Foundation, Inc.
+ //
+ // This file is part of the GNU ISO C++ Library.  This library is free
+ // software; you can redistribute it and/or modify it under the
+@@ -447,3 +447,34 @@ namespace std 
+   const bool numeric_limits<long double>::tinyness_before;
+   const float_round_style numeric_limits<long double>::round_style;
+ } // namespace std
++
++// XXX GLIBCXX_ABI Deprecated
++#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
++
++#define _GLIBCXX_NUM_LIM_COMPAT(type, member, len) \
++  extern "C" type _ZNSt14numeric_limitsIeE ## len ## member ## E \
++  __attribute__ ((alias ("_ZNSt14numeric_limitsIdE" #len #member "E")))
++_GLIBCXX_NUM_LIM_COMPAT (bool, is_specialized, 14);
++_GLIBCXX_NUM_LIM_COMPAT (int, digits, 6);
++_GLIBCXX_NUM_LIM_COMPAT (int, digits10, 8);
++_GLIBCXX_NUM_LIM_COMPAT (bool, is_signed, 9);
++_GLIBCXX_NUM_LIM_COMPAT (bool, is_integer, 10);
++_GLIBCXX_NUM_LIM_COMPAT (bool, is_exact, 8);
++_GLIBCXX_NUM_LIM_COMPAT (int, radix, 5);
++_GLIBCXX_NUM_LIM_COMPAT (int, min_exponent, 12);
++_GLIBCXX_NUM_LIM_COMPAT (int, min_exponent10, 14);
++_GLIBCXX_NUM_LIM_COMPAT (int, max_exponent, 12);
++_GLIBCXX_NUM_LIM_COMPAT (int, max_exponent10, 14);
++_GLIBCXX_NUM_LIM_COMPAT (bool, has_infinity, 12);
++_GLIBCXX_NUM_LIM_COMPAT (bool, has_quiet_NaN, 13);
++_GLIBCXX_NUM_LIM_COMPAT (bool, has_signaling_NaN, 17);
++_GLIBCXX_NUM_LIM_COMPAT (std::float_denorm_style, has_denorm, 10);
++_GLIBCXX_NUM_LIM_COMPAT (bool, has_denorm_loss, 15);
++_GLIBCXX_NUM_LIM_COMPAT (bool, is_iec559, 9);
++_GLIBCXX_NUM_LIM_COMPAT (bool, is_bounded, 10);
++_GLIBCXX_NUM_LIM_COMPAT (bool, is_modulo, 9);
++_GLIBCXX_NUM_LIM_COMPAT (bool, traps, 5);
++_GLIBCXX_NUM_LIM_COMPAT (bool, tinyness_before, 15);
++_GLIBCXX_NUM_LIM_COMPAT (std::float_round_style, round_style, 11);
++
++#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
+--- libstdc++-v3/src/compatibility-ldbl.cc.jj	2006-02-10 14:53:36.000000000 +0100
++++ libstdc++-v3/src/compatibility-ldbl.cc	2006-02-10 14:53:36.000000000 +0100
+@@ -0,0 +1,73 @@
++// Compatibility symbols for -mlong-double-64 compatibility -*- C++ -*-
++
++// Copyright (C) 2006
++// Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library.  This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 2, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++// GNU General Public License for more details.
++
++// You should have received a copy of the GNU General Public License along
++// with this library; see the file COPYING.  If not, write to the Free
++// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
++// USA.
++
++// As a special exception, you may use this file as part of a free software
++// library without restriction.  Specifically, if other files instantiate
++// templates or use macros or inline functions from this file, or you compile
++// this file and link it with other files to produce an executable, this
++// file does not by itself cause the resulting executable to be covered by
++// the GNU General Public License.  This exception does not however
++// invalidate any other reasons why the executable file might be covered by
++// the GNU General Public License.
++
++#include <locale>
++
++#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
++
++#ifdef __LONG_DOUBLE_128__
++#error "compatibility-ldbl.cc must be compiled with -mlong-double-64"
++#endif
++
++namespace std
++{
++#define C char
++  template class num_get<C, istreambuf_iterator<C> >;
++  template class num_put<C, ostreambuf_iterator<C> >;
++  template class money_get<C, istreambuf_iterator<C> >;
++  template class money_put<C, ostreambuf_iterator<C> >;
++  template const num_put<C>& use_facet<num_put<C> >(const locale&);
++  template const num_get<C>& use_facet<num_get<C> >(const locale&);
++  template const money_put<C>& use_facet<money_put<C> >(const locale&);
++  template const money_get<C>& use_facet<money_get<C> >(const locale&);
++  template bool has_facet<num_put<C> >(const locale&);
++  template bool has_facet<num_get<C> >(const locale&);
++  template bool has_facet<money_put<C> >(const locale&);
++  template bool has_facet<money_get<C> >(const locale&);
++#undef C
++#ifdef _GLIBCXX_USE_WCHAR_T
++#define C wchar_t
++  template class num_get<C, istreambuf_iterator<C> >;
++  template class num_put<C, ostreambuf_iterator<C> >;
++  template class money_get<C, istreambuf_iterator<C> >;
++  template class money_put<C, ostreambuf_iterator<C> >;
++  template const num_put<C>& use_facet<num_put<C> >(const locale&);
++  template const num_get<C>& use_facet<num_get<C> >(const locale&);
++  template const money_put<C>& use_facet<money_put<C> >(const locale&);
++  template const money_get<C>& use_facet<money_get<C> >(const locale&);
++  template bool has_facet<num_put<C> >(const locale&);
++  template bool has_facet<num_get<C> >(const locale&);
++  template bool has_facet<money_put<C> >(const locale&);
++  template bool has_facet<money_get<C> >(const locale&);
++#undef C
++#endif
++}
++
++#endif
+--- libstdc++-v3/src/Makefile.am.jj	2006-02-02 16:38:25.000000000 +0100
++++ libstdc++-v3/src/Makefile.am	2006-02-10 14:53:36.000000000 +0100
+@@ -35,10 +35,15 @@ libstdc++-symbol.ver:  ${glibcxx_srcdir}
+ 		$(port_specific_symbol_files)
+ 	cp ${glibcxx_srcdir}/$(SYMVER_MAP) ./libstdc++-symbol.ver
+ 	if test "x$(port_specific_symbol_files)" != x; then \
+-	  sed -n '1,/DO NOT DELETE/p' $@ > tmp.top; \
+-	  sed -n '/DO NOT DELETE/,$$p' $@ > tmp.bottom; \
+-	  cat tmp.top $(port_specific_symbol_files) tmp.bottom > $@; \
+-	  rm tmp.top tmp.bottom; \
++	  if grep '^# Appended to version file.' \
++	       $(port_specific_symbol_files) /dev/null > /dev/null 2>&1; then \
++	    cat $(port_specific_symbol_files) >> $@; \
++	  else \
++	    sed -n '1,/DO NOT DELETE/p' $@ > tmp.top; \
++	    sed -n '/DO NOT DELETE/,$$p' $@ > tmp.bottom; \
++	    cat tmp.top $(port_specific_symbol_files) tmp.bottom > $@; \
++	    rm tmp.top tmp.bottom; \
++	  fi; \
+ 	fi
+ 
+ if ENABLE_SYMVERS_GNU
+@@ -113,6 +118,12 @@ c++locale.cc: ${glibcxx_srcdir}/$(CLOCAL
+ basic_file.cc: ${glibcxx_srcdir}/$(BASIC_FILE_CC)
+ 	$(LN_S) ${glibcxx_srcdir}/$(BASIC_FILE_CC) ./$@ || true
+ 
++if GLIBCXX_LDBL_COMPAT
++ldbl_compat_sources = compatibility-ldbl.cc
++else
++ldbl_compat_sources =
++endif
++
+ # Sources present in the src directory.
+ sources = \
+ 	bitmap_allocator.cc \
+@@ -160,7 +171,8 @@ sources = \
+ 	wlocale-inst.cc \
+ 	wstring-inst.cc \
+ 	${host_sources} \
+-	${host_sources_extra}
++	${host_sources_extra} \
++	${ldbl_compat_sources}
+ 
+ VPATH = $(top_srcdir)/src:$(top_srcdir)
+ 
+@@ -191,6 +203,15 @@ concept-inst.lo: concept-inst.cc
+ concept-inst.o: concept-inst.cc
+ 	$(CXXCOMPILE) -D_GLIBCXX_CONCEPT_CHECKS -fimplicit-templates -c $<
+ 
++if GLIBCXX_LDBL_COMPAT
++# Use special rules for compatibility-ldbl.cc compilation, as we need to
++# pass -mlong-double-64.
++compatibility-ldbl.lo: compatibility-ldbl.cc
++	$(LTCXXCOMPILE) -mlong-double-64 -c $<
++compatibility-ldbl.o: compatibility-ldbl.cc
++	$(CXXCOMPILE) -mlong-double-64 -c $<
++endif
++
+ # AM_CXXFLAGS needs to be in each subdirectory so that it can be
+ # modified in a per-library or per-sub-library way.  Need to manually
+ # set this option because CONFIG_CXXFLAGS has to be after
+--- libstdc++-v3/src/Makefile.in.jj	2006-02-02 16:38:25.000000000 +0100
++++ libstdc++-v3/src/Makefile.in	2006-02-10 14:53:36.000000000 +0100
+@@ -59,11 +59,27 @@ am__strip_dir = `echo $$p | sed -e 's|^.
+ am__installdirs = "$(DESTDIR)$(toolexeclibdir)"
+ toolexeclibLTLIBRARIES_INSTALL = $(INSTALL)
+ LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
++am__libstdc___la_SOURCES_DIST = bitmap_allocator.cc pool_allocator.cc \
++	mt_allocator.cc codecvt.cc compatibility.cc complex_io.cc \
++	ctype.cc debug.cc debug_list.cc functexcept.cc \
++	globals_locale.cc globals_io.cc ios.cc ios_failure.cc \
++	ios_init.cc ios_locale.cc limits.cc list.cc locale.cc \
++	locale_init.cc locale_facets.cc localename.cc stdexcept.cc \
++	strstream.cc tree.cc allocator-inst.cc concept-inst.cc \
++	fstream-inst.cc ext-inst.cc ios-inst.cc iostream-inst.cc \
++	istream-inst.cc istream.cc locale-inst.cc locale-misc-inst.cc \
++	misc-inst.cc ostream-inst.cc sstream-inst.cc streambuf-inst.cc \
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    http://cvs.pld-linux.org/SOURCES/gcc4-alpha-ada_fix.patch?r1=1.7&r2=1.8&f=u
    http://cvs.pld-linux.org/SOURCES/gcc4-enable-java-awt-qt.patch?r1=1.6&r2=1.7&f=u
    http://cvs.pld-linux.org/SOURCES/gcc4-info.patch?r1=1.14&r2=1.15&f=u
    http://cvs.pld-linux.org/SOURCES/gcc4-nodebug.patch?r1=1.8&r2=1.9&f=u
    http://cvs.pld-linux.org/SOURCES/gcc4-pr17390.patch?r1=1.2&r2=1.3&f=u
    http://cvs.pld-linux.org/SOURCES/gcc4-pr20218.patch?r1=1.7&r2=1.8&f=u



More information about the pld-cvs-commit mailing list