sim: make compile on FreeBSD prior to 11
authorBjoern A. Zeeb <baz21@cam.ac.uk>
Sun, 3 Sep 2017 17:00:44 +0000 (17:00 +0000)
committerB.A. Zeeb <baz21@cam.ac.uk>
Wed, 27 Sep 2017 20:44:12 +0000 (20:44 +0000)
FreeBSD before the early 11 development is expecting a char *
for stack.ss_sp rather than the standards compliant void *.
Catch that case and allow gem5 to compile on old FreeBSD versions.

Change-Id: Ic0ae560b52bfe5b3905ae87df791d349e053ec97
Reviewed-on: https://gem5-review.googlesource.com/4660
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

src/sim/init_signals.cc

index 5acfe45fdff240d3bc9b7036d702e0a61628365b..c7960c51614b73658edb2c4c3912c4c295e8197a 100644 (file)
 #include <iostream>
 #include <string>
 
+#if defined(__FreeBSD__)
+#include <sys/param.h>
+
+#endif
+
 #include "base/atomicio.hh"
 #include "base/cprintf.hh"
 #include "base/misc.hh"
@@ -67,7 +72,11 @@ static bool
 setupAltStack()
 {
     stack_t stack;
+#if defined(__FreeBSD__) && (__FreeBSD_version < 1100097)
+    stack.ss_sp = (char *)fatalSigStack;
+#else
     stack.ss_sp = fatalSigStack;
+#endif
     stack.ss_size = sizeof(fatalSigStack);
     stack.ss_flags = 0;