[compiler-rt] r249337 - [lsan] [aarch64] Add support for AArch64

Kostya Serebryany via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 7 17:22:38 PDT 2015


The bot is still red.
Shall we revert?

On Tue, Oct 6, 2015 at 2:02 PM, Evgenii Stepanov via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

> This breaks the sanitizer bot:
>
> http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux/builds/20637/steps/build%20compiler-rt%20android%2Faarch64/logs/stdio
>
> On Mon, Oct 5, 2015 at 12:16 PM, Adhemerval Zanella via llvm-commits
> <llvm-commits at lists.llvm.org> wrote:
> > Author: azanella
> > Date: Mon Oct  5 14:16:09 2015
> > New Revision: 249337
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=249337&view=rev
> > Log:
> > [lsan] [aarch64] Add support for AArch64
> >
> > This patch add support for leak sanitizer for aarch64.  Similar to
> > MIPS it uses a SizeClassAllocator32 due VMA constraints (aarch64
> > currently supports 39 and 42-bit VMA).
> >
> > Modified:
> >     compiler-rt/trunk/cmake/config-ix.cmake
> >     compiler-rt/trunk/lib/lsan/lsan_allocator.cc
> >     compiler-rt/trunk/lib/lsan/lsan_common.cc
> >     compiler-rt/trunk/lib/lsan/lsan_common.h
> >     compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc
> >
> > Modified: compiler-rt/trunk/cmake/config-ix.cmake
> > URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/cmake/config-ix.cmake?rev=249337&r1=249336&r2=249337&view=diff
> >
> ==============================================================================
> > --- compiler-rt/trunk/cmake/config-ix.cmake (original)
> > +++ compiler-rt/trunk/cmake/config-ix.cmake Mon Oct  5 14:16:09 2015
> > @@ -266,7 +266,7 @@ set(ALL_SANITIZER_COMMON_SUPPORTED_ARCH
> >  set(ALL_ASAN_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64}
> >      ${MIPS32} ${MIPS64} ${PPC64})
> >  set(ALL_DFSAN_SUPPORTED_ARCH ${X86_64} ${MIPS64} ${ARM64})
> > -set(ALL_LSAN_SUPPORTED_ARCH ${X86_64} ${MIPS64})
> > +set(ALL_LSAN_SUPPORTED_ARCH ${X86_64} ${MIPS64} ${ARM64})
> >  set(ALL_MSAN_SUPPORTED_ARCH ${X86_64} ${MIPS64} ${ARM64})
> >  set(ALL_PROFILE_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64}
> ${PPC64}
> >      ${MIPS32} ${MIPS64})
> >
> > Modified: compiler-rt/trunk/lib/lsan/lsan_allocator.cc
> > URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_allocator.cc?rev=249337&r1=249336&r2=249337&view=diff
> >
> ==============================================================================
> > --- compiler-rt/trunk/lib/lsan/lsan_allocator.cc (original)
> > +++ compiler-rt/trunk/lib/lsan/lsan_allocator.cc Mon Oct  5 14:16:09 2015
> > @@ -32,7 +32,7 @@ struct ChunkMetadata {
> >    u32 stack_trace_id;
> >  };
> >
> > -#if defined(__mips64)
> > +#if defined(__mips64) || defined(__aarch64__)
> >  static const uptr kMaxAllowedMallocSize = 4UL << 30;
> >  static const uptr kRegionSizeLog = 20;
> >  static const uptr kNumRegions = SANITIZER_MMAP_RANGE_SIZE >>
> kRegionSizeLog;
> >
> > Modified: compiler-rt/trunk/lib/lsan/lsan_common.cc
> > URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_common.cc?rev=249337&r1=249336&r2=249337&view=diff
> >
> ==============================================================================
> > --- compiler-rt/trunk/lib/lsan/lsan_common.cc (original)
> > +++ compiler-rt/trunk/lib/lsan/lsan_common.cc Mon Oct  5 14:16:09 2015
> > @@ -119,6 +119,8 @@ static inline bool CanBeAHeapPointer(upt
> >    return ((p >> 47) == 0);
> >  #elif defined(__mips64)
> >    return ((p >> 40) == 0);
> > +#elif defined(__aarch64__)
> > +  return ((p >> SANITIZER_AARCH64_VMA) == 0);
> >  #else
> >    return true;
> >  #endif
> >
> > Modified: compiler-rt/trunk/lib/lsan/lsan_common.h
> > URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/lsan/lsan_common.h?rev=249337&r1=249336&r2=249337&view=diff
> >
> ==============================================================================
> > --- compiler-rt/trunk/lib/lsan/lsan_common.h (original)
> > +++ compiler-rt/trunk/lib/lsan/lsan_common.h Mon Oct  5 14:16:09 2015
> > @@ -22,8 +22,9 @@
> >  #include "sanitizer_common/sanitizer_stoptheworld.h"
> >  #include "sanitizer_common/sanitizer_symbolizer.h"
> >
> > -#if SANITIZER_LINUX && (defined(__x86_64__) || defined(__mips64)) \
> > -    && (SANITIZER_WORDSIZE == 64)
> > +#if SANITIZER_LINUX && (SANITIZER_WORDSIZE == 64) &&
> (defined(__x86_64__) \
> > +                                                  ||  defined(__mips64)
> \
> > +                                                  ||
> defined(__aarch64__))
> >  #define CAN_SANITIZE_LEAKS 1
> >  #else
> >  #define CAN_SANITIZE_LEAKS 0
> >
> > Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc
> > URL:
> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc?rev=249337&r1=249336&r2=249337&view=diff
> >
> ==============================================================================
> > --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc (original)
> > +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_linux.cc Mon Oct  5
> 14:16:09 2015
> > @@ -497,7 +497,7 @@ void BlockingMutex::CheckLocked() {
> >  // Note that getdents64 uses a different structure format. We only
> provide the
> >  // 32-bit syscall here.
> >  struct linux_dirent {
> > -#if SANITIZER_X32
> > +#if SANITIZER_X32 || defined(__aarch64__)
> >    u64 d_ino;
> >    u64 d_off;
> >  #else
> > @@ -505,6 +505,9 @@ struct linux_dirent {
> >    unsigned long      d_off;
> >  #endif
> >    unsigned short     d_reclen;
> > +#ifdef __aarch64__
> > +  unsigned char      d_type;
> > +#endif
> >    char               d_name[256];
> >  };
> >
> >
> >
> > _______________________________________________
> > llvm-commits mailing list
> > llvm-commits at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151007/f8a8fee2/attachment.html>


More information about the llvm-commits mailing list