#5357: ghc-7.2.1-rc1 broke unregisterised build
-----------------------+----------------------------------------------------
    Reporter:  slyfox  |       Owner:                     
        Type:  bug     |      Status:  new                
    Priority:  normal  |   Component:  Compiler           
     Version:          |    Keywords:                     
    Testcase:          |   Blockedby:                     
          Os:  Linux   |    Blocking:                     
Architecture:  alpha   |     Failure:  Building GHC failed
-----------------------+----------------------------------------------------
 Tried to build unregisterised ghc:
 {{{
 "inplace/bin/ghc-stage1" -keep-tmp-files  -H32m -O -optc-mieee -opta-mieee
 -optc-mcpu=ev4 -opta-mcpu=ev4 -w    -package-name integer-gmp-0.3.0.0
 -hide-all-packages -i -ilibraries/integer-gmp/. -ilibraries/integer-gmp
 /dist-install/build -ilibraries/integer-gmp/dist-install/build/autogen
 -Ilibraries/integer-gmp/dist-install/build -Ilibraries/integer-gmp/dist-
 install/build/autogen -Ilibraries/integer-gmp/.    -optP-include
 -optPlibraries/integer-gmp/dist-install/build/autogen/cabal_macros.h
 -package ghc-prim-0.2.0.0  -package-name integer-gmp -XHaskell98 -XCPP
 -XMagicHash -XUnboxedTuples -XNoImplicitPrelude -XForeignFunctionInterface
 -XUnliftedFFITypes -O2 -no-user-package-conf -rtsopts     -odir libraries
 /integer-gmp/dist-install/build -hidir libraries/integer-gmp/dist-
 install/build -stubdir libraries/integer-gmp/dist-install/build -hisuf hi
 -osuf  o -hcsuf hc -c libraries/integer-gmp/./GHC/Integer/Type.hs -o
 libraries/integer-gmp/dist-install/build/GHC/Integer/Type.o

 /var/tmp/portage/dev-
 lang/ghc-7.2.0.20110728/temp/ghc11901_0/ghc11901_0.hc:33:0:
      error: static declaration of
 ‘integerzmgmp_GHCziIntegerziType_Szh_info’ follows non-static declaration

 /var/tmp/portage/dev-
 lang/ghc-7.2.0.20110728/temp/ghc11901_0/ghc11901_0.hc:6:0:
      error: previous declaration of
 ‘integerzmgmp_GHCziIntegerziType_Szh_info’ was here

 /var/tmp/portage/dev-
 lang/ghc-7.2.0.20110728/temp/ghc11901_0/ghc11901_0.hc:64:0:
      error: static declaration of
 ‘integerzmgmp_GHCziIntegerziType_Jzh_info’ follows non-static declaration

 /var/tmp/portage/dev-
 lang/ghc-7.2.0.20110728/temp/ghc11901_0/ghc11901_0.hc:36:0:
      error: previous declaration of
 ‘integerzmgmp_GHCziIntegerziType_Jzh_info’ was here
 make[1]: *** [libraries/integer-gmp/dist-install/build/GHC/Integer/Type.o]
 Error 1
 }}}

 And yes, the .hs file contains incoherent declarations:
 {{{
 EI_(integerzmgmp_GHCziIntegerziType_Szh_info);
 StgWord integerzmgmp_GHCziIntegerziType_Szh_closure[] = {
 (W_)&integerzmgmp_GHCziIntegerziType_Szh_info
 };
 ...
 static StgWord integerzmgmp_GHCziIntegerziType_Szh_info[] = {
 (W_)&integerzmgmp_GHCziIntegerziType_Szh_entry, 0x0, 0xfUL, 0x100000004UL
 };

 }}}

 The architecture is alpha-linux, but I think it's a generic problem.
 Looks like it's occured after Max's (CCed) _info export change:

 {{{
 commit dd391759500ab2b6abd23d502ade7ff8946c780f
 Author: Max Bolingbroke <[email protected]>
 Date:   Wed Jul 6 18:01:02 2011 +0100

     Don't export the _info symbol for the data constructor worker bindings

     This is safe because GHC never generates a fast call to a data
 constructor
     worker: if the call is seen statically it will be eta-expanded and the
     allocation of the data will be inlined. We still need to export the
 _closure
     in case the constructor is used in an unapplied fashion.
 }}}

 Thanks!

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5357>
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