Commit Graph

6210 Commits

Author SHA1 Message Date
Dmitry Vyukov 3dd7fe6d86 tsan: replace macro check with constant check
As per comments in 252892 commit.

llvm-svn: 253216
2015-11-16 15:55:38 +00:00
Adhemerval Zanella 2f7f5e3535 [compiler-rt] [tsan] Enable intercept setjmp/longjmp for AArch64
This patch adds assembly routines to enable setjmp/longjmp for aarch64
on linux.  It fixes:

 * test/tsan/longjmp2.cc
 * test/tsan/longjmp3.cc
 * test/tsan/longjmp4.cc
 * test/tsan/signal_longjmp.cc

I also checked with perlbench from specpu2006 (it fails to run
with missing setjmp/longjmp intrumentation).

llvm-svn: 253205
2015-11-16 13:55:19 +00:00
Yury Gribov bdf8751609 [asan] Restored asynch signal test.
llvm-svn: 253204
2015-11-16 13:54:32 +00:00
Kuba Brecka 04d512133f Reverting r253080 ([tsan] Don't demangle names not starting with "_Z").
This caused bot failures on ARM, e.g. http://lab.llvm.org:8011/builders/clang-cmake-armv7-a15-full/builds/9068

llvm-svn: 253129
2015-11-14 10:42:08 +00:00
Kostya Serebryany fb484cedb4 [asan] add an experimental flag protect_shadow_gap. If set to false, the shadow gap will not be mprotect-ed and all hell may break loose. But this makes CUDA's cuInit() pass.
llvm-svn: 253108
2015-11-14 00:50:23 +00:00
Xinliang David Li b6c81d2b92 [PGO] Ensure profile section symbols are created (linux)
- This is to handle a corner case where profile lib is linked
  in but non of the modules are instrumented (On linux, since
  we avoided the overhead to emit runtime hook use functions so
  this is the side effect of that size optimization).
- Added a profile runtime test case to cover all scenarios of
  shared library builds. 

Differential Revision: http://reviews.llvm.org/D14468

llvm-svn: 253098
2015-11-13 22:33:07 +00:00
Kuba Brecka 1f219dcb98 [tsan] Don't demangle names not starting with "_Z"
I noticed that when a symbol is named just "x", it gets demangled to "long long". On POSIX, AFAIK, mangled names always start with "_Z", so lets just require that.

Differential Revision: http://reviews.llvm.org/D14637

llvm-svn: 253080
2015-11-13 20:47:29 +00:00
Kuba Brecka 7291b88e9a [tsan] Fix finalization of detached threads on OS X
Currently, we crash on finalization of detached threads, because we'll try to clear the ThreadState twice.

Differential Revision: http://reviews.llvm.org/D14644

llvm-svn: 253079
2015-11-13 20:45:27 +00:00
Kuba Brecka d07e069d79 [tsan] Fix a typo in tsan_test_util.h
There is a typo in tsan_test_util.h, it shouldn't be `APPLE`, but `__APPLE__`.

Differential Revision: http://reviews.llvm.org/D14647

llvm-svn: 253078
2015-11-13 20:42:57 +00:00
Kuba Brecka 52d02ab9d9 [tsan] Expect memmove interceptor to be called from memcpy
On OS X, memcpy and memmove are actually aliases of the same function, so the memmove interceptor can be invoked on a call to memcpy. This patch updates the tests to expect either memmove or memcpy on a stack trace.

Differential Revision: http://reviews.llvm.org/D14638

llvm-svn: 253077
2015-11-13 20:41:37 +00:00
Kuba Brecka 6c0b367297 [tsan] Mark dl_iterate_phdr.cc test as unsupported on OS X
The dl_iterate_phdr is not present on OS X.

Differential Revision: http://reviews.llvm.org/D14643

llvm-svn: 253076
2015-11-13 20:40:02 +00:00
Kuba Brecka 770dac4382 [tsan] Don't require full paths to be present on stack traces
The OS X symbolizers (namely AtosSymbolizer) don't return full file paths, only file names. This patch modifies `mutexset*.cc` tests not to require a path to be present in the symbol on the stack trace.

Differential Revision: http://reviews.llvm.org/D14642

llvm-svn: 253075
2015-11-13 20:36:08 +00:00
Chris Bieneman 4f7f57e166 [CMake] [macho_embedded] [builtins] Always use OS X sysroot, even for arm.
Turns out that there are some checks in the backend that change code generation for armv7 if you are building against an iOS sys root. For the macho_embedded builtins we really don't want that.

llvm-svn: 253064
2015-11-13 19:14:58 +00:00
Yury Gribov 7e3c7ee0b1 [asan] Fixed invalid check in test.
llvm-svn: 253037
2015-11-13 12:49:58 +00:00
Yury Gribov eed2daa80c [asan] Dump test output in case of error in single-threaded mode.
llvm-svn: 253035
2015-11-13 12:07:15 +00:00
Yury Gribov a085297030 [asan] Fix test to properly handle collisions.
llvm-svn: 253025
2015-11-13 10:32:13 +00:00
Yury Gribov b2f75136d1 [asan] Fix silly error when reporting multiple ASan errors in parallel.
llvm-svn: 253022
2015-11-13 09:46:12 +00:00
Yury Gribov 1e89f53902 [asan] Get rid of rand_r (not available on all targets).
llvm-svn: 253021
2015-11-13 09:43:30 +00:00
Kuba Brecka 49fd0c138d [tsan] Add global symbolication support into AtosSymbolizer
This patch adds support for symbolication of globals (implements `SymbolizeData`) for `AtosSymbolizer` on OS X.

Differential Revision: http://reviews.llvm.org/D14618

llvm-svn: 253015
2015-11-13 06:45:49 +00:00
Martell Malone 5b7658c1a4 compiler-rt: add make solution to bootstrap mingw-w64
Differential Revision: http://reviews.llvm.org/D14290

llvm-svn: 252976
2015-11-13 00:21:34 +00:00
Chris Bieneman 14679e9f68 [CMake] [Darwin] Forcing -fPIC on for all darwin builtins except macho_embedded
We need to add -fPIC to the flags for the builtins in case PIC was turned off at a higher level. We also want to set ENABLE_PIC to Off when building the macho_embedded builtins so the top-level settings don't impact that build.

llvm-svn: 252966
2015-11-12 22:37:03 +00:00
Chris Bieneman 73d0562542 [CMake] [Darwin] [Builitins] Removing muloti4 from the blacklists for arm.
llvm-svn: 252965
2015-11-12 22:37:01 +00:00
Chris Bieneman 77e5eea728 [CMake] [Darwin] [Builtins] Sorting and uniquing blacklists. NFC.
llvm-svn: 252964
2015-11-12 22:36:57 +00:00
Reid Kleckner b8e3bff98a [Windows] Fix halt_on_error-1.c test on Windows with %env_asan_opts
llvm-svn: 252958
2015-11-12 21:58:28 +00:00
Evgeniy Stepanov 833c75e554 [asan] Mark halt_on_error-torture test unsupported on android.
Android libc is missing rand_r until API 21. ASan supports API 19.

llvm-svn: 252930
2015-11-12 19:30:38 +00:00
Chris Bieneman b3df467fc8 [CMake] [builtins] Removing a few non-source files from the arm list.
I was a little too aggressive about adding sources from the arm subdirectory.

llvm-svn: 252929
2015-11-12 19:27:29 +00:00
Chris Bieneman 7beed7eb6c [CMake] Actually adding the TODO comment I mentioned in r252927.
Turns out you need to save before committing.

llvm-svn: 252928
2015-11-12 19:17:05 +00:00
Chris Bieneman a2151fdceb [CMake] [builtins] Adding missing architecture-specific builtins.
Also added a TODO comment to make the build system throw an error if the CMakeLists gets out of sync again.

llvm-svn: 252927
2015-11-12 19:15:56 +00:00
Dmitry Vyukov b8da794ca1 tsan: fix windows Go build
Go build does not link in whatever library provides these symbols:

# runtime/race
race_windows_amd64.syso:gotsan.cc:(.text+0x578f): undefined reference to `__sanitizer::DumpProcessMap()'
race_windows_amd64.syso:gotsan.cc:(.text+0xee33): undefined reference to `EnumProcessModules'
race_windows_amd64.syso:gotsan.cc:(.text+0xeeb9): undefined reference to `GetModuleInformation'

llvm-svn: 252922
2015-11-12 18:50:19 +00:00
Dmitry Vyukov 8455cf0142 tsan: fix windows Go build
CompareModulesBase is an unused function.

llvm-svn: 252907
2015-11-12 16:29:24 +00:00
Kuba Brecka af9525dfff [tsan] Add global symbolication support into DlAddrSymbolizer
`DlAddrSymbolizer` is used on OS X when we're running inside a sandbox that prevents us from spawning an external symbolizer. This patch adds support for symbolication of globals (implements `SymbolizeData`) for `DlAddrSymbolizer`.

Differential Revision: http://reviews.llvm.org/D14613

llvm-svn: 252899
2015-11-12 15:19:40 +00:00
Kuba Brecka 3ecce92a52 [tsan] Allow symbolizers that don't obtain global symbol sizes
The default symbolizer, `llvm-symbolizer` provides sizes for global symbols. On OS X, we want to also allow using `atos` (because it's available everywhere and users don't need to copy/install it) and `dladdr` (it's the only available option when running in a sandbox). However, these symbolizers do not supply the symbol sizes, only names and starting addresses. This patch changes the reporting functions to hide the size of the symbol when this value is unavailable, and modifies tests to make this part of the report "optional".

Differential Revision: http://reviews.llvm.org/D14608

llvm-svn: 252896
2015-11-12 14:34:17 +00:00
Dmitry Vyukov bab2216dbb tsan: disable abort_on_error for Go
It does not work as expected.
Go runtime handles SIGABRT and crashes with a loud message.

llvm-svn: 252892
2015-11-12 14:03:20 +00:00
Kuba Brecka e342469c0a [tsan] Add a Darwin-specific lit test directory
Differential Revision: http://reviews.llvm.org/D14610

llvm-svn: 252887
2015-11-12 13:27:55 +00:00
Dmitry Vyukov 110094017c tsan: fix Go build on linux
librt is not linked in in Go build.

llvm-svn: 252877
2015-11-12 11:54:25 +00:00
Kuba Brecka ba85da8482 [asan] Remove system_malloc_zone
This seems to be dead code – `system_malloc_zone` is initialized as null and we never assign to it. This code is apparently currently never executed (in ASan), but is causes trouble for the TSan OS X port. Let's replace the checks with `COMMON_MALLOC_ENTER` (`ENSURE_ASAN_INITED()`).

Differential Revision: http://reviews.llvm.org/D14334

llvm-svn: 252876
2015-11-12 11:29:21 +00:00
Dmitry Vyukov 317e98b1a2 tsan: fix unused function warning in Go build
llvm-svn: 252875
2015-11-12 11:14:35 +00:00
Dmitry Vyukov 1421ed42a6 tsan: fix mac Go build
cur_thread does not exist in Go.

llvm-svn: 252874
2015-11-12 11:12:18 +00:00
Kuba Brecka 14fb164a8e [tsan] Filter OS X architectures for unit testing
The TSan unit test build currently fails if we're also building the iOS parts of compiler-rt, because `TSAN_SUPPORTED_ARCH` contains ARM64. For unit tests, we need to filter this only to host architecture(s).

Differential Revision: http://reviews.llvm.org/D14604

llvm-svn: 252873
2015-11-12 11:00:38 +00:00
Dmitry Vyukov 1041aabbb0 tsan: fix flakiness of sleep_sync2 test
llvm-svn: 252869
2015-11-12 10:24:22 +00:00
Kostya Serebryany 673283cc7c [sanitizer coverage] reset global counters in __sanitizer_reset_coverage
llvm-svn: 252815
2015-11-11 22:44:25 +00:00
Chris Bieneman 66c126a042 [CMake] [Darwin] [Builtins] Force setting the flags we care about at the end of the compiler command line
Setting CMAKE_*_FLAGS isn't sufficient here because CMAKE_*_FLAGS_${CMAKE_BUILD_TYPE} can override the flags, and there is no way to safely clear that because it is a cached variable (<sarcasm> YAY! </sarcasm>).

llvm-svn: 252807
2015-11-11 21:38:35 +00:00
Evgeniy Stepanov 77ef54288a [asan] Remove a flaky test.
llvm-svn: 252805
2015-11-11 21:37:12 +00:00
Reid Kleckner 99f23473a1 [Windows] Add exports for dll_host test broken by r252071 and r251071
llvm-svn: 252784
2015-11-11 19:34:01 +00:00
Dmitry Vyukov 3ed274e3ce tsan: fix unused variable in Go build
llvm-svn: 252746
2015-11-11 16:09:20 +00:00
Diego Novillo a245e40a55 Revert r252683 - "Sancov in C++."
This reverts commits r252683 and r252689. This tool should not live here. See
http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20151109/311862.html
for discussion.

llvm-svn: 252744
2015-11-11 15:54:31 +00:00
Yury Gribov 8fbd938641 [ASan] Improve portability of new tests.
llvm-svn: 252742
2015-11-11 15:42:26 +00:00
Kuba Brecka fcbb0ec06e [tsan] Rename tsan_test_util_linux.cc to tsan_test_util_posix.cc
Differential Revision: http://reviews.llvm.org/D14575

llvm-svn: 252741
2015-11-11 15:42:00 +00:00
Jay Foad 305586257c Implement some TLS support for PowerPC64.
Summary: This is enough to get the asan static_tls.cc test case working.

Reviewers: eugenis, samsonov

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D14574

llvm-svn: 252738
2015-11-11 15:37:47 +00:00
Kuba Brecka c603d25a19 Fixing #include order in tsan_new_delete.cc. Follow-up commit for r252284.
llvm-svn: 252735
2015-11-11 15:15:14 +00:00