Skip to content

Commit 19672cc

Browse files
authored
[build] [mac] Fix mac build symbol export failure (#8690)
Issue: # ### Brief Summary Fixes exported name check on mac build, by looking for .dylib instead of .so copilot:summary ### Walkthrough Currently, Mac builds fail on the check exported symbols check, e.g. https://github.com/hughperkins/taichi/actions/runs/14691553460/job/41227531475?pr=2 : ``` /Library/Developer/CommandLineTools/usr/bin/nm: error: /Users/runner/work/taichi/taichi/_skbuild/macosx-15.0-arm64-3.9/cmake-install/python/taichi/_lib/c_api/lib/libtaichi_c_api.so: No such file or directory ``` The reason is that, on Mac, this file has '.dylib' extension. E.g. on my own Mac: ``` ~/git/taichi-m1 (hp/fix-cannot-name-an-alias-template-for-trigger|…1△2) $ find . -name '*_c_api*' ./misc/generate_c_api.py ./misc/generate_c_api_docs.py ./tests/run_c_api_compat_test.py ./_skbuild/macosx-15.0-arm64-3.9/cmake-build/CMakeFiles/taichi_c_api.dir ./_skbuild/macosx-15.0-arm64-3.9/cmake-build/CMakeFiles/taichi_static_c_api_tests.dir ./_skbuild/macosx-15.0-arm64-3.9/cmake-build/CMakeFiles/taichi_c_api_tests.dir ./_skbuild/macosx-15.0-arm64-3.9/cmake-build/CMakeFiles/taichi_static_c_api.dir ./_skbuild/macosx-15.0-arm64-3.9/cmake-build/libtaichi_c_api.dylib ./_skbuild/macosx-15.0-arm64-3.9/cmake-install/python/taichi/_lib/c_api/lib/libtaichi_c_api.dylib ./_skbuild/macosx-15.0-arm64-3.9/setuptools/lib.macosx-15.0-arm64-cpython-39/taichi/_lib/c_api/lib/libtaichi_c_api.dylib ./build/taichi_static_c_api ./build/taichi_static_c_api_tests ./build/taichi_c_api_tests ``` This PR updates the exported name check script to look for a .dylib, when building on mac (uname == "Darwin"), which addresses this issue, and should hopefully fix the build. copilot:walkthrough
1 parent 0c41277 commit 19672cc

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

.github/workflows/scripts/aot-demo.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,11 @@ function check-c-api-export-symbols {
173173
python3 .github/workflows/scripts/build.py wheel --permissive --write-env=/tmp/ti-aot-env.sh
174174
. /tmp/ti-aot-env.sh
175175

176-
LIBTAICHI_C_API=$TAICHI_C_API_INSTALL_DIR/lib/libtaichi_c_api.so
176+
SO_EXT=.so
177+
if [ $(uname) == Darwin ]; then {
178+
SO_EXT=.dylib
179+
} fi
180+
LIBTAICHI_C_API=$TAICHI_C_API_INSTALL_DIR/lib/libtaichi_c_api${SO_EXT}
177181

178182
# T: global functions
179183
# B: global variables (uninitialized)

0 commit comments

Comments
 (0)