Well, I have tried building GHC on more than one occasion but never succeeded.
Now I would like to get this problem out of the way, once and for all.

My platform is a Sun running Solaris 2.5.1, and I'm building with GHC 2.02.
Incidentally, my build tree is the same as my source tree.

First I create mk/build.mk, and then run gmake boot.

The first problem occurs in ghc/includes:

-----
../../ghc/driver/ghc -c mkNativeHdr.c
Literal @libdir now requires backslash at ../../ghc/driver/ghc line 80, within string
Literal @datadir now requires backslash at ../../ghc/driver/ghc line 82, within string
Literal @bindir now requires backslash at ../../ghc/driver/ghc line 83, within string
Execution of ../../ghc/driver/ghc aborted due to compilation errors.
gmake[2]: *** [mkNativeHdr] Error 255
-----

The second problem is in ghc/docs:

-----
../../ghc/driver/ghc -M -optdep-f -optdep.depend -optdep-o -optdepo simple-monad.lhs
Literal @libdir now requires backslash at ../../ghc/driver/ghc line 80, within string
Literal @datadir now requires backslash at ../../ghc/driver/ghc line 82, within string
Literal @bindir now requires backslash at ../../ghc/driver/ghc line 83, within string
Execution of ../../ghc/driver/ghc aborted due to compilation errors.
gmake[2]: *** [depend] Error 255
-----

And then a few other places, thanks to the problem in ghc/driver/ghc.  I think
this error occurs because I'm using perl 5.001.  If I change the string
literals in the indicated places, e.g.,

$libdir="@libdir@";

to

$libdir="\@libdir";

then the error messages go away, at least.

But that doesn't fix the next problem below.

