aboutsummaryrefslogtreecommitdiffstats
path: root/src/util/macros.h
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2015-03-03 09:01:03 -0700
committerBrian Paul <[email protected]>2015-03-04 08:33:48 -0700
commit5bebd7099ab22c6f1498cd928170561718d6ff36 (patch)
tree0c7f8c9c773312d1a753974825e40064222a2397 /src/util/macros.h
parent25656753d765680ea4a592ff812deac132e2262d (diff)
mesa: consolidate PUBLIC macro definition
Define the macro in src/util/macros.h rather than in two different places. Note that USED isn't actually used anywhere at this time. Reviewed-by: Jose Fonseca <[email protected]>
Diffstat (limited to 'src/util/macros.h')
-rw-r--r--src/util/macros.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/util/macros.h b/src/util/macros.h
index eec8b9352cc..b862bfd5f15 100644
--- a/src/util/macros.h
+++ b/src/util/macros.h
@@ -156,4 +156,27 @@ do { \
# endif
#endif
+/**
+ * PUBLIC/USED macros
+ *
+ * If we build the library with gcc's -fvisibility=hidden flag, we'll
+ * use the PUBLIC macro to mark functions that are to be exported.
+ *
+ * We also need to define a USED attribute, so the optimizer doesn't
+ * inline a static function that we later use in an alias. - ajax
+ */
+#ifndef PUBLIC
+# if defined(__GNUC__) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590))
+# define PUBLIC __attribute__((visibility("default")))
+# define USED __attribute__((used))
+# elif defined(_MSC_VER)
+# define PUBLIC __declspec(dllexport)
+# define USED
+# else
+# define PUBLIC
+# define USED
+# endif
+#endif
+
+
#endif /* UTIL_MACROS_H */