[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