diff options
author | Peter Collingbourne <pcc@google.com> | 2025-06-05 17:21:59 -0700 |
---|---|---|
committer | Peter Collingbourne <peter@pcc.me.uk> | 2025-06-05 17:21:59 -0700 |
commit | d035b6f6256740d41d4882a82324817ae9a7e9cc (patch) | |
tree | 1b0ec52c921b57769fdae815ccd82862aab87a4c | |
parent | de3a9ea510fecd501b4dd57534cf300d1c9622c9 (diff) | |
download | llvm-users/pcc/spr/gn-build-add-use_hwasan-flag.zip llvm-users/pcc/spr/gn-build-add-use_hwasan-flag.tar.gz llvm-users/pcc/spr/gn-build-add-use_hwasan-flag.tar.bz2 |
[𝘀𝗽𝗿] initial versionusers/pcc/spr/gn-build-add-use_hwasan-flag
Created using spr 1.3.6-beta.1
-rw-r--r-- | llvm/utils/gn/build/BUILD.gn | 9 | ||||
-rw-r--r-- | llvm/utils/gn/build/buildflags.gni | 3 | ||||
-rw-r--r-- | llvm/utils/gn/build/toolchain/BUILD.gn | 1 |
3 files changed, 12 insertions, 1 deletions
diff --git a/llvm/utils/gn/build/BUILD.gn b/llvm/utils/gn/build/BUILD.gn index 9b5254e..2d0bed5 100644 --- a/llvm/utils/gn/build/BUILD.gn +++ b/llvm/utils/gn/build/BUILD.gn @@ -396,6 +396,13 @@ config("compiler_defaults") { ldflags += [ "-fsanitize=address" ] } + if (use_hwasan) { + assert(is_clang && current_os == "linux" && current_cpu == "arm64", + "hwasan only supported on Linux/arm64/Clang") + cflags += [ "-fsanitize=hwaddress" ] + ldflags += [ "-fsanitize=hwaddress" ] + } + if (use_tsan) { assert(is_clang && current_os == "linux", "tsan only supported on Linux/Clang") @@ -448,7 +455,7 @@ config("zdefs") { # -Wl,-z,defs doesn't work with sanitizers. # https://clang.llvm.org/docs/AddressSanitizer.html if (current_os != "ios" && current_os != "mac" && current_os != "win" && - !(use_asan || use_tsan || use_ubsan)) { + !(use_asan || use_hwasan || use_tsan || use_ubsan)) { ldflags = [ "-Wl,-z,defs" ] } } diff --git a/llvm/utils/gn/build/buildflags.gni b/llvm/utils/gn/build/buildflags.gni index ca43a24..11fd455 100644 --- a/llvm/utils/gn/build/buildflags.gni +++ b/llvm/utils/gn/build/buildflags.gni @@ -11,6 +11,9 @@ declare_args() { # Whether to build with asan. use_asan = false + # Whether to build with hwasan. + use_hwasan = false + # Whether to enable assertions. llvm_enable_assertions = true diff --git a/llvm/utils/gn/build/toolchain/BUILD.gn b/llvm/utils/gn/build/toolchain/BUILD.gn index 00d9df1..271aebf 100644 --- a/llvm/utils/gn/build/toolchain/BUILD.gn +++ b/llvm/utils/gn/build/toolchain/BUILD.gn @@ -260,6 +260,7 @@ stage2_unix_toolchain("stage2_baremetal_aarch64") { # FIXME: These should be set in all toolchains building sanitizers, # see discussion at https://reviews.llvm.org/D127906#3587329 use_asan = false + use_hwasan = false use_tsan = false use_ubsan = false } |