autotools: control symbol visibility via -fvisibility
authorTim-Philipp Müller <tim@centricular.com>
Fri, 27 Apr 2018 17:42:29 +0000 (18:42 +0100)
committerTim-Philipp Müller <tim@centricular.com>
Sat, 28 Apr 2018 11:36:01 +0000 (12:36 +0100)
All symbols are hidden by default unless exported
explicitly via our public API decorators.

configure.ac
orc-test/Makefile.am
orc/Makefile.am
orc/orcprogram-mips.c

index 87ff117..7782890 100644 (file)
@@ -215,6 +215,16 @@ AC_ARG_ENABLE(tests,
 [BUILD_TESTS=yes]) dnl Default value
 AM_CONDITIONAL(BUILD_TESTS,         test "x$BUILD_TESTS" = "xyes")
 
+dnl Symbol visibility
+AS_COMPILER_FLAG([-fvisibility=hidden], [
+  VISIBILITY_CFLAGS="-fvisibility=hidden"
+  AC_DEFINE(ORC_API_EXPORT, [extern __attribute__ ((visibility ("default")))], [public symbol export define])
+], [
+  VISIBILITY_CFLAGS=""
+  AC_DEFINE(ORC_API_EXPORT, [extern], [public symbol export define])
+])
+AC_SUBST(VISIBILITY_CFLAGS)
+
 dnl Check for -Bsymbolic-functions linker flag used to avoid
 dnl intra-library PLT jumps, if available.
 AC_ARG_ENABLE(Bsymbolic,
@@ -230,7 +240,7 @@ AC_ARG_ENABLE(Bsymbolic,
                            enable_Bsymbolic=no)
                LDFLAGS="${SAVED_LDFLAGS}" LIBS="${SAVED_LIBS}"])
 
-ORC_CFLAGS="$ORC_CFLAGS \$(ERROR_CFLAGS) -I\$(top_srcdir) -D_GNU_SOURCE"
+ORC_CFLAGS="$ORC_CFLAGS \$(VISIBILITY_CFLAGS) \$(ERROR_CFLAGS) -I\$(top_srcdir) -D_GNU_SOURCE"
 AC_SUBST(ERROR_CFLAGS)
 AC_SUBST(ORC_CFLAGS)
 
index 3681de8..78554cf 100644 (file)
@@ -6,6 +6,7 @@ lib_LTLIBRARIES = liborc-test-@ORC_MAJORMINOR@.la
 liborc_test_@ORC_MAJORMINOR@_la_LIBADD = $(ORC_LIBS)
 liborc_test_@ORC_MAJORMINOR@_la_LDFLAGS = $(ORC_LDFLAGS)
 liborc_test_@ORC_MAJORMINOR@_la_CFLAGS = $(ORC_CFLAGS) \
+       -DBUILDING_ORC_TEST \
        -DORC_ENABLE_UNSTABLE_API
 
 liborc_test_@ORC_MAJORMINOR@_la_SOURCES = \
index c1731c7..52c317d 100644 (file)
@@ -6,6 +6,7 @@ lib_LTLIBRARIES = liborc-@ORC_MAJORMINOR@.la
 liborc_@ORC_MAJORMINOR@_la_LIBADD = $(LIBM) $(LIBRT) $(PTHREAD_LIBS) $(LIBLOG)
 liborc_@ORC_MAJORMINOR@_la_LDFLAGS = $(ORC_LDFLAGS)
 liborc_@ORC_MAJORMINOR@_la_CFLAGS = $(ORC_CFLAGS) \
+       -DBUILDING_ORC \
        -DORC_ENABLE_UNSTABLE_API
 
 liborc_@ORC_MAJORMINOR@_la_SOURCES = \
index 5ae3678..423e903 100644 (file)
 
 */
 
+#include "config.h"
+
 #include <orc/orcmips.h>
 #include <orc/orcdebug.h>
 #include <stdlib.h>
 #include <string.h>
-#include "config.h"
 
 static unsigned int orc_compiler_orc_mips_get_default_flags (void);