Message "GHC/PrimopWrappers.hs:133:29: Not in scope: `GHC.Prim.quotInteger2Exp#'" building GHC with additional primitive operation

Thorkil Naur naur at post11.tele.dk
Sun Mar 26 12:54:50 EST 2006


On Thursday 23 March 2006 17:51, Simon Marlow wrote:
> I think you probably just haven't recompiled enough stuff after adding 
> the primop.  I can't tell immediately whether it's the compiler that is 
> out of date, or an interface file in libraries/base.
> 
> To be on the safe side, you could 'make clean' in ghc/compiler and 
> libraries/base, then rebuild both.
> 
> Cheers,
> 	Simon
> 
Hello,

Thanks a lot, that removed some obstacles. Unfortunately, not all. Following 
successful "make clean" and "make all" in "ghc/compiler" and 
"libraries/base", a "make all" in the top-level directory reported:

  ../../ghc/compiler/stage1/ghc-inplace -o stage2/ghc-6.4.1 -H16m -O  
-istage2/utils  -istage2/basicTypes  -istage2/types  -istage2/hsSyn  
-istage2/prelude  -istage2/rename  -istage2/typecheck  -istage2/deSugar  
-istage2/coreSyn  -istage2/specialise  -istage2/simplCore  -istage2/stranal  
-istage2/stgSyn  -istage2/simplStg  -istage2/codeGen  -istage2/main  
-istage2/profiling  -istage2/parser  -istage2/cprAnalysis  -istage2/compMan  
-istage2/ndpFlatten  -istage2/iface  -istage2/cmm  -istage2/nativeGen  
-istage2/ghci -Istage2 -DGHCI -package template-haskell -package readline 
-DUSE_READLINE -cpp -fglasgow-exts -fno-generics -Rghc-timing -I. -IcodeGen 
-InativeGen -Iparser -package unix -package Cabal -recomp -Rghc-timing  -H16M 
'-#include "hschooks.h"'    -no-link-chk    stage2/basicTypes/BasicTypes.o  
stage2/basicTypes/DataCon.o  stage2/basicTypes/Demand.o  
stage2/basicTypes/FieldLabel.o  stage2/basicTypes/Id.o  
stage2/basicTypes/IdInfo.o  stage2/basicTypes/Literal.o  
stage2/basicTypes/MkId.o  stage2/basicTypes/Module.o  
stage2/basicTypes/Name.o  stage2/basicTypes/NameEnv.o  
stage2/basicTypes/NameSet.o  stage2/basicTypes/NewDemand.o  
stage2/basicTypes/OccName.o  stage2/basicTypes/RdrName.o  
stage2/basicTypes/SrcLoc.o  stage2/basicTypes/UniqSupply.o  
stage2/basicTypes/Unique.o  stage2/basicTypes/Var.o  
stage2/basicTypes/VarEnv.o  stage2/basicTypes/VarSet.o  stage2/cmm/CLabel.o  
stage2/cmm/Cmm.o  stage2/cmm/CmmLex.o  stage2/cmm/CmmLint.o  
stage2/cmm/CmmParse.o  stage2/cmm/CmmUtils.o  stage2/cmm/MachOp.o  
stage2/cmm/PprC.o  stage2/cmm/PprCmm.o  stage2/codeGen/Bitmap.o  
stage2/codeGen/CgBindery.o  stage2/codeGen/CgCallConv.o  
stage2/codeGen/CgCase.o  stage2/codeGen/CgClosure.o  stage2/codeGen/CgCon.o  
stage2/codeGen/CgExpr.o  stage2/codeGen/CgForeignCall.o  
stage2/codeGen/CgHeapery.o  stage2/codeGen/CgInfoTbls.o  
stage2/codeGen/CgLetNoEscape.o  stage2/codeGen/CgMonad.o  
stage2/codeGen/CgParallel.o  stage2/codeGen/CgPrimOp.o  
stage2/codeGen/CgProf.o  stage2/codeGen/CgStackery.o  
stage2/codeGen/CgTailCall.o  stage2/codeGen/CgTicky.o  
stage2/codeGen/CgUtils.o  stage2/codeGen/ClosureInfo.o  
stage2/codeGen/CodeGen.o  stage2/codeGen/SMRep.o  
stage2/compMan/CompManager.o  stage2/coreSyn/CoreFVs.o  
stage2/coreSyn/CoreLint.o  stage2/coreSyn/CorePrep.o  
stage2/coreSyn/CoreSubst.o  stage2/coreSyn/CoreSyn.o  
stage2/coreSyn/CoreTidy.o  stage2/coreSyn/CoreUnfold.o  
stage2/coreSyn/CoreUtils.o  stage2/coreSyn/ExternalCore.o  
stage2/coreSyn/MkExternalCore.o  stage2/coreSyn/PprCore.o  
stage2/coreSyn/PprExternalCore.o  stage2/cprAnalysis/CprAnalyse.o  
stage2/deSugar/Check.o  stage2/deSugar/Desugar.o  stage2/deSugar/DsArrows.o  
stage2/deSugar/DsBinds.o  stage2/deSugar/DsCCall.o  stage2/deSugar/DsExpr.o  
stage2/deSugar/DsForeign.o  stage2/deSugar/DsGRHSs.o  
stage2/deSugar/DsListComp.o  stage2/deSugar/DsMeta.o  
stage2/deSugar/DsMonad.o  stage2/deSugar/DsUtils.o  stage2/deSugar/Match.o  
stage2/deSugar/MatchCon.o  stage2/deSugar/MatchLit.o  
stage2/ghci/ByteCodeAsm.o  stage2/ghci/ByteCodeFFI.o  
stage2/ghci/ByteCodeGen.o  stage2/ghci/ByteCodeInstr.o  
stage2/ghci/ByteCodeItbls.o  stage2/ghci/ByteCodeLink.o  
stage2/ghci/InteractiveUI.o  stage2/ghci/Linker.o  stage2/ghci/ObjLink.o  
stage2/hsSyn/Convert.o  stage2/hsSyn/HsBinds.o  stage2/hsSyn/HsDecls.o  
stage2/hsSyn/HsExpr.o  stage2/hsSyn/HsImpExp.o  stage2/hsSyn/HsLit.o  
stage2/hsSyn/HsPat.o  stage2/hsSyn/HsSyn.o  stage2/hsSyn/HsTypes.o  
stage2/hsSyn/HsUtils.o  stage2/iface/BinIface.o  stage2/iface/BuildTyCl.o  
stage2/iface/IfaceEnv.o  stage2/iface/IfaceSyn.o  stage2/iface/IfaceType.o  
stage2/iface/LoadIface.o  stage2/iface/MkIface.o  stage2/iface/TcIface.o  
stage2/main/CmdLineOpts.o  stage2/main/CodeOutput.o  stage2/main/Config.o  
stage2/main/Constants.o  stage2/main/DriverFlags.o  
stage2/main/DriverMkDepend.o  stage2/main/DriverPhases.o  
stage2/main/DriverPipeline.o  stage2/main/DriverState.o  
stage2/main/DriverUtil.o  stage2/main/ErrUtils.o  stage2/main/Finder.o  
stage2/main/GetImports.o  stage2/main/HscMain.o  stage2/main/HscStats.o  
stage2/main/HscTypes.o  stage2/main/Main.o  stage2/main/PackageConfig.o  
stage2/main/Packages.o  stage2/main/ParsePkgConf.o  stage2/main/SysTools.o  
stage2/main/TidyPgm.o  stage2/nativeGen/AsmCodeGen.o  
stage2/nativeGen/MachCodeGen.o  stage2/nativeGen/MachInstrs.o  
stage2/nativeGen/MachRegs.o  stage2/nativeGen/NCGMonad.o  
stage2/nativeGen/PositionIndependentCode.o  stage2/nativeGen/PprMach.o  
stage2/nativeGen/RegAllocInfo.o  stage2/nativeGen/RegisterAlloc.o  
stage2/ndpFlatten/FlattenInfo.o  stage2/ndpFlatten/FlattenMonad.o  
stage2/ndpFlatten/Flattening.o  stage2/ndpFlatten/NDPCoreUtils.o  
stage2/ndpFlatten/PArrAnal.o  stage2/parser/Ctype.o  stage2/parser/LexCore.o  
stage2/parser/Lexer.o  stage2/parser/Parser.o  stage2/parser/ParserCore.o  
stage2/parser/ParserCoreUtils.o  stage2/parser/RdrHsSyn.o  
stage2/prelude/ForeignCall.o  stage2/prelude/PrelInfo.o  
stage2/prelude/PrelNames.o  stage2/prelude/PrelRules.o  
stage2/prelude/PrimOp.o  stage2/prelude/TysPrim.o  
stage2/prelude/TysWiredIn.o  stage2/profiling/CostCentre.o  
stage2/profiling/SCCfinal.o  stage2/rename/RnBinds.o  stage2/rename/RnEnv.o  
stage2/rename/RnExpr.o  stage2/rename/RnHsSyn.o  stage2/rename/RnNames.o  
stage2/rename/RnSource.o  stage2/rename/RnTypes.o  stage2/simplCore/CSE.o  
stage2/simplCore/FloatIn.o  stage2/simplCore/FloatOut.o  
stage2/simplCore/LiberateCase.o  stage2/simplCore/OccurAnal.o  
stage2/simplCore/SAT.o  stage2/simplCore/SATMonad.o  
stage2/simplCore/SetLevels.o  stage2/simplCore/SimplCore.o  
stage2/simplCore/SimplEnv.o  stage2/simplCore/SimplMonad.o  
stage2/simplCore/SimplUtils.o  stage2/simplCore/Simplify.o  
stage2/simplStg/SRT.o  stage2/simplStg/SimplStg.o  stage2/simplStg/StgStats.o  
stage2/specialise/Rules.o  stage2/specialise/SpecConstr.o  
stage2/specialise/Specialise.o  stage2/stgSyn/CoreToStg.o  
stage2/stgSyn/StgLint.o  stage2/stgSyn/StgSyn.o  stage2/stranal/DmdAnal.o  
stage2/stranal/SaAbsInt.o  stage2/stranal/SaLib.o  
stage2/stranal/StrictAnal.o  stage2/stranal/WorkWrap.o  
stage2/stranal/WwLib.o  stage2/typecheck/Inst.o  stage2/typecheck/TcArrows.o  
stage2/typecheck/TcBinds.o  stage2/typecheck/TcClassDcl.o  
stage2/typecheck/TcDefaults.o  stage2/typecheck/TcDeriv.o  
stage2/typecheck/TcEnv.o  stage2/typecheck/TcExpr.o  
stage2/typecheck/TcForeign.o  stage2/typecheck/TcGenDeriv.o  
stage2/typecheck/TcHsSyn.o  stage2/typecheck/TcHsType.o  
stage2/typecheck/TcInstDcls.o  stage2/typecheck/TcMType.o  
stage2/typecheck/TcMatches.o  stage2/typecheck/TcPat.o  
stage2/typecheck/TcRnDriver.o  stage2/typecheck/TcRnMonad.o  
stage2/typecheck/TcRnTypes.o  stage2/typecheck/TcRules.o  
stage2/typecheck/TcSimplify.o  stage2/typecheck/TcSplice.o  
stage2/typecheck/TcTyClsDecls.o  stage2/typecheck/TcTyDecls.o  
stage2/typecheck/TcType.o  stage2/typecheck/TcUnify.o  stage2/types/Class.o  
stage2/types/FunDeps.o  stage2/types/Generics.o  stage2/types/InstEnv.o  
stage2/types/Kind.o  stage2/types/TyCon.o  stage2/types/Type.o  
stage2/types/TypeRep.o  stage2/types/Unify.o  stage2/utils/Bag.o  
stage2/utils/Binary.o  stage2/utils/BitSet.o  stage2/utils/Digraph.o  
stage2/utils/FastMutInt.o  stage2/utils/FastString.o  
stage2/utils/FastTypes.o  stage2/utils/FiniteMap.o  stage2/utils/IOEnv.o  
stage2/utils/ListSetOps.o  stage2/utils/Maybes.o  stage2/utils/OrdList.o  
stage2/utils/Outputable.o  stage2/utils/Panic.o  stage2/utils/Pretty.o  
stage2/utils/PrimPacked.o  stage2/utils/StringBuffer.o  
stage2/utils/UnicodeUtil.o  stage2/utils/UniqFM.o  stage2/utils/UniqSet.o  
stage2/utils/Util.o  stage2/parser/hschooks.o
  /home/tn/tn/Haskell/ghc/unpack/ghc-6.4.1/ghc/rts/libHSrts.a(Linker.o):
