diff options
author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2012-08-27 14:28:27 +0000 |
---|---|---|
committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2012-08-27 14:28:27 +0000 |
commit | f72f08affc71970711b590eb6579be49e5aba25e (patch) | |
tree | 4e735d73cab1ad356c64ed7e3bbb2122349025ef | |
parent | 28d8be2d86c5b7e7049ff1aff562c468dc6db17c (diff) | |
download | bcm5719-llvm-f72f08affc71970711b590eb6579be49e5aba25e.tar.gz bcm5719-llvm-f72f08affc71970711b590eb6579be49e5aba25e.zip |
CMake build rules for ASan/Android runtime.
llvm-svn: 162675
-rw-r--r-- | compiler-rt/CMakeLists.txt | 14 | ||||
-rw-r--r-- | compiler-rt/lib/asan/CMakeLists.txt | 11 | ||||
-rw-r--r-- | compiler-rt/lib/interception/CMakeLists.txt | 5 | ||||
-rw-r--r-- | compiler-rt/lib/sanitizer_common/CMakeLists.txt | 6 |
4 files changed, 36 insertions, 0 deletions
diff --git a/compiler-rt/CMakeLists.txt b/compiler-rt/CMakeLists.txt index a7d9a89508d..fc0dd486750 100644 --- a/compiler-rt/CMakeLists.txt +++ b/compiler-rt/CMakeLists.txt @@ -48,6 +48,20 @@ try_compile(CAN_TARGET_I386 ${CMAKE_BINARY_DIR} ${SIMPLE_SOURCE32} COMPILE_DEFINITIONS "${TARGET_I386_CFLAGS}" CMAKE_FLAGS "-DCMAKE_EXE_LINKER_FLAGS:STRING=${TARGET_I386_CFLAGS}") +if(LLVM_ANDROID_TOOLCHAIN_DIR) + if(EXISTS ${LLVM_ANDROID_TOOLCHAIN_DIR}/arm-linux-androideabi) + set(CAN_TARGET_ARM_ANDROID 1) + set(TARGET_ARM_ANDROID_CFLAGS + -target arm-linux-androideabi + --sysroot=${LLVM_ANDROID_TOOLCHAIN_DIR}/sysroot + -B${LLVM_ANDROID_TOOLCHAIN_DIR} + ) + else() + set(CAN_TARGET_ARM_ANDROID 0) + endif() + # TODO: support i686 and MIPS Android toolchains +endif() + function(filter_available_targets out_var) set(archs) foreach(arch ${ARGN}) diff --git a/compiler-rt/lib/asan/CMakeLists.txt b/compiler-rt/lib/asan/CMakeLists.txt index d626d3b488e..1325a77a032 100644 --- a/compiler-rt/lib/asan/CMakeLists.txt +++ b/compiler-rt/lib/asan/CMakeLists.txt @@ -94,6 +94,17 @@ else() ) list(APPEND ASAN_RUNTIME_LIBRARIES clang_rt.asan-i386) endif() + if(CAN_TARGET_ARM_ANDROID) + add_library(clang_rt.asan-arm-android STATIC + ${ASAN_SOURCES} + $<TARGET_OBJECTS:RTInterception.arm.android> + $<TARGET_OBJECTS:RTSanitizerCommon.arm.android> + ) + set_target_compile_flags(clang_rt.asan-arm-android + ${ASAN_CFLAGS} ${TARGET_ARM_ANDROID_CFLAGS} + ) + list(APPEND ASAN_RUNTIME_LIBRARIES clang_rt.asan-arm-android) + endif() endif() set_property(TARGET ${ASAN_RUNTIME_LIBRARIES} APPEND PROPERTY diff --git a/compiler-rt/lib/interception/CMakeLists.txt b/compiler-rt/lib/interception/CMakeLists.txt index aacecf9b8b0..55046e91a28 100644 --- a/compiler-rt/lib/interception/CMakeLists.txt +++ b/compiler-rt/lib/interception/CMakeLists.txt @@ -43,4 +43,9 @@ else() set_target_compile_flags(RTInterception.i386 ${INTERCEPTION_CFLAGS} ${TARGET_I386_CFLAGS}) endif() + if(CAN_TARGET_ARM_ANDROID) + add_library(RTInterception.arm.android OBJECT ${INTERCEPTION_SOURCES}) + set_target_compile_flags(RTInterception.arm.android + ${INTERCEPTION_CFLAGS} ${TARGET_ARM_ANDROID_CFLAGS}) + endif() endif() diff --git a/compiler-rt/lib/sanitizer_common/CMakeLists.txt b/compiler-rt/lib/sanitizer_common/CMakeLists.txt index 5ac8e3b8740..d8ea7c8a74e 100644 --- a/compiler-rt/lib/sanitizer_common/CMakeLists.txt +++ b/compiler-rt/lib/sanitizer_common/CMakeLists.txt @@ -50,6 +50,12 @@ else() ${SANITIZER_CFLAGS} ${TARGET_I386_CFLAGS}) list(APPEND SANITIZER_RUNTIME_LIBRARIES RTSanitizerCommon.i386) endif() + if(CAN_TARGET_ARM_ANDROID) + add_library(RTSanitizerCommon.arm.android OBJECT ${SANITIZER_SOURCES}) + set_target_compile_flags(RTSanitizerCommon.arm.android + ${SANITIZER_CFLAGS} ${TARGET_ARM_ANDROID_CFLAGS}) + list(APPEND SANITIZER_RUNTIME_LIBRARIES RTSanitizerCommon.arm.android) + endif() endif() set_property(TARGET ${SANITIZER_RUNTIME_LIBRARIES} APPEND PROPERTY |