mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-23 23:43:30 +00:00
rustfmt: fix on darwin
Reading this [rust-issue] it seems that we have to link against
rustc_driver. The [clippy.nix] expression already does something similar
Of the 4 executables found in the result of building rustfmt only
rustfmt and git-rustfmt needed to be linked. The other worked without
linking to rustc_driver.
[rust-issue]: https://github.com/rust-lang/rust/pull/105609
[clippy.nix]: c8cf570dae/pkgs/development/compilers/rust/clippy.nix (L27-L36)
This commit is contained in:
parent
d6259e6e5d
commit
dd584d82f1
@ -15,6 +15,17 @@ rustPlatform.buildRustPackage rec {
|
||||
rustc.llvm
|
||||
] ++ lib.optional stdenv.isDarwin Security;
|
||||
|
||||
# rustfmt uses the rustc_driver and std private libraries, and Rust's build process forces them to have
|
||||
# an install name of `@rpath/...` [0] [1] instead of the standard on macOS, which is an absolute path
|
||||
# to itself.
|
||||
#
|
||||
# [0]: https://github.com/rust-lang/rust/blob/f77f4d55bdf9d8955d3292f709bd9830c2fdeca5/src/bootstrap/builder.rs#L1543
|
||||
# [1]: https://github.com/rust-lang/rust/blob/f77f4d55bdf9d8955d3292f709bd9830c2fdeca5/compiler/rustc_codegen_ssa/src/back/linker.rs#L323-L331
|
||||
preFixup = lib.optionalString stdenv.isDarwin ''
|
||||
install_name_tool -add_rpath "${rustPlatform.rust.rustc}/lib" "$out/bin/rustfmt"
|
||||
install_name_tool -add_rpath "${rustPlatform.rust.rustc}/lib" "$out/bin/git-rustfmt"
|
||||
'';
|
||||
|
||||
# As of 1.0.0 and rustc 1.30 rustfmt requires a nightly compiler
|
||||
RUSTC_BOOTSTRAP = 1;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user