public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH 4/7] Apply LOCAL_PATCHES and remove not used ones.
  2018-10-25 11:06 [PATCH 0/7] libsanitizer: merge from trunk marxin
@ 2018-10-25 10:41 ` marxin
  2018-10-25 10:41 ` [PATCH 7/7] Update test-suite expected output after rewording in libsanitizer marxin
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 25+ messages in thread
From: marxin @ 2018-10-25 10:41 UTC (permalink / raw)
  To: gcc-patches

[-- Attachment #1: Type: text/plain, Size: 1088 bytes --]


libsanitizer/ChangeLog:

2018-10-24  Martin Liska  <mliska@suse.cz>

	* LOCAL_PATCHES: Update patch list.
	* asan/asan_globals.cc (CheckODRViolationViaIndicator): Apply
	patches from GCC's trunk.
	(CheckODRViolationViaPoisoning): Likewise.
	(RegisterGlobal): Likewise.
	* sanitizer_common/sanitizer_mac.cc (defined): Likewise.
	* sanitizer_common/sanitizer_stacktrace.cc (GetCanonicFrame): Likewise.
	* ubsan/ubsan_handlers.cc (__ubsan::__ubsan_handle_cfi_bad_icall): Likewise.
	(__ubsan::__ubsan_handle_cfi_bad_icall_abort): Likewise.
	* ubsan/ubsan_handlers.h (struct CFIBadIcallData): Likewise.
	(struct CFICheckFailData): Likewise.
	(RECOVERABLE): Likewise.
---
 libsanitizer/LOCAL_PATCHES                    |  2 --
 libsanitizer/asan/asan_globals.cc             | 19 -------------------
 .../sanitizer_common/sanitizer_mac.cc         |  2 +-
 .../sanitizer_common/sanitizer_stacktrace.cc  |  4 ++--
 libsanitizer/ubsan/ubsan_handlers.cc          | 15 +++++++++++++++
 libsanitizer/ubsan/ubsan_handlers.h           |  8 ++++++++
 6 files changed, 26 insertions(+), 24 deletions(-)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0004-Apply-LOCAL_PATCHES-and-remove-not-used-ones.patch --]
[-- Type: text/x-patch; name="0004-Apply-LOCAL_PATCHES-and-remove-not-used-ones.patch", Size: 5065 bytes --]

diff --git a/libsanitizer/LOCAL_PATCHES b/libsanitizer/LOCAL_PATCHES
index 822e2f34ad9..69544c33a89 100644
--- a/libsanitizer/LOCAL_PATCHES
+++ b/libsanitizer/LOCAL_PATCHES
@@ -1,6 +1,4 @@
-r241978
 r241980
 r241981
 r242478
 r242633
-r243014
diff --git a/libsanitizer/asan/asan_globals.cc b/libsanitizer/asan/asan_globals.cc
index 34963156346..a59a2dc27a4 100644
--- a/libsanitizer/asan/asan_globals.cc
+++ b/libsanitizer/asan/asan_globals.cc
@@ -147,23 +147,6 @@ static void CheckODRViolationViaIndicator(const Global *g) {
   }
 }
 
-// Check ODR violation for given global G by checking if it's already poisoned.
-// We use this method in case compiler doesn't use private aliases for global
-// variables.
-static void CheckODRViolationViaPoisoning(const Global *g) {
-  if (__asan_region_is_poisoned(g->beg, g->size_with_redzone)) {
-    // This check may not be enough: if the first global is much larger
-    // the entire redzone of the second global may be within the first global.
-    for (ListOfGlobals *l = list_of_all_globals; l; l = l->next) {
-      if (g->beg == l->g->beg &&
-          (flags()->detect_odr_violation >= 2 || g->size != l->g->size) &&
-          !IsODRViolationSuppressed(g->name))
-        ReportODRViolation(g, FindRegistrationSite(g),
-                           l->g, FindRegistrationSite(l->g));
-    }
-  }
-}
-
 // Clang provides two different ways for global variables protection:
 // it can poison the global itself or its private alias. In former
 // case we may poison same symbol multiple times, that can help us to
@@ -211,8 +194,6 @@ static void RegisterGlobal(const Global *g) {
     // where two globals with the same name are defined in different modules.
     if (UseODRIndicator(g))
       CheckODRViolationViaIndicator(g);
-    else
-      CheckODRViolationViaPoisoning(g);
   }
   if (CanPoisonMemory())
     PoisonRedZones(*g);
diff --git a/libsanitizer/sanitizer_common/sanitizer_mac.cc b/libsanitizer/sanitizer_common/sanitizer_mac.cc
index df7a897e45a..28b2906e226 100644
--- a/libsanitizer/sanitizer_common/sanitizer_mac.cc
+++ b/libsanitizer/sanitizer_common/sanitizer_mac.cc
@@ -35,7 +35,7 @@
 extern char **environ;
 #endif
 
-#if defined(__has_include) && __has_include(<os/trace.h>)
+#if defined(__has_include) && __has_include(<os/trace.h>) && defined(__BLOCKS__)
 #define SANITIZER_OS_TRACE 1
 #include <os/trace.h>
 #else
