Strange Building problem...

Simon Marlow simonmar@microsoft.com
Wed, 30 Jul 2003 18:01:22 +0100


=20
> I am presently trying to build GHC on an i386 Linux box running
> debian/sid.  (Yea, I know there's a .deb - in fact, I have it
> installed - but I need to be able to compile my own.)
>=20
> I've run configure and make, and stage 1 went quite well although
> there were a few syntax problems (usually due to #ifdef's in the
> source .hs files apparantly overrunning or underrunning; easily fixed
> by just deleting the problematic #ifdef chunks for other
> architectures). =20
>=20
> Stage 2, however, seems to have a problem:  make runs "make -C
> ghc/compiler stage=3D2", which then runs
> "../../ghc/compiler/stage1/ghc-inplace -o stage2/ghc-6.0 -H16m -O
> -i<lots of stage2/ paths> -DGHCI -package haskell-src -package unix
> -package readline -cpp -fglasgow-exts -Rghc-timing -I. -IcodeGen
> -IativeGen -Iparser -recomp -Rghc-timingn -H16m `#include
> "hschooks.h"` -no-link-chk <lots of .o files>"
>=20
> This then produces:
> stage2/utils/Util.o(.text+0xb8): In funtion "r4c8_entry": undefined
> reference to "GHCziBase_True_Closure"
>         =20
> ... and roughly 40,000 errors of the same form.

"Something has gone wrong" :-)

GHCziBase_True_closure is a symbol that should be coming from the base
package, the GHC.Base module in particular.  You could check that
libraries/base/libHSbase.a looks reasonable: it should be on the order
of 17Mb.  Try 'nm' on it, look for some of the missing symbols.

Cheers,
	Simon