brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.1 KiB · 15a4d8f Raw
163 lines · plain
1import("//compiler-rt/gen_version_script.gni")2import("//compiler-rt/target.gni")3 4if (current_cpu == "x64") {5  hwasan_name = "hwasan_aliases"6} else {7  hwasan_name = "hwasan"8}9 10gen_version_script("version_script") {11  extra = "hwasan.syms.extra"12  output = "$target_gen_dir/hwasan.vers"13  libs = [14    ":hwasan_static",15    ":hwasan_cxx",16  ]17  lib_names = [18    "$hwasan_name",19    "${hwasan_name}_cxx",20  ]21}22 23source_set("sources") {24  configs -= [ "//llvm/utils/gn/build:llvm_code" ]25  configs += [ "//llvm/utils/gn/build:crt_code" ]26  defines = [ "HWASAN_WITH_INTERCEPTORS=1" ]27  if (current_cpu == "x64") {28    defines += [ "HWASAN_ALIASING_MODE" ]29  }30  deps = [31    "//compiler-rt/lib/interception:sources",32    "//compiler-rt/lib/lsan:common_sources",33    "//compiler-rt/lib/sanitizer_common:sources",34    "//compiler-rt/lib/ubsan:sources",35  ]36  sources = [37    "hwasan.cpp",38    "hwasan.h",39    "hwasan_allocation_functions.cpp",40    "hwasan_allocator.cpp",41    "hwasan_allocator.h",42    "hwasan_dynamic_shadow.cpp",43    "hwasan_dynamic_shadow.h",44    "hwasan_exceptions.cpp",45    "hwasan_flags.h",46    "hwasan_fuchsia.cpp",47    "hwasan_globals.cpp",48    "hwasan_globals.h",49    "hwasan_interceptors.cpp",50    "hwasan_interceptors_vfork.S",51    "hwasan_interface_internal.h",52    "hwasan_linux.cpp",53    "hwasan_malloc_bisect.h",54    "hwasan_mapping.h",55    "hwasan_memintrinsics.cpp",56    "hwasan_poisoning.cpp",57    "hwasan_poisoning.h",58    "hwasan_report.cpp",59    "hwasan_report.h",60    "hwasan_thread.cpp",61    "hwasan_thread.h",62    "hwasan_thread_list.cpp",63    "hwasan_thread_list.h",64    "hwasan_type_test.cpp",65  ]66  if (current_cpu == "arm64") {67    sources += [68      "hwasan_setjmp_aarch64.S",69      "hwasan_tag_mismatch_aarch64.S",70    ]71  }72  if (current_cpu == "riscv64") {73    sources += [74      "hwasan_setjmp_riscv64.S",75      "hwasan_tag_mismatch_riscv64.S",76    ]77  }78  if (current_cpu == "x64") {79    sources += [ "hwasan_setjmp_x86_64.S" ]80  }81}82 83source_set("cxx_sources") {84  configs -= [ "//llvm/utils/gn/build:llvm_code" ]85  configs += [ "//llvm/utils/gn/build:crt_code" ]86  defines = [ "HWASAN_WITH_INTERCEPTORS=1" ]87  deps = [ "//compiler-rt/lib/ubsan:cxx_sources" ]88  sources = [ "hwasan_new_delete.cpp" ]89}90 91source_set("preinit_sources") {92  configs -= [ "//llvm/utils/gn/build:llvm_code" ]93  configs += [ "//llvm/utils/gn/build:crt_code" ]94  defines = [ "HWASAN_WITH_INTERCEPTORS=1" ]95  sources = [ "hwasan_preinit.cpp" ]96}97 98static_library("hwasan_static") {99  output_dir = crt_current_out_dir100  output_name = "clang_rt.$hwasan_name$crt_current_target_suffix"101  complete_static_lib = true102  configs -= [103    "//llvm/utils/gn/build:llvm_code",104    "//llvm/utils/gn/build:thin_archive",105  ]106  configs += [ "//llvm/utils/gn/build:crt_code" ]107  deps = [108    ":preinit_sources",109    ":sources",110  ]111}112 113static_library("hwasan_cxx") {114  output_dir = crt_current_out_dir115  output_name = "clang_rt.${hwasan_name}_cxx$crt_current_target_suffix"116  complete_static_lib = true117  configs -= [118    "//llvm/utils/gn/build:llvm_code",119    "//llvm/utils/gn/build:thin_archive",120  ]121  configs += [ "//llvm/utils/gn/build:crt_code" ]122  deps = [ ":cxx_sources" ]123}124 125shared_library("hwasan_shared") {126  output_dir = crt_current_out_dir127  output_name = "clang_rt.$hwasan_name$crt_current_target_suffix"128  configs -= [ "//llvm/utils/gn/build:llvm_code" ]129  configs += [ "//llvm/utils/gn/build:crt_code" ]130  deps = [131    ":cxx_sources",132    ":sources",133    ":version_script",134  ]135  inputs = [ "$target_gen_dir/hwasan.vers" ]136  ldflags = [137    "-Wl,--version-script," + rebase_path(inputs[0], root_build_dir),138    "-Wl,-z,global",139  ]140}141 142static_library("hwasan_preinit") {143  output_dir = crt_current_out_dir144  output_name = "clang_rt.hwasan-preinit$crt_current_target_suffix"145  complete_static_lib = true146  configs -= [147    "//llvm/utils/gn/build:llvm_code",148    "//llvm/utils/gn/build:thin_archive",149  ]150  configs += [ "//llvm/utils/gn/build:crt_code" ]151  deps = [ ":preinit_sources" ]152}153 154group("hwasan") {155  deps = [156    ":hwasan_cxx",157    ":hwasan_preinit",158    ":hwasan_shared",159    ":hwasan_static",160    ":version_script",161  ]162}163