1. 02 May, 2012 2 commits
    • 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
  2. 01 May, 2012 7 commits
  3. 30 Apr, 2012 4 commits
  4. 27 Apr, 2012 2 commits
  5. 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
  6. 24 Apr, 2012 1 commit
  7. 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_MOVT_ABS
       * R_ARM_THM_MOVW_ABS_NC
       * R_ARM_THM_JUMP8
       * R_ARM_THM_JUMP11
      Signed-off-by: default avatarBen Gamari <bgamari.foss@gmail.com>
      b22501b4
  8. 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.
      7a60d635
  9. 11 Jan, 2012 1 commit
  10. 09 Jan, 2012 1 commit
  11. 07 Dec, 2011 2 commits
    • Simon Marlow's avatar
      8b48562e
    • chak@cse.unsw.edu.au.'s avatar
      Add new primtypes 'ArrayArray#' and 'MutableArrayArray#' · 021a0dd2
      chak@cse.unsw.edu.au. authored
      The primitive array types, such as 'ByteArray#', have kind #, but are represented by pointers. They are boxed, but unpointed types (i.e., they cannot be 'undefined').
      
      The two categories of array types —[Mutable]Array# and [Mutable]ByteArray#— are containers for unboxed (and unpointed) as well as for boxed and pointed types.  So far, we lacked support for containers for boxed, unpointed types (i.e., containers for the primitive arrays themselves).  This is what the new primtypes provide.
      
      Containers for boxed, unpointed types are crucial for the efficient implementation of scattered nested arrays, which are central to the new DPH backend library dph-lifted-vseg.  Without such containers, we cannot eliminate all unboxing from the inner loops of traversals processing scattered nested arrays.
      021a0dd2
  12. 06 Dec, 2011 1 commit
  13. 01 Dec, 2011 2 commits
  14. 20 Nov, 2011 1 commit
  15. 18 Nov, 2011 1 commit
  16. 31 Jul, 2011 1 commit
    • Edward Z. Yang's avatar
      Implement public interface for GC statistics. · 2088abaf
      Edward Z. Yang authored
      
      
      We add a new RTS flag -T for collecting statistics but not giving any
      new inputs.  There is one new struct in rts/storage/GC.h: GCStats.  We
      add two new global counters current_residency and current_slop, which
      are useful for in-program GC statistics.
      
      See GHC.Stats in base for a Haskell interface to this functionality.
      Signed-off-by: Edward Z. Yang's avatarEdward Z. Yang <ezyang@mit.edu>
      2088abaf
  17. 12 Jul, 2011 1 commit
  18. 25 Jun, 2011 1 commit
    • Ian Lynagh's avatar
      Fix gcc 4.6 warnings; fixes #5176 · 0a6f26f6
      Ian Lynagh authored
      Based on a patch from David Terei.
      
      Some parts are a little ugly (e.g. defining things that only ASSERTs
      use only when DEBUG is defined), so we might want to tweak things a
      little.
      
      I've also turned off -Werror for didn't-inline warnings, as we now
      get a few such warnings.
      0a6f26f6
  19. 24 Jun, 2011 1 commit
  20. 19 May, 2011 2 commits
  21. 14 May, 2011 1 commit
  22. 13 May, 2011 1 commit
    • Duncan Coutts's avatar
      Make the GHCi linker handle partially stripped object files (#5004) · cfbf0eb1
      Duncan Coutts authored
      When you use 'strip --strip-unneeded' on a ELF format .o or .a file, if
      the object file has no global/exported symbols then 'strip' ends up
      removing the symbol table entirely. Previously the GHCi linker assumed
      there would always be exactly one symbol table and exactly one string
      table. In fact, in ELF object files there is no such limitation, instead
      each section points to the other sections it needs, in particular
      relocation sections have a link to the symbol table section they use and
      symbol table sections have a link to the corresponding string table.
      So instead of assuming there will always be a global symbol and string
      table, all we have to do is validate and follow these links. Then, when
      we encounter an empty object file that has no symbols then we handle it
      correctly, because since it's empty we never process any relocations and
      so never have to follow any links to non-existant symbol tables.
      
      Also, in the case where an object is fully stripped, we can now detect
      this more reliably and emit a more helpful error message, e.g:
      
      libHSghc-7.1.20110509.a(DsMeta.o): relocation section #2 has no symbol table
      This object file has probably been fully striped. Such files cannot be linked.
      cfbf0eb1
  23. 20 Apr, 2011 2 commits
  24. 12 Apr, 2011 1 commit
  25. 11 Apr, 2011 1 commit