1*c05d8e5dSAndroid Build Coastguard Worker //===-------------------------- __cxxabi_config.h -------------------------===// 2*c05d8e5dSAndroid Build Coastguard Worker // 3*c05d8e5dSAndroid Build Coastguard Worker // The LLVM Compiler Infrastructure 4*c05d8e5dSAndroid Build Coastguard Worker // 5*c05d8e5dSAndroid Build Coastguard Worker // This file is dual licensed under the MIT and the University of Illinois Open 6*c05d8e5dSAndroid Build Coastguard Worker // Source Licenses. See LICENSE.TXT for details. 7*c05d8e5dSAndroid Build Coastguard Worker // 8*c05d8e5dSAndroid Build Coastguard Worker //===----------------------------------------------------------------------===// 9*c05d8e5dSAndroid Build Coastguard Worker 10*c05d8e5dSAndroid Build Coastguard Worker #ifndef ____CXXABI_CONFIG_H 11*c05d8e5dSAndroid Build Coastguard Worker #define ____CXXABI_CONFIG_H 12*c05d8e5dSAndroid Build Coastguard Worker 13*c05d8e5dSAndroid Build Coastguard Worker #if defined(__arm__) && !defined(__USING_SJLJ_EXCEPTIONS__) && \ 14*c05d8e5dSAndroid Build Coastguard Worker !defined(__ARM_DWARF_EH__) 15*c05d8e5dSAndroid Build Coastguard Worker #define _LIBCXXABI_ARM_EHABI 16*c05d8e5dSAndroid Build Coastguard Worker #endif 17*c05d8e5dSAndroid Build Coastguard Worker 18*c05d8e5dSAndroid Build Coastguard Worker #if !defined(__has_attribute) 19*c05d8e5dSAndroid Build Coastguard Worker #define __has_attribute(_attribute_) 0 20*c05d8e5dSAndroid Build Coastguard Worker #endif 21*c05d8e5dSAndroid Build Coastguard Worker 22*c05d8e5dSAndroid Build Coastguard Worker #if defined(_WIN32) 23*c05d8e5dSAndroid Build Coastguard Worker #if defined(_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS) 24*c05d8e5dSAndroid Build Coastguard Worker #define _LIBCXXABI_HIDDEN 25*c05d8e5dSAndroid Build Coastguard Worker #define _LIBCXXABI_DATA_VIS 26*c05d8e5dSAndroid Build Coastguard Worker #define _LIBCXXABI_FUNC_VIS 27*c05d8e5dSAndroid Build Coastguard Worker #define _LIBCXXABI_TYPE_VIS 28*c05d8e5dSAndroid Build Coastguard Worker #elif defined(_LIBCXXABI_BUILDING_LIBRARY) 29*c05d8e5dSAndroid Build Coastguard Worker #define _LIBCXXABI_HIDDEN 30*c05d8e5dSAndroid Build Coastguard Worker #define _LIBCXXABI_DATA_VIS __declspec(dllexport) 31*c05d8e5dSAndroid Build Coastguard Worker #define _LIBCXXABI_FUNC_VIS __declspec(dllexport) 32*c05d8e5dSAndroid Build Coastguard Worker #define _LIBCXXABI_TYPE_VIS __declspec(dllexport) 33*c05d8e5dSAndroid Build Coastguard Worker #else 34*c05d8e5dSAndroid Build Coastguard Worker #define _LIBCXXABI_HIDDEN 35*c05d8e5dSAndroid Build Coastguard Worker #define _LIBCXXABI_DATA_VIS __declspec(dllimport) 36*c05d8e5dSAndroid Build Coastguard Worker #define _LIBCXXABI_FUNC_VIS __declspec(dllimport) 37*c05d8e5dSAndroid Build Coastguard Worker #define _LIBCXXABI_TYPE_VIS __declspec(dllimport) 38*c05d8e5dSAndroid Build Coastguard Worker #endif 39*c05d8e5dSAndroid Build Coastguard Worker #else 40*c05d8e5dSAndroid Build Coastguard Worker #if !defined(_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS) 41*c05d8e5dSAndroid Build Coastguard Worker #define _LIBCXXABI_HIDDEN __attribute__((__visibility__("hidden"))) 42*c05d8e5dSAndroid Build Coastguard Worker #define _LIBCXXABI_DATA_VIS __attribute__((__visibility__("default"))) 43*c05d8e5dSAndroid Build Coastguard Worker #define _LIBCXXABI_FUNC_VIS __attribute__((__visibility__("default"))) 44*c05d8e5dSAndroid Build Coastguard Worker #if __has_attribute(__type_visibility__) 45*c05d8e5dSAndroid Build Coastguard Worker #define _LIBCXXABI_TYPE_VIS __attribute__((__type_visibility__("default"))) 46*c05d8e5dSAndroid Build Coastguard Worker #else 47*c05d8e5dSAndroid Build Coastguard Worker #define _LIBCXXABI_TYPE_VIS __attribute__((__visibility__("default"))) 48*c05d8e5dSAndroid Build Coastguard Worker #endif 49*c05d8e5dSAndroid Build Coastguard Worker #else 50*c05d8e5dSAndroid Build Coastguard Worker #define _LIBCXXABI_HIDDEN 51*c05d8e5dSAndroid Build Coastguard Worker #define _LIBCXXABI_DATA_VIS 52*c05d8e5dSAndroid Build Coastguard Worker #define _LIBCXXABI_FUNC_VIS 53*c05d8e5dSAndroid Build Coastguard Worker #define _LIBCXXABI_TYPE_VIS 54*c05d8e5dSAndroid Build Coastguard Worker #endif 55*c05d8e5dSAndroid Build Coastguard Worker #endif 56*c05d8e5dSAndroid Build Coastguard Worker 57*c05d8e5dSAndroid Build Coastguard Worker #if defined(_WIN32) 58*c05d8e5dSAndroid Build Coastguard Worker #define _LIBCXXABI_WEAK 59*c05d8e5dSAndroid Build Coastguard Worker #else 60*c05d8e5dSAndroid Build Coastguard Worker #define _LIBCXXABI_WEAK __attribute__((__weak__)) 61*c05d8e5dSAndroid Build Coastguard Worker #endif 62*c05d8e5dSAndroid Build Coastguard Worker 63*c05d8e5dSAndroid Build Coastguard Worker #if defined(__clang__) 64*c05d8e5dSAndroid Build Coastguard Worker #define _LIBCXXABI_COMPILER_CLANG 65*c05d8e5dSAndroid Build Coastguard Worker #endif 66*c05d8e5dSAndroid Build Coastguard Worker 67*c05d8e5dSAndroid Build Coastguard Worker #if __has_attribute(__no_sanitize__) && defined(_LIBCXXABI_COMPILER_CLANG) 68*c05d8e5dSAndroid Build Coastguard Worker #define _LIBCXXABI_NO_CFI __attribute__((__no_sanitize__("cfi"))) 69*c05d8e5dSAndroid Build Coastguard Worker #else 70*c05d8e5dSAndroid Build Coastguard Worker #define _LIBCXXABI_NO_CFI 71*c05d8e5dSAndroid Build Coastguard Worker #endif 72*c05d8e5dSAndroid Build Coastguard Worker 73*c05d8e5dSAndroid Build Coastguard Worker #if defined(__arm__) 74*c05d8e5dSAndroid Build Coastguard Worker # define _LIBCXXABI_GUARD_ABI_ARM 75*c05d8e5dSAndroid Build Coastguard Worker #endif 76*c05d8e5dSAndroid Build Coastguard Worker 77*c05d8e5dSAndroid Build Coastguard Worker #endif // ____CXXABI_CONFIG_H 78