X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Fmain%2FCodeOutput.lhs;h=5f7f395a29bc3f03f2fd6dfc2c45948ebe7b993c;hb=459db29aa77f41769b792a133b44a578a7fe0d52;hp=a1e4a08bf2d049c3c05583084efa8b6aaa3f3163;hpb=b89ad0e9ba8633987a0163aa94fed82f7cd56c67;p=ghc-hetmet.git diff --git a/ghc/compiler/main/CodeOutput.lhs b/ghc/compiler/main/CodeOutput.lhs index a1e4a08..5f7f395 100644 --- a/ghc/compiler/main/CodeOutput.lhs +++ b/ghc/compiler/main/CodeOutput.lhs @@ -24,10 +24,10 @@ import qualified PrintJava import OccurAnal ( occurAnalyseBinds ) #endif +import Distribution.Package ( showPackageId ) import PprC ( writeCs ) import CmmLint ( cmmLint ) import Packages -import DriverState ( getExplicitPackagesAnd, getPackageCIncludes ) import DriverUtil ( filenameOf ) import FastString ( unpackFS ) import Cmm ( Cmm ) @@ -80,7 +80,7 @@ codeOutput dflags this_mod foreign_stubs deps flat_abstractC ; showPass dflags "CodeOutput" ; let filenm = dopt_OutName dflags ; stubs_exist <- outputForeignStubs dflags foreign_stubs - ; case dopt_HscLang dflags of { + ; case dopt_HscTarget dflags of { HscInterpreted -> return (); HscAsm -> outputAsm dflags filenm flat_abstractC; HscC -> outputC dflags filenm flat_abstractC stubs_exist @@ -124,8 +124,8 @@ outputC dflags filenm flat_absC -- * the _stub.h file, if there is one. -- let packages = dep_pkgs dependencies - pkg_configs <- getExplicitPackagesAnd packages - let pkg_names = map name pkg_configs + pkg_configs <- getExplicitPackagesAnd dflags packages + let pkg_names = map (showPackageId.package) pkg_configs c_includes <- getPackageCIncludes pkg_configs let cmdline_includes = cmdlineHcIncludes dflags -- -#include options @@ -243,8 +243,12 @@ outputForeignStubs dflags (ForeignStubs h_code c_code _ _) "Foreign export header file" stub_h_output_d -- we need the #includes from the rts package for the stub files - rts_pkgs <- getPackageDetails [rtsPackage] - let rts_includes = concatMap mk_include (concatMap c_includes rts_pkgs) + let rtsid = rtsPackageId (pkgState dflags) + rts_includes + | ExtPackage pid <- rtsid = + let rts_pkg = getPackageDetails (pkgState dflags) pid in + concatMap mk_include (includes rts_pkg) + | otherwise = [] mk_include i = "#include \"" ++ i ++ "\"\n" stub_h_file_exists