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
This commit is contained in:
Ulrich Weigand 2009-04-17 10:38:48 +00:00 committed by Ulrich Weigand
parent c049309d97
commit c9184dd881
5 changed files with 27 additions and 1 deletions

View 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

View 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)

View 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 ""
}

View 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"
}

View 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