Skip to content

Commit c4db0e1

Browse files
committed
Auto merge of rust-lang#154485 - ZuseZ4:revert-aarch64-apple-dynamic-llvm, r=jieyouxu
Revert "Link LLVM dynamically on aarch64-apple-darwin" and "re-enable enzyme/autodiff builds on dist-aarch64-apple" This reverts commit e7c268f. This approach was much better than the last time, as it didn't break downstream users like miri. Unfortunately, it still broke rustc contributors and is blocking some people: rust-lang#154408 The previously discussed solution (symlink) didn't seem to work for a user, and shipping two full copies of LLVM (old + new name) until the next stage0 compiler bump should probably be discussed first. We now also have artifacts of a nightly or two, which can be used for local experimenting, so hopefully next time we won't break anyone at all. cc @sgasho r? @jieyouxu
2 parents e161368 + 0d3d1ac commit c4db0e1

4 files changed

Lines changed: 5 additions & 20 deletions

File tree

compiler/rustc_llvm/build.rs

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -402,16 +402,6 @@ fn main() {
402402
continue;
403403
}
404404

405-
// On apple-darwin, llvm-config reports the versioned shared library name such as LLVM-22-..., but
406-
// the distributed toolchain ships libLLVM.dylib. Normalize the link name here.
407-
let name =
408-
if target.contains("apple-darwin") && llvm_kind == "dylib" && name.starts_with("LLVM-")
409-
{
410-
"LLVM"
411-
} else {
412-
name
413-
};
414-
415405
let kind = if name.starts_with("LLVM") {
416406
llvm_kind
417407
} else if is_static {

compiler/rustc_metadata/src/native_libs.rs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,12 @@ pub fn walk_native_lib_search_dirs<R>(
6262
f(&sess.target_tlib_path.dir.join("self-contained"), false)?;
6363
}
6464

65-
let has_shared_llvm_apple_darwin =
66-
sess.target.is_like_darwin && sess.target_tlib_path.dir.join("libLLVM.dylib").exists();
67-
6865
// Toolchains for some targets may ship `libunwind.a`, but place it into the main sysroot
6966
// library directory instead of the self-contained directories.
7067
// Sanitizer libraries have the same issue and are also linked by name on Apple targets.
7168
// The targets here should be in sync with `copy_third_party_objects` in bootstrap.
72-
// On Apple targets, shared LLVM is linked by name, so when `libLLVM.dylib` is
73-
// present in the target libdir, add that directory to the linker search path.
69+
// Finally there is shared LLVM library, which unlike compiler libraries, is linked by the name,
70+
// therefore requiring the search path for the linker.
7471
// FIXME: implement `-Clink-self-contained=+/-unwind,+/-sanitizers`, move the shipped libunwind
7572
// and sanitizers to self-contained directory, and stop adding this search path.
7673
// FIXME: On AIX this also has the side-effect of making the list of library search paths
@@ -80,8 +77,7 @@ pub fn walk_native_lib_search_dirs<R>(
8077
|| sess.target.os == Os::Linux
8178
|| sess.target.os == Os::Fuchsia
8279
|| sess.target.is_like_aix
83-
|| sess.target.is_like_darwin
84-
&& (!sess.sanitizers().is_empty() || has_shared_llvm_apple_darwin)
80+
|| sess.target.is_like_darwin && !sess.sanitizers().is_empty()
8581
|| sess.target.os == Os::Windows
8682
&& sess.target.env == Env::Gnu
8783
&& sess.target.cfg_abi == CfgAbi::Llvm
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
Change this file to make users of the `download-ci-llvm` configuration download
22
a new version of LLVM from CI, even if the LLVM submodule hasn’t changed.
33

4-
Last change is for: https://github.com/rust-lang/rust/pull/151063
4+
Last change is for: https://github.com/rust-lang/rust/pull/154485

src/ci/github-actions/jobs.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -509,7 +509,7 @@ auto:
509509
- name: dist-aarch64-apple
510510
env:
511511
SCRIPT: >-
512-
./x.py dist bootstrap enzyme
512+
./x.py dist bootstrap
513513
--include-default-paths
514514
--host=aarch64-apple-darwin
515515
--target=aarch64-apple-darwin
@@ -518,7 +518,6 @@ auto:
518518
--enable-sanitizers
519519
--enable-profiler
520520
--set rust.jemalloc
521-
--set llvm.link-shared=true
522521
--set rust.lto=thin
523522
--set rust.codegen-units=1
524523
# Aarch64 tooling only needs to support macOS 11.0 and up as nothing else

0 commit comments

Comments
 (0)