
#8276: Building Haddock documentation panics with perf build on x86_64 Linux ---------------------------------------+---------------------------------- Reporter: jstolarek | Owner: Type: bug | Status: new Priority: high | Milestone: Component: Documentation | Version: 7.7 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: x86_64 (amd64) Type of failure: Compile-time crash | Difficulty: Unknown Test Case: | Blocked By: Blocking: | Related Tickets: ---------------------------------------+---------------------------------- Comment (by thoughtpolice): This is something to do with GHCi linking in HEAD. Note the behavior Kazu observed: {{{ GHCi, version 7.7.20130924: http://www.haskell.org/ghc/ :? for help Loading package ghc-prim ... linking ... done. Loading package integer-gmp ... linking ... done. Loading package base ... linking ... done. Loading package array-0.4.0.2 ... linking ... done. Loading package deepseq-1.3.0.2 ... linking ... done. Loading package bytestring-0.10.3.0 ... linking ... done. Loading package containers-0.5.3.1 ... linking ... done. Loading package filepath-1.3.0.2 ... linking ... done. Loading package old-locale-1.0.0.5 ... linking ... done. Loading package time-1.4.1 ... linking ... done. Loading package unix-2.7.0.0 ... linking ... done. Loading package directory-1.2.0.1 ... linking ... done. Loading package pretty-1.1.1.0 ... linking ... done. Loading package process-1.2.0.0 ... linking ... done. Loading package Cabal-1.18.1 ... linking ... done. Loading package binary-0.7.1.0 ... linking ... done. Loading package bin-package-db-0.0.0.0 ... linking ... done. Loading package hoopl-3.10.0.0 ... linking ... done. Loading package hpc-0.6.0.1 ... linking ... done. Loading package template-haskell ... linking ... done. Loading package transformers-0.3.0.0 ... linking ... done. Loading package ghc-7.7.20130924 ... linking ... done. Prelude> import StaticFlags Prelude StaticFlags> import Data.IORef Prelude StaticFlags Data.IORef> readIORef v_opt_C_ready True }}} But when we compile it as a program: {{{ $ cat test.hs import StaticFlags (v_opt_C_ready) import Data.IORef main = readIORef v_opt_C_ready >>= print $ ~/ghc/ghc-pristine/inplace/bin/ghc-stage2 -O2 -package ghc test.hs -fforce-recomp [1 of 1] Compiling Main ( test.hs, test.o ) Linking test ... $ ./test False }}} I think what is happening is that in the GHCi case, the linker is referring to the 'outer' GHCi in which we are running our session, as opposed to the 'inner' session in which we try to read the flag. I'm investigating a little more. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8276#comment:18 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler