summaryrefslogtreecommitdiff
path: root/compiler-rt
diff options
context:
space:
mode:
authorCasey Smalley <casey.smalley@arm.com>2023-05-09 20:10:54 +0200
committerDaniel Kiss <daniel.kiss@arm.com>2023-05-09 20:12:32 +0200
commite305dcc6fdc7e0efc0de4091a49386923e3845b4 (patch)
tree8767c243d9ecf32ebdaed876cab695a5d0b28887 /compiler-rt
parent3204740bde796fc37251acddb7b3e123c0ec9196 (diff)
downloadllvm-e305dcc6fdc7e0efc0de4091a49386923e3845b4.tar.gz
Do not link asan_rtl_x86_64.S for non x86_64 platforms.
Do not link asan_rtl_x86_64.S for non x86_64 platforms. Prior to this CL asan_rtl_x86_64.S would be always be linked when building compiler-rt for non x86_64 platforms, this normally isn't an issue since at that link time is an empty file anyway. When attempting to link a Aarch64 program with branch protection enabled with the address sanitizer. E.g. ``` clang --target=aarch64 \ -fsanitize=address \ -mbranch-protection=standard \ -Wl,-z,force-bti -o test \ test.cc ``` Results in the linking error from the sections generated from the empty asan_rtl_x86_64.S owed to missing a .note.gnu.property Also see [[ https://bugs.chromium.org/p/chromium/issues/detail?id=1427165 | https://bugs.chromium.org/p/chromium/issues/detail?id=1427165 ]] Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D149957
Diffstat (limited to 'compiler-rt')
-rw-r--r--compiler-rt/lib/asan/CMakeLists.txt2
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler-rt/lib/asan/CMakeLists.txt b/compiler-rt/lib/asan/CMakeLists.txt
index 08fd68ab7acb..1bfc6f0c5e37 100644
--- a/compiler-rt/lib/asan/CMakeLists.txt
+++ b/compiler-rt/lib/asan/CMakeLists.txt
@@ -46,7 +46,7 @@ set(ASAN_STATIC_SOURCES
asan_rtl_static.cpp
)
-if (NOT WIN32 AND NOT APPLE)
+if (ASAN_SUPPORTED_ARCH STREQUAL "x86_64" AND NOT WIN32 AND NOT APPLE)
list(APPEND ASAN_STATIC_SOURCES
asan_rtl_x86_64.S
)