Commit Graph

509 Commits

Author SHA1 Message Date
figsoda
4cb59fe2e3 rustc: remove unused inputs 2023-03-29 08:00:08 +10:00
figsoda
45b1d4d292 rustc: 1.68.1 -> 1.68.2
Diff: https://github.com/rust-lang/rust/compare/1.68.1...1.68.2

Changelog: https://blog.rust-lang.org/2023/03/28/Rust-1.68.2.html
2023-03-29 08:00:08 +10:00
figsoda
201d4b7c5c rustPlatform.buildRustPackage: make auditable the default 2023-03-26 22:47:06 -04:00
Yureka
91c36201aa rustfmt: fix build for 1.68 2023-03-27 08:08:40 +10:00
Raito Bezarius
370040c2f1 rustc: 1.68.0 -> 1.68.1 2023-03-27 08:08:40 +10:00
Raito Bezarius
20e24e42d4 rustc: 1.67.1 -> 1.68.0 2023-03-27 08:08:40 +10:00
Alyssa Ross
470e6130b3
rust: fix overriding rust flags on musl
If RUSTFLAGS is set in the environment, Cargo will ignore rustflags
settings in its TOML configuration.  So setting RUSTFLAGS=-g (like
separateDebugInfo does) to generate debug info breaks
dynamically-linked Rust packages on musl.  This breakage is visible
for any packages that call into C dynamic libraries.  If the binary is
linked directly to a C dynamic library, it will fail to build, and if
it depends on a Rust library which links a C dynamic library, it will
segfault at runtime when it tries to call a function from the C
library.  I noticed this because pkgsMusl.crosvm is broken for this
reason, since it sets separateDebugInfo = true.

It shouldn't be possible to end up with broken binaries just by using
RUSTFLAGS to do something innocuous like enable debug info, so I think
that, even though we liked the approach of modiyfing .cargo/config
better at the time, it's become clear that it's too brittle, and we
should bite the bullet and patch the compiler instead when targetting
musl.  It does not appear to be necessary to modify the compiler at
all when cross-compiling /from/ dynamically-linked Musl to another
target, so I'm only checking whether the target system is
dynamically-linked Musl when deciding whether to make the modification
to the compiler.

This reverts commit c2eaaae50d
("cargoSetupHook: pass host config flags"), and implements the
compiler patching approach instead.
2023-03-16 02:29:46 +00:00
figsoda
4a3699c08b cargo-auditable: 0.6.0 -> 0.6.1
Diff: https://github.com/rust-secure-code/cargo-auditable/compare/v0.6.0...v0.6.1

Changelog: https://github.com/rust-secure-code/cargo-auditable/blob/v0.6.1/cargo-auditable/CHANGELOG.md
2023-03-06 21:27:01 -05:00
Weijia Wang
39a2b0b3bf rust: remove aarch64-linux workaround
This commit reverts #209113, since aarch64-linux now uses GCC 12 by default.
2023-03-01 18:42:07 +02:00
Winter
d5dc3d17f3 rustc: re-enable parallel building
We previously disabled this based on a now-closed issue from 2015 [0].
I think enough time has passed that we can give it a shot again, given
that the in the worst case scenario we revert, and in the best case
scenario we get a performance boost.

[0]: https://github.com/rust-lang/rust/issues/30181
2023-02-26 09:09:35 +10:00
github-actions[bot]
507feca606
Merge master into staging-next 2023-02-20 12:01:32 +00:00
Winter
f08437edcb clippy: add rust team to maintainers
Missed this in 1e814042af.
2023-02-20 01:19:56 -05:00
Winter
fd5fa383fe clippy: drop rustc from buildInputs
This may have been required when the package was originally added [0],
but it builds and runs just fine without it now.

[0]: 682e6fafa4
2023-02-20 01:19:56 -05:00
Winter
759bd7b26f clippy: fix on darwin
As of Rust 1.67.0, the cargo-clippy binary now relies on the rustc_private
libraries [0], so let's do the RPATH fixup to it too.

I've also added a comment to explain the RPATH situation, as it took me
a bit to figure out.

