aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Kosnik <bkoz@redhat.com>2007-10-06 03:06:37 +0000
committerBenjamin Kosnik <bkoz@gcc.gnu.org>2007-10-06 03:06:37 +0000
commit6116ca65ddba06d9fb1cb85b26ac75964a63f684 (patch)
tree4976e8943bdabecddbee949616a8615aa5ff8180
parentf63bc637f68a42da874eb142f389c2c268c9c915 (diff)
downloadgcc-6116ca65ddba06d9fb1cb85b26ac75964a63f684.zip
gcc-6116ca65ddba06d9fb1cb85b26ac75964a63f684.tar.gz
gcc-6116ca65ddba06d9fb1cb85b26ac75964a63f684.tar.bz2
Fixes for --disable-libstdcxx-pch.
2007-10-05 Benjamin Kosnik <bkoz@redhat.com> Fixes for --disable-libstdcxx-pch. * include/ext/rc_string_base.h: Include stl_iterator_base_funcs.h. * include/ext/vstring_util.h: Include stl_iterator.h and numeric_traits.h. * include/tr1/functional: Include new. * testsuite/util/testsuite_api.h: Include exception. * testsuite/lib/libstdc++.exp (libstdc++_init): Set PCH_CXXFLAGS via cxxpchflags. * testsuite/25_algorithms/binary_search/requirements/ explicit_instantiation/2.cc: Same.: Fix includes. * testsuite/25_algorithms/count_if/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/equal_range/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/find_end/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/find_first_of/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/find_if/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/for_each/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/includes/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/inplace_merge/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/lexicographical_compare/ requirements/explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/lower_bound/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/make_heap/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/max_element/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/max/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/merge/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/min_element/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/min/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/next_permutation/ requirements/explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/nth_element/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/partial_sort_copy/ requirements/explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/partial_sort/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/partition/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/pop_heap/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/prev_permutation/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/push_heap/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/random_shuffle/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/remove_copy_if/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/remove_if/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/replace_copy_if/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/replace_if/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/search_n/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/search/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/set_difference/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/set_intersection/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/set_symmetric_difference/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/set_union/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/sort_heap/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/sort/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/stable_partition/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/stable_sort/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/transform/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/unique_copy/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/unique/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/upper_bound/requirements/ explicit_instantiation/2.cc: Same. * testsuite/25_algorithms/remove/requirements/ explicit_instantiation/pod.cc: Provide a hint to the compiler. From-SVN: r129049
-rw-r--r--libstdc++-v3/ChangeLog103
-rw-r--r--libstdc++-v3/include/ext/rc_string_base.h1
-rw-r--r--libstdc++-v3/include/ext/vstring_util.h2
-rw-r--r--libstdc++-v3/include/tr1/functional1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/binary_search/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/equal_range/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/includes/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/inplace_merge/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/lower_bound/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/make_heap/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/max/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/max_element/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/merge/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/min/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/min_element/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/next_permutation/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/nth_element/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/partial_sort/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/pop_heap/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/prev_permutation/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/push_heap/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/remove/requirements/explicit_instantiation/pod.cc3
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/set_difference/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/set_intersection/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/set_union/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/sort/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/sort_heap/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/stable_sort/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/unique/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/unique_copy/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/25_algorithms/upper_bound/requirements/explicit_instantiation/2.cc1
-rw-r--r--libstdc++-v3/testsuite/lib/libstdc++.exp30
-rw-r--r--libstdc++-v3/testsuite/util/testsuite_api.h1
51 files changed, 172 insertions, 13 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 712cde5..b399869 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,106 @@
+2007-10-05 Benjamin Kosnik <bkoz@redhat.com>
+
+ Fixes for --disable-libstdcxx-pch.
+ * include/ext/rc_string_base.h: Include stl_iterator_base_funcs.h.
+ * include/ext/vstring_util.h: Include stl_iterator.h and
+ numeric_traits.h.
+ * include/tr1/functional: Include new.
+ * testsuite/util/testsuite_api.h: Include exception.
+ * testsuite/lib/libstdc++.exp (libstdc++_init): Set
+ PCH_CXXFLAGS via cxxpchflags.
+
+ * testsuite/25_algorithms/binary_search/requirements/
+ explicit_instantiation/2.cc: Same.: Fix includes.
+ * testsuite/25_algorithms/count_if/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/equal_range/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/find_end/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/find_first_of/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/find_if/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/for_each/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/includes/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/inplace_merge/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/lexicographical_compare/
+ requirements/explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/lower_bound/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/make_heap/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/max_element/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/max/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/merge/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/min_element/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/min/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/next_permutation/
+ requirements/explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/nth_element/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/partial_sort_copy/
+ requirements/explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/partial_sort/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/partition/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/pop_heap/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/prev_permutation/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/push_heap/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/random_shuffle/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/remove_copy_if/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/remove_if/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/replace_copy_if/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/replace_if/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/search_n/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/search/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/set_difference/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/set_intersection/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/set_symmetric_difference/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/set_union/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/sort_heap/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/sort/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/stable_partition/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/stable_sort/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/transform/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/unique_copy/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/unique/requirements/
+ explicit_instantiation/2.cc: Same.
+ * testsuite/25_algorithms/upper_bound/requirements/
+ explicit_instantiation/2.cc: Same.
+
+ * testsuite/25_algorithms/remove/requirements/
+ explicit_instantiation/pod.cc: Provide a hint to the compiler.
+
2007-10-05 Paolo Carlini <pcarlini@suse.de>
* testsuite/23_containers/map/moveable.cc: Remove dg-require-rvalref.
diff --git a/libstdc++-v3/include/ext/rc_string_base.h b/libstdc++-v3/include/ext/rc_string_base.h
index 7c0934a..49128aa 100644
--- a/libstdc++-v3/include/ext/rc_string_base.h
+++ b/libstdc++-v3/include/ext/rc_string_base.h
@@ -37,6 +37,7 @@
#define _RC_STRING_BASE_H 1
#include <ext/atomicity.h>
+#include <bits/stl_iterator_base_funcs.h>
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
diff --git a/libstdc++-v3/include/ext/vstring_util.h b/libstdc++-v3/include/ext/vstring_util.h
index 390ef37..ab7cf3c 100644
--- a/libstdc++-v3/include/ext/vstring_util.h
+++ b/libstdc++-v3/include/ext/vstring_util.h
@@ -44,6 +44,8 @@
#include <bits/functexcept.h>
#include <bits/localefwd.h>
#include <bits/ostream_insert.h>
+#include <bits/stl_iterator.h>
+#include <ext/numeric_traits.h>
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
diff --git a/libstdc++-v3/include/tr1/functional b/libstdc++-v3/include/tr1/functional
index 78f6b92..190f61a 100644
--- a/libstdc++-v3/include/tr1/functional
+++ b/libstdc++-v3/include/tr1/functional
@@ -45,6 +45,7 @@
#include <cmath>
#include <typeinfo>
+#include <new>
#include <tr1/tuple>
#include <tr1/type_traits>
#include <bits/stringfwd.h>
diff --git a/libstdc++-v3/testsuite/25_algorithms/binary_search/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/binary_search/requirements/explicit_instantiation/2.cc
index 3b770a7..0c9b5db 100644
--- a/libstdc++-v3/testsuite/25_algorithms/binary_search/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/binary_search/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc
index f2fbe28..434a3e8 100644
--- a/libstdc++-v3/testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/equal_range/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/equal_range/requirements/explicit_instantiation/2.cc
index 756891b..88cd181 100644
--- a/libstdc++-v3/testsuite/25_algorithms/equal_range/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/equal_range/requirements/explicit_instantiation/2.cc
@@ -31,6 +31,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc
index d0b4818..8e4c3e6 100644
--- a/libstdc++-v3/testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc
index 8fb55e7..c675764 100644
--- a/libstdc++-v3/testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc
index f2cf218..5ad6189 100644
--- a/libstdc++-v3/testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc
index 456b2b4..803074c 100644
--- a/libstdc++-v3/testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/includes/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/includes/requirements/explicit_instantiation/2.cc
index 63f6d95..e4dbe43 100644
--- a/libstdc++-v3/testsuite/25_algorithms/includes/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/includes/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/inplace_merge/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/inplace_merge/requirements/explicit_instantiation/2.cc
index 10656a9..c71c3e2 100644
--- a/libstdc++-v3/testsuite/25_algorithms/inplace_merge/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/inplace_merge/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/requirements/explicit_instantiation/2.cc
index 8a868ec..c2c4dee 100644
--- a/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/lexicographical_compare/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/lower_bound/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/lower_bound/requirements/explicit_instantiation/2.cc
index b7b62bd..b4ba007 100644
--- a/libstdc++-v3/testsuite/25_algorithms/lower_bound/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/lower_bound/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/make_heap/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/make_heap/requirements/explicit_instantiation/2.cc
index fa77fc5..6cec88a 100644
--- a/libstdc++-v3/testsuite/25_algorithms/make_heap/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/make_heap/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/max/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/max/requirements/explicit_instantiation/2.cc
index 5987e95..c25b091 100644
--- a/libstdc++-v3/testsuite/25_algorithms/max/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/max/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/max_element/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/max_element/requirements/explicit_instantiation/2.cc
index c8bce16..8bc4458 100644
--- a/libstdc++-v3/testsuite/25_algorithms/max_element/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/max_element/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/merge/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/merge/requirements/explicit_instantiation/2.cc
index 3d7c46a..0ef0ca1 100644
--- a/libstdc++-v3/testsuite/25_algorithms/merge/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/merge/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/min/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/min/requirements/explicit_instantiation/2.cc
index 03d0726..da30edb 100644
--- a/libstdc++-v3/testsuite/25_algorithms/min/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/min/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/min_element/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/min_element/requirements/explicit_instantiation/2.cc
index 5ab09b5..6c53c04 100644
--- a/libstdc++-v3/testsuite/25_algorithms/min_element/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/min_element/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/next_permutation/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/next_permutation/requirements/explicit_instantiation/2.cc
index c89eba0..fd6b3a9 100644
--- a/libstdc++-v3/testsuite/25_algorithms/next_permutation/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/next_permutation/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/nth_element/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/nth_element/requirements/explicit_instantiation/2.cc
index 0d5a7ef..b40f003 100644
--- a/libstdc++-v3/testsuite/25_algorithms/nth_element/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/nth_element/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/partial_sort/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/partial_sort/requirements/explicit_instantiation/2.cc
index f2f3f7e..b53a9db 100644
--- a/libstdc++-v3/testsuite/25_algorithms/partial_sort/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/partial_sort/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/requirements/explicit_instantiation/2.cc
index 8a962ff..7f7628f 100644
--- a/libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/partial_sort_copy/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc
index 231411d..84fe246 100644
--- a/libstdc++-v3/testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/pop_heap/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/pop_heap/requirements/explicit_instantiation/2.cc
index 06a7d0d..4517c55 100644
--- a/libstdc++-v3/testsuite/25_algorithms/pop_heap/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/pop_heap/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/prev_permutation/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/prev_permutation/requirements/explicit_instantiation/2.cc
index 6a88861..d4dd586 100644
--- a/libstdc++-v3/testsuite/25_algorithms/prev_permutation/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/prev_permutation/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/push_heap/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/push_heap/requirements/explicit_instantiation/2.cc
index 5e60042..aaa4e77 100644
--- a/libstdc++-v3/testsuite/25_algorithms/push_heap/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/push_heap/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc
index ad1faf6..55cc05d 100644
--- a/libstdc++-v3/testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/remove/requirements/explicit_instantiation/pod.cc b/libstdc++-v3/testsuite/25_algorithms/remove/requirements/explicit_instantiation/pod.cc
index 1bc1bcc..ca53819 100644
--- a/libstdc++-v3/testsuite/25_algorithms/remove/requirements/explicit_instantiation/pod.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/remove/requirements/explicit_instantiation/pod.cc
@@ -39,6 +39,5 @@ namespace std
typedef pod_int value_type;
typedef value_type* iterator_type;
- template iterator_type remove(iterator_type, iterator_type,
- const value_type&);
+ template iterator_type remove<iterator_type, value_type>(iterator_type, iterator_type, const value_type&);
}
diff --git a/libstdc++-v3/testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc
index 4ac7047..af0426f 100644
--- a/libstdc++-v3/testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc
index 56e0375..654717f 100644
--- a/libstdc++-v3/testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc
index d84cb13..8647bce 100644
--- a/libstdc++-v3/testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc
index 692caf3..b13fda1 100644
--- a/libstdc++-v3/testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc
index 2f526e8..062f3e5 100644
--- a/libstdc++-v3/testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc
index 1338df9..8ff2bad 100644
--- a/libstdc++-v3/testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/set_difference/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/set_difference/requirements/explicit_instantiation/2.cc
index 238cfbc..0ed1590 100644
--- a/libstdc++-v3/testsuite/25_algorithms/set_difference/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/set_difference/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/set_intersection/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/set_intersection/requirements/explicit_instantiation/2.cc
index 95cd2bc..812daaa 100644
--- a/libstdc++-v3/testsuite/25_algorithms/set_intersection/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/set_intersection/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/requirements/explicit_instantiation/2.cc
index 3df1609..8f753ed 100644
--- a/libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/set_symmetric_difference/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/set_union/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/set_union/requirements/explicit_instantiation/2.cc
index d89ddeb..56fdda1 100644
--- a/libstdc++-v3/testsuite/25_algorithms/set_union/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/set_union/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/sort/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/sort/requirements/explicit_instantiation/2.cc
index 6142cf5..7b41732 100644
--- a/libstdc++-v3/testsuite/25_algorithms/sort/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/sort/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/sort_heap/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/sort_heap/requirements/explicit_instantiation/2.cc
index f8c686f..2b68d94 100644
--- a/libstdc++-v3/testsuite/25_algorithms/sort_heap/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/sort_heap/requirements/explicit_instantiation/2.cc
@@ -31,6 +31,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc
index 2eb8dbc..fafcf50 100644
--- a/libstdc++-v3/testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/stable_sort/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/stable_sort/requirements/explicit_instantiation/2.cc
index f08c7b2..e5235f2 100644
--- a/libstdc++-v3/testsuite/25_algorithms/stable_sort/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/stable_sort/requirements/explicit_instantiation/2.cc
@@ -31,6 +31,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc
index 0262c5c..730b8fa 100644
--- a/libstdc++-v3/testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/unique/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/unique/requirements/explicit_instantiation/2.cc
index ccc2278..7c1eeeb 100644
--- a/libstdc++-v3/testsuite/25_algorithms/unique/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/unique/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/unique_copy/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/unique_copy/requirements/explicit_instantiation/2.cc
index 3f45d54..dbed82a 100644
--- a/libstdc++-v3/testsuite/25_algorithms/unique_copy/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/unique_copy/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/25_algorithms/upper_bound/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/25_algorithms/upper_bound/requirements/explicit_instantiation/2.cc
index 192962c..66f8092 100644
--- a/libstdc++-v3/testsuite/25_algorithms/upper_bound/requirements/explicit_instantiation/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/upper_bound/requirements/explicit_instantiation/2.cc
@@ -30,6 +30,7 @@
// the GNU General Public License.
#include <algorithm>
+#include <functional>
#include <testsuite_api.h>
namespace std
diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp b/libstdc++-v3/testsuite/lib/libstdc++.exp
index b48fda1..b482bf5 100644
--- a/libstdc++-v3/testsuite/lib/libstdc++.exp
+++ b/libstdc++-v3/testsuite/lib/libstdc++.exp
@@ -83,7 +83,7 @@ proc libstdc++_init { testfile } {
global env
global v3-sharedlib
global srcdir blddir objdir tool_root_dir
- global cc cxx cxxflags cxxldflags
+ global cc cxx cxxflags cxxpchflags cxxldflags
global includes
global gluefile wrap_flags
global ld_library_path
@@ -184,6 +184,7 @@ proc libstdc++_init { testfile } {
# Default settings.
set cxx [transform "g++"]
set cxxflags "-g -O2 -D_GLIBCXX_ASSERT -fmessage-length=0"
+ set cxxpchflags ""
set cxxldflags ""
set cc [transform "gcc"]
# Locate testsuite_hooks.h and other testsuite headers.
@@ -221,6 +222,7 @@ proc libstdc++_init { testfile } {
# If we find a testsuite_flags file, we're testing in the build dir.
set cxx [exec sh $flags_file --build-cxx]
set cxxflags [exec sh $flags_file --cxxflags]
+ set cxxpchflags [exec sh $flags_file --cxxpchflags]
set cxxldflags [exec sh $flags_file --cxxldflags]
set cc [exec sh $flags_file --build-cc]
set includes [exec sh $flags_file --build-includes]
@@ -237,23 +239,29 @@ proc libstdc++_init { testfile } {
# this check until $cxx and such have been initialized because we
# perform a test compilation. (Ideally, gcc --print-file-name would
# list PCH files, but it does not.)
- global PCH_CXXFLAGS
- if ![info exists PCH_CXXFLAGS] then {
+ if { $cxxpchflags != "" } {
set src "config[pid].cc"
set f [open $src "w"]
puts $f "int main () {}"
close $f
+ # Fixme: "additional_flags=$cxxpchflags" fails, but would be
+ # useful as then the requested variant of the pre-build PCH
+ # files could be tested to see if it works.
set lines [v3_target_compile $src "config[pid].o" object \
- "additional_flags=-include additional_flags=bits/stdtr1c++.h"]
- if {$lines == "" } {
-# set PCH_CXXFLAGS "-include bits/extc++.h"
-# set PCH_CXXFLAGS "-include bits/stdtr1c++.h"
- set PCH_CXXFLAGS "-include bits/stdc++.h"
- } else {
- set PCH_CXXFLAGS ""
- }
+ "additional_flags=-include additional_flags=bits/stdc++.h"]
+ if { $lines != "" } {
+ verbose -log "Requested PCH file: $cxxpchflags"
+ verbose -log "is not working, and will not be used."
+ set cxxpchflags ""
+ }
file delete $src
+ }
+ v3track cxxpchflags 2
+
+ global PCH_CXXFLAGS
+ if ![info exists PCH_CXXFLAGS] then {
+ set PCH_CXXFLAGS $cxxpchflags
v3track PCH_CXXFLAGS 2
}
diff --git a/libstdc++-v3/testsuite/util/testsuite_api.h b/libstdc++-v3/testsuite/util/testsuite_api.h
index 3cd7c61..ca0d716 100644
--- a/libstdc++-v3/testsuite/util/testsuite_api.h
+++ b/libstdc++-v3/testsuite/util/testsuite_api.h
@@ -28,6 +28,7 @@
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.
+#include <exception>
#include <testsuite_hooks.h>
#ifndef _TESTSUITE_API