File protobuf-generic-atomic.patch of Package mozc

From 81b3b6fca4b5f6826a87397acf9bb3e8ca452e18 Mon Sep 17 00:00:00 2001
From: sangameshs <smallayy@in.ibm.com>
Date: Thu, 10 Jul 2014 07:35:45 -0500
Subject: [PATCH] Add-generic-GCC-support-for-atomic-operations Original
 patches from
 http://ppc.koji.fedoraproject.org/kojifiles/packages/protobuf/2.5.0/7.fc21/src/protobuf-2.5.0-7.fc21.src.rpm

---
 README.txt                                  | 19 +++++++++++++++++++
 src/Makefile.am                             |  1 +
 src/Makefile.in                             |  2 ++
 src/google/protobuf/stubs/atomicops.h       |  2 +-
 src/google/protobuf/stubs/platform_macros.h | 14 +++++++++++++-
 5 files changed, 36 insertions(+), 2 deletions(-)

diff --git a/README.txt b/README.txt
index 17551a5..53f2296 100644
--- a/README.txt
+++ b/README.txt
@@ -2,6 +2,25 @@ Protocol Buffers - Google's data interchange format
 Copyright 2008 Google Inc.
 http://code.google.com/apis/protocolbuffers/
 
+Compiling in PLinux RHEL6 or RHEL7
+==================================
+For compiling protobuf on PLinux(big-endian) RHEL6 or 7 we need to use gcc >=
+4.7.
+
+We can get the gcc >= 4.7 from Advanced toolchain.
+ftp://ftp.unicamp.br/pub/linuxpatch/toolchain/at/redhat
+And we need below two rpms
+
+advance-toolchain-at7.0-devel-7.0-4.ppc64
+advance-toolchain-at7.0-runtime-7.0-4.ppc64
+
+After installing the rpms set the envirnoment variables as
+
+export CXX=/opt/at7.0/bin/powerpc64-linux-c++
+export CC=/opt/at7.0/bin/powerpc64-linux-gcc
+
+and then compile it using the instructions given below.
+
 C++ Installation - Unix
 =======================
 
diff --git a/src/Makefile.am b/src/Makefile.am
index df733d9..6f5c21d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -42,6 +42,7 @@ nobase_include_HEADERS =                                        \
   google/protobuf/stubs/atomicops_internals_arm_gcc.h           \
   google/protobuf/stubs/atomicops_internals_arm_qnx.h           \
   google/protobuf/stubs/atomicops_internals_atomicword_compat.h \
+  google/protobuf/stubs/atomicops_internals_generic_gcc.h       \
   google/protobuf/stubs/atomicops_internals_macosx.h            \
   google/protobuf/stubs/atomicops_internals_mips_gcc.h          \
   google/protobuf/stubs/atomicops_internals_pnacl.h             \
diff --git a/src/google/protobuf/stubs/atomicops.h b/src/google/protobuf/stubs/atomicops.h
index b8581fa..883b125 100644
--- a/src/google/protobuf/stubs/atomicops.h
+++ b/src/google/protobuf/stubs/atomicops.h
@@ -185,7 +185,7 @@ GOOGLE_PROTOBUF_ATOMICOPS_ERROR
 #elif defined(__pnacl__)
 #include <google/protobuf/stubs/atomicops_internals_pnacl.h>
 #else
-GOOGLE_PROTOBUF_ATOMICOPS_ERROR
+#include <google/protobuf/stubs/atomicops_internals_generic_gcc.h>
 #endif
 
 // Unknown.
diff --git a/src/google/protobuf/stubs/platform_macros.h b/src/google/protobuf/stubs/platform_macros.h
index b1df60e..db691d8 100644
--- a/src/google/protobuf/stubs/platform_macros.h
+++ b/src/google/protobuf/stubs/platform_macros.h
@@ -43,6 +43,9 @@
 #elif defined(_M_IX86) || defined(__i386__)
 #define GOOGLE_PROTOBUF_ARCH_IA32 1
 #define GOOGLE_PROTOBUF_ARCH_32_BIT 1
+#elif defined(__aarch64__)
+#define GOOGLE_PROTOBUF_ARCH_AARCH64 1
+#define GOOGLE_PROTOBUF_ARCH_64_BIT 1
 #elif defined(__QNX__)
 #define GOOGLE_PROTOBUF_ARCH_ARM_QNX 1
 #define GOOGLE_PROTOBUF_ARCH_32_BIT 1
@@ -54,9 +57,18 @@
 #define GOOGLE_PROTOBUF_ARCH_32_BIT 1
 #elif defined(__pnacl__)
 #define GOOGLE_PROTOBUF_ARCH_32_BIT 1
-#elif defined(__ppc__)
+#elif defined(__ppc64__) || defined(__PPC64__)
+#define GOOGLE_PROTOBUF_ARCH_PPC64 1
+#define GOOGLE_PROTOBUF_ARCH_64_BIT 1
+#elif defined(__ppc__) || defined(__PPC__)
 #define GOOGLE_PROTOBUF_ARCH_PPC 1
 #define GOOGLE_PROTOBUF_ARCH_32_BIT 1
+#elif defined(__s390x__)
+#define GOOGLE_PROTOBUF_ARCH_64_BIT 1
+#define GOOGLE_PROTOBUF_ARCH_S390X 1
+#elif defined(__s390__)
+#define GOOGLE_PROTOBUF_ARCH_32_BIT 1
+#define GOOGLE_PROTOBUF_ARCH_S390 1
 #else
 #error Host architecture was not detected as supported by protobuf
 #endif
openSUSE Build Service is sponsored by