[commit: ghc] master: Update autoconf test for gcc to require 4.7 and up (59de290)
git at git.haskell.org
git at git.haskell.org
Mon Nov 6 21:40:01 UTC 2017
Repository : ssh://git@git.haskell.org/ghc
On branch : master
Link : http://ghc.haskell.org/trac/ghc/changeset/59de290928e6903337f31c1f8107ac8a98ea145d/ghc
>---------------------------------------------------------------
commit 59de290928e6903337f31c1f8107ac8a98ea145d
Author: Peter Trommler <ptrommler at acm.org>
Date: Mon Nov 6 15:35:30 2017 -0500
Update autoconf test for gcc to require 4.7 and up
Fixing #14244 required the newer gcc atomic built-ins that are provided
from 4.7 and up. This updates the test to check for minimum gcc version
4.7.
The version tests for 3.4 (!), 4.4, and 4.6 are no longer needed and can
be removed. This makes the build system simpler.
Test Plan: validate
Reviewers: austin, bgamari, hvr, simonmar
Reviewed By: bgamari
Subscribers: rwbarton, thomie, erikd
Differential Revision: https://phabricator.haskell.org/D4165
>---------------------------------------------------------------
59de290928e6903337f31c1f8107ac8a98ea145d
aclocal.m4 | 16 ++--------------
mk/config.mk.in | 3 ---
mk/warnings.mk | 6 +-----
rts/ghc.mk | 6 ------
4 files changed, 3 insertions(+), 28 deletions(-)
diff --git a/aclocal.m4 b/aclocal.m4
index c8c5985..c5fdd1e 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1229,27 +1229,15 @@ if test -z "$CC"
then
AC_MSG_ERROR([gcc is required])
fi
-GccLT34=NO
-GccLT44=NO
-GccLT46=NO
AC_CACHE_CHECK([version of gcc], [fp_cv_gcc_version],
[
# Be sure only to look at the first occurrence of the "version " string;
# Some Apple compilers emit multiple messages containing this string.
fp_cv_gcc_version="`$CC -v 2>&1 | sed -n -e '1,/version /s/.*version [[^0-9]]*\([[0-9.]]*\).*/\1/p'`"
- FP_COMPARE_VERSIONS([$fp_cv_gcc_version], [-lt], [3.0],
- [AC_MSG_ERROR([Need at least gcc version 3.0 (3.4+ recommended)])])
- # See #2770: gcc 2.95 doesn't work any more, apparently. There probably
- # isn't a very good reason for that, but for now just make configure
- # fail.
- FP_COMPARE_VERSIONS([$fp_cv_gcc_version], [-lt], [3.4], GccLT34=YES)
- FP_COMPARE_VERSIONS([$fp_cv_gcc_version], [-lt], [4.4], GccLT44=YES)
- FP_COMPARE_VERSIONS([$fp_cv_gcc_version], [-lt], [4.6], GccLT46=YES)
+ FP_COMPARE_VERSIONS([$fp_cv_gcc_version], [-lt], [4.7],
+ [AC_MSG_ERROR([Need at least gcc version 4.7])])
])
AC_SUBST([GccVersion], [$fp_cv_gcc_version])
-AC_SUBST(GccLT34)
-AC_SUBST(GccLT44)
-AC_SUBST(GccLT46)
])# FP_GCC_VERSION
dnl Check to see if the C compiler is clang or llvm-gcc
diff --git a/mk/config.mk.in b/mk/config.mk.in
index 92661a3..b046abe 100644
--- a/mk/config.mk.in
+++ b/mk/config.mk.in
@@ -522,9 +522,6 @@ GccVersion = @GccVersion@
# TargetPlatformFull retains the string passed to configure so we have it in
# the necessary format to pass to libffi's configure.
TargetPlatformFull = @TargetPlatformFull@
-GccLT34 = @GccLT34@
-GccLT44 = @GccLT44@
-GccLT46 = @GccLT46@
GccIsClang = @GccIsClang@
CC = @CC@
diff --git a/mk/warnings.mk b/mk/warnings.mk
index 85cb1a0..69990a7 100644
--- a/mk/warnings.mk
+++ b/mk/warnings.mk
@@ -20,21 +20,17 @@ GhcStage2HcOpts += -Wcpp-undef
ifneq "$(GccIsClang)" "YES"
# Debian doesn't turn -Werror=unused-but-set-variable on by default, so
-# we turn it on explicitly for consistency with other users
-ifeq "$(GccLT46)" "NO"
+# we turn it on explicitly for consistency with other users.
# Never set the flag on Windows as the host gcc may be too old.
ifneq "$(HostOS_CPP)" "mingw32"
SRC_CC_WARNING_OPTS += -Werror=unused-but-set-variable
endif
-endif
-ifeq "$(GccLT44)" "NO"
# Suppress the warning about __sync_fetch_and_nand (#9678).
libraries/ghc-prim/cbits/atomic_CC_OPTS += -Wno-sync-nand
# gcc 4.6 gives 3 warnings for giveCapabilityToTask not being inlined
# gcc 4.4 gives 2 warnings for lockClosure not being inlined
SRC_CC_WARNING_OPTS += -Wno-error=inline
-endif
else
diff --git a/rts/ghc.mk b/rts/ghc.mk
index 57db297..3ba7e53 100644
--- a/rts/ghc.mk
+++ b/rts/ghc.mk
@@ -301,11 +301,7 @@ $(eval $(call distdir-opts,rts,dist,1))
# We like plenty of warnings.
WARNING_OPTS += -Wall
-ifeq "$(GccLT34)" "YES"
-WARNING_OPTS += -W
-else
WARNING_OPTS += -Wextra
-endif
WARNING_OPTS += -Wstrict-prototypes
WARNING_OPTS += -Wmissing-prototypes
WARNING_OPTS += -Wmissing-declarations
@@ -315,9 +311,7 @@ WARNING_OPTS += -Wpointer-arith
WARNING_OPTS += -Wmissing-noreturn
WARNING_OPTS += -Wnested-externs
WARNING_OPTS += -Wredundant-decls
-ifeq "$(GccLT46)" "NO"
WARNING_OPTS += -Wundef
-endif
# These ones are hard to avoid:
#WARNING_OPTS += -Wconversion
More information about the ghc-commits
mailing list