Sven Tennie pushed to branch wip/romes/hadrian-cross-stage2-rebase_SVEN_FINAL at Glasgow Haskell Compiler / GHC

Commits:

6 changed files:

Changes:

  • hadrian/src/Flavour.hs
    ... ... @@ -325,7 +325,7 @@ disableDynamicGhcPrograms flavour = flavour { dynamicGhcPrograms = const (pure F
    325 325
     -- | Don't build libraries in dynamic 'Way's.
    
    326 326
     disableDynamicLibs :: Flavour -> Flavour
    
    327 327
     disableDynamicLibs flavour =
    
    328
    -  flavour { libraryWays = prune $ libraryWays flavour,
    
    328
    +  flavour { libraryWays = prune . libraryWays flavour,
    
    329 329
                 rtsWays = prune $ rtsWays flavour,
    
    330 330
                 dynamicGhcPrograms = const (pure False)
    
    331 331
               }
    
    ... ... @@ -338,7 +338,7 @@ disableDynamicLibs flavour =
    338 338
     enableProfiledLibs :: Flavour -> Flavour
    
    339 339
     enableProfiledLibs flavour =
    
    340 340
       flavour
    
    341
    -    { libraryWays = addProfilingWays $ libraryWays flavour,
    
    341
    +    { libraryWays = addProfilingWays . libraryWays flavour,
    
    342 342
           rtsWays = addProfilingWays $ rtsWays flavour
    
    343 343
         }
    
    344 344
       where
    
    ... ... @@ -351,7 +351,7 @@ enableProfiledLibs flavour =
    351 351
     -- | Don't build libraries in profiled 'Way's.
    
    352 352
     disableProfiledLibs :: Flavour -> Flavour
    
    353 353
     disableProfiledLibs flavour =
    
    354
    -    flavour { libraryWays = prune $ libraryWays flavour
    
    354
    +    flavour { libraryWays = prune . libraryWays flavour
    
    355 355
                 , rtsWays     = prune $ rtsWays flavour
    
    356 356
                 }
    
    357 357
       where
    
    ... ... @@ -473,9 +473,9 @@ hostFullyStatic flavour =
    473 473
                    [ notM stage1 ? pure ws,
    
    474 474
                      stage1
    
    475 475
                        ? pure (ws `Set.difference` Set.fromList [dynamic, profilingDynamic, threadedDynamic, threadedDebugDynamic, threadedProfilingDynamic, threadedDebugProfilingDynamic, debugDynamic, debugProfilingDynamic])
    
    476
    -               ]
    
    477
    -         , libraryWays = do
    
    478
    -             ws <- libraryWays f
    
    476
    +                ]
    
    477
    +         , libraryWays = \stage -> do
    
    478
    +             ws <- libraryWays f stage
    
    479 479
                  mconcat
    
    480 480
                    [ notM stage1 ? pure ws,
    
    481 481
                      stage1
    

  • hadrian/src/Flavour/Type.hs
    ... ... @@ -29,7 +29,8 @@ data Flavour = Flavour {
    29 29
         textWithSIMDUTF :: Stage -- ^ stage of the /built/ compiler
    
    30 30
                         -> Action Bool,
    
    31 31
         -- | Build libraries these ways.
    
    32
    -    libraryWays :: Ways,
    
    32
    +    libraryWays :: Stage -- ^ stage of the /built/ compiler
    
    33
    +                  -> Ways,
    
    33 34
         -- | Build RTS these ways.
    
    34 35
         rtsWays :: Ways,
    
    35 36
         -- | Build dynamic GHC programs.
    

  • hadrian/src/Hadrian/Haskell/Hash.hs
    ... ... @@ -130,7 +130,7 @@ pkgHashOracle = void $ addOracleCache $ \(PkgHashKey (stag, pkg)) -> do
    130 130
       let pkgHashCompilerId = "ghc-" ++ projectVersion
    
    131 131
           pkgHashPlatform = targetOs
    
    132 132
     
    
    133
    -  libWays <- interpretInContext vanilla_ctx (libraryWays flav)
    
    133
    +  libWays <- interpretInContext vanilla_ctx (libraryWays flav stag)
    
    134 134
       dyn_ghc <- dynamicGhcPrograms flav stag
    
    135 135
       flags <-  interpret (target vanilla_ctx (Cabal Flags stag) [] []) getArgs
    
    136 136
       let pkgHashFlagAssignment = flags
    

  • hadrian/src/Settings.hs
    ... ... @@ -38,7 +38,10 @@ getArgs :: Args
    38 38
     getArgs = mconcat [ defaultBuilderArgs, defaultPackageArgs, getExtraArgs ]
    
    39 39
     
    
    40 40
     getLibraryWays :: Ways
    
    41
    -getLibraryWays = expr flavour >>= libraryWays
    
    41
    +getLibraryWays = do
    
    42
    +    flav <- expr flavour
    
    43
    +    stage <- getStage
    
    44
    +    libraryWays flav stage
    
    42 45
     
    
    43 46
     getRtsWays :: Ways
    
    44 47
     getRtsWays = expr flavour >>= rtsWays
    

  • hadrian/src/Settings/Default.hs
    ... ... @@ -288,7 +288,7 @@ defaultFlavour = Flavour
    288 288
         , bignumBackend      = defaultBignumBackend
    
    289 289
         , bignumCheck        = False
    
    290 290
         , textWithSIMDUTF    = const (return False)
    
    291
    -    , libraryWays        = defaultLibraryWays
    
    291
    +    , libraryWays        = const defaultLibraryWays
    
    292 292
         , rtsWays            = defaultRtsWays
    
    293 293
         , dynamicGhcPrograms = defaultDynamicGhcPrograms
    
    294 294
         , ghcProfiled        = const False
    

  • hadrian/src/Settings/Flavours/GhcInGhci.hs
    ... ... @@ -11,11 +11,11 @@ ghcInGhciFlavour :: Flavour
    11 11
     ghcInGhciFlavour = disableProfiledLibs $ defaultFlavour
    
    12 12
         { name        = "ghc-in-ghci"
    
    13 13
         , extraArgs   = ghciArgs
    
    14
    -    , libraryWays =
    
    14
    +    , libraryWays = \stage ->
    
    15 15
             Set.fromList
    
    16 16
                 <$> mconcat
    
    17 17
                     [ pure [vanilla]
    
    18
    -                , platformSupportsSharedLibs ? pure [dynamic]
    
    18
    +                , targetSupportsSharedLibs stage ? pure [dynamic]
    
    19 19
                     ]
    
    20 20
         }
    
    21 21