Made the configure script check if certain GCC flags are supported before using them
This commit is contained in:
parent
e71af91e48
commit
732080557c
40
configure.ac
40
configure.ac
|
@ -113,8 +113,44 @@ AC_COMPILE_IFELSE(AC_LANG_PROGRAM([[ ]]),
|
||||||
AC_MSG_RESULT([no])
|
AC_MSG_RESULT([no])
|
||||||
gnu89_inline=
|
gnu89_inline=
|
||||||
)
|
)
|
||||||
|
|
||||||
|
#Check whether GCC accepts the -fno-strict-overflow setting:
|
||||||
|
AC_MSG_CHECKING([whether -fno-strict-overflow flag is accepted])
|
||||||
|
CFLAGS="-fno-strict-overflow"
|
||||||
|
AC_COMPILE_IFELSE(AC_LANG_PROGRAM([[ ]]),
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
no_strict_overflow=-fno-strict-overflow
|
||||||
|
,
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
no_strict_overflow=
|
||||||
|
)
|
||||||
|
|
||||||
|
#Check whether GCC accepts the -fno-strict-aliasing setting:
|
||||||
|
AC_MSG_CHECKING([whether -fno-strict-aliasing flag is accepted])
|
||||||
|
CFLAGS="-fno-strict-aliasing"
|
||||||
|
AC_COMPILE_IFELSE(AC_LANG_PROGRAM([[ ]]),
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
no_strict_aliasing=-fno-strict-aliasing
|
||||||
|
,
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
no_strict_aliasing=
|
||||||
|
)
|
||||||
|
|
||||||
|
#Check whether GCC accepts the -fno-tree-vrp setting:
|
||||||
|
AC_MSG_CHECKING([whether -fno-tree-vrp flag is accepted])
|
||||||
|
CFLAGS="-fno-tree-vrp"
|
||||||
|
AC_COMPILE_IFELSE(AC_LANG_PROGRAM([[ ]]),
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
no_tree_vrp=-fno-tree-vrp
|
||||||
|
,
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
no_tree_vrp=
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
CFLAGS="$old_CFLAGS"
|
CFLAGS="$old_CFLAGS"
|
||||||
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([Checking GHC version])
|
AC_MSG_CHECKING([Checking GHC version])
|
||||||
|
|
||||||
ghc_version=`ghc --numeric-version`
|
ghc_version=`ghc --numeric-version`
|
||||||
|
@ -157,7 +193,7 @@ AC_CHECK_SIZEOF(int)
|
||||||
AC_COMPUTE_INT(C_INT_SIZE,SIZEOF_INT)
|
AC_COMPUTE_INT(C_INT_SIZE,SIZEOF_INT)
|
||||||
AC_SUBST(C_INT_SIZE)
|
AC_SUBST(C_INT_SIZE)
|
||||||
|
|
||||||
CFLAGS="$CFLAGS -fno-strict-overflow -fno-tree-vrp"
|
CFLAGS="$CFLAGS $no_strict_overflow $no_tree_vrp"
|
||||||
# The reason for -fno-strict-overflow and -fno-tree-vrp above is that with the way I have implemented
|
# The reason for -fno-strict-overflow and -fno-tree-vrp above is that with the way I have implemented
|
||||||
# range checking, on GCC 4.3.2 (and probably other versions), GCC has
|
# range checking, on GCC 4.3.2 (and probably other versions), GCC has
|
||||||
# a bug triggered that causes invalid behaviour (spurious overflows can happen)
|
# a bug triggered that causes invalid behaviour (spurious overflows can happen)
|
||||||
|
@ -169,7 +205,7 @@ CFLAGS="$CFLAGS -fno-strict-overflow -fno-tree-vrp"
|
||||||
# that, but I'm also leaving these flags in so that any other code (for example,
|
# that, but I'm also leaving these flags in so that any other code (for example,
|
||||||
# that Tock might spit out) that uses increments doesn't have the same issue.
|
# that Tock might spit out) that uses increments doesn't have the same issue.
|
||||||
|
|
||||||
common_cflags="-Wall -ggdb3 -Isupport -fno-strict-aliasing"
|
common_cflags="-Wall -ggdb3 -Isupport $no_strict_aliasing"
|
||||||
|
|
||||||
TOCK_CFLAGS="$gnu89_inline $CPPFLAGS $CFLAGS $common_cflags $CCSP_CFLAGS $GLIB_CFLAGS"
|
TOCK_CFLAGS="$gnu89_inline $CPPFLAGS $CFLAGS $common_cflags $CCSP_CFLAGS $GLIB_CFLAGS"
|
||||||
TOCK_CLDFLAGS="$LDFLAGS $CCSP_LIBS $GLIB_LIBS"
|
TOCK_CLDFLAGS="$LDFLAGS $CCSP_LIBS $GLIB_LIBS"
|
||||||
|
|
Loading…
Reference in New Issue
Block a user