summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configure.ac4
-rw-r--r--distrib/configure.ac.in16
-rw-r--r--settings.in2
3 files changed, 16 insertions, 6 deletions
diff --git a/configure.ac b/configure.ac
index c31deba833..043dea8b0a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -875,8 +875,8 @@ FP_CHECK_SIZEOF_AND_ALIGNMENT(uint64_t)
dnl for use in settings.in
-WordSize=$ac_cv_sizeof_void_p
-AC_SUBST(WordSize)
+TargetWordSize=$ac_cv_sizeof_void_p
+AC_SUBST(TargetWordSize)
FP_CHECK_FUNC([WinExec],
[@%:@include <windows.h>], [WinExec("",0)])
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'
diff --git a/settings.in b/settings.in
index 04b913b86c..df647f1b1d 100644
--- a/settings.in
+++ b/settings.in
@@ -22,7 +22,7 @@
("cross compiling", "@CrossCompiling@"),
("target os", "@HaskellTargetOs@"),
("target arch", "@HaskellTargetArch@"),
- ("target word size", "@WordSize@"),
+ ("target word size", "@TargetWordSize@"),
("target has GNU nonexec stack", "@HaskellHaveGnuNonexecStack@"),
("target has .ident directive", "@HaskellHaveIdentDirective@"),
("target has subsections via symbols", "@HaskellHaveSubsectionsViaSymbols@"),