Tom Stellard via llvm-dev
2016-Jul-13 14:51 UTC
[llvm-dev] [LLVM/Clang v3.8.1] Missing Git branches/tags and source-tarballs?
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. -Tom> Regards, > - Sedat - > > [1] http://llvm.org/releases/3.8.1/compiler-rt-3.8.1.src.tar.xz > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
Sedat Dilek via llvm-dev
2016-Jul-16 06:44 UTC
[llvm-dev] [LLVM/Clang v3.8.1] Missing Git branches/tags and source-tarballs?
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
Daniel Sanders via llvm-dev
2016-Jul-18 12:39 UTC
[llvm-dev] [LLVM/Clang v3.8.1] Missing Git branches/tags and source-tarballs?
> 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 -The official tarball, the final tag, and the branch all have identical contents. llvm-branch-commits did receive some commit emails after the tag but their revision numbers are less than the revision that was tagged (r273407). I think the mailing list just delivered the emails late.