[compiler-rt] b515d9e - [hwasan][aarch64] Fix missing DT_AARCH64_BTI_PLT flag (#95796)

via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 21 16:57:27 PDT 2024


Author: Tulio Magno Quites Machado Filho
Date: 2024-06-21T20:57:24-03:00
New Revision: b515d9ea1e4365f156dad06a91e7b0f18b1b67c7

URL: https://github.com/llvm/llvm-project/commit/b515d9ea1e4365f156dad06a91e7b0f18b1b67c7
DIFF: https://github.com/llvm/llvm-project/commit/b515d9ea1e4365f156dad06a91e7b0f18b1b67c7.diff

LOG: [hwasan][aarch64] Fix missing DT_AARCH64_BTI_PLT flag (#95796)

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.

Added: 
    

Modified: 
    compiler-rt/lib/hwasan/CMakeLists.txt

Removed: 
    


################################################################################
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
   )


        


More information about the llvm-commits mailing list