[commit: ghc] wip/nfs-locking: Duplicate libffi library for each build way (c88fc78)
git at git.haskell.org
git at git.haskell.org
Fri Oct 27 00:47:11 UTC 2017
Repository : ssh://git@git.haskell.org/ghc
On branch : wip/nfs-locking
Link : http://ghc.haskell.org/trac/ghc/changeset/c88fc78440eb105ba5fe7d9a8bede47b30de36d6/ghc
>---------------------------------------------------------------
commit c88fc78440eb105ba5fe7d9a8bede47b30de36d6
Author: Andrey Mokhov <andrey.mokhov at gmail.com>
Date: Sat Jan 7 02:50:04 2017 +0000
Duplicate libffi library for each build way
>---------------------------------------------------------------
c88fc78440eb105ba5fe7d9a8bede47b30de36d6
src/Rules/Libffi.hs | 4 ++--
src/Settings/Packages/Rts.hs | 11 +++++++++--
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/src/Rules/Libffi.hs b/src/Rules/Libffi.hs
index 65ec1d7..0f703d9 100644
--- a/src/Rules/Libffi.hs
+++ b/src/Rules/Libffi.hs
@@ -55,8 +55,8 @@ libffiRules = do
forM_ hs $ \header ->
copyFile header (rtsBuildPath -/- takeFileName header)
- libffiName <- rtsLibffiLibraryName
- copyFile libffiLibrary (rtsBuildPath -/- "lib" ++ libffiName <.> "a")
+ ways <- interpretInContext libffiContext (getLibraryWays <> getRtsWays)
+ forM_ ways $ \way -> copyFile libffiLibrary =<< rtsLibffiLibrary way
putSuccess $ "| Successfully built custom library 'libffi'"
diff --git a/src/Settings/Packages/Rts.hs b/src/Settings/Packages/Rts.hs
index 8e71c87..e8000c8 100644
--- a/src/Settings/Packages/Rts.hs
+++ b/src/Settings/Packages/Rts.hs
@@ -1,4 +1,4 @@
-module Settings.Packages.Rts (rtsPackageArgs, rtsLibffiLibraryName) where
+module Settings.Packages.Rts (rtsPackageArgs, rtsLibffiLibrary) where
import Base
import GHC
@@ -7,6 +7,7 @@ import Oracles.Config.Setting
import Oracles.Path
import Predicate
import Settings
+import Settings.Path
rtsLibffiLibraryName :: Action FilePath
rtsLibffiLibraryName = do
@@ -17,6 +18,12 @@ rtsLibffiLibraryName = do
(False, False) -> "Cffi"
(_ , True ) -> "Cffi-6"
+rtsLibffiLibrary :: Way -> Action FilePath
+rtsLibffiLibrary way = do
+ name <- rtsLibffiLibraryName
+ suf <- libsuf way
+ return $ rtsBuildPath -/- "lib" ++ name ++ suf
+
rtsPackageArgs :: Args
rtsPackageArgs = package rts ? do
let yesNo = lift . fmap (\x -> if x then "YES" else "NO")
@@ -38,7 +45,7 @@ rtsPackageArgs = package rts ? do
way <- getWay
path <- getBuildPath
top <- getTopDirectory
- libffiName <- lift $ rtsLibffiLibraryName
+ libffiName <- lift rtsLibffiLibraryName
ffiIncludeDir <- getSetting FfiIncludeDir
ffiLibraryDir <- getSetting FfiLibDir
mconcat
More information about the ghc-commits
mailing list