summaryrefslogtreecommitdiff
path: root/ghc
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2009-07-01 12:23:54 +0000
committerSimon Marlow <marlowsd@gmail.com>2009-07-01 12:23:54 +0000
commit2fb511a805af6fc2932e3577139513b0d0992070 (patch)
treedca3b14f8e9d7707146f69ecf76af5875a832693 /ghc
parent76c520c095eb2b9d75fb66050b91097c787f5279 (diff)
downloadhaskell-2fb511a805af6fc2932e3577139513b0d0992070.tar.gz
Fix #2197 (properly this time)
$ ./inplace/bin/ghc-stage2 --interactive GHCi, version 6.11.20090701: http://www.haskell.org/ghc/ :? for help ghc-stage2: GHCi cannot be used when compiled with -prof [1] 32473 exit 1 ./inplace/bin/ghc-stage2 --interactive
Diffstat (limited to 'ghc')
-rw-r--r--ghc/InteractiveUI.hs11
1 files changed, 4 insertions, 7 deletions
diff --git a/ghc/InteractiveUI.hs b/ghc/InteractiveUI.hs
index 0e9efb67c5..8eb94f1c57 100644
--- a/ghc/InteractiveUI.hs
+++ b/ghc/InteractiveUI.hs
@@ -39,7 +39,6 @@ import Outputable hiding (printForUser, printForUserPartWay)
import Module -- for ModuleEnv
import Name
import SrcLoc
-import ObjLink
-- Other random utilities
import CmdLineParser
@@ -54,11 +53,7 @@ import NameSet
import Maybes ( orElse, expectJust )
import FastString
import Encoding
-
-#if __GLASGOW_HASKELL__ < 611
import Foreign.C
-import Encoding
-#endif
#ifndef mingw32_HOST_OS
import System.Posix hiding (getEnv)
@@ -296,14 +291,16 @@ findEditor = do
return ""
#endif
+foreign import ccall unsafe "rts_isProfiled" isProfiled :: IO CInt
+
interactiveUI :: [(FilePath, Maybe Phase)] -> Maybe [String]
-> Ghc ()
interactiveUI srcs maybe_exprs = do
-- although GHCi compiles with -prof, it is not usable: the byte-code
-- compiler and interpreter don't work with profiling. So we check for
-- this up front and emit a helpful error message (#2197)
- m <- liftIO $ lookupSymbol "PushCostCentre"
- when (isJust m) $
+ i <- liftIO $ isProfiled
+ when (i /= 0) $
ghcError (InstallationError "GHCi cannot be used when compiled with -prof")
-- HACK! If we happen to get into an infinite loop (eg the user