From: Blue Gaston Date: Mon, 26 Jun 2023 17:28:16 +0000 (-0700) Subject: [ASanAbi][Darwin] Build ios stable ABI library X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f171c76b68ef465bf49a0f193feb9e43c819b859;p=platform%2Fupstream%2Fllvm.git [ASanAbi][Darwin] Build ios stable ABI library In the initially commit, we limited the static archive to osx. This patch removes that limitation. Differential Revision: https://reviews.llvm.org/D153789 --- diff --git a/compiler-rt/lib/asan_abi/CMakeLists.txt b/compiler-rt/lib/asan_abi/CMakeLists.txt index b2f5ddba8b08..ffb17eed5f71 100644 --- a/compiler-rt/lib/asan_abi/CMakeLists.txt +++ b/compiler-rt/lib/asan_abi/CMakeLists.txt @@ -13,11 +13,9 @@ include_directories(..) add_compiler_rt_component(asan_abi) if (APPLE) - # TODO: set in config-ix.cmake - set(ASAN_ABI_SUPPORTED_OS osx) # Compile Stable API sources into an object library. add_compiler_rt_object_libraries(RTASAN_ABI - OS ${ASAN_ABI_SUPPORTED_OS} + OS ${SANITIZER_COMMON_SUPPORTED_OS} ARCHS ${ASAN_ABI_SUPPORTED_ARCH} SOURCES ${ASAN_ABI_SOURCES} ADDITIONAL_HEADERS ${ASAN_ABI_HEADERS} @@ -25,7 +23,7 @@ if (APPLE) add_compiler_rt_runtime(clang_rt.asan_abi STATIC - OS ${ASAN_ABI_SUPPORTED_OS} + OS ${SANITIZER_COMMON_SUPPORTED_OS} ARCHS ${ASAN_ABI_SUPPORTED_ARCH} OBJECT_LIBS RTASAN_ABI CFLAGS ${SANITIZER_COMMON_CFLAGS} diff --git a/compiler-rt/test/asan_abi/CMakeLists.txt b/compiler-rt/test/asan_abi/CMakeLists.txt index e3e41c0e5ef1..a1f42ca076ed 100644 --- a/compiler-rt/test/asan_abi/CMakeLists.txt +++ b/compiler-rt/test/asan_abi/CMakeLists.txt @@ -1,5 +1,4 @@ set(ASAN_ABI_LIT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) - set(ASAN_ABI_TESTSUITES) macro(get_bits_for_arch arch bits) @@ -28,11 +27,8 @@ foreach(arch ${ASAN_ABI_TEST_ARCH}) string(TOLOWER "-${arch}-${OS_NAME}" ASAN_ABI_TEST_CONFIG_SUFFIX) get_bits_for_arch(${arch} ASAN_ABI_TEST_BITS) get_test_cc_for_arch(${arch} ASAN_ABI_TEST_TARGET_CC ASAN_ABI_TEST_TARGET_CFLAGS) - if(ANDROID OR APPLE) - set(ASAN_ABI_TEST_DYNAMIC True) - else() - set(ASAN_ABI_TEST_DYNAMIC False) - endif() + set(ASAN_ABI_TEST_DYNAMIC True) + string(TOUPPER ${arch} ARCH_UPPER_CASE) set(CONFIG_NAME ${ARCH_UPPER_CASE}${OS_NAME}Config) @@ -43,6 +39,46 @@ foreach(arch ${ASAN_ABI_TEST_ARCH}) ) endforeach() +if(APPLE) + set(ASAN_ABI_TEST_TARGET_CC ${COMPILER_RT_TEST_COMPILER}) + set(ASAN_ABI_TEST_APPLE_PLATFORMS ${SANITIZER_COMMON_SUPPORTED_OS}) + + foreach(platform ${ASAN_ABI_TEST_APPLE_PLATFORMS}) + if ("${platform}" STREQUAL "osx") + # Skip macOS because it's handled by the code above that builds tests for the host machine. + continue() + endif() + list_intersect( + ASAN_ABI_TEST_${platform}_ARCHS + ASAN_ABI_SUPPORTED_ARCH + DARWIN_${platform}_ARCHS + ) + foreach(arch ${ASAN_ABI_TEST_${platform}_ARCHS}) + get_test_cflags_for_apple_platform( + "${platform}" + "${arch}" + ASAN_ABI_TEST_TARGET_CFLAGS + ) + string(TOUPPER "${arch}" ARCH_UPPER_CASE) + get_capitalized_apple_platform("${platform}" PLATFORM_CAPITALIZED) + set(CONFIG_NAME "${PLATFORM_CAPITALIZED}${ARCH_UPPER_CASE}Config") + set(ASAN_ABI_TEST_CONFIG_SUFFIX "-${arch}-${platform}") + set(ASAN_ABI_TEST_APPLE_PLATFORM "${platform}") + set(ASAN_ABI_TEST_TARGET_ARCH "${arch}") + set(ASAN_ABI_TEST_MIN_DEPLOYMENT_TARGET_FLAG "${DARWIN_${platform}_MIN_VER_FLAG}") + get_bits_for_arch(${arch} ASAN_ABI_TEST_BITS) + configure_lit_site_cfg( + ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in + ${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg.py + ) + add_lit_testsuite(check-asan-abi-${platform}-${arch} "AddressSanitizerABI ${platform} ${arch} tests" + ${ASAN_ABI_TESTSUITES} + EXCLUDE_FROM_CHECK_ALL + DEPENDS ${ASAN_ABI_TEST_DEPS}) + endforeach() + endforeach() +endif() + add_lit_testsuite(check-asan-abi "Running the AddressSanitizerABI tests" ${ASAN_ABI_TESTSUITES} ${exclude_from_check_all}