
Hi Ian, On Mar 15, 2007, at 12:21 PM, Ian Lynagh wrote:
I think the first thing to do is to see if newPinnedByteArrayzh_fast is being passed plausible values. The easiest way is probably to set a breakpoint in gdb on newPinnedByteArrayzh_fast (Having "GhcRtsHcOpts += -keep-hc-files" in mk/build.mk will probably help so you can look at PrimOps.hc; unfortunately we don't seem to set hcsuf - we probably should. You might also want to check that the RTS wasn't compiled with optimisation on. Note that this is in the 6.4 tree, not the 6.6 one!)
The 6.4.2 compiler was built with by the hc-build script which uses GhcWithInterpreter=NO GhcWithNativeCodeGen=NO SplitObjs=NO GhcLibWays= in build.mk, so I assume it has optimization on. Can I simply add GhcRtsHcOpts += -O0 or should I change SRC_HC_OPTS with SRC_HC_OPTS += -O0 in the build.mk of the 6.4.2 tree? I'm also assuming that I can just rebuild 6.4.2 with optimization off on the target amd64 box and that I can still use my original .hc files from the i386 machine. Is that true?
If you do make any changes to the RTS code or compilation options then you'll have to run make and make install in 6.4.2's rts/, then delete 6.6-branch's compiler/stage1/ghc-6.6* and run make stage=1 in compiler/.
Oakey-dokey.
Thanks Ian
Best Wishes, Greg