summaryrefslogtreecommitdiff
path: root/gcc/testsuite/lib/compat.exp
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/lib/compat.exp')
-rw-r--r--gcc/testsuite/lib/compat.exp12
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/testsuite/lib/compat.exp b/gcc/testsuite/lib/compat.exp
index 474af620d16..ee7cff56fbe 100644
--- a/gcc/testsuite/lib/compat.exp
+++ b/gcc/testsuite/lib/compat.exp
@@ -156,6 +156,8 @@ proc compat-run { testname objlist dest optall optfile optstr } {
proc compat-get-options-main { src } {
# dg-options sets a variable called dg-extra-tool-flags.
set dg-extra-tool-flags ""
+ # dg-options sets a variable called tool_flags.
+ set tool_flags ""
# dg-require-* sets dg-do-what.
upvar dg-do-what dg-do-what
@@ -164,6 +166,7 @@ proc compat-get-options-main { src } {
foreach op $tmp {
set cmd [lindex $op 0]
if { ![string compare "dg-options" $cmd] \
+ || [string match "dg-skip-if" $cmd] \
|| [string match "dg-require-*" $cmd] } {
set status [catch "$op" errmsg]
if { $status != 0 } {
@@ -275,6 +278,15 @@ proc compat-execute { src1 sid use_alt } {
set extra_flags_3 [compat-get-options $src3]
set compile_xfail_3 $compiler_conditional_xfail_data
+ # On the SPU, most of the compat test cases exceed local store size.
+ # Use automatic overlay support to make them fit.
+ if { [istarget spu-*-elf*] } {
+ set extra_flags_1 "$extra_flags_1 -Wl,--auto-overlay"
+ set extra_flags_1 "$extra_flags_1 -ffunction-sections"
+ set extra_flags_2 "$extra_flags_2 -ffunction-sections"
+ set extra_flags_3 "$extra_flags_3 -ffunction-sections"
+ }
+
# Define the names of the object files.
regsub "sid" "sid_main_tst.o" $sid obj1
regsub "sid" "sid_x_tst.o" $sid obj2_tst