SIGN IN SIGN UP
oven-sh / bun UNCLAIMED

Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one

0 0 150 Rust

build: enable cross-language LTO on linux aarch64-musl (#31432)

The `crossLangLto` gate for aarch64-musl dates from CI build #53109:
LLVM's `globalopt` pass segfaulted on the per-crate `bun_runtime`
bitcode module during the merged link. That bitcode shape no longer
exists — since #31412 the Rust side reaches the link as **one fat,
pre-merged module** (`CARGO_PROFILE_RELEASE_LTO=fat` + the regular-LTO
summary fix-up), and #31412 explicitly flagged lifting this gate as the
follow-up.

This removes the gate and the `globalopt-crash-aarch64-musl`
workarounds.ts entry, so `bun-linux-aarch64-musl` gets the same Rust↔C++
cross-language inlining as the other ELF release targets (it also picks
up `-Cforce-unwind-tables=no`, which matters most on musl since that
binary keeps `.eh_frame`).

**The `linux-aarch64-musl` build + test lanes on this PR are the actual
test.** If the link still segfaults in `globalopt` (or the binary
misbehaves), close this PR — the workaround stays and the entry should
get the reduced repro filed upstream instead.
J
Jarred Sumner committed
c78d08ff2edf51a01158bffbac304df2e5e3d887
Parent: a6a5614
Committed by GitHub <noreply@github.com> on 5/26/2026, 9:24:06 PM