Commit 6116ca65 by Benjamin Kosnik Committed by Benjamin Kosnik

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
parent f63bc637
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> 2007-10-05 Paolo Carlini <pcarlini@suse.de>
* testsuite/23_containers/map/moveable.cc: Remove dg-require-rvalref. * testsuite/23_containers/map/moveable.cc: Remove dg-require-rvalref.
......
...@@ -37,6 +37,7 @@ ...@@ -37,6 +37,7 @@
#define _RC_STRING_BASE_H 1 #define _RC_STRING_BASE_H 1
#include <ext/atomicity.h> #include <ext/atomicity.h>
#include <bits/stl_iterator_base_funcs.h>
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
......
...@@ -44,6 +44,8 @@ ...@@ -44,6 +44,8 @@
#include <bits/functexcept.h> #include <bits/functexcept.h>
#include <bits/localefwd.h> #include <bits/localefwd.h>
#include <bits/ostream_insert.h> #include <bits/ostream_insert.h>
#include <bits/stl_iterator.h>
#include <ext/numeric_traits.h>
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
......
...@@ -45,6 +45,7 @@ ...@@ -45,6 +45,7 @@
#include <cmath> #include <cmath>
#include <typeinfo> #include <typeinfo>
#include <new>
#include <tr1/tuple> #include <tr1/tuple>
#include <tr1/type_traits> #include <tr1/type_traits>
#include <bits/stringfwd.h> #include <bits/stringfwd.h>
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -39,6 +39,5 @@ namespace std ...@@ -39,6 +39,5 @@ namespace std
typedef pod_int value_type; typedef pod_int value_type;
typedef value_type* iterator_type; typedef value_type* iterator_type;
template iterator_type remove(iterator_type, iterator_type, template iterator_type remove<iterator_type, value_type>(iterator_type, iterator_type, const value_type&);
const value_type&);
} }
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
// the GNU General Public License. // the GNU General Public License.
#include <algorithm> #include <algorithm>
#include <functional>
#include <testsuite_api.h> #include <testsuite_api.h>
namespace std namespace std
......
...@@ -83,7 +83,7 @@ proc libstdc++_init { testfile } { ...@@ -83,7 +83,7 @@ proc libstdc++_init { testfile } {
global env global env
global v3-sharedlib global v3-sharedlib
global srcdir blddir objdir tool_root_dir global srcdir blddir objdir tool_root_dir
global cc cxx cxxflags cxxldflags global cc cxx cxxflags cxxpchflags cxxldflags
global includes global includes
global gluefile wrap_flags global gluefile wrap_flags
global ld_library_path global ld_library_path
...@@ -184,6 +184,7 @@ proc libstdc++_init { testfile } { ...@@ -184,6 +184,7 @@ proc libstdc++_init { testfile } {
# Default settings. # Default settings.
set cxx [transform "g++"] set cxx [transform "g++"]
set cxxflags "-g -O2 -D_GLIBCXX_ASSERT -fmessage-length=0" set cxxflags "-g -O2 -D_GLIBCXX_ASSERT -fmessage-length=0"
set cxxpchflags ""
set cxxldflags "" set cxxldflags ""
set cc [transform "gcc"] set cc [transform "gcc"]
# Locate testsuite_hooks.h and other testsuite headers. # Locate testsuite_hooks.h and other testsuite headers.
...@@ -221,6 +222,7 @@ proc libstdc++_init { testfile } { ...@@ -221,6 +222,7 @@ proc libstdc++_init { testfile } {
# If we find a testsuite_flags file, we're testing in the build dir. # If we find a testsuite_flags file, we're testing in the build dir.
set cxx [exec sh $flags_file --build-cxx] set cxx [exec sh $flags_file --build-cxx]
set cxxflags [exec sh $flags_file --cxxflags] set cxxflags [exec sh $flags_file --cxxflags]
set cxxpchflags [exec sh $flags_file --cxxpchflags]
set cxxldflags [exec sh $flags_file --cxxldflags] set cxxldflags [exec sh $flags_file --cxxldflags]
set cc [exec sh $flags_file --build-cc] set cc [exec sh $flags_file --build-cc]
set includes [exec sh $flags_file --build-includes] set includes [exec sh $flags_file --build-includes]
...@@ -237,23 +239,29 @@ proc libstdc++_init { testfile } { ...@@ -237,23 +239,29 @@ proc libstdc++_init { testfile } {
# this check until $cxx and such have been initialized because we # this check until $cxx and such have been initialized because we
# perform a test compilation. (Ideally, gcc --print-file-name would # perform a test compilation. (Ideally, gcc --print-file-name would
# list PCH files, but it does not.) # list PCH files, but it does not.)
global PCH_CXXFLAGS if { $cxxpchflags != "" } {
if ![info exists PCH_CXXFLAGS] then {
set src "config[pid].cc" set src "config[pid].cc"
set f [open $src "w"] set f [open $src "w"]
puts $f "int main () {}" puts $f "int main () {}"
close $f 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 \ set lines [v3_target_compile $src "config[pid].o" object \
"additional_flags=-include additional_flags=bits/stdtr1c++.h"] "additional_flags=-include additional_flags=bits/stdc++.h"]
if {$lines == "" } { if { $lines != "" } {
# set PCH_CXXFLAGS "-include bits/extc++.h" verbose -log "Requested PCH file: $cxxpchflags"
# set PCH_CXXFLAGS "-include bits/stdtr1c++.h" verbose -log "is not working, and will not be used."
set PCH_CXXFLAGS "-include bits/stdc++.h" set cxxpchflags ""
} else { }
set PCH_CXXFLAGS ""
}
file delete $src file delete $src
}
v3track cxxpchflags 2
global PCH_CXXFLAGS
if ![info exists PCH_CXXFLAGS] then {
set PCH_CXXFLAGS $cxxpchflags
v3track PCH_CXXFLAGS 2 v3track PCH_CXXFLAGS 2
} }
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
// invalidate any other reasons why the executable file might be covered by // invalidate any other reasons why the executable file might be covered by
// the GNU General Public License. // the GNU General Public License.
#include <exception>
#include <testsuite_hooks.h> #include <testsuite_hooks.h>
#ifndef _TESTSUITE_API #ifndef _TESTSUITE_API
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment