sim: fix build error when glibc >= 2.34

Since glibc >= 2.34, MINSIGSTKSZ and SIGSTKSZ are no longer
constant on Linux. As a result, the definition
"fatalSigStack[2*SIGSTKSZ]" fails to be compiled.
Thus, we need to dynamically allocate it.

Change-Id: Ibccc367818483b9c94beda871d1d95367d1e8b04
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/53183
Reviewed-by: Gabe Black <gabe.black@gmail.com>
Maintainer: Gabe Black <gabe.black@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
diff --git a/src/sim/init_signals.cc b/src/sim/init_signals.cc
index cac0190..b6db621 100644
--- a/src/sim/init_signals.cc
+++ b/src/sim/init_signals.cc
@@ -64,18 +64,19 @@
 {
 
 // Use an separate stack for fatal signal handlers
-static uint8_t fatalSigStack[2 * SIGSTKSZ];
 
 static bool
 setupAltStack()
 {
+    const auto stack_size = 2 * SIGSTKSZ;
+    static uint8_t *fatal_sig_stack = new uint8_t[stack_size];
     stack_t stack;
 #if defined(__FreeBSD__) && (__FreeBSD_version < 1100097)
-    stack.ss_sp = (char *)fatalSigStack;
+    stack.ss_sp = (char *)fatal_sig_stack;
 #else
-    stack.ss_sp = fatalSigStack;
+    stack.ss_sp = fatal_sig_stack;
 #endif
-    stack.ss_size = sizeof(fatalSigStack);
+    stack.ss_size = stack_size;
     stack.ss_flags = 0;
 
     return sigaltstack(&stack, NULL) == 0;