Skip to content

problems building base package with --make; wired in things are assumed to not be in current package

GHC currently assumes that wired in things are not in the current package. This causes problems when the base package is partially compiled (in particular, GHC.Base is built already) and you try to build the whole thing with --make. Each time it needs something from GHC.Base, GHC looks to see if it has been loaded from another package yet and, upon finding it hasn't, loads it from the current package. This results in it loading it multiple times, giving errors like:

GHC/Foo.hs:6:6:
    Overlapping instances for Eq Bool
      arising from use of `==' at GHC/Foo.hs:6:6-17
    Matching instances:
      instance Eq Bool -- Defined in GHC.Base
      instance Eq Bool -- Defined in GHC.Base
      instance Eq Bool -- Defined in GHC.Base
    In the expression: True == True
    In the definition of `foo': foo = True == True

This is now tested by base01 in the testsuite.

Trac metadata
Trac field Value
Version 6.4.2
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system Multiple
Architecture Multiple
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information