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