diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2017-04-07 10:08:58 +0100 |
---|---|---|
committer | Sergei Trofimovich <slyfox@gentoo.org> | 2017-04-08 10:58:21 +0100 |
commit | 54895c90440cb81f18657537b91f2aa35bd54173 (patch) | |
tree | 081df980cff45c261372ac1d0cbc92f5ade61b21 /utils | |
parent | f0d98fc6cdde26bf43a04d9f01b6ad2f4c88f0b9 (diff) | |
download | haskell-54895c90440cb81f18657537b91f2aa35bd54173.tar.gz |
fix 'make install' for cross-stage2
When cross-built GHC is being installed one of
latest steps is to register installed libraries
with 'ghc-pkg'.
GHC uses freshly installed 'ghc-pkg' and 'ghc-stage2'
for that.
Tested as:
./configure --target=aarch64-unknown-linux-gnu
make install DESTDIR=$(pwd)/__s2 STRIP_CMD=:
Before the change install failed on ghc-pkg execution phase:
".../ghc-cross/__s2/usr/local/lib/ghc-8.3.20170406/bin/ghc-pkg" \
--force \
--global-package-db \
".../ghc-cross/__s2/usr/local/lib/ghc-8.3.20170406/package.conf.d" \
update rts/dist/package.conf.install
/bin/sh: .../ghc-cross/__s2/usr/local/lib/ghc-8.3.20170406/bin/ghc-pkg: \
No such file or directory
To avoid breakage we use 'ghc' and 'ghc-pkg' built by stage0.
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Test Plan: run 'make install' on stage2 crosscompiler
Reviewers: rwbarton, austin, bgamari
Subscribers: thomie, snowleopard
Differential Revision: https://phabricator.haskell.org/D3432
Diffstat (limited to 'utils')
-rw-r--r-- | utils/ghc-pkg/ghc.mk | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/utils/ghc-pkg/ghc.mk b/utils/ghc-pkg/ghc.mk index 002c8122f2..4d5ef4e108 100644 --- a/utils/ghc-pkg/ghc.mk +++ b/utils/ghc-pkg/ghc.mk @@ -49,6 +49,12 @@ utils/ghc-pkg_dist_PROGNAME = ghc-pkg utils/ghc-pkg_dist_SHELL_WRAPPER = YES utils/ghc-pkg_dist_INSTALL_INPLACE = YES +# When cross-built ghc-stage2 is installed 'make install' needs to call +# native ghc-pkg (not the cross-built one) to register installed packages +# 'ghc-pkg_DIST_BINARY' variable only refer to native binary. +ghc-pkg_DIST_BINARY_NAME = ghc-pkg$(exeext0) +ghc-pkg_DIST_BINARY = utils/ghc-pkg/dist/build/tmp/$(ghc-pkg_DIST_BINARY_NAME) + # See Note [Stage1Only vs stage=1] in mk/config.mk.in. ifeq "$(Stage1Only)" "YES" # Install the copy of ghc-pkg from the dist directory when running 'make |