public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] sim: testsuite: initial support for OS-specific tests
@ 2021-11-27  1:31 Mike Frysinger
  0 siblings, 0 replies; only message in thread
From: Mike Frysinger @ 2021-11-27  1:31 UTC (permalink / raw)
  To: gdb-patches

We usually test against the newlib/libgloss environment, but for a
few ports that also support Linux apps, we want to test that logic
too.  A lot of the C code is written such that it works with either
newlib/libgloss or glibc/linux toolchains, but we have some tests
that end up being Linux-specific.  Cris has been using the target
tuple as a rough proxy for this (where cris*-*-elf is assumed to be
newlib/libgloss, and everything else is glibc/linux), but that is a
bit too rough, and it doesn't work in a multitarget build.

So lets create a few stub files that we can do compile tests with
to detect the different setups, and then let tests declare which
one they require (if they require any at all).
---
 sim/testsuite/cris/c/access1.c        |  2 +-
 sim/testsuite/cris/c/badldso1.c       |  2 +-
 sim/testsuite/cris/c/badldso2.c       |  2 +-
 sim/testsuite/cris/c/badldso3.c       |  2 +-
 sim/testsuite/cris/c/c.exp            |  7 ++++++
 sim/testsuite/cris/c/clone1.c         |  2 +-
 sim/testsuite/cris/c/clone2.c         |  2 +-
 sim/testsuite/cris/c/clone3.c         |  2 +-
 sim/testsuite/cris/c/clone4.c         |  2 +-
 sim/testsuite/cris/c/clone5.c         |  2 +-
 sim/testsuite/cris/c/clone6.c         |  2 +-
 sim/testsuite/cris/c/ex1.c            |  2 +-
 sim/testsuite/cris/c/exitg1.c         |  2 +-
 sim/testsuite/cris/c/exitg2.c         |  2 +-
 sim/testsuite/cris/c/fcntl1.c         |  2 +-
 sim/testsuite/cris/c/fcntl2.c         |  2 +-
 sim/testsuite/cris/c/ftruncate1.c     |  2 +-
 sim/testsuite/cris/c/ftruncate2.c     |  2 +-
 sim/testsuite/cris/c/getcwd1.c        |  2 +-
 sim/testsuite/cris/c/hellodyn3.c      |  2 +-
 sim/testsuite/cris/c/mmap1.c          |  2 +-
 sim/testsuite/cris/c/mmap2.c          |  2 +-
 sim/testsuite/cris/c/mmap3.c          |  2 +-
 sim/testsuite/cris/c/mmap4.c          |  2 +-
 sim/testsuite/cris/c/mmap5.c          |  2 +-
 sim/testsuite/cris/c/mmap6.c          |  2 +-
 sim/testsuite/cris/c/mmap7.c          |  2 +-
 sim/testsuite/cris/c/mmap8.c          |  2 +-
 sim/testsuite/cris/c/mprotect1.c      |  2 +-
 sim/testsuite/cris/c/mprotect2.c      |  2 +-
 sim/testsuite/cris/c/openpf5.c        |  2 +-
 sim/testsuite/cris/c/pipe1.c          |  2 +-
 sim/testsuite/cris/c/pipe2.c          |  2 +-
 sim/testsuite/cris/c/pipe3.c          |  2 +-
 sim/testsuite/cris/c/pipe4.c          |  2 +-
 sim/testsuite/cris/c/pipe5.c          |  2 +-
 sim/testsuite/cris/c/pipe6.c          |  2 +-
 sim/testsuite/cris/c/pipe7.c          |  2 +-
 sim/testsuite/cris/c/readlink1.c      |  2 +-
 sim/testsuite/cris/c/readlink10.c     |  2 +-
 sim/testsuite/cris/c/readlink11.c     |  2 +-
 sim/testsuite/cris/c/readlink2.c      |  2 +-
 sim/testsuite/cris/c/readlink3.c      |  2 +-
 sim/testsuite/cris/c/readlink4.c      |  2 +-
 sim/testsuite/cris/c/readlink5.c      |  2 +-
 sim/testsuite/cris/c/readlink6.c      |  2 +-
 sim/testsuite/cris/c/readlink7.c      |  2 +-
 sim/testsuite/cris/c/readlink8.c      |  2 +-
 sim/testsuite/cris/c/readlink9.c      |  2 +-
 sim/testsuite/cris/c/rtsigprocmask1.c |  2 +-
 sim/testsuite/cris/c/rtsigprocmask2.c |  2 +-
 sim/testsuite/cris/c/rtsigsuspend1.c  |  2 +-
 sim/testsuite/cris/c/rtsigsuspend2.c  |  2 +-
 sim/testsuite/cris/c/sched1.c         |  2 +-
 sim/testsuite/cris/c/sched2.c         |  2 +-
 sim/testsuite/cris/c/sched3.c         |  2 +-
 sim/testsuite/cris/c/sched4.c         |  2 +-
 sim/testsuite/cris/c/sched5.c         |  2 +-
 sim/testsuite/cris/c/sched6.c         |  2 +-
 sim/testsuite/cris/c/sched7.c         |  2 +-
 sim/testsuite/cris/c/sched8.c         |  2 +-
 sim/testsuite/cris/c/sched9.c         |  2 +-
 sim/testsuite/cris/c/setrlimit1.c     |  2 +-
 sim/testsuite/cris/c/settls1.c        |  2 +-
 sim/testsuite/cris/c/sig10.c          |  2 +-
 sim/testsuite/cris/c/sig11.c          |  2 +-
 sim/testsuite/cris/c/sig12.c          |  2 +-
 sim/testsuite/cris/c/sig13.c          |  2 +-
 sim/testsuite/cris/c/sig2.c           |  2 +-
 sim/testsuite/cris/c/sig4.c           |  2 +-
 sim/testsuite/cris/c/sig6.c           |  2 +-
 sim/testsuite/cris/c/sig7.c           |  2 +-
 sim/testsuite/cris/c/sig9.c           |  2 +-
 sim/testsuite/cris/c/sigreturn1.c     |  2 +-
 sim/testsuite/cris/c/sigreturn2.c     |  2 +-
 sim/testsuite/cris/c/sigreturn3.c     |  2 +-
 sim/testsuite/cris/c/sigreturn4.c     |  2 +-
 sim/testsuite/cris/c/sock1.c          |  2 +-
 sim/testsuite/cris/c/stat2.c          |  2 +-
 sim/testsuite/cris/c/stat4.c          |  2 +-
 sim/testsuite/cris/c/stat5.c          |  2 +-
 sim/testsuite/cris/c/stat7.c          |  2 +-
 sim/testsuite/cris/c/stat8.c          |  2 +-
 sim/testsuite/cris/c/syscall1.c       |  2 +-
 sim/testsuite/cris/c/syscall2.c       |  2 +-
 sim/testsuite/cris/c/syscall3.c       |  2 +-
 sim/testsuite/cris/c/syscall4.c       |  2 +-
 sim/testsuite/cris/c/syscall5.c       |  2 +-
 sim/testsuite/cris/c/syscall6.c       |  2 +-
 sim/testsuite/cris/c/syscall7.c       |  2 +-
 sim/testsuite/cris/c/syscall8.c       |  2 +-
 sim/testsuite/cris/c/sysctl1.c        |  2 +-
 sim/testsuite/cris/c/sysctl2.c        |  2 +-
 sim/testsuite/cris/c/sysctl3.c        |  2 +-
 sim/testsuite/cris/c/thread2.c        |  2 +-
 sim/testsuite/cris/c/thread3.c        |  2 +-
 sim/testsuite/cris/c/thread4.c        |  2 +-
 sim/testsuite/cris/c/thread5.c        |  2 +-
 sim/testsuite/cris/c/truncate1.c      |  2 +-
 sim/testsuite/cris/c/truncate2.c      |  2 +-
 sim/testsuite/cris/c/ugetrlimit1.c    |  2 +-
 sim/testsuite/cris/c/uname1.c         |  2 +-
 sim/testsuite/cris/c/writev1.c        |  2 +-
 sim/testsuite/cris/c/writev2.c        |  2 +-
 sim/testsuite/lib/linuxcheck.c        |  9 ++++++++
 sim/testsuite/lib/newlibcheck.c       | 10 ++++++++
 sim/testsuite/lib/sim-defs.exp        | 33 +++++++++++++++++++++++----
 107 files changed, 158 insertions(+), 107 deletions(-)
 create mode 100644 sim/testsuite/lib/linuxcheck.c
 create mode 100644 sim/testsuite/lib/newlibcheck.c

