Skip to content

cargo 0.26 outputs misleading error message when RUSTFLAGS works for stage0 but not stage1+ #50910

Closed
@infinity0

Description

@infinity0

Building with Debian patches, the error is:

Building stage1 std artifacts (x86_64-unknown-linux-gnu -> x86_64-unknown-linux-gnu)
running: "/usr/bin/cargo" "build" "--target" "x86_64-unknown-linux-gnu" "-v" "-v" "--release" "--features" "panic-unwind backtrace" "--manifest-path" "/build/rustc-FhPMub/rustc-1.26.0+dfsg1/src/libstd/Cargo.toml" "--message-format" "json"
error: output of --print=file-names has changed in the compiler, cannot parse
command did not execute successfully: "/usr/bin/cargo" "build" "--target" "x86_64-unknown-linux-gnu" "-v" "-v" "--release" "--features" "panic-unwind backtrace" "--manifest-path" "/build/rustc-FhPMub/rustc-1.26.0+dfsg1/src/libstd/Cargo.toml" "--message-format" "json"
expected success, got: exit code: 101

For config.toml see the bottom of this post.

The error goes away if I build with a cleanly-unpacked upstream tarball, with this trivial patch applied, i.e LLVM is still being linked dynamically to the system one, and we're using the system rustc/cargo as stage0 bootstrap.

The error reproduces when I build with all of the Debian-specific patches and flags, but we're not doing anything particularly crazy on top of what I just described. I don't know how to debug this, cargo is not giving me any more information on what it's expecting to see from rustc nor what's wrong.


config.toml:

[build]
submodules = false
vendor = true
locked-deps = false
verbose = 2

rustc = "/usr/bin/rustc"
cargo = "/usr/bin/cargo"

build = "x86_64-unknown-linux-gnu"
host = ["x86_64-unknown-linux-gnu"]
target = ["x86_64-unknown-linux-gnu"]

docs = true

[install]
prefix = "/usr"

[target.x86_64-unknown-linux-gnu]
llvm-config = "/usr/lib/llvm-6.0/bin/llvm-config"

[llvm]
link-shared = true

[rust]
use-jemalloc = false
optimize = true
dist-src = false

channel = "stable"

debuginfo = true
debuginfo-lines = true
debuginfo-only-std = false
rpath = false

Metadata

Metadata

Assignees

No one assigned

    Labels

    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