Index: compiler-rt/trunk/lib/asan/asan_rtl.cc =================================================================== --- compiler-rt/trunk/lib/asan/asan_rtl.cc +++ compiler-rt/trunk/lib/asan/asan_rtl.cc @@ -383,12 +383,18 @@ kHighShadowBeg > kMidMemEnd); } +#if defined(__thumb__) && defined(__linux__) +#define START_BACKGROUND_THREAD_IN_ASAN_INTERNAL +#endif + +#ifndef START_BACKGROUND_THREAD_IN_ASAN_INTERNAL static bool UNUSED __local_asan_dyninit = [] { MaybeStartBackgroudThread(); SetSoftRssLimitExceededCallback(AsanSoftRssLimitExceededCallback); return false; }(); +#endif static void AsanInitInternal() { if (LIKELY(asan_inited)) return; @@ -464,6 +470,11 @@ allocator_options.SetFrom(flags(), common_flags()); InitializeAllocator(allocator_options); +#ifdef START_BACKGROUND_THREAD_IN_ASAN_INTERNAL + MaybeStartBackgroudThread(); + SetSoftRssLimitExceededCallback(AsanSoftRssLimitExceededCallback); +#endif + // On Linux AsanThread::ThreadStart() calls malloc() that's why asan_inited // should be set to 1 prior to initializing the threads. asan_inited = 1; Index: compiler-rt/trunk/test/asan/TestCases/Linux/quarantine_size_mb.cc =================================================================== --- compiler-rt/trunk/test/asan/TestCases/Linux/quarantine_size_mb.cc +++ compiler-rt/trunk/test/asan/TestCases/Linux/quarantine_size_mb.cc @@ -7,7 +7,7 @@ // RUN: %env_asan_opts=hard_rss_limit_mb=20 not %run %t 2>&1 | FileCheck %s --check-prefix=RSS_LIMIT // https://github.com/google/sanitizers/issues/981 -// UNSUPPORTED: android-26, arm +// UNSUPPORTED: android-26 #include char *g; Index: compiler-rt/trunk/test/sanitizer_common/TestCases/hard_rss_limit_mb_test.cc =================================================================== --- compiler-rt/trunk/test/sanitizer_common/TestCases/hard_rss_limit_mb_test.cc +++ compiler-rt/trunk/test/sanitizer_common/TestCases/hard_rss_limit_mb_test.cc @@ -16,7 +16,7 @@ // XFAIL: msan // XFAIL: ubsan -// UNSUPPORTED: freebsd, solaris, darwin, arm +// UNSUPPORTED: freebsd, solaris, darwin #include #include