lib/tsan/builtins/assembly.h | 293 +++++ lib/tsan/interception/interception.h | 29 +- lib/tsan/interception/interception_linux.h | 16 +- lib/tsan/interception/interception_win.cpp | 83 +- lib/tsan/sanitizer_common/sanitizer_allocator.cpp | 10 +- lib/tsan/sanitizer_common/sanitizer_allocator_interface.h | 2 + lib/tsan/sanitizer_common/sanitizer_allocator_primary32.h | 2 +- lib/tsan/sanitizer_common/sanitizer_allocator_primary64.h | 16 +- lib/tsan/sanitizer_common/sanitizer_asm.h | 43 +- lib/tsan/sanitizer_common/sanitizer_atomic.h | 14 +- lib/tsan/sanitizer_common/sanitizer_atomic_clang.h | 85 +- lib/tsan/sanitizer_common/sanitizer_atomic_clang_mips.h | 117 -- lib/tsan/sanitizer_common/sanitizer_atomic_clang_other.h | 85 -- lib/tsan/sanitizer_common/sanitizer_atomic_clang_x86.h | 113 -- lib/tsan/sanitizer_common/sanitizer_atomic_msvc.h | 8 +- lib/tsan/sanitizer_common/sanitizer_bitvector.h | 8 +- lib/tsan/sanitizer_common/sanitizer_chained_origin_depot.cpp | 6 +- lib/tsan/sanitizer_common/sanitizer_chained_origin_depot.h | 4 +- lib/tsan/sanitizer_common/sanitizer_common.cpp | 20 +- lib/tsan/sanitizer_common/sanitizer_common.h | 45 +- lib/tsan/sanitizer_common/sanitizer_common_interceptors.inc | 203 ++-- lib/tsan/sanitizer_common/sanitizer_common_interceptors_format.inc | 15 +- lib/tsan/sanitizer_common/sanitizer_common_interface.inc | 1 + lib/tsan/sanitizer_common/sanitizer_common_interface_posix.inc | 1 + lib/tsan/sanitizer_common/sanitizer_common_libcdep.cpp | 10 +- lib/tsan/sanitizer_common/sanitizer_common_syscalls.inc | 35 + lib/tsan/sanitizer_common/sanitizer_dl.cpp | 37 + lib/tsan/sanitizer_common/sanitizer_dl.h | 26 + lib/tsan/sanitizer_common/sanitizer_file.cpp | 4 +- lib/tsan/sanitizer_common/sanitizer_file.h | 2 +- lib/tsan/sanitizer_common/sanitizer_flag_parser.cpp | 7 +- lib/tsan/sanitizer_common/sanitizer_flag_parser.h | 4 +- lib/tsan/sanitizer_common/sanitizer_flags.cpp | 4 +- lib/tsan/sanitizer_common/sanitizer_flags.inc | 13 + lib/tsan/sanitizer_common/sanitizer_flat_map.h | 4 + lib/tsan/sanitizer_common/sanitizer_freebsd.h | 137 --- lib/tsan/sanitizer_common/sanitizer_fuchsia.cpp | 107 +- lib/tsan/sanitizer_common/sanitizer_hash.h | 2 +- lib/tsan/sanitizer_common/sanitizer_internal_defs.h | 34 +- lib/tsan/sanitizer_common/sanitizer_libc.cpp | 16 + lib/tsan/sanitizer_common/sanitizer_libc.h | 3 +- lib/tsan/sanitizer_common/sanitizer_libignore.cpp | 4 +- lib/tsan/sanitizer_common/sanitizer_linux.cpp | 1842 +++++++++++++++++--------------- lib/tsan/sanitizer_common/sanitizer_linux.h | 114 +- lib/tsan/sanitizer_common/sanitizer_linux_libcdep.cpp | 483 +++++---- lib/tsan/sanitizer_common/sanitizer_linux_s390.cpp | 164 ++- lib/tsan/sanitizer_common/sanitizer_mac.cpp | 8 +- lib/tsan/sanitizer_common/sanitizer_mallinfo.h | 4 + lib/tsan/sanitizer_common/sanitizer_malloc_mac.inc | 2 +- lib/tsan/sanitizer_common/sanitizer_mutex.cpp | 6 +- lib/tsan/sanitizer_common/sanitizer_placement_new.h | 4 +- lib/tsan/sanitizer_common/sanitizer_platform.h | 24 +- lib/tsan/sanitizer_common/sanitizer_platform_interceptors.h | 16 +- lib/tsan/sanitizer_common/sanitizer_platform_limits_freebsd.cpp | 2 + lib/tsan/sanitizer_common/sanitizer_platform_limits_freebsd.h | 24 +- lib/tsan/sanitizer_common/sanitizer_platform_limits_openbsd.cpp | 0 lib/tsan/sanitizer_common/sanitizer_platform_limits_openbsd.h | 0 lib/tsan/sanitizer_common/sanitizer_platform_limits_posix.h | 1 + lib/tsan/sanitizer_common/sanitizer_posix.cpp | 12 +- lib/tsan/sanitizer_common/sanitizer_posix.h | 28 +- lib/tsan/sanitizer_common/sanitizer_posix_libcdep.cpp | 33 +- lib/tsan/sanitizer_common/sanitizer_printf.cpp | 11 +- lib/tsan/sanitizer_common/sanitizer_procmaps_bsd.cpp | 47 +- lib/tsan/sanitizer_common/sanitizer_procmaps_common.cpp | 2 +- lib/tsan/sanitizer_common/sanitizer_ptrauth.h | 46 +- lib/tsan/sanitizer_common/sanitizer_redefine_builtins.h | 16 +- lib/tsan/sanitizer_common/sanitizer_ring_buffer.h | 4 +- lib/tsan/sanitizer_common/sanitizer_stack_store.cpp | 9 +- lib/tsan/sanitizer_common/sanitizer_stackdepot.cpp | 8 +- lib/tsan/sanitizer_common/sanitizer_stackdepot.h | 4 +- lib/tsan/sanitizer_common/sanitizer_stackdepotbase.h | 31 +- lib/tsan/sanitizer_common/sanitizer_stacktrace_libcdep.cpp | 42 +- lib/tsan/sanitizer_common/sanitizer_stacktrace_printer.cpp | 133 ++- lib/tsan/sanitizer_common/sanitizer_stacktrace_printer.h | 143 ++- lib/tsan/sanitizer_common/sanitizer_stacktrace_sparc.cpp | 11 +- lib/tsan/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp | 10 +- lib/tsan/sanitizer_common/sanitizer_stoptheworld_netbsd_libcdep.cpp | 4 +- lib/tsan/sanitizer_common/sanitizer_suppressions.cpp | 7 +- lib/tsan/sanitizer_common/sanitizer_symbolizer.cpp | 5 +- lib/tsan/sanitizer_common/sanitizer_symbolizer.h | 27 +- lib/tsan/sanitizer_common/sanitizer_symbolizer_fuchsia.h | 42 - lib/tsan/sanitizer_common/sanitizer_symbolizer_internal.h | 9 + lib/tsan/sanitizer_common/sanitizer_symbolizer_libbacktrace.cpp | 2 +- lib/tsan/sanitizer_common/sanitizer_symbolizer_libcdep.cpp | 20 +- lib/tsan/sanitizer_common/sanitizer_symbolizer_mac.cpp | 5 +- lib/tsan/sanitizer_common/sanitizer_symbolizer_markup.cpp | 228 ++-- lib/tsan/sanitizer_common/sanitizer_symbolizer_markup.h | 79 ++ lib/tsan/sanitizer_common/sanitizer_symbolizer_markup_constants.h | 49 + lib/tsan/sanitizer_common/sanitizer_symbolizer_markup_fuchsia.cpp | 85 ++ lib/tsan/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cpp | 67 +- lib/tsan/sanitizer_common/sanitizer_symbolizer_report.cpp | 80 +- lib/tsan/sanitizer_common/sanitizer_symbolizer_report_fuchsia.cpp | 33 + lib/tsan/sanitizer_common/sanitizer_symbolizer_win.cpp | 6 +- lib/tsan/sanitizer_common/sanitizer_syscall_linux_hexagon.inc | 131 +++ lib/tsan/sanitizer_common/sanitizer_syscall_linux_loongarch64.inc | 171 +++ lib/tsan/sanitizer_common/sanitizer_syscall_linux_riscv64.inc | 174 +++ lib/tsan/sanitizer_common/sanitizer_thread_arg_retval.cpp | 23 +- lib/tsan/sanitizer_common/sanitizer_thread_arg_retval.h | 1 + lib/tsan/sanitizer_common/sanitizer_tls_get_addr.cpp | 15 +- lib/tsan/sanitizer_common/sanitizer_unwind_fuchsia.cpp | 66 ++ lib/tsan/sanitizer_common/sanitizer_unwind_win.cpp | 7 + lib/tsan/sanitizer_common/sanitizer_win.cpp | 25 +- lib/tsan/tsan_debugging.cpp | 4 +- lib/tsan/tsan_defs.h | 2 +- lib/tsan/tsan_dispatch_defs.h | 7 - lib/tsan/tsan_interceptors_posix.cpp | 135 ++- lib/tsan/tsan_interface.h | 8 + lib/tsan/tsan_interface_ann.cpp | 24 +- lib/tsan/tsan_interface_atomic.cpp | 24 + lib/tsan/tsan_mman.cpp | 29 +- lib/tsan/tsan_mman.h | 4 +- lib/tsan/tsan_platform.h | 151 ++- lib/tsan/tsan_platform_linux.cpp | 220 ++-- lib/tsan/tsan_platform_mac.cpp | 9 +- lib/tsan/tsan_platform_posix.cpp | 43 +- lib/tsan/tsan_preinit.cpp | 10 +- lib/tsan/tsan_report.cpp | 38 +- lib/tsan/tsan_report.h | 3 +- lib/tsan/tsan_rtl.cpp | 24 +- lib/tsan/tsan_rtl.h | 12 +- lib/tsan/tsan_rtl_aarch64.S | 7 + lib/tsan/tsan_rtl_access.cpp | 22 +- lib/tsan/tsan_rtl_loongarch64.S | 196 ++++ lib/tsan/tsan_rtl_mutex.cpp | 2 +- lib/tsan/tsan_rtl_riscv64.S | 203 ++++ lib/tsan/tsan_rtl_s390x.S | 49 + lib/tsan/tsan_rtl_thread.cpp | 10 +- lib/tsan/tsan_suppressions.cpp | 3 +- lib/tsan/tsan_vector_clock.h | 2 +- src/libtsan.zig | 16 +- 130 files changed, 4952 insertions(+), 2618 deletions(-)