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

Kostya Serebryany via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 8 11:43:21 PDT 2015


ping?

On Wed, Oct 7, 2015 at 5:22 PM, Kostya Serebryany <kcc at google.com> wrote:

> 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/20151008/da2a7631/attachment.html>


More information about the llvm-commits mailing list