Closed calvin2021y closed 4 months ago
@llvm/issue-subscribers-openmp
Author: None (calvin2021y)
Looks like you have to add openmp runtime to build.
Not sure about exact parameter in your case, but I was able to build LLVM using next command (with latest source version from GH):
cmake -S llvm -B build -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_ENABLE_PROJECTS="clang;lld" \
-DCMAKE_INSTALL_PREFIX=/Users/user/devel/llvm/llvm-rel/ \
-DLLVM_TARGETS_TO_BUILD='AArch64' \
-DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin23.4.0' \
-DLLVM_ENABLE_RUNTIMES="compiler-rt;libcxx;libcxxabi;libunwind;openmp" \
-DLLVM_CREATE_XCODE_TOOLCHAIN=OFF \
-DDEFAULT_SYSROOT="$(xcrun --show-sdk-path)" \
-DLLVM_ENABLE_LIBCXX=ON \
-DLIBCXX_PSTL_CPU_BACKEND=libdispatch
Pay attention to LLVM_ENABLE_RUNTIMES
line. I had same errors as yours, by rebuilding LLVM they're gone.
On macOS compiler-rt
is needed to build openmp
.
Looks like you have to add openmp runtime to build.
Not sure about exact parameter in your case, but I was able to build LLVM using next command (with latest source version from GH):
cmake -S llvm -B build -G Ninja \ -DCMAKE_BUILD_TYPE=Release \ -DLLVM_ENABLE_PROJECTS="clang;lld" \ -DCMAKE_INSTALL_PREFIX=/Users/user/devel/llvm/llvm-rel/ \ -DLLVM_TARGETS_TO_BUILD='AArch64' \ -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin23.4.0' \ -DLLVM_ENABLE_RUNTIMES="compiler-rt;libcxx;libcxxabi;libunwind;openmp" \ -DLLVM_CREATE_XCODE_TOOLCHAIN=OFF \ -DDEFAULT_SYSROOT="$(xcrun --show-sdk-path)" \ -DLLVM_ENABLE_LIBCXX=ON \ -DLIBCXX_PSTL_CPU_BACKEND=libdispatch
Pay attention to
LLVM_ENABLE_RUNTIMES
line. I had same errors as yours, by rebuilding LLVM they're gone.
Thanks for the tips, it works for me.
Not sure the llvm/utils/release/test-release.sh
need to be fixed or not.
hi @soloth
With your tips the target only for macOS desktop, there is no libclang_rt.asan_ios_dynamic.dylib for IOS and IOS-Simulator library generated.
The llvm/utils/release/test-release.sh
scripts will generate ios and IOS-Simulator library files. (but it not work
with llvm18 because bugs)
If I need to build macOS and ios/OS-Simulator toolchain at once, what need to be changed to make it work?
If I need to build macOS and ios/OS-Simulator toolchain at once, what need to be changed to make it work?
I have nothing to say about iOS, sorry.
Looks like you have to add openmp runtime to build.
Not sure about exact parameter in your case, but I was able to build LLVM using next command (with latest source version from GH):
cmake -S llvm -B build -G Ninja \ -DCMAKE_BUILD_TYPE=Release \ -DLLVM_ENABLE_PROJECTS="clang;lld" \ -DCMAKE_INSTALL_PREFIX=/Users/user/devel/llvm/llvm-rel/ \ -DLLVM_TARGETS_TO_BUILD='AArch64' \ -DLLVM_DEFAULT_TARGET_TRIPLE='aarch64-apple-darwin23.4.0' \ -DLLVM_ENABLE_RUNTIMES="compiler-rt;libcxx;libcxxabi;libunwind;openmp" \ -DLLVM_CREATE_XCODE_TOOLCHAIN=OFF \ -DDEFAULT_SYSROOT="$(xcrun --show-sdk-path)" \ -DLLVM_ENABLE_LIBCXX=ON \ -DLIBCXX_PSTL_CPU_BACKEND=libdispatch
Pay attention to
LLVM_ENABLE_RUNTIMES
line. I had same errors as yours, by rebuilding LLVM they're gone.
this method with 18.1.6
after install get errors:
dyld[18669]: weak-def symbol not found '__ZnwmSt19__type_descriptor_t'weak-def symbol not found '__ZnamSt19__type_descriptor_t'
I am getting the same issue. A bunch of google-test based unit tests are failing:
lvm-lit: /Users/mizvekov/Repos/llvm/1/llvm/utils/lit/lit/formats/googletest.py:38: warning: unable to discover google-tests in '/Users/mizvekov/Repos/llvm/1/build/rwd/llvm/tools/clang/unittests/Sema/./SemaTests': Command '['/Users/mizvekov/Repos/llvm/1/build/rwd/llvm/tools/clang/unittests/Sema/./SemaTests', '--gtest_list_tests', '--gtest_filter=-*DISABLED_*']' died with <Signals.SIGABRT: 6>.. Process output: b''
dyld[86022]: weak-def symbol not found '__ZnwmSt19__type_descriptor_t'weak-def symbol not found '__ZnamSt19__type_descriptor_t'
Failed Tests (31):
Clang-Unit :: Sema/./SemaTests/failed_to_discover_tests_from_gtest
It seems these tests are getting linked with the just built libcxx, instead of system libcxx.
Does compiler-rt
support iOS? There are certain functions used in libomp
that are part of compiler-rt
. It is not a macOS thing actually. On Linux, those functions are provided in GCC's compiler-rt
. If a platform doesn't support compiler-rt
, then that would be another issue.
I did once try to implement those functions in libomp
successfully, as shown in https://github.com/llvm/llvm-project/pull/83767. Later I realized I should not do that. That being said, probably the workaround here is to take that PR and see if libomp
still builds.
I'll close this issue for now since I don't think there is anything wrong on the OpenMP side.