Unregistered build (was Re: AMD64)

Donald Bruce Stewart dons at cse.unsw.edu.au
Thu Jun 17 21:57:14 EDT 2004


listener:
> 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
> 
> By the way, the unregistered ghc does not build all programs I've tried. 
> This was the result of trying a more complex one:
> # ghc-inplace --make Main.hs
> # Chasing modules from: Main.hs
> # ghc-6.2.20040613: internal error: getMBlock: mmap: Invalid argument
> 
> 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
> 
> Here's another trace of a different program - note that the first argument of 
> mmap is the same when the crash occurs:
> #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, 11978664837120, 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
> 
> And a third one:
> #mprotect(0, 1048264, PROT_NONE)         = -1 ENOMEM (Cannot allocate memory)
> #...
> #munmap(0x2a95c4f000, 131072)            = 0
> #--- SIGSEGV (Segmentation fault) @ 0 (0) --
> 
> I think we are at a dead end right now but at least I've become quite familiar 
> with building ghc :-)

That's interesting. GHC unregisterised on amd64/openbsd *does* pass all
the testsuite tests.

-- Don


More information about the Glasgow-haskell-users mailing list