[0]: https://github.com/rust-lang/rust-clippy/pull/9541
2023-02-20 01:19:56 -05:00
Sandro Jäckel
c90dcc7327 rustc: add ripgrep and wezterm to passthru.tests
ripgrep is a very popular grep replacement (similar to fd and find)
and wezterm is a popular terminal emulator which has a big codebase with
lots of features tested (it also broke in the past multiple times on
rustc upgrades.).
2023-02-20 01:16:58 -05:00
figsoda
5bc96030b0 rustc: 1.67.0 -> 1.67.1
Diff: https://github.com/rust-lang/rust/compare/1.67.0...1.67.1

Changelog: https://blog.rust-lang.org/2023/02/09/Rust-1.67.1.html
2023-02-10 06:55:18 +10:00
Winter
6056eaaa8b rustc: apply patch to fix delay_span_bug ICE
Rust 1.67.0 introduced a regression that caused an ICE when building Vector.

https://hydra.nixos.org/build/207931877
https://github.com/rust-lang/rust/issues/107691
https://github.com/rust-lang/rust/pull/107688
2023-02-07 23:36:18 -05:00
Vladimír Čunát
52bef35053
Merge #213694: Revert "rustc: add note about libiconv dependency"
...into staging-next
2023-02-05 15:37:02 +01:00
figsoda
88a42ba309 rustc: apply patch to fix thin archive reading 2023-02-02 07:02:02 +10:00
linsui
9bc4f34034 cargo: move cert info to fetch-cargo-tarball
As proposed in https://github.com/NixOS/nixpkgs/pull/82496, we should only set the related env vars for the fetcher instead of breaking the function of cargo itself.
2023-02-01 06:53:43 +10:00
github-actions[bot]
6527aa6d68
Merge staging-next into staging 2023-01-31 12:01:45 +00:00
Vladimír Čunát
e4957a85c9
Merge #211923: staging-next 2023-01-21 2023-01-31 09:42:28 +01:00
Winter
1e814042af rustc, cargo: add rust team to maintainers 2023-01-31 18:10:08 +10:00
Winter
ede7b1d98a Revert "rustc: add note about libiconv dependency"
This reverts commit edfbbaf282.

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 b1834a461e
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.
2023-01-30 21:13:05 -05:00
figsoda
63f869f5ff rustc: 1.66.1 -> 1.67.0 2023-01-31 11:04:24 +10:00
Zhaofeng Li
d450afc911 cargo-auditable-cargo-wrapper: Use writeShellScriptBin instead of writeShellApplication
This is to prevent pulling in GHC for such a simple wrapper script.
2023-01-19 13:50:01 +10:00
figsoda
b9259df616 rustPlatform.buildRustPackage: fix cross compiling auditable packages 2023-01-12 12:22:59 -05:00
Rick van Schijndel
e091693f13 cargo: fix cross-compilation by adding missing zlib dependency
Previously it was failing with:

   Compiling cargo v0.67.1 (/build/rustc-1.66.1-src/src/tools/cargo)
error: linking with `/nix/store/gcc-wrapper-11.3.0/bin/cc` failed: exit status: 1
  |
  = note: /nix/store/binutils-2.39/bin/ld: skipping incompatible /nix/store/zlib-aarch64-unknown-linux-gnu-1.2.13/lib/libz.so when searching for -lz
          /nix/store/binutils-2.39/bin/ld: cannot find -lz: No such file or directory
          /nix/store/binutils-2.39/bin/ld: skipping incompatible /nix/store/zlib-aarch64-unknown-linux-gnu-1.2.13/lib/libz.so when searching for -lz
          collect2: error: ld returned 1 exit status
2023-01-11 21:06:46 +01:00
Winter
21dbce8f83 rustc: 1.66.0 -> 1.66.1
https://github.com/rust-lang/rust/blob/stable/RELEASES.md#version-1661-2023-01-10

Fixes CVE-2022-46176.
2023-01-10 20:10:18 -05:00
Winter
8442601c64 rust: fix on aarch64-linux by using GCC 11 and passing -lgcc
This change switches to using GCC 11 by default on aarch64-linux, as well as passing `-lgcc` to the linker, per #201485.

See #201254 and #208412 for wider context on the issue.
2023-01-04 18:15:20 -05:00
Atemu
3eec3c8fed buildRustPackage: remove git from nativeBuildInputs
Having git in nativeBuildInputs causes thousands of rebuilds when git is touched
because every derivation that somehow transiently depends on a rust package will
change. See https://github.com/NixOS/nixpkgs/pull/205682 for instance.

