aboutsummaryrefslogtreecommitdiffstats
path: root/testing/ghc/0008-build-unlit-twice.patch
diff options
context:
space:
mode:
Diffstat (limited to 'testing/ghc/0008-build-unlit-twice.patch')
-rw-r--r--testing/ghc/0008-build-unlit-twice.patch58
1 files changed, 58 insertions, 0 deletions
diff --git a/testing/ghc/0008-build-unlit-twice.patch b/testing/ghc/0008-build-unlit-twice.patch
new file mode 100644
index 0000000000..91380a5c26
--- /dev/null
+++ b/testing/ghc/0008-build-unlit-twice.patch
@@ -0,0 +1,58 @@
+From eba93774c3ce2f151e7c72f6d068b753f24dbcfa Mon Sep 17 00:00:00 2001
+From: Thomas Miedema <thomasmiedema@gmail.com>
+Date: Wed, 15 Jun 2016 14:56:46 +0200
+Subject: [PATCH] Build system: build unlit twice
+
+See Note [Why build certain utils twice?] in utils/ghc-pkg/ghc.mk
+---
+ utils/ghc-pkg/ghc.mk | 7 ++++++-
+ utils/unlit/ghc.mk | 10 +++++++++-
+ 2 files changed, 15 insertions(+), 2 deletions(-)
+
+diff --git a/utils/ghc-pkg/ghc.mk b/utils/ghc-pkg/ghc.mk
+index f7d97de..410de72 100644
+--- a/utils/ghc-pkg/ghc.mk
++++ b/utils/ghc-pkg/ghc.mk
+@@ -27,7 +27,7 @@ utils/ghc-pkg_PACKAGE = ghc-pkg
+ # Note [Why build certain utils twice?]
+ #
+ # We build certain utils twice: once with stage0, and once with stage1.
+-# Examples are ghc-pkg and hsc2hs.
++# Examples are ghc-pkg, hsc2hs and unlit.
+ #
+ # These tools are needed during the bootstrapping process, so we have to use
+ # stage0 to build them at first (stage1 doesn't exist yet). (side note: they're
+@@ -38,6 +38,11 @@ utils/ghc-pkg_PACKAGE = ghc-pkg
+ # dynamically linked. But the stage0 copies are either statically linked, or
+ # linked against libraries on the build machine.
+ #
++# Another reason why we can't install the stage0 copies is that they are
++# built to run on the build(=host) platform, but when installing a
++# "cross-compiled stage2 compiler" we need copies that run on the target
++# platform.
++#
+ # Therefore we build fresh copies, using the stage1 compiler, and install them
+ # when you run 'make install'. They are not used for any other purpose.
+
+diff --git a/utils/unlit/ghc.mk b/utils/unlit/ghc.mk
+index e947989..6805c4e 100644
+--- a/utils/unlit/ghc.mk
++++ b/utils/unlit/ghc.mk
+@@ -13,8 +13,16 @@
+ utils/unlit_dist_C_SRCS = unlit.c
+ utils/unlit_dist_PROGNAME = unlit
+ utils/unlit_dist_TOPDIR = YES
+-utils/unlit_dist_INSTALL = YES
++utils/unlit_dist_INSTALL = NO
+ utils/unlit_dist_INSTALL_INPLACE = YES
+
+ $(eval $(call build-prog,utils/unlit,dist,0))
+
++utils/unlit_dist-install_C_SRCS = unlit.c
++utils/unlit_dist-install_PROGNAME = unlit
++utils/unlit_dist-install_TOPDIR = YES
++utils/unlit_dist-install_INSTALL = YES
++utils/unlit_dist-install_INSTALL_INPLACE = NO
++
++# See Note [Why build certain utils twice?].
++$(eval $(call build-prog,utils/unlit,dist-install,1))