[commit: ghc] wip/nfs-locking: Track gmpBuildInfoPath explicitly. (2c21908)

git at git.haskell.org git at git.haskell.org
Fri Oct 27 00:01:56 UTC 2017


Repository : ssh://git@git.haskell.org/ghc

On branch  : wip/nfs-locking
Link       : http://ghc.haskell.org/trac/ghc/changeset/2c219087e3f7ec91e7ab02edbfd3466818402c73/ghc

>---------------------------------------------------------------

commit 2c219087e3f7ec91e7ab02edbfd3466818402c73
Author: Andrey Mokhov <andrey.mokhov at gmail.com>
Date:   Thu Feb 11 11:40:42 2016 +0000

    Track gmpBuildInfoPath explicitly.
    
    See #159.


>---------------------------------------------------------------

2c219087e3f7ec91e7ab02edbfd3466818402c73
 src/Rules/Gmp.hs             | 4 +++-
 src/Settings/Builders/Ghc.hs | 5 +----
 src/Settings/Paths.hs        | 8 ++++++--
 3 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/src/Rules/Gmp.hs b/src/Rules/Gmp.hs
index 9916ad6..b70b840 100644
--- a/src/Rules/Gmp.hs
+++ b/src/Rules/Gmp.hs
@@ -119,4 +119,6 @@ gmpRules = do
 
     gmpLibraryInTreeH %> \_ -> need [gmpLibraryH]
 
-    gmpBase -/- "config.mk" %> \_ -> need [pkgDataFile Stage1 integerGmp]
+    -- This causes integerGmp package to be configured, hence creating the files
+    [gmpBase -/- "config.mk", gmpBuildInfoPath] &%> \_ ->
+        need [pkgDataFile Stage1 integerGmp]
diff --git a/src/Settings/Builders/Ghc.hs b/src/Settings/Builders/Ghc.hs
index b7aef56..51fde7f 100644
--- a/src/Settings/Builders/Ghc.hs
+++ b/src/Settings/Builders/Ghc.hs
@@ -12,9 +12,6 @@ import Settings
 import Settings.Builders.GhcCabal (bootPackageDbArgs)
 import Settings.Builders.Common (cIncludeArgs)
 
-buildInfoPath :: FilePath
-buildInfoPath = pkgPath integerGmp -/- "integer-gmp.buildinfo"
-
 -- TODO: add support for -dyno
 -- $1/$2/build/%.$$($3_o-bootsuf) : $1/$4/%.hs-boot
 --     $$(call cmd,$1_$2_HC) $$($1_$2_$3_ALL_HC_OPTS) -c $$< -o $$@
@@ -32,7 +29,7 @@ ghcBuilderArgs = stagedBuilder Ghc ? do
     libs    <- getPkgDataList DepExtraLibs
     gmpLibs <- if stage > Stage0 && buildProg
                then do -- TODO: get this data more gracefully
-                   buildInfo <- lift $ readFileLines buildInfoPath
+                   buildInfo <- lift $ readFileLines gmpBuildInfoPath
                    let extract s = case stripPrefix "extra-libraries: " s of
                            Nothing    -> []
                            Just value -> words value
diff --git a/src/Settings/Paths.hs b/src/Settings/Paths.hs
index 99a4962..96cd3bf 100644
--- a/src/Settings/Paths.hs
+++ b/src/Settings/Paths.hs
@@ -1,7 +1,7 @@
 module Settings.Paths (
     targetDirectory, targetPath, pkgDataFile, pkgHaddockFile, pkgLibraryFile,
-    pkgLibraryFile0, pkgGhciLibraryFile, gmpBuildPath, packageDbDirectory,
-    pkgConfFile
+    pkgLibraryFile0, pkgGhciLibraryFile, gmpBuildPath, gmpBuildInfoPath,
+    packageDbDirectory, pkgConfFile
     ) where
 
 import Base
@@ -51,6 +51,10 @@ pkgFile stage pkg prefix suffix = do
 gmpBuildPath :: FilePath
 gmpBuildPath = buildRootPath -/- "stage1/gmp"
 
+-- We extract system gmp library name from this file
+gmpBuildInfoPath :: FilePath
+gmpBuildInfoPath = pkgPath integerGmp -/- "integer-gmp.buildinfo"
+
 -- TODO: move to buildRootPath, see #113
 -- StageN, N > 0, share the same packageDbDirectory
 packageDbDirectory :: Stage -> FilePath



More information about the ghc-commits mailing list