summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjoern A. Zeeb <baz21@cam.ac.uk>2017-09-03 17:00:44 +0000
committerB.A. Zeeb <baz21@cam.ac.uk>2017-09-27 20:44:12 +0000
commite4c60aa0c1952ea0ee22bc122dcc4b83e6527ee1 (patch)
treee753fce5b27b926b47e7cfc29f715ca827371aa0
parent6c7d8c9967609b3b2bbba1ba2e97700696af6cf3 (diff)
downloadgem5-e4c60aa0c1952ea0ee22bc122dcc4b83e6527ee1.tar.xz
sim: make compile on FreeBSD prior to 11
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>
-rw-r--r--src/sim/init_signals.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/sim/init_signals.cc b/src/sim/init_signals.cc
index 5acfe45fd..c7960c516 100644
--- a/src/sim/init_signals.cc
+++ b/src/sim/init_signals.cc
@@ -50,6 +50,11 @@
#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;