From c9184dd88127f610ee5cd1a3f62122a68c23665a Mon Sep 17 00:00:00 2001 From: Ulrich Weigand Date: Fri, 17 Apr 2009 10:38:48 +0000 Subject: [PATCH] gcc-dg.exp (gcc-dg-prune): Make linker message check less strict so it also works with auto-overlay support. * lib/gcc-dg.exp (gcc-dg-prune): Make linker message check less strict so it also works with auto-overlay support. * lib/gcc-defs.exp (${tool}_check_unsupported_p): Add check for "exceeds local store" linker errors on the SPU. * lib/gfortran.exp: Include target-supports.exp. (gfortran_init): On SPU targets where automatic overlay support is available, use it to build all Fortran test cases. * gfortran.dg/pr20257.f90: Skip on spu-*-* targets. From-SVN: r146242 --- gcc/testsuite/ChangeLog | 13 +++++++++++++ gcc/testsuite/gfortran.dg/pr20257.f90 | 1 + gcc/testsuite/lib/gcc-defs.exp | 4 ++++ gcc/testsuite/lib/gcc-dg.exp | 2 +- gcc/testsuite/lib/gfortran.exp | 8 ++++++++ 5 files changed, 27 insertions(+), 1 deletion(-) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b264523..e0a0afd 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,16 @@ +2009-04-17 Ulrich Weigand + + * lib/gcc-dg.exp (gcc-dg-prune): Make linker message check + less strict so it also works with auto-overlay support. + * lib/gcc-defs.exp (${tool}_check_unsupported_p): Add check + for "exceeds local store" linker errors on the SPU. + + * lib/gfortran.exp: Include target-supports.exp. + (gfortran_init): On SPU targets where automatic overlay support + is available, use it to build all Fortran test cases. + + * gfortran.dg/pr20257.f90: Skip on spu-*-* targets. + 2009-04-17 Arnaud Charlet * gnat.dg/ref_type.ads, gnat.dg/ref_type.adb: Fix test after proper diff --git a/gcc/testsuite/gfortran.dg/pr20257.f90 b/gcc/testsuite/gfortran.dg/pr20257.f90 index ca5a00b..77c885f 100644 --- a/gcc/testsuite/gfortran.dg/pr20257.f90 +++ b/gcc/testsuite/gfortran.dg/pr20257.f90 @@ -1,4 +1,5 @@ ! { dg-do run { target fd_truncate } } +! { dg-skip-if "Too big for local store" { spu-*-* } { "*" } { "" } } integer,parameter :: n = 10000 real(8) array(10000) diff --git a/gcc/testsuite/lib/gcc-defs.exp b/gcc/testsuite/lib/gcc-defs.exp index 7bcbcab..53926a6 100644 --- a/gcc/testsuite/lib/gcc-defs.exp +++ b/gcc/testsuite/lib/gcc-defs.exp @@ -155,6 +155,10 @@ proc ${tool}_check_unsupported_p { output } { if [regexp "(^|\n)\[^\n\]*: region \[^\n\]* is full" $output] { return "memory full" } + if {[istarget spu-*-*] && \ + [string match "*exceeds local store*" $output]} { + return "memory full" + } return "" } diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp index 1944e83..7d00acf 100644 --- a/gcc/testsuite/lib/gcc-dg.exp +++ b/gcc/testsuite/lib/gcc-dg.exp @@ -186,7 +186,7 @@ proc gcc-dg-prune { system text } { # Likewise, if we see ".text exceeds local store range" or # similar. if {[string match "spu-*" $system] && \ - [string match "*exceeds local store range*" $text]} { + [string match "*exceeds local store*" $text]} { # The format here is important. See dg.exp. return "::unsupported::memory full" } diff --git a/gcc/testsuite/lib/gfortran.exp b/gcc/testsuite/lib/gfortran.exp index d001f65..a4d6e2b 100644 --- a/gcc/testsuite/lib/gfortran.exp +++ b/gcc/testsuite/lib/gfortran.exp @@ -27,6 +27,7 @@ load_lib prune.exp load_lib gcc-defs.exp load_lib timeout.exp load_lib target-libpath.exp +load_lib target-supports.exp # # GFORTRAN_UNDER_TEST is the compiler under test. @@ -177,6 +178,13 @@ proc gfortran_init { args } { lappend ALWAYS_GFORTRANFLAGS "additional_flags=$TOOL_OPTIONS" } + # On the SPU, most of the fortran test cases exceed local store size. + # Use automatic overlay support to make them fit. + if { [check_effective_target_spu_auto_overlay] } { + lappend ALWAYS_GFORTRANFLAGS "ldflags=-Wl,--auto-overlay" + lappend ALWAYS_GFORTRANFLAGS "ldflags=-Wl,--reserved-space=131072" + } + verbose -log "ALWAYS_GFORTRANFLAGS set to $ALWAYS_GFORTRANFLAGS" verbose "gfortran is initialized" 3 -- 2.7.4