1. 22 Nov, 2020 5 commits
  2. 21 Nov, 2020 1 commit
  3. 03 Nov, 2020 3 commits
    • Sylvain Henry's avatar
      3486ebe6
    • Ben Gamari's avatar
      hadrian: Don't capture RunTest output · 1370eda7
      Ben Gamari authored
      There are a few reasons why capturing the output of the RunTest builder
      is undesirable:
      
       * there is a large amount of output which then gets unnecessarily
         duplicated by Hadrian if the builder fails
      
       * the output may contain codepoints which are unrepresentable in the
         current codepage on Windows, causing Hadrian to crash
      
       * capturing the output causes the testsuite driver to disable
         its colorisation logic, making the output less legible.
      1370eda7
    • GHC GitLab CI's avatar
      testsuite: Add --top flag to driver · 4ce2f7d6
      GHC GitLab CI authored
      This allows us to make `config.top` a proper Path. Previously it was a
      str, which caused the Ghostscript detection logic to break.
      4ce2f7d6
  4. 29 Oct, 2020 1 commit
  5. 27 Oct, 2020 2 commits
  6. 25 Oct, 2020 2 commits
  7. 18 Oct, 2020 1 commit
    • Sylvain Henry's avatar
      Don't get host RTS ways via settings (#18651) · a91dcb66
      Sylvain Henry authored
      To correctly perform a linking hack for Windows we need to link with the
      RTS GHC is currently using. We used to query the RTS ways via the
      "settings" file but it is fragile (#18651). The hack hasn't been fixed
      to take into account all the ways (Tracing) and it makes linking of GHC
      with another RTS more difficult (we need to link with another RTS and to
      regenerate the settings file).
      
      So this patch uses the ways reported by the RTS itself
      (GHC.Platform.Ways.hostWays) instead of the "settings" file.
      a91dcb66
  8. 14 Oct, 2020 1 commit
  9. 10 Oct, 2020 1 commit
  10. 09 Oct, 2020 1 commit
  11. 07 Oct, 2020 1 commit
  12. 01 Oct, 2020 1 commit
  13. 30 Sep, 2020 1 commit
  14. 24 Sep, 2020 1 commit
  15. 21 Sep, 2020 1 commit
  16. 19 Sep, 2020 4 commits
  17. 16 Sep, 2020 1 commit
  18. 12 Sep, 2020 2 commits
  19. 11 Sep, 2020 1 commit
  20. 10 Sep, 2020 1 commit
  21. 09 Sep, 2020 2 commits
    • Ben Gamari's avatar
      hadrian: Fix leakage of GHC in PATH into build · 4ce9fe88
      Ben Gamari authored
      Previously hadrian would use GHC on PATH when configuring packages (or
      fail if there is no such GHC). Fix this. Unfortunately this runs into
      another bug in Cabal which we workaround.
      4ce9fe88
    • Ben Gamari's avatar
      gitlab-ci: Bump Docker images · 5aae5b32
      Ben Gamari authored
      We now generate our Docker images via Dhall definitions, as described in
      ci-images!52. Additionally, we are far more careful about where tools
      come from, using the ALEX, HAPPY, HSCOLOR, and GHC environment variables
      (set in the Dockerfiles) to find bootstrapping tools.
      5aae5b32
  22. 08 Sep, 2020 1 commit
    • Moritz Angermann's avatar
      [macOS] improved runpath handling · 4ff93292
      Moritz Angermann authored
      In b592bd98 we started using
      -dead_strip_dylib on macOS when lining dynamic libraries and binaries.
      The underlying reason being the Load Command Size Limit in macOS
      Sierra (10.14) and later.
      
      GHC will produce @rpath/libHS... dependency entries together with a
      corresponding RPATH entry pointing to the location of the libHS...
      library. Thus for every library we produce two Load Commands.  One to
      specify the dependent library, and one with the path where to find it.
      This makes relocating libraries and binaries easier, as we just need to
      update the RPATH entry with the install_name_tool. The dynamic linker
      will then subsitute each @rpath with the RPATH entries it finds in the
      libraries load commands or the environement, when looking up @rpath
      relative libraries.
      
      -dead_strip_dylibs intructs the linker to drop unused libraries. This in
      turn help us reduce the number of referenced libraries, and subsequently
      the size of the load commands.  This however does not remove the RPATH
      entries.  Subsequently we can end up (in extreme cases) with only a
      single @rpath/libHS... entry, but 100s or more RPATH entries in the Load
      Commands.
      
      This patch rectifies this (slighly unorthodox) by passing *no* -rpath
      arguments to the linker at link time, but -headerpad 8000.  The
      headerpad argument is in hexadecimal and the maxium 32k of the load
      command size.  This tells the linker to pad the load command section
      enough for us to inject the RPATHs later.  We then proceed to link the
      library or binary with -dead_strip_dylibs, and *after* the linking
      inspect the library to find the left over (non-dead-stripped)
      dependencies (using otool).  We find the corresponding RPATHs for each
      @rpath relative dependency, and inject them into the library or binary
      using the install_name_tool.  Thus achieving a deadstripped dylib (and
      rpaths) build product.
      
      We can not do this in GHC, without starting to reimplement a dynamic
      linker as we do not know which symbols and subsequently libraries are
      necessary.
      
      Commissioned-by: Mercury Technologies, Inc. (mercury.com)
      4ff93292
  23. 05 Sep, 2020 2 commits
  24. 01 Sep, 2020 3 commits