diff --git a/sim/testsuite/cris/c/access1.c b/sim/testsuite/cris/c/access1.c
index ba9be34a1b8e..10a47ea16959 100644
--- a/sim/testsuite/cris/c/access1.c
+++ b/sim/testsuite/cris/c/access1.c
@@ -1,5 +1,5 @@
 /* Check access(2) trivially.  Newlib doesn't have it.
-#notarget: cris*-*-elf
+#progos: linux
 */
 #include <unistd.h>
 #include <stdio.h>
diff --git a/sim/testsuite/cris/c/badldso1.c b/sim/testsuite/cris/c/badldso1.c
index 70414b536d23..fbd320cd5dbe 100644
--- a/sim/testsuite/cris/c/badldso1.c
+++ b/sim/testsuite/cris/c/badldso1.c
@@ -1,5 +1,5 @@
 /*
-#notarget: cris*-*-elf
+#progos: linux
 #xerror:
 #output: *: could not load ELF interpreter `*' for program `*'\n
  */
diff --git a/sim/testsuite/cris/c/badldso2.c b/sim/testsuite/cris/c/badldso2.c
index 92efc138c565..2f58bff8c81f 100644
--- a/sim/testsuite/cris/c/badldso2.c
+++ b/sim/testsuite/cris/c/badldso2.c
@@ -1,5 +1,5 @@
 /*
-#notarget: cris*-*-elf
+#progos: linux
 #xerror:
 #cc: additional_flags=-Wl,-dynamic-linker,/dev/null
 #output: *: could not load ELF interpreter `*' for program `*'\n
diff --git a/sim/testsuite/cris/c/badldso3.c b/sim/testsuite/cris/c/badldso3.c
index f827e771a9c4..7039ad42a1d5 100644
--- a/sim/testsuite/cris/c/badldso3.c
+++ b/sim/testsuite/cris/c/badldso3.c
@@ -1,5 +1,5 @@
 /*
-#notarget: cris*-*-elf
+#progos: linux
 #xerror:
 #cc: additional_flags=-Wl,-dynamic-linker,/compilercheck.x
 #sim: --sysroot=$pwd
diff --git a/sim/testsuite/cris/c/c.exp b/sim/testsuite/cris/c/c.exp
index dfafa003bf5b..e43259434bc3 100644
--- a/sim/testsuite/cris/c/c.exp
+++ b/sim/testsuite/cris/c/c.exp
@@ -34,6 +34,7 @@ if [istarget cris*-*-elf] {
 
 # Using target_compile, since it is less noisy,
 global global_cc_works
+global global_cc_os
 if { $global_cc_works == 1 } {
     # Now check if we can link a program dynamically, and where
     # libc.so is located.  If it is, we provide a sym link to the
@@ -103,6 +104,7 @@ foreach src [lsort [glob -nocomplain $srcdir/$subdir/*.c]] {
     set opts(sim) ""
     set opts(output) ""
     set opts(progoptions) ""
+    set opts(progos) ""
     set opts(timeout) ""
     set opts(mach) ""
     set opts(xerror) "no"
@@ -164,6 +166,11 @@ foreach src [lsort [glob -nocomplain $srcdir/$subdir/*.c]] {
 	continue
     }
 
+    if { $opts(progos) != "" && $opts(progos) != $global_cc_os } {
+	untested $testname
+	continue
+    }
+
     # If no machine specific options, default to the general version.
     if ![info exists opts(sim,$mach)] {
 	set opts(sim,$mach) $opts(sim)
diff --git a/sim/testsuite/cris/c/clone1.c b/sim/testsuite/cris/c/clone1.c
index 163b18647a84..9c4cca42545e 100644
--- a/sim/testsuite/cris/c/clone1.c
+++ b/sim/testsuite/cris/c/clone1.c
@@ -1,5 +1,5 @@
 /*
-#notarget: cris*-*-elf
+#progos: linux
 #output: got: a\nthen: bc\nexit: 0\n
 */
 
diff --git a/sim/testsuite/cris/c/clone2.c b/sim/testsuite/cris/c/clone2.c
index aaa0873b640f..88a984fe8a67 100644
--- a/sim/testsuite/cris/c/clone2.c
+++ b/sim/testsuite/cris/c/clone2.c
@@ -1,5 +1,5 @@
 /* Make sure the thread system trivially works with trace output.
-#notarget: cris*-*-elf
+#progos: linux
 #sim: --cris-trace=basic --trace-file=$pwd/clone2.tmp
 #output: got: a\nthen: bc\nexit: 0\n
 */
diff --git a/sim/testsuite/cris/c/clone3.c b/sim/testsuite/cris/c/clone3.c
index 0a97484adacd..6c5b8813f08c 100644
--- a/sim/testsuite/cris/c/clone3.c
+++ b/sim/testsuite/cris/c/clone3.c
@@ -1,5 +1,5 @@
 /* Check that exiting from a parent thread does not kill the child.
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <stddef.h>
diff --git a/sim/testsuite/cris/c/clone4.c b/sim/testsuite/cris/c/clone4.c
index 81489ddc4195..c2e684ca871c 100644
--- a/sim/testsuite/cris/c/clone4.c
+++ b/sim/testsuite/cris/c/clone4.c
@@ -1,5 +1,5 @@
 /* Check that TRT happens when we reach the #threads implementation limit.
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <stddef.h>
diff --git a/sim/testsuite/cris/c/clone5.c b/sim/testsuite/cris/c/clone5.c
index 9380a1ea5aab..5cd164466665 100644
--- a/sim/testsuite/cris/c/clone5.c
+++ b/sim/testsuite/cris/c/clone5.c
@@ -1,5 +1,5 @@
 /* Check that unimplemented clone syscalls get the right treatment.
-#notarget: cris*-*-elf
+#progos: linux
 #xerror:
 #output: Unimplemented clone syscall *
 #output: program stopped with signal 4 (*).\n
diff --git a/sim/testsuite/cris/c/clone6.c b/sim/testsuite/cris/c/clone6.c
index 586b5c67378d..9ecd48943474 100644
--- a/sim/testsuite/cris/c/clone6.c
+++ b/sim/testsuite/cris/c/clone6.c
@@ -1,5 +1,5 @@
 /* As the included file, but specifying silent ENOSYS.
-#notarget: cris*-*-elf
+#progos: linux
 #sim: --cris-unknown-syscall=enosys-quiet
 #output: ENOSYS\n
 #output: xyzzy\n
diff --git a/sim/testsuite/cris/c/ex1.c b/sim/testsuite/cris/c/ex1.c
index 2447319f71ae..ea239c2ad4b8 100644
--- a/sim/testsuite/cris/c/ex1.c
+++ b/sim/testsuite/cris/c/ex1.c
@@ -1,5 +1,5 @@
 /* Compiler options:
-#notarget: cris*-*-elf
+#progos: linux
 #cc: additional_flags=-pthread
 #output: Starting process a\naaaaaaaaStarting process b\nababbbbbbbbb
 
diff --git a/sim/testsuite/cris/c/exitg1.c b/sim/testsuite/cris/c/exitg1.c
index 0b4c425b3e60..acaad922e4b1 100644
--- a/sim/testsuite/cris/c/exitg1.c
+++ b/sim/testsuite/cris/c/exitg1.c
@@ -1,7 +1,7 @@
 /* Check exit_group(2) trivially.  Newlib doesn't have it and the
    pre-v32 glibc requires updated headers we'd have to check or adjust
    for.
-#notarget: cris-*-* *-*-elf
+#progos: linux
 #output: exit_group\n
 */
 #include <unistd.h>
diff --git a/sim/testsuite/cris/c/exitg2.c b/sim/testsuite/cris/c/exitg2.c
index e222cc4707b1..e5b0be73854c 100644
--- a/sim/testsuite/cris/c/exitg2.c
+++ b/sim/testsuite/cris/c/exitg2.c
@@ -1,5 +1,5 @@
 /* Check exit_group(2) trivially with non-zero status.
-#notarget: cris-*-* *-*-elf
+#progos: linux
 #output: exit_group\n
 #xerror:
 */