Then, in ghc/compiler (please excuse the line length -- it's significant):

------------------------------------------------------------------------
==fptools== gmake boot;
 in /proj3/DSSSLprint/src/fptools/ghc/compiler
------------------------------------------------------------------------
../utils/ugen/ugen parser/constr.ugn || rm -f parser/constr.h parser/constr.hs
../utils/ugen/ugen parser/either.ugn || rm -f parser/either.h parser/either.hs
../utils/ugen/ugen parser/entidt.ugn || rm -f parser/entidt.h parser/entidt.hs
../utils/ugen/ugen parser/list.ugn || rm -f parser/list.h parser/list.hs
../utils/ugen/ugen parser/literal.ugn || rm -f parser/literal.h parser/literal.hs
../utils/ugen/ugen parser/maybe.ugn || rm -f parser/maybe.h parser/maybe.hs
../utils/ugen/ugen parser/pbinding.ugn || rm -f parser/pbinding.h parser/pbinding.hs
../utils/ugen/ugen parser/qid.ugn || rm -f parser/qid.h parser/qid.hs
../utils/ugen/ugen parser/tree.ugn || rm -f parser/tree.h parser/tree.hs
../utils/ugen/ugen parser/ttype.ugn || rm -f parser/ttype.h parser/ttype.hs
../../glafp-utils/mkdependC/mkdependC -f .depend    -- -Iparser -I. -I../includes -O   
 --   parser/binding.c  parser/constr.c  parser/either.c  parser/entidt.c  
parser/list.c  parser/literal.c  parser/maybe.c  parser/pbinding.c  parser/qid.c  
parser/tree.c  parser/ttype.c
ghc-2.02 -M -optdep-f -optdep.depend -optdep-o -optdepo -cpp -fhaskell-1.3 
-fglasgow-exts -DCOMPILING_GHC -Rghc-timing -I. -IcodeGen -InativeGen -Iparser -iutils 
-ibasicTypes -itypes -ihsSyn -iprelude -irename -itypecheck -ideSugar -icoreSyn 
-ispecialise -isimplCore -istranal -istgSyn -isimplStg -icodeGen -iabsCSyn -imain 
-ireader -iprofiling -iparser -ideforest -inativeGen -recomp parser/U_binding.hs 
parser/U_constr.hs parser/U_either.hs parser/U_entidt.hs parser/U_list.hs 
parser/U_literal.hs parser/U_maybe.hs parser/U_pbinding.hs parser/U_qid.hs 
parser/U_tree.hs parser/U_ttype.hs utils/Argv.lhs utils/Bag.lhs utils/BitSet.lhs 
utils/Digraph.lhs utils/FastString.lhs utils/FiniteMap.lhs utils/ListSetOps.lhs 
utils/MatchEnv.lhs utils/Maybes.lhs utils/OrdList.lhs utils/Outputable.lhs 
utils/Pretty.lhs utils/PrimPacked.lhs utils/SST.lhs utils/StringBuffer.lhs 
utils/UniqFM.lhs utils/UniqSet.lhs utils/Util.lhs basicTypes/BasicTypes.lhs 
basicTypes/Demand.lhs basicTypes/FieldLabel.lhs !
 basicTypes/Id.lhs basicTypes/IdInfo.lhs basicTypes/IdUtils.lhs basicTypes/Literal.lhs 
basicTypes/Name.lhs basicTypes/PprEnv.lhs basicTypes/PragmaInfo.lhs 
basicTypes/SrcLoc.lhs basicTypes/UniqSupply.lhs basicTypes/Unique.lhs types/Class.lhs 
types/Kind.lhs types/PprType.lhs types/TyCon.lhs types/TyVar.lhs types/Type.lhs 
types/Usage.lhs hsSyn/HsBasic.lhs hsSyn/HsBinds.lhs hsSyn/HsCore.lhs hsSyn/HsDecls.lhs 
hsSyn/HsExpr.lhs hsSyn/HsImpExp.lhs hsSyn/HsMatches.lhs hsSyn/HsPat.lhs 
hsSyn/HsPragmas.lhs hsSyn/HsSyn.lhs hsSyn/HsTypes.lhs prelude/PrelInfo.lhs 
prelude/PrelMods.lhs prelude/PrelVals.lhs prelude/PrimOp.lhs prelude/PrimRep.lhs 
prelude/StdIdInfo.lhs prelude/TysPrim.lhs prelude/TysWiredIn.lhs rename/Rename.lhs 
rename/RnBinds.lhs rename/RnEnv.lhs rename/RnExpr.lhs rename/RnHsSyn.lhs 
rename/RnIfaces.lhs rename/RnMonad.lhs rename/RnNames.lhs rename/RnSource.lhs 
typecheck/Inst.lhs typecheck/TcBinds.lhs typecheck/TcClassDcl.lhs 
typecheck/TcDefaults.lhs typecheck/TcDeriv.lhs typech!
 eck/TcEnv.lhs typecheck/TcExpr.lhs typecheck/TcGRHSs.lhs typecheck/TcG



enDeriv.lhs typecheck/TcHsSyn.lhs typecheck/TcIfaceSig.lhs typecheck/TcInstDcls.lhs 
typecheck/TcInstUtil.lhs typecheck/TcKind.lhs typecheck/TcMatches.lhs 
typecheck/TcModule.lhs typecheck/TcMonad.lhs typecheck/TcMonoType.lhs 
typecheck/TcPat.lhs typecheck/TcSimplify.lhs typecheck/TcTyClsDecls.lhs 
typecheck/TcTyDecls.lhs typecheck/TcType.lhs typecheck/Unify.lhs deSugar/Desugar.lhs 
deSugar/DsBinds.lhs deSugar/DsCCall.lhs deSugar/DsExpr.lhs deSugar/DsGRHSs.lhs 
deSugar/DsHsSyn.lhs deSugar/DsListComp.lhs deSugar/DsMonad.lhs deSugar/DsUtils.lhs 
deSugar/Match.lhs deSugar/MatchCon.lhs deSugar/MatchLit.lhs coreSyn/AnnCoreSyn.lhs 
coreSyn/CoreLift.lhs coreSyn/CoreLint.lhs coreSyn/CoreSyn.lhs coreSyn/CoreUnfold.lhs 
coreSyn/CoreUtils.lhs coreSyn/FreeVars.lhs coreSyn/PprCore.lhs specialise/SpecEnv.lhs 
specialise/SpecUtils.lhs specialise/Specialise.lhs simplCore/AnalFBWW.lhs 
simplCore/BinderInfo.lhs simplCore/ConFold.lhs simplCore/FloatIn.lhs 
simplCore/FloatOut.lhs simplCore/FoldrBuildWW.lhs!
  simplCore/LiberateCase.lhs simplCore/MagicUFs.lhs simplCore/OccurAnal.lhs 
simplCore/SAT.lhs simplCore/SATMonad.lhs simplCore/SetLevels.lhs 
simplCore/SimplCase.lhs simplCore/SimplCore.lhs simplCore/SimplEnv.lhs 
simplCore/SimplMonad.lhs simplCore/SimplPgm.lhs simplCore/SimplUtils.lhs 
simplCore/SimplVar.lhs simplCore/Simplify.lhs stranal/SaAbsInt.lhs stranal/SaLib.lhs 
stranal/StrictAnal.lhs stranal/WorkWrap.lhs stranal/WwLib.lhs stgSyn/CoreToStg.lhs 
stgSyn/StgLint.lhs stgSyn/StgSyn.lhs simplStg/LambdaLift.lhs simplStg/SimplStg.lhs 
simplStg/StgStats.lhs simplStg/StgVarInfo.lhs simplStg/UpdAnal.lhs 
codeGen/CgBindery.lhs codeGen/CgCase.lhs codeGen/CgClosure.lhs codeGen/CgCompInfo.lhs 
codeGen/CgCon.lhs codeGen/CgConTbls.lhs codeGen/CgExpr.lhs codeGen/CgHeapery.lhs 
codeGen/CgLetNoEscape.lhs codeGen/CgMonad.lhs codeGen/CgRetConv.lhs 
codeGen/CgStackery.lhs codeGen/CgTailCall.lhs codeGen/CgUpdate.lhs 
codeGen/CgUsages.lhs codeGen/ClosureInfo.lhs codeGen/CodeGen.lhs codeGen/SMRep.lhs a!
 bsCSyn/AbsCSyn.lhs absCSyn/AbsCUtils.lhs absCSyn/CLabel.lhs absCSyn/CS



trings.lhs absCSyn/Costs.lhs absCSyn/HeapOffs.lhs absCSyn/PprAbsC.lhs 
main/CmdLineOpts.lhs main/Constants.lhs main/ErrUtils.lhs main/Main.lhs 
main/MkIface.lhs reader/Lex.lhs reader/PrefixSyn.lhs reader/PrefixToHs.lhs 
reader/RdrHsSyn.lhs reader/ReadPrefix.lhs profiling/CostCentre.lhs 
profiling/SCCfinal.lhs parser/UgenAll.lhs parser/UgenUtil.lhs deforest/Core2Def.lhs 
deforest/Cyclic.lhs deforest/Def2Core.lhs deforest/DefExpr.lhs deforest/DefSyn.lhs 
deforest/DefUtils.lhs deforest/Deforest.lhs deforest/TreelessForm.lhs 
nativeGen/AbsCStixGen.lhs nativeGen/AsmCodeGen.lhs nativeGen/AsmRegAlloc.lhs 
nativeGen/MachCode.lhs nativeGen/MachMisc.lhs nativeGen/MachRegs.lhs 
nativeGen/PprMach.lhs nativeGen/RegAllocInfo.lhs nativeGen/Stix.lhs 
nativeGen/StixInfo.lhs nativeGen/StixInteger.lhs nativeGen/StixMacro.lhs 
nativeGen/StixPrim.lhs rename/ParseIface.hs rename/ParseType.hs 
rename/ParseUnfolding.hs
gmake[2]: *** [depend] Error 1
------

As you can see, there is no error message, but I think the problem is clearly
that the argument list is too long.  If I try to invoke this last command
manually (by cut-and-paste), the shell (tcsh) starts ignoring characters long
before it's all pasted in.  I tried to use xargs here, putting all the
arguments in a temporary file t,

xargs ghc-2.02 < t

but this yields:

xargs: ghc-2.02: Arg list too long

Apparently GHC itself doesn't like this.

What to do??  And, doesn't this problem manifest itself on other Unix systems?

-- 
Frank Christoph                 Next Solution Co.      Tel: 0424-98-1811
[EMAIL PROTECTED]                             Fax: 0424-98-1500

Reply via email to