[
https://issues.apache.org/jira/browse/ARROW-8587?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17092106#comment-17092106
]
Chengxin Ma commented on ARROW-8587:
------------------------------------
I've built the Flight benchmark on different platforms before and never needed
to use {{ARROW_WITH_ZLIB=ON}}. I have no idea why it became necessary this time.
I just reproduced the compilation error in a Singularity container. The
container was built from [this definition
file|https://github.com/MaChengxin/ArrowSAM/blob/73aaf579c14929e78dcbc22ff54436ff17784901/Singularity/Singularity].
{code:java}
Singularity> cd temp/arrow/cpp/
Singularity> mkdir release
Singularity> cd release/
Singularity> cmake .. -DCMAKE_BUILD_TYPE=Release -DARROW_DEPENDENCY_SOURCE=AUTO
-DARROW_FLIGHT=ON -DARROW_BUILD_BENCHMARKS=ON
...
Singularity> make
...
../../../release/libarrow_flight.so.18.0.0: undefined reference to
`inflateInit2_'
../../../release/libarrow_flight.so.18.0.0: undefined reference to `inflate'
../../../release/libarrow_flight.so.18.0.0: undefined reference to
`deflateInit2_'
../../../release/libarrow_flight.so.18.0.0: undefined reference to `deflate'
../../../release/libarrow_flight.so.18.0.0: undefined reference to `deflateEnd'
../../../release/libarrow_flight.so.18.0.0: undefined reference to `inflateEnd'
collect2: error: ld returned 1 exit status
src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/build.make:156: recipe
for target 'release/arrow-flight-perf-server' failed
make[2]: *** [release/arrow-flight-perf-server] Error 1
CMakeFiles/Makefile2:2648: recipe for target
'src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/all' failed
make[1]: *** [src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/all]
Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
{code}
I cloned the latest apache/arrow repo (to temp/arrow) to ensure this problem is
not caused by my accidental mess-up to my local arrow repo.
The latest commit of the temporary clone is:
{code:java}
Singularity> git log
commit 045fe1382349485e6eb2ce9466757efedf207c94 (HEAD -> master, origin/master,
origin/HEAD)
{code}
> Compilation error when linking arrow-flight-perf-server
> -------------------------------------------------------
>
> Key: ARROW-8587
> URL: https://issues.apache.org/jira/browse/ARROW-8587
> Project: Apache Arrow
> Issue Type: Bug
> Components: Benchmarking, C++, FlightRPC
> Affects Versions: 0.17.0
> Environment: Linux HP 5.3.0-46-generic #38~18.04.1-Ubuntu SMP Tue Mar
> 31 04:17:56 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
> Reporter: Chengxin Ma
> Assignee: Antoine Pitrou
> Priority: Minor
> Labels: pull-request-available
> Fix For: 1.0.0
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> I wanted to play around with Flight benchmark after seeing the discussion
> regarding Flight's throughput in arrow dev mailing list today.
> I met the following error when trying to build the benchmark from latest
> source code:
> {code:java}
> [ 95%] Linking CXX executable ../../../debug/arrow-flight-perf-server
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to
> `boost::filesystem::detail::canonical(boost::filesystem::path const&,
> boost::filesystem::path const&, boost::system::error_code*)'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to
> `boost::system::system_category()'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to
> `boost::filesystem::path::parent_path() const'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to `deflate'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to `deflateEnd'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to
> `boost::system::generic_category()'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to
> `boost::filesystem::detail::current_path(boost::system::error_code*)'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to
> `inflateInit2_'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to `inflate'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to
> `deflateInit2_'
> ../../../debug/libarrow_flight.so.18.0.0: undefined reference to `inflateEnd'
> ../../../debug/libarrow_flight_testing.so.18.0.0: undefined reference to
> `boost::filesystem::path::operator/=(boost::filesystem::path const&)'
> collect2: error: ld returned 1 exit status
> src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/build.make:154:
> recipe for target 'debug/arrow-flight-perf-server' failed
> make[2]: *** [debug/arrow-flight-perf-server] Error 1
> CMakeFiles/Makefile2:2609: recipe for target
> 'src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/all' failed
> make[1]: *** [src/arrow/flight/CMakeFiles/arrow-flight-perf-server.dir/all]
> Error 2
> Makefile:140: recipe for target 'all' failed
> make: *** [all] Error 2
> {code}
> I was using {{cmake .. -DCMAKE_BUILD_TYPE=Debug
> -DARROW_DEPENDENCY_SOURCE=AUTO -DARROW_FLIGHT=ON -DARROW_BUILD_BENCHMARKS=ON
> -DARROW_CXXFLAGS="-lboost_filesystem -lboost_system"}} to configure the build.
> I noticed that there was a {{ARROW_BOOST_BUILD_VERSION: 1.71.0}} in the
> output, but the Boost library that I installed from the package manger was of
> this version: {{1.65.1.0ubuntu1}}. Could this be the cause of the problem?
> PS:
> I was able to build the benchmark
> [before|https://issues.apache.org/jira/browse/ARROW-7200]. It was on AWS with
> the OS being ubuntu-bionic-18.04-amd64-server-20191002, which should be very
> similar to the one I'm using on my laptop.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)