1. 21 Aug, 2012 2 commits
  2. 20 Aug, 2012 1 commit
  3. 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
      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.
  4. 10 Aug, 2012 1 commit
  5. 31 Jul, 2012 1 commit
  6. 19 Jun, 2012 1 commit
  7. 17 Jun, 2012 1 commit
  8. 16 Jun, 2012 1 commit
  9. 09 Jun, 2012 1 commit
  10. 09 May, 2012 2 commits
  11. 08 May, 2012 2 commits
  12. 07 May, 2012 3 commits
  13. 06 May, 2012 2 commits
  14. 03 May, 2012 1 commit
  15. 02 May, 2012 3 commits
    • Ian Lynagh's avatar
      More Win64 ghci fixes · 3a8c7c8e
      Ian Lynagh authored
    • 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.
    • 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.
  16. 01 May, 2012 7 commits
  17. 30 Apr, 2012 4 commits
  18. 27 Apr, 2012 2 commits
  19. 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.
  20. 24 Apr, 2012 1 commit
  21. 30 Mar, 2012 1 commit
    • Ben Gamari's avatar
      Add linker support for ELF on ARM · b22501b4
      Ben Gamari authored
      Add support for ELF objects on ARM to the runtime linker. While the list of
      relocation types in the "ELF for the ARM Architecture" specification spans four
      pages, we thankfully only see a handful of these in the wild. Thus, at the
      moment we only support the following .rel relocation types,
       * R_ARM_ABS32
       * R_ARM_TARGET1
       * R_ARM_REL32
       * R_ARM_CALL
       * R_ARM_JUMP24
       * R_ARM_MOVT_ABS
       * R_ARM_MOVW_ABS_NC
       * R_ARM_THM_CALL
       * R_ARM_THM_JUMP24
       * R_ARM_THM_JUMP8
       * R_ARM_THM_JUMP11
      Signed-off-by: default avatarBen Gamari <bgamari.foss@gmail.com>
  22. 16 Mar, 2012 1 commit
    • Ian Lynagh's avatar
      Soem more Wind64 fixes · 7a60d635
      Ian Lynagh authored
      We may need to do this differently once we get as far as building the
      RTS in the dyn ways.