From d8ac7afc105255e451b0a560f7d7fe30a26898cf Mon Sep 17 00:00:00 2001 From: Abseil Team Date: Tue, 17 Oct 2017 16:29:27 -0400 Subject: Changes imported from Abseil "staging" branch: - 1434dc58cc24e004531a09bcf1491773d9bf789e Copybara clang-format by Juemin Yang - 6296f0f69b23d406a275b7ce2669ea3b18149bb7 Internal change for git pull request #31 by Juemin Yang - 539940d88cfdf172b4b916d44225cc42839eeee7 Add internal-only ABSL_INTERNAL_HAVE_TSAN_INTERFACE macro. by Daniel Katz - bf85dda4ffdb4dd15084fb8b8db00281481dee90 Add missing pthread.h include to low_level_alloc.cc. by Derek Mauro GitOrigin-RevId: 1434dc58cc24e004531a09bcf1491773d9bf789e Change-Id: I68d6957b0cac32020e4e34dca3243f2f270a4b9c --- absl/base/internal/low_level_alloc.cc | 1 + absl/base/internal/tsan_mutex_interface.h | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) (limited to 'absl/base/internal') diff --git a/absl/base/internal/low_level_alloc.cc b/absl/base/internal/low_level_alloc.cc index 08f89ea9..8e2f9c98 100644 --- a/absl/base/internal/low_level_alloc.cc +++ b/absl/base/internal/low_level_alloc.cc @@ -30,6 +30,7 @@ #ifndef ABSL_LOW_LEVEL_ALLOC_MISSING #ifndef _WIN32 +#include #include #include #include diff --git a/absl/base/internal/tsan_mutex_interface.h b/absl/base/internal/tsan_mutex_interface.h index a1303e67..6bb4faed 100644 --- a/absl/base/internal/tsan_mutex_interface.h +++ b/absl/base/internal/tsan_mutex_interface.h @@ -19,7 +19,22 @@ #ifndef ABSL_BASE_INTERNAL_TSAN_MUTEX_INTERFACE_H_ #define ABSL_BASE_INTERNAL_TSAN_MUTEX_INTERFACE_H_ -#ifdef THREAD_SANITIZER +// ABSL_INTERNAL_HAVE_TSAN_INTERFACE +// Macro intended only for internal use. +// +// Checks whether LLVM Thread Sanitizer interfaces are available. +// First made available in LLVM 5.0 (Sep 2017). +#ifdef ABSL_INTERNAL_HAVE_TSAN_INTERFACE +#error "ABSL_INTERNAL_HAVE_TSAN_INTERFACE cannot be directly set." +#endif + +#if defined(THREAD_SANITIZER) && defined(__has_include) +#if __has_include() +#define ABSL_INTERNAL_HAVE_TSAN_INTERFACE 1 +#endif +#endif + +#ifdef ABSL_INTERNAL_HAVE_TSAN_INTERFACE #include #define ABSL_TSAN_MUTEX_CREATE __tsan_mutex_create -- cgit v1.2.3