X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=m4%2Fpandora_visibility.m4;h=f0baa60111f87f33d0a3163501fc87cc3fc42a02;hb=969fea8e7bed82c109685ec3976cf7b0ec514ae9;hp=cb68644ddf9b8c63a6dd08774680bc6db186f009;hpb=1d8231fc194a56976c5bb14a75ff548ef5440191;p=awesomized%2Flibmemcached diff --git a/m4/pandora_visibility.m4 b/m4/pandora_visibility.m4 index cb68644d..f0baa601 100644 --- a/m4/pandora_visibility.m4 +++ b/m4/pandora_visibility.m4 @@ -20,38 +20,56 @@ dnl "really only recommended for legacy code". dnl Set the variable CFLAG_VISIBILITY. dnl Defines and sets the variable HAVE_VISIBILITY. -AC_DEFUN([PANDORA_VISIBILITY], +AC_DEFUN([PANDORA_CHECK_VISIBILITY], [ AC_REQUIRE([AC_PROG_CC]) - AC_REQUIRE([PANDORA_PLATFORM]) CFLAG_VISIBILITY= HAVE_VISIBILITY=0 AS_IF([test -n "$GCC"],[ AC_MSG_CHECKING([for simple visibility declarations]) AC_CACHE_VAL([gl_cv_cc_visibility], [ gl_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -fvisibility=hidden" + CFLAGS="$CFLAGS -fvisibility=hidden -Werror" AC_TRY_COMPILE( [extern __attribute__((__visibility__("hidden"))) int hiddenvar; extern __attribute__((__visibility__("default"))) int exportedvar; extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); extern __attribute__((__visibility__("default"))) int exportedfunc (void);], - [], - [gl_cv_cc_visibility=yes], - [gl_cv_cc_visibility=no]) + [],[ + case "$host_os" in + *darwin*) + gl_cv_cc_visibility=no + ;; + *) + gl_cv_cc_visibility=yes + ;; + esac + ],[gl_cv_cc_visibility=no]) CFLAGS="$gl_save_CFLAGS"]) AC_MSG_RESULT([$gl_cv_cc_visibility]) if test $gl_cv_cc_visibility = yes; then CFLAG_VISIBILITY="-fvisibility=hidden" + CXXFLAG_VISIBILITY="-fvisibility=hidden -fvisibility-inlines-hidden" + NO_VISIBILITY="-fvisibility=default" HAVE_VISIBILITY=1 fi ]) AS_IF([test "x$SUNCC" = "xyes"],[ CFLAG_VISIBILITY="-xldscope=hidden" + CXXFLAG_VISIBILITY="-xldscope=hidden" + NO_VISIBILITY="-xldscope=global" HAVE_VISIBILITY=1 ]) AC_SUBST([CFLAG_VISIBILITY]) + AC_SUBST([CXXFLAG_VISIBILITY]) + AC_SUBST([NO_VISIBILITY]) AC_SUBST([HAVE_VISIBILITY]) AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY], [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.]) ]) + +AC_DEFUN([PANDORA_ENABLE_VISIBILITY],[ + AC_REQUIRE([PANDORA_CHECK_VISIBILITY]) + AM_CFLAGS="${AM_CFLAGS} ${CFLAG_VISIBILITY}" + AM_CXXFLAGS="${AM_CXXFLAGS} ${CXXFLAG_VISIBILITY}" +])