summaryrefslogtreecommitdiff
path: root/distrib
diff options
context:
space:
mode:
authorBen Gamari <bgamari.foss@gmail.com>2017-07-11 18:40:31 -0400
committerBen Gamari <ben@smart-cactus.org>2017-07-12 08:55:00 -0400
commit60ec8f74d32a9976ac8ddf6fd366218283fcac3e (patch)
tree4e29c75a7c06b19ea187cd9f6ba81b5b01788fc8 /distrib
parent1ee49cb11c7ad1af20c117a5395df96ded9a729f (diff)
downloadhaskell-60ec8f74d32a9976ac8ddf6fd366218283fcac3e.tar.gz
distrib/configure: Fail if we can't detect machine's word size
This is a sure sign that something is terribly wrong. We also now verify that the word size that the binary distribution expects matches the word size produced by the local target toolchain. Finally we rename WordSize to TargetWordSize, since non-host/target qualified quantities are terribly confusing. Reviewers: austin, hvr, Phyx Reviewed By: Phyx Subscribers: Phyx, rwbarton, thomie, erikd Differential Revision: https://phabricator.haskell.org/D3711
Diffstat (limited to 'distrib')
-rw-r--r--distrib/configure.ac.in16
1 files changed, 13 insertions, 3 deletions
diff --git a/distrib/configure.ac.in b/distrib/configure.ac.in
index ac6af24b94..a15b4a5a3c 100644
--- a/distrib/configure.ac.in
+++ b/distrib/configure.ac.in
@@ -134,10 +134,20 @@ dnl May need to use gcc to find platform details.
dnl --------------------------------------------------------------
FPTOOLS_SET_HASKELL_PLATFORM_VARS
-dnl WordSize for settings.in
+dnl TargetWordSize for settings.in
AC_CHECK_SIZEOF(void *, 4)
-WordSize=$ac_cv_sizeof_void_p
-AC_SUBST(WordSize)
+if test "x$ac_cv_sizeof_void_p" = "x0"; then
+ AC_MSG_ERROR([Failed to determine machine word size. Does your toolchain actually work?])
+fi
+dnl Check that the toolchain we have is consistent with what the compiler expects
+if test "x$ac_cv_sizeof_void_p" != "x@TargetWordSize@"; then
+ AC_MSG_ERROR([This binary distribution produces binaries for a target with
+ word size of @TargetWordSize@, but your target toolchain produces binaries
+ with a word size of $ac_cv_sizeof_void_p. Are you sure your toolchain
+ targets the intended target platform of this compiler?])
+fi
+TargetWordSize=$ac_cv_sizeof_void_p
+AC_SUBST(TargetWordSize)
#
dnl ** how to invoke `ar' and `ranlib'