Skip to content

Conversation

@ZuseZ4
Copy link
Member

@ZuseZ4 ZuseZ4 commented Nov 7, 2025

The recommended way to build the offload project changed.
While already at it, testing how much overhead we get from building (or shipping) the two runtimes.

r? @Kobzol

@rustbot
Copy link
Collaborator

rustbot commented Nov 7, 2025

This PR changes how LLVM is built. Consider updating src/bootstrap/download-ci-llvm-stamp.

@rustbot rustbot added A-CI Area: Our Github Actions CI A-testsuite Area: The testsuite used to check the correctness of rustc S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. labels Nov 7, 2025
@ZuseZ4
Copy link
Member Author

ZuseZ4 commented Nov 7, 2025

@bors2 try @rust-timer queue

(@Kobzol feel free to change if you want to see something else).

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

rust-bors bot added a commit that referenced this pull request Nov 7, 2025
@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Nov 7, 2025
@rust-log-analyzer

This comment has been minimized.

@rust-bors
Copy link

rust-bors bot commented Nov 7, 2025

💔 Test for 7069335 failed: CI. Failed jobs:

@rust-log-analyzer

This comment has been minimized.

@ZuseZ4
Copy link
Member Author

ZuseZ4 commented Nov 7, 2025

@bors2 try @rust-timer queue

@rust-timer

This comment has been minimized.

rust-bors bot added a commit that referenced this pull request Nov 7, 2025
@rust-bors

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rust-bors
Copy link

rust-bors bot commented Nov 7, 2025

💔 Test for 31000c9 failed: CI. Failed jobs:

@ZuseZ4
Copy link
Member Author

ZuseZ4 commented Nov 8, 2025

@bors2 try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

rust-bors bot added a commit that referenced this pull request Nov 8, 2025
@rust-log-analyzer

This comment has been minimized.

@rust-bors
Copy link

rust-bors bot commented Nov 8, 2025

💔 Test for de7bdfa failed: CI. Failed jobs:

@ZuseZ4
Copy link
Member Author

ZuseZ4 commented Nov 14, 2025

@bors2 try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (8218dc3): comparison URL.

Overall result: ✅ improvements - no action needed

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

