about summary refs log tree commit diff
path: root/pkgs/development/haskell-modules/generic-builder.nix
diff options
context:
space:
mode:
authorsternenseemann <sternenseemann@systemli.org>2023-01-04 15:22:29 +0100
committersternenseemann <sternenseemann@systemli.org>2023-01-04 15:50:28 +0100
commit066591a35960ddb43652935423ceaacf90536ce8 (patch)
tree7185e3970ca91f7320ae65801c9096ca373a33bb /pkgs/development/haskell-modules/generic-builder.nix
parentff2d74b3294f5c5488ddd1aad2d05fbeb045a7af (diff)
downloadnixlib-066591a35960ddb43652935423ceaacf90536ce8.tar
nixlib-066591a35960ddb43652935423ceaacf90536ce8.tar.gz
nixlib-066591a35960ddb43652935423ceaacf90536ce8.tar.bz2
nixlib-066591a35960ddb43652935423ceaacf90536ce8.tar.lz
nixlib-066591a35960ddb43652935423ceaacf90536ce8.tar.xz
nixlib-066591a35960ddb43652935423ceaacf90536ce8.tar.zst
nixlib-066591a35960ddb43652935423ceaacf90536ce8.zip
haskellPackages.mkDerivation: disable stripping in ghcjs cross set
This line may look odd, but we should not set ghc.isGhcjs if we are
using the JavaScript backend. It is a normal cross backend and no
special code is required to make it work, i.e. everything will be named
as it would be normally. Additionally, passing --ghcjs to Cabal will
make it do the wrong thing.

We need to, of course, stop strip from being thrown at the JS objects in
both cases.
Diffstat (limited to 'pkgs/development/haskell-modules/generic-builder.nix')
-rw-r--r--pkgs/development/haskell-modules/generic-builder.nix7
1 files changed, 6 insertions, 1 deletions
diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix
index a723e56c9e17..9bb64bd90298 100644
--- a/pkgs/development/haskell-modules/generic-builder.nix
+++ b/pkgs/development/haskell-modules/generic-builder.nix
@@ -11,7 +11,12 @@ let
 in
 
 { pname
-, dontStrip ? (ghc.isGhcjs or false)
+# Note that ghc.isGhcjs != stdenv.hostPlatform.isGhcjs.
+# ghc.isGhcjs implies that we are using ghcjs, a project separate from GHC.
+# (mere) stdenv.hostPlatform.isGhcjs means that we are using GHC's JavaScript
+# backend. The latter is a normal cross compilation backend and needs little
+# special accomodation.
+, dontStrip ? (ghc.isGhcjs or false || stdenv.hostPlatform.isGhcjs)
 , version, revision ? null
 , sha256 ? null
 , src ? fetchurl { url = "mirror://hackage/${pname}-${version}.tar.gz"; inherit sha256; }