blob: 68e325ffef6b9549f9b091b58352f5aaae3205a2 [file] [log] [blame]
Dan Albertf25c8662015-02-05 23:55:15 +00001//===-------------------------- __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
Saleem Abdulrasool242d67b2015-12-04 02:14:41 +000013#if defined(__arm__) && !defined(__USING_SJLJ_EXCEPTIONS__) && \
Dan Albertf25c8662015-02-05 23:55:15 +000014 !defined(__ARM_DWARF_EH__)
15#define LIBCXXABI_ARM_EHABI 1
16#else
17#define LIBCXXABI_ARM_EHABI 0
18#endif
19
Saleem Abdulrasool12315ed2015-12-04 02:14:58 +000020#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_FUNC_VIS __declspec(dllexport)
28 #define _LIBCXXABI_TYPE_VIS __declspec(dllexport)
29 #else
30 #define _LIBCXXABI_HIDDEN
31 #define _LIBCXXABI_FUNC_VIS __declspec(dllimport)
32 #define _LIBCXXABI_TYPE_VIS __declspec(dllimport)
33 #endif
34#else
35 #define _LIBCXXABI_HIDDEN __attribute__((__visibility__("hidden")))
36 #define _LIBCXXABI_FUNC_VIS __attribute__((__visibility__("default")))
37 #if __has_attribute(__type_visibility__)
38 #define _LIBCXXABI_TYPE_VIS __attribute__((__type_visibility__("default")))
39 #else
40 #define _LIBCXXABI_TYPE_VIS __attribute__((__visibility__("default")))
41 #endif
42#endif
43
Dan Albertf25c8662015-02-05 23:55:15 +000044#endif // ____CXXABI_CONFIG_H