- Aug 21, 2021
-
-
Ben Gamari authored
Previously the rts's cabal file would claim that it bundled libffi, even if we are using the system's libffi. Fixes #19869. (cherry picked from commit 63184a71)
-
- Aug 20, 2021
-
-
Ben Gamari authored
(cherry picked from commit 2ce48fe9)
-
- Aug 04, 2021
-
-
(cherry picked from commit e4c25261)
-
- May 07, 2021
-
-
Previously Hadrian depended implicitly upon whatever `bash` it found in `PATH`, offerring no way for the user to override. Fix this by detecting `sh` in `configure` and passing the result to Hadrian. Fixes #19797. (cherry picked from commit bf34a310)
-
-
-
-
-
- May 03, 2021
-
-
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
-
- Mar 31, 2021
-
-
Ben Gamari authored
-
- Mar 24, 2021
-
-
Ben Gamari authored
-
- Mar 17, 2021
-
-
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.
-
- Mar 09, 2021
-
-
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.
-
- Mar 05, 2021
-
-
This enables a registerised build for the riscv64 architecture.
-
- Feb 28, 2021
-
-
Should fix failures on Windows: configure.ac:1511: error: ` ' is already registered with AC_CONFIG_FILES.
-
- Feb 16, 2021
-
-
- Jan 30, 2021
-
-
This wraps the existing GHCi wrapper script (driver/ghci/ghci.c) in a cabal file and adds the package to Hadrian.
-
-
- Jan 17, 2021
-
-
-
The native-code codepath uses dlinfo to identify memory regions owned by a loaded dynamic object, facilitating safe unload. Unfortunately, this interface is not always available. Add an autoconf check for it and introduce a safe fallback behavior. Fixes #19159.
-
- Dec 17, 2020
-
-
- Oct 25, 2020
-
-
Ben Gamari authored
Since the __atomic_* builtins are not supported until gcc 4.7. Given that this version was released in 2012 I think this is acceptable.
-
- Oct 16, 2020
-
-
Ben Gamari authored
This should have been done when the toolchain was bumped.
-
- Oct 14, 2020
-
-
Fixes #18267.
-
- Sep 17, 2020
-
-
Bumps haskeline and haddock submodules. (cherry picked from commit f218cfc9)
-
- Sep 08, 2020
-
-
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)
-
- Sep 05, 2020
- Aug 28, 2020
-
-
- Aug 05, 2020
-
-
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.
-
- Jul 25, 2020
-
-
Fixes 18266
-
- Jul 15, 2020
-
-
- Jul 07, 2020
-
- Jun 25, 2020
-
-
Previously we would simply assume that makeindex was available. Now we correctly detect it in `configure` and respect this conclusion in hadrian and make.
-
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.
-
- Jun 14, 2020
-
-
The initial version was rewritten by Tamar Christina. It was rewritten in large parts by Andreas Klebinger. Co-authored-by:
Andreas Klebinger <klebinger.andreas@gmx.at>
-
- May 30, 2020
-
-
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.
-
- May 29, 2020
-
-
- Apr 01, 2020
-
-
Metric Decrease: T13035 T1969
-