1 # 2 # Determine if the compiler accepts -fvisibility-inlines-hidden 3 # 4 # This macro is specific to LLVM. 5 # 6 AC_DEFUN([AC_CXX_USE_VISIBILITY_INLINES_HIDDEN], 7 [AC_CACHE_CHECK([for compiler -fvisibility-inlines-hidden option], 8 [llvm_cv_cxx_visibility_inlines_hidden], 9 [ AC_LANG_PUSH([C++]) 10 oldcxxflags="$CXXFLAGS" 11 CXXFLAGS="$CXXFLAGS -O0 -fvisibility-inlines-hidden -Werror" 12 AC_COMPILE_IFELSE([AC_LANG_PROGRAM( 13 [template <typename T> struct X { void __attribute__((noinline)) f() {} };], 14 [X<int>().f();])], 15 [llvm_cv_cxx_visibility_inlines_hidden=yes],[llvm_cv_cxx_visibility_inlines_hidden=no]) 16 CXXFLAGS="$oldcxxflags" 17 AC_LANG_POP([C++]) 18 ]) 19 if test "$llvm_cv_cxx_visibility_inlines_hidden" = yes ; then 20 AC_SUBST([ENABLE_VISIBILITY_INLINES_HIDDEN],[1]) 21 else 22 AC_SUBST([ENABLE_VISIBILITY_INLINES_HIDDEN],[0]) 23 fi 24 ]) 25