aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/nightly-build.yml11
-rw-r--r--AGENTS/ARCH.md3
-rw-r--r--doc/build.md4
3 files changed, 17 insertions, 1 deletions
diff --git a/.github/workflows/nightly-build.yml b/.github/workflows/nightly-build.yml
index 62b8d49..5a3ec67 100644
--- a/.github/workflows/nightly-build.yml
+++ b/.github/workflows/nightly-build.yml
@@ -123,8 +123,17 @@ jobs:
- name: Install LLVM 23 and packaging dependencies
run: |
test "$(uname -m)" = arm64
+ brew update
brew install llvm@23 pandoc zlib zstd ncurses python
- test -x "$(brew --prefix llvm@23)/bin/clang++"
+ brew upgrade llvm@23
+ llvm_prefix=$(brew --prefix llvm@23)
+ test -x "$llvm_prefix/bin/clang++"
+ "$llvm_prefix/bin/llvm-nm" --defined-only --demangle \
+ "$llvm_prefix/lib/libclangDriver.a" > "$RUNNER_TEMP/clang-driver-symbols.txt"
+ if ! grep -F 'clang::driver::tools::AMDGPU::setArchNameInTriple(' "$RUNNER_TEMP/clang-driver-symbols.txt"; then
+ echo 'LLVM static archive is incomplete; install a Homebrew bottle with the duplicate-member fix.' >&2
+ exit 1
+ fi
- name: Build matching static LLD libraries
run: |
diff --git a/AGENTS/ARCH.md b/AGENTS/ARCH.md
index a73e086..216187f 100644
--- a/AGENTS/ARCH.md
+++ b/AGENTS/ARCH.md
@@ -156,6 +156,9 @@ The helper's build-time linker can use the installed LLVM dylib; cpsc still link
the LLD archives and static LLVM components.
Both macOS configurations explicitly select the SDK with `CMAKE_OSX_SYSROOT`
before compiler detection, so imported SDK include paths do not precede libc++.
+The macOS job updates Homebrew and upgrades LLVM 23 before building LLD. It checks
+that clangDriver defines `AMDGPU::setArchNameInTriple` to reject older bottles
+corrupted by Homebrew's duplicate-member LTO conversion (homebrew-core #301252).
Windows build instructions retain MSYS2 MINGW64. Its LLVM/Clang package names
and compiler executable names are unversioned; CMake still requires major 23.
diff --git a/doc/build.md b/doc/build.md
index dce9d7c..5aaff51 100644
--- a/doc/build.md
+++ b/doc/build.md
@@ -138,9 +138,13 @@ relocation tools with `xcode-select --install` if needed. The LLVM bottle below
provides Clang 23. Install the build tools and LLVM SDK with Homebrew:
```bash
+brew update
brew install cmake python llvm@23
+brew upgrade llvm@23
```
+Use an updated Homebrew LLVM 23 bottle. The original 23.1.0 bottle could lose one of the two `AMDGPU.cpp.o` members in `libclangDriver.a` during LTO conversion, causing an undefined `AMDGPU::setArchNameInTriple` at link time. Homebrew [fixed the archive conversion](https://github.com/Homebrew/homebrew-core/commit/7dd3210dd39afab6bad379cff8348a7c048119d1); updating formula metadata and upgrading LLVM avoids reusing the broken runner installation. Refresh any downloaded LLVM bottle too.
+
Recommended binary-bottle downloads to the build directory:
```bash