sourcebuild.texi (Effective-Target Keywords, [...]): Document mmap.
authorRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Mon, 25 Jul 2011 16:44:22 +0000 (16:44 +0000)
committerRainer Orth <ro@gcc.gnu.org>
Mon, 25 Jul 2011 16:44:22 +0000 (16:44 +0000)
gcc:
* doc/sourcebuild.texi (Effective-Target Keywords, Environment
attributes): Document mmap.

gcc/testsuite:
* lib/target-supports.exp (check_effective_target_mmap): New proc.

* gcc.c-torture/execute/loop-2f.c: Remove #ifdef __unix__.
* gcc.c-torture/execute/loop-2g.c: Likewise.
* gcc.c-torture/execute/loop-2f.x: Load target-supports.exp.
Require mmap support.
* gcc.c-torture/execute/loop-2g.x: Likewise.
* gcc.dg/20030711-1.c: Replace dg-do target list by mmap.
(MAP_ANON): Provide default.
* gcc.dg/20050826-1.c: Likewise.
* gcc.target/i386/pr36533.c: Likewise.
* gcc.dg/vect/pr49038.c: Remove dg-do run.
Use dg-require-effective-target mmap.

From-SVN: r176760

12 files changed:
gcc/ChangeLog
gcc/doc/sourcebuild.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/loop-2f.c
gcc/testsuite/gcc.c-torture/execute/loop-2f.x
gcc/testsuite/gcc.c-torture/execute/loop-2g.c
gcc/testsuite/gcc.c-torture/execute/loop-2g.x
gcc/testsuite/gcc.dg/20030711-1.c
gcc/testsuite/gcc.dg/20050826-1.c
gcc/testsuite/gcc.dg/vect/pr49038.c
gcc/testsuite/gcc.target/i386/pr36533.c
gcc/testsuite/lib/target-supports.exp

index c64a0611d253758a3c738c67351f4cf49aabd735..8ffc8f10660905b92fb50f45c62813e0f5728f28 100644 (file)
@@ -1,3 +1,8 @@
+2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * doc/sourcebuild.texi (Effective-Target Keywords, Environment
+       attributes): Document mmap.
+
 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
 
        * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
index 3d41c0d029ea9f8edb07a4ce384529d7241e62a2..ea6fedb239067e01eb1ff0359575d284268ac70b 100644 (file)
@@ -1679,6 +1679,9 @@ Target might have errors of a few ULP in string to floating-point
 conversion functions and overflow is not always detected correctly by
 those functions.
 
+@item mmap
+Target supports @code{mmap}.
+
 @item newlib
 Target supports Newlib.
 
index 596ef6ae17d3d33e4253323be9768da9225daaad..b90356962f8a8b2ec791b86c2bd2a41073a5d4a0 100644 (file)
@@ -1,3 +1,19 @@
+2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       * lib/target-supports.exp (check_effective_target_mmap): New proc.
+
+       * gcc.c-torture/execute/loop-2f.c: Remove #ifdef __unix__.
+       * gcc.c-torture/execute/loop-2g.c: Likewise.
+       * gcc.c-torture/execute/loop-2f.x: Load target-supports.exp.
+       Require mmap support.
+       * gcc.c-torture/execute/loop-2g.x: Likewise.
+       * gcc.dg/20030711-1.c: Replace dg-do target list by mmap.
+       (MAP_ANON): Provide default.
+       * gcc.dg/20050826-1.c: Likewise.
+       * gcc.target/i386/pr36533.c: Likewise.
+       * gcc.dg/vect/pr49038.c: Remove dg-do run.
+       Use dg-require-effective-target mmap.
+
 2011-07-25  Paolo Carlini  <paolo.carlini@oracle.com>
 
        PR c++/49838
index 9f544b9fcbdeb32b3543e1e65f15d875bbb30d9d..4803d64daa9d501a69eaeca3a218e2fc08d415ea 100644 (file)
@@ -1,6 +1,5 @@
 #include <limits.h>
 
-#ifdef __unix__ /* ??? Is that good enough? */
 #include <sys/types.h>
 #include <sys/mman.h>
 #include <sys/stat.h>
@@ -18,7 +17,6 @@
 #ifndef MAP_FIXED
 #define MAP_FIXED 0
 #endif
-#endif
 
 #define MAP_START (void *)0x7fff8000
 #define MAP_LEN 0x10000
