I see in platform_macros.h

#elif defined(_POWER) || defined(__powerpc64__) || defined(__PPC64__)
#define GOOGLE_PROTOBUF_ARCH_POWER 1
#define GOOGLE_PROTOBUF_ARCH_64_BIT 1
#elif defined(__PPC__)
#define GOOGLE_PROTOBUF_ARCH_PPC 1
#define GOOGLE_PROTOBUF_ARCH_32_BIT 1
#elif defined(__GNUC__)

I know that I want 64 bit, so think that POWER looks better than PPC.

However, I am using g++ to build rather than the default AIX xlc compiler
(due to xlc++ not being C++11 compliant), which may be a use-case not
considered by the code author.

#elif defined(_POWER) || defined(__powerpc64__) || defined(__PPC64__)
#define GOOGLE_PROTOBUF_ARCH_POWER 1
#define GOOGLE_PROTOBUF_ARCH_64_BIT 1
#elif defined(__PPC__)
#define GOOGLE_PROTOBUF_ARCH_PPC 1
#define GOOGLE_PROTOBUF_ARCH_32_BIT 1
#elif defined(__GNUC__)



On Mon, Nov 14, 2016 at 6:01 PM, Adam Cozzette <acozze...@google.com> wrote:

> Thanks, Bob. I tried to reach out to one of the authors of that code but I
> have not heard back yet. I wonder if the problem may actually be that the
> assembly code is correct but that we're choosing the wrong architecture.
> I'm not at all familiar with AIX, but just from reading about it on its
> Wikipedia entry <https://en.wikipedia.org/wiki/IBM_AIX> it sounds like it
> supports both the POWER and PowerPC architectures, which are not exactly
> the same. For AIX we seem to always choose the POWER implementation but
> maybe we should actually be choosing the PPC implementation. Do you have
> any thoughts on whether that could be the case in your situation?
>
> On Thu, Nov 10, 2016 at 1:40 AM, Bob Wilkinson <wilkinson....@gmail.com>
> wrote:
>
>>
>>
>> On Wednesday, 9 November 2016 22:01:59 UTC, Adam Cozzette wrote:
>>>
>>> Could you try to narrow it down to one file or the other? The
>>> atomicops.h header
>>> <https://github.com/google/protobuf/blob/ce5160b83b03c29fd27fc9f58370092b321bf2bc/src/google/protobuf/stubs/atomicops.h#L195>
>>>  pulls
>>> in the right atomic operations implementation based on the platform, so
>>> with a little debugging it should be possible to see whether it's pulling
>>> the _power.h implementation or the _ppc_gcc.h implementation for your build.
>>>
>>
>> From the expanded .s file (generated by the -S option to g++)
>>
>>  # 214 "./google/protobuf/stubs/atomicops_internals_power.h" 1
>>         1:     lwz 9, 0(3)
>>                cmpw 9, 9
>>                bne- 1b
>>                isync
>>
>> So it is using the _power.h implementation
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Protocol Buffers" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to protobuf+unsubscr...@googlegroups.com.
>> To post to this group, send email to protobuf@googlegroups.com.
>> Visit this group at https://groups.google.com/group/protobuf.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.

Reply via email to