From 18211adceb903a2efc9cf99e36c87718ba3846c3 Mon Sep 17 00:00:00 2001 From: Randy Eckenrode Date: Mon, 23 Sep 2024 22:06:54 -0400 Subject: [PATCH] llvmPackages.libcxx: use a bootstrap stdenv on Darwin Using a bootstrap stdenv is needed to avoid infinite recursions that occur due to inputs propagated by SDK that depend on libc++. --- pkgs/development/compilers/llvm/common/default.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkgs/development/compilers/llvm/common/default.nix b/pkgs/development/compilers/llvm/common/default.nix index 35525e379f2b..414313422064 100644 --- a/pkgs/development/compilers/llvm/common/default.nix +++ b/pkgs/development/compilers/llvm/common/default.nix @@ -1120,7 +1120,11 @@ let ) # https://github.com/llvm/llvm-project/issues/64226 (metadata.getVersionFile "libcxx/0001-darwin-10.12-mbstate_t-fix.patch"); - stdenv = overrideCC stdenv buildLlvmTools.clangWithLibcAndBasicRt; + stdenv = + if stdenv.hostPlatform.isDarwin then + overrideCC darwin.bootstrapStdenv buildLlvmTools.clangWithLibcAndBasicRt + else + overrideCC stdenv buildLlvmTools.clangWithLibcAndBasicRt; } // lib.optionalAttrs (lib.versionOlder metadata.release_version "14") { # TODO: remove this, causes LLVM 13 packages rebuild.