X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FRtsStartup.c;h=fbebdb9c41d2513a12a3163a0a627cc74b0885d0;hb=5892af0e08fdb890b5a0b9a64346d9f7773a6ed8;hp=fd84000bba48b3d3b402ce713286164296a1edbd;hpb=4e1f1196f1349286c1480c19bd3a000346a120f4;p=ghc-hetmet.git diff --git a/rts/RtsStartup.c b/rts/RtsStartup.c index fd84000..fbebdb9 100644 --- a/rts/RtsStartup.c +++ b/rts/RtsStartup.c @@ -225,11 +225,19 @@ hs_init(int *argc, char **argv[]) /* initialise the stable pointer table */ initStablePtrTable(); - /* Add some GC roots (using stable pointers): these are needed by - * all foreign export stubs, so they have to be treated as + /* Add some GC roots for things in the base package that the RTS + * knows about. We don't know whether these turn out to be CAFs + * or refer to CAFs, but we have to assume that they might. */ getStablePtr((StgPtr)base_GHCziTopHandler_runIO_closure); getStablePtr((StgPtr)base_GHCziTopHandler_runNonIO_closure); + getStablePtr((StgPtr)stackOverflow_closure); + getStablePtr((StgPtr)heapOverflow_closure); + getStablePtr((StgPtr)runFinalizerBatch_closure); + getStablePtr((StgPtr)unpackCString_closure); + getStablePtr((StgPtr)blockedOnDeadMVar_closure); + getStablePtr((StgPtr)nonTermination_closure); + getStablePtr((StgPtr)blockedIndefinitely_closure); /* initialise the shared Typeable store */ initTypeableStore();