id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	os	architecture	failure	difficulty	testcase	blockedby	blocking	related
5357	ghc-7.2.1-rc1 broke unregisterised build	slyfox	simonmar	"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 <batterseapower@hotmail.com>
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!"	bug	closed	highest	7.4.1	Compiler		fixed		batterseapower@… dterei	Unknown/Multiple	Unknown/Multiple	Building GHC failed	Unknown				
