[llvm-dev] [LLVM/Clang v3.8.1] Missing Git branches/tags and source-tarballs?

Sedat Dilek via llvm-dev llvm-dev at lists.llvm.org
Fri Jul 15 23:44:31 PDT 2016


On Wed, Jul 13, 2016 at 4:51 PM, Tom Stellard <tom at stellard.net> wrote:
> On Wed, Jul 13, 2016 at 04:48:51PM +0200, Sedat Dilek via llvm-dev wrote:
>> [ CCed all people who were involved in this thread ]
>>
>> Hi Tom,
>>
>> personally, I am interested to test the prebuilt-toolchains for
>> Ubuntu/xenial alias 16.04 LTS and Debian/Jessie v8.5.0 AMD64.
>> The available toolchains are incomplete and thus useless.
>>
>> Just as a fact: There is still no compiler-rt source-tarball available.
>> I know of Linux distributions which refuse to build and upload new
>> packages when there are no official tarballs around.
>>
>> Can you please - as the release-manager of LLVM v3.8.1 - care of
>> uploading missing and/or incomplete source-tarballs and/or
>> prebuilt-toolchains?
>> ( "Care" in the sense of you know whom to poke. )
>>
>> Thanks in advance.
>>
>
> Hi,
>
> I am working on this now, I'll let you know when I'm finished.
>

I have seen there is a compiler-rt source-tarball available, now.
Not sure if all hash-files were updated with corresponding sig-files.

I compared all my selfmade source-tarballs with the official ones.
compiler-rt seems to get some updates (MIPS msan sanityzer) after
tagging, maybe that's the reason for the delay?

Thanks.

- Sedat -
-------------- next part --------------
diff -uprN cfe-3.8.1.src.orig/lib/Basic/Version.cpp cfe-3.8.1.src/lib/Basic/Version.cpp
--- cfe-3.8.1.src.orig/lib/Basic/Version.cpp	2014-12-11 00:49:03.000000000 +0100
+++ cfe-3.8.1.src/lib/Basic/Version.cpp	2016-05-24 21:36:54.000000000 +0200
@@ -36,7 +36,7 @@ std::string getClangRepositoryPath() {
 
   // If the SVN_REPOSITORY is empty, try to use the SVN keyword. This helps us
   // pick up a tag in an SVN export, for example.
-  StringRef SVNRepository("$URL: https://llvm.org/svn/llvm-project/cfe/tags/RELEASE_381/final/lib/Basic/Version.cpp $");
+  StringRef SVNRepository("$URL$");
   if (URL.empty()) {
     URL = SVNRepository.slice(SVNRepository.find(':'),
                               SVNRepository.find("/lib/Basic"));
diff -uprN cfe-3.8.1.src.orig/tools/scan-build/man/scan-build.1 cfe-3.8.1.src/tools/scan-build/man/scan-build.1
--- cfe-3.8.1.src.orig/tools/scan-build/man/scan-build.1	2015-11-13 21:34:15.000000000 +0100
+++ cfe-3.8.1.src/tools/scan-build/man/scan-build.1	2016-05-24 21:36:54.000000000 +0200
@@ -1,6 +1,6 @@
 .\" This file is distributed under the University of Illinois Open Source
 .\" License. See LICENSE.TXT for details.
-.\" $Id: scan-build.1 253074 2015-11-13 20:34:15Z jroelofs $
+.\" $Id$
 .Dd May 25, 2012
 .Dt SCAN-BUILD 1
 .Os "clang" "3.5"
diff -uprN cfe-3.8.1.src.orig/www/cxx_dr_status.html cfe-3.8.1.src/www/cxx_dr_status.html
--- cfe-3.8.1.src.orig/www/cxx_dr_status.html	2016-01-14 00:48:11.000000000 +0100
+++ cfe-3.8.1.src/www/cxx_dr_status.html	2016-05-24 21:36:54.000000000 +0200
@@ -28,7 +28,7 @@
 <!--*************************************************************************-->
 <h1>C++ Defect Report Support in Clang</h1>
 <!--*************************************************************************-->
-<p>Last updated: $Date: 2016-01-13 15:48:11 -0800 (Wed, 13 Jan 2016) $</p>
+<p>Last updated: $Date$</p>
 
 <h2 id="cxxdr">C++ defect report implementation status</h2>
 
diff -uprN cfe-3.8.1.src.orig/www/cxx_status.html cfe-3.8.1.src/www/cxx_status.html
--- cfe-3.8.1.src.orig/www/cxx_status.html	2015-11-26 03:23:21.000000000 +0100
+++ cfe-3.8.1.src/www/cxx_status.html	2016-05-24 21:36:54.000000000 +0200
@@ -25,7 +25,7 @@
 <!--*************************************************************************-->
 <h1>C++ Support in Clang</h1>
 <!--*************************************************************************-->
-<p>Last updated: $Date: 2015-11-25 18:23:21 -0800 (Wed, 25 Nov 2015) $</p>
+<p>Last updated: $Date$</p>
 
 <p>Clang fully implements all published ISO C++ standards including <a
 href="#cxx11">C++11</a>, as well as the upcoming <a
-------------- next part --------------
diff -uprN compiler-rt-3.8.1.src.orig/cmake/config-ix.cmake compiler-rt-3.8.1.src/cmake/config-ix.cmake
--- compiler-rt-3.8.1.src.orig/cmake/config-ix.cmake	2016-05-25 07:49:40.000000000 +0200
+++ compiler-rt-3.8.1.src/cmake/config-ix.cmake	2016-02-19 20:43:25.000000000 +0100
@@ -293,8 +293,8 @@ set(ALL_PROFILE_SUPPORTED_ARCH ${X86} ${
 set(ALL_TSAN_SUPPORTED_ARCH ${X86_64} ${MIPS64} ${ARM64} ${PPC64})
 set(ALL_UBSAN_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64}
     ${MIPS32} ${MIPS64} ${PPC64})
-set(ALL_SAFESTACK_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM64} ${MIPS32} ${MIPS64})
-set(ALL_CFI_SUPPORTED_ARCH ${X86} ${X86_64} ${MIPS64})
+set(ALL_SAFESTACK_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM64})
+set(ALL_CFI_SUPPORTED_ARCH ${X86} ${X86_64})
 
 if(APPLE)
   include(CompilerRTDarwinUtils)
diff -uprN compiler-rt-3.8.1.src.orig/lib/asan/asan_stack.h compiler-rt-3.8.1.src/lib/asan/asan_stack.h
--- compiler-rt-3.8.1.src.orig/lib/asan/asan_stack.h	2016-05-25 07:57:29.000000000 +0200
+++ compiler-rt-3.8.1.src/lib/asan/asan_stack.h	2016-02-19 20:43:25.000000000 +0100
@@ -48,10 +48,7 @@ void GetStackTraceWithPcBpAndContext(Buf
       uptr stack_top = t->stack_top();
       uptr stack_bottom = t->stack_bottom();
       ScopedUnwinding unwind_scope(t);
-      if (!SANITIZER_MIPS || IsValidFrame(bp, stack_top, stack_bottom)) {
-        stack->Unwind(max_depth, pc, bp, context, stack_top, stack_bottom,
-                      fast);
-      }
+      stack->Unwind(max_depth, pc, bp, context, stack_top, stack_bottom, fast);
     } else if (!t && !fast) {
       /* If GetCurrentThread() has failed, try to do slow unwind anyways. */
       stack->Unwind(max_depth, pc, bp, context, 0, 0, false);
diff -uprN compiler-rt-3.8.1.src.orig/lib/lsan/lsan.h compiler-rt-3.8.1.src/lib/lsan/lsan.h
--- compiler-rt-3.8.1.src.orig/lib/lsan/lsan.h	2016-05-25 07:57:29.000000000 +0200
+++ compiler-rt-3.8.1.src/lib/lsan/lsan.h	2016-02-19 20:43:25.000000000 +0100
@@ -24,11 +24,8 @@
       stack_top = t->stack_end();                                              \
       stack_bottom = t->stack_begin();                                         \
     }                                                                          \
-    if (!SANITIZER_MIPS ||                                                     \
-        IsValidFrame(GET_CURRENT_FRAME(), stack_top, stack_bottom)) {          \
-      stack.Unwind(max_size, StackTrace::GetCurrentPc(), GET_CURRENT_FRAME(),  \
-                   /* context */ 0, stack_top, stack_bottom, fast);            \
-    }                                                                          \
+    stack.Unwind(max_size, StackTrace::GetCurrentPc(), GET_CURRENT_FRAME(),    \
+                 /* context */ 0, stack_top, stack_bottom, fast);              \
   }
 
 #define GET_STACK_TRACE_FATAL \