diff --git a/sim/testsuite/cris/c/fcntl1.c b/sim/testsuite/cris/c/fcntl1.c
index 032f6b501981..7c0501820975 100644
--- a/sim/testsuite/cris/c/fcntl1.c
+++ b/sim/testsuite/cris/c/fcntl1.c
@@ -1,5 +1,5 @@
 /* Check that we get the expected message for unsupported fcntl calls.
-#notarget: cris*-*-elf
+#progos: linux
 #xerror:
 #output: Unimplemented fcntl*
 #output: program stopped with signal 4 (*).\n
diff --git a/sim/testsuite/cris/c/fcntl2.c b/sim/testsuite/cris/c/fcntl2.c
index fc9f95b688d4..5298e7a277c3 100644
--- a/sim/testsuite/cris/c/fcntl2.c
+++ b/sim/testsuite/cris/c/fcntl2.c
@@ -1,5 +1,5 @@
 /* As the included file, but specifying silent ENOSYS.
-#notarget: cris*-*-elf
+#progos: linux
 #sim: --cris-unknown-syscall=enosys-quiet
 #output: ENOSYS\n
 #output: xyzzy\n
diff --git a/sim/testsuite/cris/c/ftruncate1.c b/sim/testsuite/cris/c/ftruncate1.c
index 46b8756705cc..cc213b83a245 100644
--- a/sim/testsuite/cris/c/ftruncate1.c
+++ b/sim/testsuite/cris/c/ftruncate1.c
@@ -1,5 +1,5 @@
 /* Check that the ftruncate syscall works trivially.
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <stdio.h>
diff --git a/sim/testsuite/cris/c/ftruncate2.c b/sim/testsuite/cris/c/ftruncate2.c
index f1ef18c6aa68..712c185c754f 100644
--- a/sim/testsuite/cris/c/ftruncate2.c
+++ b/sim/testsuite/cris/c/ftruncate2.c
@@ -1,5 +1,5 @@
 /*
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 /* Check that we get a proper error indication if trying ftruncate on a
diff --git a/sim/testsuite/cris/c/getcwd1.c b/sim/testsuite/cris/c/getcwd1.c
index 3838916143af..f7b6bd923da5 100644
--- a/sim/testsuite/cris/c/getcwd1.c
+++ b/sim/testsuite/cris/c/getcwd1.c
@@ -1,5 +1,5 @@
 /*
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <unistd.h>
diff --git a/sim/testsuite/cris/c/hellodyn3.c b/sim/testsuite/cris/c/hellodyn3.c
index 4dd8bdd9e843..ff3ca70f8d54 100644
--- a/sim/testsuite/cris/c/hellodyn3.c
+++ b/sim/testsuite/cris/c/hellodyn3.c
@@ -2,7 +2,7 @@
    works.  Jump through a few hoops to avoid reading the host
    ld.so.cache (having no absolute path specified for the executable
    falls back on loading through the same mechanisms as a DSO).
-#notarget: *-*-elf
+#progos: linux
 #sim: --sysroot=$pwd $pwd/lib/ld.so.1 --library-path /
  */
 #include "hello.c"
diff --git a/sim/testsuite/cris/c/mmap1.c b/sim/testsuite/cris/c/mmap1.c
index 9db94c177515..0bb0ea55d1e8 100644
--- a/sim/testsuite/cris/c/mmap1.c
+++ b/sim/testsuite/cris/c/mmap1.c
@@ -1,5 +1,5 @@
 /*
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #define _GNU_SOURCE
diff --git a/sim/testsuite/cris/c/mmap2.c b/sim/testsuite/cris/c/mmap2.c
index 35139a0ed9aa..7c99e4e10d08 100644
--- a/sim/testsuite/cris/c/mmap2.c
+++ b/sim/testsuite/cris/c/mmap2.c
@@ -1,5 +1,5 @@
 /*
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #define _GNU_SOURCE
diff --git a/sim/testsuite/cris/c/mmap3.c b/sim/testsuite/cris/c/mmap3.c
index 34401fa0c907..3667644d085f 100644
--- a/sim/testsuite/cris/c/mmap3.c
+++ b/sim/testsuite/cris/c/mmap3.c
@@ -1,5 +1,5 @@
 /*
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #define _GNU_SOURCE
diff --git a/sim/testsuite/cris/c/mmap4.c b/sim/testsuite/cris/c/mmap4.c
index b3a66e48b6d7..551cdb1ea620 100644
--- a/sim/testsuite/cris/c/mmap4.c
+++ b/sim/testsuite/cris/c/mmap4.c
@@ -1,5 +1,5 @@
 /* Just check that MAP_DENYWRITE is "honored" (ignored).
-#notarget: cris*-*-elf
+#progos: linux
 */
 #define MMAP_FLAGS (MAP_PRIVATE|MAP_DENYWRITE)
 #include "mmap1.c"
diff --git a/sim/testsuite/cris/c/mmap5.c b/sim/testsuite/cris/c/mmap5.c
index 95f00c37fe3c..a10fdc225027 100644
--- a/sim/testsuite/cris/c/mmap5.c
+++ b/sim/testsuite/cris/c/mmap5.c
@@ -1,5 +1,5 @@
 /*
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #define _GNU_SOURCE
diff --git a/sim/testsuite/cris/c/mmap6.c b/sim/testsuite/cris/c/mmap6.c
index 929d9ccf8579..29f70f582474 100644
--- a/sim/testsuite/cris/c/mmap6.c
+++ b/sim/testsuite/cris/c/mmap6.c
@@ -1,6 +1,6 @@
 /* Check that mmapping specifying a previously mmapped address without
    MAP_FIXED works; that we just don't get the same address.
-#notarget: cris*-*-elf
+#progos: linux
 */
 #define NO_MUNMAP
 #define MMAP_FLAGS2 MAP_PRIVATE
diff --git a/sim/testsuite/cris/c/mmap7.c b/sim/testsuite/cris/c/mmap7.c
index c4b14b0f9db6..d7a7f3be2670 100644
--- a/sim/testsuite/cris/c/mmap7.c
+++ b/sim/testsuite/cris/c/mmap7.c
@@ -1,7 +1,7 @@
 /* Check that mmapping a page-aligned size, larger than the file,
    works.
 
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 /* Make sure we get an address where the size fits.  */
diff --git a/sim/testsuite/cris/c/mmap8.c b/sim/testsuite/cris/c/mmap8.c
index 0564c79a6db2..b81d9c039e57 100644
--- a/sim/testsuite/cris/c/mmap8.c
+++ b/sim/testsuite/cris/c/mmap8.c
@@ -1,6 +1,6 @@
 /* Check that mmapping 0 using MAP_FIXED works, both with/without
    there being previously mmapped contents.
-#notarget: cris*-*-elf
+#progos: linux
 */
 #define MMAP_FLAGS1 MAP_PRIVATE | MAP_ANONYMOUS | MAP_FIXED
 #define NO_MUNMAP
diff --git a/sim/testsuite/cris/c/mprotect1.c b/sim/testsuite/cris/c/mprotect1.c
index 8dae50ba6eb4..1afbd96635c7 100644
--- a/sim/testsuite/cris/c/mprotect1.c
+++ b/sim/testsuite/cris/c/mprotect1.c
@@ -1,5 +1,5 @@
 /* Check unimplemented-output for mprotect call.
-#notarget: cris*-*-elf
+#progos: linux
 #xerror:
 #output: Unimplemented mprotect call (0x0, 0x2001, 0x4)\n
 #output: program stopped with signal 4 (*).\n
diff --git a/sim/testsuite/cris/c/mprotect2.c b/sim/testsuite/cris/c/mprotect2.c
index 4d839452435f..ba8a3dab35c5 100644
--- a/sim/testsuite/cris/c/mprotect2.c
+++ b/sim/testsuite/cris/c/mprotect2.c
@@ -1,5 +1,5 @@
 /* As the included file, but specifying silent ENOSYS.
-#notarget: cris*-*-elf
+#progos: linux
 #sim: --cris-unknown-syscall=enosys-quiet
 #output: ENOSYS\n
 #output: xyzzy\n
diff --git a/sim/testsuite/cris/c/openpf5.c b/sim/testsuite/cris/c/openpf5.c
index 90bebe509be5..9fa80a9b0348 100644
--- a/sim/testsuite/cris/c/openpf5.c
+++ b/sim/testsuite/cris/c/openpf5.c
@@ -1,5 +1,5 @@
 /* Check that TRT happens when error on too many opened files.
-#notarget: cris*-*-elf
+#progos: linux
 #sim: --sysroot=$pwd
 */
 #include <stddef.h>
