[commit: ghc] wip/nfs-locking: Add extra objects into integerGmp library. (9439336)
git at git.haskell.org
git at git.haskell.org
Thu Oct 26 23:40:33 UTC 2017
Repository : ssh://git@git.haskell.org/ghc
On branch : wip/nfs-locking
Link : http://ghc.haskell.org/trac/ghc/changeset/9439336c258c9e1d93b1da57cde1d89e8800fbf0/ghc
>---------------------------------------------------------------
commit 9439336c258c9e1d93b1da57cde1d89e8800fbf0
Author: Andrey Mokhov <andrey.mokhov at gmail.com>
Date: Thu Dec 10 00:28:42 2015 +0000
Add extra objects into integerGmp library.
>---------------------------------------------------------------
9439336c258c9e1d93b1da57cde1d89e8800fbf0
src/Rules/Library.hs | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/src/Rules/Library.hs b/src/Rules/Library.hs
index 9e4f7d5..b0afdc6 100644
--- a/src/Rules/Library.hs
+++ b/src/Rules/Library.hs
@@ -1,6 +1,7 @@
module Rules.Library (buildPackageLibrary, cSources, hSources) where
import Expression hiding (splitPath)
+import GHC
import Oracles
import Predicates (splitObjects)
import Rules.Actions
@@ -36,9 +37,12 @@ buildPackageLibrary _ target @ (PartialTarget stage pkg) = do
return . map (splitPath -/-)
. filter (not . all (== '.')) $ contents
+ eObjs <- extraObjects target
+ let objs = cObjs ++ splitObjs ++ eObjs
+
if "//*-0.*" ?== a
- then build $ fullTarget target Ar [] [a]
- else build $ fullTarget target Ar (cObjs ++ splitObjs) [a]
+ then build $ fullTarget target Ar [] [a] -- TODO: scan for dlls
+ else build $ fullTarget target Ar objs [a]
synopsis <- interpretPartial target $ getPkgData Synopsis
putSuccess $ "/--------\n| Successfully built package library '"
@@ -65,3 +69,10 @@ hSources target = do
modules <- interpretPartial target $ getPkgDataList Modules
-- GHC.Prim is special: we do not build it
return . map (replaceEq '.' '/') . filter (/= "GHC.Prim") $ modules
+
+extraObjects :: PartialTarget -> Action [FilePath]
+extraObjects (PartialTarget _ pkg) = do
+ gmpObjs <- getDirectoryFiles "" [pkgPath pkg -/- "gmp/objs/*.o"]
+ if pkg == integerGmp
+ then return gmpObjs
+ else return []
More information about the ghc-commits
mailing list