Skip to content

build: Bump to LLVM 22#46371

Merged
jwendell merged 5 commits into
envoyproxy:mainfrom
jwendell:clang22-3
Jul 24, 2026
Merged

build: Bump to LLVM 22#46371
jwendell merged 5 commits into
envoyproxy:mainfrom
jwendell:clang22-3

Conversation

@jwendell

Copy link
Copy Markdown
Member

No description provided.

jwendell and others added 4 commits July 24, 2026 09:41
Signed-off-by: Jonh Wendell <jwendell@redhat.com>
Co-authored-by: Ryan Northey <ryan@synca.io>
The hermetic LLVM toolchain makes clang always available through
bazel regardless of system compilers. Update the `gcc` and `none`
service expectations to reflect that clang-libc++ is the default
even without a system clang installed. Only `--config=gcc` fails
when gcc is absent, since it explicitly sets `CC=gcc`.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Jonh Wendell <jwendell@redhat.com>
Signed-off-by: Jonh Wendell <jwendell@redhat.com>
Backport of upstream `toolchains_llvm` commit `68822c1` (PR envoyproxy#748,
v1.8.0): on macOS, `toolchains_llvm` v1.7.0 compiles with the hermetic
toolchain's bundled libc++ headers but links against the Xcode SDK's
system `libc++.tbd`. LLVM 21+ moved `std::__hash_memory` out of line,
exposing this ABI mismatch as an undefined symbol at link time. The fix
adds `-nostdinc++` and `-cxx-isystem <sysroot>/usr/include/c++/v1` so
macOS uses the SDK's libc++ headers end-to-end, matching link-time
behavior. Remove this patch when upgrading to `toolchains_llvm` v1.8.0+.

Fix LuaJIT linking on macOS: the hermetic clang defaults to the system
`ld` (Xcode's linker) when `-fuse-ld` is not passed. The system `ld`
dynamically loads libc++ at runtime and picks up the hermetic toolchain's
`libc++.1.0.dylib`, which is missing `___cxa_demangle` — causing `ld`
itself to crash. Pass `-fuse-ld=lld` and `--ld-path=ld64.lld` to both
`HOST_LDFLAGS` and `TARGET_LDFLAGS` in `luajit_build.sh` so all link
steps use the hermetic `ld64.lld` instead.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Jonh Wendell <jwendell@redhat.com>
@repokitteh-read-only

Copy link
Copy Markdown

CC @envoyproxy/dependency-shepherds: Your approval is needed for changes made to (bazel/.*repos.*\.bzl)|(bazel/dependency_imports\.bzl)|(api/bazel/.*\.bzl)|(.*/requirements\.txt)|(.*\.patch).
envoyproxy/dependency-shepherds assignee is @phlax

🐱

Caused by: #46371 was opened by jwendell.

see: more, trace.

phlax
phlax previously approved these changes Jul 24, 2026

@phlax phlax left a comment

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.

lgtm, thanks @jwendell - very cool!

@repokitteh-read-only repokitteh-read-only Bot removed the deps Approval required for changes to Envoy's external dependencies label Jul 24, 2026
Signed-off-by: Jonh Wendell <jwendell@redhat.com>
@repokitteh-read-only repokitteh-read-only Bot added the deps Approval required for changes to Envoy's external dependencies label Jul 24, 2026
@repokitteh-read-only repokitteh-read-only Bot removed the deps Approval required for changes to Envoy's external dependencies label Jul 24, 2026
@jwendell
jwendell merged commit aede0dc into envoyproxy:main Jul 24, 2026
33 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants