2000-12-31  Alexandre Oliva  <aoliva@redhat.com>

	* include/c_std/bits/std_cstdlib.h (mblen): Protect against macro.

2000-12-23  Benjamin Kosnik  <bkoz@redhat.com>

	* src/Makefile.am (CSTD_INCLUDES): Change from CSHADOW_INCLUDES.
	(strstream.cc): Add special rule for deprecated files.
	* libsupc++/Makefile.am (INCLUDES): Sync.
	* acinclude.m4 (GLIBCPP_EXPORT_INCLUDES): And here.

	Reported by Fred Fish  <fnf@ninemoons.com>
	* include/backward/iomanip.h: Remove backward from include
	* include/backward/strstream.h: Same.
	* include/backward/stream.h: Same.
	* include/backward/ostream.h: Same.
	* include/backward/istream.h: Same.
	* src/strstream.cc: And here.

	Reported by  Brad Garcia  <bgarcia@laurelnetworks.com>
	* src/string-inst.cc (_S_find): Use generic template.
	* include/bits/string.tcc (_S_find): Remove specializations

2000-12-22  Benjamin Kosnik  <bkoz@fillmore.redhat.com>

	Attempt to make locale visible in gdb.
	* include/bits/std_locale.h: Remove codecvt.h include.
	* include/bits/locale_facets.h: Add here, after ctype decls.
	* include/bits/codecvt.h: Remove std namespace, as assumed to be
	in std now.

	* include/bits/locale_facets.h: Consistently move generic static
	member definitions directly after generic facet declarations.
	* include/bits/locale_facets.tcc: From here.

	* src/locale.cc: Organize locale::id static definitions for
	required facets.
	* src/codecvt.cc (codecvt<char...>): Remove locale::id definition.
	(codecvt<wchar_t...>): Same.
	* src/localename: And here.

	* include/bits/localefwd.h (_Count_ones): Change _S_count to _M_count.
	Same for _M_halfcount.

2000-12-22  Alexandre Oliva  <aoliva@redhat.com>

	* mknumeric_limits: Output to temporary files, and rename them at
	the end.

2000-12-21  Benjamin Kosnik  <bkoz@redhat.com>

	* configure.in: Change GLIBCPP_ENABLE_SHADOW to
	GLIBCPP_ENABLE_CHEADERS.
	* acinclude.m4 (GLIBCPP_ENABLE_SHADOW): Change to
	ENABLE_CHEADERS.  C_INCLUDE_DIR defaults to c_std from c.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* include/c: Move to ...
	* include/c_std: ...here.
	* include/c_std: Move to ...
	* include/c_shadow: ...here.
	* include/c: Repopulate, with simple headers.
	* docs/html/configopts.html: Adjust docs.

2000-12-21  Joseph S. Myers  <jsm28@cam.ac.uk>

	* acinclude.m4, configure.in, mkcheck.in,
	testsuite/21_strings/ctor_copy_dtor.cc,
	testsuite/21_strings/inserters_extractors.cc,
	testsuite/23_containers/map_operators.cc,
	testsuite/23_containers/vector_element_access.cc,
	testsuite/25_algorithms/lower_bound.cc,
	testsuite/27_io/ifstream_members.cc,
	testsuite/27_io/istream_extractor_arith.cc,
	testsuite/27_io/istream_unformatted.cc,
	testsuite/27_io/ofstream_members.cc,
	testsuite/27_io/ostream_inserter_char.cc,
	testsuite/27_io/ostream_inserter_other.cc,
	testsuite/27_io/ostream_manip.cc, testsuite/27_io/streambuf.cc:
	Change sourceware.cygnus.com and sources.redhat.com URLs for
	libstdc++ web pages and list archives to point to gcc.gnu.org
	* aclocal.m4, configure: Regenerate.

2000-12-21  Gabriel Dos Reis  <gdr@codesourcery.com>

	* src/Makefile.am (sources): Remove complex.cc, complexf.cc and
	complexl.cc from list.
	* src/Makefile.in: Regenerate.
	* src/complex.cc: Remove.
	* src/complexf.cc: Likewise.
	* src/complexl.cc: Likewise.

	* libmath/Makefile.am (EXTRA_LONG_DOUBLE_yes): Remove csqrtl.c
	(EXTRA_DIST): Remove csqrt.c and csqrtf.c.
	* libmath/Makefile.in: Regenerate.
	* libmath/complex-stub.h: Remove.
	* libmath/csqrt.c: Likewise.
	* libmath/sqrtf.c: Likewise.
	* libmath/sqrtl.c: Likewise.
	* libmath/mathconf.h: Remove <complex.h> and "complex-stub.h"
	#inclusion.

	* include/bits/std_complex.h (sqrt<>): Define primary template.
	(complex<>): Remove sqrt friend declarations.

	* configure.in: Initialize with src/ios.cc.
	* configure: Regenerate.
	* acinclude.m4: Remove check for csqrt* and <complex.h>
	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.
	* Makefile.in: Regenerate.

2000-12-20  Phil Edwards  <pme@sources.redhat.com>

	* acinclude.m4 (SECTION_FLAGS, OPT_LDFLAGS):  Fix minor thinko.
	* aclocal.m4:  Regenerate.
	* configure:  Ditto.
	* Makefile.in:  Ditto.
	* libio/Makefile.in:  Ditto.
	* libmath/Makefile.in:  Ditto.
	* libsupc++/Makefile.in:  Ditto.
	* src/Makefile.in:  Ditto.

	* include/bits/istream.tcc:  Fix clause reference in comment.

2000-12-20  Benjamin Kosnik  <bkoz@fillmore.constant.com>

	* testsuite/17_intro/headers_c.cc (main): New file.

	* acinclude.m4 (SECTION_FLAGS): Only set if --enable-debug is not
	passed.
	(OPT_LDFLAGS): And here.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2000-12-19  Curtis Janssen  <cljanss@ca.sandia.gov>

	* src/ios.cc (ios_base::_M_grow_words(int ix)): Fix libstdc++/1089.
	* testsuite/27_io/ios_base_storage.cc (test01): New file.

2000-12-19  Benjamin Kosnik  <bkoz@fillmore.constant.com>

	* configure.in: Don't turn on long long by default.
	(gxx_target_include_dir): Adjuse comment.
	* configure: Regenerate.
	* include/c/bits/std_cstdio.h: Remove c++config.h include.
	* src/locale.cc: Formatting tweaks.
	* testsuite/22_locale/ctype.cc (char<unsigned char>): Provide
	member functions.

2000-12-19  Loren J. Rittle  <ljrittle@acm.org>

        * testsuite/22_locale/ctype.cc (test01): Correct ~ operator usage.

2000-12-19  Mark Kettenis  <kettenis@gnu.org>

        * configure.target: Support the Hurd.

2000-12-19  Benjamin Kosnik  <bkoz@fillmore.redhat.com>

	* config/os/solaris/solaris2.5/bits/ctype_inline.h (is): Same.
	* config/os/solaris/solaris2.6/bits/ctype_inline.h (is): Same.
	* config/os/solaris/solaris2.7/bits/ctype_inline.h (is): Same.
	* config/os/newlib/bits/ctype_inline.h (is): Same.
	* config/os/irix/bits/ctype_inline.h (is): Same.
	* config/os/bsd/netbsd/bits/ctype_inline.h (is): Same.
	* config/os/bsd/freebsd/bits/ctype_inline.h (is): Same.
	* config/os/aix/bits/ctype_inline.h (is): Same.
	* config/os/gnu-linux/bits/ctype_inline.h (is): Revert.
	* config/os/generic/bits/ctype_inline.h (is): Non-table based
	implementation.

	* testsuite/22_locale/ctype_char_members.cc (test01): Use binary
	operator correctly.
	(test01): Check 'A' for alnum, upper, alpha.

2000-12-19  Gabriel Dos Reis  <gdr@codesourcery.com>

	* include/bits/std_complex.h (complex<float>::operator-=): Fix
	thinko.

2000-12-18  Benjamin Kosnik  <bkoz@redhat.com>

	* configure.in: Set os_include_dir for cross_compiles.
	* configure: Regenerate.
	* configure.target (l_glibcpp_cxxflags): Don't try to be clever
	when assigning ATOMICITYH. Only special case the special cases...

2000-12-18  Joseph S. Myers  <jsm28@cam.ac.uk>

	* docs/html/17_intro/COPYING: Update to current
	ftp://ftp.gnu.org/pub/gnu/Licenses/COPYING-2.0 (fixes references
	to 19yy as example year in copyright notice).

2000-12-15  Benjamin Kosnik  <bkoz@redhat.com>

	* configure.in (gxx_target_include_dir): Install target-dependent
	include files in a target-dependent place.
	* configure: Regenerate.
	* src/Makefile.am: Add in support here.
	* src/Makefile.in: Regenerate.

2000-12-14  Benjamin Kosnik  <bkoz@fillmore.redhat.com>

	* src/Makefile.am (myinstallheaders): Install backwards headers in
	prefix, not prefix/backward.
	* src/Makefile.in: Regenerate.

2000-12-14  Benjamin Kosnik  <bkoz@haight.redhat.com>

	* acinclude.m4 (GLIBCPP_CHECK_MATH_SUPPORT): Revert changes
	touching copysignf, atan2f, expf.
	(GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT): Add it back here.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2000-12-14  Benjamin Kosnik  <bkoz@fillmore.redhat.com>

	* configure.in (CXX): Exit out if mknumeric_limits fails.
	* mknumeric_limits (CXX): Use BUILD_DIR/g++, not g++ in
	path. Consistency with tests_flags.in.

2000-12-14  Benjamin Kosnik  <bkoz@haight.redhat.com>

	* include/c/bits/*.h: Remove include_next, replace with include,
	as include_next does not work host-x-host, and include_next not
	necessary.

2000-12-13  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/locale_facets.h (ctype<char>): Remove throw specs not in
	base class signature.
	* config/os/*/bits/ctype_inline.h (is): Same.

2000-12-13  Benjamin Kosnik  <bkoz@redhat.com>

	* config/os/generic/bits/ctype_base.h (ctype_base): Consistency
	with linux.
	* config/os/generic/bits/ctype_inline.h (is): Same.
	* config/os/solaris/solaris2.5/bits/ctype_inline.h (is): Same.
	* config/os/solaris/solaris2.5/bits/ctype_base.h: Same.
	* config/os/solaris/solaris2.6/bits/ctype_inline.h (is): Same.
	* config/os/solaris/solaris2.6/bits/ctype_base.h: Same.
	* config/os/solaris/solaris2.7/bits/ctype_inline.h (is): Same.
	* config/os/solaris/solaris2.7/bits/ctype_base.h: Same.
	* config/os/irix/bits/ctype_inline.h (is): Same.
	* config/os/irix/bits/ctype_base.h (ctype_base): Same.
	* config/os/aix/bits/ctype_inline.h (is): Same.
	* config/os/aix/bits/ctype_base.h (ctype_base): Same.
	* config/os/bsd/netbsd/bits/ctype_inline.h (is): Same.
	* config/os/bsd/netbsd/bits/ctype_base.h (ctype_base): Same.
	* config/os/bsd/freebsd/bits/ctype_base.h (ctype_base): Same.
	* config/os/bsd/freebsd/bits/ctype_inline.h (is): Same.
	* config/os/newlib/bits/ctype_inline.h (is): Same.
	* config/os/newlib/bits/ctype_base.h (ctype_base): Same.

	* testsuite/22_locale/ctype_char_members.cc (test01): Add tests, fix.
	* testsuite/22_locale/ctype.cc (test01): Add tests for
	ctype_base::mask bitmask features.
	* src/locale.cc: Define const static data for ctype_base.
	* config/os/gnu-linux/bits/ctype_base.h (ctype_base): Make
	ctype_base::mask type an integer type, not an enum.
	* config/os/gnu-linux/bits/ctype_inline.h (is): Implement correctly.
	* include/bits/locale_facets.h: Tweaks.

	* include/bits/ios_base.h: Formatting tweaks.

	* docs/html/17_intro/C++STYLE: Add.

2000-12-12  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* acinclude.m4 (GLIBCPP_CHECK_CTYPE_SUPPORT): Don't link ctype
	files here...
	* configure.in: Rather, do it once for all targets here. Clean up
	canadian cross and cross compile targets for linux-targeted
	crosses.
	* configure: Regenerate.
	* aclocal.m4: Regnerate.
	* acconfig.h: Add more defines.
	* config.h.in: Regenerate.

2000-12-12  Angela Marie Thomas <angela@cygnus.com>

	* configure.in: Fix case for host-x-linux
	* configure: Regenerate.

2000-12-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* src/Makefile.am (libstdc++.INC:): 2000-12-05 reverted to include
	2000-11-12 hunk.
	* src/Makefile.in: Rebuilt.

2000-12-09  Jason Merrill  <jason@redhat.com>

	* testsuite/20_util/auto_ptr.cc (test07): Remove test that tries
	to copy-initialize an auto_ptr<Base> from an auto_ptr<Derived>; it
	isn't supposed to work anymore.

2000-12-09  Phil Edwards  <pme@sources.redhat.com>

	Move the HTML-containing subdirs from 'docs' to 'docs/html'.
	* README:  Update the locations of instructions.
	* docs/doxygen/run_doxygen:  New file, stub.

	* docs/Makefile:  Moved...
	* docs/configopts.html:  Likewise.
	* docs/documentation.html:  Likewise.
	* docs/install.html:  Likewise.
	* docs/lib3styles.css:  Likewise.
	* docs/17_intro/BADNAMES:  Likewise.
	* docs/17_intro/BUGS:  Likewise.
	* docs/17_intro/C++STYLE:  Likewise.
	* docs/17_intro/CHECKLIST:  Likewise.
	* docs/17_intro/COPYING:  Likewise.
	* docs/17_intro/DESIGN:  Likewise.
	* docs/17_intro/HEADER_POLICY:  Likewise.
	* docs/17_intro/PROBLEMS:  Likewise.
	* docs/17_intro/RELEASE-NOTES:  Likewise.
	* docs/17_intro/TODO:  Likewise.
	* docs/17_intro/contribute.html:  Likewise.
	* docs/17_intro/headers_cc.txt:  Likewise.
	* docs/17_intro/howto.html:  Likewise.
	* docs/17_intro/libstdc++-assign.txt:  Likewise.
	* docs/17_intro/organization:  Likewise.
	* docs/17_intro/porting-howto.html:  Likewise.
	* docs/18_support/howto.html:  Likewise.
	* docs/19_diagnostics/howto.html:  Likewise.
	* docs/20_util/howto.html:  Likewise.
	* docs/21_strings/gotw29a.txt:  Likewise.
	* docs/21_strings/howto.html:  Likewise.
	* docs/21_strings/stringtok_h.txt:  Likewise.
	* docs/21_strings/stringtok_std_h.txt:  Likewise.
	* docs/22_locale/codecvt.html:  Likewise.
	* docs/22_locale/ctype.html:  Likewise.
	* docs/22_locale/howto.html:  Likewise.
	* docs/22_locale/locale.html:  Likewise.
	* docs/23_containers/howto.html:  Likewise.
	* docs/23_containers/wrappers_h.txt:  Likewise.
	* docs/24_iterators/howto.html:  Likewise.
	* docs/25_algorithms/howto.html:  Likewise.
	* docs/26_numerics/howto.html:  Likewise.
	* docs/27_io/howto.html:  Likewise.
	* docs/27_io/iostreams_hierarchy.pdf:  Likewise.
	* docs/ext/howto.html:  Likewise.
	* docs/faq/index.html:  Likewise.
	* docs/faq/index.txt:  Likewise.
	* docs/html/Makefile:  ...to here.
	* docs/html/configopts.html:  Likewise.
	* docs/html/documentation.html:  Likewise.
	* docs/html/install.html:  Likewise.
	* docs/html/lib3styles.css:  Likewise.
	* docs/html/17_intro/BADNAMES:  Likewise.
	* docs/html/17_intro/BUGS:  Likewise.
	* docs/html/17_intro/C++STYLE:  Likewise.
	* docs/html/17_intro/CHECKLIST:  Likewise.
	* docs/html/17_intro/COPYING:  Likewise.
	* docs/html/17_intro/DESIGN:  Likewise.
	* docs/html/17_intro/HEADER_POLICY:  Likewise.
	* docs/html/17_intro/PROBLEMS:  Likewise.
	* docs/html/17_intro/RELEASE-NOTES:  Likewise.
	* docs/html/17_intro/TODO:  Likewise.
	* docs/html/17_intro/contribute.html:  Likewise.
	* docs/html/17_intro/headers_cc.txt:  Likewise.
	* docs/html/17_intro/howto.html:  Likewise.
	* docs/html/17_intro/libstdc++-assign.txt:  Likewise.
	* docs/html/17_intro/organization:  Likewise.
	* docs/html/17_intro/porting-howto.html:  Likewise.
	* docs/html/18_support/howto.html:  Likewise.
	* docs/html/19_diagnostics/howto.html:  Likewise.
	* docs/html/20_util/howto.html:  Likewise.
	* docs/html/21_strings/gotw29a.txt:  Likewise.
	* docs/html/21_strings/howto.html:  Likewise.
	* docs/html/21_strings/stringtok_h.txt:  Likewise.
	* docs/html/21_strings/stringtok_std_h.txt:  Likewise.
	* docs/html/22_locale/codecvt.html:  Likewise.
	* docs/html/22_locale/ctype.html:  Likewise.
	* docs/html/22_locale/howto.html:  Likewise.
	* docs/html/22_locale/locale.html:  Likewise.
	* docs/html/23_containers/howto.html:  Likewise.
	* docs/html/23_containers/wrappers_h.txt:  Likewise.
	* docs/html/24_iterators/howto.html:  Likewise.
	* docs/html/25_algorithms/howto.html:  Likewise.
	* docs/html/26_numerics/howto.html:  Likewise.
	* docs/html/27_io/howto.html:  Likewise.
	* docs/html/27_io/iostreams_hierarchy.pdf:  Likewise.
	* docs/html/ext/howto.html:  Likewise.
	* docs/html/faq/index.html:  Likewise.
	* docs/html/faq/index.txt:  Likewise.

2000-12-08  Phil Edwards  <pme@sources.redhat.com>

	* acinclude.m4 (GLIBCPP_ENABLE_CSTDIO):  New conditional,
	  GLIBCPP_BUILD_LIBIO, true iff building libio.
	* libio/Makefile.am:  Use; set noinst_LTLIBRARIES empty if false.
	* aclocal.m4:  Regenerated.
	* config.h.in:  Regenerated.
	* configure:  Regenerated.
	* libio/Makefile.in:  Regenerated.
	* libmath/Makefile.in:  Regenerated.

2000-12-08  Gabriel Dos Reis  <gdr@codesourcery.com>

	* libmath/Makefile.am (EXTRA_LONG_DOUBLE_yes): Remove ccosl,
	cexpl, clog10l, csinhl, ctanhl, ctanl.
	(EXTRA_DIST): Remove ccos, ccosf, csin, csinf, ccosh, ccoshf,
	csing, csinhf, clog10, clog10f, ctan, ctanf, ctanh, ctanhf.
	* libmath/Makefile.in: Regenarate.
	* libmath/ccos.c: Remove.
	* libmath/ccosf.c: Likewise.
	* libmath/ccosl.c: Likewise.
	* libmath/csin.c: Likewise.
	* libmath/csinf.c: Likewise.
	* libmath/csinl.c: Likewise.
	* libmath/ctan.c: Likewise.
	* libmath/ctanf.c: Likewise.
	* libmath/ctanl.c: Likewise.
	* libmath/ccosh.c: Likewise.
	* libmath/ccoshf.c: Likewise.
	* libmath/ccoshl.c: Likewise.
	* libmath/csinh.c: Likewise.
	* libmath/csinhf.c: Likewise.
	* libmath/csinhl.c: Likewise.
	* libmath/ctanh.c: Likewise.
	* libmath/ctanhf.c: Likewise.
	* libmath/ctanhl.c: Likewise.
	* libmath/cexp.c: Likewise.
	* libmath/cexpf.c: Likewise.
	* libmath/cexpl.c: Likewise.
	* libmath/clog10.c: Likewise.
	* libmath/clog10f.c: Likewise.
	* libmath/clog10l.c: Likewise.
	* libmath/complex-stub.h: Remove forward declaration of functions
	mentioned above.

	* include/bits/std_complex.h(tan, tanh): Define primary templates.
	(complex<>): Remove friend declarations for tan<> and tanh<>.
	* src/complex.cc(tan, tanh): Remove specializations.

	* acinclude.m4: Remove check for ccos, ccosf, ccosl, ccosh,
	ccoshf, ccoshl,	csin, csinf, csinl, csinh, csinhf, csinhl, cexp,
	cexpf, cexpl, ctan, ctanf, ctanl, ctanh, ctanhf, ctanhl.
	* aclocal.m4: Regenarate.
	* configure: Regenarate.

2000-12-08  Gabriel Dos Reis  <gdr@codesourcery.com>

	* acinclude.m4: Don't forget to remove check for cpowl as it is no
	longer needed, nor is the corresponding stub existent.
	* aclocal.m4: Regenarate.
	* configure: Regenarate.

2000-12-07  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* config/os/generic/bits/ctype_base.h (ctype_base): Change space mask.

	* config/os/generic/bits/ctype_noninline.h (ctype): Remove default
	arguments in definition.
	* config/os/solaris/solaris2.7/bits/ctype_noninline.h (ctype): Same.
	* config/os/solaris/solaris2.6/bits/ctype_noninline.h (ctype): Same.
	* config/os/solaris/solaris2.5/bits/ctype_noninline.h (ctype): Same.
	* config/os/newlib/bits/ctype_noninline.h (ctype): Same.
	* config/os/irix/bits/ctype_noninline.h (ctype): Same.
	* config/os/hpux/bits/ctype_noninline.h (ctype): Same.
	* config/os/bsd/netbsd/bits/ctype_noninline.h (ctype): Same.
	* config/os/bsd/freebsd/bits/ctype_noninline.h (ctype): Same.
	* config/os/aix/bits/ctype_noninline.h (ctype): Same.

	* include/bits/locale_facets.h: Tweak.

2000-12-06  Benjamin Kosnik  <bkoz@kredhat.com>

	* include/bits/locale_facets.h (ctype): Remove _Ctype_nois and
	_Ctype and replace with common __ctype_abstract_base.
	(ctype<wchar_t>::_M_convert_to_wmask): Move to locale.cc.
	* config/os/gnu-linux/bits/ctype_noninline.h (ctype<char>::ctype):
	And here.
	* config/os/solaris/solaris2.7/bits/ctype_noninline.h (ctype): Same.
	* config/os/solaris/solaris2.6/bits/ctype_noninline.h (ctype): Same.
	* config/os/solaris/solaris2.5/bits/ctype_noninline.h (ctype): Same.
	* config/os/newlib/bits/ctype_noninline.h (ctype): Same.
	* config/os/irix/bits/ctype_noninline.h (ctype): Same.
	* config/os/hpux/bits/ctype_noninline.h (ctype): Same.
	* config/os/generic/bits/ctype_noninline.h (ctype): Same.
	* config/os/aix/bits/ctype_noninline.h (ctype): Same.
	* config/os/bsd/netbsd/bits/ctype_noninline.h (ctype): Same.
	* config/os/bsd/freebsd/bits/ctype_noninline.h (ctype): Same.
	* src/locale-inst.cc: Clean instantiations.
	* src/locale.cc (ctype<char>): Add definitions here.
	(ctype<wchar_t>::_M_wmask): Move definitions here.

	* config/os/generic/bits/ctype_inline.h (ctype<char>::is):
	Implement in a generic way, with only "C" functionality and no
	knowlege of the target os.
	* config/os/generic/bits/os_defines.h: Change comments to C++ style.
	* testsuite/22_locale/ctype_char_members.cc (test01): Add tests.

	* include/bits/codecvt.h (ctype_byname): Remove specializations,
	as not required.
	* include/bits/localefwd.h (codecvt_byname): And here.
	* src/codecvt.cc: Remove codecvt_byname specializations.

	* include/c/bits/std_cstdio.h: Include c++config.h.

2000-12-06  Phil Edwards  <pme@sources.redhat.com>

	* acinclude.m4 (GLIBCPP_CHECK_*_DECL_AND_LINKAGE_*):  Pre-test
	  whether the cached result is present.
	* aclocal.m4:  Regenerate.
	* configure:  Regenerate.
	* Makefile.in:  Regenerate.
	* libio/Makefile.in:  Regenerate.
	* libmath/Makefile.in:  Regenerate.
	* libsupc++/Makefile.in:  Regenerate.
	* src/Makefile.in:  Regenerate.

2000-12-06  Richard Earnshaw  <rearnsha@arm.com>

	* configure.target (*-*-freebsd, *-*-netbsd): Correct paths to
	os_include_dir.

2000-12-05  Jeffrey A Law  <law@cygnus.com>

	* configure.target (hpux): Set os_include_dir.
	* config/os/hpux/bits/ctype_base.h: New file
	* config/os/hpux/bits/ctype_inline.h: New file
	* config/os/hpux/bits/ctype_noinline.h: New file
	* config/os/hpux/bits/os_defines.h: New file

2000-12-05  Alexandre Petit-Bianco  <apbianco@redhat.com>

	* src/Makefile.am (libstdc++.INC): Revert for libjava builds.
	* src/Makefile.in: Regenerate.

2000-12-05  Benjamin Kosnik  <bkoz@haight.redhat.com>

	* acinclude.m4 (EXTRA_CXX_FLAGS): And here.
	* include/c/bits/std_cstdlib.h (std ): Change macro to
	_GLIBCPP_NEED_LLDIV_T.
	* acconfig.h: Remove unused MBSTATE_T bits.
	* configure.in: Same.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* config.h.in: Regenerate.

2000-12-05  Benjamin Kosnik  <bkoz@fillmore.redhat.com>

	* acinclude.m4: Change up to reflect new directory organization.
	Add in bits for NetBSD.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* config/os/bsd: New directory.
	* config/os/netbsd: Move to...
	* config/os/bsd/netbsd: ...here.
	* config/os/freebsd: Move to...
	* config/os/bsd/freebsd: ...here.

2000-12-05  Benjamin Kosnik  <bkoz@haight.redhat.com>

	* acinclude.m4 (GLIBCPP_ENABLE_LONG_LONG): Check for
	lldiv_t. Allow the use of os-specific defines while checking for
	long-long functions by the inclusion of os_defines.h.
	* aclocal.m4: Regenerate.
	* configure.in: Add comments.
	* configure: Regenerate.
	* acconfig.h: Add _GLIBCPP_HAVE_LLDIV_T.
	* config.h.in: Regenerate.
	* config/os/gnu-linux/bits/os_defines.h: Fix typos and
	duplications in comments.

2000-12-05  Richard Earnshaw  <rearnsha@arm.com>

	* config/os/freebsd/bits/ctype_base.h: Update comments about other
	BSD variants.