diff --git a/sim/testsuite/cris/c/pipe1.c b/sim/testsuite/cris/c/pipe1.c
index 735974b6cfa0..21b17764c26b 100644
--- a/sim/testsuite/cris/c/pipe1.c
+++ b/sim/testsuite/cris/c/pipe1.c
@@ -1,5 +1,5 @@
 /* Check for proper pipe semantics at corner cases.
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <stddef.h>
diff --git a/sim/testsuite/cris/c/pipe2.c b/sim/testsuite/cris/c/pipe2.c
index 18ccf38b9b1d..7f3de61211a1 100644
--- a/sim/testsuite/cris/c/pipe2.c
+++ b/sim/testsuite/cris/c/pipe2.c
@@ -1,5 +1,5 @@
 /* Check that closing a pipe with a nonempty buffer works.
-#notarget: cris*-*-elf
+#progos: linux
 #output: got: a\ngot: b\nexit: 0\n
 */
 
diff --git a/sim/testsuite/cris/c/pipe3.c b/sim/testsuite/cris/c/pipe3.c
index bf08a38e1f0c..467b5ca12210 100644
--- a/sim/testsuite/cris/c/pipe3.c
+++ b/sim/testsuite/cris/c/pipe3.c
@@ -1,5 +1,5 @@
 /* Check that TRT happens when error on pipe call.
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <stddef.h>
diff --git a/sim/testsuite/cris/c/pipe4.c b/sim/testsuite/cris/c/pipe4.c
index 1cb309f9dc81..842e2fe7994e 100644
--- a/sim/testsuite/cris/c/pipe4.c
+++ b/sim/testsuite/cris/c/pipe4.c
@@ -1,5 +1,5 @@
 /* Check that TRT happens for pipe corner cases.
-#notarget: cris*-*-elf
+#progos: linux
 */
 #include <stddef.h>
 #include <signal.h>
diff --git a/sim/testsuite/cris/c/pipe5.c b/sim/testsuite/cris/c/pipe5.c
index 2b4d763353df..440cdbcd92e4 100644
--- a/sim/testsuite/cris/c/pipe5.c
+++ b/sim/testsuite/cris/c/pipe5.c
@@ -1,5 +1,5 @@
 /* Check that TRT happens for pipe corner cases (for our definition of TRT).
-#notarget: cris*-*-elf
+#progos: linux
 #xerror:
 #output: Terminating simulation due to writing pipe * from one single thread\n
 #output: program stopped with signal 4 (*).\n
diff --git a/sim/testsuite/cris/c/pipe6.c b/sim/testsuite/cris/c/pipe6.c
index a8830cc3e698..cbfb31329128 100644
--- a/sim/testsuite/cris/c/pipe6.c
+++ b/sim/testsuite/cris/c/pipe6.c
@@ -1,5 +1,5 @@
 /* Check that writing an inordinate amount of data works (somewhat).
-#notarget: cris*-*-elf
+#progos: linux
 #output: got: a\nexit: 0\n
    This test-case will *not* work on host (or for real): the first
    pipemax+1 bytes will be successfully written.  It's just for
diff --git a/sim/testsuite/cris/c/pipe7.c b/sim/testsuite/cris/c/pipe7.c
index 552ddb8e1e89..5125138ea773 100644
--- a/sim/testsuite/cris/c/pipe7.c
+++ b/sim/testsuite/cris/c/pipe7.c
@@ -1,5 +1,5 @@
 /* Check for proper pipe semantics at corner cases.
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <stdio.h>
diff --git a/sim/testsuite/cris/c/readlink1.c b/sim/testsuite/cris/c/readlink1.c
index 1898e8eceb54..5bec2d5c328f 100644
--- a/sim/testsuite/cris/c/readlink1.c
+++ b/sim/testsuite/cris/c/readlink1.c
@@ -1,5 +1,5 @@
 /*
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <unistd.h>
diff --git a/sim/testsuite/cris/c/readlink10.c b/sim/testsuite/cris/c/readlink10.c
index 21744083eddb..f4705df214ff 100644
--- a/sim/testsuite/cris/c/readlink10.c
+++ b/sim/testsuite/cris/c/readlink10.c
@@ -1,5 +1,5 @@
 /* Check that odd cases of readlink work.
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <unistd.h>
diff --git a/sim/testsuite/cris/c/readlink11.c b/sim/testsuite/cris/c/readlink11.c
index 9d84e7d95fac..d082d229ef84 100644
--- a/sim/testsuite/cris/c/readlink11.c
+++ b/sim/testsuite/cris/c/readlink11.c
@@ -1,5 +1,5 @@
 /* As readlink5.c (sic), but specifying silent ENOSYS.
-#notarget: cris*-*-elf
+#progos: linux
 #sim: --cris-unknown-syscall=enosys-quiet --argv0 ./readlink11.c.x
 #output: ENOSYS\n
 #output: xyzzy\n
diff --git a/sim/testsuite/cris/c/readlink2.c b/sim/testsuite/cris/c/readlink2.c
index e5e9d94121c6..235817f4ebbc 100644
--- a/sim/testsuite/cris/c/readlink2.c
+++ b/sim/testsuite/cris/c/readlink2.c
@@ -1,5 +1,5 @@
 /*
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <unistd.h>
diff --git a/sim/testsuite/cris/c/readlink3.c b/sim/testsuite/cris/c/readlink3.c
index d728087f1d52..2a4e07536847 100644
--- a/sim/testsuite/cris/c/readlink3.c
+++ b/sim/testsuite/cris/c/readlink3.c
@@ -1,5 +1,5 @@
 /* Simulator options:
-#notarget: cris*-*-elf
+#progos: linux
 #sim: --sysroot=$pwd
 */
 #define SYSROOTED 1
diff --git a/sim/testsuite/cris/c/readlink4.c b/sim/testsuite/cris/c/readlink4.c
index 028f3ee44ca6..66cfca5af6b7 100644
--- a/sim/testsuite/cris/c/readlink4.c
+++ b/sim/testsuite/cris/c/readlink4.c
@@ -1,5 +1,5 @@
 /* Check for corner case: readlink of too-long name.
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <unistd.h>
diff --git a/sim/testsuite/cris/c/readlink5.c b/sim/testsuite/cris/c/readlink5.c
index 4bfb7ba3a1d3..b0b56abac13f 100644
--- a/sim/testsuite/cris/c/readlink5.c
+++ b/sim/testsuite/cris/c/readlink5.c
@@ -1,5 +1,5 @@
 /* Check that unsupported readlink calls don't cause the simulator to abort.
-#notarget: cris*-*-elf
+#progos: linux
 #sim: --argv0 ./readlink5.c.x
 #xerror:
 #output: Unimplemented readlink syscall (*)\n
diff --git a/sim/testsuite/cris/c/readlink6.c b/sim/testsuite/cris/c/readlink6.c
index d64b95913a3f..67868af7eedd 100644
--- a/sim/testsuite/cris/c/readlink6.c
+++ b/sim/testsuite/cris/c/readlink6.c
@@ -1,5 +1,5 @@
 /* Check that rare readlink calls don't cause the simulator to abort.
-#notarget: cris*-*-elf
+#progos: linux
 #sim: --argv0 $pwd/readlink6.c.x
 */
 #include "readlink2.c"
diff --git a/sim/testsuite/cris/c/readlink7.c b/sim/testsuite/cris/c/readlink7.c
index 52c0733ca8a4..d15f59d57366 100644
--- a/sim/testsuite/cris/c/readlink7.c
+++ b/sim/testsuite/cris/c/readlink7.c
@@ -1,5 +1,5 @@
 /* Check that rare readlink calls don't cause the simulator to abort.
-#notarget: cris*-*-elf
+#progos: linux
 #sim: --env-unset PWD
  */
 #include "readlink2.c"
