File: CMakeLists.txt

package info (click to toggle)
llvm-toolchain-21 1%3A21.1.6-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,245,028 kB
  • sloc: cpp: 7,619,726; ansic: 1,434,018; asm: 1,058,748; python: 252,740; f90: 94,671; objc: 70,685; lisp: 42,813; pascal: 18,401; sh: 8,601; ml: 5,111; perl: 4,720; makefile: 3,675; awk: 3,523; javascript: 2,409; xml: 892; fortran: 770
file content (79 lines) | stat: -rw-r--r-- 2,173 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
include_directories(..)

# Runtime library sources and build flags.
set(TYSAN_SOURCES
  tysan.cpp
  tysan_interceptors.cpp
  )

SET(TYSAN_HEADERS
  tysan.h
  tysan_flags.inc
  tysan_platform.h
  )

set(TYSAN_COMMON_CFLAGS ${SANITIZER_COMMON_CFLAGS})
append_rtti_flag(OFF TYSAN_COMMON_CFLAGS)
# Prevent clang from generating libc calls.
append_list_if(COMPILER_RT_HAS_FFREESTANDING_FLAG -ffreestanding TYSAN_COMMON_CFLAGS)
set(TYSAN_DYNAMIC_CFLAGS ${TYSAN_COMMON_CFLAGS})

set(TYSAN_COMMON_DEFINITIONS "")
set(TYSAN_DYNAMIC_DEFINITIONS ${TYSAN_COMMON_DEFINITIONS} TYSAN_DYNAMIC=1)

# Compile TYSan sources into an object library.

add_compiler_rt_object_libraries(RTTysan_dynamic
  OS ${SANITIZER_COMMON_SUPPORTED_OS}
  ARCHS ${TYSAN_SUPPORTED_ARCH}
  SOURCES ${TYSAN_SOURCES}
  ADDITIONAL_HEADERS ${TYSAN_HEADERS}
  CFLAGS ${TYSAN_DYNAMIC_CFLAGS}
  DEFS ${TYSAN_DYNAMIC_DEFINITIONS})


# Static runtime library.
add_compiler_rt_component(tysan)


if(APPLE)
  add_weak_symbols("sanitizer_common" WEAK_SYMBOL_LINK_FLAGS)

  add_compiler_rt_runtime(clang_rt.tysan
    SHARED
    OS ${SANITIZER_COMMON_SUPPORTED_OS}
    ARCHS ${TYSAN_SUPPORTED_ARCH}
    OBJECT_LIBS RTTysan_dynamic
                RTInterception
                RTSanitizerCommon
                RTSanitizerCommonLibc
                RTSanitizerCommonSymbolizer
    CFLAGS ${TYSAN_DYNAMIC_CFLAGS}
    LINK_FLAGS ${WEAK_SYMBOL_LINK_FLAGS}
    DEFS ${TYSAN_DYNAMIC_DEFINITIONS}
    PARENT_TARGET tysan)

  add_compiler_rt_runtime(clang_rt.tysan_static
    STATIC
    ARCHS ${TYSAN_SUPPORTED_ARCH}
    OBJECT_LIBS RTTysan_static
    CFLAGS ${TYSAN_CFLAGS}
    DEFS ${TYSAN_COMMON_DEFINITIONS}
    PARENT_TARGET tysan)
else()
  set(TYSAN_CFLAGS ${TYSAN_COMMON_CFLAGS})
  append_list_if(COMPILER_RT_HAS_FPIE_FLAG -fPIE TYSAN_CFLAGS)

  foreach(arch ${TYSAN_SUPPORTED_ARCH})
    add_compiler_rt_runtime(clang_rt.tysan
      STATIC
      ARCHS ${arch}
      SOURCES ${TYSAN_SOURCES}
      OBJECT_LIBS RTInterception
                  RTSanitizerCommon
                  RTSanitizerCommonLibc
                  RTSanitizerCommonSymbolizer
      CFLAGS ${TYSAN_CFLAGS}
      PARENT_TARGET tysan)
  endforeach()
endif()