1 2006-02-07 Jakub Jelinek <jakub@redhat.com>
2 Benjamin Kosnik <bkoz@redhat.com>
4 * configure.ac (_GLIBCXX_LONG_DOUBLE_COMPAT): New check.
5 If true, set also port_specific_symbol_files and create
7 (GLIBCXX_LDBL_COMPAT): New GLIBCXX_CONDITIONAL.
9 * config.h.in: Rebuilt.
10 * config/os/gnu-linux/ldbl-extra.ver: New file.
11 * config/linker-map.gnu: Make sure no __float128 symbols are
13 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_COMPAT,
14 _GLIBCXX_LDBL_NAMESPACE, _GLIBCXX_BEGIN_LDBL_NAMESPACE,
15 _GLIBCXX_END_LDBL_NAMESPACE): Define.
16 * include/bits/localefwd.h: Use them to conditionally scope facets.
17 * include/bits/locale_facets.h: Surround std::{money,num}_{get,put}
18 with _GLIBCXX_BEGIN_LDBL_NAMESPACE and _GLIBCXX_END_LDBL_NAMESPACE.
19 [_GLIBCXX_LONG_DOUBLE_COMPAT] (std::money_get): Add __do_get method.
20 [_GLIBCXX_LONG_DOUBLE_COMPAT] (std::money_put): Add __do_put method.
21 [_GLIBCXX_LONG_DOUBLE_COMPAT] (std::num_get): Add __do_get method.
22 [_GLIBCXX_LONG_DOUBLE_COMPAT] (std::num_put): Add __do_put method.
23 * include/bits/locale_facets.tcc: Surround std::{money,num}_{get,put}
24 with _GLIBCXX_BEGIN_LDBL_NAMESPACE and _GLIBCXX_END_LDBL_NAMESPACE.
25 (std::money_get::__do_get, std::money_put::__do_put,
26 std::num_get::__do_get, std::num_put::__do_put): New
28 * include/Makefile.am: Conditionally define
29 _GLIBCXX_LONG_DOUBLE_COMPAT in c++config.
30 * include/Makefile.in: Regenerate.
31 * src/locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT] (_GLIBCXX_LOC_ID,
32 _GLIBCXX_SYNC_ID): Define, use them.
33 * src/compatibility-ldbl.cc: New file.
34 * src/complex_io.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Add compatibility
36 * src/limits.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
37 * src/locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
38 * src/locale-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
39 * src/locale-misc-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
40 * src/istream-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
41 * src/ostream-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
42 * src/locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
43 * src/wlocale-inst.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
44 * src/compatibility.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Likewise.
45 * config/locale/generic/c_locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]:
47 * config/locale/gnu/c_locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]:
49 * src/Makefile.am (libstdc++-symbol.ver): Append instead of
50 insert in the middle if port specific symbol file requests it.
51 (ldbl_compat_sources): New variable.
53 (compatibility-ldbl.lo, compatibility-ldbl.o): New rules.
54 * src/Makefile.in: Rebuilt.
55 * testsuite/testsuite_abi.cc: Recognize GLIBCXX_LDBL_3.4,
56 GLIBCXX_LDBL_3.4.7, CXXABI_LDBL_1.3.
58 --- libstdc++-v3/configure.ac.jj 2006-02-02 16:38:33.000000000 +0100
59 +++ libstdc++-v3/configure.ac 2006-02-10 14:53:36.000000000 +0100
60 @@ -281,6 +281,25 @@ fi
61 # This depends on GLIBCXX CHECK_LINKER_FEATURES, but without it assumes no.
62 GLIBCXX_ENABLE_SYMVERS([yes])
66 + powerpc*-*-*gnu* | \
71 +#if !defined __LONG_DOUBLE_128__ || (defined(__sparc__) && defined(__arch64__))
72 +#error no need for long double compatibility
74 + ], [ac_ldbl_compat=yes], [ac_ldbl_compat=no])
75 + if test "$ac_ldbl_compat" = yes; then
76 + AC_DEFINE([_GLIBCXX_LONG_DOUBLE_COMPAT],1,
77 + [Define if compatibility should be provided for -mlong-double-64.])
78 + port_specific_symbol_files="\$(top_srcdir)/config/os/gnu-linux/ldbl-extra.ver"
81 +GLIBCXX_CONDITIONAL(GLIBCXX_LDBL_COMPAT, test $ac_ldbl_compat = yes)
83 # This depends on GLIBCXX_ENABLE_SYMVERS and GLIBCXX_IS_NATIVE.
84 GLIBCXX_CONFIGURE_TESTSUITE
86 --- libstdc++-v3/src/locale.cc.jj 2006-02-02 16:38:25.000000000 +0100
87 +++ libstdc++-v3/src/locale.cc 2006-02-10 14:57:26.000000000 +0100
89 -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
90 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
91 // Free Software Foundation, Inc.
93 // This file is part of the GNU ISO C++ Library. This library is free
94 @@ -41,6 +41,21 @@ namespace __gnu_internal
95 static __glibcxx_mutex_define_initialized(locale_cache_mutex);
98 +// XXX GLIBCXX_ABI Deprecated
99 +#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
100 +# define _GLIBCXX_LOC_ID(mangled) extern std::locale::id mangled
101 +_GLIBCXX_LOC_ID (_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE);
102 +_GLIBCXX_LOC_ID (_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE);
103 +_GLIBCXX_LOC_ID (_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE);
104 +_GLIBCXX_LOC_ID (_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE);
105 +# ifdef _GLIBCXX_USE_WCHAR_T
106 +_GLIBCXX_LOC_ID (_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE);
107 +_GLIBCXX_LOC_ID (_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE);
108 +_GLIBCXX_LOC_ID (_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE);
109 +_GLIBCXX_LOC_ID (_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE);
115 // Definitions for static const data members of locale.
116 @@ -398,9 +413,29 @@ namespace std
117 locale::id::_M_id() const
120 - _M_index = 1 + __gnu_cxx::__exchange_and_add(&_S_refcount, 1);
122 + // XXX GLIBCXX_ABI Deprecated
123 +#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
125 +# define _GLIBCXX_SYNC_ID(facet, mangled) \
126 + if (this == &::mangled) \
128 + _GLIBCXX_SYNC_ID (num_get<char>, _ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE);
129 + _GLIBCXX_SYNC_ID (num_put<char>, _ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE);
130 + _GLIBCXX_SYNC_ID (money_get<char>, _ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE);
131 + _GLIBCXX_SYNC_ID (money_put<char>, _ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE);
132 +# ifdef _GLIBCXX_USE_WCHAR_T
133 + _GLIBCXX_SYNC_ID (num_get<wchar_t>, _ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE);
134 + _GLIBCXX_SYNC_ID (num_put<wchar_t>, _ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE);
135 + _GLIBCXX_SYNC_ID (money_get<wchar_t>, _ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE);
136 + _GLIBCXX_SYNC_ID (money_put<wchar_t>, _ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE);
139 + _M_index = 1 + f->_M_id();
142 + _M_index = 1 + __gnu_cxx::__exchange_and_add(&_S_refcount, 1);
149 --- libstdc++-v3/src/ostream-inst.cc.jj 2006-02-02 16:38:25.000000000 +0100
150 +++ libstdc++-v3/src/ostream-inst.cc 2006-02-10 14:53:36.000000000 +0100
152 // Explicit instantiation file.
154 -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
155 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2006
156 // Free Software Foundation, Inc.
158 // This file is part of the GNU ISO C++ Library. This library is free
159 @@ -74,3 +74,19 @@ namespace std
160 template wostream& operator<<(wostream&, _Setw);
164 +// XXX GLIBCXX_ABI Deprecated
165 +#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
167 +#define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \
168 + extern "C" void ldbl (void) __attribute__ ((alias (#dbl), weak))
169 +_GLIBCXX_LDBL_COMPAT (_ZNSolsEd, _ZNSolsEe);
170 +_GLIBCXX_LDBL_COMPAT (_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEd,
171 + _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEe);
172 +// These 2 are in GCC 4.2+ only so far
173 +// _GLIBCXX_LDBL_COMPAT (_ZNSo9_M_insertIdEERSoT_,
174 +// _ZNSo9_M_insertIeEERSoT_);
175 +// _GLIBCXX_LDBL_COMPAT (_ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIdEERS2_T_,
176 +// _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIeEERS2_T_);
178 +#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
179 --- libstdc++-v3/src/locale-inst.cc.jj 2006-02-02 16:38:25.000000000 +0100
180 +++ libstdc++-v3/src/locale-inst.cc 2006-02-10 14:53:36.000000000 +0100
182 // Locale support -*- C++ -*-
184 -// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
185 +// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2006
186 // Free Software Foundation, Inc.
188 // This file is part of the GNU ISO C++ Library. This library is free
190 // Instantiation configuration.
197 @@ -48,6 +49,7 @@ namespace std
198 template struct __moneypunct_cache<C, true>;
199 template class moneypunct_byname<C, false>;
200 template class moneypunct_byname<C, true>;
201 +_GLIBCXX_BEGIN_LDBL_NAMESPACE
202 template class money_get<C, istreambuf_iterator<C> >;
203 template class money_put<C, ostreambuf_iterator<C> >;
205 @@ -73,11 +75,13 @@ namespace std
206 money_put<C, ostreambuf_iterator<C> >::
207 _M_insert<false>(ostreambuf_iterator<C>, ios_base&, C,
208 const string_type&) const;
209 +_GLIBCXX_END_LDBL_NAMESPACE
211 // numpunct, numpunct_byname, num_get, and num_put
212 template class numpunct<C>;
213 template struct __numpunct_cache<C>;
214 template class numpunct_byname<C>;
215 +_GLIBCXX_BEGIN_LDBL_NAMESPACE
216 template class num_get<C, istreambuf_iterator<C> >;
217 template class num_put<C, ostreambuf_iterator<C> >;
219 @@ -161,7 +165,8 @@ namespace std
220 num_put<C, ostreambuf_iterator<C> >::
221 _M_insert_float(ostreambuf_iterator<C>, ios_base&, C, char,
224 +_GLIBCXX_END_LDBL_NAMESPACE
226 // time_get and time_put
227 template class __timepunct<C>;
228 template struct __timepunct_cache<C>;
229 @@ -314,3 +319,44 @@ namespace std
230 ios_base::fmtflags, bool);
234 +// XXX GLIBCXX_ABI Deprecated
235 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined C_is_char
237 +#define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \
238 + extern "C" void ldbl (void) __attribute__ ((alias (#dbl), weak))
240 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIjEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
241 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIjEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
242 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIlEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
243 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIlEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
244 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intImEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
245 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intImEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
246 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intItEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
247 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intItEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
248 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIxEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
249 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIxEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
250 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIyEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
251 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIyEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
252 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIlEES4_S4_RSt8ios_basecT_,
253 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIlEES3_S3_RSt8ios_basecT_);
254 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intImEES4_S4_RSt8ios_basecT_,
255 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intImEES3_S3_RSt8ios_basecT_);
256 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIxEES4_S4_RSt8ios_basecT_,
257 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIxEES3_S3_RSt8ios_basecT_);
258 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIyEES4_S4_RSt8ios_basecT_,
259 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIyEES3_S3_RSt8ios_basecT_);
260 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES4_S4_RSt8ios_baseccT_,
261 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES3_S3_RSt8ios_baseccT_);
262 +_GLIBCXX_LDBL_COMPAT(_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES3_S3_RSt8ios_baseccT_,
263 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIeEES3_S3_RSt8ios_baseccT_);
264 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb0EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRSs,
265 + _ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb0EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs);
266 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb1EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRSs,
267 + _ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb1EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs);
268 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES4_S4_RSt8ios_basecRKSs,
269 + _ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES3_S3_RSt8ios_basecRKSs);
270 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES4_S4_RSt8ios_basecRKSs,
271 + _ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES3_S3_RSt8ios_basecRKSs);
273 +#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
274 --- libstdc++-v3/src/compatibility.cc.jj 2006-02-02 16:38:25.000000000 +0100
275 +++ libstdc++-v3/src/compatibility.cc 2006-02-10 14:57:29.000000000 +0100
277 // Compatibility symbols for previous versions -*- C++ -*-
279 -// Copyright (C) 2005
280 +// Copyright (C) 2005, 2006
281 // Free Software Foundation, Inc.
283 // This file is part of the GNU ISO C++ Library. This library is free
292 @@ -362,6 +363,107 @@ namespace std
297 +#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
298 +#define _GLIBCXX_MATHL_WRAPPER(name, argdecl, args, ver) \
300 +__ ## name ## l_wrapper argdecl \
302 + return name args; \
304 +asm (".symver __" #name "l_wrapper, " #name "l@" #ver)
306 +#define _GLIBCXX_MATHL_WRAPPER1(name, ver) \
307 + _GLIBCXX_MATHL_WRAPPER (name, (double x), (x), ver)
309 +#define _GLIBCXX_MATHL_WRAPPER2(name, ver) \
310 + _GLIBCXX_MATHL_WRAPPER (name, (double x, double y), (x, y), ver)
312 +#ifdef _GLIBCXX_HAVE_ACOSL
313 +_GLIBCXX_MATHL_WRAPPER1 (acos, GLIBCXX_3.4.3);
315 +#ifdef _GLIBCXX_HAVE_ASINL
316 +_GLIBCXX_MATHL_WRAPPER1 (asin, GLIBCXX_3.4.3);
318 +#ifdef _GLIBCXX_HAVE_ATAN2L
319 +_GLIBCXX_MATHL_WRAPPER2 (atan2, GLIBCXX_3.4);
321 +#ifdef _GLIBCXX_HAVE_ATANL
322 +_GLIBCXX_MATHL_WRAPPER1 (atan, GLIBCXX_3.4.3);
324 +#ifdef _GLIBCXX_HAVE_CEILL
325 +_GLIBCXX_MATHL_WRAPPER1 (ceil, GLIBCXX_3.4.3);
327 +#ifdef _GLIBCXX_HAVE_COSHL
328 +_GLIBCXX_MATHL_WRAPPER1 (cosh, GLIBCXX_3.4);
330 +#ifdef _GLIBCXX_HAVE_COSL
331 +_GLIBCXX_MATHL_WRAPPER1 (cos, GLIBCXX_3.4);
333 +#ifdef _GLIBCXX_HAVE_EXPL
334 +_GLIBCXX_MATHL_WRAPPER1 (exp, GLIBCXX_3.4);
336 +#ifdef _GLIBCXX_HAVE_FLOORL
337 +_GLIBCXX_MATHL_WRAPPER1 (floor, GLIBCXX_3.4.3);
339 +#ifdef _GLIBCXX_HAVE_FMODL
340 +_GLIBCXX_MATHL_WRAPPER2 (fmod, GLIBCXX_3.4.3);
342 +#ifdef _GLIBCXX_HAVE_FREXPL
343 +_GLIBCXX_MATHL_WRAPPER (frexp, (double x, int *y), (x, y), GLIBCXX_3.4.3);
345 +#ifdef _GLIBCXX_HAVE_HYPOTL
346 +_GLIBCXX_MATHL_WRAPPER2 (hypot, GLIBCXX_3.4);
348 +#ifdef _GLIBCXX_HAVE_LDEXPL
349 +_GLIBCXX_MATHL_WRAPPER (ldexp, (double x, int y), (x, y), GLIBCXX_3.4.3);
351 +#ifdef _GLIBCXX_HAVE_LOG10L
352 +_GLIBCXX_MATHL_WRAPPER1 (log10, GLIBCXX_3.4);
354 +#ifdef _GLIBCXX_HAVE_LOGL
355 +_GLIBCXX_MATHL_WRAPPER1 (log, GLIBCXX_3.4);
357 +#ifdef _GLIBCXX_HAVE_MODFL
358 +_GLIBCXX_MATHL_WRAPPER (modf, (double x, double *y), (x, y), GLIBCXX_3.4.3);
360 +#ifdef _GLIBCXX_HAVE_POWL
361 +_GLIBCXX_MATHL_WRAPPER2 (pow, GLIBCXX_3.4);
363 +#ifdef _GLIBCXX_HAVE_SINHL
364 +_GLIBCXX_MATHL_WRAPPER1 (sinh, GLIBCXX_3.4);
366 +#ifdef _GLIBCXX_HAVE_SINL
367 +_GLIBCXX_MATHL_WRAPPER1 (sin, GLIBCXX_3.4);
369 +#ifdef _GLIBCXX_HAVE_SQRTL
370 +_GLIBCXX_MATHL_WRAPPER1 (sqrt, GLIBCXX_3.4);
372 +#ifdef _GLIBCXX_HAVE_TANHL
373 +_GLIBCXX_MATHL_WRAPPER1 (tanh, GLIBCXX_3.4);
375 +#ifdef _GLIBCXX_HAVE_TANL
376 +_GLIBCXX_MATHL_WRAPPER1 (tan, GLIBCXX_3.4);
378 +#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
380 +#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
381 +extern void *_ZTVN10__cxxabiv123__fundamental_type_infoE[];
382 +extern void *_ZTVN10__cxxabiv119__pointer_type_infoE[];
383 +extern __attribute__((used, weak)) const char _ZTSe[2] = "e";
384 +extern __attribute__((used, weak)) const char _ZTSPe[3] = "Pe";
385 +extern __attribute__((used, weak)) const char _ZTSPKe[4] = "PKe";
386 +extern __attribute__((used, weak)) const void *_ZTIe[2]
387 + = { (void *) &_ZTVN10__cxxabiv123__fundamental_type_infoE[2],
389 +extern __attribute__((used, weak)) const void *_ZTIPe[4]
390 + = { (void *) &_ZTVN10__cxxabiv119__pointer_type_infoE[2],
391 + (void *) _ZTSPe, (void *) 0L, (void *) _ZTIe };
392 +extern __attribute__((used, weak)) const void *_ZTIPKe[4]
393 + = { (void *) &_ZTVN10__cxxabiv119__pointer_type_infoE[2],
394 + (void *) _ZTSPKe, (void *) 1L, (void *) _ZTIe };
395 +#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
398 #if (defined(__ppc__) || defined (__ppc64__)) && defined (PIC)
399 /* __eprintf shouldn't have been made visible from libstdc++, or
400 --- libstdc++-v3/src/limits.cc.jj 2006-02-02 16:38:25.000000000 +0100
401 +++ libstdc++-v3/src/limits.cc 2006-02-10 14:53:36.000000000 +0100
403 // Static data members of -*- C++ -*- numeric_limits classes
405 -// Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
406 +// Copyright (C) 1999, 2001, 2002, 2006 Free Software Foundation, Inc.
408 // This file is part of the GNU ISO C++ Library. This library is free
409 // software; you can redistribute it and/or modify it under the
410 @@ -447,3 +447,34 @@ namespace std
411 const bool numeric_limits<long double>::tinyness_before;
412 const float_round_style numeric_limits<long double>::round_style;
415 +// XXX GLIBCXX_ABI Deprecated
416 +#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
418 +#define _GLIBCXX_NUM_LIM_COMPAT(type, member, len) \
419 + extern "C" type _ZNSt14numeric_limitsIeE ## len ## member ## E \
420 + __attribute__ ((alias ("_ZNSt14numeric_limitsIdE" #len #member "E")))
421 +_GLIBCXX_NUM_LIM_COMPAT (bool, is_specialized, 14);
422 +_GLIBCXX_NUM_LIM_COMPAT (int, digits, 6);
423 +_GLIBCXX_NUM_LIM_COMPAT (int, digits10, 8);
424 +_GLIBCXX_NUM_LIM_COMPAT (bool, is_signed, 9);
425 +_GLIBCXX_NUM_LIM_COMPAT (bool, is_integer, 10);
426 +_GLIBCXX_NUM_LIM_COMPAT (bool, is_exact, 8);
427 +_GLIBCXX_NUM_LIM_COMPAT (int, radix, 5);
428 +_GLIBCXX_NUM_LIM_COMPAT (int, min_exponent, 12);
429 +_GLIBCXX_NUM_LIM_COMPAT (int, min_exponent10, 14);
430 +_GLIBCXX_NUM_LIM_COMPAT (int, max_exponent, 12);
431 +_GLIBCXX_NUM_LIM_COMPAT (int, max_exponent10, 14);
432 +_GLIBCXX_NUM_LIM_COMPAT (bool, has_infinity, 12);
433 +_GLIBCXX_NUM_LIM_COMPAT (bool, has_quiet_NaN, 13);
434 +_GLIBCXX_NUM_LIM_COMPAT (bool, has_signaling_NaN, 17);
435 +_GLIBCXX_NUM_LIM_COMPAT (std::float_denorm_style, has_denorm, 10);
436 +_GLIBCXX_NUM_LIM_COMPAT (bool, has_denorm_loss, 15);
437 +_GLIBCXX_NUM_LIM_COMPAT (bool, is_iec559, 9);
438 +_GLIBCXX_NUM_LIM_COMPAT (bool, is_bounded, 10);
439 +_GLIBCXX_NUM_LIM_COMPAT (bool, is_modulo, 9);
440 +_GLIBCXX_NUM_LIM_COMPAT (bool, traps, 5);
441 +_GLIBCXX_NUM_LIM_COMPAT (bool, tinyness_before, 15);
442 +_GLIBCXX_NUM_LIM_COMPAT (std::float_round_style, round_style, 11);
444 +#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
445 --- libstdc++-v3/src/compatibility-ldbl.cc.jj 2006-02-10 14:53:36.000000000 +0100
446 +++ libstdc++-v3/src/compatibility-ldbl.cc 2006-02-10 14:53:36.000000000 +0100
448 +// Compatibility symbols for -mlong-double-64 compatibility -*- C++ -*-
450 +// Copyright (C) 2006
451 +// Free Software Foundation, Inc.
453 +// This file is part of the GNU ISO C++ Library. This library is free
454 +// software; you can redistribute it and/or modify it under the
455 +// terms of the GNU General Public License as published by the
456 +// Free Software Foundation; either version 2, or (at your option)
457 +// any later version.
459 +// This library is distributed in the hope that it will be useful,
460 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
461 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
462 +// GNU General Public License for more details.
464 +// You should have received a copy of the GNU General Public License along
465 +// with this library; see the file COPYING. If not, write to the Free
466 +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
469 +// As a special exception, you may use this file as part of a free software
470 +// library without restriction. Specifically, if other files instantiate
471 +// templates or use macros or inline functions from this file, or you compile
472 +// this file and link it with other files to produce an executable, this
473 +// file does not by itself cause the resulting executable to be covered by
474 +// the GNU General Public License. This exception does not however
475 +// invalidate any other reasons why the executable file might be covered by
476 +// the GNU General Public License.
480 +#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
482 +#ifdef __LONG_DOUBLE_128__
483 +#error "compatibility-ldbl.cc must be compiled with -mlong-double-64"
489 + template class num_get<C, istreambuf_iterator<C> >;
490 + template class num_put<C, ostreambuf_iterator<C> >;
491 + template class money_get<C, istreambuf_iterator<C> >;
492 + template class money_put<C, ostreambuf_iterator<C> >;
493 + template const num_put<C>& use_facet<num_put<C> >(const locale&);
494 + template const num_get<C>& use_facet<num_get<C> >(const locale&);
495 + template const money_put<C>& use_facet<money_put<C> >(const locale&);
496 + template const money_get<C>& use_facet<money_get<C> >(const locale&);
497 + template bool has_facet<num_put<C> >(const locale&);
498 + template bool has_facet<num_get<C> >(const locale&);
499 + template bool has_facet<money_put<C> >(const locale&);
500 + template bool has_facet<money_get<C> >(const locale&);
502 +#ifdef _GLIBCXX_USE_WCHAR_T
504 + template class num_get<C, istreambuf_iterator<C> >;
505 + template class num_put<C, ostreambuf_iterator<C> >;
506 + template class money_get<C, istreambuf_iterator<C> >;
507 + template class money_put<C, ostreambuf_iterator<C> >;
508 + template const num_put<C>& use_facet<num_put<C> >(const locale&);
509 + template const num_get<C>& use_facet<num_get<C> >(const locale&);
510 + template const money_put<C>& use_facet<money_put<C> >(const locale&);
511 + template const money_get<C>& use_facet<money_get<C> >(const locale&);
512 + template bool has_facet<num_put<C> >(const locale&);
513 + template bool has_facet<num_get<C> >(const locale&);
514 + template bool has_facet<money_put<C> >(const locale&);
515 + template bool has_facet<money_get<C> >(const locale&);
521 --- libstdc++-v3/src/Makefile.am.jj 2006-02-02 16:38:25.000000000 +0100
522 +++ libstdc++-v3/src/Makefile.am 2006-02-10 14:53:36.000000000 +0100
523 @@ -35,10 +35,15 @@ libstdc++-symbol.ver: ${glibcxx_srcdir}
524 $(port_specific_symbol_files)
525 cp ${glibcxx_srcdir}/$(SYMVER_MAP) ./libstdc++-symbol.ver
526 if test "x$(port_specific_symbol_files)" != x; then \
527 - sed -n '1,/DO NOT DELETE/p' $@ > tmp.top; \
528 - sed -n '/DO NOT DELETE/,$$p' $@ > tmp.bottom; \
529 - cat tmp.top $(port_specific_symbol_files) tmp.bottom > $@; \
530 - rm tmp.top tmp.bottom; \
531 + if grep '^# Appended to version file.' \
532 + $(port_specific_symbol_files) /dev/null > /dev/null 2>&1; then \
533 + cat $(port_specific_symbol_files) >> $@; \
535 + sed -n '1,/DO NOT DELETE/p' $@ > tmp.top; \
536 + sed -n '/DO NOT DELETE/,$$p' $@ > tmp.bottom; \
537 + cat tmp.top $(port_specific_symbol_files) tmp.bottom > $@; \
538 + rm tmp.top tmp.bottom; \
542 if ENABLE_SYMVERS_GNU
543 @@ -113,6 +118,12 @@ c++locale.cc: ${glibcxx_srcdir}/$(CLOCAL
544 basic_file.cc: ${glibcxx_srcdir}/$(BASIC_FILE_CC)
545 $(LN_S) ${glibcxx_srcdir}/$(BASIC_FILE_CC) ./$@ || true
547 +if GLIBCXX_LDBL_COMPAT
548 +ldbl_compat_sources = compatibility-ldbl.cc
550 +ldbl_compat_sources =
553 # Sources present in the src directory.
555 bitmap_allocator.cc \
556 @@ -160,7 +171,8 @@ sources = \
560 - ${host_sources_extra}
561 + ${host_sources_extra} \
562 + ${ldbl_compat_sources}
564 VPATH = $(top_srcdir)/src:$(top_srcdir)
566 @@ -191,6 +203,15 @@ concept-inst.lo: concept-inst.cc
567 concept-inst.o: concept-inst.cc
568 $(CXXCOMPILE) -D_GLIBCXX_CONCEPT_CHECKS -fimplicit-templates -c $<
570 +if GLIBCXX_LDBL_COMPAT
571 +# Use special rules for compatibility-ldbl.cc compilation, as we need to
572 +# pass -mlong-double-64.
573 +compatibility-ldbl.lo: compatibility-ldbl.cc
574 + $(LTCXXCOMPILE) -mlong-double-64 -c $<
575 +compatibility-ldbl.o: compatibility-ldbl.cc
576 + $(CXXCOMPILE) -mlong-double-64 -c $<
579 # AM_CXXFLAGS needs to be in each subdirectory so that it can be
580 # modified in a per-library or per-sub-library way. Need to manually
581 # set this option because CONFIG_CXXFLAGS has to be after
582 --- libstdc++-v3/src/Makefile.in.jj 2006-02-02 16:38:25.000000000 +0100
583 +++ libstdc++-v3/src/Makefile.in 2006-02-10 14:53:36.000000000 +0100
584 @@ -59,11 +59,27 @@ am__strip_dir = `echo $$p | sed -e 's|^.
585 am__installdirs = "$(DESTDIR)$(toolexeclibdir)"
586 toolexeclibLTLIBRARIES_INSTALL = $(INSTALL)
587 LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
588 +am__libstdc___la_SOURCES_DIST = bitmap_allocator.cc pool_allocator.cc \
589 + mt_allocator.cc codecvt.cc compatibility.cc complex_io.cc \
590 + ctype.cc debug.cc debug_list.cc functexcept.cc \
591 + globals_locale.cc globals_io.cc ios.cc ios_failure.cc \
592 + ios_init.cc ios_locale.cc limits.cc list.cc locale.cc \
593 + locale_init.cc locale_facets.cc localename.cc stdexcept.cc \
594 + strstream.cc tree.cc allocator-inst.cc concept-inst.cc \
595 + fstream-inst.cc ext-inst.cc ios-inst.cc iostream-inst.cc \
596 + istream-inst.cc istream.cc locale-inst.cc locale-misc-inst.cc \
597 + misc-inst.cc ostream-inst.cc sstream-inst.cc streambuf-inst.cc \
598 + streambuf.cc string-inst.cc valarray-inst.cc wlocale-inst.cc \
599 + wstring-inst.cc atomicity.cc codecvt_members.cc \
600 + collate_members.cc ctype_members.cc messages_members.cc \
601 + monetary_members.cc numeric_members.cc time_members.cc \
602 + basic_file.cc c++locale.cc compatibility-ldbl.cc
603 am__objects_1 = atomicity.lo codecvt_members.lo collate_members.lo \
604 ctype_members.lo messages_members.lo monetary_members.lo \
605 numeric_members.lo time_members.lo
606 am__objects_2 = basic_file.lo c++locale.lo
607 -am__objects_3 = bitmap_allocator.lo pool_allocator.lo mt_allocator.lo \
608 +@GLIBCXX_LDBL_COMPAT_TRUE@am__objects_3 = compatibility-ldbl.lo
609 +am__objects_4 = bitmap_allocator.lo pool_allocator.lo mt_allocator.lo \
610 codecvt.lo compatibility.lo complex_io.lo ctype.lo debug.lo \
611 debug_list.lo functexcept.lo globals_locale.lo globals_io.lo \
612 ios.lo ios_failure.lo ios_init.lo ios_locale.lo limits.lo \
613 @@ -74,8 +90,9 @@ am__objects_3 = bitmap_allocator.lo pool
614 locale-inst.lo locale-misc-inst.lo misc-inst.lo \
615 ostream-inst.lo sstream-inst.lo streambuf-inst.lo streambuf.lo \
616 string-inst.lo valarray-inst.lo wlocale-inst.lo \
617 - wstring-inst.lo $(am__objects_1) $(am__objects_2)
618 -am_libstdc___la_OBJECTS = $(am__objects_3)
619 + wstring-inst.lo $(am__objects_1) $(am__objects_2) \
621 +am_libstdc___la_OBJECTS = $(am__objects_4)
622 libstdc___la_OBJECTS = $(am_libstdc___la_OBJECTS)
623 DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
625 @@ -84,7 +101,7 @@ CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_IN
626 $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
628 SOURCES = $(libstdc___la_SOURCES)
629 -DIST_SOURCES = $(libstdc___la_SOURCES)
630 +DIST_SOURCES = $(am__libstdc___la_SOURCES_DIST)
633 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
634 @@ -152,6 +169,8 @@ GLIBCXX_C_HEADERS_C_TRUE = @GLIBCXX_C_HE
635 GLIBCXX_HOSTED_FALSE = @GLIBCXX_HOSTED_FALSE@
636 GLIBCXX_HOSTED_TRUE = @GLIBCXX_HOSTED_TRUE@
637 GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
638 +GLIBCXX_LDBL_COMPAT_FALSE = @GLIBCXX_LDBL_COMPAT_FALSE@
639 +GLIBCXX_LDBL_COMPAT_TRUE = @GLIBCXX_LDBL_COMPAT_TRUE@
640 INSTALL_DATA = @INSTALL_DATA@
641 INSTALL_PROGRAM = @INSTALL_PROGRAM@
642 INSTALL_SCRIPT = @INSTALL_SCRIPT@
643 @@ -302,6 +321,8 @@ host_sources_extra = \
647 +@GLIBCXX_LDBL_COMPAT_FALSE@ldbl_compat_sources =
648 +@GLIBCXX_LDBL_COMPAT_TRUE@ldbl_compat_sources = compatibility-ldbl.cc
650 # Sources present in the src directory.
652 @@ -350,7 +371,8 @@ sources = \
656 - ${host_sources_extra}
657 + ${host_sources_extra} \
658 + ${ldbl_compat_sources}
660 libstdc___la_SOURCES = $(sources)
661 libstdc___la_LIBADD = \
662 @@ -677,10 +699,15 @@ libstdc++-symbol.ver: ${glibcxx_srcdir}
663 $(port_specific_symbol_files)
664 cp ${glibcxx_srcdir}/$(SYMVER_MAP) ./libstdc++-symbol.ver
665 if test "x$(port_specific_symbol_files)" != x; then \
666 - sed -n '1,/DO NOT DELETE/p' $@ > tmp.top; \
667 - sed -n '/DO NOT DELETE/,$$p' $@ > tmp.bottom; \
668 - cat tmp.top $(port_specific_symbol_files) tmp.bottom > $@; \
669 - rm tmp.top tmp.bottom; \
670 + if grep '^# Appended to version file.' \
671 + $(port_specific_symbol_files) /dev/null > /dev/null 2>&1; then \
672 + cat $(port_specific_symbol_files) >> $@; \
674 + sed -n '1,/DO NOT DELETE/p' $@ > tmp.top; \
675 + sed -n '/DO NOT DELETE/,$$p' $@ > tmp.bottom; \
676 + cat tmp.top $(port_specific_symbol_files) tmp.bottom > $@; \
677 + rm tmp.top tmp.bottom; \
680 @ENABLE_SYMVERS_DARWIN_EXPORT_TRUE@@ENABLE_SYMVERS_GNU_FALSE@libstdc++-symbol.explist : libstdc++-symbol.ver \
681 @ENABLE_SYMVERS_DARWIN_EXPORT_TRUE@@ENABLE_SYMVERS_GNU_FALSE@ ${glibcxx_srcdir}/scripts/make_exports.pl \
682 @@ -733,6 +760,13 @@ concept-inst.lo: concept-inst.cc
683 concept-inst.o: concept-inst.cc
684 $(CXXCOMPILE) -D_GLIBCXX_CONCEPT_CHECKS -fimplicit-templates -c $<
686 +# Use special rules for compatibility-ldbl.cc compilation, as we need to
687 +# pass -mlong-double-64.
688 +@GLIBCXX_LDBL_COMPAT_TRUE@compatibility-ldbl.lo: compatibility-ldbl.cc
689 +@GLIBCXX_LDBL_COMPAT_TRUE@ $(LTCXXCOMPILE) -mlong-double-64 -c $<
690 +@GLIBCXX_LDBL_COMPAT_TRUE@compatibility-ldbl.o: compatibility-ldbl.cc
691 +@GLIBCXX_LDBL_COMPAT_TRUE@ $(CXXCOMPILE) -mlong-double-64 -c $<
693 # Added bits to build debug library.
694 @GLIBCXX_BUILD_DEBUG_TRUE@all-local: build_debug
695 @GLIBCXX_BUILD_DEBUG_TRUE@install-data-local: install_debug
696 --- libstdc++-v3/src/locale-misc-inst.cc.jj 2006-02-02 16:38:25.000000000 +0100
697 +++ libstdc++-v3/src/locale-misc-inst.cc 2006-02-10 14:57:35.000000000 +0100
699 // Locale support -*- C++ -*-
701 -// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
702 +// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2006
703 +// Free Software Foundation, Inc.
705 // This file is part of the GNU ISO C++ Library. This library is free
706 // software; you can redistribute it and/or modify it under the
709 +// XXX GLIBCXX_ABI Deprecated
710 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT
712 +#define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \
713 + extern "C" void ldbl (void) __attribute__ ((alias (#dbl), weak))
715 +# if _GLIBCXX_C_LOCALE_GNU
716 +_GLIBCXX_LDBL_COMPAT(_ZSt16__convert_from_vIdEiPciPKcT_RKP15__locale_structi,
717 + _ZSt16__convert_from_vIeEiPciPKcT_RKP15__locale_structi);
719 +_GLIBCXX_LDBL_COMPAT(_ZSt16__convert_from_vIdEiPciPKcT_RKPii,
720 + _ZSt16__convert_from_vIeEiPciPKcT_RKPii);
723 +#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
724 --- libstdc++-v3/src/istream-inst.cc.jj 2006-02-02 16:38:25.000000000 +0100
725 +++ libstdc++-v3/src/istream-inst.cc 2006-02-10 14:53:36.000000000 +0100
727 // Explicit instantiation file.
729 -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
730 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2006
731 // Free Software Foundation, Inc.
733 // This file is part of the GNU ISO C++ Library. This library is free
734 @@ -68,3 +68,19 @@ namespace std
735 template wistream& operator>>(wistream&, _Setw);
739 +// XXX GLIBCXX_ABI Deprecated
740 +#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
742 +#define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \
743 + extern "C" void ldbl (void) __attribute__ ((alias (#dbl), weak))
744 +_GLIBCXX_LDBL_COMPAT (_ZNSirsERd, _ZNSirsERe);
745 +_GLIBCXX_LDBL_COMPAT (_ZNSt13basic_istreamIwSt11char_traitsIwEErsERd,
746 + _ZNSt13basic_istreamIwSt11char_traitsIwEErsERe);
747 +// These 2 are in GCC 4.2+ only so far
748 +// _GLIBCXX_LDBL_COMPAT (_ZNSi10_M_extractIdEERSiRT_,
749 +// _ZNSi10_M_extractIeEERSiRT_);
750 +// _GLIBCXX_LDBL_COMPAT (_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIdEERS2_RT_,
751 +// _ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIeEERS2_RT_);
753 +#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
754 --- libstdc++-v3/src/complex_io.cc.jj 2006-02-02 16:38:25.000000000 +0100
755 +++ libstdc++-v3/src/complex_io.cc 2006-02-10 14:53:36.000000000 +0100
757 // The template and inlines for the -*- C++ -*- complex number classes.
759 -// Copyright (C) 2000, 2001 Free Software Foundation, Inc.
760 +// Copyright (C) 2000, 2001, 2006 Free Software Foundation, Inc.
762 // This file is part of the GNU ISO C++ Library. This library is free
763 // software; you can redistribute it and/or modify it under the
764 @@ -91,3 +91,20 @@ namespace std
765 const complex<long double>&);
766 #endif //_GLIBCXX_USE_WCHAR_T
769 +// XXX GLIBCXX_ABI Deprecated
770 +#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
772 +#define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \
773 + extern "C" void ldbl (void) __attribute__ ((alias (#dbl), weak))
775 +_GLIBCXX_LDBL_COMPAT (_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E,
776 + _ZStlsIecSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E);
777 +_GLIBCXX_LDBL_COMPAT (_ZStlsIdwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E,
778 + _ZStlsIewSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E);
779 +_GLIBCXX_LDBL_COMPAT (_ZStrsIdcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E,
780 + _ZStrsIecSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E);
781 +_GLIBCXX_LDBL_COMPAT (_ZStrsIdwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E,
782 + _ZStrsIewSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E);
784 +#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
785 --- libstdc++-v3/src/wlocale-inst.cc.jj 2006-02-02 16:38:25.000000000 +0100
786 +++ libstdc++-v3/src/wlocale-inst.cc 2006-02-10 14:53:36.000000000 +0100
788 // Locale support -*- C++ -*-
790 -// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
791 +// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2006
792 +// Free Software Foundation, Inc.
794 // This file is part of the GNU ISO C++ Library. This library is free
795 // software; you can redistribute it and/or modify it under the
797 #ifdef _GLIBCXX_USE_WCHAR_T
799 #include "locale-inst.cc"
801 +// XXX GLIBCXX_ABI Deprecated
802 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT
804 +#define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \
805 + extern "C" void ldbl (void) __attribute__ ((alias (#dbl), weak))
807 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIjEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
808 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIjEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
809 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIlEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
810 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIlEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
811 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intImEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
812 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intImEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
813 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intItEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
814 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intItEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
815 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIxEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
816 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIxEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
817 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIyEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
818 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIyEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
819 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIlEES4_S4_RSt8ios_basewT_,
820 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIlEES3_S3_RSt8ios_basewT_);
821 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intImEES4_S4_RSt8ios_basewT_,
822 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intImEES3_S3_RSt8ios_basewT_);
823 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIxEES4_S4_RSt8ios_basewT_,
824 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIxEES3_S3_RSt8ios_basewT_);
825 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIyEES4_S4_RSt8ios_basewT_,
826 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIyEES3_S3_RSt8ios_basewT_);
827 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE15_M_insert_floatIdEES4_S4_RSt8ios_basewcT_,
828 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE15_M_insert_floatIdEES3_S3_RSt8ios_basewcT_);
829 +_GLIBCXX_LDBL_COMPAT(_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE15_M_insert_floatIdEES3_S3_RSt8ios_basewcT_,
830 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE15_M_insert_floatIeEES3_S3_RSt8ios_basewcT_);
831 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb0EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRSs,
832 + _ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb0EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs);
833 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb1EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRSs,
834 + _ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb1EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs);
835 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb0EEES4_S4_RSt8ios_basewRKSbIwS3_SaIwEE,
836 + _ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb0EEES3_S3_RSt8ios_basewRKSbIwS2_SaIwEE);
837 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb1EEES4_S4_RSt8ios_basewRKSbIwS3_SaIwEE,
838 + _ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb1EEES3_S3_RSt8ios_basewRKSbIwS2_SaIwEE);
840 +#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
842 --- libstdc++-v3/config/linker-map.gnu.jj 2006-02-02 16:38:25.000000000 +0100
843 +++ libstdc++-v3/config/linker-map.gnu 2006-02-10 14:53:36.000000000 +0100
845 ## Linker script for GNU ld 2.13.91+ only.
847 -## Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
848 +## Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
850 ## This file is part of the libstdc++ version 3 distribution.
852 @@ -44,7 +44,10 @@ GLIBCXX_3.4 {
855 # std::basic_ofstream;
856 - std::basic_o[g-z]*;
857 +# std::basic_o[g-z]*;
858 + std::basic_o[g-r]*;
859 + std::basic_ostr[a-d]*;
860 + std::basic_ostr[f-z]*;
862 std::basic_streambuf*;
864 @@ -88,7 +91,14 @@ GLIBCXX_3.4 {
865 std::locale::_[J-Ra-z]*;
866 std::locale::_S_normalize_category*;
867 std::locale::_[T-Za-z]*;
875 + std::out_of_range*;
876 + std::overflow_error*;
877 std::set_new_handler*;
879 std::set_unexpected*;
880 @@ -256,7 +266,7 @@ GLIBCXX_3.4 {
883 _ZNSi6ignoreE[il][il];
887 # std::basic_istream<wchar_t>
888 _ZNSt13basic_istreamIwSt11char_traitsIwEEC*;
889 @@ -265,7 +275,7 @@ GLIBCXX_3.4 {
890 _ZNSt13basic_istreamIwSt11char_traitsIwEE[0-9][a-h]*;
891 _ZNSt13basic_istreamIwSt11char_traitsIwEE[0-9][j-z]*;
892 _ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreE[il][ijlm];
893 - _ZNSt13basic_istreamIwSt11char_traitsIwEErsE*;
894 + _ZNSt13basic_istreamIwSt11char_traitsIwEErsE*[^g];
896 # std::istream operators and inserters
897 _ZSt7getlineI[cw]St11char_traitsI[cw]ESaI[cw]EERSt13basic_istream*;
898 @@ -277,6 +287,37 @@ GLIBCXX_3.4 {
899 _ZStrsIe[cw]St11char_traitsI[cw]EERSt13basic_istream*;
900 _ZStrsIf[cw]St11char_traitsI[cw]EERSt13basic_istream*;
902 + # std::basic_ostream<char>
905 + _ZNKSo6sentrycvbEv;
910 + # std::basic_ostream<wchar_t>
911 + _ZNSt13basic_ostreamIwSt11char_traitsIwEEC*;
912 + _ZNSt13basic_ostreamIwSt11char_traitsIwEED*;
913 + _ZNKSt13basic_ostreamIwSt11char_traitsIwEE[0-9][a-z]*;
914 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE3putEw;
915 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE5flushEv;
916 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpE*;
917 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE5tellpEv;
918 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE5writeEPKw*;
919 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentry*;
920 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE8_M_write*;
921 + _ZNSt13basic_ostreamIwSt11char_traitsIwEElsE*[^g];
923 + # std::ostream operators and inserters
924 + _ZSt4end[ls]I[cw]St11char_traitsI[cw]EERSt13basic_ostream*;
925 + _ZSt5flushI[cw]St11char_traitsI[cw]EERSt13basic_ostream*;
926 + _ZStlsI[cw]St11char_traitsI[cw]EERSt13basic_ostream*;
927 + _ZStlsI[cw]St11char_traitsI[cw]ESaI[cw]EERSt13basic_ostream*;
928 + _ZStlsISt11char_traitsI[cw]EERSt13basic_ostream*;
929 + _ZStlsId[cw]St11char_traitsI[cw]EERSt13basic_ostream*;
930 + _ZStlsIe[cw]St11char_traitsI[cw]EERSt13basic_ostream*;
931 + _ZStlsIf[cw]St11char_traitsI[cw]EERSt13basic_ostream*;
933 # std::locale destructors
936 @@ -292,14 +333,23 @@ GLIBCXX_3.4 {
937 _ZNSt8ios_base4InitD*;
939 # bool std::has_facet
944 _ZNKSt7num_getI[cw]St19istreambuf_iteratorI[cw]St11char_traitsI[cw]EEE*;
947 + _ZNKSt7num_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE*;
950 _ZNKSt9money_getI[cw]St19istreambuf_iteratorI[cw]St11char_traitsI[cw]EEE*;
953 + _ZNKSt9money_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE*;
955 + # std::numeric_limits
956 + _ZNSt14numeric_limitsI[^g]*;
959 _ZSt18_Rb_tree_decrementPKSt18_Rb_tree_node_base;
960 _ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base;
961 @@ -327,7 +377,7 @@ GLIBCXX_3.4 {
962 _ZNSt12__basic_fileIcED*;
964 # std::__convert_to_v
965 - _ZSt14__convert_to_v*;
966 + _ZSt14__convert_to_vI[^g]*;
968 # __gnu_cxx::stdio_sync_filebuf
969 _ZTVN9__gnu_cxx18stdio_sync_filebufI[cw]St11char_traitsI[cw]EEE;
970 @@ -399,7 +449,8 @@ GLIBCXX_3.4 {
971 _ZTSN9__gnu_cxx13stdio_filebufI[cw]St11char_traitsI[cw]EEE;
973 # function-scope static objects requires a guard variable.
978 # virtual function thunks
980 @@ -659,9 +710,9 @@ CXXABI_1.3 {
981 _ZTVN10__cxxabiv121__vmi_class_type_infoE;
983 # typeinfo structure (and some names)
990 _ZTIN10__cxxabiv117__array_type_infoE;
991 _ZTIN10__cxxabiv117__class_type_infoE;
992 _ZTIN10__cxxabiv116__enum_type_infoE;
993 @@ -674,9 +725,9 @@ CXXABI_1.3 {
994 _ZTIN10__cxxabiv121__vmi_class_type_infoE;
1003 _ZTSN10__cxxabiv117__array_type_infoE;
1004 _ZTSN10__cxxabiv117__class_type_infoE;
1005 _ZTSN10__cxxabiv116__enum_type_infoE;
1006 --- libstdc++-v3/config/locale/gnu/c_locale.cc.jj 2006-02-02 16:38:25.000000000 +0100
1007 +++ libstdc++-v3/config/locale/gnu/c_locale.cc 2006-02-10 14:53:36.000000000 +0100
1009 // Wrapper for underlying C-language localization -*- C++ -*-
1011 -// Copyright (C) 2001, 2002, 2003, 2004, 2005
1012 +// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
1013 // Free Software Foundation, Inc.
1015 // This file is part of the GNU ISO C++ Library. This library is free
1016 @@ -132,3 +132,10 @@ namespace std
1018 const char* const* const locale::_S_categories = __gnu_cxx::category_names;
1021 +// XXX GLIBCXX_ABI Deprecated
1022 +#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
1023 +#define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \
1024 + extern "C" void ldbl (void) __attribute__ ((alias (#dbl)))
1025 +_GLIBCXX_LDBL_COMPAT(_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct, _ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct);
1026 +#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
1027 --- libstdc++-v3/config/locale/generic/c_locale.cc.jj 2006-02-02 16:38:26.000000000 +0100
1028 +++ libstdc++-v3/config/locale/generic/c_locale.cc 2006-02-10 14:57:36.000000000 +0100
1030 // Wrapper for underlying C-language localization -*- C++ -*-
1032 -// Copyright (C) 2001, 2002, 2003, 2004, 2005
1033 +// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
1034 // Free Software Foundation, Inc.
1036 // This file is part of the GNU ISO C++ Library. This library is free
1037 @@ -168,3 +168,10 @@ namespace std
1039 const char* const* const locale::_S_categories = __gnu_cxx::category_names;
1042 +// XXX GLIBCXX_ABI Deprecated
1043 +#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
1044 +#define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \
1045 + extern "C" void ldbl (void) __attribute__ ((alias (#dbl)))
1046 +_GLIBCXX_LDBL_COMPAT(_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKPi, _ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKPi);
1047 +#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
1048 --- libstdc++-v3/config/os/gnu-linux/ldbl-extra.ver.jj 2006-02-10 14:53:36.000000000 +0100
1049 +++ libstdc++-v3/config/os/gnu-linux/ldbl-extra.ver 2006-02-10 14:57:37.000000000 +0100
1051 +# Appended to version file.
1054 + _ZNSt14numeric_limitsIg*;
1057 + _ZNSt13basic_istreamIwSt11char_traitsIwEErsERg;
1058 + _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEg;
1059 + _ZSt14__convert_to_vIgEvPKcRT_RSt12_Ios_IostateRKP*;
1060 + _ZStlsIg[cw]St11char_traitsI[cw]EERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E;
1061 + _ZStrsIg[cw]St11char_traitsI[cw]EERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E;
1062 + *__gnu_cxx_ldbl128*;
1070 --- libstdc++-v3/config.h.in.jj 2006-02-02 16:38:36.000000000 +0100
1071 +++ libstdc++-v3/config.h.in 2006-02-10 14:53:36.000000000 +0100
1073 /* Define to 1 if a full hosted library is built, or 0 if freestanding. */
1074 #undef _GLIBCXX_HOSTED
1076 +/* Define if compatibility should be provided for -mlong-double-64. */
1077 +#undef _GLIBCXX_LONG_DOUBLE_COMPAT
1079 /* Define if ptrdiff_t is int. */
1080 #undef _GLIBCXX_PTRDIFF_T_IS_INT
1082 --- libstdc++-v3/include/Makefile.am.jj 2006-02-02 16:38:32.000000000 +0100
1083 +++ libstdc++-v3/include/Makefile.am 2006-02-10 15:12:14.000000000 +0100
1084 @@ -825,13 +825,18 @@ ${host_builddir}/c++config.h: ${top_buil
1085 ${glibcxx_srcdir}/include/bits/c++config \
1086 stamp-${host_alias} \
1087 ${toplevel_srcdir}/gcc/DATESTAMP
1088 - @cat ${glibcxx_srcdir}/include/bits/c++config > $@ ;\
1089 + @ldbl_compat='' ;\
1090 + grep "^[ ]*#[ ]*define[ ][ ]*_GLIBCXX_LONG_DOUBLE_COMPAT[ ][ ]*1[ ]*$$" \
1091 + ${CONFIG_HEADER} > /dev/null 2>&1 \
1092 + && ldbl_compat='s,^#undef _GLIBCXX_LONG_DOUBLE_COMPAT$$,#define _GLIBCXX_LONG_DOUBLE_COMPAT 1,' ;\
1093 + sed -e "$$ldbl_compat" ${glibcxx_srcdir}/include/bits/c++config > $@ ;\
1094 sed -e 's/^/#define __GLIBCXX__ /' \
1095 - < ${toplevel_srcdir}/gcc/DATESTAMP >> $@ ;\
1096 + < ${toplevel_srcdir}/gcc/DATESTAMP >> $@ ;\
1097 sed -e 's/HAVE_/_GLIBCXX_HAVE_/g' \
1098 -e 's/PACKAGE/_GLIBCXX_PACKAGE/g' \
1099 -e 's/VERSION/_GLIBCXX_VERSION/g' \
1100 -e 's/WORDS_/_GLIBCXX_WORDS_/g' \
1101 + -e '/[ ]_GLIBCXX_LONG_DOUBLE_COMPAT[ ]/d' \
1102 < ${CONFIG_HEADER} >> $@ ;\
1103 echo "#endif // _CXXCONFIG_" >>$@
1105 --- libstdc++-v3/include/bits/c++config.jj 2006-02-02 16:38:32.000000000 +0100
1106 +++ libstdc++-v3/include/bits/c++config 2006-02-10 15:17:28.000000000 +0100
1108 // Predefined symbols and macros -*- C++ -*-
1110 -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
1111 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
1112 // Free Software Foundation, Inc.
1114 // This file is part of the GNU ISO C++ Library. This library is free
1115 @@ -65,6 +65,26 @@ namespace std
1116 # define _GLIBCXX_STD std
1119 +/* Define if compatibility should be provided for -mlong-double-64. */
1120 +#undef _GLIBCXX_LONG_DOUBLE_COMPAT
1122 +// XXX GLIBCXX_ABI Deprecated
1123 +// Namespace associations for long double 128 mode.
1124 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
1125 +# define _GLIBCXX_LDBL_NAMESPACE __gnu_cxx_ldbl128::
1126 +# define _GLIBCXX_BEGIN_LDBL_NAMESPACE namespace __gnu_cxx_ldbl128 {
1127 +# define _GLIBCXX_END_LDBL_NAMESPACE }
1130 + namespace __gnu_cxx_ldbl128 { }
1131 + using namespace __gnu_cxx_ldbl128 __attribute__((__strong__));
1134 +# define _GLIBCXX_LDBL_NAMESPACE
1135 +# define _GLIBCXX_BEGIN_LDBL_NAMESPACE
1136 +# define _GLIBCXX_END_LDBL_NAMESPACE
1139 // Allow use of "export template." This is currently not a feature
1140 // that g++ supports.
1141 // #define _GLIBCXX_EXPORT_TEMPLATE 1
1142 --- libstdc++-v3/include/bits/localefwd.h.jj 2006-02-02 16:38:32.000000000 +0100
1143 +++ libstdc++-v3/include/bits/localefwd.h 2006-02-10 15:17:54.000000000 +0100
1144 @@ -129,10 +129,12 @@ namespace std
1145 class codecvt_byname;
1147 // 22.2.2 and 22.2.3 numeric
1148 +_GLIBCXX_BEGIN_LDBL_NAMESPACE
1149 template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
1151 template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
1153 +_GLIBCXX_END_LDBL_NAMESPACE
1154 template<typename _CharT> class numpunct;
1155 template<typename _CharT> class numpunct_byname;
1157 @@ -155,10 +157,12 @@ namespace std
1161 +_GLIBCXX_BEGIN_LDBL_NAMESPACE
1162 template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
1164 template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
1166 +_GLIBCXX_END_LDBL_NAMESPACE
1167 template<typename _CharT, bool _Intl = false>
1169 template<typename _CharT, bool _Intl = false>
1170 --- libstdc++-v3/include/bits/locale_facets.h.jj 2006-02-02 16:38:32.000000000 +0100
1171 +++ libstdc++-v3/include/bits/locale_facets.h 2006-02-10 14:53:36.000000000 +0100
1173 // Locale support -*- C++ -*-
1175 -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
1176 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
1177 // Free Software Foundation, Inc.
1179 // This file is part of the GNU ISO C++ Library. This library is free
1180 @@ -1910,6 +1910,7 @@ namespace std
1181 ~numpunct_byname() { }
1184 +_GLIBCXX_BEGIN_LDBL_NAMESPACE
1186 * @brief Facet for parsing number strings.
1188 @@ -2176,13 +2177,27 @@ namespace std
1189 do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
1192 + // XXX GLIBCXX_ABI Deprecated
1193 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
1195 + __do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
1199 do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
1200 long double&) const;
1204 do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
1207 + // XXX GLIBCXX_ABI Deprecated
1208 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
1210 + do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
1211 + long double&) const;
1216 @@ -2438,17 +2453,30 @@ namespace std
1218 do_put(iter_type, ios_base&, char_type __fill, double __v) const;
1220 + // XXX GLIBCXX_ABI Deprecated
1221 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
1223 + __do_put(iter_type, ios_base&, char_type __fill, double __v) const;
1226 do_put(iter_type, ios_base&, char_type __fill, long double __v) const;
1230 do_put(iter_type, ios_base&, char_type __fill, const void* __v) const;
1232 + // XXX GLIBCXX_ABI Deprecated
1233 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
1235 + do_put(iter_type, ios_base&, char_type __fill, long double __v) const;
1240 template <typename _CharT, typename _OutIter>
1241 locale::id num_put<_CharT, _OutIter>::id;
1243 +_GLIBCXX_END_LDBL_NAMESPACE
1246 * @brief Facet for localized string comparison.
1247 @@ -3953,6 +3981,7 @@ namespace std
1248 template<typename _CharT, bool _Intl>
1249 const bool moneypunct_byname<_CharT, _Intl>::intl;
1251 +_GLIBCXX_BEGIN_LDBL_NAMESPACE
1253 * @brief Facet for parsing monetary amounts.
1255 @@ -4064,9 +4093,16 @@ namespace std
1256 * value. This function is a hook for derived classes to change the
1257 * value returned. @see get() for details.
1259 + // XXX GLIBCXX_ABI Deprecated
1260 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
1262 + __do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io,
1263 + ios_base::iostate& __err, double& __units) const;
1266 do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io,
1267 ios_base::iostate& __err, long double& __units) const;
1271 * @brief Read and parse a monetary value.
1272 @@ -4079,6 +4115,13 @@ namespace std
1273 do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io,
1274 ios_base::iostate& __err, string_type& __digits) const;
1276 + // XXX GLIBCXX_ABI Deprecated
1277 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
1279 + do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io,
1280 + ios_base::iostate& __err, long double& __units) const;
1283 template<bool _Intl>
1285 _M_extract(iter_type __s, iter_type __end, ios_base& __io,
1286 @@ -4191,9 +4234,16 @@ namespace std
1287 * @param units Place to store result of parsing.
1288 * @return Iterator after writing.
1290 + // XXX GLIBCXX_ABI Deprecated
1291 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
1293 + __do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill,
1294 + double __units) const;
1297 do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill,
1298 long double __units) const;
1302 * @brief Format and output a monetary value.
1303 @@ -4217,6 +4267,13 @@ namespace std
1304 do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill,
1305 const string_type& __digits) const;
1307 + // XXX GLIBCXX_ABI Deprecated
1308 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
1310 + do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill,
1311 + long double __units) const;
1314 template<bool _Intl>
1316 _M_insert(iter_type __s, ios_base& __io, char_type __fill,
1317 @@ -4226,6 +4283,8 @@ namespace std
1318 template<typename _CharT, typename _OutIter>
1319 locale::id money_put<_CharT, _OutIter>::id;
1321 +_GLIBCXX_END_LDBL_NAMESPACE
1324 * @brief Messages facet base class providing catalog typedef.
1326 --- libstdc++-v3/include/bits/locale_facets.tcc.jj 2006-02-02 16:38:32.000000000 +0100
1327 +++ libstdc++-v3/include/bits/locale_facets.tcc 2006-02-10 14:53:36.000000000 +0100
1329 // Locale support -*- C++ -*-
1331 -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
1332 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
1333 // Free Software Foundation, Inc.
1335 // This file is part of the GNU ISO C++ Library. This library is free
1336 @@ -272,6 +272,8 @@ namespace std
1337 __verify_grouping(const char* __grouping, size_t __grouping_size,
1338 const string& __grouping_tmp);
1340 +_GLIBCXX_BEGIN_LDBL_NAMESPACE
1342 template<typename _CharT, typename _InIter>
1344 num_get<_CharT, _InIter>::
1345 @@ -446,6 +448,8 @@ namespace std
1349 +_GLIBCXX_END_LDBL_NAMESPACE
1351 template<typename _ValueT>
1352 struct __to_unsigned_type
1353 { typedef _ValueT __type; };
1354 @@ -460,6 +464,8 @@ namespace std
1355 { typedef unsigned long long __type; };
1358 +_GLIBCXX_BEGIN_LDBL_NAMESPACE
1360 template<typename _CharT, typename _InIter>
1361 template<typename _ValueT>
1363 @@ -772,6 +778,21 @@ namespace std
1367 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
1368 + template<typename _CharT, typename _InIter>
1370 + num_get<_CharT, _InIter>::
1371 + __do_get(iter_type __beg, iter_type __end, ios_base& __io,
1372 + ios_base::iostate& __err, double& __v) const
1375 + __xtrc.reserve(32);
1376 + __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc);
1377 + std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale());
1382 template<typename _CharT, typename _InIter>
1384 num_get<_CharT, _InIter>::
1385 @@ -822,6 +843,8 @@ namespace std
1386 __len = static_cast<int>(__w);
1389 +_GLIBCXX_END_LDBL_NAMESPACE
1391 // Forwarding functions to peel signed from unsigned integer types and
1392 // either cast or compute the absolute value for the former, depending
1394 @@ -911,6 +934,8 @@ namespace std
1395 return __bufend - __buf;
1398 +_GLIBCXX_BEGIN_LDBL_NAMESPACE
1400 template<typename _CharT, typename _OutIter>
1402 num_put<_CharT, _OutIter>::
1403 @@ -1233,6 +1258,14 @@ namespace std
1404 do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) const
1405 { return _M_insert_float(__s, __io, __fill, char(), __v); }
1407 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
1408 + template<typename _CharT, typename _OutIter>
1410 + num_put<_CharT, _OutIter>::
1411 + __do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) const
1412 + { return _M_insert_float(__s, __io, __fill, char(), __v); }
1415 template<typename _CharT, typename _OutIter>
1417 num_put<_CharT, _OutIter>::
1418 @@ -1474,6 +1507,23 @@ namespace std
1422 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
1423 + template<typename _CharT, typename _InIter>
1425 + money_get<_CharT, _InIter>::
1426 + __do_get(iter_type __beg, iter_type __end, bool __intl, ios_base& __io,
1427 + ios_base::iostate& __err, double& __units) const
1431 + __beg = _M_extract<true>(__beg, __end, __io, __err, __str);
1433 + __beg = _M_extract<false>(__beg, __end, __io, __err, __str);
1434 + std::__convert_to_v(__str.c_str(), __units, __err, _S_get_c_locale());
1439 template<typename _CharT, typename _InIter>
1441 money_get<_CharT, _InIter>::
1442 @@ -1678,7 +1728,18 @@ namespace std
1448 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
1449 + template<typename _CharT, typename _OutIter>
1451 + money_put<_CharT, _OutIter>::
1452 + __do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill,
1453 + double __units) const
1455 + return this->do_put(__s, __intl, __io, __fill, (long double) __units);
1459 template<typename _CharT, typename _OutIter>
1461 money_put<_CharT, _OutIter>::
1462 @@ -1726,6 +1787,7 @@ namespace std
1463 { return __intl ? _M_insert<true>(__s, __io, __fill, __digits)
1464 : _M_insert<false>(__s, __io, __fill, __digits); }
1466 +_GLIBCXX_END_LDBL_NAMESPACE
1468 // NB: Not especially useful. Without an ios_base object or some
1469 // kind of locale reference, we are left clawing at the air where
1470 @@ -2511,12 +2573,12 @@ namespace std
1471 extern template class moneypunct<char, true>;
1472 extern template class moneypunct_byname<char, false>;
1473 extern template class moneypunct_byname<char, true>;
1474 - extern template class money_get<char>;
1475 - extern template class money_put<char>;
1476 + extern template class _GLIBCXX_LDBL_NAMESPACE money_get<char>;
1477 + extern template class _GLIBCXX_LDBL_NAMESPACE money_put<char>;
1478 extern template class numpunct<char>;
1479 extern template class numpunct_byname<char>;
1480 - extern template class num_get<char>;
1481 - extern template class num_put<char>;
1482 + extern template class _GLIBCXX_LDBL_NAMESPACE num_get<char>;
1483 + extern template class _GLIBCXX_LDBL_NAMESPACE num_put<char>;
1484 extern template class __timepunct<char>;
1485 extern template class time_put<char>;
1486 extern template class time_put_byname<char>;
1487 @@ -2638,12 +2700,12 @@ namespace std
1488 extern template class moneypunct<wchar_t, true>;
1489 extern template class moneypunct_byname<wchar_t, false>;
1490 extern template class moneypunct_byname<wchar_t, true>;
1491 - extern template class money_get<wchar_t>;
1492 - extern template class money_put<wchar_t>;
1493 + extern template class _GLIBCXX_LDBL_NAMESPACE money_get<wchar_t>;
1494 + extern template class _GLIBCXX_LDBL_NAMESPACE money_put<wchar_t>;
1495 extern template class numpunct<wchar_t>;
1496 extern template class numpunct_byname<wchar_t>;
1497 - extern template class num_get<wchar_t>;
1498 - extern template class num_put<wchar_t>;
1499 + extern template class _GLIBCXX_LDBL_NAMESPACE num_get<wchar_t>;
1500 + extern template class _GLIBCXX_LDBL_NAMESPACE num_put<wchar_t>;
1501 extern template class __timepunct<wchar_t>;
1502 extern template class time_put<wchar_t>;
1503 extern template class time_put_byname<wchar_t>;
1504 --- libstdc++-v3/include/Makefile.in.jj 2006-02-02 16:38:32.000000000 +0100
1505 +++ libstdc++-v3/include/Makefile.in 2006-02-10 15:13:22.000000000 +0100
1506 @@ -1203,13 +1203,18 @@ ${host_builddir}/c++config.h: ${top_buil
1507 ${glibcxx_srcdir}/include/bits/c++config \
1508 stamp-${host_alias} \
1509 ${toplevel_srcdir}/gcc/DATESTAMP
1510 - @cat ${glibcxx_srcdir}/include/bits/c++config > $@ ;\
1511 + @ldbl_compat='' ;\
1512 + grep "^[ ]*#[ ]*define[ ][ ]*_GLIBCXX_LONG_DOUBLE_COMPAT[ ][ ]*1[ ]*$$" \
1513 + ${CONFIG_HEADER} > /dev/null 2>&1 \
1514 + && ldbl_compat='s,^#undef _GLIBCXX_LONG_DOUBLE_COMPAT$$,#define _GLIBCXX_LONG_DOUBLE_COMPAT 1,' ;\
1515 + sed -e "$$ldbl_compat" ${glibcxx_srcdir}/include/bits/c++config > $@ ;\
1516 sed -e 's/^/#define __GLIBCXX__ /' \
1517 - < ${toplevel_srcdir}/gcc/DATESTAMP >> $@ ;\
1518 + < ${toplevel_srcdir}/gcc/DATESTAMP >> $@ ;\
1519 sed -e 's/HAVE_/_GLIBCXX_HAVE_/g' \
1520 -e 's/PACKAGE/_GLIBCXX_PACKAGE/g' \
1521 -e 's/VERSION/_GLIBCXX_VERSION/g' \
1522 -e 's/WORDS_/_GLIBCXX_WORDS_/g' \
1523 + -e '/[ ]_GLIBCXX_LONG_DOUBLE_COMPAT[ ]/d' \
1524 < ${CONFIG_HEADER} >> $@ ;\
1525 echo "#endif // _CXXCONFIG_" >>$@
1527 --- libstdc++-v3/testsuite/testsuite_abi.cc.jj 2006-02-02 16:39:16.000000000 +0100
1528 +++ libstdc++-v3/testsuite/testsuite_abi.cc 2006-02-10 14:57:38.000000000 +0100
1532 -// Copyright (C) 2004, 2005 Free Software Foundation, Inc.
1533 +// Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
1535 // This library is free software; you can redistribute it and/or
1536 // modify it under the terms of the GNU General Public License as
1537 @@ -186,8 +186,11 @@ check_version(symbol& test, bool added)
1538 known_versions.push_back("GLIBCXX_3.4.5");
1539 known_versions.push_back("GLIBCXX_3.4.6");
1540 known_versions.push_back("GLIBCXX_3.4.7");
1541 + known_versions.push_back("GLIBCXX_LDBL_3.4");
1542 + known_versions.push_back("GLIBCXX_LDBL_3.4.7");
1543 known_versions.push_back("CXXABI_1.3");
1544 known_versions.push_back("CXXABI_1.3.1");
1545 + known_versions.push_back("CXXABI_LDBL_1.3");
1547 compat_list::iterator begin = known_versions.begin();
1548 compat_list::iterator end = known_versions.end();
1549 @@ -223,9 +226,7 @@ check_version(symbol& test, bool added)
1550 // New version labels are ok. The rest are not.
1551 compat_list::iterator it2 = find(begin, end, test.name);
1554 - test.version_status = symbol::compatible;
1556 + test.version_status = symbol::compatible;
1558 test.version_status = symbol::incompatible;
1560 @@ -369,7 +370,7 @@ compare_symbols(const char* baseline_fil
1561 added_names.erase(it);
1564 - missing_names.push_back(what);
1565 + missing_names.push_back(what);
1568 // Check missing names for compatibility.
1569 --- libstdc++-v3/configure.jj 2006-02-02 16:38:28.000000000 +0100
1570 +++ libstdc++-v3/configure 2006-02-10 14:53:36.000000000 +0100
1571 @@ -309,7 +309,7 @@ ac_includes_default="\
1572 # include <unistd.h>
1575 -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libtool_VERSION multi_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar glibcxx_builddir glibcxx_srcdir toplevel_srcdir CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LN_S AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBTOOL CXXCPP CPPFLAGS enable_shared enable_static GLIBCXX_HOSTED_TRUE GLIBCXX_HOSTED_FALSE GLIBCXX_BUILD_PCH_TRUE GLIBCXX_BUILD_PCH_FALSE glibcxx_PCHFLAGS CSTDIO_H BASIC_FILE_H BASIC_FILE_CC CPP EGREP check_msgfmt glibcxx_MOFILES glibcxx_POFILES glibcxx_localedir USE_NLS CLOCALE_H CMESSAGES_H CCODECVT_CC CCOLLATE_CC CCTYPE_CC CMESSAGES_CC CMONEY_CC CNUMERIC_CC CTIME_H CTIME_CC CLOCALE_CC CLOCALE_INTERNAL_H ALLOCATOR_H ALLOCATOR_NAME C_INCLUDE_DIR GLIBCXX_C_HEADERS_C_TRUE GLIBCXX_C_HEADERS_C_FALSE GLIBCXX_C_HEADERS_C_STD_TRUE GLIBCXX_C_HEADERS_C_STD_FALSE GLIBCXX_C_HEADERS_COMPATIBILITY_TRUE GLIBCXX_C_HEADERS_COMPATIBILITY_FALSE DEBUG_FLAGS GLIBCXX_BUILD_DEBUG_TRUE GLIBCXX_BUILD_DEBUG_FALSE EXTRA_CXX_FLAGS glibcxx_thread_h WERROR SECTION_FLAGS SECTION_LDFLAGS OPT_LDFLAGS LIBMATHOBJS LIBICONV SYMVER_MAP port_specific_symbol_files ENABLE_SYMVERS_GNU_TRUE ENABLE_SYMVERS_GNU_FALSE ENABLE_SYMVERS_DARWIN_EXPORT_TRUE ENABLE_SYMVERS_DARWIN_EXPORT_FALSE baseline_dir ATOMICITY_SRCDIR ATOMIC_WORD_SRCDIR CPU_DEFINES_SRCDIR ABI_TWEAKS_SRCDIR OS_INC_SRCDIR glibcxx_prefixdir gxx_include_dir glibcxx_toolexecdir glibcxx_toolexeclibdir GLIBCXX_INCLUDES TOPLEVEL_INCLUDES OPTIMIZE_CXXFLAGS WARN_FLAGS LIBSUPCXX_PICFLAGS LIBOBJS LTLIBOBJS'
1576 +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libtool_VERSION multi_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar glibcxx_builddir glibcxx_srcdir toplevel_srcdir CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LN_S AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBTOOL CXXCPP CPPFLAGS enable_shared enable_static GLIBCXX_HOSTED_TRUE GLIBCXX_HOSTED_FALSE GLIBCXX_BUILD_PCH_TRUE GLIBCXX_BUILD_PCH_FALSE glibcxx_PCHFLAGS CSTDIO_H BASIC_FILE_H BASIC_FILE_CC CPP EGREP check_msgfmt glibcxx_MOFILES glibcxx_POFILES glibcxx_localedir USE_NLS CLOCALE_H CMESSAGES_H CCODECVT_CC CCOLLATE_CC CCTYPE_CC CMESSAGES_CC CMONEY_CC CNUMERIC_CC CTIME_H CTIME_CC CLOCALE_CC CLOCALE_INTERNAL_H ALLOCATOR_H ALLOCATOR_NAME C_INCLUDE_DIR GLIBCXX_C_HEADERS_C_TRUE GLIBCXX_C_HEADERS_C_FALSE GLIBCXX_C_HEADERS_C_STD_TRUE GLIBCXX_C_HEADERS_C_STD_FALSE GLIBCXX_C_HEADERS_COMPATIBILITY_TRUE GLIBCXX_C_HEADERS_COMPATIBILITY_FALSE DEBUG_FLAGS GLIBCXX_BUILD_DEBUG_TRUE GLIBCXX_BUILD_DEBUG_FALSE EXTRA_CXX_FLAGS glibcxx_thread_h WERROR SECTION_FLAGS SECTION_LDFLAGS OPT_LDFLAGS LIBMATHOBJS LIBICONV SYMVER_MAP port_specific_symbol_files ENABLE_SYMVERS_GNU_TRUE ENABLE_SYMVERS_GNU_FALSE ENABLE_SYMVERS_DARWIN_EXPORT_TRUE ENABLE_SYMVERS_DARWIN_EXPORT_FALSE GLIBCXX_LDBL_COMPAT_TRUE GLIBCXX_LDBL_COMPAT_FALSE baseline_dir ATOMICITY_SRCDIR ATOMIC_WORD_SRCDIR CPU_DEFINES_SRCDIR ABI_TWEAKS_SRCDIR OS_INC_SRCDIR glibcxx_prefixdir gxx_include_dir glibcxx_toolexecdir glibcxx_toolexeclibdir GLIBCXX_INCLUDES TOPLEVEL_INCLUDES OPTIMIZE_CXXFLAGS WARN_FLAGS LIBSUPCXX_PICFLAGS LIBOBJS LTLIBOBJS'
1579 # Initialize some variables set by options.
1580 @@ -87881,6 +87881,72 @@ echo "${ECHO_T}$glibcxx_ptrdiff_t_is_i"
1581 echo "$as_me: versioning on shared library symbols is $enable_symvers" >&6;}
1586 + powerpc*-*-*gnu* | \
1587 + sparc*-*-linux* | \
1588 + s390*-*-linux* | \
1590 + cat >conftest.$ac_ext <<_ACEOF
1593 +cat confdefs.h >>conftest.$ac_ext
1594 +cat >>conftest.$ac_ext <<_ACEOF
1595 +/* end confdefs.h. */
1601 +#if !defined __LONG_DOUBLE_128__ || (defined(__sparc__) && defined(__arch64__))
1602 +#error no need for long double compatibility
1609 +rm -f conftest.$ac_objext
1610 +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
1611 + (eval $ac_compile) 2>conftest.er1
1613 + grep -v '^ *+' conftest.er1 >conftest.err
1614 + rm -f conftest.er1
1615 + cat conftest.err >&5
1616 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
1617 + (exit $ac_status); } &&
1618 + { ac_try='test -z "$ac_c_werror_flag"
1619 + || test ! -s conftest.err'
1620 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
1621 + (eval $ac_try) 2>&5
1623 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
1624 + (exit $ac_status); }; } &&
1625 + { ac_try='test -s conftest.$ac_objext'
1626 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
1627 + (eval $ac_try) 2>&5
1629 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
1630 + (exit $ac_status); }; }; then
1631 + ac_ldbl_compat=yes
1633 + echo "$as_me: failed program was:" >&5
1634 +sed 's/^/| /' conftest.$ac_ext >&5
1638 +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
1639 + if test "$ac_ldbl_compat" = yes; then
1641 +cat >>confdefs.h <<\_ACEOF
1642 +#define _GLIBCXX_LONG_DOUBLE_COMPAT 1
1645 + port_specific_symbol_files="\$(top_srcdir)/config/os/gnu-linux/ldbl-extra.ver"
1650 # This depends on GLIBCXX_ENABLE_SYMVERS and GLIBCXX_IS_NATIVE.
1652 if $GLIBCXX_IS_NATIVE ; then
1653 @@ -88733,6 +88799,17 @@ fi
1657 +if test $ac_ldbl_compat = yes; then
1658 + GLIBCXX_LDBL_COMPAT_TRUE=
1659 + GLIBCXX_LDBL_COMPAT_FALSE='#'
1661 + GLIBCXX_LDBL_COMPAT_TRUE='#'
1662 + GLIBCXX_LDBL_COMPAT_FALSE=
1668 cat >confcache <<\_ACEOF
1669 # This file is a shell script that caches the results of configure
1670 # tests run on this system so they can be shared between configure
1671 @@ -89088,6 +89165,13 @@ echo "$as_me: error: conditional \"ENABL
1672 Usually this means the macro was only invoked conditionally." >&2;}
1673 { (exit 1); exit 1; }; }
1675 +if test -z "${GLIBCXX_LDBL_COMPAT_TRUE}" && test -z "${GLIBCXX_LDBL_COMPAT_FALSE}"; then
1676 + { { echo "$as_me:$LINENO: error: conditional \"GLIBCXX_LDBL_COMPAT\" was never defined.
1677 +Usually this means the macro was only invoked conditionally." >&5
1678 +echo "$as_me: error: conditional \"GLIBCXX_LDBL_COMPAT\" was never defined.
1679 +Usually this means the macro was only invoked conditionally." >&2;}
1680 + { (exit 1); exit 1; }; }
1683 : ${CONFIG_STATUS=./config.status}
1684 ac_clean_files_save=$ac_clean_files
1685 @@ -89758,6 +89842,8 @@ s,@ENABLE_SYMVERS_GNU_TRUE@,$ENABLE_SYMV
1686 s,@ENABLE_SYMVERS_GNU_FALSE@,$ENABLE_SYMVERS_GNU_FALSE,;t t
1687 s,@ENABLE_SYMVERS_DARWIN_EXPORT_TRUE@,$ENABLE_SYMVERS_DARWIN_EXPORT_TRUE,;t t
1688 s,@ENABLE_SYMVERS_DARWIN_EXPORT_FALSE@,$ENABLE_SYMVERS_DARWIN_EXPORT_FALSE,;t t
1689 +s,@GLIBCXX_LDBL_COMPAT_TRUE@,$GLIBCXX_LDBL_COMPAT_TRUE,;t t
1690 +s,@GLIBCXX_LDBL_COMPAT_FALSE@,$GLIBCXX_LDBL_COMPAT_FALSE,;t t
1691 s,@baseline_dir@,$baseline_dir,;t t
1692 s,@ATOMICITY_SRCDIR@,$ATOMICITY_SRCDIR,;t t
1693 s,@ATOMIC_WORD_SRCDIR@,$ATOMIC_WORD_SRCDIR,;t t