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