Marge Bot pushed to branch master at Glasgow Haskell Compiler / GHC

Commits:

1 changed file:

Changes:

  • compiler/GHC/StgToJS/Linker/Linker.hs
    ... ... @@ -2,6 +2,7 @@
    2 2
     {-# LANGUAGE TupleSections     #-}
    
    3 3
     {-# LANGUAGE LambdaCase        #-}
    
    4 4
     {-# LANGUAGE BlockArguments    #-}
    
    5
    +{-# LANGUAGE MultiWayIf        #-}
    
    5 6
     
    
    6 7
     -----------------------------------------------------------------------------
    
    7 8
     -- |
    
    ... ... @@ -666,12 +667,19 @@ renderLinkerStats s =
    666 667
     
    
    667 668
     
    
    668 669
     getPackageArchives :: StgToJSConfig -> UnitEnv -> [UnitId] -> IO [FilePath]
    
    669
    -getPackageArchives cfg unit_env units =
    
    670
    -  filterM doesFileExist [ ST.unpack p </> "lib" ++ ST.unpack l ++ profSuff <.> "a"
    
    671
    -                        | u <- units
    
    672
    -                        , p <- getInstalledPackageLibDirs ue_state u
    
    673
    -                        , l <- getInstalledPackageHsLibs  ue_state u
    
    674
    -                        ]
    
    670
    +getPackageArchives cfg unit_env units = do
    
    671
    +  fmap concat $ forM units $ \u -> do
    
    672
    +    let archives = [ ST.unpack p </> "lib" ++ ST.unpack l ++ profSuff <.> "a"
    
    673
    +                   | p <- getInstalledPackageLibDirs ue_state u
    
    674
    +                   , l <- getInstalledPackageHsLibs  ue_state u
    
    675
    +                   ]
    
    676
    +    foundArchives <- filterM doesFileExist archives
    
    677
    +    if | not (null archives)
    
    678
    +       , null foundArchives
    
    679
    +       -> do
    
    680
    +         throwGhcExceptionIO (InstallationError $ "Could not find any library archives for unit-id: " <> (renderWithContext (csContext cfg) $ ppr u))
    
    681
    +       | otherwise
    
    682
    +       -> pure foundArchives
    
    675 683
       where
    
    676 684
         ue_state = ue_homeUnitState unit_env
    
    677 685