OSDN Git Service

* lib/gcc-dg.exp (gcc-dg-prune): Make linker message check
authoruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 17 Apr 2009 10:38:48 +0000 (10:38 +0000)
committeruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 17 Apr 2009 10:38:48 +0000 (10:38 +0000)
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146242 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/pr20257.f90
gcc/testsuite/lib/gcc-defs.exp
gcc/testsuite/lib/gcc-dg.exp
gcc/testsuite/lib/gfortran.exp

index b264523..e0a0afd 100644 (file)
@@ -1,3 +1,16 @@
+2009-04-17  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
+
+       * 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  <charlet@adacore.com>
 
        * gnat.dg/ref_type.ads, gnat.dg/ref_type.adb: Fix test after proper
index ca5a00b..77c885f 100644 (file)
@@ -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)
 
index 7bcbcab..53926a6 100644 (file)
@@ -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 ""
 }
 
index 1944e83..7d00acf 100644 (file)
@@ -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"
     }
index d001f65..a4d6e2b 100644 (file)
@@ -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