Index: third_party/protobuf/src/google/protobuf/stubs/platform_macros.h |
diff --git a/third_party/protobuf/src/google/protobuf/stubs/platform_macros.h b/third_party/protobuf/src/google/protobuf/stubs/platform_macros.h |
index 30604782c905e765128a95d584d814ab4946f9e2..580263e72e260bc6a60f874cf47d7fae30bbddfc 100644 |
--- a/third_party/protobuf/src/google/protobuf/stubs/platform_macros.h |
+++ b/third_party/protobuf/src/google/protobuf/stubs/platform_macros.h |
@@ -1,6 +1,6 @@ |
// Protocol Buffers - Google's data interchange format |
// Copyright 2012 Google Inc. All rights reserved. |
-// http://code.google.com/p/protobuf/ |
+// https://developers.google.com/protocol-buffers/ |
// |
// Redistribution and use in source and binary forms, with or without |
// modification, are permitted provided that the following conditions are |
@@ -31,7 +31,8 @@ |
#ifndef GOOGLE_PROTOBUF_PLATFORM_MACROS_H_ |
#define GOOGLE_PROTOBUF_PLATFORM_MACROS_H_ |
-#include <google/protobuf/stubs/common.h> |
+#define GOOGLE_PROTOBUF_PLATFORM_ERROR \ |
+#error "Host platform was not detected as supported by protobuf" |
// Processor architecture detection. For more info on what's defined, see: |
// http://msdn.microsoft.com/en-us/library/b0084kay.aspx |
@@ -62,17 +63,60 @@ |
#endif |
#elif defined(__pnacl__) |
#define GOOGLE_PROTOBUF_ARCH_32_BIT 1 |
-#elif defined(__ppc__) |
-#define GOOGLE_PROTOBUF_ARCH_PPC 1 |
+#elif defined(sparc) |
+#define GOOGLE_PROTOBUF_ARCH_SPARC 1 |
+#ifdef SOLARIS_64BIT_ENABLED |
+#define GOOGLE_PROTOBUF_ARCH_64_BIT 1 |
+#else |
#define GOOGLE_PROTOBUF_ARCH_32_BIT 1 |
+#endif |
+#elif defined(_POWER) || defined(__powerpc64__) || defined(__PPC64__) |
+#define GOOGLE_PROTOBUF_ARCH_POWER 1 |
+#define GOOGLE_PROTOBUF_ARCH_64_BIT 1 |
+#elif defined(__GNUC__) |
+# if (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4)) |
+// We fallback to the generic Clang/GCC >= 4.7 implementation in atomicops.h |
+# elif defined(__clang__) |
+# if !__has_extension(c_atomic) |
+GOOGLE_PROTOBUF_PLATFORM_ERROR |
+# endif |
+// We fallback to the generic Clang/GCC >= 4.7 implementation in atomicops.h |
+# endif |
+# if __LP64__ |
+# define GOOGLE_PROTOBUF_ARCH_64_BIT 1 |
+# else |
+# define GOOGLE_PROTOBUF_ARCH_32_BIT 1 |
+# endif |
#else |
-#error Host architecture was not detected as supported by protobuf |
+GOOGLE_PROTOBUF_PLATFORM_ERROR |
#endif |
#if defined(__APPLE__) |
#define GOOGLE_PROTOBUF_OS_APPLE |
+#include <TargetConditionals.h> |
+#if TARGET_OS_IPHONE |
+#define GOOGLE_PROTOBUF_OS_IPHONE |
+#endif |
+#elif defined(__EMSCRIPTEN__) |
+#define GOOGLE_PROTOBUF_OS_EMSCRIPTEN |
#elif defined(__native_client__) |
#define GOOGLE_PROTOBUF_OS_NACL |
+#elif defined(sun) |
+#define GOOGLE_PROTOBUF_OS_SOLARIS |
+#elif defined(_AIX) |
+#define GOOGLE_PROTOBUF_OS_AIX |
+#elif defined(__ANDROID__) |
+#define GOOGLE_PROTOBUF_OS_ANDROID |
+#endif |
+ |
+#undef GOOGLE_PROTOBUF_PLATFORM_ERROR |
+ |
+#if defined(GOOGLE_PROTOBUF_OS_ANDROID) || defined(GOOGLE_PROTOBUF_OS_APPLE) |
+// Android ndk does not support the __thread keyword very well yet. Here |
+// we use pthread_key_create()/pthread_getspecific()/... methods for |
+// TLS support on android. |
+// Apple Clang also does not support the __thread keyword. |
+#define GOOGLE_PROTOBUF_NO_THREADLOCAL |
#endif |
#endif // GOOGLE_PROTOBUF_PLATFORM_MACROS_H_ |