summaryrefslogtreecommitdiff
path: root/configure.in
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@suse.cz>2012-04-20 14:11:40 +0200
committerLuboš Luňák <l.lunak@suse.cz>2012-04-23 19:17:42 +0200
commitfaa15bd23ef0e54cc677c2252123bddcb90b4f0d (patch)
treea0dee4980485063f0187efa318882765872ce66e /configure.in
parent922c879b6e8ca126cc23173765b043f849735333 (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.in81
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])