diff -uprN compiler-rt-3.8.1.src.orig/lib/msan/msan.cc compiler-rt-3.8.1.src/lib/msan/msan.cc
--- compiler-rt-3.8.1.src.orig/lib/msan/msan.cc	2016-05-23 09:04:33.000000000 +0200
+++ compiler-rt-3.8.1.src/lib/msan/msan.cc	2016-02-19 20:43:25.000000000 +0100
@@ -462,8 +462,13 @@ void __msan_dump_shadow(const void *x, u
   }
 
   unsigned char *s = (unsigned char*)MEM_TO_SHADOW(x);
-  for (uptr i = 0; i < size; i++)
+  for (uptr i = 0; i < size; i++) {
+#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+    Printf("%x%x ", s[i] & 0xf, s[i] >> 4);
+#else
     Printf("%x%x ", s[i] >> 4, s[i] & 0xf);
+#endif
+  }
   Printf("\n");
 }
 
@@ -575,13 +580,13 @@ u32 __msan_get_umr_origin() {
 }
 
 u16 __sanitizer_unaligned_load16(const uu16 *p) {
-  *(uu16 *)&__msan_retval_tls[0] = *(uu16 *)MEM_TO_SHADOW((uptr)p);
+  __msan_retval_tls[0] = *(uu16 *)MEM_TO_SHADOW((uptr)p);
   if (__msan_get_track_origins())
     __msan_retval_origin_tls = GetOriginIfPoisoned((uptr)p, sizeof(*p));
   return *p;
 }
 u32 __sanitizer_unaligned_load32(const uu32 *p) {
-  *(uu32 *)&__msan_retval_tls[0] = *(uu32 *)MEM_TO_SHADOW((uptr)p);
+  __msan_retval_tls[0] = *(uu32 *)MEM_TO_SHADOW((uptr)p);
   if (__msan_get_track_origins())
     __msan_retval_origin_tls = GetOriginIfPoisoned((uptr)p, sizeof(*p));
   return *p;
@@ -593,7 +598,7 @@ u64 __sanitizer_unaligned_load64(const u
   return *p;
 }
 void __sanitizer_unaligned_store16(uu16 *p, u16 x) {
-  u16 s = *(uu16 *)&__msan_param_tls[1];
+  u16 s = __msan_param_tls[1];
   *(uu16 *)MEM_TO_SHADOW((uptr)p) = s;
   if (s && __msan_get_track_origins())
     if (uu32 o = __msan_param_origin_tls[2])
@@ -601,7 +606,7 @@ void __sanitizer_unaligned_store16(uu16
   *p = x;
 }
 void __sanitizer_unaligned_store32(uu32 *p, u32 x) {
-  u32 s = *(uu32 *)&__msan_param_tls[1];
+  u32 s = __msan_param_tls[1];
   *(uu32 *)MEM_TO_SHADOW((uptr)p) = s;
   if (s && __msan_get_track_origins())
     if (uu32 o = __msan_param_origin_tls[2])
diff -uprN compiler-rt-3.8.1.src.orig/lib/msan/msan_interceptors.cc compiler-rt-3.8.1.src/lib/msan/msan_interceptors.cc
--- compiler-rt-3.8.1.src.orig/lib/msan/msan_interceptors.cc	2016-05-24 13:11:57.000000000 +0200
+++ compiler-rt-3.8.1.src/lib/msan/msan_interceptors.cc	2016-02-19 20:43:25.000000000 +0100
@@ -1628,11 +1628,7 @@ void InitializeInterceptors() {
   INTERCEPT_FUNCTION(getrusage);
   INTERCEPT_FUNCTION(sigaction);
   INTERCEPT_FUNCTION(signal);
-#if defined(__mips__)
-  INTERCEPT_FUNCTION_VER(pthread_create, "GLIBC_2.2");
-#else
   INTERCEPT_FUNCTION(pthread_create);
-#endif
   INTERCEPT_FUNCTION(pthread_key_create);
   INTERCEPT_FUNCTION(pthread_join);
   INTERCEPT_FUNCTION(tzset);
diff -uprN compiler-rt-3.8.1.src.orig/lib/msan/msan_report.cc compiler-rt-3.8.1.src/lib/msan/msan_report.cc
--- compiler-rt-3.8.1.src.orig/lib/msan/msan_report.cc	2016-05-23 09:04:33.000000000 +0200
+++ compiler-rt-3.8.1.src/lib/msan/msan_report.cc	2016-02-19 20:43:25.000000000 +0100
@@ -221,7 +221,11 @@ void DescribeMemoryRange(const void *x,
     } else {
       unsigned char v = *(unsigned char *)s;
       if (v) last_quad_poisoned = true;
+#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
+      Printf("%x%x", v & 0xf, v >> 4);
+#else
       Printf("%x%x", v >> 4, v & 0xf);
+#endif
     }
     // Group end.
     if (pos % 4 == 3 && with_origins) {
diff -uprN compiler-rt-3.8.1.src.orig/lib/msan/tests/msan_test.cc compiler-rt-3.8.1.src/lib/msan/tests/msan_test.cc
--- compiler-rt-3.8.1.src.orig/lib/msan/tests/msan_test.cc	2016-05-23 09:03:45.000000000 +0200
+++ compiler-rt-3.8.1.src/lib/msan/tests/msan_test.cc	2016-02-19 20:43:25.000000000 +0100
@@ -1117,8 +1117,8 @@ TEST(MemorySanitizer, gethostbyname_r_er
   struct hostent he;
   struct hostent *result;
   int err;
-  gethostbyname_r("localhost", &he, buf, sizeof(buf), &result, &err);
-  ASSERT_EQ(ERANGE, errno);
+  int res = gethostbyname_r("localhost", &he, buf, sizeof(buf), &result, &err);
+  ASSERT_EQ(ERANGE, res);
   EXPECT_NOT_POISONED(err);
 }
 
@@ -1214,21 +1214,17 @@ TEST(MemorySanitizer, shmctl) {
 }
 
 TEST(MemorySanitizer, shmat) {
-  const int kShmSize = 4096;
-  void *mapping_start = mmap(NULL, kShmSize + SHMLBA, PROT_READ | PROT_WRITE,
-                             MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
-  ASSERT_NE(MAP_FAILED, mapping_start);
-
-  void *p = (void *)(((unsigned long)mapping_start + SHMLBA - 1) / SHMLBA * SHMLBA);
-  // p is now SHMLBA-aligned;
+  void *p = mmap(NULL, 4096, PROT_READ | PROT_WRITE,
+                 MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
+  ASSERT_NE(MAP_FAILED, p);
 
   ((char *)p)[10] = *GetPoisoned<U1>();
-  ((char *)p)[kShmSize - 1] = *GetPoisoned<U1>();
+  ((char *)p)[4095] = *GetPoisoned<U1>();
 
-  int res = munmap(mapping_start, kShmSize + SHMLBA);
+  int res = munmap(p, 4096);
   ASSERT_EQ(0, res);
 
-  int id = shmget(IPC_PRIVATE, kShmSize, 0644 | IPC_CREAT);
+  int id = shmget(IPC_PRIVATE, 4096, 0644 | IPC_CREAT);
   ASSERT_GT(id, -1);
 
   void *q = shmat(id, p, 0);
@@ -1236,7 +1232,7 @@ TEST(MemorySanitizer, shmat) {
 
   EXPECT_NOT_POISONED(((char *)q)[0]);
   EXPECT_NOT_POISONED(((char *)q)[10]);
-  EXPECT_NOT_POISONED(((char *)q)[kShmSize - 1]);
+  EXPECT_NOT_POISONED(((char *)q)[4095]);
 
   res = shmdt(q);
   ASSERT_EQ(0, res);
diff -uprN compiler-rt-3.8.1.src.orig/lib/sanitizer_common/sanitizer_linux.cc compiler-rt-3.8.1.src/lib/sanitizer_common/sanitizer_linux.cc
--- compiler-rt-3.8.1.src.orig/lib/sanitizer_common/sanitizer_linux.cc	2016-06-01 10:17:03.000000000 +0200
+++ compiler-rt-3.8.1.src/lib/sanitizer_common/sanitizer_linux.cc	2016-02-19 20:43:25.000000000 +0100
@@ -241,15 +241,7 @@ uptr internal_lstat(const char *path, vo
   return internal_syscall(SYSCALL(newfstatat), AT_FDCWD, (uptr)path,
                          (uptr)buf, AT_SYMLINK_NOFOLLOW);
 #elif SANITIZER_LINUX_USES_64BIT_SYSCALLS
-# if SANITIZER_MIPS64
-  // For mips64, lstat syscall fills buffer in the format of kernel_stat
-  struct kernel_stat kbuf;
-  int res = internal_syscall(SYSCALL(lstat), path, &kbuf);
-  kernel_stat_to_stat(&kbuf, (struct stat *)buf);
-  return res;
-# else
   return internal_syscall(SYSCALL(lstat), (uptr)path, (uptr)buf);
-# endif
 #else
   struct stat64 buf64;
   int res = internal_syscall(SYSCALL(lstat64), path, &buf64);
@@ -260,15 +252,7 @@ uptr internal_lstat(const char *path, vo
 
 uptr internal_fstat(fd_t fd, void *buf) {
 #if SANITIZER_FREEBSD || SANITIZER_LINUX_USES_64BIT_SYSCALLS
-# if SANITIZER_MIPS64
-  // For mips64, fstat syscall fills buffer in the format of kernel_stat
-  struct kernel_stat kbuf;
-  int res = internal_syscall(SYSCALL(fstat), fd, &kbuf);
-  kernel_stat_to_stat(&kbuf, (struct stat *)buf);
-  return res;
-# else
   return internal_syscall(SYSCALL(fstat), fd, (uptr)buf);
-# endif
 #else
   struct stat64 buf64;
   int res = internal_syscall(SYSCALL(fstat64), fd, &buf64);
@@ -602,9 +586,7 @@ int internal_sigaction_norestorer(int si
     // rt_sigaction, so we need to do the same (we'll need to reimplement the
     // restorers; for x86_64 the restorer address can be obtained from
     // oldact->sa_restorer upon a call to sigaction(xxx, NULL, oldact).
-#if !SANITIZER_ANDROID || !SANITIZER_MIPS32
     k_act.sa_restorer = u_act->sa_restorer;
-#endif
   }
 
   uptr result = internal_syscall(SYSCALL(rt_sigaction), (uptr)signum,
@@ -618,9 +600,7 @@ int internal_sigaction_norestorer(int si
     internal_memcpy(&u_oldact->sa_mask, &k_oldact.sa_mask,
                     sizeof(__sanitizer_kernel_sigset_t));
     u_oldact->sa_flags = k_oldact.sa_flags;
-#if !SANITIZER_ANDROID || !SANITIZER_MIPS32
     u_oldact->sa_restorer = k_oldact.sa_restorer;
-#endif
   }
   return result;
 }
diff -uprN compiler-rt-3.8.1.src.orig/lib/sanitizer_common/sanitizer_linux_libcdep.cc compiler-rt-3.8.1.src/lib/sanitizer_common/sanitizer_linux_libcdep.cc
--- compiler-rt-3.8.1.src.orig/lib/sanitizer_common/sanitizer_linux_libcdep.cc	2016-06-01 10:17:03.000000000 +0200
+++ compiler-rt-3.8.1.src/lib/sanitizer_common/sanitizer_linux_libcdep.cc	2016-02-19 20:43:25.000000000 +0100
@@ -158,6 +158,7 @@ bool SanitizerGetThreadName(char *name,
 
 #if !SANITIZER_FREEBSD && !SANITIZER_ANDROID && !SANITIZER_GO
 static uptr g_tls_size;
+#endif
 
 #ifdef __i386__
 # define DL_INTERNAL_FUNCTION __attribute__((regparm(3), stdcall))
@@ -165,7 +166,26 @@ static uptr g_tls_size;
 # define DL_INTERNAL_FUNCTION
 #endif
 
+#if defined(__mips__) || defined(__powerpc64__)
+// TlsPreTcbSize includes size of struct pthread_descr and size of tcb
+// head structure. It lies before the static tls blocks.
+static uptr TlsPreTcbSize() {
+# if defined(__mips__)
+  const uptr kTcbHead = 16; // sizeof (tcbhead_t)
+# elif defined(__powerpc64__)
+  const uptr kTcbHead = 88; // sizeof (tcbhead_t)
+# endif
+  const uptr kTlsAlign = 16;
+  const uptr kTlsPreTcbSize =
+    (ThreadDescriptorSize() + kTcbHead + kTlsAlign - 1) & ~(kTlsAlign - 1);
+  InitTlsSize();
+  g_tls_size = (g_tls_size + kTlsPreTcbSize + kTlsAlign -1) & ~(kTlsAlign - 1);
+  return kTlsPreTcbSize;
+}
+#endif
+
 void InitTlsSize() {
+#if !SANITIZER_FREEBSD && !SANITIZER_ANDROID && !SANITIZER_GO
 // all current supported platforms have 16 bytes stack alignment
   const size_t kStackAlign = 16;
   typedef void (*get_tls_func)(size_t*, size_t*) DL_INTERNAL_FUNCTION;
@@ -181,10 +201,8 @@ void InitTlsSize() {
   if (tls_align < kStackAlign)
     tls_align = kStackAlign;
   g_tls_size = RoundUpTo(tls_size, tls_align);
-}
-#else
-void InitTlsSize() { }
 #endif  // !SANITIZER_FREEBSD && !SANITIZER_ANDROID && !SANITIZER_GO
+}
 
 #if (defined(__x86_64__) || defined(__i386__) || defined(__mips__) \
     || defined(__aarch64__) || defined(__powerpc64__)) \
@@ -260,24 +278,6 @@ uptr ThreadSelfOffset() {
   return kThreadSelfOffset;
 }
 
-#if defined(__mips__) || defined(__powerpc64__)
-// TlsPreTcbSize includes size of struct pthread_descr and size of tcb
-// head structure. It lies before the static tls blocks.
-static uptr TlsPreTcbSize() {
-# if defined(__mips__)
-  const uptr kTcbHead = 16; // sizeof (tcbhead_t)
-# elif defined(__powerpc64__)
-  const uptr kTcbHead = 88; // sizeof (tcbhead_t)
-# endif
-  const uptr kTlsAlign = 16;
-  const uptr kTlsPreTcbSize =
-    (ThreadDescriptorSize() + kTcbHead + kTlsAlign - 1) & ~(kTlsAlign - 1);
-  InitTlsSize();
-  g_tls_size = (g_tls_size + kTlsPreTcbSize + kTlsAlign -1) & ~(kTlsAlign - 1);
-  return kTlsPreTcbSize;
-}
-#endif
-
 uptr ThreadSelf() {
   uptr descr_addr;
 # if defined(__i386__)
diff -uprN compiler-rt-3.8.1.src.orig/lib/sanitizer_common/sanitizer_platform.h compiler-rt-3.8.1.src/lib/sanitizer_common/sanitizer_platform.h
--- compiler-rt-3.8.1.src.orig/lib/sanitizer_common/sanitizer_platform.h	2016-05-22 16:17:10.000000000 +0200
+++ compiler-rt-3.8.1.src/lib/sanitizer_common/sanitizer_platform.h	2016-02-19 20:43:25.000000000 +0100
@@ -81,21 +81,6 @@
 # define SANITIZER_X32 0
 #endif
 
-#if defined(__mips__)
-# define SANITIZER_MIPS 1
-# if defined(__mips64)
-#  define SANITIZER_MIPS32 0
-#  define SANITIZER_MIPS64 1
-# else
-#  define SANITIZER_MIPS32 1
-#  define SANITIZER_MIPS64 0
-# endif
-#else
-# define SANITIZER_MIPS 0
-# define SANITIZER_MIPS32 0
-# define SANITIZER_MIPS64 0
-#endif
-
 // By default we allow to use SizeClassAllocator64 on 64-bit platform.
 // But in some cases (e.g. AArch64's 39-bit address space) SizeClassAllocator64
 // does not work well and we need to fallback to SizeClassAllocator32.
diff -uprN compiler-rt-3.8.1.src.orig/lib/sanitizer_common/sanitizer_platform_limits_posix.cc compiler-rt-3.8.1.src/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
--- compiler-rt-3.8.1.src.orig/lib/sanitizer_common/sanitizer_platform_limits_posix.cc	2016-06-01 10:17:03.000000000 +0200
+++ compiler-rt-3.8.1.src/lib/sanitizer_common/sanitizer_platform_limits_posix.cc	2016-02-19 20:43:25.000000000 +0100
@@ -1056,7 +1056,7 @@ COMPILER_CHECK(sizeof(__sanitizer_sigact
 // preprocessor macros.
 CHECK_STRUCT_SIZE_AND_OFFSET(sigaction, sa_mask);
 CHECK_STRUCT_SIZE_AND_OFFSET(sigaction, sa_flags);
-#if SANITIZER_LINUX && (!SANITIZER_ANDROID || !SANITIZER_MIPS32)
+#if SANITIZER_LINUX
 CHECK_STRUCT_SIZE_AND_OFFSET(sigaction, sa_restorer);
 #endif
 
diff -uprN compiler-rt-3.8.1.src.orig/lib/sanitizer_common/sanitizer_platform_limits_posix.h compiler-rt-3.8.1.src/lib/sanitizer_common/sanitizer_platform_limits_posix.h
--- compiler-rt-3.8.1.src.orig/lib/sanitizer_common/sanitizer_platform_limits_posix.h	2016-06-01 10:17:03.000000000 +0200
+++ compiler-rt-3.8.1.src/lib/sanitizer_common/sanitizer_platform_limits_posix.h	2016-02-19 20:43:25.000000000 +0100
@@ -77,9 +77,11 @@ namespace __sanitizer {
   const unsigned struct_kernel_stat_sz = 144;
   const unsigned struct_kernel_stat64_sz = 104;
 #elif defined(__mips__)
-  const unsigned struct_kernel_stat_sz =
-                 SANITIZER_ANDROID ? FIRST_32_SECOND_64(104, 128) :
-                                     FIRST_32_SECOND_64(144, 216);
+  #if SANITIZER_WORDSIZE == 64
+  const unsigned struct_kernel_stat_sz = 216;
+  #else
+  const unsigned struct_kernel_stat_sz = 144;
+  #endif
   const unsigned struct_kernel_stat64_sz = 104;
 #endif
   struct __sanitizer_perf_event_attr {
@@ -514,11 +516,7 @@ namespace __sanitizer {
   };
 
 #if SANITIZER_ANDROID
-# if SANITIZER_MIPS
-  typedef unsigned long __sanitizer_sigset_t[16/sizeof(unsigned long)];
-# else
   typedef unsigned long __sanitizer_sigset_t;
-# endif
 #elif SANITIZER_MAC
   typedef unsigned __sanitizer_sigset_t;
 #elif SANITIZER_LINUX
@@ -544,15 +542,6 @@ namespace __sanitizer {
     __sanitizer_sigset_t sa_mask;
     void (*sa_restorer)();
   };
-#elif SANITIZER_ANDROID && SANITIZER_MIPS32  // check this before WORDSIZE == 32
-  struct __sanitizer_sigaction {
-    unsigned sa_flags;
-    union {
-      void (*sigaction)(int sig, void *siginfo, void *uctx);
-      void (*handler)(int sig);
-    };
-    __sanitizer_sigset_t sa_mask;
-  };
 #elif SANITIZER_ANDROID && (SANITIZER_WORDSIZE == 32)
   struct __sanitizer_sigaction {
     union {
diff -uprN compiler-rt-3.8.1.src.orig/lib/sanitizer_common/sanitizer_stacktrace.cc compiler-rt-3.8.1.src/lib/sanitizer_common/sanitizer_stacktrace.cc
--- compiler-rt-3.8.1.src.orig/lib/sanitizer_common/sanitizer_stacktrace.cc	2016-05-25 07:57:29.000000000 +0200
+++ compiler-rt-3.8.1.src/lib/sanitizer_common/sanitizer_stacktrace.cc	2016-02-19 20:43:25.000000000 +0100
@@ -40,6 +40,11 @@ void BufferedStackTrace::Init(const uptr
   top_frame_bp = 0;
 }
 
+// Check if given pointer points into allocated stack area.
+static inline bool IsValidFrame(uptr frame, uptr stack_top, uptr stack_bottom) {
+  return frame > stack_bottom && frame < stack_top - 2 * sizeof (uhwptr);
+}
+
 // In GCC on ARM bp points to saved lr, not fp, so we should check the next
 // cell in stack to be a saved frame pointer. GetCanonicFrame returns the
 // pointer to saved frame pointer in any case.
diff -uprN compiler-rt-3.8.1.src.orig/lib/sanitizer_common/sanitizer_stacktrace.h compiler-rt-3.8.1.src/lib/sanitizer_common/sanitizer_stacktrace.h
--- compiler-rt-3.8.1.src.orig/lib/sanitizer_common/sanitizer_stacktrace.h	2016-05-25 07:57:29.000000000 +0200
+++ compiler-rt-3.8.1.src/lib/sanitizer_common/sanitizer_stacktrace.h	2016-02-19 20:43:25.000000000 +0100
@@ -110,11 +110,6 @@ struct BufferedStackTrace : public Stack
   void operator=(const BufferedStackTrace &);
 };
 
-// Check if given pointer points into allocated stack area.
-static inline bool IsValidFrame(uptr frame, uptr stack_top, uptr stack_bottom) {
-  return frame > stack_bottom && frame < stack_top - 2 * sizeof (uhwptr);
-}
-
 }  // namespace __sanitizer
 
 // Use this macro if you want to print stack trace with the caller
diff -uprN compiler-rt-3.8.1.src.orig/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc compiler-rt-3.8.1.src/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc
--- compiler-rt-3.8.1.src.orig/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc	2016-06-01 10:17:03.000000000 +0200
+++ compiler-rt-3.8.1.src/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc	2016-02-19 20:43:25.000000000 +0100
@@ -38,9 +38,6 @@
 #  include <asm/ptrace.h>
 # endif
 # include <sys/user.h>  // for user_regs_struct
-# if SANITIZER_ANDROID && SANITIZER_MIPS
-#   include <asm/reg.h>  // for mips SP register in sys/user.h
-# endif
 #endif
 #include <sys/wait.h> // for signal-related stuff
 
@@ -470,11 +467,7 @@ typedef pt_regs regs_struct;
 
 #elif defined(__mips__)
 typedef struct user regs_struct;
-# if SANITIZER_ANDROID
-#  define REG_SP regs[EF_R29]
-# else
-#  define REG_SP regs[EF_REG29]
-# endif
+#define REG_SP regs[EF_REG29]
 
 #elif defined(__aarch64__)
 typedef struct user_pt_regs regs_struct;
diff -uprN compiler-rt-3.8.1.src.orig/lib/sanitizer_common/sanitizer_tls_get_addr.cc compiler-rt-3.8.1.src/lib/sanitizer_common/sanitizer_tls_get_addr.cc
--- compiler-rt-3.8.1.src.orig/lib/sanitizer_common/sanitizer_tls_get_addr.cc	2016-05-23 10:21:21.000000000 +0200
+++ compiler-rt-3.8.1.src/lib/sanitizer_common/sanitizer_tls_get_addr.cc	2016-02-19 20:43:25.000000000 +0100
@@ -78,7 +78,7 @@ void DTLS_Destroy() {
   DTLS_Deallocate(dtls.dtv, s);
 }
 
-#if defined(__powerpc64__) || defined(__mips__)
+#if defined(__powerpc64__)
 // This is glibc's TLS_DTV_OFFSET:
 // "Dynamic thread vector pointers point 0x8000 past the start of each
 //  TLS block."
diff -uprN compiler-rt-3.8.1.src.orig/lib/sanitizer_common/tests/sanitizer_ioctl_test.cc compiler-rt-3.8.1.src/lib/sanitizer_common/tests/sanitizer_ioctl_test.cc
--- compiler-rt-3.8.1.src.orig/lib/sanitizer_common/tests/sanitizer_ioctl_test.cc	2016-05-22 16:18:22.000000000 +0200
+++ compiler-rt-3.8.1.src/lib/sanitizer_common/tests/sanitizer_ioctl_test.cc	2016-02-19 20:43:25.000000000 +0100
@@ -78,8 +78,7 @@ TEST(SanitizerIoctl, Fixup) {
 // Test decoding KVM ioctl numbers.
 TEST(SanitizerIoctl, KVM_GET_MP_STATE) {
   ioctl_desc desc;
-  unsigned int desc_value = SANITIZER_MIPS ? 0x4004ae98U : 0x8004ae98U;
-  bool res = ioctl_decode(desc_value, &desc);
+  bool res = ioctl_decode(0x8004ae98U, &desc);
   EXPECT_TRUE(res);
   EXPECT_EQ(ioctl_desc::WRITE, desc.type);
   EXPECT_EQ(4U, desc.size);
@@ -87,8 +86,7 @@ TEST(SanitizerIoctl, KVM_GET_MP_STATE) {
 
 TEST(SanitizerIoctl, KVM_GET_LAPIC) {
   ioctl_desc desc;
-  unsigned int desc_value = SANITIZER_MIPS ? 0x4400ae8eU : 0x8400ae8eU;
-  bool res = ioctl_decode(desc_value, &desc);
+  bool res = ioctl_decode(0x8400ae8eU, &desc);
   EXPECT_TRUE(res);
   EXPECT_EQ(ioctl_desc::WRITE, desc.type);
   EXPECT_EQ(1024U, desc.size);
diff -uprN compiler-rt-3.8.1.src.orig/test/dfsan/custom.cc compiler-rt-3.8.1.src/test/dfsan/custom.cc
--- compiler-rt-3.8.1.src.orig/test/dfsan/custom.cc	2016-05-23 10:24:51.000000000 +0200
+++ compiler-rt-3.8.1.src/test/dfsan/custom.cc	2016-02-19 20:43:25.000000000 +0100
@@ -536,7 +536,7 @@ void test_inet_pton() {
   int ret4 = inet_pton(AF_INET, addr4, &in4);
   assert(ret4 == 1);
   ASSERT_READ_LABEL(&in4, sizeof(in4), i_label);
-  assert(in4.s_addr == htonl(0x7f000001));
+  assert(in4.s_addr == 0x0100007f);
 
   char addr6[] = "::1";
   dfsan_set_label(j_label, addr6 + 3, 1);
diff -uprN compiler-rt-3.8.1.src.orig/test/lsan/TestCases/use_registers.cc compiler-rt-3.8.1.src/test/lsan/TestCases/use_registers.cc
--- compiler-rt-3.8.1.src.orig/test/lsan/TestCases/use_registers.cc	2016-05-22 16:14:59.000000000 +0200
+++ compiler-rt-3.8.1.src/test/lsan/TestCases/use_registers.cc	2016-02-19 20:43:25.000000000 +0100
@@ -27,11 +27,6 @@ void *registers_thread_func(void *arg) {
       :
       : "r" (p)
       );
-#elif defined(__mips__)
-  asm ( "move $16, %0"
-      :
-      : "r" (p)
-      );
 #else
 #error "Test is not supported on this architecture."
 #endif
diff -uprN compiler-rt-3.8.1.src.orig/test/msan/dlerror.cc compiler-rt-3.8.1.src/test/msan/dlerror.cc
--- compiler-rt-3.8.1.src.orig/test/msan/dlerror.cc	2016-05-23 09:00:54.000000000 +0200
+++ compiler-rt-3.8.1.src/test/msan/dlerror.cc	2016-02-19 20:43:25.000000000 +0100
@@ -1,9 +1,8 @@
 // RUN: %clangxx_msan -O0 %s -o %t && %run %t
 //
-// AArch64, MIPS64 shows fails with uninitialized bytes in __interceptor_strcmp from
+// AArch64 shows fails with uninitialized bytes in __interceptor_strcmp from
 // dlfcn/dlerror.c:107 (glibc).
 // XFAIL: aarch64
-// XFAIL: mips64
 
 #include <assert.h>
 #include <dlfcn.h>
diff -uprN compiler-rt-3.8.1.src.orig/test/msan/dtls_test.c compiler-rt-3.8.1.src/test/msan/dtls_test.c
--- compiler-rt-3.8.1.src.orig/test/msan/dtls_test.c	2016-05-23 10:19:53.000000000 +0200
+++ compiler-rt-3.8.1.src/test/msan/dtls_test.c	2016-02-19 20:43:25.000000000 +0100
@@ -4,7 +4,7 @@
 
    Regression test for a bug in msan/glibc integration,
    see https://sourceware.org/bugzilla/show_bug.cgi?id=16291
-   and https://github.com/google/sanitizers/issues/547
+   and https://code.google.com/p/memory-sanitizer/issues/detail?id=44
 */
 
 #ifndef BUILD_SO
diff -uprN compiler-rt-3.8.1.src.orig/test/msan/Linux/process_vm_readv.cc compiler-rt-3.8.1.src/test/msan/Linux/process_vm_readv.cc
--- compiler-rt-3.8.1.src.orig/test/msan/Linux/process_vm_readv.cc	2016-05-23 09:02:26.000000000 +0200
+++ compiler-rt-3.8.1.src/test/msan/Linux/process_vm_readv.cc	2016-02-19 20:43:25.000000000 +0100
@@ -9,31 +9,26 @@
 #include <sys/types.h>
 #include <sys/uio.h>
 #include <unistd.h>
-#include <errno.h>
 
 typedef ssize_t (*process_vm_readwritev_fn)(pid_t, const iovec *, unsigned long,
                                             const iovec *, unsigned long,
                                             unsigned long);
 
+int main(void) {
+  // This requires glibc 2.15.
+  process_vm_readwritev_fn libc_process_vm_readv =
+      (process_vm_readwritev_fn)dlsym(RTLD_NEXT, "process_vm_readv");
+  if (!libc_process_vm_readv) {
 // Exit with success, emulating the expected output.
-int exit_dummy()
-{
 #ifdef POSITIVE
-    printf("process_vm_readv not found or not implemented!\n");
+    printf("process_vm_readv not found!\n");
     printf(
         "WARNING: MemorySanitizer: use-of-uninitialized-value (not really)\n");
     return 1;
 #else
     return 0;
 #endif
-}
-
-int main(void) {
-  // This requires glibc 2.15.
-  process_vm_readwritev_fn libc_process_vm_readv =
-      (process_vm_readwritev_fn)dlsym(RTLD_NEXT, "process_vm_readv");
-  if (!libc_process_vm_readv)
-    return exit_dummy();
+  }
 
   process_vm_readwritev_fn process_vm_readv =
       (process_vm_readwritev_fn)dlsym(RTLD_DEFAULT, "process_vm_readv");
@@ -49,9 +44,6 @@ int main(void) {
 
   __msan_poison(&b, sizeof(b));
   ssize_t res = process_vm_readv(getpid(), iov_b, 2, iov_a, 2, 0);
-  if (errno == ENOSYS) // Function not implemented 
-    return exit_dummy();
-
   assert(res == 30);
   __msan_check_mem_is_initialized(b + 10, 10);
   __msan_check_mem_is_initialized(b + 30, 20);
diff -uprN compiler-rt-3.8.1.src.orig/test/msan/msan_print_shadow3.cc compiler-rt-3.8.1.src/test/msan/msan_print_shadow3.cc
--- compiler-rt-3.8.1.src.orig/test/msan/msan_print_shadow3.cc	2016-05-23 09:04:33.000000000 +0200
+++ compiler-rt-3.8.1.src/test/msan/msan_print_shadow3.cc	2016-02-19 20:43:25.000000000 +0100
@@ -6,7 +6,7 @@
 
 int main(void) {
   unsigned long long x = 0; // For 8-byte alignment.
-  char x_s[4] = {0x87, 0x65, 0x43, 0x21};
+  uint32_t x_s = 0x12345678U;
   __msan_partial_poison(&x, &x_s, sizeof(x_s));
   __msan_print_shadow(&x, sizeof(x_s));
   return 0;
diff -uprN compiler-rt-3.8.1.src.orig/test/msan/param_tls_limit.cc compiler-rt-3.8.1.src/test/msan/param_tls_limit.cc
--- compiler-rt-3.8.1.src.orig/test/msan/param_tls_limit.cc	2016-05-23 10:19:11.000000000 +0200
+++ compiler-rt-3.8.1.src/test/msan/param_tls_limit.cc	2016-02-19 20:43:25.000000000 +0100
@@ -20,17 +20,6 @@
 // In case of no overflow, it is still poisoned.
 #define NO_OVERFLOW(x) assert(__msan_test_shadow(&x, sizeof(x)) == 0)
 
-#if defined(__x86_64__)
-// In x86_64, if argument is partially outside tls, it is considered completly
-// unpoisoned
-#define PARTIAL_OVERFLOW(x) OVERFLOW(x)
-#else
-// In other archs, bigger arguments are splitted in multiple IR arguments, so
-// they are considered poisoned till tls limit. Checking last byte of such arg:
-#define PARTIAL_OVERFLOW(x) assert(__msan_test_shadow((char *)(&(x) + 1) - 1, 1) == -1)
-#endif
-
-
 template<int N>
 struct S {
   char x[N];
@@ -45,17 +34,17 @@ void f800(S<800> s) {
 }
 
 void f801(S<801> s) {
-  PARTIAL_OVERFLOW(s);
+  OVERFLOW(s);
 }
 
 void f1000(S<1000> s) {
-  PARTIAL_OVERFLOW(s);
+  OVERFLOW(s);
 }
 
 void f_many(int a, double b, S<800> s, int c, double d) {
   NO_OVERFLOW(a);
   NO_OVERFLOW(b);
-  PARTIAL_OVERFLOW(s);
+  OVERFLOW(s);
   OVERFLOW(c);
   OVERFLOW(d);
 }
@@ -65,7 +54,7 @@ void f_many(int a, double b, S<800> s, i
 void f_many2(int a, S<800 - 8 - 2> s, int c, double d) {
   NO_OVERFLOW(a);
   NO_OVERFLOW(s);
-  PARTIAL_OVERFLOW(c);
+  OVERFLOW(c);
   OVERFLOW(d);
 }
 
-------------- next part --------------
diff -uprN llvm-3.8.1.src.orig/utils/vim/syntax/llvm.vim llvm-3.8.1.src/utils/vim/syntax/llvm.vim
--- llvm-3.8.1.src.orig/utils/vim/syntax/llvm.vim	2015-12-28 20:51:04.000000000 +0100
+++ llvm-3.8.1.src/utils/vim/syntax/llvm.vim	2016-06-04 05:43:08.000000000 +0200
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:   llvm
 " Maintainer: The LLVM team, http://llvm.org/
-" Version:      $Revision: 256512 $
+" Version:      $Revision$
 
 if version < 600
   syntax clear
diff -uprN llvm-3.8.1.src.orig/utils/vim/syntax/tablegen.vim llvm-3.8.1.src/utils/vim/syntax/tablegen.vim
--- llvm-3.8.1.src.orig/utils/vim/syntax/tablegen.vim	2015-04-21 03:35:42.000000000 +0200
+++ llvm-3.8.1.src/utils/vim/syntax/tablegen.vim	2016-06-04 05:43:08.000000000 +0200
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:   TableGen
 " Maintainer: The LLVM team, http://llvm.org/
-" Version:    $Revision: 235369 $
+" Version:    $Revision$
 
 if version < 600
   syntax clear
diff -uprN llvm-3.8.1.src.orig/utils/vim/vimrc llvm-3.8.1.src/utils/vim/vimrc
--- llvm-3.8.1.src.orig/utils/vim/vimrc	2013-02-28 07:43:24.000000000 +0100
+++ llvm-3.8.1.src/utils/vim/vimrc	2016-06-04 05:43:08.000000000 +0200
@@ -1,5 +1,5 @@
 " LLVM coding guidelines conformance for VIM
-" $Revision: 176235 $
+" $Revision$
 "
 " Maintainer: The LLVM Team, http://llvm.org
 " WARNING:    Read before you source in all these commands and macros!  Some


More information about the llvm-dev mailing list