Skip to content
Snippets Groups Projects
Commit edc02197 authored by Cheng Shao's avatar Cheng Shao Committed by Marge Bot
Browse files

hadrian: fix bindist executable wrapper logic for cross targets

This commit fixes an oversight of hadrian wrapper generation logic:
when doing cross compilation, `wrapper` is called on executable names
with cross prefix, therefore we must use `isSuffixOf` when matching to
take the cross prefix into account. Also add missing cross prefix to
ghci wrapper content and fix hsc2hs wrapper logic.
parent f19e076d
No related branches found
No related tags found
No related merge requests found
......@@ -243,7 +243,7 @@ install_wrappers: install_bin_libdir install_hsc2hs_wrapper
.PHONY: install_hsc2hs_wrapper
install_hsc2hs_wrapper:
@echo Copying hsc2hs wrapper
cp mk/hsc2hs wrappers/hsc2hs-ghc-$(ProjectVersion)
cp mk/hsc2hs wrappers/$(CrossCompilePrefix)hsc2hs-ghc-$(ProjectVersion)
PKG_CONFS = $(shell find "$(DESTDIR)$(ActualLibsDir)/package.conf.d" -name '*.conf' | sed "s: :\0xxx\0:g")
.PHONY: update_package_db
......
......@@ -437,13 +437,14 @@ pkgToWrappers pkg = do
| otherwise -> pure []
wrapper :: FilePath -> Action String
wrapper "ghc" = ghcWrapper
wrapper "ghc-pkg" = ghcPkgWrapper
wrapper "ghci" = ghciScriptWrapper
wrapper "haddock" = haddockWrapper
wrapper "hsc2hs" = hsc2hsWrapper
wrapper "runghc" = runGhcWrapper
wrapper "runhaskell" = runGhcWrapper
wrapper wrapper_name
| "runghc" `isSuffixOf` wrapper_name = runGhcWrapper
| "ghc" `isSuffixOf` wrapper_name = ghcWrapper
| "ghc-pkg" `isSuffixOf` wrapper_name = ghcPkgWrapper
| "ghci" `isSuffixOf` wrapper_name = ghciScriptWrapper
| "haddock" `isSuffixOf` wrapper_name = haddockWrapper
| "hsc2hs" `isSuffixOf` wrapper_name = hsc2hsWrapper
| "runhaskell" `isSuffixOf` wrapper_name = runGhcWrapper
wrapper _ = commonWrapper
-- | Wrapper scripts for different programs. Common is default wrapper.
......@@ -473,9 +474,10 @@ runGhcWrapper = pure $ "exec \"$executablename\" -f \"$exedir/ghc\" ${1+\"$@\"}\
-- | --interactive flag.
ghciScriptWrapper :: Action String
ghciScriptWrapper = do
prefix <- crossPrefix
version <- setting ProjectVersion
pure $ unlines
[ "executable=\"$bindir/ghc-" ++ version ++ "\""
[ "executable=\"$bindir/" ++ prefix ++ "ghc-" ++ version ++ "\""
, "exec $executable --interactive \"$@\"" ]
-- | When not on Windows, we want to ship the 3 flavours of the iserv program
......@@ -548,4 +550,3 @@ createGhcii outDir = do
[ "#!/bin/sh"
, "exec \"$(dirname \"$0\")\"/ghc --interactive \"$@\""
]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment