-
Notifications
You must be signed in to change notification settings - Fork 14.3k
[hwasan][aarch64] Fix missing DT_AARCH64_BTI_PLT flag #95796
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
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.
@llvm/pr-subscribers-compiler-rt-sanitizer Author: Tulio Magno Quites Machado Filho (tuliom) ChangesWhen 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. 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:
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
)
|
LLVM Buildbot has detected a new failure on builder Full details are available at: https://lab.llvm.org/buildbot/#/builders/66/builds/423 Here is the relevant piece of the build log for the reference:
|
LLVM Buildbot has detected a new failure on builder Full details are available at: https://lab.llvm.org/buildbot/#/builders/143/builds/140 Here is the relevant piece of the build log for the reference:
|
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.
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.