about summary refs log tree commit diff
path: root/pkgs/development/haskell-modules
diff options
context:
space:
mode:
authorsternenseemann <sternenseemann@systemli.org>2023-10-02 03:27:40 +0200
committersternenseemann <sternenseemann@systemli.org>2023-10-02 03:28:10 +0200
commit4ad7a433efd93246ebf3113ac8247c4fadd0683e (patch)
tree2d4cfa5cdb5d3ddbdc10ac5b903e4cda41d44b36 /pkgs/development/haskell-modules
parent5fa51e9dbfb270a718f467ff5affb27893586f06 (diff)
haskell.packages.ghc96.tls: work around aarch64 codegen bug
Diffstat (limited to 'pkgs/development/haskell-modules')
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix8
1 files changed, 8 insertions, 0 deletions
diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix
index 5ac0a7913b84a..098a856f78e49 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-9.6.x.nix
@@ -272,4 +272,12 @@ self: super: {
 
   # The curl executable is required for withApplication tests.
   warp_3_3_28 = addTestToolDepend pkgs.curl super.warp_3_3_28;
+
+  # The NCG backend for aarch64 generates invalid jumps in some situations,
+  # the workaround on 9.6 is to revert to the LLVM backend (which is used
+  # for these sorts of situations even on 9.2 and 9.4).
+  # https://gitlab.haskell.org/ghc/ghc/-/issues/23746#note_525318
+  tls = appendConfigureFlags
+    (lib.optionals pkgs.stdenv.hostPlatform.isAarch64 [ "--ghc-option=-fllvm" ])
+    super.tls;
 }