• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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