Gcc 3.2.2-release C++ support bits.

This commit is contained in:
Alexander Kabaev 2003-02-10 05:47:54 +00:00
parent 7b74929d74
commit 61e268fb5f
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/vendor/gcc/dist/; revision=110614
40 changed files with 2931 additions and 2074 deletions

View File

@ -1,15 +1,308 @@
2002-11-19 Release Manager
2003-02-05 Release Manager
* GCC 3.2.1 Released.
* GCC 3.2.2 Released.
2003-01-28 Christian Cornelssen <ccorn@cs.tu-berlin.de>
* include/Makefile.am (install-data-local): Prepend
$(DESTDIR) to destination paths in all (un)installation
commands. Use ${c_base_builddir} and ${std_builddir}
as destination subdirectories to achieve consistency with
preceding mkinstalldirs commands. No effect because both
variables contain "." only.
* include/Makefile.in: Regenerate.
2003-01-28 Nathan Sidwell <nathan@codesourcery.com>
PR c++/9433
* libsupc++/tinfo.cc (__vmi_class_type_info::__do_dyncast): Cope
with bases which are very ambiguous.
2003-01-27 Alexandre Oliva <aoliva@redhat.com>
* acinclude.m4 (glibcpp_toolexeclibdir): Instead of
$(MULTISUBDIR), use `$CC -print-multi-os-directory`, unless
version_specific_libs is enabled.
* aclocal.m4, configure: Rebuilt.
2003-01-23 Phil Edwards <pme@gcc.gnu.org>
Bulk documentation merge (copy) from trunk.
* docs/doxygen/TODO, docs/doxygen/run_doxygen,
docs/doxygen/stdheader.cc, docs/doxygen/style.css,
docs/doxygen/tables.html, docs/doxygen/user.cfg.in,
docs/html/configopts.html, docs/html/debug.html,
docs/html/documentation.html, docs/html/explanations.html,
docs/html/install.html, docs/html/17_intro/contribute.html,
docs/html/17_intro/howto.html, docs/html/17_intro/license.html,
docs/html/17_intro/porting.html, docs/html/17_intro/porting.texi,
docs/html/18_support/howto.html, docs/html/19_diagnostics/howto.html,
docs/html/20_util/howto.html, docs/html/21_strings/howto.html,
docs/html/22_locale/codecvt.html, docs/html/22_locale/ctype.html,
docs/html/22_locale/howto.html, docs/html/22_locale/locale.html,
docs/html/22_locale/messages.html, docs/html/24_iterators/howto.html,
docs/html/25_algorithms/howto.html, docs/html/26_numerics/howto.html,
docs/html/27_io/howto.html, docs/html/ext/lwg-active.html,
docs/html/ext/lwg-defects.html, docs/html/ext/sgiexts.html,
docs/html/faq/index.html, docs/html/faq/index.txt: Merge from trunk.
2003-01-23 Petur Runolfsson <peturr02@ru.is>
PR libstdc++/9322
* include/std/std_streambuf.h
(basic_streambuf::basic_streambuf,
basic_streambuf::~basic_streambuf,
basic_streambuf::getloc, basic_streambuf::imbue):
Remove _M_buf_locale_init use.
* include/bits/fstream.tcc (basic_filebuf::imbue): Likewise
* testsuite/27_io/filebuf_virtuals.cc (test08): Add.
* testsuite/27_io/streambuf_members.cc (test08): Add.
* testsuite/27_io/stringbuf_virtuals.cc (test08): Add.
2003-01-23 Benjamin Kosnik <bkoz@redhat.com>
* config/linker-map.gnu: Synch with 3_3-branch.
2003-01-10 Benjamin Kosnik <bkoz@redhat.com>
Sysoltsev Slawa <Vyatcheslav.Sysoltsev@intel.com>
PR libstdc++/9269
* include/std/std_fstream.h (basic_filebuf::uflow): Declare.
(basic_filebuf::underflow): Declare.
Move definitions.
2003-01-07 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/8707
* Makefile.am (distclean-multi): Fix.
* Makefile.in: Regenerate.
2003-01-06 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/locale_facets.h (messages): Move ctor, dtor
definitions to..
(__timepunct): Same.
* config/locale/gnu/messages_members.h (messages): Add dtor, ctor
definitions. Conditionalize for GNU systems.
* config/locale/generic/messages_members.h (messages): Add dtor, ctor
definitions.
* config/locale/gnu/time_members.h (messages): New. Add dtor, ctor
definitions. Conditionalize for GNU systems.
* config/locale/generic/time_members.h (messages): New. Add dtor, ctor
definitions.
* include/bits/localefwd.h (locale::facet::_S_c_name): Add.
* src/locale.cc: Define.
* src/localename.cc (locale::_Impl::_Impl(facet**, size_t, bool):
Use it.
* config/locale/gnu/time_members.h: Use it.
* config/locale/gnu/messages_members.h: Use it.
* config/linker-map.gnu: Add locale::facets details.
* include/Makefile.am (target_headers_extra): Add time_members.h.
* include/Makefile.in: Regenerate.
* acinclude.m4: Export CTIME_H.
* aclocal.m4: Regenerate.
* configure: Regnerate.
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.
2003-01-06 Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/9151
* include/bits/locale_facets.cc (num_put::_M_convert_float):
Limit __prec to digits10 + 2, not digits10 + 1, taking into
account the possibility of %{g,G} conversion specifiers
inside _S_format_float.
* testsuite/27_io/ostream_inserter_arith.cc (test06): Add.
2003-01-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* testsuite/lib/libstdc++-v3-dg.exp (libstdc++-v3-init):
Additionally handle files one level deeper in glob patterns.
* testsuite/libstdc++-v3.dg/dg.exp: Likewise.
* testsuite/27_io/istream_extractor_arith.cc: Delete, split...
* testsuite/27_io/istream_extractor_arith/01.cc,
testsuite/27_io/istream_extractor_arith/02.cc,
testsuite/27_io/istream_extractor_arith/03.cc,
testsuite/27_io/istream_extractor_arith/06.cc,
testsuite/27_io/istream_extractor_arith/07.cc,
testsuite/27_io/istream_extractor_arith/08.cc,
testsuite/27_io/istream_extractor_arith/09.cc,
testsuite/27_io/istream_extractor_arith/10.cc,
testsuite/27_io/istream_extractor_arith/11.cc,
testsuite/27_io/istream_extractor_arith/12.cc,
testsuite/27_io/istream_extractor_arith/13.cc: ... to new files.
* testsuite/27_io/istream_extractor_arith/12.cc: Add XFAIL for
sparc*-*-solaris2*.
2003-01-05 Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/9168
* src/codecvt.cc
(codecvt<char, char, mbstate_t>::do_in, do_out):
Implement the resolution of DR19 (TC).
* testsuite/22_locale/codecvt_members_char_char.cc
(test01): Tweak.
2002-12-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* testsuite/23_containers/vector_capacity.cc (test03): Move ...
* testsuite/23_containers/vector_resize.cc: ...here as a new file.
Pass in -lmalloc for irix6.
* testsuite/27_io/ios_base_storage.cc: Pass in -lmalloc for irix6.
2002-12-11 Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/8887
* config/locale/generic/time_members.cc
(__timepunct<char>::_M_initialize_timepunct): Fix typos
in _M_date_format and _M_date_era_format string literals.
2002-12-07 Gabriel Dos Reis <gdr@integrable-solutions.net>
* include/bits/slice_array.h (slice_array<>::operator=): Fix typo.
2002-12-05 Benjamin Kosnik <bkoz@redhat.com>
* config/linker-map.gnu: Put _S_force_new into GLIBCPP_3.2.2.
* testsuite/abi_check.cc: Add GLIBCPP_3.2.2.
2002-12-05 Benjamin Kosnik <bkoz@redhat.com>
Gabriel Dos Reis <gdr@integrable-solutions.net>
PR libstdc++/8230
* include/bits/stl_alloc.h: Use builtin_expect for the most
obvious limit checks.
(__default_alloc_template::allocate): Check for null, throw
bad_alloc.
* testsuite/20_util/allocator_members.cc (test02): Add.
* testsuite/23_containers/vector_capacity.cc (test03): Add.
2002-12-05 Loren J. Rittle <ljrittle@acm.org>
Brad Spencer <spencer@infointeractive.com>
(provided alternate patch and improvements)
PR libstdc++/8708
* docs/html/23_containers/howto.html (GLIBCPP_FORCE_NEW): Document
new environment variable which replaces all uses of __USE_MALLOC
macro.
* docs/html/ext/howto.html (GLIBCPP_FORCE_NEW): Likewise.
(__mem_interface): Remove all references to old internal typedef.
* include/backward/alloc.h (__USE_MALLOC): Remove it and all
guarded code.
* include/bits/c++config (__USE_MALLOC): Update related error
message and comment.
* include/bits/stl_alloc.h (__USE_MALLOC): Remove it and all
guarded code. Update all related comments.
(__mem_interface): Unconditionally replace it with __new_alloc.
However, leave the typedef around in case anyone used it.
(__default_alloc_template<>::_S_force_new): New class static.
(__default_alloc_template<>::allocate, deallocate): Add
run-time controlled feature similar to what __USE_MALLOC code
path had provided.
* src/stl-inst.cc (__USE_MALLOC): Remove it and all
guarded code.
* testsuite/21_strings/capacity.cc: Remove reference to __USE_MALLOC.
Add documentation on GLIBCPP_FORCE_NEW environment variable.
* testsuite/ext/allocators.cc: Likewise.
2002-12-05 Paolo Carlini <pcarlini@unitus.it>
Nathan Myers <ncm@cantrip.org>
PR libstdc++/8790
* src/localename.cc
(locale::_Impl::_Impl(const char*, size_t)):
Avoid strtok for thread safety.
2002-12-04 Loren J. Rittle <ljrittle@acm.org>
PR libstdc++/7445
* src/locale.cc (std::locale::classic()): Weaken locking protocol.
2002-12-03 Phil Edwards <pme@gcc.gnu.org>
* include/bits/streambuf.tcc (basic_streambuf::sputbackc): Prefix
"this->" to call to pbackfail.
2002-12-02 Benjamin Kosnik <bkoz@redhat.com>
Jonathan Lennox <lennox@cs.columbia.edu>
* include/bits/streambuf.tcc (__copy_streambufs):
Revert previous fix for the interactive half of
libstdc++/6745, use _M_buf_size_opt to set dynamically
the correct buffer size.
2002-12-02 Jonathan Lennox <lennox@cs.columbia.edu>
* include/bits/streambuf.tcc (__copy_streambufs): verify
__sbin->gptr() + __bufsize < __sbin->egptr() before using.
* testsuite/27_io/ostream_inserter_other.cc (test_buffer_4): Add.
(test05): Use test_buffer_4. Delete unused ostringstream
variables.
2002-12-02 Paolo Carlini <pcarlini@unitus.it>
PR libstdc++/6745 (continued)
* include/bits/streambuf.tcc (__copy_streambufs):
Deal with interactive input by using isatty as in the
fix for libstdc++/8399.
2002-12-02 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* src/ios.cc [_GLIBCPP_HAVE_UNISTD_H]: Include unistd.h.
2002-12-02 Paolo Carlini <pcarlini@unitus.it>
Loren J. Rittle <ljrittle@acm.org>
PR libstdc++/8399
* acinclude.m4
(GLIBCPP_CHECK_UNISTD_DECL_AND_LINKAGE_1): New macro to
check for unistd.h functions.
(GLIBCPP_CHECK_UNISTD_SUPPORT): New macro, check for isatty
in unistd.h.
* configure.in: Call here.
* src/ios.cc (ios_base::Init::_S_ios_create(bool)):
Use _GLIBCPP_HAVE_ISATTY: ifdef, in case of interactive
input __in_size = 1 even when sync_with_stdio is false;
otherwise fall back to __in_size = 1.
* aclocal.m4: Regenerate.
* config.h.in: Regenerate.
* configure: Regenerate.
2002-12-02 Benjamin Kosnik <bkoz@redhat.com>
* acconfig.h (HAVE_DRAND48): Add.
(HAVE_GETPAGESIZE): Add.
(HAVE_SETENV): Add.
(HAVE_SIGSETJMP): Add.
* config.h.in: Regenerate.
* configure: Regenerate.
2002-12-02 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/8230
* include/bits/stl_vector.h (vector::reserve): Throw length_error if
requested size is bigger than max_size().
* include/bits/stl_bvector.h (vector<bool>::reserve): Same.
* testsuite/23_containers/vector_capacity.cc (test02): Add.
2002-12-02 Benjamin Kosnik <bkoz@redhat.com>
* configure.in (libtool_VERSION): Update to 5:2:0.
* configure: Regenerate.
2002-11-26 David Edelsohn <edelsohn@gnu.org>
* testsuite/abi_check.cc: Remove guards kludge.
2002-11-19 Release Manager
* GCC 3.2.1 Released.
2002-11-18 Release Manager
* GCC 3.2.1 Released.
2002-11-17 Jakub Jelinek <jakub@redhat.com>
* config/linker-map.gnu: Export _S_construct even if size_t is
@ -22,7 +315,7 @@
2002-11-06 David Edelsohn <edelsohn@gnu.org>
PR 8362
PR libstdc++/8362
* testsuite/abi_check.cc: Add guards to prevent -mpower ICE.
2002-11-05 Jonathan Wakely <cow@compsoc.man.ac.uk>

View File

@ -1,6 +1,6 @@
## Makefile for the toplevel directory of the GNU C++ Standard library.
##
## Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
## Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
## Free Software Foundation, Inc.
##
## This file is part of the libstdc++ version 3 distribution.
@ -88,7 +88,7 @@ doxygen-man:
# Multilib support.
MAKEOVERRIDES=
# Multilib variables.
# Multilib support variables.
MULTISRCTOP =
MULTIBUILDTOP =
MULTIDIRS =
@ -96,16 +96,16 @@ MULTISUBDIR =
MULTIDO = true
MULTICLEAN = true
# Multilib Makefile bits.
# Multilib support.
.PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \
maintainer-clean-multi
all-am: all-multi
install-am: install-multi
mostlyclean-am: mostlyclean-multi
clean-am: clean-multi
distclean-am: distclean-multi
maintainer-clean-am: maintainer-clean-multi
all-recursive: all-multi
install-recursive: install-multi
mostlyclean-recursive: mostlyclean-multi
clean-recursive: clean-multi
distclean-recursive: distclean-multi
maintainer-clean-recursive: maintainer-clean-multi
all-multi:
: $(MAKE) ; exec $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do

View File

@ -76,6 +76,7 @@ CMESSAGES_H = @CMESSAGES_H@
CPP = @CPP@
CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@
CSTDIO_H = @CSTDIO_H@
CTIME_H = @CTIME_H@
CXX = @CXX@
CXXCPP = @CXXCPP@
C_INCLUDE_DIR = @C_INCLUDE_DIR@
@ -146,7 +147,7 @@ baseline_file = @baseline_file@
# Multilib support.
MAKEOVERRIDES =
# Multilib variables.
# Multilib support variables.
MULTISRCTOP =
MULTIBUILDTOP =
MULTIDIRS =
@ -519,16 +520,16 @@ doxygen-man:
.PHONY: doxygen doxygen-maint doxygen-man
# Multilib Makefile bits.
# Multilib support.
.PHONY: all-multi mostlyclean-multi clean-multi distclean-multi \
maintainer-clean-multi
all-am: all-multi
install-am: install-multi
mostlyclean-am: mostlyclean-multi
clean-am: clean-multi
distclean-am: distclean-multi
maintainer-clean-am: maintainer-clean-multi
all-recursive: all-multi
install-recursive: install-multi
mostlyclean-recursive: mostlyclean-multi
clean-recursive: clean-multi
distclean-recursive: distclean-multi
maintainer-clean-recursive: maintainer-clean-multi
all-multi:
: $(MAKE) ; exec $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do

View File

@ -13,9 +13,6 @@
// Define if GCC supports weak symbols.
#undef _GLIBCPP_SUPPORTS_WEAK
// Define if gthr-default.h exists (meaning that threading support is enabled).
#undef HAVE_GTHR_DEFAULT
// Include I/O support for 'long long' and 'unsigned long long'.
#undef _GLIBCPP_USE_LONG_LONG
@ -37,13 +34,13 @@
// Define to use concept checking code from the boost libraries.
#undef _GLIBCPP_CONCEPT_CHECKS
// Define if you have the atan2f function.
// Define if the atan2f function exists.
#undef _GLIBCPP_HAVE_ATAN2F
// Define if you have the atan2l function.
// Define if the atan2l function exists.
#undef _GLIBCPP_HAVE_ATAN2L
// Define if you have the copysignf function.
// Define if the copysignf function exists.
#undef _GLIBCPP_HAVE_COPYSIGNF
// Define to use symbol versioning in the shared library.
@ -60,6 +57,21 @@
#define _GLIBCPP_ASM_SYMVER(cur, old, version)
#endif
// Define if gthr-default.h exists (meaning that threading support is enabled).
#undef HAVE_GTHR_DEFAULT
// Define if drand48 exists.
#undef HAVE_DRAND48
// Define if getpagesize exists.
#undef HAVE_GETPAGESIZE
// Define if setenv exists.
#undef HAVE_SETENV
// Define if sigsetjmp exists.
#undef HAVE_SIGSETJMP
// Define if mbstate_t exists in wchar.h.
#undef HAVE_MBSTATE_T

View File

@ -594,6 +594,33 @@ AC_DEFUN(GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3, [
fi
])
dnl
dnl Check to see if the (unistd function) argument passed is
dnl 1) declared when using the c++ compiler
dnl 2) has "C" linkage
dnl
dnl argument 1 is name of function to check
dnl
dnl ASSUMES argument is a function with ONE parameter
dnl
dnl GLIBCPP_CHECK_UNISTD_DECL_AND_LINKAGE_1
AC_DEFUN(GLIBCPP_CHECK_UNISTD_DECL_AND_LINKAGE_1, [
AC_MSG_CHECKING([for $1 declaration])
if test x${glibcpp_cv_func_$1_use+set} != xset; then
AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_COMPILE([#include <unistd.h>],
[ $1(0);],
[glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
AC_LANG_RESTORE
])
fi
AC_MSG_RESULT($glibcpp_cv_func_$1_use)
if test x$glibcpp_cv_func_$1_use = x"yes"; then
AC_CHECK_FUNCS($1)
fi
])
dnl
dnl Because the builtins are picky picky picky about the arguments they take,
@ -707,7 +734,7 @@ AC_DEFUN(GLIBCPP_CHECK_BUILTIN_MATH_SUPPORT, [
dnl
dnl Check to see what the underlying c library
dnl Check to see what the underlying c library is like
dnl These checks need to do two things:
dnl 1) make sure the name is declared when using the c++ compiler
dnl 2) make sure the name has "C" linkage
@ -730,6 +757,25 @@ AC_DEFUN(GLIBCPP_CHECK_STDLIB_SUPPORT, [
CXXFLAGS="$ac_save_CXXFLAGS"
])
dnl
dnl Check to see what the underlying c library is like
dnl These checks need to do two things:
dnl 1) make sure the name is declared when using the c++ compiler
dnl 2) make sure the name has "C" linkage
dnl This might seem like overkill but experience has shown that it's not...
dnl
dnl Define HAVE_ISATTY if "isatty" is declared and links
dnl
dnl GLIBCPP_CHECK_UNISTD_SUPPORT
AC_DEFUN(GLIBCPP_CHECK_UNISTD_SUPPORT, [
ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS='-fno-builtins -D_GNU_SOURCE'
GLIBCPP_CHECK_UNISTD_DECL_AND_LINKAGE_1(isatty)
CXXFLAGS="$ac_save_CXXFLAGS"
])
dnl
dnl Check to see what the underlying c library or math library is like.
@ -1185,6 +1231,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
CMESSAGES_CC=config/locale/generic/messages_members.cc
CMONEY_CC=config/locale/generic/monetary_members.cc
CNUMERIC_CC=config/locale/generic/numeric_members.cc
CTIME_H=config/locale/generic/time_members.h
CTIME_CC=config/locale/generic/time_members.cc
CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
;;
@ -1219,6 +1266,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
CMESSAGES_CC=config/locale/gnu/messages_members.cc
CMONEY_CC=config/locale/gnu/monetary_members.cc
CNUMERIC_CC=config/locale/gnu/numeric_members.cc
CTIME_H=config/locale/gnu/time_members.h
CTIME_CC=config/locale/gnu/time_members.cc
CLOCALE_INTERNAL_H=config/locale/gnu/c++locale_internal.h
;;
@ -1235,6 +1283,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
CMESSAGES_CC=config/locale/ieee_1003.1-2001/messages_members.cc
CMONEY_CC=config/locale/generic/monetary_members.cc
CNUMERIC_CC=config/locale/generic/numeric_members.cc
CTIME_H=config/locale/generic/time_members.h
CTIME_CC=config/locale/generic/time_members.cc
CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
;;
@ -1256,6 +1305,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
AC_SUBST(CLOCALE_H)
AC_SUBST(CCODECVT_H)
AC_SUBST(CMESSAGES_H)
AC_SUBST(CTIME_H)
AC_LINK_FILES($CLOCALE_CC, src/c++locale.cc)
AC_LINK_FILES($CCODECVT_CC, src/codecvt_members.cc)
AC_LINK_FILES($CCOLLATE_CC, src/collate_members.cc)
@ -1885,11 +1935,12 @@ if test x"$glibcpp_toolexecdir" = x"no"; then
if test -n "$with_cross_host" &&
test x"$with_cross_host" != x"no"; then
glibcpp_toolexecdir='$(exec_prefix)/$(target_alias)'
glibcpp_toolexeclibdir='$(toolexecdir)/lib$(MULTISUBDIR)'
glibcpp_toolexeclibdir='$(toolexecdir)/lib'
else
glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
glibcpp_toolexeclibdir='$(libdir)$(MULTISUBDIR)'
glibcpp_toolexeclibdir='$(libdir)'
fi
glibcpp_toolexeclibdir=$glibcpp_toolexeclibdir/`$CC -print-multi-os-directory`
fi
AC_MSG_CHECKING([for install location])

