head broken on openbsd

Don Stewart dons at galois.com
Wed Oct 31 17:54:12 EDT 2007


dons:
> 
> The change to use remap in Linker.c has broken the mmap Linker.c
> implementation on OpenBSD, and other BSDs.
> 
>     #ifndef linux_HOST_OS /* mremap is a linux extension */
>         #error ocAllocateSymbolExtras doesnt want USE_MMAP to be defined
>     #endif
> 
> Do we know why this was done? USE_MMAP worked perfectly well until
> recently, perhaps the remap stuff could be ifdeffed instead?

This patch:

Thu Oct 18 05:52:20 PDT 2007  Simon Marlow <simonmar at microsoft.com>

  * add PIC relocations for x86_64, and use a simpler hack in place of x86_64_high_symbol()

  This is Wolfgang Thaller's patch sent to cvs-ghc recently, with extra
  commentary by me.  It turns out that this patch is not just a cleanup,
  it is also necessary for GHCi to work on x86_64 with shared libraries,
  because previously lookupSymbol() was creating jump-table entries for
  all symbols looked up that resolved outside 2Gb, whereas Wolfgang's
  version only generates jump-table entries for 32-bit symbol references
  in object code that we load.




More information about the Cvs-ghc mailing list