From: Andreas Sandberg Date: Wed, 2 May 2018 14:34:24 +0000 (+0100) Subject: base: Add a M5_PUBLIC and M5_LOCAL attribute macro X-Git-Tag: v19.0.0.0~2013 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0ee4a543648a4c183a27b7d953317a99f6f30928;p=gem5.git 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 Reviewed-by: Giacomo Travaglini Reviewed-on: https://gem5-review.googlesource.com/11513 Reviewed-by: Jason Lowe-Power --- 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__)