summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkan <kan@FreeBSD.org>2003-11-07 02:44:01 +0000
committerkan <kan@FreeBSD.org>2003-11-07 02:44:01 +0000
commita342444c67382961a80b87c516fb6b2d85a15ffc (patch)
tree6e5365a8da80f9003283db9715c2f150cef8eb01
parentb09448931ae541a7a60fd1cf0ebac14b627fba69 (diff)
downloadFreeBSD-src-a342444c67382961a80b87c516fb6b2d85a15ffc.zip
FreeBSD-src-a342444c67382961a80b87c516fb6b2d85a15ffc.tar.gz
Gcc 3.3.3 20031106 C++ support bits.
-rw-r--r--contrib/libstdc++/ChangeLog209
-rw-r--r--contrib/libstdc++/acinclude.m44
-rw-r--r--contrib/libstdc++/aclocal.m44
-rw-r--r--contrib/libstdc++/config/cpu/m68k/atomicity.h73
-rw-r--r--contrib/libstdc++/config/locale/generic/ctype_members.cc32
-rw-r--r--contrib/libstdc++/config/locale/gnu/ctype_members.cc39
-rw-r--r--contrib/libstdc++/config/os/generic/ctype_inline.h16
-rw-r--r--contrib/libstdc++/config/os/hpux/os_defines.h8
-rwxr-xr-xcontrib/libstdc++/configure14
-rw-r--r--contrib/libstdc++/configure.target6
-rw-r--r--contrib/libstdc++/include/Makefile.am2
-rw-r--r--contrib/libstdc++/include/Makefile.in2
-rw-r--r--contrib/libstdc++/include/bits/basic_ios.h3
-rw-r--r--contrib/libstdc++/include/bits/c++config2
-rw-r--r--contrib/libstdc++/include/bits/istream.tcc8
-rw-r--r--contrib/libstdc++/include/bits/locale_facets.tcc6
-rw-r--r--contrib/libstdc++/include/bits/stl_algo.h6
-rw-r--r--contrib/libstdc++/libsupc++/cxxabi.h4
18 files changed, 281 insertions, 157 deletions
diff --git a/contrib/libstdc++/ChangeLog b/contrib/libstdc++/ChangeLog
index 028af16..a9a9a64 100644
--- a/contrib/libstdc++/ChangeLog
+++ b/contrib/libstdc++/ChangeLog
@@ -1,3 +1,88 @@
+2003-10-25 Paolo Carlini <pcarlini@suse.de>
+
+ * include/bits/locale_facets.tcc (money_get::do_get(...,
+ long double&): Properly size the temporary buffer.
+
+2003-10-20 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/10081
+ * include/bits/basic_ios.h (basic_ios::basic_ios): Initialize
+ _M_fctype, _M_fnumput, _M_fnumget.
+
+2003-10-16 Release Manager
+
+ * GCC 3.3.2 Released.
+
+2003-10-07 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/11740
+ * config/locale/gnu/ctype_members.cc (ctype<wchar_t>::do_is):
+ Fix to actually return (M & m) != 0 as per 22.2.1.1.2.
+ * config/locale/generic/ctype_members.cc: Same.
+
+2003-10-02 Harald Boehme <boehme@informatik.hu-berlin.de>
+
+ PR libstdc++/12451
+ * libsupc++/cxxabi.h: Move forward declaration of __class_type_info.
+
+2003-10-01 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * configure.target: Handle Solaris 2.5 micro releases explicitly.
+ Remove wildcards from Solaris 2.6, 7-9: there were no
+ micro releases.
+ Treat Solaris 10 and up like 7-9.
+
+2003-09-30 Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/12296
+ * include/bits/istream.tcc (peek): Set eofbit if sgetc
+ returns eof.
+
+2003-09-30 Nathan Myers <ncm@cantrip.org>
+ Paolo Carlini <pcarlini@unitus.it>
+
+ PR libstdc++/11400
+ * include/bits/stl_algo.h (search_n):
+ Use iterator_traits<>::difference_type for __n.
+
+2003-09-25 Benjamin Kosnik <bkoz@redhat.com>
+
+ PR libstdc++/11065
+ * config/locale/gnu/ctype_members.cc (ctype<wchar_t>::do_is): Fix.
+ * config/locale/generic/ctype_members.cc: Same.
+
+ * config/os/generic/ctype_inline.h: Update.
+
+2003-09-10 Daniel Jacobowitz <drow@mvista.com>
+ Andreas Jaeger <aj@suse.de>
+
+ PR libstdc++/12189
+ * acinclude.m4 (GLIBCPP_CONFIGURE_TESTSUITE): Don't build
+ abi_check if cross compiling.
+ * aclocal.m4: Regenerated.
+ * configure: Regenerated.
+
+2003-09-09 Alan Modra <amodra@bigpond.net.au>
+
+ * configure: Regenerate.
+
+2003-08-25 Zack Weinberg <zack@codesourcery.com>
+
+ * config/os/hpux/os_defines.h: Unconditionally define
+ _GLIBCPP_GTHREAD_USE_WEAK to 0.
+
+2003-08-11 Andreas Jaeger <aj@suse.de>
+
+ * include/Makefile.am (stamp-c_base): Add dependency on stamp-bits
+ to make SMP-safe.
+ * include/Makefile.in: Regenerated.
+
+2003-08-07 Bernardo Innocenti <bernie@develer.com>
+
+ PR libstdc++/11784
+ * libstdc++-v3/config/cpu/m68k/atomicity.h (__exchange_and_add):
+ Replace variants with new BSET-based version.
+
2003-08-04 Release Manager
* GCC 3.3.1 Released.
@@ -8,8 +93,8 @@
2003-07-24 Nathan Myers <ncm-nospam@cantrip.org>
- * testsuite/23_containers/map_operators.cc: Conform to
- container requirement as value must be Assignable.
+ * testsuite/23_containers/map_operators.cc: Conform to
+ container requirement as value must be Assignable.
2003-07-18 Andreas Jaeger <aj@suse.de>
@@ -33,7 +118,7 @@
2003-07-15 Loren J. Rittle <ljrittle@acm.org>
- * testsuite/thread/pthread4.cc: Further tweak to avoid fini race.
+ * testsuite/thread/pthread4.cc: Further tweak to avoid fini race.
2003-07-15 Petur Runolfsson <peturr02@ru.is>
@@ -46,7 +131,7 @@
Change last parameter from int_type to size_t.
2003-07-08 Benjamin Kosnik <bkoz@redhat.com>
- Jerry Quinn <jlquinn@optonline.net>
+ Jerry Quinn <jlquinn@optonline.net>
* include/bits/ios_base.h (ios_base::_M_getloc): Return reference
to the imbued locale.
@@ -83,12 +168,12 @@
2003-07-04 Jerry Quinn <jlquinn@optonline.net>
* include/bits/locale_facets.tcc (__int_to_char): Move common
- case to the top.
+ case to the top.
2003-07-04 Jerry Quinn <jlquinn@optonline.net>
* testsuite/27_io/ostream_inserter_arith.cc (test05, test06):
- Add missing bool test.
+ Add missing bool test.
2003-07-04 H.J. Lu <hongjiu.lu@intel.com>
@@ -193,7 +278,7 @@
2003-06-16 Andreas Jaeger <aj@suse.de>
- * testsuite/abi_check.cc: Create summary report.
+ * testsuite/abi_check.cc: Create summary report.
2003-06-16 Andreas Jaeger <aj@suse.de>
@@ -203,7 +288,7 @@
* configure: Regenerate.
2003-06-16 Benjamin Kosnik <bkoz@redhat.com>
- Andreas Jaeger <aj@suse.de>
+ Andreas Jaeger <aj@suse.de>
* configure.target: Set x86_64 abi_baseline pair correctly.
@@ -372,7 +457,7 @@
* configure: Regenerated.
2003-05-01 Paolo Carlini <pcarlini@unitus.it>
- Nathan Myers <ncm@cantrip.org>
+ Nathan Myers <ncm@cantrip.org>
Backport from mainline fix of 2003-03-28.
PR libstdc++/9533
@@ -439,7 +524,7 @@
(basic_filebuf::close): Add exception specification of throw().
2003-04-25 Ranjit Mathew <rmathew@hotmail.com>
- Phil Edwards <pme@gcc.gnu.org>
+ Phil Edwards <pme@gcc.gnu.org>
* testsuite_flags.in: Guard against the possibility
of having "xgcc" as a part of a folder name in the
@@ -457,8 +542,8 @@
2003-04-23 Benjamin Kosnik <bkoz@redhat.com>
- * config/locale/generic/c_locale.h (__convert_from_v): Use
- attribute unused.
+ * config/locale/generic/c_locale.h (__convert_from_v): Use
+ attribute unused.
2003-04-23 Phil Edwards <pme@gcc.gnu.org>
@@ -474,16 +559,16 @@
Benjamin Kosnik <bkoz at redhat dot com>
* include/bits/basic_ios.h (ios_base::Init::_S_ios_create):
- Declare friend.
+ Declare friend.
(basic_ios::init, basic_ios::_M_cache_locale): Add locale
- cache argument.
+ cache argument.
* include/bits/basic_ios.tcc (basic_ios::init): Pass cache to
- _M_cache_locale.
+ _M_cache_locale.
(basic_ios::_M_cache_locale): Use placement new if cache is
- provided. Track the distinction in iword(0).
+ provided. Track the distinction in iword(0).
* include/bits/locale_facets.tcc
- (__locale_cache::_S_callback): Only delete cache if iword(0)
- is 0, i.e. not static.
+ (__locale_cache::_S_callback): Only delete cache if iword(0)
+ is 0, i.e. not static.
* src/globals.cc: Allocate space for __locale_cache objects.
* src/ios.cc (__gnu_cxx): Declare extern __locale_cache objects
for standard wide and narrow stream objects.
@@ -515,9 +600,9 @@
* include/bits/istream.tcc: Same.
2003-04-17 Andreas Tobler <toa@pop.agri.ch>
- Benjamin Kosnik <bkoz@redhat.com>
+ Benjamin Kosnik <bkoz@redhat.com>
- * config/os/generic/ctype_inline.h: Fix.
+ * config/os/generic/ctype_inline.h: Fix.
2003-04-17 Andreas Tobler <toa@pop.agri.ch>
@@ -525,7 +610,7 @@
solaris includes, not generic.
2003-04-15 Benjamin Kosnik <bkoz@redhat.com>
- Paolo Carlini <pcarlini@unitus.it>
+ Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/9423
* docs/html/27_io/howto.html
@@ -534,12 +619,12 @@
2003-04-15 Andreas Tobler <a.tobler@schweiz.ch>
- * testsuite/thread/pthread1.cc: Enable for darwin test.
- * testsuite/thread/pthread2.cc: Same.
- * testsuite/thread/pthread3.cc: Same.
- * testsuite/thread/pthread4.cc: Same.
- * testsuite/thread/pthread5.cc: Same.
- * testsuite/thread/pthread6.cc: Same.
+ * testsuite/thread/pthread1.cc: Enable for darwin test.
+ * testsuite/thread/pthread2.cc: Same.
+ * testsuite/thread/pthread3.cc: Same.
+ * testsuite/thread/pthread4.cc: Same.
+ * testsuite/thread/pthread5.cc: Same.
+ * testsuite/thread/pthread6.cc: Same.
2003-04-15 Loren J. Rittle <ljrittle@acm.org>
@@ -615,8 +700,8 @@
PR libstdc++/5730
* include/bits/c++config (_GLIBCPP_FAST_MATH): Define.
- * include/std/std_complex.h (norm): Use faster,
- less accurate computation for builtin float types under --fast-math.
+ * include/std/std_complex.h (norm): Use faster,
+ less accurate computation for builtin float types under --fast-math.
2003-03-21 Paolo Carlini <pcarlini@unitus.it>
@@ -640,10 +725,10 @@
2003-03-17 Petur Runolfsson <peturr02@ru.is>
- PR libstdc++/9964
- * include/bits/fstream.tcc (basic_filebuf::close):
- Always close file, even when write fails.
- * testsuite/27_io/filebuf_members.cc (test_07): New test.
+ PR libstdc++/9964
+ * include/bits/fstream.tcc (basic_filebuf::close):
+ Always close file, even when write fails.
+ * testsuite/27_io/filebuf_members.cc (test_07): New test.
2003-03-17 Danny Smith <dannysmith@users.sourceforge.net>
@@ -746,7 +831,7 @@
2003-03-05 Carlo Wood <carlo@alinoe.com>
- * include/bits/ios_base.h(ios_base::Init::_S_initialized()): Added
+ * include/bits/ios_base.h(ios_base::Init::_S_initialized()): Added
_S_initialized() in order to allow debugging libraries to detect
when the std streams are initialized from an overloaded operator
new.
@@ -761,7 +846,7 @@
(_M_cache_locale): New.
(_M_cache_facets): Deprecate.
* include/bits/basic_ios.tcc (basic_ios::copyfmt): Set up locale
- caching.
+ caching.
(basic_ios::imbue,basic_ios::init): Use _M_cache_locale.
(basic_ios::_M_cache_locale): New.
(basic_ios::_M_cache_facets): Deprecate.
@@ -773,9 +858,9 @@
(num_put::_M_convert_int): Use locale cache literal string,
grouping flag, thousands separator.
(num_out::_M_convert_float): Use locale cache grouping flag, decimal
- point, thousands separator.
+ point, thousands separator.
(__locale_cache<_CharT>::_M_init,__locale_cache<_CharT>::_S_callback):
- New.
+ New.
* src/locale-inst.cc
(__locale_cache<_CharT>::_S_callback, __locale_cache<char>,
__locale_cache<wchar_t>): New.
@@ -793,7 +878,7 @@
* testsuite/abi_check.cc: Update.
2003-03-03 Jerry Quinn <jlquinn@optonline.net>
- Benjamin Kosnik <benjamin@redhat.com>
+ Benjamin Kosnik <benjamin@redhat.com>
* include/bits/locale_facets.h (__num_base): Add _S_atoms_out.
Add indexes into this array.
@@ -824,7 +909,7 @@
set_memory_limits.
2003-02-28 Brad Spencer <spencer@infointeractive.com>
- Nathan Myers <ncm@cantrip.org>
+ Nathan Myers <ncm@cantrip.org>
* src/Makefile.am (stamp-debug): Clean.
* src/Makefile.in: Regenerate.
@@ -848,12 +933,12 @@
2003-02-27 Benjamin Kosnik <bkoz@redhat.com>
- * configure.in (GLIBCPP_ENABLE_DEBUG): Default to none.
+ * configure.in (GLIBCPP_ENABLE_DEBUG): Default to none.
Call GLIBCPP_ENABLE_DEBUG_FLAGS.
- * acinclude.m4 (GLIBCPP_ENABLE_DEBUG): GLIBCPP_BUILD_DEBUG, new
- conditional if --enable-debug is yes. Rework.
+ * acinclude.m4 (GLIBCPP_ENABLE_DEBUG): GLIBCPP_BUILD_DEBUG, new
+ conditional if --enable-debug is yes. Rework.
(GLIBCPP_ENABLE_DEBUG_FLAGS): New.
- * aclocal.m4: Regenerate.
+ * aclocal.m4: Regenerate.
* libio/Makefile.am: Remove DEBUG_FLAGS.
* libio/Makefile.in: Regenerate.
* libsupc++/Makefile.am: Remove DEBUG_FLAGS.
@@ -916,7 +1001,7 @@
2003-02-27 Jerry Quinn <jlquinn@optonline.net>
- * config/locale/generic/messages_members.h (messages::messages):
+ * config/locale/generic/messages_members.h (messages::messages):
Remove name from unused parameter.
2003-02-27 Benjamin Kosnik <bkoz@redhat.com>
@@ -1023,7 +1108,7 @@
for pos_type.
2003-02-11 Paolo Carlini <pcarlini@unitus.it>
- Petur Runolfsson <peturr02@ru.is>
+ Petur Runolfsson <peturr02@ru.is>
PR libstdc++/9318
* include/bits/streambuf.tcc (__copy_streambufs):
@@ -1102,7 +1187,7 @@
2003-02-05 Benjamin Kosnik <bkoz@redhat.com>
- * testsuite/26_numerics/valarray_name_lookup.cc: Fix.
+ * testsuite/26_numerics/valarray_name_lookup.cc: Fix.
2003-02-05 Benjamin Kosnik <bkoz@redhat.com>
@@ -1356,8 +1441,8 @@
2003-01-06 Paolo Carlini <pcarlini@unitus.it>
* src/codecvt.cc
- (codecvt<char, char, mbstate_t>::do_in, do_out):
- Tweak parameters to avoid unused parameter warnings.
+ (codecvt<char, char, mbstate_t>::do_in, do_out):
+ Tweak parameters to avoid unused parameter warnings.
2003-01-06 Paolo Carlini <pcarlini@unitus.it>
@@ -1476,7 +1561,7 @@
2002-12-02 Paolo Carlini <pcarlini@unitus.it>
* include/bits/basic_string.h (compare(const basic_string&)):
- Fully qualify min() with std::.
+ Fully qualify min() with std::.
2002-12-02 Benjamin Kosnik <bkoz@redhat.com>
@@ -1516,7 +1601,7 @@
* docs/html/faq/index.html: Add tip about a namespace for extensions.
2002-11-28 Paolo Carlini <pcarlini@unitus.it>
- Nathan Myers <ncm@cantrip.org>
+ Nathan Myers <ncm@cantrip.org>
* src/localename.cc
(locale::_Impl::_Impl(const char*, size_t)):
@@ -1536,7 +1621,7 @@
__cxa_guard_release, __cxa_guard_abort in CXXABI_1.2.1.
2002-11-25 Paolo Carlini <pcarlini@unitus.it>
- Nathan Myers <ncm@cantrip.org>
+ Nathan Myers <ncm@cantrip.org>
* src/localename.cc
(locale::_Impl::_Impl(const char*, size_t)):
@@ -1576,7 +1661,7 @@
Trivial cosmetic tweaks.
2002-11-22 Laszlo Ersek <erseklaszlo@chello.hu>
- Paolo Carlini <pcarlini@unitus.it>
+ Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/8645
* include/bits/stl_tree.h (_Rb_tree_rebalance_for_erase):
@@ -1629,7 +1714,7 @@
include/std/std_streambuf.h: Doxygenate all I/O entities.
2002-11-20 Benjamin Kosnik <bkoz@redhat.com>
- Jonathan Lennox <lennox@cs.columbia.edu>
+ Jonathan Lennox <lennox@cs.columbia.edu>
* include/bits/streambuf.tcc (__copy_streambufs):
Revert previous fix for the interactive half of
@@ -1669,7 +1754,7 @@
and std::codecvt<wchar_t>::codecvt(size_t) into one export pattern.
2002-11-15 Benjamin Kosnik <bkoz@redhat.com>
- Gabriel Dos Reis <gdr@integrable-solutions.net>
+ Gabriel Dos Reis <gdr@integrable-solutions.net>
PR libstdc++/8230
* include/bits/stl_alloc.h: Use builtin_expect for the most
@@ -1686,7 +1771,7 @@
* src/ios.cc [_GLIBCPP_HAVE_UNISTD_H]: Include unistd.h.
2002-11-15 Paolo Carlini <pcarlini@unitus.it>
- Loren J. Rittle <ljrittle@acm.org>
+ Loren J. Rittle <ljrittle@acm.org>
PR libstdc++/8399
* acinclude.m4
@@ -1740,8 +1825,8 @@
2002-11-11 Benjamin Kosnik <bkoz@redhat.com>
- PR libstdc++/6746
- * include/bits/fstream.tcc (filebuf::open): Set input pointers.
+ PR libstdc++/6746
+ * include/bits/fstream.tcc (filebuf::open): Set input pointers.
* config/io/basic_file_stdio.cc (__basic_file::_M_open_mode): Set
__p_mode as well.
(__basic_file::open): Set to non-block for input.
@@ -1762,7 +1847,7 @@
docs/html/ext/sgiexts.html: Add missing <html> tag.
2002-11-07 Phil Edwards <pme@gcc.gnu.org>
- Richard Earnshaw <rearnsha@arm.com>
+ Richard Earnshaw <rearnsha@arm.com>
* config/cpu/generic/atomicity.h: Provide atomic __exchange_and_add
and __atomic_add.
@@ -2029,7 +2114,7 @@
* testsuite/22_locale/static_members.cc (test02): Avoid null strings.
2002-10-12 Jonathan Wakely <jw@kayari.org>
- Gabriel Dos Reis <gdr@integrable-solutions.net>
+ Gabriel Dos Reis <gdr@integrable-solutions.net>
* docs/html/21_strings/howto.html#5: Correct nasting of XHTML
elements. Correct allocator-related text.
@@ -2291,9 +2376,9 @@
__glibcpp_s8_digits10 et al; check vs the installed versions
of digits10 for particular sizes.
- * include/std/std_limits.h (__glibcpp_float_is_modulo,
- __glibcpp_double_is_modulo, __glibcpp_long_double_is_modulo): Kill.
- (numeric_limits<T>::is_modulo, T floating): Use false.
+ * include/std/std_limits.h (__glibcpp_float_is_modulo,
+ __glibcpp_double_is_modulo, __glibcpp_long_double_is_modulo): Kill.
+ (numeric_limits<T>::is_modulo, T floating): Use false.
2002-09-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
diff --git a/contrib/libstdc++/acinclude.m4 b/contrib/libstdc++/acinclude.m4
index 608cd24..b47b9fc 100644
--- a/contrib/libstdc++/acinclude.m4
+++ b/contrib/libstdc++/acinclude.m4
@@ -2132,7 +2132,9 @@ AC_DEFUN(GLIBCPP_CONFIGURE_TESTSUITE, [
AC_SUBST(baseline_dir)
# Determine if checking the ABI is desirable.
- if test x$enable_symvers = xno; then
+ # Only build this as native, since automake does not understand
+ # CXX_FOR_BUILD.
+ if test x"$GLIBCPP_IS_CROSS_COMPILING" = xtrue || test x$enable_symvers = xno; then
enable_abi_check=no
else
case "$host" in
diff --git a/contrib/libstdc++/aclocal.m4 b/contrib/libstdc++/aclocal.m4
index ecc43b4..3b6757e 100644
--- a/contrib/libstdc++/aclocal.m4
+++ b/contrib/libstdc++/aclocal.m4
@@ -2144,7 +2144,9 @@ AC_DEFUN(GLIBCPP_CONFIGURE_TESTSUITE, [
AC_SUBST(baseline_dir)
# Determine if checking the ABI is desirable.
- if test x$enable_symvers = xno; then
+ # Only build this as native, since automake does not understand
+ # CXX_FOR_BUILD.
+ if test x"$GLIBCPP_IS_CROSS_COMPILING" = xtrue || test x$enable_symvers = xno; then
enable_abi_check=no
else
case "$host" in
diff --git a/contrib/libstdc++/config/cpu/m68k/atomicity.h b/contrib/libstdc++/config/cpu/m68k/atomicity.h
index db32735..c80e2e3 100644
--- a/contrib/libstdc++/config/cpu/m68k/atomicity.h
+++ b/contrib/libstdc++/config/cpu/m68k/atomicity.h
@@ -1,6 +1,6 @@
// Low-level functions for atomic operations: m68k version -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -32,8 +32,9 @@
typedef int _Atomic_word;
-#if defined(__mc68020__) || defined(__mc68030__) \
- || defined(__mc68040__) || defined(__mc68060__)
+#if ( defined(__mc68020__) || defined(__mc68030__) \
+ || defined(__mc68040__) || defined(__mc68060__) ) \
+ && !defined(__mcpu32__)
// These variants support compare-and-swap.
static inline _Atomic_word
@@ -74,8 +75,7 @@ __exchange_and_add (volatile _Atomic_word *__mem, int __val)
return __result;
}
-#elif !defined(__mcf5200__) && !defined(__mcf5300__)
-// 68000, 68010, cpu32 and 5400 support test-and-set.
+#else
template <int __inst>
struct __Atomicity_lock
@@ -94,9 +94,26 @@ __exchange_and_add (volatile _Atomic_word *__mem, int __val)
{
_Atomic_word __result;
+// bset with no immediate addressing
+#if defined(__mcf5200__) || defined(__mcf5300__) || defined(__mcf5400__)
+ __asm__ __volatile__("1: bset.b #7,%0@\n\tjbne 1b"
+ : /* no outputs */
+ : "a"(&__Atomicity_lock<0>::_S_atomicity_lock)
+ : "cc", "memory");
+
+// bset with immediate addressing
+#elif defined(__mc68000__)
+ __asm__ __volatile__("1: bset.b #7,%0\n\tjbne 1b"
+ : "+m"(__Atomicity_lock<0>::_S_atomicity_lock)
+ : /* none */
+ : "cc");
+
+#else // 680x0, cpu32, 5400 support test-and-set.
__asm__ __volatile__("1: tas %0\n\tjbne 1b"
- : "=m"(__Atomicity_lock<0>::_S_atomicity_lock)
- : "m"(__Atomicity_lock<0>::_S_atomicity_lock));
+ : "+m"(__Atomicity_lock<0>::_S_atomicity_lock)
+ : /* none */
+ : "cc");
+#endif
__result = *__mem;
*__mem = __result + __val;
@@ -106,45 +123,7 @@ __exchange_and_add (volatile _Atomic_word *__mem, int __val)
return __result;
}
-#elif defined(__vxWorks__) || defined(__embedded__)
-// The best we can hope for is to disable interrupts, which we
-// can only do from supervisor mode.
-
-static inline _Atomic_word
-__attribute__ ((__unused__))
-__exchange_and_add (volatile _Atomic_word *__mem, int __val)
-{
- _Atomic_word __result;
- short __level, __tmpsr;
- __asm__ __volatile__ ("move%.w %%sr,%0\n\tor%.l %0,%1\n\tmove%.w %1,%%sr"
- : "=d"(__level), "=d"(__tmpsr) : "1"(0x700));
-
- __result = *__mem;
- *__mem = __result + __val;
-
- __asm__ __volatile__ ("move%.w %0,%%sr" : : "d"(__level));
-
- return __result;
-}
-
-#else
-// These variants do not support any atomic operations at all.
-
-#warning "__exchange_and_add is not atomic for this target"
-
-static inline _Atomic_word
-__attribute__ ((__unused__))
-__exchange_and_add (volatile _Atomic_word *__mem, int __val)
-{
- _Atomic_word __result;
-
- __result = *__mem;
- *__mem = __result + __val;
-
- return __result;
-}
-
-#endif /* CAS / IRQ / TAS */
+#endif /* TAS / BSET */
static inline void
__attribute__ ((__unused__))
@@ -155,4 +134,4 @@ __atomic_add (volatile _Atomic_word* __mem, int __val)
(void) __exchange_and_add (__mem, __val);
}
-#endif /* atomicity.h */
+#endif /* _BITS_ATOMICITY_H */
diff --git a/contrib/libstdc++/config/locale/generic/ctype_members.cc b/contrib/libstdc++/config/locale/generic/ctype_members.cc
index f147983..71e810a 100644
--- a/contrib/libstdc++/config/locale/generic/ctype_members.cc
+++ b/contrib/libstdc++/config/locale/generic/ctype_members.cc
@@ -1,6 +1,6 @@
// std::ctype implementation details, generic version -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -126,15 +126,35 @@ namespace std
bool
ctype<wchar_t>::
do_is(mask __m, char_type __c) const
- { return static_cast<bool>(iswctype(__c, _M_convert_to_wmask(__m))); }
+ {
+ bool __ret = false;
+ const size_t __bitmasksize = 10;
+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
+ {
+ const mask __bit = static_cast<mask>(1 << __bitcur);
+ if (__m & __bit)
+ __ret |= iswctype(__c, _M_convert_to_wmask(__bit));
+ }
+ return __ret;
+ }
const wchar_t*
ctype<wchar_t>::
- do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __m) const
+ do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const
{
- while (__lo < __hi && !this->do_is(*__m, *__lo))
- ++__lo;
- return __lo;
+ for (;__lo < __hi; ++__vec, ++__lo)
+ {
+ const size_t __bitmasksize = 10;
+ mask __m = 0;
+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
+ {
+ const mask __bit = static_cast<mask>(1 << __bitcur);
+ if (iswctype(*__lo, _M_convert_to_wmask(__bit)))
+ __m |= __bit;
+ }
+ *__vec = __m;
+ }
+ return __hi;
}
const wchar_t*
diff --git a/contrib/libstdc++/config/locale/gnu/ctype_members.cc b/contrib/libstdc++/config/locale/gnu/ctype_members.cc
index e0be949..ee4cc0a 100644
--- a/contrib/libstdc++/config/locale/gnu/ctype_members.cc
+++ b/contrib/libstdc++/config/locale/gnu/ctype_members.cc
@@ -1,6 +1,6 @@
// std::ctype implementation details, GNU version -*- C++ -*-
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
@@ -129,19 +129,42 @@ namespace std
bool
ctype<wchar_t>::
- do_is(mask __m, char_type __c) const
+ do_is(mask __m, wchar_t __c) const
{
- return static_cast<bool>(__iswctype_l(__c, _M_convert_to_wmask(__m),
- _M_c_locale_ctype));
+ // Highest bitmask in ctype_base == 10, but extra in "C"
+ // library for blank.
+ bool __ret = false;
+ const size_t __bitmasksize = 11;
+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
+ {
+ const mask __bit = static_cast<mask>(_ISbit(__bitcur));
+ if (__m & __bit)
+ __ret |= __iswctype_l(__c, _M_convert_to_wmask(__bit),
+ _M_c_locale_ctype);
+ }
+ return __ret;
}
const wchar_t*
ctype<wchar_t>::
- do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __m) const
+ do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const
{
- while (__lo < __hi && !this->do_is(*__m, *__lo))
- ++__lo;
- return __lo;
+ for (;__lo < __hi; ++__vec, ++__lo)
+ {
+ // Highest bitmask in ctype_base == 10, but extra in "C"
+ // library for blank.
+ const size_t __bitmasksize = 11;
+ mask __m = 0;
+ for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
+ {
+ const mask __bit = static_cast<mask>(_ISbit(__bitcur));
+ if (__iswctype_l(*__lo, _M_convert_to_wmask(__bit),
+ _M_c_locale_ctype))
+ __m |= __bit;
+ }
+ *__vec = __m;
+ }
+ return __hi;
}
const wchar_t*
diff --git a/contrib/libstdc++/config/os/generic/ctype_inline.h b/contrib/libstdc++/config/os/generic/ctype_inline.h
index be43c47..0da0c7c 100644
--- a/contrib/libstdc++/config/os/generic/ctype_inline.h
+++ b/contrib/libstdc++/config/os/generic/ctype_inline.h
@@ -50,13 +50,15 @@
else
{
bool __ret = true;
- const int __bitmasksize = 11;
- int __bitcur = 0; // Lowest bitmask in ctype_base == 0
- for (;__ret && __bitcur < __bitmasksize; ++__bitcur)
+ bool __any_match = false;
+ const size_t __bitmasksize = 10;
+ size_t __bitcur = 0; // Lowest bitmask in ctype_base == 0
+ for (;__ret && __bitcur <= __bitmasksize; ++__bitcur)
{
mask __bit = static_cast<mask>(1 << __bitcur);
if (__m & __bit)
{
+ __any_match = true;
bool __testis;
switch (__bit)
{
@@ -100,7 +102,7 @@
__ret &= __testis;
}
}
- return __ret;
+ return __ret & __any_match;
}
}
@@ -114,13 +116,13 @@
else
{
// Highest bitmask in ctype_base == 10.
- const int __bitmasksize = 11;
+ const size_t __bitmasksize = 10;
for (;__low < __high; ++__vec, ++__low)
{
mask __m = 0;
// Lowest bitmask in ctype_base == 0
- int __i = 0;
- for (;__i < __bitmasksize; ++__i)
+ size_t __i = 0;
+ for (;__i <= __bitmasksize; ++__i)
{
mask __bit = static_cast<mask>(1 << __i);
if (this->is(__bit, *__low))
diff --git a/contrib/libstdc++/config/os/hpux/os_defines.h b/contrib/libstdc++/config/os/hpux/os_defines.h
index 27951c1..6414b41 100644
--- a/contrib/libstdc++/config/os/hpux/os_defines.h
+++ b/contrib/libstdc++/config/os/hpux/os_defines.h
@@ -97,8 +97,10 @@ typedef long int __padding_type;
#define _GLIBCPP_INST_ATOMICITY_LOCK 1
#endif
-/* Don't use pragma weak in gthread headers. */
-#ifdef __hppa__
+/* Don't use pragma weak in gthread headers. HP-UX rejects programs
+ with unsatisfied external references even if all of those references
+ are weak; gthread relies on such unsatisfied references being resolved
+ to null pointers when weak symbol support is on. */
#define _GLIBCPP_GTHREAD_USE_WEAK 0
-#endif
+
#endif
diff --git a/contrib/libstdc++/configure b/contrib/libstdc++/configure
index a533377..fd8b11e 100755
--- a/contrib/libstdc++/configure
+++ b/contrib/libstdc++/configure
@@ -1468,7 +1468,7 @@ else
if { (eval echo configure:1469: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
for file in conftest.*; do
case $file in
- *.c | *.o | *.obj) ;;
+ *.$ac_ext | *.c | *.o | *.obj) ;;
*) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
esac
done
@@ -2451,7 +2451,7 @@ x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
x86_64-*linux*)
LD="${LD-ld} -m elf_i386"
;;
- ppc64-*linux*)
+ ppc64-*linux*|powerpc64-*linux*)
LD="${LD-ld} -m elf32ppclinux"
;;
s390x-*linux*)
@@ -23798,7 +23798,9 @@ done
# Determine if checking the ABI is desirable.
- if test x$enable_symvers = xno; then
+ # Only build this as native, since automake does not understand
+ # CXX_FOR_BUILD.
+ if test x"$GLIBCPP_IS_CROSS_COMPILING" = xtrue || test x$enable_symvers = xno; then
enable_abi_check=no
else
case "$host" in
@@ -23902,7 +23904,7 @@ glibcpp_prefixdir=${prefix}
# Process the option --with-gxx-include-dir=<path to include-files directory>
echo $ac_n "checking for --with-gxx-include-dir""... $ac_c" 1>&6
-echo "configure:23906: checking for --with-gxx-include-dir" >&5
+echo "configure:23908: checking for --with-gxx-include-dir" >&5
# Check whether --with-gxx-include-dir or --without-gxx-include-dir was given.
if test "${with_gxx_include_dir+set}" = set; then
withval="$with_gxx_include_dir"
@@ -23926,7 +23928,7 @@ echo "$ac_t""$gxx_include_dir" 1>&6
# Process the option "--enable-version-specific-runtime-libs"
echo $ac_n "checking for --enable-version-specific-runtime-libs""... $ac_c" 1>&6
-echo "configure:23930: checking for --enable-version-specific-runtime-libs" >&5
+echo "configure:23932: checking for --enable-version-specific-runtime-libs" >&5
# Check whether --enable-version-specific-runtime-libs or --disable-version-specific-runtime-libs was given.
if test "${enable_version_specific_runtime_libs+set}" = set; then
enableval="$enable_version_specific_runtime_libs"
@@ -23973,7 +23975,7 @@ if test x"$glibcpp_toolexecdir" = x"no"; then
fi
echo $ac_n "checking for install location""... $ac_c" 1>&6
-echo "configure:23977: checking for install location" >&5
+echo "configure:23979: checking for install location" >&5
echo "$ac_t""$gxx_include_dir" 1>&6
diff --git a/contrib/libstdc++/configure.target b/contrib/libstdc++/configure.target
index a8aa6a6..c1d1cb1 100644
--- a/contrib/libstdc++/configure.target
+++ b/contrib/libstdc++/configure.target
@@ -154,13 +154,13 @@ case "${target_os}" in
netbsd*)
os_include_dir="os/bsd/netbsd"
;;
- solaris2.5*)
+ solaris2.5 | solaris2.5.[0-9])
os_include_dir="os/solaris/solaris2.5"
;;
- solaris2.6*)
+ solaris2.6)
os_include_dir="os/solaris/solaris2.6"
;;
- solaris2.[789]*)
+ solaris2.[789] | solaris2.1[0-9])
os_include_dir="os/solaris/solaris2.7"
;;
windiss*)
diff --git a/contrib/libstdc++/include/Makefile.am b/contrib/libstdc++/include/Makefile.am
index 906468d..cf15102 100644
--- a/contrib/libstdc++/include/Makefile.am
+++ b/contrib/libstdc++/include/Makefile.am
@@ -372,7 +372,7 @@ stamp-bits: ${bits_headers}
(cd ${bits_builddir} && @LN_S@ $? . || true) ;\
echo `date` > stamp-bits
-stamp-c_base: ${c_base_headers} ${c_base_headers_extra}
+stamp-c_base: stamp-bits ${c_base_headers} ${c_base_headers_extra}
@if [ ! -d "${c_base_builddir}" ]; then \
mkdir -p ${c_base_builddir} ;\
fi ;\
diff --git a/contrib/libstdc++/include/Makefile.in b/contrib/libstdc++/include/Makefile.in
index cc7e3a5..b6cc451 100644
--- a/contrib/libstdc++/include/Makefile.in
+++ b/contrib/libstdc++/include/Makefile.in
@@ -609,7 +609,7 @@ stamp-bits: ${bits_headers}
(cd ${bits_builddir} && @LN_S@ $? . || true) ;\
echo `date` > stamp-bits
-stamp-c_base: ${c_base_headers} ${c_base_headers_extra}
+stamp-c_base: stamp-bits ${c_base_headers} ${c_base_headers_extra}
@if [ ! -d "${c_base_builddir}" ]; then \
mkdir -p ${c_base_builddir} ;\
fi ;\
diff --git a/contrib/libstdc++/include/bits/basic_ios.h b/contrib/libstdc++/include/bits/basic_ios.h
index fe5e36a..70d8e84 100644
--- a/contrib/libstdc++/include/bits/basic_ios.h
+++ b/contrib/libstdc++/include/bits/basic_ios.h
@@ -242,7 +242,8 @@ namespace std
* The parameter is passed by derived streams.
*/
explicit
- basic_ios(basic_streambuf<_CharT, _Traits>* __sb) : ios_base()
+ basic_ios(basic_streambuf<_CharT, _Traits>* __sb)
+ : ios_base(), _M_fctype(0), _M_fnumput(0), _M_fnumget(0)
{ this->init(__sb); }
/**
diff --git a/contrib/libstdc++/include/bits/c++config b/contrib/libstdc++/include/bits/c++config
index 1b4c2d2..9fdb8cc 100644
--- a/contrib/libstdc++/include/bits/c++config
+++ b/contrib/libstdc++/include/bits/c++config
@@ -35,7 +35,7 @@
#include <bits/os_defines.h>
// The current version of the C++ library in compressed ISO date format.
-#define __GLIBCPP__ 20030804
+#define __GLIBCPP__ 20031106
// This is necessary until GCC supports separate template compilation.
#define _GLIBCPP_NO_TEMPLATE_EXPORT 1
diff --git a/contrib/libstdc++/include/bits/istream.tcc b/contrib/libstdc++/include/bits/istream.tcc
index 7ba6735..ae0c507 100644
--- a/contrib/libstdc++/include/bits/istream.tcc
+++ b/contrib/libstdc++/include/bits/istream.tcc
@@ -757,8 +757,12 @@ namespace std
sentry __cerb(*this, true);
if (__cerb)
{
- try
- { __c = this->rdbuf()->sgetc(); }
+ try
+ {
+ __c = this->rdbuf()->sgetc();
+ if (traits_type::eq_int_type(__c, traits_type::eof()))
+ this->setstate(ios_base::eofbit);
+ }
catch(...)
{
// 27.6.1.3 paragraph 1
diff --git a/contrib/libstdc++/include/bits/locale_facets.tcc b/contrib/libstdc++/include/bits/locale_facets.tcc
index 9ad4dfe..2563a95 100644
--- a/contrib/libstdc++/include/bits/locale_facets.tcc
+++ b/contrib/libstdc++/include/bits/locale_facets.tcc
@@ -1099,12 +1099,12 @@ namespace std
string_type __str;
__beg = this->do_get(__beg, __end, __intl, __io, __err, __str);
- const int __n = numeric_limits<long double>::digits10;
- char* __cs = static_cast<char*>(__builtin_alloca(__n));
+ const int __cs_size = __str.size() + 1;
+ char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
const locale __loc = __io.getloc();
const ctype<_CharT>& __ctype = use_facet<ctype<_CharT> >(__loc);
const _CharT* __wcs = __str.c_str();
- __ctype.narrow(__wcs, __wcs + __str.size() + 1, char(), __cs);
+ __ctype.narrow(__wcs, __wcs + __cs_size, char(), __cs);
__convert_to_v(__cs, __units, __err, _S_c_locale);
return __beg;
}
diff --git a/contrib/libstdc++/include/bits/stl_algo.h b/contrib/libstdc++/include/bits/stl_algo.h
index 009c409..3d22697 100644
--- a/contrib/libstdc++/include/bits/stl_algo.h
+++ b/contrib/libstdc++/include/bits/stl_algo.h
@@ -609,7 +609,8 @@ namespace std
else {
__first = find(__first, __last, __val);
while (__first != __last) {
- _Integer __n = __count - 1;
+ typename iterator_traits<_ForwardIter>::difference_type __n = __count;
+ --__n;
_ForwardIter __i = __first;
++__i;
while (__i != __last && __n != 0 && *__i == __val) {
@@ -661,7 +662,8 @@ namespace std
++__first;
}
while (__first != __last) {
- _Integer __n = __count - 1;
+ typename iterator_traits<_ForwardIter>::difference_type __n = __count;
+ --__n;
_ForwardIter __i = __first;
++__i;
while (__i != __last && __n != 0 && __binary_pred(*__i, __val)) {
diff --git a/contrib/libstdc++/libsupc++/cxxabi.h b/contrib/libstdc++/libsupc++/cxxabi.h
index adb1a00..301fa7f 100644
--- a/contrib/libstdc++/libsupc++/cxxabi.h
+++ b/contrib/libstdc++/libsupc++/cxxabi.h
@@ -175,6 +175,8 @@ protected:
unsigned __outer) const;
};
+class __class_type_info;
+
/* type information for a pointer to member variable */
class __pointer_to_member_type_info
: public __pbase_type_info
@@ -201,8 +203,6 @@ protected:
unsigned __outer) const;
};
-class __class_type_info;
-
/* helper class for __vmi_class_type */
class __base_class_type_info
{
OpenPOWER on IntegriCloud