1. 14 Sep, 2012 1 commit
  2. 07 Sep, 2012 1 commit
    • Simon Marlow's avatar
      Deprecate lnat, and use StgWord instead · 41737f12
      Simon Marlow authored
      lnat was originally "long unsigned int" but we were using it when we
      wanted a 64-bit type on a 64-bit machine.  This broke on Windows x64,
      where long == int == 32 bits.  Using types of unspecified size is bad,
      but what we really wanted was a type with N bits on an N-bit machine.
      StgWord is exactly that.
      
      lnat was mentioned in some APIs that clients might be using
      (e.g. StackOverflowHook()), so we leave it defined but with a comment
      to say that it's deprecated.
      41737f12
  3. 21 Aug, 2012 2 commits
  4. 20 Aug, 2012 1 commit
  5. 13 Aug, 2012 1 commit
    • Erik de Castro Lopo's avatar
      Fix GHCi segfault during startup on linux-powerpc (#2972). · 3e6c9308
      Erik de Castro Lopo authored
      Slightly modified version of a patch from Ben Collins <bcollins@ubuntu.com>
      who did the final debugging that showed the segfault was being caused the
      memory protection mechanism.
      
      Due to the requirement of "jump islands" to handle 24 bit relative jump
      offsets, GHCi on PowerPC did not use mmap to load object files like the
      other architectures. Instead, it allocated memory using malloc and fread
      to load the object code. However there is a quirk in the GNU libc malloc
      implementation. For memory regions over certain size (dynamic and
      configurable), malloc will use mmap to obtain the required memory instead
      of sbrk and malloc's call to mmap sets the memory readable and writable,
      but not executable. That means when GHCi loads code into a memory region
      that was mmapped instead of malloc-ed and tries to execute it we get a
      segfault.
      
      This solution drops the malloc/fread object loading in favour of using
      mmap and then puts the jump island for each object code module at the
      end of the mmaped region for that object.
      
      This patch may also be a solution on other ELF based powerpc systems
      but does not work on darwin-powerpc.
      3e6c9308
  6. 10 Aug, 2012 1 commit
  7. 31 Jul, 2012 1 commit
  8. 19 Jun, 2012 1 commit
  9. 17 Jun, 2012 1 commit
  10. 16 Jun, 2012 1 commit
  11. 09 Jun, 2012 1 commit
  12. 09 May, 2012 2 commits
  13. 08 May, 2012 2 commits
  14. 07 May, 2012 3 commits
  15. 06 May, 2012 2 commits
  16. 03 May, 2012 1 commit
  17. 02 May, 2012 3 commits
    • Ian Lynagh's avatar
      More Win64 ghci fixes · 3a8c7c8e
      Ian Lynagh authored
      3a8c7c8e
    • Ian Lynagh's avatar
      Win64 Linker improvements · 18b4ad9a
      Ian Lynagh authored
      We now detect if we are given a value that is out of range for a
      32bit relocation, and fail with an error.
      
      Added a load more symbols to rtsSyms.
      18b4ad9a
    • Ian Lynagh's avatar
      Add 'free' to the list of rtsSyms on Win64 · afbaa112
      Ian Lynagh authored
      Without this, we ended up using
          (gdb) info symbol 0x7ff756a10ac
          msvcrt!free in section .text of C:\Windows\system32\msvcrt.dll
      for free, rather than
          (gdb) info symbol 0x2584128
          free in section .text of C:\m64\ghci2\q/../inplace/bin/ghc-stage2.exe
      but we were trying to put the address into a 32bit relocation.
      afbaa112
  18. 01 May, 2012 7 commits
  19. 30 Apr, 2012 4 commits
  20. 27 Apr, 2012 2 commits
  21. 26 Apr, 2012 1 commit
    • Ian Lynagh's avatar
      Fix warnings on Win64 · 1dbe6d59
      Ian Lynagh authored
      Mostly this meant getting pointer<->int conversions to use the right
      sizes. lnat is now size_t, rather than unsigned long, as that seems a
      better match for how it's used.
      1dbe6d59
  22. 24 Apr, 2012 1 commit