summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/internal/slibtool_visibility_impl.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/internal/slibtool_visibility_impl.h b/src/internal/slibtool_visibility_impl.h
index 7b1e50f..2bdded0 100644
--- a/src/internal/slibtool_visibility_impl.h
+++ b/src/internal/slibtool_visibility_impl.h
@@ -1,10 +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