2000-12-05  Richard Earnshaw  <rearnsha@arm.com>

	* config/os/freebsd/bits/*.h: Move here from config/os/bsd/bits.
	* aclocal.m4: Adjust accordingly.
	* configure.target: Likewise.
	* configure: Regenerate.

2000-12-05  Richard Earnshaw  <rearnsha@arm.com>

	* config/cpu/arm/bits/atomicity.h: Add support for compiling Thumb
	code.

2000-12-05  Richard Earnshaw  <rearnsha@arm.com>

	Support for NetBSD.
	* aclocal.m4: Add test for NetBSD's ctype support.
	* configure: Regenerate.
	* configure.target: Support NetBSD.
	* config/os/netbsd/bits/ctype_base.h: New file.
	* config/os/netbsd/bits/ctype_inline.h: New file.
	* config/os/netbsd/bits/ctype_noinline.h: New file.
	* config/os/netbsd/bits/os_defines.h: New file.

2000-12-05  Gabriel Dos Reis  <gdr@codesourcery.com>

	* src/complex.cc (pow): Remove definitions for explicit
	specializations.
	* libmath/mathconf.h: Remove declarations for c_log, c_logf,
	c_logl.
	* libmath/complex-stub.h: Remove declarations for cpow, cpowf,
	cpowl.
	* libmath/cpow.c: Remove.
	* libmath/cpowf.c: Remove.
	* libmath/cpowl.c: Remove.
	* libmath/Makefile.am (EXTRA_LONG_DOUBLE_yes): Remove c_logl,
	cpowl,
	(EXTRA_DIST): Remove c_log, c_logf, carg, cargf.
	* libmath/Makefile.in: Regenarate.
	* libmath/c_log.c: Remove
	* libmath/c_logf.c: Likewise.
	* libmath/c_logl.c: Likewise.
	* libmath/carg.c: Likewise.
	* libmath/cargf.c: Likewise.
	* libmath/cargl.c: Likewise.
	* include/bits/std_complex.h (pow): Define primary templates.
	(complex<>): Remove friend declarations for pow<>().
	* acinclude.m4: Remove check for c_log, c_logf, c_logl, carg,
	cargf.
	* aclocal.m4: Regenarate.
	* configure: Regenarate.

2000-12-03  Joseph S. Myers  <jsm28@cam.ac.uk>

	* docs/configopts.html, docs/documentation.html,
	docs/install.html, docs/17_intro/BADNAMES,
	docs/17_intro/contribute.html, docs/17_intro/howto.html,
	docs/18_support/howto.html, docs/19_diagnostics/howto.html,
	docs/20_util/howto.html, docs/21_strings/howto.html,
	docs/22_locale/howto.html, docs/23_containers/howto.html,
	docs/24_iterators/howto.html, docs/25_algorithms/howto.html,
	docs/26_numerics/howto.html, docs/27_io/howto.html,
	docs/ext/howto.html, docs/faq/index.html, docs/faq/index.txt: Sync
	with wwwdocs.

2000-12-01  Phil Edwards  <pme@sources.redhat.com>

	* docs/download.html:  Remove.
	* docs/footer.ihtml:  Remove.
	* docs/header.ihtml:  Remove.
	* docs/index.html:  Remove.
	* docs/links.html:  Remove.
	* docs/mail.html:  Remove.
	* docs/status.html:  Remove.
	* docs/thanks.html:  Remove.

2000-12-01  Phil Edwards  <pme@sources.redhat.com>

	* mkcheck.in:  Count static and shared results separately.

2000-12-01  Loren J. Rittle  <ljrittle@acm.org>

	* mkcheck.in:  Correct typo.

2000-12-01  Gabriel Dos Reis  <gdr@codesourcery.com>

	* src/cmath.cc: Remove.
	* src/Makefile.am (c_base_headers): Add bits/cmath.tcc.
	(sources): Remove cmath.cc
	* src/Makefile.in: Regenerate.

	* include/c/bits/std_cmath.h (__cmath_power<>): Declare.
	(__cmath_abs<>): New function.
	(abs, fabs): Use __cmath_abs when no direct support is available.
	(__pow_helper<>): New function.
	(pow): Define here.  Use __pow_helper<>.

	* include/c/bits/cmath.tcc: New file.

2000-11-29  Benjamin Kosnik  <bkoz@redhat.com>

	Fixes for build directories with colons, AIX build problems.
	* src/Makefile.am: Cleanups, add documentation.
	(libstdc++.INC): Simplify rule.
	(myinstallheaders): Consolidate install rules.
	(myinstalldirs): New, make directores.
	(base_headers): Subdivide based on install directory.
	(ext_headers): New.
	(backward_headers): New.
	(headers): Remove.
	(c_headers): Remove, unused.
	(c_shadow_headers): Split up, deal with conditional usage in a
	sane manner.
	* src/Makefile.in: Regenerate.

2000-11-29  Phil Edwards  <pme@sources.redhat.com>

	Sync with the documentation from wwwdocs.
	* docs/Makefile:  New file (rebuilds FAQ text version).
	* docs/configopts.html:  Update.
	* docs/documentation.html:  Update.
	* docs/download.html:  Update.
	* docs/index.html:  Update.
	* docs/install.html:  Update.
	* docs/links.html:  Update.
	* docs/mail.html:  Update.
	* docs/status.html:  Update.
	* docs/thanks.html:  Update.
	* docs/27_io/howto.html:  Update.
	* docs/faq/index.html:  Update for 2.91.
	* docs/faq/index.txt:  Update for 2.91.
	* docs/footer.html:  Removed.
	* docs/footer.ihtml:  New file.
	* docs/gccrebuild.html:  Removed.
	* docs/header.html:  Removed.
	* docs/header.ihtml:  New file.

2000-11-29  Loren J. Rittle  <ljrittle@acm.org>

        * tests_flags.in: Correct typo.

2000-11-29  Gabriel Dos Reis  <gdr@codesourcery.com>

	* tests_flags (SH_FLAGS, ST_FLAGS): Move them back to ...
	* mkcheck.in (SH_FLAGS, ST_FLAGS): ...here

2000-11-29  Gabriel Dos Reis  <gdr@codesourcery.com>

	* src/Makefile.am (sources): Add bitset.cc
	* src/Makefile.in: Regenrate.

	* include/bits/std_bitset.h (_GLIBCPP_BITSET_BITS_PER_WORD): New
	macro. Replace __BITS_PER_WORDS throughout.
	(__BITS_PER_WORDS): Remove.
	(bitset<>::_M_do_find_first, bitset<>::_M_do_find_next): Move
	definitions to src/bitset.cc.

	* src/bitset.cc (bitset<>::_M_do_find_first,
	bitset<>::_M_do_find_next):  Define here.
	(_Bit_count<>::_S_bit_count, _Find_one<>::_S_first_one): Define
	here. Explicitly instantiate definitions.

2000-11-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	* config/cpu/powerpc/bits/atomicity.h (__exchange_and_add): Silence
	preprocessor multi-line string warnings.
	(__atomic_add): Likewise.
	(__compare_and_swap): Likewise.
	(__always_swap): Likewise.
	(__test_and_set): Likewise.
	* config/cpu/arm/bits/atomicity.h (__exchange_and_add): Likewise.
	(__atomic_add): Likewise.
	(__compare_and_swap): Likewise.
	(__always_swap): Likewise.
	(__test_and_set): Likewise.

2000-11-28  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	Update for 2.91 release.
	* include/bits/c++config (__GLIBCPP__): Update.
	* docs/17_intro/RELEASE-NOTES: Update.
	* docs/status.html: Update, remove bogus autotools disinformation.

2000-11-27  Benjamin Kosnik  <bkoz@redhat.com>

	* tests_flags.in (LTCXX): Change CXX_FLAG to CXXFLAGS.

	* testsuite/22_locale/ctor_copy_dtor.cc: Adjust formatting.
	* testsuite/27_io/istream_extractor_arith.cc (test11): New
	testcase, based on libstdc++/90.

2000-11-27  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

        * config/cpu/arm/bits/atomicity.h (__exchange_and_add): Add
	__volatile__ to asm.
        (__atomic_add): Likewise.
        (__compare_and_swap): Likewise.
        (__always_swap): Likewise.
        (__test_and_set): Likewise.

        * config/cpu/powerpc/bits/atomicity.h: Replace '__ATOMICITY_INLINE'
        with 'inline'.
        (__exchange_and_add): Add __volatile__ to asm.
        (__atomic_add): Likewise.
        (__compare_and_swap): Likewise.
        (__always_swap): Likewise.
        (__test_and_set): Likewise.

2000-11-27  Gabriel Dos Reis  <gdr@codesourcery.com>

	* tests_flags.in: Update documentation to reflect the change
	below.

2000-11-26  Benjamin Kosnik  <bkoz@fillmore.constant.com>

	* tests_flags.in: Export CXX, CXXFLAGS.
	* mkcheck.in: Grab them.

2000-11-26  David Billinghurst  <David.Billinghurst@riotinto.com>
	    Benjamin Kosnik  <bkoz@redhat.com>

        * mkcheck.in: Add exe extension to printnow executable, abstract
	out call to this with TIMER_COMMAND.
	* configure.target (l_glibcpp_cxxflags): Add cygwin support.
	* acinclude.m4 (GLIBCPP_CHECK_CTYPE_SUPPORT): Correct paths.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2000-11-26  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/27_io/istream_unformatted.cc (test05): Fixup.

2000-11-26  Benjamin Kosnik  <bkoz@redhat.com>

	* acinclude.m4: Only sanity check for compiler version when
	configuring. More fixes for 'make clean'.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2000-11-26  Gabriel Dos Reis  <gdr@codesourcery.com>

	* libmath/Makefile.am (EXTRA_LONG_DOUBLE_yes): Remove cabsl.c
	* libmath/Makefile.in: Regenerate.
	* libmath/cabs.c: Remove.
	* libmath/cabsf.c: Likewise.
	* libmath/cabsl.c: Likewise.
	* libmath/complex-stub.h: Remove declarations for cabs*.

	* acinclude.m4: Remove check for cabs*.
	* aclocal.m4: Regenerate.

	* Makefile.in: Regenerate.

2000-11-26  Gabriel Dos Reis  <gdr@codesourcery.com>

	* tests_flags.in: New file. Split out of ...
	* mkcheck.in: ... this. Move flags computation into
	tests_flags.in.
	* configure.in: Add support for tests_flags.
	* confiigure: Regenerate.

2000-11-25  Joseph S. Myers  <jsm28@cam.ac.uk>

	* acinclude.m4: Change C9X references to refer to C99.
	* aclocal.m4, configure: Regenerate.
	* config/os/gnu-linux/bits/os_defines.h, src/complex.cc,
	testsuite/22_locale/codecvt_wchar_t_char.cc,
	include/bits/stl_config.h, include/c/bits/std_cwchar.h,
	libmath/mathconf.h: Change C9X references to refer to C99.

2000-11-25  Benjamin Kosnik  <bkoz@redhat.com>
            Richard Earnshaw  <rearnsha@arm.com>

	* src/Makefile.am (INCLUDES): Remove unconditional use of
	_GNU_SOURCE and _ISOC99_SOURCE macros.
	* src/Makefile.in: Regenerate.

2000-11-24  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* testsuite/22_locale/codecvt_wchar_t_char.cc (main): Add
	_GLIBCPP_USE_WCHAR_T guards.

	* configure.in (AC_OUTPUT_COMMANDS): Remove, just run scripts as
	is, so that checks for existence of generated files actually work.
	* configure: Regenerate.

2000-11-23  Hans-Peter Nilsson  <hp@bitrange.com>

	* config/os/gnu-linux/bits/os_defines.h: Include <features.h>.
	If not glibc 2.1 or higher, include <gnu/types.h> and define
	__off64_t as __loff_t and #define __THROW as empty.

	* libio/libio.h [__P]: Move __THROW and __PMT into their own
	ifndef:s.

2000-11-23  David Edelsohn  <edelsohn@gnu.org>

	* porting.texi: Expand libtool information.

2000-11-23  Gabriel Dos Reis  <gdr@codesourcery.com>

	* include/bits/ios_base.h (ios_base::failure::~failure,
	ios_base::failure::what): Move definition to ...

	* src/ios.cc (ios_base::failure::~failure): ... here.
	src/ios.cc (ios::failure::what): Likewise.

2000-11-22  Benjamin Kosnik  <bkoz@redhat.com>

	Make deprecated strstream header consistent with new and new.h.
	* include/backward/strstream.h: Add. Use using declarations to
	scope strstreambuf, istrstream, ostrstream, strstream to global
	scope.
	* include/backward/strstream: Remove using declarations.
	* src/Makefile.am (base_headers): Add strstream.
	* src/Makefile.in: Regenerate.

	* include/backward/new.h (_CPP_BACKWARD_NEW_H): Change macro guard
	to be consistent with other headers.

2000-11-22  Richard Henderson  <rth@redhat.com>

	* config/os/bsd/bits/ctype_inline.h (is): Fix order of expressions.

2000-11-22  Phil Edwards  <pme@sources.redhat.com>

	* porting.texi:  Minor tweaks to vocabulary.

2000-11-22  Loren J. Rittle  <ljrittle@acm.org>

        * include/backward/strstream.h: Reinstate the `using'
        statements.

2000-11-22  Loren J. Rittle  <ljrittle@acm.org>

	* src/Makefile.am (base_headers): Add missing backwards headers.
	* src/Makefile.in: Regenerate.

2000-11-21  scott snyder  <snyder@fnal.gov>

        * config/c_io_stdio.cc (seekoff): Fix return value.
        (seekpos): Likewise.
        (sys_seek): Likewise.

2000-11-21  Loren J. Rittle  <ljrittle@acm.org>

        * mkcheck.in (explanation): Retain output of all failing
        compiles.  Don't add gratuitous space to the log file.

2000-11-21  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* src/strstream.cc: Adjust includes.
	* src/Makefile.am (base_headers): Remove std_strstream.h, add
	backwards/strstream.h.
	(std_headers): Remove strstream.
	* src/Makefile.in: Regenerate.
	* libsupc++/Makefile.am (headers): Remove new.h
	* libsupc++/Makefile.in: Regenerate.
	* include/std/strstream: Remove.
	* include/backward/strstream.h: Replace with...
	* include/bits/std_strstream.h: ...this. Move.
	* include/backward/complex.h: Remove SGIisms.
	* include/backward/streambuf.h: Same.
	* include/backward/stream.h: Same.
	* include/backward/ostream.h: Same.
	* include/backward/istream.h: Same.
	* include/backward/iostream.h: Same.
	* include/backward/iomanip.h: Same.
	* include/backward/fstream.h: Same.
	* libsupc++/new.h: Add using declarations for bad_alloc,
	nothrow_t, and nothrow, move to ...
	* include/backward/new.h: ...here.

2000-11-21  Mark Mitchell  <mark@codesourcery.com>

	* porting.texi: New file.

2000-11-21  Branko Cibej  <brankoe@xbc.nu>

        * config/os/solaris/solaris2.6/bits/os_defines.h: Define
        _XOPEN_SOURCE, _LARGEFILE64_SOURCE, __EXTENSIONS__, __off_t,
        __off64_t and __ssize_t.
	* config/os/solaris/solaris2.5/bits/os_defines.h: For now, use the
	same configuration as above.

2000-11-21  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* acinclude.m4 (AC_LC_MESSAGES): Check for locale.h.
	* aclocal.m4: Regenerate.
	* configure: Renerate.

2000-11-20  Benjamin Kosnik  <bkoz@redhat.com>

	* mkcheck.in (explanation): Don't paste output of passing compiles
	into log file. Use -static. Get version info.

	* testsuite/23_containers/vector_ctor.cc (test02): Fix thinko.

2000-11-20  Gabriel Dos Reis  <gdr@codesourcery.com>

	* include/bits/std_complex.h (complex<double>): Constructor
	complex<double>::complex(const complex<float>&) is not explicit;
	since it is a promotion.
	(complex<long double>): Constructors taking complex<float> and
	complex<double> are not explicit.

2000-11-20  Benjamin Kosnik  <bkoz@redhat.com>

	* include/bits/std_complex.h: Tweaks, include cmath for abs overloads.
	* src/complex.cc: Remove cmath include, formatting tweaks, remove
	dead code.
	* include/c/bits/std_cmath.h: Formatting tweaks.
	* testsuite/26_numerics/complex_value.cc: New file, for catching
	bits gleaned from libstdc++/106.

	* testsuite/23_containers/vector_ctor.cc (test02): Add test from
	libstdc++/102.

2000-11-20  Joseph S. Myers  <jsm28@cam.ac.uk>

	* include/bits/c++config, include/bits/ios_base.h,
	include/bits/std_streambuf.h: Correct spelling of "deprecated".

2000-11-19  Mark Mitchell  <mark@codesourcery.com>

	* libsupc++/exception_support.cc (__throw_bad_cast): Name it
	__cxa_bad_cast under the new ABI.
	(__throw_bad_typeid): Name it __cxa_bad_typeid under the new ABI.
	* libsupc++/pure.cc (__pure_virtual): Name it __cxa_pure_virtual
	under the new ABI.

2000-11-18  Mark Mitchell  <mark@codesourcery.com>

	* libsupc++/exception_support.h: New header file.
	* libsupc++/vec.cc: Include it.
	(__cxa_vec_new2): Recatch exceptions before rethrows.
	(__cxa_vec_new3): Likewise.
	(__cxa_vec_ctor): Likewise.
	(__cxa_vec_cctor): Likewise.
	(__cxa_vec_dtor): Likewise.
	(__cxa_vec_delete2): Likewise.
	(__cxa_vec_delete3): Likewise.

2000-11-17  Theodore Papadopoulo  <Theodore.Papadopoulo@sophia.inria.fr>

	* include/bits/stl_tree.h: Overload operators == and != to be able
	to handle the case (const_iterator,iterator) and
	(iterator,const_iterator), thus fixing libstdc++/737 and the like.
	* testsuite/23_containers/map_operators.cc (test02): New tests.

2000-11-17  Loren J. Rittle  <ljrittle@acm.org>

	* acinclude.m4 (GLIBCPP_ENABLE_CSTDIO): Correct last patch
	  to ``make --enable-cstdio=stdio the default''.
	* libstdc++-v3/aclocal.m4: Rebuilt.
	* libstdc++-v3/configure: Rebuilt.

2000-11-17  Phil Edwards  <pme@sources.redhat.com>

	* acinclude.m4 (GLIBCPP_ENABLE_ATOMICITY):  Move switch statement
	  contents to...
	* configure.target:  ...here.  Enable generic atomic ops, and warn.
	* aclocal.m4:  Regenerated.
	* configure:  Ditto.
	* Makefile.in:  Ditto.
	* libio/Makefile.in:  Ditto.
	* libmath/Makefile.in:  Ditto.
	* libsupc++/Makefile.in:  Ditto.
	* src/Makefile.in:  Ditto.

2000-11-16  Loren J. Rittle  <ljrittle@acm.org>

        * include/bits/locale_facets.tcc (num_get<_CharT,
          _InIter>::do_get(...)): Add missing typename keyword.

2000-11-16  Mark Mitchell  <mark@codesourcery.com>

	* acinclude.m4 (GLIBCPP_ENABLE_CSTDIO): Make
	--enable-cstdio=stdio the default.  Disable wide character support
	in that event.
	* configure.in: Move GLIBCPP_ENABLE_C_MBCHAR after
	(GLIBCPP_ENABLE_CSTDIO).
	* config/c_io_stdio.h: Don't include <libio.h>, don't define
	__c_wfile_type.
	* aclocal.m4: Regenerated.
	* configure: Likewise.
	* Makefile.in: Likewise.
	* libio/Makefile.in: Likewise.
	* libmath/Makefile.in: Likewise.
	* libsupc++/Makefile.in: Likewise.
	* src/Makefile.in: Likewise.

2000-11-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>

	* config/c_io_stdio.h: Include stddef.h.

2000-11-16  Mark Mitchell  <mark@codesourcery.com>

	* config/c_io_stdio.h (streamsize): Make it a typedef for
	ptrdiff_t.
	(wstreamsize): Likewise.

	* config/c_io_stdio.h: Include libio.h.

2000-11-15  Mark P Mitchell  <mark@codesourcery.com>

	* acinclude.m4 (GLIBCPP_ENABLE_CSTDIO): Substitute libio_la.
	* src/Makefile.am (libstdc___la_LIBADD): Use it.
	* aclocal.m4: Regenerated.
	* configure: Likewise.
	* Makefile.in: Likewise.
	* libio/Makefile.in: Likewise.
	* libmath/Makefile.in: Likewise.
	* libsupc++/Makefile.in: Likewise.
	* src/Makfile.in: Likewise.

2000-11-15  Mark Mitchell  <mark@codesourcery.com>

	* mkcheckin.in: Move check for bash version 2 later in the file.

	* include/bits/basic_string.h (basic_string::_Rep::_S_max_size):
	Make it const.
	(basic_string::_Rep::_S_terminal): Likewise.
	* include/bits/string.tcc (basic_string::_Rep::_S_max_size):
	Likewise.
	(basic_string::_Rep::_S_terminal): Likewise.

2000-11-15  David Billinghurst  <David.Billinghurst@riotinto.com>

	* mkcheck.in:  Add function size_command() for irix.

2000-11-14  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* acinclude.m4 (GLIBCPP_CHECK_WCHAR_T_SUPPOR): Set LIBS back to
	initial value.
	(GLIBCPP_EXPORT_INCLUDES): Only export TOPLEVEL_INCLUDES if
	building a canadian cross. This should fix the remaining java
	build issues.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

	* include/bits/c++config (__GLIBCPP__): Set release version for 2.91.

2000-11-14  Phil Edwards  <pme@sources.redhat.com>

	* mkcheck.in: On a platform where we don't know how to extract
	section sizes, just set them to zero.  Use old method of reading
	file contents.

2000-11-13  Loren J. Rittle  <ljrittle@acm.org>

        * config/c_io_stdio.h: Don't define __c_wfile_type
        when _GLIBCPP_USE_WCHAR_T is not defined.

2000-11-13  Phil Edwards  <pme@sources.redhat.com>

	* acinclude.m4 (GLIBCPP_CHECK_TARGET):  New macro, replacing
	GLIBCPP_CHECK_CPU and GLIBCPP_CHECK_OS, sourcing configure.target.
	(GLIBCPP_CONFIGURE):  Call new macro here.
	* configure.host:  Cleanup.
	* configure.in:  Remove those two macros.
	* configure.target:  New file.
	* aclocal.m4:  Regenerated.
	* configure:  Ditto.
	* Makefile.in:  Ditto.
	* libio/Makefile.in:  Ditto.
	* libmath/Makefile.in:  Ditto.
	* libsupc++/Makefile.in:  Ditto.
	* src/Makefile.in:  Ditto.

	* mkcheck.in:  Use libtool.  Split things out into functions.

2000-11-12  Alexandre Petit-Bianco  <apbianco@cygnus.com>

        * Makefile.am (tmp-libstdsc++.INC:): Do not use -I$(top_builddir).
        * Makefile.in: Regenerate.

2000-11-12  David Edelsohn  <edelsohn@gnu.org>

        * acinclude.m4 (GLIBCPP_CHECK_WCHAR_T_SUPPORT): Add test for
        libiconv.a providing wchar_t support functions.
	* aclocal.m4: Regenerate.

2000-11-12  Loren J. Rittle  <ljrittle@acm.org>

        * acinclude.m4 (GLIBCPP_ENABLE_ATOMICITY): Handle FreeBSD.
        * aclocal.m4, configure: Rebuilt.

2000-11-12  Brent Verner  <brent@rcfile.org>

        * include/c_std/bits/wrap_langinfo.h: New file.
        * include/c_std/langinfo.h: New file.
        * include/bits/codecvt.h (__enc_trants::__enc_traits()): Bring in
	CODESET from _C_legacy::CODESET if using shadow headers.
	* src/Makefile.am: Add new files.
	* src/Makefile.in: Regenerate.

2000-11-12  Mark Mitchell  <mark@codesourcery.com>

	* include/c/bits/std_cmath.h (abs): Change extern "C" declaration
	of `abs (double)' to ...
	(fabs): this.

	* config/os/solaris/solaris2.7/bits/os_defines.h: Define
	__EXTENSIONS__.

2000-11-11  Mark P Mitchell  <mark@codesourcery.com>

	* include/bits/basic_file.h (__basic_file): Don't use __c_wfile_type
	when _GLIBCPP_USE_WCHAR_T is not defined.

2000-11-10  Phil Edwards  <pme@sources.redhat.com>

	* include/bits/codecvt.h (__iconv_adaptor):  New adaptor function,
	  courtesy of Alexandre Oliva, to handle const/non-const signatures.
	  (codecvt::do_out):  Use.
	  (codecvt::do_in):  And here.

2000-11-10  Gabriel Dos Reis  <gdr@codesourcery.com>

	* include/bits/cpp_type_traits.h: Fix typos.  Adjust formatting.

2000-11-10  Gabriel Dos Reis  <gdr@codesourcery.com>

	* include/bits/localefwd.h (_Count_ones<>::_S_halfcount,
	_Count_ones<>::_S_count): Turn into enumerators.

2000-11-08  Mark Mitchell  <mark@codesourcery.com>

	* include/bits/codecvt.h (codecvt::do_out): Make it const-correct.
	(codecvt::do_in): Likewise.

2000-11-08  David Edelsohn  <edelsohn@gnu.org>

	* src/locale-inst.cc: Add explicit instantiations of
	_M_fill_insert and fill_n<..., unsigned long,...> .

2000-11-06  Gabriel Dos Reis  <gdr@codesourcery.com>

        * include/bits/std_complex.h (conj): Undo double removal.

2000-11-06  Alexandre Oliva  <aoliva@redhat.com>

	* acinclude.m4 (LIB_AC_PROG_CXX): Remove CXX from the list of
	alternatives for CXX_libstdcxx, now that it is useless.
	* aclocal.m4, configure: Rebuilt.

2000-11-04  Mark Mitchell  <mark@codesourcery.com>

	* acinclude.m4 (LIB_AC_PROG_CXX): Set CXX_libstdcxx from CXX.
	* aclocal.m4: Regenerated.
	* configure: Likewise.

	* acinclude.m4 (GLIBCPP_CHECK_CTYPE_SUPPORT): Fix punctuation in
	use of `test'.
	* aclocal.m4: Regenerated.
	* configure: Likewise.

2000-11-04  Alexandre Oliva  <aoliva@redhat.com>

	* acinclude.m4 (CXX): Prevent it from being cached.
	* aclocal.m4, configure, */Makefile.in: Rebuilt.

2000-11-03  David Edelsohn <dje@watson.ibm.com>

	* acinclude.m4 (GLIBCPP_CHECK_OS): Add AIX target selecting threads
	  flag based on multilib definition of $CXX.
	* mknumeric_limits (LDFLAGS): Add AIX target linking with pthreads
	  based on multilib definition of $CXX.
	* config/os/aix/bits/os_defines.h (_G_USING_THUNKS): Define as 0.

2000-11-03  Phil Edwards  <pme@sources.redhat.com>

	* acinclude.m4:  Cleanups.
	* aclocal.m4:  Regenerated.
	* configure:  Ditto.
	* Makefile.in:  Ditto.
	* libio/Makefile.in:  Ditto.
	* libmath/Makefile.in:  Ditto.
	* libsupc++/Makefile.in:  Ditto.
	* src/Makefile.in:  Ditto.

	* docs/install.html:  Removal of EGCS.
	* docs/23_containers/wrappers_h.txt:  Likewise.
	* docs/faq/index.html:  Likewise.
	* docs/faq/index.txt:  Regenerated.
	* docs/thanks.html:  More people.

2000-11-03  David Edelsohn  <edelsohn@gnu.org>

	* include/c/bits/std_cwchar.h: Undefine macro that conflicts
	with function name defined in this file.

Thu Nov  2 23:19:20 2000  Mark P Mitchell  <mark@codesourcery.com>

	* include/c/bits/std_cctype.h: Undefine macros that conflict
	with function names defined in this file.
	* include/c/bits/std_cstdio.h: Likewise.

2000-11-02  Mark Mitchell  <mark@codesourcery.com>

	* acinclude.m4 (GLIBCPP_CHECK_CTYPE_SUPPORT): Fix typo.

Thu Nov  2 10:11:45 2000  Mark P Mitchell  <mark@codesourcery.com>

	* acinclude.m4 (GLIBCPP_CHECK_CTYPE_SUPPORT): Add support for IRIX.
	* aclocal.m4: Regenerated.
	* Makefile.in: Regenerated.
	* libio/Makefile.in: Likewise.
	* libmath/Makefile.in: Likewise.
	* libsupc++/Makefile.in: Likewise.
	* src/Makefile.in: Likewise.
	* configure: Likewise.
	* config/os/irix/bits/ctype_base.h: Revise.
	* config/os/irix/bits/ctype_inline.h: Likewise.
	* config/os/irix/bits/ctype_noninline.h: Likewise.

	* testsuite/22_locale/codecvt_unicode_char.cc: Don't run it
	if not _GLIBCPP_USE_WCHAR_T.
	* testsuite/22_locale/codecvt_unicode_wchar_t.cc: Likewise.
	* testsuite/22_locale/ctor_copy_dtor.cc: Likewise.
	* testsuite/22_locale/ctype_wchar_t_members.cc: Likewise.

	* mkcheck.in: Fix echoing of -rpath option.

	* config/os/irix/bits/atomicity.h (_Atomic_word): Make it a
	signed type.
	(__exchange_aand_add): Adjust accordingly.
	(__atomic_add): Likewise.

2000-11-02  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* src/locale.cc: Match orderings for static members.
	* include/bits/fstream.tcc: Fixes for cin.

2000-11-02  Gabriel Dos Reis  <gdr@codesourcery.com>

	* include/bits/std_complex.h (complex<>): Remove (cos<>, cosh<>,
	exp<>, log<>, log<>, sin, sinh<>) friend declarations.
	(cos, cosh, sin, sinh): Define primary templates.

	* src/complex.cc (cos<>, cosh<>, sin<>, sinh<>): Comment out
	definitions.

2000-11-01  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* bits/basic_file.h (_M_open_mode): Change signature, move
	specializations to..
	* config/c_io_libio.cc: ...here.
	* acinclude.m4 (GLIBCPP_ENABLE_CSTDIO): Add sdtio option, remove wince.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* config/c_io_stdio.h: New file.
	* config/c_io_stdio.cc: New file.
	* docs/configopts.html: Modify documentation.

2000-10-31  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* include/c/bits/std_cwctype.h: Add more undefs.

2000-10-31  Gabriel Dos Reis  <gdr@codesourcery.com>

	* include/bits/std_complex.h (norm): Forward declare.
	(complex<>): Comment out friend declaration of conj<>.
	(conj<>): Comment out specialization.
	(exp, log, log10): Define primary templates.

	* src/complex.cc (exp<>, log<>, log10<>): Comment out
	specializations.

2000-10-31  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* include/bits/std_complex.h: Remove duplicate definition of conj.
	* include/c/bits/std_cwctype.h: Consistent placement of undefs.

2000-10-31  Gabriel Dos Reis  <gdr@codesourcery.com>

	* src/complex.cc (arg, polar): Comment out specializations.

	* include/bits/std_complex.h (complex<>): Remove arg<> friend
	declaration.
	(arg): Define primary template.
	(polar): Likewise.
	(conj): Likewise.

2000-10-31  Gabriel Dos Reis  <gdr@codesourcery.com>

	* include/c/bits/std_cwctype.h: #undef possible function-like
	macro definitions of iswxxx functions, which might be brought in
	by <wctype.h>.  Those macro definitions prevent build on some
	linux-based systems.

	* include/bits/std_complex.h (complex<>): Comment out friend
	declarations of abs<> specializations.
	(abs): Define primary template.

	* src/complex.cc (abs): Comment out specialization definition.

2000-10-30  Phil Edwards  <pme@sources.redhat.com>

	* acinclude.m4 (GLIBCPP_ENABLE_DEBUG):  Raise debugging level from
	  the default of 2 to 3.
	* configure.in:  Fix minor typos.  SUBST the values of enable_shared
	  and enable_static so that mkcheck will be aware of them.  Put the
	  test for gconv.h in with all the other header tests.
	* aclocal.m4:  Regenerate.
	* configure:  Ditto.
	* Makefile.in:  Ditto.
	* libio/Makefile.in:  Ditto.
	* libmath/Makefile.in:  Ditto.
	* libsupc++/Makefile.in:  Ditto.
	* src/Makefile.in:  Ditto.

	* config/os/solaris/solaris2.7/bits/os_defines.h:  Define
	  _G_USING_THUNKS to 0.

2000-10-30  Benjamin Kosnik  <bkoz@redhat.com>

	* src/complex_io.cc : Remove ancient defines.
	* config/os/gnu-linux/bits/os_defines.h: Add defines.
	* libsupc++/tinfo2.cc: Change to cstddef.

	* include/bits/codecvt.h: Add include of c++config.h, so that
	__USE_GNU gets defined. (Important for alpha.)

	* include/c/bits/std_cwctype.h: Same.
	* include/c/bits/std_ctime.h: And here.
	* include/c/bits/std_cstdarg.h: Same.
	* include/c/bits/std_csignal.h: Same.
	* include/c/bits/std_csetjmp.h: Same.
	* include/c/bits/std_clocale.h: Same.
	* include/c/bits/std_climits.h: Touch.
	* include/c/bits/std_cfloat.h: Same.
	* include/c/bits/std_cerrno.h: Same.
	* include/c/bits/std_cwchar.h: Same.
	* include/c/bits/std_cassert.h: Same.
	* include/c/bits/std_cctype.h: Same.
	* include/c/bits/std_cstddef.h: And here.
	* include/c/bits/std_cstdlib.h: And here.
	* include/c/bits/std_cstdio.h: Same.
	* include/c/bits/std_cstring.h: Add names to namespace std::.

	* include/bits/c++config (_GNU_SOURCE): Move linux-specific macros
	from here...
	(_ISOC99_SOURCE): And this one....
	* config/os/gnu-linux/bits/os_defines.h: ...to here.

	* include/bits/codecvt.h (codecvt<_InternT, _ExternT,
	__enc_traits>::do_in): Don't cast to const, this is a bug in glibc
	prior to 2.2.
	(codecvt<_InternT, _ExternT, __enc_traits>::do_out): Same.
	* include/c/bits/std_cwchar.h: Add using declarations for mbstate_t.

