forked from llvm/llvm-project
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[libcxx] Add cache file for the GPU build (llvm#99348)
Summary: This patch adds a CMake cache config file for the GPU build. This cache will set the default required options when used from the LLVM runtime interface or directly. These options pretty much disable everything the GPU can't handle. With this and the following patches: llvm#99259, llvm#99243, llvm#99287, and llvm#99333, we will be able to build `libc++` targeting the GPU with an invocation like this. ``` $ cmake ../llvm -DRUNTIMES_nvptx64-nvidia-cuda_CACHE_FILES=${LLVM_SRC}/../libcxx/cmake/caches/NVPTX.cmake \ -DRUNTIMES_amdgcn-amd-amdhsa_CACHE_FILES=${LLVM_SRC}/../libcxx/cmake/caches/AMDGPU.cmake \ -DRUNTIMES_nvptx64-nvidia-cuda_LLVM_ENABLE_RUNTIMES=compiler-rt;libc;libcxx \ -DRUNTIMES_amdgcn-amd-amdhsa_LLVM_ENABLE_RUNTIMES=compiler-rt;libc;libcxx \ -DLLVM_RUNTIME_TARGETS=amdgcn-amd-amdhsa;nvptx64-nvidia-cuda \ ``` This will then install the libraries and headers into the appropriate locations for use with `clang`.
- Loading branch information
Showing
2 changed files
with
72 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
# Configuration options for libcxx. | ||
set(LIBCXX_ABI_VERSION 2 CACHE STRING "") | ||
set(LIBCXX_CXX_ABI libcxxabi CACHE STRING "") | ||
set(LIBCXX_ENABLE_EXCEPTIONS OFF CACHE BOOL "") | ||
set(LIBCXX_ENABLE_FILESYSTEM OFF CACHE BOOL "") | ||
set(LIBCXX_ENABLE_LOCALIZATION OFF CACHE BOOL "") | ||
set(LIBCXX_ENABLE_MONOTONIC_CLOCK ON CACHE BOOL "") | ||
set(LIBCXX_ENABLE_NEW_DELETE_DEFINITIONS ON CACHE BOOL "") | ||
set(LIBCXX_ENABLE_RANDOM_DEVICE OFF CACHE BOOL "") | ||
set(LIBCXX_ENABLE_RTTI OFF CACHE BOOL "") | ||
set(LIBCXX_ENABLE_SHARED OFF CACHE BOOL "") | ||
set(LIBCXX_ENABLE_STATIC_ABI_LIBRARY ON CACHE BOOL "") | ||
set(LIBCXX_ENABLE_STATIC ON CACHE BOOL "") | ||
set(LIBCXX_ENABLE_THREADS OFF CACHE BOOL "") | ||
set(LIBCXX_ENABLE_UNICODE OFF CACHE BOOL "") | ||
set(LIBCXX_ENABLE_WIDE_CHARACTERS OFF CACHE BOOL "") | ||
set(LIBCXX_HAS_TERMINAL_AVAILABLE OFF CACHE BOOL "") | ||
set(LIBCXX_INSTALL_LIBRARY ON CACHE BOOL "") | ||
set(LIBCXX_LIBC "llvm-libc" CACHE STRING "") | ||
set(LIBCXX_STATICALLY_LINK_ABI_IN_STATIC_LIBRARY ON CACHE BOOL "") | ||
set(LIBCXX_USE_COMPILER_RT ON CACHE BOOL "") | ||
|
||
# Configuration options for libcxxabi. | ||
set(LIBCXXABI_BAREMETAL ON CACHE BOOL "") | ||
set(LIBCXXABI_ENABLE_EXCEPTIONS OFF CACHE BOOL "") | ||
set(LIBCXXABI_ENABLE_NEW_DELETE_DEFINITIONS OFF CACHE BOOL "") | ||
set(LIBCXXABI_ENABLE_SHARED OFF CACHE BOOL "") | ||
set(LIBCXXABI_ENABLE_THREADS OFF CACHE BOOL "") | ||
set(LIBCXXABI_USE_LLVM_UNWINDER OFF CACHE BOOL "") | ||
|
||
# Necessary compile flags for AMDGPU. | ||
set(LIBCXX_ADDITIONAL_COMPILE_FLAGS | ||
"-nogpulib;-flto;-fconvergent-functions;-Xclang;-mcode-object-version=none" CACHE STRING "") | ||
set(LIBCXXABI_ADDITIONAL_COMPILE_FLAGS | ||
"-nogpulib;-flto;-fconvergent-functions;-Xclang;-mcode-object-version=none" CACHE STRING "") | ||
set(CMAKE_REQUIRED_FLAGS "-nogpulib -nodefaultlibs" CACHE STRING "") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
# Configuration options for libcxx. | ||
set(LIBCXX_ABI_VERSION 2 CACHE STRING "") | ||
set(LIBCXX_CXX_ABI libcxxabi CACHE STRING "") | ||
set(LIBCXX_ENABLE_EXCEPTIONS OFF CACHE BOOL "") | ||
set(LIBCXX_ENABLE_FILESYSTEM OFF CACHE BOOL "") | ||
set(LIBCXX_ENABLE_LOCALIZATION OFF CACHE BOOL "") | ||
set(LIBCXX_ENABLE_MONOTONIC_CLOCK ON CACHE BOOL "") | ||
set(LIBCXX_ENABLE_NEW_DELETE_DEFINITIONS ON CACHE BOOL "") | ||
set(LIBCXX_ENABLE_RANDOM_DEVICE OFF CACHE BOOL "") | ||
set(LIBCXX_ENABLE_RTTI OFF CACHE BOOL "") | ||
set(LIBCXX_ENABLE_SHARED OFF CACHE BOOL "") | ||
set(LIBCXX_ENABLE_STATIC_ABI_LIBRARY ON CACHE BOOL "") | ||
set(LIBCXX_ENABLE_STATIC ON CACHE BOOL "") | ||
set(LIBCXX_ENABLE_THREADS OFF CACHE BOOL "") | ||
set(LIBCXX_ENABLE_UNICODE OFF CACHE BOOL "") | ||
set(LIBCXX_ENABLE_WIDE_CHARACTERS OFF CACHE BOOL "") | ||
set(LIBCXX_HAS_TERMINAL_AVAILABLE OFF CACHE BOOL "") | ||
set(LIBCXX_INSTALL_LIBRARY ON CACHE BOOL "") | ||
set(LIBCXX_LIBC "llvm-libc" CACHE STRING "") | ||
set(LIBCXX_STATICALLY_LINK_ABI_IN_STATIC_LIBRARY ON CACHE BOOL "") | ||
set(LIBCXX_USE_COMPILER_RT ON CACHE BOOL "") | ||
|
||
# Configuration options for libcxxabi. | ||
set(LIBCXXABI_BAREMETAL ON CACHE BOOL "") | ||
set(LIBCXXABI_ENABLE_EXCEPTIONS OFF CACHE BOOL "") | ||
set(LIBCXXABI_ENABLE_NEW_DELETE_DEFINITIONS OFF CACHE BOOL "") | ||
set(LIBCXXABI_ENABLE_SHARED OFF CACHE BOOL "") | ||
set(LIBCXXABI_ENABLE_THREADS OFF CACHE BOOL "") | ||
set(LIBCXXABI_USE_LLVM_UNWINDER OFF CACHE BOOL "") | ||
|
||
# Necessary compile flags for NVPTX. | ||
set(LIBCXX_ADDITIONAL_COMPILE_FLAGS | ||
"-nogpulib;-flto;-fconvergent-functions;--cuda-feature=+ptx63" CACHE STRING "") | ||
set(LIBCXXABI_ADDITIONAL_COMPILE_FLAGS | ||
"-nogpulib;-flto;-fconvergent-functions;--cuda-feature=+ptx63" CACHE STRING "") | ||
set(CMAKE_REQUIRED_FLAGS "-nogpulib -nodefaultlibs -flto -c" CACHE STRING "") |