summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-09-26[msan] Fix second parameter in MsanReallocate from previous commit.Maxim Ostapenko
It's wrong to pass to MsanReallocate a pointer that MSan allocator doesn't own. Use nullptr instead of ptr to prevent possible (still unlikely) failure. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282390 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-26[asan, msan] Fix reallocation logic when IsInDlsymAllocPool(ptr) is true.Maxim Ostapenko
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282389 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-23[msan] Disable flaky fork.cc on PPC64.Evgeniy Stepanov
This test is very flaky on PPC64 (both BE and LE), but not on other platforms. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282315 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-23Revert "[profile] Hide lprofCurFilename"Vedant Kumar
This reverts commit r282294. It breaks a Linux bot: http://lab.llvm.org:8011/builders/clang-cmake-aarch64-42vma/builds/12180 It looks like the test checks that __llvm_profile_set_filename() alters the raw profile filename in both the dylib and the main program. Now that lprofCurFilename is hidden, this can't work, and we get two profiles (one for the call to "main" and one for "func"). Back this change out so that we don't affect external users. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282304 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-23[profile] Hide lprofCurFilenameVedant Kumar
Differential Revision: https://reviews.llvm.org/D24885 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282294 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-23Fix the following tests when running under cross-compilation:Chad Rosier
Profile-aarch64 :: Linux/comdat_rename.test Profile-aarch64 :: Linux/extern_template.test Profile-aarch64 :: Linux/instrprof-comdat.test Profile-aarch64 :: Linux/instrprof-cs.c The issue is that the created (aarch64) binaries were attempting to run natively instead of running through %run, which guarantees running in the proper environment if the compilation was configured correctly. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282264 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-23[compiler-rt] Fix a broken asan 64-bit test using ld_preloadEtienne Bergeron
Summary: The 'asan_preload_test-1.cc' is not working with the i686 architecture. To repro the error, run on a linux 64-bit: ``` ninja check-asan-dynamic ``` The following error occurs: ``` -- Exit Code: 1 Command Output (stderr): -- /home/llvm/llvm/projects/compiler-rt/test/asan/TestCases/Linux/asan_preload_test-1.cc:18:12: error: expected string not found in input // CHECK: AddressSanitizer: heap-buffer-overflow ^ <stdin>:1:1: note: scanning from here ERROR: ld.so: object 'libclang_rt.asan-i686.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ^ <stdin>:2:10: note: possible intended match here ==25982==AddressSanitizer CHECK failed: /home/llvm/llvm/projects/compiler-rt/lib/asan/asan_interceptors.cc:736 "((__interception::real_memcpy)) != (0)" (0x0, 0x0) ``` The unittest is running (where %shared_libasan is replaced by libclang_rt.asan-i686.so): ``` // RUN: env LD_PRELOAD=%shared_libasan not %run %t 2>&1 | FileCheck %s ``` But the executable also has a dependancy on libclang_rt.asan-i386.so (added by the clang driver): ``` linux-gate.so.1 => (0xf77cc000) libclang_rt.asan-i386.so => not found libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf76ba000) libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7673000) libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7656000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf74a7000) ``` By looking to the clang driver (tools.cpp) we can see that every x86 architecture are mapped to 'i386'. ``` StringRef MyArch; switch (getToolChain().getArch()) { case llvm::Triple::arm: MyArch = "arm"; break; case llvm::Triple::x86: MyArch = "i386"; break; case llvm::Triple::x86_64: MyArch = "amd64"; break; default: llvm_unreachable("Unsupported architecture"); } ``` This patch is implementing the same mapping but in the compiler-rt unittest. Reviewers: rnk, vitalybuka Subscribers: aemerson, kubabrecka, dberris, llvm-commits, chrisha Differential Revision: https://reviews.llvm.org/D24838 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282263 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-23[asan] Stop appending -lm, -pthread and other linker options on Darwin for ↵Kuba Brecka
ASan unit tests On Darwin, -lm, -pthread and others are implied. -pthread currently produces a warning (compiler option unused). Differential Revision: https://reviews.llvm.org/D24698 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282260 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-23[compiler-rt][lsan] Fix compiler error due to attribute (windows)Etienne Bergeron
Summary: Window compiler is stricter for attributes location. This patch fixes a compilation error. ``` D:\src\llvm\llvm\projects\compiler-rt\lib\lsan\lsan_thread.cc(39): error C2144: syntax error: 'int' should be preceded by ';' ``` Reviewers: rnk, majnemer Subscribers: majnemer, llvm-commits, chrisha, dberris Differential Revision: https://reviews.llvm.org/D24810 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282254 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-23[msan] Prevent initialization failure with newer (2.23+) glibc in use.Maxim Ostapenko
This patch is pretty the same as http://reviews.llvm.org/D20235 that we used for ASan. Using the same hack for MSan fixes its initialization with newer Glibc in use. Differential Revision: https://reviews.llvm.org/D24736 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282232 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-22[Profile] Remove unused variableXinliang David Li
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282198 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-22[Profile] suppress verbose rt message by defaultXinliang David Li
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282193 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-22cfi: Fixes for check-cfi when configured as an external project.Peter Collingbourne
Differential Revision: https://reviews.llvm.org/D24817 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282189 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-22tsan: fix bug introduced in 282152Dmitry Vyukov
In ShadowToMem we call MemToShadow potentially for incorrect addresses. So DCHECK(IsAppMem(p)) can fire in debug mode. Fix this by swapping range and MemToShadow checks. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282157 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-22tsan: support pie binaries on newer kernelsDmitry Vyukov
4.1+ Linux kernels map pie binaries at 0x55: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=d1fd836dcf00d2028c700c7e44d2c23404062c90 Currently tsan does not support app memory at 0x55 (https://github.com/google/sanitizers/issues/503). Older kernels also map pie binaries at 0x55 when ASLR is disables (most notably under gdb). This change extends tsan mapping for linux/x86_64 to cover 0x554-0x568 app range and fixes both 4.1+ kernels and gdb. This required to slightly shrink low and high app ranges and move heap. The mapping become even more non-linear, since now we xor lower bits. Now even a continuous app range maps to split, intermixed shadow ranges. This breaks ShadowToMemImpl as it assumes linear mapping at least within a continuous app range (however it turned out to be already broken at least on arm64/42-bit vma as uncovered by r281970). So also change ShadowToMemImpl to hopefully a more robust implementation that does not assume a linear mapping. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282152 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-22[ESan][MIPS] Fix tests struct-simple.cpp on MIPSSagar Thakur
For mips assember '#' is the start of comment. We get assembler error messages if # is used in the struct names. Therefore using '$' which works for all architectures. Differential: D24335 Reviewed by: zhaoqin git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282142 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-21[asan] Reify ErrorGenericFilipe Cabecinhas
Summary: Finish work on PR30351 (last one, after D24551, D24552, and D24554 land) Also replace the old ReportData structure/variable with the current_error_ static member of the ScopedInErrorReport class. This has the following side-effects: - Move ASAN_ON_ERROR(); call to the start of the destructor, instead of in StartReporting(). - We only generate the error structure after the ScopedInErrorReport constructor finishes, so we can't call ASAN_ON_ERROR() during the constructor. I think this makes more sense, since we end up never running two of the ASAN_ON_ERROR() callback. This also works the same way as error reporting, since we end up having a lock around it. Otherwise we could end up with the ASAN_ON_ERROR() call for error 1, then the ASAN_ON_ERROR() call for error 2, and then lock the mutex for reporting error 1. - The __asan_get_report_* functions will be able to, in the future, provide information about other errors that aren't a "generic error". But we might want to rethink that API, since it's too restricted. Ideally we teach lldb about the current_error_ member of ScopedInErrorReport. Reviewers: vitalybuka, kcc, eugenis Subscribers: kubabrecka, llvm-commits Differential Revision: https://reviews.llvm.org/D24555 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282107 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-21[asan] Store full AddressDescription objects in ErrorInvalidPointerPairFilipe Cabecinhas
Reviewers: kcc, vitalybuka, eugenis Subscribers: kubabrecka, llvm-commits Differential Revision: https://reviews.llvm.org/D24777 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282102 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-21revert 282085, 281909, they broke 32-bit dynamic ASan and the ↵Nico Weber
sanitizer-windows bot git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282096 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-21Remove obsolete XFAIL.Nico Weber
The sanitizer-windows bot is currently red because this test unexpectedly passes. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282095 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-21Fix typo in comment [NFC]Etienne Bergeron
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282092 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-21[compiler-rt] Fix Asan build on AndroidEtienne Bergeron
Summary: The dynamic shadow code is not detected correctly on Android. The android shadow seems to start at address zero. The bug is introduced here: https://reviews.llvm.org/D23363 Started here: https://build.chromium.org/p/chromium.fyi/builders/ClangToTAndroidASan/builds/4029 Likely due to an asan runtime change, filed https://llvm.org/bugs/show_bug.cgi?id=30462 From asan_mapping.h: ``` #if SANITIZER_WORDSIZE == 32 # if SANITIZER_ANDROID # define SHADOW_OFFSET (0) <<---- HERE # elif defined(__mips__) ``` Shadow address on android is 0. From asan_rtl.c: ``` if (shadow_start == 0) { [...] shadow_start = FindAvailableMemoryRange(space_size, alignment, granularity); } ``` We assumed that 0 is dynamic address. On windows, the address was determined with: ``` # elif SANITIZER_WINDOWS64 # define SHADOW_OFFSET __asan_shadow_memory_dynamic_address # else ``` and __asan_shadow_memory_dynamic_address is initially zero. Reviewers: rnk, eugenis, vitalybuka Subscribers: kcc, tberghammer, danalbert, kubabrecka, dberris, llvm-commits, chrisha Differential Revision: https://reviews.llvm.org/D24768 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282085 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-21Revert "[sanitizers] Update sanitizers test to better match glibc internals"Diana Picus
This reverts commit r282061 because it broke the clang-cuda-build bot. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282064 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-21[sanitizers] Update sanitizers test to better match glibc internalsDiana Picus
One of the tests relying on sem_t's layout gets the wrong value for versions of glibc newer than 2.21 on platforms that don't have 64-bit atomics (e.g. ARM). This commit fixes the test to work with: * versions of glibc >= 2.21 on platforms with 64-bit atomics: unchanged * versions of glibc >= 2.21 on platforms without 64-bit atomics: the semaphore value is shifted by SEM_VALUE_SHIFT (which is set to 1 in glibc's internal headers) * versions of glibc < 2.21: unchanged See the glibc 2.23 sources: * sysdeps/nptl/internaltypes.h (struct new_sem for glibc >= 2.21 and struct old_sem for glibc < 2.21) * nptl/sem_getvalue.c This was uncovered on one of the new buildbots that we are trying to move to production. Differential Revision: https://reviews.llvm.org/D24766 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282061 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-21[CMake] Rename back SIMPLE_SOURCE to compile as C++Jonas Hahnfeld
This was changed in rL276151 and causes problems if the C++ compiler does not support the same arches as the C compiler. For the builtins, only the C compiler is tested in try_compile_only. Additionally, -fno-exceptions is passed in (if available) to work around the case where no libunwind is available. Differential Revision: https://reviews.llvm.org/D23654 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282054 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-20Revert "[CMake] Explicitly add --target option to compiler flags"Chris Bieneman
This reverts commit r282024. This broke some bots, and I'm going to revert while I figure it out. See: http://lab.llvm.org:8011/builders/clang-x86_64-linux-abi-test/builds/21120 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282033 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-20[scudo] Fix a bug in the new Secondary AllocatorKostya Kortchinsky
Summary: GetActuallyAllocatedSize() was not accounting for the last page of the mapping being a guard page, and was returning the wrong number of actually allocated bytes, which in turn would mess up with the realloc logic. Current tests didn't find this as the size exercised was only serviced by the Primary. Correct the issue by subtracting PageSize, and update the realloc test to exercise paths in both the Primary and the Secondary. Reviewers: kcc Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D24787 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282030 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-20[CMake] Fix error preventing simulator sanitizers from buildingChris Bieneman
This should be checking for sim archs not target archs. This bug has been around for a long time. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282025 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-20[CMake] Explicitly add --target option to compiler flagsChris Bieneman
Summary: Much of the non-Darwin build system assumes that COMPILER_RT_DEFAULT_TARGET_TRIPLE is the default target triple for the compiler being used. With clang as your compiler this isn't necessarily true. To ensure that the rest of the build system behaves as expected this patch adds "--target=${COMPILER_RT_DEFAULT_TARGET_TRIPLE}" to the compiler flags for C, CXX and ASM sources. Reviewers: compnerd, rengolin, fjricci Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D24156 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282024 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-20[asan] Add C++17 aligned new/delete entrypoints. Patch by Jakub Jelinek, see ↵Kostya Serebryany
https://reviews.llvm.org/D24771 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282019 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-20XFAIL cfi/stats.cpp on Windows until we fix LLDReid Kleckner
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282018 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-20[asan] Fix GlobalAddressDescription::Print()Filipe Cabecinhas
Summary: Check bug_type for nullptr before calling internal_strcmp Reviewers: kcc, vitalybuka, eugenis Subscribers: kubabrecka, llvm-commits Differential Revision: https://reviews.llvm.org/D24773 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@282012 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-20tsan: revert r281970Dmitry Vyukov
r281970 extended the check in a useful way, but caused (true) failures on aarch64. Revert it for now. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@281992 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-20[XRay] ARM 32-bit no-Thumb support in compiler-rtDean Michael Berris
This is a port of XRay to ARM 32-bit, without Thumb support yet. This is one of 3 commits to different repositories of XRay ARM port. The other 2 are: https://reviews.llvm.org/D23931 (LLVM) https://reviews.llvm.org/D23932 (Clang test) Differential Revision: https://reviews.llvm.org/D23933 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@281971 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-20tsan: check more addresses in CheckShadowMappingDmitry Vyukov
There is still a handful of them, so should not slow down tsan apps. But gives assurance if we change/complicate shadow mappings. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@281970 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-20tsan: make CHECK more robustDmitry Vyukov
Enable more ignores when we start crashing. Unwind in CHECK SIGSEGVs if happens early: FATAL: ThreadSanitizer CHECK failed: ../projects/compiler-rt/lib/tsan/rtl/tsan_platform_posix.cc:105 "((beg)) <= ((end))" (0x8000000000, 0x4000000000) Program received signal SIGSEGV, Segmentation fault. __tsan::MetaMap::GetAndLock (this=0x1337c88 <__tsan::ctx_placeholder+8>, thr=thr@entry=0x7ffff7f91800, pc=pc@entry=4639488, addr=addr@entry=140737339086992, write_lock=write_lock@entry=true, create=create@entry=true) at ../projects/compiler-rt/lib/tsan/rtl/tsan_sync.cc:208 208 u32 idx0 = *meta; (gdb) bt #0 __tsan::MetaMap::GetAndLock (this=0x1337c88 <__tsan::ctx_placeholder+8>, thr=thr@entry=0x7ffff7f91800, pc=pc@entry=4639488, addr=addr@entry=140737339086992, write_lock=write_lock@entry=true, create=create@entry=true) at ../projects/compiler-rt/lib/tsan/rtl/tsan_sync.cc:208 #1 0x00000000004a965f in __tsan::MetaMap::GetOrCreateAndLock (this=<optimized out>, thr=thr@entry=0x7ffff7f91800, pc=pc@entry=4639488, addr=addr@entry=140737339086992, write_lock=write_lock@entry=true) at ../projects/compiler-rt/lib/tsan/rtl/tsan_sync.cc:198 #2 0x00000000004a162a in __tsan::Release (thr=0x7ffff7f91800, pc=pc@entry=4639488, addr=addr@entry=140737339086992) at ../projects/compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cc:395 #3 0x000000000046cc40 in __interceptor_pthread_once (o=0x7ffff71a5890 <once_regsizes>, f=0x7ffff6f9d9c0 <init_dwarf_reg_size_table>) at ../projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:1334 #4 0x00007ffff6f9fe86 in __gthread_once (__func=0x7ffff6f9d9c0 <init_dwarf_reg_size_table>, __once=0x7ffff71a5890 <once_regsizes>) at ./gthr-default.h:699 #5 uw_init_context_1 (context=context@entry=0x7fffffffd6d0, outer_cfa=outer_cfa@entry=0x7fffffffd980, outer_ra=0x437d13 <__sanitizer::BufferedStackTrace::SlowUnwindStack(unsigned long, unsigned int)+67>) at ../../../src/libgcc/unwind-dw2.c:1572 #6 0x00007ffff6fa06a8 in _Unwind_Backtrace (trace=0x437c30 <__sanitizer::Unwind_Trace(_Unwind_Context*, void*)>, trace_argument=0x7fffffffd980) at ../../../src/libgcc/unwind.inc:283 #7 0x0000000000437d13 in __sanitizer::BufferedStackTrace::SlowUnwindStack (this=0x7ffff6103208, pc=pc@entry=4863574, max_depth=max_depth@entry=256) at ../projects/compiler-rt/lib/sanitizer_common/sanitizer_unwind_linux_libcdep.cc:125 #8 0x0000000000434f4a in __sanitizer::BufferedStackTrace::Unwind (this=this@entry=0x7ffff6103208, max_depth=max_depth@entry=256, pc=pc@entry=4863574, bp=bp@entry=0, context=context@entry=0x0, stack_top=stack_top@entry=0, stack_bottom=stack_bottom@entry=0, request_fast_unwind=request_fast_unwind@entry=false) at ../projects/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_libcdep.cc:76 #9 0x00000000004a36b3 in PrintCurrentStackSlow (pc=4863574) at ../projects/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cc:696 #10 __tsan::TsanCheckFailed (file=<optimized out>, line=<optimized out>, cond=<optimized out>, v1=<optimized out>, v2=<optimized out>) at ../projects/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cc:44 #11 0x000000000042dfd6 in __sanitizer::CheckFailed (file=file@entry=0x4b9fd0 "../projects/compiler-rt/lib/tsan/rtl/tsan_platform_posix.cc", line=line@entry=105, cond=cond@entry=0x4ba049 "((beg)) <= ((end))", v1=v1@entry=549755813888, v2=v2@entry=274877906944) at ../projects/compiler-rt/lib/sanitizer_common/sanitizer_termination.cc:79 #12 0x00000000004aa36c in ProtectRange (end=274877906944, beg=549755813888) at ../projects/compiler-rt/lib/tsan/rtl/tsan_platform_posix.cc:105 #13 __tsan::CheckAndProtect () at ../projects/compiler-rt/lib/tsan/rtl/tsan_platform_posix.cc:133 #14 0x00000000004a9e95 in __tsan::InitializePlatform () at ../projects/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc:280 #15 0x0000000000497e73 in __tsan::Initialize (thr=0x7ffff7f91800) at ../projects/compiler-rt/lib/tsan/rtl/tsan_rtl.cc:343 #16 0x00007ffff7dea25a in _dl_init (main_map=0x7ffff7ffe1c8, argc=1, argv=0x7fffffffdb88, env=0x7fffffffdb98) at dl-init.c:111 #17 0x00007ffff7ddb30a in _dl_start_user () at rtld.c:871 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@281969 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-19[scudo] Modify Scudo to use its own Secondary AllocatorKostya Kortchinsky
Summary: The Sanitizer Secondary Allocator was not entirely ideal was Scudo for several reasons: decent amount of unneeded code, redundant checks already performed by the front end, unneeded data structures, difficulty to properly protect the secondary chunks header. Given that the second allocator is pretty straight forward, Scudo will use its own, trimming all the unneeded code off of the Sanitizer one. A significant difference in terms of security is that now each secondary chunk is preceded and followed by a guard page, thus mitigating overflows into and from the chunk. A test was added as well to illustrate the overflow & underflow situations into the guard pages. Reviewers: kcc Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D24737 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@281938 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-19[compiler-rt] Add support for the dynamic shadow allocationEtienne Bergeron
Summary: This patch is adding the needed code to compiler-rt to support dynamic shadow. This is to support this patch: https://reviews.llvm.org/D23354 It's adding support for using a shadow placed at a dynamic address determined at runtime. The dynamic shadow is required to work on windows 64-bits. Reviewers: rnk, kcc, vitalybuka Subscribers: kubabrecka, dberris, llvm-commits, chrisha Differential Revision: https://reviews.llvm.org/D23363 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@281909 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-19[sanitizer] rename __sanitizer_symbolize_data to ↵Kostya Serebryany
__sanitizer_symbolize_global (to avoid conflict with another definition) git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@281902 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-19[sanitizer] add __sanitizer_symbolize_data (can only print the names of the ↵Kostya Serebryany
globals for now) git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@281886 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-17[tsan] Update fork_atexit.cc to consistently print to stderr (and not stdout)Kuba Brecka
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@281821 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-17[tsan] Update signal_cond.cc to write to stderr intead of stdoutKuba Brecka
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@281820 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-17[compiler-rt] Disable building of profiling runtime when LLVM_USE_SANITIZER ↵Kuba Brecka
is set Currently, when doing a ASanified build of LLVM (with Clang, compiler-rt and libcxx) via -DLLVM_USE_SANITIZER=Address and not using any other options, we already disable building of sanitizer runtimes (because they themselves can’t be sanitized) and also exclude the sanitizer tests. However, the same is not done for the profiling runtime, which will build fine, but then all the tests fail due to linking errors. Let’s disable the profiling runtime as well (when LLVM_USE_SANITIZER is set). Differential Revision: https://reviews.llvm.org/D24657 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@281815 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-16Remove undefined weak hooks from dll thunk export list to really fix windows ↵Reid Kleckner
build git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@281747 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-16[compiler-rt] Don't force ASAN_HAS_EXCEPTIONS to be true for all buildsFrancis Ricci
Summary: This value is already defaulted to true in asan_internal.h. Allow the value to be overriden in cases where exceptions are unavailable. Reviewers: kcc, samsonov, compnerd Subscribers: kubabrecka, dberris, beanz, mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D24633 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@281746 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-16[asan] Remove the test as the fix is going to be removedVitaly Buka
Summary: I need to redu solution, existing is not good enough. PR28267 Reviewers: eugenis Subscribers: llvm-commits, kubabrecka Differential Revision: https://reviews.llvm.org/D24490 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@281687 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-15[asan] fix window buildKostya Serebryany
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@281679 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-15[asan] provide dummy implementations for __sanitizer_cov_trace_pc_*Kostya Serebryany
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@281677 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-15[asan] Reenable 64-bit allocator on android/aarch64.Evgeniy Stepanov
This is a re-commit of r281371, with updated tests. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@281674 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-15[sanitizer] Fixup 2: Do not introduce __sanitizer namespace globallyAnna Zaks
This got committed by mistake. Should fix some bots. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@281668 91177308-0d34-0410-b5e6-96231b3b80d8