]> git.meshlink.io Git - catta/blob - m4/gcc_visibility.m4
remove debug output on interface changes
[catta] / m4 / gcc_visibility.m4
1 dnl @synopsis CHECK_VISIBILITY([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
2 dnl
3 dnl @summary check for the gcc -fvisibility flag
4 dnl
5
6 AC_DEFUN([CHECK_VISIBILITY_HIDDEN], [
7   save_CFLAGS="$CFLAGS"
8   VISIBILITY_HIDDEN_CFLAGS=""
9   OPTION=-fvisibility=hidden
10
11   AC_MSG_CHECKING(for gcc $OPTION support)
12
13   CFLAGS="$CFLAGS $OPTION"
14
15   AC_TRY_COMPILE([
16       int default_vis __attribute__ ((visibility("default")));
17       int hidden_vis __attribute__ ((visibility("hidden")));
18     ],
19     [],
20     ac_visibility_supported=yes,
21     ac_visibility_supported=no)
22   AC_MSG_RESULT($ac_visibility_supported)
23
24   if test x"$ac_visibility_supported" = xyes; then
25     ifelse([$1],,AC_DEFINE(HAVE_GCC_VISIBILITY,1,[Define if you have gcc -fvisibility=hidden support ]),[$1])
26     VISIBILITY_HIDDEN_CFLAGS="$OPTION -DHAVE_VISIBILITY_HIDDEN"
27     AC_DEFINE(HAVE_VISIBILITY_HIDDEN,[],[Support for visibility hidden])
28   else
29     $2
30     :
31   fi
32
33   AC_SUBST(VISIBILITY_HIDDEN_CFLAGS)
34
35   CFLAGS="$save_CFLAGS"
36 ])