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
88 @@ -41,6 +41,21 @@ namespace __gnu_internal
89 static __glibcxx_mutex_define_initialized(locale_cache_mutex);
92 +// XXX GLIBCXX_ABI Deprecated
93 +#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
94 +# define _GLIBCXX_LOC_ID(mangled) extern std::locale::id mangled
95 +_GLIBCXX_LOC_ID (_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE);
96 +_GLIBCXX_LOC_ID (_ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE);
97 +_GLIBCXX_LOC_ID (_ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE);
98 +_GLIBCXX_LOC_ID (_ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE);
99 +# ifdef _GLIBCXX_USE_WCHAR_T
100 +_GLIBCXX_LOC_ID (_ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE);
101 +_GLIBCXX_LOC_ID (_ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE);
102 +_GLIBCXX_LOC_ID (_ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE);
103 +_GLIBCXX_LOC_ID (_ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE);
109 // Definitions for static const data members of locale.
110 @@ -398,9 +413,29 @@ namespace std
111 locale::id::_M_id() const
114 - _M_index = 1 + __gnu_cxx::__exchange_and_add(&_S_refcount, 1);
116 + // XXX GLIBCXX_ABI Deprecated
117 +#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
119 +# define _GLIBCXX_SYNC_ID(facet, mangled) \
120 + if (this == &::mangled) \
122 + _GLIBCXX_SYNC_ID (num_get<char>, _ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE);
123 + _GLIBCXX_SYNC_ID (num_put<char>, _ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE);
124 + _GLIBCXX_SYNC_ID (money_get<char>, _ZNSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE);
125 + _GLIBCXX_SYNC_ID (money_put<char>, _ZNSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE2idE);
126 +# ifdef _GLIBCXX_USE_WCHAR_T
127 + _GLIBCXX_SYNC_ID (num_get<wchar_t>, _ZNSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE);
128 + _GLIBCXX_SYNC_ID (num_put<wchar_t>, _ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE);
129 + _GLIBCXX_SYNC_ID (money_get<wchar_t>, _ZNSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE2idE);
130 + _GLIBCXX_SYNC_ID (money_put<wchar_t>, _ZNSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE2idE);
133 + _M_index = 1 + f->_M_id();
136 + _M_index = 1 + __gnu_cxx::__exchange_and_add(&_S_refcount, 1);
143 --- libstdc++-v3/src/ostream-inst.cc.jj 2006-02-02 16:38:25.000000000 +0100
144 +++ libstdc++-v3/src/ostream-inst.cc 2006-02-10 14:53:36.000000000 +0100
146 // Explicit instantiation file.
148 -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
149 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2006
150 // Free Software Foundation, Inc.
152 // This file is part of the GNU ISO C++ Library. This library is free
153 @@ -74,3 +74,19 @@ namespace std
154 template wostream& operator<<(wostream&, _Setw);
158 +// XXX GLIBCXX_ABI Deprecated
159 +#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
161 +#define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \
162 + extern "C" void ldbl (void) __attribute__ ((alias (#dbl), weak))
163 +_GLIBCXX_LDBL_COMPAT (_ZNSolsEd, _ZNSolsEe);
164 +_GLIBCXX_LDBL_COMPAT (_ZNSt13basic_ostreamIwSt11char_traitsIwEElsEd,
165 + _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEe);
166 +// These 2 are in GCC 4.2+ only so far
167 +// _GLIBCXX_LDBL_COMPAT (_ZNSo9_M_insertIdEERSoT_,
168 +// _ZNSo9_M_insertIeEERSoT_);
169 +// _GLIBCXX_LDBL_COMPAT (_ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIdEERS2_T_,
170 +// _ZNSt13basic_ostreamIwSt11char_traitsIwEE9_M_insertIeEERS2_T_);
172 +#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
173 --- libstdc++-v3/src/locale-inst.cc.jj 2006-02-02 16:38:25.000000000 +0100
174 +++ libstdc++-v3/src/locale-inst.cc 2006-02-10 14:53:36.000000000 +0100
176 // Locale support -*- C++ -*-
178 -// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
179 +// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2006
180 // Free Software Foundation, Inc.
182 // This file is part of the GNU ISO C++ Library. This library is free
184 // Instantiation configuration.
191 @@ -48,6 +49,7 @@ namespace std
192 template struct __moneypunct_cache<C, true>;
193 template class moneypunct_byname<C, false>;
194 template class moneypunct_byname<C, true>;
195 +_GLIBCXX_BEGIN_LDBL_NAMESPACE
196 template class money_get<C, istreambuf_iterator<C> >;
197 template class money_put<C, ostreambuf_iterator<C> >;
199 @@ -73,11 +75,13 @@ namespace std
200 money_put<C, ostreambuf_iterator<C> >::
201 _M_insert<false>(ostreambuf_iterator<C>, ios_base&, C,
202 const string_type&) const;
203 +_GLIBCXX_END_LDBL_NAMESPACE
205 // numpunct, numpunct_byname, num_get, and num_put
206 template class numpunct<C>;
207 template struct __numpunct_cache<C>;
208 template class numpunct_byname<C>;
209 +_GLIBCXX_BEGIN_LDBL_NAMESPACE
210 template class num_get<C, istreambuf_iterator<C> >;
211 template class num_put<C, ostreambuf_iterator<C> >;
213 @@ -161,7 +165,8 @@ namespace std
214 num_put<C, ostreambuf_iterator<C> >::
215 _M_insert_float(ostreambuf_iterator<C>, ios_base&, C, char,
218 +_GLIBCXX_END_LDBL_NAMESPACE
220 // time_get and time_put
221 template class __timepunct<C>;
222 template struct __timepunct_cache<C>;
223 @@ -314,3 +319,44 @@ namespace std
224 ios_base::fmtflags, bool);
228 +// XXX GLIBCXX_ABI Deprecated
229 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined C_is_char
231 +#define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \
232 + extern "C" void ldbl (void) __attribute__ ((alias (#dbl), weak))
234 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIjEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
235 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIjEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
236 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIlEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
237 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIlEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
238 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intImEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
239 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intImEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
240 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intItEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
241 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intItEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
242 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIxEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
243 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIxEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
244 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIyEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
245 + _ZNKSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIyEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
246 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIlEES4_S4_RSt8ios_basecT_,
247 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIlEES3_S3_RSt8ios_basecT_);
248 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intImEES4_S4_RSt8ios_basecT_,
249 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intImEES3_S3_RSt8ios_basecT_);
250 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIxEES4_S4_RSt8ios_basecT_,
251 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIxEES3_S3_RSt8ios_basecT_);
252 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIyEES4_S4_RSt8ios_basecT_,
253 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE13_M_insert_intIyEES3_S3_RSt8ios_basecT_);
254 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES4_S4_RSt8ios_baseccT_,
255 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES3_S3_RSt8ios_baseccT_);
256 +_GLIBCXX_LDBL_COMPAT(_ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIdEES3_S3_RSt8ios_baseccT_,
257 + _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE15_M_insert_floatIeEES3_S3_RSt8ios_baseccT_);
258 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb0EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRSs,
259 + _ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb0EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs);
260 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb1EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRSs,
261 + _ZNKSt9money_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE10_M_extractILb1EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs);
262 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES4_S4_RSt8ios_basecRKSs,
263 + _ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb0EEES3_S3_RSt8ios_basecRKSs);
264 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES4_S4_RSt8ios_basecRKSs,
265 + _ZNKSt9money_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE9_M_insertILb1EEES3_S3_RSt8ios_basecRKSs);
267 +#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
268 --- libstdc++-v3/src/compatibility.cc.jj 2006-02-02 16:38:25.000000000 +0100
269 +++ libstdc++-v3/src/compatibility.cc 2006-02-10 14:57:29.000000000 +0100
271 // Compatibility symbols for previous versions -*- C++ -*-
273 -// Copyright (C) 2005
274 +// Copyright (C) 2005, 2006
275 // Free Software Foundation, Inc.
277 // This file is part of the GNU ISO C++ Library. This library is free
286 @@ -362,6 +363,107 @@ namespace std
291 +#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
292 +#define _GLIBCXX_MATHL_WRAPPER(name, argdecl, args, ver) \
294 +__ ## name ## l_wrapper argdecl \
296 + return name args; \
298 +asm (".symver __" #name "l_wrapper, " #name "l@" #ver)
300 +#define _GLIBCXX_MATHL_WRAPPER1(name, ver) \
301 + _GLIBCXX_MATHL_WRAPPER (name, (double x), (x), ver)
303 +#define _GLIBCXX_MATHL_WRAPPER2(name, ver) \
304 + _GLIBCXX_MATHL_WRAPPER (name, (double x, double y), (x, y), ver)
306 +#ifdef _GLIBCXX_HAVE_ACOSL
307 +_GLIBCXX_MATHL_WRAPPER1 (acos, GLIBCXX_3.4.3);
309 +#ifdef _GLIBCXX_HAVE_ASINL
310 +_GLIBCXX_MATHL_WRAPPER1 (asin, GLIBCXX_3.4.3);
312 +#ifdef _GLIBCXX_HAVE_ATAN2L
313 +_GLIBCXX_MATHL_WRAPPER2 (atan2, GLIBCXX_3.4);
315 +#ifdef _GLIBCXX_HAVE_ATANL
316 +_GLIBCXX_MATHL_WRAPPER1 (atan, GLIBCXX_3.4.3);
318 +#ifdef _GLIBCXX_HAVE_CEILL
319 +_GLIBCXX_MATHL_WRAPPER1 (ceil, GLIBCXX_3.4.3);
321 +#ifdef _GLIBCXX_HAVE_COSHL
322 +_GLIBCXX_MATHL_WRAPPER1 (cosh, GLIBCXX_3.4);
324 +#ifdef _GLIBCXX_HAVE_COSL
325 +_GLIBCXX_MATHL_WRAPPER1 (cos, GLIBCXX_3.4);
327 +#ifdef _GLIBCXX_HAVE_EXPL
328 +_GLIBCXX_MATHL_WRAPPER1 (exp, GLIBCXX_3.4);
330 +#ifdef _GLIBCXX_HAVE_FLOORL
331 +_GLIBCXX_MATHL_WRAPPER1 (floor, GLIBCXX_3.4.3);
333 +#ifdef _GLIBCXX_HAVE_FMODL
334 +_GLIBCXX_MATHL_WRAPPER2 (fmod, GLIBCXX_3.4.3);
336 +#ifdef _GLIBCXX_HAVE_FREXPL
337 +_GLIBCXX_MATHL_WRAPPER (frexp, (double x, int *y), (x, y), GLIBCXX_3.4.3);
339 +#ifdef _GLIBCXX_HAVE_HYPOTL
340 +_GLIBCXX_MATHL_WRAPPER2 (hypot, GLIBCXX_3.4);
342 +#ifdef _GLIBCXX_HAVE_LDEXPL
343 +_GLIBCXX_MATHL_WRAPPER (ldexp, (double x, int y), (x, y), GLIBCXX_3.4.3);
345 +#ifdef _GLIBCXX_HAVE_LOG10L
346 +_GLIBCXX_MATHL_WRAPPER1 (log10, GLIBCXX_3.4);
348 +#ifdef _GLIBCXX_HAVE_LOGL
349 +_GLIBCXX_MATHL_WRAPPER1 (log, GLIBCXX_3.4);
351 +#ifdef _GLIBCXX_HAVE_MODFL
352 +_GLIBCXX_MATHL_WRAPPER (modf, (double x, double *y), (x, y), GLIBCXX_3.4.3);
354 +#ifdef _GLIBCXX_HAVE_POWL
355 +_GLIBCXX_MATHL_WRAPPER2 (pow, GLIBCXX_3.4);
357 +#ifdef _GLIBCXX_HAVE_SINHL
358 +_GLIBCXX_MATHL_WRAPPER1 (sinh, GLIBCXX_3.4);
360 +#ifdef _GLIBCXX_HAVE_SINL
361 +_GLIBCXX_MATHL_WRAPPER1 (sin, GLIBCXX_3.4);
363 +#ifdef _GLIBCXX_HAVE_SQRTL
364 +_GLIBCXX_MATHL_WRAPPER1 (sqrt, GLIBCXX_3.4);
366 +#ifdef _GLIBCXX_HAVE_TANHL
367 +_GLIBCXX_MATHL_WRAPPER1 (tanh, GLIBCXX_3.4);
369 +#ifdef _GLIBCXX_HAVE_TANL
370 +_GLIBCXX_MATHL_WRAPPER1 (tan, GLIBCXX_3.4);
372 +#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
374 +#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
375 +extern void *_ZTVN10__cxxabiv123__fundamental_type_infoE[];
376 +extern void *_ZTVN10__cxxabiv119__pointer_type_infoE[];
377 +extern __attribute__((used, weak)) const char _ZTSe[2] = "e";
378 +extern __attribute__((used, weak)) const char _ZTSPe[3] = "Pe";
379 +extern __attribute__((used, weak)) const char _ZTSPKe[4] = "PKe";
380 +extern __attribute__((used, weak)) const void *_ZTIe[2]
381 + = { (void *) &_ZTVN10__cxxabiv123__fundamental_type_infoE[2],
383 +extern __attribute__((used, weak)) const void *_ZTIPe[4]
384 + = { (void *) &_ZTVN10__cxxabiv119__pointer_type_infoE[2],
385 + (void *) _ZTSPe, (void *) 0L, (void *) _ZTIe };
386 +extern __attribute__((used, weak)) const void *_ZTIPKe[4]
387 + = { (void *) &_ZTVN10__cxxabiv119__pointer_type_infoE[2],
388 + (void *) _ZTSPKe, (void *) 1L, (void *) _ZTIe };
389 +#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
392 #if (defined(__ppc__) || defined (__ppc64__)) && defined (PIC)
393 /* __eprintf shouldn't have been made visible from libstdc++, or
394 --- libstdc++-v3/src/limits.cc.jj 2006-02-02 16:38:25.000000000 +0100
395 +++ libstdc++-v3/src/limits.cc 2006-02-10 14:53:36.000000000 +0100
397 // Static data members of -*- C++ -*- numeric_limits classes
399 -// Copyright (C) 1999, 2001, 2002 Free Software Foundation, Inc.
400 +// Copyright (C) 1999, 2001, 2002, 2006 Free Software Foundation, Inc.
402 // This file is part of the GNU ISO C++ Library. This library is free
403 // software; you can redistribute it and/or modify it under the
404 @@ -447,3 +447,34 @@ namespace std
405 const bool numeric_limits<long double>::tinyness_before;
406 const float_round_style numeric_limits<long double>::round_style;
409 +// XXX GLIBCXX_ABI Deprecated
410 +#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
412 +#define _GLIBCXX_NUM_LIM_COMPAT(type, member, len) \
413 + extern "C" type _ZNSt14numeric_limitsIeE ## len ## member ## E \
414 + __attribute__ ((alias ("_ZNSt14numeric_limitsIdE" #len #member "E")))
415 +_GLIBCXX_NUM_LIM_COMPAT (bool, is_specialized, 14);
416 +_GLIBCXX_NUM_LIM_COMPAT (int, digits, 6);
417 +_GLIBCXX_NUM_LIM_COMPAT (int, digits10, 8);
418 +_GLIBCXX_NUM_LIM_COMPAT (bool, is_signed, 9);
419 +_GLIBCXX_NUM_LIM_COMPAT (bool, is_integer, 10);
420 +_GLIBCXX_NUM_LIM_COMPAT (bool, is_exact, 8);
421 +_GLIBCXX_NUM_LIM_COMPAT (int, radix, 5);
422 +_GLIBCXX_NUM_LIM_COMPAT (int, min_exponent, 12);
423 +_GLIBCXX_NUM_LIM_COMPAT (int, min_exponent10, 14);
424 +_GLIBCXX_NUM_LIM_COMPAT (int, max_exponent, 12);
425 +_GLIBCXX_NUM_LIM_COMPAT (int, max_exponent10, 14);
426 +_GLIBCXX_NUM_LIM_COMPAT (bool, has_infinity, 12);
427 +_GLIBCXX_NUM_LIM_COMPAT (bool, has_quiet_NaN, 13);
428 +_GLIBCXX_NUM_LIM_COMPAT (bool, has_signaling_NaN, 17);
429 +_GLIBCXX_NUM_LIM_COMPAT (std::float_denorm_style, has_denorm, 10);
430 +_GLIBCXX_NUM_LIM_COMPAT (bool, has_denorm_loss, 15);
431 +_GLIBCXX_NUM_LIM_COMPAT (bool, is_iec559, 9);
432 +_GLIBCXX_NUM_LIM_COMPAT (bool, is_bounded, 10);
433 +_GLIBCXX_NUM_LIM_COMPAT (bool, is_modulo, 9);
434 +_GLIBCXX_NUM_LIM_COMPAT (bool, traps, 5);
435 +_GLIBCXX_NUM_LIM_COMPAT (bool, tinyness_before, 15);
436 +_GLIBCXX_NUM_LIM_COMPAT (std::float_round_style, round_style, 11);
438 +#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
439 --- libstdc++-v3/src/compatibility-ldbl.cc.jj 2006-02-10 14:53:36.000000000 +0100
440 +++ libstdc++-v3/src/compatibility-ldbl.cc 2006-02-10 14:53:36.000000000 +0100
442 +// Compatibility symbols for -mlong-double-64 compatibility -*- C++ -*-
444 +// Copyright (C) 2006
445 +// Free Software Foundation, Inc.
447 +// This file is part of the GNU ISO C++ Library. This library is free
448 +// software; you can redistribute it and/or modify it under the
449 +// terms of the GNU General Public License as published by the
450 +// Free Software Foundation; either version 2, or (at your option)
451 +// any later version.
453 +// This library is distributed in the hope that it will be useful,
454 +// but WITHOUT ANY WARRANTY; without even the implied warranty of
455 +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
456 +// GNU General Public License for more details.
458 +// You should have received a copy of the GNU General Public License along
459 +// with this library; see the file COPYING. If not, write to the Free
460 +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
463 +// As a special exception, you may use this file as part of a free software
464 +// library without restriction. Specifically, if other files instantiate
465 +// templates or use macros or inline functions from this file, or you compile
466 +// this file and link it with other files to produce an executable, this
467 +// file does not by itself cause the resulting executable to be covered by
468 +// the GNU General Public License. This exception does not however
469 +// invalidate any other reasons why the executable file might be covered by
470 +// the GNU General Public License.
474 +#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
476 +#ifdef __LONG_DOUBLE_128__
477 +#error "compatibility-ldbl.cc must be compiled with -mlong-double-64"
483 + template class num_get<C, istreambuf_iterator<C> >;
484 + template class num_put<C, ostreambuf_iterator<C> >;
485 + template class money_get<C, istreambuf_iterator<C> >;
486 + template class money_put<C, ostreambuf_iterator<C> >;
487 + template const num_put<C>& use_facet<num_put<C> >(const locale&);
488 + template const num_get<C>& use_facet<num_get<C> >(const locale&);
489 + template const money_put<C>& use_facet<money_put<C> >(const locale&);
490 + template const money_get<C>& use_facet<money_get<C> >(const locale&);
491 + template bool has_facet<num_put<C> >(const locale&);
492 + template bool has_facet<num_get<C> >(const locale&);
493 + template bool has_facet<money_put<C> >(const locale&);
494 + template bool has_facet<money_get<C> >(const locale&);
496 +#ifdef _GLIBCXX_USE_WCHAR_T
498 + template class num_get<C, istreambuf_iterator<C> >;
499 + template class num_put<C, ostreambuf_iterator<C> >;
500 + template class money_get<C, istreambuf_iterator<C> >;
501 + template class money_put<C, ostreambuf_iterator<C> >;
502 + template const num_put<C>& use_facet<num_put<C> >(const locale&);
503 + template const num_get<C>& use_facet<num_get<C> >(const locale&);
504 + template const money_put<C>& use_facet<money_put<C> >(const locale&);
505 + template const money_get<C>& use_facet<money_get<C> >(const locale&);
506 + template bool has_facet<num_put<C> >(const locale&);
507 + template bool has_facet<num_get<C> >(const locale&);
508 + template bool has_facet<money_put<C> >(const locale&);
509 + template bool has_facet<money_get<C> >(const locale&);
515 --- libstdc++-v3/src/Makefile.am.jj 2006-02-02 16:38:25.000000000 +0100
516 +++ libstdc++-v3/src/Makefile.am 2006-02-10 14:53:36.000000000 +0100
517 @@ -35,10 +35,15 @@ libstdc++-symbol.ver: ${glibcxx_srcdir}
518 $(port_specific_symbol_files)
519 cp ${glibcxx_srcdir}/$(SYMVER_MAP) ./libstdc++-symbol.ver
520 if test "x$(port_specific_symbol_files)" != x; then \
521 - sed -n '1,/DO NOT DELETE/p' $@ > tmp.top; \
522 - sed -n '/DO NOT DELETE/,$$p' $@ > tmp.bottom; \
523 - cat tmp.top $(port_specific_symbol_files) tmp.bottom > $@; \
524 - rm tmp.top tmp.bottom; \
525 + if grep '^# Appended to version file.' \
526 + $(port_specific_symbol_files) /dev/null > /dev/null 2>&1; then \
527 + cat $(port_specific_symbol_files) >> $@; \
529 + sed -n '1,/DO NOT DELETE/p' $@ > tmp.top; \
530 + sed -n '/DO NOT DELETE/,$$p' $@ > tmp.bottom; \
531 + cat tmp.top $(port_specific_symbol_files) tmp.bottom > $@; \
532 + rm tmp.top tmp.bottom; \
536 if ENABLE_SYMVERS_GNU
537 @@ -113,6 +118,12 @@ c++locale.cc: ${glibcxx_srcdir}/$(CLOCAL
538 basic_file.cc: ${glibcxx_srcdir}/$(BASIC_FILE_CC)
539 $(LN_S) ${glibcxx_srcdir}/$(BASIC_FILE_CC) ./$@ || true
541 +if GLIBCXX_LDBL_COMPAT
542 +ldbl_compat_sources = compatibility-ldbl.cc
544 +ldbl_compat_sources =
547 # Sources present in the src directory.
549 bitmap_allocator.cc \
550 @@ -160,7 +171,8 @@ sources = \
554 - ${host_sources_extra}
555 + ${host_sources_extra} \
556 + ${ldbl_compat_sources}
558 VPATH = $(top_srcdir)/src:$(top_srcdir)
560 @@ -191,6 +203,15 @@ concept-inst.lo: concept-inst.cc
561 concept-inst.o: concept-inst.cc
562 $(CXXCOMPILE) -D_GLIBCXX_CONCEPT_CHECKS -fimplicit-templates -c $<
564 +if GLIBCXX_LDBL_COMPAT
565 +# Use special rules for compatibility-ldbl.cc compilation, as we need to
566 +# pass -mlong-double-64.
567 +compatibility-ldbl.lo: compatibility-ldbl.cc
568 + $(LTCXXCOMPILE) -mlong-double-64 -c $<
569 +compatibility-ldbl.o: compatibility-ldbl.cc
570 + $(CXXCOMPILE) -mlong-double-64 -c $<
573 # AM_CXXFLAGS needs to be in each subdirectory so that it can be
574 # modified in a per-library or per-sub-library way. Need to manually
575 # set this option because CONFIG_CXXFLAGS has to be after
576 --- libstdc++-v3/src/Makefile.in.jj 2006-02-02 16:38:25.000000000 +0100
577 +++ libstdc++-v3/src/Makefile.in 2006-02-10 14:53:36.000000000 +0100
578 @@ -59,11 +59,27 @@ am__strip_dir = `echo $$p | sed -e 's|^.
579 am__installdirs = "$(DESTDIR)$(toolexeclibdir)"
580 toolexeclibLTLIBRARIES_INSTALL = $(INSTALL)
581 LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
582 +am__libstdc___la_SOURCES_DIST = bitmap_allocator.cc pool_allocator.cc \
583 + mt_allocator.cc codecvt.cc compatibility.cc complex_io.cc \
584 + ctype.cc debug.cc debug_list.cc functexcept.cc \
585 + globals_locale.cc globals_io.cc ios.cc ios_failure.cc \
586 + ios_init.cc ios_locale.cc limits.cc list.cc locale.cc \
587 + locale_init.cc locale_facets.cc localename.cc stdexcept.cc \
588 + strstream.cc tree.cc allocator-inst.cc concept-inst.cc \
589 + fstream-inst.cc ext-inst.cc ios-inst.cc iostream-inst.cc \
590 + istream-inst.cc istream.cc locale-inst.cc locale-misc-inst.cc \
591 + misc-inst.cc ostream-inst.cc sstream-inst.cc streambuf-inst.cc \
592 + streambuf.cc string-inst.cc valarray-inst.cc wlocale-inst.cc \
593 + wstring-inst.cc atomicity.cc codecvt_members.cc \
594 + collate_members.cc ctype_members.cc messages_members.cc \
595 + monetary_members.cc numeric_members.cc time_members.cc \
596 + basic_file.cc c++locale.cc compatibility-ldbl.cc
597 am__objects_1 = atomicity.lo codecvt_members.lo collate_members.lo \
598 ctype_members.lo messages_members.lo monetary_members.lo \
599 numeric_members.lo time_members.lo
600 am__objects_2 = basic_file.lo c++locale.lo
601 -am__objects_3 = bitmap_allocator.lo pool_allocator.lo mt_allocator.lo \
602 +@GLIBCXX_LDBL_COMPAT_TRUE@am__objects_3 = compatibility-ldbl.lo
603 +am__objects_4 = bitmap_allocator.lo pool_allocator.lo mt_allocator.lo \
604 codecvt.lo compatibility.lo complex_io.lo ctype.lo debug.lo \
605 debug_list.lo functexcept.lo globals_locale.lo globals_io.lo \
606 ios.lo ios_failure.lo ios_init.lo ios_locale.lo limits.lo \
607 @@ -74,8 +90,9 @@ am__objects_3 = bitmap_allocator.lo pool
608 locale-inst.lo locale-misc-inst.lo misc-inst.lo \
609 ostream-inst.lo sstream-inst.lo streambuf-inst.lo streambuf.lo \
610 string-inst.lo valarray-inst.lo wlocale-inst.lo \
611 - wstring-inst.lo $(am__objects_1) $(am__objects_2)
612 -am_libstdc___la_OBJECTS = $(am__objects_3)
613 + wstring-inst.lo $(am__objects_1) $(am__objects_2) \
615 +am_libstdc___la_OBJECTS = $(am__objects_4)
616 libstdc___la_OBJECTS = $(am_libstdc___la_OBJECTS)
617 DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
619 @@ -84,7 +101,7 @@ CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_IN
620 $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
622 SOURCES = $(libstdc___la_SOURCES)
623 -DIST_SOURCES = $(libstdc___la_SOURCES)
624 +DIST_SOURCES = $(am__libstdc___la_SOURCES_DIST)
627 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
628 @@ -152,6 +169,8 @@ GLIBCXX_C_HEADERS_C_TRUE = @GLIBCXX_C_HE
629 GLIBCXX_HOSTED_FALSE = @GLIBCXX_HOSTED_FALSE@
630 GLIBCXX_HOSTED_TRUE = @GLIBCXX_HOSTED_TRUE@
631 GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@
632 +GLIBCXX_LDBL_COMPAT_FALSE = @GLIBCXX_LDBL_COMPAT_FALSE@
633 +GLIBCXX_LDBL_COMPAT_TRUE = @GLIBCXX_LDBL_COMPAT_TRUE@
634 INSTALL_DATA = @INSTALL_DATA@
635 INSTALL_PROGRAM = @INSTALL_PROGRAM@
636 INSTALL_SCRIPT = @INSTALL_SCRIPT@
637 @@ -302,6 +321,8 @@ host_sources_extra = \
641 +@GLIBCXX_LDBL_COMPAT_FALSE@ldbl_compat_sources =
642 +@GLIBCXX_LDBL_COMPAT_TRUE@ldbl_compat_sources = compatibility-ldbl.cc
644 # Sources present in the src directory.
646 @@ -350,7 +371,8 @@ sources = \
650 - ${host_sources_extra}
651 + ${host_sources_extra} \
652 + ${ldbl_compat_sources}
654 libstdc___la_SOURCES = $(sources)
655 libstdc___la_LIBADD = \
656 @@ -677,10 +699,15 @@ libstdc++-symbol.ver: ${glibcxx_srcdir}
657 $(port_specific_symbol_files)
658 cp ${glibcxx_srcdir}/$(SYMVER_MAP) ./libstdc++-symbol.ver
659 if test "x$(port_specific_symbol_files)" != x; then \
660 - sed -n '1,/DO NOT DELETE/p' $@ > tmp.top; \
661 - sed -n '/DO NOT DELETE/,$$p' $@ > tmp.bottom; \
662 - cat tmp.top $(port_specific_symbol_files) tmp.bottom > $@; \
663 - rm tmp.top tmp.bottom; \
664 + if grep '^# Appended to version file.' \
665 + $(port_specific_symbol_files) /dev/null > /dev/null 2>&1; then \
666 + cat $(port_specific_symbol_files) >> $@; \
668 + sed -n '1,/DO NOT DELETE/p' $@ > tmp.top; \
669 + sed -n '/DO NOT DELETE/,$$p' $@ > tmp.bottom; \
670 + cat tmp.top $(port_specific_symbol_files) tmp.bottom > $@; \
671 + rm tmp.top tmp.bottom; \
674 @ENABLE_SYMVERS_DARWIN_EXPORT_TRUE@@ENABLE_SYMVERS_GNU_FALSE@libstdc++-symbol.explist : libstdc++-symbol.ver \
675 @ENABLE_SYMVERS_DARWIN_EXPORT_TRUE@@ENABLE_SYMVERS_GNU_FALSE@ ${glibcxx_srcdir}/scripts/make_exports.pl \
676 @@ -733,6 +760,13 @@ concept-inst.lo: concept-inst.cc
677 concept-inst.o: concept-inst.cc
678 $(CXXCOMPILE) -D_GLIBCXX_CONCEPT_CHECKS -fimplicit-templates -c $<
680 +# Use special rules for compatibility-ldbl.cc compilation, as we need to
681 +# pass -mlong-double-64.
682 +@GLIBCXX_LDBL_COMPAT_TRUE@compatibility-ldbl.lo: compatibility-ldbl.cc
683 +@GLIBCXX_LDBL_COMPAT_TRUE@ $(LTCXXCOMPILE) -mlong-double-64 -c $<
684 +@GLIBCXX_LDBL_COMPAT_TRUE@compatibility-ldbl.o: compatibility-ldbl.cc
685 +@GLIBCXX_LDBL_COMPAT_TRUE@ $(CXXCOMPILE) -mlong-double-64 -c $<
687 # Added bits to build debug library.
688 @GLIBCXX_BUILD_DEBUG_TRUE@all-local: build_debug
689 @GLIBCXX_BUILD_DEBUG_TRUE@install-data-local: install_debug
690 --- libstdc++-v3/src/locale-misc-inst.cc.jj 2006-02-02 16:38:25.000000000 +0100
691 +++ libstdc++-v3/src/locale-misc-inst.cc 2006-02-10 14:57:35.000000000 +0100
693 // Locale support -*- C++ -*-
695 -// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
696 +// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2006
697 +// Free Software Foundation, Inc.
699 // This file is part of the GNU ISO C++ Library. This library is free
700 // software; you can redistribute it and/or modify it under the
703 +// XXX GLIBCXX_ABI Deprecated
704 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT
706 +#define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \
707 + extern "C" void ldbl (void) __attribute__ ((alias (#dbl), weak))
709 +# if _GLIBCXX_C_LOCALE_GNU
710 +_GLIBCXX_LDBL_COMPAT(_ZSt16__convert_from_vIdEiPciPKcT_RKP15__locale_structi,
711 + _ZSt16__convert_from_vIeEiPciPKcT_RKP15__locale_structi);
713 +_GLIBCXX_LDBL_COMPAT(_ZSt16__convert_from_vIdEiPciPKcT_RKPii,
714 + _ZSt16__convert_from_vIeEiPciPKcT_RKPii);
717 +#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
718 --- libstdc++-v3/src/istream-inst.cc.jj 2006-02-02 16:38:25.000000000 +0100
719 +++ libstdc++-v3/src/istream-inst.cc 2006-02-10 14:53:36.000000000 +0100
721 // Explicit instantiation file.
723 -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
724 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2006
725 // Free Software Foundation, Inc.
727 // This file is part of the GNU ISO C++ Library. This library is free
728 @@ -68,3 +68,19 @@ namespace std
729 template wistream& operator>>(wistream&, _Setw);
733 +// XXX GLIBCXX_ABI Deprecated
734 +#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
736 +#define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \
737 + extern "C" void ldbl (void) __attribute__ ((alias (#dbl), weak))
738 +_GLIBCXX_LDBL_COMPAT (_ZNSirsERd, _ZNSirsERe);
739 +_GLIBCXX_LDBL_COMPAT (_ZNSt13basic_istreamIwSt11char_traitsIwEErsERd,
740 + _ZNSt13basic_istreamIwSt11char_traitsIwEErsERe);
741 +// These 2 are in GCC 4.2+ only so far
742 +// _GLIBCXX_LDBL_COMPAT (_ZNSi10_M_extractIdEERSiRT_,
743 +// _ZNSi10_M_extractIeEERSiRT_);
744 +// _GLIBCXX_LDBL_COMPAT (_ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIdEERS2_RT_,
745 +// _ZNSt13basic_istreamIwSt11char_traitsIwEE10_M_extractIeEERS2_RT_);
747 +#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
748 --- libstdc++-v3/src/complex_io.cc.jj 2006-02-02 16:38:25.000000000 +0100
749 +++ libstdc++-v3/src/complex_io.cc 2006-02-10 14:53:36.000000000 +0100
751 // The template and inlines for the -*- C++ -*- complex number classes.
753 -// Copyright (C) 2000, 2001 Free Software Foundation, Inc.
754 +// Copyright (C) 2000, 2001, 2006 Free Software Foundation, Inc.
756 // This file is part of the GNU ISO C++ Library. This library is free
757 // software; you can redistribute it and/or modify it under the
758 @@ -91,3 +91,20 @@ namespace std
759 const complex<long double>&);
760 #endif //_GLIBCXX_USE_WCHAR_T
763 +// XXX GLIBCXX_ABI Deprecated
764 +#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
766 +#define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \
767 + extern "C" void ldbl (void) __attribute__ ((alias (#dbl), weak))
769 +_GLIBCXX_LDBL_COMPAT (_ZStlsIdcSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E,
770 + _ZStlsIecSt11char_traitsIcEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E);
771 +_GLIBCXX_LDBL_COMPAT (_ZStlsIdwSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E,
772 + _ZStlsIewSt11char_traitsIwEERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E);
773 +_GLIBCXX_LDBL_COMPAT (_ZStrsIdcSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E,
774 + _ZStrsIecSt11char_traitsIcEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E);
775 +_GLIBCXX_LDBL_COMPAT (_ZStrsIdwSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E,
776 + _ZStrsIewSt11char_traitsIwEERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E);
778 +#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
779 --- libstdc++-v3/src/wlocale-inst.cc.jj 2006-02-02 16:38:25.000000000 +0100
780 +++ libstdc++-v3/src/wlocale-inst.cc 2006-02-10 14:53:36.000000000 +0100
782 // Locale support -*- C++ -*-
784 -// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
785 +// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2006
786 +// Free Software Foundation, Inc.
788 // This file is part of the GNU ISO C++ Library. This library is free
789 // software; you can redistribute it and/or modify it under the
791 #ifdef _GLIBCXX_USE_WCHAR_T
793 #include "locale-inst.cc"
795 +// XXX GLIBCXX_ABI Deprecated
796 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT
798 +#define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \
799 + extern "C" void ldbl (void) __attribute__ ((alias (#dbl), weak))
801 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIjEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
802 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIjEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
803 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIlEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
804 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIlEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
805 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intImEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
806 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intImEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
807 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intItEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
808 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intItEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
809 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIxEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
810 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIxEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
811 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIyEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_,
812 + _ZNKSt7num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIyEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRT_);
813 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIlEES4_S4_RSt8ios_basewT_,
814 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIlEES3_S3_RSt8ios_basewT_);
815 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intImEES4_S4_RSt8ios_basewT_,
816 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intImEES3_S3_RSt8ios_basewT_);
817 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIxEES4_S4_RSt8ios_basewT_,
818 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIxEES3_S3_RSt8ios_basewT_);
819 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIyEES4_S4_RSt8ios_basewT_,
820 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE13_M_insert_intIyEES3_S3_RSt8ios_basewT_);
821 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1287num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE15_M_insert_floatIdEES4_S4_RSt8ios_basewcT_,
822 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE15_M_insert_floatIdEES3_S3_RSt8ios_basewcT_);
823 +_GLIBCXX_LDBL_COMPAT(_ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE15_M_insert_floatIdEES3_S3_RSt8ios_basewcT_,
824 + _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE15_M_insert_floatIeEES3_S3_RSt8ios_basewcT_);
825 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb0EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRSs,
826 + _ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb0EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs);
827 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb1EEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRSs,
828 + _ZNKSt9money_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE10_M_extractILb1EEES3_S3_S3_RSt8ios_baseRSt12_Ios_IostateRSs);
829 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb0EEES4_S4_RSt8ios_basewRKSbIwS3_SaIwEE,
830 + _ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb0EEES3_S3_RSt8ios_basewRKSbIwS2_SaIwEE);
831 +_GLIBCXX_LDBL_COMPAT(_ZNKSt17__gnu_cxx_ldbl1289money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb1EEES4_S4_RSt8ios_basewRKSbIwS3_SaIwEE,
832 + _ZNKSt9money_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE9_M_insertILb1EEES3_S3_RSt8ios_basewRKSbIwS2_SaIwEE);
834 +#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
836 --- libstdc++-v3/config/linker-map.gnu.jj 2006-02-02 16:38:25.000000000 +0100
837 +++ libstdc++-v3/config/linker-map.gnu 2006-02-10 14:53:36.000000000 +0100
839 ## Linker script for GNU ld 2.13.91+ only.
841 -## Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
842 +## Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
844 ## This file is part of the libstdc++ version 3 distribution.
846 @@ -44,7 +44,10 @@ GLIBCXX_3.4 {
849 # std::basic_ofstream;
850 - std::basic_o[g-z]*;
851 +# std::basic_o[g-z]*;
852 + std::basic_o[g-r]*;
853 + std::basic_ostr[a-d]*;
854 + std::basic_ostr[f-z]*;
856 std::basic_streambuf*;
858 @@ -88,7 +91,14 @@ GLIBCXX_3.4 {
859 std::locale::_[J-Ra-z]*;
860 std::locale::_S_normalize_category*;
861 std::locale::_[T-Za-z]*;
869 + std::out_of_range*;
870 + std::overflow_error*;
871 std::set_new_handler*;
873 std::set_unexpected*;
874 @@ -256,7 +266,7 @@ GLIBCXX_3.4 {
877 _ZNSi6ignoreE[il][il];
881 # std::basic_istream<wchar_t>
882 _ZNSt13basic_istreamIwSt11char_traitsIwEEC*;
883 @@ -265,7 +275,7 @@ GLIBCXX_3.4 {
884 _ZNSt13basic_istreamIwSt11char_traitsIwEE[0-9][a-h]*;
885 _ZNSt13basic_istreamIwSt11char_traitsIwEE[0-9][j-z]*;
886 _ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreE[il][ijlm];
887 - _ZNSt13basic_istreamIwSt11char_traitsIwEErsE*;
888 + _ZNSt13basic_istreamIwSt11char_traitsIwEErsE*[^g];
890 # std::istream operators and inserters
891 _ZSt7getlineI[cw]St11char_traitsI[cw]ESaI[cw]EERSt13basic_istream*;
892 @@ -277,6 +287,37 @@ GLIBCXX_3.4 {
893 _ZStrsIe[cw]St11char_traitsI[cw]EERSt13basic_istream*;
894 _ZStrsIf[cw]St11char_traitsI[cw]EERSt13basic_istream*;
896 + # std::basic_ostream<char>
899 + _ZNKSo6sentrycvbEv;
904 + # std::basic_ostream<wchar_t>
905 + _ZNSt13basic_ostreamIwSt11char_traitsIwEEC*;
906 + _ZNSt13basic_ostreamIwSt11char_traitsIwEED*;
907 + _ZNKSt13basic_ostreamIwSt11char_traitsIwEE[0-9][a-z]*;
908 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE3putEw;
909 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE5flushEv;
910 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE5seekpE*;
911 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE5tellpEv;
912 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE5writeEPKw*;
913 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE6sentry*;
914 + _ZNSt13basic_ostreamIwSt11char_traitsIwEE8_M_write*;
915 + _ZNSt13basic_ostreamIwSt11char_traitsIwEElsE*[^g];
917 + # std::ostream operators and inserters
918 + _ZSt4end[ls]I[cw]St11char_traitsI[cw]EERSt13basic_ostream*;
919 + _ZSt5flushI[cw]St11char_traitsI[cw]EERSt13basic_ostream*;
920 + _ZStlsI[cw]St11char_traitsI[cw]EERSt13basic_ostream*;
921 + _ZStlsI[cw]St11char_traitsI[cw]ESaI[cw]EERSt13basic_ostream*;
922 + _ZStlsISt11char_traitsI[cw]EERSt13basic_ostream*;
923 + _ZStlsId[cw]St11char_traitsI[cw]EERSt13basic_ostream*;
924 + _ZStlsIe[cw]St11char_traitsI[cw]EERSt13basic_ostream*;
925 + _ZStlsIf[cw]St11char_traitsI[cw]EERSt13basic_ostream*;
927 # std::locale destructors
930 @@ -292,14 +333,23 @@ GLIBCXX_3.4 {
931 _ZNSt8ios_base4InitD*;
933 # bool std::has_facet
938 _ZNKSt7num_getI[cw]St19istreambuf_iteratorI[cw]St11char_traitsI[cw]EEE*;
941 + _ZNKSt7num_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE*;
944 _ZNKSt9money_getI[cw]St19istreambuf_iteratorI[cw]St11char_traitsI[cw]EEE*;
947 + _ZNKSt9money_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE*;
949 + # std::numeric_limits
950 + _ZNSt14numeric_limitsI[^g]*;
953 _ZSt18_Rb_tree_decrementPKSt18_Rb_tree_node_base;
954 _ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base;
955 @@ -327,7 +377,7 @@ GLIBCXX_3.4 {
956 _ZNSt12__basic_fileIcED*;
958 # std::__convert_to_v
959 - _ZSt14__convert_to_v*;
960 + _ZSt14__convert_to_vI[^g]*;
962 # __gnu_cxx::stdio_sync_filebuf
963 _ZTVN9__gnu_cxx18stdio_sync_filebufI[cw]St11char_traitsI[cw]EEE;
964 @@ -399,7 +449,8 @@ GLIBCXX_3.4 {
965 _ZTSN9__gnu_cxx13stdio_filebufI[cw]St11char_traitsI[cw]EEE;
967 # function-scope static objects requires a guard variable.
972 # virtual function thunks
974 @@ -659,9 +710,9 @@ CXXABI_1.3 {
975 _ZTVN10__cxxabiv121__vmi_class_type_infoE;
977 # typeinfo structure (and some names)
984 _ZTIN10__cxxabiv117__array_type_infoE;
985 _ZTIN10__cxxabiv117__class_type_infoE;
986 _ZTIN10__cxxabiv116__enum_type_infoE;
987 @@ -674,9 +725,9 @@ CXXABI_1.3 {
988 _ZTIN10__cxxabiv121__vmi_class_type_infoE;
997 _ZTSN10__cxxabiv117__array_type_infoE;
998 _ZTSN10__cxxabiv117__class_type_infoE;
999 _ZTSN10__cxxabiv116__enum_type_infoE;
1000 --- libstdc++-v3/config/locale/gnu/c_locale.cc.jj 2006-02-02 16:38:25.000000000 +0100
1001 +++ libstdc++-v3/config/locale/gnu/c_locale.cc 2006-02-10 14:53:36.000000000 +0100
1003 // Wrapper for underlying C-language localization -*- C++ -*-
1005 -// Copyright (C) 2001, 2002, 2003, 2004, 2005
1006 +// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
1007 // Free Software Foundation, Inc.
1009 // This file is part of the GNU ISO C++ Library. This library is free
1010 @@ -132,3 +132,10 @@ namespace std
1012 const char* const* const locale::_S_categories = __gnu_cxx::category_names;
1015 +// XXX GLIBCXX_ABI Deprecated
1016 +#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
1017 +#define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \
1018 + extern "C" void ldbl (void) __attribute__ ((alias (#dbl)))
1019 +_GLIBCXX_LDBL_COMPAT(_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct, _ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKP15__locale_struct);
1020 +#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
1021 --- libstdc++-v3/config/locale/generic/c_locale.cc.jj 2006-02-02 16:38:26.000000000 +0100
1022 +++ libstdc++-v3/config/locale/generic/c_locale.cc 2006-02-10 14:57:36.000000000 +0100
1024 // Wrapper for underlying C-language localization -*- C++ -*-
1026 -// Copyright (C) 2001, 2002, 2003, 2004, 2005
1027 +// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
1028 // Free Software Foundation, Inc.
1030 // This file is part of the GNU ISO C++ Library. This library is free
1031 @@ -168,3 +168,10 @@ namespace std
1033 const char* const* const locale::_S_categories = __gnu_cxx::category_names;
1036 +// XXX GLIBCXX_ABI Deprecated
1037 +#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
1038 +#define _GLIBCXX_LDBL_COMPAT(dbl, ldbl) \
1039 + extern "C" void ldbl (void) __attribute__ ((alias (#dbl)))
1040 +_GLIBCXX_LDBL_COMPAT(_ZSt14__convert_to_vIdEvPKcRT_RSt12_Ios_IostateRKPi, _ZSt14__convert_to_vIeEvPKcRT_RSt12_Ios_IostateRKPi);
1041 +#endif // _GLIBCXX_LONG_DOUBLE_COMPAT
1042 --- libstdc++-v3/config/os/gnu-linux/ldbl-extra.ver.jj 2006-02-10 14:53:36.000000000 +0100
1043 +++ libstdc++-v3/config/os/gnu-linux/ldbl-extra.ver 2006-02-10 14:57:37.000000000 +0100
1045 +# Appended to version file.
1048 + _ZNSt14numeric_limitsIg*;
1051 + _ZNSt13basic_istreamIwSt11char_traitsIwEErsERg;
1052 + _ZNSt13basic_ostreamIwSt11char_traitsIwEElsEg;
1053 + _ZSt14__convert_to_vIgEvPKcRT_RSt12_Ios_IostateRKP*;
1054 + _ZStlsIg[cw]St11char_traitsI[cw]EERSt13basic_ostreamIT0_T1_ES6_RKSt7complexIT_E;
1055 + _ZStrsIg[cw]St11char_traitsI[cw]EERSt13basic_istreamIT0_T1_ES6_RSt7complexIT_E;
1056 + *__gnu_cxx_ldbl128*;
1064 --- libstdc++-v3/config.h.in.jj 2006-02-02 16:38:36.000000000 +0100
1065 +++ libstdc++-v3/config.h.in 2006-02-10 14:53:36.000000000 +0100
1067 /* Define to 1 if a full hosted library is built, or 0 if freestanding. */
1068 #undef _GLIBCXX_HOSTED
1070 +/* Define if compatibility should be provided for -mlong-double-64. */
1071 +#undef _GLIBCXX_LONG_DOUBLE_COMPAT
1073 /* Define if ptrdiff_t is int. */
1074 #undef _GLIBCXX_PTRDIFF_T_IS_INT
1076 --- libstdc++-v3/include/Makefile.am.jj 2006-02-02 16:38:32.000000000 +0100
1077 +++ libstdc++-v3/include/Makefile.am 2006-02-10 15:12:14.000000000 +0100
1078 @@ -825,13 +825,18 @@ ${host_builddir}/c++config.h: ${top_buil
1079 ${glibcxx_srcdir}/include/bits/c++config \
1080 stamp-${host_alias} \
1081 ${toplevel_srcdir}/gcc/DATESTAMP
1082 - @cat ${glibcxx_srcdir}/include/bits/c++config > $@ ;\
1083 + @ldbl_compat='' ;\
1084 + grep "^[ ]*#[ ]*define[ ][ ]*_GLIBCXX_LONG_DOUBLE_COMPAT[ ][ ]*1[ ]*$$" \
1085 + ${CONFIG_HEADER} > /dev/null 2>&1 \
1086 + && ldbl_compat='s,^#undef _GLIBCXX_LONG_DOUBLE_COMPAT$$,#define _GLIBCXX_LONG_DOUBLE_COMPAT 1,' ;\
1087 + sed -e "$$ldbl_compat" ${glibcxx_srcdir}/include/bits/c++config > $@ ;\
1088 sed -e 's/^/#define __GLIBCXX__ /' \
1089 - < ${toplevel_srcdir}/gcc/DATESTAMP >> $@ ;\
1090 + < ${toplevel_srcdir}/gcc/DATESTAMP >> $@ ;\
1091 sed -e 's/HAVE_/_GLIBCXX_HAVE_/g' \
1092 -e 's/PACKAGE/_GLIBCXX_PACKAGE/g' \
1093 -e 's/VERSION/_GLIBCXX_VERSION/g' \
1094 -e 's/WORDS_/_GLIBCXX_WORDS_/g' \
1095 + -e '/[ ]_GLIBCXX_LONG_DOUBLE_COMPAT[ ]/d' \
1096 < ${CONFIG_HEADER} >> $@ ;\
1097 echo "#endif // _CXXCONFIG_" >>$@
1099 --- libstdc++-v3/include/bits/c++config.jj 2006-02-02 16:38:32.000000000 +0100
1100 +++ libstdc++-v3/include/bits/c++config 2006-02-10 15:17:28.000000000 +0100
1102 // Predefined symbols and macros -*- C++ -*-
1104 -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
1105 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
1106 // Free Software Foundation, Inc.
1108 // This file is part of the GNU ISO C++ Library. This library is free
1109 @@ -65,6 +65,26 @@ namespace std
1110 # define _GLIBCXX_STD std
1113 +/* Define if compatibility should be provided for -mlong-double-64. */
1114 +#undef _GLIBCXX_LONG_DOUBLE_COMPAT
1116 +// XXX GLIBCXX_ABI Deprecated
1117 +// Namespace associations for long double 128 mode.
1118 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
1119 +# define _GLIBCXX_LDBL_NAMESPACE __gnu_cxx_ldbl128::
1120 +# define _GLIBCXX_BEGIN_LDBL_NAMESPACE namespace __gnu_cxx_ldbl128 {
1121 +# define _GLIBCXX_END_LDBL_NAMESPACE }
1124 + namespace __gnu_cxx_ldbl128 { }
1125 + using namespace __gnu_cxx_ldbl128 __attribute__((__strong__));
1128 +# define _GLIBCXX_LDBL_NAMESPACE
1129 +# define _GLIBCXX_BEGIN_LDBL_NAMESPACE
1130 +# define _GLIBCXX_END_LDBL_NAMESPACE
1133 // Allow use of "export template." This is currently not a feature
1134 // that g++ supports.
1135 // #define _GLIBCXX_EXPORT_TEMPLATE 1
1136 --- libstdc++-v3/include/bits/localefwd.h.jj 2006-02-02 16:38:32.000000000 +0100
1137 +++ libstdc++-v3/include/bits/localefwd.h 2006-02-10 15:17:54.000000000 +0100
1138 @@ -129,10 +129,12 @@ namespace std
1139 class codecvt_byname;
1141 // 22.2.2 and 22.2.3 numeric
1142 +_GLIBCXX_BEGIN_LDBL_NAMESPACE
1143 template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
1145 template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
1147 +_GLIBCXX_END_LDBL_NAMESPACE
1148 template<typename _CharT> class numpunct;
1149 template<typename _CharT> class numpunct_byname;
1151 @@ -155,10 +157,12 @@ namespace std
1155 +_GLIBCXX_BEGIN_LDBL_NAMESPACE
1156 template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> >
1158 template<typename _CharT, typename _OutIter = ostreambuf_iterator<_CharT> >
1160 +_GLIBCXX_END_LDBL_NAMESPACE
1161 template<typename _CharT, bool _Intl = false>
1163 template<typename _CharT, bool _Intl = false>
1164 --- libstdc++-v3/include/bits/locale_facets.h.jj 2006-02-02 16:38:32.000000000 +0100
1165 +++ libstdc++-v3/include/bits/locale_facets.h 2006-02-10 14:53:36.000000000 +0100
1167 // Locale support -*- C++ -*-
1169 -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
1170 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
1171 // Free Software Foundation, Inc.
1173 // This file is part of the GNU ISO C++ Library. This library is free
1174 @@ -1910,6 +1910,7 @@ namespace std
1175 ~numpunct_byname() { }
1178 +_GLIBCXX_BEGIN_LDBL_NAMESPACE
1180 * @brief Facet for parsing number strings.
1182 @@ -2176,13 +2177,27 @@ namespace std
1183 do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
1186 + // XXX GLIBCXX_ABI Deprecated
1187 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
1189 + __do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
1193 do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
1194 long double&) const;
1198 do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
1201 + // XXX GLIBCXX_ABI Deprecated
1202 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
1204 + do_get(iter_type, iter_type, ios_base&, ios_base::iostate& __err,
1205 + long double&) const;
1210 @@ -2438,17 +2453,30 @@ namespace std
1212 do_put(iter_type, ios_base&, char_type __fill, double __v) const;
1214 + // XXX GLIBCXX_ABI Deprecated
1215 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
1217 + __do_put(iter_type, ios_base&, char_type __fill, double __v) const;
1220 do_put(iter_type, ios_base&, char_type __fill, long double __v) const;
1224 do_put(iter_type, ios_base&, char_type __fill, const void* __v) const;
1226 + // XXX GLIBCXX_ABI Deprecated
1227 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
1229 + do_put(iter_type, ios_base&, char_type __fill, long double __v) const;
1234 template <typename _CharT, typename _OutIter>
1235 locale::id num_put<_CharT, _OutIter>::id;
1237 +_GLIBCXX_END_LDBL_NAMESPACE
1240 * @brief Facet for localized string comparison.
1241 @@ -3953,6 +3981,7 @@ namespace std
1242 template<typename _CharT, bool _Intl>
1243 const bool moneypunct_byname<_CharT, _Intl>::intl;
1245 +_GLIBCXX_BEGIN_LDBL_NAMESPACE
1247 * @brief Facet for parsing monetary amounts.
1249 @@ -4064,9 +4093,16 @@ namespace std
1250 * value. This function is a hook for derived classes to change the
1251 * value returned. @see get() for details.
1253 + // XXX GLIBCXX_ABI Deprecated
1254 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
1256 + __do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io,
1257 + ios_base::iostate& __err, double& __units) const;
1260 do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io,
1261 ios_base::iostate& __err, long double& __units) const;
1265 * @brief Read and parse a monetary value.
1266 @@ -4079,6 +4115,13 @@ namespace std
1267 do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io,
1268 ios_base::iostate& __err, string_type& __digits) const;
1270 + // XXX GLIBCXX_ABI Deprecated
1271 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
1273 + do_get(iter_type __s, iter_type __end, bool __intl, ios_base& __io,
1274 + ios_base::iostate& __err, long double& __units) const;
1277 template<bool _Intl>
1279 _M_extract(iter_type __s, iter_type __end, ios_base& __io,
1280 @@ -4191,9 +4234,16 @@ namespace std
1281 * @param units Place to store result of parsing.
1282 * @return Iterator after writing.
1284 + // XXX GLIBCXX_ABI Deprecated
1285 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
1287 + __do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill,
1288 + double __units) const;
1291 do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill,
1292 long double __units) const;
1296 * @brief Format and output a monetary value.
1297 @@ -4217,6 +4267,13 @@ namespace std
1298 do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill,
1299 const string_type& __digits) const;
1301 + // XXX GLIBCXX_ABI Deprecated
1302 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
1304 + do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill,
1305 + long double __units) const;
1308 template<bool _Intl>
1310 _M_insert(iter_type __s, ios_base& __io, char_type __fill,
1311 @@ -4226,6 +4283,8 @@ namespace std
1312 template<typename _CharT, typename _OutIter>
1313 locale::id money_put<_CharT, _OutIter>::id;
1315 +_GLIBCXX_END_LDBL_NAMESPACE
1318 * @brief Messages facet base class providing catalog typedef.
1320 --- libstdc++-v3/include/bits/locale_facets.tcc.jj 2006-02-02 16:38:32.000000000 +0100
1321 +++ libstdc++-v3/include/bits/locale_facets.tcc 2006-02-10 14:53:36.000000000 +0100
1323 // Locale support -*- C++ -*-
1325 -// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
1326 +// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
1327 // Free Software Foundation, Inc.
1329 // This file is part of the GNU ISO C++ Library. This library is free
1330 @@ -272,6 +272,8 @@ namespace std
1331 __verify_grouping(const char* __grouping, size_t __grouping_size,
1332 const string& __grouping_tmp);
1334 +_GLIBCXX_BEGIN_LDBL_NAMESPACE
1336 template<typename _CharT, typename _InIter>
1338 num_get<_CharT, _InIter>::
1339 @@ -446,6 +448,8 @@ namespace std
1343 +_GLIBCXX_END_LDBL_NAMESPACE
1345 template<typename _ValueT>
1346 struct __to_unsigned_type
1347 { typedef _ValueT __type; };
1348 @@ -460,6 +464,8 @@ namespace std
1349 { typedef unsigned long long __type; };
1352 +_GLIBCXX_BEGIN_LDBL_NAMESPACE
1354 template<typename _CharT, typename _InIter>
1355 template<typename _ValueT>
1357 @@ -772,6 +778,21 @@ namespace std
1361 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
1362 + template<typename _CharT, typename _InIter>
1364 + num_get<_CharT, _InIter>::
1365 + __do_get(iter_type __beg, iter_type __end, ios_base& __io,
1366 + ios_base::iostate& __err, double& __v) const
1369 + __xtrc.reserve(32);
1370 + __beg = _M_extract_float(__beg, __end, __io, __err, __xtrc);
1371 + std::__convert_to_v(__xtrc.c_str(), __v, __err, _S_get_c_locale());
1376 template<typename _CharT, typename _InIter>
1378 num_get<_CharT, _InIter>::
1379 @@ -822,6 +843,8 @@ namespace std
1380 __len = static_cast<int>(__w);
1383 +_GLIBCXX_END_LDBL_NAMESPACE
1385 // Forwarding functions to peel signed from unsigned integer types and
1386 // either cast or compute the absolute value for the former, depending
1388 @@ -911,6 +934,8 @@ namespace std
1389 return __bufend - __buf;
1392 +_GLIBCXX_BEGIN_LDBL_NAMESPACE
1394 template<typename _CharT, typename _OutIter>
1396 num_put<_CharT, _OutIter>::
1397 @@ -1233,6 +1258,14 @@ namespace std
1398 do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) const
1399 { return _M_insert_float(__s, __io, __fill, char(), __v); }
1401 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
1402 + template<typename _CharT, typename _OutIter>
1404 + num_put<_CharT, _OutIter>::
1405 + __do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) const
1406 + { return _M_insert_float(__s, __io, __fill, char(), __v); }
1409 template<typename _CharT, typename _OutIter>
1411 num_put<_CharT, _OutIter>::
1412 @@ -1474,6 +1507,23 @@ namespace std
1416 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
1417 + template<typename _CharT, typename _InIter>
1419 + money_get<_CharT, _InIter>::
1420 + __do_get(iter_type __beg, iter_type __end, bool __intl, ios_base& __io,
1421 + ios_base::iostate& __err, double& __units) const
1425 + __beg = _M_extract<true>(__beg, __end, __io, __err, __str);
1427 + __beg = _M_extract<false>(__beg, __end, __io, __err, __str);
1428 + std::__convert_to_v(__str.c_str(), __units, __err, _S_get_c_locale());
1433 template<typename _CharT, typename _InIter>
1435 money_get<_CharT, _InIter>::
1436 @@ -1678,7 +1728,18 @@ namespace std
1442 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__
1443 + template<typename _CharT, typename _OutIter>
1445 + money_put<_CharT, _OutIter>::
1446 + __do_put(iter_type __s, bool __intl, ios_base& __io, char_type __fill,
1447 + double __units) const
1449 + return this->do_put(__s, __intl, __io, __fill, (long double) __units);
1453 template<typename _CharT, typename _OutIter>
1455 money_put<_CharT, _OutIter>::
1456 @@ -1726,6 +1787,7 @@ namespace std
1457 { return __intl ? _M_insert<true>(__s, __io, __fill, __digits)
1458 : _M_insert<false>(__s, __io, __fill, __digits); }
1460 +_GLIBCXX_END_LDBL_NAMESPACE
1462 // NB: Not especially useful. Without an ios_base object or some
1463 // kind of locale reference, we are left clawing at the air where
1464 @@ -2511,12 +2573,12 @@ namespace std
1465 extern template class moneypunct<char, true>;
1466 extern template class moneypunct_byname<char, false>;
1467 extern template class moneypunct_byname<char, true>;
1468 - extern template class money_get<char>;
1469 - extern template class money_put<char>;
1470 + extern template class _GLIBCXX_LDBL_NAMESPACE money_get<char>;
1471 + extern template class _GLIBCXX_LDBL_NAMESPACE money_put<char>;
1472 extern template class numpunct<char>;
1473 extern template class numpunct_byname<char>;
1474 - extern template class num_get<char>;
1475 - extern template class num_put<char>;
1476 + extern template class _GLIBCXX_LDBL_NAMESPACE num_get<char>;
1477 + extern template class _GLIBCXX_LDBL_NAMESPACE num_put<char>;
1478 extern template class __timepunct<char>;
1479 extern template class time_put<char>;
1480 extern template class time_put_byname<char>;
1481 @@ -2638,12 +2700,12 @@ namespace std
1482 extern template class moneypunct<wchar_t, true>;
1483 extern template class moneypunct_byname<wchar_t, false>;
1484 extern template class moneypunct_byname<wchar_t, true>;
1485 - extern template class money_get<wchar_t>;
1486 - extern template class money_put<wchar_t>;
1487 + extern template class _GLIBCXX_LDBL_NAMESPACE money_get<wchar_t>;
1488 + extern template class _GLIBCXX_LDBL_NAMESPACE money_put<wchar_t>;
1489 extern template class numpunct<wchar_t>;
1490 extern template class numpunct_byname<wchar_t>;
1491 - extern template class num_get<wchar_t>;
1492 - extern template class num_put<wchar_t>;
1493 + extern template class _GLIBCXX_LDBL_NAMESPACE num_get<wchar_t>;
1494 + extern template class _GLIBCXX_LDBL_NAMESPACE num_put<wchar_t>;
1495 extern template class __timepunct<wchar_t>;
1496 extern template class time_put<wchar_t>;
1497 extern template class time_put_byname<wchar_t>;
1498 --- libstdc++-v3/include/Makefile.in.jj 2006-02-02 16:38:32.000000000 +0100
1499 +++ libstdc++-v3/include/Makefile.in 2006-02-10 15:13:22.000000000 +0100
1500 @@ -1203,13 +1203,18 @@ ${host_builddir}/c++config.h: ${top_buil
1501 ${glibcxx_srcdir}/include/bits/c++config \
1502 stamp-${host_alias} \
1503 ${toplevel_srcdir}/gcc/DATESTAMP
1504 - @cat ${glibcxx_srcdir}/include/bits/c++config > $@ ;\
1505 + @ldbl_compat='' ;\
1506 + grep "^[ ]*#[ ]*define[ ][ ]*_GLIBCXX_LONG_DOUBLE_COMPAT[ ][ ]*1[ ]*$$" \
1507 + ${CONFIG_HEADER} > /dev/null 2>&1 \
1508 + && ldbl_compat='s,^#undef _GLIBCXX_LONG_DOUBLE_COMPAT$$,#define _GLIBCXX_LONG_DOUBLE_COMPAT 1,' ;\
1509 + sed -e "$$ldbl_compat" ${glibcxx_srcdir}/include/bits/c++config > $@ ;\
1510 sed -e 's/^/#define __GLIBCXX__ /' \
1511 - < ${toplevel_srcdir}/gcc/DATESTAMP >> $@ ;\
1512 + < ${toplevel_srcdir}/gcc/DATESTAMP >> $@ ;\
1513 sed -e 's/HAVE_/_GLIBCXX_HAVE_/g' \
1514 -e 's/PACKAGE/_GLIBCXX_PACKAGE/g' \
1515 -e 's/VERSION/_GLIBCXX_VERSION/g' \
1516 -e 's/WORDS_/_GLIBCXX_WORDS_/g' \
1517 + -e '/[ ]_GLIBCXX_LONG_DOUBLE_COMPAT[ ]/d' \
1518 < ${CONFIG_HEADER} >> $@ ;\
1519 echo "#endif // _CXXCONFIG_" >>$@
1521 --- libstdc++-v3/testsuite/testsuite_abi.cc.jj 2006-02-02 16:39:16.000000000 +0100
1522 +++ libstdc++-v3/testsuite/testsuite_abi.cc 2006-02-10 14:57:38.000000000 +0100
1523 @@ -186,9 +186,12 @@
1524 known_versions.push_back("GLIBCXX_3.4.5");
1525 known_versions.push_back("GLIBCXX_3.4.6");
1526 known_versions.push_back("GLIBCXX_3.4.7");
1527 + known_versions.push_back("GLIBCXX_LDBL_3.4");
1528 + known_versions.push_back("GLIBCXX_LDBL_3.4.7");
1529 known_versions.push_back("GLIBCXX_3.4.8");
1530 known_versions.push_back("CXXABI_1.3");
1531 known_versions.push_back("CXXABI_1.3.1");
1532 + known_versions.push_back("CXXABI_LDBL_1.3");
1534 compat_list::iterator begin = known_versions.begin();
1535 compat_list::iterator end = known_versions.end();
1537 // New version labels are ok. The rest are not.
1538 compat_list::iterator it2 = find(begin, end, test.name);
1541 - test.version_status = symbol::compatible;
1543 + test.version_status = symbol::compatible;
1545 test.version_status = symbol::incompatible;
1548 added_names.erase(it);
1551 - missing_names.push_back(what);
1552 + missing_names.push_back(what);
1555 // Check missing names for compatibility.
1556 --- libstdc++-v3/configure.jj 2006-02-02 16:38:28.000000000 +0100
1557 +++ libstdc++-v3/configure 2006-02-10 14:53:36.000000000 +0100
1558 @@ -309,7 +309,7 @@ ac_includes_default="\
1559 # include <unistd.h>
1562 -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'
1563 +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'
1566 # Initialize some variables set by options.
1567 @@ -87881,6 +87881,72 @@ echo "${ECHO_T}$glibcxx_ptrdiff_t_is_i"
1568 echo "$as_me: versioning on shared library symbols is $enable_symvers" >&6;}
1573 + powerpc*-*-*gnu* | \
1574 + sparc*-*-linux* | \
1575 + s390*-*-linux* | \
1577 + cat >conftest.$ac_ext <<_ACEOF
1580 +cat confdefs.h >>conftest.$ac_ext
1581 +cat >>conftest.$ac_ext <<_ACEOF
1582 +/* end confdefs.h. */
1588 +#if !defined __LONG_DOUBLE_128__ || (defined(__sparc__) && defined(__arch64__))
1589 +#error no need for long double compatibility
1596 +rm -f conftest.$ac_objext
1597 +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
1598 + (eval $ac_compile) 2>conftest.er1
1600 + grep -v '^ *+' conftest.er1 >conftest.err
1601 + rm -f conftest.er1
1602 + cat conftest.err >&5
1603 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
1604 + (exit $ac_status); } &&
1605 + { ac_try='test -z "$ac_c_werror_flag"
1606 + || test ! -s conftest.err'
1607 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
1608 + (eval $ac_try) 2>&5
1610 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
1611 + (exit $ac_status); }; } &&
1612 + { ac_try='test -s conftest.$ac_objext'
1613 + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
1614 + (eval $ac_try) 2>&5
1616 + echo "$as_me:$LINENO: \$? = $ac_status" >&5
1617 + (exit $ac_status); }; }; then
1618 + ac_ldbl_compat=yes
1620 + echo "$as_me: failed program was:" >&5
1621 +sed 's/^/| /' conftest.$ac_ext >&5
1625 +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
1626 + if test "$ac_ldbl_compat" = yes; then
1628 +cat >>confdefs.h <<\_ACEOF
1629 +#define _GLIBCXX_LONG_DOUBLE_COMPAT 1
1632 + port_specific_symbol_files="\$(top_srcdir)/config/os/gnu-linux/ldbl-extra.ver"
1637 # This depends on GLIBCXX_ENABLE_SYMVERS and GLIBCXX_IS_NATIVE.
1639 if $GLIBCXX_IS_NATIVE ; then
1640 @@ -88733,6 +88799,17 @@ fi
1644 +if test $ac_ldbl_compat = yes; then
1645 + GLIBCXX_LDBL_COMPAT_TRUE=
1646 + GLIBCXX_LDBL_COMPAT_FALSE='#'
1648 + GLIBCXX_LDBL_COMPAT_TRUE='#'
1649 + GLIBCXX_LDBL_COMPAT_FALSE=
1655 cat >confcache <<\_ACEOF
1656 # This file is a shell script that caches the results of configure
1657 # tests run on this system so they can be shared between configure
1658 @@ -89088,6 +89165,13 @@ echo "$as_me: error: conditional \"ENABL
1659 Usually this means the macro was only invoked conditionally." >&2;}
1660 { (exit 1); exit 1; }; }
1662 +if test -z "${GLIBCXX_LDBL_COMPAT_TRUE}" && test -z "${GLIBCXX_LDBL_COMPAT_FALSE}"; then
1663 + { { echo "$as_me:$LINENO: error: conditional \"GLIBCXX_LDBL_COMPAT\" was never defined.
1664 +Usually this means the macro was only invoked conditionally." >&5
1665 +echo "$as_me: error: conditional \"GLIBCXX_LDBL_COMPAT\" was never defined.
1666 +Usually this means the macro was only invoked conditionally." >&2;}
1667 + { (exit 1); exit 1; }; }
1670 : ${CONFIG_STATUS=./config.status}
1671 ac_clean_files_save=$ac_clean_files
1672 @@ -89758,6 +89842,8 @@ s,@ENABLE_SYMVERS_GNU_TRUE@,$ENABLE_SYMV
1673 s,@ENABLE_SYMVERS_GNU_FALSE@,$ENABLE_SYMVERS_GNU_FALSE,;t t
1674 s,@ENABLE_SYMVERS_DARWIN_EXPORT_TRUE@,$ENABLE_SYMVERS_DARWIN_EXPORT_TRUE,;t t
1675 s,@ENABLE_SYMVERS_DARWIN_EXPORT_FALSE@,$ENABLE_SYMVERS_DARWIN_EXPORT_FALSE,;t t
1676 +s,@GLIBCXX_LDBL_COMPAT_TRUE@,$GLIBCXX_LDBL_COMPAT_TRUE,;t t
1677 +s,@GLIBCXX_LDBL_COMPAT_FALSE@,$GLIBCXX_LDBL_COMPAT_FALSE,;t t
1678 s,@baseline_dir@,$baseline_dir,;t t
1679 s,@ATOMICITY_SRCDIR@,$ATOMICITY_SRCDIR,;t t
1680 s,@ATOMIC_WORD_SRCDIR@,$ATOMIC_WORD_SRCDIR,;t t