@bors rollup=never
@rustbot label: -S-waiting-on-perf -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.1% [-0.1%, -0.1%] 1
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (secondary -2.2%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-2.2% [-3.5%, -1.0%] 2
All ❌✅ (primary) - - 0

Cycles

Results (primary -2.3%, secondary -2.8%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-2.3% [-2.8%, -2.1%] 6
Improvements ✅
(secondary)
-2.8% [-5.0%, -2.1%] 5
All ❌✅ (primary) -2.3% [-2.8%, -2.1%] 6

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 473.663s -> 472.036s (-0.34%)
Artifact size: 389.32 MiB -> 389.33 MiB (0.00%)

@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Dec 12, 2025
@ZuseZ4
Copy link
Member Author

ZuseZ4 commented Dec 12, 2025

It seems like llvm_profile_generate wasn't part of the solution, so just to verify that PGO still succeeds without it:

@bors2 try @rust-timer queue

@rust-timer

This comment has been minimized.

rust-bors bot added a commit that referenced this pull request Dec 12, 2025
@rust-bors

This comment has been minimized.

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Dec 12, 2025
@ZuseZ4
Copy link
Member Author

ZuseZ4 commented Dec 12, 2025

@Kobzol: This is ready for approval if you don't have any other concerns. I'd squash it before merge, just leaving it for now so you see what changed.
It works locally, so I'd like to keep it either way, even if we have to later temporarily disable it for nighlty.
I was therefore wondering, should I split the Dockerfile update into it's own PR, so we can only revert that (and keep this) if something goes wrong?

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rust-bors
Copy link

rust-bors bot commented Dec 12, 2025

☀️ Try build successful (CI)
Build commit: 8b3d163 (8b3d163a03686b03f5a5b772ed9c5da56de65dc8, parent: 3391c0133661be933c3ef24edf1867d71b9f206b)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (8b3d163): comparison URL.

Overall result: no relevant changes - no action needed

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

@bors rollup=never
@rustbot label: -S-waiting-on-perf -perf-regression

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

Results (secondary -1.0%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-1.0% [-1.0%, -1.0%] 1
All ❌✅ (primary) - - 0

Cycles

Results (primary -2.1%, secondary -3.0%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-2.1% [-2.1%, -2.1%] 1
Improvements ✅
(secondary)
-3.0% [-5.4%, -2.1%] 5
All ❌✅ (primary) -2.1% [-2.1%, -2.1%] 1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 473.663s -> 472.194s (-0.31%)
Artifact size: 389.32 MiB -> 389.31 MiB (-0.00%)

@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Dec 13, 2025
@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer
Copy link
Collaborator

The job tidy failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
   Compiling home v0.5.11
error: unused variable: `llvm_version`
##[error]    --> src/bootstrap/src/core/build_steps/compile.rs:2228:21
     |
2228 |                 let llvm_version = llvm.split('.').take(2).collect::<Vec<_>>().join(".");
     |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_llvm_version`
     |
     = note: `-D unused-variables` implied by `-D warnings`
     = help: to override `-D warnings` add `#[allow(unused_variables)]`

error: unused variable: `rust_version`
##[error]    --> src/bootstrap/src/core/build_steps/compile.rs:2229:21
     |
2229 |                 let rust_version = builder.rust_version();
     |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rust_version`

error: could not compile `bootstrap` (lib) due to 2 previous errors
failed to run: /checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo build --jobs=default --manifest-path /checkout/src/bootstrap/Cargo.toml -Zroot-dir=/checkout --locked --features build-metrics
Build completed unsuccessfully in 0:00:27
make: *** [Makefile:99: prepare] Error 1
Command failed. Attempt 2/5:
##[group]Building bootstrap
   Compiling bootstrap v0.0.0 (/checkout/src/bootstrap)
error: unused variable: `llvm_version`
##[error]    --> src/bootstrap/src/core/build_steps/compile.rs:2228:21
     |
2228 |                 let llvm_version = llvm.split('.').take(2).collect::<Vec<_>>().join(".");
     |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_llvm_version`
     |
     = note: `-D unused-variables` implied by `-D warnings`
     = help: to override `-D warnings` add `#[allow(unused_variables)]`

error: unused variable: `rust_version`
##[error]    --> src/bootstrap/src/core/build_steps/compile.rs:2229:21
     |
2229 |                 let rust_version = builder.rust_version();
     |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rust_version`

error: could not compile `bootstrap` (lib) due to 2 previous errors
failed to run: /checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo build --jobs=default --manifest-path /checkout/src/bootstrap/Cargo.toml -Zroot-dir=/checkout --locked --features build-metrics
Build completed unsuccessfully in 0:00:03
make: *** [Makefile:99: prepare] Error 1
Command failed. Attempt 3/5:
##[group]Building bootstrap
   Compiling bootstrap v0.0.0 (/checkout/src/bootstrap)
error: unused variable: `llvm_version`
##[error]    --> src/bootstrap/src/core/build_steps/compile.rs:2228:21
     |
2228 |                 let llvm_version = llvm.split('.').take(2).collect::<Vec<_>>().join(".");
     |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_llvm_version`
     |
     = note: `-D unused-variables` implied by `-D warnings`
     = help: to override `-D warnings` add `#[allow(unused_variables)]`

error: unused variable: `rust_version`
##[error]    --> src/bootstrap/src/core/build_steps/compile.rs:2229:21
     |
2229 |                 let rust_version = builder.rust_version();
     |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rust_version`

error: could not compile `bootstrap` (lib) due to 2 previous errors
failed to run: /checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo build --jobs=default --manifest-path /checkout/src/bootstrap/Cargo.toml -Zroot-dir=/checkout --locked --features build-metrics
Build completed unsuccessfully in 0:00:03
make: *** [Makefile:99: prepare] Error 1
Command failed. Attempt 4/5:
##[group]Building bootstrap
   Compiling bootstrap v0.0.0 (/checkout/src/bootstrap)
error: unused variable: `llvm_version`
##[error]    --> src/bootstrap/src/core/build_steps/compile.rs:2228:21
     |
2228 |                 let llvm_version = llvm.split('.').take(2).collect::<Vec<_>>().join(".");
     |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_llvm_version`
     |
     = note: `-D unused-variables` implied by `-D warnings`
     = help: to override `-D warnings` add `#[allow(unused_variables)]`

error: unused variable: `rust_version`
##[error]    --> src/bootstrap/src/core/build_steps/compile.rs:2229:21
     |
2229 |                 let rust_version = builder.rust_version();
     |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rust_version`

error: could not compile `bootstrap` (lib) due to 2 previous errors
failed to run: /checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo build --jobs=default --manifest-path /checkout/src/bootstrap/Cargo.toml -Zroot-dir=/checkout --locked --features build-metrics
Build completed unsuccessfully in 0:00:03
make: *** [Makefile:99: prepare] Error 1
Command failed. Attempt 5/5:
##[group]Building bootstrap
   Compiling bootstrap v0.0.0 (/checkout/src/bootstrap)
error: unused variable: `llvm_version`
##[error]    --> src/bootstrap/src/core/build_steps/compile.rs:2228:21
     |
2228 |                 let llvm_version = llvm.split('.').take(2).collect::<Vec<_>>().join(".");
     |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_llvm_version`
     |
     = note: `-D unused-variables` implied by `-D warnings`
     = help: to override `-D warnings` add `#[allow(unused_variables)]`

error: unused variable: `rust_version`
##[error]    --> src/bootstrap/src/core/build_steps/compile.rs:2229:21
     |
2229 |                 let rust_version = builder.rust_version();
     |                     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rust_version`

error: could not compile `bootstrap` (lib) due to 2 previous errors
failed to run: /checkout/obj/build/x86_64-unknown-linux-gnu/stage0/bin/cargo build --jobs=default --manifest-path /checkout/src/bootstrap/Cargo.toml -Zroot-dir=/checkout --locked --features build-metrics
Build completed unsuccessfully in 0:00:03
make: *** [Makefile:99: prepare] Error 1
The command has failed after 5 attempts.
  local time: Sat Dec 13 16:13:33 UTC 2025
  network time: Sat, 13 Dec 2025 16:13:33 GMT

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-CI Area: Our Github Actions CI A-testsuite Area: The testsuite used to check the correctness of rustc S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants