1
0
Fork 0
mirror of https://gitlab.alpinelinux.org/alpine/aports.git synced 2025-07-24 03:35:38 +03:00
aports/testing/ghc-bootstrap/build-unlit-twice.patch
2017-02-27 06:26:38 +00:00

58 lines
2.2 KiB
Diff

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))