Change suffix for dyn. linked executables from _real to .dyn
[ghc-hetmet.git] / compiler / main / Packages.lhs
index 41ca465..c5784ce 100644 (file)
@@ -26,6 +26,7 @@ module Packages (
        getPreloadPackagesAnd,
 
         collectIncludeDirs, collectLibraryPaths, collectLinkOpts,
+        packageHsLibs,
 
        -- * Utils
        isDllName
@@ -36,7 +37,7 @@ where
 
 import PackageConfig   
 import ParsePkgConf    ( loadPackageConfig )
-import DynFlags                ( dopt, DynFlag(..), DynFlags(..), PackageFlag(..) )
+import DynFlags                ( dopt, DynFlag(..), DynFlags(..), PackageFlag(..), GhcLink(..) )
 import StaticFlags     ( opt_Static )
 import Config          ( cProjectVersion )
 import Name            ( Name, nameModule_maybe )
@@ -389,10 +390,10 @@ findWiredInPackages dflags pkgs preload this_package = do
                             (basePackageId, [""]),
                             (rtsPackageId, [""]),
                             (haskell98PackageId, [""]),
+                            (sybPackageId, [""]),
                             (thPackageId, [""]),
                             (dphSeqPackageId, [""]),
-                            (dphParPackageId, [""]),
-                            (ndpPackageId, ["-seq", "-par"]) ]
+                            (dphParPackageId, [""])]
 
         matches :: PackageConfig -> (PackageId, [String]) -> Bool
         pc `matches` (pid, suffixes)
@@ -562,7 +563,7 @@ mkPackageState dflags orig_pkg_db preload0 this_package = do
 
       -- add base & rts to the preload packages
       basicLinkedPackages
-       | dopt Opt_AutoLinkPackages dflags
+       | dopt Opt_AutoLinkPackages dflags && (ghcLink dflags) /= LinkDynLib
           = filter (flip elemUFM pkg_db) [basePackageId, rtsPackageId]
        | otherwise = []
       -- but in any case remove the current package from the set of
@@ -640,14 +641,17 @@ getPackageLinkOpts dflags pkgs =
 collectLinkOpts :: DynFlags -> [PackageConfig] -> [String]
 collectLinkOpts dflags ps = concat (map all_opts ps)
   where
+       libs p     = packageHsLibs dflags p ++ extraLibraries p
+       all_opts p = map ("-l" ++) (libs p) ++ ldOptions p
+
+packageHsLibs :: DynFlags -> PackageConfig -> [String]
+packageHsLibs dflags p = map (mkDynName . addSuffix) (hsLibraries p)
+  where
         tag = buildTag dflags
         rts_tag = rtsBuildTag dflags
 
        mkDynName | opt_Static = id
                  | otherwise = (++ ("-ghc" ++ cProjectVersion))
-       libs p     = map (mkDynName . addSuffix) (hsLibraries p)
-                        ++ extraLibraries p
-       all_opts p = map ("-l" ++) (libs p) ++ ldOptions p
 
         addSuffix rts@"HSrts"    = rts       ++ (expandTag rts_tag)
         addSuffix other_lib      = other_lib ++ (expandTag tag)