Skip to content

Do not install new binutils on the system, only use it in gcc - #161243

Merged
rust-bors[bot] merged 13 commits into
rust-lang:mainfrom
GuillaumeGomez:binutils-install
Aug 21, 2026
Merged

Do not install new binutils on the system, only use it in gcc#161243
rust-bors[bot] merged 13 commits into
rust-lang:mainfrom
GuillaumeGomez:binutils-install

Conversation

@GuillaumeGomez

@GuillaumeGomez GuillaumeGomez commented Aug 17, 2026

Copy link
Copy Markdown
Member

@GuillaumeGomez

Copy link
Copy Markdown
Member Author

@bors try jobs=dist*linux

rust-bors Bot pushed a commit that referenced this pull request Aug 17, 2026
Do not install new binutils on the system, only use it in gcc


try-job: dist*linux
@rust-bors

This comment has been minimized.

@antoyo

antoyo commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

It seems you forgot to add --with-as and --with-ld.

@rust-log-analyzer

This comment has been minimized.

@GuillaumeGomez

Copy link
Copy Markdown
Member Author

It seems you forgot to add --with-as and --with-ld.

Indeed...

@GuillaumeGomez

Copy link
Copy Markdown
Member Author

@bors try jobs=dist*linux

rust-bors Bot pushed a commit that referenced this pull request Aug 17, 2026
Do not install new binutils on the system, only use it in gcc


try-job: dist*linux
@rust-bors

This comment has been minimized.

Comment thread src/ci/docker/scripts/build-gcc.sh Outdated
--prefix=/rustroot \
--enable-languages=c,c++ \
--disable-gnu-unique-object \
--with-as="$BINUTILS_PATH/as" \

@Kobzol Kobzol Aug 17, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that here you are providing as and ld to a GCC that will later build the libgccjit.so that we ship. I didn't realize it in the previous PR, but it's weird that this actually does something. I would expect that we have to provide the binutils to the build of our libgccjit.so, which is likely what the make install does (?).

View changes since the review

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would as well, but I'm unclear whether it's only used to be gcc or it's the paths gcc will use when running.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/only used to be gcc/only used to build gcc/

Very annoying that we can't edit currently. ^^'

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't this the configure for the GCC 9.5?
The --with-as flags probably need to be in the dist.sh file to be in our libgccjit, no?

@rust-log-analyzer

This comment has been minimized.

Comment thread src/ci/docker/scripts/build-gcc.sh Outdated
BINUTILS_PATH="$BINUTILS_ROOT_PATH/bin"
curl https://ci-mirrors.rust-lang.org/rustc/gcc/binutils-$BINUTILS.tar.xz | xzcat | tar xf -
mkdir binutils-build
mkdir /binutils-install

@fbstj fbstj Aug 17, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
mkdir /binutils-install
mkdir $BINUTILS_ROOT_PATH

am I missing something?

View changes since the review

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nope you're right.

@rust-bors rust-bors Bot added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Aug 17, 2026
@rust-bors

rust-bors Bot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 28ad8c1 failed: CI. Failed jobs:

@RalfJung

Copy link
Copy Markdown
Member

Yes this seems to fix the Miri build :)

@antoyo

antoyo commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Yes this seems to fix the Miri build :)

libgccjit is not built correctly here, but I guess this is good news.

@GuillaumeGomez

Copy link
Copy Markdown
Member Author

Yes this seems to fix the Miri build :)

libgccjit is not built correctly here, but I guess this is good news.

What's wrong?

@rustbot rustbot added A-CI Area: Our Github Actions CI A-testsuite Area: The testsuite used to check the correctness of rustc T-infra Relevant to the infrastructure team, which will review and decide on the PR/issue. labels Aug 17, 2026
@GuillaumeGomez

Copy link
Copy Markdown
Member Author

Now that github seems to be mostly back, let's restart the jobs.

@bors try jobs=dist*linux

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Aug 17, 2026
Do not install new binutils on the system, only use it in gcc


try-job: dist*linux
@rust-log-analyzer

This comment has been minimized.

@GuillaumeGomez

Copy link
Copy Markdown
Member Author

Seems like binutils and the compiler are kinda tied together? So if we use one version of binutils, we need to use it all the way. So what do we do? Should we try with binutils 2.46?

@GuillaumeGomez

Copy link
Copy Markdown
Member Author

