base: Fix ucontext compilation error for macOS
authorGiacomo Travaglini <giacomo.travaglini@arm.com>
Tue, 17 Jul 2018 09:42:06 +0000 (10:42 +0100)
committerGiacomo Travaglini <giacomo.travaglini@arm.com>
Thu, 26 Jul 2018 07:00:34 +0000 (07:00 +0000)
ucontext functions (like getcontext, setcontext etc) have been marked
as deprecated and are hence hidden in latest macOS releases.
This patch uncovers them; warnings wil be produced but compilation
won't fail since -Wno-error=deprecated-declarations flag is currently
used.

Change-Id: Ic10e6f77a38875828b1891eaed2f0626ecffff67
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/11729
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

src/base/fiber.hh

index b9f0683a53997103e29412529b825e65c276dbcc..5f7285b297551de2c9c7222aa3547fcef82f2004 100644 (file)
 #ifndef __BASE_FIBER_HH__
 #define __BASE_FIBER_HH__
 
+// ucontext functions (like getcontext, setcontext etc) have been marked
+// as deprecated and are hence hidden in latest macOS releases.
+// By defining _XOPEN_SOURCE we make them available at compilation time.
+#if defined(__APPLE__) && defined(__MACH__)
+#define _XOPEN_SOURCE 600
 #include <ucontext.h>
+#undef _XOPEN_SOURCE
+#else
+#include <ucontext.h>
+#endif
 
 #include <cstddef>
 #include <cstdint>