2000-10-30  Steven King  <sxking@uswest.net>

	* include/bits/codecvt.h: Add cast.
	* include/c_std/stdio.h: Re-add printf using declaration.
	* include/c_std/bits/std_cstdio.h: Same
	* testsuite/22_locale/codecvt_wchar_t_char.cc: Fixup testsuite.
	* testsuite/22_locale/ctor_copy_dtor.cc: Same.
	* testsuite/22_locale/facet.cc: Same.
	* testsuite/22_locale/global_templates.cc: Same.
	* testsuite/22_locale/operators.cc: Same.
	* testsuite/22_locale/static_members.cc: Same.
	* testsuite/26_numerics/c_math.cc: Same.
	* testsuite/26_numerics/complex_inserters_extractors.cc: Same.
	* testsuite/27_io/fpos.cc: Same.
	* testsuite/27_io/istream_extractor_arith.cc: Same.
	* testsuite/27_io/istream_unformatted.cc: Same.
	* testsuite/27_io/ostream_inserter_arith.cc: Same.
	* testsuite/27_io/streambuf.cc: Same.

2000-10-30  Mark Mitchell  <mark@codesourcery.com>

        * acinclude.m4 (GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT): Check
        for cabs, cabsf, and cabsl, too.
        * aclocal.m4: Regenerated.
        * config.h.in: Likewise.
        * configure: Likewise.
        * libmath/Makefile.am (libmath_la_SOURCES): Remove cabs.c and
        cabsf.c.
        * libmath/Makefile.in: Regenerated.
        * libmath/complex-stub.h (cabs): Don't declare if the system
        already provides this function.
        (cabsf): Likewise.
        (cabsl): Likewise.
        * src/complex.cc (abs): Directly use `hypot' since we can't call
        cabs on IRIX.

2000-10-30  Joseph S. Myers  <jsm28@cam.ac.uk>

	* acinclude.m4: Update URL on egcs.cygnus.com to point to
	gcc.gnu.org.
	* aclocal.m4, configure: Regenerate.
	* src/gen-num-limits.cc, include/bits/c++config,
	include/bits/stl_config.h: Remove EGCS references.

2000-10-29  Mark Mitchell  <mark@codesourcery.com>

	* mkcheck.in (test_file): Use -rpath, rather than --rpath, when
	building shared executables.

2000-10-29   Mark Harig <mharig@landmark.com>

	* src/Makefile.am: Change logic for include dir options.
	* src/Makefile.in: Regenerate.
	* libsupc++/Makefile.am: Ditto.
	* libsupc++/Makefile.in: Regenerate.

2000-10-29  Benjamin Kosnik  <bkoz@redhat.com>

	* configure.in: Simplify use of AC_CACHE_SAVE.  Put linked files
	in $(top_builddir)/include/bits, not $(top_builddir)/bits, to help
	with libgcj build issues and improve consistency with the source
	directory's include directory setup.
	* configure: Regenerate.
	* acinclude.m4: Same here.
	* aclocal.m4: Regenerate.
	* mknumeric_limits (OUT_H): Also change paths here.
	* mkcheck.in (C_DIR): And here.
	* mkc++config (OUT_H): And here.
	* libmath/Makefile.am (INCLUDES): And here.
	* src/Makefile.am (INCLUDES): Change to $(top_builddir)/include.
	* libio/Makefile.am: Ditto.
	* libsupc++/Makefile.am (INCLUDES): Ditto.

2000-10-29  Mark Mitchell  <mark@codesourcery.com>

	* config/c_io_libio.cc (basic_file<char>::__basic_file):
	Don't pass a NULL _IO_wide_data to _IO_no_init when
	_GLIBCPP_USE_WCHAR_T is not defined.
	* config/c_io_libio.h (_IO_codecvt): Don't declare when
	_GLIBCPP_USE_WCHAR_T is not defined.
	* config/c_io_libio_codecvt.c: Don't compile it
	when _GLIBCPP_USE_WCHAR_T is not defined.
	* include/bits/codecvt.h (codecvt<_InternT, _ExternT, __enc_traits):
	Don't define this specialization when _GLIBCPP_USE_WCHAR_T
	is not defined.
	* include/bits/locale_facets.h (<bits/std_cwctype.h>): Don't
	include it when _GLIBCPP_USE_WCHAR_T is not defined.
	* src/codecvt.cc (__enc_traits::_S_max_size): Don't define
	when _GLIBCPP_USE_WCHAR_T is not defined.
	* src/localename.cc (locale::_Impl::_M_construct_collate):
	Don't call wide-character functions when _GLIBCPP_USE_WCHAR_T is
	not defined.
	(locale::_Impl::_M_construct_ctype): Likewise.
	(locale::_Impl::_M_construct_monetary): Likewise.
	(locale::_Impl::_M_construct_numeric): Likewise.
	(locale::_Impl::_M_construct_time): Likewise.
	(locale::_Impl::_M_construct_messages): Likewise.

	* acinclude.m4 (GLIBCPP_ENABLE_ATOMICITY): Handle IRIX.
	* aclocal.m4: Regenerated.
	* configure: Likewise.
	* config/os/irix/bits/atomicity.h: New file.
	* config/os/irix/bits/os_defines.h (_POSIX_SOURCE): Undefine.
	(__off_t): Define.
	(__off64_t): Likewise.
	(__ssize_t): Likewise.
	(_G_USING_THUNKS): Define to zero.

2000-10-28  Mark Mitchell  <mark@codesourcery.com>

	* src/string-inst.cc (basic_string<C>::npos): Explicitly
	instantiate it.

2000-10-26  Benjamin Kosnik  <bkoz@redhat.com>

	* include/c/bits/std_cmath.h: Fix double declarations in namespace std.

	Clean up naming, consistency in "C" library autoconf testing.
	* acinclude.m4 (GLIBCPP_CHECK_CTYPE): For consistency, change to
	GLIBCPP_CHECK_CTYPE_SUPPORT.
	(GLIBCPP_CHECK_STDLIB_SUPPORT): Add.
	* aclocal.m4: Regenerate.
	* configure.in: And here.
	Add call to GLIBCPP_CHECK_STDLIB_SUPPORT.
	* configure: Regenerate.

2000-10-26  David Edelsohn  <edelsohn@gnu.org>

	* acinclude.m4 (GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_2): New macro.
	(GLIBCPP_CHECK_MATH_SUPPORT): Use it to test for strtold.

2000-10-26  Phil Edwards  <pme@sources.redhat.com>
	    David Edelsohn  <dje@watson.ibm.com>

	* acinclude.m4 (GLIBCPP_CHECK_LINKER_FEATURES): Comment out
	--gc-sections stuff entirely to avoid misleading people.
        (GLIBCPP_ENABLE_CSTDIO): Merge need_libio and need_xtra_libio.
        * libio/Makefile.am (LIBIO_SRCS,LIBIO_WSRCS,LIBIO_XTRA_SRCS):
	Rearrange and merge.
        * libio/libio.h: Simplify, make fewer assumptions.  Define those
	macros which must be defined.
        * config/os/solaris/solaris2.7/bits/os_defines.h: Simplify as a
	result.

2000-10-26  Mark Mitchell  <mark@codesourcery.com>

	* include/backward/streambuf.h: New file.

2000-10-26  David Edelsohn  <dje@watson.ibm.com>

	* config/os/aix/bits/ctype_inline.h (is): Use __OBJ_DATA directly.
        * config/os/aix/bits/ctype_noninline.h (do_tolower): Fix typo.
        * config/os/aix/bits/os_defines.h: Add AIX defines.

2000-10-26  Benjamin Kosnik  <bkoz@redhat.com>

	* acinclude.m4 (GLIBCPP_ENABLE_LONG_DOUBLE): Remove.
	* aclocal.m4: Regenerate.
	* configure.in: Remove GLIBCPP_ENABLE_LONG_DOUBLE.
	* configure: Regenerate.
	* docs/configopts.html: Remove.
	* src/complexl.cc: Revert.
	* config.h.in: Remove.
	* include/c_std/bits/std_cmath.h: Remove guards based on
	_GLIBCPP_USE_LONG_DOUBLE.
	* include/c/bits/std_cmath.h: Same. Format. Match c_std behavior
	with respect to long double signatures.

	* config/os/aix/bits/ctype_noninline.h (ctype): Remove throw
	specification.
	* config/os/newlib/bits/ctype_noninline.h (ctype): And here.
	* config/os/solaris/solaris2.6/bits/ctype_noninline.h (ctype): Same.
	* config/os/solaris/solaris2.5/bits/ctype_noninline.h (ctype): Same.
	* config/os/generic/bits/ctype_noninline.h (ctype): Same.
	* config/os/bsd/bits/ctype_noninline.h (ctype): Same.

2000-10-26  Gabriel Dos Reis  <gdr@codesourcery.com>

	* include/bits/std_valarray.h (valarray::valarray): Fix thinko.
	Use __valarray_copy_construct only where appropriate.

2000-10-25  Mark Mitchell  <mark@codesourcery.com>

	* Makefile.in (check): Don't make mkcheck executable.
	(check-install): Likewise.
	* configure.in (AC_OUTPUT): Make mkcheck executable.
	* mkcheck.in (top_srcdir): New variable.
	(INC_PATH): Set the path to the backward and ext directories
	correctly.

2000-10-25  Phil Edwards  <pme@sources.redhat.com>

        * configure.in:  Check for gconv.h.
        * libio/wfileops.c:  Wrap gconv.h in HAVE_GCONV_H.

        * config/c_io_libio_codecvt.c:  Change __mbstate_t to __c_mbstate_t.
        * libio/_G_config.h:  And here.
        * libio/iofwide.c:  And here.
        * libio/libio.h:  And here.

        * config/os/solaris/solaris2.7/bits/ctype_noninline.h:  Remove
          exception specification to match declaration.
        * include/bits/locale_facets.tcc:  Include bits/std_clocale.h.

2000-10-24   Mark Harig <mharig@landmark.com>

        * docs/configopts.html: Added documentation for the
        "--enable-version-specific-runtime-libs" and
        "--with-gxx-include-dir" configuration switches.

2000-10-24  Benjamin Kosnik  <bkoz@redhat.com>

        * include/bits/stl_pair.h (make_pair): Add LWG solution.

        * testsuite/21_strings/compare.cc (test01): Inject namespace std
	into the mix.

	* mkcheck.in (MAX_MEM_USAGE): Bump up to 3072. Strangely enough,
	this works.

2000-10-24  Levente Farkas  <lfarkas@mindmaker.hu>

	* include/bits/std_bitset.h (_M_do_find_next): Fix typo.

2000-10-24  Phil Edwards  <pme@sources.redhat.com>

        * acconfig.h:  List _GLIBCPP_USE_THREADS.
        * acinclude.m4:  General formatting cleanup (tabs/spaces), typo
          correction, etc.  Add comments about following *real* changes
          where they are used.
          (GLIBCPP_ENABLE_C_MBCHAR):  New test...
          (GLIBCPP_CHECK_WCHAR_T_SUPPORT):  ...results used here.
          (GLIBCPP_ENABLE_CSTDIO):  Define need_wlibio iff wide characters
          are requested.
          (GLIBCPP_ENABLE_THREADS):  If threads are used, define new
          macro _GLIBCPP_USE_THREADS in c++config.h.
          (GLIBCPP_ENABLE_SHADOW):  For C_INCLUDE_DIR, change () to {} as
          this is used in both makefiles and shell scripts (mkcheck).
        * configure.in:  Call GLIBCPP_ENABLE_C_MBCHAR.

        * libio/_G_config.h:  Wrap _IO_MTSAFE_IO in _GLIBCPP_USE_THREADS.
        * config/c_io_libio.h:  In nonthreaded case, typedef __c_lock to
          something harmless, like int.

        * config/os/aix/bits/os_defines.h:  Guard with _GLIBCPP_OS_DEFINES,
          add comment/instructions.
        * config/os/bsd/bits/os_defines.h:  Ditto.
        * config/os/generic/bits/os_defines.h:  Ditto.
        * config/os/gnu-linux/bits/os_defines.h:  Ditto.
        * config/os/irix/bits/os_defines.h:  Ditto.
        * config/os/newlib/bits/os_defines.h:  Ditto.
        * config/os/solaris/solaris2.5/bits/os_defines.h:  Ditto.
        * config/os/solaris/solaris2.6/bits/os_defines.h:  Ditto.

        * mkcheck.in:  Limit the available heap size for testsuite
          binaries, initially at 2MB.

2000-10-23  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/21_strings/compare.cc (test01): Add using declarations.

	* include/c_std/bits/std_cerrno.h: And here.
	* include/c_std/bits/std_cassert.h: Tweaks.

	* mkcheck.in: Simplify.

	* acinclude.m4 (GLIBCPP_ENABLE_LONG_DOUBLE): Simplify.
	(GLIBCPP_ENABLE_LONG_LONG): Same.
	* aclocal.m4: Regenerate.

	* src/Makefile.am (c_shadow_headers): Add features.h,
	bits/wrap_features.h.
	* src/Makefile.in: Regenerate.
	* include/c_std/features.h: New file.
	* include/c_std/bits/wrap_features.h (_CPP_WRAP_FEATURES_H): New
	file. Need to have c++config.h included before this file so
	_ISOC99_SOURCE around.

	* include/c_std/sys/cdefs.h: Hack.
	* include/c_std/stdlib.h: Same, use c++config.h.
	* include/c_std/bits/std_cstdlib.h: Use _GLIBCPP_HAVE_STRTOLD.

	* include/c_std/bits/std_cassert.h: Fix.
	* include/c_std/bits/std_cerrno.h: Make consistent.

	* include/c_std/bits/std_csetjmp.h (setjmp): Unscope global
	declaration from ::_C_legacy to _C_legacy.

	* include/c_std/bits/std_cstdio.h: same with printf.
	* include/c_std/stdio.h: And here.

	* include/c_std/bits/std_cstdlib.h: abort, exit comment.
	* include/c_std/stdlib.h: Same here.

2000-10-23  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/21_strings/compare.cc (test01): Add using declarations.

	* include/c_std/bits/std_cerrno.h: And here.
	* include/c_std/bits/std_cassert.h: Tweaks.

	* mkcheck.in: Simplify.

	* acinclude.m4 (GLIBCPP_ENABLE_LONG_DOUBLE): Simplify.
	(GLIBCPP_ENABLE_LONG_LONG): Same.
	* aclocal.m4: Regenerate.

	* src/Makefile.am (c_shadow_headers): Add features.h,
	bits/wrap_features.h.
	* src/Makefile.in: Regenerate.
	* include/c_std/features.h: New file.
	* include/c_std/bits/wrap_features.h (_CPP_WRAP_FEATURES_H): New
	file. Need to have c++config.h included before this file so
	_ISOC99_SOURCE around.

	* include/c_std/sys/cdefs.h: Hack.
	* include/c_std/stdlib.h: Same, use c++config.h.
	* include/c_std/bits/std_cstdlib.h: Use _GLIBCPP_HAVE_STRTOLD.

	* include/c_std/bits/std_cassert.h: Fix.
	* include/c_std/bits/std_cerrno.h: Make consistent.

	* include/c_std/bits/std_csetjmp.h (setjmp): Unscope global
	declaration from ::_C_legacy to _C_legacy.

	* include/c_std/bits/std_cstdio.h: same with printf.
	* include/c_std/stdio.h: And here.

	* include/c_std/bits/std_cstdlib.h: abort, exit comment.
	* include/c_std/stdlib.h: Same here.

2000-10-21  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* acinclude.m4 (GLIBCPP_ENABLE_LONG_DOUBLE): New macro.
	* aclocal.m4: Regenerate.
	* configure.in: Use it.
	* configure: Regenerate.
	* src/complexl.cc: Fixup.
	* include/c_std/bits/std_cmath.h: Fixup.
	* include/c/bits/std_cmath.h: Fixup.
	* docs/configopts.html: Add docs.

	* docs/links.html: Add links to defects list, standards FAQ.

	* testsuite/21_strings/ctor_copy_dtor.cc (test01): Disable tests
	with string creation that allocate huge ammounts of memory.

	* include/c/bits/std_cstddef.h: Put size_t, ptrdiff_t in
	namepace std.

2000-10-21  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>

	* libsupc++/exception.cc: Use namespace std.
	* libsupc++/new: DITTO.
	* libsupc++/new_op.cc: DITTO.
	* libsupc++/new_opnt.cc: DITTO.
	* libsupc++/new_opv.cc: DITTO.
	* libsupc++/new_opvnt.cc: DITTO.
	* libsupc++/tinfo.cc: DITTO.
	* libsupc++/tinfo.h: DITTO.
	* libsupc++/vec.cc: DITTO.
	* libsupc++/Makefile.am: Blank lines removal.

2000-10-21  Joseph S. Myers  <jsm28@cam.ac.uk>

	* docs/configopts.html, docs/install.html, docs/17_intro/BADNAMES,
	docs/17_intro/howto.html, docs/18_support/howto.html,
	docs/19_diagnostics/howto.html, docs/20_util/howto.html,
	docs/21_strings/howto.html, docs/22_locale/howto.html,
	docs/23_containers/howto.html, docs/24_iterators/howto.html,
	docs/25_algorithms/howto.html, docs/26_numerics/howto.html,
	docs/27_io/howto.html, docs/ext/howto.html, docs/faq/index.html:
	Remove many EGCS references; use current absolute URLs on
	gcc.gnu.org or sources.redhat.com for messages in list archives.
	* docs/faq/index.txt: Regenerate.

2000-10-19  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* testsuite/22_locale/codecvt_unicode_char.cc (test01): Adjust
	creation of state_type for unicode_codecvt to take into account
	the byte order markings. Add distinct tests for UCS-2BE and UCS-2LE.
	* testsuite/22_locale/codecvt_unicode_wchar_t.cc (test01): Same.
	* include/bits/codecvt.h (__enc_traits): Add support for encodings
	that need a byte order marker. Needed for correct unicode support.

	* src/locale.cc: Remove explicit qualification std::.
	(locale::locale(const char* __name)): Revert, as named locale
	support not finished.
	* src/localename.cc (locale::_Impl:: _Impl(size_t __numfacets,
	size_t __refs, bool __has_name = false, string __name): Move
	default argument...
	* include/bits/localefwd.h: Here.

2000-10-18  Chip Salzenberg  <chip@valinux.com>

        * libio/libio.h (_IO_USER_LOCK): Define.

2000-10-18  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* libsupc++/Makefile.am (exception): Change exception.cc to
	exception_support.cc.
	(CXXLINK): Remove bogus --tag CC.
	* libsupc++/Makefile.in: Regenerate.
	* libsupc++/exception.cc: Move to...
	* libsupc++/exception_support.cc: ...here.

	* src/Makefile.am: Remove bogus --tag CC.
	* src/Makefile.in: Regenerate.

	* include/bits/locale_facets.tcc (use_facet): Simplify.
	* include/bits/locale_facets.h (use_facet<ctype<char> >): Correct
	use_facet declaration. Replace 'const ctype<T>' with ctype<T>.
	(use_facet<ctype<wchar_t> >): Same.
	* src/locale-inst.cc: Remove explicit instantiation.
	* src/locale.cc: Correct signature here too.
	(_Bad_use_facet::what()): Correct error string.
	* include/bits/localefwd.h: Correct comment.

	* mkcheck.in (C_DIR): Change libsupc++/include to libsupc++.

2000-10-17  Martin Buchholz <martin@xemacs.org>

	* testsuite/27_io/istream_seeks.cc: Fix spelling typo.
	* testsuite/27_io/ostream_seeks.cc: Similarly.

2000-10-17  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	via Alexandre Oliva  <aoliva@redhat.com>
	* libsupc++/Makefile.am: Add --tag CXX, --tag CC, comments.
	* libsupc++/Makefile.in: Regenerate.
	* src/Makefile.am: Duplicate code.
	* src/Makefile.in: Regenerate.

	* acinclude.m4 (GLIBCPP_ENABLE_RELIBGCC): Take this out.
	* aclocal.m4: Regenerate.
	* configure.in: And here.
	* configure: Regenerate.

	* acinclude.m4 (GLIBCPP_CHECK_LINKER_FEATURES): Disable
	test for SECTION_LDFLAGS.

2000-10-16  Benjamin Kosnik  <bkoz@gnu.org>

	Shadow headers would work if libsupc++ was strict about namespaces.
	This only possible if g++ maps std::size_t -> size_t. (Hint hint.)
	* include/c_std/assert.h: Add guards.
	* include/c_std/bits/std_climits.h: Correct typo.
	* include/c_std/ctype.h: Remove #error.

	* libio/libioP.h: Break up extern "C" bits around includes.
	* libio/libio.h: Only include C headers, or else _C_legacy namespaces
	will be nested.
	* libio/libioP.h: Same here.

2000-10-15 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>

	* include/c_std/unistd.h: Define some types only when defined in
	the original unistd.h.
    	* include/c_std/bits/std_cstddef.h: Explicitly ask for the
	definition of size_t, ptrdiff_t and NULL.
    	* include/c_std/bits/wrap_unistd.h: Blank lines removal.

2000-10-15  Phil Edwards  <pme@sources.redhat.com>

	* docs/configopts.html:  Remove libgcc-rebuild; HTML formatting.

2000-10-13  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>
            Mark Harig  <markh@landmark.com>

	* src/Makefile.am (toolexeclibdir): Add support fo
	VERSION_SPECIFIC_LIBS and --with-gxx-include-dir.
	* src/Makefile.in: Regenerate.
	* libsupc++/Makefile.am: Same.
	(glibcppinstalldir): Adjust.
	* libsupc++/Makefile.in: Regenerate.
	* Makefile.am: Remove gxx_include_dir. Remove INCLUDE.
	* Makefile.in: Regenerate.
	* docs/configopts.html: Add descriptions of flags.

2000-10-11  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* libsupc++/Makefile.am: Use it.
	* libio/Makefile.am: Use it.
	* libmath/Makefile.am: Use it.
	* src/Makefile.am: Use it.
	* Makefile.am (AM_MAKEFLAGS): Remove includes.

	* acinclude.m4 (GLIBCPP_EXPORT_INCLUES): Move include macros here.
	(GLIBCPP_EXPORT_FLAGS): Move CXX flag setting here.
	* configure.in: Use it.

	* mkcheck.in (SRC_DIR): Use C_INCLUDE_DIR.

	* src/Makefile.am (CXXCOMPILE): Remove.
	* src/Makefile.in: Regenerate.
	* libsupc++/Makefile.am (CXXCOMPILE): Same here.
	* libsupc++/Makefile.in: Regenerate.

	* include/c_std/*: Merge with shadow.
	* include/c_std/bits/*: Same.

	* shadow: Remove directory.
	* shadow/*: De-populate.

2000-10-11  Phil Edwards  <pme@sources.redhat.com>

	* acinclude.m4 (GLIBCPP_CHECK_LINKER_FEATURES):  Comment out
	  exception-throwing code for linker test.
	* aclocal.m4:  Regenerate.
	* configure:  Regenerate.

2000-10-10  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* Makefile.am (LIBSUPCXX_INCLUDES): Adjust.
	* libsupc++/include: Remove
	* libsupc++/include/*: Move to ...
	* libsupc++: Here.
	* libsupc++/Makefile.am (glibcppinstall_HEADERS): Install headers.
	(glibcppinstalldir): New.

	* src/Makefile.am (c_base_headers): New.
	(c_shadow_headers): New
	(c_headers): New.
	(myinstallheaders): Correct install issues.
	* src/Makefile.in: Regenerate.

	* Makefile.am (CSHADOW_INCLUDES): Simplify.
	* Makefile.in: Regenerate.
	* acinclude.m4 (GLIBCPP_ENABLE_SHADOW): Add c_include_dir.
	* aclocal.m4: Regenerate.
	* mkcheck.in (SRC_DIR): Use it.

	* include/bits/std_stdexcept.h: And here.
	* include/bits/std_ios.h: Change std_exception.h to exception.
	* src/locale.cc: And here.
	* src/locale-inst.cc: And here.

	* include/bits/valarray_array.h: And here.
	* include/bits/stl_alloc.h: And here.
	* include/bits/stl_algobase.h: And here.
	* include/bits/pthread_allocimpl.h: And here.
	* include/bits/stl_construct.h: Change to std_new.h to new.

	* include/bits/locale_facets.h: Change std_typeinfo.h to typeinfo.

	* src/Makefile.am (INCLUDES): Add LIBSUPCXX_INCLUDES.
	(headers): Remove duplicated headers.
	(std_headers): And here.
	* src/Makefile.in: Regenerate.
	* libsupc++/Makefile.am (LIBSUPCXX_INCLUDES): Remove.
	* libsupc++/Makefile.in: Regenerate.
	* Makefile.am (LIBSUPCXX_INCLUDES): Add here.
	(AM_MAKEFLAGS): And here.
	* Makefile.in: Regenerate.
	* include/bits/std_typeinfo.h: Remove.
	* include/bits/std_new.h: Remove
	* include/bits/std_exception.h: Remove.
	* std/new: Remove.
	* std/typeinfo: Remove.
	* std/exception: Remove.

	* libio/_G_config.h (__need_ptrdiff_t): Add.

	* libsupc++/include/new: Change stddef.h to cstddef.
	* libsupc++/tinfo.h: Change limits.h to climits.
	* libsupc++/pure.cc: Comment out _GNU_LIBRARY_ bits, as this
	renders the file uncompilable. Add copyright.

	* include/c_std/bits/std_cstddef.h: Don't bring wchar_t into std
	namespace, as it is a fundamental type.

2000-10-09  Richard Henderson  <rth@cygnus.com>

	* libsupc++/pure.cc: New file.
	* libsupc++/Makefile.am (INCLUDES): Add top_builddir.
	(sources): Add pure.cc.
	* libsupc++/Makefile.in: Regenerate.

2000-10-09  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* docs/configopts.html: Edit.

	* libio/Makefile.am (INCLUDES): Remove duplicates, simplify.
	* libio/Makefile.in: Regenerate.
	* libmath/Makefile.am (INCLUDES): Remove duplicates, simplify.
	* libmath/Makefile.in: Regenerate.
	* libsupc++/Makefile.am (INCLUDES): Remove duplicate.
	* libsupc++/Makefile.in: Regenerate.

	* Makefile.am (AM_MAKEFLAGS): Add GLIBCPP_INCLUDES,
	TOPLEVEL_INCLUDES, LIBMATH_INCLUDES, LIBIO_INCLUDES,
	CSHADOW_INCLUDES up here.
	* Makefile.in: Regenerate.
	* src/Makefile.am (CSHADOW_INCLUDES): Add include/c_std, include/c
	for shadow headers.
	(myinstallheaders): Change glibcpp_includedir to GLIBCPP_INCLUDES.
	Move GLIBCPP_INCLUDES, TOPLEVEL_INCLUDES, LIBMATH_INCLUDES,
	LIBIO_INCLUDES, CSHADOW_INCLUDES up Makefile hierarchy.
	* src/Makefile.in: Regenerate.

	* include/c: New directory.
	* include/c/bits/(std_cassert.h, std_cctype.h, std_cerrno.h,
	std_cfloat.h, std_climits.h, std_clocale.h, std_cmath.h,
	std_csetjmp.h, std_csignal.h, std_cstdarg.h, std_cstddef.h,
	std_cstdio.h, std_cstdlib.h, std_cstring.h, std_ctime.h,
	std_cwchar.h, std_cwctype.h): Add, moving from...
	* include/bits: ...here.
	* include/c_std: New directory.
	* include/c_std/bits/*: Populate from...
	* shadow: ...here. Remove directory.

2000-10-08   Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* libsupc++/Makefile.am (INCLUDES): Add toplevel include directory.
	(INCLUDES): Add glibcpp_includedir.
	* libsupc++/Makefile.in: Regenerate.

	* acinclude.m4 (GLIBCPP_CHECK_OS): Link to os_defines.h.
	* aclocal.m4: Regenerate.
	* config/os/*/bits/os_defines: Adjust copyright dates.

2000-10-08  Phil Edwards  <pme@sources.redhat.com>

	* include/bits/c++config:  Include <bits/os_defines.h>
	* config/os/aix/bits/os_defines.h:  New file.
	* config/os/bsd/bits/os_defines.h:  Ditto.
	* config/os/generic/bits/os_defines.h:  Ditto.
	* config/os/gnu-linux/bits/os_defines.h:  Ditto.
	* config/os/irix/bits/os_defines.h:  Ditto.
	* config/os/newlib/bits/os_defines.h:  Ditto.
	* config/os/solaris/solaris2.5/bits/os_defines.h:  Ditto.
	* config/os/solaris/solaris2.6/bits/os_defines.h:  Ditto.
	* config/os/solaris/solaris2.7/bits/os_defines.h:  Ditto.

2000-10-07  David Edelsohn  <dje@watson.ibm.com>

	* config/os/aix/bits/atomicity.h: New file.

2000-10-07  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

        * acinclude.m4: Remove CPU_FLAGS
        * libio/Makefile.am: Here too.
        * Makefile.am: Here too.

        * src/Makefile.am (CONFIG_INCLUDES): Remove.
        (INCLUDES): Remove CONFIG_INCLUDES.
        (cpu_headers): Remove.
        (myinstallheaders): Remove cpu_headers.
        (generated_headers): Rename to build_headers.
        (build_headers): Add atomicity.h, ctype_base.h,
        ctype_specializations.h.

        * config/os: New directory.
        * config/aix: Move to...
        * config/bsd: Move to...
        * config/generic: Move to...
        * config/gnu-linux: Move to...
        * config/irix: Move to...
        * config/newlib: Move to...
        * config/solaris: Move to...
        * config/os/*: Here.

2000-10-07  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* acinclude.m4: Remove CPU_FLAGS
	* libio/Makefile.am: Here too.
	* Makefile.am: Here too.

	* src/Makefile.am (CONFIG_INCLUDES): Remove.
	(INCLUDES): Remove CONFIG_INCLUDES.
	(cpu_headers): Remove.
	(myinstallheaders): Remove cpu_headers.
	(generated_headers): Rename to build_headers.
	(build_headers): Add atomicity.h, ctype_base.h,
	ctype_specializations.h.

	* config/os: New directory.
	* config/aix: Move to...
	* config/bsd: Move to...
	* config/generic: Move to...
	* config/gnu-linux: Move to...
	* config/irix: Move to...
	* config/newlib: Move to...
	* config/solaris: Move to...
	* config/os/*: Here.

2000-10-06  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* src/Makefile.am: Remove OPTIMIZE_CXXFLAGS, WARN_CXXFLAGS,
	CONFIG_CXXFLAGS from here, and move to...
	* src/Makefile.in: Regenerate.
	* Makefile.am: ... here. Clean.
	(OPTIMIZE_CXXFLAGS): Move up Makefile hierarchy to here.
	(WARN_CXXFLAGS): Same.
	(CONFIG_CXXFLAGS): Same.
	* Makefile.in: Regenerate.
	* libsupc++/Makefile.am: Use top-level OPTIMIZE_CXXFLAGS,
	WARN_CXXFLAGS, CONFIG_CXXFLAGS as part of local AM_CXXFLAGS.
	* libsupc++/Makefile.in: Regenerate.

	Change math to libmath.
	* math: Move to libmath, delete.
	* libmath: New directory.
	* libmath/*: Populate.
	* src/Makefile.am (LIBMATH_INCLUDES): Change to libmath.
	(libstdc___la_LIBADD): Same.
	* src/Makefile.in: Regenerate.
	* configure.in: Add AC_OUTPUT for libmath/Makefile.
	* configure: Regenerate.
	* Makefile.am (SUBDIRS): Add libmath.
	* Makefile.in: Regenerate.
	* README (file): Change name.

2000-10-06  Benjamin Kosnik  <bkoz@cygnus.com>
            Richard Henderson  <rth@cygnus.com>
	    Alexandre Oliva  <aoliva@redhat.com>

	* libsupc++: New directory.
	* libsupc++/*: Populate.
	* libsupc++/Makefile.am (INCLUDES): Add -I../../gcc for
	eh-common.h, gansidecl.h.
	* configure.in: Add in libsupc++/Makefile to AC_OUTPUT.
	* configure: Regenerate.
	* Makefile.am (SUBDIRS): Add libsupc++.
	* Makefile.in: Regenerate.
	* src/Makefile.am (libstdc___la_LIBADD): Add in libsupc++.la
	* src/Makefile.in: Regenerate.
	* libio/Makefile.am: Remove extraneous, confusing bits.
	* libio/Makefile.in: Regenerate.

2000-10-05  Brent Verner  <brent@rcfile.org>

        * bits/istream.tcc [basic_istream::get(basic_streambuf&)]: Removed
	test for _M_gcount < in_avail(), as in_avail() only reports info
	for current buffer, causing method to return at end of buffer.
	* testsuite/27_io/istream_unformatted.cc [test07()]: New test.
	* testsuite/27_io/istream_unformatted-3.txt: New file.
	* testsuite/27_io/istream_unformatted-3.tst: New file.

2000-10-05  Benjamin Kosnik  <bkoz@fillmore.constant.com>

	* README (file): Adjust directory structures.
	* mkcheck.in (INC_PATH): Adjust for header changes.

2000-10-05  Phil Edwards  <pme@sources.redhat.com>

	* acinclude.m4 (GLIBCPP_CHECK_CTYPE):  Tweaks to message texts
	  for public relations purposes.
	* aclocal.m4:  Regenerated.
	* configure:  Regenerated.

	* docs/ext/howto.html:  Additional explanation about hashing.

2000-10-05  Benjamin Kosnik  <bkoz@cygnus.com>

	* include: New directory.
	* include/backward: New directory.
	* include/bits: New directory.
	* include/ext: New directory.
	* include/std: New directory.
	* include/*/*: Populate.

	* backwards: Move to include/backwards, delete.
	* bits: Move to include/bits, delete.
	* ext: Move to include/ext, delete.
	* std: Move to include/std, delete.

	* src/complex.cc: Adjust include of mathconf.

	* mkc++config (BASE_H): Add include.

	* src/Makefile.am: Support for topleve sources include directory.
	(INCLUDES): Add LIBMATH_INCLUDE.
	* src/Makefile.in: Regenerate.
	* math/Makefile.am (INCLUDES): Append /include.
	* math/Makefile.in: Regenerate.
	* libio/Makefile.am (INCLUDES): Add glibcpp_includedir.
	* libio/Makefile.in: Regenerate.

2000-10-04  Benjamin Kosnik  <bkoz@gnu.org>

	* libio/_G_config.h : Re-guard the __mbstate_t declaration.

2000-10-03  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* docs/22_locale/howto.html: Add link to proto-documentation on
	locales.
	* docs/documentation.html: Rename links for clarity.

	* src/Makefile.am (headers): Remove unistd.h, wrap_unistd.h. Add
	fcntl.h, iolibio.h, libioP.h, pthread.h, iconv.h.
	* src/Makefile.in: Regenerate.

2000-10-02  Steven King  <sxking@uswest.net>

        * mkcshadow: Fixed script to output proper include guard.
        * bits/char_traits.h: Cleaned up types in char_traits<char> functions.
        * libio/_G_config.h: Hacked to make work with shadow heraders.
        * shadow/*: Hacked to make shadow headers work.

2000-10-02  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	Self-compile with shadow headers.
	* acconfig.h (_GLIBCPP_USE_SHADOW_HEADERS): Define. Eventually,
	like _GLIBCPP_USE_NAMESPACES before it, this macro will die when
	it becomes the default way the library is built.
	* acinclude.m4 (GLIBCPP_ENABLE_SHADOW): New macro.
	* config/gnu-linux/bits/ctype_base.h (ctype_base): Use it.
	* config/gnu-linux/ctype.cc (ctype): Use it.

	* src/localename.cc (locale::_Impl::_M_replace_categories): Remove
	call to assert.
	* src/locale.cc: Explicitly cast mbstate_t to void* in calls to
	memset. This should not be necessary, but an ambiguous overload
	with it in.

	* shadow/bits/std_cwchar.h: Fix.
	* shadow/wchar.h: Fix.

	* config/gnu-linux/bits/ctype_base.h (ctype_base): Inject ctype
	enums into namespace std:: for ctype_base enum. Other OS types
	will have to do this as well.
	* config/gnu-linux/ctype.cc (ctype): Inject ctype data into
	namespace std, in particular __ctype_toupper, __ctype_tolower,
	__ctype_b.

	* shadow/iolibio.h: New file.
	* shadow/bits/wrap_iolibio.h: New file.
	* shadow/libioP.h: New file.
	* shadow/bits/wrap_libioP.h: New file.
	* shadow/bits/wrap_fcntl.h: New file.
	* shadow/fcntl.h: New file.
	* shadow/iconv.h: New file. Inject iconv names into the global
	namespace, unmangled for the moment.
	* shadow/bits/wrap_iconv.h: New file.
	* shadow/unistd.h: Remove. Useless.
	* shadow/bits/wrap_unistd.h: Remove.

	* src/Makefile.am: Take out machine-ansi.h, add fcntl.h unistd.h.
	* src/Makefile.in: Regenerate.

	* config/c_io_libio.h (_IO_codecvt): Change to normal C++ decl.

	* shadow/libio.h: Fix.
	* shadow/bits/wrap_libio.h: Fix.

	* shadow/bits/std_clocale.h: Remove typedef struct construct,
	which will not compile.
	* shadow/bits/std_ctime.h: Same.

	* shadow/pthread.h: New file. Put pthreads types and functions
	into global scope, which is probably not the correct long-term
	solution but has to be done at the moment before libio wrappers
	can even be started.
	* shadow/bits/wrap_pthread.h: New file.

	* bits/std_ios.h: Formatting tweak.
	* shadow/bits/std_cstdio.h: Format. Remove extraneous bits.

	* acinclude.m4 (GLIBCPP_CHECK_COMPILER_FEATURES): Add -Werror to
	tests for compiler features.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

	* config/c_io_libio.cc: Remove fcntl.h include, as SEEK_SET
	redefined.
	* libio/libioP.h: Comment out fcntl.h include.

	* shadow/math.h: Add in float and long declarations, as per ISO C9X.

	* bits/c++config: Define _ISOC99_SOURCE.

	* acinclude.m4 (GLIBCPP_ENABLE_SHADOW): Add -fno-builtins to
	CSHADOWFLAGS, as well as _ISOC99_SOURCE.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* src/Makefile.am (CSHADOW_INCLUDES): Enable, again.
	(CSHADOW_INCLUDES): Add -I$(top_srcdir)/std before shadow include dir.
	(CXXCOMPILE): Remove $(DEFS), which searches $(top_srcdir) before
	std or shadow directories.
	(LTCXXCOMPILE): Same.
	(INCLUDES): Add $(top_builddir) before $(top_srcdir).
	(AC_CXXFLAGS): Add CSHADOWFLAGS.
	* src/Makefile.in: Regenerate.

	* src/complex.cc (FCT): Change ::name to name.
	* src/complexl.cc (FCT): Same. Use _GLIBCPP_USE_LONG_LONG here.
	* src/complexf.cc (FCT): Same.

	* src/complexf.cc: Remove FCT define, as things are properly
	overloaded in the std namespace with the shadow headers.
	* src/complexl.cc: Same.
	* src/complex.cc: Same.

2000-09-25  Phil Edwards  <pme@sources.redhat.com>

	* docs/documentation.html:  Add link to...
	* docs/ext/howto.html:  ...this.  New dir/file, describing library
	  extensions (both ours and SGI's).
	* docs/faq/index.html:  Small updates.
	* docs/faq/index.txt:  Regenerate.

2000-09-25 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>

        * bits/basic_file.h (_M_open_mode): Remove extra qualifier.

2000-09-25  Levente Farkas  <lfarkas@mindmaker.hu>

	* ext/stl_hashtable.h (_M_copy_from): Change __copy to __local_copy.

2000-09-19  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* src/localename.cc (locale::_Imp) : Remove typedefs.
	* bits/localefwd.h (locale::locale(const locale& __other, _Facet*
	__f): Consistency check, call _Imp ctor with reference argument
	of 1.
	* bits/localefwd.h: Change _S_num_categories to
	_S_categories_num. Add new data member, _S_facets_num, which is
	the number of standard facets.

2000-09-19  Phil Edwards  <pme@sources.redhat.com>

	* docs/21_strings/howto.html:  Fix editor lossage from last commit.

2000-09-19  Phil Edwards  <pme@sources.redhat.com>

	* docs/thanks.html:  More thanks.
	* docs/18_support/howto.html:  Fix thinko.
	* docs/21_strings/howto.html:  Minor tweaks and updates to URLs.
	  Redo the string transformation notes and link to...
	* docs/22_locale/howto.html:  ...here.

2000-09-18  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* src/locale-inst.cc: Add time_put_byname and
	time_get_byname instantiations.
	* bits/locale_facets.h: Correct default, private derivation to
	public derivation in _byname declarations.
	* src/locale.cc (locale::classic()): Simplify.
	* src/localename.cc (locale::_Impl:: _Impl(const _Impl& __other,
	const string& __name, category __cat, size_t __refs): Re-work for
	named locales.
	(_M_normalize_category_names): Remove.

	* testsuite/22_locale/global_templates.cc (test01): Tweaks.
	* testsuite/22_locale/ctor_copy_dtor.cc (test01): More tests.

2000-09-18  Yuri V. Baskakov  <yuribsk@lab.sun.mcst.ru>

	* bits/std_bitset.h (operator>>): Change to char_type.

2000-09-15  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* src/locale.cc (locale::locale(const char* __name)): Consolidate
	name setting. Add checks for NULL __name pointers. Remove calls to
	_S_initialize() as initial locale initialization can either be
	assumed, or needs to be made consistent throughout locale
	constructors.
	(locale::locale(const locale& __other, const char* __name,
	category __cat): Add checks for NULL name. Add checks for
	assignment to self.
	* src/localename.cc (locale::_Impl:: _Impl(const _Impl& __other,
	const string& __name, category __cat, size_t __refs)): Set correct
	name, has_name values.
	* testsuite/22_locale/ctor_copy_dtor.cc (test01): More tests.
	* docs/22_locale/locale.html: New file, more unfinished docs...

2000-09-14  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* src/locale.cc (locale::name()): Implement.
	(_Impl(size_t __numfacets, size_t __refs, bool __namep = false,
	string __name = "*")): Change signature.
	(locale::classic): Initialize the "C" locale as a named locale.
	* bits/localefwd.h (locale): Change _M_num_references to
	_M_references. Eliminate _M_cached_name_ok. Rename _M_cached_name
	to _M_name.
	* bits/localefwd.h: Tweaks.
	* src/localename.cc: Tweaks.
	* testsuite/22_locale/ctor_copy_dtor.cc (test01): Add tests.
	(test01): Fix.

	* bits/basic_string.h: Consistency check, change _M_state ->
	_M_references.

2000-09-14  Brendan Kehoe  <brendan@zen.org>

        * bits/string.tcc (_Rep::_S_max_size): Use typename for its size_type
        return type.

        * src/Makefile.an (headers): Also install backward/fstream.h.
        * src/Makefile.in: Regenerate.

        * bits/char_traits.h (char_traits<_CharT>::get_state,
        char_traits<char>::get_state, char_traits<wchar_t>::get_state): Pass
        argument in by reference, not by value. Uglify to _S_get_state.
	(char_traits<*>::__eos): Uglify to _S_eos.
	* bits/std_ostream.h (ends(basic_ostream<_CharT, _Traits>& __os)):
	Change __eos to _S_eos.

2000-09-13  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* testsuite/22_locale/static_members.cc: New file.
	* testsuite/22_locale/ctor_copy_dtor.cc: New file.
	* src/locale.cc: Minor formatting tweaks.

2000-09-12  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* testsuite/22_locale/global_templates.cc (test01): Add negative
	tests for use_facet.

	* bits/localefwd.h (locale::operator()): Minor tweaks.
	* bits/locale_facets.tcc (locale::operator()): Same.
	* testsuite/22_locale/operators.cc: New file.

	* testsuite/22_locale/facet.cc (output_iterator): Remove
	gnu_input_iterator, gnu_output_iterator.

2000-09-11  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* acinclude.m4 (GLIBCPP_CHECK_GNU_MAKE): Remove test != "0".
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

	* bits/c++config (__GLIBCPP__): Update, in the hopes of making a
	snapshot release soon.
	(_GNU_SOURCE): Define this in the header files, as ISO C99 support
	is pretty much assumed.

	* testsuite/22_locale/global_templates.cc: New file. Add tests for
	use_facet and has_facet.

	* bits/codecvt.h (codecvt<_InT, _ExT, __enc_traits>::do_out):
	Modify/correct iconv signatures for glibc2.2.

2000-09-10  Branko Cibej  <branko.cibej@hermes.si>

	* acinclude.m4 (GLIBCPP_CHECK_GNU_MAKE): Replace "grep -q" with
	  "grep -c".

2000-09-09  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* bits/localefwd.h (locale::_Impl): Scope out types to public.
	(locale): Make _Impl declaration public.

2000-09-08  Felix Natter  <fnatter@gmx.net>

	* docs/17_intro/porting-howto.html:  New version.

2000-09-07  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* config/cpu/i386/bits/atomicity.h (__exchange_and_add): Change unused
	to __unused__.
	* config/cpu/ia64/bits/atomicity.h (__exchange_and_add): And here.
	* config/cpu/i486/bits/atomicity.h (__exchange_and_add): And here.

2000-09-07  Phil Edwards  <pme@sources.redhat.com>

	Add bits for --enable-maintainer-mode:
	- turns on enable_debug
          (doing "--enable-maint --disable-debug" will DTRT)
	- turns on -Werror, now off by default
	* acinclude.m4: Add bits.
	* aclocal.m4: Regenerate.
	* configure.in: Add defaults for GLIBCPP_ENABLE_DEBUG.
	* configure: Regenerate.

2000-09-07  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/std_cwctype.h: Remove yesterday's hacks.

2000-09-07  Brad Garcia  <bgarcia@laurelnetworks.com>

	* bits/stl_tree.h: Make operators !=, == type safe for map, set.
	* testsuite/23_containers/set_operators.cc: New file. Should not
	compile.
	* testsuite/23_containers/map_operators.cc: New file. Ditto.

2000-09-06  Richard Henderson  <rth@cygnus.com>
	    Benjamin Kosnik  <bkoz@cygnus.com>

	* acinclude.m4 (GLIBCPP_CHECK_CPU): Add ia64 support.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* config/cpu/ia64: New directory.
	* config/cpu/ia64/bits: New directory.
	* config/cpu/ia64/bits/atomicity.h: New file.

2000-09-06  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* acinclude.m4 (GLIBCPP_ENABLE_CSTDIO): Force glibc_satisfactory
	to no, so that libstdc++-v3's libio will be built on glibc-2.2
	systems.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* */Makefile.in: Regenerate.

	* bits/std_cwctype.h: Put in temporary hack to work around -O2 +
	glibc 2.1.x unsigned errors. Or disable -Werror by default...

	* testsuite/23_containers/vector_element_access.cc: New file.
	* bits/stl_config.h (__STL_THROW_RANGE_ERRORS): Define.

2000-09-06  Levente Farkas  <lfarkas@mindmaker.hu>

	* bits/string.tcc: Fix up more parameter names.

2000-09-06  Alexandre Oliva  <aoliva@redhat.com>

	* configure: Rebuilt with new libtool.m4.

2000-09-01  Benjamin Kosnik  <bkoz@cygnus.com>

	* src/locale-inst.cc: Remove pre-instantiation of unicode
	codecvt types. Now unnecessary, as locale header now correct.

2000-08-31  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/locale_facets.tcc (_S_build_float_format): Move ...
	* src/locale.cc: Here.
	* bits/locale_facets.tcc (num_get::_M_extract): Clean up generic
	definition. Move specialization to ...
	* src/locale.cc: Here.
	* bits/locale_facets.tcc: Move _Format_cache specializations to ...
	* src/locale.cc: Here.
	* bits/locale_facets.tcc: Move use_facet<ctype> specializations to ...
	* src/locale.cc: Here.

	* bits/std_locale.h: Note that locale_facets.tcc should be
	included here, for standards conformance. It may increase
	compile times though. For the time being, enable.
	* testsuite/22_locale/facet.cc: New file, some parts commented out
	for the time being.

	* mkcheck.in: Append total time to test summary file.

	* bits/sbuf_iter.h : Formatting tweaks.

	Clean up static const data member definitions.
	* src/locale.cc: Add definitions for all missing locale,
	locale::_Imp, and locale::id static data members.
	(ctype<char>): Add table_size define.
	(money_base): Add _S_default_pattern, uglify.
	* bits/localefwd.h: Add definitions for static members of _Count_ones.
	* bits/locale_facets.h: Tweaks.
	* bits/locale_facets.tcc: Tweaks.
	* bits/string.tcc: Add definition for npos.
	* bits/ios_base.h: Tweaks.
	* bits/ios_base.h (ios_base::Init::_M_ios_base_init): Change to
	_S_ios_base_init.
	* src/ios.cc: And here. Add _S_local_words definition.
	Add definitions for __ios_flags const static data.
	* src/codecvt.cc: Same for __enc_traits.
	* src/locale-inst.cc: Remove money_base data member definition
	here.

2000-08-30  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/22_locale/ctype_wchar_t_members.cc (test01): New file.

	* docs/22_locale/codecvt.html: Re-number.
	* docs/22_locale/howto.html: Add entry for ctype
	documentation. Add entry for Nathan's introduction to locales
	paper.
	* docs/22_locale/ctype.html: New file. In progress...

	* docs/22_locale/codecvt.html: Formatting cleanups.
	* src/locale.cc (ctype<wchar_t>::do_is): Fix thinko.

2000-08-30  Phil Edwards  <pme@sources.redhat.com>

	* docs/22_locale/codecvt.html:  Behind-the-scenes ASCII->HTML
	  tweaks for certain browsers.

2000-08-29  Benjamin Kosnik  <bkoz@redhat.com>

	* bits/locale_facets.h (ctype<char>): Remove __table_type.
	Add include for bits/std_cwctype.h, for wctype_t.
	* src/locale.cc (ctype<wchar_t>): Implement.
	* config/gnu-linux/bits/ctype_base.h (ctype_base): Remove mask
	typedef, instead name enum.
	* config/gnu-linux/bits/ctype_specializations.h: Tweak.
	* config/gnu-linux/ctype.cc: Tweak.
	* testsuite/22_locale/ctype.cc: Tweak.

	* bits/codecvt.h (__enc_traits): Uglify names.

2000-08-28  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* docs/22_locale/codecvt.html: Add more bits, format.
	* bits/codecvt.h: Add copy ctor, rename types.
	* testsuite/22_locale/codecvt_unicode_char.cc: Tweak.

	* libio/iofwide.c: Tweak.

2000-08-28  Phil Edwards  <pme@sources.redhat.com>

	* docs/configopts.html:  Mention new options.
	* docs/install.html:  Formatting changes for platform-specific
	  pre-reqs, previously only Cygwin.
	* docs/mail.html:  Fix new link.
	* docs/thanks.html:  A couple more people.
	* docs/26_numerics/howto.html:  Fix typo.

2000-08-24  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* docs/22_locale/howto.html: Add notes on codecvt implementation.
	* docs/22_locale/codecvt.html: New file. In progress.

2000-08-24  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* acconfig.h: Revert.
	* acinclude.m4: Revert.
	* libio/_G_config.h: Revert.
	* libio/libio.h: Revert.

2000-08-23  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* bits/codecvt.h: Tweaks.
	* testsuite/22_locale/codecvt_unicode_wchar_t.cc (test01): Fix up
	initial string literals for UCS4.

2000-08-23  Phil Edwards  <pme@sourceware.cygnus.com>

	* acconfig.h:  _GLIBCPP_USING_THREADS and some workaround types added.
	* acinclude.m4:  New macro, GLIBCPP_ENABLE_WCHAR.  Set the threads
	  definition as well, and some minor spelling/spacing fixes.  If
	  building libio, check for certain typedefs.
	* libio/_G_config.h:  Wrap _IO_MTSAFE_IO in _GLIBCPP_USING_THREADS.
	  Conditionally define _LARGEFILE64_SOURCE, otherwise the 64-bit types
	  will never be there.
	* libio/libio.h:  In the null case, _IO_lock_t can't just be void.
	* src/string-inst.cc:  Use _GLIBCPP_USE_WCHAR_T.

	* configure.in:  Update the cache a bit more often.

	* mkcheck.in:  For check-install, also need to -I the testsuite dir.

2000-08-22  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* src/locale-inst.cc: Add codecvt<unicode_t, wchar_t,
	__enc_traits> instantiations for has_facet and use_facet.
	* testsuite/22_locale/codecvt_unicode_wchar_t.cc: New file, for
	testing two-byte unicode encodings converted to four-byte UCS4
	encodings.

	* bits/codecvt.h (codecvt<__enc_traits>): Fix do_unshift.
	* testsuite/22_locale/codecvt_unicode_char.cc (test01): Add
	correct state/encoding information.

	* acinclude.m4 (GLIBCPP_CHECK_WCHAR_T_SUPPORT): Add wcsrtombs,
	mbsrtowcs checks as codecvt<wchar_t, char, mbstate_t> needs them
	now.
	Add checks for langinfo.h, nl_langinfo function call.
	* libio/iofwide.c (_IO_fwide): Simplify, as nl_langinfo is assumed.

2000-08-22  Richard B. Kreckel  <Richard.Kreckel@Uni-Mainz.DE>

	* config/cpu/alpha/bits/atomicity.h: Change __attribute__
	((unused)) to __attribute__ ((__unused__)).
	* config/cpu/arm/bits/atomicity.h: Same.
	* config/cpu/generic/bits/atomicity.h: Same.
	* config/cpu/i386/bits/atomicity.h: Same.
	* config/cpu/i486/bits/atomicity.h: Same.
	* config/cpu/powerpc/bits/atomicity.h: Same.
	* config/cpu/sparc/sparc32/bits/atomicity.h: Same.
	* config/cpu/sparc/sparc64/bits/atomicity.h: Same.

2000-08-22  Levente Farkas  <lfarkas@mindmaker.hu>

	* bits/basic_string.h: Fix up parameter names.

2000-08-22  Brent Verner <brent@rcfile.org>

	* src/Makefile.am (INCLUDES): Put $(CSHADOW_INCLUDES) before
	$(top_srcdir)
	* src/Makefile.in: Regenerate.

2000-08-21  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* bits/codecvt.h: Implement codecvt<wchar_t, char, mbstate_t>. Fix
	up __enc_traits template so as to be marginally useful.
	* src/codecvt.cc: And here.
	* bits/char_traits: Tweak.
	* bits/locale_facets.h: Tweak.
	* bits/locale_facets.tcc: Tweak.
	* bits/localefwd.h: Tweak.
	* src/locale-inst.cc: Add use_facet/has_facet instantiations here.
	* testsuite/22_locale/codecvt_wchar_t_cc.cc: New file.
	* testsuite/22_locale/codecvt_char_char.cc: New file.
	* testsuite/22_locale/codecvt_unicode_char.cc: New file.

2000-08-21  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>

	* bits/std_cmath.h (std::abs): Overload for int and long.

2000-08-20  Benjamin Kosnik  <bkoz@gnu.org>

	* src/string-inst.cc: Tweak instantiations for new-gxx-abi.

2000-08-19  Gabriel Dos Reis  <gdr@codesourcery.com>

	* bits/valarray_array.h (__valarray_min, __valarray_max): Fix
	thinko. Diagnostic messages really need to be improved for
	template argument deduction.

2000-08-18  Benjamin Kosnik  <bkoz@gnu.org>

	* bits/valarray_meta.h: Fix typos...

2000-08-18  Gabriel Dos Reis  <gdr@codesourcery.com>

	* bits/valarray_meta.h (_Expr<>::shift, _Expr::cshift,
	_Expr<>::apply): Implement.

2000-08-18  Gabriel Dos Reis  <gdr@codesourcery.com>

	* bits/valarray_meta.h (_Expr<>::min, _Expr<>::max): Implement.

	* bits/valarray_array.h (__valarray_min, __valarray_max): New
	function.

2000-08-17  Mark Mitchell  <mark@codesourcery.com>

	* bits/localefwd.h (std::locale): Use explicit `class' specified
	when declaring friends.
	* bits/std_fstream.h (std::basic_filebuf): Likewise.

