From ede7b1d98a01cd25c05f30c215afc063bd62706b Mon Sep 17 00:00:00 2001 From: Winter Date: Mon, 30 Jan 2023 21:07:07 -0500 Subject: [PATCH] Revert "rustc: add note about libiconv dependency" This reverts commit edfbbaf28258d968de64b364d4a0868a80cdf1c2. I mistakingly believed that once 1.66.0 was used to bootstrap, we'd be able to remove libiconv from rustc's build-time dependency tree on Darwin. Sadly, this isn't the case, because src/tools/bootstrap depends on libc. Additionally, it seems that my assessment in b1834a461edf7abf4a6fb89db0ed65904a48a01c was wrong -- *any* dependency on `libc` will cause a requirement on libiconv, due to rustc unconditionally linking every library specified in `link` directives, no matter if the function is actually used. This was worked around somewhat in https://github.com/rust-lang/libc/pull/2944 by not linking libiconv if libc is only a dependency of std, but this doesn't apply when `libc` is a dependency of anything else. Maybe one day we'll just rip out libiconv from `libc` entirely (or hide it behind a feature flag), but for now, we can just keep it in `buildRustPackage`'s `buildInputs` by default. --- pkgs/development/compilers/rust/rustc.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/development/compilers/rust/rustc.nix b/pkgs/development/compilers/rust/rustc.nix index 64254d5025291f..936ca31c5d6aa6 100644 --- a/pkgs/development/compilers/rust/rustc.nix +++ b/pkgs/development/compilers/rust/rustc.nix @@ -165,7 +165,6 @@ in stdenv.mkDerivation rec { ]; buildInputs = [ openssl ] - # TODO: remove libiconv once 1.66 is used to bootstrap ++ optionals stdenv.isDarwin [ libiconv Security ] ++ optional (!withBundledLLVM) llvmShared;