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.)

