GHC 6.4 release candidates available (breakage on x86-64)

Donald Bruce Stewart dons at cse.unsw.edu.au
Sun Feb 27 18:45:00 EST 2005


bstrand:
> Donald Bruce Stewart wrote:
> >bstrand:
> >
> >>Simon Marlow wrote:
> >>
> >>>Just to let you know, there are a number of open bug reports for GHC on
> >>>the x86_64 platform, which seem to indicate some kind of occasional
> >>>memory/GC problem.  I'm probably not going to be able to track this down
> >>>until after the 6.4 release, but we'll put out a patch as soon as we
> >>>have one.
> >>
> >>Here's an error building ghc-6.4.20050224ghc-6.4.20050224 via Anders' 
> >>Debian x86-64 ghc, although it doesn't look like a memory/GC problem to 
> >>my untrained eye:
> >>
> >>
> >>==fptools== make boot - --no-print-directory -r;
> >>in /home/bstrand/src/ghc-6.4.20050224/ghc/lib/compat
> >>------------------------------------------------------------------------
> >>../../../glafp-utils/mkdependC/mkdependC -f .depend    -I../../includes 
> >>-- -O    -- cbits/directory.c cbits/rawSystem.c
> >>/usr/bin/ghc -M -optdep-f -optdep.depend  -osuf o    -H16m -O -H64m -O 
> >>-I. -Rghc-timing -I../../../libraries -fglasgow-exts -no-recomp 
> >>Compat/Directory.hs Compat/RawSystem.hs Distribution/Compat/ReadP.hs 
> >>Distribution/Extension.hs Distribution/GetOpt.hs 
> >>Distribution/InstalledPackageInfo.hs Distribution/License.hs 
> >>Distribution/Package.hs Distribution/ParseUtils.hs Distribution/Setup.hs 
> >>Distribution/Version.hs System/Directory/Internals.hs
> >><<ghc: 15653112 bytes, 5 GCs, 73168/73168 avg/max bytes residency (1 
> >>samples), 63M in use, 0.00 INIT (0.00 elapsed), 0.12 MUT (5.14 elapsed), 
> >>0.03 GC (0.57 elapsed) :ghc>>
> >>make all
> >>rm -f System/Directory/Internals.o; if [ ! -d 
> >>System/Directory/Internals_split ]; then mkdir 
> >>System/Directory/Internals_split; else /usr/bin/find 
> >>System/Directory/Internals_split -name '*.o' -print | xargs rm -f 
> >>__rm_food; fi;
> >>/usr/bin/ghc -H16m -O -H64m -O -I. -Rghc-timing  -I../../../libraries 
> >>-fglasgow-exts -no-recomp -split-objs    -c 
> >>System/Directory/Internals.hs-o System/Directory/Internals.o  -ohi 
> >>System/Directory/Internals.hi
> >>warning: don't know how to split object files on this architecture
> >><<ghc: 76094368 bytes, 11 GCs, 2187736/4575048 avg/max bytes residency 
> >>(3 samples), 66M in use, 0.00 INIT (0.00 elapsed), 0.87 MUT (13.77 
> >>elapsed), 0.14 GC (1.40 elapsed) :ghc>>
> >>( cd System/Directory/Internals_split; rm -f ld.script; touch ld.script; 
> >>echo "INPUT(" *.o ")" >>ld.script; /usr/bin/ld -r -x -o 
> >>../Internals.old.script; );
> >>/usr/bin/ld:ld.script: file format not recognized; treating as linker 
> >>script
> >>/usr/bin/ld:ld.script:1: syntax error
> >>make[4]: *** [System/Directory/Internals.o] Error 1
> >>make[3]: *** [boot] Error 2
> >>make[2]: *** [boot] Error 1
> >>make[1]: *** [boot] Error 1
> >>make[1]: Leaving directory `/home/bstrand/src/ghc-6.4.20050224/ghc'
> >>make: *** [build] Error 1
> >
> >
> >Can you try building with SplitObjs=NO ?
> >
> >Wolfgang, Ryan - that looks like a splitter problem, no?
> >
> >(The splitter is more of a dark art than the evil mangler, I propose we
> >name it the "diabolical splitter" from now on.)
> >
> >-- Don
> 
> Using SplitObjs=NO gives out many warnings then finally dies with:
> 
> ../../ghc/compiler/ghc-inplace -optc-O -optc-Wall -optc-W 
> -optc-Wstrict-prototypes -optc-Wmissing-prototypes 
> -optc-Wmissing-declarations -optc-Winline -optc-Waggregate-return 
> -optc-Wbad-function-cast -optc-I../includes -optc-I. -optc-Iparallel 
> -optc-DCOMPILING_RTS -optc-fomit-frame-pointer -H16m -O -H64m -O -O2 
> -static -I. -#include Prelude.h -#include Rts.h -#include RtsFlags.h 
> -#include RtsUtils.h -#include StgRun.h -#includeSchedule.h -#include 
> Printer.h -#include Sanity.h -#include STM.h -#include Storage.h 
> -#include SchedAPI.h -#include Timer.h -#include Itimer.h-#include 
> ProfHeap.h -#include LdvProfile.h -#include Profiling.h -#include 
> Apply.h -fvia-C -dcmm-lint     -c StgCRun.c -o StgCRun.o
> In file included from ../includes/Stg.h:149,
>                  from StgCRun.c:67:
> ../includes/Regs.h:213: warning: call-clobbered register used for global 
> register variable
> ../includes/Regs.h:342: warning: call-clobbered register used for global 
> register variable
> /tmp/ghc13908.s: Assembler messages:
> /tmp/ghc13908.s:20: Error: suffix or operands invalid for `jmp'
> make[2]: *** [StgCRun.o] Error 1
> make[1]: *** [all] Error 1
> make[1]: Leaving directory `/home/bstrand/src/ghc-6.4.20050224/ghc'
> make: *** [build] Error 1

Are you building unregisterised? Those messages about global register
variables (I think) imply that you are not -- and we haven't yet got
x86_64 (terrible name, I much prefer amd64) registerised. Looks like you
might even have found the point where registerisation breaks.

Try building unregisterised:
    GhcUnregisterised=YES

just as the .hc bootstrap compiler was built.

-- Don


More information about the Glasgow-haskell-users mailing list