about summary refs log tree commit diff
path: root/pkgs/development/haskell-modules/make-package-set.nix
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2023-11-10 15:18:19 +0100
committerAlyssa Ross <hi@alyssa.is>2023-11-10 15:18:19 +0100
commitafabc4a15d5ba6631bd4d865b8be37fc67d52809 (patch)
tree2342d9e8bd8b4cfbfee2b9a98c088df9f1c809ca /pkgs/development/haskell-modules/make-package-set.nix
parent9a0c85ffc5aedc46b4d81f3b9fc22d7f488e3ff9 (diff)
parent714e527a726c9613fca8e13586a1b19198d68d9b (diff)
downloadnixlib-afabc4a15d5ba6631bd4d865b8be37fc67d52809.tar
nixlib-afabc4a15d5ba6631bd4d865b8be37fc67d52809.tar.gz
nixlib-afabc4a15d5ba6631bd4d865b8be37fc67d52809.tar.bz2
nixlib-afabc4a15d5ba6631bd4d865b8be37fc67d52809.tar.lz
nixlib-afabc4a15d5ba6631bd4d865b8be37fc67d52809.tar.xz
nixlib-afabc4a15d5ba6631bd4d865b8be37fc67d52809.tar.zst
nixlib-afabc4a15d5ba6631bd4d865b8be37fc67d52809.zip
Merge remote-tracking branch 'origin/master' into HEAD
Conflicts:
	pkgs/development/libraries/SDL2/default.nix
Diffstat (limited to 'pkgs/development/haskell-modules/make-package-set.nix')
-rw-r--r--pkgs/development/haskell-modules/make-package-set.nix14
1 files changed, 14 insertions, 0 deletions
diff --git a/pkgs/development/haskell-modules/make-package-set.nix b/pkgs/development/haskell-modules/make-package-set.nix
index 753945ea6fc1..c39c934bed64 100644
--- a/pkgs/development/haskell-modules/make-package-set.nix
+++ b/pkgs/development/haskell-modules/make-package-set.nix
@@ -625,4 +625,18 @@ in package-set { inherit pkgs lib callPackage; } self // {
         else pkg
       ) { };
 
+    /*
+      Modify given Haskell package to force GHC to employ the LLVM
+      codegen backend when compiling. Useful when working around bugs
+      in a native codegen backend GHC defaults to.
+
+      Example:
+        forceLlvmCodegenBackend tls
+
+      Type: drv -> drv
+    */
+    forceLlvmCodegenBackend = haskellLib.overrideCabal (drv: {
+      configureFlags = drv.configureFlags or [ ] ++ [ "--ghc-option=-fllvm" ];
+      buildTools = drv.buildTools or [ ] ++ [ self.llvmPackages.llvm ];
+    });
   }