AFAICT git is unused. Only the fetcher needs git which it has already.

Fixes https://github.com/NixOS/nixpkgs/issues/205804
2022-12-27 18:37:21 +10:00
figsoda
ca370da6d3
Merge pull request #206270 from figsoda/rustc
rustc: 1.65.0 -> 1.66.0
2022-12-23 18:09:56 -05:00
Winter
edfbbaf282 rustc: add note about libiconv dependency 2022-12-23 13:56:08 -05:00
Winter
b1834a461e Revert "rustc: propagate libiconv on darwin"
This reverts commit b6fc00b8f4.

Rust 1.66.0 contains a fix for libiconv being linked unconditionally on macOS, but this only applies to packages that don't depend on older versions of `libc`.

For now, let's go back to including libiconv in `buildInputs` by default for packages that use `buildRustPackage`. As packages bump their `libc` versions, we can eventually stop including it by default, and manually add it where needed.
2022-12-23 13:55:46 -05:00
github-actions[bot]
392cc9b8fe
Merge staging-next into staging 2022-12-17 12:01:41 +00:00
Jörg Thalheim
b0213fb143
Merge pull request #194388 from tomhoule/make-rust-platform/import-cargo-lock-cargo-argument
makeRustPlatform: inherit cargo in import-cargo-lock
2022-12-17 08:44:43 +00:00
figsoda
1ffbdda604 rustc: 1.65.0 -> 1.66.0 2022-12-15 11:26:42 -05:00
figsoda
0e5137f267 rustPlatform.buildRustPackage: make it not auditable by default 2022-12-05 18:46:00 -05:00
figsoda
8a041c63c0 rustPlatform.buildRustPackage: build auditable binaries 2022-12-05 16:18:17 -05:00
Martin Weinelt
fe8eef1ae4 Merge remote-tracking branch 'origin/master' into staging-next 2022-12-04 22:06:42 +01:00
figsoda
d3eb606296 rustPlatform.buildRustPackage: add useNextest option to check with cargo-nextest 2022-11-28 17:00:17 -05:00
github-actions[bot]
e31b8a36d7
Merge staging-next into staging 2022-11-23 00:02:46 +00:00
figsoda
82fe76d1cd carnix,cratesIO: remove 2022-11-22 14:10:25 -05:00
Theodore Ni
eea038cc8f rustc: 1.64.0 -> 1.65.0
https://github.com/rust-lang/rust/releases/tag/1.65.0
2022-11-15 06:47:17 +10:00
github-actions[bot]
71d2c63882
Merge staging-next into staging 2022-11-02 12:02:01 +00:00
github-actions[bot]
4b05cc6f66
Merge master into staging-next 2022-11-02 12:01:31 +00:00
Georges Dubus
2c039bba78 rustc: removing madjar as maintainer 2022-11-02 10:53:55 +01:00
Yureka
7852c61b6e cargo: no longer broken on musl 2022-10-30 18:55:47 +01:00
github-actions[bot]
d86d8a1a3d
Merge staging-next into staging 2022-10-20 00:05:50 +00:00
Stéphan Kochen
da85286b28 rustc: don't strip bootstrap on darwin 2022-10-20 09:02:51 +10:00
Alyssa Ross
f989817c8d rustc: add build stdenv.cc dependency
This is required when cross-compiling, as otherwise the build will
fail due to the missing cc program.
2022-10-16 19:09:09 +02:00
Alyssa Ross
ada5320ea3 rustc: add missing xz dependency
The "bootstrap" and "installer" crates depend on lzma-sys, which will
build its own version of xz if it can't find the liblzma.pc through
pkg-config.  Even though it's used as a library, xz here is a native
build input, as it is used by the build system rather than the end
product.
2022-10-16 19:09:09 +02:00
Vladimír Čunát
6565abc264
Merge branch 'master' into staging-next 2022-10-08 10:20:07 +02:00
Alex Martens
bac7ee3208 rustc: fix build for no_std targets 2022-10-07 07:35:29 -07:00
Tom Houlé
a37017ffd6 makeRustPlatform: inherit cargo in import-cargo-lock
The main purpose of `makeRustPlatform` is to enable users to override
the `rustc` and `cargo` versions used by the `rustPlatform` derivations.

