aboutsummaryrefslogtreecommitdiff
path: root/lib/CMakeLists.txt
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2015-01-07 19:55:37 +0000
committerDimitry Andric <dim@FreeBSD.org>2015-01-07 19:55:37 +0000
commitca9211ecdede9bdedb812b2243a4abdb8dacd1b9 (patch)
tree9b19e801150082c33e9152275829a6ce90614b55 /lib/CMakeLists.txt
parent8ef50bf3d1c287b5013c3168de77a462dfce3495 (diff)
downloadsrc-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.txt232
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()