summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sandberg <andreas.sandberg@arm.com>2018-05-02 15:34:24 +0100
committerAndreas Sandberg <andreas.sandberg@arm.com>2018-06-29 08:50:42 +0000
commit0ee4a543648a4c183a27b7d953317a99f6f30928 (patch)
treeba21e4f095481abab649a72408a92bf07837509d
parent055a6ec3da7df5fee98d8f5ba08aaf81d5e7862c (diff)
downloadgem5-0ee4a543648a4c183a27b7d953317a99f6f30928.tar.xz
base: Add a M5_PUBLIC and M5_LOCAL attribute macro
There are cases where we need to limit the symbol visibility to avoid compilation errors. This is a problem for Python code that relies on PyBind11 since recent versions enforce hidden symbols. As a consequence, classes that have member variables from PyBind11 need to be declared with the hidden attribute (or gem5 needs to be compiled with -fvisibility=hidden). Change-Id: I30e582fde494ff61ab7a596a595efc26a2952a5f Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-on: https://gem5-review.googlesource.com/11513 Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
-rw-r--r--src/base/compiler.hh2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/base/compiler.hh b/src/base/compiler.hh
index 4765adc36..35156ee67 100644
--- a/src/base/compiler.hh
+++ b/src/base/compiler.hh
@@ -56,6 +56,8 @@
# define M5_DEPRECATED __attribute__((deprecated))
# define M5_DEPRECATED_MSG(MSG) __attribute__((deprecated(MSG)))
# define M5_UNREACHABLE __builtin_unreachable()
+# define M5_PUBLIC __attribute__ ((visibility ("default")))
+# define M5_LOCAL __attribute__ ((visibility ("hidden")))
#endif
#if defined(__clang__)