Hi!

We're having issues cross compiling gRPC in buildroot. There's been some 
prior work on getting gRPC into buildroot:

https://gfiber.googlesource.com/buildroot/+/refs/heads/master/package/grpc
http://lists.busybox.net/pipermail/buildroot/2017-April/189714.html
https://patchwork.ozlabs.org/patch/917779/

but nothing seems to have made it to upstream. In particular, we're running 
into issues around host compiling having target libraries included and 
linked against. Here's an example of host linking against target libraries:

c++ 
-L/piksi_buildroot/buildroot/output/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr//lib
  
 
-Wl,-rpath,/piksi_buildroot/buildroot/output/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr//lib
  
 -flto -flto -g  -fPIC -Llibs/opt -pthread    
 
-L/piksi_buildroot/buildroot/output/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/lib
  
 
-L/piksi_buildroot/buildroot/output/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/lib
  
 
/piksi_buildroot/buildroot/output/build/grpc_custom-v1.12.0/objs/opt/src/compiler/cpp_plugin.o
 
/piksi_buildroot/buildroot/output/build/grpc_custom-v1.12.0/libs/opt/libgrpc_plugin_support.a
  
-lprotoc -lprotobuf -ldl -lrt -lm -lpthread -lz -lcares  -lprotoc 
-lprotobuf -o 
/piksi_buildroot/buildroot/output/build/grpc_custom-v1.12.0/bins/opt/grpc_cpp_plugin

Here's an example of host including target libraries:

/usr/bin/g++ -std=c++11  
 
-I/piksi_buildroot/buildroot/output/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/include
 
-pthread   -Ithird_party/googletest/googletest/include 
-Ithird_party/googletest/googlemock/include 
-I/piksi_buildroot/buildroot/output/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/include
  
 -Ithird_party/address_sorting/include -g -Wall -Wextra -Werror 
-Wno-long-long -Wno-unused-parameter -DOSATOMIC_USE_INLINED=1 
-Wno-deprecated-declarations -O2 -Wframe-larger-than=16384 -fPIC -I. 
-Iinclude 
-I/piksi_buildroot/buildroot/output/build/grpc_custom-v1.12.0/gens 
-DPB_FIELD_16BIT -DNDEBUG -DINSTALL_PREFIX=\"/usr/local\"  
 
-I/piksi_buildroot/buildroot/output/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/include
  
 
-I/piksi_buildroot/buildroot/output/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/include
  
 -MMD -MF 
/piksi_buildroot/buildroot/output/build/grpc_custom-v1.12.0/objs/opt/src/compiler/cpp_generator.dep
 
-c -o 
/piksi_buildroot/buildroot/output/build/grpc_custom-v1.12.0/objs/opt/src/compiler/cpp_generator.o
 
src/compiler/cpp_generator.cc
In file included from 
/piksi_buildroot/buildroot/output/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/include/features.h:447:0,
                 from 
/usr/include/x86_64-linux-gnu/c++/6/bits/os_defines.h:39,
                 from 
/usr/include/x86_64-linux-gnu/c++/6/bits/c++config.h:507,
                 from /usr/include/c++/6/bits/stl_algobase.h:59,
                 from /usr/include/c++/6/bits/stl_tree.h:63,
                 from /usr/include/c++/6/map:60,
                 from src/compiler/cpp_generator.cc:19:
/piksi_buildroot/buildroot/output/host/bin/../arm-buildroot-linux-gnueabihf/sysroot/usr/include/gnu/stubs.h:7:29:
 
fatal error: gnu/stubs-soft.h: No such file or directory
 # include <gnu/stubs-soft.h>
                             ^

Has anyone had success cross compiling gRPC on buildroot? Or just cross 
compiling gRPC on ARM? The interactions between the host and target 
compiling with and without the GRPC_CROSS_COMPILE flag are causing us 
issues, especially around the host plugins. Thanks for any help!

Mark

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" 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/grpc-io.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/6ef7f44c-60f9-4afe-92ff-2ba139febf12%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to