Index: compiler-rt/lib/asan_abi/CMakeLists.txt =================================================================== --- compiler-rt/lib/asan_abi/CMakeLists.txt +++ compiler-rt/lib/asan_abi/CMakeLists.txt @@ -13,11 +13,9 @@ 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 @@ 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} Index: compiler-rt/test/asan_abi/CMakeLists.txt =================================================================== --- compiler-rt/test/asan_abi/CMakeLists.txt +++ 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 @@ 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 @@ ) 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}