diff options
| author | Greg Fitzgerald <gregf@codeaurora.org> | 2014-05-29 22:38:13 +0000 |
|---|---|---|
| committer | Greg Fitzgerald <gregf@codeaurora.org> | 2014-05-29 22:38:13 +0000 |
| commit | 11b49c3818c3b827c027023d7765b0349325575e (patch) | |
| tree | e20efe05dacfe28583a301949b68aef9fd4ccb7a | |
| parent | 09f054fe370e80d81531a5efaba77c099bcee1cc (diff) | |
| download | bcm5719-llvm-11b49c3818c3b827c027023d7765b0349325575e.tar.gz bcm5719-llvm-11b49c3818c3b827c027023d7765b0349325575e.zip | |
light up sanitizers for ARM, take 2
Differential Revision: http://reviews.llvm.org/D3794
llvm-svn: 209856
| -rw-r--r-- | compiler-rt/CMakeLists.txt | 16 | ||||
| -rw-r--r-- | compiler-rt/lib/lsan/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | compiler-rt/test/asan/CMakeLists.txt | 15 | ||||
| -rw-r--r-- | compiler-rt/test/ubsan/CMakeLists.txt | 15 |
4 files changed, 35 insertions, 13 deletions
diff --git a/compiler-rt/CMakeLists.txt b/compiler-rt/CMakeLists.txt index b64893d693c..337e871b895 100644 --- a/compiler-rt/CMakeLists.txt +++ b/compiler-rt/CMakeLists.txt @@ -215,8 +215,12 @@ else() test_target_arch(i386 ${TARGET_32_BIT_CFLAGS}) elseif("${LLVM_NATIVE_ARCH}" STREQUAL "PowerPC") test_target_arch(powerpc64 ${TARGET_64_BIT_CFLAGS}) - elseif("${LLVM_NATIVE_ARCH}" STREQUAL "ARM") - test_target_arch(arm "") + endif() + + # Build ARM libraries if we are configured to test on ARM + if("${COMPILER_RT_TEST_TARGET_ARCH}" MATCHES "arm|aarch64") + test_target_arch(arm "-march=armv7-a") + test_target_arch(aarch64 "-march=armv8-a") endif() endif() @@ -347,14 +351,14 @@ endif() # Architectures supported by Sanitizer runtimes. Specific sanitizers may # support only subset of these (e.g. TSan works on x86_64 only). filter_available_targets(SANITIZER_COMMON_SUPPORTED_ARCH - x86_64 i386 powerpc64 arm) -filter_available_targets(ASAN_SUPPORTED_ARCH x86_64 i386 powerpc64) + x86_64 i386 powerpc64 arm aarch64) +filter_available_targets(ASAN_SUPPORTED_ARCH x86_64 i386 powerpc64 arm) filter_available_targets(DFSAN_SUPPORTED_ARCH x86_64) filter_available_targets(LSAN_SUPPORTED_ARCH x86_64) filter_available_targets(MSAN_SUPPORTED_ARCH x86_64) -filter_available_targets(PROFILE_SUPPORTED_ARCH x86_64 i386 arm) +filter_available_targets(PROFILE_SUPPORTED_ARCH x86_64 i386 arm aarch64) filter_available_targets(TSAN_SUPPORTED_ARCH x86_64) -filter_available_targets(UBSAN_SUPPORTED_ARCH x86_64 i386) +filter_available_targets(UBSAN_SUPPORTED_ARCH x86_64 i386 arm aarch64) add_subdirectory(include) diff --git a/compiler-rt/lib/lsan/CMakeLists.txt b/compiler-rt/lib/lsan/CMakeLists.txt index 0924282a6ea..f970859c1af 100644 --- a/compiler-rt/lib/lsan/CMakeLists.txt +++ b/compiler-rt/lib/lsan/CMakeLists.txt @@ -19,7 +19,7 @@ set(LSAN_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}) # The common files need to build on every arch supported by ASan. # (Even if they build into dummy object files.) filter_available_targets(LSAN_COMMON_SUPPORTED_ARCH - x86_64 i386 powerpc64 arm) + x86_64 i386 powerpc64 arm aarch64) add_custom_target(lsan) diff --git a/compiler-rt/test/asan/CMakeLists.txt b/compiler-rt/test/asan/CMakeLists.txt index 52a122ff4cd..b20502ae067 100644 --- a/compiler-rt/test/asan/CMakeLists.txt +++ b/compiler-rt/test/asan/CMakeLists.txt @@ -34,6 +34,21 @@ if(CAN_TARGET_arm) list(APPEND ASAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/ARMLinuxConfig) endif() +if(CAN_TARGET_aarch64) + # This is only true if we are cross-compiling. + # Build all tests with host compiler and use host tools. + set(ASAN_TEST_TARGET_CC ${COMPILER_RT_TEST_COMPILER}) + set(ASAN_TEST_TARGET_CFLAGS ${COMPILER_RT_TEST_COMPILER_CFLAGS}) + set(ASAN_TEST_CONFIG_SUFFIX "-aarch64-linux") + set(ASAN_TEST_BITS "64") + set(ASAN_TEST_DYNAMIC False) + configure_lit_site_cfg( + ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in + ${CMAKE_CURRENT_BINARY_DIR}/AArch64LinuxConfig/lit.site.cfg + ) + list(APPEND ASAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/AArch64LinuxConfig) +endif() + if(CAN_TARGET_x86_64 OR CAN_TARGET_powerpc64) set(ASAN_TEST_CONFIG_SUFFIX "64") set(ASAN_TEST_BITS "64") diff --git a/compiler-rt/test/ubsan/CMakeLists.txt b/compiler-rt/test/ubsan/CMakeLists.txt index ded124d1649..4c6b0bcf7d4 100644 --- a/compiler-rt/test/ubsan/CMakeLists.txt +++ b/compiler-rt/test/ubsan/CMakeLists.txt @@ -4,11 +4,15 @@ set(UBSAN_LIT_TEST_MODE "Standalone") configure_lit_site_cfg( ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in ${CMAKE_CURRENT_BINARY_DIR}/UbsanConfig/lit.site.cfg) +set(UBSAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/UbsanConfig) -set(UBSAN_LIT_TEST_MODE "AddressSanitizer") -configure_lit_site_cfg( - ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in - ${CMAKE_CURRENT_BINARY_DIR}/AsanConfig/lit.site.cfg) +if(ASAN_SUPPORTED_ARCH) + set(UBSAN_LIT_TEST_MODE "AddressSanitizer") + configure_lit_site_cfg( + ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in + ${CMAKE_CURRENT_BINARY_DIR}/AsanConfig/lit.site.cfg) + list(APPEND UBSAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/AsanConfig) +endif() set(UBSAN_TEST_DEPS ${SANITIZER_COMMON_LIT_TEST_DEPS}) if(NOT COMPILER_RT_STANDALONE_BUILD) @@ -16,7 +20,6 @@ if(NOT COMPILER_RT_STANDALONE_BUILD) endif() add_lit_testsuite(check-ubsan "Running UndefinedBehaviorSanitizer tests" - ${CMAKE_CURRENT_BINARY_DIR}/UbsanConfig - ${CMAKE_CURRENT_BINARY_DIR}/AsanConfig + ${UBSAN_TESTSUITES} DEPENDS ${UBSAN_TEST_DEPS}) set_target_properties(check-ubsan PROPERTIES FOLDER "UBSan unittests") |

