X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FRtsMain.c;h=0ed6df494c25ceaee07bf7acac76cfb187300901;hb=b2bd63f99d643f6b3eb30bb72bb9ae26d4183252;hp=438110a1797d678b2ccd07507b21f0b40ecdd97f;hpb=dd56e9ab4544e83d27532a8d9058140bfe81825c;p=ghc-hetmet.git diff --git a/rts/RtsMain.c b/rts/RtsMain.c index 438110a..0ed6df4 100644 --- a/rts/RtsMain.c +++ b/rts/RtsMain.c @@ -11,8 +11,7 @@ #include "PosixSource.h" #include "Rts.h" #include "RtsAPI.h" -#include "SchedAPI.h" -#include "RtsFlags.h" + #include "RtsUtils.h" #include "RtsMain.h" #include "Prelude.h" @@ -20,7 +19,6 @@ #if defined(mingw32_HOST_OS) #include "win32/seh_excn.h" #endif -#include #ifdef DEBUG # include "Printer.h" /* for printing */ @@ -30,13 +28,10 @@ # include #endif -extern void __stginit_ZCMain(void); - /* Annoying global vars for passing parameters to real_main() below * This is to get around problem with Windows SEH, see hs_main(). */ static int progargc; static char **progargv; -static void (*progmain_init)(void); /* This will be __stginit_ZCMain */ static StgClosure *progmain_closure; /* This will be ZCMain_main_closure */ /* Hack: we assume that we're building a batch-mode system unless @@ -49,7 +44,7 @@ static void real_main(void) SchedulerStatus status; /* all GranSim/GUM init is done in startupHaskell; sets IAmMainThread! */ - startupHaskell(progargc,progargv,progmain_init); + startupHaskell(progargc,progargv,NULL); /* kick off the computation by creating the main thread with a pointer to mainIO_closure representing the computation of the overall program; @@ -97,18 +92,17 @@ static void real_main(void) * This gets called from a tiny main function which gets linked into each * compiled Haskell program that uses a Haskell main function. * - * We expect the caller to pass __stginit_ZCMain for main_init and - * ZCMain_main_closure for main_closure. The reason we cannot refer to - * these symbols directly is because we're inside the rts and we do not know - * for sure that we'll be using a Haskell main function. + * We expect the caller to pass ZCMain_main_closure for + * main_closure. The reason we cannot refer to this symbol directly + * is because we're inside the rts and we do not know for sure that + * we'll be using a Haskell main function. */ -int hs_main(int argc, char *argv[], void (*main_init)(void), StgClosure *main_closure) +int hs_main(int argc, char *argv[], StgClosure *main_closure) { /* We do this dance with argc and argv as otherwise the SEH exception stuff (the BEGIN/END CATCH below) on Windows gets confused */ progargc = argc; progargv = argv; - progmain_init = main_init; progmain_closure = main_closure; #if defined(mingw32_HOST_OS)