__cxxabi_config.h revision 436072f52ff05d69f626a9c7a309a1464758f129
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(_LIBCXXABI_DLL) 25 #if defined(cxxabi_EXPORTS) 26 #define _LIBCXXABI_HIDDEN 27 #define _LIBCXXABI_DATA_VIS __declspec(dllexport) 28 #define _LIBCXXABI_FUNC_VIS __declspec(dllexport) 29 #define _LIBCXXABI_TYPE_VIS __declspec(dllexport) 30 #else 31 #define _LIBCXXABI_HIDDEN 32 #define _LIBCXXABI_DATA_VIS __declspec(dllimport) 33 #define _LIBCXXABI_FUNC_VIS __declspec(dllimport) 34 #define _LIBCXXABI_TYPE_VIS __declspec(dllimport) 35 #endif 36#else 37 #define _LIBCXXABI_HIDDEN __attribute__((__visibility__("hidden"))) 38 #define _LIBCXXABI_DATA_VIS __attribute__((__visibility__("default"))) 39 #define _LIBCXXABI_FUNC_VIS __attribute__((__visibility__("default"))) 40 #if __has_attribute(__type_visibility__) 41 #define _LIBCXXABI_TYPE_VIS __attribute__((__type_visibility__("default"))) 42 #else 43 #define _LIBCXXABI_TYPE_VIS __attribute__((__visibility__("default"))) 44 #endif 45#endif 46 47#endif // ____CXXABI_CONFIG_H 48