summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgwright@antiope.com <unknown>2007-08-13 12:42:11 +0000
committergwright@antiope.com <unknown>2007-08-13 12:42:11 +0000
commit24311993dfecd6225fb3b26c07d2d054fab5387a (patch)
tree13611b91f2ee23a43acf218446612caeb04558dc
parentdd357a95ee1ecd8bdb9cc7018a5778cec3c31249 (diff)
downloadhaskell-24311993dfecd6225fb3b26c07d2d054fab5387a.tar.gz
Fix build with external gmp library.
ghc fails to build if you use an external gmp library. This is because ghc requires the header file gmp.h, which used to be provided by the internal gmp source code. The file gmp.h is no longer part of the gmp source code, but is generated as part of the build procedure. If an external gmp is specified, the internal gmp is not build and the gmp.h file never gets generated. Of course, it was a bad idea anyway to use a header file from a potentially different version of the library. The patch sets HAVE_LIB_GMP if the gmp library is found during configuration and conditionalizes including the library header file on it.
-rw-r--r--configure.ac3
-rw-r--r--includes/Makefile4
-rw-r--r--includes/Regs.h2
3 files changed, 9 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index 929b6404a9..b35c7e7d39 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1075,6 +1075,9 @@ dnl ** check whether this machine has gmp3 installed
AC_CHECK_LIB(gmp, __gmpz_fdiv_qr, HaveLibGmp=YES; LibGmp=gmp,
AC_CHECK_LIB(gmp3, __gmpz_fdiv_qr, HaveLibGmp=YES; LibGmp=gmp3,
HaveLibGmp=NO; LibGmp=not-installed))
+ if test $HaveLibGmp = YES; then
+ AC_DEFINE([HAVE_LIB_GMP], [1], [Define to 1 if GMP library is installed.])
+ fi;
AC_SUBST(HaveLibGmp)
AC_SUBST(LibGmp)
diff --git a/includes/Makefile b/includes/Makefile
index e7292cd8a1..2acf07531e 100644
--- a/includes/Makefile
+++ b/includes/Makefile
@@ -27,7 +27,11 @@ ifeq "$(GhcEnableTablesNextToCode) $(GhcUnregisterised)" "YES NO"
SRC_CC_OPTS += -DTABLES_NEXT_TO_CODE
endif
+ifeq "$(HaveLibGmp)" "YES"
+SRC_CC_OPTS += -I. -I../rts -I$(GMP_INCLUDE_DIRS)
+else
SRC_CC_OPTS += -I. -I../rts -I../gmp/gmpbuild
+endif
ifneq "$(GhcWithSMP)" "YES"
SRC_CC_OPTS += -DNOSMP
diff --git a/includes/Regs.h b/includes/Regs.h
index 0bfde5b0c8..6524c8f669 100644
--- a/includes/Regs.h
+++ b/includes/Regs.h
@@ -24,6 +24,8 @@
#if defined(HAVE_FRAMEWORK_GMP)
#include <GMP/gmp.h>
+#elif defined(HAVE_LIB_GMP)
+#include <gmp.h>
#else
#include "gmp.h" // Needs MP_INT definition
#endif