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