[LLVMdev] Porting ASan to AArch64

Gideon Billings gideonhbillings at gmail.com
Fri May 30 14:29:16 PDT 2014


Hello,

I have been working on porting ASan to AArch64. I am building compiler-rt
in "standalone mode" targeting aarch64. My build is successful, but I get
the following runtime error when I run an ASan enabled executable through
qemu-aarch64:


==29184==Parsed ASAN_OPTIONS: verbosity=1
==29184==AddressSanitizer: failed to intercept '__isoc99_printf'
==29184==AddressSanitizer: failed to intercept '__isoc99_sprintf'
==29184==AddressSanitizer: failed to intercept '__isoc99_snprintf'
==29184==AddressSanitizer: failed to intercept '__isoc99_fprintf'
==29184==AddressSanitizer: failed to intercept '__isoc99_vprintf'
==29184==AddressSanitizer: failed to intercept '__isoc99_vsprintf'
==29184==AddressSanitizer: failed to intercept '__isoc99_vsnprintf'
==29184==AddressSanitizer: failed to intercept '__isoc99_vfprintf'
==29184==AddressSanitizer: libc interceptors initialized
|| `[0x002000000000, 0x007fffffffff]` || HighMem    ||
|| `[0x001400000000, 0x001fffffffff]` || HighShadow ||
|| `[0x001200000000, 0x0013ffffffff]` || ShadowGap  ||
|| `[0x001000000000, 0x0011ffffffff]` || LowShadow  ||
|| `[0x000000000000, 0x000fffffffff]` || LowMem     ||
MemToShadow(shadow): 0x001200000000 0x00123fffffff 0x001280000000
0x0013ffffffff
redzone=16
max_redzone=2048
quarantine_size=256M
malloc_context_size=30
SHADOW_SCALE: 3
SHADOW_GRANULARITY: 8
SHADOW_OFFSET: 1000000000
==29184==ERROR: AddressSanitizer failed to allocate 0xc00000000
(51539607552) bytes at address 1400000000 (errno: 12)
==29184==ReserveShadowMemoryRange failed while trying to map 0xc00000000
bytes. Perhaps you're using ulimit -v

This appears to be the same issue discussed in this thread:
https://code.google.com/p/address-sanitizer/issues/detail?id=246#makechanges
<https://mymail.qualcomm.com/owa/redir.aspx?C=k7Wv_sbf90SWPFjF3_Wzyp-KmK3QT9EI87JrUWjRxE-4GcylWFTmUnPhLYMjO_xSknvKZiQAOf8.&URL=https%3a%2f%2fcode.google.com%2fp%2faddress-sanitizer%2fissues%2fdetail%3fid%3d246%23makechanges>

I contacted Christophe Lyon, and he said he had successfully ported ASan to
aarch64 and had committed a patch to enable this to LLVM:
https://github.com/llvm-mirror/compiler-rt/commit/33465467e7f8243933100bab3cf8f34b79a8f54c
<https://mymail.qualcomm.com/owa/redir.aspx?C=k7Wv_sbf90SWPFjF3_Wzyp-KmK3QT9EI87JrUWjRxE-4GcylWFTmUnPhLYMjO_xSknvKZiQAOf8.&URL=https%3a%2f%2fgithub.com%2fllvm-mirror%2fcompiler-rt%2fcommit%2f33465467e7f8243933100bab3cf8f34b79a8f54c>

His changes from this patch still appear to be configured correctly in my
build, so I am not sure why I am getting this error. Is anyone able to shed
some light on this?

Thanks,
-Gideon
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140530/61f8b472/attachment.html>


More information about the llvm-dev mailing list