
*you feel a sudden sense of deja vu*
Here is my current play on things:
- I can probably get a devel2 build with the new codegen turned on for
everything. This list of errors is from that build. However, this
build was originally failing, so I'm going to do a fresh devel2
build and see if I've just got some weird Franken-GHC set up.
- I can't seem to get a devel1 build with the new codegen turned on
for everything built: the first invocation to the stage2 compiler
segfaults.
I've been debugging 4030, since I looked at it previously to resolve
the black hole problems. Doing so has given me a sense of deja vu, but
I think the failure mode this time is different. The resulting
executable segfaults with -O and does not segfault with -O -fno-full-laziness
(strangely enough, -O0 -ffull-laziness does not segfault). The failure
crops up if you do -fnew-codegen or -fno-new-codegen.
In the debugger, I've tracked the bug down to this incorrect block of
assembly:
Dump of assembler code for function c2Po_info:
0x08285ac4 <+0>: mov 0x48(%ebx),%eax
0x08285ac7 <+3>: mov 0x4c(%ebx),%ecx
0x08285aca <+6>: mov %eax,-0x4(%ebp)
0x08285acd <+9>: mov %ecx,0x0(%ebp)
0x08285ad0 <+12>: add $0x4,%ebp
0x08285ad3 <+15>: add $0xfffffff8,%ebp
=> 0x08285ad6 <+18>: jmp 0x8285ad8