Index: lib/asan/asan_rtl.cc =================================================================== --- lib/asan/asan_rtl.cc +++ lib/asan/asan_rtl.cc @@ -383,12 +383,14 @@ kHighShadowBeg > kMidMemEnd); } +#if !defined(__thumb__) static bool UNUSED __local_asan_dyninit = [] { MaybeStartBackgroudThread(); SetSoftRssLimitExceededCallback(AsanSoftRssLimitExceededCallback); return false; }(); +#endif static void AsanInitInternal() { if (LIKELY(asan_inited)) return; @@ -464,6 +466,11 @@ allocator_options.SetFrom(flags(), common_flags()); InitializeAllocator(allocator_options); +#if defined(__thumb__) + 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: test/asan/TestCases/Linux/quarantine_size_mb.cc =================================================================== --- test/asan/TestCases/Linux/quarantine_size_mb.cc +++ 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: test/sanitizer_common/TestCases/hard_rss_limit_mb_test.cc =================================================================== --- test/sanitizer_common/TestCases/hard_rss_limit_mb_test.cc +++ 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