Skip to content

Commit e39533e

Browse files
committed
[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
1 parent 061ab3e commit e39533e

File tree

2 files changed

+44
-10
lines changed

2 files changed

+44
-10
lines changed

compiler-rt/lib/asan_abi/CMakeLists.txt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,17 @@ include_directories(..)
1313
add_compiler_rt_component(asan_abi)
1414

1515
if (APPLE)
16-
# TODO: set in config-ix.cmake
17-
set(ASAN_ABI_SUPPORTED_OS osx)
1816
# Compile Stable API sources into an object library.
1917
add_compiler_rt_object_libraries(RTASAN_ABI
20-
OS ${ASAN_ABI_SUPPORTED_OS}
18+
OS ${SANITIZER_COMMON_SUPPORTED_OS}
2119
ARCHS ${ASAN_ABI_SUPPORTED_ARCH}
2220
SOURCES ${ASAN_ABI_SOURCES}
2321
ADDITIONAL_HEADERS ${ASAN_ABI_HEADERS}
2422
CFLAGS ${SANITIZER_COMMON_CFLAGS})
2523

2624
add_compiler_rt_runtime(clang_rt.asan_abi
2725
STATIC
28-
OS ${ASAN_ABI_SUPPORTED_OS}
26+
OS ${SANITIZER_COMMON_SUPPORTED_OS}
2927
ARCHS ${ASAN_ABI_SUPPORTED_ARCH}
3028
OBJECT_LIBS RTASAN_ABI
3129
CFLAGS ${SANITIZER_COMMON_CFLAGS}

compiler-rt/test/asan_abi/CMakeLists.txt

Lines changed: 42 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
set(ASAN_ABI_LIT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
2-
32
set(ASAN_ABI_TESTSUITES)
43

54
macro(get_bits_for_arch arch bits)
@@ -28,11 +27,8 @@ foreach(arch ${ASAN_ABI_TEST_ARCH})
2827
string(TOLOWER "-${arch}-${OS_NAME}" ASAN_ABI_TEST_CONFIG_SUFFIX)
2928
get_bits_for_arch(${arch} ASAN_ABI_TEST_BITS)
3029
get_test_cc_for_arch(${arch} ASAN_ABI_TEST_TARGET_CC ASAN_ABI_TEST_TARGET_CFLAGS)
31-
if(ANDROID OR APPLE)
32-
set(ASAN_ABI_TEST_DYNAMIC True)
33-
else()
34-
set(ASAN_ABI_TEST_DYNAMIC False)
35-
endif()
30+
set(ASAN_ABI_TEST_DYNAMIC True)
31+
3632
string(TOUPPER ${arch} ARCH_UPPER_CASE)
3733
set(CONFIG_NAME ${ARCH_UPPER_CASE}${OS_NAME}Config)
3834

@@ -43,6 +39,46 @@ foreach(arch ${ASAN_ABI_TEST_ARCH})
4339
)
4440
endforeach()
4541

42+
if(APPLE)
43+
set(ASAN_ABI_TEST_TARGET_CC ${COMPILER_RT_TEST_COMPILER})
44+
set(ASAN_ABI_TEST_APPLE_PLATFORMS ${SANITIZER_COMMON_SUPPORTED_OS})
45+
46+
foreach(platform ${ASAN_ABI_TEST_APPLE_PLATFORMS})
47+
if ("${platform}" STREQUAL "osx")
48+
# Skip macOS because it's handled by the code above that builds tests for the host machine.
49+
continue()
50+
endif()
51+
list_intersect(
52+
ASAN_ABI_TEST_${platform}_ARCHS
53+
ASAN_ABI_SUPPORTED_ARCH
54+
DARWIN_${platform}_ARCHS
55+
)
56+
foreach(arch ${ASAN_ABI_TEST_${platform}_ARCHS})
57+
get_test_cflags_for_apple_platform(
58+
"${platform}"
59+
"${arch}"
60+
ASAN_ABI_TEST_TARGET_CFLAGS
61+
)
62+
string(TOUPPER "${arch}" ARCH_UPPER_CASE)
63+
get_capitalized_apple_platform("${platform}" PLATFORM_CAPITALIZED)
64+
set(CONFIG_NAME "${PLATFORM_CAPITALIZED}${ARCH_UPPER_CASE}Config")
65+
set(ASAN_ABI_TEST_CONFIG_SUFFIX "-${arch}-${platform}")
66+
set(ASAN_ABI_TEST_APPLE_PLATFORM "${platform}")
67+
set(ASAN_ABI_TEST_TARGET_ARCH "${arch}")
68+
set(ASAN_ABI_TEST_MIN_DEPLOYMENT_TARGET_FLAG "${DARWIN_${platform}_MIN_VER_FLAG}")
69+
get_bits_for_arch(${arch} ASAN_ABI_TEST_BITS)
70+
configure_lit_site_cfg(
71+
${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
72+
${CMAKE_CURRENT_BINARY_DIR}/${CONFIG_NAME}/lit.site.cfg.py
73+
)
74+
add_lit_testsuite(check-asan-abi-${platform}-${arch} "AddressSanitizerABI ${platform} ${arch} tests"
75+
${ASAN_ABI_TESTSUITES}
76+
EXCLUDE_FROM_CHECK_ALL
77+
DEPENDS ${ASAN_ABI_TEST_DEPS})
78+
endforeach()
79+
endforeach()
80+
endif()
81+
4682
add_lit_testsuite(check-asan-abi "Running the AddressSanitizerABI tests"
4783
${ASAN_ABI_TESTSUITES}
4884
${exclude_from_check_all}

0 commit comments

Comments
 (0)