diff options
-rw-r--r-- | configure.ac | 4 | ||||
-rw-r--r-- | distrib/configure.ac.in | 16 | ||||
-rw-r--r-- | settings.in | 2 |
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@"), |