2000-08-16  Alexandre Oliva  <aoliva@redhat.com>

	* src/Makefile.am (libstdc++.INC): Renamed from INCLUDES.
	* src/Makefile.in: Regenerate.

2000-08-15  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* bits/codecvt.h: New file.
	* src/codecvt.cc: New file.
	* bits/std_locale.h: Add include here.
	* src/Makefile.am (headers): Add codecvt.h
	(sources): Add codecvt.cc.
	* src/Makefile.in: Regenerate.
	* bits/locale_facets.h (codecvt): Re-implement. Rename _Codecvt to
	__codecvt_abstract_base in an attempt to point some light this way...
	Move __enc_traits and codecvt bits to codecvt.h.
	* src/locale-inst.cc: Remove codecvt<wchar_t, wchar_t, mbstate_t>
	explicit instantiation. Separate out codecvt instantiations, simplify.
	* src/locale.cc: Move codecvt bits to codecvt.cc

2000-08-15  Alexandre Oliva  <aoliva@redhat.com>

	* src/Makefile.am (INCLUDES): New target file, with all -I flags.
	* src/Makefile.in: Regenerate.

2000-08-14  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	C/C++ io merge/sync.
	* libio/fileops.c
	* libio/genops.c
	* libio/iofclose.c
	* libio/iofopen.c
	* libio/iofwide.c
	* libio/libio.h
	* libio/libioP.h
	* libio/stdio.c
	* libio/wfileops.c
	* libio/wgenops.c
	* config/c_io_libio.cc (__basic_file): Add hacky casts to
	((struct _IO_FILE_plus *) in ctors.
	(__basic_file<wchar_t>): Adjust _wide_data->_codecvt to just _codecvt.
	* libio/Makefile.am: Fix copyright. Remove cleanup.c.
	* libio/cleanup.c: Remove.
	* libio/filedoalloc.c (_IO_file_doallocate): Don't call
	_IO_cleanup_registration_needed, even if not libc.

	* testsuite/27_io/stringstream.cc (test02): Fix.

2000-08-14  Brent Verner <brent@rcfile.org>

	* testsuite/debug_assert.h: new file
	* testsuite/*/*.cc: s/test\s*&=([^;]+);/VERIFY($1);/g
	changed conditional #include <c?assert.?h?> to
	unconditional #include <debug_assert.h>
	* mkcheck.in: added $SRC_DIR/testsuite to include search path
	for testsuite compile command.

2000-08-14  Levente Farkas  <lfarkas@mindmaker.hu>

	* bits/std_fstream.h: Remove duplicate typdefs for ofstream and
	wofstream, filebuf, wfilebuf, fstream, wfstream.
	* bits/std_streambuf.h: Same for streambuf, wstreambuf.
	* bits/std_sstream.h: Same for stringstream and wstringstream.
	Same for stringbuf, wstringbuf, istringstream, wistringstream,
	ostringstream, wostringstream.

	* testsuite/26_numerics/valarray.cc: Add test.

2000-08-14  Zack Weinberg  <zack@wolery.cumb.org>

	* configure: Regenerate after change to ../libtool.m4.

2000-08-10  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* bits/locale_facets.tcc: Formatting tweaks.
	* bits/locale_facets.h (__enc_traits): Start integrating this
	into codecvt, ctype. Formatting tweaks.

2000-08-09  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	Preliminary wchar_t implementation, with trivial encodings.
	* docs/configopts.html: Add bits about canonical configure option
	checking.

	* testsuite/27_io/iostream_objects.cc: Replace this file (which
	has newly-declared-illegal mixing of wide/narrow stdstreams) with...
	* testsuite/27_io/narrow_stream_objects.cc: New file.
	* testsuite/27_io/wide_stream_objects.cc: New file.

	* bits/fstream.tcc (underflow): Temporarily hack a solution
	together that writes from the external file to the internal
	buffers. This removes codecvt from the loop, and is incorrect.
	(_M_really_overflow): Same here.

	* testsuite/21_strings/inserters_extractors.cc (test05): Tweaks.

2000-08-08  Benjamin Kosnik  <bkoz@cygnus.com>
	    Ulrich Drepper  <drepper@cygnus.com>

	* config/c_io_libio.h: Tweak.
	* config/c_io_libio_codecvt.c: New file.
	* libio/Makefile.am: Add c_codecvt.c.
	* libio/Makefile.in: Regenerate.
	* libio/genops.c (_IO_unbuffer_write): Don't call _IO_SETBUF if the
	stream is not orientated.

	* acinclude.m4: Add config/c_io_libio_codecvt.c dummy file, until
	encoding gets fleshed out.

	* bits/basic_file.h: Add specialization declarations.
	* config/c_io_libio.cc: Add specializations for pbackfail, uflow.

	* config/c_io_libio.h: Add __c_wfile_type.
	* bits/basic_file.h: Add _M_wfile.

	* config/c_io_libio.cc (__basic_file<char>): Initialize the
	streams without setting the orientation of the underlying FILE to
	either wide or narrow.
	(__basic_file<wchar_t>)): Enable tricky wchar_t io bits.

2000-08-07  Felix Natter  <fnatter@gmx.net>

	* docs/17_intro/porting-howto.html:  New version.

2000-08-03  Mark Mitchell  <mark@codesourcery.com>

	* bits/locale_facets.h (ctype::ctype): Don't name unused
	parameters.

2000-08-01  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* docs/install.html: Edit bits about requiring a special version
	of the autotools.

2000-07-31  Benjamin Kosnik  <bkoz@cygnus.com>

	* libio/fileops.cc: Update to current glibc sources.
	* libio/genops.c: Same.
	* libio/iofwide.c: Same.
	* libio/libio.h: Same.
	* libio/libioP.h: Same.
	* libio/wfiledoalloc.c: Same.
	* libio/wgenops.c: Same.

2000-07-28  Alexandre Oliva  <aoliva@redhat.com>

	* acinclude.m4: Include ../libtool.m4.
        * aclocal.m4, configure: Rebuilt.

2000-07-26  Phil Edwards  <pme@sourceware.cygnus.com>

	* acinclude.m4 (GLIBCPP_CHECK_LINKER_FEATURES):  Test for GNU ld
	  before trying to use any of its options.
	  (CHECK_MATH_DECL*,CHECK_BUILTIN_MATH_DECL*):  Cache tests.
	* aclocal.m4:  Regenerate.
	* configure.in:  Having found GNU make, name it.
	* configure:  Regenerate.
	* docs/install.html:  Mention possible problems with caching.
	* src/Makefile.am (CXXLINK):  Use new OPT_LDFLAGS.
	* src/Makefile.in:  Regenerate.
	* libio/Makefile.in:  Regenerate.
	* math/Makefile.in:  Regenerate.
	* Makefile.in:  Regenerate.

2000-07-26  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* src/misc-inst.cc (std): Remove instantiations.

	* acinclude.m4: Add forward-looking bits for autoconf.
	* aclocal.m4: Regenerate.

	* bits/ostream.tcc (ostream::operator<<): Fix const char* case.

2000-07-25  Benjamin Kosnik  <bkoz@gnu.org>

	* configure.in: Change AM_PROG_LIBTOOL to AC_PROG_LIBTOOL. Change
	it back for current versions of maintainer-tools...
	* acinclude.m4: Some cleanups...
	* aclocal: Regenerated.
	* configure: Regenerated.

	* src/Makefile.am (CXXLINK): Add -Wl,-01 to the link line for
	optimizing/adapting the hash table using GNU ld.
	* src/Makefile.in: Regenerate.

2000-07-24  H.J. Lu  <hjl@gnu.org>

        * src/Makefile.am (LIBIO_INCLUDES): Set to -I$(top_srcdir)/libio
        even if GLIBCPP_NEED_LIBIO is false. The installed glibc header
        files don't include private libio header files needed by
        libstdc++ v3.
        * src/Makefile.in: Rebuild.

2000-07-24  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* bits/std_fstream.h: Parameterize __basic_file.
	* config/c_io_libio.cc: Add wchar_t methods for parameterization.
	* bits/basic_file.h: Same here.

	* bits/istream.tcc (getline): Tweaks.

	* bits/fstream.tcc: Shorten __retval to __ret.
	* bits/ostream.tcc: Same.
	* bits/sbuf_iter.h: Same.
	* bits/sstream.tcc: Same.
	* bits/streambuf.tcc: Same.
	* bits/std_fstream.h: Same.
	* src/string-inst.cc: Same.
	* src/ios.cc: Same.
	* config/c_io_libio.cc: Same.
	* bits/string.tcc: Same.
	* bits/std_streambuf.h: Same.

2000-07-23  Brent Verner <brent@rcfile.org>

        * bits/istream.tcc: istream::getline(char_type*, streamsize,
	char_type) make compliant
        * testsuite/27_io/istream_unformatted.cc: test for compliant behavior

2000-07-23  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* acinclude.m4 (enable_cshadow_headers): Fix problems with blddir
	and srcdir used to define CSHADOW_INCLUDES..

	* configure.in: For consistency, change .sanity_warned to
	stamp-sanity-warned.

	* acinclude.m4: Tweak formatting.
	* Makefile.am (check): Call mkcheck with full pathname for build
	directory...
	(check-install): And here.
	* Makefile.in: Regenerate.

2000-07-22  Gabriel Dos Reis  <gdr@codesourcery.com>

	Line up with libstdc++-v2 version of valarray.
	* bits/valarray_array.h (__valarray_product): Make inline.
	* src/valarray-inst.cc (__valarray_product): Remove explicit
	instantiation.

2000-07-21  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

        * src/stl-inst.cc: Change __sink_unused_warning to unsigned int
        for alpha.

        * testsuite/26_numerics/complex_inserters_extractors.cc (testall):
        Change return type to void.
        * testsuite/25_algorithms/lower_bound.cc: Add return values.
	* testsuite/17_intro/header_ciso646.cc: Modify.
        * bits/locale_facets.h: Add return values for the generic cases.

2000-07-21  H.J. Lu  (hjl@gnu.org)

        * acinclude.m4: Include <features.h> for glibc testing.
        * aclocal.m4: Likewise.

        * configure: Rebuild.

2000-07-20  H.J. Lu  (hjl@gnu.org)

        * acinclude.m4: Change "#pragma system_header" to
        "#pragma GCC system_header".
        * aclocal.m4: Likewise.
        * bits/std_cmath.h: Likewise.
        * bits/std_cassert.h: Likewise.
        * bits/std_cctype.h: Likewise.
        * bits/std_cerrno.h: Likewise.
        * bits/std_cfloat.h: Likewise.
        * bits/std_climits.h: Likewise.
        * bits/std_clocale.h: Likewise.
        * bits/std_cwchar.h: Likewise.
        * bits/std_csetjmp.h: Likewise.
        * bits/std_csignal.h: Likewise.
        * bits/std_cstdarg.h: Likewise.
        * bits/std_cstddef.h: Likewise.
        * bits/std_cstdio.h: Likewise.
        * bits/std_cstdlib.h: Likewise.
        * bits/std_cstring.h: Likewise.
        * bits/std_ctime.h: Likewise.
        * bits/std_cwctype.h: Likewise.
        * bits/std_exception.h: Likewise.
        * bits/std_new.h: Likewise.
        * bits/std_typeinfo.h: Likewise.
        * shadow/bits/std_cassert.h: Likewise.
        * shadow/bits/std_cctype.h: Likewise.
        * shadow/bits/std_cerrno.h: Likewise.
        * shadow/bits/std_cfloat.h: Likewise.
        * shadow/bits/std_climits.h: Likewise.
        * shadow/bits/std_clocale.h: Likewise.
        * shadow/bits/std_cmath.h: Likewise.
        * shadow/bits/std_csetjmp.h: Likewise.
        * shadow/bits/std_csignal.h: Likewise.
        * shadow/bits/std_cstdarg.h: Likewise.
        * shadow/bits/std_cstddef.h: Likewise.
        * shadow/bits/std_cstdio.h: Likewise.
        * shadow/bits/std_cstdlib.h: Likewise.
        * shadow/bits/std_cstring.h: Likewise.
        * shadow/bits/std_ctime.h: Likewise.
        * shadow/bits/std_cwchar.h: Likewise.
        * shadow/bits/std_cwctype.h: Likewise.
        * shadow/bits/wrap_libio.h: Likewise.
        * shadow/bits/wrap_unistd.h: Likewise.
        * shadow/sys/cdefs.h: Likewise.

        * configure: Rebuild.

2000-07-20  Jakub Jelinek  <jakub@redhat.com>

        * config/cpu/sparc/sparc64/bits/atomicity.h (__exchange_and_add):
        Use extended word instructions to match 64bit _Atomic_word.
        (__atomic_add): Likewise.
        * math/clog10l.c (clog10l): Use M_PIl if defined.
        * math/c_logl.c (c_logl): Likewise.
        * math/signbitl.c (__signbitl): Adapt for IEEE quad long doubles.
        * math/mathconf.h (ieee_quad_double_shape_type): New type.
        (GET_LDOUBLE_MSW64): New define.

2000-07-20  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/std_streambuf.h: Add bits for pback buffers here, so that
	in_avail, etc can use them.
	* bits/std_fstream.h: Ditto.
	* bits/fstream.tcc: Ditto.
	* testsuite/27_io/filebuf.cc: Tweaks.
	* testsuite/27_io/filebuf-3.tst: Correct for pbackfail bits.

2000-07-19  Benjamin Kosnik  <bkoz@cygnus.com>

	* src/localename.cc: Same.
	* src/locale.cc: Same.
	* bits/localefwd.h: _M_init_facet to _M_facet_init.

	* bits/locale_facets.h: _M_init_boolnames to _M_boolnames_init.

	* bits/std_sstream.h: Change _M_init_stringbuf to _M_stringbuf_init.

	* bits/fstream.tcc: Change _M_init_filebuf to _M_filebuf_init.
	* bits/std_fstream.h: Same.

	* bits/basic_string.h: Tweaks.

2000-07-19  Phil Edwards  <pme@sourceware.cygnus.com>

	* docs/18_support/howto.html:  Update.

2000-07-19  Benjamin Kosnik  <bkoz@milou.soma.redhat.com>

	Internal consistency checks.....
	* bits/ios_base.h: Change _M_locale_ios to _M_ios_locale.
	* src/ios.cc: Same.

	* bits/basic_ios.h: Change _M_fctype_ios to _M_ios_fctype.
	* bits/basic_ios.tcc: Same.

	* bits/std_streambuf.h: Change _M_locale_buf to _M_buf_locale.
	Change _M_fctype_buf to _M_buf_fctype.
	* bits/fstream.tcc: Same.

	* bits/std_streambuf.h: Change _M_buf_bump to _M_out_cur_move.
	Change _M_locale_set to _M_buf_locale_init.
	* bits/streambuf.tcc: Same.
	* bits/sstream.tcc: Same.
	* bits/fstream.tcc: Same.

	* bits/std_streambuf.h: Make typedefs consistent.
	(_M_buf_bump): Be more careful with input sequence.

	* bits/std_sstream.h: Same.
	* bits/std_fstream.h: Same.

2000-07-18  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* acinclude.m4: Tweaks.
	* config/c_io_libio.cc: Tweaks.
	* bits/sstream.tcc (stringbuf::pbackfail): Simplify.
	* libio/_G_config.h: Don't define _G_HAVE_ST_BLKSIZE.
	* libio/[iofwide.c, wfiledoalloc.c, wfiteopos.c, wgenops.c]: New files.
	* libio/iofclose.c iofopen.c, stdio.c: New files.
	* libio/Makefile.am: Add files, add flags, etc.
	* src/Makefile.am (sources): Add filebuf.cc.
	* acinclude.m4 (GLIBCPP_CHECK_WCHAR_T_SUPPORT):
	(GLIBCPP_ENABLE_CSTDIO): Versioning testing, etc etc.

2000-07-17  Phil Edwards  <pme@sourceware.cygnus.com>

	* acinclude.m4:  Import CHECK_GNU_MAKE from autoconf macro archive.
	* configure.in:  Use it.  Also print reminders one time.
	* aclocal.m4:  Regenerate.
	* configure:  Regenerate.

2000-07-15  Gabriel Dos Reis  <gdr@codesourcery.com>

	* bits/valarray_array.h (__valarray_get_storage): New function.
	(_Array<>::Array): Use it.
	* bits/std_valarray.h (valarray<>::valarray): Likewise.
	(valarray<>::resize): Likewise.  Tweak.
	* src/valarray-inst.cc (__valarray_product): Tweak.

2000-07-11  Phil Edwards  <pme@sourceware.cygnus.com>

	* docs:  Update sourceware->sources in every HTML file.  Minor updates.

2000-07-07  Benjamin Kosnik  <bkoz@soma.redhat.com>

	Clean up configure/build longstanding issues.
	* src/Makefile.am (AC_CXXFLAGS): Don't set @SECTION_LDFLAGS@ here.
	(CXXLINK): Add here, instead.

	* Makefile.am (check-install): Make sure mkcheck has execute privs.
	(check): Same here.
	* configure.in (AC_OUTPUT_COMMANDS): Remove hacks here.

	* configure.in (AC_OUTPUT_COMMANDS): Link c_io_libio.h and
	c_io_libio.cc instead of copying.
	* acinclude.m4 (GLIBCPP_ENABLE_CSTDIO): Do link here.

	* configure.in (AC_OUTPUT_COMMANDS): Link $THREADS.h and
	c++threads.h instead of copying.
	* acinclude.m4 (GLIBCPP_ENABLE_THREADS): Do link here.
	Tweaks.

	* config/c_io_libio.cc (__basic_file::_M_open_mode): Consolidate.
	* bits/basic_file.h: Declare.

	* mkcheck.in (TESTS_FILE): Use -v instead of --version.

2000-07-07  brent verner  <brent@rcfile.org>

	* testsuite/27_io/istream_unformatted.cc (test05): New test.

2000-07-07  Benjamin Kosnik  <bkoz@gnu.org>

	* bits/istream.tcc (istream::getline): Minor tweaks.

2000-07-07  Phil Edwards  <pme@sourceware.cygnus.com>

	* docs/download.html:  Mention gcc_update.
	* docs/configopts.html:  Minor updates.
	* docs/gccrebuild.html:  Ditto.
	* docs/18_support/howto.html:  More tips, explanations, and reminders.
	* docs/19_diagnostics/howto.html:  Ditto.
	* docs/21_strings/howto.html:  Ditto.
	* docs/24_iterators/howto.html:  Ditto.
	* docs/25_algorithms/howto.html:  Ditto.
	* docs/26_numerics/howto.html:  Ditto.

2000-07-05  brent verner  <brent@rcfile.org>

	* testsuite/27_io/ifstream_members.cc (test01): Add tests.
	* testsuite/27_io/ofstream_members.cc (test01): Add tests.
	* config/c_io_libio.cc (__basic_file::open): Unset
	~_IO_DELETE_DONT_CLOSE.

2000-07-05  Zack Weinberg  <zack@wolery.cumb.org>

        * bits/gslice_array.h, bits/indirect_array.h, bits/mask_array.h,
        bits/slice_array.h, bits/std_valarray.h, bits/valarray_meta.h:
        Do not paste anything after 'operator' keyword.

2000-07-03  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* bits/std_memory.h: Revert.

2000-07-03  Brendan Kehoe  <brendan@zen.org>

	* bits/std_complex.h: Fix parens. Format.

2000-07-03  scott snyder  <snyder@fnal.gov>

        * bits/locale_facets.tcc (_M_extract): Only figure out the base
        from the input if base == 0.
        * testsuite/27_io/istream_extractor_arith.cc: Test reading a
        number with a leading `0' in hex mode.

	* shadow/bits/std_cmath.h: Fix typo in _GLIBCPP_HAVE_CEILL test.

        * mkinclosure: Change `==' to `=' in test.

2000-07-03  Chip Salzenberg  <chip@valinux.com>

        * src/Makefile.am (libio_headers): _G_config.h is found in srcdir,
        not builddir.
        * src/Makefile.in: Regenerate.

2000-07-01  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>
	    Ulrich Drepper  <drepper@purist.soma.redhat.com>

	Sync libio to glibc-2.2 current CVS.
	* libio/_G_config.h: New file.
	* libio/wfileops.c: New file.
	* libio/wfiledoalloc.c: New file.
	* libio/wgenops.c: New file.
	* libio/iofwide.c: New file.
	* libio/Makefile.am: Tweaks.
	* libio/Makefile.in: Regenerate.
	* libio/gen-params: Remove. Generic replacement for this yet undone.
	* libio/[filedoalloc.c, fileops.c, genops.c, iolibio.h, libio.h,
	libioP.h, stdfiles.c]: Update.
	* config/c_io_libio.cc: Tweaks.
	* acinclude.m4: Complete hacks to test wide io.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* src/Makefile.am: Update.
	* src/Makefile.in: Regenerate.

	* math/cargl.c: Remove underscores.

	* bits/locale_facets.h: Tweaks. Start adding iconv details
	and notes.
	* bits/locale_facets.tcc: Tweaks.
	* bits/std_cwchar.h: Tweaks.

2000-06-29  scott snyder  <snyder@fnal.gov>

        * bits/concept_checks.h
        (__less_then_comparable_requirement_violation): Only check for <.
	* testsuite/25_algorithms/lower_bound.cc: New file.

2000-06-29  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* testsuite/27_io/ostream_manip.cc (test02): Add tests.
	* bits/ostream.tcc: Tweak.
	* bits/std_fstream.h (basic_filebuf::setbuf): Reset
	_M_buf_size_opt too.
	* bits/std_streambuf.h (basic_streambuf::~basic_streambuf): Zero
	out _M_buf_size_opt.
	* bits/std_sstream.h (basic_stringbuf::_M_init_stringbuf): Set
	_M_buf_size_opt out here.
	* bits/char_traits.h (char_traits::eos): Non standard member
	function, uglify to __eos. Return char_type().
	* bits/std_ostream.h: Change.

	* testsuite/27_io/ostream_seeks.cc: New file.
	* testsuite/27_io/ostream_seeks-1.tst: New file.
	* testsuite/27_io/istream_unformatted.cc (main): Move test04 and
	test05 to...
	* testsuite/27_io/istream_seeks.cc: New file.

2000-06-29  Branko Cibej  <branko.cibej@hermes.si>

        * bits/std_memory.h (auto_ptr_ref): Reworked and defined only if
        _GLIBCPP_RESOLVE_LIB_DEFECTS.
        (auto_ptr): _M_ptr changed to void*.
        (suto_ptr::get): Cast _M_ptr to element type.
        (auto_ptr::auto_ptr(auto_ptr<Tp1>)): Test implicit convetsion.
        (auto_ptr::~auto_ptr): Use this->get() instead of _M_ptr.
        (auto_ptr::operator*): Likewise.
        (auto_ptr::operator->): Likewise.
        (auto_ptr::release): Likewise.
        (auto_ptr::reset): Likewise.
        (auto_ptr::auto_ptr(auto_ptr_ref)): Initialize from __ref._M_release.
        (auto_ptr::operator auto_ptr_rev<_Tp1>): Updated.
        Define nested auto_ptr_ref unless _GLIBCPP_RESOLVE_LIB_DEFECTS.
        Define operator=(auto_ptr_ref) if _GLIBCPP_RESOLVE_LIB_DEFECTS.

2000-06-28  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* testsuite/27_io/filebuf.cc: Tweak.
	* testsuite/27_io/filebuf_members.cc (test_01): Fix.
	* config/c_io_libio.cc (__basic_file::~__basic_file): Match libio
	filebuf dtor.
	(__basic_file::basic_file): Clean, add calls similar to
	_IO_file_attach.
	(__basic_file::open): Clean.
	(__basic_file::sys_open): Clean.

	* bits/std_fstream.h: Revert.
	* bits/fstream.tcc (filebuf::close()): Revert.
	(filebuf::basic_filebuf()): Revert.

2000-06-27  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	Update to SGI STL 3.3
	* ext/hash_map, ext/hash_set, ext/slist, ext/stl_bvector.h,
	ext/stl_rope.h, ext/ropeimpl.h: Update.
	* bits/std_bitset.h, bits/std_map, bits/std_memory.h,
	bits/stl_algo.h, bits/stl_algobase.h, bits/stl_alloc.h,
	bits/stl_config.h, bits/stl_construct.h, bits/stl_deque.h,
	bits/stl_function.h, bits/stl_heap.h, bits/stl_iterator.h,
	bits/stl_iterator_base.h, bits/stl_list.h, bits/stl_map.h,
	bits/stl_multimap.h, bits/stl_multiset.h, bits/stl_numeric.h,
	bits/stl_queue.h, bits/stl_set.h, bits/stl_stack.h,
	bits/stl_string_fwd.h, bits/stl_threads.h, bits/stl_three.h,
	bits/stl_uninitialized.h, bits/stl_vectory.h: Update.

	* src/Makefile.am (headers): Add new files.
	* src/Makefile.in: Regenerate.
	* src/stl-inst.cc (std): Add instantiation for __sink_unused_warning.
	* bits/concept_checks.h: New file.
	* bits/container_concepts.h: New file.
	* bits/sequence_concepts.h: New file.

2000-06-27  H.J. Lu  <hjl@gnu.org>
            Loren J. Rittle  <ljrittle@acm.org>

        * mkcheck.in: Add support to print standard flags needed to
        test g++ in build tree.  Enhance command line error checking.

2000-06-27  Phil Edwards  <pme@sourceware.cygnus.com>

	* docs/install.html:  Fix minor typo as reported.

2000-06-26  Brent Verner <brent@rcfile.org>

	* bits/string.tcc (string::rfind): Fix.
	* testsuite/21_strings/rfind.cc: New file.

2000-06-26  Anthony Williams  <anthony@anthonyw.cjb.net>

	* testsuite/21_strings/ctor_copy_dtor.cc: Fixed logic error.

2000-06-26  Branko Cibej  <branko.cibej@hermes.si>

        * testsuite/27_io/filebuf_members.cc (test_01): Fixed typos.

        * mkcheck.in: Make the *.txt and *.tst files writable after
	  copying them to $TEST_DIR.

        * testsuite/27_io/ostream_inserter_arith.cc: Renamed
	  __TEST_NUMPUT_VERBOSE to TEST_NUMPUT_VERBOSE.  Define
	  TEST_NUMPUT_VERBOSE only if DEBUG_ASSERT.

2000-06-23  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* bits/fstream.tcc (basic_filebuf::basic_filebuf(fd)): Use it.
	(basic_filebuf::close): Use it.
	* bits/std_fstream.h (basic_filebuf): Remove default arguments for
	filebuf ctor.
	(basic_filebuf): Add _M_fileno_based data member.
        As reported by brent verner <brent@rcfile.org>
	* testsuite/27_io/filebuf_members.cc: New file.
	* testsuite/27_io/filebuf_members-1.tst: New file.

	* bits/std_fstream.h: Formatting tweaks.
	* testsuite/27_io/ofstream_members.cc: New file.
	* testsuite/27_io/ofstream_members-1.tst: New file.
	* testsuite/27_io/ifstream_members.cc: New file.
	* testsuite/27_io/ifstream_members-1.tst: New file.

2000-06-23  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>
            Ulrich Drepper  <drepper@cygnus.com>

	* acinclude.m4 (GLIBCPP_CHECK_MATH_SUPPORT): Add -D_GNU_SOURCE, so
	that all the freaky stuff like sincos will be around...

2000-06-22  Branko Cibej  <branko.cibej@hermes.si>

        * Makefile.am (AM_MAKEFLAGS): Added WERROR to list of flags.

2000-06-22 Steven King <sxking@uswest.net>

        * acinclude.m4: Check for sinl, _sinl using 1 parameter.

2000-06-22  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* acinclude.m4 (GLIBCPP_CHECK_BUILTIN_MATH_SUPPORT): Redo. Use the
	same approach as GLIBCPP_CHECK_MATH_SUPPORT, only don't try to
	link against libm and don't use -fno-builtins...
	* math/mathconf.h: Change up builtin macros to new schema.
	* bits/std_cmath.h: And here. Wheee!
	* shadow/bits/std_cmath.h: And here.
	* acconfig.h: Change up builtin macros here.
	* math/cosf.c:  Remove.
	* math/fabsf.c:  Likewise.
	* math/sinf.c:  Likewise.
	* math/sqrtf.c:  Likewise.
	* math/Makefile.am (EXTRA_DIST):  Remove those four files.
	* math/Makefile.in:  Regenerate.

2000-06-22  Anthony Williams  <anthony@anthonyw.cjb.net>

	* testsuite/21_strings/find.cc: Patch.

2000-06-22  Benjamin Kosnik  <bkoz@soma.redhat.com>

	* acinclude.m4 (GLIBCPP_CHEC_LINKER_FEATURES): Use gcc + -x c++ as
	an easy way to get at g++ without having to link in libstdc++.

2000-06-21  Benjamin Kosnik  <bkoz@soma.redhat.com>

	Fix alpha, powerpc build failures.
	* acinclude.m4 (GLIBCPP_CHECK_MATH_SUPPORT): Substantially
	re-write. Need to check for both proper declaration when using a
	c++ compiler, and "C" linkage when linking. Do both, and if both
	exist, then define the HAVE_* bits in config.h.
	(GLIBCPP_CHECK_MATH_DECL_AND_LINKAGE): New, uber-macro. Does all.
	(GLIBCPP_CHECK_LINKER_FEATURES): Actually link and run this
	program, doh.

2000-06-20  Anthony Williams  <anthony@anthonyw.cjb.net>

	* bits/string.tcc: Fix find.
	* testsuite/21_strings/find.cc: Patch.

2000-06-20  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* docs/install.html: Update where to get automake, where to get
	binutils.
	* acinclude.m4: Need -fno-builtins too, so gcc doesn't recognize
	builtins.

2000-06-19  Benjamin Kosnik  <bkoz@soma.redhat.com>

	* acinclude.m4 ((GLIBCPP_CHECK_MATH_SUPPORT): Revert last change.
	Add -Werror-implicit-function-declaration instead.

	Regenerate with fixed maintainer-tools.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* libio/Makefile.in: Regenerate.
	* src/Makefile.in: Regenerate.

2000-06-19  Russell Davidson  <russell@ehess.cnrs-mrs.fr>

	* testsuite/27_io/istream_extractor_arith.cc: Patch.
	* bits/locale_factets.tcc: Tweak.

2000-06-19  Raja R Harinath  <harinath@cs.umn.edu>

	* src/Makefile.am: change @WERROR@ to $(WERROR) so that this can
	be overridden on the command line for individual files.

2000-06-19  Benjamin Kosnik  <bkoz@soma.redhat.com>

	* acinclude.m4 (GLIBCPP_CHECK_MATH_SUPPORT): Can't use
	AC_LANG_CPLUSPLUS as this tries to link in libstdc++, which we are
	building. Use -x c++ instead, which does not attempt to link
	libstdc++.

	* acinclude.m4 (GLIBCPP_CHECK_LINKER_FEATURES): Actually check for
	not coring when we hit a try/throw block, which was the problem
	with the linker support...

	* docs/17_intro/contribute.html: Add bits about getting to the LWG
	issues pages.
	* docs/documentation.html: Rename link to make more accurate and scary.
	* docs/gccrebuild.html: Edit for clarity as these are no longer
	separate projects.
	* docs/install.html: Add bits about binutils for
	-ffunction-sections, -fdata-sections, -Wl,--gc-sections

	* configure.in: Add call for GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT.
	* math/Makefile.am (EXTRA_DIST): Change USE_LONG_DOUBLE to
	USE_COMPLEX_LONG_DOUBLE.
	* acinclude.m4 (GLIBCPP_CHECK_MATH_SUPPORT): Break into
	GLIBCPP_CHECK_MATH_SUPPORT and GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT.
	Works around irregularies in powerpc "C" compiler, but a good idea
	anyway.

	* acinclude.m4 (GLIBCPP_CHECK_COMPLEX_MATH_COMPILER_SUPPORT):
	New. Merge both old compiler bug checks for complex into this.

2000-06-19  Anthony Williams  <anthony@anthonyw.cjb.net>

	* testsuite/21_strings/find.cc: Empty strings can be found at all
	positions. Modified.

2000-06-19  Branko Cibej  <branko.cibej@hermes.si>

        * testsuite/20_utilities: New directory.
        * testsuite/20_utilities/auto_ptr.cc: New file.

2000-06-14  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

      	* src/Makefile.am (string_sources): Simplify, assuming that with
	-ffunction-sections, -fdata-sections, -Wl,--gc-sections, all this
	hacking is not necessary.
        (wstring_sources): Same.
        (OPTIMIZE_CXXFLAGS): Enable -fdata-sections -ffunction-sections
	-Wl,--gc-sections.
	* src/string-inst.cc: Remove macro blocks.
	* mkcheck.in (CXX_FLAG): Add bits here.

	* src/string-inst.cc: Remove iostream-related string instantiations.
	* src/misc-inst.cc: Add here.

	* acinclude.m4 (GLIBCPP_CHECK_COMPILER_VERSION): Change FMTFLAGS
	to WFMT_FLAGS.
	* aclocal.m4: Regenerate.
	* configure.in: Change up.
	* configure: Regenerate.

2000-06-13  Steven King  <sxking@uswest.net>

        * acinclude.m4:  Fixup some of the builtin math tests and add tests for
        __builtin_fmod* and test libm for fmodf, fmodl or _fmodf, _fmodl.
        * acconfig.h: Add entries for fmod*.

2000-06-13  Branko Cibej  <branko.cibej@hermes.si>

        * bits/std_cmath.h:  Fix typos in tests (*_FMODFF -> *_FMODF).
        Test  *_MODFF not *_MODF for modf(float, float*).
        (modf(float, float*)): Remove reference to _C_legacy.

2000-06-13  Benjamin Kosnik  <bkoz@redhat.com>

       	* acinclude.m4 (enable_cshadow_headers): Change CSHADOWFLAGS to
	_GNU_SOURCE instead of _ISOC9X_SOURCE, as _GNU_SOURCE is the
	superset, and already defined at top level.
        * aclocal.m4: Regenerate.
        * configure: Regenerate.

	* docs/17_intro/contribute.html: Plead with people to use -cp.

2000-06-13  Anthony Williams  <anthony@anthonyw.cjb.net>

	* testsuite/23_containers/bitset_ctor.cc: Qualify reverse wth std::.

	* testsuite/27_io/filebuf.cc: Changed calls to
	fpos<>._M_position() to implicit calls to operator streamoff().
	* testsuite/27_io/iostream_objects.cc: Removed #include <ciso646>,
	as not needed. Revert, as part of standard.
	* testsuite/27_io/ostream_inserter_arith.cc: Replaced explicit
	call to numpunct<>._M_init() with overrides of the appropriate
	virtual functions.

	* testsuite/27_io/stringstream.cc: Removed unnecessary char *
	pointers from test01, so no need to call base(), which isn't
	guaranteed to be implemented as iterators may themselves be pointers
	* testsuite/27_io/stringbuf.cc: Removed unnecessary calls to
	_M_position() - use implicit conversion to streamoff instead

2000-06-13  Thomas Holenstein  <thomas@hex.ch>

        * bits/stl_iterator.h: Added inline to operators == to >=.

2000-06-13  Brent Verner <brent@rcfile.org>

	* bits/streambuf.tcc: repaired _S_copy_streambufs()
	* testsuite/27_io/ostream_inserter_other.cc (test03): Added testcase.

2000-06-12  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* bits/locale_facets.h (ctype<wchar_t>): Remove unnecessary data
	members.
	* src/locale.cc: Add cwchar include here. Remove incorrect
	definitions, and stub them out.
	* config/generic/ctype.cc (ctype): Remove ctype<wchar_t> bits.
	* config/solaris/solaris2.7/ctype.cc (ctype): Same.
	* config/solaris/solaris2.5/ctype.cc (ctype): Same.
	* config/newlib/ctype.cc: Same.
	* config/gnu-linux/ctype.cc: Same.
	* config/bsd/ctype.cc: Same.
	* config/aix/ctype.cc: Same.

2000-06-12  Branko Cibej  <branko.cibej@hermes.si>

        * config/solaris/solaris2.6/ctype.cc (do_toupper, do_tolower): Use
        towupper and towlower to convert wide characters.

2000-06-12  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* mkcheck.in: Clean up confusion regarding NAME, PRE_NAME.

2000-06-08  Branko Cibej  <branko.cibej@hermes.si>

	* acinclude.m4 (GLIBCPP_CHECK_BUILTIN_MATH_SUPPORT):  Check for
	  sinf, cosf, fabsf, and sqrtf; add to LIBMATHOBJS if missing.
	* aclocal.m4:  Regenerate.
	* configure:  Regenerate.
	* math/cosf.c:  New file.
	* math/fabsf.c:  Likewise.
	* math/sinf.c:  Likewise.
	* math/sqrtf.c:  Likewise.
	* math/Makefile.am (EXTRA_DIST):  Add those four files.
	* math/Makefile.in:  Regenerate.

2000-06-08  Phil Edwards  <pme@sourceware.cygnus.com>

	* testsuite/26_numerics/complex_inserters_extractors.cc:  Need cmath.

2000-06-06  Steven King  <sxking@uswest.net>

	* acconfig.h: Added defines for HAVE_BUILTIN math functs for float,
	double and long double.  Added defines for HAVE libm math functs for
	float and long double.
	* aclocal.m4: Added configure checks for builtin math funcs and libm
	support for float and long double versions of the math functions.
	* config.h.in: Added undefs for math functs.
	* configure: Regenerate.
	* math/mathconf: Changed the _GLIBCPP_HAS_BUILTIN_* to
	_GLIBCPP_HAVE_BUILTIN_*.
	* bits/std_cmath.h: Added long double support.  Use builtins for
	float, double and long if available, otherwise, use libm versions if
	availible, otherwise, punt.
	* shadow/bits/std_cmath.h: ditto

2000-06-02  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* bits/locale_facets.h: Tweak.
	* src/locale.cc (codecvt<wchar_t>): Tweak.

	* bits/locale_facets.h (_Format_cache): _S_ecks -> _S_x.
	* bits/locale_facets.tcc (num_get<char>::_M_extract): Fix for hex.

	* bits/basic_string.h: Move data member up.
	* src/string-inst.cc: Fix instantiations.
	* bits/string.tcc: Fix types.

2000-06-02  Anthony Williams  <anthony@anthonyw.cjb.net>

	* testsuite/21_strings/replace.cc (test01): Qualify find with std::.

2000-06-01  Benjamin Kosnik  <bkoz@gnu.org>

	* bits/std_cwctype.h: Clean.
	* bits/std_cwchar.h: Clean, remove cruft.

	* acinclude.m4 (GLIBCPP_CHECK_WCHAR_T_SUPPORT): Re-work, add bits
	for beginning iconv support.
	Remove _GLIBCPP_HAS_WCHAR_MIN_MAX, roll into _GLIBCPP_USE_WCHAR_T
	macro.
	* acconfig.h: Remove _GLIBCPP_HAS_WCHAR_MIN_MAX.
	* bits/limits_generic.h: Remove.
	* src/gen-num-limits.cc: Same.

	* src/locale.cc: Tweaks.

	* bits/char_traits.h: Tweaks.

2000-05-31  Russell Davidson  <russell@ehess.cnrs-mrs.fr>

	* bits/locale_facets.tcc (num_get<char>::_M_extract): Fix signage,
	exponent, scientific formatting issues.
	* testsuite/27_io/istream_extractor_arith.cc (test09): Add tests.

2000-05-31  Branko Cibej  <branko.cibej@hermes.si>

        * bits/limits_generic.h (numeric_limits<wchar_t>): Use WCHAR_MIN
        and WCHAR_MAX instead of WCHART_MIN and WCHART_MAX.

2000-05-31  Nathan Myers  <ncm@cantrip.org>

       * docs/thanks.html: edit own credits

2000-05-31  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* bits/generic_shadow.h: Remaining _C_Shadow -> _C_shadow fix.

	* acinclude.m4 (GLIBCPP_ENABLE_LONG_LONG): Add strtoull checks...

	* mkcheck.in (SH_FLAG): Add in -Wl,--rpath -Wl,$LIB_PATH. Tweaks.

2000-05-31 Steven King <sxking@uswest.net>

        * shadow/time.h: fix typo
        * shadow/wchar.h: ifdef __USE_GNU for wcsdup
        * shadow/bits/std_cwchar.h: ditto
        * shadow/bits/std_cstdlib.h: add overloads of abs and div for long
        and long long.

2000-05-26  Phil Edwards  <pme@sourceware.cygnus.com>

	* acinclude.m4 (GLIBCPP_ENABLE_LONG_LONG):  If strtoll isn't
	  available, force --disable.  Need to flesh this out; make smarter.
	* aclocal.m4:  Regenerate.
	* configure:  Regenerate.

	* mkcheck.in:  Minor tweaks.
	* docs/download.html:  Fix typo.

2000-05-25  Benjamin Kosnik  <bkoz@milou.soma.redhat.com>

	* inclosure: Change to...
	* mkinclosure: This.
	Fix paths to bash.
	* mkcshadow: Fix paths to bash.

	* src/Makefile.am: Tweaks. Do cshadow header trickery at build time.
	* src/Makefile.in: Regnerate.
	* acinclude.m4 (GLIBCPP_COMPILER_VERSION): Fix typo.
	(GLIBCPP_ENABLE_SHADOW): Do a less gross hack.
	* aclocal.m4: Regenerate.
	* mkcheck.in (INC_PATH): Tweak.

	* configure.in: Enable long long by default.
	* configure: Regenerate.

	* mkcheck.in (LIB_PATH): Revert.

2000-05-24   Nathan "I don't write ChangeLog Entries" Myers  <ncm@cantrip.org>

	* config/cpu/i486: New directory.
	* config/cpu/i486/bits: New directory.
	* config/cpu/i486/bits/atomicity.h: New file.
	* config/cpu/i386/bits/atomicity.h (__compare_and_swap): Delete
	'cmpxchgl' asm.
	* acinclude.m4 (GLIBCPP_CHECK_CPU): Enable i386.

2000-05-24  Loren J. Rittle  <ljrittle@acm.org>

        * backward/alloc.h (__default_alloc_template): Only expose
          implementation-specific symbol, if it exists in the
          configuration.
        * backward/iostream.h (ends): Expose symbol.
        * backward/strstream.h: New file.
        * backward/stream.h: New file.
        * backward/ostream.h: New file.
        * backward/istream.h: New file.
        * backward/fstream.h: New file.
        * backward/complex.h: New file.
        * backward/iomanip.h: New file.

	* mkcheck.in (LIB_PATH): Add -R bits.

	* math/carg.c (carg): Replace __atan2 with atan2.

2000-05-24  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* Makefile.am (TAGS): Construct.
	* Makefile.in: Rengerate.
	* src/Makefile.am: Tweak.
	* src/Makefile.in: Tweak.
	* configure.in: Tweak.

	* bits/c++config.h: Rename to ...
	* bits/c++config: This.
	* mkc++config: Adjust.

	* m4: Remove.
	* m4/lc_message.m4: Merge into acinclude.m4.
	* m4/mathfcts.m4: Same.
	* m4/stringfcts.m4: Same.
	* acinclude.m4: Add here.
	* configure: Regnerate.

	* acinclude.m4 (GLIBCPP_CHECK_COMPILER_VERSION): Remove
	OPTLEVEL. Add FMTFLAGS.
	* aclocal.m4: Regenerate.
	* src/Makefile.am (AC_CXXFLAGS): Take out OPTLEVEL, as this has
	been disabled due to higher-level Makefiles running amuck over
	this bit, and add in FMTFLAGS so that formatting is clear.
	* src/Makefile.in: Regenerate.
	* configure: Regenerate.

	* src/ios.cc (ios_base::sync_with_stdio): Clean up buffers from
	initialization.

	* docs/download.html: Remove references to Cygwin-specific bits,
	as this can now be built natively.
	Update with current information.

2000-05-24  Phil Edwards  <pme@sourceware.cygnus.com>

	* acinclude.m4 (GLIBCPP_CHECK_COMPILER_VERSION):  If we can use
	  -fdiagnostics-show-location=once, do so.  Expand AC_LANG_* to
	  enclose other tests in this macro, including future ones.
	* aclocal.m4:  Regenerate.
	* configure:  Regenerate.

	* docs/faq/index.html:  Update location of libg++ FAQ.
	* docs/faq/index.txt:  Regenerate.

2000-05-22  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

	* docs/17_intro/libstdc++-assign.txt: Change Cygnus to FSF.

2000-05-22  Phil Edwards  <pme@sourceware.cygnus.com>

	* mkcheck.in:  Tweak for Solaris 8.  Additional minor output comment.

2000-05-22  Phil Edwards  <pme@sourceware.cygnus.com>

	* acinclude.m4:  If the new pragma isn't supported, don't kill -Werror;
	  keep -Werror and add -Wno-unknown-pragma.  -Werror Is Good.
	* aclocal.m4:  Regenerate.
	* configure:  Regenerate.

2000-05-19   Nathan C. Myers  <ncm@cantrip.org>

      	* bits/generic_shadow.h: s/swamp/legacy/

2000-05-19  Phil Edwards  <pme@sourceware.cygnus.com>

	* acinclude.m4:  Clean up comments on newer checks.
	  (GLIBCPP_CHECK_COMPILER_VERSION):  Check for system_header
	  pragma support.  Remove WERRORSUPPRESS variable, add WERROR.
	* aclocal.m4:  Regenerate.
	* configure:  Regenerate.
	* Makefile.in:  Regenerate.
	* libio/Makefile.in:  Regenerate.
	* math/Makefile.in:  Regenerate.
	* src/Makefile.am:  Tell make's WERROR to depend on configure's WERROR.
	* src/Makefile.in:  Regenerate.
	* docs/configopts.html:  Document changes to --enable names.

2000-05-18  Chip Salzenberg  <chip@valinux.com>

        * bits/ostream.tcc (_S_pad_char): Function template should not be
        static.
        * bits/streambuf.tcc (_S_copy_streambufs): Likewise.
        * src/string-inst.cc (__destroy_aux): Instantiate for string*.

2000-05-18  Nathan C. Myers  <ncm@cantrip.org>

	* mkcshadow: Change C_Swamp to C_legacy.
	* shadow/*: Same.
	* shadow/bits/*: Same.
	s/C_Swamp/C_legacy/g
	s/SWAMP/LEGACY/g
	s/_Shadow/_shadow/g

2000-05-18  Anthony Williams  <anthony@anthonyw.cjb.net>

	* bits/locale_facets.tcc (num_get::_M_extract): Change char* to
	const char*.
	* src/string-inst.cc (string::_S_find): Same.

2000-05-18  Benjamin Kosnik  <bkoz@gnu.org>

	* acinclude.m4 (GLIBCPP_ENABLE_SHADOW): Change to
	--enable-cshadow-headers. Add output messages.
	(GCC_ENABLE_LONG_LONG): Change to --enable-long-long, no
	underscores (like the rest of the enable options.) Add output messages.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* configure.in: Touch.

2000-05-17  Benjamin Kosnik  <bkoz@cygnus.com>

	* mkcheck.in: Enable shared library testing.

2000-05-17  Nathan C. Myers  <ncm@cantrip.org>

	* bits/std_cmath.h: fix sqrt(float)

2000-05-16  Loren J. Rittle  <ljrittle@acm.org>

        * bits/std_cassert.h: Use system_header pragma.
        * bits/std_cctype.h: Likewise.
        * bits/std_cerrno.h: Likewise.
        * bits/std_cfloat.h: Likewise.
        * bits/std_climits.h: Likewise.
        * bits/std_clocale.h: Likewise.
        * bits/std_cmath.h: Likewise.
        * bits/std_csetjmp.h: Likewise.
        * bits/std_csignal.h: Likewise.
        * bits/std_cstdarg.h: Likewise.
        * bits/std_cstddef.h: Likewise.
        * bits/std_cstdio.h: Likewise.
        * bits/std_cstdlib.h: Likewise.
        * bits/std_cstring.h: Likewise.
        * bits/std_ctime.h: Likewise.
        * bits/std_cwchar.h: Likewise.
        * bits/std_cwctype.h: Likewise.
        * bits/std_exception.h: Likewise.
        * bits/std_new.h: Likewise.
        * bits/std_typeinfo.h: Likewise.
        * shadow/bits/std_cassert.h: Likewise.
        * shadow/bits/std_cctype.h: Likewise.
        * shadow/bits/std_cerrno.h: Likewise.
        * shadow/bits/std_cfloat.h: Likewise.
        * shadow/bits/std_climits.h: Likewise.
        * shadow/bits/std_clocale.h: Likewise.
        * shadow/bits/std_cmath.h: Likewise.
        * shadow/bits/std_csetjmp.h: Likewise.
        * shadow/bits/std_csignal.h: Likewise.
        * shadow/bits/std_cstdarg.h: Likewise.
        * shadow/bits/std_cstddef.h: Likewise.
        * shadow/bits/std_cstdio.h: Likewise.
        * shadow/bits/std_cstdlib.h: Likewise.
        * shadow/bits/std_cstring.h: Likewise.
        * shadow/bits/std_ctime.h: Likewise.
        * shadow/bits/std_cwchar.h: Likewise.
        * shadow/bits/std_cwctype.h: Likewise.
        * shadow/bits/wrap_libio.h: Likewise.
        * shadow/bits/wrap_unistd.h: Likewise.
        * shadow/sys/cdefs.h: Likewise.

2000-05-16  Nathan C. Myers  <ncm@cantrip.org>

        It appears that gcc-2.96 supports the keyword "and" now.
	* bits/std_ciso646.h: remove.
	* std/ciso646: gut.
	* testsuite/17_intro/header_ciso646.c: enable testing.
	* src/Makefile.am, src/Makefile.in: remove mention of
	bits/std_ciso646.h

2000-05-16  Nathan C. Myers  <ncm@cantrip.org>

       * mkcshadow: fix typo s/_C_Swamp_/_C_Swamp/.

2000-05-16  Phil Edwards  <pme@sourceware.cygnus.com>

	* acinclude.m4:  Fix typo, switch to decaf...
	* aclocal.m4:  Regenerate.
	* configure:  Regenerate.

2000-05-16  Phil Edwards  <pme@sourceware.cygnus.com>

	* acinclude.m4 (GLIBCPP_ENABLE_SHADOW):  New macro, stub.
	* aclocal.m4:  Regenerate.
	* configure.in:  Call.
	* configure:  Regenerate.
	* docs/configopts.html:  Stub documentation.

2000-05-14  Nathan Myers  <ncm@cantrip.org>

        * mkcshadow: build in more-correct directory, create cshadow/
        directory if needed, report progress.

2000-05-14  LLeweLLyn Reese  <llewelly@dbritsch.dsl.xmission.com>

        * src/Makefile.am: Fix tr commands.
        * src/Makefile.am: Remove references to [w]stringCTORDUPAL.[lo,cc]
        * src/string-inst.cc: Remove extra instantiation of
          S::basic_string(S::size_type, C, S::allocator_type const&);
        * src/string-inst.cc: Remove extra template keyword.

2000-05-14  Loren J. Rittle  <ljrittle@acm.org>

        * config/bsd/bits/ctype_base.h: Add support for plain BSD4.4.
        * acinclude.m4 (GLIBCPP_CHECK_CTYPE): Enhance bsd tests.
        * aclocal.m4: Regenerate.
        * configure: Regenerate.
        * */Makefile.in: Regenerate.

2000-05-11  Phil Edwards  <pme@sourceware.cygnus.com>

	* acinclude.m4:  Fix minor typo with ctypes, add more sanity to
	  enable-cxx-flags, and remove GLIBCPP_ENABLE_NAMESPACES altogether.
	* aclocal.m4:  Regenerate.
	* configure.in:  Non-blank arguments break fewer Linuxes.
	* configure:  Regenerate.
	* src/Makefile.am:  Re-order AC_CXXFLAGS components.
	* src/Makefile.in:  Regenerate.

2000-05-10  Benjamin Kosnik  <bkoz@redhat.com>

	* bits/std_cmath.h: Tweaks.
	* math/mathconf.h: Tweaks and fixes for HP-UX 11.
	(sqrtf): Define away iff !builtin and !in <math.h>.
	(sinf): Same.
	(cosf): Same.
	(fabsf): Same.
	At some point this directory should be converted to c++, the
	autoconf tests should be run by the c++ compiler (not c), and
	<cmath> should be used instead of math.h.
	Move declaration of nan() here.
	* math/complex-stub.h (cabsl): Remove nan() declaration.

	Finish up FreeBSD4.0 support.
	* config/bsd/ctype.cc: Scope out toupper, tolower calls.
	* config/generic/ctype.cc: And here.
	* testsuite/21_strings/char_traits.cc (test02): Guard with
	_GLIBCPP_USE_WCHAR_T.

	via Phil Edwards  <pme@sourceware.cygnus.com>
	* bits/std_cctype.h: Remove _GLIBCPP_USE_NAMESPACES.
	* acconfig.h: And here.
	* acinclude.m4: Same.
	* testsuite/27_io/istream.cc: And here.
	* testsuite/27_io/ostream.cc: And here.

2000-05-09  Benjamin Kosnik  <bkoz@gnu.org>

	* acinclude.m4 (GLIBCPP_CHECK_CPU): Change powerpc bits to
	-mcpu=powerpc.
	* src/Makefile.am: Disable ENABLE_CXX_FLAGS stuff for the moment.

	* config/generic/bits/ctype_specializations.h (ctype<char>::is):
	Make more generic.

	* config/bsd: New directory.
	* config/bsd/ctype.cc: New.
	* config/bsd/bits/ctype_base.h (ctype_base): New.
	* config/bsd/bits/ctype_specializations.h: New.
	* acinclude.m4 (GLIBCPP_CHECK_CTYPE): Add bsd tests.

2000-05-09  Phil Edwards  <pme@sourceware.cygnus.com>

	* acinclude.m4:  New macro, GLIBCPP_ENABLE_CXX_FLAGS.
	* configure.in:  Call.
	* src/Makefile.am:  Append results of macro to AC_CXXFLAGS.
	* aclocal.m4:  Regenerate.
	* configure:  Ditto.
	* src/Makefile.in:  Ditto.
	* docs/configopts.html:  Document.
	* docs/download.html:  Fix typo (close quote).
	* docs/footer.html:  Update.

2000-05-09  Loren J. Rittle  <ljrittle@acm.org>

        * backward/iostream.h: Expose endl.  Guard wide types.
        * src/Makefile.am (headers): Update list to match files.
        * src/Makefile.in: Regenerate.

2000-05-09  Vadim Egorov  <egorovv@mailandnews.com>
	    Benjamin Kosnik  <bkoz@gnu.org>
	    Nathan Myers  <ncm@cantrip.org>
	    Dietmar Kuehl  <dietmar_kuehl@yahoo.com>

        * bits/streambuf.tcc (basic_streambuf::xsgetn): Fix uflow case.
	(basic_streambuf::xsputn): Make consistent.
	* testsuite/27_io/filebuf.cc: Add tests.

2000-05-08  Steven King  <sxking@uswest.net>

        * bits/char_traits.h: Use wchar_t utility functions for
        char_traits<wchar_t> methods.
        * testsuite/21_string/char_traits.cc: New (test02): test
        char_traits<wchar_t>

2000-05-08  Benjamin Kosnik  <bkoz@cygnus.com>

	* acinclude.m4 (GLIBCPP_CXXFLAGS): Add bits for solaris2.8.

	* bits/fstream.tcc (filebuf::_M_init_filebuf): Don't set
	_M_buf_size based on macro, instead use _M_buf_size_opt.
	* bits/std_streambuf.h (basic_streambuf): Add _M_buf_size_opt.
	(basic_streambuf()): Set _M_buf_size_opt.
	* testsuite/27_io/filebuf.cc (filebuf): Use _M_buf_size_opt
	instead of _M_buf_size.

2000-05-04  Branko Cibej  <branko.cibej@hermes.si>

        * src/complex_io.cc: Don't instantiate inserters and extractors
        for wide-character streams unless _GLIBCPP_USE_WCHAR_T is defined.

2000-05-03  Phil Edwards  <pme@sourceware.cygnus.com>
            Felix Natter <fnatter@gmx.net>

	* docs/footer.html:  Update to see if it takes effect.
	* docs/thanks.html:  More people.
	* docs/17_intro/headers_cc.txt:  Copy from testsuite, since that can't
	  be seen from the web pages.  Rename for browser-friendliness...
	* docs/17_intro/howto.html:  ...and update here.
	* docs/17_intro/porting-howto.html:  Changes from Felix.
	* docs/gccrebuild.html:  Mention v3->egcs move.
	* docs/faq/index.html:  Ditto.  Also misc tweaks and URL updates.
	* docs/faq/index.txt:  Regenerate.

2000-05-01  Benjamin Kosnik  <bkoz@redhat.com>

	* config/cpu/powerpc/bits/atomicity.h (__exchange_and_add): More
	fixes.

2000-05-01  Vadim Egorov  <egorovv@@mailandnews.com>

        * bits/char_traits.h: Fix parameter types.
        * bits/string.tcc: Avoid traits_type::move.

2000-05-01  Benjamin Kosnik  <bkoz@haight.constant.com>

	* src/Makefile.am (AC_CXXFLAGS): Add CPUFLAGS here.
	* src/Makefile.in: Regenerate.
	* acinclude.m4 (GLIBCPP_ENABLE_DEBUG): Revert.

2000-04-30  Steven King <sxking@uswest.net>

        * bits/locale_facets.h: Fix syntax  error.
        * bits/std_fstream.h: ditto

2000-04-30  Benjamin Kosnik  <bkoz@gnu.org>

	* config/cpu/powerpc/bits/atomicity.h (__compare_and_swap): Fix typo.

	* mknumeric_limits (trait_name): Fix copyright notice.
	* src/gen-num-limits.cc: Explicitly instantiate epsilon and
	round_error data members of struct value. This works around
	weak-linking issues on AIX, HPUX.

2000-04-29  Phil Edwards  <pme@sourceware.cygnus.com>

	* docs/download.html:  Add link to list of mirror sites.

2000-04-28  Loren J. Rittle  <ljrittle@acm.org>

        * mkcheck.in: Rely on exit status instead of the presence of a
        core file.  Added comments on how/where to save core and exe
        files.  Move shell wildcards outside quotes and fix core path.

2000-04-27  scott snyder  <snyder@fnal.gov>

        * src/misc-inst.cc: Explicitly instantiate ifstream and ofstream
        classes.

2000-04-26  Nathan C. Myers  <ncm@cantrip.org>

	* bits/basic_string.h: include <bits/atomicity.h> instead
        of <atomicity.h>, and use the uglified names.
        * config/cpu/*/atomicity.h: replace with bits/atomicity.h;
        uglify names, eliminate dependence on <inttypes.h>.
        * src/Makefile.in, src/Makefile.am: refer to correct place
        for atomicity.h header.

2000-04-25 Steven King <sxking@uswest.net>

        * bits/basic_string.h: Fix syntax error.

2000-04-25  Benjamin Kosnik  <bkoz@redhat.com>

	* acinclude.m4 (GLIBCPP_CHECK_MATH_SUPPORT): Improve checks for
	USE_LONG_DOUBLE.
	(GLIBCPP_ENABLE_DEBUG): If alpha, use -gdwarf-2.
	* math/Makefile.am (EXTRA_LONG_DOUBLE_yes): Add all the long
	versions to this as copysignl is needed anyway for these targets.
	* math/Makefile.in: Regenerate.

	* bits/streambuf.tcc (streambuf::xsgetn): Tweak.
	* bits/fstream.tcc (underflow): Cast to libio types.
	* bits/basic_file.h (seekoff): Fixes for alpha: use __c_streamoff.
	* config/c_io_libio.cc (seekoff): And here.

2000-04-24  Loren J. Rittle  <ljrittle@acm.org>

        * mkcheck.in: Report compiler version used for test.  Find
        the built _G_config.h instead of any old installed version.

2000-04-24  Loren J. Rittle  <ljrittle@acm.org>

        * config/generic/ctype.cc (do_toupper): Remove dependence on
        non-portable/non-existent lookup table.
        (do_tolower): Same.

2000-04-24  Nathan Myers  <ncm@cantrip.org>

	* src/string-inst.cc: More fixing.

2000-04-24  Benjamin Kosnik  <bkoz@gnu.org>

	* bits/stl_iterator.h: Pedantic fixing.
	* bits/std_sstream.h: And here.
	* bits/string.tcc: And here.

2000-04-24  Felix Natter <fnatter@gmx.net>

	* docs/17_intro/howto.html: Add bits.
	* docs/17_intro/porting-howto.html: New file.

2000-04-24  Branko Cibej  <branko.cibej@hermes.si>

        * acinclude.m4(GLIBCPP_CHECK_WCHAR_T_SUPPORT): Expand
        @libinst_wstring_la@ to libinst-wstring.la when specializing for
        wchar_t, to empty string otherwise.
        * src/Makefile.am: (EXTRA_LTLIBRARIES): New.
        (sources): Remove $(string_sources) and $(wstring_sources).
        (libstdc___la_LIBADD): Add libinst-string.la and @libinst_wstring_la@.
        (libstdc___la_DEPENDENCIES): New.
        (libinst_string_la_SOURCES, libinst_wstring_la_SOURCES): New.

2000-04-20  Benjamin Kosnik  <bkoz@redhat.com>

	* bits/std_sstream.h: Tweak formatting.
	* bits/std_fstream.h: Make types public.

	* testsuite/27_io/streambuf.cc: Fix for alpha.

	Brad Garcia <bgarcia@laurelnetworks.com>
	* bits/locale_facets.h (numpunct::numpunct(size_t)): Fix bool
	initialization.
	* testsuite/27_io/ios_manip_fmtflags.cc (test02): Add test for
	bool formatting.

2000-04-19  Nathan Myers  <ncm@cantrip.org>

	* src/string-inst: consolidate _S_create,
	destroy, leak, clone members into stringMAIN and stringMUTATE
	object files.
	* src/Makefile.am: Above, and eliminate dependence on
	wstring-inst.cc.
	* src/wstring-inst.cc: Remove.

2000-04-18  Benjamin Kosnik  <bkoz@redhat.com>

	* src/Makefile.am (AC_CXXFLAGS): Activate debugging code, again.
	Add flags for specialized rules dealing with instantiations.

	* src/string-inst.cc: Add instantiations missing from shared
	libraries--see stringEQ, stringCONSC.
	* src/Makefile.am (wstring_sources): Add.
	(string_sources): Same.
	* src/Makefile.in: Regenerate.

	* stl/*: Integrate contents of this directory into top-level
	directories.
	* ext/bvector hash_map hash_set rope ropeimpl.h slist
	stl_bvector.h stl_hash_fun.h stl_hashtable.h stl_rope.h tree: Add.
	* bits/pthread_allocimpl.h std_algorithm.h std_bitset.h
	std_deque.h std_functional.h std_iterator.h std_list.h std_map.h
	std_memory.h std_numeric.h std_queue.h std_set.h std_stack.h
	std_stdexcept.h std_strstream.h std_utility.h std_vector.h
	stl_algo.h stl_algobase.h stl_alloc.h stl_config.h stl_construct.h
	stl_deque.h stl_function.h stl_heap.h stl_iterator.h
	stl_iterator_base.h stl_list.h stl_map.h stl_multimap.h
	stl_multiset.h stl_numeric.h stl_pair.h stl_pthread_alloc.h
	stl_queue.h stl_range_errors.h stl_raw_storage_iter.h stl_relops.h
	stl_set.h stl_stack.h stl_string_fwd.h stl_tempbuf.h stl_threads.h
	stl_tree.h stl_uninitialized.h stl_vector.h type_traits.h: Add.
	* backward/algo.h algobase.h alloc.h bvector.h defalloc.h deque.h
	function.h hash_map.h hash_set.h hashtable.h heap.h iterator.h
	list.h map.h multimap.h multiset.h pair.h rope.h set.h slist.h
	stack.h tempbuf.h tree.h vector.h: Add.
	* README (file): Update.
	* docs/documentation.html: README not being found.
	* src/Makefile.am (sources): Take out stl directory.
	* mkcheck.in (SRC_DIR): And here.
	* src/Makefile.in: Regenerate.

2000-04-18  Levente Farkas  <lfarkas@mindmaker.hu>

	* stl/bits/stl_function.h: Add bits so that const and non-const
	both work.

2000-04-18  scott snyder  <snyder@fnal.gov>

        * stl/bits/stl_map.h (class map): Fix default for _Alloc template
        parameter.  Get rid of use of __STL_DEFAULT_ALLOCATOR and
        __STL_LIMITED_DEFAULT_TEMPLATES macros.
        * stl/bits/stl_multimap.h (class multimap): Likewise.  Get rid of
        use of __STL_DEPENDENT_DEFAULT_TMPL macro.

2000-04-18  scott snyder  <snyder@fnal.gov>

        * stl/bits/stl_config.h (__STL_DEPENDENT_DEFAULT_TMPL): Deleted
        this macro.

        * stl/ext/hash_map (class hash_map, class hash_multimap): Get rid
        of use of __STL_DEPENDENT_DEFAULT_TMPL macro.
        * stl/ext/hash_set (class hash_set, class hash_multiset):
        Likewise.
        * stl/bits/stl_function.h (struct constant_unary_fun, struct
        constant_binary_fun): Likewise.
        * stl/bits/stl_queue.h (class queue, class priority_queue): Likewise.
        * stl/bits/stl_stack.h (class stack): Likewise.
        * stl/bits/stl_set.h (class set): Likewise.
        * stl/bits/stl_multiset.h (class multiset): Likewise.

        * stl/bits/stl_iterator.h (class reverse_bidirectional_iterator,
        class reverse_iterator): Get rid of use of
        __STL_LIMITED_DEFAULT_TEMPLATES macro.

        * stl/bits/stl_config.h (__STL_DEFAULT_ALLOCATOR): Deleted this
        macro.

        * stl/bits/stl_deque.h (class deque): Get rid of use of
        __STL_DEFAULT_ALLOCATOR macro.
        * stl/bits/stl_list.h (class list): Likewise.
        * stl/bits/stl_multiset.h (class multiset): Likewise.
        * stl/bits/stl_set.h (class set): Likewise.
        * stl/bits/stl_string_fwd.h (class basic_string): Likewise.
        * stl/bits/stl_tree.h (class _Rb_tree, class rb_tree): Likewise.
        * stl/bits/stl_vector.h (class vector): Likewise.
        * stl/ext/ropeimpl.h (rotate): Likewise.
        * stl/ext/hash_map (class hash_map, class hash_multimap):
        Likewise.
        * stl/ext/hash_set (class hash_set, class hash_multiset):
        Likewise.
        * stl/ext/slist (class slist): Likewise.
        * stl/ext/stl_bvector.h (class bit_vector): Likewise.
        * stl/ext/stl_rope.h (class rope): Likewise.
        * src/locale.cc (_Impl): Likewise.
        * src/localename.cc (_Impl): Likewise.
        * bits/localefwd.h (_Impl): Likewise.

2000-04-18  Phil Edwards  <pme@sourceware.cygnus.com>

	* docs/install.html:  Cleanup, minor changes.
	* docs/17_intro/howto.html:  Ditto.

2000-04-18  Nathan Myers  <ncm@cantrip.org>

	* bits/basic_string.h: Remove "inline" from member _S_find.

	* src/string-inst.cc: Rewrite to reflect non-inline template
	instantiations in string.tcc.

	* src/stringADDCS.cc, stringADDPS.cc, stringADDSC.cc, stringADDSP.cc,
	stringADDSS.cc, stringBIST.cc, stringBOST.cc, stringCHTR.cc,
	stringEQPS.cc, stringEQSP.cc, stringEQSS.cc, stringEXTRA.cc,
	stringGEPS.cc, stringGESP.cc, stringGESS.cc, stringGETLI.cc,
	stringGTPS.cc, stringGTPS.cc, stringGTSP.cc, stringGTSS.cc,
	stringINSER.cc, stringLEPS.cc, stringLESP.cc, stringLESS.cc,
	stringLESP.cc, stringLTPS.cc, stringLTPS.cc, stringLTSP.cc,
	stringLTSS.cc, stringMAIN.cc, stringNEPS.cc, stringNESP.cc,
	stringNESS.cc, stringSCOPY.cc: Remove.
	* src/wstringADDCS.cc, etc: Remove.

	Benjamin Kosnik  <bkoz@haight.constant.com>
	* src/Makefile.am: Modify to reflect above.
	* src/Makefile.in: Regenerate.

2000-04-17  Benjamin Kosnik  <bkoz@cygnus.com>

	* docs/install.html (--enable-libstdcxx-v3): Clean up install docs.

2000-04-13  Benjamin Kosnik  <bkoz@haight.cygnus.com>

	* bits/std_fstream.h (filebuf::sync): Need to use the abstracted
	io interface here instead of the libio particulars.

	* config/threads-posix.h: Consistency with stl_config.h.

	* mkcheck.in (CXX_FLAG): Add DDEBUG_ASSERT back in.

2000-04-13  Loren J. Rittle  <ljrittle@acm.org>

        * mknumeric_limits: Rename generic type template parameter name
        '_T' to '_Tp'.
        * stl/bits/type_traits.h: Ditto.

2000-04-06  Benjamin Kosnik  <bkoz@decepticon.cygnus.com>

	* mkcheck.in (SRC_DIR): Change default mkcheck behavior, so that
	it is more useful for --enable-libstdcxx-v3. Use the built
	compilers with v3, instead of compilers in PATH, and don't
	re-include include directories for checking the install.

2000-04-05  Benjamin Kosnik  <bkoz@cygnus.com>

	* src/Makefile.am (AM_CXXFLAGS): Disable NAMESPACES, as this is on
	by default when using --enable-libstdcxx-v3.
	* src/Makefile.in: Regenerate.
	* configure.in: Disable GLIBCPP_ENABLE_NAMESPACES,
	GLIBCPP_ENABLE_RELIBGCC for --enable-libstdcxx-v3 flag.
	* configure: Regenerate.
	* mkcheck.in: Deal with NAMESPACES.

2000-04-05  Petter Urkedal  <petter@matfys.lth.se>

        * src/cmath.cc: New file...
        (pow(*, int)): Define functions...
        * src/Makefile.am (sources): ...register file.
        * src/Makefile.in: Regenerate.
        * bits/std_cmath.h (pow): ...declare functions here, and remove
        old definitions.

2000-04-04  Benjamin Kosnik  <bkoz@redhat.com>

	* acinclude.m4 (GCC_OBJDIR): Tweaks

2000-04-03  Benjamin Kosnik  <bkoz@redhat.com>

	* acinclude.m4 (GLIBCPP_CHECK_CPU): Add arm configure bits.
	* config/cpu/arm: New directory.

	Jesper Skov  <jskov@redhat.com>
	* config/cpu/arm/atomicity.h: New file.

2000-03-31  Benjamin Kosnik  <bkoz@redhat.com>

	* stl/bits/stl_config.h: Make _STL_THREADS depend on _REENTRANT.
	Remove unused bits. Clean.

2000-03-29  Benjamin Kosnik  <bkoz@cygnus.com>

	* testsuite/25_algorithms: New directory.
	* testsuite/25_algorithms/min_max.cc: New file.

2000-03-29  scott snyder  <snyder@fnal.gov>

        * bits/locale_facets.tcc (do_put): Allow a couple extra digits of
        precision beyond that which we get from numeric_limits::digits10.

        * stl/bits/stl_algobase.h (max, min): Don't use comparison
        operator.

	* testsuite/23_containers/bitset_shift.cc: Fix.

        * testsuite/27_io/ios_manip_fmtflags.cc (test01): Don't give a
        temporary to imbue().

	* bits/std_fstream.h (sync): Resync libio's idea of the current
        file position with the external file.

2000-03-28  Benjamin Kosnik  <bkoz@cygnus.com>

	* testsuite/27_io/istream_extractor_arith.cc.cvs: Fix merge
	mistake.

	* bits/std_fstream.h (filebuf::is_open): Check for _M_file before
	attempting calls to it.
	* bits/fstream.tcc (ctors): Don't call _M_init_filebuf in
	ctors. Instead, call _M_init_filebuf ...
	(open): Here, as suggested by 27.8.1.3.
	* src/ios.cc (ios_base::Init::Init()): Clean up default filebufs
	properly when initializing cout/cin/cerr.

2000-03-27  Russell Davidson  <russell@ehess.cnrs-mrs.fr>

	* testsuite/23_containers/multiset.cc (main): Clean up for namespaces.
	* testsuite/22_locale/ctype_char_members.cc: And here.
	* testsuite/27_io/streambuf.cc (streambuf): And here.
	* testsuite/27_io/ostream_inserter_char.cc (test06): And here.
	* testsuite/27_io/istream_unformatted.cc (test05): And here.
	* testsuite/27_io/istream_extractor_arith.cc: And here.
	* testsuite/27_io/ios_manip_basefield.cc (test02): And here.
	* testsuite/27_io/ios_base_members_static.cc: And here.
	* bits/std_climits.h (_CPP_CLIMITS): Fix typo.

2000-03-27  Chris Faylor  <cgf@cygnus.com>

	* configure.in: Remove setting of CXX if canadian cross.
	* configure: Regenerate.

2000-03-27  Nathan Myers  <ncm@zembu.com>

	* bits/sstream.tcc: Optimize.
	* bits/basic_string.h(string::append): Don't inline.
	* bits/string.tcc: Move out-of-line.

2000-03-27  Phil Edwards  <pme@sourceware.cygnus.com>

	* acinclude.m4:  (GLIBCPP_CHECK_COMPILER_VERSION)  When using <2.96,
	  define WERRORSUPPRESS so that the inlining warnings won't kill us.
	* aclocal.m4:  Regenerate.
	* configure:  Regenerate.
	* src/Makefile.am:  Use WERRORSUPPRESS for the files that need it.
	* src/Makefile.in:  Regenerate.

	* docs/install.html:  Almost complete rewrite.

2000-03-25  Phil Edwards  <pme@sourceware.cygnus.com>

	* docs/install.html:  Explain -Werror problem at "#Werror" mark.
	* docs/faq/index.html:  Testsuite will die horribly if new libgcc.a
	  not installed.
	* docs/faq/index.txt:  Regenerate.

2000-03-24  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>

	* src/Makefile.am (libio_headers_install): Fix.
	* src/Makefile.in: Regenerate.

2000-03-24  Benjamin Kosnik  <bkoz@cygnus.com>

	* docs/17_intro/RELEASE-NOTES: Fix typos.
	* docs/index.html: Update.
	* docs/17_intro/BUGS: Update.
	* docs/status.html: Update for 2.90.8 release.

2000-03-23  Phil Edwards  <pme@sourceware.cygnus.com>

	* Makefile.am:  Better error message when missing libgcc2.ready.
	* Makefile.in:  Regenerate.
	* acinclude.m4:  Fastidious nitpicking reformatting.
	* aclocal.m4:  Regenerate.
	* configure:  Regenerate.
	* mkcheck.in:  Must use same namespace settings as the library being
	  tested.  Also log ST_FLAG, since it's being passed.
	* docs/install.html:  Add brief chunk on configuration.
	* docs/17_intro/RELEASE-NOTES:  Fix minor Cygwin typo.
	* docs/23_containers/howto.html:  Mention MT-safe string.
	* docs/faq/index.html:  Minor updates.
	* docs/faq/index.txt:  Regerarate.

2000-03-22  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/sstream.tcc (seekoff): Fix for gptr() null cases.
	Return newoff.
	* bits/fstream.tcc (seekoff): Sync.
	(seekpos): Sync.
	* testsuite/27_io/ostream_unformatted.cc: New file.
	* testsuite/27_io/stringbuf.cc: Fix.
	* testsuite/27_io/istream_unformatted.cc (test04): Fix.

	* config/newlib/bits/ctype_base.h (ctype_base): Fix.
	* config/newlib/ctype.cc (ctype): Change __ctype -> _ctype_.

	* src/complex_io.cc (operator>>complex): Tweak.

	* config/cpu/alpha/atomicity.h: Explicitly typedef uint32_t, int32_t if
	<inttypes.h> does not exist.
	* config/cpu/sparc/sparc64/atomicity.h: Same.
	* config/cpu/sparc/sparc32/atomicity.h: Same.
	* config/cpu/powerpc/atomicity.h: Same.
	* config/cpu/i386/atomicity.h: Same.
	* config/cpu/generic/atomicity.h: Same.
	* configure.in: Check for inttypes.h.
	* configure: Regnerate.

2000-03-21  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/std_sstream.h (_M_init_stringbuf): Set initial ate position
	correctly.
	* testsuite/27_io/ostream_inserter_char.cc (test06): Add tests for ate.

	* docs/17_intro/RELEASE-NOTES (New): Add bits.

	* configure.in: Move AC_CHECK_HEADERS to a point where we know we
	are compiling natively.

	* libio/*: Update to CVS libio from egcs.

2000-03-21  Phil Edwards  <pme@sourceware.cygnus.com>

	* docs/download.html:  Document use of -z9 for CVS.
	* docs/index.html:  Add target date (no link) for future snapshot.

2000-03-21  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/slice_array.h: Rename generic type template parameter name
	'_T' to '_Tp'.
	* bits/mask_array.h: Ditto

2000-03-20  Benjamin Kosnik  <bkoz@cygnus.com>

        * *: Change copyright holder from "Cygnus Solutions" to "Free
	Software Foundation, Inc."

	* docs/configopts.html: Explain what "hella versions" means.
	* docs/install.html: Some tweaks--nice job on this Phil.
	* docs/documentation.html: Add a direct link to configuration options.

	* src/Makefile.am (OPTIMIZE_CXXFLAGS): Add in extras.
	* docs/17_intro/RELEASE-NOTES (New): Add.
	* bits/c++config.h (__GLIBCPP__): Bump version.

	* config/c_io_libio.cc (__basic__file(__c_lock*)): Change argument
	type to match prototype.

2000-03-20  Phil Edwards  <pme@sourceware.cygnus.com>

	* docs/install.html:  Update for new funky build procedure.  Move
	  description of 'configure' options to...
	* docs/configopts.html:  ...here.  New file.
	* docs/17_intro/howto.html:  Updates for new snapshot.
	* docs/20_util/howto.html:  Ditto.
	* docs/21_strings/howto.html:  Ditto.
	* docs/21_strings/stringtok_std_h.txt:  Fix example typos.
	* docs/22_locale/howto.html:  Ditto.
	* docs/23_containers/howto.html:  Ditto.
	* docs/faq/index.html:  Ditto.

2000-03-18  Petter Urkedal  <petter@matfys.lth.se>
            Benjamin Kosnik  <bkoz@gnu.org>

        * acinclude.m4 (GLIBCPP_CHECK_COMPLEX_SUPPORT): Move code for main
        to the right place.
        * aclocal.m4: Regenerate.
        * configure: Regenerate.

2000-03-16  Benjamin Kosnik  <bkoz@cygnus.com>
            scott snyder  <sss@karma.fnal.gov>

	* config/c_io_libio.h: Add __c_lock.
	* config/threads-no.h: Same here.
	* config/threads-posix.h: Add __mutext_type typedef.
        * config/c_io_libio.cc: basic_file ctor takes lock arg.
        * bits/basic_file.h: Ctor takes lock arg.
        * bits/std_fstream.h: Add _M_lock.
        * bits/fstream.tcc: Supply it to basic_file ctor.

	* mkcheck.in (resultstext): Change [[ to [.

	* testsuite/27_io/ostream_inserter_char.cc (test06): Tweak.

	* bits/locale_facets.h: Tweak.

	* stl/bits/stl_config.h: Fix defines.

2000-03-16  Benjamin Kosnik  <bkoz@cygnus.com>

	* mkcheck.in (INC_PATH): Add paths from cpu_include_dir to find
	atomicity.h
	* configure: Regenerate.
	* aclocal.m4: Regnerate.

2000-03-16  Nathan Myers  <ncm@zembu.com>

	* bits/string.tcc: Add MT support.
	* bits/basic_string.h: Same.

2000-03-16  Phil Edwards  <pme@sourceware.cygnus.com>

	* configure.in:  Make --enable-namespaces and -libgcc-rebuild=../..
	  the defaults.
	* configure:  Regenerate.

	* config/solaris/solaris2.7/ctype.cc:  Fix unsigned/signed comparison.

2000-03-16  Phil Edwards  <pme@sourceware.cygnus.com>

	* acinclude.m4 (GLIBCPP_CHECK_CTYPE):  If Sol2.5 ctype is found, keep
	  checking for 2.[67].  (GLIBCPP_ENABLE_RELIBGCC):  No longer ignore
	  any defaults passed in.
	* aclocal.m4:  Regenerate.

2000-03-16  Phil Edwards  <pme@sourceware.cygnus.com>

	* mkcheck.in:  Report total successes and failures.

2000-03-15  Benjamin Kosnik  <bkoz@cygnus.com>

	* config/cpu: New directory, intended to be used to provide
	cpu-specific configuration files. In particular, assembly language
	primitives for thread safety.
	* config/cpu/alpha: Populate.
	* config/cpu/alpha/atomicity.h: New file.
	* config/cpu/arm: Populate.
	* config/cpu/generic: Populate.
	* config/cpu/generic/atomicity.h: New file.
	* config/cpu/hppa: Populate.
	* config/cpu/i386: Populate.
	* config/cpu/i386/atomicity.h: New file, take from i486.
	* config/cpu/m68k: Populate.
	* config/cpu/mips: Populate.
	* config/cpu/powerpc: Populate.
	* config/cpu/powerpc/atomicity.h: New file.
	* config/cpu/sparc: Populate.
	* config/cpu/sparc/sparc32: Populate.
	* config/cpu/sparc/sparc64: Populate.
	* config/cpu/sparc/sparc32/atomicity.h: New file.
	* config/cpu/sparc/sparc64/atomicity.h: New file.

	* src/Makefile.am (myinstallheaders): Add install routines.
	* acinclude.m4 (GLIBCPP_CHECK_CPU):Add configuration for the
	cpu dir.
	* configure.in: Add.

	* config/default: Adopt glibc naming conventions, and so move to
	* config/generic: Here.
	* acinclude.m4 (GLIBCPP_CHECK_CTYPE): Modify default case to generic.

2000-03-15  Bill Thompson  <billt@toast.net>

	* testsuite/27_io/ostream_inserter_char.cc (test06): Add test.

2000-03-14  Phil Edwards  <pme@sourceware.cygnus.com>

	* docs/17_intro/howto.html:  Add missing "TOC" entry, and new section.

	* acinclude.m4 (GLIBCPP_CHECK_CTYPE): Fixup.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

2000-03-13  scott snyder  <snyder@fnal.gov>
	    Jason Merrill  <jason@cygnus.com>

        * bits/locale_facets.h (class ctype, class ctype<char>, class
        ctype<wchar_t>): More mask fixes.
        * testsuite/22_locale/ctype.cc: Test for the problem.

2000-03-13  Benjamin Kosnik  <bkoz@cygnus.com>

	* acconfig.h: Add bits.
	* configure.in: Move AM_PROG_LIBTOOL up in file.
	Tweak cross compiling info.
	* configure: Regenerate.

	* mknumeric_limits (XCOMPILE): Echo compilation line for
	gen-num-limits.cc

	* acinclude.m4 (GLIBCPP_CHECK_CTYPE): Add aix checks.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* config/aix/ctype.cc (ctype): Tweak.
	* config/aix/bits/ctype_base.h (ctype_base): Tweak.
	* config/aix/bits/ctype_specializations.h: New file.

2000-03-10  scott snyder  <snyder@fnal.gov>

        * stl/bits/stl_vector.h (_M_assign_aux): Fix for __normal_iterator
        conversions.
        * testsuite/23_containers/vector_modifiers.cc (test01): Add a
        regression test for the problem.

2000-03-09  Benjamin Kosnik  <bkoz@fidel.cygnus.com>

	* testsuite/27_io/streambuf.cc (class testbuf): Same here.
	* bits/fpos.h: And here.
	* bits/std_ostream.h: Same here.
	* bits/std_istream.h: Same here.
	* bits/basic_ios.h: Same here.
	* bits/std_fstream.h: Same here.
	* bits/sbuf_iter.h (std): Here too.
	* bits/std_sstream.h: Make types public.

	* src/misc-inst.cc: Use size_t instead of unsigned int.
	* bits/locale_facets.tcc (_S_format): For now, cast to char. I
	suppose this should be ctype::narrow... all the ctype<wchar_t>
	stuff needs to be cleaned up.

2000-03-09  Phil Edwards  <pme@sourceware.cygnus.com>

	* docs/gentop:  Remove entire directory, finally.

2000-03-09  scott snyder  <snyder@fnal.gov>

        * bits/std_cmath.h (modf): Fix pointer overrun.
        * testsuite/26_numerics/c_math.cc (test04, main): Add a regression
        test for the problem.

2000-03-09  Phil Edwards  <pme@sourceware.cygnus.com>

	Looks like changes to the #include'd files must be followed by a
	change to the #include'ing files to take effect.  Caveat emptor.
	* docs/header.html:  New file, for server-side include.
	* docs/footer.html:  New file, for server-side include.
	* docs/documentation.html:  Change to use SSI.
	* docs/download.html:  Ditto.
	* docs/index.html:  Ditto.
	* docs/mail.html:  Ditto.
	* docs/status.html:  Ditto.
	* docs/thanks.html:  Ditto, plus minor updates.
	* docs/how.html:  Remove.

2000-03-09  Benjamin Kosnik  <bkoz@gnu.org>

	Preliminary alpha-linux support.
	* src/locale.cc (ctype<wchar_t>): Use correct types...
	* bits/locale_facets.h (ctype<char>): Add __table_type typedef.
	(ctype<wchar_t>): Same.
	* bits/locale_facets.h (ctype<wchar_t>): Have char and wchar_t
	types match for table_size (size_t).

	* config/gnu-linux/ctype.cc (ctype): Change char_type to wchar_t
	as per char specialization.
	* config/*/ctype.cc: Same.

2000-03-09  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/locale_facets.h (_Ctype<>::mask): Import from base class
	_Ctype_nois<>.  Template base classes are never examinated in
	first-phase name-lookup.

2000-03-08  Benjamin Kosnik  <bkoz@gnu.org>

	Add Solaris 2.5.1 support.
	* config/solaris/solaris2.5/bits/ctype_base.h (ctype_base): And here.
	* config/solaris/solaris2.5/ctype.cc: Fixup.
	* config/solaris/solaris2.5/bits/ctype_specializations.h: Add.
	* acinclude.m4 (GLIBCPP_CHECK_CTYPE): Add bits for solaris2.5.1.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.

	* config/default/ctype.cc (ctype): Fixup.

2000-03-07  Benjamin Kosnik  <bkoz@blues.cygnus.com>

	* testsuite/27_io/filebuf.cc: Activate init code from yesterday...
	* testsuite/27_io/ostream_inserter_arith.cc (testcases): Fix for
	non-wchar_t case.

2000-03-07  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/cpp_type_traits.h: Expand on this file purpose.

2000-03-06  Benjamin Kosnik  <bkoz@gnu.org>

	* bits/locale_facets.h (ctype<char>): Remove static members, and
	re-work initialization code.
	(ctype<wchar_t>): Same.
	Move _S_touppper to _M_toupper and initialize in ctor.
	Move _S_tolower  to _M_tolower and initialize in ctor.
	Move _S_table to _M_ctable and initialize in ctor.
	* bits/locale_facets.h (std): And here.
	* src/locale.cc (std): Tweak.
	* config/gnu-linux/ctype.cc: Change initialization here.
	* config/newlib/ctype.cc: And here.
	* config/solaris/solaris2.7/ctype.cc: And here.
	* config/solaris/solaris2.6/ctype.cc: And here.

	* bits/localefwd.h: Tweak.
	* bits/std_streambuf.h: Tweak formatting.

	* testsuite/27_io/filebuf.cc: Remove BUFSIZ dependencies.

2000-03-05  Chip Salzenberg  <chip@valinux.com>

        * src/misc-inst.cc (basic_iostream<>):  Instantiate.

2000-03-02  Phil Edwards  <pme@sourceware.cygnus.com>
            Kevin Atkinson  <kevinatk@home.com>

        Initial grab of SGI's strstream implementation with minor
        modifications.
        * src/strstream.cc:  New file.
        * std/strstream:  New file.
        * stl/bits/std_strstream.h:  New file.
        * bits/std_streambuf.h:  Add public access.
        * src/Makefile.am:  Add strstream sources to list of dependencies.
        * src/Makefile.in:  Regenerate.

2000-03-03 2000  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/valarray_meta.h: Fix typo.

2000-03-02  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
	    Chip Salzenberg  <chip@valinux.com>
	    Petter Urkedal  <petter@matfys.lth.se>

	* src/Makefile.am (myinstallheaders): Hack to avoid
        `for i in ; do'.
	* src/Makefile.in: Regenerate.

2000-03-02  Chip Salzenberg  <chip@valinux.com>

        * libio/Makefile.an, math/Makefile.an, src/Makefile.am
        (LINK): Put quotes around "$(CC)" for libtool link mode,
        so libtool will use "-B" options during GCC bootstrap.
        * */Makefile.in: Regenerate.

2000-03-02  Petter Urkedal  <petter@matfys.lth.se>

        * config/c_io_libio.h: Enclose it all in ::std.
        * bits/basic_string.h (basic_string<>): Make types and
        `npos' public.
        * mkc++config: Truncate output file before writing.

2000-03-01  Benjamin Kosnik  <bkoz@gnu.org>

	* math/cabsf.c (__mycabsf): Rename to cabsf.
	* math/cabs.c (__mycabs): Rename to cabs.

2000-02-29  LLeweLLyn Reese  <llewelly@198.dsl.xmission.com>

       * bits/basic_string.h: Move declarations of __out_of_range(),
       __length_error() and accompanying macros ...
       * bits/exception_support.h: here. (Newly created file).
       * bits/basic_string.h: #include <bits/exception_support.h>
       * stl/bits/stl_vector.h: #include <bits/exception_support.h>
       * src/Makefile.am (headers): Add.
       * src/Makefile.in: Regenerate.

2000-02-29  Benjamin Kosnik  <bkoz@cygnus.com>

	* bits/cpp_type_traits.h: Rename structs so they don't clash with
	type_traits.h.
	* bits/valarray_array.h: Synch. Fix typos.

	* libio/Makefile.am: Change to only compile source files that
	config/c_io_libio.cc actually needs.
	* libio/Makefile.in: Regnerate.
	* libio/PlotFile.hes SFile.h builtinbuf.h editbuf.h floatconv.c
	floatio.h fstream.h indstream.h iofclose.c iofdopen.c iofeof.c
	ioferror.c iofflush.c iofgetpos.c iofgets.c iofopen.c iofprintf.c
	iofputs.c iofread.c iofscanf.c iofsetpos.c ioftell.c iofwrite.c
	iogetc.c iogetdelim.c iogetline.c iogets.c ioignore.c iomanip.h
	iopadn.c ioperror.c iopopen.c ioprims.c ioprintf.c ioputc.c
	ioputs.c ioscanf.c ioseekoff.c ioseekpos.c iosetbuffer.c
	iosetvbuf.c iosprintf.c iosscanf.c iostream.h iostrerror.c
	ioungetc.c iovfprintf.c iovfscanf.c iovsprintf.c iovsscanf.c
	istream.h list.out ostream.h outfloat.c parsestream.h peekc.c
	pfstream.h procbuf.h stdiostream.h stream.h streambuf.h strfile.h
	strops.c strstream.h: Delete.

	* bits/basic_file.h: Stub out or delete unused bits in this
	interface.
	(filepos_beg): Remove.
	(filepos_cur): Remove.
	(filepos_valid): Remove.
	* config/c_io_libio.cc: Resynch with the changes to basic_file.

2000-02-29  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/cpp_type_traits.h: Correct typo.

2000-02-29  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/cpp_type_traits.h: New file.

	* bits/valarray_array.h: Tweak.  #include <bits/cpp_type_traits.h>
	Improve array construction.
	(_Array_default_ctor): New dispatcher class.
	(__valarray_default_construct): New function.
	(_Array_copy_ctor): New dispatcher class.
	(__valarray_copy_construct): New function.
	(_Array<>::free_data): Remove.

	* src/Makefile.am (headers): Add cpp_type_traits.h
	* src/Makefile.in: Regenerate.

2000-02-28  Benjamin Kosnik  <bkoz@cygnus.com>

	Prune libio directory to match files in libio/Makefile.
	* libio/PlotFile.cc,indstream.cc, isgetsb.cc, sbform.cc,
	stream.cc, SFile.cc, ioassign.cc, isscan.cc, sbgetline.cc,
	streambuf.cc, builtinbuf.cc, ioextend.cc, osform.cc, sbscan.cc,
	strstream.cc, editbuf.cc, iomanip.cc, parsestream.cc,
	stdiostream.cc, filebuf.cc, iostream.cc, pfstream.cc,
	stdstrbufs.cc, fstream.cc, isgetline.cc, procbuf.cc,
	stdstreams.cc: Remove.
	* libio/floatio.h, iolibio.h, iostdio.h, iostreamP.h: Remove.
	* libio/iofflush_u.c: Remove.

	* libio/dbz: Remove.
	* libio/include: Remove.
	* libio/stdio: Remove.
	* libio/tests: Remove.
	* libio/testsuite: Remove.

	* config/c_io_libio.cc: Add fcntl.h include for Solaris.

	* acinclude.m4 (GLIBCPP_ENABLE_CSTDIO): Add bits.
	* configure.in: Replace 'grep -e' with 'grep' for Solaris.
	* configure: Regenerate.

2000-02-25  Benjamin Kosnik  <bkoz@gnu.org>

	Abstract out the underlying "C" io bits.
	* bits/std_new.h: Remove <stl_config> include, as well as <cstddef>.
	* stl/bits/stl_string_fwd.h: Remove <stddef> include.
	* bits/std_cwchar.h: Wrap with _GLIBCPP_USE_WCHAR_T guards. Don't
	include <cstddef>.
	* stl/bits/stl_config.h: Don't include _G_config.h.

	* bits/basic_file.h: Allow for non-inheritance based __basic_files.
	* config/c_io_libio.h (_GLIBCPP_BASIC_FILE_INHERITANCE): Define.
	* config/c_io_libio.cc: Tweak.

	* src/Makefile.am (TOPLEVEL_INCLUDES): Add includedir.
	* src/Makefile.in: Regenerate.
	* Makefile.am (AM_MAKEFLAGS): Define includedir so that
	prefix/include files will be picked up.
	* Makefile.in: Regenerate.
	* math/Makefile.am (TOPLEVEL_INCLUDES): And here.
	* libio/Makefile.am (TOPLEVEL_INCLUDES): And here.

	* bits/std_ios.h: Include <bits/c++io.h> instead of libio.
	* bits/fpos.h: And here.
	* bits/basic_file.h (get_fileno): Move definition from ...
	* src/basic_file.cc (std): To here.
	* bits/fpos.h: Move types for streamoff, streampos to..
	* bits/basic_file.h: Move __c_file_type and fpos typedefs to...
	* config/c_io_libio.h: ...here.
	(_GLIBCPP_[BOOLALPHA, HEX, DEC, FIXED, INTERNAL, LEFT, OCT, RIGHT,
	SCIENTIFIC, SHOWBASE, SHOWPOINT, SHOWPOS, SKIPWS, UNITBUF,
	UPPERCASE, ADJUSTFIELD, BASEFIELD, FLOATFIELD, BADBIT, EOFBIT,
	FAILBIT, GOODBIT, APP, ATE, BINARY, IN, OUT, TRUNC): New macros to
	abstract out bits in ios_base.
	* bits/ios_base.h: Re-macrofy.
	* src/basic_file.cc : Rename, move to
	* config/c_io_libio.cc: Here.
	* config/c_io_libio.h: New file. Include libio.
	* bits/c++config.h: Don't define _GLIBCPP_USE_LIBIO.
	* configure.in (blddir): Add enabling bits for GLIBCPP_ENABLE_CSTDIO.
	* configure: Regenerate.
	* src/Makefile.am (sources): Take out basic_file.cc and add c++io.cc.
	(generated_headers): Add c++io.h
	* acinclude.m4 (GLIBCPP_ENABLE_CSTDIO): New function to select
	underlying "C" io library.
	* acinclude.m4 (GLIBCPP_CHECK_LIBIO): Roll functionality into
	GLIBCPP_ENABLE_CSTDIO.

	* configure.in: Add configure bits for cross compiling non-newlib
	targets. .
	GLIBCPP_CHECK_COMPILER_VERSION: Take out this test for this
	target, as we assume g++ support is not the limiting factor.
	GLIBCPP_CHECK_LIBIO: Same, know we don't need libio.
	* configure: Regenerate.

2000-02-22  Benjamin Kosnik  <bkoz@cygnus.com>

	* Makefile.am (INTERFACE): Define.
	* Makefile.in: Regenerate.
	* libio/ChangeLog: Add entry.

2000-02-21  Benjamin Kosnik  <bkoz@cygnus.com>

	* docs/install.html: Update install directions.

	* docs/status.html: Fix sidebar to be consistent.
	* docs/thanks.html: Same.
	* docs/links.html: Same.
	* docs/mail.html: Same.
	* docs/download.html: Same.

	* testsuite/27_io/filebuf.cc: Change BUFSIZ to buffer_size, and
	kill the macro BUFSIZ. I think the solaris fails lie elsewhere
	however, in the ctype_char_members.cc fail (for instance.)
	* testsuite/17_intro/headers.cc: Remove extraneous fails for hosts
	that do not have wchar_t enabled.
	* testsuite/27_io/ostream_inserter_arith.cc (struct _TestCase):
	Same here.
	* testsuite/27_io/iostream_objects.cc: And here.

	* libio/gen-params (CONFIG_NM): Specifically add in nm as the
	default CONFIG_NM.

2000-02-18  Benjamin Kosnik  <bkoz@haight.constant.com>
            Tom Tromey  <tromey@cygnus.com>

	* configure.in: Manually add MULTISUBDIR.
	* configure: Regenerate.
	* src/Makefile.am (MULTISUBDIR): Add the lesser evil of Tom's two
	"Eww" hacks to get multilib installs working correctly.
	($(headers): Test for MULTISUBDIR before installing.
	* Makefile.am (AM_MAKEFLAGS): Don't define MULTISUBDIR, instead
	have configure hack it in.
	* Makefile.in: Regenerate.
	* acinclude.m4 (GLIBCPP_CXXFLAGS): Tweak wording.
	Add enabling bits for native Cygwin ctypes, and other newlib-based
	Oses.

2000-02-17  Benjamin Kosnik  <bkoz@decepticon.cygnus.com>

	* mkc++config (OUT_H): Remove EOF in cygwin.
	* acinclude.m4 (LIBS): Tweaks to allow cygwin to configure.

        Tom Tromey  <tromey@cygnus.com>
	* src/Makefile.am: Tweaks for installing multilibs.

2000-02-17  Benjamin Kosnik  <bkoz@cygnus.com>

	* src/Makefile.am:
	(toolexeclib_LTLIBRARIES): Use this instead of lib_LTLIBRARIES.
	Add USE_LIBDIR bits here, not...
	* src/Makefile.in: Regenerate.
	* Makefile.am: ...here.
	* Makefile.in: Regenerate.

2000-02-17  Benjamin Kosnik  <bkoz@gnu.org>

	* acinclude.m4 (LIBS): Fix typos.
	* configure.in: _GLIBCPP_BUGGY_FLOAT_COMPLEX,
	_GLIBCPP_BUGGY_COMPLEX for crosses.
	* src/Makefile.am (std_headers): Add libio.h as install include,
	as with _G_config.h
	* src/Makefile.in: Regenerate.

	* mkcheck.in: Add bits to set CXX to cross compiler.

	* src/complex_io.cc: Tweak.
	* configure.in: _GLIBCPP_BUGGY_COMPLEX for crosses.
	* configure: Regenerate.

	* config/newlib/ctype.cc: Tweaks.
	* config/newlib/bits/ctype_base.h (ctype_base): Set mask to char,
	not const char.
	* src/complex_io.cc (operator>>(istream, complex): Define out if
	BUGGY_COMPLEX.

2000-02-16  Benjamin Kosnik  <bkoz@cygnus.com>

	* config/newlib/bits/ctype_base.h: Correct _S_table.

	Reconfigure ctype support for "C" libraries that don't use arrays.
	* testsuite/22_locale/ctype_char_members.cc: New file. Test for
	basic ctype<char> functionality.
	* src/locale.cc: Move host-specific ctype functions that are not
	inlines to config/*/ctype.cc files.
	(ctype<char>::do_tolower): For instance.
	(ctype<char>::do_toupper): For instance.
	(ctype<wchar_t>::do_tolower): For instance.
	(ctype<wchar_t>::do_toupper): For instance.
	* config/gnu-linux/ctype.cc: Modify.
	* config/default/ctype.cc: Modify.
	* config/newlib/ctype.cc: Modify.
	* config/solaris/solaris2.6/ctype.cc: Modify.
	* config/solaris/solaris2.7/ctype.cc: Modify.

	* bits/locale_facets.h (ctype<char>::is): Mark inline, move
	out-of-line.
	(ctype<char>::scan_is): Here too.
	(ctype<char>::scan_not): Here too.
	Move out of line defs to config/*/bits/ctype_specializations.h.
	* config/gnu-linux/bits/ctype_specializations.h: ...here. New file.
	* config/default/bits/ctype_specializations.h: ...here. New file.
	* config/newlib/bits/ctype_specializations.h: ...here. New file.
	* config/solaris/solaris2.6/bits/ctype_specializations.h: New file.
	* config/solaris/solaris2.7/bits/ctype_specializations.h: New file.
	* src/Makefile.am (headers): Add ctype_specializations.h.
	* src/Makefile.in: Regenerate.

	Aaron Weiss <weiss@clearway.com>
	* Makefile.am (AM_MAKEFLAGS): Add NM_FOR_BUILD, NM_FOR_TARGET, and
	CONFIG_NM for Solaris builds.
	* Makefile.in: Regenerate.

	* src/locale.cc: Tweak formatting.

2000-02-15  Benjamin Kosnik  <bkoz@cygnus.com>

	Jim Parsons  <parsons@clearway.com>
	* testsuite/27_io/istream_unformatted.cc (test06): Add test.
	* bits/istream.tcc (read): Set failbit if !good(). Don't increment
	gcount if eof.
	(readsome): Same.

	Michel Decima  <michel.decima@cnet.francetelecom.fr>
	* testsuite/27_io/streambuf.cc: Add test.
	* bits/streambuf.tcc (xsgetn): Don't test for valid mode.
	(xsputn): Same.

	* src/Makefile.am (AM_CXXFLAGS): Pass down AC_CXXFLAGS,
	OPTIMIZE_CXXFLAGS, etc. So --enable-debug and --enable-namespaces
	will work correctly, for instance.
	* src/Makefile.in: Regenerate.

	* bits/locale_facets.h: Fix merge error.
	(num_put::put(unsigned long long): And here.
	* mknumeric_limits (trait_name): Same.

2000-02-15  Chip Salzenberg  <chip@valinux.com>

        Support 'configure --enable-long-long'.
        * bits/c++config.h (_GLIBCPP_USE_LONG_LONG): Remove.
        * stl/bits/stl_config.h (__STL_LONG_LONG): Remove '#if 0'.
        * acconfig.h (_GLIBCPP_USE_LONG_LONG): Add.  Default to undef.
        * acinclude.m4 (GLIBCPP_ENABLE_LONG_LONG): Define flag macro.
        * configure.in (GLIBCPP_ENABLE_LONG_LONG): Use it.

	* aclocal.m4: Regenerate.
        * config.h.in: Regenerate.
        * configure: Regenerate.

2000-02-15  Chip Salzenberg  <chip@valinux.com>

        Improve (complete?) 'long long' support.
        * mknumeric_limits: Call $CXX with $CPPFLAGS.  Define statics
        for {,unsigned} long long if the limits header declares them.
        * src/gen-num-limits.cc: Include <bits/c++config.h> early.
        (__USE_GNU, _GNU_SOURCE): Define if _GLIBC_USE_LONG_LONG.
        (long long, unsigned long long): Gen limits if _GLIBC_USE_LONG_LONG.
        * bits/locale_facets.h (num_get<>::get(..., long long &)): Define.
        (num_put<>::put(..., long long)): Likewise.
        (num_put<>::put(..., unsigned long long)): Likewise.
        * bits/locale_facets.tcc (_S_format): Rename from _S_format_long.
        Templatize last parameter to support 'long long'.
        (num_put<>::put(...)): Call _S_format with new name.
        (num_put<>::put(..., long long)): Define.
        (num_put<>::put(..., unsigned long long)): Likewise.
        * src/locale-inst.cc (_S_format): Instantiate under new name.

2000-02-15  Petter Urkedal  <petter@matfys.lth.se>

        * src/complex.cc (operator<<, operator>>): Moved from here...
        * src/complex_io.cc: ...to new file.
        (operator>>): Stub replaced by the real thing.
        * src/Makefile.am (sources): Inserted complex_io.cc.
	* src/Makefile.in: Regenerate.
        * testsuite/26_numerics/complex_inserters_extractors.cc: Check it.

2000-02-14  Benjamin Kosnik  <bkoz@gnu.org>

	Add in ctype information for newlib "C" libraries.
	* config/newlib: New directory
 	* config/newlib/bits/ctype_base.h: New file.
	* config/newlib/ctype.cc: New file.

	* ctype/config/linux/*: Rename, move to...
	* ctype/config/gnu-linux/*: Here.

	Finish off multilib work.
	* configure.in: Don't set CXX if not Canadian cross.
	* configure: Regenerate.
	* acinclude.m4 (GLIBCPP_CHECK_LIBIO): Tweak messages.
	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.

	* install-sh: Remove, as AC_CONFIG_AUX_DIR(..) picks this out of
	the top-level gcc directory now.
	* mkinstalldirs: Remove.
	* missing: Remove
	* ltconfig: Remove.
	* ltmain.sh: Remove.
	* config.guess: Remove.
	* config.sub: Remove.

2000-02-13  Benjamin Kosnik  <bkoz@cygnus.com>

	* configure.in (glibcpp_basedir): Add glibcpp_basedir.
	* Makefile.am: Move mutlilib stuff to src/Makefile.am.
	* Makefile.in: Regenerate.
	* src/Makefile.am: Add multilib bits.
	* src/Makefile.in: Regenerate.

2000-02-12  Benjamin Kosnik  <bkoz@cygnus.com>

	* configure.in: Clean, add some multilib support.
	* configure: Regenerate.
	* configure.host: New file.

	* acinclude.m4: GLIBCPP_CHECK_LIBIO. Take bits from configure.in and
	roll a new function, checks for presence of libio.
	GLIBCPP_CHECK_COMPILER_VERSION: Same.
	GLIBCPP_CHECK_BUILTIN_MATH_SUPPORT: Same.
        GLIBCPP_CHECK_MATH_SUPPORT: Same.
	GLIBCPP_CHECK_WCHAR_T_SUPPORT: Same.
	GLIBCPP_CHECK_LIBIO: Same.
	GLIBCPP_CHECK_CTYPE: Same.
	* aclocal.m4: Regenerate.
	* config.h.in: Regenerate.

	* Makefile.am: Tweaks.
	* Makefile.in: Regenerate.

2000-02-11  Benjamin Kosnik  <bkoz@cygnus.com>

	* configure.in: Make outputing the libio/Makefile
	conditional. Haha, yeah right. Anyway, we instead do this thing
	where if libio is found, then we build a null library, as there is
	no point in duplicating the found libio.
	* Makefile.am: Tweak.
	* Makefile: Regenerate.
	* libio/Makefile.am: Add _G_config.h stuff. Now cross compilers
	are happy happy happy.
	* libio/Makefile.am: Regenerate.
	* libio/gen-params: New file.
	* src/Makefile.am: Make libio.la non-conditional, as it is now a
	null library if it's not needed. At least we are being consistent,
	if not as elegant as we could be.
	* src/Makefile: Regenerate.

2000-02-10  Benjamin Kosnik  <bkoz@gnu.org>

	* Makefile.am (SUBDIRS): Add libio again.
	* Makefile.in: Regenerate.
	* configure.in (BUILD_LIBIO_INCLUDE): And here.
	(AC_OUTPUT): Generate libio/Makefile again.
	* configure: Regnerate.
	* src/Makefile.am (libstdc___la_LIBADD): Change path so that
	libio.la is referring back to the libio subdir again.
	(LIBIO_INCLUDES): And here.
	* src/Makefile.in: Regenerate.

2000-02-09  Benjamin Kosnik  <bkoz@decepticon.cygnus.com>

	* math/complex-stub.h: Missed one. Change __mycabs* to cabs*.

2000-02-09  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/valarray_array.h (<bits/std_new.h>): #include.
	(__valarray_get_memory): New function.
	(__valarray_release_memory): Likewise.
	(__valarray_default_construct): New functions.
	(__valarray_fill_construct): New function.
	(__valarray_copy_construct): New funstions.
	(__valarray_destroy_elements): New function.

	* bits/valarray_array.tcc (__valarray_copy_construct): New
	functions.

	* bits/std_valarray.h (valarray<>::valarray): Use
	__valarray_get_memory and __valarray_fill_construct,
	__valarray_copy_construct, __valarray_default_construct to
	properly construct valarrays.
	(valarray<>::~valarray): Use __valarray_destroy_elements to
	destroy elements and __valarray_release_memory to return memory.
	(valarray<>::shift): Tweak.
	(valarray<>::cshift): Likewise.
	(valarray<>::resize): Robustify.

2000-02-09  Benjamin Kosnik  <bkoz@cygnus.com>

	* mknumeric_limits (XCOMPILE): Add support for cross compiling.
	* bits/limits_generic.h: New file, defaults.
	* src/limits_generic.cc: New file, defaults.
	* configure.in (LIBS): Run mknumeric_limits at configure time.
	* acconfig.h: Remove PACKAGE VERSION HAVE_COMPLEX
	HAVE_LC_MESSAGES, tidy, clean, etc.
	* src/Makefile.am (geberated_sources): Remove.

	* bits/fpos.h: Use _GLIBCPP_USE_LIBIO guards for libio typenames
	(_IO_off_t, _IO_ssize_t)

	* src/complex.cc: Use glibc's <complex.h> if
	possible. . . apparently this was not being done before. Include
	tweaks.
	(abs): Enable cabs if it's around, instead of mycabs.
	* src/complexf.cc (FCT): Add global scope to match complex.cc.
	* src/complexl.cc (FCT): Same.
	* math/Makefile.am (EXTRA_LONG_DOUBLE_yes): Change mycabsl to cabsl.
	(libmath_la_SOURCES): And here.
	* math/(mycabs.c, mycabsf.c, mycabsl.c): Move to. . .
	* math/(cabs.c, cabsf.c, cabsl.c): . . . Here.
	* math/complex-stub.h: Move c_log declarations into. . .
	* math/mathconf.h: Here. This is because glibc's <complex.h>
	declares cclog, not c_log. The case of the dueling standards. . .
	* math/mathconf.h: Add _GLIBCPP_HAVE_* to macros.
	* math/Makefile.am: Change.
	* math/nan.c (nan): Change signature.
	* math/mathconf.h (NAN): Same.
	* math/complex-stub.h (nan): And here.

	* Makefile.am (rebuild-stamp): Remove libio and libio
	dependencies.  Plan to take out libio subdir and just merge with
	libio in top level gcc directory. Of course, this assumes there is
	a libio in the top level directory (ie ../src_dir). This will
	probably change the way this library is configured by default.
	* libio/*: Remove.

2000-02-09  Chip Salzenberg  <chip@valinux.com>

        * localefwd.h (locale): Make public: facet, id, category.

2000-02-09  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* testsuite/26_numerics/buggy_complex.cc: Fix Origin:.

	* acinclude.m4: Patch only once!

2000-02-09  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* testsuite/26_numerics/buggy_complex.cc: New file.

2000-02-05  Petter Urkedal  <petter@matfys.lth.se>

        * acinclude.m4: New GLIBCPP_CHECK_COMPLEX_SUPPORT macro. Based
	on the 1999-11-21 entries by Mumit Khan.
        * configure.in: Use.
        * acconfig.h: New _GLIBCPP_BUGGY_COMPLEX macro.
        * bits/std_complex.h: Use.

2000-02-04  Philip Martin <pm@corris.dircon.co.uk>

       * stl/bits/stl_algobase.h: Add traits based dispatch for
       __normal_iterator in the copy_backward()algorithm
       * stl/bits/stl_vector.h: Reduce use of __normal_iterator
       base() function.

2000-02-04  Mumit Khan  <khan@xraylith.wisc.edu>

	* src/gen-num-limits.cc (signal_handler): Work around signal
	handling problem on Cygwin.
	Thanks to Chris Faylor <cgf@cygnus.com>.

2000-02-03  Benjamin Kosnik  <bkoz@cygnus.com>

	* configure.in: Add (preliminary) support for cross compiles and
	multilibs.
	Remove AC_C_BIGENDIAN tests. Why is this necessary? Cross
	compilation freaks on this.
	* configure: Regenerate.
	* src/Makefile.am: Add support for cross compiles.
	* src/Makefile: Regenerate.
	* Makefile.am: Add support for cross compiles.
	* Makefile.in: Regenerate.

2000-02-02  Benjamin Kosnik  <bkoz@cygnus.com>

	* configure.in (LIBS): Remove unused subdirs.
	* configure: Regenerate.
	* Makefile.am (SUBDIRS): And here.
	* Makefile.in: Regenerate.
	* src/Makefile.am (sources): And here.
	* src/Makefile.in: Regenerate.
	* string/*: Remove.
	* amm1/*: Remove.
	* generic/*: Remove.
	* glibc/*: Remove.
	* mkcheck.in (INC_PATH): Include $BUILD_DIR before any source dirs.

	* libtool: Update to libtool-1.3.4.
	* ltconfig: Same
	* ltmain.sh: Same
	* config.sub: Same.
	* config.guess: Same.

2000-02-02  Benjamin Kosnik  <bkoz@cygnus.com>
	    Alexandre Petit-Bianco  <apbianco@cygnus.com>

	* mkc++config: New file. Put autoconf macros into _GLIBCPP_
	namespace instead of polluting global namespace with duplicate
	autoconf output.
	* configure.in (AC_OUTPUT): Don't need to generate bits/config.h
	here anymore. . .
	(AC_OUTPUT_COMMANDS): Make it here.
	* configure: Regenerate.
	* bits/c++config.h.in (_CPP_CPPCONFIG): Change. Tweak. Remove
	endif, as now we will add it manually.
	Move to this file. . .
	* bits/c++config.h: New file. Same as old c++config.h.in except
	the ending macro guard is now appended manually.

	* bits/locale_facets.tcc: Change HAVE_* macros to _GLIBCPP_HAVE_*.
	* bits/std_cmath.h: Same here.
	* bits/std_cwchar.h: And here.
	* src/locale.cc: And here.
	* src/complexl.cc: And here.
	* math/mathconf.h: Change to include "config.h" instead of
	bits/c++config.h.

2000-02-01  Benjamin Kosnik  <bkoz@gnu.org>

	* configure.in: Add support for threads. Try a model closer to
	libjava, as hopefully if the thread bits are added carefully
	enough, the source code will not have gross hacks. Besides, the
	libstdc++-v2 model could be easily emulated without the necessity
	of linking files in (as currently done)--all that needs to be done
	is AC_DEFINE(-D_PTHREADS) etc. However, let's try something
	new. . . and see if we arrive at a more elegant solution.
	* configure: Regenerated.
	* config/threads-no.h: New file.
	* config/threads-posix.h: New file.
	* src/Makefile.am (myinstallheaders): Install c++threads.h.
	* src/Makefile.in: Regenerated.

2000-01-31  Benjamin Kosnik  <bkoz@gnu.org>

	META-QUESTION: Can we just make a "header.html" file and a
	"footer.html" and just include them in all the doc sub-pages. The
	duplication of the header info is kind of gross, and weak
	considering that if you change order or layout then all this stuff
	has to be changed in all the sub-files.

	* docs/17_intro/contribute.html: Take out duplicate file info.
	* README: Should just contain a link to the docs/index.html
	page. Duplicate information removed.
	* docs/faq/index.html: Remove indexes into HOWTOS.
	* docs/17_intro/howto.html: Make intro and docs part more
	centralized. Move intro stuff to documentation.html.
	* docs/how.html: Tweak. Does this file need to exist? What calls it?
	* docs/README.html: Move documentation files to
	documentation.html. Should this file be renamed
	"config_and_install.html" as that is what is apparently covered
	here. . .
	* docs/install.html: Yes. New file, moved and renamed README.html.
	* docs/documentation.html: New file. This is the index file for
	the documentation.
	* docs/index.html: Edit sidebar order. Insert new link to new
	documentation spine, documentation.html.

2000-01-31  Scott Snyder  <snyder@fnal.gov>

        * bits/istream.tcc (operator>>(istream&, string&)): Set failbit if
        we don't extract any characters.
	* testsuite/21_strings/inserters_extractors.cc (main): New tests.

2000-01-31  Anders Widell  <awl@hem.passagen.se>

        * stl/bits/std_bitset.h (_M_do_left_shift): Handle case when shift
        step is a multiple of the word size.
        (_M_do_right_shift): Same.
	* testsuite/23_containers/bitset_shift.cc: New file.

2000-01-31  Nathan Myers  <ncm@zembu.com>

	* README (Documentation): Add path info, fix typos.

2000-01-26  Benjamin Kosnik  <bkoz@redhat.com>

	* bits/locale_facets.tcc (num_get::_M_extract): Add the freaking
	crazy group checking for numpunct, for real this time. At some
	point, the local variable __grp should probably get replaced a
	char array, or something a bit more lightweight.
	(num_get::do_get(bool)): Simplify. Don't set bool reference to
	parsed value unless err isn't failbit.
	(num_get::do_get(*)): Same, make consistent.

        Nathan Myers  <ncm@zembu.com>
	Jim Parsons  <parsons@clearway.com>
	* testsuite/27_io/istream_extractor_arith.cc (test08): Add
	more grouping tests, tweak, scold, wine.

2000-01-24  Benjamin Kosnik  <bkoz@gnu.org>

	* testsuite/27_io/istream_extractor_arith.cc (test07): Add
	grouping tests.
	* bits/locale_facets.tcc (num_get::_M_extract): Change to fix
	grouping bugs. Only allow thousands_sep if _M_use_groupings is
	true.

        via <llewelly@198.dsl.xmission.com>
	* stl/bits/stl_vector.h (vector::_M_range_check): Throw
	out_of_range instead of range_error.

2000-01-17  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>

	* bits/std_iomanip.h (setw): Fix typo.

2000-01-14  Benjamin Kosnik  <bkoz@gnu.org>

	* testsuite/27_io/istream_extractor_arith.cc: Fix.
	* bits/locale_facets.tcc (do_get(...void)): Change to strtoul.
	* testsuite/27_io/istream_unformatted.cc (test04): Tweak.

2000-01-14  Phil Edwards  <pme@sourceware.cygnus.com>

	* docs/README.html:  Reformat, more installation instructions.
	* docs/gccrebuild.html:  New file.
	* docs/faq/index.html:  Update for new testsuite output filenames.
	* docs/faq/index.txt:  Regenerate.

2000-01-14  Phil Edwards  <pme@sourceware.cygnus.com>

	* Makefile.am (rebuild-stamp, all-local):  New targets.
	* Makefile.in:  Regenerated.
	* acinclude.m4:  New macro, GLIBCPP_ENABLE_RELIBGCC.
	* aclocal.m4:  Regenerated.
	* configure.in:  Call new macro.  Also do some sanity checks
	  for combinations of --enable's that may not make sense.
	* configure:  Regenerated.

2000-01-13  Benjamin Kosnik  <bkoz@cygnus.com>

	* testsuite/27_io/istream_extractor_arith.cc: Add checks for void*.
	* bits/locale_facets.tcc (do_get::(...void)): Set fmtflags
	correctly for hex-formatted input.

	* testsuite/27_io/istream_manip.cc (test01): Fix, as per setting
	eofbit instead of eofbit | failbit.
	* testsuite/27_io/istream_unformatted.cc (test04): Fix, as
	ifstreams now are opened or'd with ios_base::in (as is correct).
	* bits/fstream.tcc (filebuf::seekoff): Simplify.
	* testsuite/27_io/ios_base_members_static.cc (test01): Fix thinko.

2000-01-12  Benjamin Kosnik  <bkoz@gnu.org>

	* bits/std_fstream.h: Add ios_base as a friend to basic_filebuf.
	* bits/basic_file.h (basic_file::filepos_cur): Remove incorrect
	(misleading) code.
	(__basic_file::filepos_valid): Same.
	(__basic_file::filepos_beg): Same.
	(__baseic_file::get_fileno): New function.
	* bits/ios_base.h (ios_base::sync_with_stdio): Implement, including
	feedback from LWG 49.
	* src/ios.cc: Move definition here.
	* testsuite/27_io/ios_base_members_static.cc (test01): Add tests.

	* bits/std_sstream.h (_M_really_sync): Simplify argument list. Set
	output part of internal buffer based on string size, so that
	_M_out_end is set consistently with filebufs. Correct comments.
	* bits/sstream.tcc (stringbuf::overflow): Update here too.
	* testsuite/27_io/stringbuf.cc: Changes.

2000-01-11  Benjamin Kosnik  <bkoz@gnu.org>

	* bits/sstream.tcc (seekoff): Set based on end of written buffer,
	not buffer size.
	* testsuite/27_io/stringbuf.cc: Add tests for seekoff(end).

	* bits/std_fstream.h (ifstream::open): Add ios_base::in to openmode.
	(ofstream::open): Add ios_base::out to openmode.

	* bits/locale_facets.tcc (_M_extract): Have consistency between
	istream::sentry and extractors, where failbit | eofbit is
	set. Don't change this, but instead change. . (do some formatting
	tweaks.)
	* bits/istream.tcc (istream::sentry): Only set eofbit.

2000-01-10  Benjamin Kosnik  <bkoz@gnu.org>

	* testsuite/27_io/istringstream_members.cc: New file.

2000-01-09  Benjamin Kosnik  <bkoz@gnu.org>

	* bits/istream.tcc (istream::sentry): Flush.

	* configure.in (AC_OUTPUT_COMMANDS): Simplify.
	* configure: Regenerate.
	* src/Makefile.am (generated_headers): Remove bits/c++config.h so
	that make clean will not delete it.
	* src/Makefile: Regenerate.

2000-01-07  Phil Edwards  <pme@sourceware.cygnus.com>

	* mkcheck.in:  Use host-specific invocation of size(1);
	  GNU binutils isn't necessarily there (more's the pity).

2000-01-06  Benjamin Kosnik  <bkoz@cygnus.com>

	* configure.in (LIBS): Better tests for solaris2.6.
	* configure: Regenerate.

         <vakatov@ncbi.nlm.nih.gov>
	* bits/std_sstream.h: As per libstdc++20.

2000-01-06  Benjamin Kosnik  <bkoz@gnu.org>

	Break out configuration on solaris.
	* configure.in (ctype_solaris): Add in bits for solaris2.6 and 2.7.
	* config/solaris/ctype.cc: Delete and move to proper version.
	* config/solaris/bits: Same.
	* config/solaris/solaris2.5: Add this directory, with subdir bits
	and file ctype.cc. Probably doesn't work.
	* config/solaris/solaris2.6: Same.
	* config/solaris/solaris2.7: Same, as per specs via Phil Edwards.

	* Makefile.am: Change paths to mkcheck.
	* Makefile: Regenerate.
	* configure.in (AC_OUTPUT_COMMANDS): Build mkcheck here.
	* configure: Regenerate.
	* src/Makefile.am (generated_headers): Add bits/c++config.h.

	* mkcheck: Now autogenerated by configure and renamed. . .
	* mkcheck.in (INC_PATH): Add glue for ctype_include_dir.
	Have longer-style dates.
        Raja R Harinath  <harinath@cs.umn.edu>
	* mkcheck: Change path to #!/usr/clocal/bin/bash.

	* docs/README.html: Correct links, maybe. FAQ, install notes, and
	general documentation need to be organized around each other, not
	fight against each other. . .

2000-01-04  Phil Edwards  <pme@sourceware.cygnus.com>
            Nicolai Josuttis <nicolai.josuttis@braunschweig.netsurf.de>

	* README:  Add a note referring to README.html.
	* docs/README.html:  New file from Nicolai.
	* docs/faq/index.html:  Move "how to get a copy" to here.
	* docs/gentop/footchunk.html:  Update.
	* docs/gentop/headchunk.html:  New links according to
	  bkoz's idea for "How to..." stuff.
	* docs/gentop/thanks:  Actually put people here.
	* docs/download.html:  Regenerated.
	* docs/index.html, docs/links.html, docs/mail.html,
	  docs/status.html, docs/thanks.html, docs/faq/index.txt:  Ditto.
	* docs/how.html:  Ditto.  (This file should go away soon.)

Copyright (C) 2000 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
