From 7cff41e8917d88a6a56b151edc71cb5be689e423 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Sun, 9 Sep 2007 02:10:17 +0100 Subject: [PATCH] file-format.exp (gcc_target_object_format): Use remote_exec to call objdump. gcc/testsuite: * lib/file-format.exp (gcc_target_object_format): Use remote_exec to call objdump. * lib/scanasm.exp (scan-assembler-dem, scan-assembler-dem-not): Use remote_exec to call c++filt. * lib/target-supports-dg.exp (dg-require-host-local): New. * gcc.misc-tests/options.exp: Allow .exe in command paths. * g++.dg/parse/repo1.C: Use dg-require-host-local. * g++.dg/rtti/repo1.C: Likewise. * g++.dg/template/repo1.C: Likewise. * g++.dg/template/repo2.C: Likewise. * g++.dg/template/repo3.C: Likewise. * g++.dg/template/repo4.C: Likewise. * g++.dg/template/repo5.C: Likewise. * g++.old-deja/g++.pt/instantiate4.C: Likewise. * g++.old-deja/g++.pt/instantiate6.C: Likewise. * g++.old-deja/g++.pt/repo1.C: Likewise. * g++.old-deja/g++.pt/repo2.C: Likewise. * g++.old-deja/g++.pt/repo3.C: Likewise. * g++.old-deja/g++.pt/repo4.C: Likewise. * gcc.dg/cpp/trad/builtins.c: Likewise. libstdc++-v3: * testsuite/lib/libstdc++.exp (v3-build-support): Specify output file for preprocessing. Use remote_exec to call ar and ranlib. From-SVN: r128283 --- gcc/testsuite/ChangeLog | 23 +++++++++++++++++++ gcc/testsuite/g++.dg/parse/repo1.C | 1 + gcc/testsuite/g++.dg/rtti/repo1.C | 1 + gcc/testsuite/g++.dg/template/repo1.C | 1 + gcc/testsuite/g++.dg/template/repo2.C | 1 + gcc/testsuite/g++.dg/template/repo3.C | 1 + gcc/testsuite/g++.dg/template/repo4.C | 1 + gcc/testsuite/g++.dg/template/repo5.C | 1 + .../g++.old-deja/g++.pt/instantiate4.C | 1 + .../g++.old-deja/g++.pt/instantiate6.C | 1 + gcc/testsuite/g++.old-deja/g++.pt/repo1.C | 1 + gcc/testsuite/g++.old-deja/g++.pt/repo2.C | 1 + gcc/testsuite/g++.old-deja/g++.pt/repo3.C | 1 + gcc/testsuite/g++.old-deja/g++.pt/repo4.C | 1 + gcc/testsuite/gcc.dg/cpp/trad/builtins.c | 2 ++ gcc/testsuite/gcc.misc-tests/options.exp | 6 ++--- gcc/testsuite/lib/file-format.exp | 5 ++-- gcc/testsuite/lib/scanasm.exp | 10 ++++---- gcc/testsuite/lib/target-supports-dg.exp | 12 ++++++++++ libstdc++-v3/ChangeLog | 5 ++++ libstdc++-v3/testsuite/lib/libstdc++.exp | 19 ++++++++------- 21 files changed, 75 insertions(+), 20 deletions(-) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b29fc791803..06d1e728f1f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,26 @@ +2007-09-09 Joseph Myers + + * lib/file-format.exp (gcc_target_object_format): Use remote_exec + to call objdump. + * lib/scanasm.exp (scan-assembler-dem, scan-assembler-dem-not): + Use remote_exec to call c++filt. + * lib/target-supports-dg.exp (dg-require-host-local): New. + * gcc.misc-tests/options.exp: Allow .exe in command paths. + * g++.dg/parse/repo1.C: Use dg-require-host-local. + * g++.dg/rtti/repo1.C: Likewise. + * g++.dg/template/repo1.C: Likewise. + * g++.dg/template/repo2.C: Likewise. + * g++.dg/template/repo3.C: Likewise. + * g++.dg/template/repo4.C: Likewise. + * g++.dg/template/repo5.C: Likewise. + * g++.old-deja/g++.pt/instantiate4.C: Likewise. + * g++.old-deja/g++.pt/instantiate6.C: Likewise. + * g++.old-deja/g++.pt/repo1.C: Likewise. + * g++.old-deja/g++.pt/repo2.C: Likewise. + * g++.old-deja/g++.pt/repo3.C: Likewise. + * g++.old-deja/g++.pt/repo4.C: Likewise. + * gcc.dg/cpp/trad/builtins.c: Likewise. + 2007-09-08 Zdenek Dvorak PR tree-optimization/32283 diff --git a/gcc/testsuite/g++.dg/parse/repo1.C b/gcc/testsuite/g++.dg/parse/repo1.C index 44f004b8395..efadd58723e 100644 --- a/gcc/testsuite/g++.dg/parse/repo1.C +++ b/gcc/testsuite/g++.dg/parse/repo1.C @@ -1,4 +1,5 @@ // { dg-options "-frepo" } +// { dg-require-host-local "" } extern "C" inline void f() {} diff --git a/gcc/testsuite/g++.dg/rtti/repo1.C b/gcc/testsuite/g++.dg/rtti/repo1.C index 54b52b397aa..7ff813bcdfe 100644 --- a/gcc/testsuite/g++.dg/rtti/repo1.C +++ b/gcc/testsuite/g++.dg/rtti/repo1.C @@ -1,5 +1,6 @@ // PR c++/22204 // { dg-options "-frepo" } +// { dg-require-host-local "" } #include template diff --git a/gcc/testsuite/g++.dg/template/repo1.C b/gcc/testsuite/g++.dg/template/repo1.C index 08eea8883dd..cb4c5a1eb24 100644 --- a/gcc/testsuite/g++.dg/template/repo1.C +++ b/gcc/testsuite/g++.dg/template/repo1.C @@ -1,4 +1,5 @@ // { dg-options "-frepo" } +// { dg-require-host-local "" } struct A { A(); diff --git a/gcc/testsuite/g++.dg/template/repo2.C b/gcc/testsuite/g++.dg/template/repo2.C index d2e08013811..3618997dc2a 100644 --- a/gcc/testsuite/g++.dg/template/repo2.C +++ b/gcc/testsuite/g++.dg/template/repo2.C @@ -1,5 +1,6 @@ // PR c++/17163 // { dg-options "-frepo" } +// { dg-require-host-local "" } template struct __Atomicity_lock diff --git a/gcc/testsuite/g++.dg/template/repo3.C b/gcc/testsuite/g++.dg/template/repo3.C index dfc085a211b..49a8fa5bfe4 100644 --- a/gcc/testsuite/g++.dg/template/repo3.C +++ b/gcc/testsuite/g++.dg/template/repo3.C @@ -1,4 +1,5 @@ // { dg-options "-frepo -DF='a'" } +// { dg-require-host-local "" } template void f () {} template void g () { f(); } diff --git a/gcc/testsuite/g++.dg/template/repo4.C b/gcc/testsuite/g++.dg/template/repo4.C index bd07f9580f9..27714b5f115 100644 --- a/gcc/testsuite/g++.dg/template/repo4.C +++ b/gcc/testsuite/g++.dg/template/repo4.C @@ -1,6 +1,7 @@ // PR c++/17775 // { dg-options "-frepo" } // { dg-final { cleanup-repo-files } } +// { dg-require-host-local "" } namespace { struct Foo {}; diff --git a/gcc/testsuite/g++.dg/template/repo5.C b/gcc/testsuite/g++.dg/template/repo5.C index 334b0a53ce0..0d2893eee91 100644 --- a/gcc/testsuite/g++.dg/template/repo5.C +++ b/gcc/testsuite/g++.dg/template/repo5.C @@ -1,6 +1,7 @@ // PR c++/25625 // { dg-options "-frepo" } // { dg-final { cleanup-repo-files } } +// { dg-require-host-local "" } template< typename T, T N > struct integral_c { static const T value = N; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/instantiate4.C b/gcc/testsuite/g++.old-deja/g++.pt/instantiate4.C index 031b6badf7f..9c1aaf58f3e 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/instantiate4.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/instantiate4.C @@ -1,5 +1,6 @@ // { dg-do link } // { dg-options "-frepo -Werror" } +// { dg-require-host-local "" } // Build then link: diff --git a/gcc/testsuite/g++.old-deja/g++.pt/instantiate6.C b/gcc/testsuite/g++.old-deja/g++.pt/instantiate6.C index beccdc253fe..a1223fc5d85 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/instantiate6.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/instantiate6.C @@ -1,5 +1,6 @@ // { dg-do link } // { dg-options "-frepo" } +// { dg-require-host-local "" } // Build then link: // Simplified from testcase by Erez Louidor Lior diff --git a/gcc/testsuite/g++.old-deja/g++.pt/repo1.C b/gcc/testsuite/g++.old-deja/g++.pt/repo1.C index c04b69e1034..f3fdddc7f52 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/repo1.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/repo1.C @@ -1,5 +1,6 @@ // { dg-do link } // { dg-options "-frepo" } +// { dg-require-host-local "" } // Bug: g++ complains about duplicate explicit instantiations with -frepo. // From Jason Merrill diff --git a/gcc/testsuite/g++.old-deja/g++.pt/repo2.C b/gcc/testsuite/g++.old-deja/g++.pt/repo2.C index c05fa108136..b40961c1558 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/repo2.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/repo2.C @@ -1,5 +1,6 @@ // { dg-do link } // { dg-options "-frepo" } +// { dg-require-host-local "" } // Test that collect2 isn't confused by GNU ld's "In function `foo':" message. // Contributed by Jason Merrill diff --git a/gcc/testsuite/g++.old-deja/g++.pt/repo3.C b/gcc/testsuite/g++.old-deja/g++.pt/repo3.C index 9b218fcb206..7995030fe03 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/repo3.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/repo3.C @@ -1,5 +1,6 @@ // { dg-do link } // { dg-options "-frepo" } +// { dg-require-host-local "" } // Test that we properly generate the vtable and such for C. // Contributed by scott snyder diff --git a/gcc/testsuite/g++.old-deja/g++.pt/repo4.C b/gcc/testsuite/g++.old-deja/g++.pt/repo4.C index d1a2d70d950..6a0a55aba55 100644 --- a/gcc/testsuite/g++.old-deja/g++.pt/repo4.C +++ b/gcc/testsuite/g++.old-deja/g++.pt/repo4.C @@ -1,5 +1,6 @@ // { dg-do link } // { dg-options "-frepo" } +// { dg-require-host-local "" } // Build then link: template diff --git a/gcc/testsuite/gcc.dg/cpp/trad/builtins.c b/gcc/testsuite/gcc.dg/cpp/trad/builtins.c index df2718983a1..74798bbb47f 100644 --- a/gcc/testsuite/gcc.dg/cpp/trad/builtins.c +++ b/gcc/testsuite/gcc.dg/cpp/trad/builtins.c @@ -50,3 +50,5 @@ int main () return 0; } + +/* { dg-require-host-local "" } */ diff --git a/gcc/testsuite/gcc.misc-tests/options.exp b/gcc/testsuite/gcc.misc-tests/options.exp index b7a9cb5b5a1..1d4b779fe11 100644 --- a/gcc/testsuite/gcc.misc-tests/options.exp +++ b/gcc/testsuite/gcc.misc-tests/options.exp @@ -36,15 +36,15 @@ proc check_for_options {language gcc_options compiler_pattern as_pattern ld_patt set gcc_output [gcc_target_compile $filename.c $filename.x executable $gcc_options] remote_file build delete $filename.c $filename.x $filename.gcno - if {![regexp -- "/$compiler -quiet.*$compiler_pattern" $gcc_output]} { + if {![regexp -- "/${compiler}(\\.exe)? -quiet.*$compiler_pattern" $gcc_output]} { fail "$test (compiler options)" return } - if {![regexp -- " *as .*$as_pattern" $gcc_output]} { + if {![regexp -- " *as(\\.exe)? .*$as_pattern" $gcc_output]} { fail "$test (assembler options)" return } - if {![regexp -- "/collect2 .*$ld_pattern" $gcc_output]} { + if {![regexp -- "/collect2(\\.exe)? .*$ld_pattern" $gcc_output]} { fail "$test (linker options)" return } diff --git a/gcc/testsuite/lib/file-format.exp b/gcc/testsuite/lib/file-format.exp index 87bddd775f1..491cf1274d9 100644 --- a/gcc/testsuite/lib/file-format.exp +++ b/gcc/testsuite/lib/file-format.exp @@ -48,9 +48,8 @@ proc gcc_target_object_format { } { ${tool}_target_compile objfmtst.c objfmtst.o object "" file delete objfmtst.c - catch { - set output [exec $objdump_name --file-headers objfmtst.o ] - } output + set output [remote_exec host "$objdump_name" "--file-headers objfmtst.o"] + set output [lindex $output 1] file delete objfmtst.o diff --git a/gcc/testsuite/lib/scanasm.exp b/gcc/testsuite/lib/scanasm.exp index 83d1d441d13..0621e7d075b 100644 --- a/gcc/testsuite/lib/scanasm.exp +++ b/gcc/testsuite/lib/scanasm.exp @@ -217,9 +217,8 @@ proc scan-assembler-dem { args } { upvar 2 name testcase set output_file "[file rootname [file tail $testcase]].s" - set fd [open "| $cxxfilt < $output_file" r] - set text [read $fd] - close $fd + set output [remote_exec host "$cxxfilt" "" "$output_file"] + set text [lindex $output 1] if [regexp -- [lindex $args 0] $text] { pass "$testcase scan-assembler-dem [lindex $args 0]" @@ -263,9 +262,8 @@ proc scan-assembler-dem-not { args } { upvar 2 name testcase set output_file "[file rootname [file tail $testcase]].s" - set fd [open "| $cxxfilt < $output_file" r] - set text [read $fd] - close $fd + set output [remote_exec host "$cxxfilt" "" "$output_file"] + set text [lindex $output 1] if ![regexp -- [lindex $args 0] $text] { pass "$testcase scan-assembler-dem-not [lindex $args 0]" diff --git a/gcc/testsuite/lib/target-supports-dg.exp b/gcc/testsuite/lib/target-supports-dg.exp index 40f82171dea..e7f9175fa6f 100644 --- a/gcc/testsuite/lib/target-supports-dg.exp +++ b/gcc/testsuite/lib/target-supports-dg.exp @@ -150,6 +150,18 @@ proc dg-require-cxa-atexit { args } { } } +# If the host is remote rather than the same as the build system, skip +# this test. Some tests are incompatible with DejaGnu's handling of +# remote hosts, which involves copying the source file to the host and +# compiling it with a relative path and "-o a.out". + +proc dg-require-host-local { args } { + if [ is_remote host ] { + upvar dg-do-what dg-do-what + set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] + } +} + # Check the flags with which the test will be run against options in # a test directive that will skip or xfail that test. The DejaGnu proc # check_conditional_xfail will look at the options in compiler_flags, so diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 0f653f7d897..3faf3ff83b0 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2007-09-09 Joseph Myers + + * testsuite/lib/libstdc++.exp (v3-build-support): Specify output + file for preprocessing. Use remote_exec to call ar and ranlib. + 2007-09-08 Benjamin Kosnik * include/bits/functional_hash.h: Add ext/numeric_traits.h. diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp b/libstdc++-v3/testsuite/lib/libstdc++.exp index 70b588d20df..cc24fc9afbd 100644 --- a/libstdc++-v3/testsuite/lib/libstdc++.exp +++ b/libstdc++-v3/testsuite/lib/libstdc++.exp @@ -452,12 +452,15 @@ proc v3-build_support { } { set libtest_objs "" set config_src "config.cc" + set config_out "config.ii" set f [open $config_src "w"] puts $f "#include " puts $f "#include " close $f - set preprocessed [v3_target_compile $config_src "" \ - preprocess "additional_flags=-dN"] + v3_target_compile $config_src $config_out preprocess "additional_flags=-dN" + set file [open $config_out r] + set preprocessed [read $file] + close $file if { [string first "_GLIBCXX_USE_WCHAR_T" $preprocessed] != -1 } { verbose -log "wchar_t support detected" set v3-wchar_t 1 @@ -509,9 +512,9 @@ proc v3-build_support { } { } else { set ar [transform "ar"] } - set arcommand "$ar -rc ./libtestc++.a ${libtest_objs}" - verbose -log "$arcommand" - set result [lindex [local_exec "$arcommand" "" "" 300] 0] + set arargs "-rc ./libtestc++.a ${libtest_objs}" + verbose -log "$ar $arargs" + set result [lindex [remote_exec host "$ar" "$arargs"] 0] verbose "link result is $result" if { $result == 0 } { if [info exists env(RANLIB)] { @@ -519,9 +522,9 @@ proc v3-build_support { } { } else { set ranlib [transform "ranlib"] } - set ranlibcommand "$ranlib ./libtestc++.a" - verbose -log "$ranlibcommand" - set result [lindex [local_exec "$ranlibcommand" "" "" 300] 0] + set ranlibargs "./libtestc++.a" + verbose -log "$ranlib $ranlibargs" + set result [lindex [remote_exec host "$ranlib" "$ranlibargs"] 0] if { $result != 0 } { error "could not link libtestc++.a" }