|
10 | 10 | #
|
11 | 11 | # Configure:
|
12 | 12 | # cmake -G Ninja ^
|
13 |
| -# -DTARGET_TRIPLE=armv7-linux-gnueabihf ^ |
| 13 | +# -DTARGET_TRIPLE=armv7-unknown-linux-gnueabihf ^ |
14 | 14 | # -DCMAKE_INSTALL_PREFIX=../install ^
|
15 | 15 | # -DDEFAULT_SYSROOT=<path-to-develop-arm-linux-root-fs> ^
|
16 | 16 | # -DLLVM_AR=<llvm_obj_root>/bin/llvm-ar[.exe] ^
|
|
25 | 25 | # cmake --build . --target check-llvm
|
26 | 26 | # cmake --build . --target check-clang
|
27 | 27 | # cmake --build . --target check-lld
|
28 |
| -# cmake --build . --target check-compiler-rt |
29 |
| -# cmake --build . --target check-cxxabi |
30 |
| -# cmake --build . --target check-unwind |
31 |
| -# cmake --build . --target check-cxx |
| 28 | +# cmake --build . --target check-compiler-rt-<TARGET_TRIPLE> |
| 29 | +# cmake --build . --target check-cxxabi-<TARGET_TRIPLE> |
| 30 | +# cmake --build . --target check-unwind-<TARGET_TRIPLE> |
| 31 | +# cmake --build . --target check-cxx-<TARGET_TRIPLE> |
32 | 32 |
|
33 | 33 | # LLVM_PROJECT_DIR is the path to the llvm-project directory.
|
34 | 34 | # The right way to compute it would probably be to use "${CMAKE_SOURCE_DIR}/../",
|
@@ -86,94 +86,111 @@ message(STATUS "Toolchain target triple: ${TARGET_TRIPLE}")
|
86 | 86 | set(CMAKE_CROSSCOMPILING ON CACHE BOOL "")
|
87 | 87 | set(CMAKE_CL_SHOWINCLUDES_PREFIX "Note: including file: " CACHE STRING "")
|
88 | 88 | # Required if COMPILER_RT_DEFAULT_TARGET_ONLY is ON
|
89 |
| -set(CMAKE_C_COMPILER_TARGET "${TARGET_TRIPLE}" CACHE STRING "") |
| 89 | +set(CMAKE_C_COMPILER_TARGET "${TARGET_TRIPLE}" CACHE STRING "") |
| 90 | +set(CMAKE_CXX_COMPILER_TARGET "${TARGET_TRIPLE}" CACHE STRING "") |
90 | 91 |
|
91 |
| -set(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR ON CACHE BOOL "") |
| 92 | +set(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR ON CACHE BOOL "") |
92 | 93 | set(LLVM_DEFAULT_TARGET_TRIPLE "${TARGET_TRIPLE}" CACHE STRING "")
|
93 | 94 | set(LLVM_TARGET_ARCH "${TARGET_TRIPLE}" CACHE STRING "")
|
94 | 95 | set(LLVM_LIT_ARGS "-vv ${LLVM_LIT_ARGS}" CACHE STRING "" FORCE)
|
95 | 96 |
|
96 | 97 | set(CLANG_DEFAULT_LINKER "lld" CACHE STRING "")
|
97 | 98 |
|
98 |
| -set(COMPILER_RT_BUILD_BUILTINS ON CACHE BOOL "") |
99 |
| -set(COMPILER_RT_BUILD_SANITIZERS OFF CACHE BOOL "") |
100 |
| -set(COMPILER_RT_BUILD_XRAY OFF CACHE BOOL "") |
101 |
| -set(COMPILER_RT_BUILD_LIBFUZZER OFF CACHE BOOL "") |
102 |
| -set(COMPILER_RT_BUILD_PROFILE OFF CACHE BOOL "") |
103 |
| -set(COMPILER_RT_BUILD_CRT OFF CACHE BOOL "") |
104 |
| -set(COMPILER_RT_BUILD_ORC OFF CACHE BOOL "") |
105 |
| -set(COMPILER_RT_DEFAULT_TARGET_ONLY ON CACHE BOOL "") |
106 |
| -set(COMPILER_RT_INCLUDE_TESTS ON CACHE BOOL "") |
107 |
| - |
108 |
| -set(LIBUNWIND_USE_COMPILER_RT ON CACHE BOOL "") |
109 |
| -set(LIBUNWIND_TARGET_TRIPLE "${TARGET_TRIPLE}" CACHE STRING "") |
110 |
| -set(LIBUNWIND_SYSROOT "${DEFAULT_SYSROOT}" CACHE STRING "") |
111 |
| -set(LIBUNWIND_ENABLE_SHARED OFF CACHE BOOL "") |
112 |
| - |
113 |
| -set(LIBCXXABI_USE_LLVM_UNWINDER ON CACHE BOOL "") |
114 |
| -set(LIBCXXABI_ENABLE_STATIC_UNWINDER ON CACHE BOOL "") |
115 |
| -set(LIBCXXABI_USE_COMPILER_RT ON CACHE BOOL "") |
116 |
| -set(LIBCXXABI_ENABLE_NEW_DELETE_DEFINITIONS OFF CACHE BOOL "") |
117 |
| -set(LIBCXXABI_TARGET_TRIPLE "${TARGET_TRIPLE}" CACHE STRING "") |
118 |
| -set(LIBCXXABI_SYSROOT "${DEFAULT_SYSROOT}" CACHE STRING "") |
119 |
| -set(LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXXABI OFF CACHE BOOL "") |
120 |
| -set(LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXX OFF CACHE BOOL "") |
121 |
| -set(LIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI OFF CACHE BOOL "") |
122 |
| -set(LIBCXX_LINK_TESTS_WITH_SHARED_LIBCXX OFF CACHE BOOL "") |
123 |
| - |
124 |
| -set(LIBCXX_USE_COMPILER_RT ON CACHE BOOL "") |
125 |
| -set(LIBCXX_TARGET_TRIPLE "${TARGET_TRIPLE}" CACHE STRING "") |
126 |
| -set(LIBCXX_SYSROOT "${DEFAULT_SYSROOT}" CACHE STRING "") |
127 |
| -set(LIBCXX_ENABLE_SHARED OFF CACHE BOOL "") |
128 |
| -set(LIBCXX_CXX_ABI "libcxxabi" CACHE STRING "") |
129 |
| -set(LIBCXX_CXX_ABI_INCLUDE_PATHS "${LLVM_PROJECT_DIR}/libcxxabi/include" CACHE PATH "") |
130 |
| -set(LIBCXX_CXX_ABI_LIBRARY_PATH "${CMAKE_BINARY_DIR}/lib/${LIBCXX_TARGET_TRIPLE}" CACHE PATH "") |
131 |
| -set(LIBCXX_ENABLE_NEW_DELETE_DEFINITIONS ON CACHE BOOL "") |
| 99 | +if(WIN32) |
| 100 | + set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded" CACHE STRING "") |
| 101 | + set(LLVM_USE_CRT_RELEASE "MT" CACHE STRING "") |
| 102 | +endif() |
132 | 103 |
|
133 | 104 | # Set up RPATH for the target runtime/builtin libraries.
|
134 | 105 | # See some details here: https://reviews.llvm.org/D91099
|
135 | 106 | if (NOT DEFINED RUNTIMES_INSTALL_RPATH)
|
136 | 107 | set(RUNTIMES_INSTALL_RPATH "\$ORIGIN/../lib;${CMAKE_INSTALL_PREFIX}/lib")
|
137 | 108 | endif()
|
138 | 109 |
|
139 |
| -set(BUILTINS_CMAKE_ARGS "-DCMAKE_SYSTEM_NAME=Linux;-DCMAKE_AR=${CMAKE_AR};-DCMAKE_INSTALL_RPATH=${RUNTIMES_INSTALL_RPATH};-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON" CACHE STRING "") |
140 |
| -set(RUNTIMES_CMAKE_ARGS "-DCMAKE_SYSTEM_NAME=Linux;-DCMAKE_AR=${CMAKE_AR};-DCMAKE_INSTALL_RPATH=${RUNTIMES_INSTALL_RPATH};-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON" CACHE STRING "") |
| 110 | +set(LLVM_BUILTIN_TARGETS "${TARGET_TRIPLE}" CACHE STRING "") |
| 111 | + |
| 112 | +set(BUILTINS_${TARGET_TRIPLE}_CMAKE_SYSTEM_NAME "Linux" CACHE STRING "") |
| 113 | +set(BUILTINS_${TARGET_TRIPLE}_CMAKE_SYSROOT "${DEFAULT_SYSROOT}" CACHE STRING "") |
| 114 | +set(BUILTINS_${TARGET_TRIPLE}_CMAKE_AR "${CMAKE_AR}" CACHE STRING "") |
| 115 | +set(BUILTINS_${TARGET_TRIPLE}_CMAKE_INSTALL_RPATH "${RUNTIMES_INSTALL_RPATH}" CACHE STRING "") |
| 116 | +set(BUILTINS_${TARGET_TRIPLE}_CMAKE_BUILD_WITH_INSTALL_RPATH ON CACHE BOOL "") |
| 117 | + |
| 118 | + |
| 119 | +set(LLVM_RUNTIME_TARGETS "${TARGET_TRIPLE}" CACHE STRING "") |
| 120 | + |
| 121 | +set(RUNTIMES_${TARGET_TRIPLE}_LLVM_ENABLE_RUNTIMES "${LLVM_ENABLE_RUNTIMES}" CACHE STRING "") |
| 122 | + |
| 123 | +set(RUNTIMES_${TARGET_TRIPLE}_CMAKE_SYSTEM_NAME "Linux" CACHE STRING "") |
| 124 | +set(RUNTIMES_${TARGET_TRIPLE}_CMAKE_SYSROOT "${DEFAULT_SYSROOT}" CACHE STRING "") |
| 125 | +set(RUNTIMES_${TARGET_TRIPLE}_CMAKE_AR "${CMAKE_AR}" CACHE STRING "") |
| 126 | +set(RUNTIMES_${TARGET_TRIPLE}_CMAKE_INSTALL_RPATH "${RUNTIMES_INSTALL_RPATH}" CACHE STRING "") |
| 127 | +set(RUNTIMES_${TARGET_TRIPLE}_CMAKE_BUILD_WITH_INSTALL_RPATH ON CACHE BOOL "") |
| 128 | + |
| 129 | +set(RUNTIMES_${TARGET_TRIPLE}_COMPILER_RT_BUILD_BUILTINS ON CACHE BOOL "") |
| 130 | +set(RUNTIMES_${TARGET_TRIPLE}_COMPILER_RT_BUILD_SANITIZERS OFF CACHE BOOL "") |
| 131 | +set(RUNTIMES_${TARGET_TRIPLE}_COMPILER_RT_BUILD_XRAY OFF CACHE BOOL "") |
| 132 | +set(RUNTIMES_${TARGET_TRIPLE}_COMPILER_RT_BUILD_LIBFUZZER OFF CACHE BOOL "") |
| 133 | +set(RUNTIMES_${TARGET_TRIPLE}_COMPILER_RT_BUILD_PROFILE OFF CACHE BOOL "") |
| 134 | +set(RUNTIMES_${TARGET_TRIPLE}_COMPILER_RT_BUILD_CRT OFF CACHE BOOL "") |
| 135 | +set(RUNTIMES_${TARGET_TRIPLE}_COMPILER_RT_BUILD_ORC OFF CACHE BOOL "") |
| 136 | +set(RUNTIMES_${TARGET_TRIPLE}_COMPILER_RT_DEFAULT_TARGET_ONLY ON CACHE BOOL "") |
| 137 | +set(RUNTIMES_${TARGET_TRIPLE}_COMPILER_RT_INCLUDE_TESTS ON CACHE BOOL "") |
| 138 | +set(RUNTIMES_${TARGET_TRIPLE}_COMPILER_RT_CAN_EXECUTE_TESTS ON CACHE BOOL "") |
| 139 | + |
| 140 | +set(RUNTIMES_${TARGET_TRIPLE}_COMPILER_RT_USE_BUILTINS_LIBRARY ON CACHE BOOL "") |
| 141 | + |
| 142 | +set(RUNTIMES_${TARGET_TRIPLE}_LIBUNWIND_USE_COMPILER_RT ON CACHE BOOL "") |
| 143 | +set(RUNTIMES_${TARGET_TRIPLE}_LIBUNWIND_ENABLE_SHARED OFF CACHE BOOL "") |
| 144 | + |
| 145 | +set(RUNTIMES_${TARGET_TRIPLE}_LIBCXXABI_USE_LLVM_UNWINDER ON CACHE BOOL "") |
| 146 | +set(RUNTIMES_${TARGET_TRIPLE}_LIBCXXABI_ENABLE_STATIC_UNWINDER ON CACHE BOOL "") |
| 147 | +set(RUNTIMES_${TARGET_TRIPLE}_LIBCXXABI_USE_COMPILER_RT ON CACHE BOOL "") |
| 148 | +set(RUNTIMES_${TARGET_TRIPLE}_LIBCXXABI_ENABLE_NEW_DELETE_DEFINITIONS OFF CACHE BOOL "") |
| 149 | +set(RUNTIMES_${TARGET_TRIPLE}_LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXXABI OFF CACHE BOOL "") |
| 150 | +set(RUNTIMES_${TARGET_TRIPLE}_LIBCXXABI_LINK_TESTS_WITH_SHARED_LIBCXX OFF CACHE BOOL "") |
| 151 | + |
| 152 | +set(RUNTIMES_${TARGET_TRIPLE}_LIBCXX_LINK_TESTS_WITH_SHARED_LIBCXXABI OFF CACHE BOOL "") |
| 153 | +set(RUNTIMES_${TARGET_TRIPLE}_LIBCXX_LINK_TESTS_WITH_SHARED_LIBCXX OFF CACHE BOOL "") |
| 154 | + |
| 155 | +set(RUNTIMES_${TARGET_TRIPLE}_LIBCXX_USE_COMPILER_RT ON CACHE BOOL "") |
| 156 | +set(RUNTIMES_${TARGET_TRIPLE}_LIBCXX_ENABLE_SHARED OFF CACHE BOOL "") |
| 157 | +set(RUNTIMES_${TARGET_TRIPLE}_LIBCXX_ABI_VERSION 2 CACHE STRING "") |
| 158 | +set(RUNTIMES_${TARGET_TRIPLE}_LIBCXX_CXX_ABI "libcxxabi" CACHE STRING "") #!!! |
| 159 | +set(RUNTIMES_${TARGET_TRIPLE}_LIBCXX_CXX_ABI_INCLUDE_PATHS "${LLVM_PROJECT_DIR}/libcxxabi/include" CACHE PATH "") |
| 160 | +set(RUNTIMES_${TARGET_TRIPLE}_LIBCXX_CXX_ABI_LIBRARY_PATH "${CMAKE_BINARY_DIR}/lib/${TARGET_TRIPLE}" CACHE PATH "") |
| 161 | +set(RUNTIMES_${TARGET_TRIPLE}_LIBCXX_ENABLE_NEW_DELETE_DEFINITIONS ON CACHE BOOL "") |
| 162 | + |
141 | 163 |
|
142 | 164 | find_package(Python3 COMPONENTS Interpreter)
|
143 | 165 |
|
144 | 166 | # Remote test configuration.
|
145 | 167 | if(DEFINED REMOTE_TEST_HOST)
|
146 |
| - set(DEFAULT_TEST_EXECUTOR "\\\"${Python3_EXECUTABLE}\\\" \\\"${LLVM_PROJECT_DIR}/libcxx/utils/ssh.py\\\" --host='${REMOTE_TEST_USER}@${REMOTE_TEST_HOST}'") |
147 |
| - set(DEFAULT_TEST_TARGET_INFO "libcxx.test.target_info.LinuxRemoteTI") |
148 |
| - |
149 | 168 | # Allow override with the custom values.
|
150 |
| - if(NOT DEFINED COMPILER_RT_EMULATOR) |
151 |
| - set(COMPILER_RT_EMULATOR "\\\"${Python3_EXECUTABLE}\\\" \\\"${LLVM_PROJECT_DIR}/llvm/utils/remote-exec.py\\\" --execdir %%T --exec-pattern='.*\\.c.*\\.tmp.*' --host='${REMOTE_TEST_USER}@${REMOTE_TEST_HOST}'" CACHE STRING "") |
152 |
| - endif() |
153 |
| - if(NOT DEFINED LIBUNWIND_TARGET_INFO) |
154 |
| - set(LIBUNWIND_TARGET_INFO "${DEFAULT_TEST_TARGET_INFO}" CACHE STRING "") |
| 169 | + if(NOT DEFINED DEFAULT_TEST_EXECUTOR) |
| 170 | + set(DEFAULT_TEST_EXECUTOR "\\\"${Python3_EXECUTABLE}\\\" \\\"${LLVM_PROJECT_DIR}/libcxx/utils/ssh.py\\\" --host='${REMOTE_TEST_USER}@${REMOTE_TEST_HOST}'") |
155 | 171 | endif()
|
156 |
| - if(NOT DEFINED LIBUNWIND_EXECUTOR) |
157 |
| - set(LIBUNWIND_EXECUTOR "${DEFAULT_TEST_EXECUTOR}" CACHE STRING "") |
| 172 | + if(NOT DEFINED DEFAULT_TEST_TARGET_INFO) |
| 173 | + set(DEFAULT_TEST_TARGET_INFO "libcxx.test.target_info.LinuxRemoteTI") |
158 | 174 | endif()
|
| 175 | + |
| 176 | + set(RUNTIMES_${TARGET_TRIPLE}_COMPILER_RT_EMULATOR |
| 177 | + "\\\"${Python3_EXECUTABLE}\\\" \\\"${LLVM_PROJECT_DIR}/llvm/utils/remote-exec.py\\\" --execdir %%T --exec-pattern='.*\\.c.*\\.tmp.*' --host='${REMOTE_TEST_USER}@${REMOTE_TEST_HOST}'" |
| 178 | + CACHE STRING "") |
| 179 | + |
| 180 | + set(RUNTIMES_${TARGET_TRIPLE}_LIBUNWIND_TARGET_INFO "${DEFAULT_TEST_TARGET_INFO}" CACHE STRING "") |
| 181 | + set(RUNTIMES_${TARGET_TRIPLE}_LIBUNWIND_EXECUTOR "${DEFAULT_TEST_EXECUTOR}" CACHE STRING "") |
| 182 | + |
159 | 183 | #NOTE: temporary workaround to fix the remote execution for libunwind tests.
|
160 | 184 | # https://reviews.llvm.org/D112082
|
161 |
| - set(LIBUNWIND_TEST_CONFIG "${LLVM_PROJECT_DIR}/libunwind/test/lit.site.cfg.in" CACHE PATH "") |
162 |
| - if(NOT DEFINED LIBCXXABI_TARGET_INFO) |
163 |
| - set(LIBCXXABI_TARGET_INFO "${DEFAULT_TEST_TARGET_INFO}" CACHE STRING "") |
164 |
| - endif() |
165 |
| - if(NOT DEFINED LIBCXXABI_EXECUTOR) |
166 |
| - set(LIBCXXABI_EXECUTOR "${DEFAULT_TEST_EXECUTOR}" CACHE STRING "") |
167 |
| - endif() |
168 |
| - if(NOT DEFINED LIBCXX_TARGET_INFO) |
169 |
| - set(LIBCXX_TARGET_INFO "${DEFAULT_TEST_TARGET_INFO}" CACHE STRING "") |
170 |
| - endif() |
171 |
| - if(NOT DEFINED LIBCXX_EXECUTOR) |
172 |
| - set(LIBCXX_EXECUTOR "${DEFAULT_TEST_EXECUTOR}" CACHE STRING "") |
173 |
| - endif() |
| 185 | + set(RUNTIMES_${TARGET_TRIPLE}_LIBUNWIND_TEST_CONFIG "${LLVM_PROJECT_DIR}/libunwind/test/lit.site.cfg.in" CACHE PATH "") |
| 186 | + |
| 187 | + set(RUNTIMES_${TARGET_TRIPLE}_LIBCXXABI_TARGET_INFO "${DEFAULT_TEST_TARGET_INFO}" CACHE STRING "") |
| 188 | + set(RUNTIMES_${TARGET_TRIPLE}_LIBCXXABI_EXECUTOR "${DEFAULT_TEST_EXECUTOR}" CACHE STRING "") |
| 189 | + set(RUNTIMES_${TARGET_TRIPLE}_LIBCXX_TARGET_INFO "${DEFAULT_TEST_TARGET_INFO}" CACHE STRING "") |
| 190 | + set(RUNTIMES_${TARGET_TRIPLE}_LIBCXX_EXECUTOR "${DEFAULT_TEST_EXECUTOR}" CACHE STRING "") |
174 | 191 | endif()
|
175 | 192 |
|
176 |
| -set(LLVM_INSTALL_TOOLCHAIN_ONLY ON CACHE BOOL "") |
| 193 | +set(LLVM_INSTALL_TOOLCHAIN_ONLY ON CACHE BOOL "") |
177 | 194 | set(LLVM_TOOLCHAIN_TOOLS
|
178 | 195 | llvm-ar
|
179 | 196 | llvm-cov
|
|
0 commit comments