[commit: ghc] ghc-7.8: Fix #8754 in a round-about way. (e3dd172)

git at git.haskell.org git at git.haskell.org
Mon Feb 17 14:08:50 UTC 2014


Repository : ssh://git@git.haskell.org/ghc

On branch  : ghc-7.8
Link       : http://ghc.haskell.org/trac/ghc/changeset/e3dd1727db9b054527a9fbc0b84b78d44e79ec53/ghc

>---------------------------------------------------------------

commit e3dd1727db9b054527a9fbc0b84b78d44e79ec53
Author: Austin Seipp <austin at well-typed.com>
Date:   Sun Feb 16 19:10:16 2014 -0600

    Fix #8754 in a round-about way.
    
    For some reason on OS X, it seems like -Bsymbolic (which we use for
    hooks into the RTS) isn't working, which results in #8754, where stats
    don't work because defaultHooks doesn't initialize the stats flag. This
    seems to work on Linux static/dynamically, but only on OS X statically.
    
    After talking with Simon, really, the entire hooks thing is a bit
    fragile. For now, we just work around it (since GHCi is dynamically
    linked) by calling into the defaultHooks ourselves when GHC starts.
    
    Signed-off-by: Austin Seipp <austin at well-typed.com>
    
    (cherry picked from commit 5023c91780e90947680fe0640f7564a4f6448bea)


>---------------------------------------------------------------

e3dd1727db9b054527a9fbc0b84b78d44e79ec53
 ghc/Main.hs |    4 ++++
 1 file changed, 4 insertions(+)

diff --git a/ghc/Main.hs b/ghc/Main.hs
index 868042b..1aa6553 100644
--- a/ghc/Main.hs
+++ b/ghc/Main.hs
@@ -1,4 +1,5 @@
 {-# OPTIONS -fno-warn-incomplete-patterns -optc-DNON_POSIX_SOURCE #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
 
 -----------------------------------------------------------------------------
 --
@@ -76,6 +77,7 @@ import Data.Maybe
 
 main :: IO ()
 main = do
+   defaultsHook
    hSetBuffering stdout LineBuffering
    hSetBuffering stderr LineBuffering
    GHC.defaultErrorHandler defaultFatalMessager defaultFlushOut $ do
@@ -818,3 +820,5 @@ unknownFlagsErr fs = throwGhcException $ UsageError $ concatMap oneError fs
         (case fuzzyMatch f (nub allFlags) of
             [] -> ""
             suggs -> "did you mean one of:\n" ++ unlines (map ("  " ++) suggs)) 
+
+foreign import ccall safe "defaultsHook" defaultsHook :: IO ()



More information about the ghc-commits mailing list