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

Reply via email to