|
@@ -33,6 +33,9 @@
|
|
|
|
|
|
#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
|
|
|
// http://www.agner.org/optimize/calling_conventions.pdf
|
|
@@ -62,17 +65,22 @@
|
|
|
#endif
|
|
|
#elif defined(__pnacl__)
|
|
|
#define GOOGLE_PROTOBUF_ARCH_32_BIT 1
|
|
|
-#elif defined(__GNUC__) && \
|
|
|
- ((((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4)) || \
|
|
|
- (defined(__clang__) && __has_extension(c_atomic)))
|
|
|
-// We fallback to the generic GCC >= 4.7 implementation in atomicops.h
|
|
|
+#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__)
|