diff options
-rw-r--r-- | pkgs/development/interpreters/python/cpython/default.nix | 6 | ||||
-rw-r--r-- | pkgs/development/interpreters/python/default.nix | 1 |
2 files changed, 7 insertions, 0 deletions
diff --git a/pkgs/development/interpreters/python/cpython/default.nix b/pkgs/development/interpreters/python/cpython/default.nix index e0b941e009d..4ee67a452fe 100644 --- a/pkgs/development/interpreters/python/cpython/default.nix +++ b/pkgs/development/interpreters/python/cpython/default.nix @@ -41,6 +41,8 @@ , enableOptimizations ? false # enableNoSemanticInterposition is a subset of the enableOptimizations flag that doesn't harm reproducibility. , enableNoSemanticInterposition ? true +# enableLTO is a subset of the enableOptimizations flag that doesn't harm reproducibility. +, enableLTO ? true , reproducibleBuild ? true , pythonAttr ? "python${sourceVersion.major}${sourceVersion.minor}" }: @@ -102,6 +104,8 @@ let ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ buildPackages.stdenv.cc pythonForBuild + ] ++ optionals (stdenv.cc.isClang && enableLTO) [ + stdenv.cc.cc.libllvm.out ]; buildInputs = filter (p: p != null) ([ @@ -280,6 +284,8 @@ in with passthru; stdenv.mkDerivation { "--with-system-ffi" ] ++ optionals enableOptimizations [ "--enable-optimizations" + ] ++ optionals enableLTO [ + "--with-lto" ] ++ optionals (pythonOlder "3.7") [ # This is unconditionally true starting in CPython 3.7. "--with-threads" diff --git a/pkgs/development/interpreters/python/default.nix b/pkgs/development/interpreters/python/default.nix index 176f8db4bff..be0d6ce1e43 100644 --- a/pkgs/development/interpreters/python/default.nix +++ b/pkgs/development/interpreters/python/default.nix @@ -225,6 +225,7 @@ in { stripBytecode = true; includeSiteCustomize = false; enableOptimizations = false; + enableLTO = false; mimetypesSupport = false; } // sources.python39)).overrideAttrs(old: { pname = "python3-minimal"; |