summaryrefslogtreecommitdiff
path: root/compiler/main/Packages.hs
diff options
context:
space:
mode:
authorMoritz Angermann <moritz.angermann@gmail.com>2017-09-13 08:24:46 -0400
committerBen Gamari <ben@smart-cactus.org>2017-09-13 10:39:56 -0400
commit91262e75dd1d80f8f28a3922934ec7e59290e28c (patch)
tree565db22b2068dcba12623c89e0d5bfff0baa0a22 /compiler/main/Packages.hs
parentf8e383f0e4f11e6e1060888208440907bcba9248 (diff)
downloadhaskell-91262e75dd1d80f8f28a3922934ec7e59290e28c.tar.gz
Use ar for -staticlib
Hopefully we can get rid of libtool, by using ar only Depends on: D3579 Test Plan: validate Reviewers: austin, hvr, bgamari, erikd Reviewed By: bgamari Subscribers: rwbarton, thomie, erikd Differential Revision: https://phabricator.haskell.org/D3721
Diffstat (limited to 'compiler/main/Packages.hs')
-rw-r--r--compiler/main/Packages.hs8
1 files changed, 8 insertions, 0 deletions
diff --git a/compiler/main/Packages.hs b/compiler/main/Packages.hs
index 088f58a675..ca77c30099 100644
--- a/compiler/main/Packages.hs
+++ b/compiler/main/Packages.hs
@@ -46,6 +46,7 @@ module Packages (
getPackageConfigMap,
getPreloadPackagesAnd,
+ collectArchives,
collectIncludeDirs, collectLibraryPaths, collectLinkOpts,
packageHsLibs,
@@ -1688,6 +1689,13 @@ collectLinkOpts dflags ps =
concatMap (map ("-l" ++) . extraLibraries) ps,
concatMap ldOptions ps
)
+collectArchives :: DynFlags -> PackageConfig -> IO [FilePath]
+collectArchives dflags pc =
+ filterM doesFileExist [ searchPath </> ("lib" ++ lib ++ ".a")
+ | searchPath <- searchPaths
+ , lib <- libs ]
+ where searchPaths = nub . filter notNull . libraryDirsForWay dflags $ pc
+ libs = packageHsLibs dflags pc ++ extraLibraries pc
packageHsLibs :: DynFlags -> PackageConfig -> [String]
packageHsLibs dflags p = map (mkDynName . addSuffix) (hsLibraries p)