Module Name:    src
Committed By:   christos
Date:           Sat May 25 15:18:52 UTC 2019

Modified Files:
        src/external/gpl3/gcc/dist/libsanitizer/lsan: lsan_common.h
        src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common:
            sanitizer_stoptheworld_linux_libcdep.cc

Log Message:
Undo previous (disable lsan), and instead fix it by passing 1 instead of 0
to the address argument in detach. Apparently linux ignores the address
argument for detach (or treats 0 as 'do not set').


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
    src/external/gpl3/gcc/dist/libsanitizer/lsan/lsan_common.h
cvs rdiff -u -r1.6 -r1.7 \
    
src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/gpl3/gcc/dist/libsanitizer/lsan/lsan_common.h
diff -u src/external/gpl3/gcc/dist/libsanitizer/lsan/lsan_common.h:1.4 src/external/gpl3/gcc/dist/libsanitizer/lsan/lsan_common.h:1.5
--- src/external/gpl3/gcc/dist/libsanitizer/lsan/lsan_common.h:1.4	Sat May 25 09:54:37 2019
+++ src/external/gpl3/gcc/dist/libsanitizer/lsan/lsan_common.h	Sat May 25 11:18:52 2019
@@ -20,7 +20,7 @@
 #include "sanitizer_common/sanitizer_stoptheworld.h"
 #include "sanitizer_common/sanitizer_symbolizer.h"
 
-#if (SANITIZER_LINUX) && !SANITIZER_ANDROID && (SANITIZER_WORDSIZE == 64) \
+#if (SANITIZER_NETBSD || SANITIZER_LINUX) && !SANITIZER_ANDROID && (SANITIZER_WORDSIZE == 64) \
      && (defined(__x86_64__) ||  defined(__mips64) ||  defined(__aarch64__))
 #define CAN_SANITIZE_LEAKS 1
 #else

Index: src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc
diff -u src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc:1.6 src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc:1.7
--- src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc:1.6	Thu Jan 31 03:44:14 2019
+++ src/external/gpl3/gcc/dist/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc	Sat May 25 11:18:52 2019
@@ -164,7 +164,7 @@ bool ThreadSuspender::SuspendThread(Susp
         // doesn't hurt to report it.
         VReport(1, "Waiting on thread %d failed, detaching (errno %d).\n",
                 tid, wperrno);
-        internal_ptrace(PTRACE_DETACH, tid, nullptr, nullptr);
+        internal_ptrace(PTRACE_DETACH, tid, (void*)(uptr)1, nullptr);
         return false;
       }
       if (WIFSTOPPED(status) && WSTOPSIG(status) != SIGSTOP) {
@@ -183,7 +183,7 @@ void ThreadSuspender::ResumeAllThreads()
   for (uptr i = 0; i < suspended_threads_list_.thread_count(); i++) {
     pid_t tid = suspended_threads_list_.GetThreadID(i);
     int pterrno;
-    if (!internal_iserror(internal_ptrace(PTRACE_DETACH, tid, nullptr, nullptr),
+    if (!internal_iserror(internal_ptrace(PTRACE_DETACH, tid, (void*)(uptr)1, nullptr),
                           &pterrno)) {
       VReport(2, "Detached from thread %d.\n", tid);
     } else {

Reply via email to