View File

@ -1,4 +1,4 @@
dnl aclocal.m4 generated automatically by aclocal 1.4-p5
dnl aclocal.m4 generated automatically by aclocal 1.4-p6
dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
@ -606,6 +606,33 @@ AC_DEFUN(GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3, [
fi
])
dnl
dnl Check to see if the (unistd function) argument passed is
dnl 1) declared when using the c++ compiler
dnl 2) has "C" linkage
dnl
dnl argument 1 is name of function to check
dnl
dnl ASSUMES argument is a function with ONE parameter
dnl
dnl GLIBCPP_CHECK_UNISTD_DECL_AND_LINKAGE_1
AC_DEFUN(GLIBCPP_CHECK_UNISTD_DECL_AND_LINKAGE_1, [
AC_MSG_CHECKING([for $1 declaration])
if test x${glibcpp_cv_func_$1_use+set} != xset; then
AC_CACHE_VAL(glibcpp_cv_func_$1_use, [
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_COMPILE([#include <unistd.h>],
[ $1(0);],
[glibcpp_cv_func_$1_use=yes], [glibcpp_cv_func_$1_use=no])
AC_LANG_RESTORE
])
fi
AC_MSG_RESULT($glibcpp_cv_func_$1_use)
if test x$glibcpp_cv_func_$1_use = x"yes"; then
AC_CHECK_FUNCS($1)
fi
])
dnl
dnl Because the builtins are picky picky picky about the arguments they take,
@ -719,7 +746,7 @@ AC_DEFUN(GLIBCPP_CHECK_BUILTIN_MATH_SUPPORT, [
dnl
dnl Check to see what the underlying c library
dnl Check to see what the underlying c library is like
dnl These checks need to do two things:
dnl 1) make sure the name is declared when using the c++ compiler
dnl 2) make sure the name has "C" linkage
@ -742,6 +769,25 @@ AC_DEFUN(GLIBCPP_CHECK_STDLIB_SUPPORT, [
CXXFLAGS="$ac_save_CXXFLAGS"
])
dnl
dnl Check to see what the underlying c library is like
dnl These checks need to do two things:
dnl 1) make sure the name is declared when using the c++ compiler
dnl 2) make sure the name has "C" linkage
dnl This might seem like overkill but experience has shown that it's not...
dnl
dnl Define HAVE_ISATTY if "isatty" is declared and links
dnl
dnl GLIBCPP_CHECK_UNISTD_SUPPORT
AC_DEFUN(GLIBCPP_CHECK_UNISTD_SUPPORT, [
ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS='-fno-builtins -D_GNU_SOURCE'
GLIBCPP_CHECK_UNISTD_DECL_AND_LINKAGE_1(isatty)
CXXFLAGS="$ac_save_CXXFLAGS"
])
dnl
dnl Check to see what the underlying c library or math library is like.
@ -1197,6 +1243,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
CMESSAGES_CC=config/locale/generic/messages_members.cc
CMONEY_CC=config/locale/generic/monetary_members.cc
CNUMERIC_CC=config/locale/generic/numeric_members.cc
CTIME_H=config/locale/generic/time_members.h
CTIME_CC=config/locale/generic/time_members.cc
CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
;;
@ -1231,6 +1278,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
CMESSAGES_CC=config/locale/gnu/messages_members.cc
CMONEY_CC=config/locale/gnu/monetary_members.cc
CNUMERIC_CC=config/locale/gnu/numeric_members.cc
CTIME_H=config/locale/gnu/time_members.h
CTIME_CC=config/locale/gnu/time_members.cc
CLOCALE_INTERNAL_H=config/locale/gnu/c++locale_internal.h
;;
@ -1247,6 +1295,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
CMESSAGES_CC=config/locale/ieee_1003.1-2001/messages_members.cc
CMONEY_CC=config/locale/generic/monetary_members.cc
CNUMERIC_CC=config/locale/generic/numeric_members.cc
CTIME_H=config/locale/generic/time_members.h
CTIME_CC=config/locale/generic/time_members.cc
CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
;;
@ -1268,6 +1317,7 @@ AC_DEFUN(GLIBCPP_ENABLE_CLOCALE, [
AC_SUBST(CLOCALE_H)
AC_SUBST(CCODECVT_H)
AC_SUBST(CMESSAGES_H)
AC_SUBST(CTIME_H)
AC_LINK_FILES($CLOCALE_CC, src/c++locale.cc)
AC_LINK_FILES($CCODECVT_CC, src/codecvt_members.cc)
AC_LINK_FILES($CCOLLATE_CC, src/collate_members.cc)
@ -1897,11 +1947,12 @@ if test x"$glibcpp_toolexecdir" = x"no"; then
if test -n "$with_cross_host" &&
test x"$with_cross_host" != x"no"; then
glibcpp_toolexecdir='$(exec_prefix)/$(target_alias)'
glibcpp_toolexeclibdir='$(toolexecdir)/lib$(MULTISUBDIR)'
glibcpp_toolexeclibdir='$(toolexecdir)/lib'
else
glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
glibcpp_toolexeclibdir='$(libdir)$(MULTISUBDIR)'
glibcpp_toolexeclibdir='$(libdir)'
fi
glibcpp_toolexeclibdir=$glibcpp_toolexeclibdir/`$CC -print-multi-os-directory`
fi
AC_MSG_CHECKING([for install location])
@ -2224,7 +2275,7 @@ AC_MSG_RESULT($enable_symvers)
])
# isc-posix.m4 serial 1 (gettext-0.10.40)
# isc-posix.m4 serial 2 (gettext-0.11.2)
dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General
@ -2232,6 +2283,8 @@ dnl Public License, this file may be distributed as part of a program
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
# This file is not needed with autoconf-2.53 and newer. Remove it in 2005.
# This test replaces the one in autoconf.
# Currently this macro should have the same name as the autoconf macro
# because gettext's gettext.m4 (distributed in the automake package)
@ -2292,7 +2345,8 @@ dnl Usage:
dnl AM_INIT_AUTOMAKE(package,version, [no-define])
AC_DEFUN([AM_INIT_AUTOMAKE],
[AC_REQUIRE([AC_PROG_INSTALL])
[AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
AC_REQUIRE([AC_PROG_INSTALL])
PACKAGE=[$1]
AC_SUBST(PACKAGE)
VERSION=[$2]
@ -2308,13 +2362,42 @@ AC_REQUIRE([AM_SANITY_CHECK])
AC_REQUIRE([AC_ARG_PROGRAM])
dnl FIXME This is truly gross.
missing_dir=`cd $ac_aux_dir && pwd`
AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}, $missing_dir)
AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}, $missing_dir)
AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
AC_REQUIRE([AC_PROG_MAKE_SET])])
# Copyright 2002 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# AM_AUTOMAKE_VERSION(VERSION)
# ----------------------------
# Automake X.Y traces this macro to ensure aclocal.m4 has been
# generated from the m4 files accompanying Automake X.Y.
AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.4"])
# AM_SET_CURRENT_AUTOMAKE_VERSION
# -------------------------------
# Call AM_AUTOMAKE_VERSION so it can be traced.
# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
[AM_AUTOMAKE_VERSION([1.4-p6])])
#
# Check to make sure that the build environment is sane.
#

