From: Simon Marlow Date: Tue, 2 Sep 2008 12:45:04 +0000 (+0000) Subject: FIX #2554: GHC.TopHandler.{runIO,runNonIO} should be GC roots X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=4e1f1196f1349286c1480c19bd3a000346a120f4;p=ghc-hetmet.git FIX #2554: GHC.TopHandler.{runIO,runNonIO} should be GC roots --- diff --git a/rts/RtsStartup.c b/rts/RtsStartup.c index f221ad8..fd84000 100644 --- a/rts/RtsStartup.c +++ b/rts/RtsStartup.c @@ -225,6 +225,12 @@ 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 + */ + getStablePtr((StgPtr)base_GHCziTopHandler_runIO_closure); + getStablePtr((StgPtr)base_GHCziTopHandler_runNonIO_closure); + /* initialise the shared Typeable store */ initTypeableStore(); diff --git a/rts/package.conf.in b/rts/package.conf.in index 7ebcbc6..bae12f8 100644 --- a/rts/package.conf.in +++ b/rts/package.conf.in @@ -110,6 +110,8 @@ ld-options: , "-u", "_base_GHCziIOBase_blockedIndefinitely_closure" , "-u", "_base_ControlziExceptionziBase_nestedAtomically_closure" , "-u", "_base_GHCziWeak_runFinalizzerBatch_closure" + , "-u", "_base_GHCziTopHandler_runIO_closure" + , "-u", "_base_GHCziTopHandler_runNonIO_closure" #else "-u", "ghczmprim_GHCziTypes_Izh_static_info" , "-u", "ghczmprim_GHCziTypes_Czh_static_info" @@ -143,6 +145,8 @@ ld-options: , "-u", "base_GHCziIOBase_blockedIndefinitely_closure" , "-u", "base_ControlziExceptionziBase_nestedAtomically_closure" , "-u", "base_GHCziWeak_runFinalizzerBatch_closure" + , "-u", "base_GHCziTopHandler_runIO_closure" + , "-u", "base_GHCziTopHandler_runNonIO_closure" #endif #ifdef LEADING_UNDERSCORE