Index: cmake/config-ix.cmake =================================================================== --- cmake/config-ix.cmake +++ cmake/config-ix.cmake @@ -254,10 +254,7 @@ filter_available_targets(UBSAN_COMMON_SUPPORTED_ARCH ${SANITIZER_COMMON_SUPPORTED_ARCH}) filter_available_targets(ASAN_SUPPORTED_ARCH - x86_64 i386 i686 powerpc64 powerpc64le arm mips mipsel mips64 mips64el) -if(ANDROID) - filter_available_targets(ASAN_SUPPORTED_ARCH aarch64) -endif() + x86_64 i386 i686 powerpc64 powerpc64le arm mips mipsel mips64 mips64el aarch64) filter_available_targets(DFSAN_SUPPORTED_ARCH x86_64 mips64 mips64el aarch64) filter_available_targets(LSAN_SUPPORTED_ARCH x86_64 mips64 mips64el) filter_available_targets(MSAN_SUPPORTED_ARCH x86_64 mips64 mips64el) Index: lib/asan/asan_mapping.h =================================================================== --- lib/asan/asan_mapping.h +++ lib/asan/asan_mapping.h @@ -73,6 +73,13 @@ // || `[0x2000000000, 0x23ffffffff]` || LowShadow || // || `[0x0000000000, 0x1fffffffff]` || LowMem || // +// Default Linux/AArch64 (39-bit VMA) mapping: +// || `[0x2000000000, 0x7fffffffff]` || highmem || +// || `[0x1400000000, 0x1fffffffff]` || highshadow || +// || `[0x1200000000, 0x13ffffffff]` || shadowgap || +// || `[0x1000000000, 0x11ffffffff]` || lowshadow || +// || `[0x0000000000, 0x0fffffffff]` || lowmem || +// // Shadow mapping on FreeBSD/x86-64 with SHADOW_OFFSET == 0x400000000000: // || `[0x500000000000, 0x7fffffffffff]` || HighMem || // || `[0x4a0000000000, 0x4fffffffffff]` || HighShadow || Index: lib/sanitizer_common/sanitizer_platform.h =================================================================== --- lib/sanitizer_common/sanitizer_platform.h +++ lib/sanitizer_common/sanitizer_platform.h @@ -130,7 +130,7 @@ #define SANITIZER_USES_UID16_SYSCALLS 0 #endif -#ifdef __mips__ +#if defined(__mips__) || defined(__aarch64__) # define SANITIZER_POINTER_FORMAT_LENGTH FIRST_32_SECOND_64(8, 10) #else # define SANITIZER_POINTER_FORMAT_LENGTH FIRST_32_SECOND_64(8, 12) Index: test/asan/TestCases/Linux/static_tls.cc =================================================================== --- test/asan/TestCases/Linux/static_tls.cc +++ test/asan/TestCases/Linux/static_tls.cc @@ -9,7 +9,7 @@ // CHECK: __tls_get_addr: static tls // CHECK: after -// XFAIL: powerpc64 +// XFAIL: powerpc64, aarch64 #ifndef SHARED #include Index: test/asan/lit.cfg =================================================================== --- test/asan/lit.cfg +++ test/asan/lit.cfg @@ -162,7 +162,7 @@ # Allow tests to use REQUIRES=stable-runtime. For use when you cannot use XFAIL # because the test hangs. -if config.target_arch != 'arm': +if config.target_arch != 'arm' or config.target_arch != 'aarch64': config.available_features.add('stable-runtime') # Turn on leak detection on 64-bit Linux. Index: test/sanitizer_common/TestCases/Posix/decorate_proc_maps.cc =================================================================== --- test/sanitizer_common/TestCases/Posix/decorate_proc_maps.cc +++ test/sanitizer_common/TestCases/Posix/decorate_proc_maps.cc @@ -1,5 +1,6 @@ // RUN: %clangxx -g %s -o %t // RUN: %tool_options=decorate_proc_maps=1 %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-%tool_name +// REQUIRES: stable-release #include #include #include