[asan] Fix Android configure/make build.

Mirror recent cmake changes in the configure/make build system.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@202793 91177308-0d34-0410-b5e6-96231b3b80d8
[CMake] Fix add_sanitizer_rt_symbols on multi-config CMake generators.

Patch by Brad King.

When using a multi-config generator with CMake, such as for VS or Xcode,
the LOCATION target property value contains a placeholder such as
"$(Configuration)" that is meant for substitution by the native build
tool. The install(FILES) command does not understand this name and will
not install the symbols file correctly when using these generators.

Teach add_sanitizer_rt_symbols to read the more-specific target property
LOCATION_<CONFIG> that has a per-configuration value and no placeholder.
On single-configuration generators (Makefile, Ninja), CMAKE_BUILD_TYPE
contains the name of the one configuration to be built.  On multi-config
generators (VS, Xcode), CMAKE_CONFIGURATION_TYPES contains the list of
possible configurations.  In the latter case, loop over the configs and
add a configuration-specific install(FILES) rule for each one.

Place the code block inside an if(TRUE) block so it can be made
conditional in a following change without updating indentation.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@202796 91177308-0d34-0410-b5e6-96231b3b80d8
[CMake] Port add_sanitizer_rt_symbols to CMake 3.0

Patch by Brad King.

Our add_sanitizer_rt_symbols macro reads the LOCATION property of a
library to compute the location of the "lib<name>.a.syms" file to
generate next to the corresponding "lib<name>.a" library file.  CMake
3.0 introduces policy CMP0026 to disallow reading of the LOCATION target
property from non-imported targets in favor of the more powerful
$<TARGET_FILE> generator expression.

Teach add_sanitizer_rt_symbols to use the $<TARGET_FILE> generator
expression to compute the location of the symbols file to generate
with a custom command.  CMake 3.0 also adds support for generator
expressions to install(FILES) so use it when available to simplify
installation of the symbols file of the proper configuration.


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@202797 91177308-0d34-0410-b5e6-96231b3b80d8
A set of trivial changes to support sanitizers on FreeBSD.

Patch by Viktor Kutuzov!


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@202801 91177308-0d34-0410-b5e6-96231b3b80d8
ARM: implement __sync_fetch_and_* operations

Since these are primarily useful for deeply embedded targets where code size is
very important, they are each in a separate file making use of infrastructure
in sync-ops.h. This allows a linker to include just the functions that are
actually used.

rdar://problem/14736665

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@202812 91177308-0d34-0410-b5e6-96231b3b80d8
tsan: move all pthread_cond interceptors into sanitizer_common



git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@202813 91177308-0d34-0410-b5e6-96231b3b80d8
ARM: fix built-bots trying to use Thumb2 code on armv6m

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@202819 91177308-0d34-0410-b5e6-96231b3b80d8
tsan: fix pthread_cond interceptors
currently tsan hangs when linked with a shared library linked against an old version of pthread
this change is another attempt to fix pthread_cond interceptors in different scenarios
see the comment for implementation details



git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@202820 91177308-0d34-0410-b5e6-96231b3b80d8
tsan: add concurrent hashmap for standalone deadlock detector



git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@202826 91177308-0d34-0410-b5e6-96231b3b80d8
tsan: fix windows build



git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@202831 91177308-0d34-0410-b5e6-96231b3b80d8
Avoid doing any work when unwinding stack traces with 0 or 1 frame

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@202837 91177308-0d34-0410-b5e6-96231b3b80d8
[msan] Add missing line to getxattr() test.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@202841 91177308-0d34-0410-b5e6-96231b3b80d8
tsan: add dynamic library target for standalone deadlock detector
it's LD_PRELOAD-able




git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@202843 91177308-0d34-0410-b5e6-96231b3b80d8
[ASan] Speed up stack trace unwinding for stacks of size 2.

Summary:
We don't need to do any work in this case - just take
the current PC and caller PC.

Reviewers: eugenis, ygribov

Reviewed By: eugenis

CC: llvm-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D2936

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@202845 91177308-0d34-0410-b5e6-96231b3b80d8
[msan] Make up for missing interceptor in getxattr() test.

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@202846 91177308-0d34-0410-b5e6-96231b3b80d8
[CMake] Test for libdl and libpthread presence

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@202847 91177308-0d34-0410-b5e6-96231b3b80d8
Fix StackTrace::LocatePcInTrace, add more unit tests for generic StackTrace

git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@202849 91177308-0d34-0410-b5e6-96231b3b80d8
tsan: attempt to fix darwin build
everything except linux does not need this hackery with pthread_cond



git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@202850 91177308-0d34-0410-b5e6-96231b3b80d8
tsan: add another missing windows atomic operation



git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@202852 91177308-0d34-0410-b5e6-96231b3b80d8
tsan: add interceptors for pthread_spinlock_t and ptread_rwlock_t for deadlock detector


git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@202947 91177308-0d34-0410-b5e6-96231b3b80d8