
On 2001-07-05T10:34:27+0100, Simon Marlow wrote:
This isn't right: you shouldn't set GhcHcOpts in the first build. In the URL you gave, this line was commented out. That's certainly the reason for the core dumps.
Ah! Careless me. Thank you.
In GHC 5.00.2, there's an easier way. For the c1 & c2 builds, you can just set GhcUnregisterised = YES in build.mk, and you can set $long to empty.
This seems to have worked. By the way, the "old way" (as specified in the MacOS port readme) does not work with ghc 5 -- I got a seg fault when running ghc-inplace during the second stage.
When you get around to bootstrapping on the Alpha, I'll probably need to help you some more, because bootstrapping from .hc files is quite tricky on 5.00.
I'm there! The first obstacle I encountered is that PackedString.raw_s seems to be mangled incorrectly. PWD = /a/lair62/vol/vol0/home/ccshan/u/ghc-port/alpha/hslibs/lang ------------------------------------------------------------------------ gcc -x c PackedString.hc -o PackedString.raw_s -S -O -D__GLASGOW_HASKELL__=500 -O -I/a/lair62/vol/vol0/home/ccshan/u/ghc-port/alpha/ghc/includes -I/a/lair62/vol/vol0/home/ccshan/u/ghc-port/alpha/ghc/lib/std/cbits -I/a/lair62/vol/vol0/home/ccshan/u/ghc-port/alpha/hslibs/lang/cbits -I/a/lair62/vol/vol0/home/ccshan/u/ghc-port/alpha/hslibs/posix/cbits -I/a/lair62/vol/vol0/home/ccshan/u/ghc-port/alpha/hslibs/util/cbits -I/a/lair62/vol/vol0/home/ccshan/u/ghc-port/alpha/hslibs/text/cbits -I/a/lair62/vol/vol0/home/ccshan/u/ghc-port/alpha/hslibs/hssource/cbits -DNO_REGS -I. `echo | sed 's/^$/-DSTOLEN_X86_REGS=4/'` In file included from /a/lair62/vol/vol0/home/ccshan/u/ghc-port/alpha/ghc/includes/Stg.h:168, from PackedString.hc:1: /a/lair62/vol/vol0/home/ccshan/u/ghc-port/alpha/ghc/includes/TailCalls.h:86: warning: call-clobbered register used for global register variable ../../ghc/driver/mangler/ghc-asm PackedString.raw_s PackedString.s gcc -c -o PackedString.o PackedString.s as0: Error: PackedString.hc, line 6: Conflicting definition of symbol s7sY_fast4 as0: Warning: PackedString.hc, line 6: .ent/.end block never defined the procedure name .end s7sY_fast4 gmake[1]: *** [PackedString.o] Error 1 rm PackedString.s PackedString.raw_s gmake: *** [all] Error 1 The intermediate files in question are at http://www.eecs.harvard.edu/~ccshan/ghc-port/ If I assemble PackedString.raw_s directly, the assmbler is happy. If I comment out the ".file" directive in PackedString.s and assemble it, I get the more informative line numbers in as0: Error: PackedString.s, line 12108: Conflicting definition of symbol s7sY_fast4 as0: Warning: PackedString.s, line 12211: .ent/.end block never defined the procedure name The culprit appears to be that lines 11396-11404 in PackedString.raw_s: .rdata .align 3 $LC8: .quad -9187201950435737471 .text .align 5 .ent s7sY_fast4 s7sY_fast4: .frame $30,0,$26,0 got mangled into lines 12103-12109 in PackedString.s: .rdata .align 3 $LC8: .quad -9187201950435737471 .ent s7sY_fast4 s7sY_fast4: .frame $30,0,$26,0 When I added ".text" manually between the ".quad" and the ".ent", the assembler became happy. ... But is this the right fix? (Do I need to ".align" anything?) If it is the right fix, perhaps someone more familiar with the mangler can point me to the right fix in ghc-asm.lprl? -- Edit this signature at http://www.digitas.harvard.edu/cgi-bin/ken/sig "There isn't anyone out there who isn't Seymour's fat lady."