X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=m4%2Fgcc_visibility.m4;fp=m4%2Fgcc_visibility.m4;h=6b5a89dce6dc8c2b13b444a6d3a4ab09f0a205b5;hb=dcb4e7b6d849cb04cee7be7de37440f12bd305c7;hp=0000000000000000000000000000000000000000;hpb=5133886fe11d7650bc89b46746731ca2eab2185d;p=catta diff --git a/m4/gcc_visibility.m4 b/m4/gcc_visibility.m4 new file mode 100644 index 0000000..6b5a89d --- /dev/null +++ b/m4/gcc_visibility.m4 @@ -0,0 +1,36 @@ +dnl @synopsis CHECK_VISIBILITY([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) +dnl +dnl @summary check for the gcc -fvisibility flag +dnl + +AC_DEFUN([CHECK_VISIBILITY_HIDDEN], [ + save_CFLAGS="$CFLAGS" + VISIBILITY_HIDDEN_CFLAGS="" + OPTION=-fvisibility=hidden + + AC_MSG_CHECKING(for gcc $OPTION support) + + CFLAGS="$CFLAGS $OPTION" + + AC_TRY_COMPILE([ + int default_vis __attribute__ ((visibility("default"))); + int hidden_vis __attribute__ ((visibility("hidden"))); + ], + [], + ac_visibility_supported=yes, + ac_visibility_supported=no) + AC_MSG_RESULT($ac_visibility_supported) + + if test x"$ac_visibility_supported" = xyes; then + ifelse([$1],,AC_DEFINE(HAVE_GCC_VISIBILITY,1,[Define if you have gcc -fvisibility=hidden support ]),[$1]) + VISIBILITY_HIDDEN_CFLAGS="$OPTION -DHAVE_VISIBILITY_HIDDEN" + AC_DEFINE(HAVE_VISIBILITY_HIDDEN,[],[Support for visibility hidden]) + else + $2 + : + fi + + AC_SUBST(VISIBILITY_HIDDEN_CFLAGS) + + CFLAGS="$save_CFLAGS" +])