Skip to content

Commit 5f4e5dd

Browse files
asg017claude
andcommitted
fuzz-macos: mark as continue-on-error (best-effort)
Homebrew LLVM 18 runtime dylibs use typed allocation ABI symbols (__ZnwmSt19__type_descriptor_t) not available in macOS 14's system libc++, causing dyld to abort. Xcode clang doesn't ship libFuzzer. Mark fuzz-macos as continue-on-error (same as fuzz-windows) so it doesn't block CI. Linux fuzzing remains the primary bug detector. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent d04e2ae commit 5f4e5dd

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

.github/workflows/fuzz.yaml

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,19 +61,25 @@ jobs:
6161
6262
fuzz-macos:
6363
runs-on: macos-14
64+
# Best-effort: Homebrew LLVM 18 runtime dylibs pull in
65+
# __ZnwmSt19__type_descriptor_t (typed allocation ABI) which
66+
# macOS 14's system libc++ doesn't provide, causing dyld to abort.
67+
# Xcode clang doesn't ship libclang_rt.fuzzer_osx.a (no libFuzzer).
68+
# TODO: fix macOS fuzzing (pin older compiler-rt, or static runtime).
69+
continue-on-error: true
6470
steps:
6571
- uses: actions/checkout@v4
66-
# Use Apple's Xcode clang (avoids Homebrew LLVM libc++ ABI issues
67-
# with __ZnwmSt19__type_descriptor_t on macOS 14).
72+
- name: Install LLVM 18
73+
run: brew install llvm@18
6874
- run: ./scripts/vendor.sh
6975
- name: Generate sqlite-vec.h
7076
run: make sqlite-vec.h
7177
- name: Build fuzz targets
7278
run: |
73-
SDK=$(xcrun --sdk macosx --show-sdk-path)
79+
LLVM=/opt/homebrew/opt/llvm@18
7480
make -C tests/fuzz all \
75-
FUZZ_CC=$(xcrun -f clang) \
76-
FUZZ_LDFLAGS="-isysroot $SDK"
81+
FUZZ_CC=$LLVM/bin/clang \
82+
FUZZ_LDFLAGS="-Wl,-ld_classic"
7783
- name: Run fuzz targets
7884
run: |
7985
DURATION=${{ github.event.inputs.duration || '60' }}

0 commit comments

Comments
 (0)