(.data+0x41c): undefined reference to `quotInteger2Expzh_fast'
  collect2: ld returned 1 exit status
  <<ghc: 14519528 bytes, 3 GCs, 172816/172816 avg/max bytes residency (1 
samples), 15M in use, 0.01 INIT (0.00 elapsed), 0.01 MUT (36.43 elapsed), 
0.02 GC (0.02 elapsed) :ghc>>
  make[2]: *** [stage2/ghc-6.4.1] Error 1
  make[2]: Leaving directory 
`/home/tn/tn/Haskell/ghc/unpack/ghc-6.4.1/ghc/compiler'
  make[1]: *** [stage2] Error 2
  make[1]: Leaving directory `/home/tn/tn/Haskell/ghc/unpack/ghc-6.4.1'
  make: *** [bootstrap2] Error 2

And that message persisted, even when I tried "make clean" and "make all" in 
the top-level directory.

I have tried a few things, groping in the darkness I would call it, trying to 
get around this. And I was actually able produce a compiler by temporarily 
removing the quotInteger2Expzh_fast reference in ghc/rts/Linker.c. But the 
produced compiler (including GHCi) complained about missing the symbol 
quotInteger2Expzh_fast.

The file libraries/base/GHC/Base.lhs contains the tantalizing remarks

GHC.Prim                Has no implementation.  It defines built-in things, 
and
                by importing it you bring them into scope.
                The source file is GHC.Prim.hi-boot, which is just
                copied to make GHC.Prim.hi

but I have not been able to find anything that relates to this.

So I am again at a loss, aksing for help to proceed.

Thanks a lot in advance.

Best regards
Thorkil Naur


More information about the Glasgow-haskell-users mailing list