I need a RISCV implementation of protobuf. I tried to follow the same
instructions for cross compiling ARM, but with the compilers set to the
RISCV compilers.
I first ran
./configure
make
make install
make distclean
This updated my protoc at /usr/local/bin/protoc.
Next I ran ./configure to target RISCV.
./configure CC=riscv64-unknown-linux-gnu-gcc \
CXX=riscv64-unknown-linux-gnu-g++ \
--target riscv64-unknown-linux-gnu \
--host riscv64-unknown-linux-gnu \
--with-protoc=/usr/local/bin/protoc
make
The build proceeds normally, until I get the following error
Makefile:3601: update target 'protoc' due to:
google/protobuf/compiler/main.o libprotobuf.la libprotoc.la
rm -f protoc
/bin/bash ../libtool --tag=CXX --mode=link riscv64-unknown-linux-gnu-g++
-pthread -DHAVE_PTHREAD=1 -Wall -Wno-sign-compare -O2 -g -DNDEBUG -pthread
-o protoc google/protobuf/compiler/main.o -lpthread libprotobuf.la
libprotoc.la
libtool: link: riscv64-unknown-linux-gnu-g++ -pthread -DHAVE_PTHREAD=1
-Wall -Wno-sign-compare -O2 -g -DNDEBUG -pthread -o .libs/protoc
google/protobuf/compiler/main.o -lpthread ./.libs/libprotobuf.so
./.libs/libprotoc.so -pthread -Wl,-rpath
-Wl,/home/jerry/Documents/drive/Projects/protobuf/build/lib
./.libs/libprotobuf.so: undefined reference to
`google::protobuf::internal::Release_CompareAndSwap(long volatile*, long,
long)'
collect2: error: ld returned 1 exit status
Makefile:3601: recipe for target 'protoc' failed
make[3]: *** [protoc] Error 1
make[3]: Leaving directory
'/home/jerry/Documents/drive/Projects/protobuf/src'
Makefile:2106: recipe for target 'all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory
'/home/jerry/Documents/drive/Projects/protobuf/src'
Makefile:1555: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/jerry/Documents/drive/Projects/protobuf'
Makefile:1462: recipe for target 'all' failed
make: *** [all] Error 2
I'm not sure why this is happening? libprotobuf should have compiled with
the atomic functions defined in
src/google/protobuf/stubs/atomicops_internals_generic_gcc.h. Why would
there be a linking error here?
--
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.