* gcc.target/i386/clearcap.map: New file.
authorro <ro@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 1 Mar 2010 12:28:19 +0000 (12:28 +0000)
committerro <ro@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 1 Mar 2010 12:28:19 +0000 (12:28 +0000)
* gcc.target/i386/i386.exp: Check for linker -M mapfile support.
Pass clearcap.map by default if supported.

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

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/clearcap.map [new file with mode: 0644]
gcc/testsuite/gcc.target/i386/i386.exp

index ab52ef5..662fc3d 100644 (file)
@@ -1,5 +1,11 @@
 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
+       * gcc.target/i386/clearcap.map: New file.
+       * gcc.target/i386/i386.exp: Check for linker -M mapfile support.
+       Pass clearcap.map by default if supported.
+
+2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
        PR fortran/42900
        * gfortran.dg/stat_1.f90: Accept 'testfile' gid == parent dir gid.
        Explain this.
diff --git a/gcc/testsuite/gcc.target/i386/clearcap.map b/gcc/testsuite/gcc.target/i386/clearcap.map
new file mode 100644 (file)
index 0000000..147f922
--- /dev/null
@@ -0,0 +1,3 @@
+# clear all hardware capabilities emitted by Sun as: the tests here
+# guard against execution at runtime
+hwcap_1 = V0x0 OVERRIDE;
index 3ef9df6..85c6e04 100644 (file)
@@ -1,4 +1,5 @@
-# Copyright (C) 1997, 2004, 2007, 2008, 2009 Free Software Foundation, Inc.
+# Copyright (C) 1997, 2004, 2007, 2008, 2009, 2010
+# Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -160,6 +161,17 @@ proc check_effective_target_xop { } {
     } "-O2 -mxop" ]
 }
 
+# If the linker used understands -M <mapfile>, pass it to clear hardware
+# capabilities set by the Sun assembler.
+set FLAGS ""
+set clearcap_ldflags "-Wl,-M,$srcdir/$subdir/clearcap.map"
+
+if [check_no_compiler_messages mapfile executable {
+       int main (void) { return 0; }
+  } $clearcap_ldflags ] {
+  set FLAGS $clearcap_ldflags
+}
+
 # If a testcase doesn't have special options, use these.
 global DEFAULT_CFLAGS
 if ![info exists DEFAULT_CFLAGS] then {
@@ -184,7 +196,7 @@ set tests [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]]
 set tests [prune $tests $srcdir/$subdir/vect-args.c]
 
 # Main loop.
-dg-runtest $tests "" $DEFAULT_CFLAGS
+dg-runtest $tests $FLAGS $DEFAULT_CFLAGS
 
 # All done.
 dg-finish