summaryrefslogtreecommitdiffstats
path: root/libstdc++-v3/testsuite/lib
diff options
context:
space:
mode:
authorbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>2012-04-25 22:47:52 +0000
committerbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>2012-04-25 22:47:52 +0000
commit0cd8cd4b469f601d13c32143b8485cbda63d9fd3 (patch)
tree689f97a10b524a49f9bb9a883715f27f56e26dc7 /libstdc++-v3/testsuite/lib
parent96e814b87f4e8a68965d43274d3778f2dfd7c927 (diff)
downloadppe42-gcc-0cd8cd4b469f601d13c32143b8485cbda63d9fd3.tar.gz
ppe42-gcc-0cd8cd4b469f601d13c32143b8485cbda63d9fd3.zip
2012-04-25 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/52689 * testsuite/17_intro/static.cc: Fix. * testsuite/lib/dg-options.exp (dg-require-static-libstdcxx): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186845 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/testsuite/lib')
-rw-r--r--libstdc++-v3/testsuite/lib/dg-options.exp9
-rw-r--r--libstdc++-v3/testsuite/lib/libstdc++.exp44
2 files changed, 53 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/lib/dg-options.exp b/libstdc++-v3/testsuite/lib/dg-options.exp
index d5eb5e827ad..9d5624aedbb 100644
--- a/libstdc++-v3/testsuite/lib/dg-options.exp
+++ b/libstdc++-v3/testsuite/lib/dg-options.exp
@@ -197,6 +197,15 @@ proc dg-require-nprocs { args } {
return
}
+proc dg-require-static-libstdcxx { args } {
+ if { ![ check_v3_target_static_libstdcxx ] } {
+ upvar dg-do-what dg-do-what
+ set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
+ return
+ }
+ return
+}
+
proc add_options_for_no_pch { flags } {
# This forces any generated and possibly included PCH to be invalid.
return "-D__GLIBCXX__=99999999"
diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp b/libstdc++-v3/testsuite/lib/libstdc++.exp
index c1ccfa5d132..9a9e0cba625 100644
--- a/libstdc++-v3/testsuite/lib/libstdc++.exp
+++ b/libstdc++-v3/testsuite/lib/libstdc++.exp
@@ -1693,5 +1693,49 @@ proc check_v3_target_nprocs { } {
return $et_nprocs
}
+proc check_v3_target_static_libstdcxx { } {
+ global cxxflags
+ global DEFAULT_CXXFLAGS
+ global et_static_libstdcxx
+
+ global tool
+
+ if [info exists et_static_libstdcxx] {
+ verbose "check_v3_target_static_libstdcxx: using cached result" 2
+ } else {
+ set et_static_libstdcxx 0
+
+ # Set up and link a C++0x test program that depends
+ # on static linking
+ set src static-maybe[pid].cc
+
+ set f [open $src "w"]
+ puts $f "#include <iostream>"
+ puts $f "int main() {"
+ puts $f "int i(415);"
+ puts $f "std::cout<< i << std::endl;"
+ puts $f "return 0; }"
+ puts $f ""
+ close $f
+
+ set cxxflags_saved $cxxflags
+ set cxxflags "$cxxflags $DEFAULT_CXXFLAGS -static-libstdc++"
+
+ set lines [v3_target_compile $src /dev/null executable ""]
+ set cxxflags $cxxflags_saved
+ file delete $src
+
+ if [string match "" $lines] {
+ # No error message, link succeeded.
+ set et_static_libstdcxx 1
+ } else {
+ verbose "check_v3_target_static_libstdcxx: compilation failed" 2
+ }
+ }
+ verbose "check_v3_target_static_libstdcxx: $et_static_libstdcxx" 2
+ return $et_static_libstdcxx
+}
+
+
set additional_prunes ""
OpenPOWER on IntegriCloud