Let's try like this.

@bors try jobs=dist*linux

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Aug 17, 2026
Do not install new binutils on the system, only use it in gcc


try-job: dist*linux
@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

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

Click to see the possible cause of the failure (guessed by this bot)

@JonathanBrouwer

Copy link
Copy Markdown
Member

@bors p=4 scheduling

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Aug 21, 2026
Do not install new binutils on the system, only use it in gcc



As discussed in #161218.

cc @RalfJung @antoyo 
r? @Kobzol
@rust-bors rust-bors Bot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Aug 21, 2026
@rust-bors

rust-bors Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

💔 Test for bb9f25d failed: CI. Failed job:

@GuillaumeGomez

Copy link
Copy Markdown
Member Author

@bors retry

@rust-bors rust-bors Bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 21, 2026
@rust-bors

This comment has been minimized.

@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

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

Click to see the possible cause of the failure (guessed by this bot)

@GuillaumeGomez

Copy link
Copy Markdown
Member Author

It was the same error twice in a row:

curl: (35) Recv failure: Connection was reset

@Kobzol Is something wrong?

@JonathanBrouwer

Copy link
Copy Markdown
Member

@GuillaumeGomez That's still the rust-log-analyzer from the previous failure :D

@GuillaumeGomez

Copy link
Copy Markdown
Member Author

Oh. Stress--

@rust-bors rust-bors Bot added merged-by-bors This PR was explicitly merged by bors. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Aug 21, 2026
@rust-bors

rust-bors Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: Kobzol
Duration: 2h 57m 30s
Pushing b662191 to main...

@rust-bors
rust-bors Bot merged commit b662191 into rust-lang:main Aug 21, 2026
15 checks passed
@rustbot rustbot added this to the 1.100.0 milestone Aug 21, 2026
@github-actions

Copy link
Copy Markdown
Contributor
What is this? This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.

Comparing 526c36b (parent) -> b662191 (this PR)

Test differences

Show 2 test diffs

2 doctest diffs were found. These are ignored, as they are noisy.

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard b66219142c937562f2ff8e083be2a2b25b20199e --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. x86_64-gnu-llvm-22-2: 1h 39m -> 1h 1m (-38.5%)
  2. x86_64-gnu-llvm-22-3: 1h 54m -> 1h 14m (-35.0%)
  3. x86_64-gnu-gcc-core-tests: 16m 48s -> 10m 57s (-34.8%)
  4. x86_64-gnu-stdlib-semver-check: 15m 11s -> 10m 18s (-32.2%)
  5. arm-android: 1h 17m -> 1h 42m (+32.0%)
  6. i686-gnu-nopt-1: 2h 13m -> 1h 32m (-31.1%)
  7. x86_64-gnu-gcc: 58m 42s -> 1h 16m (+29.5%)
  8. x86_64-gnu-next-trait-solver-polonius: 59m 30s -> 41m 59s (-29.4%)
  9. dist-i586-gnu-i586-i686-musl: 27m 36s -> 19m 35s (-29.0%)
  10. dist-x86_64-linux-alt: 1h 50m -> 2h 21m (+27.8%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@GuillaumeGomez
GuillaumeGomez deleted the binutils-install branch August 21, 2026 15:33
@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (b662191): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This perf run didn't have relevant results for this metric.

Max RSS (memory usage)

Results (secondary -7.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)
-7.0% [-7.0%, -7.0%] 1
All ❌✅ (primary) - - 0

Cycles

Results (primary 2.9%, secondary 1.4%)

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

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

Binary size

This perf run didn't have relevant results for this metric.

Bootstrap: 470.08s -> 470.067s (-0.00%)
Artifact size: 400.00 MiB -> 400.02 MiB (0.00%)

@RalfJung

Copy link
Copy Markdown
Member

Miri is broken again :(

@RalfJung

Copy link
Copy Markdown
Member

Miri worked fine with 1f6030a so whatever changed since then apparently re-introduced the problem.

(Also why does this PR have 13 commits? Did we really have to land all that back-and-forth in main?)

@RalfJung

RalfJung commented Aug 22, 2026

Copy link
Copy Markdown
Member

Here's the diff since the last version that I tried that worked. That's, like, a complete rewrite. I didn't test Miri again since I had no way of knowing that the PR was completely rewritten.

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 merged-by-bors This PR was explicitly merged by bors. 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.

9 participants