#2057: inconsistent .hi file error gets ignored
------------------------+---------------------------------------------------
    Reporter:  duncan   |       Owner:          
        Type:  bug      |      Status:  new     
    Priority:  normal   |   Component:  Compiler
     Version:  6.8.2    |    Severity:  normal  
    Keywords:           |    Testcase:          
Architecture:  Unknown  |          Os:  Unknown 
------------------------+---------------------------------------------------
 {{{
 [20 of 20] Compiling Main             ( ./Main.hs, dist/build/cabal/cabal-
 tmp/Main.o )
 The interface for `main:Hackage.Config'
 Declaration for savedConfigToConfigFlags
 Unfolding of Hackage.Config.savedConfigToConfigFlags:
   Can't find interface-file declaration for variable
 Distribution.Simple.Setup.a401
     Probable cause: bug in .hi-boot file, or inconsistent .hi file
     Use -ddump-if-trace to get an idea of which file caused the error
 Linking dist/build/cabal/cabal ...
 dist/build/cabal/cabal-tmp/Hackage/Config.o: In function `sfsu_info':
 (.text+0x70cc): undefined reference to
 `Cabalzm1zi3zi3_DistributionziSimpleziSetup_a401_closure'
 dist/build/cabal/cabal-tmp/Hackage/Config.o: In function `rf7U_closure':
 (.data+0xf28): undefined reference to
 `Cabalzm1zi3zi3_DistributionziSimpleziSetup_a401_closure'
 collect2: ld returned 1 exit status
 }}}

 Now, the inconsistent .hi file was entirely my fault. However note that
 `ghc --make` did not stop at the error! It continued and tried to link.

 This is bad because sometimes linker errors are very long and a user might
 loose the real source of the error.

 The error gets raised in `iface/TcIface.lhs` by `importDecl`. The uses of
 that function look like they are translating the error into failure in
 other monads ok. It's not immediately obvious at what point in the
 propagation of this error it gets ignored and linking continues
 irrespective.

 It should not be too hard to reproduce I hope. Generating inconsistent .hi
 files is fairly easy to do. In this case I just built cabal-install
 against an existing Cabal. Then rebuilt and re-registered a slightly
 changed Cabal lib. Then did another build of cabal-install without
 cleaning first.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/2057>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to