In all attributes of the result of `makeRustPlatform`, `rustc` and/or
`cargo` are overriden, except in `importCargoLock`. I think this is an
oversight / bug, and passing the received cargo derivation is the right
behaviour.

If `importCargoLock` always using the global cargo package even in
`makeRustPlatform` is the intended behaviour, I think it should be
documented at least in a comment.
2022-10-04 12:09:52 +02:00
zowoq
0be05bd970 rustc: fix building emulated x86_64-darwin with jemalloc on aarch64-darwin
Co-authored-by: Randy Eckenrode <randy@largeandhighquality.com>
Co-authored-by: Uri Baghin <uri@canva.com>
Co-authored-by: Winter <winter@winter.cafe>
2022-09-30 12:33:18 +10:00
zowoq
164865d98e Revert "Revert "rustc: build with jemalloc""
This reverts commit 539762709b.

the x86_64-darwin on aarch64-darwin emulation issue was fixed by setting JEMALLOC_SYS_WITH_LG_VADDR
2022-09-30 12:33:18 +10:00
Vladimír Čunát
292756e9ff
Merge #190093: rustc: propagate libiconv on darwin
...into staging
2022-09-28 09:45:11 +02:00
zowoq
8f7b253440 rustc: 1.63.0 -> 1.64.0
https://github.com/rust-lang/rust/releases/tag/1.64.0
2022-09-23 21:30:06 +00:00
zowoq
539762709b Revert "rustc: build with jemalloc"
This reverts commit 2a699029f4.

