From 77be50b9bdd061e4587c0b8de4b3d8454c77d114 Mon Sep 17 00:00:00 2001 From: Arnout Engelen Date: Tue, 20 Jan 2026 12:44:04 +0100 Subject: [PATCH] ghc: enable object determinism by default This is particularly relevant for us because we include objects in haskell derivation outputs, and this fixes reproducibility for a significant number of those. Towards #151347 --- pkgs/development/haskell-modules/generic-builder.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix index 5cebe4aec5d0..1877244aa1a1 100644 --- a/pkgs/development/haskell-modules/generic-builder.nix +++ b/pkgs/development/haskell-modules/generic-builder.nix @@ -157,6 +157,7 @@ in coreSetup ? false, # Use only core packages to build Setup.hs. useCpphs ? false, hardeningDisable ? null, + enableObjectDeterminism ? lib.versionAtLeast ghc.version "9.12", enableSeparateBinOutput ? false, enableSeparateDataOutput ? false, enableSeparateDocOutput ? doHaddock, @@ -355,6 +356,9 @@ let (enableFeature (!dontStrip) "library-stripping") (enableFeature (!dontStrip) "executable-stripping") ] + ++ optionals enableObjectDeterminism [ + "--ghc-option=-fobject-determinism" + ] ++ optionals isCross ( [ "--configure-option=--host=${stdenv.hostPlatform.config}"