Skip to content

bootstrap requires non-existing src/gcc submodule on static.rust-lang.org tarball #138124

@fossdd

Description

@fossdd

Summary

Hi, I'm a Alpine Linux contributor.

We use the tarball of https://static.rust-lang.org/dist/rustc-$pkgver-src.tar.xz which does not contain the src/gcc submodule added in 9028177.

Since 1.85.0 bootstrap started failing in build_helper:

thread 'main' panicked at src/bootstrap/src/utils/helpers.rs:442:5: std::fs::read_dir(dir) failed with No such file or directory (os error 2) stack backtrace: 0: rust_begin_unwind 1: core::panicking::panic_fmt 2: bootstrap::utils::helpers::dir_is_empty at ./src/bootstrap/src/utils/helpers.rs:37:23 3: bootstrap::Build::require_submodule at ./src/bootstrap/src/lib.rs:481:12 4: bootstrap::Build::require_and_update_all_submodules at ./src/bootstrap/src/lib.rs:502:13 

By debugging i found that it fails to find src/gcc, which indeed is missing from the tarball.

Also using --disable-manage-submodules doesn't work since the config option is checked after the failing line:

if dir_is_empty(&absolute_path) {
let maybe_enable = if !self.config.submodules()

Command used

https://gitlab.alpinelinux.org/alpine/aports/-/blob/69a7e15bf81d1947d3347c1a7eaf36a07290e535/main/rust/APKBUILD

Bootstrap configuration (config.toml)

./configure \	--build="$_build" \	--host="$_target" \	--target="$targets" \	--prefix="/usr" \	--release-channel="stable" \	--enable-local-rust \	--local-rust-root="/usr" \	--llvm-root="/usr/lib/llvm$_llvmver" \	--disable-docs \	--enable-extended \	--tools="cargo,clippy,src,${rust_analyzer}rustdoc,rustfmt,rust-demangler" \	--enable-llvm-link-shared \	--enable-option-checking \	--enable-locked-deps \	--enable-profiler \	--enable-vendor \	--disable-manage-submodules \	--dist-compression-formats=gz \	--python="python3" \	--set="change-id=134650" \	--set="rust.musl-root=/usr" \	--set="rust.backtrace-on-ice=true" \	--set="rust.codegen-units=1" \	--set="rust.codegen-units-std=1" \	--set="rust.deny-warnings=false" \	--set="rust.remap-debuginfo=true" \	--set="rust.lld=false" \	--set="rust.description=Alpine Linux $pkgver-r$pkgrel" \	--set="target.$_target.llvm-config=/usr/lib/llvm$_llvmver/bin/llvm-config" \	--set="target.$_target.musl-root=/usr" \	--set="target.$_target.crt-static=false" \	--set="target.$_target.cc=${CROSS_COMPILE}cc" \	--set="target.$_target.cxx=${CROSS_COMPILE}c++" \	--set="target.$_target.ar=${CROSS_COMPILE}ar" \	--set="target.$_target.linker=${CROSS_COMPILE}cc" \	--set="target.$_build.musl-root=/usr" \	--set="target.$_build.crt-static=false" \	--set="target.$_build.cc=cc" \	--set="target.$_build.cxx=c++" \	--set="target.$_build.ar=ar" \	--set="target.$_build.linker=cc"

Operating system

Alpine Linux edge

HEAD

4d91de4e48198da2e33413efdcd9cd2cc0c46688

Additional context

Build Log

configure: processing command line configure: configure: build.configure-args := ['--build=x86_64-alpine-linux-musl', '--host=x ... configure: build.build := x86_64-alpine-linux-musl configure: build.host := ['x86_64-alpine-linux-musl'] configure: build.target := ['x86_64-alpine-linux-musl', 'wasm32-wasip1', ... configure: install.prefix := /usr configure: rust.channel := stable configure: build.rustc := /usr/bin/rustc configure: build.cargo := /usr/bin/cargo configure: build.rustc := /usr/bin/rustc configure: build.cargo := /usr/bin/cargo configure: target.x86_64-alpine-linux-musl.llvm-config := /usr/lib/llvm19/bin/llv ... configure: build.docs := False configure: build.extended := True configure: build.tools := ['cargo', 'clippy', 'src', 'rust-analyzer-proc ... configure: llvm.link-shared := True configure: build.locked-deps := True configure: build.profiler := True configure: build.vendor := True configure: dist.compression-formats := ['gz'] configure: build.python := python3 configure: change-id := 134650 configure: rust.musl-root := /usr configure: rust.backtrace-on-ice := True configure: rust.codegen-units := 1 configure: rust.codegen-units-std := 1 configure: rust.deny-warnings := False configure: rust.remap-debuginfo := True configure: rust.lld := False configure: rust.description := Alpine Linux 1.85.0-r0 configure: rust.lto := thin configure: target.x86_64-alpine-linux-musl.llvm-config := /usr/lib/llvm19/bin/llv ... configure: target.x86_64-alpine-linux-musl.musl-root := /usr configure: target.x86_64-alpine-linux-musl.crt-static := False configure: target.x86_64-alpine-linux-musl.cc := cc configure: target.x86_64-alpine-linux-musl.cxx := c++ configure: target.x86_64-alpine-linux-musl.ar := ar configure: target.x86_64-alpine-linux-musl.linker := cc configure: target.x86_64-alpine-linux-musl.musl-root := /usr configure: target.x86_64-alpine-linux-musl.crt-static := False configure: target.x86_64-alpine-linux-musl.cc := cc configure: target.x86_64-alpine-linux-musl.cxx := c++ configure: target.x86_64-alpine-linux-musl.ar := ar configure: target.x86_64-alpine-linux-musl.linker := cc configure: target.wasm32-unknown-unknown.sanitizers := False configure: target.wasm32-unknown-unknown.profiler := False configure: target.wasm32-unknown-unknown.linker := lld configure: target.wasm32-wasip1.sanitizers := False configure: target.wasm32-wasip1.profiler := False configure: target.wasm32-wasip1.wasi-root := /usr/share/wasi-sysroot configure: target.wasm32-wasip1-threads.sanitizers := False configure: target.wasm32-wasip1-threads.profiler := False configure: target.wasm32-wasip1-threads.wasi-root := /usr/share/wasi-sysroot configure: target.wasm32-wasip2.sanitizers := False configure: target.wasm32-wasip2.profiler := False configure: target.wasm32-wasip2.wasi-root := /usr/share/wasi-sysroot configure: profile := dist configure: configure: writing `config.toml` in current directory configure: configure: run `python /builds/fossdd/aports/main/rust/src/rustc-1.85.0-src/x.py --help` Building bootstrap Compiling proc-macro2 v1.0.89 Compiling unicode-ident v1.0.13 Compiling memchr v2.7.4 Compiling version_check v0.9.5 Compiling typenum v1.17.0 Compiling libc v0.2.167 Compiling shlex v1.3.0 Compiling serde v1.0.215 Compiling rustix v0.38.40 Compiling crossbeam-utils v0.8.20 Compiling regex-syntax v0.8.5 Compiling pkg-config v0.3.31 Compiling bitflags v2.6.0 Compiling linux-raw-sys v0.4.14 Compiling cfg-if v1.0.0 Compiling anstyle v1.0.10 Compiling heck v0.5.0 Compiling clap_lex v0.7.2 Compiling same-file v1.0.6 Compiling serde_json v1.0.132 Compiling semver v1.0.23 Compiling log v0.4.22 Compiling cpufeatures v0.2.15 Compiling ryu v1.0.18 Compiling bootstrap v0.0.0 (/builds/fossdd/aports/main/rust/src/rustc-1.85.0-src/src/bootstrap) Compiling itoa v1.0.11 Compiling home v0.5.9 Compiling termcolor v1.4.1 Compiling cc v1.1.22 Compiling clap_builder v4.5.20 Compiling walkdir v2.5.0 Compiling generic-array v0.14.7 Compiling aho-corasick v1.1.3 Compiling object v0.36.5 Compiling crossbeam-epoch v0.9.18 Compiling quote v1.0.37 Compiling cmake v0.1.48 Compiling crossbeam-deque v0.8.5 Compiling syn v2.0.87 Compiling filetime v0.2.25 Compiling lzma-sys v0.1.20 Compiling regex-automata v0.4.9 Compiling crypto-common v0.1.6 Compiling block-buffer v0.10.4 Compiling xz2 v0.1.7 Compiling digest v0.10.7 Compiling sha2 v0.10.8 Compiling xattr v1.3.1 Compiling fd-lock v4.0.2 Compiling tar v0.4.43 Compiling toml v0.5.11 Compiling bstr v1.10.0 Compiling clap_derive v4.5.18 Compiling serde_derive v1.0.215 Compiling globset v0.4.15 Compiling opener v0.5.2 Compiling ignore v0.4.23 Compiling clap v4.5.20 Compiling clap_complete v4.5.37 Compiling build_helper v0.1.0 (/builds/fossdd/aports/main/rust/src/rustc-1.85.0-src/src/build_helper) Finished `dev` profile [unoptimized] target(s) in 30.74s thread 'main' panicked at src/bootstrap/src/utils/helpers.rs:441:5: std::fs::read_dir(dir) failed with No such file or directory (os error 2) stack backtrace: 0: rust_begin_unwind 1: core::panicking::panic_fmt 2: bootstrap::utils::helpers::dir_is_empty at ./src/bootstrap/src/utils/helpers.rs:37:23 3: bootstrap::Build::require_submodule at ./src/bootstrap/src/lib.rs:481:12 4: bootstrap::Build::require_and_update_all_submodules at ./src/bootstrap/src/lib.rs:502:13 5: <bootstrap::core::build_steps::dist::PlainSourceTarball as bootstrap::core::builder::Step>::run at ./src/bootstrap/src/core/build_steps/dist.rs:1031:13 6: bootstrap::core::builder::Builder::ensure at ./src/bootstrap/src/core/builder/mod.rs:1451:23 7: <bootstrap::core::build_steps::dist::PlainSourceTarball as bootstrap::core::builder::Step>::make_run at ./src/bootstrap/src/core/build_steps/dist.rs:968:9 8: bootstrap::core::builder::StepDescription::maybe_run at ./src/bootstrap/src/core/builder/mod.rs:388:13 9: bootstrap::core::builder::StepDescription::run at ./src/bootstrap/src/core/builder/mod.rs:438:21 10: bootstrap::core::builder::Builder::run_step_descriptions at ./src/bootstrap/src/core/builder/mod.rs:1177:9 11: bootstrap::core::builder::Builder::execute_cli at ./src/bootstrap/src/core/builder/mod.rs:1157:9 12: bootstrap::Build::build at ./src/bootstrap/src/lib.rs:579:17 13: bootstrap::main at ./src/bootstrap/src/bin/main.rs:86:5 14: core::ops::function::FnOnce::call_once at /rustc/e71f9a9a98b0faf423844bf0ba7438f29dc27d58/library/core/src/ops/function.rs:250:5 note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace. Build completed unsuccessfully in 0:00:33

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions