File: BUILD.gn

package info (click to toggle)
llvm-toolchain-14 1%3A14.0.6-12
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,496,180 kB
  • sloc: cpp: 5,593,972; ansic: 986,872; asm: 585,869; python: 184,223; objc: 72,530; lisp: 31,119; f90: 27,793; javascript: 9,780; pascal: 9,762; sh: 9,482; perl: 7,468; ml: 5,432; awk: 3,523; makefile: 2,538; xml: 953; cs: 573; fortran: 567
file content (66 lines) | stat: -rw-r--r-- 1,715 bytes parent folder | download | duplicates (6)
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
import("//compiler-rt/target.gni")

static_library("msan") {
  configs -= [ "//llvm/utils/gn/build:llvm_code" ]
  configs += [ "//llvm/utils/gn/build:crt_code" ]

  output_dir = crt_current_out_dir
  assert(current_os == "linux", "MSan only works on Linux")
  output_name = "clang_rt.msan$crt_current_target_suffix"

  deps = [
    "//compiler-rt/lib/interception:sources",
    "//compiler-rt/lib/sanitizer_common:sources",
    "//compiler-rt/lib/ubsan:sources",
  ]

  complete_static_lib = true
  configs -= [ "//llvm/utils/gn/build:thin_archive" ]
  deps += [ ":msan_cxx" ]

  sources = [
    "msan.cpp",
    "msan.h",
    "msan_allocator.cpp",
    "msan_allocator.h",
    "msan_chained_origin_depot.cpp",
    "msan_chained_origin_depot.h",
    "msan_flags.h",
    "msan_flags.inc",
    "msan_interceptors.cpp",
    "msan_interface_internal.h",
    "msan_linux.cpp",
    "msan_origin.h",
    "msan_poisoning.cpp",
    "msan_poisoning.h",
    "msan_report.cpp",
    "msan_report.h",
    "msan_thread.cpp",
    "msan_thread.h",
  ]

  cflags = [ "-fPIE" ]

  # Prevent clang from generating libc calls.
  cflags += [ "-ffreestanding" ]

  # FIXME: link rt dl m pthread log
  # FIXME: need libclang_rt.msan*.a.syms?
  # FIXME: msan_ignorelist.txt
}

static_library("msan_cxx") {
  configs -= [ "//llvm/utils/gn/build:llvm_code" ]
  configs += [ "//llvm/utils/gn/build:crt_code" ]

  output_dir = crt_current_out_dir
  assert(current_os == "linux", "MSan only works on Linux")
  output_name = "clang_rt.msan_cxx$crt_current_target_suffix"

  complete_static_lib = true
  configs -= [ "//llvm/utils/gn/build:thin_archive" ]

  deps = [ "//compiler-rt/lib/ubsan:cxx_sources" ]

  sources = [ "msan_new_delete.cpp" ]
}