From 2a50e67c7879dd590d4727fb3130987127c65a45 Mon Sep 17 00:00:00 2001 From: Doug Kwan Date: Tue, 3 Nov 2015 14:49:42 -0800 Subject: [PATCH] Add support for POWER Linux --- LICENSE | 2 +- cmake/extract_includes.bat.in | 2 +- src/Makefile.am | 2 +- src/google/protobuf/stubs/atomicops.h | 4 +++- ...{atomicops_internals_aix.h => atomicops_internals_power.h} | 0 src/google/protobuf/stubs/platform_macros.h | 2 +- 6 files changed, 7 insertions(+), 5 deletions(-) rename src/google/protobuf/stubs/{atomicops_internals_aix.h => atomicops_internals_power.h} (100%) diff --git a/LICENSE b/LICENSE index a15d52c1..f028c823 100644 --- a/LICENSE +++ b/LICENSE @@ -5,7 +5,7 @@ This license applies to all parts of Protocol Buffers except the following: This file is copyrighted by Red Hat Inc. - Atomicops support for AIX/POWER, located in - src/google/protobuf/stubs/atomicops_internals_aix.h. + src/google/protobuf/stubs/atomicops_internals_power.h. This file is copyrighted by Bloomberg Finance LP. Copyright 2014, Google Inc. All rights reserved. diff --git a/cmake/extract_includes.bat.in b/cmake/extract_includes.bat.in index eaf97583..f6d8b893 100644 --- a/cmake/extract_includes.bat.in +++ b/cmake/extract_includes.bat.in @@ -72,7 +72,7 @@ copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\source_context.pb.h in copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\struct.pb.h include\google\protobuf\struct.pb.h copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\atomic_sequence_num.h include\google\protobuf\stubs\atomic_sequence_num.h copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\atomicops.h include\google\protobuf\stubs\atomicops.h -copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\atomicops_internals_aix.h include\google\protobuf\stubs\atomicops_internals_aix.h +copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\atomicops_internals_power.h include\google\protobuf\stubs\atomicops_internals_power.h copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\atomicops_internals_arm64_gcc.h include\google\protobuf\stubs\atomicops_internals_arm64_gcc.h copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\atomicops_internals_arm_gcc.h include\google\protobuf\stubs\atomicops_internals_arm_gcc.h copy ${PROTOBUF_SOURCE_WIN32_PATH}\..\src\google\protobuf\stubs\atomicops_internals_arm_qnx.h include\google\protobuf\stubs\atomicops_internals_arm_qnx.h diff --git a/src/Makefile.am b/src/Makefile.am index 2985b5d8..3b66b3da 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -58,7 +58,7 @@ MAINTAINERCLEANFILES = \ nobase_include_HEADERS = \ google/protobuf/stubs/atomic_sequence_num.h \ google/protobuf/stubs/atomicops.h \ - google/protobuf/stubs/atomicops_internals_aix.h \ + google/protobuf/stubs/atomicops_internals_power.h \ google/protobuf/stubs/atomicops_internals_arm64_gcc.h \ google/protobuf/stubs/atomicops_internals_arm_gcc.h \ google/protobuf/stubs/atomicops_internals_arm_qnx.h \ diff --git a/src/google/protobuf/stubs/atomicops.h b/src/google/protobuf/stubs/atomicops.h index 5fa31b0a..31e2b782 100644 --- a/src/google/protobuf/stubs/atomicops.h +++ b/src/google/protobuf/stubs/atomicops.h @@ -192,7 +192,7 @@ Atomic64 Release_Load(volatile const Atomic64* ptr); // AIX #elif defined(GOOGLE_PROTOBUF_OS_AIX) -#include +#include // Apple. #elif defined(GOOGLE_PROTOBUF_OS_APPLE) @@ -210,6 +210,8 @@ Atomic64 Release_Load(volatile const Atomic64* ptr); #include #elif defined(GOOGLE_PROTOBUF_ARCH_MIPS) || defined(GOOGLE_PROTOBUF_ARCH_MIPS64) #include +#elif defined(GOOGLE_PROTOBUF_ARCH_POWER) +#include #elif defined(__native_client__) #include #elif (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4)) diff --git a/src/google/protobuf/stubs/atomicops_internals_aix.h b/src/google/protobuf/stubs/atomicops_internals_power.h similarity index 100% rename from src/google/protobuf/stubs/atomicops_internals_aix.h rename to src/google/protobuf/stubs/atomicops_internals_power.h diff --git a/src/google/protobuf/stubs/platform_macros.h b/src/google/protobuf/stubs/platform_macros.h index 9e0344d8..338d22f0 100644 --- a/src/google/protobuf/stubs/platform_macros.h +++ b/src/google/protobuf/stubs/platform_macros.h @@ -70,7 +70,7 @@ #else #define GOOGLE_PROTOBUF_ARCH_32_BIT 1 #endif -#elif defined(_POWER) +#elif defined(_POWER) || defined(__powerpc64__) || defined(__PPC64__) #define GOOGLE_PROTOBUF_ARCH_POWER 1 #define GOOGLE_PROTOBUF_ARCH_64_BIT 1 #elif defined(__GNUC__)