[PATCH] D139536: [runtimes] Don't override LLVM_ENABLE_PER_TARGET_RUNTIME_DIR set from llvm
David Spickett via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 7 06:29:28 PST 2022
DavidSpickett created this revision.
Herald added a subscriber: kristof.beyls.
Herald added a project: All.
DavidSpickett requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
LLVM_ENABLE_PER_TARGET_RUNTIME_DIR is set in llvm/CMakeLists.txt
and in llvm/runtimes/CMakeLists.txt.
This meant that for a platform that doesn't use this layout yet
(arm Linux) the release script would build with it enabled
despite it being set to OFF in llvm's CMake.
To fix this, check if we have already defined the variable
and if so, use that value.
There are two other functions that unconditionally pass ON
for this setting. runtime_register_target appears to deal with
multilibs, where a per target layout seems like a requirement.
builtin_register_target is less clear, so I have left it alone for now.
At this time I don't think the arm Linux release build is hitting
that part of the CMake.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D139536
Files:
llvm/runtimes/CMakeLists.txt
Index: llvm/runtimes/CMakeLists.txt
===================================================================
--- llvm/runtimes/CMakeLists.txt
+++ llvm/runtimes/CMakeLists.txt
@@ -63,10 +63,14 @@
function(builtin_default_target compiler_rt_path)
cmake_parse_arguments(ARG "" "" "DEPENDS" ${ARGN})
- set(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR_default ON)
- # AIX should fold 32-bit & 64-bit arch libraries into a single archive.
- if (LLVM_TARGET_TRIPLE MATCHES "aix")
- set(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR_default OFF)
+ # May have been set by llvm/CMakeLists.txt.
+ if (NOT DEFINED LLVM_ENABLE_PER_TARGET_RUNTIME_DIR)
+ # AIX should fold 32-bit & 64-bit arch libraries into a single archive.
+ if (LLVM_TARGET_TRIPLE MATCHES "aix")
+ set(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR OFF)
+ else()
+ set(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR ON)
+ endif()
endif()
llvm_ExternalProject_Add(builtins
@@ -75,7 +79,7 @@
CMAKE_ARGS -DLLVM_LIBRARY_OUTPUT_INTDIR=${LLVM_LIBRARY_DIR}
-DLLVM_RUNTIME_OUTPUT_INTDIR=${LLVM_TOOLS_BINARY_DIR}
-DLLVM_DEFAULT_TARGET_TRIPLE=${LLVM_TARGET_TRIPLE}
- -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=${LLVM_ENABLE_PER_TARGET_RUNTIME_DIR_default}
+ -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=${LLVM_ENABLE_PER_TARGET_RUNTIME_DIR}
-DCMAKE_C_COMPILER_WORKS=ON
-DCMAKE_ASM_COMPILER_WORKS=ON
${COMMON_CMAKE_ARGS}
@@ -216,10 +220,14 @@
list(APPEND test_targets runtimes-test-depends check-runtimes)
endif()
- set(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR_default ON)
- # AIX should fold 32-bit & 64-bit arch libraries into a single archive.
- if (LLVM_TARGET_TRIPLE MATCHES "aix")
- set(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR_default OFF)
+ # May have been set by llvm/CMakeLists.txt.
+ if (NOT DEFINED LLVM_ENABLE_PER_TARGET_RUNTIME_DIR)
+ # AIX should fold 32-bit & 64-bit arch libraries into a single archive.
+ if (LLVM_TARGET_TRIPLE MATCHES "aix")
+ set(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR OFF)
+ else()
+ set(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR ON)
+ endif()
endif()
llvm_ExternalProject_Add(runtimes
@@ -230,7 +238,7 @@
-DLLVM_INCLUDE_TESTS=${LLVM_INCLUDE_TESTS}
-DLLVM_DEFAULT_TARGET_TRIPLE=${LLVM_TARGET_TRIPLE}
-DLLVM_ENABLE_PROJECTS_USED=${LLVM_ENABLE_PROJECTS_USED}
- -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=${LLVM_ENABLE_PER_TARGET_RUNTIME_DIR_default}
+ -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=${LLVM_ENABLE_PER_TARGET_RUNTIME_DIR}
-DLLVM_BUILD_TOOLS=${LLVM_BUILD_TOOLS}
-DCMAKE_C_COMPILER_WORKS=ON
-DCMAKE_CXX_COMPILER_WORKS=ON
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D139536.480891.patch
Type: text/x-patch
Size: 3109 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20221207/26a60351/attachment.bin>
More information about the llvm-commits
mailing list