Hi.
I've just finished my first merge from libsanitizer mainline. Overall it
looks fine, apparently ABI hasn't changed and so that SONAME bump is not
needed.
I tested ubsan and asan bootstrap on x86_64-linux-gnu and run regression
tests and bootstraped on aarch64-linux-gnu, ppc64le-linux-gnu and
also on x86_64-linux-gnu.
I run abidiff comparison for GCC 8.2:
$ abidiff /usr/lib64/libtsan.so.0.0.0
./x86_64-pc-linux-gnu/libsanitizer/tsan/.libs/libtsan.so --stat
Functions changes summary: 0 Removed, 0 Changed, 38 Added functions
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
Function symbols changes summary: 1 Removed, 0 Added function symbol not
referenced by debug info
Variable symbols changes summary: 0 Removed, 0 Added variable symbol not
referenced by debug info
$ abidiff /usr/lib64/libasan.so.5.0.0
./x86_64-pc-linux-gnu/libsanitizer/asan/.libs/libasan.so --stat
Functions changes summary: 0 Removed, 0 Changed, 30 Added functions
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
Function symbols changes summary: 3 Removed, 0 Added function symbols not
referenced by debug info
Variable symbols changes summary: 0 Removed, 0 Added variable symbol not
referenced by debug info
$ abidiff /usr/lib64/libubsan.so.1.0.0
./x86_64-pc-linux-gnu/libsanitizer/ubsan/.libs/libubsan.so.1.0.0 --stat
Functions changes summary: 0 Removed, 0 Changed, 8 Added functions
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
Function symbols changes summary: 1 Removed, 0 Added function symbol not
referenced by debug info
Variable symbols changes summary: 0 Removed, 0 Added variable symbol not
referenced by debug info
And for libasan with current LLVM top:
$ abidiff
/home/marxin/BIG/Programming/llvm/objdir/lib/clang/7.0.0/lib/linux/libclang_rt.asan-x86_64.so
./x86_64-pc-linux-gnu/libsanitizer/ubsan/.libs/libubsan.so --stat
ELF SONAME changed
Functions changes summary: 763 Removed, 0 Changed, 43 Added functions
Variables changes summary: 4 Removed, 0 Changed, 2 Added variables
Function symbols changes summary: 518 Removed, 4 Added function symbols not
referenced by debug info
Variable symbols changes summary: 0 Removed, 0 Added variable symbol not
referenced by debug info
I'll briefly comment what each patch in the series does:
marxin (7):
Update merge script and HOWTO_MERGE documentation.
I tweaked documentation a bit and added support for git to be used.
Merge from upstream 345033.
Result of the merge.sh script file as is without any additional
adjustment.
Update build system: include new files and run autoheader, autoconf,
automake
Apply LOCAL_PATCHES and remove not used ones.
New local GCC patch for CAN_SANITIZE_UB ifdef.
Application of local patches, on of them was just partially applied.
Adjust asan_shadow_offset for powerpc64 targets.
Sync about shodow memory offset that was changes in libsanitizer.
Update test-suite expected output after rewording in libsanitizer.
Change in wording that was changed.
gcc/config/powerpcspe/powerpcspe.c | 2 +-
gcc/config/rs6000/rs6000.c | 2 +-
gcc/testsuite/c-c++-common/ubsan/pr63839.c | 2 +-
.../c-c++-common/ubsan/unreachable-1.c | 2 +-
.../c-c++-common/ubsan/unreachable-2.c | 2 +-
.../c-c++-common/ubsan/unreachable-4.c | 2 +-
libsanitizer/HOWTO_MERGE | 9 +-
libsanitizer/LOCAL_PATCHES | 2 -
libsanitizer/MERGE | 2 +-
libsanitizer/asan/asan_activation.cc | 7 +-
libsanitizer/asan/asan_allocator.cc | 166 +-
libsanitizer/asan/asan_allocator.h | 9 +-
libsanitizer/asan/asan_debugging.cc | 3 +-
libsanitizer/asan/asan_descriptions.cc | 71 +-
libsanitizer/asan/asan_descriptions.h | 18 +-
libsanitizer/asan/asan_errors.cc | 204 +-
libsanitizer/asan/asan_errors.h | 281 +-
libsanitizer/asan/asan_fake_stack.cc | 4 +-
libsanitizer/asan/asan_flags.cc | 12 +-
libsanitizer/asan/asan_flags.inc | 3 +-
libsanitizer/asan/asan_fuchsia.cc | 2 +-
libsanitizer/asan/asan_globals.cc | 11 +-
libsanitizer/asan/asan_globals_win.cc | 6 +-
libsanitizer/asan/asan_init_version.h | 7 +
libsanitizer/asan/asan_interceptors.cc | 59 +-
libsanitizer/asan/asan_interceptors.h | 28 +-
.../asan/asan_interceptors_memintrinsics.cc | 16 +-
.../asan/asan_interceptors_memintrinsics.h | 25 +-
libsanitizer/asan/asan_internal.h | 7 +-
libsanitizer/asan/asan_linux.cc | 73 +-
libsanitizer/asan/asan_lock.h | 1 -
libsanitizer/asan/asan_mac.cc | 28 +-
libsanitizer/asan/asan_malloc_linux.cc | 81 +-
libsanitizer/asan/asan_malloc_local.h | 42 +
libsanitizer/asan/asan_malloc_mac.cc | 3 +
libsanitizer/asan/asan_malloc_win.cc | 15 +-
libsanitizer/asan/asan_mapping.h | 142 +-
libsanitizer/asan/asan_mapping_myriad.h | 84 +
libsanitizer/asan/asan_memory_profile.cc | 12 +-
libsanitizer/asan/asan_new_delete.cc | 128 +-
libsanitizer/asan/asan_poisoning.cc | 13 +-
libsanitizer/asan/asan_poisoning.h | 5 +-
libsanitizer/asan/asan_posix.cc | 1 -
libsanitizer/asan/asan_premap_shadow.cc | 77 +
libsanitizer/asan/asan_premap_shadow.h | 28 +
libsanitizer/asan/asan_report.cc | 73 +-
libsanitizer/asan/asan_report.h | 19 +-
libsanitizer/asan/asan_rtems.cc | 251 +
libsanitizer/asan/asan_rtl.cc | 45 +-
libsanitizer/asan/asan_shadow_setup.cc | 18 +-
libsanitizer/asan/asan_stack.h | 48 +-
libsanitizer/asan/asan_thread.cc | 30 +-
libsanitizer/asan/asan_win.cc | 17 +-
libsanitizer/asan/asan_win_dll_thunk.cc | 2 +-
libsanitizer/config.h.in | 6 +-
libsanitizer/configure | 8 +-
.../include/sanitizer/allocator_interface.h | 14 +-
.../include/sanitizer/asan_interface.h | 24 +-
.../include/sanitizer/common_interface_defs.h | 13 +-
.../include/sanitizer/coverage_interface.h | 4 +-
.../include/sanitizer/esan_interface.h | 4 +-
.../include/sanitizer/hwasan_interface.h | 82 +
.../include/sanitizer/lsan_interface.h | 14 +-
.../include/sanitizer/msan_interface.h | 16 +-
.../include/sanitizer/netbsd_syscall_hooks.h | 4732 +++++++++++++++++
.../include/sanitizer/scudo_interface.h | 37 +
.../include/sanitizer/tsan_interface.h | 6 +
libsanitizer/interception/interception.h | 57 +-
.../interception/interception_linux.cc | 24 +-
.../interception/interception_linux.h | 13 +-
libsanitizer/interception/interception_mac.cc | 5 +-
libsanitizer/interception/interception_mac.h | 4 +-
.../interception/interception_type_test.cc | 9 +-
libsanitizer/interception/interception_win.cc | 19 +-
libsanitizer/interception/interception_win.h | 4 +-
libsanitizer/lsan/lsan.cc | 9 +-
libsanitizer/lsan/lsan.h | 12 +-
libsanitizer/lsan/lsan_allocator.cc | 74 +-
libsanitizer/lsan/lsan_allocator.h | 15 +-
libsanitizer/lsan/lsan_common.cc | 48 +-
libsanitizer/lsan/lsan_common.h | 13 +-
libsanitizer/lsan/lsan_common_linux.cc | 20 +-
libsanitizer/lsan/lsan_common_mac.cc | 11 +-
libsanitizer/lsan/lsan_interceptors.cc | 70 +-
libsanitizer/lsan/lsan_malloc_mac.cc | 3 +
libsanitizer/lsan/lsan_thread.cc | 5 +
libsanitizer/merge.sh | 6 +-
libsanitizer/sanitizer_common/Makefile.am | 4 +-
libsanitizer/sanitizer_common/Makefile.in | 17 +-
libsanitizer/sanitizer_common/sancov_begin.S | 5 +
libsanitizer/sanitizer_common/sancov_end.S | 5 +
.../sanitizer_common/sanitizer_allocator.cc | 73 +-
.../sanitizer_common/sanitizer_allocator.h | 38 +-
.../sanitizer_allocator_bytemap.h | 4 +-
.../sanitizer_allocator_checks.h | 8 +-
.../sanitizer_allocator_combined.h | 16 +-
.../sanitizer_allocator_interface.h | 3 +
.../sanitizer_allocator_internal.h | 16 +-
.../sanitizer_allocator_local_cache.h | 93 +-
.../sanitizer_allocator_primary32.h | 120 +-
.../sanitizer_allocator_primary64.h | 197 +-
.../sanitizer_allocator_report.cc | 123 +
.../sanitizer_allocator_report.h | 36 +
.../sanitizer_allocator_secondary.h | 84 +-
.../sanitizer_allocator_size_class_map.h | 36 +-
.../sanitizer_allocator_stats.h | 2 +-
libsanitizer/sanitizer_common/sanitizer_asm.h | 8 +-
.../sanitizer_common/sanitizer_atomic_clang.h | 17 +-
.../sanitizer_atomic_clang_mips.h | 115 +
.../sanitizer_atomic_clang_other.h | 65 +-
.../sanitizer_atomic_clang_x86.h | 6 +-
.../sanitizer_common/sanitizer_bitvector.h | 4 +-
.../sanitizer_common/sanitizer_bvgraph.h | 2 +-
.../sanitizer_common/sanitizer_common.cc | 43 +-
.../sanitizer_common/sanitizer_common.h | 248 +-
.../sanitizer_common_interceptors.inc | 1086 +++-
.../sanitizer_common_interceptors_ioctl.inc | 8 +-
.../sanitizer_common_interface.inc | 2 +
.../sanitizer_common_libcdep.cc | 274 +-
.../sanitizer_common_nolibc.cc | 1 -
.../sanitizer_coverage_fuchsia.cc | 20 +-
.../sanitizer_coverage_libcdep_new.cc | 3 +-
.../sanitizer_coverage_win_sections.cc | 53 +-
.../sanitizer_deadlock_detector2.cc | 8 +-
.../sanitizer_common/sanitizer_errno.h | 5 +-
.../sanitizer_common/sanitizer_file.cc | 59 +-
.../sanitizer_common/sanitizer_flag_parser.h | 4 +-
.../sanitizer_common/sanitizer_flags.cc | 8 -
.../sanitizer_common/sanitizer_flags.inc | 23 +-
.../sanitizer_common/sanitizer_fuchsia.cc | 276 +-
.../sanitizer_common/sanitizer_getauxval.h | 46 +
.../sanitizer_interceptors_ioctl_netbsd.inc | 1487 ++++++
.../sanitizer_interface_internal.h | 6 +
.../sanitizer_internal_defs.h | 48 +-
.../sanitizer_common/sanitizer_libc.cc | 39 +-
.../sanitizer_common/sanitizer_libc.h | 7 +-
.../sanitizer_common/sanitizer_libignore.cc | 7 +-
.../sanitizer_common/sanitizer_libignore.h | 8 +-
.../sanitizer_common/sanitizer_linux.cc | 684 ++-
.../sanitizer_common/sanitizer_linux.h | 36 +-
.../sanitizer_linux_libcdep.cc | 489 +-
.../sanitizer_common/sanitizer_linux_s390.cc | 2 +-
.../sanitizer_common/sanitizer_linux_x86_64.S | 2 -
.../sanitizer_common/sanitizer_mac.cc | 122 +-
libsanitizer/sanitizer_common/sanitizer_mac.h | 6 +-
.../sanitizer_common/sanitizer_mac_libcdep.cc | 2 +-
.../sanitizer_common/sanitizer_malloc_mac.inc | 35 +-
.../sanitizer_common/sanitizer_mutex.h | 11 +-
.../sanitizer_common/sanitizer_netbsd.cc | 328 ++
.../sanitizer_common/sanitizer_openbsd.cc | 108 +
.../sanitizer_common/sanitizer_platform.h | 67 +-
.../sanitizer_platform_interceptors.h | 307 +-
.../sanitizer_platform_limits_linux.cc | 7 +-
.../sanitizer_platform_limits_netbsd.cc | 1952 ++++++-
.../sanitizer_platform_limits_netbsd.h | 2000 ++++++-
.../sanitizer_platform_limits_openbsd.cc | 277 +
.../sanitizer_platform_limits_openbsd.h | 380 ++
.../sanitizer_platform_limits_posix.cc | 23 +-
.../sanitizer_platform_limits_posix.h | 74 +-
.../sanitizer_platform_limits_solaris.cc | 364 ++
.../sanitizer_platform_limits_solaris.h | 495 ++
.../sanitizer_common/sanitizer_posix.cc | 7 +-
.../sanitizer_common/sanitizer_posix.h | 7 +
.../sanitizer_posix_libcdep.cc | 83 +-
.../sanitizer_common/sanitizer_printf.cc | 38 +-
.../sanitizer_common/sanitizer_procmaps.h | 6 +-
...s_freebsd.cc => sanitizer_procmaps_bsd.cc} | 70 +-
.../sanitizer_procmaps_common.cc | 55 +-
.../sanitizer_procmaps_linux.cc | 8 +-
.../sanitizer_procmaps_mac.cc | 19 +-
.../sanitizer_procmaps_solaris.cc | 57 +
.../sanitizer_common/sanitizer_quarantine.h | 40 +-
.../sanitizer_report_decorator.h | 5 +-
.../sanitizer_common/sanitizer_ring_buffer.h | 160 +
.../sanitizer_common/sanitizer_rtems.cc | 280 +
.../sanitizer_common/sanitizer_rtems.h | 19 +
.../sanitizer_signal_interceptors.inc | 46 +-
.../sanitizer_common/sanitizer_solaris.cc | 219 +
.../sanitizer_common/sanitizer_stackdepot.cc | 6 +-
.../sanitizer_common/sanitizer_stacktrace.cc | 21 +-
.../sanitizer_common/sanitizer_stacktrace.h | 13 +-
.../sanitizer_stacktrace_libcdep.cc | 24 +-
.../sanitizer_stacktrace_printer.cc | 87 +-
.../sanitizer_stacktrace_sparc.cc | 56 +
.../sanitizer_stoptheworld_linux_libcdep.cc | 55 +-
.../sanitizer_suppressions.cc | 2 +-
.../sanitizer_common/sanitizer_symbolizer.h | 7 +-
.../sanitizer_symbolizer_fuchsia.h | 38 +
.../sanitizer_symbolizer_libcdep.cc | 11 +-
...hsia.cc => sanitizer_symbolizer_markup.cc} | 78 +-
.../sanitizer_symbolizer_posix_libcdep.cc | 8 +-
.../sanitizer_symbolizer_report.cc | 280 +
.../sanitizer_symbolizer_rtems.h | 39 +
.../sanitizer_symbolizer_win.cc | 4 -
.../sanitizer_syscall_generic.inc | 33 +-
.../sanitizer_syscall_linux_arm.inc | 136 +
.../sanitizer_syscalls_netbsd.inc | 3784 +++++++++++++
.../sanitizer_common/sanitizer_termination.cc | 9 +
.../sanitizer_thread_registry.cc | 40 +-
.../sanitizer_thread_registry.h | 5 +
.../sanitizer_tls_get_addr.cc | 3 +-
.../sanitizer_unwind_linux_libcdep.cc | 10 +-
.../sanitizer_common/sanitizer_unwind_win.cc | 73 +
.../sanitizer_vector.h} | 36 +-
.../sanitizer_common/sanitizer_win.cc | 178 +-
.../sanitizer_common/sanitizer_win_defs.h | 20 +-
.../sanitizer_win_weak_interception.cc | 2 +-
libsanitizer/tsan/tsan_debugging.cc | 7 +
libsanitizer/tsan/tsan_interceptors.cc | 605 ++-
libsanitizer/tsan/tsan_interceptors.h | 12 +
libsanitizer/tsan/tsan_interceptors_mac.cc | 57 +-
libsanitizer/tsan/tsan_interface.h | 13 +
libsanitizer/tsan/tsan_interface_ann.cc | 6 +-
libsanitizer/tsan/tsan_libdispatch_mac.cc | 14 +-
libsanitizer/tsan/tsan_malloc_mac.cc | 10 +
libsanitizer/tsan/tsan_mman.cc | 50 +-
libsanitizer/tsan/tsan_new_delete.cc | 107 +-
libsanitizer/tsan/tsan_platform.h | 171 +-
libsanitizer/tsan/tsan_platform_linux.cc | 34 +-
libsanitizer/tsan/tsan_platform_mac.cc | 10 +-
libsanitizer/tsan/tsan_platform_posix.cc | 59 +-
libsanitizer/tsan/tsan_report.cc | 14 +-
libsanitizer/tsan/tsan_report.h | 2 +-
libsanitizer/tsan/tsan_rtl.cc | 77 +-
libsanitizer/tsan/tsan_rtl.h | 32 +-
libsanitizer/tsan/tsan_rtl_aarch64.S | 62 +-
libsanitizer/tsan/tsan_rtl_amd64.S | 114 +-
libsanitizer/tsan/tsan_rtl_mutex.cc | 10 +-
libsanitizer/tsan/tsan_rtl_report.cc | 49 +-
libsanitizer/tsan/tsan_rtl_thread.cc | 2 +-
libsanitizer/tsan/tsan_stack_trace.cc | 5 +
libsanitizer/tsan/tsan_stack_trace.h | 4 +
libsanitizer/tsan/tsan_suppressions.cc | 2 +-
libsanitizer/tsan/tsan_symbolize.cc | 41 +
libsanitizer/tsan/tsan_sync.cc | 3 +-
libsanitizer/tsan/tsan_sync.h | 4 +-
libsanitizer/ubsan/Makefile.am | 1 +
libsanitizer/ubsan/Makefile.in | 8 +-
libsanitizer/ubsan/ubsan_checks.inc | 6 +
libsanitizer/ubsan/ubsan_diag.cc | 17 +-
libsanitizer/ubsan/ubsan_diag.h | 27 +-
libsanitizer/ubsan/ubsan_flags.cc | 15 +-
libsanitizer/ubsan/ubsan_flags.inc | 3 +
libsanitizer/ubsan/ubsan_handlers.cc | 200 +-
libsanitizer/ubsan/ubsan_handlers.h | 29 +
libsanitizer/ubsan/ubsan_handlers_cxx.cc | 48 +-
.../ubsan/ubsan_init_standalone_preinit.cc | 3 +-
libsanitizer/ubsan/ubsan_interface.inc | 4 +
libsanitizer/ubsan/ubsan_monitor.cc | 74 +
libsanitizer/ubsan/ubsan_monitor.h | 47 +
libsanitizer/ubsan/ubsan_platform.h | 11 +-
.../ubsan/ubsan_signals_standalone.cc | 30 +-
libsanitizer/ubsan/ubsan_signals_standalone.h | 2 +
.../ubsan/ubsan_win_weak_interception.cc | 1 +
254 files changed, 25081 insertions(+), 3416 deletions(-)
create mode 100644 libsanitizer/asan/asan_malloc_local.h
create mode 100644 libsanitizer/asan/asan_mapping_myriad.h
create mode 100644 libsanitizer/asan/asan_premap_shadow.cc
create mode 100644 libsanitizer/asan/asan_premap_shadow.h
create mode 100644 libsanitizer/asan/asan_rtems.cc
create mode 100644 libsanitizer/include/sanitizer/hwasan_interface.h
create mode 100644 libsanitizer/include/sanitizer/netbsd_syscall_hooks.h
create mode 100644 libsanitizer/include/sanitizer/scudo_interface.h
create mode 100644 libsanitizer/sanitizer_common/sancov_begin.S
create mode 100644 libsanitizer/sanitizer_common/sancov_end.S
create mode 100644 libsanitizer/sanitizer_common/sanitizer_allocator_report.cc
create mode 100644 libsanitizer/sanitizer_common/sanitizer_allocator_report.h
create mode 100644 libsanitizer/sanitizer_common/sanitizer_atomic_clang_mips.h
create mode 100644 libsanitizer/sanitizer_common/sanitizer_getauxval.h
create mode 100644
libsanitizer/sanitizer_common/sanitizer_interceptors_ioctl_netbsd.inc
create mode 100644 libsanitizer/sanitizer_common/sanitizer_netbsd.cc
create mode 100644 libsanitizer/sanitizer_common/sanitizer_openbsd.cc
create mode 100644
libsanitizer/sanitizer_common/sanitizer_platform_limits_openbsd.cc
create mode 100644
libsanitizer/sanitizer_common/sanitizer_platform_limits_openbsd.h
create mode 100644
libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.cc
create mode 100644
libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.h
rename libsanitizer/sanitizer_common/{sanitizer_procmaps_freebsd.cc =>
sanitizer_procmaps_bsd.cc} (57%)
create mode 100644 libsanitizer/sanitizer_common/sanitizer_procmaps_solaris.cc
create mode 100644 libsanitizer/sanitizer_common/sanitizer_ring_buffer.h
create mode 100644 libsanitizer/sanitizer_common/sanitizer_rtems.cc
create mode 100644 libsanitizer/sanitizer_common/sanitizer_rtems.h
create mode 100644 libsanitizer/sanitizer_common/sanitizer_solaris.cc
create mode 100644 libsanitizer/sanitizer_common/sanitizer_stacktrace_sparc.cc
create mode 100644 libsanitizer/sanitizer_common/sanitizer_symbolizer_fuchsia.h
rename libsanitizer/sanitizer_common/{sanitizer_symbolizer_fuchsia.cc =>
sanitizer_symbolizer_markup.cc} (61%)
create mode 100644 libsanitizer/sanitizer_common/sanitizer_symbolizer_report.cc
create mode 100644 libsanitizer/sanitizer_common/sanitizer_symbolizer_rtems.h
create mode 100644
libsanitizer/sanitizer_common/sanitizer_syscall_linux_arm.inc
create mode 100644 libsanitizer/sanitizer_common/sanitizer_syscalls_netbsd.inc
create mode 100644 libsanitizer/sanitizer_common/sanitizer_unwind_win.cc
rename libsanitizer/{tsan/tsan_vector.h =>
sanitizer_common/sanitizer_vector.h} (75%)
create mode 100644 libsanitizer/ubsan/ubsan_monitor.cc
create mode 100644 libsanitizer/ubsan/ubsan_monitor.h
--
2.19.0