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