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
