ld64.lld 22.1.8, the linker used for the MeshLib Python bindings on macOS, built with -O3 and IR-PGO by the same Clang 22.1.8 from our llvm-pgo kegs that calls it.
Homebrew stopped bottling lld for Intel macOS when it became a Tier 3 configuration, and neither the llvm-pgo keg nor the bottled llvm@22 contains ld64.lld, so it is built here instead.
| asset | arch | built on | SDK | minos |
size |
|---|---|---|---|---|---|
ld64.lld-22.1.8-pgo.x86_64-macos12 |
x86_64 | macOS 12.7.6, Xeon E5-1650 v2 | 12.3 | 12.0 | 59.2 MiB |
ld64.lld-22.1.8-pgo.arm64-macos13 |
arm64 | macOS 13.4.1, M1 Pro | 13.3 | 13.0 | 54.0 MiB |
Both link only /usr/lib/libSystem.B.dylib, libz.1.dylib and libc++.1.dylib: no keg-only Homebrew libraries, so a plain download is enough (LLVM_ENABLE_ZSTD, LIBXML2 and TERMINFO are off).
Profile and gain
The profile is collected by linking a Mach-O dylib of ~165 objects twice, plainly and with ThinLTO, which is the shape of a bindings link. Measured against a plain -O3 build of the same sources by the same compiler, min of 5 links each:
| x86_64 | arm64 | |
|---|---|---|
| plain link | 0.18 s -> 0.17 s | 0.05 s -> 0.05 s |
| ThinLTO link | 6.50 s -> 4.98 s (-23%) | 1.67 s -> 1.41 s (-16%) |
Verified
Each binary was installed on the hosted runners and used to link a ThinLTO dylib with the keg's Clang: macos-15-intel (15.7.9) and macos-26-intel (26.6.1) for x86_64, macos-15 (15.7.7) for arm64. A binary built against the older SDK runs on the newer systems, which is why the build happens on the oldest machines we have.
Install
curl -fsSL -o /usr/local/Cellar/llvm-pgo/22.1.8_2/bin/ld64.lld \
https://github.com/MeshInspector/toolchains/releases/download/lld-22.1.8-pgo-macos/ld64.lld-22.1.8-pgo.x86_64-macos12
chmod +x /usr/local/Cellar/llvm-pgo/22.1.8_2/bin/ld64.lld
Placing it next to the keg's clang++ is enough for -fuse-ld=lld to find it; sha256.txt carries the checksums (shasum -a 256 -c sha256.txt after cd into the download directory).
Built by .github/workflows/build-lld-macos.yml.