This takes care of the failing gcc.dg/torture/ftrapv-1.c and
-ftrapv-2.c for cris-elf.

For simplicity, assume simulators are the GNU simulator (in the gdb
repo).  But cris-elf is newlib, so a newlib target forking?  Yes: the
I/O, etc. interface to the simulator uses the Linux/CRIS ABI.

        * lib/target-supports.exp (check_fork_available): Don't signal
        true for CRIS running on a simulator.
---
 gcc/testsuite/lib/target-supports.exp | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/gcc/testsuite/lib/target-supports.exp 
b/gcc/testsuite/lib/target-supports.exp
index a4fbc1998c70..335e24b23b12 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -2880,6 +2880,12 @@ proc check_fork_available {} {
        # tell as we're doing partial links for kernel modules.
        return 0
      }    
+    if { [istarget cris-*-*] } {
+       # Compiling and linking works, and an executable running e.g.
+       # gcc.dg/torture/ftrapv-1.c works on now-historical hardware,
+       # but the GNU simulator emits an error for the fork syscall.
+       return [check_effective_target_hw]
+    }
     return [check_function_available "fork"]
 }
 
-- 
2.30.2

Reply via email to