[GHC] #8276: Building Haddock documentation panics with perf build on x86_64 Linux

GHC ghc-devs at haskell.org
Thu Sep 26 01:42:55 CEST 2013


#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



More information about the ghc-tickets mailing list