[compiler-rt] [orc-rt] Add ORC_ENABLE_OSX to control whether to build the orc runtime (PR #75536)
Ben Langmuir via llvm-commits
llvm-commits at lists.llvm.org
Thu Dec 14 13:55:38 PST 2023
https://github.com/benlangmuir created https://github.com/llvm/llvm-project/pull/75536
Embedded Darwin platforms have generalized COMPILER_RT_ENABLE_<PLATFORM> configuration settings, but currently 'osx' is always eabled on Darwin. Add ORC_ENABLE_OSX to allow explicitly *disabling* the orc runtime for macOS platform. This can be useful if you only want to build a specific embedded platform. It would be nice to generalize this to handle other compiler-rt projects (i.e. add COMPILER_RT_ENABLE_OSX), but would require additional attention from each compiler-rt project.
Note: some tests currently only are configured for osx, so these are disabled when osx is disabled.
>From cb8bdb0c0caa1039288ea12cd098f09219dfaa7e Mon Sep 17 00:00:00 2001
From: Ben Langmuir <blangmuir at apple.com>
Date: Thu, 14 Dec 2023 13:28:55 -0800
Subject: [PATCH] [orc-rt] Add ORC_ENABLE_OSX to control whether to build the
orc runtime
Embedded Darwin platforms have generalized COMPILER_RT_ENABLE_<PLATFORM>
configuration settings, but currently 'osx' is always eabled on Darwin.
Add ORC_ENABLE_OSX to allow explicitly *disabling* the orc runtime for
macOS platform. This can be useful if you only want to build a specific
embedded platform. It would be nice to generalize this to handle other
compiler-rt projects (i.e. add COMPILER_RT_ENABLE_OSX), but would
require additional attention from each compiler-rt project.
Note: some tests currently only are configured for osx, so these are
disabled when osx is disabled.
---
compiler-rt/cmake/config-ix.cmake | 8 ++++-
compiler-rt/lib/orc/tests/CMakeLists.txt | 46 ++++++++++++++----------
2 files changed, 34 insertions(+), 20 deletions(-)
diff --git a/compiler-rt/cmake/config-ix.cmake b/compiler-rt/cmake/config-ix.cmake
index a8e078f1ebc988..2dccd4954b2537 100644
--- a/compiler-rt/cmake/config-ix.cmake
+++ b/compiler-rt/cmake/config-ix.cmake
@@ -450,11 +450,17 @@ if(APPLE)
set(TSAN_SUPPORTED_OS osx)
set(XRAY_SUPPORTED_OS osx)
set(FUZZER_SUPPORTED_OS osx)
- set(ORC_SUPPORTED_OS osx)
+ set(ORC_SUPPORTED_OS)
set(UBSAN_SUPPORTED_OS osx)
set(LSAN_SUPPORTED_OS osx)
set(STATS_SUPPORTED_OS osx)
+ # FIXME: Support a general COMPILER_RT_ENABLE_OSX to match other platforms.
+ set(ORC_ENABLE_OSX 1 CACHE BOOL "Whether to build the orc runtime library for osx")
+ if(ORC_ENABLE_OSX)
+ set(ORC_SUPPORTED_OS osx)
+ endif()
+
# Note: In order to target x86_64h on OS X the minimum deployment target must
# be 10.8 or higher.
set(DEFAULT_SANITIZER_MIN_OSX_VERSION 10.10)
diff --git a/compiler-rt/lib/orc/tests/CMakeLists.txt b/compiler-rt/lib/orc/tests/CMakeLists.txt
index 6014ed328d2cc8..2f1cb7657c2818 100644
--- a/compiler-rt/lib/orc/tests/CMakeLists.txt
+++ b/compiler-rt/lib/orc/tests/CMakeLists.txt
@@ -27,7 +27,9 @@ endfunction()
function(get_orc_lib_for_arch arch lib)
if(APPLE)
- set(tgt_name "RTOrc.test.osx")
+ if("osx" IN_LIST ORC_SUPPORTED_OS)
+ set(tgt_name "RTOrc.test.osx")
+ endif()
else()
set(tgt_name "RTOrc.test.${arch}")
endif()
@@ -65,14 +67,16 @@ macro(add_orc_unittest testname)
foreach(arch ${ORC_TEST_ARCH})
set(TEST_OBJECTS)
get_orc_lib_for_arch(${arch} ORC_RUNTIME_LIBS)
- generate_compiler_rt_tests(TEST_OBJECTS
- OrcRTUnitTests "${testname}-${arch}-Test" "${arch}"
- SOURCES ${TEST_SOURCES} ${COMPILER_RT_GTEST_SOURCE}
- RUNTIME "${ORC_RUNTIME_LIBS}"
- COMPILE_DEPS ${TEST_HEADERS} ${ORC_HEADERS}
- DEPS llvm_gtest ${ORC_DEPS}
- CFLAGS ${ORC_UNITTEST_CFLAGS} ${COMPILER_RT_GTEST_CFLAGS}
- LINK_FLAGS ${ORC_UNITTEST_LINK_FLAGS})
+ if(ORC_RUNTIME_LIBS)
+ generate_compiler_rt_tests(TEST_OBJECTS
+ OrcRTUnitTests "${testname}-${arch}-Test" "${arch}"
+ SOURCES ${TEST_SOURCES} ${COMPILER_RT_GTEST_SOURCE}
+ RUNTIME "${ORC_RUNTIME_LIBS}"
+ COMPILE_DEPS ${TEST_HEADERS} ${ORC_HEADERS}
+ DEPS llvm_gtest ${ORC_DEPS}
+ CFLAGS ${ORC_UNITTEST_CFLAGS} ${COMPILER_RT_GTEST_CFLAGS}
+ LINK_FLAGS ${ORC_UNITTEST_LINK_FLAGS})
+ endif()
endforeach()
endif()
endmacro()
@@ -83,21 +87,25 @@ macro(add_orc_tool toolname)
foreach(arch ${ORC_TEST_ARCH})
set(TOOL_OBJECTS)
get_orc_lib_for_arch(${arch} ORC_RUNTIME_LIBS)
- generate_compiler_rt_tests(TOOL_OBJECTS
- OrcRTTools "${toolname}-${arch}" "${arch}"
- SOURCES ${TOOL_SOURCES}
- RUNTIME "${ORC_RUNTIME_LIBS}"
- COMPILE_DEPS ${TOOL_HEADERS} ${ORC_HEADERS}
- DEPS ${ORC_DEPS}
- CFLAGS ${ORC_UNITTEST_CFLAGS}
- LINK_FLAGS ${ORC_UNITTEST_LINK_FLAGS})
+ if(ORC_RUNTIME_LIBS)
+ generate_compiler_rt_tests(TOOL_OBJECTS
+ OrcRTTools "${toolname}-${arch}" "${arch}"
+ SOURCES ${TOOL_SOURCES}
+ RUNTIME "${ORC_RUNTIME_LIBS}"
+ COMPILE_DEPS ${TOOL_HEADERS} ${ORC_HEADERS}
+ DEPS ${ORC_DEPS}
+ CFLAGS ${ORC_UNITTEST_CFLAGS}
+ LINK_FLAGS ${ORC_UNITTEST_LINK_FLAGS})
+ endif()
endforeach()
endif()
endmacro()
if (APPLE)
- add_orc_lib("RTOrc.test.osx"
- $<TARGET_OBJECTS:RTOrc.osx>)
+ if("osx" IN_LIST ORC_SUPPORTED_OS)
+ add_orc_lib("RTOrc.test.osx"
+ $<TARGET_OBJECTS:RTOrc.osx>)
+ endif()
else()
foreach(arch ${ORC_SUPPORTED_ARCH})
add_orc_lib("RTOrc.test.${arch}"
More information about the llvm-commits
mailing list