X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fmain%2FDynFlags.hs;h=7f3c491549b3acddb1be1c6a58f809440f595a3c;hb=b562cbe381d54e08dcafa11339e9a82e781ad557;hp=b99222841a6e499d8146ac24d20645f5b97e3508;hpb=5e8d76a68c5eda2edabc2e375ee60f447f30f5b1;p=ghc-hetmet.git diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs index b992228..7f3c491 100644 --- a/compiler/main/DynFlags.hs +++ b/compiler/main/DynFlags.hs @@ -361,7 +361,7 @@ data GhcLink -- What to do in the link step, if there is one = NoLink -- Don't link at all | LinkBinary -- Link object code into a binary | LinkInMemory -- Use the in-memory dynamic linker - | MkDLL -- Make a DLL + | LinkDynLib -- Link objects into a dynamic lib (DLL on Windows, DSO on ELF platforms) deriving Eq isNoLink :: GhcLink -> Bool @@ -561,13 +561,14 @@ data Option updOptLevel :: Int -> DynFlags -> DynFlags -- Set dynflags appropriate to the optimisation level updOptLevel n dfs - = dfs2{ optLevel = n } + = dfs2{ optLevel = final_n } where + final_n = max 0 (min 2 n) -- Clamp to 0 <= n <= 2 dfs1 = foldr (flip dopt_unset) dfs remove_dopts dfs2 = foldr (flip dopt_set) dfs1 extra_dopts - extra_dopts = [ f | (ns,f) <- optLevelFlags, n `elem` ns ] - remove_dopts = [ f | (ns,f) <- optLevelFlags, n `notElem` ns ] + extra_dopts = [ f | (ns,f) <- optLevelFlags, final_n `elem` ns ] + remove_dopts = [ f | (ns,f) <- optLevelFlags, final_n `notElem` ns ] optLevelFlags :: [([Int], DynFlag)] optLevelFlags @@ -873,7 +874,7 @@ dynamic_flags = [ -------- Linking ---------------------------------------------------- , ( "c" , NoArg (upd $ \d -> d{ ghcLink=NoLink } )) , ( "no-link" , NoArg (upd $ \d -> d{ ghcLink=NoLink } )) -- Dep. - , ( "-mk-dll" , NoArg (upd $ \d -> d{ ghcLink=MkDLL } )) + , ( "shared" , NoArg (upd $ \d -> d{ ghcLink=LinkDynLib } )) ------- Libraries --------------------------------------------------- , ( "L" , Prefix addLibraryPath )