diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 3f7d3095801a7824367449f32ddda7439b79b36f..39ea2fc3cda5849af4cfec76d1dede4af76e7d1a 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,9 @@
+2010-01-13  Paolo Carlini  <paolo.carlini@oracle.com>
+
+	* testsuite/Makefile.am (check-debug): Add.
+	* testsuite/Makefile.in: Regenerate.
+	* config.h.in: Likewise.
+
 2010-01-12  Paolo Carlini  <paolo.carlini@oracle.com>
 
 	* testsuite/17_intro/using_namespace_std_tr1_neg.cc: Do not run
diff --git a/libstdc++-v3/config.h.in b/libstdc++-v3/config.h.in
index c39f423771e3f2587523500f76e4ad6e454177c8..55fa49e29d7255b59ad7519ca988e4b39762501b 100644
--- a/libstdc++-v3/config.h.in
+++ b/libstdc++-v3/config.h.in
@@ -66,9 +66,6 @@
 /* Define to 1 if you have the <endian.h> header file. */
 #undef HAVE_ENDIAN_H
 
-/* Define to 1 if you have the <execinfo.h> header file. */
-#undef HAVE_EXECINFO_H
-
 /* Define if ENODATA exists. */
 #undef HAVE_ENODATA
 
@@ -102,6 +99,9 @@
 /* Define if ETXTBSY exists. */
 #undef HAVE_ETXTBSY
 
+/* Define to 1 if you have the <execinfo.h> header file. */
+#undef HAVE_EXECINFO_H
+
 /* Define to 1 if you have the `expf' function. */
 #undef HAVE_EXPF
 
diff --git a/libstdc++-v3/testsuite/Makefile.am b/libstdc++-v3/testsuite/Makefile.am
index a2f4fa42986acc3de56629a7e2c8f4dd6bdc3d0c..d20aba7c41fe0789d8922f876128b766e88d4e05 100644
--- a/libstdc++-v3/testsuite/Makefile.am
+++ b/libstdc++-v3/testsuite/Makefile.am
@@ -1,6 +1,6 @@
 ## Makefile for the testsuite subdirectory of the GNU C++ Standard library.
 ##
-## Copyright (C) 2001, 2002, 2003, 2005, 2007, 2009
+## Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
 ## Free Software Foundation, Inc.
 ##
 ## This file is part of the libstdc++ version 3 distribution.
@@ -186,6 +186,8 @@ check-performance: testsuite_files_performance ${performance_script}
 	-@(chmod + ${check_performance_script}; \
 	  ${check_performance_script} ${glibcxx_srcdir} ${glibcxx_builddir})
 
+# Runs the testsuite in debug mode.
+debug_flags = "unix/-D_GLIBCXX_DEBUG"
 
 # Runs the testsuite in parallel mode.
 libgomp_dir=${glibcxx_builddir}/../libgomp
@@ -199,6 +201,15 @@ parallel_flags="unix/-D_GLIBCXX_PARALLEL/-fopenmp"
 # Runs the testsuite in profile mode.
 profile_flags = "unix/-D_GLIBCXX_PROFILE"
 
+check-debug: site.exp
+	outputdir=debug; export outputdir; \
+	if test ! -d $${outputdir}; then \
+	  mkdir $${outputdir}; \
+	fi; \
+	srcdir=`$(am__cd) $(srcdir) && pwd`; export srcdir; \
+	EXPECT=$(EXPECT); export EXPECT; \
+	$(MAKE) RUNTESTFLAGS="$(RUNTESTFLAGS) conformance.exp --outdir $${outputdir} --objdir $${outputdir} --target_board=$(debug_flags)" check-DEJAGNU;
+
 check-parallel: site.exp
 	-@(if test ! -d $${libgomp_dir}; then \
 	  echo "Testing parallel mode failed as libgomp not present."; \
@@ -236,4 +247,4 @@ CLEANFILES = *.txt *.tst *.exe core* filebuf_* tmp* ostream_* *.log *.sum \
 
 # To remove directories.
 clean-local:
-	rm -rf parallel profile
+	rm -rf debug parallel profile
diff --git a/libstdc++-v3/testsuite/Makefile.in b/libstdc++-v3/testsuite/Makefile.in
index b66c27ba462008978394c98a5ebd98a35a0b23e2..e6f437e8566d4ba611ca653686b1d02440f7eaa0 100644
--- a/libstdc++-v3/testsuite/Makefile.in
+++ b/libstdc++-v3/testsuite/Makefile.in
@@ -289,6 +289,9 @@ compile_script = ${glibcxx_srcdir}/scripts/check_compile
 # XXX Need to add dependency on libtestc++.a
 check_performance_script = ${glibcxx_srcdir}/scripts/check_performance
 
+# Runs the testsuite in debug mode.
+debug_flags = "unix/-D_GLIBCXX_DEBUG"
+
 # Runs the testsuite in parallel mode.
 libgomp_dir = ${glibcxx_builddir}/../libgomp
 libgomp_flags = -B${glibcxx_builddir}/../libgomp \
@@ -626,6 +629,15 @@ check-performance: testsuite_files_performance ${performance_script}
 	-@(chmod + ${check_performance_script}; \
 	  ${check_performance_script} ${glibcxx_srcdir} ${glibcxx_builddir})
 
+check-debug: site.exp
+	outputdir=debug; export outputdir; \
+	if test ! -d $${outputdir}; then \
+	  mkdir $${outputdir}; \
+	fi; \
+	srcdir=`$(am__cd) $(srcdir) && pwd`; export srcdir; \
+	EXPECT=$(EXPECT); export EXPECT; \
+	$(MAKE) RUNTESTFLAGS="$(RUNTESTFLAGS) conformance.exp --outdir $${outputdir} --objdir $${outputdir} --target_board=$(debug_flags)" check-DEJAGNU;
+
 check-parallel: site.exp
 	-@(if test ! -d $${libgomp_dir}; then \
 	  echo "Testing parallel mode failed as libgomp not present."; \
@@ -658,7 +670,7 @@ check-profile: site.exp
 
 # To remove directories.
 clean-local:
-	rm -rf parallel profile
+	rm -rf debug parallel profile
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.