llvm-project/compiler-rt/lib/asan
Kostya Kortchinsky 4a547fb62d [sanitizer] Use -Wl,-z,global on Android
Summary:
Use `-Wl,-z,global` for all Sanitizer shared libraries on
Android. We want them to be in the global group
(https://android.googlesource.com/platform/bionic/+/master/android-changes-for-ndk-developers.md#changes-to-library-search-order)
to avoid any alloc/dealloc mismatch between the libc allocator & said library.

`audioserver` was one of the binary that exhibited the problem with Scudo,
this seems to fix it.

[edited for accuracy]

Reviewers: eugenis, alekseyshl

Reviewed By: eugenis

Subscribers: kubamracek, srhines, mgorny, delcypher, #sanitizers, llvm-commits

Differential Revision: https://reviews.llvm.org/D49198

llvm-svn: 337010
2018-07-13 15:31:05 +00:00
..
scripts [asan] Remove malloc_context_size=0 from asan_device_setup. 2018-04-12 22:06:18 +00:00
tests [sanitizer] Split Symbolizer/StackTraces from core RTSanitizerCommon 2018-04-16 16:32:19 +00:00
.clang-format [sanitizer] Remove unneeded blank lines 2018-05-09 00:44:26 +00:00
CMakeLists.txt [sanitizer] Use -Wl,-z,global on Android 2018-07-13 15:31:05 +00:00
README.txt [ASan] Fix the links to bugs and wikipages. 2015-12-04 17:37:40 +00:00
asan.syms.extra [asan] Export __sancov_* symbols symbols. 2017-01-31 20:23:07 +00:00
asan_activation.cc [asan] Ensure that the minimum redzone is at least SHADOW_GRANULARITY 2017-11-16 17:03:25 +00:00
asan_activation.h
asan_activation_flags.inc ASAN activate/deactive controls thread_local_quarantine_size_kb option. 2017-01-12 18:51:25 +00:00
asan_allocator.cc [Sanitizers] Check alignment != 0 for aligned_alloc and posix_memalign 2018-06-08 20:40:35 +00:00
asan_allocator.h [Sanitizers] Check alignment != 0 for aligned_alloc and posix_memalign 2018-06-08 20:40:35 +00:00
asan_blacklist.txt
asan_debugging.cc [sanitizer] Remove reserving constructor from InternalMmapVector 2018-05-07 05:56:24 +00:00
asan_descriptions.cc [ASan] Minor ASan error reporting cleanup 2018-07-09 17:54:55 +00:00
asan_descriptions.h [ASan] Minor ASan error reporting cleanup 2018-07-09 17:54:55 +00:00
asan_errors.cc [ASan] Minor ASan error reporting cleanup 2018-07-09 17:54:55 +00:00
asan_errors.h [ASan] Linker-initialize static ScopedInErrorReport::current_error_. 2018-06-14 18:22:23 +00:00
asan_fake_stack.cc [asan] Avoid assert failure for non-default shadow scale 2017-11-16 22:02:58 +00:00
asan_fake_stack.h fix random typos [NFC] 2016-08-05 18:49:08 +00:00
asan_flags.cc [asan] Set flags appropriately for RTEMS 2018-05-07 16:38:20 +00:00
asan_flags.h
asan_flags.inc [asan] Fix bug introduced by r331647 2018-05-08 05:58:57 +00:00
asan_fuchsia.cc (NFC) Rename GetMax{,User}VirtualAddress. 2017-11-07 23:51:22 +00:00
asan_globals.cc [sanitizer] Remove reserving constructor from InternalMmapVector 2018-05-07 05:56:24 +00:00
asan_globals_win.cc [asan] Align __asan_global_start so that it works with LLD 2018-04-26 20:46:50 +00:00
asan_init_version.h [asan] Use dynamic shadow on 32-bit Android, try 2. 2017-11-20 17:41:57 +00:00
asan_interceptors.cc [sanitizer] Trivial portion of the port to Myriad RTEMS 2018-05-18 00:43:54 +00:00
asan_interceptors.h [sanitizer] Trivial portion of the port to Myriad RTEMS 2018-05-18 00:43:54 +00:00
asan_interceptors_memintrinsics.cc [asan] Explicitly declare memintrinsics interceptors to have C linkage 2018-05-18 18:01:08 +00:00
asan_interceptors_memintrinsics.h [asan] Fix bug where suppression of overlapping accesses was ignored on 2018-03-08 21:50:22 +00:00
asan_interface.inc [asan] Fix dead stripping of globals on Linux (compiler-rt). 2017-04-27 20:27:33 +00:00
asan_interface_internal.h [asan] Fix dead stripping of globals on Linux (compiler-rt). 2017-04-27 20:27:33 +00:00
asan_internal.h [sanitizer] Trivial portion of the port to Myriad RTEMS 2018-05-18 00:43:54 +00:00
asan_linux.cc [asan] Fix filename size on linux platforms. 2018-02-07 18:27:25 +00:00
asan_lock.h
asan_mac.cc [asan] Be more careful and verbose when allocating dynamic shadow memory 2018-02-26 18:33:21 +00:00
asan_malloc_linux.cc [ASAN] fix typos and disable long-object-path test for win32 2018-06-14 15:12:46 +00:00
asan_malloc_local.h [asan, myriad] Use local pool for new/delete when ASan run-time is not up 2018-06-08 21:49:38 +00:00
asan_malloc_mac.cc [Sanitizers] Add more standard compliant posix_memalign implementation for LSan. 2018-03-12 21:59:06 +00:00
asan_malloc_win.cc Fix -Wstring-conversion instance 2017-03-15 19:50:02 +00:00
asan_mapping.h [asan] Remove an unsigned compare >= 0 2018-05-18 17:52:12 +00:00
asan_mapping_myriad.h [asan] Add support for Myriad RTEMS memory map 2018-05-18 04:09:45 +00:00
asan_memory_profile.cc [sanitizer] Cleanup sorting functions 2018-05-09 20:42:11 +00:00
asan_new_delete.cc [asan, myriad] Use local pool for new/delete when ASan run-time is not up 2018-06-08 21:49:38 +00:00
asan_poisoning.cc [asan] Add support for Myriad RTEMS memory map 2018-05-18 04:09:45 +00:00
asan_poisoning.h [sanitizer] Trivial portion of the port to Myriad RTEMS 2018-05-18 00:43:54 +00:00
asan_posix.cc [sanitizer] Remove unused <signal.h> which conflicts with asan declarations 2017-11-10 04:12:35 +00:00
asan_preinit.cc
asan_premap_shadow.cc [asan] Use dynamic shadow on 32-bit Android, try 2. 2017-11-20 17:41:57 +00:00
asan_premap_shadow.h [asan] Use dynamic shadow on 32-bit Android, try 2. 2017-11-20 17:41:57 +00:00
asan_report.cc [sanitizer] Use const char* in internal_simple_strtoll 2018-06-17 08:41:45 +00:00
asan_report.h [Sanitizers] Check alignment != 0 for aligned_alloc and posix_memalign 2018-06-08 20:40:35 +00:00
asan_rtems.cc [asan, myriad] Simplify main thread handling 2018-05-30 04:57:29 +00:00
asan_rtl.cc [asan] Avoid deadlock when initializing the symbolizer CHECK fails 2018-06-19 00:36:47 +00:00
asan_scariness_score.h [asan] Add const into ScarinessScoreBase::Print 2017-09-14 03:06:20 +00:00
asan_shadow_setup.cc [sanitizer] Trivial portion of the port to Myriad RTEMS 2018-05-18 00:43:54 +00:00
asan_stack.cc
asan_stack.h [sanitizers] Rename GetStackTraceWithPcBpAndContext 2017-11-09 07:53:06 +00:00
asan_stats.cc [ASan] Clean up obsolete stats. 2015-06-26 19:18:02 +00:00
asan_stats.h [ASan] Clean up obsolete stats. 2015-06-26 19:18:02 +00:00
asan_suppressions.cc General definition for weak functions 2017-01-29 05:44:59 +00:00
asan_suppressions.h
asan_thread.cc [asan] Make GetCurrentThread RTEMS-friendly 2018-05-21 20:43:36 +00:00
asan_thread.h [asan] Restore check removed by r332033 2018-05-16 23:23:56 +00:00
asan_win.cc [asan] Remove unneeded VirtualQuery from exception handler 2018-05-30 21:21:18 +00:00
asan_win_dll_thunk.cc Comment fix. 2018-05-04 14:41:49 +00:00
asan_win_dynamic_runtime_thunk.cc [sanitizer] Add dynamic_runtime_thunk for different sanitizers. 2017-02-02 23:01:41 +00:00
asan_win_weak_interception.cc [sanitizer] Use interception to access to strong definitions in the executable. 2017-02-02 23:02:11 +00:00
weak_symbols.txt Add lsan interceptors for libdispatch functions on darwin 2017-06-19 19:21:31 +00:00

README.txt

AddressSanitizer RT
================================
This directory contains sources of the AddressSanitizer (ASan) runtime library.

Directory structure:
README.txt       : This file.
Makefile.mk      : File for make-based build.
CMakeLists.txt   : File for cmake-based build.
asan_*.{cc,h}    : Sources of the asan runtime library.
scripts/*        : Helper scripts.
tests/*          : ASan unit tests.

Also ASan runtime needs the following libraries:
lib/interception/      : Machinery used to intercept function calls.
lib/sanitizer_common/  : Code shared between various sanitizers.

ASan runtime currently also embeds part of LeakSanitizer runtime for
leak detection (lib/lsan/lsan_common.{cc,h}).

ASan runtime can only be built by CMake. You can run ASan tests
from the root of your CMake build tree:

make check-asan

For more instructions see:
https://github.com/google/sanitizers/wiki/AddressSanitizerHowToBuild