View File

@ -6,9 +6,6 @@
// Define if GCC supports weak symbols.
#undef _GLIBCPP_SUPPORTS_WEAK
// Define if gthr-default.h exists (meaning that threading support is enabled).
#undef HAVE_GTHR_DEFAULT
// Include I/O support for 'long long' and 'unsigned long long'.
#undef _GLIBCPP_USE_LONG_LONG
@ -38,6 +35,9 @@
#define _GLIBCPP_ASM_SYMVER(cur, old, version)
#endif
// Define if gthr-default.h exists (meaning that threading support is enabled).
#undef HAVE_GTHR_DEFAULT
// Define if mbstate_t exists in wchar.h.
#undef HAVE_MBSTATE_T
@ -449,6 +449,9 @@
/* Define if you have the iconv_open function. */
#undef HAVE_ICONV_OPEN
/* Define if you have the isatty function. */
#undef HAVE_ISATTY
/* Define if you have the isinf function. */
#undef HAVE_ISINF

View File

@ -1,6 +1,6 @@
## Linker script for GNU ld 2.11.94+ only.
##
## Copyright (C) 2002 Free Software Foundation, Inc.
## Copyright (C) 2002, 2003 Free Software Foundation, Inc.
##
## This file is part of the libstdc++ version 3 distribution.
##
@ -50,7 +50,14 @@ GLIBCPP_3.2 {
std::[A-Zd-k]*;
std::length_error*;
std::logic_error*;
std::locale::[A-Za-z]*;
std::locale::[A-Za-e]*;
std::locale::facet::[A-Za-z]*;
std::locale::facet::_M*;
std::locale::facet::_S_c_locale;
std::locale::facet::_S_clone_c_locale*;
std::locale::facet::_S_create_c_locale*;
std::locale::facet::_S_destroy_c_locale*;
std::locale::[A-Zg-z]*;
std::locale::_[A-Ra-z]*;
std::locale::_S_classic;
std::locale::_S_global;
@ -99,6 +106,9 @@ GLIBCPP_3.2 {
# std::locale destructors
_ZNSt6localeD*;
# std::locale::facet destructors
_ZNSt6locale5facetD*;
# std::codecvt<char> members.
_ZNKSt7codecvtIcc11__mbstate_tE*;
@ -204,8 +214,6 @@ GLIBCPP_3.2.1 {
_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_;
_ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ERKS6_S8_;
_ZNSt24__default_alloc_templateILb1ELi0EE12_S_force_newE;
# stub functions from libmath
sinf;
sinl;
@ -242,11 +250,41 @@ GLIBCPP_3.2.1 {
} GLIBCPP_3.2;
GLIBCPP_3.2.2 {
_ZNSt24__default_alloc_templateILb1ELi0EE12_S_force_newE;
} GLIBCPP_3.2.1;
# Symbols in the support library (libsupc++) have their own tag.
CXXABI_1.2 {
global:
__cxa_*;
__cxa_allocate_exception;
__cxa_bad_cast;
__cxa_bad_typeid;
__cxa_begin_catch;
__cxa_call_unexpected;
__cxa_current_exception_type;
__cxa_demangle;
__cxa_end_catch;
__cxa_free_exception;
__cxa_get_globals;
__cxa_get_globals_fast;
__cxa_pure_virtual;
__cxa_rethrow;
__cxa_throw;
__cxa_vec_cctor;
__cxa_vec_cleanup;
__cxa_vec_ctor;
__cxa_vec_delete2;
__cxa_vec_delete3;
__cxa_vec_delete;
__cxa_vec_dtor;
__cxa_vec_new2;
__cxa_vec_new3;
__cxa_vec_new;
__gxx_personality_v0;
__gxx_personality_sj0;
__dynamic_cast;
@ -254,6 +292,26 @@ CXXABI_1.2 {
# __gnu_cxx::_verbose_terminate_handler()
_ZN9__gnu_cxx27__verbose_terminate_handlerEv;
# XXX Should not be exported.
__cxa_dyn_string_append_char;
__cxa_dyn_string_append_cstr;
__cxa_dyn_string_append;
__cxa_dyn_string_clear;
__cxa_dyn_string_copy_cstr;
__cxa_dyn_string_copy;
__cxa_dyn_string_delete;
__cxa_dyn_string_eq;
__cxa_dyn_string_init;
__cxa_dyn_string_insert_char;
__cxa_dyn_string_insert_cstr;
__cxa_dyn_string_insert;
__cxa_dyn_string_new;
__cxa_dyn_string_prepend_cstr;
__cxa_dyn_string_prepend;
__cxa_dyn_string_release;
__cxa_dyn_string_resize;
__cxa_dyn_string_substring;
local:
*;
};

View File

@ -1,6 +1,6 @@
// std::messages implementation details, generic version -*- C++ -*-
// Copyright (C) 2001 Free Software Foundation, Inc.
// Copyright (C) 2001, 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
@ -34,6 +34,16 @@
// Written by Benjamin Kosnik <bkoz@redhat.com>
// Non-virtual member functions.
template<typename _CharT>
messages<_CharT>::messages(size_t __refs)
: locale::facet(__refs)
{ _M_c_locale_messages = _S_c_locale; }
template<typename _CharT>
messages<_CharT>::messages(__c_locale __cloc, const char*, size_t __refs)
: locale::facet(__refs)
{ _M_c_locale_messages = _S_c_locale; }
template<typename _CharT>
typename messages<_CharT>::catalog
messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc,
@ -41,6 +51,10 @@
{ return this->do_open(__s, __loc); }
// Virtual member functions.
template<typename _CharT>
messages<_CharT>::~messages()
{ _S_destroy_c_locale(_M_c_locale_messages); }
template<typename _CharT>
typename messages<_CharT>::catalog
messages<_CharT>::do_open(const basic_string<char>&, const locale&) const
@ -56,3 +70,12 @@
void
messages<_CharT>::do_close(catalog) const
{ }
// messages_byname
template<typename _CharT>
messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs)
: messages<_CharT>(__refs)
{
_S_destroy_c_locale(_M_c_locale_messages);
_S_create_c_locale(_M_c_locale_messages, __s);
}

View File

@ -1,4 +1,4 @@
// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
// std::time_get, std::time_put implementation, generic version -*- C++ -*-
// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
//
@ -56,8 +56,8 @@ namespace std
__timepunct<char>::_M_initialize_timepunct(__c_locale)
{
// "C" locale
_M_date_format = "%m/%d/%Y";
_M_date_era_format = "%m/%d/%Y";
_M_date_format = "%m/%d/%y";
_M_date_era_format = "%m/%d/%y";
_M_time_format = "%H:%M:%S";
_M_time_era_format = "%H:%M:%S";
_M_date_time_format = "";

View File

@ -0,0 +1,61 @@
// std::time_get, std::time_put implementation, generic version -*- C++ -*-
// 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
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 2, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING. If not, write to the Free
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
// USA.
// As a special exception, you may use this file as part of a free software
// library without restriction. Specifically, if other files instantiate
// templates or use macros or inline functions from this file, or you compile
// this file and link it with other files to produce an executable, this
// file does not by itself cause the resulting executable to be covered by
// the GNU General Public License. This exception does not however
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.
//
// ISO C++ 14882: 22.2.5.1.2 - time_get functions
// ISO C++ 14882: 22.2.5.3.2 - time_put functions
//
// Written by Benjamin Kosnik <bkoz@redhat.com>
template<typename _CharT>
__timepunct<_CharT>::__timepunct(size_t __refs)
: locale::facet(__refs)
{
_M_name_timepunct = _S_c_name;
_M_initialize_timepunct();
}
template<typename _CharT>
__timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s,
size_t __refs)
: locale::facet(__refs)
{
_M_name_timepunct = new char[strlen(__s) + 1];
strcpy(_M_name_timepunct, __s);
_M_initialize_timepunct(__cloc);
}
template<typename _CharT>
__timepunct<_CharT>::~__timepunct()
{
if (_S_c_name != _M_name_timepunct)
delete [] _M_name_timepunct;
_S_destroy_c_locale(_M_c_locale_timepunct);
}

View File

@ -1,6 +1,6 @@
// std::messages 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
@ -28,12 +28,34 @@
// the GNU General Public License.
//
// ISO C++ 14882: 22.2.7.1.2 messages virtual functions
// ISO C++ 14882: 22.2.7.1.2 messages functions
//
// Written by Benjamin Kosnik <bkoz@redhat.com>
// Non-virtual member functions.
template<typename _CharT>
messages<_CharT>::messages(size_t __refs)
: locale::facet(__refs)
{
#if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2))
_M_name_messages = _S_c_name;
#endif
_M_c_locale_messages = _S_c_locale;
}
template<typename _CharT>
messages<_CharT>::messages(__c_locale __cloc,
const char* __s, size_t __refs)
: locale::facet(__refs)
{
#if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2))
_M_name_messages = new char[strlen(__s) + 1];
strcpy(_M_name_messages, __s);
#endif
_M_c_locale_messages = _S_clone_c_locale(__cloc);
}
template<typename _CharT>
typename messages<_CharT>::catalog
messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc,
@ -43,6 +65,17 @@
return this->do_open(__s, __loc);
}
// Virtual member functions.
template<typename _CharT>
messages<_CharT>::~messages()
{
#if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2))
if (_S_c_name != _M_name_messages)
delete [] _M_name_messages;
#endif
_S_destroy_c_locale(_M_c_locale_messages);
}
template<typename _CharT>
typename messages<_CharT>::catalog
messages<_CharT>::do_open(const basic_string<char>& __s,
@ -58,3 +91,18 @@
void
messages<_CharT>::do_close(catalog) const
{ }
// messages_byname
template<typename _CharT>
messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs)
: messages<_CharT>(__refs)
{
#if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2))
if (_S_c_name != _M_name_messages)
delete [] _M_name_messages;
_M_name_messages = new char[strlen(__s) + 1];
strcpy(_M_name_messages, __s);
#endif
_S_destroy_c_locale(_M_c_locale_messages);
_S_create_c_locale(_M_c_locale_messages, __s);
}

View File

@ -0,0 +1,67 @@
// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
// 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
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 2, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING. If not, write to the Free
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
// USA.
// As a special exception, you may use this file as part of a free software
// library without restriction. Specifically, if other files instantiate
// templates or use macros or inline functions from this file, or you compile
// this file and link it with other files to produce an executable, this
// file does not by itself cause the resulting executable to be covered by
// the GNU General Public License. This exception does not however
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.
//
// ISO C++ 14882: 22.2.5.1.2 - time_get functions
// ISO C++ 14882: 22.2.5.3.2 - time_put functions
//
// Written by Benjamin Kosnik <bkoz@redhat.com>
template<typename _CharT>
__timepunct<_CharT>::__timepunct(size_t __refs)
: locale::facet(__refs)
{
#if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2))
_M_name_timepunct = _S_c_name;
#endif
_M_initialize_timepunct();
}
template<typename _CharT>
__timepunct<_CharT>::__timepunct(__c_locale __cloc,
const char* __s, size_t __refs)
: locale::facet(__refs)
{
#if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2))
_M_name_timepunct = new char[strlen(__s) + 1];
strcpy(_M_name_timepunct, __s);
#endif
_M_initialize_timepunct(__cloc);
}
template<typename _CharT>
__timepunct<_CharT>::~__timepunct()
{
#if !(__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2))
if (_S_c_name != _M_name_timepunct)
delete [] _M_name_timepunct;
#endif
_S_destroy_c_locale(_M_c_locale_timepunct);
}

File diff suppressed because it is too large Load Diff

View File

@ -13,7 +13,7 @@ ORIGINAL_LD_FOR_MULTILIBS=$LD
PACKAGE=libstdc++
AC_SUBST(PACKAGE)
# For libtool versioning info, format is CURRENT:REVISION:AGE
libtool_VERSION=5:1:0
libtool_VERSION=5:2:0
AC_SUBST(libtool_VERSION)
GLIBCPP_TOPREL_CONFIGURE
@ -279,6 +279,7 @@ else
GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT
GLIBCPP_CHECK_WCHAR_T_SUPPORT
GLIBCPP_CHECK_STDLIB_SUPPORT
GLIBCPP_CHECK_UNISTD_SUPPORT
AC_LC_MESSAGES
AC_TRY_COMPILE([

View File

@ -320,6 +320,7 @@ target_headers_extra = \
${target_builddir}/c++io.h \
${target_builddir}/c++locale.h \
${target_builddir}/messages_members.h \
${target_builddir}/time_members.h \
${target_builddir}/codecvt_specializations.h
thread_target_headers = \
@ -409,6 +410,7 @@ ${target_builddir}/stamp-target: ${target_headers} stamp-${target_alias}
@LN_S@ ${glibcpp_srcdir}/@CSTDIO_H@ c++io.h || true ;\
@LN_S@ ${glibcpp_srcdir}/@CLOCALE_H@ c++locale.h || true ;\
@LN_S@ ${glibcpp_srcdir}/@CMESSAGES_H@ messages_members.h || true ;\
@LN_S@ ${glibcpp_srcdir}/@CTIME_H@ time_members.h || true ;\
@LN_S@ ${glibcpp_srcdir}/@CCODECVT_H@ codecvt_specializations.h || true ;\
echo `date` > stamp-target; \
fi
@ -465,32 +467,32 @@ ${target_builddir}/gthr-default.h: ${toplevel_srcdir}/gcc/${glibcpp_thread_h} \
# the rest are taken from the original source tree.
gxx_include_dir = @gxx_include_dir@
install-data-local:
$(mkinstalldirs) ${gxx_include_dir}
$(mkinstalldirs) ${gxx_include_dir}/${bits_builddir}
$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}
$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${bits_builddir}
for file in ${bits_headers}; do \
$(INSTALL_DATA) $${file} ${gxx_include_dir}/${bits_builddir}; done
$(mkinstalldirs) ${gxx_include_dir}/${backward_builddir}
$(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${bits_builddir}; done
$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${backward_builddir}
for file in ${backward_headers}; do \
$(INSTALL_DATA) $${file} ${gxx_include_dir}/${backward_builddir}; done
$(mkinstalldirs) ${gxx_include_dir}/${ext_builddir}
$(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${backward_builddir}; done
$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${ext_builddir}
for file in ${ext_headers}; do \
$(INSTALL_DATA) $${file} ${gxx_include_dir}/${ext_builddir}; done
$(mkinstalldirs) ${gxx_include_dir}/${c_base_builddir}
$(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${ext_builddir}; done
$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${c_base_builddir}
for file in ${c_base_headers_rename}; do \
$(INSTALL_DATA) ${c_base_builddir}/$${file} ${gxx_include_dir}; done
$(INSTALL_DATA) ${c_base_builddir}/$${file} $(DESTDIR)${gxx_include_dir}/${c_base_builddir}; done
c_base_headers_extra_install='$(c_base_headers_extra)';\
for file in $$c_base_headers_extra_install; do \
$(INSTALL_DATA) $$file ${gxx_include_dir}/${bits_builddir}; done
$(INSTALL_DATA) $$file $(DESTDIR)${gxx_include_dir}/${bits_builddir}; done
c_compatibility_headers_install='$(c_compatibility_headers_extra)';\
for file in $$c_compatibility_headers_install; do \
$(INSTALL_DATA) $$file ${gxx_include_dir}; done
$(mkinstalldirs) ${gxx_include_dir}/${std_builddir}
$(INSTALL_DATA) $$file $(DESTDIR)${gxx_include_dir}; done
$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${std_builddir}
for file in ${std_headers_rename}; do \
$(INSTALL_DATA) ${std_builddir}/$${file} ${gxx_include_dir}; done
$(mkinstalldirs) ${gxx_include_dir}/${target_builddir}
$(INSTALL_DATA) ${std_builddir}/$${file} $(DESTDIR)${gxx_include_dir}/${std_builddir}; done
$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${target_builddir}
for file in ${target_headers} ${target_headers_extra} \
${thread_target_headers}; do \
$(INSTALL_DATA) $${file} ${gxx_include_dir}/${target_builddir}; done
$(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${target_builddir}; done
# By adding these files here, automake will remove them for 'make clean'
#CLEANFILES = ${allstamps}

View File

@ -76,6 +76,7 @@ CMESSAGES_H = @CMESSAGES_H@
CPP = @CPP@
CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@
CSTDIO_H = @CSTDIO_H@
CTIME_H = @CTIME_H@
CXXCPP = @CXXCPP@
C_INCLUDE_DIR = @C_INCLUDE_DIR@
DEBUG_FLAGS = @DEBUG_FLAGS@
@ -424,6 +425,7 @@ target_headers_extra = \
${target_builddir}/c++io.h \
${target_builddir}/c++locale.h \
${target_builddir}/messages_members.h \
${target_builddir}/time_members.h \
${target_builddir}/codecvt_specializations.h
@ -630,6 +632,7 @@ ${target_builddir}/stamp-target: ${target_headers} stamp-${target_alias}
@LN_S@ ${glibcpp_srcdir}/@CSTDIO_H@ c++io.h || true ;\
@LN_S@ ${glibcpp_srcdir}/@CLOCALE_H@ c++locale.h || true ;\
@LN_S@ ${glibcpp_srcdir}/@CMESSAGES_H@ messages_members.h || true ;\
@LN_S@ ${glibcpp_srcdir}/@CTIME_H@ time_members.h || true ;\
@LN_S@ ${glibcpp_srcdir}/@CCODECVT_H@ codecvt_specializations.h || true ;\
echo `date` > stamp-target; \
fi
@ -672,32 +675,32 @@ ${target_builddir}/gthr-default.h: ${toplevel_srcdir}/gcc/${glibcpp_thread_h} \
-e 's,^#include "\(.*\)",#include <bits/\1>,g' \
< ${toplevel_srcdir}/gcc/${glibcpp_thread_h} > $@
install-data-local:
$(mkinstalldirs) ${gxx_include_dir}
$(mkinstalldirs) ${gxx_include_dir}/${bits_builddir}
$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}
$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${bits_builddir}
for file in ${bits_headers}; do \
$(INSTALL_DATA) $${file} ${gxx_include_dir}/${bits_builddir}; done
$(mkinstalldirs) ${gxx_include_dir}/${backward_builddir}
$(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${bits_builddir}; done
$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${backward_builddir}
for file in ${backward_headers}; do \
$(INSTALL_DATA) $${file} ${gxx_include_dir}/${backward_builddir}; done
$(mkinstalldirs) ${gxx_include_dir}/${ext_builddir}
$(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${backward_builddir}; done
$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${ext_builddir}
for file in ${ext_headers}; do \
$(INSTALL_DATA) $${file} ${gxx_include_dir}/${ext_builddir}; done
$(mkinstalldirs) ${gxx_include_dir}/${c_base_builddir}
$(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${ext_builddir}; done
$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${c_base_builddir}
for file in ${c_base_headers_rename}; do \
$(INSTALL_DATA) ${c_base_builddir}/$${file} ${gxx_include_dir}; done
$(INSTALL_DATA) ${c_base_builddir}/$${file} $(DESTDIR)${gxx_include_dir}/${c_base_builddir}; done
c_base_headers_extra_install='$(c_base_headers_extra)';\
for file in $$c_base_headers_extra_install; do \
$(INSTALL_DATA) $$file ${gxx_include_dir}/${bits_builddir}; done
$(INSTALL_DATA) $$file $(DESTDIR)${gxx_include_dir}/${bits_builddir}; done
c_compatibility_headers_install='$(c_compatibility_headers_extra)';\
for file in $$c_compatibility_headers_install; do \
$(INSTALL_DATA) $$file ${gxx_include_dir}; done
$(mkinstalldirs) ${gxx_include_dir}/${std_builddir}
$(INSTALL_DATA) $$file $(DESTDIR)${gxx_include_dir}; done
$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${std_builddir}
for file in ${std_headers_rename}; do \
$(INSTALL_DATA) ${std_builddir}/$${file} ${gxx_include_dir}; done
$(mkinstalldirs) ${gxx_include_dir}/${target_builddir}
$(INSTALL_DATA) ${std_builddir}/$${file} $(DESTDIR)${gxx_include_dir}/${std_builddir}; done
$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${target_builddir}
for file in ${target_headers} ${target_headers_extra} \
${thread_target_headers}; do \
$(INSTALL_DATA) $${file} ${gxx_include_dir}/${target_builddir}; done
$(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${target_builddir}; done
# By adding these files here, automake will remove them for 'make clean'
#CLEANFILES = ${allstamps}

View File

@ -53,10 +53,6 @@ using std::__debug_alloc;
using std::__alloc;
using std::__single_client_alloc;
using std::allocator;
#ifdef __USE_MALLOC
using std::malloc_alloc;
#else
using std::__default_alloc_template;
#endif
#endif

View File

@ -34,7 +34,7 @@
#include <bits/os_defines.h>
// The current version of the C++ library in compressed ISO date format.
#define __GLIBCPP__ 20021119
#define __GLIBCPP__ 20030205
// This is necessary until GCC supports separate template
// compilation.
@ -74,13 +74,8 @@
// so, please report any possible issues to libstdc++@gcc.gnu.org .
// Do not define __USE_MALLOC on the command line. Enforce it here:
#ifdef __USE_MALLOC
#error __USE_MALLOC should only be defined within \
libstdc++-v3/include/bits/c++config before full recompilation of the library.
#error __USE_MALLOC should never be defined. Read the release notes.
#endif
// Define __USE_MALLOC after this point in the file in order to aid debugging
// or globally change allocation policy. This breaks the ABI, thus
// completely recompile the library. A patch to better support
// changing the global allocator policy would be probably be accepted.
// The remainder of the prewritten config is mostly automatic; all the
// user hooks are listed above.

View File

@ -1,6 +1,6 @@
// File based streams -*- C++ -*-
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@ -461,10 +461,7 @@ namespace std
bool __testbeg = gptr() == eback() && pptr() == pbase();
if (__testbeg && _M_buf_locale != __loc)
{
_M_buf_locale = __loc;
_M_buf_locale_init = true;
}
_M_buf_locale = __loc;
// NB this may require the reconversion of previously
// converted chars. This in turn may cause the reconstruction

View File

@ -1011,22 +1011,10 @@ namespace std
public:
explicit
__timepunct(size_t __refs = 0)
: locale::facet(__refs)
{
_M_name_timepunct = new char[2];
strcpy(_M_name_timepunct, "C");
_M_initialize_timepunct();
}
__timepunct(size_t __refs = 0);
explicit
__timepunct(__c_locale __cloc, const char* __s, size_t __refs = 0)
: locale::facet(__refs)
{
_M_name_timepunct = new char[strlen(__s) + 1];
strcpy(_M_name_timepunct, __s);
_M_initialize_timepunct(__cloc);
}
__timepunct(__c_locale __cloc, const char* __s, size_t __refs = 0);
void
_M_put(_CharT* __s, size_t __maxlen, const _CharT* __format,
@ -1123,11 +1111,7 @@ namespace std
protected:
virtual
~__timepunct()
{
delete [] _M_name_timepunct;
_S_destroy_c_locale(_M_c_locale_timepunct);
}
~__timepunct();
// For use at construction time only.
void
@ -1169,6 +1153,8 @@ namespace std
template<typename _CharT>
const _CharT* __timepunct<_CharT>::_S_timezones[14];
// Include host and configuration specific timepunct functions.
#include <bits/time_members.h>
template<typename _CharT, typename _InIter>
class time_get : public locale::facet, public time_base
@ -1628,32 +1614,17 @@ namespace std
// Underlying "C" library locale information saved from
// initialization, needed by messages_byname as well.
__c_locale _M_c_locale_messages;
#if 1
// Only needed if glibc < 2.3
char* _M_name_messages;
#endif
public:
static locale::id id;
explicit
messages(size_t __refs = 0)
: locale::facet(__refs)
{
_M_name_messages = new char[2];
strcpy(_M_name_messages, "C");
_M_c_locale_messages = _S_c_locale;
}
messages(size_t __refs = 0);
// Non-standard.
explicit
messages(__c_locale __cloc, const char* __s, size_t __refs = 0)
: locale::facet(__refs)
{
_M_name_messages = new char[strlen(__s) + 1];
strcpy(_M_name_messages, __s);
_M_c_locale_messages = _S_clone_c_locale(__cloc);
}
messages(__c_locale __cloc, const char* __s, size_t __refs = 0);
catalog
open(const basic_string<char>& __s, const locale& __loc) const
@ -1673,11 +1644,7 @@ namespace std
protected:
virtual
~messages()
{
delete [] _M_name_messages;
_S_destroy_c_locale(_M_c_locale_messages);
}
~messages();
virtual catalog
do_open(const basic_string<char>&, const locale&) const;
@ -1751,9 +1718,6 @@ namespace std
messages<wchar_t>::do_get(catalog, int, int, const wstring&) const;
#endif
// Include host and configuration specific messages virtual functions.
#include <bits/messages_members.h>
template<typename _CharT>
class messages_byname : public messages<_CharT>
{
@ -1762,15 +1726,7 @@ namespace std
typedef basic_string<_CharT> string_type;
explicit
messages_byname(const char* __s, size_t __refs = 0)
: messages<_CharT>(__refs)
{
delete [] _M_name_messages;
_M_name_messages = new char[strlen(__s) + 1];
strcpy(_M_name_messages, __s);
_S_destroy_c_locale(_M_c_locale_messages);
_S_create_c_locale(_M_c_locale_messages, __s);
}
messages_byname(const char* __s, size_t __refs = 0);
protected:
virtual
@ -1778,6 +1734,9 @@ namespace std
{ }
};
// Include host and configuration specific messages functions.
#include <bits/messages_members.h>
// Subclause convenience interfaces, inlines.
// NB: These are inline because, when used in a loop, some compilers

View File

@ -622,9 +622,14 @@ namespace std
_M_convert_float(_OutIter __s, ios_base& __io, _CharT __fill, char __mod,
_ValueT __v) const
{
// Note: digits10 is rounded down. We need to add 1 to ensure
// Note: digits10 is rounded down: we need to add 1 to ensure
// we get the full available precision.
const int __max_digits = numeric_limits<_ValueT>::digits10 + 1;
// Then, in general, one more 1 needs to be added since, when the
// %{g,G} conversion specifiers are chosen inside _S_format_float, the
// precision field is "the maximum number of significant digits", *not*
// the "number of digits to appear after the decimal point", as happens
// for %{e,E,f,F} (C99, 7.19.6.1,4).
const int __max_digits = numeric_limits<_ValueT>::digits10 + 2;
streamsize __prec = __io.precision();
if (__prec > static_cast<streamsize>(__max_digits))
@ -1628,7 +1633,7 @@ namespace std
// Find smallest matching string.
size_t __minlen = 10;
for (size_t __i2 = 0; __i2 < __nmatches; ++__i2)
__minlen = min(__minlen,
__minlen = min(__minlen,
__traits_type::length(__names[__matches[__i2]]));
if (__pos < __minlen && __beg != __end)

View File

@ -264,7 +264,7 @@ namespace std
// The "C" reference locale
static _Impl* _S_classic;
// Current global reference locale
// Current global locale
static _Impl* _S_global;
// Number of standard categories. For C++, these categories are
@ -419,10 +419,13 @@ namespace std
_Atomic_word _M_references;
protected:
// Contains data from the underlying "C" library for default "C"
// or "POSIX" locale.
static __c_locale _S_c_locale;
// Contains data from the underlying "C" library for for the
// classic locale.
static __c_locale _S_c_locale;
// String literal for the name of the classic locale.
static char _S_c_name[2];
explicit
facet(size_t __refs = 0) throw();

View File

@ -120,7 +120,8 @@ namespace std
inline slice_array<_Tp>&
slice_array<_Tp>::operator=(const slice_array<_Tp>& __a)
{
__valarray_copy(_M_array, _M_sz, _M_stride, __a._M_array, __a._M_stride);
__valarray_copy(__a._M_array, __a._M_sz, __a._M_stride,
_M_array, _M_stride);
return *this;
}

File diff suppressed because it is too large Load Diff

View File

@ -611,7 +611,9 @@ template <typename _Alloc>
}
void reserve(size_type __n) {
if (capacity() < __n) {
if (__n > this->max_size())
__throw_length_error("vector::reserve");
if (this->capacity() < __n) {
_Bit_type * __q = _M_bit_alloc(__n);
_M_finish = copy(begin(), end(), iterator(__q, 0));
_M_deallocate();

View File

@ -391,7 +391,9 @@ class vector : protected _Vector_base<_Tp, _Alloc>
* reallocation of memory and copy of vector data.
*/
void reserve(size_type __n) {
if (capacity() < __n) {
if (__n > this->max_size())
__throw_length_error("vector::reserve");
if (this->capacity() < __n) {
const size_type __old_size = size();
pointer __tmp = _M_allocate_and_copy(__n, _M_start, _M_finish);
_Destroy(_M_start, _M_finish);

View File

@ -69,7 +69,7 @@ namespace std
bool __testpos = _M_in_cur && _M_in_beg < _M_in_cur;
bool __testne = _M_in_cur && !traits_type::eq(__c, this->gptr()[-1]);
if (!__testpos || __testne)
__ret = pbackfail(traits_type::to_int_type(__c));
__ret = this->pbackfail(traits_type::to_int_type(__c));
else
{
_M_in_cur_move(-1);
@ -209,7 +209,8 @@ namespace std
{
while (__testput && __bufsize != -1)
{
if (__bufsize != 0 && __sbin->gptr() != NULL)
if (__bufsize != 0 && __sbin->gptr() != NULL
&& __sbin->gptr() + __bufsize <= __sbin->egptr())
{
__xtrct = __sbout->sputn(__sbin->gptr(), __bufsize);
__ret += __xtrct;
@ -219,8 +220,11 @@ namespace std
}
else
{
_CharT __buf[256];
streamsize __charsread = __sbin->sgetn(__buf, sizeof(__buf));
size_t __size =
__sbin->_M_buf_size_opt > 0 ? __sbin->_M_buf_size_opt : 1;
_CharT* __buf =
static_cast<_CharT*>(__builtin_alloca(sizeof(_CharT) * __size));
streamsize __charsread = __sbin->sgetn(__buf, __size);
__xtrct = __sbout->sputn(__buf, __charsread);
__ret += __xtrct;
if (__xtrct != __charsread)

View File

@ -1,6 +1,6 @@
// File based streams -*- C++ -*-
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@ -141,10 +141,10 @@ namespace std
_M_underflow_common(bool __bump);
virtual int_type
underflow() { return _M_underflow_common(false); }
underflow();
virtual int_type
uflow() { return _M_underflow_common(true); }
uflow();
virtual int_type
pbackfail(int_type __c = _Traits::eof());
@ -297,6 +297,18 @@ namespace std
basic_filebuf<wchar_t>::_M_underflow_common(bool __bump);
#endif
// Generic definitions.
template <typename _CharT, typename _Traits>
basic_filebuf<_CharT, _Traits>::int_type
basic_filebuf<_CharT, _Traits>::underflow()
{ return _M_underflow_common(false); }
template <typename _CharT, typename _Traits>
basic_filebuf<_CharT, _Traits>::int_type
basic_filebuf<_CharT, _Traits>::uflow()
{ return _M_underflow_common(true); }
// 27.8.1.5 Template class basic_ifstream
/**
* Derivation of general input streams, specific to files.

View File

@ -1,6 +1,6 @@
// Stream buffer classes -*- C++ -*-
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@ -243,7 +243,6 @@ namespace std
_M_buf_size = 0;
_M_buf_size_opt = 0;
_M_mode = ios_base::openmode(0);
_M_buf_locale_init = false;
}
// Locales:
@ -257,12 +256,7 @@ namespace std
locale
getloc() const
{
if (_M_buf_locale_init)
return _M_buf_locale;
else
return locale();
}
{ return _M_buf_locale; }
// Buffer and positioning:
__streambuf_type*
@ -351,7 +345,7 @@ namespace std
_M_buf_unified(false), _M_in_beg(0), _M_in_cur(0), _M_in_end(0),
_M_out_beg(0), _M_out_cur(0), _M_out_end(0),
_M_mode(ios_base::openmode(0)), _M_buf_locale(locale()),
_M_buf_locale_init(false), _M_pback_cur_save(0), _M_pback_end_save(0),
_M_pback_cur_save(0), _M_pback_end_save(0),
_M_pback_init(false)
{ }
@ -405,7 +399,6 @@ namespace std
virtual void
imbue(const locale& __loc)
{
_M_buf_locale_init = true;
if (_M_buf_locale != __loc)
_M_buf_locale = __loc;
}

View File

@ -76,6 +76,7 @@ CMESSAGES_H = @CMESSAGES_H@
CPP = @CPP@
CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@
CSTDIO_H = @CSTDIO_H@
CTIME_H = @CTIME_H@
CXX = @CXX@
CXXCPP = @CXXCPP@
C_INCLUDE_DIR = @C_INCLUDE_DIR@

View File

@ -75,6 +75,7 @@ CMESSAGES_H = @CMESSAGES_H@
CPP = @CPP@
CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@
CSTDIO_H = @CSTDIO_H@
CTIME_H = @CTIME_H@
CXXCPP = @CXXCPP@
C_INCLUDE_DIR = @C_INCLUDE_DIR@
DEBUG_FLAGS = @DEBUG_FLAGS@

View File

@ -1,5 +1,5 @@
// -*- C++ -*- The GNU C++ exception personality routine.
// Copyright (C) 2001 Free Software Foundation, Inc.
// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
//
// This file is part of GNU CC.
//

View File

@ -1,5 +1,5 @@
// Methods for type_info for -*- C++ -*- Run Time Type Identification.
// Copyright (C) 1994, 1996, 1998, 1999, 2000, 2001, 2002
// Copyright (C) 1994, 1996, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation
//
// This file is part of GNU CC.
@ -465,8 +465,9 @@ __do_dyncast (ptrdiff_t src2dst,
result.whole2dst =
__sub_kind (result.whole2dst | result2.whole2dst);
}
else if ((result.dst_ptr != 0 | result_ambig)
&& (result2.dst_ptr != 0 | result2_ambig))
else if ((result.dst_ptr != 0 & result2.dst_ptr != 0)
|| (result.dst_ptr != 0 & result2_ambig)
|| (result2.dst_ptr != 0 & result_ambig))
{
// Found two different DST_TYPE bases, or a valid one and a set of
// ambiguous ones, must disambiguate. See whether SRC_PTR is

View File

@ -75,6 +75,7 @@ CMESSAGES_H = @CMESSAGES_H@
CPP = @CPP@
CPU_LIMITS_INC_SRCDIR = @CPU_LIMITS_INC_SRCDIR@
CSTDIO_H = @CSTDIO_H@
CTIME_H = @CTIME_H@
CXXCPP = @CXXCPP@
C_INCLUDE_DIR = @C_INCLUDE_DIR@
DEBUG_FLAGS = @DEBUG_FLAGS@

View File

@ -55,12 +55,13 @@ namespace std
codecvt_base::result
codecvt<char, char, mbstate_t>::
do_out(state_type&, const intern_type* __from,
const intern_type* __from_end, const intern_type*& __from_next,
extern_type* __to, extern_type* __to_end,
const intern_type*, const intern_type*& __from_next,
extern_type* __to, extern_type*,
extern_type*& __to_next) const
{
size_t __len = min(__from_end - __from, __to_end - __to);
memcpy(__to, __from, __len);
// _GLIBCPP_RESOLVE_LIB_DEFECTS
// According to the resolution of DR19, "If returns noconv [...]
// there are no changes to the values in [to, to_limit)."
__from_next = __from;
__to_next = __to;
return noconv;
@ -78,12 +79,13 @@ namespace std
codecvt_base::result
codecvt<char, char, mbstate_t>::
do_in(state_type&, const extern_type* __from,
const extern_type* __from_end, const extern_type*& __from_next,
intern_type* __to, intern_type* __to_end,
const extern_type*, const extern_type*& __from_next,
intern_type* __to, intern_type*,
intern_type*& __to_next) const
{
size_t __len = min(__from_end - __from, __to_end - __to);
memcpy(__to, __from, __len);
// _GLIBCPP_RESOLVE_LIB_DEFECTS
// According to the resolution of DR19, "If returns noconv [...]
// there are no changes to the values in [to, to_limit)."
__from_next = __from;
__to_next = __to;
return noconv;

View File

@ -38,6 +38,9 @@
#include <fstream>
#include <bits/atomicity.h>
#include <ext/stdio_filebuf.h>
#ifdef _GLIBCPP_HAVE_UNISTD_H
#include <unistd.h>
#endif
namespace __gnu_cxx
{
@ -157,7 +160,11 @@ namespace std
ios_base::Init::_S_ios_create(bool __sync)
{
int __out_size = __sync ? 0 : static_cast<int>(BUFSIZ);
int __in_size = __sync ? 1 : static_cast<int>(BUFSIZ);
#ifdef _GLIBCPP_HAVE_ISATTY
int __in_size = (__sync || isatty (0)) ? 1 : static_cast<int>(BUFSIZ);
#else
int __in_size = 1;
#endif
// NB: The file globals.cc creates the four standard files
// with NULL buffers. At this point, we swap out the dummy NULL

View File

@ -1,4 +1,4 @@
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@ -367,9 +367,7 @@ namespace std
const locale&
locale::classic()
{
static _STL_mutex_lock __lock __STL_MUTEX_INITIALIZER;
_STL_auto_lock __auto(__lock);
// Locking protocol: singleton-called-before-threading-starts
if (!_S_classic)
{
try
@ -453,6 +451,8 @@ namespace std
__c_locale
locale::facet::_S_c_locale;
char locale::facet::_S_c_name[2];
locale::facet::
~facet() { }

View File

@ -141,36 +141,31 @@ namespace std
}
// Name all the categories.
size_t __len = strlen(__s);
if (!strchr(__s, ';'))
{
size_t __len = strlen(__s) + 1;
for (size_t __i = 0;
__i < _S_categories_size + _S_extra_categories_size; ++__i)
{
_M_names[__i] = new char[__len];
_M_names[__i] = new char[__len + 1];
strcpy(_M_names[__i], __s);
}
}
else
{
char* __tmp = strdup(__s);
__tmp[strlen(__tmp)] = ';';
strtok(__tmp, "=;");
const char* __beg = __s;
for (size_t __i = 0;
__i < _S_categories_size + _S_extra_categories_size - 1; ++__i)
__i < _S_categories_size + _S_extra_categories_size; ++__i)
{
char* __src = strtok(NULL, "=;");
char* __new = new char[strlen(__src) + 1];
strcpy(__new, __src);
__beg = strchr(__beg, '=') + 1;
const char* __end = strchr(__beg, ';');
if (!__end)
__end = __s + __len;
char* __new = new char[__end - __beg + 1];
memcpy(__new, __beg, __end - __beg);
__new[__end - __beg] = '\0';
_M_names[__i] = __new;
strtok(NULL, "=;");
}
char* __src = strtok(NULL, "=;");
char* __new = new char[strlen(__src) + 1];
strcpy(__new, __src);
_M_names[_S_categories_size + _S_extra_categories_size - 1] = __new;
free(__tmp);
}
// Construct all standard facets and add them to _M_facets.
@ -214,7 +209,10 @@ namespace std
: _M_references(__refs), _M_facets_size(_GLIBCPP_NUM_FACETS)
{
// Initialize the underlying locale model.
locale::facet::_S_create_c_locale(locale::facet::_S_c_locale, "C");
locale::facet::_S_c_name[0] = 'C';
locale::facet::_S_c_name[1] = '\0';
locale::facet::_S_create_c_locale(locale::facet::_S_c_locale,
locale::facet::_S_c_name);
_M_facets = new(&facet_vec) facet*[_M_facets_size];
for (size_t __i = 0; __i < _M_facets_size; ++__i)
@ -225,7 +223,7 @@ namespace std
__i < _S_categories_size + _S_extra_categories_size; ++__i)
{
_M_names[__i] = new (&facet_name[__i]) char[2];
strcpy(_M_names[__i], "C");
strcpy(_M_names[__i], locale::facet::_S_c_name);
}
// This is needed as presently the C++ version of "C" locales

View File

@ -39,9 +39,5 @@ namespace std
template class allocator<char>;
template class allocator<wchar_t>;
#ifdef __USE_MALLOC
template class __malloc_alloc_template<0>;
#else
template class __default_alloc_template<true, 0>;
#endif
} // namespace std