On Wed, May 10, 2017 at 1:21 AM, jebina elsie <[email protected]> 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?
>
I think Gerben is right. Somehow Atomic32 and Atomic64 are defined to the
same type in your environment. Can you check the value of sizeof(Atomic32)
and sizeof(Atomic64)?


>
> 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 [email protected].
> To post to this group, send email to [email protected].
> 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 [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.

Reply via email to