1. 15 May, 2012 1 commit
    • pcapriotti's avatar
      Rename package-conf flags to package-db. · ca2debb2
      pcapriotti authored
      Rename package database flags in both GHC and ghc-pkg so that they are
      consistent with Cabal nomenclature.
      
      Add a version check to the build system so that the correct set of
      package db flags are used when the bootstrapping GHC has version < 7.5.
      ca2debb2
  2. 06 May, 2012 1 commit
    • Ian Lynagh's avatar
      Fix the way we call strip on DLLs · 9949db0a
      Ian Lynagh authored
      On Win64, "install -s" calls a strip that doesn't understand 64bit
      binaries. For some reason, this means the DLLs end up non-executable,
      which means executables that use them just segfault.
      9949db0a
  3. 04 May, 2012 1 commit
  4. 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
  5. 16 Mar, 2012 1 commit
  6. 30 Jan, 2012 1 commit
  7. 10 Jan, 2012 1 commit
  8. 06 Jan, 2012 1 commit
    • Simon Marlow's avatar
      Enable the threaded RTS when unregisterised too. · 77e78896
      Simon Marlow authored
      It was disabled by me in 1a470c94 (May
      2007), but the commit gave no explanation as to why.  Perhaps this was before
      we had a separate knob for GhcWithSMP.
      
      Anyway, it looks like threaded works fine with unregisterised, so I'm
      enabling it again.
      77e78896
  9. 13 Dec, 2011 1 commit
  10. 02 Dec, 2011 1 commit
    • Ian Lynagh's avatar
      Use touchy rather than touch when building on Windows · 2694bb74
      Ian Lynagh authored
      With Windows 7 in a vitrual box VM on OS X, some very odd things happen
      with dates and time stamps when SSHing into cygwin. e.g. here the
      "Change" time is in the past:
      
      $ date; touch foo; stat foo
      Fri Dec  2 16:58:07 GMTST 2011
        File: `foo'
        Size: 0               Blocks: 0          IO Block: 65536  regular
      empty file
      Device: 540aba0bh/1409989131d   Inode: 562949953592977  Links: 1
      Access: (0644/-rw-r--r--)  Uid: ( 1000/     ian)   Gid: (  513/    None)
      Access: 2011-12-02 16:58:07.414457900 +0000
      Modify: 2011-12-02 16:58:07.414457900 +0000
      Change: 2011-12-02 16:58:03.495141800 +0000
       Birth: 2011-12-02 16:57:57.731469900 +0000
      
      And if we copy such a file, then the copy is older (as determined by the
      "Modify" time) than the original:
      
      $ date; touch foo; stat foo; cp foo bar; stat bar
      Fri Dec  2 16:59:10 GMTST 2011
        File: `foo'
        Size: 0               Blocks: 0          IO Block: 65536  regular
      empty file
      Device: 540aba0bh/1409989131d   Inode: 1407374883725128  Links: 1
      Access: (0644/-rw-r--r--)  Uid: ( 1000/     ian)   Gid: (  513/    None)
      Access: 2011-12-02 16:59:10.118457900 +0000
      Modify: 2011-12-02 16:59:10.118457900 +0000
      Change: 2011-12-02 16:59:06.189477700 +0000
       Birth: 2011-12-02 16:57:57.731469900 +0000
        File: `bar'
        Size: 0               Blocks: 0          IO Block: 65536  regular
      empty file
      Device: 540aba0bh/1409989131d   Inode: 281474976882512  Links: 1
      Access: (0644/-rw-r--r--)  Uid: ( 1000/     ian)   Gid: (  513/    None)
      Access: 2011-12-02 16:59:06.394555800 +0000
      Modify: 2011-12-02 16:59:06.394555800 +0000
      Change: 2011-12-02 16:59:06.395532400 +0000
       Birth: 2011-12-02 16:58:40.921899600 +0000
      
      This means that make thinks that things are out of date when it
      shouldn't, so reinvokes itself repeatedly until the MAKE_RESTARTS
      infinite-recursion test triggers.
      
      The touchy program, like most other programs, creates files with both
      Modify and Change in the past, which is still a little odd, but is
      consistent, so doesn't break make.
      2694bb74
  11. 25 Nov, 2011 1 commit
  12. 25 Oct, 2011 1 commit
  13. 19 Oct, 2011 1 commit
  14. 17 Oct, 2011 1 commit
  15. 05 Oct, 2011 1 commit
  16. 06 Sep, 2011 1 commit
  17. 30 Aug, 2011 1 commit
  18. 28 Aug, 2011 1 commit
    • Ian Lynagh's avatar
      By default, be lax about dependencies on GHC · 12646a9c
      Ian Lynagh authored
      There are a number of things which technically depend on GHC (e.g. if
      ghc changes then Haskell files may be compiled differently, or Cabal
      packages may be configured differently). However, in practice, having
      a real dependency on GHC is just a pain: We normally don't want to
      spend time recompiling other things while we're working on the
      compiler, and even if we did, GHC will normally decide compilation
      isn't needed anyway. So by default we use order-only dependencies on
      GHC, i.e. GHC must exist, but if it's newer than other targets then
      rebuilding is not necessary.
      12646a9c
  19. 10 Aug, 2011 2 commits
  20. 05 Aug, 2011 1 commit
  21. 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
  22. 22 Jun, 2011 1 commit
  23. 12 Jun, 2011 1 commit
  24. 05 May, 2011 2 commits
  25. 29 Apr, 2011 2 commits
  26. 23 Apr, 2011 7 commits
  27. 22 Apr, 2011 2 commits
  28. 12 Apr, 2011 1 commit
    • Simon Marlow's avatar
      Change the way module initialisation is done (#3252, #4417) · a52ff761
      Simon Marlow authored
      Previously the code generator generated small code fragments labelled
      with __stginit_M for each module M, and these performed whatever
      initialisation was necessary for that module and recursively invoked
      the initialisation functions for imported modules.  This appraoch had
      drawbacks:
      
       - FFI users had to call hs_add_root() to ensure the correct
         initialisation routines were called.  This is a non-standard,
         and ugly, API.
      
       - unless we were using -split-objs, the __stginit dependencies would
         entail linking the whole transitive closure of modules imported,
         whether they were actually used or not.  In an extreme case (#4387,
         #4417), a module from GHC might be imported for use in Template
         Haskell or an annotation, and that would force the whole of GHC to
         be needlessly linked into the final executable.
      
      So now instead we do our initialisation with C functions marked with
      __attribute__((constructor)), which are automatically invoked at
      program startup time (or DSO load-time).  The C initialisers are
      emitted into the stub.c file.  This means that every time we compile
      with -prof or -hpc, we now get a stub file, but thanks to #3687 that
      is now invisible to the user.
      
      There are some refactorings in the RTS (particularly for HPC) to
      handle the fact that initialisers now get run earlier than they did
      before.
      
      The __stginit symbols are still generated, and the hs_add_root()
      function still exists (but does nothing), for backwards compatibility.
      a52ff761
  29. 11 Apr, 2011 1 commit
  30. 08 Apr, 2011 1 commit