1 //  Copyright (c) 2011-present, Facebook, Inc.  All rights reserved.
2 //  This source code is licensed under both the GPLv2 (found in the
3 //  COPYING file in the root directory) and Apache 2.0 License
4 //  (found in the LICENSE.Apache file in the root directory).
5 
6 #pragma once
7 
8 /**
9  * Macro for marking functions as having public visibility.
10  */
11 #if defined(__GNUC__)
12 #define FOLLY_EXPORT __attribute__((__visibility__("default")))
13 #else
14 #define FOLLY_EXPORT
15 #endif
16 
17 #if defined(__has_feature)
18 #define FOLLY_HAS_FEATURE(...) __has_feature(__VA_ARGS__)
19 #else
20 #define FOLLY_HAS_FEATURE(...) 0
21 #endif
22 
23 #if FOLLY_HAS_FEATURE(thread_sanitizer) || __SANITIZE_THREAD__
24 #ifndef FOLLY_SANITIZE_THREAD
25 #define FOLLY_SANITIZE_THREAD 1
26 #endif
27 #endif
28