index 334ef9cfe12dea1b3b77d708d83ebd7f0794d1b6..ad024dd493877ef5f98ef187302e96504912480b 100644 (file)
@@ -1,3 +1,9 @@
+load_lib target-supports.exp
+
+if { ! [check_effective_target_mmap] } {
+        return 1
+}
+
 if [istarget "m68k-*-linux*"] {
     # the executable is at the same position the test tries to remap
     return 1
index 8792dbf586b64b2671f3e03c613580786af32c2c..91af41323276cf85a9e04d076bd4d5b9c93576cf 100644 (file)
@@ -1,6 +1,5 @@
 #include <limits.h>
 
-#ifdef __unix__ /* ??? Is that good enough? */
 #include <sys/types.h>
 #include <sys/mman.h>
 #include <sys/stat.h>
@@ -18,7 +17,6 @@
 #ifndef MAP_FIXED
 #define MAP_FIXED 0
 #endif
-#endif
 
 #define MAP_START (void *)0x7fff8000
 #define MAP_LEN 0x10000
index 334ef9cfe12dea1b3b77d708d83ebd7f0794d1b6..ad024dd493877ef5f98ef187302e96504912480b 100644 (file)
@@ -1,3 +1,9 @@
+load_lib target-supports.exp
+
+if { ! [check_effective_target_mmap] } {
+        return 1
+}
+
 if [istarget "m68k-*-linux*"] {
     # the executable is at the same position the test tries to remap
     return 1
index e76f54f2105a986fca7c885081ff72e638685844..7649059c6cff93ded21d43d4192e0fc1c6bc5222 100644 (file)
@@ -1,6 +1,6 @@
 /* Test whether strncmp has not been "optimized" into memcmp
    nor any code with memcmp semantics.  */
-/* { dg-do run { target i?86-*-linux* x86_64-*-linux* ia64-*-linux* alpha*-*-linux* powerpc*-*-linux* s390*-*-linux* sparc*-*-linux* *-*-darwin* } } */
+/* { dg-do run { target mmap } } */
 /* { dg-options "-O2" } */
 #include <stddef.h>
 #include <stdio.h>
@@ -8,6 +8,9 @@
 #ifndef MAP_ANONYMOUS
 #define MAP_ANONYMOUS MAP_ANON
 #endif
+#ifndef MAP_ANON
+#define MAP_ANON 0
+#endif
 #include <stdlib.h>
 
 void __attribute__((noinline)) test (const char *p)
index 9101fb0227a065a1a2f4dbada728f0446728f6c3..e622505e7da17f65e6e1fa6617bb41158e94e5b2 100644 (file)
@@ -1,6 +1,6 @@
 /* Test whether strncmp has not been "optimized" into memcmp
    nor any code with memcmp semantics.  */
-/* { dg-do run { target i?86-*-linux* x86_64-*-linux* ia64-*-linux* alpha*-*-linux* powerpc*-*-linux* s390*-*-linux* sparc*-*-linux* *-*-darwin* } } */
+/* { dg-do run { target mmap } } */
 /* { dg-options "-O2" } */
 #include <stddef.h>
 #include <stdio.h>
@@ -9,6 +9,9 @@
 #ifndef MAP_ANONYMOUS
 #define MAP_ANONYMOUS MAP_ANON
 #endif
+#ifndef MAP_ANON
+#define MAP_ANON 0
+#endif
 #include <stdlib.h>
 
     struct Flags {
index 681e5d50a83c69ce9dfa58e5e55d4569f7f59a02..c760ef57b755951f8ed75e79cfedc66d2c2227dc 100644 (file)
@@ -1,4 +1,4 @@
-/* { dg-do run { target i?86-*-linux* x86_64-*-linux* ia64-*-linux* alpha*-*-linux* powerpc*-*-linux* s390*-*-linux* sparc*-*-linux* *-*-darwin* } } */
+/* { dg-require-effective-target mmap } */
 
 #include <sys/mman.h>
 #include <stdio.h>
index a271fea1cac0fb387a87bb58f3665256be4d7dea..8d71ece199d1fef1112e4b1a911ec29f4ab2588c 100644 (file)
@@ -1,5 +1,5 @@
 /* PR target/36533 */
-/* { dg-do run { target { { i?86-*-linux* x86_64-*-linux* } && ilp32 } } } */
+/* { dg-do run { target { mmap && ilp32 } } } */
 /* { dg-options "-Os" } */
 #include <string.h>
 #include <sys/mman.h>
index 30cca9922c38ef8c94a92bdb5f00ab2246a37f43..f7027bdb6abbe60782c41d8850e307a15cb5afcc 100644 (file)
@@ -697,6 +697,14 @@ proc check_effective_target_fopenmp {} {
     } "-fopenmp"]
 }
 
+# Return 1 if the target supports mmap, 0 otherwise.
+
+proc check_effective_target_mmap {} {
+    return [check_no_compiler_messages mmap assembly {
+       #include <sys/mman.h>
+    }]
+}
+
 # Return 1 if compilation with -pthread is error-free for trivial
 # code, 0 otherwise.