Skip to content
Snippets Groups Projects
  1. Aug 21, 2021
  2. Aug 20, 2021
  3. Aug 04, 2021
  4. May 07, 2021
  5. May 03, 2021
    • vdukhovni's avatar
      Block signals in the ticker thread · b4963d1e
      vdukhovni authored and Ben Gamari's avatar Ben Gamari committed
      This avoids surprises in the non-threaded runtime with blocked signals killing
      the process because they're only blocked in the main thread and not in the
      ticker thread.
      
      Also backport improved compile-time detection of pthread_setname_np() and/or
      b4963d1e
  6. Mar 31, 2021
  7. Mar 24, 2021
  8. Mar 17, 2021
    • Ben Gamari's avatar
      llvmGen: Accept range of LLVM versions · 84927818
      Ben Gamari authored and Marge Bot's avatar Marge Bot committed
      Previously we would support only one LLVM major version. Here we
      generalize this to accept a range, taking this range to be LLVM 10 to 11,
      as 11 is necessary for Apple M1 support. We also accept 12, as that is
      what apple ships with BigSur on the M1.
      84927818
  9. Mar 09, 2021
    • Ryan Scott's avatar
      Require GHC 8.10 as the minimum compiler for bootstrapping · 0a709dd9
      Ryan Scott authored and Marge Bot's avatar Marge Bot committed
      Now that GHC 9.0.1 is released, it is time to drop support for bootstrapping
      with GHC 8.8, as we only support building with the previous two major GHC
      releases. As an added bonus, this allows us to remove several bits of CPP that
      are either always true or no longer reachable.
      0a709dd9
  10. Mar 05, 2021
  11. Feb 28, 2021
  12. Feb 16, 2021
  13. Jan 30, 2021
  14. Jan 17, 2021
  15. Dec 17, 2020
  16. Oct 25, 2020
  17. Oct 16, 2020
  18. Oct 14, 2020
  19. Sep 17, 2020
  20. Sep 08, 2020
    • Moritz Angermann's avatar
      [macOS] improved runpath handling · 4ff93292
      Moritz Angermann authored and Marge Bot's avatar Marge Bot committed
      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
  21. Sep 05, 2020
  22. Aug 28, 2020
  23. Aug 05, 2020
    • Ben Gamari's avatar
      Refactor handling of object merging · 53ce0db5
      Ben Gamari authored and Marge Bot's avatar Marge Bot committed
      Previously to merge a set of object files we would invoke the linker as
      usual, adding -r to the command-line. However, this can result in
      non-sensical command-lines which causes lld to balk (#17962).
      
      To avoid this we introduce a new tool setting into GHC, -pgmlm, which is
      the linker which we use to merge object files.
      53ce0db5
  24. Jul 25, 2020
  25. Jul 15, 2020
  26. Jul 07, 2020
  27. Jun 25, 2020
    • Ben Gamari's avatar
      hadrian/make: Detect makeindex · 4acc2934
      Ben Gamari authored and Marge Bot's avatar Marge Bot committed
      Previously we would simply assume that makeindex was available.
      Now we correctly detect it in `configure` and respect this conclusion in
      hadrian and make.
      4acc2934
    • Andreas Klebinger's avatar
      Enable large address space optimization on windows. · 03a708ba
      Andreas Klebinger authored and Marge Bot's avatar Marge Bot committed
      Starting with Win 8.1/Server 2012 windows no longer preallocates
      page tables for reserverd memory eagerly, which prevented us from
      using this approach in the past.
      
      We also try to allocate the heap high in the memory space.
      Hopefully this makes it easier to allocate things in the low
      4GB of memory that need to be there. Like jump islands for the
      linker.
      03a708ba
  28. Jun 14, 2020
  29. May 30, 2020
    • Ben Gamari's avatar
      rts: Teach getNumProcessors to return available processors · 4413828b
      Ben Gamari authored and Marge Bot's avatar Marge Bot committed
      Previously we would report the number of physical processors, which
      can be quite wrong in a containerized setting. Now we rather return how
      many processors are in our affinity mask when possible.
      
      I also refactored the code to prefer platform-specific since this will
      report logical CPUs instead of physical (using
      `machdep.cpu.thread_count` on Darwin and `cpuset_getaffinity` on FreeBSD).
      
      Fixes #14781.
      4413828b
  30. May 29, 2020
  31. Apr 01, 2020
Loading