Revert dynamically linking ghc.
authorDavid Eichmann <EichmannD@gmail.com>
Tue, 11 Dec 2018 18:02:25 +0000 (13:02 -0500)
committerBen Gamari <ben@smart-cactus.org>
Tue, 11 Dec 2018 18:02:26 +0000 (13:02 -0500)
Building a dynamically linked ghc is broken do to incorrectly building
and installing libffi. This disables building a dynamically linked ghc
and ghc-iserv-dyn while keeping most of the code in the relevant
commits: 79d5427e1 and 89fa34ecd

Test Plan:
Ensure build environment does NOT have a system libffi installed (you
may want to use a nix environment).
Then `hadrian/build.sh -c --flavour=default`.

Reviewers: bgamari, alpmestan

Reviewed By: alpmestan

Subscribers: rwbarton, carter

GHC Trac Issues: #15837

Differential Revision: https://phabricator.haskell.org/D5430

hadrian/src/Rules/Program.hs
hadrian/src/Rules/Test.hs
hadrian/src/Settings/Builders/Ghc.hs

index 316cc44..32e7496 100644 (file)
@@ -46,7 +46,9 @@ getProgramContexts stage = do
     -- iserv gets its names from Packages.hs:programName
     let allCtxs = [ vanillaContext stage pkg
                   , Context stage pkg profiling
-                  , Context stage pkg dynamic
+                  -- TODO Dynamic way has been reverted as the dynamic build is
+                  --      broken. See #15837.
+                  -- , Context stage pkg dynamic
                   ]
     forM allCtxs $ \ctx -> do
       name <- programName ctx
index b72c1b9..461a95f 100644 (file)
@@ -113,7 +113,11 @@ needIservBins = do
     rtsways <- interpretInContext (vanillaContext Stage1 ghc) getRtsWays
     need =<< traverse programPath
                [ Context Stage1 iserv w
-               | w <- [vanilla, profiling, dynamic]
+               | w <- [vanilla, profiling
+                    -- TODO dynamic way has been reverted as the dynamic build
+                    --      is broken. See #15837.
+                    -- , dynamic
+                    ]
                , w `elem` rtsways
                ]
 
index 04aea32..b656d1f 100644 (file)
@@ -155,13 +155,16 @@ includeGhcArgs = do
 -- Check if building dynamically is required. GHC is a special case that needs
 -- to be built dynamically if any of the RTS ways is dynamic.
 requiresDynamic :: Expr Bool
-requiresDynamic = do
-    pkg <- getPackage
-    way <- getWay
-    rtsWays <- getRtsWays
-    let
-        dynRts = any (Dynamic `wayUnit`) rtsWays
-        dynWay = Dynamic `wayUnit` way
-    return $ if pkg == ghc
-                then dynRts || dynWay
-                else dynWay
+requiresDynamic = wayUnit Dynamic <$> getWay
+    -- TODO This logic has been reverted as the dynamic build is broken.
+    --      See #15837.
+    --
+    -- pkg <- getPackage
+    -- way <- getWay
+    -- rtsWays <- getRtsWays
+    -- let
+    --     dynRts = any (Dynamic `wayUnit`) rtsWays
+    --     dynWay = Dynamic `wayUnit` way
+    -- return $ if pkg == ghc
+    --             then dynRts || dynWay
+    --             else dynWay