X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fmain%2FPackages.lhs;h=4c22b34108c96c7ff98bd056feb2307968fd4539;hb=f04dead93a15af1cb818172f207b8a81d2c81298;hp=077a4ebca0fa0a5c4b583ef7aaba4fc3fbc924d1;hpb=0b1e55f9de9c2e9f1e70bd8aa9383f4b2682dd9f;p=ghc-hetmet.git diff --git a/compiler/main/Packages.lhs b/compiler/main/Packages.lhs index 077a4eb..4c22b34 100644 --- a/compiler/main/Packages.lhs +++ b/compiler/main/Packages.lhs @@ -556,12 +556,13 @@ shadowPackages pkgs preferred in listToFM shadowed where check (shadowed,pkgmap) pkg - | Just oldpkg <- lookupUFM pkgmap (packageConfigId pkg) - = let - ipid_new = installedPackageId pkg - ipid_old = installedPackageId oldpkg - in - if ipid_old `elem` preferred + | Just oldpkg <- lookupUFM pkgmap (packageConfigId pkg), + let + ipid_new = installedPackageId pkg + ipid_old = installedPackageId oldpkg, + -- + ipid_old /= ipid_new + = if ipid_old `elem` preferred then ( (ipid_new, ShadowedBy ipid_old) : shadowed, pkgmap ) else ( (ipid_old, ShadowedBy ipid_new) : shadowed, pkgmap' ) | otherwise @@ -801,12 +802,20 @@ collectLinkOpts dflags ps = concat (map all_opts ps) packageHsLibs :: DynFlags -> PackageConfig -> [String] packageHsLibs dflags p = map (mkDynName . addSuffix) (hsLibraries p) where - non_dyn_ways = filter ((/= WayDyn) . wayName) (ways dflags) + ways0 = ways dflags + + ways1 = filter ((/= WayDyn) . wayName) ways0 -- the name of a shared library is libHSfoo-ghc.so -- we leave out the _dyn, because it is superfluous - tag = mkBuildTag (filter (not . wayRTSOnly) non_dyn_ways) - rts_tag = mkBuildTag non_dyn_ways + -- debug RTS includes support for -ticky and -eventlog + ways2 | WayDebug `elem` map wayName ways1 + = filter ((`notElem` [WayTicky,WayEventLog]) . wayName) ways1 + | otherwise + = ways1 + + tag = mkBuildTag (filter (not . wayRTSOnly) ways2) + rts_tag = mkBuildTag ways2 mkDynName | opt_Static = id | otherwise = (++ ("-ghc" ++ cProjectVersion))