Skip to content

Update to LLVM 23 - #158734

Open
nikic wants to merge 12 commits into
rust-lang:mainfrom
nikic:llvm23
Open

Update to LLVM 23#158734
nikic wants to merge 12 commits into
rust-lang:mainfrom
nikic:llvm23

Conversation

@nikic

@nikic nikic commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

View all comments

Changes in this PR (apart from the LLVM update):

  • Updated cov-map tests due to minor ordering changes introduced in llvm/llvm-project@5931034. The affected tests are limited to LLVM >= 23 now.
  • Set LLVM_VERSIONED_DYLIB_NAME_ON_DARWIN=OFF, which restores the previous unversioned naming of the LLVM dylib on Darwin. I expect we'll want to change this for consistency with Linux, but given the amount of trouble Darwin dylibs have caused in the past, I'm not trying to do it in this PR.
  • Distribute the llvm-project/libc subproject, which is now a build dependency of LLVM.
  • Pull in f128 Windows ABI changes from adjust f128 windows abi for LLVM 23 #158778. These need to land in sync with the LLVM update (as ABI of libcalls is controlled by LLVM, not our ABI lowering).
  • Disable RISCV backend on dist-i686-mingw, because the build OOMs on a large generated file. This is a temporary measure until host tools are removed by Drop tier 2 i686-pc-windows-gnu host tools compiler-team#1020.
  • The llvm-project fork includes a new downstream patch for mingw: rust-lang/llvm-project@b89cd8e It works around mingw having broken TLS prior to GCC 16. (We're currently on GCC 14.)

Issues:

@rustbot rustbot added A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Jul 3, 2026
@nikic

nikic commented Jul 3, 2026

Copy link
Copy Markdown
Contributor Author

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jul 3, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Jul 3, 2026
@rust-log-analyzer

This comment has been minimized.

@rust-bors

rust-bors Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

💔 Test for b003a3f failed: CI. Failed job:

@rust-log-analyzer

This comment has been minimized.

@rust-bors

This comment has been minimized.

@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 Jul 13, 2026
@nikic

nikic commented Jul 13, 2026

Copy link
Copy Markdown
Contributor Author

@bors try

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Jul 13, 2026
@rust-bors

rust-bors Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 0259978 failed: CI. Failed job:

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@nikic

nikic commented Jul 14, 2026

Copy link
Copy Markdown
Contributor Author

@bors try

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Jul 14, 2026
@rust-bors

rust-bors Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 4973bfc failed: CI. Failed job:

@rust-log-analyzer

This comment has been minimized.

@rust-bors

rust-bors Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

💔 Test for a5c2b7a failed: CI. Failed job:

@jhpratt

jhpratt commented Jul 28, 2026

Copy link
Copy Markdown
Member

That looks like a legitimate failure.

@jhpratt

jhpratt commented Jul 28, 2026

Copy link
Copy Markdown
Member

Likely to reopen the queue soon.

@bors p=0

@dianqk

dianqk commented Jul 28, 2026

Copy link
Copy Markdown
Member

I assume it's time to bump GCC for netbsd: https://godbolt.org/z/axh5PKMes.

@RalfJung

Copy link
Copy Markdown
Member

Cc @he32 @0323pin -- NetBSD seems to be blocking the LLVM update

@ZuseZ4

ZuseZ4 commented Jul 28, 2026

Copy link
Copy Markdown
Member

Tried that succesfully here: #160042
It looks like infra should potentially mirror the new gcc @Kobzol or @jieyouxu, if the target maintainers agree with the update?

@Kobzol

Kobzol commented Jul 28, 2026

Copy link
Copy Markdown
Member

I'll send a PR to mirror the files. That doesn't have to block this PR though. Can you push the fix here?

@ZuseZ4

ZuseZ4 commented Jul 28, 2026

Copy link
Copy Markdown
Member

@bors try jobs=dist-x86_64-netbsd

@rust-bors

This comment has been minimized.

@Kobzol

Kobzol commented Jul 28, 2026

Copy link
Copy Markdown
Member

Mirror PR here: rust-lang/ci-mirrors#52

@he32

he32 commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Cc @he32 @0323pin -- NetBSD seems to be blocking the LLVM update

Upgrading the base NetBSD OS from 9.0 to 10.1 as I see is done elsewhere here is the correct move. The release of NetBSD 11.0 is imminent (days away), and when that happens, the netbsd-9 branch maintenance will cease.

@rust-bors

rust-bors Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: aa09ee3 (aa09ee35a320ae446ce3b94143b734551ab491c0)
Base parent: bf9944f (bf9944f0b8006b152ef4d5f408ae75a0dde3d044)

@rustbot

rustbot commented Jul 28, 2026

Copy link
Copy Markdown
Collaborator

Some changes occurred in src/doc/rustc/src/platform-support

cc @Noratrieb

@Kobzol

Kobzol commented Jul 28, 2026

Copy link
Copy Markdown
Member

@bors r=cuviper

@rust-bors

rust-bors Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 60d1bbf has been approved by cuviper

It is now in the queue for this repository.

@ZuseZ4

ZuseZ4 commented Jul 28, 2026

Copy link
Copy Markdown
Member

@bors p=5 blocking other work
Also, we've been trying to merge it for a while

@rust-bors

This comment has been minimized.

@rust-bors

rust-bors Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 1ccfdc3 failed: CI. Failed job:

@rust-log-analyzer

This comment has been minimized.

@ZuseZ4

ZuseZ4 commented Jul 28, 2026

Copy link
Copy Markdown
Member

@davidtwco I'm just looking into it (#160042), but based on #152038 I assume you're more knowledgeable about this: A-key return address signing is unsupported on AArch64 Windows

@ZuseZ4

ZuseZ4 commented Jul 28, 2026

Copy link
Copy Markdown
Member

@jchlanda as the project goal owner for aarch64 pauth (even if linux) does the test update look good to you, or do you have any other simple solution at hand to unblock the update to LLVM 23?

@dianqk

dianqk commented Jul 29, 2026

Copy link
Copy Markdown
Member

IIUC, llvm/llvm-project#203989 should use the B-key by default now.

Base on https://github.com/rust-lang/rust/blob/main/compiler/rustc_codegen_llvm/src/attributes.rs#L555 and llvm/llvm-project#203989, I think we should make key as an option value, so that LLVM can use the default value for each target.

@davidtwco

davidtwco commented Jul 29, 2026

Copy link
Copy Markdown
Member

@davidtwco I'm just looking into it (#160042), but based on #152038 I assume you're more knowledgeable about this: A-key return address signing is unsupported on AArch64 Windows

I don't think this is right, we should default to b-key in rustc for MSVC. I can make a patch for that. This has been on my to-do for a bit, just didn't expect it to break a LLVM upgrade.

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-compiler-builtins Area: compiler-builtins (https://github.com/rust-lang/compiler-builtins) A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs A-testsuite Area: The testsuite used to check the correctness of rustc F-autodiff `#![feature(autodiff)]` perf-regression Performance regression. S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. 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.