X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=ghc%2Fcompiler%2Fmain%2FCodeOutput.lhs;h=24d67910a4ae3a5200b43ea61bba024d61aa75ad;hb=1f19d1989866ec3c42083e5a4612248842f07814;hp=723227f030558884f4f3705bcec684b961cf671b;hpb=50159f6c4a3560662e37c55e64af1fb0b685011e;p=ghc-hetmet.git diff --git a/ghc/compiler/main/CodeOutput.lhs b/ghc/compiler/main/CodeOutput.lhs index 723227f..24d6791 100644 --- a/ghc/compiler/main/CodeOutput.lhs +++ b/ghc/compiler/main/CodeOutput.lhs @@ -36,7 +36,7 @@ import ErrUtils ( dumpIfSet_dyn, showPass, ghcExit ) import Outputable import Pretty ( Mode(..), printDoc ) import Module ( Module ) -import ListSetOps ( removeDupsEq ) +import List ( nub ) import Maybes ( firstJust ) import Directory ( doesFileExist ) @@ -54,11 +54,11 @@ import IO codeOutput :: DynFlags -> Module -> ForeignStubs - -> Dependencies + -> [PackageId] -> [Cmm] -- Compiled C-- -> IO (Bool{-stub_h_exists-}, Bool{-stub_c_exists-}) -codeOutput dflags this_mod foreign_stubs deps flat_abstractC +codeOutput dflags this_mod foreign_stubs pkg_deps flat_abstractC = -- You can have C (c_output) or assembly-language (ncg_output), -- but not both. [Allowing for both gives a space leak on @@ -83,7 +83,7 @@ codeOutput dflags this_mod foreign_stubs deps flat_abstractC HscInterpreted -> return (); HscAsm -> outputAsm dflags filenm flat_abstractC; HscC -> outputC dflags filenm flat_abstractC stubs_exist - deps foreign_stubs; + pkg_deps foreign_stubs; HscJava -> #ifdef JAVA outputJava dflags filenm mod_name tycons core_binds; @@ -114,7 +114,7 @@ doOutput filenm io_action = bracket (openFile filenm WriteMode) hClose io_action \begin{code} outputC dflags filenm flat_absC - (stub_h_exists, _) dependencies foreign_stubs + (stub_h_exists, _) packages foreign_stubs = do -- figure out which header files to #include in the generated .hc file: -- @@ -122,7 +122,6 @@ outputC dflags filenm flat_absC -- * -#include options from the cmdline and OPTIONS pragmas -- * the _stub.h file, if there is one. -- - let packages = dep_pkgs dependencies pkg_configs <- getExplicitPackagesAnd dflags packages let pkg_names = map (showPackageId.package) pkg_configs @@ -132,7 +131,7 @@ outputC dflags filenm flat_absC ffi_decl_headers = case foreign_stubs of NoStubs -> [] - ForeignStubs _ _ fdhs _ -> map unpackFS (fst (removeDupsEq fdhs)) + ForeignStubs _ _ fdhs _ -> map unpackFS (nub fdhs) -- Remove duplicates, because distinct foreign import decls -- may cite the same #include. Order doesn't matter.