Skip to content

Commit 354fd25

Browse files
authored
fix build
1 parent ac5b324 commit 354fd25

1 file changed

Lines changed: 8 additions & 4 deletions

File tree

.github/workflows/dev.yml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77
branches: [ main ]
88

99
jobs:
10-
# JOB 1: Velocity & Unit Tests
10+
# JOB 1: Velocity & Unit Tests (Standard Runner)
1111
fast_dev_check:
1212
name: M-Series Fast-Track
1313
runs-on: macos-latest
@@ -47,7 +47,7 @@ jobs:
4747
python {project}/tests/benchmark.py --leak &&
4848
python {project}/tests/benchmark.py --stress
4949
50-
# JOB 2: Safety & Race Detection
50+
# JOB 2: Safety & Race Detection (The SIP-Bypass Runner)
5151
tsan_deep_scan:
5252
name: TSan Race Detection
5353
runs-on: macos-latest
@@ -82,10 +82,14 @@ jobs:
8282
CMAKE_ARGS="-DCMAKE_C_STANDARD=23 -DENABLE_SANITIZER=OFF -DENABLE_THREAD_SANITIZER=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo"
8383
8484
CIBW_TEST_REQUIRES: numpy psutil
85-
# We use a robust python-based discovery to find the library path inside site-packages
85+
# THE SIP BYPASS:
86+
# 1. Locate the TSan dylib.
87+
# 2. Copy the Python binary to an 'unrestricted' name/location.
88+
# 3. Run the copy with DYLD_INSERT_LIBRARIES.
8689
CIBW_TEST_COMMAND: >
8790
TSAN_LIB_PATH=$(python -c "import os, culverin; print(os.path.join(os.path.dirname(culverin.__file__), '.dylibs', 'libclang_rt.tsan_osx_dynamic.dylib'))") &&
91+
cp $(which python) ./python_tsan &&
8892
export DYLD_INSERT_LIBRARIES="$TSAN_LIB_PATH" &&
8993
export TSAN_OPTIONS="second_deadlock_stack=1 halt_on_error=1" &&
90-
python {project}/tests/benchmark.py --stress
94+
./python_tsan {project}/tests/benchmark.py --stress
9195

0 commit comments

Comments
 (0)