
On 17 June 2004 17:30, Peter Robinson wrote:
On Thursday 17 June 2004 17:38, Simon Marlow wrote:
It looks like registerised compilation on x86_64 isn't quite working yet, then. If you're up to debugging this, then I suggest you start from a simpler program - try hello world registerised, and then slightly larger programs if that works.> Compile programs with -debug, and run with gdb to find out where the crash is happening. I would if I could, but unfortunately I can't even start ghc (the strace log I've attached before was created when running ghc without _any_ arguments): # ./ghc # Segmentation fault
Yes, I meant building a program using the working ghc. Things get confusing with multi-stage bootstraps, so let's clarify: A : compiler bootstrapped from .hc files (unregisterised, builds unregisterised binaries) B : compiler built using stage1 in a new tree (unregisterised, builds registerised binaries) So it looks like your B compiler is crashing - which means that your A compiler is producing incorrect code.
Some other ones can be compiled but cannot be executed (like ghc). All crashes are related to memory management:
#../log:mmap(0x2a96300000, 1048576, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2a96300000 #../log:mmap(0x2a96400000, 1048576, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2a96400000 #../log:mmap(0x2a96500000, 30739081986048, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = -1 EINVAL (Invalid argument) #../log:write(2, "getMBlock: mmap: Invalid argumen"..., 33) = 33
Furthermore, your A compiler is also crashing. Very strange... this one could be a gcc problem, but I really don't know. You might try going back to 3.4.0, but back off to 3.3.3 to avoid the crash that happened before. Failing that, it's gdb I'm afriad. Cheers, Simon