summaryrefslogtreecommitdiff
path: root/src/internal/slibtool_visibility_impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/internal/slibtool_visibility_impl.h')
-rw-r--r--src/internal/slibtool_visibility_impl.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/internal/slibtool_visibility_impl.h b/src/internal/slibtool_visibility_impl.h
new file mode 100644
index 0000000..2bdded0
--- /dev/null
+++ b/src/internal/slibtool_visibility_impl.h
@@ -0,0 +1,26 @@
+#ifndef SLIBTOOL_VISIBILITY_IMPL_H
+#define SLIBTOOL_VISIBILITY_IMPL_H
+
+/**********************************************************************/
+/* PE targets: __dllexport suffices for the purpose of exporting only */
+/* the desired subset of global symbols; this makes the visibility */
+/* attribute not only redundant, but also tricky if not properly */
+/* supported by the toolchain. */
+/* */
+/* When targeting Midipix, __PE__, __dllexport and __dllimport are */
+/* always defined by the toolchain. Otherwise, the absnece of these */
+/* macros has been detected by sofort's ccenv.sh during ./configure, */
+/* and they have accordingly been added to CFLAGS_OS. */
+/**********************************************************************/
+
+#ifdef __PE__
+#define slbt_hidden
+#else
+#ifdef _ATTR_VISIBILITY_HIDDEN
+#define slbt_hidden _ATTR_VISIBILITY_HIDDEN
+#else
+#define slbt_hidden
+#endif
+#endif
+
+#endif