dnl @synopsis FANG_CXX_ATTRIBUTE_VISIBILITY dnl dnl Checking for visibility attributes, "hidden" and "default" dnl New since gcc-4.0. dnl Define HAVE_ATTRIBUTE_VISIBILITY_HIDDEN if supported. dnl Define HAVE_ATTRIBUTE_VISIBILITY_DEFAULT if supported. dnl dnl @category Cxx dnl @version 2006-05-08 dnl @author David Fang dnl @license AllPermissive dnl AC_DEFUN([FANG_CXX_ATTRIBUTE_VISIBILITY], [ AC_LANG_PUSH(C++) saved_CXXFLAGS=$CXXFLAGS CXXFLAGS="$saved_CXXFLAGS -Werror" dnl check for __visibility__(("hidden")) AC_CACHE_CHECK([whether compiler accepts __attribute__((visibility("hidden")))], [fang_cv_cxx_attribute_visibility_hidden], AC_COMPILE_IFELSE( AC_LANG_PROGRAM( [struct __attribute__((visibility("hidden"))) foo { foo() { } ~foo() { } };], [foo bar;]), [fang_cv_cxx_attribute_visibility_hidden=yes], [fang_cv_cxx_attribute_visibility_hidden=no] ) ) if test "$fang_cv_cxx_attribute_visibility_hidden" = "yes"; then AC_DEFINE(HAVE_ATTRIBUTE_VISIBILITY_HIDDEN, [], [True if compiler supports __attribute__((visibility("hidden"))) ]) fi dnl check for __visibility__(("default")) AC_CACHE_CHECK([whether compiler accepts __attribute__((visibility("default")))], [fang_cv_cxx_attribute_visibility_default], AC_COMPILE_IFELSE( AC_LANG_PROGRAM( [struct __attribute__((visibility("default"))) foo { foo() { } ~foo() { } };], [foo bar;]), [fang_cv_cxx_attribute_visibility_default=yes], [fang_cv_cxx_attribute_visibility_default=no] ) ) if test "$fang_cv_cxx_attribute_visibility_default" = "yes"; then AC_DEFINE(HAVE_ATTRIBUTE_VISIBILITY_DEFAULT, [], [True if compiler supports __attribute__((visibility("default"))) ]) fi dnl restore flags and language CXXFLAGS=$saved_CXXFLAGS AC_LANG_POP(C++) ])dnl