- Notifications
You must be signed in to change notification settings - Fork 13.8k
Closed
Labels
C-bugCategory: This is a bug.Category: This is a bug.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)
Description
Summary
When building a recent nightly (after #119899) using a beta toolchain that includes the rust-src
component, ./x check
leaves a dirty tree (git status
shows lots of modified files) and the check build fails.
Command used
git clone https://github.com/rust-lang/rust . git checkout 5d707b07e42766c080c5012869c9988a18dcbb83 rustup install 1.88.0-beta.4 rustup component add --toolchain 1.88.0-beta.4 rust-src ./configure --set build.cargo=${HOME}/.rustup/toolchains/1.88.0-beta.4-x86_64-unknown-linux-gnu/bin/cargo --set build.rustc=${HOME}/.rustup/toolchains/1.88.0-beta.4-x86_64-unknown-linux-gnu/bin/rustc --set rust.channel=nightly --set profile=dist --set llvm.download-ci-llvm=true --set rust.download-rustc=false ./x check
Expected behaviour
./x check
succeeds and git status
shows a clean working tree
Actual behaviour
./x check
fails. The exact failure differs based on platform and configure options, but this is one example:
Building compiler artifacts (stage0 -> stage1, x86_64-unknown-linux-gnu) ... Compiling rustc_proc_macro v0.0.0 (/home/aleksey/hacking/rust-boot/rust/compiler/rustc_proc_macro) Compiling ruzstd v0.7.3 Compiling unicode-script v0.5.7 Compiling libloading v0.8.7 Compiling punycode v0.4.1 Compiling rustc-demangle v0.1.24 Compiling fallible-iterator v0.3.0 Compiling regex-syntax v0.6.29 Compiling rustc_llvm v0.0.0 (/home/aleksey/hacking/rust-boot/rust/compiler/rustc_llvm) Compiling lazy_static v1.5.0 error: prefer `FxHashMap` over `HashMap`, it has better performance --> compiler/rustc_proc_macro/../../library/proc_macro/src/bridge/fxhash.rs:12:35 | 12 | ...hMap<K, V> = HashMap<K, V, BuildHasherDefault<FxHasher>>; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = note: a `use rustc_data_structures::fx::FxHashMap` may be necessary = note: `-D rustc::default-hash-types` implied by `-D warnings` = help: to override `-D warnings` add `#[allow(rustc::default_hash_types)]` error: could not compile `rustc_proc_macro` (lib) due to 1 previous error warning: build failed, waiting for other jobs to finish... Build completed unsuccessfully in 0:01:20
And git status
shows many modified files
$ git status On branch aleksey-wip1 Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) (commit or discard the untracked or modified content in submodules) modified: library/Cargo.lock modified: library/alloc/Cargo.toml modified: library/alloc/src/collections/btree/map.rs modified: library/alloc/src/collections/btree/map/tests.rs modified: library/alloc/src/collections/btree/set.rs modified: library/alloc/src/collections/btree/set/tests.rs modified: library/alloc/src/collections/linked_list.rs modified: library/alloc/src/collections/vec_deque/mod.rs modified: library/alloc/src/raw_vec/mod.rs modified: library/alloc/src/slice.rs modified: library/alloc/src/str.rs modified: library/alloc/src/string.rs modified: library/alloc/src/vec/mod.rs modified: library/alloctests/benches/btree/map.rs modified: library/alloctests/benches/btree/set.rs modified: library/alloctests/tests/autotraits.rs modified: library/alloctests/tests/fmt.rs modified: library/core/Cargo.toml modified: library/core/src/alloc/layout.rs modified: library/core/src/array/mod.rs modified: library/core/src/ascii/ascii_char.rs modified: library/core/src/cell/lazy.rs modified: library/core/src/char/convert.rs modified: library/core/src/char/methods.rs modified: library/core/src/clone.rs modified: library/core/src/convert/mod.rs modified: library/core/src/ffi/c_str.rs modified: library/core/src/ffi/mod.rs modified: library/core/src/ffi/primitives.rs modified: library/core/src/ffi/va_list.rs modified: library/core/src/fmt/float.rs modified: library/core/src/fmt/mod.rs modified: library/core/src/fmt/num.rs modified: library/core/src/fmt/rt.rs modified: library/core/src/future/async_drop.rs modified: library/core/src/future/mod.rs modified: library/core/src/hint.rs modified: library/core/src/intrinsics/mod.rs modified: library/core/src/intrinsics/simd.rs modified: library/core/src/iter/traits/collect.rs modified: library/core/src/iter/traits/iterator.rs modified: library/core/src/lib.rs modified: library/core/src/macros/mod.rs modified: library/core/src/marker.rs modified: library/core/src/marker/variance.rs modified: library/core/src/mem/maybe_uninit.rs modified: library/core/src/mem/mod.rs modified: library/core/src/net/ip_addr.rs modified: library/core/src/num/dec2flt/float.rs modified: library/core/src/num/dec2flt/mod.rs modified: library/core/src/num/f128.rs modified: library/core/src/num/f16.rs modified: library/core/src/num/f32.rs modified: library/core/src/num/f64.rs modified: library/core/src/num/flt2dec/decoder.rs modified: library/core/src/num/int_macros.rs modified: library/core/src/num/mod.rs modified: library/core/src/num/nonzero.rs modified: library/core/src/num/uint_macros.rs modified: library/core/src/ops/arith.rs modified: library/core/src/ops/function.rs modified: library/core/src/ops/index.rs modified: library/core/src/ops/index_range.rs modified: library/core/src/ops/try_trait.rs modified: library/core/src/option.rs modified: library/core/src/panicking.rs modified: library/core/src/pin.rs modified: library/core/src/pin/unsafe_pinned.rs modified: library/core/src/prelude/v1.rs modified: library/core/src/primitive_docs.rs modified: library/core/src/ptr/alignment.rs modified: library/core/src/ptr/const_ptr.rs modified: library/core/src/ptr/mod.rs modified: library/core/src/ptr/mut_ptr.rs modified: library/core/src/ptr/non_null.rs modified: library/core/src/result.rs modified: library/core/src/slice/index.rs modified: library/core/src/slice/mod.rs modified: library/core/src/slice/raw.rs modified: library/core/src/slice/sort/select.rs modified: library/core/src/slice/sort/stable/mod.rs modified: library/core/src/slice/sort/unstable/mod.rs modified: library/core/src/slice/sort/unstable/quicksort.rs modified: library/core/src/str/converts.rs modified: library/core/src/str/mod.rs modified: library/core/src/str/traits.rs modified: library/core/src/sync/atomic.rs modified: library/core/src/time.rs modified: library/core/src/ub_checks.rs modified: library/coretests/Cargo.toml modified: library/coretests/tests/array.rs modified: library/coretests/tests/ffi/cstr.rs modified: library/coretests/tests/lib.rs modified: library/coretests/tests/macros.rs modified: library/coretests/tests/num/dec2flt/decimal.rs modified: library/coretests/tests/num/dec2flt/float.rs modified: library/coretests/tests/num/dec2flt/lemire.rs modified: library/coretests/tests/num/dec2flt/mod.rs modified: library/coretests/tests/num/dec2flt/parse.rs modified: library/coretests/tests/num/flt2dec/mod.rs modified: library/coretests/tests/num/flt2dec/random.rs modified: library/coretests/tests/num/flt2dec/strategy/dragon.rs modified: library/coretests/tests/num/flt2dec/strategy/grisu.rs modified: library/coretests/tests/num/mod.rs modified: library/coretests/tests/pin_macro.rs modified: library/coretests/tests/time.rs modified: library/panic_abort/Cargo.toml modified: library/panic_abort/src/lib.rs modified: library/panic_unwind/src/hermit.rs modified: library/proc_macro/Cargo.toml modified: library/proc_macro/src/bridge/arena.rs modified: library/proc_macro/src/lib.rs modified: library/std/Cargo.toml modified: library/std/src/collections/hash/map.rs modified: library/std/src/collections/hash/set.rs modified: library/std/src/ffi/mod.rs modified: library/std/src/ffi/os_str.rs modified: library/std/src/fs.rs modified: library/std/src/fs/tests.rs modified: library/std/src/io/error.rs modified: library/std/src/io/mod.rs modified: library/std/src/io/pipe.rs modified: library/std/src/io/tests.rs modified: library/std/src/lib.rs modified: library/std/src/os/net/linux_ext/addr.rs modified: library/std/src/os/net/linux_ext/socket.rs modified: library/std/src/os/net/linux_ext/tcp.rs modified: library/std/src/os/unix/net/stream.rs modified: library/std/src/os/unix/process.rs modified: library/std/src/os/wasi/fs.rs modified: library/std/src/os/windows/process.rs modified: library/std/src/panic.rs modified: library/std/src/panicking.rs modified: library/std/src/path.rs modified: library/std/src/prelude/v1.rs modified: library/std/src/process.rs modified: library/std/src/rt.rs modified: library/std/src/sync/lazy_lock.rs modified: library/std/src/sync/mpmc/list.rs modified: library/std/src/sync/once_lock.rs modified: library/std/src/sync/poison/mutex.rs modified: library/std/src/sync/poison/rwlock.rs modified: library/std/src/sync/reentrant_lock.rs modified: library/std/src/sys/cmath.rs modified: library/std/src/sys/fs/unix.rs modified: library/std/src/sys/fs/windows.rs modified: library/std/src/sys/net/connection/uefi/mod.rs modified: library/std/src/sys/os_str/wtf8.rs modified: library/std/src/sys/pal/hermit/mod.rs modified: library/std/src/sys/pal/sgx/mod.rs modified: library/std/src/sys/pal/uefi/helpers.rs modified: library/std/src/sys/pal/uefi/mod.rs modified: library/std/src/sys/pal/unix/stack_overflow.rs modified: library/std/src/sys/pal/unix/thread.rs modified: library/std/src/sys/pal/windows/mod.rs modified: library/std/src/sys/pal/xous/mod.rs modified: library/std/src/sys/pal/xous/os.rs modified: library/std/src/sys/process/unix/common.rs modified: library/std/src/sys/process/unix/unix.rs modified: library/std/src/sys/process/unix/vxworks.rs modified: library/std/src/sys/process/windows.rs modified: library/std/src/sys/sync/mutex/futex.rs modified: library/std/src/sys/sync/mutex/pthread.rs modified: library/std/src/sys/thread_local/guard/key.rs modified: library/std/src/sys/thread_local/native/lazy.rs modified: library/std/src/thread/mod.rs modified: library/std/tests/floats/f128.rs modified: library/std/tests/floats/f16.rs modified: library/std/tests/floats/f32.rs modified: library/std/tests/floats/f64.rs modified: library/std/tests/floats/lib.rs modified: library/std/tests/path.rs modified: library/stdarch (modified content) Untracked files: (use "git add <file>..." to include in what will be committed) bootstrap.toml.aleksey library/std/src/f128.rs library/std/src/f16.rs library/std/src/f32.rs library/std/src/f64.rs library/std/src/num.rs no changes added to commit (use "git add" and/or "git commit -a")
Bootstrap configuration (bootstrap.toml)
# Use different pre-set defaults than the global defaults. # # See `src/bootstrap/defaults` for more information. # Note that this has no default value (x.py uses the defaults in `bootstrap.example.toml`). profile = 'dist' [llvm] # Currently, we only support this when building LLVM for the build triple. # # Note that many of the LLVM options are not currently supported for # downloading. Currently only the "assertions" option can be toggled. download-ci-llvm = true [gcc] # Download GCC from CI instead of building it locally. # Note that this will attempt to download GCC even if there are local # modifications to the `src/gcc` submodule. # Currently, this is only supported for the `x86_64-unknown-linux-gnu` target. #download-ci-gcc = false [build] # Instead of downloading the src/stage0 version of Cargo specified, use # this Cargo binary instead to build all Rust code # If you set this, you likely want to set `rustc` as well. cargo = '/home/aleksey/.rustup/toolchains/1.88.0-beta.4-x86_64-unknown-linux-gnu/bin/cargo' # Instead of downloading the src/stage0 version of the compiler # specified, use this rustc binary instead as the stage0 snapshot compiler. # If you set this, you likely want to set `cargo` as well. rustc = '/home/aleksey/.rustup/toolchains/1.88.0-beta.4-x86_64-unknown-linux-gnu/bin/rustc' # Arguments passed to the `./configure` script, used during distcheck. You # probably won't fill this in but rather it's filled in by the `./configure` # script. Useful for debugging. configure-args = ['--set', 'build.cargo=/home/aleksey/.rustup/toolchains/1.88.0-beta.4-x86_64-unknown-linux-gnu/bin/cargo', '--set', 'build.rustc=/home/aleksey/.rustup/toolchains/1.88.0-beta.4-x86_64-unknown-linux-gnu/bin/rustc', '--set', 'rust.channel=nightly', '--set', 'profile=dist', '--set', 'llvm.download-ci-llvm=true', '--set', 'rust.download-rustc=false'] [install] [rust] # Whether to download the stage 1 and 2 compilers from CI. This is useful if you # are working on tools, doc-comments, or library (you will be able to build the # standard library without needing to build the compiler). # # Set this to "if-unchanged" if you are working on `src/tools`, `tests` or # `library` (on CI, `library` changes triggers in-tree compiler build) to speed # up the build process if you don't need to build a compiler from the latest # commit from `master`. # # Set this to `true` to always download or `false` to always use the in-tree # compiler. download-rustc = false # The "channel" for the Rust build to produce. The stable/beta channels only # allow using stable features, whereas the nightly and dev channels allow using # nightly features. # # You can set the channel to "auto-detect" to load the channel name from `src/ci/channel`. # # If using tarball sources, default value is "auto-detect", otherwise, it's "dev". channel = 'nightly' [target.x86_64-unknown-linux-gnu] [dist]
Operating system
Observed on: Debian trixie (amd64), also macOS 15.5 (arm64)
HEAD
Additional context
At work we try to build nightlies using our in-house custom beta toolchain which includes a number of components (including 'rust-src') by default.
Metadata
Metadata
Assignees
Labels
C-bugCategory: This is a bug.Category: This is a bug.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)