patch [#30331] Support clang-3.0

from Yasuhiro Fujii (y-fujii) 

 added the diff to libmv/patches so it can be applied upstream.
This commit is contained in:
Campbell Barton 2012-02-28 05:26:15 +00:00
parent e6c5ff95be
commit dd40560230
4 changed files with 61 additions and 8 deletions

49
extern/libmv/patches/clang-3.diff vendored Normal file

@ -0,0 +1,49 @@
Index: third_party/glog/src/utilities.h
===================================================================
--- third_party/glog/src/utilities.h (revision 44501)
+++ third_party/glog/src/utilities.h (working copy)
@@ -105,7 +105,7 @@
# undef STACKTRACE_H
#elif defined(HAVE_LIB_UNWIND)
# define STACKTRACE_H "stacktrace_libunwind-inl.h"
-#elif !defined(NO_FRAME_POINTER)
+#elif !defined(NO_FRAME_POINTER) && !defined(__clang__)
# if defined(__i386__) && __GNUC__ >= 2
# define STACKTRACE_H "stacktrace_x86-inl.h"
# elif defined(__x86_64__) && __GNUC__ >= 2
Index: third_party/glog/src/logging.cc
===================================================================
--- third_party/glog/src/logging.cc (revision 44501)
+++ third_party/glog/src/logging.cc (working copy)
@@ -1231,6 +1231,14 @@
#endif
}
+#if defined(HAVE___ATTRIBUTE__)
+typedef void (*fail_func_t)() __attribute__((noreturn));
+static void logging_fail() __attribute__((noreturn));
+#else
+typedef void (*fail_func_t)();
+static void logging_fail();
+#endif
+
static void logging_fail() {
// #if defined(_DEBUG) && defined(_MSC_VER)
// doesn't work for my laptop (sergey)
@@ -1243,14 +1251,9 @@
#endif
}
-#ifdef HAVE___ATTRIBUTE__
-GOOGLE_GLOG_DLL_DECL
-void (*g_logging_fail_func)() __attribute__((noreturn)) = &logging_fail;
-#else
-GOOGLE_GLOG_DLL_DECL void (*g_logging_fail_func)() = &logging_fail;
-#endif
+GOOGLE_GLOG_DLL_DECL fail_func_t g_logging_fail_func = &logging_fail;
-void InstallFailureFunction(void (*fail_func)()) {
+void InstallFailureFunction(fail_func_t fail_func) {
g_logging_fail_func = fail_func;
}

@ -1,2 +1,3 @@
v3d_verbosity.patch
bundle_tweaks.patch
clang-3.diff

@ -1231,6 +1231,14 @@ void LogMessage::RecordCrashReason(
#endif
}
#if defined(HAVE___ATTRIBUTE__)
typedef void (*fail_func_t)() __attribute__((noreturn));
static void logging_fail() __attribute__((noreturn));
#else
typedef void (*fail_func_t)();
static void logging_fail();
#endif
static void logging_fail() {
// #if defined(_DEBUG) && defined(_MSC_VER)
// doesn't work for my laptop (sergey)
@ -1243,14 +1251,9 @@ static void logging_fail() {
#endif
}
#ifdef HAVE___ATTRIBUTE__
GOOGLE_GLOG_DLL_DECL
void (*g_logging_fail_func)() __attribute__((noreturn)) = &logging_fail;
#else
GOOGLE_GLOG_DLL_DECL void (*g_logging_fail_func)() = &logging_fail;
#endif
GOOGLE_GLOG_DLL_DECL fail_func_t g_logging_fail_func = &logging_fail;
void InstallFailureFunction(void (*fail_func)()) {
void InstallFailureFunction(fail_func_t fail_func) {
g_logging_fail_func = fail_func;
}

@ -105,7 +105,7 @@
# undef STACKTRACE_H
#elif defined(HAVE_LIB_UNWIND)
# define STACKTRACE_H "stacktrace_libunwind-inl.h"
#elif !defined(NO_FRAME_POINTER)
#elif !defined(NO_FRAME_POINTER) && !defined(__clang__)
# if defined(__i386__) && __GNUC__ >= 2
# define STACKTRACE_H "stacktrace_x86-inl.h"
# elif defined(__x86_64__) && __GNUC__ >= 2