Home | History | Annotate | Download | only in dfsan
      1 include_directories(..)
      2 
      3 # Runtime library sources and build flags.
      4 set(DFSAN_RTL_SOURCES
      5   dfsan.cc
      6   dfsan_custom.cc
      7   dfsan_interceptors.cc)
      8 set(DFSAN_COMMON_CFLAGS ${SANITIZER_COMMON_CFLAGS})
      9 append_rtti_flag(OFF DFSAN_COMMON_CFLAGS)
     10 # Prevent clang from generating libc calls.
     11 append_list_if(COMPILER_RT_HAS_FFREESTANDING_FLAG -ffreestanding DFSAN_COMMON_CFLAGS)
     12 
     13 # Static runtime library.
     14 add_custom_target(dfsan)
     15 set_target_properties(dfsan PROPERTIES FOLDER "Compiler-RT Misc")
     16 
     17 foreach(arch ${DFSAN_SUPPORTED_ARCH})
     18   set(DFSAN_CFLAGS ${DFSAN_COMMON_CFLAGS})
     19   append_list_if(COMPILER_RT_HAS_FPIE_FLAG -fPIE DFSAN_CFLAGS)
     20   add_compiler_rt_runtime(clang_rt.dfsan
     21     STATIC
     22     ARCHS ${arch}
     23     SOURCES ${DFSAN_RTL_SOURCES}
     24             $<TARGET_OBJECTS:RTInterception.${arch}>
     25             $<TARGET_OBJECTS:RTSanitizerCommon.${arch}>
     26             $<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}>
     27     CFLAGS ${DFSAN_CFLAGS}
     28     PARENT_TARGET dfsan)
     29   add_sanitizer_rt_symbols(clang_rt.dfsan
     30     ARCHS ${arch}
     31     EXTRA dfsan.syms.extra)
     32   add_dependencies(dfsan
     33     clang_rt.dfsan-${arch}-symbols)
     34 endforeach()
     35 
     36 set(dfsan_abilist_filename ${COMPILER_RT_OUTPUT_DIR}/dfsan_abilist.txt)
     37 add_custom_target(dfsan_abilist ALL
     38   DEPENDS ${dfsan_abilist_filename})
     39 add_custom_command(OUTPUT ${dfsan_abilist_filename}
     40                    VERBATIM
     41                    COMMAND
     42                      cat ${CMAKE_CURRENT_SOURCE_DIR}/done_abilist.txt
     43                          ${CMAKE_CURRENT_SOURCE_DIR}/libc_ubuntu1404_abilist.txt
     44                          > ${dfsan_abilist_filename}
     45                    DEPENDS done_abilist.txt libc_ubuntu1404_abilist.txt)
     46 add_dependencies(dfsan dfsan_abilist)
     47 install(FILES ${dfsan_abilist_filename}
     48         DESTINATION ${COMPILER_RT_INSTALL_PATH})
     49 
     50 add_dependencies(compiler-rt dfsan)
     51