1//===-------------------------- __cxxabi_config.h -------------------------===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is dual licensed under the MIT and the University of Illinois Open
6// Source Licenses. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef ____CXXABI_CONFIG_H
11#define ____CXXABI_CONFIG_H
12
13#if defined(__arm__) && !defined(__USING_SJLJ_EXCEPTIONS__) &&                 \
14    !defined(__ARM_DWARF_EH__)
15#define LIBCXXABI_ARM_EHABI 1
16#else
17#define LIBCXXABI_ARM_EHABI 0
18#endif
19
20#if !defined(__has_attribute)
21#define __has_attribute(_attribute_) 0
22#endif
23
24#if defined(_WIN32)
25 #if defined(_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS)
26  #define _LIBCXXABI_HIDDEN
27  #define _LIBCXXABI_DATA_VIS
28  #define _LIBCXXABI_FUNC_VIS
29  #define _LIBCXXABI_TYPE_VIS
30 #elif defined(_LIBCXXABI_BUILDING_LIBRARY)
31  #define _LIBCXXABI_HIDDEN
32  #define _LIBCXXABI_DATA_VIS __declspec(dllexport)
33  #define _LIBCXXABI_FUNC_VIS __declspec(dllexport)
34  #define _LIBCXXABI_TYPE_VIS __declspec(dllexport)
35 #else
36  #define _LIBCXXABI_HIDDEN
37  #define _LIBCXXABI_DATA_VIS __declspec(dllimport)
38  #define _LIBCXXABI_FUNC_VIS __declspec(dllimport)
39  #define _LIBCXXABI_TYPE_VIS __declspec(dllimport)
40 #endif
41#else
42 #if !defined(_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS)
43  #define _LIBCXXABI_HIDDEN __attribute__((__visibility__("hidden")))
44  #define _LIBCXXABI_DATA_VIS __attribute__((__visibility__("default")))
45  #define _LIBCXXABI_FUNC_VIS __attribute__((__visibility__("default")))
46  #if __has_attribute(__type_visibility__)
47   #define _LIBCXXABI_TYPE_VIS __attribute__((__type_visibility__("default")))
48  #else
49   #define _LIBCXXABI_TYPE_VIS __attribute__((__visibility__("default")))
50  #endif
51 #else
52  #define _LIBCXXABI_HIDDEN
53  #define _LIBCXXABI_DATA_VIS
54  #define _LIBCXXABI_FUNC_VIS
55  #define _LIBCXXABI_TYPE_VIS
56 #endif
57#endif
58
59#endif // ____CXXABI_CONFIG_H
60