hopefully this fixes building x86_64-darwin under emulation on aarch64-darwin
2022-09-22 07:11:33 -04:00
Guillaume Girol
7794eb89c8 rls: remove
will be removed upstream in next rust release: https://blog.rust-lang.org/2022/07/01/RLS-deprecation.html
2022-09-07 12:00:00 +00:00
Winter
b6fc00b8f4 rustc: propagate libiconv on darwin
Rust binaries are unconditionally linked to libiconv on Darwin (see https://github.com/rust-lang/libc/issues/2870). We already add it as a dependency in `buildRustPackage`, so let's go a step further and propagate it.
2022-09-06 23:17:56 -04:00
zowoq
45ad335d5d cargo: inherit passthru.tests from rustc 2022-08-29 08:12:23 +10:00
zowoq
9c26b06a5d rustc: add passthru.tests
we expect these to be built as part of rust version bumps
2022-08-29 08:12:23 +10:00
Jörg Thalheim
f08b424f73
Merge pull request #186443 from yu-re-ka/feature/rustc-musl2
fix pkgsMusl.rustc
2022-08-13 16:39:56 +01:00
Yureka
acf9dd6238 cargo: add broken flag for musl
A build script crashes:
> cannot produce dylib for `rustc_driver v0.0.0 (/build/rustc-1.63.0-src/compiler/rustc_driver)` as the target `x86_64-unknown-linux-musl` does not support these crate types
2022-08-13 15:23:26 +02:00
Yureka
202524ddf7 rustc: remove broken flag for musl
It builds!
2022-08-13 15:23:06 +02:00
Yureka
0a9c3640d3 rustc: set crt-static flag
The crt-static option selects if the C runtime is linked dynamically or
statically into the resulting binaries.

There is a default value of this setting for each platform, but it is
not always what we want. For example, musl targets are assumed to always
have the C runtime linked statically, but we support both.

In practise, this fixes an error in the pkgsMusl.rustc build:
> cannot produce dylib for `rustc_driver v0.0.0 (/build/rustc-1.63.0-src/compiler/rustc_driver)` as the target `x86_64-unknown-linux-musl` does not support these crate types
2022-08-13 15:19:22 +02:00
Yureka
fb7811bf03 rustc: use autoPatchelfHook for bootstrap binaries
This is both simpler and works in more cases, e.g. for the bootstrap binaries
linked against musl libc.
2022-08-13 15:17:24 +02:00
Alyssa Ross
59dd915c11 rustc: 1.62.1 -> 1.63.0 2022-08-12 07:54:19 +00:00
zowoq
8bf97d639d
rustc: 1.62.0 -> 1.62.1 (#182140)
https://github.com/rust-lang/rust/releases/tag/1.62.1
2022-07-20 12:34:37 +10:00
github-actions[bot]
8517eca5ed
Merge staging-next into staging 2022-07-02 12:01:53 +00:00
Alyssa Ross
6f9359a504 rustc: mark broken for dynamic Musl target 2022-07-02 09:04:37 +00:00
Alyssa Ross
8004d0e497 rustc: 1.61.0 -> 1.62.0 2022-07-02 09:04:07 +00:00
Luka Blašković
55c8e27290
rust: 1.60.0 -> 1.61.0 (#173631) 2022-05-22 15:51:43 +02:00
Nick Cao
be29f4575e
rustc: expose correct llvmPackages for cross compile 2022-05-13 06:40:43 +08:00
zowoq
61970a41ec Revert "rustfmt: actually fix the failing test"
This reverts commit 6eb00a41a0.

fixed in 1.60.0
2022-04-17 18:20:37 +10:00
github-actions[bot]
f303d4de3b
Merge staging-next into staging 2022-04-09 12:02:07 +00:00
Alyssa Ross
6d49a35080 rust: 1.59.0 -> 1.60.0
rustc has upgraded from LLVM 13 to LLVM 14.
2022-04-08 11:51:14 +00:00
K900
af7c34be0b rustfmt: drop separate nightly alias
If you really want it, override it.
2022-04-07 19:42:14 +03:00
K900
ddef8a68cb rustfmt: allow building as nightly
This is used by bindgen, and may be useful for other projects
as well, as rustfmt disables many features when built as stable.
2022-04-06 13:03:23 +03:00
K900
6eb00a41a0 rustfmt: actually fix the failing test
It only runs on nightly, but the next commits will show
why this is useful.
2022-04-06 13:03:23 +03:00
K900
557f7572d8 rustfmt: stop pretending we're on nightly
We're not, and starting with 1.59 the test behavior actually differs
based on these env vars.
2022-04-06 01:13:54 +03:00
zowoq
d88f6aa9d8 rust: add mips64el-unknown-linux-gnuabi64 bootstrap hash
follow up from c6108020ff
2022-03-20 08:04:51 +10:00
github-actions[bot]
07e0324dff
Merge staging-next into staging 2022-03-18 06:01:55 +00:00
Adam Joseph
c6108020ff rust: add mips64el to list of bootstrap tarballs 2022-03-18 13:00:34 +10:00
github-actions[bot]
8379968bb2
Merge staging-next into staging 2022-03-10 06:02:07 +00:00
zowoq
5625298330
Merge pull request #161533 from Stunkymonkey/rust-{lib-}src-phases
rust-{lib-}src: deprecate phases
2022-03-10 13:22:07 +10:00
github-actions[bot]
f6b4a4048a
Merge staging-next into staging 2022-03-09 12:01:59 +00:00
Felix Buehler
783d2679e5 treewide: rename name to pname&version 2022-03-08 13:24:25 +01:00
Felix Buehler
6381ee34b5 rust: rename name to pname 2022-03-01 12:09:56 +01:00
Felix Buehler
5545fb36d2 cargo: rename name to pname 2022-03-01 11:52:52 +01:00
Felix Buehler
916a86aa2f rust-{lib-}src: deprecate phases 2022-02-25 22:57:59 +01:00
Alyssa Ross
dc93e10397 rust: 1.58.1 -> 1.59.0
Tested builds of fd, firefox, and thunderbird on x86_64-linux.
2022-02-25 01:22:29 +00:00
Guillaume Girol
bedabfbcef rustPlatform.bindgenHook: init 2022-02-22 19:37:07 +01:00
github-actions[bot]
0b0b544416
Merge staging-next into staging 2022-01-30 00:02:26 +00:00
Jörg Thalheim
4c1d81c91e Revert "clippy: fix build (#152211)"
This reverts commit aaff0d644f.

Reason: proper fix is now in master, see https://github.com/NixOS/nixpkgs/pull/152197
2022-01-30 07:05:12 +10:00
Konrad Borowski
89f2ffcf56 rustc: 1.58.0 -> 1.58.1 2022-01-20 16:35:46 -08:00
Jonathan Ringer
560b3f416e rustc: 1.57.0 -> 1.58.0 2022-01-14 12:34:11 -08:00
github-actions[bot]
25662d01ae
Merge staging-next into staging 2022-01-04 00:02:40 +00:00