On Thu, Mar 19, 2015 at 7:39 AM, Venkataramanan Kumar <[email protected]> wrote: > Hi I tried using patch suggested on aarch64 machine which is 42 VA. > > In addition, I set shadow offset as below in asan_mapping.h > static const u64 kAArch64_ShadowOffset64 = 1ULL << 39; > > ASAN builds but when I do make check-asan, I get lot of failures. > > Expected Passes : 40 > Expected Failures : 6 > Unsupported Tests : 129 > Unexpected Failures: 135 > > The errors are looking like this > > Command Output (stderr): > -- > ==32641==AddressSanitizer: failed to intercept '__isoc99_printf' > ==32641==AddressSanitizer: failed to intercept '__isoc99_sprintf' > ==32641==AddressSanitizer: failed to intercept '__isoc99_snprintf' > ==32641==AddressSanitizer: failed to intercept '__isoc99_fprintf' > ==32641==AddressSanitizer: failed to intercept '__isoc99_vprintf' > ==32641==AddressSanitizer: failed to intercept '__isoc99_vsprintf' > ==32641==AddressSanitizer: failed to intercept '__isoc99_vsnprintf' > ==32641==AddressSanitizer: failed to intercept '__isoc99_vfprintf' > ==32641==AddressSanitizer: libc interceptors initialized > || `[0x010000000000, 0x03ffffffffff]` || HighMem || > || `[0x00a000000000, 0x00ffffffffff]` || HighShadow || > || `[0x009000000000, 0x009fffffffff]` || ShadowGap || > || `[0x008000000000, 0x008fffffffff]` || LowShadow || > || `[0x000000000000, 0x007fffffffff]` || LowMem || > MemToShadow(shadow): 0x009000000000 0x0091ffffffff 0x009400000000 > 0x009fffffffff > redzone=16 > max_redzone=2048 > quarantine_size_mb=256M > malloc_context_size=30 > SHADOW_SCALE: 3 > SHADOW_GRANULARITY: 8 > SHADOW_OFFSET: 8000000000 > ==32641==Installed the sigaction for signal 11 > ==32641==Installed the sigaction for signal 7 > ==32641==T0: stack [0x03ffdd280000,0x03ffdda80000) size 0x800000; > local=0x03ffdda75ef0 > ==32641==AddressSanitizer Init done > ASAN:SIGSEGV > ================================================================= > ==32641==ERROR: AddressSanitizer: SEGV on unknown address > 0x007ffbb4ebc0 (pc 0x0000004c1e1c bp 0x03ffdda75ec0 sp 0x03ffdda75e00 > T0) > #0 0x4c1e1b in main > /home/venkataramanan.kumar/LLVM/TSAN_port/compiler-rt/test/asan/TestCases/Linux/coverage-disabled.cc:18 > #1 0x3ffaa1b0c93 in __libc_start_main (/lib64/libc.so.6+0x20c93) > #2 0x41b1f3 in _start > (/home/venkataramanan.kumar/LLVM/TSAN_port/Build/projects/compiler-rt/test/asan/AARCH64LinuxConfig/TestCases/Linux/Output/coverage-disabled.cc.tmp+0x41b1f3) > > AddressSanitizer can not provide additional info. > SUMMARY: AddressSanitizer: SEGV > /home/venkataramanan.kumar/LLVM/TSAN_port/compiler-rt/test/asan/TestCases/Linux/coverage-disabled.cc:18 > main > ==32641==ABORTING > > No idea what is going wrong? Am I missing something here?
Hard to tell w/o being able to reproduce. I can work as a remote debugger for you, if you wish. Let's start from something more trivial than coverage-disabled.cc (e.g. start from a "hello world") and run it under gdb. > > regards, > Venkat, > > > On 26 January 2015 at 20:50, <[email protected]> wrote: >> >> Comment #16 on issue 246 by [email protected]: Porting to a new target >> (AArch64) >> https://code.google.com/p/address-sanitizer/issues/detail?id=246 >> >> FYI, following patch makes ASAN work fine on 42-bit AS, but will break the >> 39-bit AS and won't fix 48-bit one. So we really need something more >> dynamic. >> >> --- libsanitizer/asan/asan_allocator.h (revision 219833) >> +++ libsanitizer/asan/asan_allocator.h (working copy) >> @@ -100,6 +100,10 @@ >> # if defined(__powerpc64__) >> const uptr kAllocatorSpace = 0xa0000000000ULL; >> const uptr kAllocatorSize = 0x20000000000ULL; // 2T. >> +# elif defined(__aarch64__) >> +// Valid only for 42-bit VA >> +const uptr kAllocatorSpace = 0x10000000000ULL; >> +const uptr kAllocatorSize = 0x10000000000ULL; // 1T. >> # else >> const uptr kAllocatorSpace = 0x600000000000ULL; >> const uptr kAllocatorSize = 0x40000000000ULL; // 4T. >> --- libsanitizer/sanitizer_common/sanitizer_platform.h (revision 219833) >> +++ libsanitizer/sanitizer_common/sanitizer_platform.h (working copy) >> @@ -79,7 +79,7 @@ >> // For such platforms build this code with >> -DSANITIZER_CAN_USE_ALLOCATOR64=0 or >> // change the definition of SANITIZER_CAN_USE_ALLOCATOR64 here. >> #ifndef SANITIZER_CAN_USE_ALLOCATOR64 >> -# if defined(__aarch64__) || defined(__mips64) >> +# if defined(__mips64) >> # define SANITIZER_CAN_USE_ALLOCATOR64 0 >> # else >> # define SANITIZER_CAN_USE_ALLOCATOR64 (SANITIZER_WORDSIZE == 64) >> @@ -88,10 +88,10 @@ >> >> // The range of addresses which can be returned my mmap. >> // FIXME: this value should be different on different platforms, >> -// e.g. on AArch64 it is most likely (1ULL << 39). Larger values will still >> work >> +// e.g. on AArch64 it is most likely (1ULL << 42). Larger values will still >> work >> // but will consume more memory for TwoLevelByteMap. >> #if defined(__aarch64__) >> -# define SANITIZER_MMAP_RANGE_SIZE FIRST_32_SECOND_64(1ULL << 32, 1ULL << >> 39) >> +# define SANITIZER_MMAP_RANGE_SIZE FIRST_32_SECOND_64(1ULL << 32, 1ULL << >> 42) >> #else >> # define SANITIZER_MMAP_RANGE_SIZE FIRST_32_SECOND_64(1ULL << 32, 1ULL << >> 47) >> #endif >> >> >> >> -- >> You received this message because this project is configured to send all >> issue notifications to this address. >> You may adjust your notification preferences at: >> https://code.google.com/hosting/settings >> >> -- >> You received this message because you are subscribed to the Google Groups >> "address-sanitizer" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> For more options, visit https://groups.google.com/d/optout. > > -- > You received this message because you are subscribed to the Google Groups > "address-sanitizer" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "address-sanitizer" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
