It seems that somehow Atomic32 and Atomic64 become the same type. 

Feng you are the most knowledgeable on cross compiling. Do you know what 
happens here?

On Wednesday, May 10, 2017 at 1:21:55 AM UTC-7, jebina elsie wrote:
>
> Hi All,
>
> I'm trying to cross compile the Protobuf 3.3.0 to the 64 bit ARM processor.
>
> with the configure command 
> ./configure CC="aarch64-oe-linux-gcc" CXX="aarch64-oe-linux-g++" 
> CFLAGS="--sysroot=/opt/oecore-x86_64/sysroots/aarch64-oe-linux -O2 
> -fexpensive-optimizations -frename-registers -fomit-frame-pointer 
> -ftree-vectorize -Wno-error=maybe-uninitialized -finline-functions 
> -finline-limit=64" CXXFLAGS=" 
> --sysroot=/opt/oecore-x86_64/sysroots/aarch64-oe-linux -O2 
> -fexpensive-optimizations -frename-registers -fomit-frame-pointer 
> -ftree-vectorize -Wno-error=maybe-uninitialized -finline-functions 
> -finline-limit=64" --host=x86_64 
> --with-protoc=/home/ubuntu/proto3/bin/protoc
>
> when i run make: i get these errors as below.
>
> Any suggestions / fix?
>
> In file included from ./google/protobuf/stubs/atomicops.h:208:0,
>                  from 
> google/protobuf/stubs/atomicops_internals_x86_gcc.cc:36:
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h: In function 
> 'google::protobuf::internal::Atomic64 
> google::protobuf::internal::NoBarrier_CompareAndSwap(volatile Atomic64*, 
> google::protobuf::internal::Atomic64, 
> google::protobuf::internal::Atomic64)':
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h:188:17: error: 
> redefinition of 'google::protobuf::internal::Atomic64 
> google::protobuf::internal::NoBarrier_CompareAndSwap(volatile Atomic64*, 
> google::protobuf::internal::Atomic64, google::protobuf::internal::Atomic64)'
>  inline Atomic64 NoBarrier_CompareAndSwap(volatile Atomic64* ptr,
>                  ^
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h:52:17: note: 
> 'google::protobuf::internal::Atomic32 
> google::protobuf::internal::NoBarrier_CompareAndSwap(volatile Atomic32*, 
> google::protobuf::internal::Atomic32, 
> google::protobuf::internal::Atomic32)' previously defined here
>  inline Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32* ptr,
>                  ^
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h: In function 
> 'google::protobuf::internal::Atomic64 
> google::protobuf::internal::NoBarrier_AtomicExchange(volatile Atomic64*, 
> google::protobuf::internal::Atomic64)':
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h:213:17: error: 
> redefinition of 'google::protobuf::internal::Atomic64 
> google::protobuf::internal::NoBarrier_AtomicExchange(volatile Atomic64*, 
> google::protobuf::internal::Atomic64)'
>  inline Atomic64 NoBarrier_AtomicExchange(volatile Atomic64* ptr,
>                  ^
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h:77:17: note: 
> 'google::protobuf::internal::Atomic32 
> google::protobuf::internal::NoBarrier_AtomicExchange(volatile Atomic32*, 
> google::protobuf::internal::Atomic32)' previously defined here
>  inline Atomic32 NoBarrier_AtomicExchange(volatile Atomic32* ptr,
>                  ^
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h: In function 
> 'google::protobuf::internal::Atomic64 
> google::protobuf::internal::NoBarrier_AtomicIncrement(volatile Atomic64*, 
> google::protobuf::internal::Atomic64)':
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h:233:17: error: 
> redefinition of 'google::protobuf::internal::Atomic64 
> google::protobuf::internal::NoBarrier_AtomicIncrement(volatile Atomic64*, 
> google::protobuf::internal::Atomic64)'
>  inline Atomic64 NoBarrier_AtomicIncrement(volatile Atomic64* ptr,
>                  ^
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h:97:17: note: 
> 'google::protobuf::internal::Atomic32 
> google::protobuf::internal::NoBarrier_AtomicIncrement(volatile Atomic32*, 
> google::protobuf::internal::Atomic32)' previously defined here
>  inline Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr,
>                  ^
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h: In function 
> 'google::protobuf::internal::Atomic64 
> google::protobuf::internal::Barrier_AtomicIncrement(volatile Atomic64*, 
> google::protobuf::internal::Atomic64)':
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h:254:17: error: 
> redefinition of 'google::protobuf::internal::Atomic64 
> google::protobuf::internal::Barrier_AtomicIncrement(volatile Atomic64*, 
> google::protobuf::internal::Atomic64)'
>  inline Atomic64 Barrier_AtomicIncrement(volatile Atomic64* ptr,
>                  ^
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h:118:17: note: 
> 'google::protobuf::internal::Atomic32 
> google::protobuf::internal::Barrier_AtomicIncrement(volatile Atomic32*, 
> google::protobuf::internal::Atomic32)' previously defined here
>  inline Atomic32 Barrier_AtomicIncrement(volatile Atomic32* ptr,
>                  ^
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h: In function 
> 'google::protobuf::internal::Atomic64 
> google::protobuf::internal::Acquire_CompareAndSwap(volatile Atomic64*, 
> google::protobuf::internal::Atomic64, 
> google::protobuf::internal::Atomic64)':
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h:263:17: error: 
> redefinition of 'google::protobuf::internal::Atomic64 
> google::protobuf::internal::Acquire_CompareAndSwap(volatile Atomic64*, 
> google::protobuf::internal::Atomic64, google::protobuf::internal::Atomic64)'
>  inline Atomic64 Acquire_CompareAndSwap(volatile Atomic64* ptr,
>                  ^
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h:127:17: note: 
> 'google::protobuf::internal::Atomic32 
> google::protobuf::internal::Acquire_CompareAndSwap(volatile Atomic32*, 
> google::protobuf::internal::Atomic32, 
> google::protobuf::internal::Atomic32)' previously defined here
>  inline Atomic32 Acquire_CompareAndSwap(volatile Atomic32* ptr,
>                  ^
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h: In function 
> 'google::protobuf::internal::Atomic64 
> google::protobuf::internal::Release_CompareAndSwap(volatile Atomic64*, 
> google::protobuf::internal::Atomic64, 
> google::protobuf::internal::Atomic64)':
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h:272:17: error: 
> redefinition of 'google::protobuf::internal::Atomic64 
> google::protobuf::internal::Release_CompareAndSwap(volatile Atomic64*, 
> google::protobuf::internal::Atomic64, google::protobuf::internal::Atomic64)'
>  inline Atomic64 Release_CompareAndSwap(volatile Atomic64* ptr,
>                  ^
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h:136:17: note: 
> 'google::protobuf::internal::Atomic32 
> google::protobuf::internal::Release_CompareAndSwap(volatile Atomic32*, 
> google::protobuf::internal::Atomic32, 
> google::protobuf::internal::Atomic32)' previously defined here
>  inline Atomic32 Release_CompareAndSwap(volatile Atomic32* ptr,
>                  ^
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h: In function 'void 
> google::protobuf::internal::NoBarrier_Store(volatile Atomic64*, 
> google::protobuf::internal::Atomic64)':
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h:281:13: error: 
> redefinition of 'void google::protobuf::internal::NoBarrier_Store(volatile 
> Atomic64*, google::protobuf::internal::Atomic64)'
>  inline void NoBarrier_Store(volatile Atomic64* ptr, Atomic64 value) {
>              ^
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h:145:13: note: 
> 'void google::protobuf::internal::NoBarrier_Store(volatile Atomic32*, 
> google::protobuf::internal::Atomic32)' previously defined here
>  inline void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value) {
>              ^
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h: In function 'void 
> google::protobuf::internal::Acquire_Store(volatile Atomic64*, 
> google::protobuf::internal::Atomic64)':
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h:285:13: error: 
> redefinition of 'void google::protobuf::internal::Acquire_Store(volatile 
> Atomic64*, google::protobuf::internal::Atomic64)'
>  inline void Acquire_Store(volatile Atomic64* ptr, Atomic64 value) {
>              ^
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h:149:13: note: 
> 'void google::protobuf::internal::Acquire_Store(volatile Atomic32*, 
> google::protobuf::internal::Atomic32)' previously defined here
>  inline void Acquire_Store(volatile Atomic32* ptr, Atomic32 value) {
>              ^
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h: In function 'void 
> google::protobuf::internal::Release_Store(volatile Atomic64*, 
> google::protobuf::internal::Atomic64)':
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h:290:13: error: 
> redefinition of 'void google::protobuf::internal::Release_Store(volatile 
> Atomic64*, google::protobuf::internal::Atomic64)'
>  inline void Release_Store(volatile Atomic64* ptr, Atomic64 value) {
>              ^
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h:154:13: note: 
> 'void google::protobuf::internal::Release_Store(volatile Atomic32*, 
> google::protobuf::internal::Atomic32)' previously defined here
>  inline void Release_Store(volatile Atomic32* ptr, Atomic32 value) {
>              ^
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h: In function 
> 'google::protobuf::internal::Atomic64 
> google::protobuf::internal::NoBarrier_Load(const volatile Atomic64*)':
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h:299:17: error: 
> redefinition of 'google::protobuf::internal::Atomic64 
> google::protobuf::internal::NoBarrier_Load(const volatile Atomic64*)'
>  inline Atomic64 NoBarrier_Load(volatile const Atomic64* ptr) {
>                  ^
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h:163:17: note: 
> 'google::protobuf::internal::Atomic32 
> google::protobuf::internal::NoBarrier_Load(const volatile Atomic32*)' 
> previously defined here
>  inline Atomic32 NoBarrier_Load(volatile const Atomic32* ptr) {
>                  ^
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h: In function 
> 'google::protobuf::internal::Atomic64 
> google::protobuf::internal::Acquire_Load(const volatile Atomic64*)':
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h:303:17: error: 
> redefinition of 'google::protobuf::internal::Atomic64 
> google::protobuf::internal::Acquire_Load(const volatile Atomic64*)'
>  inline Atomic64 Acquire_Load(volatile const Atomic64* ptr) {
>                  ^
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h:167:17: note: 
> 'google::protobuf::internal::Atomic32 
> google::protobuf::internal::Acquire_Load(const volatile Atomic32*)' 
> previously defined here
>  inline Atomic32 Acquire_Load(volatile const Atomic32* ptr) {
>                  ^
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h: In function 
> 'google::protobuf::internal::Atomic64 
> google::protobuf::internal::Release_Load(const volatile Atomic64*)':
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h:316:17: error: 
> redefinition of 'google::protobuf::internal::Atomic64 
> google::protobuf::internal::Release_Load(const volatile Atomic64*)'
>  inline Atomic64 Release_Load(volatile const Atomic64* ptr) {
>                  ^
> ./google/protobuf/stubs/atomicops_internals_arm64_gcc.h:180:17: note: 
> 'google::protobuf::internal::Atomic32 
> google::protobuf::internal::Release_Load(const volatile Atomic32*)' 
> previously defined here
>  inline Atomic32 Release_Load(volatile const Atomic32* ptr) {
>                  ^
> make[3]: *** [google/protobuf/stubs/atomicops_internals_x86_gcc.lo] Error 1
> make[3]: Leaving directory `/home/ubuntu/ISOM/protobuf-3.0.0/src'
> make[2]: *** [all] Error 2
> make[2]: Leaving directory `/home/ubuntu/ISOM/protobuf-3.0.0/src'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/home/ubuntu/ISOM/protobuf-3.0.0'
> make: *** [all] Error 2
>
>

-- 
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