1add_compiler_rt_component(cfi) 2 3if(OS_NAME MATCHES "Linux" OR OS_NAME MATCHES "FreeBSD" OR OS_NAME MATCHES "NetBSD") 4 set(CFI_SOURCES 5 cfi.cpp 6 ) 7 8 include_directories(..) 9 10 set(CFI_CFLAGS 11 ${SANITIZER_COMMON_CFLAGS} 12 ) 13 14 # Too many existing bugs, needs cleanup. 15 append_list_if(COMPILER_RT_HAS_WNO_FORMAT -Wno-format CFI_CFLAGS) 16 17 set(CFI_DIAG_CFLAGS 18 -DCFI_ENABLE_DIAG=1 19 ) 20 21 foreach(arch ${CFI_SUPPORTED_ARCH}) 22 add_compiler_rt_runtime(clang_rt.cfi 23 STATIC 24 ARCHS ${arch} 25 SOURCES ${CFI_SOURCES} 26 OBJECT_LIBS RTInterception 27 RTSanitizerCommon 28 RTSanitizerCommonLibc 29 CFLAGS ${CFI_CFLAGS} 30 PARENT_TARGET cfi) 31 add_compiler_rt_runtime(clang_rt.cfi_diag 32 STATIC 33 ARCHS ${arch} 34 SOURCES ${CFI_SOURCES} 35 OBJECT_LIBS RTInterception 36 RTSanitizerCommon 37 RTSanitizerCommonLibc 38 RTSanitizerCommonCoverage 39 RTSanitizerCommonSymbolizer 40 RTUbsan 41 CFLAGS ${CFI_CFLAGS} ${CFI_DIAG_CFLAGS} 42 PARENT_TARGET cfi) 43 endforeach() 44endif() 45 46add_compiler_rt_resource_file(cfi_ignorelist cfi_ignorelist.txt cfi) 47