[Git][ghc/ghc][master] hadrian: fix bindist executable wrapper logic for cross targets
Marge Bot (@marge-bot)
gitlab at gitlab.haskell.org
Tue Oct 22 13:39:24 UTC 2024
Marge Bot pushed to branch master at Glasgow Haskell Compiler / GHC
Commits:
edc02197 by Cheng Shao at 2024-10-22T09:38:54-04:00
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.
- - - - -
2 changed files:
- hadrian/bindist/Makefile
- hadrian/src/Rules/BinaryDist.hs
Changes:
=====================================
hadrian/bindist/Makefile
=====================================
@@ -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
=====================================
hadrian/src/Rules/BinaryDist.hs
=====================================
@@ -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 \"$@\""
]
-
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/edc02197b95488e8752c988e0e92ed6253c04b8c
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/edc02197b95488e8752c988e0e92ed6253c04b8c
You're receiving this email because of your account on gitlab.haskell.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20241022/c1eef9d9/attachment-0001.html>
More information about the ghc-commits
mailing list