summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManuel M T Chakravarty <chak@cse.unsw.edu.au>2007-12-17 09:38:39 +0000
committerManuel M T Chakravarty <chak@cse.unsw.edu.au>2007-12-17 09:38:39 +0000
commita9f9a7544a9605d0af16adf79abdfe8d99b0bb3d (patch)
tree2cf5b967e0440326fa763aeb7f60ffcb335b8eb2
parent982bcefaed87d338adb27433d7b8c1655946a9d1 (diff)
downloadhaskell-a9f9a7544a9605d0af16adf79abdfe8d99b0bb3d.tar.gz
Eliminate external GMP dependencies
- Ensure the stage1 compiler uses ghc's own GMP library on Mac OS - Need to rebuild installPackage and ifBuildable with stage1 compiler as they go into bindists
-rw-r--r--Makefile5
-rw-r--r--libraries/Makefile13
-rw-r--r--rts/package.conf.in8
3 files changed, 26 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 81437acf3a..f58ae7000d 100644
--- a/Makefile
+++ b/Makefile
@@ -256,10 +256,15 @@ binary-dist::
# compiler) with the stage1 compiler. See #1860 for an example.
# Thus we rebuild the utils with stage 1 here. This is a bit unpleasant,
# as binary-dist really shouldn't actually build anything, but it works.
+# We need to do the same for utilities used during library package installation.
binary-dist::
$(MAKE) -C utils clean
$(MAKE) -C utils UseStage1=YES boot
$(MAKE) -C utils UseStage1=YES
+ $(RM) -f libraries/ifBuildable/ifBuildable
+ $(MAKE) -C libraries UseStage1=YES ifBuildable/ifBuildable
+ $(RM) -f libraries/installPackage/installPackage
+ $(MAKE) -C libraries UseStage1=YES installPackage/installPackage
ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
diff --git a/libraries/Makefile b/libraries/Makefile
index 9b61df22b8..51cb7aadcb 100644
--- a/libraries/Makefile
+++ b/libraries/Makefile
@@ -171,15 +171,28 @@ installPackage/installPackage: installPackage.hs $(BOOTSTRAP_STAMPS)
-$(RM) -rf installPackage
mkdir installPackage
$(CP) installPackage.hs installPackage/
+ifeq "$(UseStage1)" "YES"
+ cd installPackage && ../$(HC) -Wall -cpp \
+ --make installPackage -o installPackage \
+ $(BOOTSTRAP_INC_1_UP)
+else
cd installPackage && $(GHC) -Wall -cpp \
--make installPackage -o installPackage \
$(BOOTSTRAP_INC_1_UP)
+endif
+# TODO: The conditional is yucky, but we need to be able to build with stage1
+# for bindists and as installPackages/ has no Makefile, it seems hard
+# to make this nicer.
ifBuildable/ifBuildable: ifBuildable.hs
-$(RM) -rf ifBuildable
mkdir ifBuildable
$(CP) ifBuildable.hs ifBuildable/
+ifeq "$(UseStage1)" "YES"
+ cd ifBuildable && ../$(HC) -Wall --make ifBuildable -o ifBuildable
+else
cd ifBuildable && $(GHC) -Wall --make ifBuildable -o ifBuildable
+endif
$(BOOTSTRAP_STAMPS): stamp/bootstrapping.%:
$(RM) -rf bootstrapping.$*
diff --git a/rts/package.conf.in b/rts/package.conf.in
index 9cc03f06ec..d57ef62039 100644
--- a/rts/package.conf.in
+++ b/rts/package.conf.in
@@ -150,6 +150,14 @@ ld-options:
, "-u", "base_GHCziConc_ensureIOManagerIsRunning_closure"
#endif
+/* Pick up static libraries in preference over dynamic if in earlier search
+ * path. This is important to use the static gmp in preference on Mac OS.
+ * The used option is specific to the Darwin linker.
+ */
+#ifdef darwin_BUILD_OS
+ , "-Wl,-search_paths_first"
+#endif
+
framework-dirs:
#ifdef HAVE_FRAMEWORK_GMP