summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--compiler/main/DynFlags.hs4
-rw-r--r--compiler/main/Packages.hs7
2 files changed, 6 insertions, 5 deletions
diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs
index c1ccfcd95c..4081ac4684 100644
--- a/compiler/main/DynFlags.hs
+++ b/compiler/main/DynFlags.hs
@@ -4410,13 +4410,15 @@ interpretPackageEnv dflags = do
parseEnvFile envfile = mapM_ parseEntry . lines
where
parseEntry str = case words str of
- ["package-db", db] -> addPkgConfRef (PkgConfFile (envdir </> db))
+ ("package-db": _) -> addPkgConfRef (PkgConfFile (envdir </> db))
-- relative package dbs are interpreted relative to the env file
where envdir = takeDirectory envfile
+ db = drop 11 str
["clear-package-db"] -> clearPkgConf
["global-package-db"] -> addPkgConfRef GlobalPkgConf
["user-package-db"] -> addPkgConfRef UserPkgConf
["package-id", pkgid] -> exposePackageId pkgid
+ (('-':'-':_):_) -> return () -- comments
-- and the original syntax introduced in 7.10:
[pkgid] -> exposePackageId pkgid
[] -> return ()
diff --git a/compiler/main/Packages.hs b/compiler/main/Packages.hs
index ecec982422..0c91af284d 100644
--- a/compiler/main/Packages.hs
+++ b/compiler/main/Packages.hs
@@ -339,7 +339,8 @@ listPackageConfigMap dflags = eltsUDFM (pkgIdMap (pkgState dflags))
-- 'pkgState' in 'DynFlags' and return a list of packages to
-- link in.
initPackages :: DynFlags -> IO (DynFlags, [UnitId])
-initPackages dflags = do
+initPackages dflags0 = do
+ dflags <- interpretPackageEnv dflags0
pkg_db <-
case pkgDatabase dflags of
Nothing -> readPackageConfigs dflags
@@ -879,9 +880,7 @@ mkPackageState
UnitId) -- this package, might be modified if the current
-- package is a wired-in package.
-mkPackageState dflags0 dbs preload0 = do
- dflags <- interpretPackageEnv dflags0
-
+mkPackageState dflags dbs preload0 = do
-- Compute the unit id
let this_package = thisPackage dflags