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

Brian Strand bstrand at switchmanagement.com
Wed Mar 2 00:08:29 EST 2005


Donald Bruce Stewart wrote:
> 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

Well, I don't know much about how the bootstrap compiler was built (I 
just downloaded it from 
http://debian-amd64.alioth.debian.org/pure64/pool/unstable/main/amd64/g/ghc6/), 
but building with GhcUnregisterised=YES and SplitObjs=NO died with:

==fptools== make all -wr;
  in /home/bstrand/src/ghc-6.4.20050224/libraries/base
------------------------------------------------------------------------
../../ghc/compiler/ghc-inplace -H16m -O -H64m -O -fglasgow-exts -cpp 
-Iinclude -"#include" HsBase.h -funbox-strict-fields -ignore-package 
base -O -Rghc-timing -fgenerics  -fgenerics    -c GHC/Base.lhs -o 
GHC/Base.o  -ohi GHC/Base.hi
ghc-6.4.20050224: internal error: getMBlock: mmap: Invalid argument
     Please report this as a bug to glasgow-haskell-bugs at haskell.org,
     or http://www.sourceforge.net/projects/ghc/
make[2]: *** [GHC/Base.o] Error 254
make[1]: *** [all] Error 1
make[1]: Leaving directory `/home/bstrand/src/ghc-6.4.20050224/libraries'
make: *** [build] Error 1

Brian



More information about the Glasgow-haskell-users mailing list