Index: third_party/libc++abi/src/Unwind/config.h |
=================================================================== |
--- third_party/libc++abi/src/Unwind/config.h (revision 0) |
+++ third_party/libc++abi/src/Unwind/config.h (revision 0) |
@@ -0,0 +1,108 @@ |
+//===----------------------------- config.h -------------------------------===// |
+// |
+// The LLVM Compiler Infrastructure |
+// |
+// This file is dual licensed under the MIT and the University of Illinois Open |
+// Source Licenses. See LICENSE.TXT for details. |
+// |
+// |
+// Defines macros used within libuwind project. |
+// |
+//===----------------------------------------------------------------------===// |
+ |
+ |
+#ifndef LIBUNWIND_CONFIG_H |
+#define LIBUNWIND_CONFIG_H |
+ |
+#include <assert.h> |
+ |
+// Define static_assert() unless already defined by compiler. |
+#ifndef __has_feature |
+ #define __has_feature(__x) 0 |
+#endif |
+#if !(__has_feature(cxx_static_assert)) |
+ #define static_assert(__b, __m) \ |
+ extern int compile_time_assert_failed[ ( __b ) ? 1 : -1 ] \ |
+ __attribute__( ( unused ) ); |
+#endif |
+ |
+// Platform specific configuration defines. |
+#if __APPLE__ |
+ #include <Availability.h> |
+ #ifdef __cplusplus |
+ extern "C" { |
+ #endif |
+ void __assert_rtn(const char *, const char *, int, const char *) |
+ __attribute__((noreturn)); |
+ #ifdef __cplusplus |
+ } |
+ #endif |
+ |
+ #define _LIBUNWIND_BUILD_ZERO_COST_APIS (__i386__ || __x86_64__ || __arm64__) |
+ #define _LIBUNWIND_BUILD_SJLJ_APIS (__arm__) |
+ #define _LIBUNWIND_SUPPORT_FRAME_APIS (__i386__ || __x86_64__) |
+ #define _LIBUNWIND_EXPORT __attribute__((visibility("default"))) |
+ #define _LIBUNWIND_HIDDEN __attribute__((visibility("hidden"))) |
+ #define _LIBUNWIND_LOG(msg, ...) fprintf(stderr, "libuwind: " msg, __VA_ARGS__) |
+ #define _LIBUNWIND_ABORT(msg) __assert_rtn(__func__, __FILE__, __LINE__, msg) |
+ |
+ #if FOR_DYLD |
+ #define _LIBUNWIND_SUPPORT_COMPACT_UNWIND 1 |
+ #define _LIBUNWIND_SUPPORT_DWARF_UNWIND 0 |
+ #define _LIBUNWIND_SUPPORT_DWARF_INDEX 0 |
+ #else |
+ #define _LIBUNWIND_SUPPORT_COMPACT_UNWIND 1 |
+ #define _LIBUNWIND_SUPPORT_DWARF_UNWIND 1 |
+ #define _LIBUNWIND_SUPPORT_DWARF_INDEX 0 |
+ #endif |
+ |
+#else |
+ // #define _LIBUNWIND_BUILD_ZERO_COST_APIS |
+ // #define _LIBUNWIND_BUILD_SJLJ_APIS |
+ // #define _LIBUNWIND_SUPPORT_FRAME_APIS |
+ // #define _LIBUNWIND_EXPORT |
+ // #define _LIBUNWIND_HIDDEN |
+ // #define _LIBUNWIND_LOG() |
+ // #define _LIBUNWIND_ABORT() |
+ // #define _LIBUNWIND_SUPPORT_COMPACT_UNWIND |
+ // #define _LIBUNWIND_SUPPORT_DWARF_UNWIND |
+ // #define _LIBUNWIND_SUPPORT_DWARF_INDEX |
+#endif |
+ |
+ |
+// Macros that define away in non-Debug builds |
+#ifdef NDEBUG |
+ #define _LIBUNWIND_DEBUG_LOG(msg, ...) |
+ #define _LIBUNWIND_TRACE_API(msg, ...) |
+ #define _LIBUNWIND_TRACING_UNWINDING 0 |
+ #define _LIBUNWIND_TRACE_UNWINDING(msg, ...) |
+ #define _LIBUNWIND_LOG_NON_ZERO(x) x |
+#else |
+ #ifdef __cplusplus |
+ extern "C" { |
+ #endif |
+ extern bool logAPIs(); |
+ extern bool logUnwinding(); |
+ #ifdef __cplusplus |
+ } |
+ #endif |
+ #define _LIBUNWIND_DEBUG_LOG(msg, ...) _LIBUNWIND_LOG(msg, __VA_ARGS__) |
+ #define _LIBUNWIND_LOG_NON_ZERO(x) \ |
+ do { \ |
+ int _err = x; \ |
+ if ( _err != 0 ) \ |
+ _LIBUNWIND_LOG("" #x "=%d in %s", _err, __FUNCTION__); \ |
+ } while (0) |
+ #define _LIBUNWIND_TRACE_API(msg, ...) \ |
+ do { \ |
+ if ( logAPIs() ) _LIBUNWIND_LOG(msg, __VA_ARGS__); \ |
+ } while(0) |
+ #define _LIBUNWIND_TRACE_UNWINDING(msg, ...) \ |
+ do { \ |
+ if ( logUnwinding() ) _LIBUNWIND_LOG(msg, __VA_ARGS__); \ |
+ } while(0) |
+ #define _LIBUNWIND_TRACING_UNWINDING logUnwinding() |
+#endif |
+ |
+ |
+#endif // LIBUNWIND_CONFIG_H |
Property changes on: third_party/libc++abi/src/Unwind/config.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |