diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 17bb717bdb29d5023c83c776add7abc5a2558ab5..1a121eeda5899190f10acfc37b30771245044ed1 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,26 @@
+2001-03-28  Benjamin Kosnik  <bkoz@redhat.com>
+
+	* mkcheck.in (LIBTOOL): Don't construct -B argument here...
+	* tests_flags.in (CXX): Construct here.
+	(static_fail): Don't remove compile.out. Format with spaces.
+	(INCLUDES): Deal with xcompiling.
+	* configure.in (xcompiling): Substitute.
+	* testsuite/Makefile.am: Snake libjava configury.
+	* testsuite/Makefile.in: Regenerate.
+	* testsuite/23_containers/map_operators.cc: Tweaks.
+	* testsuite/23_containers/set_operators.cc: Tweaks.
+
+2001-03-28  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
+
+	Enable dejagnu testing framework.
+	* configure.in: Generate testsuite/Makefile.
+	* configure: Regenerate.
+	* Makefile.am (check-install): Change rule from this...
+	(check-script-install): ...to this.
+	(check): Change rule from this...
+	(check-script):...to this.
+	* Makefile.in: Regenerate.
+	
 2001-03-28  Alexandre Oliva  <aoliva@redhat.com>
 
 	* libsupc++/Makefile.am (CXXLINK): Add --tag disable-shared after
diff --git a/libstdc++-v3/Makefile.am b/libstdc++-v3/Makefile.am
index 9681725d8cb0d4ca312ed33d07ac335e34eeaf63..b7985ffa4b3c22db54cb20575cc75ae129e073cb 100644
--- a/libstdc++-v3/Makefile.am
+++ b/libstdc++-v3/Makefile.am
@@ -24,20 +24,20 @@
 AUTOMAKE_OPTIONS = 1.3 cygnus
 MAINT_CHARSET = latin1
 
-SUBDIRS = libio libmath libsupc++ src
+SUBDIRS = libio libmath libsupc++ src testsuite
 
 mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
 
 # Use $${builddir} instead of $(top_builddir) for arguments to "mkcheck"
 # because then the paths will be full pathnames, not relative
 # pathnames. (-Wl,--rpath seems to like this better.)
-check: $(top_builddir)/mkcheck
+check-script: $(top_builddir)/mkcheck
 	-(chmod + $(top_builddir)/mkcheck; \
 	  srcdir=`cd $(top_srcdir); pwd`; builddir=`pwd`; \
 	  test -d testsuite || (mkdir testsuite; chmod u+w testsuite); \
 	  cd testsuite; $${builddir}/mkcheck 0 $${builddir} $${srcdir})
 
-check-install: $(top_builddir)/mkcheck
+check-script-install: $(top_builddir)/mkcheck
 	-(chmod + $(top_builddir)/mkcheck; \
 	  srcdir=`cd $(top_srcdir); pwd`; builddir=`pwd`; \
 	  test -d testsuite || (mkdir testsuite; chmod u+w testsuite); \
diff --git a/libstdc++-v3/Makefile.in b/libstdc++-v3/Makefile.in
index 29ebfd1f730c87f12162dbe6c9116fa38095fbb4..6fb1b8f22ccee649b2c6b771845acbab794ac3a7 100644
--- a/libstdc++-v3/Makefile.in
+++ b/libstdc++-v3/Makefile.in
@@ -112,11 +112,12 @@ gxx_include_dir = @gxx_include_dir@
 ifGNUmake = @ifGNUmake@
 libio_la = @libio_la@
 toplevel_srcdir = @toplevel_srcdir@
+xcompiling = @xcompiling@
 
 AUTOMAKE_OPTIONS = 1.3 cygnus
 MAINT_CHARSET = latin1
 
-SUBDIRS = libio libmath libsupc++ src
+SUBDIRS = libio libmath libsupc++ src testsuite
 
 mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
 
@@ -312,7 +313,7 @@ distdir: $(DISTFILES)
 	@for file in $(DISTFILES); do \
 	  if test -f $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
-	    cp -pr $$/$$file $(distdir)/$$file; \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
 	  else \
 	    test -f $(distdir)/$$file \
 	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
@@ -410,13 +411,13 @@ mostlyclean distclean maintainer-clean
 # Use $${builddir} instead of $(top_builddir) for arguments to "mkcheck"
 # because then the paths will be full pathnames, not relative
 # pathnames. (-Wl,--rpath seems to like this better.)
-check: $(top_builddir)/mkcheck
+check-script: $(top_builddir)/mkcheck
 	-(chmod + $(top_builddir)/mkcheck; \
 	  srcdir=`cd $(top_srcdir); pwd`; builddir=`pwd`; \
 	  test -d testsuite || (mkdir testsuite; chmod u+w testsuite); \
 	  cd testsuite; $${builddir}/mkcheck 0 $${builddir} $${srcdir})
 
-check-install: $(top_builddir)/mkcheck
+check-script-install: $(top_builddir)/mkcheck
 	-(chmod + $(top_builddir)/mkcheck; \
 	  srcdir=`cd $(top_srcdir); pwd`; builddir=`pwd`; \
 	  test -d testsuite || (mkdir testsuite; chmod u+w testsuite); \
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index dfdd9d41919c0aa587018da60ddaa65c8f2983fb..8ecf98e662bf88af03d84b136e295ef9dc90071d 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -15774,6 +15774,7 @@ else
   CANADIAN_TRUE='#'
   CANADIAN_FALSE=
 fi
+
  
 cat > confcache <<\EOF
 # This file is a shell script that caches the results of configure
@@ -15825,17 +15826,17 @@ rm -f confcache
 
   ac_safe=`echo "locale.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for locale.h""... $ac_c" 1>&6
-echo "configure:15829: checking for locale.h" >&5
+echo "configure:15830: checking for locale.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 15834 "configure"
+#line 15835 "configure"
 #include "confdefs.h"
 #include <locale.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:15839: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:15840: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -15853,19 +15854,19 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   
     echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
-echo "configure:15857: checking for LC_MESSAGES" >&5
+echo "configure:15858: checking for LC_MESSAGES" >&5
 if eval "test \"`echo '$''{'ac_cv_val_LC_MESSAGES'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 15862 "configure"
+#line 15863 "configure"
 #include "confdefs.h"
 #include <locale.h>
 int main() {
 return LC_MESSAGES
 ; return 0; }
 EOF
-if { (eval echo configure:15869: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15870: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_val_LC_MESSAGES=yes
 else
@@ -15910,13 +15911,13 @@ glibcpp_toolexecdir=no
 glibcpp_toolexeclibdir=no
 
 echo $ac_n "checking for interface version number""... $ac_c" 1>&6
-echo "configure:15914: checking for interface version number" >&5
+echo "configure:15915: checking for interface version number" >&5
 libstdcxx_interface=$INTERFACE
 echo "$ac_t""$libstdcxx_interface" 1>&6
 
 # Process the option --with-gxx-include-dir=<path to include-files directory>
 echo $ac_n "checking for --with-gxx-include-dir""... $ac_c" 1>&6
-echo "configure:15920: checking for --with-gxx-include-dir" >&5
+echo "configure:15921: checking for --with-gxx-include-dir" >&5
 # Check whether --with-gxx-include-dir or --without-gxx-include-dir was given.
 if test "${with_gxx_include_dir+set}" = set; then
   withval="$with_gxx_include_dir"
@@ -15940,7 +15941,7 @@ echo "$ac_t""$gxx_include_dir" 1>&6
 
 # Process the option "--enable-version-specific-runtime-libs"
 echo $ac_n "checking for --enable-version-specific-runtime-libs""... $ac_c" 1>&6
-echo "configure:15944: checking for --enable-version-specific-runtime-libs" >&5
+echo "configure:15945: checking for --enable-version-specific-runtime-libs" >&5
 # Check whether --enable-version-specific-runtime-libs or --disable-version-specific-runtime-libs was given.
 if test "${enable_version_specific_runtime_libs+set}" = set; then
   enableval="$enable_version_specific_runtime_libs"
@@ -15980,7 +15981,7 @@ if test x"$glibcpp_toolexecdir" = x"no"; then
 fi
 
 echo $ac_n "checking for install location""... $ac_c" 1>&6
-echo "configure:15984: checking for install location" >&5
+echo "configure:15985: checking for install location" >&5
 echo "$ac_t""$gxx_include_dir" 1>&6
 
 
@@ -16152,7 +16153,7 @@ done
 ac_given_srcdir=$srcdir
 ac_given_INSTALL="$INSTALL"
 
-trap 'rm -fr `echo "tests_flags mkcheck Makefile src/Makefile libmath/Makefile libio/Makefile libsupc++/Makefile config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+trap 'rm -fr `echo "tests_flags mkcheck Makefile src/Makefile libmath/Makefile libio/Makefile libsupc++/Makefile testsuite/Makefile config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
 EOF
 cat >> $CONFIG_STATUS <<EOF
 
@@ -16256,6 +16257,7 @@ s%@NATIVE_TRUE@%$NATIVE_TRUE%g
 s%@NATIVE_FALSE@%$NATIVE_FALSE%g
 s%@CANADIAN_TRUE@%$CANADIAN_TRUE%g
 s%@CANADIAN_FALSE@%$CANADIAN_FALSE%g
+s%@xcompiling@%$xcompiling%g
 s%@gxx_include_dir@%$gxx_include_dir%g
 s%@glibcpp_toolexecdir@%$glibcpp_toolexecdir%g
 s%@glibcpp_toolexeclibdir@%$glibcpp_toolexeclibdir%g
@@ -16308,7 +16310,7 @@ EOF
 
 cat >> $CONFIG_STATUS <<EOF
 
-CONFIG_FILES=\${CONFIG_FILES-"tests_flags mkcheck Makefile src/Makefile libmath/Makefile libio/Makefile libsupc++/Makefile"}
+CONFIG_FILES=\${CONFIG_FILES-"tests_flags mkcheck Makefile src/Makefile libmath/Makefile libio/Makefile libsupc++/Makefile testsuite/Makefile"}
 EOF
 cat >> $CONFIG_STATUS <<\EOF
 for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
diff --git a/libstdc++-v3/configure.in b/libstdc++-v3/configure.in
index 1de7539fdfce7b576868a81908a5dbddf5ae5d30..199afa561a4d54878d46aaae78cdb6bac20e6172 100644
--- a/libstdc++-v3/configure.in
+++ b/libstdc++-v3/configure.in
@@ -236,6 +236,7 @@ AC_LINK_FILES($ATOMICITYH/bits/atomicity.h, include/bits/atomicity.h)
 AM_CONDITIONAL(NULL_TARGET, test "$NULL_TARGET" = yes)
 AM_CONDITIONAL(NATIVE, test "$NATIVE" = yes || test "$NULL_TARGET" = yes)
 AM_CONDITIONAL(CANADIAN, test "$CANADIAN" = yes)
+AC_SUBST(xcompiling)
  
 AC_CACHE_SAVE
 AC_LC_MESSAGES
@@ -272,7 +273,7 @@ fi
 # installed in the correct place. To work around this not being passed
 # down from config-ml.in -> top_srcdir/Makefile.am ->
 # top_srcdir/{src,libsupc++}/Makefile.am, manually append it here.
-AC_OUTPUT(tests_flags mkcheck Makefile src/Makefile libmath/Makefile libio/Makefile libsupc++/Makefile,
+AC_OUTPUT(tests_flags mkcheck Makefile src/Makefile libmath/Makefile libio/Makefile libsupc++/Makefile testsuite/Makefile,
 [if test -n "$CONFIG_FILES"; then
   ac_file=Makefile . ${glibcpp_basedir}/../config-ml.in
   grep '^MULTISUBDIR =' Makefile >> src/Makefile
diff --git a/libstdc++-v3/libio/Makefile.in b/libstdc++-v3/libio/Makefile.in
index 2f203f7eb742d3dabf4ede2424cfd827d9f020b2..07b420558db6b268f9728ae3f68a6ae4c17b56ba 100644
--- a/libstdc++-v3/libio/Makefile.in
+++ b/libstdc++-v3/libio/Makefile.in
@@ -106,6 +106,7 @@ gxx_include_dir = @gxx_include_dir@
 ifGNUmake = @ifGNUmake@
 libio_la = @libio_la@
 toplevel_srcdir = @toplevel_srcdir@
+xcompiling = @xcompiling@
 
 AUTOMAKE_OPTIONS = 1.3 cygnus
 
@@ -292,7 +293,7 @@ distdir: $(DISTFILES)
 	@for file in $(DISTFILES); do \
 	  if test -f $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
-	    cp -pr $$/$$file $(distdir)/$$file; \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
 	  else \
 	    test -f $(distdir)/$$file \
 	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
diff --git a/libstdc++-v3/libmath/Makefile.in b/libstdc++-v3/libmath/Makefile.in
index 0ff3b818409dcaf8aa281ecfc48fe7b34a2df99d..4aa5b2a1d8fd8d3a1b3eff624c638dfb14f8748c 100644
--- a/libstdc++-v3/libmath/Makefile.in
+++ b/libstdc++-v3/libmath/Makefile.in
@@ -106,6 +106,7 @@ gxx_include_dir = @gxx_include_dir@
 ifGNUmake = @ifGNUmake@
 libio_la = @libio_la@
 toplevel_srcdir = @toplevel_srcdir@
+xcompiling = @xcompiling@
 
 AUTOMAKE_OPTIONS = 1.3 cygnus
 
@@ -269,7 +270,7 @@ distdir: $(DISTFILES)
 	@for file in $(DISTFILES); do \
 	  if test -f $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
-	    cp -pr $$/$$file $(distdir)/$$file; \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
 	  else \
 	    test -f $(distdir)/$$file \
 	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
diff --git a/libstdc++-v3/libsupc++/Makefile.in b/libstdc++-v3/libsupc++/Makefile.in
index 598550d66811968667ed4009ce63aa02c2ef13d7..edeec53e47e77659553eb1686f56b8db57936179 100644
--- a/libstdc++-v3/libsupc++/Makefile.in
+++ b/libstdc++-v3/libsupc++/Makefile.in
@@ -104,6 +104,7 @@ gxx_include_dir = @gxx_include_dir@
 ifGNUmake = @ifGNUmake@
 libio_la = @libio_la@
 toplevel_srcdir = @toplevel_srcdir@
+xcompiling = @xcompiling@
 
 AUTOMAKE_OPTIONS = 1.3 cygnus
 MAINT_CHARSET = latin1
@@ -128,13 +129,11 @@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@
 # These bits are all figured out from configure. Look in acinclude.m4
 # or configure.in to see how they are set. See GLIBCPP_EXPORT_FLAGS
 # NB: DEBUGFLAGS have to be at the end so that -O2 can be overridden.
-CONFIG_CXXFLAGS = \
-	@EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @CSHADOW_FLAGS@ @DEBUG_FLAGS@ 
+CONFIG_CXXFLAGS =  	@EXTRA_CXX_FLAGS@ @SECTION_FLAGS@ @CSHADOW_FLAGS@ @DEBUG_FLAGS@ 
 
 
 # Warning flags to use.
-WARN_CXXFLAGS = \
-	@WARN_FLAGS@ $(WERROR) -fdiagnostics-show-location=once
+WARN_CXXFLAGS =  	@WARN_FLAGS@ $(WERROR) -fdiagnostics-show-location=once
 
 
 # Use common includes from acinclude.m4/GLIBCPP_EXPORT_INCLUDES
@@ -146,38 +145,13 @@ LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@
 LIBIO_INCLUDES = @LIBIO_INCLUDES@
 TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
 
-INCLUDES = \
-	-I$(toplevel_srcdir)/gcc -I$(toplevel_srcdir)/include \
-	-I$(GLIBCPP_INCLUDE_DIR) $(CSTD_INCLUDES) -I$(top_builddir)/include \
-	 $(LIBSUPCXX_INCLUDES)
-
-
-headers = \
-	exception new typeinfo cxxabi.h exception_defines.h 
-
-
-sources = \
-	del_op.cc \
-	del_opnt.cc \
-	del_opv.cc \
-	del_opvnt.cc \
-	eh_alloc.cc \
-	eh_aux_runtime.cc \
-	eh_catch.cc \
-	eh_exception.cc \
-	eh_globals.cc \
-	eh_personality.cc \
-	eh_terminate.cc \
-	eh_throw.cc \
-	new_handler.cc \
-	new_op.cc \
-	new_opnt.cc \
-	new_opv.cc \
-	new_opvnt.cc \
-	pure.cc \
-	tinfo.cc \
-	tinfo2.cc \
-	vec.cc
+INCLUDES =  	-I$(toplevel_srcdir)/gcc -I$(toplevel_srcdir)/include 	-I$(GLIBCPP_INCLUDE_DIR) $(CSTD_INCLUDES) -I$(top_builddir)/include 	 $(LIBSUPCXX_INCLUDES)
+
+
+headers =  	exception new typeinfo cxxabi.h exception_defines.h 
+
+
+sources =  	del_op.cc 	del_opnt.cc 	del_opv.cc 	del_opvnt.cc 	eh_alloc.cc 	eh_aux_runtime.cc 	eh_catch.cc 	eh_exception.cc 	eh_globals.cc 	eh_personality.cc 	eh_terminate.cc 	eh_throw.cc 	new_handler.cc 	new_op.cc 	new_opnt.cc 	new_opv.cc 	new_opvnt.cc 	pure.cc 	tinfo.cc 	tinfo2.cc 	vec.cc
 
 
 libsupc___la_SOURCES = $(sources)
@@ -193,12 +167,7 @@ LIBSUPCXX_CXXFLAGS = -prefer-pic
 # set this option because CONFIG_CXXFLAGS has to be after
 # OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
 # as the occasion call for it. (ie, --enable-debug)
-AM_CXXFLAGS = \
-	-fno-implicit-templates \
-	$(LIBSUPCXX_CXXFLAGS) \
-	$(WARN_CXXFLAGS) \
-	$(OPTIMIZE_CXXFLAGS) \
-	$(CONFIG_CXXFLAGS) 
+AM_CXXFLAGS =  	-fno-implicit-templates 	$(LIBSUPCXX_CXXFLAGS) 	$(WARN_CXXFLAGS) 	$(OPTIMIZE_CXXFLAGS) 	$(CONFIG_CXXFLAGS) 
 
 
 # libstdc++ libtool notes
@@ -222,9 +191,7 @@ AM_CXXFLAGS = \
 #
 # We have to put --tag disable-shared after --tag CXX lest things
 # CXX undo the affect of disable-shared.
-LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared \
-               --mode=compile $(CXX) $(INCLUDES) \
-	       $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS) 
+LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared                --mode=compile $(CXX) $(INCLUDES) 	       $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS) 
 
 
 # 3) We'd have a problem when building the shared libstdc++ object if
@@ -233,9 +200,7 @@ LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared \
 # course is problematic at this point.  So, we get the top-level
 # directory to configure libstdc++-v3 to use gcc as the C++
 # compilation driver.
-CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared \
-          --mode=link $(CXX) \
-          @OPT_LDFLAGS@ @SECTION_LDFLAGS@ $(AM_CXXFLAGS) $(LDFLAGS) -o $@
+CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared           --mode=link $(CXX)           @OPT_LDFLAGS@ @SECTION_LDFLAGS@ $(AM_CXXFLAGS) $(LDFLAGS) -o $@
 
 CONFIG_HEADER = ../config.h
 CONFIG_CLEAN_FILES = 
diff --git a/libstdc++-v3/mkcheck.in b/libstdc++-v3/mkcheck.in
index 3ad79d83991af7eadd92d5d71aef3ad37ed18910..72a2b76ff21ac74ffa546beeaaecbacddc7d7de3 100755
--- a/libstdc++-v3/mkcheck.in
+++ b/libstdc++-v3/mkcheck.in
@@ -61,11 +61,6 @@ set `../tests_flags ${query} $*` || exit 1
 BUILD_DIR=$1; SRC_DIR=$2; PREFIX_DIR=$3; CXX=$4; CXXFLAGS=$5; INCLUDES=$6; LIBS=$7;
 IFS=$saved_ifs
 
-# Build libtoolized surrogates to compile and run testcases.  Also,
-# adjust CXX so that the newly built compiler can find headers.
-if [ x$WHICH = x0 ] ; then
-    CXX="$CXX -B`dirname $CXX`/"
-fi
 LIBTOOL="$BUILD_DIR/libtool"
 LTEXE="$LIBTOOL --mode=execute"
 LTCXX="$LIBTOOL --tag=CXX --mode=link $CXX $CXXFLAGS $INCLUDES $LIBS"
@@ -104,6 +99,7 @@ MAX_MEM_USAGE=16384
 
 # Remove old executables.
 rm -rf "$TEST_DIR"/*exe
+rm -rf "$TEST_DIR"/compile.out
 
 # Remove old core files (which now get left in cwd, not $TEST_DIR).
 rm -rf ./*core*
@@ -324,7 +320,9 @@ test_file()
     # time_t's (no more overhead than grabbing two date(1)'s).
     compiler_invocation="$LTCXX $S_FLAG $SRC_NAME -o $EXENAME"
     COMP_TIME_START=$($TIMER_COMMAND)
+    echo $SRC_NAME >> compile.out
     $compiler_invocation >> compile.out 2>&1
+    echo "" >> compile.out
     COMP_TIME_END=$($TIMER_COMMAND)
 
     if [ $COMP_TIME_START -lt $COMP_TIME_END ]; then
@@ -334,7 +332,7 @@ test_file()
     fi
 
     if [ -f $EXENAME ]; then
-        rm compile.out
+#        rm compile.out
         size_command TEXT
         size_command DATA
         size_command SIZE
@@ -372,8 +370,8 @@ test_file()
     else
         # the file did not compile/link.
         printf "\n" >> $LOG_FILE
-        `cat compile.out >> $LOG_FILE` 
-        rm compile.out
+#        `cat compile.out >> $LOG_FILE` 
+#        rm compile.out
         RESULT="-b"
         TEXT="0"
         DATA="0"
diff --git a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in
index 7d2619e38279730b37615daaede2d5ddaab99405..ade75536eb9b7f7aae630fba711492ffc0bd554e 100644
--- a/libstdc++-v3/src/Makefile.in
+++ b/libstdc++-v3/src/Makefile.in
@@ -102,6 +102,7 @@ glibcpp_toolexeclibdir = @glibcpp_toolexeclibdir@
 ifGNUmake = @ifGNUmake@
 libio_la = @libio_la@
 toplevel_srcdir = @toplevel_srcdir@
+xcompiling = @xcompiling@
 
 AUTOMAKE_OPTIONS = 1.3 gnits
 MAINT_CHARSET = latin1
@@ -377,7 +378,7 @@ distdir: $(DISTFILES)
 	@for file in $(DISTFILES); do \
 	  if test -f $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
-	    cp -pr $$/$$file $(distdir)/$$file; \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
 	  else \
 	    test -f $(distdir)/$$file \
 	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
diff --git a/libstdc++-v3/tests_flags.in b/libstdc++-v3/tests_flags.in
index e6dd1b287bcbd9fc9c2451ca247f8ececf8dcb9e..5821dd5276a5e0b821cfce31862cedccd3f09a7c 100644
--- a/libstdc++-v3/tests_flags.in
+++ b/libstdc++-v3/tests_flags.in
@@ -108,6 +108,9 @@ case ${query} in
                 -I${SRC_DIR}/include/std  -I${SRC_DIR}/include/$C_DIR
 	        -I${SRC_DIR}/libsupc++ -I${SRC_DIR}/libio 
 		-I${SRC_DIR}/testsuite"
+      if test x@xcompiling@ == x1; then
+        INCLUDES="${INCLUDES} -I${SRC_DIR}/../newlib/libc/include"
+      fi
       ;;
 esac
 
@@ -124,12 +127,12 @@ esac
 
 # LIB_PATH == where to find the C++ build libraries for libtool's use
 # GCC_LIB_PATH == where to find the gcc build libraries for libtool's use
-# CXX == the full pathname of the compiler
+# CXX == how to invoke the compiler
 case ${query} in
     --built-library)
       LIB_PATH=${BUILD_DIR}/src
       GCC_LIB_PATH=${BUILD_DIR}/../../gcc
-      CXX="${BUILD_DIR}/../../gcc/g++"
+      CXX="${BUILD_DIR}/../../gcc/g++ -B${BUILD_DIR}/../../gcc/"
       ;;
     --installed-library)
       LIB_PATH=${PREFIX_DIR}/lib
@@ -138,11 +141,11 @@ case ${query} in
       ;;
 esac
 
-# gcc compiler flags (maybe use glibcpp_cxxflags from configure.target,
-# but that's really meant for building the library itself, not using it)
+# CXXFLAGS == run the testsuite with any special configuration
+# flags from the library build.
 CXXFLAGS="-ggdb3 -DDEBUG_ASSERT @SECTION_FLAGS@ @SECTION_LDFLAGS@"
 
-# LIBS == any extra needed -l switches, etc (may need more libs, lose lose)
+# LIBS == any extra may needed -L switches
 case ${query} in
     --built-library)
       LIBS="${LIB_PATH}/libstdc++.la -no-install -rpath ${GCC_LIB_PATH}"
diff --git a/libstdc++-v3/testsuite/23_containers/map_operators.cc b/libstdc++-v3/testsuite/23_containers/map_operators.cc
index 4def7aa79aabd3b32d6601a46317a926343b2001..c44cfacb3e4a9e216add78234ab2ef267255d79e 100644
--- a/libstdc++-v3/testsuite/23_containers/map_operators.cc
+++ b/libstdc++-v3/testsuite/23_containers/map_operators.cc
@@ -1,6 +1,6 @@
 // 2000-09-07 bgarcia@laurelnetworks.com
 
-// Copyright (C) 2000 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2001 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -37,28 +37,27 @@ void test01()
   mapByIndex.insert(std::pair<unsigned, int>(6, 5));
   
   std::map<unsigned, int>::iterator itr(mapByIndex.begin());
-  
-  test &= itr != mapByName.end(); // XXX - notice, it's not mapByIndex!!
-  test &= itr == mapByName.end(); // XXX - notice, it's not mapByIndex!!
 
-  return 0;
+  // NB: notice, it's not mapByIndex!!
+  test &= itr != mapByName.end();  // ERROR - *  XFAIL *-*-*
+  test &= itr == mapByName.end();  // ERROR - *  XFAIL *-*-*
 }
 
 // http://gcc.gnu.org/ml/libstdc++/2000-11/msg00093.html
 void test02()
 {
-    typedef std::map<int,const int> MapInt;
-
-    MapInt m;
-
-    for (unsigned i=0;i<10;++i)
-        m.insert(MapInt::value_type(i,i));
-
-    for (MapInt::const_iterator i=m.begin();i!=m.end();++i)
-        std::cerr << i->second << ' ';
-
-    for (MapInt::const_iterator i=m.begin();m.end()!=i;++i)
-        std::cerr << i->second << ' ';
+  typedef std::map<int,const int> MapInt;
+  
+  MapInt m;
+  
+  for (unsigned i=0;i<10;++i)
+    m.insert(MapInt::value_type(i,i));
+  
+  for (MapInt::const_iterator i=m.begin();i!=m.end();++i)
+    std::cerr << i->second << ' ';
+  
+  for (MapInt::const_iterator i=m.begin();m.end()!=i;++i)
+    std::cerr << i->second << ' ';
 }
 
 int main()
diff --git a/libstdc++-v3/testsuite/23_containers/set_operators.cc b/libstdc++-v3/testsuite/23_containers/set_operators.cc
index 42e01e9de4af76ce65d6a632c2712c9027fc3f08..e9bbc621c12bba09277dbf597cec3da8febe26a6 100644
--- a/libstdc++-v3/testsuite/23_containers/set_operators.cc
+++ b/libstdc++-v3/testsuite/23_containers/set_operators.cc
@@ -1,6 +1,6 @@
 // 2000-09-07 bgarcia@laurelnetworks.com
 
-// Copyright (C) 2000 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2001 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -25,7 +25,6 @@
 
 // map and set
 // libstdc++/86: map & set iterator comparisons are not type-safe
-// XXX this is XFAIL for the time being, ie this should not compile
 int main(void)
 {
   bool test = true;
@@ -35,8 +34,9 @@ int main(void)
   
   std::set<unsigned int>::iterator itr(setByIndex.begin());
   
-  test &= itr != setByName.end(); // XXX - notice, it's not setByIndex!!
-  test &= itr == setByName.end(); // XXX - notice, it's not setByIndex!!
+  // NB: it's not setByIndex!!
+  test &= itr != setByName.end();  // ERROR - *  XFAIL *-*-*
+  test &= itr == setByName.end();  // ERROR - *  XFAIL *-*-*
 
   return 0;
 }
diff --git a/libstdc++-v3/testsuite/Makefile.am b/libstdc++-v3/testsuite/Makefile.am
index a6a1a78a261f9c069175f5ae2a744be0bcf743d3..0acdb092d4ba780b643b693a4341f5fa43df6c2f 100644
--- a/libstdc++-v3/testsuite/Makefile.am
+++ b/libstdc++-v3/testsuite/Makefile.am
@@ -21,8 +21,14 @@
 ## Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
 ## USA.
 
-AUTOMAKE_OPTIONS = 1.3 cygnus dejagnu
+AUTOMAKE_OPTIONS =  foreign dejagnu no-installinfo
 
 DEJATOOL = libstdc++
 
-RUNTEST	= runtest
+EXPECT = `if [ -f $(top_builddir)/../expect/expect ] ; then \
+            echo $(top_builddir)/../expect/expect ; \
+          else echo expect ; fi`
+
+RUNTEST = `if [ -f $(top_srcdir)/../dejagnu/runtest ] ; then \
+	       echo $(top_srcdir)/../dejagnu/runtest ; \
+	    else echo runtest; fi`
diff --git a/libstdc++-v3/testsuite/config/default.exp b/libstdc++-v3/testsuite/config/default.exp
index f2a4554ca3a47aac33bbee5677d512ff55bc5bba..3ae770e782d70ba85386a9d05f7129bbe6f95da2 100644
--- a/libstdc++-v3/testsuite/config/default.exp
+++ b/libstdc++-v3/testsuite/config/default.exp
@@ -1,4 +1,4 @@
-#   Copyright (C) 1997 Free Software Foundation, Inc.
+# Copyright (C) 2001 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -17,4 +17,5 @@
 # Please email any bugs, comments, and/or additions to this file to:
 # bug-gcc@prep.ai.mit.edu
 
-load_lib "dg.exp"
+load_lib "standard.exp"
+
diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp b/libstdc++-v3/testsuite/lib/libstdc++.exp
index d1b8bef14651a39eaac0618acd5a31954619ddda..8d8b5000b28bf21027c81c8b9e4f53ef9f134923 100644
--- a/libstdc++-v3/testsuite/lib/libstdc++.exp
+++ b/libstdc++-v3/testsuite/lib/libstdc++.exp
@@ -25,19 +25,19 @@
 ## The global associative array lib_env contains the totality
 ## of options necessary to run testcases; the meanings of which are
 ## as follows:
-##    lib_env(CXX)       The compiler used to run testcases.
-##    lib_env(CXXFLAGS)  Special flags passed to the compiler.
-##    lib_env(INCLUDES)  Includes options to pass to the compiler.
-##    lib_env(LDFLAGS)   Additional library flags.
-##    lib_env(LIBTOOL)   Path to the `libtool' script.
-##    lib_env(SRC_DIR)   Where V3 master source lives.
-##    lib_env(BUILD_DIR) Where V3 is built.
-##    lib_env(static)    Flags to pass to the linker to build a 
-##                       statically linked executable.
-##    lib_env(shared)    Flags to pass to the linker to build a 
-##                       dynamically linked executable.
+##    lib_env(CXX)       	The compiler used to run testcases.
+##    lib_env(CXXFLAGS)  	Special flags passed to the compiler.
+##    lib_env(INCLUDES)  	Includes options to pass to the compiler.
+##    lib_env(LDFLAGS)   	Additional library flags.
+##    lib_env(LIBTOOL)   	Path to the `libtool' script.
+##    lib_env(SRC_DIR)   	Where V3 master source lives.
+##    lib_env(BUILD_DIR) 	Where V3 is built.
+##    lib_env(static)    	Flags to pass to the linker to build a 
+##                       	statically linked executable.
+##    lib_env(shared)    	Flags to pass to the linker to build a 
+##                       	dynamically linked executable.
 ##    lib_env(testcase_options) Options specified by current testcase.
-##                       These are specified through the @xxx@-keywords.
+##                       	These are specified through the @xxx@-keywords.
 
 
 load_lib dg.exp
@@ -52,7 +52,7 @@ proc libstdc++-dg-init { args } {
     # By default, we assume we want to run program images.
     set dg-do-what-default run
 
-    # Get out the source and the build directories.
+    # Get the source and the build directories.
     set src-dir [lookfor_file $srcdir libstdc++-v3]
     set build-dir [lookfor_file $outdir libstdc++-v3]
 
@@ -61,15 +61,16 @@ proc libstdc++-dg-init { args } {
     
     # mkcheck.in used to output these information.
     set output [remote_exec host $lib_env(CXX) -v]
-    if { [lindex $output 0] == 0 } {
-	set output [lindex $output 1]
-	regexp "gcc version.*$" $output version
-	regsub "\n+" $version "" version
-	clone_output "Compiler: $version"
-	clone_output "Compiler flags: $lib_env(CXXFLAGS)"
-    } else {
-	perror "Cannot determine compiler version: [lindex $output 1]"
-    }
+# XXX don't try clever formatting hacks at the moment
+#    if { [lindex $output 0] == 0 } {
+#	set output [lindex $output 1]
+#	regexp "gcc version.*$" $output version
+#	regsub "\n+" $version "" version
+#	clone_output "Compiler: $version"
+#	clone_output "Compiler flags: $lib_env(CXXFLAGS)"
+#    } else {
+#	perror "Cannot determine compiler version: [lindex $output 1]"
+#    }
 }
 
 ## dg.exp callback.  Called from dg-test to run PROGRAM.
@@ -241,7 +242,7 @@ proc libstdc++-setup-flags {src-dir build-dir} {
 	set lib_env(shared) ""
 
 	set lib_env(LIBTOOL) "$lib_env(BUILD_DIR)/libtool"
-	set lib_env(FLAGS) "$lib_env(CXX) -B$lib_env(BUILD_DIR)/ \
+	set lib_env(FLAGS) "$lib_env(CXX) \
 		$lib_env(INCLUDES) $lib_env(CXXFLAGS)"
     } else {
 	perror "$output"
@@ -304,7 +305,7 @@ proc libstdc++-process-options { testfile } {
 }
 
 ###
-### The following is an abominal hack, non-recomandable software practice.
+### The following is an abominable hack, non-commendable software practice.
 ### This is supposed to be a very-very short term solution.
 ### Please, do not add any piece of code without my approval.
 ### -- Gaby
diff --git a/libstdc++-v3/testsuite/libstdc++.tests/tests.exp b/libstdc++-v3/testsuite/libstdc++.tests/tests.exp
index d811803ad4cc3f2eb32fd581c35d55d6b66734d6..6077c12bc873ec86f7935a35b618e07ceb3654ab 100644
--- a/libstdc++-v3/testsuite/libstdc++.tests/tests.exp
+++ b/libstdc++-v3/testsuite/libstdc++.tests/tests.exp
@@ -25,3 +25,4 @@ libstdc++-dg-init
 libstdc++_runtest [glob -nocomplain $srcdir/*]
 dg-finish
 
+