summary refs log tree commit diff
path: root/pkgs/development/compilers/ghc
diff options
context:
space:
mode:
authorNiklas Hambüchen <mail@nh2.me>2021-07-04 21:44:23 +0000
committerNiklas Hambüchen <mail@nh2.me>2021-07-10 02:49:42 +0200
commitf154c3addec162c89b8c256da17129c1a7a7d7fe (patch)
treef0c6418f2aba4e4543699c4b4cb113923d8bd2e3 /pkgs/development/compilers/ghc
parentc866b8a13b881fe2082fb05998173a0408b9177f (diff)
downloadnixpkgs-f154c3addec162c89b8c256da17129c1a7a7d7fe.tar
nixpkgs-f154c3addec162c89b8c256da17129c1a7a7d7fe.tar.gz
nixpkgs-f154c3addec162c89b8c256da17129c1a7a7d7fe.tar.bz2
nixpkgs-f154c3addec162c89b8c256da17129c1a7a7d7fe.tar.lz
nixpkgs-f154c3addec162c89b8c256da17129c1a7a7d7fe.tar.xz
nixpkgs-f154c3addec162c89b8c256da17129c1a7a7d7fe.tar.zst
nixpkgs-f154c3addec162c89b8c256da17129c1a7a7d7fe.zip
haskell.compiler.ghc865Binary: Disable "pie" hardening. See #129247
While this does not fix `ghc865Binary` with musl, it at least prevents
that the other, newer errors are shadowed (see #129247).
Diffstat (limited to 'pkgs/development/compilers/ghc')
-rw-r--r--pkgs/development/compilers/ghc/8.6.5-binary.nix9
1 files changed, 9 insertions, 0 deletions
diff --git a/pkgs/development/compilers/ghc/8.6.5-binary.nix b/pkgs/development/compilers/ghc/8.6.5-binary.nix
index 8a0994b8b6a..42b60ec3231 100644
--- a/pkgs/development/compilers/ghc/8.6.5-binary.nix
+++ b/pkgs/development/compilers/ghc/8.6.5-binary.nix
@@ -152,6 +152,15 @@ stdenv.mkDerivation rec {
     done
   '';
 
+  # In nixpkgs, musl based builds currently enable `pie` hardening by default
+  # (see `defaultHardeningFlags` in `make-derivation.nix`).
+  # But GHC cannot currently produce outputs that are ready for `-pie` linking.
+  # Thus, disable `pie` hardening, otherwise `recompile with -fPIE` errors appear.
+  # See:
+  # * https://github.com/NixOS/nixpkgs/issues/129247
+  # * https://gitlab.haskell.org/ghc/ghc/-/issues/19580
+  hardeningDisable = lib.optional stdenv.targetPlatform.isMusl "pie";
+
   doInstallCheck = true;
   installCheckPhase = ''
     unset ${libEnvVar}