diff --git a/sim/testsuite/cris/c/readlink8.c b/sim/testsuite/cris/c/readlink8.c
index ddc424e4c510..9465592c5001 100644
--- a/sim/testsuite/cris/c/readlink8.c
+++ b/sim/testsuite/cris/c/readlink8.c
@@ -1,5 +1,5 @@
 /* Check that rare readlink calls don't cause the simulator to abort.
-#notarget: cris*-*-elf
+#progos: linux
 #sim: --sysroot=$pwd --env-unset PWD
  */
 #define SYSROOTED 1
diff --git a/sim/testsuite/cris/c/readlink9.c b/sim/testsuite/cris/c/readlink9.c
index 7316b7a9854e..ce5d446044da 100644
--- a/sim/testsuite/cris/c/readlink9.c
+++ b/sim/testsuite/cris/c/readlink9.c
@@ -1,5 +1,5 @@
 /* Check that odd cases of readlink work.
-#notarget: cris*-*-elf
+#progos: linux
 #cc: additional_flags=-DX="$pwd"
 */
 
diff --git a/sim/testsuite/cris/c/rtsigprocmask1.c b/sim/testsuite/cris/c/rtsigprocmask1.c
index b76c33853a88..a47b377e3000 100644
--- a/sim/testsuite/cris/c/rtsigprocmask1.c
+++ b/sim/testsuite/cris/c/rtsigprocmask1.c
@@ -1,5 +1,5 @@
 /* Compiler options:
-#notarget: cris*-*-elf
+#progos: linux
 #cc: additional_flags=-pthread
 #xerror:
 #output: Unimplemented rt_sigprocmask syscall (0x3, 0x0, 0x3dff*\n
diff --git a/sim/testsuite/cris/c/rtsigprocmask2.c b/sim/testsuite/cris/c/rtsigprocmask2.c
index 5026908fe166..4ae2be6ffad6 100644
--- a/sim/testsuite/cris/c/rtsigprocmask2.c
+++ b/sim/testsuite/cris/c/rtsigprocmask2.c
@@ -1,5 +1,5 @@
 /* As the included file, but specifying silent ENOSYS.
-#notarget: cris*-*-elf
+#progos: linux
 #cc: additional_flags=-pthread
 #sim: --cris-unknown-syscall=enosys-quiet
 #output: ENOSYS\n
diff --git a/sim/testsuite/cris/c/rtsigsuspend1.c b/sim/testsuite/cris/c/rtsigsuspend1.c
index 66ca7954503e..04139a8be651 100644
--- a/sim/testsuite/cris/c/rtsigsuspend1.c
+++ b/sim/testsuite/cris/c/rtsigsuspend1.c
@@ -1,5 +1,5 @@
 /* Test that TRT happens for invalid rt_sigsuspend calls.  Single-thread.
-#notarget: cris*-*-elf
+#progos: linux
 #xerror:
 #output: Unimplemented rt_sigsuspend syscall arguments (0x1, 0x2)\n
 #output: program stopped with signal 4 (*).\n
diff --git a/sim/testsuite/cris/c/rtsigsuspend2.c b/sim/testsuite/cris/c/rtsigsuspend2.c
index 9ce165db5529..4f32cca0f932 100644
--- a/sim/testsuite/cris/c/rtsigsuspend2.c
+++ b/sim/testsuite/cris/c/rtsigsuspend2.c
@@ -1,5 +1,5 @@
 /* As the included file, but specifying silent ENOSYS.
-#notarget: cris*-*-elf
+#progos: linux
 #sim: --cris-unknown-syscall=enosys-quiet
 #output: ENOSYS\n
 #output: xyzzy\n
diff --git a/sim/testsuite/cris/c/sched1.c b/sim/testsuite/cris/c/sched1.c
index 1b778f4a4015..0a461b27c652 100644
--- a/sim/testsuite/cris/c/sched1.c
+++ b/sim/testsuite/cris/c/sched1.c
@@ -1,5 +1,5 @@
 /*
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <sched.h>
diff --git a/sim/testsuite/cris/c/sched2.c b/sim/testsuite/cris/c/sched2.c
index f40a19a8085c..fbde1e1b7538 100644
--- a/sim/testsuite/cris/c/sched2.c
+++ b/sim/testsuite/cris/c/sched2.c
@@ -1,5 +1,5 @@
 /*
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <sched.h>
diff --git a/sim/testsuite/cris/c/sched3.c b/sim/testsuite/cris/c/sched3.c
index 2909a4b6c52f..94051e9b24d9 100644
--- a/sim/testsuite/cris/c/sched3.c
+++ b/sim/testsuite/cris/c/sched3.c
@@ -1,5 +1,5 @@
 /*
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <sched.h>
diff --git a/sim/testsuite/cris/c/sched4.c b/sim/testsuite/cris/c/sched4.c
index df372f217e83..7821cf0c1a08 100644
--- a/sim/testsuite/cris/c/sched4.c
+++ b/sim/testsuite/cris/c/sched4.c
@@ -1,5 +1,5 @@
 /*
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <sched.h>
diff --git a/sim/testsuite/cris/c/sched5.c b/sim/testsuite/cris/c/sched5.c
index ddfe14d03c36..87468d076f5c 100644
--- a/sim/testsuite/cris/c/sched5.c
+++ b/sim/testsuite/cris/c/sched5.c
@@ -1,5 +1,5 @@
 /*
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <sched.h>
diff --git a/sim/testsuite/cris/c/sched6.c b/sim/testsuite/cris/c/sched6.c
index d5adedc1a35f..26deb2122c0b 100644
--- a/sim/testsuite/cris/c/sched6.c
+++ b/sim/testsuite/cris/c/sched6.c
@@ -1,5 +1,5 @@
 /*
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <sched.h>
diff --git a/sim/testsuite/cris/c/sched7.c b/sim/testsuite/cris/c/sched7.c
index 35d006bca6a8..c047461871be 100644
--- a/sim/testsuite/cris/c/sched7.c
+++ b/sim/testsuite/cris/c/sched7.c
@@ -1,5 +1,5 @@
 /* Check corner error case: specifying invalid PID.
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <sched.h>
diff --git a/sim/testsuite/cris/c/sched8.c b/sim/testsuite/cris/c/sched8.c
index cd3e06e6488e..b0d3c8259b67 100644
--- a/sim/testsuite/cris/c/sched8.c
+++ b/sim/testsuite/cris/c/sched8.c
@@ -1,5 +1,5 @@
 /* Check corner error case: specifying invalid PID.
-#notarget: cris*-*-elf
+#progos: linux
 */
 #include <string.h>
 #include <sched.h>
diff --git a/sim/testsuite/cris/c/sched9.c b/sim/testsuite/cris/c/sched9.c
index 8499e43fb8c6..c9647b610e2a 100644
--- a/sim/testsuite/cris/c/sched9.c
+++ b/sim/testsuite/cris/c/sched9.c
@@ -1,5 +1,5 @@
 /* Check corner error case: specifying invalid scheduling policy.
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <sched.h>
diff --git a/sim/testsuite/cris/c/setrlimit1.c b/sim/testsuite/cris/c/setrlimit1.c
index 747f16caa7f9..1222619c2f03 100644
--- a/sim/testsuite/cris/c/setrlimit1.c
+++ b/sim/testsuite/cris/c/setrlimit1.c
@@ -1,5 +1,5 @@
 /* Check corner error case: specifying unimplemented resource.
-#notarget: cris*-*-elf
+#progos: linux
 */
 #include <sys/time.h>
 #include <sys/resource.h>
