diff --git a/pkgs/development/compilers/rust/binary.nix b/pkgs/development/compilers/rust/binary.nix index 1145f4da8f66..6c3751cbb575 100644 --- a/pkgs/development/compilers/rust/binary.nix +++ b/pkgs/development/compilers/rust/binary.nix @@ -1,4 +1,5 @@ { lib, stdenv, makeWrapper, bash, curl, darwin, zlib +, autoPatchelfHook, gcc , version , src , platform @@ -31,7 +32,9 @@ rec { license = [ licenses.mit licenses.asl20 ]; }; + nativeBuildInputs = lib.optional (!stdenv.isDarwin) autoPatchelfHook; buildInputs = [ bash ] + ++ lib.optionals (!stdenv.isDarwin) [ gcc.cc.lib zlib ] ++ lib.optional stdenv.isDarwin Security; postPatch = '' @@ -42,24 +45,6 @@ rec { ./install.sh --prefix=$out \ --components=${installComponents} - ${optionalString (stdenv.isLinux && bootstrapping) ('' - patchelf \ - --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ - "$out/bin/rustc" - '' + optionalString (lib.versionAtLeast version "1.46") - # rustc bootstrap needs libz starting from 1.46 - '' - ln -s ${zlib}/lib/libz.so.1 $out/lib/libz.so.1 - ln -s ${zlib}/lib/libz.so $out/lib/libz.so - '' + '' - patchelf \ - --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ - "$out/bin/rustdoc" - patchelf \ - --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ - "$out/bin/cargo" - '')} - # Do NOT, I repeat, DO NOT use `wrapProgram` on $out/bin/rustc # (or similar) here. It causes strange effects where rustc loads # the wrong libraries in a bootstrap-build causing failures that @@ -83,8 +68,11 @@ rec { license = [ licenses.mit licenses.asl20 ]; }; - nativeBuildInputs = [ makeWrapper ]; - buildInputs = [ bash ] ++ lib.optional stdenv.isDarwin Security; + nativeBuildInputs = [ makeWrapper ] + ++ lib.optional (!stdenv.isDarwin) autoPatchelfHook; + buildInputs = [ bash ] + ++ lib.optional (!stdenv.isDarwin) gcc.cc.lib + ++ lib.optional stdenv.isDarwin Security; postPatch = '' patchShebangs . @@ -95,12 +83,6 @@ rec { ./install.sh --prefix=$out \ --components=cargo - ${optionalString (stdenv.isLinux && bootstrapping) '' - patchelf \ - --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \ - "$out/bin/cargo" - ''} - wrapProgram "$out/bin/cargo" \ --suffix PATH : "${rustc}/bin" '';