cargo总是使用最新的编译器吗?



我正在构建一些裸机代码,我只需要libcore和compiler_builtins。我也在构建我自己的rustc,因为我在一个不受支持的目标架构上——我想我对最新的稳定的rustc 1.60.0进行了更改,而不是每晚的。

显然,最新可用的compiler_builtins 0.1.72rustc 1.60.0不兼容,因为它依赖于一些尚未稳定的东西,例如这个功能。

我以为我会恢复到以前的compiler_builtins版本,但是cargo仍然坚持从github获取最新的v0.1.72,现在它正在构建两者!

$ cat Cargo.toml 
...
[dependencies]
[target.arc-pc-unknown-gnu.dependencies]
core = { version = "0.0.0", path = "/home/valeriyk/proj/rust-arc/1.60.0/library/core"}
#compiler_builtins = { git = "https://github.com/rust-lang/compiler-builtins"}
compiler_builtins = "0.1.70"
$ cat .cargo/config.toml 
[unstable]
build-std = [
"core",
"compiler_builtins"
]
build-std-features = ["compiler-builtins-mem"]
[build]
target = "arc-pc-unknown-gnu"
$ cargo check
Compiling compiler_builtins v0.1.70
Compiling core v0.0.0 (/home/valeriyk/proj/rust-arc/1.60.0/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/src/rust/library/core)
Compiling compiler_builtins v0.1.72
Compiling rustc-std-workspace-core v1.99.0 (/home/valeriyk/proj/rust-arc/1.60.0/build/x86_64-unknown-linux-gnu/stage1/lib/rustlib/src/rust/library/rustc-std-workspace-core)
Checking core v0.0.0 (/home/valeriyk/proj/rust-arc/1.60.0/library/core)
error[E0412]: cannot find type `c_char` in module `core::ffi`
--> /home/valeriyk/.cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.72/src/mem/mod.rs:74:58

是否有办法告诉cargo不要使用最新的内置程序,并坚持在cargo .toml中明确提到的内容?

这个评论表明今天是不可能的。

为了解决这个问题,我需要每晚升级到最新版本,并重新应用我所有的更改。

最新更新