diff --git a/sim/testsuite/cris/c/settls1.c b/sim/testsuite/cris/c/settls1.c
index bd55aa16f504..c6f84c5553f0 100644
--- a/sim/testsuite/cris/c/settls1.c
+++ b/sim/testsuite/cris/c/settls1.c
@@ -1,5 +1,5 @@
 /* Check that the syscall set_thread_area is supported and does the right thing.
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <unistd.h>
diff --git a/sim/testsuite/cris/c/sig10.c b/sim/testsuite/cris/c/sig10.c
index ef548327ebf2..7ae46090beb0 100644
--- a/sim/testsuite/cris/c/sig10.c
+++ b/sim/testsuite/cris/c/sig10.c
@@ -1,5 +1,5 @@
 /* Check that TRT happens when trying to IGN an non-ignorable signal, more than one thread.
-#notarget: cris*-*-elf
+#progos: linux
 #cc: additional_flags=-pthread
 #xerror:
 #output: Exiting pid 42 due to signal 9\n
diff --git a/sim/testsuite/cris/c/sig11.c b/sim/testsuite/cris/c/sig11.c
index 9c8aad7d88e1..69dc278d4266 100644
--- a/sim/testsuite/cris/c/sig11.c
+++ b/sim/testsuite/cris/c/sig11.c
@@ -1,5 +1,5 @@
 /* Check that TRT happens when getting a non-standard (realtime) signal, more than one thread.
-#notarget: cris*-*-elf
+#progos: linux
 #cc: additional_flags=-pthread
 #xerror:
 #output: Unimplemented signal: 77\n
diff --git a/sim/testsuite/cris/c/sig12.c b/sim/testsuite/cris/c/sig12.c
index 5a2e65fe9c31..7131cbc14cc8 100644
--- a/sim/testsuite/cris/c/sig12.c
+++ b/sim/testsuite/cris/c/sig12.c
@@ -1,6 +1,6 @@
 /* Check that TRT happens for a signal sent to a non-existent process/thread, more than one thread.
 #cc: additional_flags=-pthread
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <stdlib.h>
diff --git a/sim/testsuite/cris/c/sig13.c b/sim/testsuite/cris/c/sig13.c
index 4d71752a257c..2558f6749e78 100644
--- a/sim/testsuite/cris/c/sig13.c
+++ b/sim/testsuite/cris/c/sig13.c
@@ -1,5 +1,5 @@
 /* As the included file, but specifying silent ENOSYS.
-#notarget: cris*-*-elf
+#progos: linux
 #sim: --cris-unknown-syscall=enosys-quiet
 #output: ENOSYS\n
 #output: xyzzy\n
diff --git a/sim/testsuite/cris/c/sig2.c b/sim/testsuite/cris/c/sig2.c
index 65596ef2eea5..35b2802576be 100644
--- a/sim/testsuite/cris/c/sig2.c
+++ b/sim/testsuite/cris/c/sig2.c
@@ -1,5 +1,5 @@
 /*
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <stdio.h>
diff --git a/sim/testsuite/cris/c/sig4.c b/sim/testsuite/cris/c/sig4.c
index 57491f80a3c6..e932b080a352 100644
--- a/sim/testsuite/cris/c/sig4.c
+++ b/sim/testsuite/cris/c/sig4.c
@@ -1,5 +1,5 @@
 /* Check that TRT happens at an abort (3) call, more than one thread.
-#notarget: cris*-*-elf
+#progos: linux
 #cc: additional_flags=-pthread
 #xerror:
 #output: Exiting pid 42 due to signal 6\n
diff --git a/sim/testsuite/cris/c/sig6.c b/sim/testsuite/cris/c/sig6.c
index a1f572026a7e..f8c8f80408c2 100644
--- a/sim/testsuite/cris/c/sig6.c
+++ b/sim/testsuite/cris/c/sig6.c
@@ -1,5 +1,5 @@
 /* Check that TRT happens at an non-abort non-caught signal, more than one thread.
-#notarget: cris*-*-elf
+#progos: linux
 #cc: additional_flags=-pthread
 #xerror:
 #output: Exiting pid 42 due to signal 7\n
diff --git a/sim/testsuite/cris/c/sig7.c b/sim/testsuite/cris/c/sig7.c
index b04f7c8ba4e8..b939fb8a148a 100644
--- a/sim/testsuite/cris/c/sig7.c
+++ b/sim/testsuite/cris/c/sig7.c
@@ -1,5 +1,5 @@
 /* Check unsupported case of sigaction syscall.
-#notarget: cris*-*-elf
+#progos: linux
 #xerror:
 #output: Unimplemented rt_sigaction syscall (0x8, 0x3df*\n
 #output: program stopped with signal 4 (*).\n
diff --git a/sim/testsuite/cris/c/sig9.c b/sim/testsuite/cris/c/sig9.c
index c86681b4322d..8e972faf4fdc 100644
--- a/sim/testsuite/cris/c/sig9.c
+++ b/sim/testsuite/cris/c/sig9.c
@@ -1,5 +1,5 @@
 /* Check that TRT happens at an non-abort ignored signal, more than one thread.
-#notarget: cris*-*-elf
+#progos: linux
 #cc: additional_flags=-pthread
 */
 
diff --git a/sim/testsuite/cris/c/sigreturn1.c b/sim/testsuite/cris/c/sigreturn1.c
index 40fc852f36c5..af239652248c 100644
--- a/sim/testsuite/cris/c/sigreturn1.c
+++ b/sim/testsuite/cris/c/sigreturn1.c
@@ -1,5 +1,5 @@
 /* Test that TRT happens for spurious sigreturn calls.  Single-thread.
-#notarget: cris*-*-elf
+#progos: linux
 #xerror:
 #output: Invalid sigreturn syscall: no signal handler active (0x1, 0x2, 0x3, 0x4, 0x5, 0x6)\n
 #output: program stopped with signal 4 (*).\n
diff --git a/sim/testsuite/cris/c/sigreturn2.c b/sim/testsuite/cris/c/sigreturn2.c
index 3848b5fc798f..a86ca25d3d63 100644
--- a/sim/testsuite/cris/c/sigreturn2.c
+++ b/sim/testsuite/cris/c/sigreturn2.c
@@ -1,5 +1,5 @@
 /* Check that TRT happens for spurious sigreturn calls.  Multiple threads.
-#notarget: cris*-*-elf
+#progos: linux
 #cc: additional_flags=-pthread
 #xerror:
 #output: Invalid sigreturn syscall: no signal handler active (0x1, 0x2, 0x3, 0x4, 0x5, 0x6)\n
diff --git a/sim/testsuite/cris/c/sigreturn3.c b/sim/testsuite/cris/c/sigreturn3.c
index f5ed90f2432c..c2b149e87338 100644
--- a/sim/testsuite/cris/c/sigreturn3.c
+++ b/sim/testsuite/cris/c/sigreturn3.c
@@ -1,5 +1,5 @@
 /* As the included file, but specifying silent ENOSYS.
-#notarget: cris*-*-elf
+#progos: linux
 #sim: --cris-unknown-syscall=enosys-quiet
 #output: ENOSYS\n
 #output: xyzzy\n
diff --git a/sim/testsuite/cris/c/sigreturn4.c b/sim/testsuite/cris/c/sigreturn4.c
index 456e312c5684..041970a8816d 100644
--- a/sim/testsuite/cris/c/sigreturn4.c
+++ b/sim/testsuite/cris/c/sigreturn4.c
@@ -1,5 +1,5 @@
 /* As the included file, but specifying silent ENOSYS.
-#notarget: cris*-*-elf
+#progos: linux
 #cc: additional_flags=-pthread
 #sim: --cris-unknown-syscall=enosys-quiet
 #output: ENOSYS\n
diff --git a/sim/testsuite/cris/c/sock1.c b/sim/testsuite/cris/c/sock1.c
index e59f67305238..8d06bfaed304 100644
--- a/sim/testsuite/cris/c/sock1.c
+++ b/sim/testsuite/cris/c/sock1.c
@@ -1,5 +1,5 @@
 /*
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <sys/types.h>
diff --git a/sim/testsuite/cris/c/stat2.c b/sim/testsuite/cris/c/stat2.c
index 78c5c44f9108..3ade5d213552 100644
--- a/sim/testsuite/cris/c/stat2.c
+++ b/sim/testsuite/cris/c/stat2.c
@@ -1,5 +1,5 @@
 /*
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <sys/types.h>
diff --git a/sim/testsuite/cris/c/stat4.c b/sim/testsuite/cris/c/stat4.c
index e524ac87a8b8..3606bcc392dd 100644
--- a/sim/testsuite/cris/c/stat4.c
+++ b/sim/testsuite/cris/c/stat4.c
@@ -1,5 +1,5 @@
 /* Simulator options:
-#notarget: cris*-*-elf
+#progos: linux
 #sim: --sysroot=$pwd
 */
 
