diff options
author | Luboš Luňák <l.lunak@suse.cz> | 2012-04-20 14:11:40 +0200 |
---|---|---|
committer | Luboš Luňák <l.lunak@suse.cz> | 2012-04-23 19:17:42 +0200 |
commit | faa15bd23ef0e54cc677c2252123bddcb90b4f0d (patch) | |
tree | a0dee4980485063f0187efa318882765872ce66e /configure.in | |
parent | 922c879b6e8ca126cc23173765b043f849735333 (diff) |
configure checks for gcc options that clang does not support
Maybe they'll be supported somewhen in the future, so do not hardcode
them out. Also, gb_DEBUG_C(XX)FLAGS are apparently common GCC options,
not platform-specific.
Diffstat (limited to 'configure.in')
-rw-r--r-- | configure.in | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/configure.in b/configure.in index 7633128b8845..50e15a35b992 100644 --- a/configure.in +++ b/configure.in @@ -2540,6 +2540,10 @@ dnl =================================================================== dnl Is it actually Clang? dnl =================================================================== +COM_GCC_IS_CLANG= +HAVE_GCC_GGDB2= +HAVE_GCC_FINLINE_LIMIT= +HAVE_GCC_FNO_INLINE= if test "$GCC" = "yes"; then AC_MSG_CHECKING([whether GCC is actually Clang]) AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ @@ -2551,8 +2555,48 @@ if test "$GCC" = "yes"; then [AC_MSG_RESULT([yes]) COM_GCC_IS_CLANG=TRUE], [AC_MSG_RESULT([no])]) + + # check various GCC options that Clang does not support now but maybe + # will somewhen in the future, check them even for GCC, so that the flags + # are set + + AC_MSG_CHECKING([whether $CC supports -ggdb2]) + save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -Werror -ggdb2" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ HAVE_GCC_GGDB2=TRUE ],[]) + CFLAGS=$save_CFLAGS + if test "$HAVE_GCC_GGDB2" = "TRUE"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + + AC_MSG_CHECKING([whether $CC supports -finline-limit=0]) + save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -Werror -finline-limit=0" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ HAVE_GCC_FINLINE_LIMIT=TRUE ],[]) + CFLAGS=$save_CFLAGS + if test "$HAVE_GCC_FINLINE_LIMIT" = "TRUE"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + + AC_MSG_CHECKING([whether $CC supports -fno-inline]) + save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -Werror -fno-inline" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ HAVE_GCC_FNO_INLINE=TRUE ],[]) + CFLAGS=$save_CFLAGS + if test "$HAVE_GCC_FNO_INLINE" = "TRUE"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi fi AC_SUBST(COM_GCC_IS_CLANG) +AC_SUBST(HAVE_GCC_GGDB2) +AC_SUBST(HAVE_GCC_FINLINE_LIMIT) +AC_SUBST(HAVE_GCC_FNO_INLINE) HAVE_LD_BSYMBOLIC_FUNCTIONS= if test "$GCC" = "yes"; then @@ -4696,6 +4740,43 @@ fi AC_SUBST(HAVE_SFINAE_ANONYMOUS_BROKEN) dnl =================================================================== +dnl Clang++ tests +dnl =================================================================== + +HAVE_GCC_FNO_DEFAULT_INLINE= +HAVE_GCC_FNO_ENFORCE_EH_SPECS= +if test "$GCC" = "yes"; then + AC_MSG_CHECKING([whether $CXX supports -fno-default-inline]) + AC_LANG_PUSH([C++]) + save_CXXFLAGS=$CXXFLAGS + CXXFLAGS="$CFLAGS -Werror -fno-default-inline" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ HAVE_GCC_FNO_DEFAULT_INLINE=TRUE ],[]) + CXXFLAGS=$save_CXXFLAGS + AC_LANG_POP([C++]) + if test "$HAVE_GCC_FNO_DEFAULT_INLINE" = "TRUE"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + + AC_MSG_CHECKING([whether $CXX supports -fno-enforce-eh-specs]) + AC_LANG_PUSH([C++]) + save_CXXFLAGS=$CXXFLAGS + CXXFLAGS="$CFLAGS -Werror -fno-enforce-eh-specs" + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[ return 0; ]])],[ HAVE_GCC_FNO_ENFORCE_EH_SPECS=TRUE ],[]) + CXXFLAGS=$save_CXXFLAGS + AC_LANG_POP([C++]) + if test "$HAVE_GCC_FNO_ENFORCE_EH_SPECS" = "TRUE"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi +fi +AC_SUBST(HAVE_GCC_FNO_DEFAULT_INLINE) +AC_SUBST(HAVE_GCC_FNO_ENFORCE_EH_SPECS) + + +dnl =================================================================== dnl allocator dnl =================================================================== AC_MSG_CHECKING([which memory allocator to use]) |