diff --git a/libsanitizer/sanitizer_common/sanitizer_stacktrace.cc b/libsanitizer/sanitizer_common/sanitizer_stacktrace.cc
index db51f5926d2..699fd9fdce0 100644
--- a/libsanitizer/sanitizer_common/sanitizer_stacktrace.cc
+++ b/libsanitizer/sanitizer_common/sanitizer_stacktrace.cc
@@ -59,8 +59,8 @@ static inline uhwptr *GetCanonicFrame(uptr bp,
   // Nope, this does not look right either. This means the frame after next does
   // not have a valid frame pointer, but we can still extract the caller PC.
   // Unfortunately, there is no way to decide between GCC and LLVM frame
-  // layouts. Assume LLVM.
-  return bp_prev;
+  // layouts. Assume GCC.
+  return bp_prev - 1;
 #else
   return (uhwptr*)bp;
 #endif
diff --git a/libsanitizer/ubsan/ubsan_handlers.cc b/libsanitizer/ubsan/ubsan_handlers.cc
index 927ad4c9531..f67b9e30fb9 100644
--- a/libsanitizer/ubsan/ubsan_handlers.cc
+++ b/libsanitizer/ubsan/ubsan_handlers.cc
@@ -771,6 +771,21 @@ void __ubsan_handle_cfi_bad_type(CFICheckFailData *Data, ValueHandle Vtable,
 
 }  // namespace __ubsan
 
+void __ubsan::__ubsan_handle_cfi_bad_icall(CFIBadIcallData *CallData,
+                                           ValueHandle Function) {
+  GET_REPORT_OPTIONS(false);
+  CFICheckFailData Data = {CFITCK_ICall, CallData->Loc, CallData->Type};
+  handleCFIBadIcall(&Data, Function, Opts);
+}
+
+void __ubsan::__ubsan_handle_cfi_bad_icall_abort(CFIBadIcallData *CallData,
+                                                 ValueHandle Function) {
+  GET_REPORT_OPTIONS(true);
+  CFICheckFailData Data = {CFITCK_ICall, CallData->Loc, CallData->Type};
+  handleCFIBadIcall(&Data, Function, Opts);
+  Die();
+}
+
 void __ubsan::__ubsan_handle_cfi_check_fail(CFICheckFailData *Data,
                                             ValueHandle Value,
                                             uptr ValidVtable) {
diff --git a/libsanitizer/ubsan/ubsan_handlers.h b/libsanitizer/ubsan/ubsan_handlers.h
index 56e664c751b..87e3c3439b6 100644
--- a/libsanitizer/ubsan/ubsan_handlers.h
+++ b/libsanitizer/ubsan/ubsan_handlers.h
@@ -202,12 +202,20 @@ enum CFITypeCheckKind : unsigned char {
   CFITCK_VMFCall,
 };
 
+struct CFIBadIcallData {
+  SourceLocation Loc;
+  const TypeDescriptor &Type;
+};
+
 struct CFICheckFailData {
   CFITypeCheckKind CheckKind;
   SourceLocation Loc;
   const TypeDescriptor &Type;
 };
 
+/// \brief Handle control flow integrity failure for indirect function calls.
+RECOVERABLE(cfi_bad_icall, CFIBadIcallData *Data, ValueHandle Function)
+
 /// \brief Handle control flow integrity failures.
 RECOVERABLE(cfi_check_fail, CFICheckFailData *Data, ValueHandle Function,
             uptr VtableIsValid)

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [PATCH 7/7] Update test-suite expected output after rewording in libsanitizer.
  2018-10-25 11:06 [PATCH 0/7] libsanitizer: merge from trunk marxin
  2018-10-25 10:41 ` [PATCH 4/7] Apply LOCAL_PATCHES and remove not used ones marxin
@ 2018-10-25 10:41 ` marxin
  2018-10-25 10:46 ` [PATCH 5/7] New local GCC patch for CAN_SANITIZE_UB ifdef marxin
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 25+ messages in thread
From: marxin @ 2018-10-25 10:41 UTC (permalink / raw)
  To: gcc-patches

[-- Attachment #1: Type: text/plain, Size: 597 bytes --]


gcc/testsuite/ChangeLog:

2018-10-24  Martin Liska  <mliska@suse.cz>

	* c-c++-common/ubsan/pr63839.c: Update to new sanitizer message.
	* c-c++-common/ubsan/unreachable-1.c (main): Likewise.
	* c-c++-common/ubsan/unreachable-2.c: Likewise.
	* c-c++-common/ubsan/unreachable-4.c (main): Likewise.
---
 gcc/testsuite/c-c++-common/ubsan/pr63839.c       | 2 +-
 gcc/testsuite/c-c++-common/ubsan/unreachable-1.c | 2 +-
 gcc/testsuite/c-c++-common/ubsan/unreachable-2.c | 2 +-
 gcc/testsuite/c-c++-common/ubsan/unreachable-4.c | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0007-Update-test-suite-expected-output-after-rewording-in.patch --]
[-- Type: text/x-patch; name="0007-Update-test-suite-expected-output-after-rewording-in.patch", Size: 1902 bytes --]

diff --git a/gcc/testsuite/c-c++-common/ubsan/pr63839.c b/gcc/testsuite/c-c++-common/ubsan/pr63839.c
index e3933f7fe66..f0cffa6cf7b 100644
--- a/gcc/testsuite/c-c++-common/ubsan/pr63839.c
+++ b/gcc/testsuite/c-c++-common/ubsan/pr63839.c
@@ -20,4 +20,4 @@ main (void)
   foo ();
 }
 
-/* { dg-output "execution reached a __builtin_unreachable\\(\\) call" } */
+/* { dg-output "execution reached an unreachable program point" } */
diff --git a/gcc/testsuite/c-c++-common/ubsan/unreachable-1.c b/gcc/testsuite/c-c++-common/ubsan/unreachable-1.c
index 336240c96cb..a72a5fd99a8 100644
--- a/gcc/testsuite/c-c++-common/ubsan/unreachable-1.c
+++ b/gcc/testsuite/c-c++-common/ubsan/unreachable-1.c
@@ -7,4 +7,4 @@ main (void)
 {
   __builtin_unreachable ();
 }
- /* { dg-output "execution reached a __builtin_unreachable\\(\\) call" } */
+/* { dg-output "execution reached an unreachable program point" } */
diff --git a/gcc/testsuite/c-c++-common/ubsan/unreachable-2.c b/gcc/testsuite/c-c++-common/ubsan/unreachable-2.c
index 783ebc24913..8299ff203fc 100644
--- a/gcc/testsuite/c-c++-common/ubsan/unreachable-2.c
+++ b/gcc/testsuite/c-c++-common/ubsan/unreachable-2.c
@@ -11,4 +11,4 @@ main (void)
   return e ? 0 : (__builtin_unreachable (), 1);
 }
 
-/* { dg-output "execution reached a __builtin_unreachable\\(\\) call" } */
+/* { dg-output "execution reached an unreachable program point" } */
diff --git a/gcc/testsuite/c-c++-common/ubsan/unreachable-4.c b/gcc/testsuite/c-c++-common/ubsan/unreachable-4.c
index 71b56e3f9cc..126572a6e23 100644
--- a/gcc/testsuite/c-c++-common/ubsan/unreachable-4.c
+++ b/gcc/testsuite/c-c++-common/ubsan/unreachable-4.c
@@ -7,4 +7,4 @@ main (void)
 {
   __builtin_unreachable ();
 }
- /* { dg-output "execution reached a __builtin_unreachable\\(\\) call" } */
+/* { dg-output "execution reached an unreachable program point" } */

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [PATCH 5/7] New local GCC patch for CAN_SANITIZE_UB ifdef.
  2018-10-25 11:06 [PATCH 0/7] libsanitizer: merge from trunk marxin
  2018-10-25 10:41 ` [PATCH 4/7] Apply LOCAL_PATCHES and remove not used ones marxin
  2018-10-25 10:41 ` [PATCH 7/7] Update test-suite expected output after rewording in libsanitizer marxin
@ 2018-10-25 10:46 ` marxin
  2018-10-25 10:52 ` [PATCH 3/7] Update build system: include new files and run autoheader, autoconf, automake marxin
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 25+ messages in thread
From: marxin @ 2018-10-25 10:46 UTC (permalink / raw)
  To: gcc-patches

[-- Attachment #1: Type: text/plain, Size: 249 bytes --]


libsanitizer/ChangeLog:

2018-10-24  Martin Liska  <mliska@suse.cz>

	* ubsan/ubsan_platform.h: Add ifndef as we define it with
	-DCAN_SANITIZE_UB CFLAGS.
---
 libsanitizer/ubsan/ubsan_platform.h | 2 ++
 1 file changed, 2 insertions(+)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0005-New-local-GCC-patch-for-CAN_SANITIZE_UB-ifdef.patch --]
[-- Type: text/x-patch; name="0005-New-local-GCC-patch-for-CAN_SANITIZE_UB-ifdef.patch", Size: 626 bytes --]

diff --git a/libsanitizer/ubsan/ubsan_platform.h b/libsanitizer/ubsan/ubsan_platform.h
index 75d06646ce8..67c4e079724 100644
--- a/libsanitizer/ubsan/ubsan_platform.h
+++ b/libsanitizer/ubsan/ubsan_platform.h
@@ -11,6 +11,7 @@
 #ifndef UBSAN_PLATFORM_H
 #define UBSAN_PLATFORM_H
 
+#ifndef CAN_SANITIZE_UB
 // Other platforms should be easy to add, and probably work as-is.
 #if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__) ||        \
     defined(__NetBSD__) || defined(__OpenBSD__) || \
@@ -20,5 +21,6 @@
 #else
 # define CAN_SANITIZE_UB 0
 #endif
+#endif //CAN_SANITIZE_UB
 
 #endif

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [PATCH 3/7] Update build system: include new files and run autoheader, autoconf, automake
  2018-10-25 11:06 [PATCH 0/7] libsanitizer: merge from trunk marxin
                   ` (2 preceding siblings ...)
  2018-10-25 10:46 ` [PATCH 5/7] New local GCC patch for CAN_SANITIZE_UB ifdef marxin
@ 2018-10-25 10:52 ` marxin
  2018-10-31 11:31   ` Rainer Orth
  2018-10-25 10:53 ` [PATCH 6/7] Adjust asan_shadow_offset for powerpc64 targets marxin
                   ` (5 subsequent siblings)
  9 siblings, 1 reply; 25+ messages in thread
From: marxin @ 2018-10-25 10:52 UTC (permalink / raw)
  To: gcc-patches

[-- Attachment #1: Type: text/plain, Size: 725 bytes --]


libsanitizer/ChangeLog:

2018-10-24  Martin Liska  <mliska@suse.cz>

	* config.h.in: Regenerate.
	* configure: Likewise.
	* sanitizer_common/Makefile.am: Include new files, remove old
	files.
	* sanitizer_common/Makefile.in: Regenerate.
	* ubsan/Makefile.am: Include new files, remove old
	files.
	* ubsan/Makefile.in: Likewise.
---
 libsanitizer/config.h.in                  |  6 +++---
 libsanitizer/configure                    |  8 ++++----
 libsanitizer/sanitizer_common/Makefile.am |  4 +++-
 libsanitizer/sanitizer_common/Makefile.in | 17 +++++++++++------
 libsanitizer/ubsan/Makefile.am            |  1 +
 libsanitizer/ubsan/Makefile.in            |  8 +++++---
 6 files changed, 27 insertions(+), 17 deletions(-)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0003-Update-build-system-include-new-files-and-run-autohe.patch --]
[-- Type: text/x-patch; name="0003-Update-build-system-include-new-files-and-run-autohe.patch", Size: 10500 bytes --]

diff --git a/libsanitizer/config.h.in b/libsanitizer/config.h.in
index f716c2421cf..a64b6a16a17 100644
--- a/libsanitizer/config.h.in
+++ b/libsanitizer/config.h.in
@@ -40,12 +40,12 @@
 /* Define to 1 if you have the <link.h> header file. */
 #undef HAVE_LINK_H
 
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
 /* Define to 1 if you have the `lstat' function. */
 #undef HAVE_LSTAT
 
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
 /* Define to 1 if you have the `readlink' function. */
 #undef HAVE_READLINK
 
diff --git a/libsanitizer/configure b/libsanitizer/configure
index 5836450063d..31726c92f47 100755
--- a/libsanitizer/configure
+++ b/libsanitizer/configure
@@ -13308,20 +13308,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 	      prelink_cmds_CXX='tpldir=Template.dir~
 		rm -rf $tpldir~
 		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
-		compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
+		compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
 	      old_archive_cmds_CXX='tpldir=Template.dir~
 		rm -rf $tpldir~
 		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
-		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
+		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
 		$RANLIB $oldlib'
 	      archive_cmds_CXX='tpldir=Template.dir~
 		rm -rf $tpldir~
 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
 	      archive_expsym_cmds_CXX='tpldir=Template.dir~
 		rm -rf $tpldir~
 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
 	      ;;
 	    *) # Version 6 and above use weak symbols
 	      archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
diff --git a/libsanitizer/sanitizer_common/Makefile.am b/libsanitizer/sanitizer_common/Makefile.am
index 246985b9933..dda484d38d4 100644
--- a/libsanitizer/sanitizer_common/Makefile.am
+++ b/libsanitizer/sanitizer_common/Makefile.am
@@ -24,6 +24,7 @@ sanitizer_common_files = \
 	sancov_flags.cc \
 	sanitizer_allocator.cc \
 	sanitizer_allocator_checks.cc \
+	sanitizer_allocator_report.cc \
 	sanitizer_common.cc \
 	sanitizer_common_libcdep.cc \
 	sanitizer_coverage_libcdep_new.cc \
@@ -46,14 +47,15 @@ sanitizer_common_files = \
 	sanitizer_posix.cc \
 	sanitizer_posix_libcdep.cc \
 	sanitizer_printf.cc \
+	sanitizer_procmaps_bsd.cc \
 	sanitizer_procmaps_common.cc \
-	sanitizer_procmaps_freebsd.cc \
 	sanitizer_procmaps_linux.cc \
 	sanitizer_procmaps_mac.cc \
 	sanitizer_stackdepot.cc \
 	sanitizer_stacktrace.cc \
 	sanitizer_stacktrace_libcdep.cc \
 	sanitizer_symbolizer_mac.cc \
+	sanitizer_symbolizer_report.cc \
 	sanitizer_stacktrace_printer.cc \
 	sanitizer_stoptheworld_linux_libcdep.cc \
 	sanitizer_stoptheworld_mac.cc \
diff --git a/libsanitizer/sanitizer_common/Makefile.in b/libsanitizer/sanitizer_common/Makefile.in
index b0f5ac25a7f..46209b780fd 100644
--- a/libsanitizer/sanitizer_common/Makefile.in
+++ b/libsanitizer/sanitizer_common/Makefile.in
@@ -82,8 +82,9 @@ CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 am__objects_1 = sancov_flags.lo sanitizer_allocator.lo \
-	sanitizer_allocator_checks.lo sanitizer_common.lo \
-	sanitizer_common_libcdep.lo sanitizer_coverage_libcdep_new.lo \
+	sanitizer_allocator_checks.lo sanitizer_allocator_report.lo \
+	sanitizer_common.lo sanitizer_common_libcdep.lo \
+	sanitizer_coverage_libcdep_new.lo \
 	sanitizer_deadlock_detector1.lo \
 	sanitizer_deadlock_detector2.lo sanitizer_errno.lo \
 	sanitizer_file.lo sanitizer_flags.lo sanitizer_flag_parser.lo \
@@ -94,11 +95,11 @@ am__objects_1 = sancov_flags.lo sanitizer_allocator.lo \
 	sanitizer_platform_limits_linux.lo \
 	sanitizer_platform_limits_posix.lo sanitizer_posix.lo \
 	sanitizer_posix_libcdep.lo sanitizer_printf.lo \
-	sanitizer_procmaps_common.lo sanitizer_procmaps_freebsd.lo \
+	sanitizer_procmaps_bsd.lo sanitizer_procmaps_common.lo \
 	sanitizer_procmaps_linux.lo sanitizer_procmaps_mac.lo \
 	sanitizer_stackdepot.lo sanitizer_stacktrace.lo \
 	sanitizer_stacktrace_libcdep.lo sanitizer_symbolizer_mac.lo \
-	sanitizer_stacktrace_printer.lo \
+	sanitizer_symbolizer_report.lo sanitizer_stacktrace_printer.lo \
 	sanitizer_stoptheworld_linux_libcdep.lo \
 	sanitizer_stoptheworld_mac.lo sanitizer_suppressions.lo \
 	sanitizer_symbolizer.lo sanitizer_symbolizer_libbacktrace.lo \
@@ -309,6 +310,7 @@ sanitizer_common_files = \
 	sancov_flags.cc \
 	sanitizer_allocator.cc \
 	sanitizer_allocator_checks.cc \
+	sanitizer_allocator_report.cc \
 	sanitizer_common.cc \
 	sanitizer_common_libcdep.cc \
 	sanitizer_coverage_libcdep_new.cc \
@@ -331,14 +333,15 @@ sanitizer_common_files = \
 	sanitizer_posix.cc \
 	sanitizer_posix_libcdep.cc \
 	sanitizer_printf.cc \
+	sanitizer_procmaps_bsd.cc \
 	sanitizer_procmaps_common.cc \
-	sanitizer_procmaps_freebsd.cc \
 	sanitizer_procmaps_linux.cc \
 	sanitizer_procmaps_mac.cc \
 	sanitizer_stackdepot.cc \
 	sanitizer_stacktrace.cc \
 	sanitizer_stacktrace_libcdep.cc \
 	sanitizer_symbolizer_mac.cc \
+	sanitizer_symbolizer_report.cc \
 	sanitizer_stacktrace_printer.cc \
 	sanitizer_stoptheworld_linux_libcdep.cc \
 	sanitizer_stoptheworld_mac.cc \
@@ -453,6 +456,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sancov_flags.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_allocator.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_allocator_checks.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_allocator_report.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_common.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_common_libcdep.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_coverage_libcdep_new.Plo@am__quote@
@@ -477,8 +481,8 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_posix.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_posix_libcdep.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_printf.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_procmaps_bsd.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_procmaps_common.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_procmaps_freebsd.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_procmaps_linux.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_procmaps_mac.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_stackdepot.Plo@am__quote@
@@ -493,6 +497,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_symbolizer_libcdep.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_symbolizer_mac.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_symbolizer_posix_libcdep.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_symbolizer_report.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_symbolizer_win.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_termination.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_thread_registry.Plo@am__quote@
diff --git a/libsanitizer/ubsan/Makefile.am b/libsanitizer/ubsan/Makefile.am
index 2bff6be93b7..1f924f8120a 100644
--- a/libsanitizer/ubsan/Makefile.am
+++ b/libsanitizer/ubsan/Makefile.am
@@ -18,6 +18,7 @@ ubsan_plugin_files = \
 	ubsan_handlers.cc \
 	ubsan_handlers_cxx.cc \
 	ubsan_init.cc \
+	ubsan_monitor.cc \
 	ubsan_type_hash.cc \
 	ubsan_type_hash_itanium.cc \
 	ubsan_type_hash_win.cc \
diff --git a/libsanitizer/ubsan/Makefile.in b/libsanitizer/ubsan/Makefile.in
index d75260f1ef7..320d4d79e2f 100644
--- a/libsanitizer/ubsan/Makefile.in
+++ b/libsanitizer/ubsan/Makefile.in
@@ -109,9 +109,9 @@ libubsan_la_DEPENDENCIES =  \
 	$(top_builddir)/sanitizer_common/libsanitizer_common.la \
 	$(am__append_1) $(am__append_2) $(am__DEPENDENCIES_1)
 am__objects_1 = ubsan_diag.lo ubsan_flags.lo ubsan_handlers.lo \
-	ubsan_handlers_cxx.lo ubsan_init.lo ubsan_type_hash.lo \
-	ubsan_type_hash_itanium.lo ubsan_type_hash_win.lo \
-	ubsan_value.lo
+	ubsan_handlers_cxx.lo ubsan_init.lo ubsan_monitor.lo \
+	ubsan_type_hash.lo ubsan_type_hash_itanium.lo \
+	ubsan_type_hash_win.lo ubsan_value.lo
 am__objects_2 = $(am__objects_1)
 am_libubsan_la_OBJECTS = $(am__objects_2)
 libubsan_la_OBJECTS = $(am_libubsan_la_OBJECTS)
@@ -304,6 +304,7 @@ ubsan_plugin_files = \
 	ubsan_handlers.cc \
 	ubsan_handlers_cxx.cc \
 	ubsan_init.cc \
+	ubsan_monitor.cc \
 	ubsan_type_hash.cc \
 	ubsan_type_hash_itanium.cc \
 	ubsan_type_hash_win.cc \
@@ -435,6 +436,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ubsan_handlers.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ubsan_handlers_cxx.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ubsan_init.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ubsan_monitor.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ubsan_type_hash.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ubsan_type_hash_itanium.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ubsan_type_hash_win.Plo@am__quote@

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [PATCH 6/7] Adjust asan_shadow_offset for powerpc64 targets.
  2018-10-25 11:06 [PATCH 0/7] libsanitizer: merge from trunk marxin
                   ` (3 preceding siblings ...)
  2018-10-25 10:52 ` [PATCH 3/7] Update build system: include new files and run autoheader, autoconf, automake marxin
@ 2018-10-25 10:53 ` marxin
  2018-10-25 11:16 ` [PATCH 1/7] Update merge script and HOWTO_MERGE documentation marxin
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 25+ messages in thread
From: marxin @ 2018-10-25 10:53 UTC (permalink / raw)
  To: gcc-patches

[-- Attachment #1: Type: text/plain, Size: 408 bytes --]


gcc/ChangeLog:

2018-10-25  Martin Liska  <mliska@suse.cz>

	* config/powerpcspe/powerpcspe.c (rs6000_asan_shadow_offset):
	Aligh with value changed in libsanitizer/asan/asan_mapping.h.
	* config/rs6000/rs6000.c (rs6000_asan_shadow_offset):
	Likewise.
---
 gcc/config/powerpcspe/powerpcspe.c | 2 +-
 gcc/config/rs6000/rs6000.c         | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0006-Adjust-asan_shadow_offset-for-powerpc64-targets.patch --]
[-- Type: text/x-patch; name="0006-Adjust-asan_shadow_offset-for-powerpc64-targets.patch", Size: 987 bytes --]

diff --git a/gcc/config/powerpcspe/powerpcspe.c b/gcc/config/powerpcspe/powerpcspe.c
index 90170c35c8f..2e76eb2f7b7 100644
--- a/gcc/config/powerpcspe/powerpcspe.c
+++ b/gcc/config/powerpcspe/powerpcspe.c
@@ -39354,7 +39354,7 @@ rs6000_final_prescan_insn (rtx_insn *insn, rtx *operand ATTRIBUTE_UNUSED,
 static unsigned HOST_WIDE_INT
 rs6000_asan_shadow_offset (void)
 {
-  return (unsigned HOST_WIDE_INT) 1 << (TARGET_64BIT ? 41 : 29);
+  return (unsigned HOST_WIDE_INT) 1 << (TARGET_64BIT ? 44 : 29);
 }
 #endif
 \f
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 75e30ce9784..32452eb36f3 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -35966,7 +35966,7 @@ rs6000_stack_protect_fail (void)
 static unsigned HOST_WIDE_INT
 rs6000_asan_shadow_offset (void)
 {
-  return (unsigned HOST_WIDE_INT) 1 << (TARGET_64BIT ? 41 : 29);
+  return (unsigned HOST_WIDE_INT) 1 << (TARGET_64BIT ? 44 : 29);
 }
 #endif
 \f

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [PATCH 0/7] libsanitizer: merge from trunk
@ 2018-10-25 11:06 marxin
  2018-10-25 10:41 ` [PATCH 4/7] Apply LOCAL_PATCHES and remove not used ones marxin
                   ` (9 more replies)
  0 siblings, 10 replies; 25+ messages in thread
From: marxin @ 2018-10-25 11:06 UTC (permalink / raw)
  To: gcc-patches

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

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [PATCH 1/7] Update merge script and HOWTO_MERGE documentation.
  2018-10-25 11:06 [PATCH 0/7] libsanitizer: merge from trunk marxin
                   ` (4 preceding siblings ...)
  2018-10-25 10:53 ` [PATCH 6/7] Adjust asan_shadow_offset for powerpc64 targets marxin
@ 2018-10-25 11:16 ` marxin
  2018-10-25 12:00 ` [PATCH 2/7] Merge from upstream 345033 Martin Liška
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 25+ messages in thread
From: marxin @ 2018-10-25 11:16 UTC (permalink / raw)
  To: gcc-patches

[-- Attachment #1: Type: text/plain, Size: 284 bytes --]


libsanitizer/ChangeLog:

2018-10-24  Martin Liska  <mliska@suse.cz>

	* HOWTO_MERGE: Enhance documentation.
	* merge.sh: Add support for git as well.
---
 libsanitizer/HOWTO_MERGE | 9 ++++++---
 libsanitizer/merge.sh    | 6 ++++--
 2 files changed, 10 insertions(+), 5 deletions(-)


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Update-merge-script-and-HOWTO_MERGE-documentation.patch --]
[-- Type: text/x-patch; name="0001-Update-merge-script-and-HOWTO_MERGE-documentation.patch", Size: 2798 bytes --]

diff --git a/libsanitizer/HOWTO_MERGE b/libsanitizer/HOWTO_MERGE
index 81121aa385f..a47a26a4a74 100644
--- a/libsanitizer/HOWTO_MERGE
+++ b/libsanitizer/HOWTO_MERGE
@@ -3,7 +3,8 @@ track various ABI changes and GCC-specific patches carefully.  Here is a
 general list of actions required to perform the merge:
 
 * Checkout recent GCC tree.
-* Run merge.sh script from libsanitizer directory.
+* Run merge.sh script from libsanitizer directory.  The script accepts one
+  argument that is control version system (svn or git).
 * Modify Makefile.am files into asan/tsan/lsan/ubsan/sanitizer_common/interception
   directories if needed.  In particular, you may need to add new source files
   and remove old ones in source files list, add new flags to {C, CXX}FLAGS if
@@ -20,7 +21,7 @@ general list of actions required to perform the merge:
 * Update ASan testsuite with corresponding tests from lib/asan/tests directory.
   Not all tests can be migrated easily, so you don't need them all to be adapted.
 * Modify configure.ac file if needed (e.g. if you need to add link against new
-  library for sanitizer lilbs).
+  library for sanitizer libs).
 * Add new target platforms in configure.tgt script if needed.
 * Bump SONAME for sanitizer libraries in asan/tsan/ubsan libtool-version files
   if ABI has changed.
@@ -30,7 +31,9 @@ general list of actions required to perform the merge:
 * Run regression testing on at least three platforms (e.g. x86-linux-gnu, x86_64-linux-gnu,
   aarch64-linux-gnu, arm-linux-gnueabi).
 * Run {A, UB}San bootstrap on at least three platforms.
-* Compare ABI of corresponding libclang_rt-asan and newly build libasan libraries.
+* Compare ABI of corresponding libclang_rt.asan and newly build libasan libraries.
+  Similarly you can compare latest GCC release with the newly built libraries
+  (libasan.so.*, libubsan.so.*, libtsan.so*).
   You can use a pretty good libabigail tool (https://sourceware.org/libabigail/index.html)
   to perform such a comparision.  Note, that the list of exported symbols may differ,
   e.g. because libasan currently does not include UBSan runtime.
diff --git a/libsanitizer/merge.sh b/libsanitizer/merge.sh
index 2e5ec2527b8..fa340bedbac 100755
--- a/libsanitizer/merge.sh
+++ b/libsanitizer/merge.sh
@@ -4,6 +4,8 @@
 
 # This script merges libsanitizer sources from upstream.
 
+VCS=${1:-svn}
+
 get_upstream() {
   rm -rf upstream
   #cp -rf orig upstream
@@ -46,10 +48,10 @@ merge() {
     elif [ -f $upstream_path/$f ]; then
       echo "FOUND IN UPSTREAM :" $f
       cp -v $upstream_path/$f $local_path
-      svn add $local_path/$f
+      $VCS add $local_path/$f
     elif [ -f $local_path/$f ]; then
       echo "FOUND IN LOCAL    :" $f
-      svn remove $local_path/$f
+      $VCS rm $local_path/$f
     fi
   done
 

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [PATCH 2/7] Merge from upstream 345033.
  2018-10-25 11:06 [PATCH 0/7] libsanitizer: merge from trunk marxin
                   ` (5 preceding siblings ...)
  2018-10-25 11:16 ` [PATCH 1/7] Update merge script and HOWTO_MERGE documentation marxin
@ 2018-10-25 12:00 ` Martin Liška
  2018-10-25 12:31 ` [PATCH 0/7] libsanitizer: merge from trunk Jakub Jelinek
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 25+ messages in thread
From: Martin Liška @ 2018-10-25 12:00 UTC (permalink / raw)
  To: gcc-patches

[-- Attachment #1: Type: text/plain, Size: 117 bytes --]

libsanitizer/ChangeLog:

2018-08-02  Martin Liska  <mliska@suse.cz>
	* All source files: Merge from upstream 345033.

[-- Attachment #2: 0001-Merge-from-upstream-345033.patch.bz2 --]
[-- Type: application/x-bzip, Size: 236362 bytes --]

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH 0/7] libsanitizer: merge from trunk
  2018-10-25 11:06 [PATCH 0/7] libsanitizer: merge from trunk marxin
                   ` (6 preceding siblings ...)
  2018-10-25 12:00 ` [PATCH 2/7] Merge from upstream 345033 Martin Liška
@ 2018-10-25 12:31 ` Jakub Jelinek
  2018-10-25 12:33   ` Martin Liška
  2018-10-26  9:57   ` Jakub Jelinek
  2018-10-25 12:55 ` [PATCH 8/N] Bump libasan version due to adjustement in shadow memory offset for ppc64 target Martin Liška
  2018-10-31 11:35 ` [PATCH 0/7] libsanitizer: merge from trunk Martin Liška
  9 siblings, 2 replies; 25+ messages in thread
From: Jakub Jelinek @ 2018-10-25 12:31 UTC (permalink / raw)
  To: marxin; +Cc: gcc-patches

On Thu, Oct 25, 2018 at 12:15:46PM +0200, marxin wrote:
> 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.

Given the 6/7 patch, I think you need to bump libasan soname (it would be
weird to bump it on powerpc64* only).

	Jakub

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH 0/7] libsanitizer: merge from trunk
  2018-10-25 12:31 ` [PATCH 0/7] libsanitizer: merge from trunk Jakub Jelinek
@ 2018-10-25 12:33   ` Martin Liška
  2018-10-26  9:57   ` Jakub Jelinek
  1 sibling, 0 replies; 25+ messages in thread
From: Martin Liška @ 2018-10-25 12:33 UTC (permalink / raw)
  To: Jakub Jelinek; +Cc: gcc-patches

On 10/25/18 12:49 PM, Jakub Jelinek wrote:
> On Thu, Oct 25, 2018 at 12:15:46PM +0200, marxin wrote:
>> 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.
> 
> Given the 6/7 patch, I think you need to bump libasan soname (it would be
> weird to bump it on powerpc64* only).

Ahh, you are exactly right! Let me do that in one more patch.

Martin

> 
> 	Jakub
> 

^ permalink raw reply	[flat|nested] 25+ messages in thread

* [PATCH 8/N] Bump libasan version due to adjustement in shadow memory offset for ppc64 target.
  2018-10-25 11:06 [PATCH 0/7] libsanitizer: merge from trunk marxin
                   ` (7 preceding siblings ...)
  2018-10-25 12:31 ` [PATCH 0/7] libsanitizer: merge from trunk Jakub Jelinek
@ 2018-10-25 12:55 ` Martin Liška
  2018-10-31 11:35 ` [PATCH 0/7] libsanitizer: merge from trunk Martin Liška
  9 siblings, 0 replies; 25+ messages in thread
From: Martin Liška @ 2018-10-25 12:55 UTC (permalink / raw)
  To: gcc-patches

[-- Attachment #1: Type: text/plain, Size: 1 bytes --]



[-- Attachment #2: 0001-Bump-libasan-version-due-to-adjustement-in-shadow-me.patch --]
[-- Type: text/x-patch, Size: 790 bytes --]

From ce9a9779ef89f5a1bdfd5ca6a9b9a354d93ceec9 Mon Sep 17 00:00:00 2001
From: marxin <mliska@suse.cz>
Date: Thu, 25 Oct 2018 12:57:45 +0200
Subject: [PATCH] Bump libasan version due to adjustement in shadow memory
 offset for ppc64 target.

libsanitizer/ChangeLog:

2018-10-25  Martin Liska  <mliska@suse.cz>

	* asan/libtool-version: Bump version.
---
 libsanitizer/asan/libtool-version | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libsanitizer/asan/libtool-version b/libsanitizer/asan/libtool-version
index e3138f3b9f8..c509757b572 100644
--- a/libsanitizer/asan/libtool-version
+++ b/libsanitizer/asan/libtool-version
@@ -3,4 +3,4 @@
 # a separate file so that version updates don't involve re-running
 # automake.
 # CURRENT:REVISION:AGE
-5:0:0
+6:0:0
-- 
2.19.0


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH 0/7] libsanitizer: merge from trunk
  2018-10-25 12:31 ` [PATCH 0/7] libsanitizer: merge from trunk Jakub Jelinek
  2018-10-25 12:33   ` Martin Liška
@ 2018-10-26  9:57   ` Jakub Jelinek
  2018-10-26 15:25     ` Bill Seurer
  1 sibling, 1 reply; 25+ messages in thread
From: Jakub Jelinek @ 2018-10-26  9:57 UTC (permalink / raw)
  To: marxin, Bill Seurer; +Cc: gcc-patches

On Thu, Oct 25, 2018 at 12:49:42PM +0200, Jakub Jelinek wrote:
> On Thu, Oct 25, 2018 at 12:15:46PM +0200, marxin wrote:
> > 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.
> 
> Given the 6/7 patch, I think you need to bump libasan soname (it would be
> weird to bump it on powerpc64* only).

BTW, how can shadow offset be 1UL<<44 on powerpc64?  That seems like they
don't want to support anything but very recent kernels.
E.g. looking at Linux 3.4 arch/powerpc/include/asm/processor.h
I see
/* 64-bit user address space is 44-bits (16TB user VM) */
#define TASK_SIZE_USER64 (0x0000100000000000UL)
so, the new choice must be incompatible with lots of kernels out there.
Move recent kernels have:
#define TASK_SIZE_64TB  (0x0000400000000000UL)
#define TASK_SIZE_128TB (0x0000800000000000UL)
#define TASK_SIZE_512TB (0x0002000000000000UL)
#define TASK_SIZE_1PB   (0x0004000000000000UL)
#define TASK_SIZE_2PB   (0x0008000000000000UL)
#define TASK_SIZE_4PB   (0x0010000000000000UL)
but 4.15 still tops at 512TB, 4.10 has just 64TB as the only choice, 3.8 as
well.

CCing Bill as he made this change.

	Jakub

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH 0/7] libsanitizer: merge from trunk
  2018-10-26  9:57   ` Jakub Jelinek
@ 2018-10-26 15:25     ` Bill Seurer
  2018-10-26 15:32       ` Jakub Jelinek
  0 siblings, 1 reply; 25+ messages in thread
From: Bill Seurer @ 2018-10-26 15:25 UTC (permalink / raw)
  To: Jakub Jelinek, marxin; +Cc: gcc-patches

On 10/26/18 03:57, Jakub Jelinek wrote:
> On Thu, Oct 25, 2018 at 12:49:42PM +0200, Jakub Jelinek wrote:
>> On Thu, Oct 25, 2018 at 12:15:46PM +0200, marxin wrote:
>>> 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.
>>
>> Given the 6/7 patch, I think you need to bump libasan soname (it would be
>> weird to bump it on powerpc64* only).
> 
> BTW, how can shadow offset be 1UL<<44 on powerpc64?  That seems like they
> don't want to support anything but very recent kernels.
> E.g. looking at Linux 3.4 arch/powerpc/include/asm/processor.h
> I see
> /* 64-bit user address space is 44-bits (16TB user VM) */
> #define TASK_SIZE_USER64 (0x0000100000000000UL)
> so, the new choice must be incompatible with lots of kernels out there.
> Move recent kernels have:
> #define TASK_SIZE_64TB  (0x0000400000000000UL)
> #define TASK_SIZE_128TB (0x0000800000000000UL)
> #define TASK_SIZE_512TB (0x0002000000000000UL)
> #define TASK_SIZE_1PB   (0x0004000000000000UL)
> #define TASK_SIZE_2PB   (0x0008000000000000UL)
> #define TASK_SIZE_4PB   (0x0010000000000000UL)
> but 4.15 still tops at 512TB, 4.10 has just 64TB as the only choice, 3.8 as
> well.
> 
> CCing Bill as he made this change.
> 
> 	Jakub
> 

At the time for llvm the concern was to get it to work on newer kernels 
and not worry (much) about the older ones.  I did spend some time trying 
to get it to work for both.

-- 

-Bill Seurer

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH 0/7] libsanitizer: merge from trunk
  2018-10-26 15:25     ` Bill Seurer
@ 2018-10-26 15:32       ` Jakub Jelinek
  2018-10-29 13:31         ` Martin Liška
  0 siblings, 1 reply; 25+ messages in thread
From: Jakub Jelinek @ 2018-10-26 15:32 UTC (permalink / raw)
  To: Bill Seurer; +Cc: marxin, gcc-patches

On Fri, Oct 26, 2018 at 09:48:54AM -0500, Bill Seurer wrote:
> On 10/26/18 03:57, Jakub Jelinek wrote:
> > On Thu, Oct 25, 2018 at 12:49:42PM +0200, Jakub Jelinek wrote:
> > > On Thu, Oct 25, 2018 at 12:15:46PM +0200, marxin wrote:
> > > > 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.
> > > 
> > > Given the 6/7 patch, I think you need to bump libasan soname (it would be
> > > weird to bump it on powerpc64* only).
> > 
> > BTW, how can shadow offset be 1UL<<44 on powerpc64?  That seems like they
> > don't want to support anything but very recent kernels.
> > E.g. looking at Linux 3.4 arch/powerpc/include/asm/processor.h
> > I see
> > /* 64-bit user address space is 44-bits (16TB user VM) */
> > #define TASK_SIZE_USER64 (0x0000100000000000UL)
> > so, the new choice must be incompatible with lots of kernels out there.
> > Move recent kernels have:
> > #define TASK_SIZE_64TB  (0x0000400000000000UL)
> > #define TASK_SIZE_128TB (0x0000800000000000UL)
> > #define TASK_SIZE_512TB (0x0002000000000000UL)
> > #define TASK_SIZE_1PB   (0x0004000000000000UL)
> > #define TASK_SIZE_2PB   (0x0008000000000000UL)
> > #define TASK_SIZE_4PB   (0x0010000000000000UL)
> > but 4.15 still tops at 512TB, 4.10 has just 64TB as the only choice, 3.8 as
> > well.
> > 
> > CCing Bill as he made this change.
> > 
> > 	Jakub
> > 
> 
> At the time for llvm the concern was to get it to work on newer kernels and
> not worry (much) about the older ones.  I did spend some time trying to get
> it to work for both.

Which exact task size doesn't work if shadow offset is 2TB and why?

	Jakub

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH 0/7] libsanitizer: merge from trunk
  2018-10-26 15:32       ` Jakub Jelinek
@ 2018-10-29 13:31         ` Martin Liška
  2018-10-29 13:32           ` Jakub Jelinek
  0 siblings, 1 reply; 25+ messages in thread
From: Martin Liška @ 2018-10-29 13:31 UTC (permalink / raw)
  To: Jakub Jelinek, Bill Seurer; +Cc: gcc-patches

On 10/26/18 4:52 PM, Jakub Jelinek wrote:
> On Fri, Oct 26, 2018 at 09:48:54AM -0500, Bill Seurer wrote:
>> On 10/26/18 03:57, Jakub Jelinek wrote:
>>> On Thu, Oct 25, 2018 at 12:49:42PM +0200, Jakub Jelinek wrote:
>>>> On Thu, Oct 25, 2018 at 12:15:46PM +0200, marxin wrote:
>>>>> 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.
>>>>
>>>> Given the 6/7 patch, I think you need to bump libasan soname (it would be
>>>> weird to bump it on powerpc64* only).
>>>
>>> BTW, how can shadow offset be 1UL<<44 on powerpc64?  That seems like they
>>> don't want to support anything but very recent kernels.
>>> E.g. looking at Linux 3.4 arch/powerpc/include/asm/processor.h
>>> I see
>>> /* 64-bit user address space is 44-bits (16TB user VM) */
>>> #define TASK_SIZE_USER64 (0x0000100000000000UL)
>>> so, the new choice must be incompatible with lots of kernels out there.
>>> Move recent kernels have:
>>> #define TASK_SIZE_64TB  (0x0000400000000000UL)
>>> #define TASK_SIZE_128TB (0x0000800000000000UL)
>>> #define TASK_SIZE_512TB (0x0002000000000000UL)
>>> #define TASK_SIZE_1PB   (0x0004000000000000UL)
>>> #define TASK_SIZE_2PB   (0x0008000000000000UL)
>>> #define TASK_SIZE_4PB   (0x0010000000000000UL)
>>> but 4.15 still tops at 512TB, 4.10 has just 64TB as the only choice, 3.8 as
>>> well.
>>>
>>> CCing Bill as he made this change.
>>>
>>> 	Jakub
>>>
>>
>> At the time for llvm the concern was to get it to work on newer kernels and
>> not worry (much) about the older ones.  I did spend some time trying to get
>> it to work for both.
> 
> Which exact task size doesn't work if shadow offset is 2TB and why?
> 
> 	Jakub
> 

Just for the record: am I right that any system using 44 bit of VMA will fail because
anything + (1 << 44) will be out of process address space?

And I noticed that documentation in sanitizer_linux.cc is misleading:

...
uptr GetMaxVirtualAddress() {
#if (SANITIZER_NETBSD || SANITIZER_OPENBSD) && defined(__x86_64__)
  return 0x7f7ffffff000ULL;  // (0x00007f8000000000 - PAGE_SIZE)
#elif SANITIZER_WORDSIZE == 64
# if defined(__powerpc64__) || defined(__aarch64__)
  // On PowerPC64 we have two different address space layouts: 44- and 46-bit.
  // We somehow need to figure out which one we are using now and choose
  // one of 0x00000fffffffffffUL and 0x00003fffffffffffUL.
...

That should be adjusted.

Thanks,
Martin

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH 0/7] libsanitizer: merge from trunk
  2018-10-29 13:31         ` Martin Liška
@ 2018-10-29 13:32           ` Jakub Jelinek
  2018-10-29 14:29             ` Bill Seurer
  0 siblings, 1 reply; 25+ messages in thread
From: Jakub Jelinek @ 2018-10-29 13:32 UTC (permalink / raw)
  To: Martin Liška; +Cc: Bill Seurer, gcc-patches

On Mon, Oct 29, 2018 at 12:13:04PM +0100, Martin Liška wrote:
> Just for the record: am I right that any system using 44 bit of VMA will fail because
> anything + (1 << 44) will be out of process address space?

Yes.

> And I noticed that documentation in sanitizer_linux.cc is misleading:
> 
> ...
> uptr GetMaxVirtualAddress() {
> #if (SANITIZER_NETBSD || SANITIZER_OPENBSD) && defined(__x86_64__)
>   return 0x7f7ffffff000ULL;  // (0x00007f8000000000 - PAGE_SIZE)
> #elif SANITIZER_WORDSIZE == 64
> # if defined(__powerpc64__) || defined(__aarch64__)
>   // On PowerPC64 we have two different address space layouts: 44- and 46-bit.
>   // We somehow need to figure out which one we are using now and choose
>   // one of 0x00000fffffffffffUL and 0x00003fffffffffffUL.
> ...
> 
> That should be adjusted.

Apparently for ppc64 there are many different layouts now, 44, 46, 47, 49, 52
at least depending on which kernel and page size you choose.
So, ideally we want some choice that works with all of them.  Shadow offset
1ULL<<44 is not that choice.

	Jakub

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH 0/7] libsanitizer: merge from trunk
  2018-10-29 13:32           ` Jakub Jelinek
@ 2018-10-29 14:29             ` Bill Seurer
  2018-10-29 16:34               ` Michael Matz
  0 siblings, 1 reply; 25+ messages in thread
From: Bill Seurer @ 2018-10-29 14:29 UTC (permalink / raw)
  To: Jakub Jelinek, Martin Liška; +Cc: gcc-patches

On 10/29/18 06:24, Jakub Jelinek wrote:
> On Mon, Oct 29, 2018 at 12:13:04PM +0100, Martin Liška wrote:
>> Just for the record: am I right that any system using 44 bit of VMA will fail because
>> anything + (1 << 44) will be out of process address space?
> 
> Yes.
> 
>> And I noticed that documentation in sanitizer_linux.cc is misleading:
>>
>> ...
>> uptr GetMaxVirtualAddress() {
>> #if (SANITIZER_NETBSD || SANITIZER_OPENBSD) && defined(__x86_64__)
>>    return 0x7f7ffffff000ULL;  // (0x00007f8000000000 - PAGE_SIZE)
>> #elif SANITIZER_WORDSIZE == 64
>> # if defined(__powerpc64__) || defined(__aarch64__)
>>    // On PowerPC64 we have two different address space layouts: 44- and 46-bit.
>>    // We somehow need to figure out which one we are using now and choose
>>    // one of 0x00000fffffffffffUL and 0x00003fffffffffffUL.
>> ...
>>
>> That should be adjusted.
> 
> Apparently for ppc64 there are many different layouts now, 44, 46, 47, 49, 52
> at least depending on which kernel and page size you choose.
> So, ideally we want some choice that works with all of them.  Shadow offset
> 1ULL<<44 is not that choice.

We (llvm team) tried to get it to work on all the different kernels but 
didn't find anything that worked.  Finally we just went with a value 
that worked on the newer kernels as the 44 bit one was not a target of 
concern.

-- 

-Bill Seurer

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH 0/7] libsanitizer: merge from trunk
  2018-10-29 14:29             ` Bill Seurer
@ 2018-10-29 16:34               ` Michael Matz
  2018-10-29 17:43                 ` Bill Seurer
  0 siblings, 1 reply; 25+ messages in thread
From: Michael Matz @ 2018-10-29 16:34 UTC (permalink / raw)
  To: Bill Seurer; +Cc: Jakub Jelinek, Martin Liška, gcc-patches

Hi,

On Mon, 29 Oct 2018, Bill Seurer wrote:

> >> Just for the record: am I right that any system using 44 bit of VMA will
> >> fail because
> >> anything + (1 << 44) will be out of process address space?
> > 
> > Yes.
> > 
> >> And I noticed that documentation in sanitizer_linux.cc is misleading:
> >>
> >> ...
> >> uptr GetMaxVirtualAddress() {
> >> #if (SANITIZER_NETBSD || SANITIZER_OPENBSD) && defined(__x86_64__)
> >>    return 0x7f7ffffff000ULL;  // (0x00007f8000000000 - PAGE_SIZE)
> >> #elif SANITIZER_WORDSIZE == 64
> >> # if defined(__powerpc64__) || defined(__aarch64__)
> >>    // On PowerPC64 we have two different address space layouts: 44- and
> >>    46-bit.
> >>    // We somehow need to figure out which one we are using now and choose
> >>    // one of 0x00000fffffffffffUL and 0x00003fffffffffffUL.
> >> ...
> >>
> >> That should be adjusted.
> > 
> > Apparently for ppc64 there are many different layouts now, 44, 46, 47, 49,
> > 52
> > at least depending on which kernel and page size you choose.
> > So, ideally we want some choice that works with all of them.  Shadow offset
> > 1ULL<<44 is not that choice.
> 
> We (llvm team) tried to get it to work on all the different kernels but didn't
> find anything that worked.  Finally we just went with a value that worked on
> the newer kernels as the 44 bit one was not a target of concern.

I'm still wondering what didn't work with 41 bits?  AFAICS, due to 
highshadow=highmem-offset and lowshadow=low+offset, and the existence of a 
non-empty shadow-gap, offset must be minimum(vbits)-3 (vbits being one of 
the above numbers).  Why would 41 not work for the other vbit setting?  
It would lead to a large shadow gap, but so?  If a shadow-gap isn't 
necessary then minimum(vbits)-2 would also work.


Ciao,
Michael.

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH 0/7] libsanitizer: merge from trunk
  2018-10-29 16:34               ` Michael Matz
@ 2018-10-29 17:43                 ` Bill Seurer
  2018-10-29 17:47                   ` Jakub Jelinek
  0 siblings, 1 reply; 25+ messages in thread
From: Bill Seurer @ 2018-10-29 17:43 UTC (permalink / raw)
  To: gcc-patches

On 10/29/18 10:26, Michael Matz wrote:
> Hi,
> 
> On Mon, 29 Oct 2018, Bill Seurer wrote:
> 
>>>> Just for the record: am I right that any system using 44 bit of VMA will
>>>> fail because
>>>> anything + (1 << 44) will be out of process address space?
>>>
>>> Yes.
>>>
>>>> And I noticed that documentation in sanitizer_linux.cc is misleading:
>>>>
>>>> ...
>>>> uptr GetMaxVirtualAddress() {
>>>> #if (SANITIZER_NETBSD || SANITIZER_OPENBSD) && defined(__x86_64__)
>>>>     return 0x7f7ffffff000ULL;  // (0x00007f8000000000 - PAGE_SIZE)
>>>> #elif SANITIZER_WORDSIZE == 64
>>>> # if defined(__powerpc64__) || defined(__aarch64__)
>>>>     // On PowerPC64 we have two different address space layouts: 44- and
>>>>     46-bit.
>>>>     // We somehow need to figure out which one we are using now and choose
>>>>     // one of 0x00000fffffffffffUL and 0x00003fffffffffffUL.
>>>> ...
>>>>
>>>> That should be adjusted.
>>>
>>> Apparently for ppc64 there are many different layouts now, 44, 46, 47, 49,
>>> 52
>>> at least depending on which kernel and page size you choose.
>>> So, ideally we want some choice that works with all of them.  Shadow offset
>>> 1ULL<<44 is not that choice.
>>
>> We (llvm team) tried to get it to work on all the different kernels but didn't
>> find anything that worked.  Finally we just went with a value that worked on
>> the newer kernels as the 44 bit one was not a target of concern.
> 
> I'm still wondering what didn't work with 41 bits?  AFAICS, due to
> highshadow=highmem-offset and lowshadow=low+offset, and the existence of a
> non-empty shadow-gap, offset must be minimum(vbits)-3 (vbits being one of
> the above numbers).  Why would 41 not work for the other vbit setting?
> It would lead to a large shadow gap, but so?  If a shadow-gap isn't
> necessary then minimum(vbits)-2 would also work.

41 was what the value previously was and it did not work (IIRC with 47 
bit VMA kernels which were "new" at the time) thus the change.

If someone comes up with something that they think will work I am 
willing to test it with both llvm and gcc.
-- 

-Bill Seurer

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH 0/7] libsanitizer: merge from trunk
  2018-10-29 17:43                 ` Bill Seurer
@ 2018-10-29 17:47                   ` Jakub Jelinek
  2018-10-31  9:40                     ` Jakub Jelinek
  0 siblings, 1 reply; 25+ messages in thread
From: Jakub Jelinek @ 2018-10-29 17:47 UTC (permalink / raw)
  To: Bill Seurer; +Cc: gcc-patches

On Mon, Oct 29, 2018 at 10:38:11AM -0500, Bill Seurer wrote:
> > I'm still wondering what didn't work with 41 bits?  AFAICS, due to
> > highshadow=highmem-offset and lowshadow=low+offset, and the existence of a
> > non-empty shadow-gap, offset must be minimum(vbits)-3 (vbits being one of
> > the above numbers).  Why would 41 not work for the other vbit setting?
> > It would lead to a large shadow gap, but so?  If a shadow-gap isn't
> > necessary then minimum(vbits)-2 would also work.
> 
> 41 was what the value previously was and it did not work (IIRC with 47 bit
> VMA kernels which were "new" at the time) thus the change.

What we'd like to see is details or URL with those why it didn't work with
47 bit.  E.g. x86_64 uses much lower shadow offset (0x7fff8000), asan has
support for multiple shadow areas, gaps and normal areas.
I think ppc64 binaries are usually using 0x10000000 base, so that isn't a
problem, so is there a conflict with the default dynamic linker placement or
default placement of shared libraries when using the 47-bit VMA?
What do you get with the 41-bit shadow offset and ASAN_OPTIONS=verbosity=1
on 47-bit VMA that e.g. kMidMemBeg/kMidMemEnd couldn't solve?

	Jakub

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH 0/7] libsanitizer: merge from trunk
  2018-10-29 17:47                   ` Jakub Jelinek
@ 2018-10-31  9:40                     ` Jakub Jelinek
  0 siblings, 0 replies; 25+ messages in thread
From: Jakub Jelinek @ 2018-10-31  9:40 UTC (permalink / raw)
  To: Martin Liška, Bill Seurer; +Cc: gcc-patches

On Mon, Oct 29, 2018 at 05:00:36PM +0100, Jakub Jelinek wrote:
> On Mon, Oct 29, 2018 at 10:38:11AM -0500, Bill Seurer wrote:
> > > I'm still wondering what didn't work with 41 bits?  AFAICS, due to
> > > highshadow=highmem-offset and lowshadow=low+offset, and the existence of a
> > > non-empty shadow-gap, offset must be minimum(vbits)-3 (vbits being one of
> > > the above numbers).  Why would 41 not work for the other vbit setting?
> > > It would lead to a large shadow gap, but so?  If a shadow-gap isn't
> > > necessary then minimum(vbits)-2 would also work.
> > 
> > 41 was what the value previously was and it did not work (IIRC with 47 bit
> > VMA kernels which were "new" at the time) thus the change.
> 
> What we'd like to see is details or URL with those why it didn't work with
> 47 bit.  E.g. x86_64 uses much lower shadow offset (0x7fff8000), asan has
> support for multiple shadow areas, gaps and normal areas.
> I think ppc64 binaries are usually using 0x10000000 base, so that isn't a
> problem, so is there a conflict with the default dynamic linker placement or
> default placement of shared libraries when using the 47-bit VMA?
> What do you get with the 41-bit shadow offset and ASAN_OPTIONS=verbosity=1
> on 47-bit VMA that e.g. kMidMemBeg/kMidMemEnd couldn't solve?

Thanks to Bill for debugging last night; my understanding is that the
1UL<<41 to 1UL<<44 shadow offset change was an attempt to fix the issue that
Martin fixed on the gcc side (and in llvm too) with changing PPC64
kAllocatorSpace from 0xa0000000000ULL to ~(uptr)0.  Sowe can now safely go
back to 1UL<<41 shadow offset, which will work also with 44-bit VA.
That setting is known to work with 44-bit, 46-bit and 47-bit virtual address
space, we don't know if there are any kernels out there with the higher
address space sizes the recent 4.13+ and 4.18+ kernel sources suggest
(49-bit and 52-bit).  Guess we'll need to talk to some kernel people.

Anyway, for the gcc backport, I'd suggest to revert the 41->44 changes
and don't bump libasan soname.
The patch set LGTM with those changes.

	Jakub

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH 3/7] Update build system: include new files and run autoheader, autoconf, automake
  2018-10-31 11:31   ` Rainer Orth
@ 2018-10-31 11:31     ` Martin Liška
  0 siblings, 0 replies; 25+ messages in thread
From: Martin Liška @ 2018-10-31 11:31 UTC (permalink / raw)
  To: Rainer Orth; +Cc: gcc-patches

[-- Attachment #1: Type: text/plain, Size: 655 bytes --]

On 10/31/18 11:35 AM, Rainer Orth wrote:
> Hi Martin,
> 
>> libsanitizer/ChangeLog:
>>
>> 2018-10-24  Martin Liska  <mliska@suse.cz>
>>
>> 	* config.h.in: Regenerate.
>> 	* configure: Likewise.
>> 	* sanitizer_common/Makefile.am: Include new files, remove old
>> 	files.
>> 	* sanitizer_common/Makefile.in: Regenerate.
> 
> I noticed that this patch lacks the new
> sanitizer_common/sanitizer_stacktrace_sparc.cc file in
> sanitizer_common/Makefile.am.  Maybe you want to double-check the list
> of new files.

Thanks for heads up. Yes, there were also another *.cc files that I missed to add.

Fixed in attached patch.
Martin

> 
> Thanks.
> 	Rainer
> 


[-- Attachment #2: 0001-Update-build-system-include-new-files-and-run-autohe.patch --]
[-- Type: text/x-patch, Size: 18690 bytes --]

From 2d5a93039f460ef85c391a9cadb283902d3fcd8b Mon Sep 17 00:00:00 2001
From: marxin <mliska@suse.cz>
Date: Wed, 24 Oct 2018 11:21:47 +0200
Subject: [PATCH] Update build system: include new files and run autoheader,
 autoconf, automake

libsanitizer/ChangeLog:

2018-10-24  Martin Liska  <mliska@suse.cz>

	* config.h.in: Regenerate.
	* configure: Likewise.
	* sanitizer_common/Makefile.am: Include new files, remove old
	files.
	* sanitizer_common/Makefile.in: Regenerate.
	* ubsan/Makefile.am: Include new files, remove old
	files.
	* ubsan/Makefile.in: Likewise.
---
 libsanitizer/asan/Makefile.am             |  2 +
 libsanitizer/asan/Makefile.in             | 12 ++++--
 libsanitizer/config.h.in                  |  6 +--
 libsanitizer/configure                    |  8 ++--
 libsanitizer/sanitizer_common/Makefile.am | 13 +++++-
 libsanitizer/sanitizer_common/Makefile.in | 52 +++++++++++++++++------
 libsanitizer/ubsan/Makefile.am            |  1 +
 libsanitizer/ubsan/Makefile.in            |  8 ++--
 8 files changed, 75 insertions(+), 27 deletions(-)

diff --git a/libsanitizer/asan/Makefile.am b/libsanitizer/asan/Makefile.am
index f105b035796..867240d2445 100644
--- a/libsanitizer/asan/Makefile.am
+++ b/libsanitizer/asan/Makefile.am
@@ -36,7 +36,9 @@ asan_files = \
 	asan_new_delete.cc \
 	asan_poisoning.cc \
 	asan_posix.cc \
+	asan_premap_shadow.cc \
 	asan_report.cc \
+	asan_rtems.cc \
 	asan_rtl.cc \
 	asan_shadow_setup.cc \
 	asan_stack.cc \
diff --git a/libsanitizer/asan/Makefile.in b/libsanitizer/asan/Makefile.in
index 4cf27e712f7..7ace12b4b55 100644
--- a/libsanitizer/asan/Makefile.in
+++ b/libsanitizer/asan/Makefile.in
@@ -118,10 +118,10 @@ am__objects_1 = asan_activation.lo asan_allocator.lo asan_debugging.lo \
 	asan_interceptors_memintrinsics.lo asan_linux.lo asan_mac.lo \
 	asan_malloc_linux.lo asan_malloc_mac.lo asan_malloc_win.lo \
 	asan_memory_profile.lo asan_new_delete.lo asan_poisoning.lo \
-	asan_posix.lo asan_report.lo asan_rtl.lo asan_shadow_setup.lo \
-	asan_stack.lo asan_stats.lo asan_suppressions.lo \
-	asan_thread.lo asan_win.lo asan_win_dll_thunk.lo \
-	asan_win_dynamic_runtime_thunk.lo
+	asan_posix.lo asan_premap_shadow.lo asan_report.lo \
+	asan_rtems.lo asan_rtl.lo asan_shadow_setup.lo asan_stack.lo \
+	asan_stats.lo asan_suppressions.lo asan_thread.lo asan_win.lo \
+	asan_win_dll_thunk.lo asan_win_dynamic_runtime_thunk.lo
 am_libasan_la_OBJECTS = $(am__objects_1)
 libasan_la_OBJECTS = $(am_libasan_la_OBJECTS)
 libasan_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
@@ -332,7 +332,9 @@ asan_files = \
 	asan_new_delete.cc \
 	asan_poisoning.cc \
 	asan_posix.cc \
+	asan_premap_shadow.cc \
 	asan_report.cc \
+	asan_rtems.cc \
 	asan_rtl.cc \
 	asan_shadow_setup.cc \
 	asan_stack.cc \
@@ -483,7 +485,9 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asan_new_delete.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asan_poisoning.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asan_posix.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asan_premap_shadow.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asan_report.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asan_rtems.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asan_rtl.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asan_shadow_setup.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asan_stack.Plo@am__quote@
diff --git a/libsanitizer/config.h.in b/libsanitizer/config.h.in
index f716c2421cf..a64b6a16a17 100644
--- a/libsanitizer/config.h.in
+++ b/libsanitizer/config.h.in
@@ -40,12 +40,12 @@
 /* Define to 1 if you have the <link.h> header file. */
 #undef HAVE_LINK_H
 
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
 /* Define to 1 if you have the `lstat' function. */
 #undef HAVE_LSTAT
 
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
 /* Define to 1 if you have the `readlink' function. */
 #undef HAVE_READLINK
 
diff --git a/libsanitizer/configure b/libsanitizer/configure
index 5836450063d..31726c92f47 100755
--- a/libsanitizer/configure
+++ b/libsanitizer/configure
@@ -13308,20 +13308,20 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 	      prelink_cmds_CXX='tpldir=Template.dir~
 		rm -rf $tpldir~
 		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
-		compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"'
+		compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
 	      old_archive_cmds_CXX='tpldir=Template.dir~
 		rm -rf $tpldir~
 		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
-		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~
+		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
 		$RANLIB $oldlib'
 	      archive_cmds_CXX='tpldir=Template.dir~
 		rm -rf $tpldir~
 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
 	      archive_expsym_cmds_CXX='tpldir=Template.dir~
 		rm -rf $tpldir~
 		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
 	      ;;
 	    *) # Version 6 and above use weak symbols
 	      archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
diff --git a/libsanitizer/sanitizer_common/Makefile.am b/libsanitizer/sanitizer_common/Makefile.am
index 246985b9933..b04e755b660 100644
--- a/libsanitizer/sanitizer_common/Makefile.am
+++ b/libsanitizer/sanitizer_common/Makefile.am
@@ -24,6 +24,7 @@ sanitizer_common_files = \
 	sancov_flags.cc \
 	sanitizer_allocator.cc \
 	sanitizer_allocator_checks.cc \
+	sanitizer_allocator_report.cc \
 	sanitizer_common.cc \
 	sanitizer_common_libcdep.cc \
 	sanitizer_coverage_libcdep_new.cc \
@@ -40,20 +41,29 @@ sanitizer_common_files = \
 	sanitizer_linux_s390.cc \
 	sanitizer_mac.cc \
 	sanitizer_mac_libcdep.cc \
+	sanitizer_netbsd.cc \
+	sanitizer_openbsd.cc \
 	sanitizer_persistent_allocator.cc \
 	sanitizer_platform_limits_linux.cc \
+	sanitizer_platform_limits_openbsd.cc \
 	sanitizer_platform_limits_posix.cc \
+	sanitizer_platform_limits_solaris.cc \
 	sanitizer_posix.cc \
 	sanitizer_posix_libcdep.cc \
 	sanitizer_printf.cc \
+	sanitizer_procmaps_bsd.cc \
 	sanitizer_procmaps_common.cc \
-	sanitizer_procmaps_freebsd.cc \
 	sanitizer_procmaps_linux.cc \
 	sanitizer_procmaps_mac.cc \
+	sanitizer_procmaps_solaris.cc \
+	sanitizer_rtems.cc \
+	sanitizer_solaris.cc \
 	sanitizer_stackdepot.cc \
 	sanitizer_stacktrace.cc \
 	sanitizer_stacktrace_libcdep.cc \
+	sanitizer_stacktrace_sparc.cc \
 	sanitizer_symbolizer_mac.cc \
+	sanitizer_symbolizer_report.cc \
 	sanitizer_stacktrace_printer.cc \
 	sanitizer_stoptheworld_linux_libcdep.cc \
 	sanitizer_stoptheworld_mac.cc \
@@ -67,6 +77,7 @@ sanitizer_common_files = \
 	sanitizer_thread_registry.cc \
 	sanitizer_tls_get_addr.cc \
 	sanitizer_unwind_linux_libcdep.cc \
+	sanitizer_unwind_win.cc \
 	sanitizer_win.cc
 
 
diff --git a/libsanitizer/sanitizer_common/Makefile.in b/libsanitizer/sanitizer_common/Makefile.in
index b0f5ac25a7f..fbb4bf8906b 100644
--- a/libsanitizer/sanitizer_common/Makefile.in
+++ b/libsanitizer/sanitizer_common/Makefile.in
@@ -82,23 +82,28 @@ CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 am__objects_1 = sancov_flags.lo sanitizer_allocator.lo \
-	sanitizer_allocator_checks.lo sanitizer_common.lo \
-	sanitizer_common_libcdep.lo sanitizer_coverage_libcdep_new.lo \
+	sanitizer_allocator_checks.lo sanitizer_allocator_report.lo \
+	sanitizer_common.lo sanitizer_common_libcdep.lo \
+	sanitizer_coverage_libcdep_new.lo \
 	sanitizer_deadlock_detector1.lo \
 	sanitizer_deadlock_detector2.lo sanitizer_errno.lo \
 	sanitizer_file.lo sanitizer_flags.lo sanitizer_flag_parser.lo \
 	sanitizer_libc.lo sanitizer_libignore.lo sanitizer_linux.lo \
 	sanitizer_linux_libcdep.lo sanitizer_linux_s390.lo \
-	sanitizer_mac.lo sanitizer_mac_libcdep.lo \
-	sanitizer_persistent_allocator.lo \
+	sanitizer_mac.lo sanitizer_mac_libcdep.lo sanitizer_netbsd.lo \
+	sanitizer_openbsd.lo sanitizer_persistent_allocator.lo \
 	sanitizer_platform_limits_linux.lo \
-	sanitizer_platform_limits_posix.lo sanitizer_posix.lo \
+	sanitizer_platform_limits_openbsd.lo \
+	sanitizer_platform_limits_posix.lo \
+	sanitizer_platform_limits_solaris.lo sanitizer_posix.lo \
 	sanitizer_posix_libcdep.lo sanitizer_printf.lo \
-	sanitizer_procmaps_common.lo sanitizer_procmaps_freebsd.lo \
+	sanitizer_procmaps_bsd.lo sanitizer_procmaps_common.lo \
 	sanitizer_procmaps_linux.lo sanitizer_procmaps_mac.lo \
-	sanitizer_stackdepot.lo sanitizer_stacktrace.lo \
-	sanitizer_stacktrace_libcdep.lo sanitizer_symbolizer_mac.lo \
-	sanitizer_stacktrace_printer.lo \
+	sanitizer_procmaps_solaris.lo sanitizer_rtems.lo \
+	sanitizer_solaris.lo sanitizer_stackdepot.lo \
+	sanitizer_stacktrace.lo sanitizer_stacktrace_libcdep.lo \
+	sanitizer_stacktrace_sparc.lo sanitizer_symbolizer_mac.lo \
+	sanitizer_symbolizer_report.lo sanitizer_stacktrace_printer.lo \
 	sanitizer_stoptheworld_linux_libcdep.lo \
 	sanitizer_stoptheworld_mac.lo sanitizer_suppressions.lo \
 	sanitizer_symbolizer.lo sanitizer_symbolizer_libbacktrace.lo \
@@ -106,7 +111,8 @@ am__objects_1 = sancov_flags.lo sanitizer_allocator.lo \
 	sanitizer_symbolizer_posix_libcdep.lo \
 	sanitizer_symbolizer_win.lo sanitizer_termination.lo \
 	sanitizer_thread_registry.lo sanitizer_tls_get_addr.lo \
-	sanitizer_unwind_linux_libcdep.lo sanitizer_win.lo
+	sanitizer_unwind_linux_libcdep.lo sanitizer_unwind_win.lo \
+	sanitizer_win.lo
 am_libsanitizer_common_la_OBJECTS = $(am__objects_1)
 libsanitizer_common_la_OBJECTS = $(am_libsanitizer_common_la_OBJECTS)
 DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
@@ -309,6 +315,7 @@ sanitizer_common_files = \
 	sancov_flags.cc \
 	sanitizer_allocator.cc \
 	sanitizer_allocator_checks.cc \
+	sanitizer_allocator_report.cc \
 	sanitizer_common.cc \
 	sanitizer_common_libcdep.cc \
 	sanitizer_coverage_libcdep_new.cc \
@@ -325,20 +332,29 @@ sanitizer_common_files = \
 	sanitizer_linux_s390.cc \
 	sanitizer_mac.cc \
 	sanitizer_mac_libcdep.cc \
+	sanitizer_netbsd.cc \
+	sanitizer_openbsd.cc \
 	sanitizer_persistent_allocator.cc \
 	sanitizer_platform_limits_linux.cc \
+	sanitizer_platform_limits_openbsd.cc \
 	sanitizer_platform_limits_posix.cc \
+	sanitizer_platform_limits_solaris.cc \
 	sanitizer_posix.cc \
 	sanitizer_posix_libcdep.cc \
 	sanitizer_printf.cc \
+	sanitizer_procmaps_bsd.cc \
 	sanitizer_procmaps_common.cc \
-	sanitizer_procmaps_freebsd.cc \
 	sanitizer_procmaps_linux.cc \
 	sanitizer_procmaps_mac.cc \
+	sanitizer_procmaps_solaris.cc \
+	sanitizer_rtems.cc \
+	sanitizer_solaris.cc \
 	sanitizer_stackdepot.cc \
 	sanitizer_stacktrace.cc \
 	sanitizer_stacktrace_libcdep.cc \
+	sanitizer_stacktrace_sparc.cc \
 	sanitizer_symbolizer_mac.cc \
+	sanitizer_symbolizer_report.cc \
 	sanitizer_stacktrace_printer.cc \
 	sanitizer_stoptheworld_linux_libcdep.cc \
 	sanitizer_stoptheworld_mac.cc \
@@ -352,6 +368,7 @@ sanitizer_common_files = \
 	sanitizer_thread_registry.cc \
 	sanitizer_tls_get_addr.cc \
 	sanitizer_unwind_linux_libcdep.cc \
+	sanitizer_unwind_win.cc \
 	sanitizer_win.cc
 
 libsanitizer_common_la_SOURCES = $(sanitizer_common_files) 
@@ -453,6 +470,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sancov_flags.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_allocator.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_allocator_checks.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_allocator_report.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_common.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_common_libcdep.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_coverage_libcdep_new.Plo@am__quote@
@@ -471,20 +489,28 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_linux_x86_64.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_mac.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_mac_libcdep.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_netbsd.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_openbsd.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_persistent_allocator.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_platform_limits_linux.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_platform_limits_openbsd.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_platform_limits_posix.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_platform_limits_solaris.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_posix.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_posix_libcdep.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_printf.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_procmaps_bsd.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_procmaps_common.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_procmaps_freebsd.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_procmaps_linux.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_procmaps_mac.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_procmaps_solaris.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_rtems.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_solaris.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_stackdepot.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_stacktrace.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_stacktrace_libcdep.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_stacktrace_printer.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_stacktrace_sparc.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_stoptheworld_linux_libcdep.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_stoptheworld_mac.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_suppressions.Plo@am__quote@
@@ -493,11 +519,13 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_symbolizer_libcdep.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_symbolizer_mac.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_symbolizer_posix_libcdep.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_symbolizer_report.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_symbolizer_win.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_termination.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_thread_registry.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_tls_get_addr.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_unwind_linux_libcdep.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_unwind_win.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sanitizer_win.Plo@am__quote@
 
 .S.o:
diff --git a/libsanitizer/ubsan/Makefile.am b/libsanitizer/ubsan/Makefile.am
index 2bff6be93b7..1f924f8120a 100644
--- a/libsanitizer/ubsan/Makefile.am
+++ b/libsanitizer/ubsan/Makefile.am
@@ -18,6 +18,7 @@ ubsan_plugin_files = \
 	ubsan_handlers.cc \
 	ubsan_handlers_cxx.cc \
 	ubsan_init.cc \
+	ubsan_monitor.cc \
 	ubsan_type_hash.cc \
 	ubsan_type_hash_itanium.cc \
 	ubsan_type_hash_win.cc \
diff --git a/libsanitizer/ubsan/Makefile.in b/libsanitizer/ubsan/Makefile.in
index d75260f1ef7..320d4d79e2f 100644
--- a/libsanitizer/ubsan/Makefile.in
+++ b/libsanitizer/ubsan/Makefile.in
@@ -109,9 +109,9 @@ libubsan_la_DEPENDENCIES =  \
 	$(top_builddir)/sanitizer_common/libsanitizer_common.la \
 	$(am__append_1) $(am__append_2) $(am__DEPENDENCIES_1)
 am__objects_1 = ubsan_diag.lo ubsan_flags.lo ubsan_handlers.lo \
-	ubsan_handlers_cxx.lo ubsan_init.lo ubsan_type_hash.lo \
-	ubsan_type_hash_itanium.lo ubsan_type_hash_win.lo \
-	ubsan_value.lo
+	ubsan_handlers_cxx.lo ubsan_init.lo ubsan_monitor.lo \
+	ubsan_type_hash.lo ubsan_type_hash_itanium.lo \
+	ubsan_type_hash_win.lo ubsan_value.lo
 am__objects_2 = $(am__objects_1)
 am_libubsan_la_OBJECTS = $(am__objects_2)
 libubsan_la_OBJECTS = $(am_libubsan_la_OBJECTS)
@@ -304,6 +304,7 @@ ubsan_plugin_files = \
 	ubsan_handlers.cc \
 	ubsan_handlers_cxx.cc \
 	ubsan_init.cc \
+	ubsan_monitor.cc \
 	ubsan_type_hash.cc \
 	ubsan_type_hash_itanium.cc \
 	ubsan_type_hash_win.cc \
@@ -435,6 +436,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ubsan_handlers.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ubsan_handlers_cxx.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ubsan_init.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ubsan_monitor.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ubsan_type_hash.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ubsan_type_hash_itanium.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ubsan_type_hash_win.Plo@am__quote@
-- 
2.19.0


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH 3/7] Update build system: include new files and run autoheader, autoconf, automake
  2018-10-25 10:52 ` [PATCH 3/7] Update build system: include new files and run autoheader, autoconf, automake marxin
@ 2018-10-31 11:31   ` Rainer Orth
  2018-10-31 11:31     ` Martin Liška
  0 siblings, 1 reply; 25+ messages in thread
From: Rainer Orth @ 2018-10-31 11:31 UTC (permalink / raw)
  To: marxin; +Cc: gcc-patches

Hi Martin,

> libsanitizer/ChangeLog:
>
> 2018-10-24  Martin Liska  <mliska@suse.cz>
>
> 	* config.h.in: Regenerate.
> 	* configure: Likewise.
> 	* sanitizer_common/Makefile.am: Include new files, remove old
> 	files.
> 	* sanitizer_common/Makefile.in: Regenerate.

I noticed that this patch lacks the new
sanitizer_common/sanitizer_stacktrace_sparc.cc file in
sanitizer_common/Makefile.am.  Maybe you want to double-check the list
of new files.

Thanks.
	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH 0/7] libsanitizer: merge from trunk
  2018-10-25 11:06 [PATCH 0/7] libsanitizer: merge from trunk marxin
                   ` (8 preceding siblings ...)
  2018-10-25 12:55 ` [PATCH 8/N] Bump libasan version due to adjustement in shadow memory offset for ppc64 target Martin Liška
@ 2018-10-31 11:35 ` Martin Liška
  2018-10-31 11:55   ` Jakub Jelinek
  9 siblings, 1 reply; 25+ messages in thread
From: Martin Liška @ 2018-10-31 11:35 UTC (permalink / raw)
  To: gcc-patches; +Cc: Jakub Jelinek

[-- Attachment #1: Type: text/plain, Size: 162 bytes --]

Hi.

I install the patch set. If I'm correct one last missing piece should
be update of LOCAL_PATCHES. I'm sending patch for it.

Ready for trunk?
Thanks,
Martin

[-- Attachment #2: 0001-Update-LOCAL_PATCHES-after-libsanitizer-merge.patch --]
[-- Type: text/x-patch, Size: 680 bytes --]

From 02134e26743eed447f62f7e22d75ddfe605e88e3 Mon Sep 17 00:00:00 2001
From: marxin <mliska@suse.cz>
Date: Wed, 31 Oct 2018 12:22:36 +0100
Subject: [PATCH] Update LOCAL_PATCHES after libsanitizer merge.

libsanitizer/ChangeLog:

2018-10-31  Martin Liska  <mliska@suse.cz>

	* LOCAL_PATCHES: Update to installed revisions.
---
 libsanitizer/LOCAL_PATCHES | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/libsanitizer/LOCAL_PATCHES b/libsanitizer/LOCAL_PATCHES
index 69544c33a89..56e74b8b73a 100644
--- a/libsanitizer/LOCAL_PATCHES
+++ b/libsanitizer/LOCAL_PATCHES
@@ -1,4 +1,3 @@
-r241980
-r241981
-r242478
-r242633
+r265667
+r265668
+r265669
-- 
2.19.0


^ permalink raw reply	[flat|nested] 25+ messages in thread

* Re: [PATCH 0/7] libsanitizer: merge from trunk
  2018-10-31 11:35 ` [PATCH 0/7] libsanitizer: merge from trunk Martin Liška
@ 2018-10-31 11:55   ` Jakub Jelinek
  0 siblings, 0 replies; 25+ messages in thread
From: Jakub Jelinek @ 2018-10-31 11:55 UTC (permalink / raw)
  To: Martin Liška; +Cc: gcc-patches

On Wed, Oct 31, 2018 at 12:24:47PM +0100, Martin Liška wrote:
> I install the patch set. If I'm correct one last missing piece should
> be update of LOCAL_PATCHES. I'm sending patch for it.

Ok, thanks.

	Jakub

^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2018-10-31 11:25 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-25 11:06 [PATCH 0/7] libsanitizer: merge from trunk marxin
2018-10-25 10:41 ` [PATCH 4/7] Apply LOCAL_PATCHES and remove not used ones marxin
2018-10-25 10:41 ` [PATCH 7/7] Update test-suite expected output after rewording in libsanitizer marxin
2018-10-25 10:46 ` [PATCH 5/7] New local GCC patch for CAN_SANITIZE_UB ifdef marxin
2018-10-25 10:52 ` [PATCH 3/7] Update build system: include new files and run autoheader, autoconf, automake marxin
2018-10-31 11:31   ` Rainer Orth
2018-10-31 11:31     ` Martin Liška
2018-10-25 10:53 ` [PATCH 6/7] Adjust asan_shadow_offset for powerpc64 targets marxin
2018-10-25 11:16 ` [PATCH 1/7] Update merge script and HOWTO_MERGE documentation marxin
2018-10-25 12:00 ` [PATCH 2/7] Merge from upstream 345033 Martin Liška
2018-10-25 12:31 ` [PATCH 0/7] libsanitizer: merge from trunk Jakub Jelinek
2018-10-25 12:33   ` Martin Liška
2018-10-26  9:57   ` Jakub Jelinek
2018-10-26 15:25     ` Bill Seurer
2018-10-26 15:32       ` Jakub Jelinek
2018-10-29 13:31         ` Martin Liška
2018-10-29 13:32           ` Jakub Jelinek
2018-10-29 14:29             ` Bill Seurer
2018-10-29 16:34               ` Michael Matz
2018-10-29 17:43                 ` Bill Seurer
2018-10-29 17:47                   ` Jakub Jelinek
2018-10-31  9:40                     ` Jakub Jelinek
2018-10-25 12:55 ` [PATCH 8/N] Bump libasan version due to adjustement in shadow memory offset for ppc64 target Martin Liška
2018-10-31 11:35 ` [PATCH 0/7] libsanitizer: merge from trunk Martin Liška
2018-10-31 11:55   ` Jakub Jelinek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).