[compiler-rt] [hwasan][aarch64] Fix missing DT_AARCH64_BTI_PLT flag (PR #95796)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 17 07:43:49 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-compiler-rt-sanitizer
Author: Tulio Magno Quites Machado Filho (tuliom)
<details>
<summary>Changes</summary>
When building hwasan on aarch64, the DT_AARCH64_BTI_PLT flag is missing from libclang_rt.hwasan.so because some object files without DT_AARCH64_BTI_PLT are linked in the final DSO.
These files are specific to riscv64 and x86_64, ending up with no aarch64 code in them.
Avoid building and linking architecture-specific files unless the architecture is listed in HWASAN_SUPPORTED_ARCH.
---
Full diff: https://github.com/llvm/llvm-project/pull/95796.diff
1 Files Affected:
- (modified) compiler-rt/lib/hwasan/CMakeLists.txt (+17-5)
``````````diff
diff --git a/compiler-rt/lib/hwasan/CMakeLists.txt b/compiler-rt/lib/hwasan/CMakeLists.txt
index 6f75baa7e354f..086079c7536e5 100644
--- a/compiler-rt/lib/hwasan/CMakeLists.txt
+++ b/compiler-rt/lib/hwasan/CMakeLists.txt
@@ -15,16 +15,28 @@ set(HWASAN_RTL_SOURCES
hwasan_memintrinsics.cpp
hwasan_poisoning.cpp
hwasan_report.cpp
- hwasan_setjmp_aarch64.S
- hwasan_setjmp_riscv64.S
- hwasan_setjmp_x86_64.S
- hwasan_tag_mismatch_aarch64.S
- hwasan_tag_mismatch_riscv64.S
hwasan_thread.cpp
hwasan_thread_list.cpp
hwasan_type_test.cpp
)
+foreach(arch ${HWASAN_SUPPORTED_ARCH})
+ if(${arch} MATCHES "aarch64")
+ list(APPEND HWASAN_RTL_SOURCES
+ hwasan_setjmp_aarch64.S
+ hwasan_tag_mismatch_aarch64.S)
+ endif()
+ if(${arch} MATCHES "riscv64")
+ list(APPEND HWASAN_RTL_SOURCES
+ hwasan_setjmp_riscv64.S
+ hwasan_tag_mismatch_riscv64.S)
+ endif()
+ if(${arch} MATCHES "x86_64")
+ list(APPEND HWASAN_RTL_SOURCES
+ hwasan_setjmp_x86_64.S)
+ endif()
+endforeach()
+
set(HWASAN_RTL_CXX_SOURCES
hwasan_new_delete.cpp
)
``````````
</details>
https://github.com/llvm/llvm-project/pull/95796
More information about the llvm-commits
mailing list