From 5df226638df27b44c302298f500ffad72ca38b70 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Sun, 11 May 2025 22:34:00 +0200 Subject: [PATCH] haskell.compiler.ghc94: also apply i386 adjustor patch --- .../compilers/ghc/common-make-native-bignum.nix | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pkgs/development/compilers/ghc/common-make-native-bignum.nix b/pkgs/development/compilers/ghc/common-make-native-bignum.nix index c9267b37279f..65c5e39bfada 100644 --- a/pkgs/development/compilers/ghc/common-make-native-bignum.nix +++ b/pkgs/development/compilers/ghc/common-make-native-bignum.nix @@ -364,6 +364,18 @@ stdenv.mkDerivation ( else ./Cabal-3.2-3.4-paths-fix-cycle-aarch64-darwin.patch ) + ] + # Fixes stack overrun in rts which crashes an process whenever + # freeHaskellFunPtr is called with nixpkgs' hardening flags. + # https://gitlab.haskell.org/ghc/ghc/-/issues/25485 + # https://gitlab.haskell.org/ghc/ghc/-/merge_requests/13599 + # TODO: patch doesn't apply for < 9.4, but may still be necessary? + ++ lib.optionals (lib.versionAtLeast version "9.4") [ + (fetchpatch { + name = "ghc-rts-adjustor-fix-i386-stack-overrun.patch"; + url = "https://gitlab.haskell.org/ghc/ghc/-/commit/39bb6e583d64738db51441a556d499aa93a4fc4a.patch"; + sha256 = "0w5fx413z924bi2irsy1l4xapxxhrq158b5gn6jzrbsmhvmpirs0"; + }) ]; postPatch = "patchShebangs .";