diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a35b25fc210..658be507224 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2008-07-22 Ulrich Weigand + + * lib/target-supports.exp (check_effective_target_spu_auto_overlay): + New procedure. + * lib/compat.exp (compat-execute): Use it to test whether toolchain + supports automatic overlay generation for the SPU. + 2008-07-22 Daniel Kraft PR fortran/29835 diff --git a/gcc/testsuite/lib/compat.exp b/gcc/testsuite/lib/compat.exp index ee7cff56fbe..e8ca8fc7987 100644 --- a/gcc/testsuite/lib/compat.exp +++ b/gcc/testsuite/lib/compat.exp @@ -280,7 +280,7 @@ proc compat-execute { src1 sid use_alt } { # 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*] } { + if { [check_effective_target_spu_auto_overlay] } { 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" diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 9c12dddaeed..66231c669b0 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -1390,6 +1390,19 @@ proc check_effective_target_powerpc_altivec { } { } } +# Return 1 if this is a SPU target with a toolchain that +# supports automatic overlay generation. + +proc check_effective_target_spu_auto_overlay { } { + if { [istarget spu*-*-elf*] } { + return [check_no_compiler_messages spu_auto_overlay executable { + int main (void) { } + } "-Wl,--auto-overlay" ] + } else { + return 0 + } +} + # The VxWorks SPARC simulator accepts only EM_SPARC executables and # chokes on EM_SPARC32PLUS or EM_SPARCV9 executables. Return 1 if the # test environment appears to run executables on such a simulator.