You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@arrow.apache.org by "Wes McKinney (JIRA)" <ji...@apache.org> on 2019/01/22 21:03:01 UTC

[jira] [Commented] (ARROW-3596) [Packaging] Build gRPC in conda-forge

    [ https://issues.apache.org/jira/browse/ARROW-3596?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16749153#comment-16749153 ] 

Wes McKinney commented on ARROW-3596:
-------------------------------------

To share my experience trying to get things to build with the conda-forge gcc7 compiler toolchain. Very painful. I had to override a bunch of environment variables to get it to use the proper toolchain executables instead of using the system compilers

{code}
LD=$CXX \
LDXX=$CXX \
HOST_CC=$CC \
HOST_CXX=$CXX \
STRIP='echo' \
AR='ar rcs' \
prefix=$PREFIX make -j8 install
{code}

For some reason the build system is stripping all the shared libraries, and so I couldn't get them to link with the Flight C++ executables, the errors looked like this:

{code}
/home/wesm/code/arrow/cpp/src/arrow/flight/server.cc:327: error: undefined reference to 'grpc::InsecureServerCredentials()'
/home/wesm/code/arrow/cpp/src/arrow/flight/server.cc:327: error: undefined reference to 'grpc::ServerBuilder::AddListeningPort(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<grpc::ServerCredentials>, int*)'
/home/wesm/code/arrow/cpp/src/arrow/flight/server.cc:328: error: undefined reference to 'grpc::ServerBuilder::RegisterService(grpc::Service*)'
/home/wesm/code/arrow/cpp/src/arrow/flight/server.cc:330: error: undefined reference to 'grpc::ServerBuilder::BuildAndStart()'
/home/wesm/code/arrow/cpp/src/arrow/flight/server.cc:326: error: undefined reference to 'grpc::ServerBuilder::~ServerBuilder()'
/home/wesm/code/arrow/cpp/src/arrow/flight/server.cc:326: error: undefined reference to 'grpc::ServerBuilder::~ServerBuilder()'
/home/wesm/cpp-toolchain/include/grpcpp/impl/codegen/slice.h:40: error: undefined reference to 'grpc::g_core_codegen_interface'
/home/wesm/cpp-toolchain/include/grpcpp/impl/codegen/slice.h:40: error: undefined reference to 'grpc::g_core_codegen_interface'
/home/wesm/cpp-toolchain/include/grpcpp/impl/codegen/slice.h:53: error: undefined reference to 'grpc::g_core_codegen_interface'
/home/wesm/cpp-toolchain/include/grpcpp/impl/codegen/slice.h:53: error: undefined reference to 'grpc::g_core_codegen_interface'
/home/wesm/code/arrow/cpp/src/arrow/flight/server.cc:161: error: undefined reference to 'grpc::Status::OK'
/home/wesm/code/arrow/cpp/src/arrow/flight/server.cc:242: error: undefined reference to 'grpc::Status::OK'
/home/wesm/code/arrow/cpp/src/arrow/flight/server.cc:268: error: undefined reference to 'grpc::Status::OK'
/home/wesm/cpp-toolchain/include/grpcpp/impl/codegen/grpc_library.h:42: error: undefined reference to 'grpc::g_glip'
/home/wesm/cpp-toolchain/include/grpcpp/impl/codegen/grpc_library.h:45: error: undefined reference to 'grpc::g_glip'
/home/wesm/cpp-toolchain/include/grpcpp/impl/codegen/grpc_library.h:45: error: undefined reference to 'grpc::g_glip'
/home/wesm/cpp-toolchain/include/grpcpp/impl/codegen/grpc_library.h:51: error: undefined reference to 'grpc::g_glip'
collect2: error: ld returned 1 exit status
{code}

> [Packaging] Build gRPC in conda-forge
> -------------------------------------
>
>                 Key: ARROW-3596
>                 URL: https://issues.apache.org/jira/browse/ARROW-3596
>             Project: Apache Arrow
>          Issue Type: Sub-task
>          Components: C++
>            Reporter: Wes McKinney
>            Priority: Major
>             Fix For: 0.13.0
>
>
> This may be a bit annoying as grpc's CMake files want to also install its third party dependencies. [~msarahan] pointed me to a version for AnacondaRecipes where there was an effort to "unvendor" these components
> grpc depends on at least
> * protobuf
> * zlib
> * either boringssl or openssl
> * cares
> * gflags
> It looks like the grpc developers want to take on Abseil as a dependency eventually, but it is not required yet



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)