Chandler Carruth | d51e0a0 | 2012-04-04 22:12:04 +0000 | [diff] [blame] | 1 | # Build for the AddressSanitizer runtime support library. |
| 2 | |
Chandler Carruth | 479d47f | 2012-06-20 10:18:43 +0000 | [diff] [blame] | 3 | set(ASAN_SOURCES |
Stephen Hines | 86277eb | 2015-03-23 12:06:32 -0700 | [diff] [blame] | 4 | asan_allocator.cc |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 5 | asan_activation.cc |
Stephen Hines | 6d18623 | 2014-11-26 17:56:19 -0800 | [diff] [blame] | 6 | asan_debugging.cc |
Kostya Serebryany | 2679f19 | 2012-12-10 14:19:15 +0000 | [diff] [blame] | 7 | asan_fake_stack.cc |
Stephen Hines | 86277eb | 2015-03-23 12:06:32 -0700 | [diff] [blame] | 8 | asan_flags.cc |
Chandler Carruth | 479d47f | 2012-06-20 10:18:43 +0000 | [diff] [blame] | 9 | asan_globals.cc |
| 10 | asan_interceptors.cc |
| 11 | asan_linux.cc |
| 12 | asan_mac.cc |
| 13 | asan_malloc_linux.cc |
| 14 | asan_malloc_mac.cc |
| 15 | asan_malloc_win.cc |
Chandler Carruth | 479d47f | 2012-06-20 10:18:43 +0000 | [diff] [blame] | 16 | asan_poisoning.cc |
| 17 | asan_posix.cc |
Alexey Samsonov | f7c1d18 | 2012-08-09 08:15:46 +0000 | [diff] [blame] | 18 | asan_report.cc |
Chandler Carruth | 479d47f | 2012-06-20 10:18:43 +0000 | [diff] [blame] | 19 | asan_rtl.cc |
| 20 | asan_stack.cc |
| 21 | asan_stats.cc |
Stephen Hines | 86277eb | 2015-03-23 12:06:32 -0700 | [diff] [blame] | 22 | asan_suppressions.cc |
Chandler Carruth | 479d47f | 2012-06-20 10:18:43 +0000 | [diff] [blame] | 23 | asan_thread.cc |
Alexey Samsonov | c3b30b3 | 2013-06-22 16:33:52 +0000 | [diff] [blame] | 24 | asan_win.cc) |
Chandler Carruth | d51e0a0 | 2012-04-04 22:12:04 +0000 | [diff] [blame] | 25 | |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 26 | set(ASAN_CXX_SOURCES |
| 27 | asan_new_delete.cc) |
| 28 | |
| 29 | set(ASAN_PREINIT_SOURCES |
| 30 | asan_preinit.cc) |
| 31 | |
Chandler Carruth | 821f21b | 2012-06-25 12:57:43 +0000 | [diff] [blame] | 32 | include_directories(..) |
| 33 | |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 34 | set(ASAN_CFLAGS ${SANITIZER_COMMON_CFLAGS}) |
| 35 | append_no_rtti_flag(ASAN_CFLAGS) |
| 36 | |
Alexey Samsonov | 2aed040 | 2013-01-21 08:24:19 +0000 | [diff] [blame] | 37 | set(ASAN_COMMON_DEFINITIONS |
Alexey Samsonov | 5e5be21 | 2013-01-22 07:21:24 +0000 | [diff] [blame] | 38 | ASAN_HAS_EXCEPTIONS=1) |
Alexey Samsonov | 2aed040 | 2013-01-21 08:24:19 +0000 | [diff] [blame] | 39 | |
Pirama Arumuga Nainar | cdce50b | 2015-07-01 12:26:56 -0700 | [diff] [blame] | 40 | set(ASAN_DYNAMIC_LINK_FLAGS) |
| 41 | |
Evgeniy Stepanov | 34fc56c | 2012-09-11 11:55:45 +0000 | [diff] [blame] | 42 | if(ANDROID) |
Alexey Samsonov | 2aed040 | 2013-01-21 08:24:19 +0000 | [diff] [blame] | 43 | list(APPEND ASAN_COMMON_DEFINITIONS |
Alexey Samsonov | 2aed040 | 2013-01-21 08:24:19 +0000 | [diff] [blame] | 44 | ASAN_LOW_MEMORY=1) |
Pirama Arumuga Nainar | cdce50b | 2015-07-01 12:26:56 -0700 | [diff] [blame] | 45 | # On Android, -z global does not do what it is documented to do. |
| 46 | # On Android, -z global moves the library ahead in the lookup order, |
| 47 | # placing it right after the LD_PRELOADs. This is used to compensate for the fact |
| 48 | # that Android linker does not look at the dependencies of the main executable |
| 49 | # that aren't dependencies of the current DSO when resolving symbols from said DSO. |
| 50 | # As a net result, this allows running ASan executables without LD_PRELOAD-ing the |
| 51 | # ASan runtime library. |
| 52 | # The above is applicable to L MR1 or newer. |
| 53 | if (COMPILER_RT_HAS_Z_GLOBAL) |
| 54 | list(APPEND ASAN_DYNAMIC_LINK_FLAGS -Wl,-z,global) |
| 55 | endif() |
Evgeniy Stepanov | 34fc56c | 2012-09-11 11:55:45 +0000 | [diff] [blame] | 56 | endif() |
Alexander Potapenko | 0ef5310 | 2012-08-17 09:00:08 +0000 | [diff] [blame] | 57 | |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 58 | set(ASAN_DYNAMIC_DEFINITIONS |
| 59 | ${ASAN_COMMON_DEFINITIONS} ASAN_DYNAMIC=1) |
Stephen Hines | 6d18623 | 2014-11-26 17:56:19 -0800 | [diff] [blame] | 60 | append_list_if(WIN32 INTERCEPTION_DYNAMIC_CRT ASAN_DYNAMIC_DEFINITIONS) |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 61 | |
| 62 | set(ASAN_DYNAMIC_CFLAGS ${ASAN_CFLAGS}) |
Stephen Hines | 6d18623 | 2014-11-26 17:56:19 -0800 | [diff] [blame] | 63 | append_list_if(COMPILER_RT_HAS_FTLS_MODEL_INITIAL_EXEC |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 64 | -ftls-model=initial-exec ASAN_DYNAMIC_CFLAGS) |
Stephen Hines | 6d18623 | 2014-11-26 17:56:19 -0800 | [diff] [blame] | 65 | append_list_if(MSVC /DEBUG ASAN_DYNAMIC_CFLAGS) |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 66 | |
Stephen Hines | 6d18623 | 2014-11-26 17:56:19 -0800 | [diff] [blame] | 67 | append_list_if(COMPILER_RT_HAS_LIBC c ASAN_DYNAMIC_LIBS) |
| 68 | append_list_if(COMPILER_RT_HAS_LIBDL dl ASAN_DYNAMIC_LIBS) |
Pirama Arumuga Nainar | cdce50b | 2015-07-01 12:26:56 -0700 | [diff] [blame] | 69 | append_list_if(COMPILER_RT_HAS_LIBRT rt ASAN_DYNAMIC_LIBS) |
Stephen Hines | 6d18623 | 2014-11-26 17:56:19 -0800 | [diff] [blame] | 70 | append_list_if(COMPILER_RT_HAS_LIBM m ASAN_DYNAMIC_LIBS) |
| 71 | append_list_if(COMPILER_RT_HAS_LIBPTHREAD pthread ASAN_DYNAMIC_LIBS) |
| 72 | append_list_if(COMPILER_RT_HAS_LIBSTDCXX stdc++ ASAN_DYNAMIC_LIBS) |
| 73 | |
| 74 | append_list_if(ANDROID log ASAN_DYNAMIC_LIBS) |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 75 | |
Alexey Samsonov | 05fa380 | 2013-09-16 15:50:53 +0000 | [diff] [blame] | 76 | # Compile ASan sources into an object library. |
| 77 | if(APPLE) |
Pirama Arumuga Nainar | cdce50b | 2015-07-01 12:26:56 -0700 | [diff] [blame] | 78 | add_compiler_rt_object_libraries(RTAsan |
| 79 | OS ${SANITIZER_COMMON_SUPPORTED_OS} |
| 80 | ARCH ${ASAN_SUPPORTED_ARCH} |
| 81 | SOURCES ${ASAN_SOURCES} ${ASAN_CXX_SOURCES} |
| 82 | CFLAGS ${ASAN_DYNAMIC_CFLAGS} |
| 83 | DEFS ${ASAN_DYNAMIC_DEFINITIONS}) |
Alexey Samsonov | 05fa380 | 2013-09-16 15:50:53 +0000 | [diff] [blame] | 84 | else() |
Pirama Arumuga Nainar | cdce50b | 2015-07-01 12:26:56 -0700 | [diff] [blame] | 85 | add_compiler_rt_object_libraries(RTAsan |
| 86 | ARCH ${ASAN_SUPPORTED_ARCH} |
| 87 | SOURCES ${ASAN_SOURCES} CFLAGS ${ASAN_CFLAGS} |
| 88 | DEFS ${ASAN_COMMON_DEFINITIONS}) |
| 89 | add_compiler_rt_object_libraries(RTAsan_cxx |
| 90 | ARCH ${ASAN_SUPPORTED_ARCH} |
| 91 | SOURCES ${ASAN_CXX_SOURCES} CFLAGS ${ASAN_CFLAGS} |
| 92 | DEFS ${ASAN_COMMON_DEFINITIONS}) |
| 93 | add_compiler_rt_object_libraries(RTAsan_preinit |
| 94 | ARCH ${ASAN_SUPPORTED_ARCH} |
| 95 | SOURCES ${ASAN_PREINIT_SOURCES} CFLAGS ${ASAN_CFLAGS} |
| 96 | DEFS ${ASAN_COMMON_DEFINITIONS}) |
| 97 | add_compiler_rt_object_libraries(RTAsan_dynamic |
| 98 | ARCH ${ASAN_SUPPORTED_ARCH} |
| 99 | SOURCES ${ASAN_SOURCES} ${ASAN_CXX_SOURCES} |
| 100 | CFLAGS ${ASAN_DYNAMIC_CFLAGS} |
| 101 | DEFS ${ASAN_DYNAMIC_DEFINITIONS}) |
| 102 | |
| 103 | file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/dummy.cc "") |
| 104 | add_compiler_rt_object_libraries(RTAsan_dynamic_version_script_dummy |
| 105 | ARCH ${ASAN_SUPPORTED_ARCH} |
| 106 | SOURCES ${CMAKE_CURRENT_BINARY_DIR}/dummy.cc |
| 107 | CFLAGS ${ASAN_DYNAMIC_CFLAGS} |
| 108 | DEFS ${ASAN_DYNAMIC_DEFINITIONS}) |
Alexey Samsonov | 05fa380 | 2013-09-16 15:50:53 +0000 | [diff] [blame] | 109 | endif() |
| 110 | |
| 111 | # Build ASan runtimes shipped with Clang. |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 112 | add_custom_target(asan) |
Alexey Samsonov | fe51abb | 2012-08-10 14:45:52 +0000 | [diff] [blame] | 113 | if(APPLE) |
Pirama Arumuga Nainar | cdce50b | 2015-07-01 12:26:56 -0700 | [diff] [blame] | 114 | foreach (os ${SANITIZER_COMMON_SUPPORTED_OS}) |
Alexander Potapenko | 4949674 | 2013-11-07 10:08:19 +0000 | [diff] [blame] | 115 | add_compiler_rt_darwin_dynamic_runtime(clang_rt.asan_${os}_dynamic ${os} |
| 116 | ARCH ${ASAN_SUPPORTED_ARCH} |
| 117 | SOURCES $<TARGET_OBJECTS:RTAsan.${os}> |
| 118 | $<TARGET_OBJECTS:RTInterception.${os}> |
| 119 | $<TARGET_OBJECTS:RTSanitizerCommon.${os}> |
| 120 | $<TARGET_OBJECTS:RTLSanCommon.${os}> |
Pirama Arumuga Nainar | 259f706 | 2015-05-06 11:49:53 -0700 | [diff] [blame] | 121 | $<TARGET_OBJECTS:RTUbsan.${os}> |
Stephen Hines | 86277eb | 2015-03-23 12:06:32 -0700 | [diff] [blame] | 122 | CFLAGS ${ASAN_DYNAMIC_CFLAGS} |
| 123 | DEFS ${ASAN_DYNAMIC_DEFINITIONS}) |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 124 | add_dependencies(asan clang_rt.asan_${os}_dynamic) |
Alexander Potapenko | 4949674 | 2013-11-07 10:08:19 +0000 | [diff] [blame] | 125 | endforeach() |
Alexey Samsonov | fe51abb | 2012-08-10 14:45:52 +0000 | [diff] [blame] | 126 | else() |
Alexey Samsonov | 05fa380 | 2013-09-16 15:50:53 +0000 | [diff] [blame] | 127 | # Build separate libraries for each target. |
Alexey Samsonov | 43b4b9c | 2013-01-18 16:51:07 +0000 | [diff] [blame] | 128 | foreach(arch ${ASAN_SUPPORTED_ARCH}) |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 129 | set(ASAN_COMMON_RUNTIME_OBJECTS |
Hans Wennborg | c1f1af7 | 2013-08-27 01:24:01 +0000 | [diff] [blame] | 130 | $<TARGET_OBJECTS:RTInterception.${arch}> |
| 131 | $<TARGET_OBJECTS:RTSanitizerCommon.${arch}> |
Pirama Arumuga Nainar | 7c91505 | 2015-04-08 08:58:29 -0700 | [diff] [blame] | 132 | $<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}> |
Pirama Arumuga Nainar | 259f706 | 2015-05-06 11:49:53 -0700 | [diff] [blame] | 133 | $<TARGET_OBJECTS:RTLSanCommon.${arch}> |
| 134 | $<TARGET_OBJECTS:RTUbsan.${arch}>) |
Hans Wennborg | c1f1af7 | 2013-08-27 01:24:01 +0000 | [diff] [blame] | 135 | |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 136 | add_compiler_rt_runtime(clang_rt.asan-${arch} ${arch} STATIC |
| 137 | SOURCES $<TARGET_OBJECTS:RTAsan_preinit.${arch}> |
| 138 | $<TARGET_OBJECTS:RTAsan.${arch}> |
| 139 | ${ASAN_COMMON_RUNTIME_OBJECTS} |
Alexey Samsonov | 2aad7c1 | 2013-01-21 08:12:20 +0000 | [diff] [blame] | 140 | CFLAGS ${ASAN_CFLAGS} |
Alexey Samsonov | e5fa243 | 2013-08-27 15:08:02 +0000 | [diff] [blame] | 141 | DEFS ${ASAN_COMMON_DEFINITIONS}) |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 142 | add_dependencies(asan clang_rt.asan-${arch}) |
| 143 | |
| 144 | add_compiler_rt_runtime(clang_rt.asan_cxx-${arch} ${arch} STATIC |
| 145 | SOURCES $<TARGET_OBJECTS:RTAsan_cxx.${arch}> |
Pirama Arumuga Nainar | 259f706 | 2015-05-06 11:49:53 -0700 | [diff] [blame] | 146 | $<TARGET_OBJECTS:RTUbsan_cxx.${arch}> |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 147 | CFLAGS ${ASAN_CFLAGS} |
| 148 | DEFS ${ASAN_COMMON_DEFINITIONS}) |
| 149 | add_dependencies(asan clang_rt.asan_cxx-${arch}) |
| 150 | |
Stephen Hines | 86277eb | 2015-03-23 12:06:32 -0700 | [diff] [blame] | 151 | add_compiler_rt_runtime(clang_rt.asan-preinit-${arch} ${arch} STATIC |
| 152 | SOURCES $<TARGET_OBJECTS:RTAsan_preinit.${arch}> |
| 153 | CFLAGS ${ASAN_CFLAGS} |
| 154 | DEFS ${ASAN_COMMON_DEFINITIONS}) |
| 155 | add_dependencies(asan clang_rt.asan-preinit-${arch}) |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 156 | |
Pirama Arumuga Nainar | cdce50b | 2015-07-01 12:26:56 -0700 | [diff] [blame] | 157 | if (UNIX AND NOT ${arch} MATCHES "i386|i686") |
| 158 | add_sanitizer_rt_version_list(clang_rt.asan-dynamic-${arch} |
| 159 | LIB clang_rt.asan-${arch} clang_rt.asan_cxx-${arch} |
| 160 | EXTRA asan.syms.extra) |
| 161 | set(VERSION_SCRIPT_FLAG |
| 162 | -Wl,--version-script,${CMAKE_CURRENT_BINARY_DIR}/clang_rt.asan-dynamic-${arch}.vers) |
| 163 | set_source_files_properties( |
| 164 | ${CMAKE_CURRENT_BINARY_DIR}/dummy.cc |
| 165 | PROPERTIES |
| 166 | OBJECT_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/clang_rt.asan-dynamic-${arch}.vers) |
| 167 | else() |
| 168 | set(VERSION_SCRIPT_FLAG) |
| 169 | endif() |
| 170 | |
Stephen Hines | 86277eb | 2015-03-23 12:06:32 -0700 | [diff] [blame] | 171 | if (WIN32) |
| 172 | set(SHARED_ASAN_NAME clang_rt.asan_dynamic-${arch}${COMPILER_RT_OS_SUFFIX}) |
| 173 | else() |
| 174 | set(SHARED_ASAN_NAME clang_rt.asan-${arch}${COMPILER_RT_OS_SUFFIX}) |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 175 | endif() |
Stephen Hines | 86277eb | 2015-03-23 12:06:32 -0700 | [diff] [blame] | 176 | add_compiler_rt_runtime(clang_rt.asan-dynamic-${arch} ${arch} SHARED |
| 177 | OUTPUT_NAME ${SHARED_ASAN_NAME} |
| 178 | SOURCES $<TARGET_OBJECTS:RTAsan_dynamic.${arch}> |
Pirama Arumuga Nainar | cdce50b | 2015-07-01 12:26:56 -0700 | [diff] [blame] | 179 | # The only purpose of RTAsan_dynamic_version_script_dummy is to carry |
| 180 | # a dependency of the shared runtime on the version script. With CMake |
| 181 | # 3.1 or later it can be replaced with a straightforward |
| 182 | # add_dependencies(clang_rt.asan-dynamic-${arch} clang_rt.asan-dynamic-${arch}-version-list) |
| 183 | $<TARGET_OBJECTS:RTAsan_dynamic_version_script_dummy.${arch}> |
Pirama Arumuga Nainar | 259f706 | 2015-05-06 11:49:53 -0700 | [diff] [blame] | 184 | $<TARGET_OBJECTS:RTUbsan_cxx.${arch}> |
Stephen Hines | 86277eb | 2015-03-23 12:06:32 -0700 | [diff] [blame] | 185 | ${ASAN_COMMON_RUNTIME_OBJECTS} |
| 186 | CFLAGS ${ASAN_DYNAMIC_CFLAGS} |
Pirama Arumuga Nainar | cdce50b | 2015-07-01 12:26:56 -0700 | [diff] [blame] | 187 | LINKFLAGS ${ASAN_DYNAMIC_LINK_FLAGS} |
| 188 | ${VERSION_SCRIPT_FLAG} |
Stephen Hines | 86277eb | 2015-03-23 12:06:32 -0700 | [diff] [blame] | 189 | DEFS ${ASAN_DYNAMIC_DEFINITIONS}) |
| 190 | target_link_libraries(clang_rt.asan-dynamic-${arch} ${ASAN_DYNAMIC_LIBS}) |
| 191 | add_dependencies(asan clang_rt.asan-dynamic-${arch}) |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 192 | |
Stephen Hines | 86277eb | 2015-03-23 12:06:32 -0700 | [diff] [blame] | 193 | if (UNIX AND NOT ${arch} MATCHES "i386|i686") |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 194 | add_sanitizer_rt_symbols(clang_rt.asan_cxx-${arch}) |
| 195 | add_dependencies(asan clang_rt.asan_cxx-${arch}-symbols) |
Alexey Samsonov | 544bdfb | 2013-08-28 08:07:04 +0000 | [diff] [blame] | 196 | add_sanitizer_rt_symbols(clang_rt.asan-${arch} asan.syms.extra) |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 197 | add_dependencies(asan clang_rt.asan-${arch}-symbols) |
Alexey Samsonov | 544bdfb | 2013-08-28 08:07:04 +0000 | [diff] [blame] | 198 | endif() |
Hans Wennborg | c1f1af7 | 2013-08-27 01:24:01 +0000 | [diff] [blame] | 199 | |
| 200 | if (WIN32) |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 201 | add_compiler_rt_runtime(clang_rt.asan_dll_thunk-${arch} ${arch} STATIC |
Stephen Hines | 6d18623 | 2014-11-26 17:56:19 -0800 | [diff] [blame] | 202 | SOURCES asan_win_dll_thunk.cc |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 203 | $<TARGET_OBJECTS:RTInterception.${arch}> |
| 204 | CFLAGS ${ASAN_CFLAGS} -DASAN_DLL_THUNK |
| 205 | DEFS ${ASAN_COMMON_DEFINITIONS}) |
| 206 | add_dependencies(asan clang_rt.asan_dll_thunk-${arch}) |
Stephen Hines | 6d18623 | 2014-11-26 17:56:19 -0800 | [diff] [blame] | 207 | add_compiler_rt_runtime(clang_rt.asan_dynamic_runtime_thunk-${arch} ${arch} |
| 208 | STATIC |
| 209 | SOURCES asan_win_dynamic_runtime_thunk.cc |
| 210 | CFLAGS ${ASAN_CFLAGS} -DASAN_DYNAMIC_RUNTIME_THUNK -Zl |
| 211 | DEFS ${ASAN_COMMON_DEFINITIONS}) |
| 212 | add_dependencies(asan clang_rt.asan_dynamic_runtime_thunk-${arch}) |
Hans Wennborg | c1f1af7 | 2013-08-27 01:24:01 +0000 | [diff] [blame] | 213 | endif() |
Alexey Samsonov | 43b4b9c | 2013-01-18 16:51:07 +0000 | [diff] [blame] | 214 | endforeach() |
Alexey Samsonov | fe51abb | 2012-08-10 14:45:52 +0000 | [diff] [blame] | 215 | endif() |
Alexey Samsonov | 4d57f44 | 2012-07-25 11:15:00 +0000 | [diff] [blame] | 216 | |
Alexey Samsonov | c1caace | 2013-05-21 13:48:27 +0000 | [diff] [blame] | 217 | add_compiler_rt_resource_file(asan_blacklist asan_blacklist.txt) |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 218 | add_dependencies(asan asan_blacklist) |
| 219 | add_dependencies(compiler-rt asan) |
Alexey Samsonov | c1caace | 2013-05-21 13:48:27 +0000 | [diff] [blame] | 220 | |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 221 | add_subdirectory(scripts) |
Alexey Samsonov | 8c6e485 | 2013-11-14 12:24:12 +0000 | [diff] [blame] | 222 | |
Stephen Hines | 2d1fdb2 | 2014-05-28 23:58:16 -0700 | [diff] [blame] | 223 | if(COMPILER_RT_INCLUDE_TESTS) |
Chandler Carruth | 821f21b | 2012-06-25 12:57:43 +0000 | [diff] [blame] | 224 | add_subdirectory(tests) |
| 225 | endif() |