about summary refs log tree commit diff
diff options
context:
space:
mode:
authorConnor Baker <connor.baker@tweag.io>2024-03-20 13:14:42 -0400
committerGitHub <noreply@github.com>2024-03-20 13:14:42 -0400
commitf6959c2de3bd622377faa5b4184c1cbd6fe5a9cc (patch)
treef8792efb37b8661ace0282bbfc08f59932df2730
parent99bba48f3a33c9c4f1e553740162eb5f21cbaec4 (diff)
parente871fcf859651a54d83e87d554aadf578a889503 (diff)
Merge pull request #281371 from ConnorBaker/feat/stdenvAdapters-useLibsFrom-specify-coreutils
stdenvAdapters.useLibsFrom: use targetStdenv.cc.override
-rw-r--r--pkgs/stdenv/adapters.nix14
1 files changed, 9 insertions, 5 deletions
diff --git a/pkgs/stdenv/adapters.nix b/pkgs/stdenv/adapters.nix
index 10ed96acc2097..32bcabee6d797 100644
--- a/pkgs/stdenv/adapters.nix
+++ b/pkgs/stdenv/adapters.nix
@@ -237,14 +237,18 @@ rec {
       });
     });
 
+  /* Copy the libstdc++ from the model stdenv to the target stdenv.
+   *
+   * TODO(@connorbaker):
+   * This interface provides behavior which should be revisited prior to the
+   * release of 24.05. For a more detailed explanation and discussion, see
+   * https://github.com/NixOS/nixpkgs/issues/283517. */
   useLibsFrom = modelStdenv: targetStdenv:
     let
       ccForLibs = modelStdenv.cc.cc;
-      cc = pkgs.wrapCCWith {
-        /* NOTE: cc.cc is the unwrapped compiler. Should we respect the old
-         * wrapper instead? */
-        cc = targetStdenv.cc.cc;
-
+      /* NOTE(@connorbaker):
+       * This assumes targetStdenv.cc is a cc-wrapper. */
+      cc = targetStdenv.cc.override {
         /* NOTE(originally by rrbutani):
          * Normally the `useCcForLibs`/`gccForLibs` mechanism is used to get a
          * clang based `cc` to use `libstdc++` (from gcc).