summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvgeniy Stepanov <eugeni.stepanov@gmail.com>2012-08-27 14:28:27 +0000
committerEvgeniy Stepanov <eugeni.stepanov@gmail.com>2012-08-27 14:28:27 +0000
commitf72f08affc71970711b590eb6579be49e5aba25e (patch)
tree4e735d73cab1ad356c64ed7e3bbb2122349025ef
parent28d8be2d86c5b7e7049ff1aff562c468dc6db17c (diff)
downloadbcm5719-llvm-f72f08affc71970711b590eb6579be49e5aba25e.tar.gz
bcm5719-llvm-f72f08affc71970711b590eb6579be49e5aba25e.zip
CMake build rules for ASan/Android runtime.
llvm-svn: 162675
-rw-r--r--compiler-rt/CMakeLists.txt14
-rw-r--r--compiler-rt/lib/asan/CMakeLists.txt11
-rw-r--r--compiler-rt/lib/interception/CMakeLists.txt5
-rw-r--r--compiler-rt/lib/sanitizer_common/CMakeLists.txt6
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
OpenPOWER on IntegriCloud