summaryrefslogtreecommitdiff
path: root/lib/sanitizer_common/sanitizer_linux.cc
AgeCommit message (Collapse)Author
2016-10-06[ESan][MIPS] Adds support for MIPS64Sagar Thakur
With this patch 12 out of 13 tests are passing. Reviewed by zhaoqin. Differential: D23799 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@283435 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-05[asan] Reapply: Switch to using dynamic shadow offset on iOSAnna Zaks
The VM layout is not stable between iOS version releases, so switch to dynamic shadow offset. Differential Revision: https://reviews.llvm.org/D25218 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@283375 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-05Revert "[asan] Switch to using dynamic shadow offset on iOS"Anna Zaks
This reverts commit b2af965b7924ad793b313996a96633bb72daf629. Revert as these changes broke a Chromium buildbot. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@283349 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-04[asan] Switch to using dynamic shadow offset on iOSAnna Zaks
The VM layout is not stable between iOS version releases, so switch to dynamic shadow offset. Differential Revision: https://reviews.llvm.org/D25218 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@283240 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-08Revert "[ESan][MIPS] Adds support for MIPS64"Qin Zhao
Summary: This reverts commit 62b3eecdbe72af0255f0639b0446087a47efbf48. (D23799) The CL cause 13 ESan test failure on x86_64: Failing Tests (13): EfficiencySanitizer-x86_64 :: TestCases/large-stack-linux.c EfficiencySanitizer-x86_64 :: TestCases/libc-intercept.c EfficiencySanitizer-x86_64 :: TestCases/mmap-shadow-conflict.c EfficiencySanitizer-x86_64 :: TestCases/struct-simple.cpp EfficiencySanitizer-x86_64 :: TestCases/verbose-simple.c EfficiencySanitizer-x86_64 :: TestCases/workingset-early-fault.c EfficiencySanitizer-x86_64 :: TestCases/workingset-memset.cpp EfficiencySanitizer-x86_64 :: TestCases/workingset-midreport.cpp EfficiencySanitizer-x86_64 :: TestCases/workingset-samples.cpp EfficiencySanitizer-x86_64 :: TestCases/workingset-signal-posix.cpp EfficiencySanitizer-x86_64 :: TestCases/workingset-simple.cpp EfficiencySanitizer-x86_64 :: Unit/circular_buffer.cpp EfficiencySanitizer-x86_64 :: Unit/hashtable.cpp Unexpected Failures: 13 Reviewers: bruening, slthakur Subscribers: sdardis, kubabrecka, beanz Differential Revision: https://reviews.llvm.org/D24350 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@280954 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-07[ESan][MIPS] Adds support for MIPS64Sagar Thakur
With this patch 10 out of 13 tests are passing. Following is the list of failing tests: struct-simple.cpp workingset-signal-posix.cpp mmap-shadow-conflict.c Reviewed by bruening Differential: D23799 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@280795 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-26[asan] Remove zero FSR check on ARM.Evgeniy Stepanov
The kernel on Nexus 5X returns error_code in ucontext which has correct FSR_WRITE flag, but empty (zero) abort type field. Removing the checks means that we will report all SEGVs as READ on very old kernels, but will properly distinguish READ vs WRITE on moderately old ones. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@276803 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-26[asan] Hardcode page size 4096 on Android.Evgeniy Stepanov
EXEC_PAGESIZE lies. sysconf() is broken in .preinit_array. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@276802 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-06[esan|wset] Ensure SIGSEGV is not blockedDerek Bruening
Summary: Adds interception of sigprocmask and pthread_sigmask to esan so that the working set tool can prevent SIGSEGV from being blocked. A blocked SIGSEGV results in crashes due to our lazy shadow page allocation scheme. Adds new sanitizer helper functions internal_sigemptyset and internal_sigismember. Adds a test to workingset-signal-posix.cpp. Reviewers: aizatsky Subscribers: vitalybuka, zhaoqin, kcc, eugenis, llvm-commits, kubabrecka Differential Revision: http://reviews.llvm.org/D22063 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@274672 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-06[sanitizer] Handle null in internal_sigaction_syscallDerek Bruening
Summary: Adds support for nullptr as the action parameter to internal_sigaction_syscall(). Reviewers: aizatsky Subscribers: kubabrecka, vitalybuka, zhaoqin, kcc, eugenis, llvm-commits Differential Revision: http://reviews.llvm.org/D22061 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@274665 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-14[sanitizer][esan] Add internal_sigaction_syscallDerek Bruening
Summary: Adds a version of sigaction that uses a raw system call, to avoid circular dependencies and support calling sigaction prior to setting up interceptors. The new sigaction relies on an assembly sigreturn routine for its restorer, which is Linux x86_64-only for now. Uses the new sigaction to initialize the working set tool's shadow fault handler prior to libc interceptor being set up. This is required to support instrumentation invoked during interceptor setup, which happens with an instrumented tcmalloc or other allocator compiled with esan. Adds a test that emulates an instrumented allocator. Reviewers: aizatsky Subscribers: vitalybuka, tberghammer, zhaoqin, danalbert, kcc, srhines, eugenis, llvm-commits, kubabrecka Differential Revision: http://reviews.llvm.org/D21083 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@272676 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-14Revert r272591, http://lab.llvm.org:8011/builders/clang-x64-ninja-win7 has ↵Nico Weber
been broken since this landed. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@272659 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-13[sanitizer][esan] Add internal_sigaction_syscallDerek Bruening
Summary: Adds a version of sigaction that uses a raw system call, to avoid circular dependencies and support calling sigaction prior to setting up interceptors. The new sigaction relies on an assembly sigreturn routine for its restorer, which is Linux x86_64-only for now. Uses the new sigaction to initialize the working set tool's shadow fault handler prior to libc interceptor being set up. This is required to support instrumentation invoked during interceptor setup, which happens with an instrumented tcmalloc or other allocator compiled with esan. Adds a test that emulates an instrumented allocator. Reviewers: aizatsky Subscribers: vitalybuka, tberghammer, zhaoqin, danalbert, kcc, srhines, eugenis, llvm-commits, kubabrecka Differential Revision: http://reviews.llvm.org/D21083 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@272591 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-13Revert "[sanitizer][esan] Add internal_sigaction_syscall"Derek Bruening
This reverts commit r272553. The iOS build fails to link. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@272557 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-13[sanitizer][esan] Add internal_sigaction_syscallDerek Bruening
Summary: Adds a version of sigaction that uses a raw system call, to avoid circular dependencies and support calling sigaction prior to setting up interceptors. The new sigaction relies on an assembly sigreturn routine for its restorer, which is Linux x86_64-only for now. Uses the new sigaction to initialize the working set tool's shadow fault handler prior to libc interceptor being set up. This is required to support instrumentation invoked during interceptor setup, which happens with an instrumented tcmalloc or other allocator compiled with esan. Adds a test that emulates an instrumented allocator. Reviewers: aizatsky Subscribers: vitalybuka, tberghammer, zhaoqin, danalbert, kcc, srhines, eugenis, llvm-commits, kubabrecka Differential Revision: http://reviews.llvm.org/D21083 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@272553 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-12[mips][sanitizer_common] Don't use `ld` in internal_clone() on 32-bit MIPS.Daniel Sanders
Summary: On a 32-bit MIPS, the `ld` instruction does not exist. However, GAS has an `ld` macro that expands to a pair of `lw` instructions which load to a pair of registers (reg, and reg+1). This macro is not available in the Integrated Assembler and its use causes -fintegrated-as builds to fail. Even if it were available, the behaviour on 32-bit MIPS would be incorrect since the current usage of `ld` causes the code to clobber $5 (which is supposed to hold child_stack). It also clobbers $k0 which is reserved for kernel use. Aside from enabling builds with the integrated assembler, there is no functional change since internal_clone() is only used by StopTheWorld() which is only used by 64-bit sanitizers. Reviewers: kcc, sagar Subscribers: mohit.bhakkad, jaydeep, sagar, llvm-commits Differential Revision: http://reviews.llvm.org/D18753 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@269297 91177308-0d34-0410-b5e6-96231b3b80d8
2016-05-12Fixup for r269288. SleepForSeconds is not available in nolibc builds, let's ↵Kuba Brecka
add an internal_sleep. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@269296 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-15[sanitizers] [SystemZ] Introduce sanitizer_linux_s390.cc.Marcin Koscielnicki
This file will contain s390-specific code. For now, let's move the s390 version of internal_mmap here. Differential Revision: http://reviews.llvm.org/D19174 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@266482 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-15Revert "[sanitizer] [SystemZ] Abort if the kernel might be vulnerable to ↵Marcin Koscielnicki
CVE-2016-2143." This reverts commit r266297. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@266470 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-14[sanitizer] [SystemZ] Add/fix kernel and libc type definitions.Marcin Koscielnicki
This is the first part of upcoming asan support for s390 and s390x. Note that there are bits for 31-bit support in this and subsequent patches - while LLVM itself doesn't support it, gcc should be able to make use of it just fine. Differential Revision: http://reviews.llvm.org/D18888 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@266370 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-14[sanitizer] remove FreeBSD PS_STRINGS fallbackEd Maste
The PS_STRINGS constant can easily be incorrect with mismatched kernel/userland - e.g. when building i386 sanitizers on FreeBSD/amd64 with -m32. The kern.ps_strings sysctl was introduced over 20 years ago as the supported way to fetch the environment and argument string addresses from the kernel, so the fallback is never used. Differential Revision: http://reviews.llvm.org/D19027 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@266305 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-14[sanitizer] [SystemZ] Abort if the kernel might be vulnerable to CVE-2016-2143.Marcin Koscielnicki
In short, CVE-2016-2143 will crash the machine if a process uses both >4TB virtual addresses and fork(). ASan, TSan, and MSan will, by necessity, map a sizable chunk of virtual address space, which is much larger than 4TB. Even worse, sanitizers will always use fork() for llvm-symbolizer when a bug is detected. Disable all three by aborting on process initialization if the running kernel version is not known to contain a fix. Unfortunately, there's no reliable way to detect the fix without crashing the kernel. So, we rely on whitelisting - I've included a list of upstream kernel versions that will work. In case someone uses a distribution kernel or applied the fix themselves, an override switch is also included. Differential Revision: http://reviews.llvm.org/D18915 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@266297 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-14[sanitizer] [SystemZ] Implement internal_mmap.Marcin Koscielnicki
mmap on s390 is quite a special snowflake: since it has too many parameters to pass them in registers, it passes a pointer to a struct with all the parameters instead. Differential Revision: http://reviews.llvm.org/D18889 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@266295 91177308-0d34-0410-b5e6-96231b3b80d8
2016-03-17[sanitizer] On OS X, verify that interceptors work and abort if not, take 2Kuba Brecka
On OS X 10.11+, we have "automatic interceptors", so we don't need to use DYLD_INSERT_LIBRARIES when launching instrumented programs. However, non-instrumented programs that load TSan late (e.g. via dlopen) are currently broken, as TSan will still try to initialize, but the program will crash/hang at random places (because the interceptors don't work). This patch adds an explicit check that interceptors are working, and if not, it aborts and prints out an error message suggesting to explicitly use DYLD_INSERT_LIBRARIES. TSan unit tests run with a statically linked runtime, where interceptors don't work. To avoid aborting the process in this case, the patch replaces `DisableReexec()` with a weak `ReexecDisabled()` function which is defined to return true in unit tests. Differential Revision: http://reviews.llvm.org/D18212 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@263695 91177308-0d34-0410-b5e6-96231b3b80d8
2016-03-16[ASAN] Add support for mips/mips64 androidMohit K. Bhakkad
Patch by Duane Sand Reviewers: samsonov Subscribers: duanesand, jaydeep, sagar, llvm-commits, filcab. Differential Revision: http://reviews.llvm.org/D17883 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@263621 91177308-0d34-0410-b5e6-96231b3b80d8
2016-03-11[Sanitizer][MIPS] internal lstat and fstat for mips64Mohit K. Bhakkad
Reviewers: dvyukov Subscribers: jaydeep, sagar, llvm-commits Differential Revision: http://reviews.llvm.org/D18078 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@263218 91177308-0d34-0410-b5e6-96231b3b80d8
2016-03-10Retrieve command line arguments and environment correctly on FreeBSDDimitry Andric
Summary: Recently I saw the test `TestCases/Posix/print_cmdline.cc` failing on FreeBSD, with "expected string not found in input". This is because asan could not retrieve the command line arguments properly. In `lib/sanitizer_common/sanitizer_linux.cc`, this is taken care of by the `GetArgsAndEnv()` function, but it uses `__libc_stack_end` to get at the required data. This variable does not exist on BSDs; the regular way to retrieve the arguments and environment information is via the `kern.ps_strings` sysctl. I added this functionality in sanitizer_linux.cc, as a separate #ifdef block in `GetArgsAndEnv()`. Also, `ReadNullSepFileToArray()` becomes unused due to this change. (It won't work on FreeBSD anyway, since `/proc` is not mounted by default.) Reviewers: kcc, emaste, joerg, davide Subscribers: llvm-commits, emaste Differential Revision: http://reviews.llvm.org/D17832 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@263157 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-09[asan] Fix build on Windows and PowerPC.Evgeniy Stepanov
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@260175 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-08[asan] Remove leftover debug print statement.Evgeniy Stepanov
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@260165 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-08[asan] Implement SEGV read vs write detection for ARM and AArch64.Evgeniy Stepanov
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@260163 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-07Fix build on FreeBSD after r259741.Dimitry Andric
On FreeBSD, the uc_mcontext member of ucontext_t has a member called mc_err, which corresponds to the Linux member gregs[REG_ERR]. Reviewed by: rdivacky@FreeBSD.org git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@260046 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-04[asan] fix the non-x86 buildKostya Serebryany
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@259745 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-04[asan] When catching a signal caused by a memory access, print if it's a ↵Kostya Serebryany
READ or a WRITE. This touches win/mac files which I have not tested, if a win/mac bot fails I'll try to quick-fix git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@259741 91177308-0d34-0410-b5e6-96231b3b80d8
2016-02-02[asan] Add iOS support.Anna Zaks
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@259451 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-25[asan] Don't use sysconf(_SC_PAGESIZE) on Android.Evgeniy Stepanov
This is broken in the current (post-MNC) master branch. Use EXEC_PAGESIZE instead, the same as on x86 Linux. This change fixes startup crashes in the existing tests on AOSP master. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@258706 91177308-0d34-0410-b5e6-96231b3b80d8
2016-01-18[asan] Optionally print reproducer cmdline in ASan reports.Maxim Ostapenko
Differential Revision: http://reviews.llvm.org/D16070 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@258037 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-15[asan] add option: handle_sigillKostya Serebryany
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@255588 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-08[PPC64, TSAN] LLVM basic enablement of thread sanitizer for PPC64 (BE and LE)Bill Schmidt
This patch is by Simone Atzeni with portions by Adhemerval Zanella. This contains the LLVM patches to enable the thread sanitizer for PPC64, both big- and little-endian. Two different virtual memory sizes are supported: Old kernels use a 44-bit address space, while newer kernels require a 46-bit address space. There are two companion patches that will be added shortly. There is a Clang patch to actually turn on the use of the thread sanitizer for PPC64. There is also a patch that I wrote to provide interceptor support for setjmp/longjmp on PPC64. Patch discussion at reviews.llvm.org/D12841. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@255057 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-04[asan] Remove the use of system properties on Android.Evgeniy Stepanov
System properties are not accessible through NDK (we've been using hacks to get to them) and they are unavailable during ASan initialization in .preinit_array. Use environment variables and files instead (ex. ASAN_OPTIONS=include_if_exists=/path). No test changes. This feature was not tested because the properties are system-wide and would conflict with the parallel test runner. Yet another reason to get rid of it. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@254783 91177308-0d34-0410-b5e6-96231b3b80d8
2015-12-03[tsan] Use re-exec method to enable interceptors on older versions of OS XKuba Brecka
In AddressSanitizer, we have the MaybeReexec method to detect when we're running without DYLD_INSERT_LIBRARIES (in which case interceptors don't work) and re-execute with the environment variable set. On OS X 10.11+, this is no longer necessary, but to have ThreadSanitizer supported on older versions of OS X, let's use the same method as well. This patch moves the implementation from `asan/` into `sanitizer_common/`. Differential Revision: http://reviews.llvm.org/D15123 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@254600 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-21[lsan] [aarch64] Add support for AArch64Adhemerval Zanella
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). It also fixes the android build issue. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@250898 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-08Revert "[lsan] [aarch64] Add support for AArch64"Evgeniy Stepanov
This reverts commit ea02fa45225c35613bfecab383fb526e24b74497 (r249337). Reason: broken "ninja AsanUnitTests" on Android/AArch64. http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux/builds/20675/steps/build%20compiler-rt%20android%2Faarch64/logs/stdio git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@249730 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-05[lsan] [aarch64] Add support for AArch64Adhemerval Zanella
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). git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@249337 91177308-0d34-0410-b5e6-96231b3b80d8
2015-09-30[sanitizer_common] Apply modernize-use-nullptr, other minor fixesVedant Kumar
- Trim spaces. - Use nullptr in place of 0 for pointer variables. - Use '!p' in place of 'p == 0' for null pointer checks. Patch by Eugene Zelenko! Differential Revision: http://reviews.llvm.org/D13310 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@248964 91177308-0d34-0410-b5e6-96231b3b80d8
2015-08-21[compiler-rt] [sanitizers] Add aarch64 syscall optimization supportAdhemerval Zanella
This patch adds the inline syscall support for aarch64 instead of relying on the syscall runtime function. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@245702 91177308-0d34-0410-b5e6-96231b3b80d8
2015-08-06[sanitizer] 2-nd attempt. Add the flag handle_sigfpe that is default true to ↵Kostya Serebryany
handle SIGFPE crashes same as SIGSEV crashes, patch by Karl Skomski. This time the test is enabled only on x86-64 (it broke on ARM) git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@244234 91177308-0d34-0410-b5e6-96231b3b80d8
2015-08-06Revert "[sanitizer] Add the flag handle_sigfpe that is default true to ↵Renato Golin
handle SIGFPE crashes same as SIGSEV crashes, patch by Karl Skomski" This reverts commit r244136, it was breaking the ARM bots for too long. We should investigate it offline. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@244210 91177308-0d34-0410-b5e6-96231b3b80d8
2015-08-05[sanitizer] Add the flag handle_sigfpe that is default true to handle SIGFPE ↵Kostya Serebryany
crashes same as SIGSEV crashes, patch by Karl Skomski git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@244136 91177308-0d34-0410-b5e6-96231b3b80d8
2015-08-05[tsan] Enable tsan for aarch64Adhemerval Zanella
This patch enabled TSAN for aarch64 with 39-bit VMA layout. As defined by tsan_platform.h the layout used is: 0000 4000 00 - 0200 0000 00: main binary 2000 0000 00 - 4000 0000 00: shadow memory 4000 0000 00 - 5000 0000 00: metainfo 5000 0000 00 - 6000 0000 00: - 6000 0000 00 - 6200 0000 00: traces 6200 0000 00 - 7d00 0000 00: - 7d00 0000 00 - 7e00 0000 00: heap 7e00 0000 00 - 7fff ffff ff: modules and main thread stack Which gives it about 8GB for main binary, 4GB for heap and 8GB for modules and main thread stack. Most of tests are passing, with the exception of: * ignore_lib0, ignore_lib1, ignore_lib3 due a kernel limitation for no support to make mmap page non-executable. * longjmp tests due missing specialized assembly routines. These tests are xfail for now. The only tsan issue still showing is: rtl/TsanRtlTest/Posix.ThreadLocalAccesses Which still required further investigation. The test is disable for aarch64 for now. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@244055 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-31Re-commit r243686 - [Sanitizers] [Bug 24151] Generalize type of offset in ↵Daniel Sanders
internal_mmap The builder remains broken in the same way without this patch so this patch is innocent. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@243744 91177308-0d34-0410-b5e6-96231b3b80d8