The patch set aims to update libsanitizer from upstream. The motivation is that
RISC-V is changing the shadow offset for AddressSanitizer, and I also plan to
submit another patch set to add dynamic shadow offset support for GCC.
This is my first time updating it, so I used my laptop and an AArch64 server
from cfram to run the regression tests. I tested on x86_64/Linux (Ubuntu 22.04)
and AArch64/Linux (Rocky 9.4), both with --with-build-config=bootstrap-asan and
performed a standard 3-stage build. No new regressions were introduced.
NOTE: I tried to run regression tests with
--with-build-config=bootstrap-asan, but I received warnings from
LeakSanitizer due to the pretty printer, which make the test results
unusable...
Kito Cheng (4):
libsanitizer: merge from upstream (61a6439f35b6de28)
libsanitizer: Apply local patches
libsanitizer: Improve FrameIsInternal
libsanitizer: update test
gcc/testsuite/c-c++-common/ubsan/builtin-1.c | 4 +-
libsanitizer/MERGE | 2 +-
libsanitizer/asan/Makefile.am | 1 -
libsanitizer/asan/Makefile.in | 5 +-
libsanitizer/asan/asan_allocator.cpp | 10 +-
libsanitizer/asan/asan_allocator.h | 36 +-
libsanitizer/asan/asan_descriptions.cpp | 52 +-
libsanitizer/asan/asan_descriptions.h | 2 -
libsanitizer/asan/asan_errors.cpp | 20 +-
libsanitizer/asan/asan_errors.h | 19 +
libsanitizer/asan/asan_flags.cpp | 96 +-
libsanitizer/asan/asan_fuchsia.cpp | 7 +-
libsanitizer/asan/asan_globals.cpp | 259 +-
libsanitizer/asan/asan_globals_win.cpp | 12 +-
libsanitizer/asan/asan_interceptors.cpp | 139 +-
libsanitizer/asan/asan_interceptors.h | 8 -
libsanitizer/asan/asan_internal.h | 4 +-
libsanitizer/asan/asan_linux.cpp | 29 +-
libsanitizer/asan/asan_lock.h | 0
libsanitizer/asan/asan_mac.cpp | 12 +-
libsanitizer/asan/asan_malloc_linux.cpp | 16 +-
libsanitizer/asan/asan_malloc_mac.cpp | 5 +-
libsanitizer/asan/asan_malloc_win.cpp | 97 +-
libsanitizer/asan/asan_malloc_win_thunk.cpp | 229 ++
libsanitizer/asan/asan_mapping.h | 7 +-
libsanitizer/asan/asan_new_delete.cpp | 9 -
libsanitizer/asan/asan_poisoning.cpp | 184 +-
libsanitizer/asan/asan_posix.cpp | 47 +-
libsanitizer/asan/asan_preinit.cpp | 10 +-
libsanitizer/asan/asan_premap_shadow.cpp | 3 +-
libsanitizer/asan/asan_report.cpp | 43 +-
libsanitizer/asan/asan_report.h | 3 +
libsanitizer/asan/asan_rtl.cpp | 65 +-
libsanitizer/asan/asan_rtl_x86_64.S | 10 +
libsanitizer/asan/asan_suppressions.cpp | 12 +-
libsanitizer/asan/asan_thread.cpp | 40 +-
libsanitizer/asan/asan_thread.h | 11 +-
libsanitizer/asan/asan_win.cpp | 12 +-
.../asan/asan_win_common_runtime_thunk.cpp | 112 +
.../asan/asan_win_common_runtime_thunk.h | 38 +
libsanitizer/asan/asan_win_dll_thunk.cpp | 165 --
.../asan/asan_win_dynamic_runtime_thunk.cpp | 104 +-
.../asan/asan_win_static_runtime_thunk.cpp | 113 +
.../asan/asan_win_weak_interception.cpp | 22 -
libsanitizer/builtins/assembly.h | 5 +-
libsanitizer/hwasan/hwasan.cpp | 8 +-
libsanitizer/hwasan/hwasan.h | 10 +-
.../hwasan/hwasan_allocation_functions.cpp | 8 +-
libsanitizer/hwasan/hwasan_allocator.cpp | 7 +-
libsanitizer/hwasan/hwasan_checks.h | 1 -
libsanitizer/hwasan/hwasan_dynamic_shadow.cpp | 17 +-
libsanitizer/hwasan/hwasan_flags.inc | 7 +
libsanitizer/hwasan/hwasan_interceptors.cpp | 7 +-
.../hwasan/hwasan_interface_internal.h | 3 +
libsanitizer/hwasan/hwasan_linux.cpp | 108 +-
libsanitizer/hwasan/hwasan_preinit.cpp | 10 +-
libsanitizer/hwasan/hwasan_report.cpp | 161 +-
libsanitizer/hwasan/hwasan_thread.cpp | 8 +-
libsanitizer/hwasan/hwasan_thread_list.cpp | 9 +-
libsanitizer/hwasan/hwasan_thread_list.h | 8 +-
.../include/sanitizer/allocator_interface.h | 15 +-
.../include/sanitizer/common_interface_defs.h | 39 +-
.../include/sanitizer/hwasan_interface.h | 4 +
.../include/sanitizer/linux_syscall_hooks.h | 16 +-
.../include/sanitizer/memprof_interface.h | 6 +
.../include/sanitizer/nsan_interface.h | 75 +
.../include/sanitizer/rtsan_interface.h | 75 +
.../include/sanitizer/ubsan_interface.h | 2 +
libsanitizer/interception/interception.h | 35 +-
.../interception/interception_linux.h | 16 +-
.../interception/interception_type_test.cpp | 31 +-
.../interception/interception_win.cpp | 237 +-
libsanitizer/lsan/lsan.cpp | 3 +-
libsanitizer/lsan/lsan.h | 1 +
libsanitizer/lsan/lsan_allocator.cpp | 2 +-
libsanitizer/lsan/lsan_common.cpp | 355 ++-
libsanitizer/lsan/lsan_common.h | 5 +
libsanitizer/lsan/lsan_common_linux.cpp | 2 +-
libsanitizer/lsan/lsan_flags.inc | 7 +
libsanitizer/lsan/lsan_fuchsia.cpp | 1 +
libsanitizer/lsan/lsan_interceptors.cpp | 12 +-
libsanitizer/lsan/lsan_posix.cpp | 45 +-
libsanitizer/lsan/lsan_preinit.cpp | 8 +-
libsanitizer/lsan/lsan_thread.cpp | 13 +-
libsanitizer/sanitizer_common/Makefile.am | 6 +-
libsanitizer/sanitizer_common/Makefile.in | 20 +-
.../sanitizer_common/sancov_flags.cpp | 6 +-
.../sanitizer_common/sanitizer_allocator.cpp | 7 +-
.../sanitizer_allocator_dlsym.h | 13 +-
.../sanitizer_allocator_interface.h | 2 +
.../sanitizer_allocator_primary32.h | 2 +-
.../sanitizer_allocator_primary64.h | 13 +-
.../sanitizer_common/sanitizer_atomic.h | 14 +-
.../sanitizer_common/sanitizer_atomic_clang.h | 85 +-
.../sanitizer_atomic_clang_mips.h | 117 -
.../sanitizer_atomic_clang_other.h | 85 -
.../sanitizer_atomic_clang_x86.h | 113 -
.../sanitizer_common/sanitizer_atomic_msvc.h | 8 +-
.../sanitizer_common/sanitizer_bitvector.h | 8 +-
.../sanitizer_chained_origin_depot.cpp | 6 +-
.../sanitizer_chained_origin_depot.h | 4 +-
.../sanitizer_common/sanitizer_common.cpp | 15 +-
.../sanitizer_common/sanitizer_common.h | 61 +-
.../sanitizer_common_interceptors.inc | 457 ++--
.../sanitizer_common_interface.inc | 9 +
.../sanitizer_common_libcdep.cpp | 34 +-
.../sanitizer_common_nolibc.cpp | 7 +-
.../sanitizer_common_syscalls.inc | 68 +-
.../sanitizer_coverage_fuchsia.cpp | 2 +-
.../sanitizer_coverage_libcdep_new.cpp | 3 +-
.../sanitizer_coverage_win_dll_thunk.cpp | 20 -
... sanitizer_coverage_win_runtime_thunk.cpp} | 21 +-
...nitizer_coverage_win_weak_interception.cpp | 23 -
.../sanitizer_common/sanitizer_dense_map.h | 70 +-
.../sanitizer_common/sanitizer_errno.cpp | 1 +
.../sanitizer_common/sanitizer_errno_codes.h | 1 +
.../sanitizer_common/sanitizer_file.cpp | 4 +-
.../sanitizer_common/sanitizer_flags.inc | 7 +
.../sanitizer_common/sanitizer_flat_map.h | 4 +
.../sanitizer_common/sanitizer_freebsd.h | 137 --
.../sanitizer_common/sanitizer_fuchsia.cpp | 107 +-
.../sanitizer_common/sanitizer_hash.h | 2 +-
.../sanitizer_interface_internal.h | 10 +
.../sanitizer_internal_defs.h | 45 +-
.../sanitizer_common/sanitizer_libignore.cpp | 32 +-
.../sanitizer_common/sanitizer_libignore.h | 35 +-
.../sanitizer_common/sanitizer_linux.cpp | 2137 ++++++++++-------
.../sanitizer_common/sanitizer_linux.h | 122 +-
.../sanitizer_linux_libcdep.cpp | 730 +++---
.../sanitizer_common/sanitizer_linux_s390.cpp | 164 +-
.../sanitizer_common/sanitizer_mac.cpp | 46 +-
.../sanitizer_common/sanitizer_mallinfo.h | 4 +
.../sanitizer_common/sanitizer_mutex.cpp | 6 +-
.../sanitizer_placement_new.h | 4 +-
.../sanitizer_common/sanitizer_platform.h | 17 +-
.../sanitizer_platform_interceptors.h | 54 +-
.../sanitizer_platform_limits_freebsd.cpp | 2 +
.../sanitizer_platform_limits_freebsd.h | 24 +-
.../sanitizer_platform_limits_openbsd.cpp | 0
.../sanitizer_platform_limits_openbsd.h | 0
.../sanitizer_platform_limits_posix.cpp | 57 +-
.../sanitizer_platform_limits_posix.h | 32 +-
.../sanitizer_common/sanitizer_posix.cpp | 22 +-
.../sanitizer_common/sanitizer_posix.h | 32 +-
.../sanitizer_posix_libcdep.cpp | 133 +-
.../sanitizer_common/sanitizer_printf.cpp | 2 +-
.../sanitizer_procmaps_bsd.cpp | 47 +-
.../sanitizer_procmaps_common.cpp | 2 +-
.../sanitizer_procmaps_mac.cpp | 4 +-
.../sanitizer_procmaps_solaris.cpp | 4 +
.../sanitizer_common/sanitizer_ptrauth.h | 46 +-
.../sanitizer_redefine_builtins.h | 8 +-
.../sanitizer_stack_store.cpp | 9 +-
.../sanitizer_common/sanitizer_stackdepot.cpp | 8 +-
.../sanitizer_common/sanitizer_stackdepot.h | 4 +-
.../sanitizer_stackdepotbase.h | 31 +-
.../sanitizer_stacktrace_libcdep.cpp | 20 +-
.../sanitizer_stacktrace_printer.cpp | 45 +-
.../sanitizer_stacktrace_printer.h | 48 +-
.../sanitizer_stacktrace_sparc.cpp | 11 +-
.../sanitizer_stoptheworld_linux_libcdep.cpp | 19 +-
.../sanitizer_stoptheworld_netbsd_libcdep.cpp | 4 +-
.../sanitizer_suppressions.cpp | 7 +-
.../sanitizer_common/sanitizer_symbolizer.h | 30 +-
.../sanitizer_symbolizer_libcdep.cpp | 7 +
.../sanitizer_symbolizer_mac.cpp | 4 +-
.../sanitizer_symbolizer_markup.cpp | 234 +-
.../sanitizer_symbolizer_markup.h | 79 +
...> sanitizer_symbolizer_markup_constants.h} | 19 +-
.../sanitizer_symbolizer_markup_fuchsia.cpp | 85 +
.../sanitizer_symbolizer_posix_libcdep.cpp | 34 +-
.../sanitizer_symbolizer_report.cpp | 85 +-
.../sanitizer_symbolizer_report_fuchsia.cpp | 33 +
.../sanitizer_symbolizer_win.cpp | 13 +-
.../sanitizer_thread_arg_retval.cpp | 23 +-
.../sanitizer_thread_arg_retval.h | 1 +
.../sanitizer_thread_history.cpp | 72 +
.../sanitizer_thread_history.h | 24 +
.../sanitizer_thread_registry.cpp | 51 +-
.../sanitizer_thread_registry.h | 11 +-
.../sanitizer_tls_get_addr.cpp | 81 +-
.../sanitizer_common/sanitizer_tls_get_addr.h | 4 -
.../sanitizer_unwind_fuchsia.cpp | 66 +
.../sanitizer_common/sanitizer_unwind_win.cpp | 7 +
.../sanitizer_common/sanitizer_win.cpp | 107 +-
.../sanitizer_win_dll_thunk.cpp | 101 -
.../sanitizer_win_dll_thunk.h | 181 --
.../sanitizer_win_dynamic_runtime_thunk.cpp | 26 -
.../sanitizer_win_immortalize.h | 71 +
.../sanitizer_win_interception.cpp | 156 ++
.../sanitizer_win_interception.h | 32 +
.../sanitizer_win_thunk_interception.cpp | 110 +
.../sanitizer_win_thunk_interception.h | 88 +
.../sanitizer_win_weak_interception.cpp | 94 -
.../sanitizer_win_weak_interception.h | 32 -
libsanitizer/tsan/tsan_defs.h | 2 +-
libsanitizer/tsan/tsan_dispatch_defs.h | 7 -
libsanitizer/tsan/tsan_interceptors_mac.cpp | 8 +
libsanitizer/tsan/tsan_interceptors_posix.cpp | 187 +-
libsanitizer/tsan/tsan_interface_ann.cpp | 2 +-
libsanitizer/tsan/tsan_mman.cpp | 31 +-
libsanitizer/tsan/tsan_mman.h | 4 +-
libsanitizer/tsan/tsan_platform.h | 42 +-
libsanitizer/tsan/tsan_platform_linux.cpp | 171 +-
libsanitizer/tsan/tsan_platform_mac.cpp | 9 +-
libsanitizer/tsan/tsan_platform_posix.cpp | 43 +-
libsanitizer/tsan/tsan_preinit.cpp | 10 +-
libsanitizer/tsan/tsan_report.cpp | 26 +-
libsanitizer/tsan/tsan_rtl.cpp | 24 +-
libsanitizer/tsan/tsan_rtl.h | 8 +-
libsanitizer/tsan/tsan_rtl_aarch64.S | 7 +
libsanitizer/tsan/tsan_rtl_access.cpp | 22 +-
libsanitizer/tsan/tsan_rtl_mutex.cpp | 2 +-
libsanitizer/tsan/tsan_rtl_thread.cpp | 20 +-
libsanitizer/tsan/tsan_suppressions.cpp | 2 +-
libsanitizer/tsan/tsan_vector_clock.h | 2 +-
libsanitizer/ubsan/ubsan_diag.cpp | 6 +-
libsanitizer/ubsan/ubsan_diag.h | 20 -
libsanitizer/ubsan/ubsan_diag_standalone.cpp | 2 +-
libsanitizer/ubsan/ubsan_handlers.cpp | 38 +-
libsanitizer/ubsan/ubsan_handlers.h | 2 +
libsanitizer/ubsan/ubsan_init.cpp | 2 +-
.../ubsan/ubsan_init_standalone_preinit.cpp | 4 +-
.../ubsan/ubsan_signals_standalone.cpp | 5 +
.../ubsan/ubsan_type_hash_itanium.cpp | 2 +-
libsanitizer/ubsan/ubsan_value.cpp | 17 +-
libsanitizer/ubsan/ubsan_value.h | 33 +-
libsanitizer/ubsan/ubsan_win_dll_thunk.cpp | 20 -
..._thunk.cpp => ubsan_win_runtime_thunk.cpp} | 11 +-
.../ubsan/ubsan_win_weak_interception.cpp | 23 -
230 files changed, 7205 insertions(+), 4615 deletions(-)
delete mode 100644 libsanitizer/asan/asan_lock.h
create mode 100644 libsanitizer/asan/asan_malloc_win_thunk.cpp
create mode 100644 libsanitizer/asan/asan_win_common_runtime_thunk.cpp
create mode 100644 libsanitizer/asan/asan_win_common_runtime_thunk.h
delete mode 100644 libsanitizer/asan/asan_win_dll_thunk.cpp
create mode 100644 libsanitizer/asan/asan_win_static_runtime_thunk.cpp
delete mode 100644 libsanitizer/asan/asan_win_weak_interception.cpp
create mode 100644 libsanitizer/include/sanitizer/nsan_interface.h
create mode 100644 libsanitizer/include/sanitizer/rtsan_interface.h
delete mode 100644 libsanitizer/sanitizer_common/sanitizer_atomic_clang_mips.h
delete mode 100644 libsanitizer/sanitizer_common/sanitizer_atomic_clang_other.h
delete mode 100644 libsanitizer/sanitizer_common/sanitizer_atomic_clang_x86.h
delete mode 100644
libsanitizer/sanitizer_common/sanitizer_coverage_win_dll_thunk.cpp
rename
libsanitizer/sanitizer_common/{sanitizer_coverage_win_dynamic_runtime_thunk.cpp
=> sanitizer_coverage_win_runtime_thunk.cpp} (59%)
delete mode 100644
libsanitizer/sanitizer_common/sanitizer_coverage_win_weak_interception.cpp
delete mode 100644 libsanitizer/sanitizer_common/sanitizer_freebsd.h
delete mode 100644
libsanitizer/sanitizer_common/sanitizer_platform_limits_openbsd.cpp
delete mode 100644
libsanitizer/sanitizer_common/sanitizer_platform_limits_openbsd.h
create mode 100644 libsanitizer/sanitizer_common/sanitizer_symbolizer_markup.h
rename libsanitizer/sanitizer_common/{sanitizer_symbolizer_fuchsia.h =>
sanitizer_symbolizer_markup_constants.h} (69%)
create mode 100644
libsanitizer/sanitizer_common/sanitizer_symbolizer_markup_fuchsia.cpp
create mode 100644
libsanitizer/sanitizer_common/sanitizer_symbolizer_report_fuchsia.cpp
create mode 100644 libsanitizer/sanitizer_common/sanitizer_thread_history.cpp
create mode 100644 libsanitizer/sanitizer_common/sanitizer_thread_history.h
create mode 100644 libsanitizer/sanitizer_common/sanitizer_unwind_fuchsia.cpp
delete mode 100644 libsanitizer/sanitizer_common/sanitizer_win_dll_thunk.cpp
delete mode 100644 libsanitizer/sanitizer_common/sanitizer_win_dll_thunk.h
delete mode 100644
libsanitizer/sanitizer_common/sanitizer_win_dynamic_runtime_thunk.cpp
create mode 100644 libsanitizer/sanitizer_common/sanitizer_win_immortalize.h
create mode 100644 libsanitizer/sanitizer_common/sanitizer_win_interception.cpp
create mode 100644 libsanitizer/sanitizer_common/sanitizer_win_interception.h
create mode 100644
libsanitizer/sanitizer_common/sanitizer_win_thunk_interception.cpp
create mode 100644
libsanitizer/sanitizer_common/sanitizer_win_thunk_interception.h
delete mode 100644
libsanitizer/sanitizer_common/sanitizer_win_weak_interception.cpp
delete mode 100644
libsanitizer/sanitizer_common/sanitizer_win_weak_interception.h
delete mode 100644 libsanitizer/ubsan/ubsan_win_dll_thunk.cpp
rename libsanitizer/ubsan/{ubsan_win_dynamic_runtime_thunk.cpp =>
ubsan_win_runtime_thunk.cpp} (62%)
delete mode 100644 libsanitizer/ubsan/ubsan_win_weak_interception.cpp
--
2.34.1