diff --git a/sim/testsuite/cris/c/stat5.c b/sim/testsuite/cris/c/stat5.c
index 41ab493fd5ca..fe9fbc05500f 100644
--- a/sim/testsuite/cris/c/stat5.c
+++ b/sim/testsuite/cris/c/stat5.c
@@ -1,5 +1,5 @@
 /* Check that lstat:ing an nonexistent file works as expected.
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <sys/types.h>
diff --git a/sim/testsuite/cris/c/stat7.c b/sim/testsuite/cris/c/stat7.c
index cbd5282b70ac..d61bd8e0c7db 100644
--- a/sim/testsuite/cris/c/stat7.c
+++ b/sim/testsuite/cris/c/stat7.c
@@ -1,5 +1,5 @@
 /*
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <sys/types.h>
diff --git a/sim/testsuite/cris/c/stat8.c b/sim/testsuite/cris/c/stat8.c
index c7eb49f54038..1778b3ed40ba 100644
--- a/sim/testsuite/cris/c/stat8.c
+++ b/sim/testsuite/cris/c/stat8.c
@@ -1,6 +1,6 @@
 /* For this test, we need to do the lstat syscall directly, or else
    glibc gets a SEGV.
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <unistd.h>
diff --git a/sim/testsuite/cris/c/syscall1.c b/sim/testsuite/cris/c/syscall1.c
index 84aacb6e0927..be6eb275a193 100644
--- a/sim/testsuite/cris/c/syscall1.c
+++ b/sim/testsuite/cris/c/syscall1.c
@@ -1,5 +1,5 @@
 /* Test unknown-syscall output.
-#notarget: cris*-*-elf
+#progos: linux
 #xerror:
 #output: Unimplemented syscall: 166 (0x1, 0x2, 0x3, 0x4, 0x5, 0x6)\n
 #output: program stopped with signal 4 (*).\n
diff --git a/sim/testsuite/cris/c/syscall2.c b/sim/testsuite/cris/c/syscall2.c
index b4dbead0b137..d2b5a62373af 100644
--- a/sim/testsuite/cris/c/syscall2.c
+++ b/sim/testsuite/cris/c/syscall2.c
@@ -1,5 +1,5 @@
 /* Test unknown-syscall output.
-#notarget: cris*-*-elf
+#progos: linux
 #xerror:
 #output: Unimplemented syscall: 0 (0x3, 0x2, 0x1, 0x4, 0x6, 0x5)\n
 #output: program stopped with signal 4 (*).\n
diff --git a/sim/testsuite/cris/c/syscall3.c b/sim/testsuite/cris/c/syscall3.c
index f4d02eb6cd3b..6d5ea2855561 100644
--- a/sim/testsuite/cris/c/syscall3.c
+++ b/sim/testsuite/cris/c/syscall3.c
@@ -1,5 +1,5 @@
 /* As the included file, just actually specifying the default.
-#notarget: cris*-*-elf
+#progos: linux
 #sim: --cris-unknown-syscall=stop
 #xerror:
 #output: Unimplemented syscall: 166 (0x1, 0x2, 0x3, 0x4, 0x5, 0x6)\n
diff --git a/sim/testsuite/cris/c/syscall4.c b/sim/testsuite/cris/c/syscall4.c
index ba01cfdeb30c..431452218ebd 100644
--- a/sim/testsuite/cris/c/syscall4.c
+++ b/sim/testsuite/cris/c/syscall4.c
@@ -1,5 +1,5 @@
 /* As the included file, just actually specifying the default.
-#notarget: cris*-*-elf
+#progos: linux
 #sim: --cris-unknown-syscall=stop
 #xerror:
 #output: Unimplemented syscall: 0 (0x3, 0x2, 0x1, 0x4, 0x6, 0x5)\n
diff --git a/sim/testsuite/cris/c/syscall5.c b/sim/testsuite/cris/c/syscall5.c
index 2eac90089727..75a014a350bd 100644
--- a/sim/testsuite/cris/c/syscall5.c
+++ b/sim/testsuite/cris/c/syscall5.c
@@ -1,5 +1,5 @@
 /* As the included file, but specifying ENOSYS with message.
-#notarget: cris*-*-elf
+#progos: linux
 #sim: --cris-unknown-syscall=enosys
 #output: Unimplemented syscall: 166 (0x1, 0x2, 0x3, 0x4, 0x5, 0x6)\n
 #output: ENOSYS\n
diff --git a/sim/testsuite/cris/c/syscall6.c b/sim/testsuite/cris/c/syscall6.c
index 91375df6d349..f59dc1c3bd18 100644
--- a/sim/testsuite/cris/c/syscall6.c
+++ b/sim/testsuite/cris/c/syscall6.c
@@ -1,5 +1,5 @@
 /* As the included file, but specifying ENOSYS with message.
-#notarget: cris*-*-elf
+#progos: linux
 #sim: --cris-unknown-syscall=enosys
 #output: Unimplemented syscall: 0 (0x3, 0x2, 0x1, 0x4, 0x6, 0x5)\n
 #output: ENOSYS\n
diff --git a/sim/testsuite/cris/c/syscall7.c b/sim/testsuite/cris/c/syscall7.c
index 0f1daf1653f3..e38d944edd8a 100644
--- a/sim/testsuite/cris/c/syscall7.c
+++ b/sim/testsuite/cris/c/syscall7.c
@@ -1,5 +1,5 @@
 /* As the included file, but specifying silent ENOSYS.
-#notarget: cris*-*-elf
+#progos: linux
 #sim: --cris-unknown-syscall=enosys-quiet
 #output: ENOSYS\n
 #output: xyzzy\n
diff --git a/sim/testsuite/cris/c/syscall8.c b/sim/testsuite/cris/c/syscall8.c
index c579436d0ef9..38d6cc9a1baa 100644
--- a/sim/testsuite/cris/c/syscall8.c
+++ b/sim/testsuite/cris/c/syscall8.c
@@ -1,5 +1,5 @@
 /* As the included file, but specifying silent ENOSYS.
-#notarget: cris*-*-elf
+#progos: linux
 #sim: --cris-unknown-syscall=enosys-quiet
 #output: ENOSYS\n
 #output: xyzzy\n
diff --git a/sim/testsuite/cris/c/sysctl1.c b/sim/testsuite/cris/c/sysctl1.c
index 6646faca6780..5742fa447bfa 100644
--- a/sim/testsuite/cris/c/sysctl1.c
+++ b/sim/testsuite/cris/c/sysctl1.c
@@ -1,5 +1,5 @@
 /*
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <unistd.h>
diff --git a/sim/testsuite/cris/c/sysctl2.c b/sim/testsuite/cris/c/sysctl2.c
index f27c37c90053..53e810b70234 100644
--- a/sim/testsuite/cris/c/sysctl2.c
+++ b/sim/testsuite/cris/c/sysctl2.c
@@ -2,7 +2,7 @@
 #xerror:
 #output: Unimplemented _sysctl syscall *\n
 #output: program stopped with signal 4 (*).\n
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <unistd.h>
diff --git a/sim/testsuite/cris/c/sysctl3.c b/sim/testsuite/cris/c/sysctl3.c
index 747e78410f4b..b198ed8c0e64 100644
--- a/sim/testsuite/cris/c/sysctl3.c
+++ b/sim/testsuite/cris/c/sysctl3.c
@@ -1,5 +1,5 @@
 /* As the included file, but specifying silent ENOSYS.
-#notarget: cris*-*-elf
+#progos: linux
 #sim: --cris-unknown-syscall=enosys-quiet
 #output: ENOSYS\n
 #output: xyzzy\n
diff --git a/sim/testsuite/cris/c/thread2.c b/sim/testsuite/cris/c/thread2.c
index c9ad2f9214ce..1da539d7e1f2 100644
--- a/sim/testsuite/cris/c/thread2.c
+++ b/sim/testsuite/cris/c/thread2.c
@@ -1,6 +1,6 @@
 /* Compiler options:
 #cc: additional_flags=-pthread
-#notarget: cris*-*-elf
+#progos: linux
 
    A sanity check for syscalls resulting from
    pthread_getschedparam and pthread_setschedparam.  */
diff --git a/sim/testsuite/cris/c/thread3.c b/sim/testsuite/cris/c/thread3.c
index 3b6945ad3c35..8cfc0d781141 100644
--- a/sim/testsuite/cris/c/thread3.c
+++ b/sim/testsuite/cris/c/thread3.c
@@ -1,6 +1,6 @@
 /* Compiler options:
 #cc: additional_flags=-pthread
-#notarget: cris*-*-elf
+#progos: linux
 
    To test sched_yield in the presencs of threads.  Core from ex1.c.  */
 
