Uh oh!
There was an error while loading. Please reload this page.
Link LLVM dynamically on aarch64-apple-darwin - #157205
Conversation
rustbot
commented
May 31, 2026
Warning If you are changing how CI LLVM is built or linked, make sure to bump cc @jieyouxu |
rustbot
commented
May 31, 2026
|
ZuseZ4
commented
May 31, 2026
@bors r+ rollup=never The last time we tried this change we broke rustc contributors, since download-llvm-ci failed for them. We should do the same for the x86 apple runner once we verified it works. |
This comment has been minimized.
This comment has been minimized.
Uh oh!
There was an error while loading. Please reload this page.
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 14210df (parent) -> bef8e62 (this PR) Test differencesShow 4 test diffsStage 2
Additionally, 3 doctest diffs were found. These are ignored, as they are noisy. Job group index
Test dashboardRun cargo run --manifest-path src/ci/citool/Cargo.toml -- \
test-dashboard bef8e620f19adbfd1530e916ab8caa296ef9c3ee --output-dir test-dashboardAnd then open Job duration changes
How to interpret the job duration changes?Job durations can vary a lot, based on the actual runner instance |
rust-timer
commented
Jun 1, 2026
Finished benchmarking commit (bef8e62): comparison URL. Overall result: no relevant changes - no action needed@rustbot label: -perf-regression Instruction countThis perf run didn't have relevant results for this metric. Max RSS (memory usage)Results (primary -3.1%, secondary 4.2%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary 2.3%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis perf run didn't have relevant results for this metric. Bootstrap: 511.515s -> 518.865s (1.44%) |
Enable Enzyme for aarch64-apple-darwin Enable Enzyme for aarch64-apple-darwin. I linked LLVM dynamically on MacOS on the PR: rust-lang#157205 We can use Enzyme since the PR landed. r? @ZuseZ4
Enable Enzyme for aarch64-apple-darwin Enable Enzyme for aarch64-apple-darwin. I linked LLVM dynamically on MacOS on the PR: rust-lang#157205 We can use Enzyme since the PR landed. r? @ZuseZ4
Enable Enzyme for aarch64-apple-darwin Enable Enzyme for aarch64-apple-darwin. I linked LLVM dynamically on MacOS on the PR: rust-lang#157205 We can use Enzyme since the PR landed. r? @ZuseZ4
Enable Enzyme for aarch64-apple-darwin Enable Enzyme for aarch64-apple-darwin. I linked LLVM dynamically on MacOS on the PR: rust-lang/rust#157205 We can use Enzyme since the PR landed. r? @ZuseZ4
…mac, r=ZuseZ4 Link LLVM dynamically on x86_64-apple Link LLVM dynamically on x86_64-apple just like we did for aarch64-apple-darwin * rust-lang#157205 r? @ZuseZ4
…seZ4 Link LLVM dynamically on x86_64-apple Link LLVM dynamically on x86_64-apple just like we did for aarch64-apple-darwin * rust-lang/rust#157205 r? @ZuseZ4
…seZ4 Link LLVM dynamically on x86_64-apple Link LLVM dynamically on x86_64-apple just like we did for aarch64-apple-darwin * rust-lang/rust#157205 r? @ZuseZ4
…seZ4 Link LLVM dynamically on x86_64-apple Link LLVM dynamically on x86_64-apple just like we did for aarch64-apple-darwin * rust-lang/rust#157205 r? @ZuseZ4
…seZ4 Link LLVM dynamically on x86_64-apple Link LLVM dynamically on x86_64-apple just like we did for aarch64-apple-darwin * rust-lang/rust#157205 r? @ZuseZ4
Since rust-lang/rust#157205 the darwin dist links rust-lld and rust-objcopy against libLLVM.dylib dynamically, with an rpath of @loader_path/../lib, i.e. lib/rustlib/<host>/lib. The rustc component only ships the dylib at lib/libLLVM.dylib and, unlike rustup, fenix sets no fallback library path, so these tools fail to load: dyld: Library not loaded: @rpath/libLLVM.dylib Symlink the dylib into lib/rustlib/*-apple-darwin/lib so the baked-in rpath resolves. Fixes#253
Since 1.98.0 the darwin tarball links LLVM dynamically and ships an unversioned libLLVM.dylib (rust-lang/rust#157205). This shadows our nixpkgs-built libLLVM.dylib when we run our own toolchain, leading to missing symbols. Rename the dylib that upstream ships to avoid the shadowing, similar to what upstream already does for linux.
--set llvm.link-shared=true on dist-aarch64-apple to link LLVM dynamically on MacOS.
Also, I fixed some link problems, by normalizing the libLLVM.dylib name, and creating a symlink(On Linux, we use linker script, but we can not use it for MacOS. ld64 does not recognize linker scripts) from versioned dylib to unversioned libLLVM.dylib to build successfully.
How I verified on my Mac
We create build/ for both rust-dev dist, and local build tests. Once dist finished, we have to clear the directory so we can use it for build tests
I saw a symlink created as expected
Result: build completed successfully
r? @Kobzol
cc: @ZuseZ4