Home | History | Annotate | Download | only in v1
      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