diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2015-01-07 19:55:37 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2015-01-07 19:55:37 +0000 |
commit | ca9211ecdede9bdedb812b2243a4abdb8dacd1b9 (patch) | |
tree | 9b19e801150082c33e9152275829a6ce90614b55 /lib/CMakeLists.txt | |
parent | 8ef50bf3d1c287b5013c3168de77a462dfce3495 (diff) | |
download | src-ca9211ecdede9bdedb812b2243a4abdb8dacd1b9.tar.gz src-ca9211ecdede9bdedb812b2243a4abdb8dacd1b9.zip |
Import compiler-rt trunk r224034.vendor/compiler-rt/compiler-rt-r224034
Notes
Notes:
svn path=/vendor/compiler-rt/dist/; revision=276789
svn path=/vendor/compiler-rt/compiler-rt-r224034/; revision=276790; tag=vendor/compiler-rt/compiler-rt-r224034
Diffstat (limited to 'lib/CMakeLists.txt')
-rw-r--r-- | lib/CMakeLists.txt | 232 |
1 files changed, 29 insertions, 203 deletions
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index b620828beb2b..6929e682fac6 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -1,216 +1,42 @@ # First, add the subdirectories which contain feature-based runtime libraries # and several convenience helper libraries. -# Don't build sanitizers in the bootstrap build. -if(LLVM_USE_SANITIZER STREQUAL "") - # AddressSanitizer is supported on Linux and Mac OS X. - # 32-bit Windows support is experimental. - if(CMAKE_SYSTEM_NAME MATCHES "Darwin|Linux") - set(SUPPORTS_BUILDING_ASAN TRUE) - elseif(CMAKE_SYSTEM_NAME MATCHES "Windows" - AND MSVC AND CMAKE_SIZEOF_VOID_P EQUAL 4) - set(SUPPORTS_BUILDING_ASAN TRUE) - else() - set(SUPPORTS_BUILDING_ASAN FALSE) - endif() - if(SUPPORTS_BUILDING_ASAN) - add_subdirectory(asan) - add_subdirectory(interception) - add_subdirectory(sanitizer_common) - endif() - if(CMAKE_SYSTEM_NAME MATCHES "Darwin|Linux" AND NOT ANDROID) - # LSan, UBsan and profile can be built on Mac OS and Linux. - add_subdirectory(lsan) - add_subdirectory(profile) - add_subdirectory(ubsan) - endif() - if(CMAKE_SYSTEM_NAME MATCHES "Linux" AND NOT ANDROID) - # ThreadSanitizer and MemorySanitizer are supported on Linux only. - add_subdirectory(tsan) - add_subdirectory(msan) - add_subdirectory(msandr) - add_subdirectory(dfsan) - endif() +include(AddCompilerRT) +include(SanitizerUtils) + +if(COMPILER_RT_HAS_SANITIZER_COMMON) + add_subdirectory(interception) + add_subdirectory(sanitizer_common) +endif() + +if(COMPILER_RT_HAS_ASAN) + add_subdirectory(asan) endif() -# The top-level lib directory contains a large amount of C code which provides -# generic implementations of the core runtime library along with optimized -# architecture-specific code in various subdirectories. +add_subdirectory(builtins) -set(GENERIC_SOURCES - absvdi2.c - absvsi2.c - absvti2.c - adddf3.c - addsf3.c - addvdi3.c - addvsi3.c - addvti3.c - apple_versioning.c - ashldi3.c - ashlti3.c - ashrdi3.c - ashrti3.c - # FIXME: atomic.c may only be compiled if host compiler understands _Atomic - # atomic.c - clear_cache.c - clzdi2.c - clzsi2.c - clzti2.c - cmpdi2.c - cmpti2.c - comparedf2.c - comparesf2.c - ctzdi2.c - ctzsi2.c - ctzti2.c - divdc3.c - divdf3.c - divdi3.c - divmoddi4.c - divmodsi4.c - divsc3.c - divsf3.c - divsi3.c - divti3.c - divxc3.c - enable_execute_stack.c - eprintf.c - extendsfdf2.c - ffsdi2.c - ffsti2.c - fixdfdi.c - fixdfsi.c - fixdfti.c - fixsfdi.c - fixsfsi.c - fixsfti.c - fixunsdfdi.c - fixunsdfsi.c - fixunsdfti.c - fixunssfdi.c - fixunssfsi.c - fixunssfti.c - fixunsxfdi.c - fixunsxfsi.c - fixunsxfti.c - fixxfdi.c - fixxfti.c - floatdidf.c - floatdisf.c - floatdixf.c - floatsidf.c - floatsisf.c - floattidf.c - floattisf.c - floattixf.c - floatundidf.c - floatundisf.c - floatundixf.c - floatunsidf.c - floatunsisf.c - floatuntidf.c - floatuntisf.c - floatuntixf.c - gcc_personality_v0.c - int_util.c - lshrdi3.c - lshrti3.c - moddi3.c - modsi3.c - modti3.c - muldc3.c - muldf3.c - muldi3.c - mulodi4.c - mulosi4.c - muloti4.c - mulsc3.c - mulsf3.c - multi3.c - mulvdi3.c - mulvsi3.c - mulvti3.c - mulxc3.c - negdf2.c - negdi2.c - negsf2.c - negti2.c - negvdi2.c - negvsi2.c - negvti2.c - paritydi2.c - paritysi2.c - parityti2.c - popcountdi2.c - popcountsi2.c - popcountti2.c - powidf2.c - powisf2.c - powitf2.c - powixf2.c - subdf3.c - subsf3.c - subvdi3.c - subvsi3.c - subvti3.c - trampoline_setup.c - truncdfsf2.c - ucmpdi2.c - ucmpti2.c - udivdi3.c - udivmoddi4.c - udivmodsi4.c - udivmodti4.c - udivsi3.c - udivti3.c - umoddi3.c - umodsi3.c - umodti3.c - ) +if(COMPILER_RT_HAS_DFSAN) + add_subdirectory(dfsan) +endif() -set(x86_64_SOURCES - x86_64/floatdidf.c - x86_64/floatdisf.c - x86_64/floatdixf.c - x86_64/floatundidf.S - x86_64/floatundisf.S - x86_64/floatundixf.S - ${GENERIC_SOURCES}) +if(COMPILER_RT_HAS_LSAN OR COMPILER_RT_HAS_LSAN_COMMON) + add_subdirectory(lsan) +endif() -set(i386_SOURCES - i386/ashldi3.S - i386/ashrdi3.S - i386/divdi3.S - i386/floatdidf.S - i386/floatdisf.S - i386/floatdixf.S - i386/floatundidf.S - i386/floatundisf.S - i386/floatundixf.S - i386/lshrdi3.S - i386/moddi3.S - i386/muldi3.S - i386/udivdi3.S - i386/umoddi3.S - ${GENERIC_SOURCES}) +if(COMPILER_RT_HAS_MSAN) + add_subdirectory(msan) +endif() -if (NOT WIN32) - foreach(arch x86_64 i386) - if(CAN_TARGET_${arch}) - add_compiler_rt_static_runtime(clang_rt.${arch} ${arch} - SOURCES ${${arch}_SOURCES} - CFLAGS "-std=c99") - endif() - endforeach() +if(COMPILER_RT_HAS_PROFILE) + add_subdirectory(profile) endif() -# Generate configs for running lit and unit tests. -configure_lit_site_cfg( - ${CMAKE_CURRENT_SOURCE_DIR}/lit.common.configured.in - ${CMAKE_CURRENT_BINARY_DIR}/lit.common.configured) +if(COMPILER_RT_HAS_TSAN) + add_subdirectory(tsan) + add_subdirectory(tsan/dd) +endif() -configure_lit_site_cfg( - ${CMAKE_CURRENT_SOURCE_DIR}/lit.common.unit.configured.in - ${CMAKE_CURRENT_BINARY_DIR}/lit.common.unit.configured) +if(COMPILER_RT_HAS_UBSAN) + add_subdirectory(ubsan) +endif() |