[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