diff --git a/sim/testsuite/cris/c/thread4.c b/sim/testsuite/cris/c/thread4.c
index cfa23279c505..0df5fba5bf90 100644
--- a/sim/testsuite/cris/c/thread4.c
+++ b/sim/testsuite/cris/c/thread4.c
@@ -1,5 +1,5 @@
 /* Compiler options:
-#notarget: cris*-*-elf
+#progos: linux
 #cc: additional_flags=-pthread
 #output: abb ok\n
 
diff --git a/sim/testsuite/cris/c/thread5.c b/sim/testsuite/cris/c/thread5.c
index 494251fdd396..84b53e06fda9 100644
--- a/sim/testsuite/cris/c/thread5.c
+++ b/sim/testsuite/cris/c/thread5.c
@@ -1,5 +1,5 @@
 /* Compiler options:
-#notarget: cris*-*-elf
+#progos: linux
 #cc: additional_flags=-pthread
 #output: abbb ok\n
 
diff --git a/sim/testsuite/cris/c/truncate1.c b/sim/testsuite/cris/c/truncate1.c
index 477dc3d61d25..acd04909bddb 100644
--- a/sim/testsuite/cris/c/truncate1.c
+++ b/sim/testsuite/cris/c/truncate1.c
@@ -1,5 +1,5 @@
 /* Check that the truncate syscall works trivially.
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <stdio.h>
diff --git a/sim/testsuite/cris/c/truncate2.c b/sim/testsuite/cris/c/truncate2.c
index f021ae8ac992..b24c30846d65 100644
--- a/sim/testsuite/cris/c/truncate2.c
+++ b/sim/testsuite/cris/c/truncate2.c
@@ -1,6 +1,6 @@
 /*
 #sim: --sysroot=$pwd
-#notarget: cris*-*-elf
+#progos: linux
 */
 #define PREFIX "/"
 #include "truncate1.c"
diff --git a/sim/testsuite/cris/c/ugetrlimit1.c b/sim/testsuite/cris/c/ugetrlimit1.c
index 2a49b9589eeb..6f3eb4d11d8d 100644
--- a/sim/testsuite/cris/c/ugetrlimit1.c
+++ b/sim/testsuite/cris/c/ugetrlimit1.c
@@ -1,5 +1,5 @@
 /* Check corner error case: specifying unimplemented resource.
-#notarget: cris*-*-elf
+#progos: linux
 */
 
 #include <sys/time.h>
diff --git a/sim/testsuite/cris/c/uname1.c b/sim/testsuite/cris/c/uname1.c
index 83518d6ec860..02db97465a6b 100644
--- a/sim/testsuite/cris/c/uname1.c
+++ b/sim/testsuite/cris/c/uname1.c
@@ -1,5 +1,5 @@
 /* Check that the right machine name appears in the uname result.
-#notarget: *-*-elf
+#progos: linux
 */
 #include <sys/utsname.h>
 #include <stdio.h>
diff --git a/sim/testsuite/cris/c/writev1.c b/sim/testsuite/cris/c/writev1.c
index fad5b7f1920b..a723171a87f7 100644
--- a/sim/testsuite/cris/c/writev1.c
+++ b/sim/testsuite/cris/c/writev1.c
@@ -1,5 +1,5 @@
 /* Trivial test of writev.
-#notarget: cris*-*-elf
+#progos: linux
 #output: abcdefghijklmn\npass\n
 */
 #include <sys/uio.h>
diff --git a/sim/testsuite/cris/c/writev2.c b/sim/testsuite/cris/c/writev2.c
index 5cb92b60a5e1..e4904dfbdb91 100644
--- a/sim/testsuite/cris/c/writev2.c
+++ b/sim/testsuite/cris/c/writev2.c
@@ -1,5 +1,5 @@
 /* Trivial test of failing writev: invalid file descriptor.
-#notarget: cris*-*-elf
+#progos: linux
 */
 #include <sys/uio.h>
 #include <errno.h>
diff --git a/sim/testsuite/lib/linuxcheck.c b/sim/testsuite/lib/linuxcheck.c
new file mode 100644
index 000000000000..d1f4bc17a6bd
--- /dev/null
+++ b/sim/testsuite/lib/linuxcheck.c
@@ -0,0 +1,9 @@
+/* Used by the test harness to see if toolchain targets Linux.  */
+#ifdef __linux__
+int main()
+{
+  return 0;
+}
+#else
+# error "not linux"
+#endif
diff --git a/sim/testsuite/lib/newlibcheck.c b/sim/testsuite/lib/newlibcheck.c
new file mode 100644
index 000000000000..ea1d86428854
--- /dev/null
+++ b/sim/testsuite/lib/newlibcheck.c
@@ -0,0 +1,10 @@
+/* Used by the test harness to see if toolchain uses newlib.  */
+#include <newlib.h>
+#if defined(__NEWLIB__) || defined(_NEWLIB_VERSION)
+int main()
+{
+  return 0;
+}
+#else
+# error "not newlib"
+#endif
diff --git a/sim/testsuite/lib/sim-defs.exp b/sim/testsuite/lib/sim-defs.exp
index f399d2f3da1d..535f76cbae34 100644
--- a/sim/testsuite/lib/sim-defs.exp
+++ b/sim/testsuite/lib/sim-defs.exp
@@ -48,16 +48,33 @@ proc sim_init_toolchain {} {
     global srcdir
     global global_cpp_works
     global global_cc_works
+    global global_cc_os
 
     # See if we have a preprocessor available.
     set result [target_compile $srcdir/lib/compilercheck.c \
 		$objdir/compilercheck.x "preprocess" ""]
     set global_cpp_works [string equal "" "$result"]
 
-    # See if we have a compiler available.
-    set result [target_compile $srcdir/lib/compilercheck.c \
-		$objdir/compilercheck.x "executable" ""]
-    set global_cc_works [string equal "" "$result"]
+    # See if we have a compiler available, and which environment it's targeting.
+    if { [target_compile $srcdir/lib/newlibcheck.c \
+	  $objdir/compilercheck.x "executable" ""] == "" } {
+	verbose -log "Found newlib C compiler"
+	set global_cc_works 1
+	set global_cc_os "newlib"
+    } elseif { [target_compile $srcdir/lib/linuxcheck.c \
+		$objdir/compilercheck.x "executable" ""] == "" } {
+	verbose -log "Found Linux C compiler"
+	set global_cc_works 1
+	set global_cc_os "linux"
+    } elseif { [target_compile $srcdir/lib/compilercheck.c \
+		$objdir/compilercheck.x "executable" ""] == "" } {
+	verbose -log "Found C compiler, but unknown OS"
+	set global_cc_works 1
+	set global_cc_os ""
+    } {
+	verbose -log "Can't execute C compiler"
+	set global_cc_works 0
+    }
 
     file delete $objdir/compilercheck.x
 }
@@ -189,6 +206,7 @@ proc sim_run { prog sim_opts prog_opts redir options } {
 # cc[(mach-list)]: <compiler options>
 # sim[(mach-list)]: <simulator options>
 # progopts: <arguments to the program being simulated>
+# progos: OS required for the test
 # status: program exit status to treat as "pass"
 # output: program output pattern to match with string-match
 # xerror: program is expected to return with a "failure" exit code
@@ -211,6 +229,7 @@ proc run_sim_test { name requested_machs } {
     global SIMFLAGS_FOR_TARGET
     global global_cpp_works
     global global_cc_works
+    global global_cc_os
 
     if ![file exists $sim_path] {
 	unsupported "$name: missing simulator $sim_path"
@@ -234,6 +253,7 @@ proc run_sim_test { name requested_machs } {
     set opts(ld) ""
     set opts(cc) ""
     set opts(progopts) ""
+    set opts(progos) ""
     set opts(sim) ""
     set opts(status) "0"
     set opts(output) ""
@@ -291,6 +311,11 @@ proc run_sim_test { name requested_machs } {
 	}
     }
 
+    if { $opts(progos) != "" && $opts(progos) != $global_cc_os } {
+	untested $subdir/$name
+	return
+    }
+
     set testname $name
     set sourcefile $file
     if { $seen_output == 0 } {
-- 
2.33.0


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-11-27  1:32 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-27  1:31 [PATCH] sim: testsuite: initial support for OS-specific tests Mike Frysinger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).