]> git.proxmox.com Git - rustc.git/blob - src/compiler-rt/lib/dfsan/CMakeLists.txt
New upstream version 1.19.0+dfsg3
[rustc.git] / src / compiler-rt / lib / dfsan / CMakeLists.txt
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_compiler_rt_component(dfsan)
15
16 foreach(arch ${DFSAN_SUPPORTED_ARCH})
17 set(DFSAN_CFLAGS ${DFSAN_COMMON_CFLAGS})
18 append_list_if(COMPILER_RT_HAS_FPIE_FLAG -fPIE DFSAN_CFLAGS)
19 add_compiler_rt_runtime(clang_rt.dfsan
20 STATIC
21 ARCHS ${arch}
22 SOURCES ${DFSAN_RTL_SOURCES}
23 $<TARGET_OBJECTS:RTInterception.${arch}>
24 $<TARGET_OBJECTS:RTSanitizerCommon.${arch}>
25 $<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}>
26 CFLAGS ${DFSAN_CFLAGS}
27 PARENT_TARGET dfsan)
28 add_sanitizer_rt_symbols(clang_rt.dfsan
29 ARCHS ${arch}
30 EXTRA dfsan.syms.extra)
31 add_dependencies(dfsan
32 clang_rt.dfsan-${arch}-symbols)
33 endforeach()
34
35 set(dfsan_abilist_filename ${COMPILER_RT_OUTPUT_DIR}/dfsan_abilist.txt)
36 add_custom_target(dfsan_abilist ALL
37 DEPENDS ${dfsan_abilist_filename})
38 add_custom_command(OUTPUT ${dfsan_abilist_filename}
39 VERBATIM
40 COMMAND
41 cat ${CMAKE_CURRENT_SOURCE_DIR}/done_abilist.txt
42 ${CMAKE_CURRENT_SOURCE_DIR}/libc_ubuntu1404_abilist.txt
43 > ${dfsan_abilist_filename}
44 DEPENDS done_abilist.txt libc_ubuntu1404_abilist.txt)
45 add_dependencies(dfsan dfsan_abilist)
46 install(FILES ${dfsan_abilist_filename}
47 DESTINATION ${COMPILER_RT_INSTALL_PATH})