import StgSyn
import CgMonad
import AbsCSyn
-import PrelNames ( gHC_PRIM, dOLLAR_MAIN, mAIN_Name )
+import PrelNames ( gHC_PRIM, rOOT_MAIN, mAIN_Name )
import CLabel ( mkSRTLabel, mkClosureLabel,
mkPlainModuleInitLabel, mkModuleInitLabel )
import PprAbsC ( dumpRealC )
register_mod_imports = map mk_import_register imported_mods
-- When compiling the module in which the 'main' function lives,
- -- we inject an extra stg_init procedure for stg_init_zdMain, for the
+ -- we inject an extra stg_init procedure for stg_init_ZCMain, for the
-- RTS to invoke. We must consult the -main-is flag in case the
-- user specified a different function to Main.main
main_mod_name = case mb_main_mod of
| Module.moduleName this_mod /= main_mod_name
= AbsCNop -- The normal case
| otherwise -- this_mod contains the main function
- = CModuleInitBlock (mkPlainModuleInitLabel dOLLAR_MAIN)
- (mkModuleInitLabel dOLLAR_MAIN way)
- (mk_import_register this_mod)
+ = CCodeBlock (mkPlainModuleInitLabel rOOT_MAIN)
+ (CJump (CLbl (mkPlainModuleInitLabel this_mod) CodePtrRep))
+
in
mkAbstractCs [
cc_decls,
| opt_EnsureSplittableC, -- Externalise the name for -split-objs
isInternalName name
= moduleName `thenFC` \ mod ->
- returnFC (setIdName id (mkExternalName uniq mod new_occ (nameSrcLoc name)))
+ returnFC (setIdName id (mkExternalName uniq mod new_occ Nothing (nameSrcLoc name)))
| otherwise
= returnFC id
where