diff options
| -rw-r--r-- | compiler/main/DynFlags.hs | 4 | ||||
| -rw-r--r-- | compiler/main/Packages.hs | 7 |
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 |
