CMakeLists.txt revision eee71ae5c1f4ce71612fac359463a54bc867abd6
127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi# First, add the subdirectories which contain feature-based runtime libraries 227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi# and several convenience helper libraries. 327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshiif(CMAKE_SYSTEM_NAME MATCHES "Darwin|Linux") 427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi # AddressSanitizer is supported on Linux and Mac OS X. 527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi # Windows support is work in progress. 627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi add_subdirectory(asan) 727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi add_subdirectory(interception) 827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi add_subdirectory(sanitizer_common) 927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi if(NOT ANDROID) 1027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi add_subdirectory(lsan) 1127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi add_subdirectory(profile) 1227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi add_subdirectory(ubsan) 1327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi endif() 1427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshiendif() 1527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshiif("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux" AND NOT ANDROID) 1627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi # ThreadSanitizer and MemorySanitizer are supported on Linux only. 1727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi add_subdirectory(tsan) 1827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi add_subdirectory(msan) 1927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi add_subdirectory(msandr) 2027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi add_subdirectory(dfsan) 2127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshiendif() 2227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 2327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi# The top-level lib directory contains a large amount of C code which provides 2427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi# generic implementations of the core runtime library along with optimized 2527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi# architecture-specific code in various subdirectories. 2627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi 2727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshiset(GENERIC_SOURCES 2827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi absvdi2.c 2927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi absvsi2.c 3027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi absvti2.c 3127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi adddf3.c 3227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi addsf3.c 3327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi addvdi3.c 3427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi addvsi3.c 3527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi addvti3.c 3627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi apple_versioning.c 3727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi ashldi3.c 3827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi ashlti3.c 3927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi ashrdi3.c 4027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi ashrti3.c 4127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi # FIXME: atomic.c may only be compiled if host compiler understands _Atomic 4227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi # atomic.c 4327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi clear_cache.c 4427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi clzdi2.c 4527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi clzsi2.c 4627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi clzti2.c 4727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi cmpdi2.c 4827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi cmpti2.c 498f00151cbe693d52f3e233757c57fab3b6396d21Gloria Wang comparedf2.c 502272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi comparesf2.c 512272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi ctzdi2.c 522272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi ctzsi2.c 53e943f84129326ab885cc7a69dcfa17f766b72b89Takeshi Aimi ctzti2.c 5427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi divdc3.c 55e943f84129326ab885cc7a69dcfa17f766b72b89Takeshi Aimi divdf3.c 5627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi divdi3.c 5727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi divmoddi4.c 5827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi divmodsi4.c 5927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi divsc3.c 6027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi divsf3.c 6127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi divsi3.c 623473846f64f5b28e1cbeb70ef5867073fc93159eTakeshi Aimi divti3.c 633473846f64f5b28e1cbeb70ef5867073fc93159eTakeshi Aimi divxc3.c 6427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi enable_execute_stack.c 6527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi eprintf.c 6627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi extendsfdf2.c 6727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi ffsdi2.c 6827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi ffsti2.c 6927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi fixdfdi.c 702272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi fixdfsi.c 7127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi fixdfti.c 7227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi fixsfdi.c 73bf5b3b29e31b293313788d7464cfb258ac0da803James Dong fixsfsi.c 7427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi fixsfti.c 7527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi fixunsdfdi.c 7627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi fixunsdfsi.c 7727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi fixunsdfti.c 7827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi fixunssfdi.c 792272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi fixunssfsi.c 8027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi fixunssfti.c 812272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi fixunsxfdi.c 82a2cd44cb5067b4fe98794860690394254d3ac73cGloria Wang fixunsxfsi.c 8327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi fixunsxfti.c 8427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi fixxfdi.c 8527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi fixxfti.c 8627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi floatdidf.c 872272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi floatdisf.c 8827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi floatdixf.c 892272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi floatsidf.c 9027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi floatsisf.c 9127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi floattidf.c 9227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi floattisf.c 9327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi floattixf.c 9427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi floatundidf.c 9527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi floatundisf.c 9627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi floatundixf.c 9727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi floatunsidf.c 9827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi floatunsisf.c 999d2f386dd2885eaffa11fd494ae258bb09fe6397James Dong floatuntidf.c 1009d2f386dd2885eaffa11fd494ae258bb09fe6397James Dong floatuntisf.c 10127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi floatuntixf.c 1029d2f386dd2885eaffa11fd494ae258bb09fe6397James Dong gcc_personality_v0.c 1039d2f386dd2885eaffa11fd494ae258bb09fe6397James Dong int_util.c 104e943f84129326ab885cc7a69dcfa17f766b72b89Takeshi Aimi lshrdi3.c 105cba7b32d8f2c47632313f54118ed3733b4b02cc8Kei Takahashi lshrti3.c 106cba7b32d8f2c47632313f54118ed3733b4b02cc8Kei Takahashi moddi3.c 107cba7b32d8f2c47632313f54118ed3733b4b02cc8Kei Takahashi modsi3.c 1082272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi modti3.c 10927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi muldc3.c 1102272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi muldf3.c 11127ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi muldi3.c 11227ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi mulodi4.c 1132272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi mulosi4.c 1142272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi muloti4.c 11527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi mulsc3.c 1162272ee27d9022d173b6eab45c409b3c3f57f30ecTakeshi Aimi mulsf3.c 11727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi multi3.c 11827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi mulvdi3.c 119a2cd44cb5067b4fe98794860690394254d3ac73cGloria Wang mulvsi3.c 12027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi mulvti3.c 1218635b7b095fbf7ffc63d3ce791891a9116ace1f6James Dong mulxc3.c 1228635b7b095fbf7ffc63d3ce791891a9116ace1f6James Dong negdf2.c 12327ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi negdi2.c 12427ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi negsf2.c 12527ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi negti2.c 12627ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi negvdi2.c 12727ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi negvsi2.c 12827ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi negvti2.c 12927ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi paritydi2.c 13027ed8ad2db653f6ac07dcf8bcc05e2409c8bb024aimitakeshi paritysi2.c 131 parityti2.c 132 popcountdi2.c 133 popcountsi2.c 134 popcountti2.c 135 powidf2.c 136 powisf2.c 137 powitf2.c 138 powixf2.c 139 subdf3.c 140 subsf3.c 141 subvdi3.c 142 subvsi3.c 143 subvti3.c 144 trampoline_setup.c 145 truncdfsf2.c 146 ucmpdi2.c 147 ucmpti2.c 148 udivdi3.c 149 udivmoddi4.c 150 udivmodsi4.c 151 udivmodti4.c 152 udivsi3.c 153 udivti3.c 154 umoddi3.c 155 umodsi3.c 156 umodti3.c 157 ) 158 159set(x86_64_SOURCES 160 x86_64/floatdidf.c 161 x86_64/floatdisf.c 162 x86_64/floatdixf.c 163 x86_64/floatundidf.S 164 x86_64/floatundisf.S 165 x86_64/floatundixf.S 166 ${GENERIC_SOURCES}) 167 168set(i386_SOURCES 169 i386/ashldi3.S 170 i386/ashrdi3.S 171 i386/divdi3.S 172 i386/floatdidf.S 173 i386/floatdisf.S 174 i386/floatdixf.S 175 i386/floatundidf.S 176 i386/floatundisf.S 177 i386/floatundixf.S 178 i386/lshrdi3.S 179 i386/moddi3.S 180 i386/muldi3.S 181 i386/udivdi3.S 182 i386/umoddi3.S 183 ${GENERIC_SOURCES}) 184 185foreach(arch x86_64 i386) 186 if(CAN_TARGET_${arch}) 187 add_compiler_rt_static_runtime(clang_rt.${arch} ${arch} 188 SOURCES ${${arch}_SOURCES} 189 CFLAGS "-std=c99") 190 endif() 191endforeach() 192 193# Generate configs for running lit and unit tests. 194configure_lit_site_cfg( 195 ${CMAKE_CURRENT_SOURCE_DIR}/lit.common.configured.in 196 ${CMAKE_CURRENT_BINARY_DIR}/lit.common.configured) 197 198configure_lit_site_cfg( 199 ${CMAKE_CURRENT_SOURCE_DIR}/lit.common.unit.configured.in 200 ${CMAKE_CURRENT_BINARY_DIR}/lit.common.unit.configured) 201 202