[committed] testsuite: Tweak check_fork_available for CRIS

Message ID 20230310225403.3827420420@pchp3.se.axis.com
State Committed
Commit 020255eb52ec215703f4ffc90a3a916c21fb36fc
Headers
Series [committed] testsuite: Tweak check_fork_available for CRIS |

Commit Message

Hans-Peter Nilsson March 10, 2023, 10:54 p.m. UTC
  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(-)
  

Patch

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"]
 }