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

Wes McKinney commented on ARROW-3745:
-------------------------------------

I found the problem. Libraries are linking to themselves here

https://github.com/apache/arrow/blob/master/cpp/cmake_modules/BuildUtils.cmake#L70

I will remove in https://github.com/apache/arrow/pull/2735 and see if that 
doesn't break anything

> [C++] CMake passes static libraries multiple times to linker
> ------------------------------------------------------------
>
>                 Key: ARROW-3745
>                 URL: https://issues.apache.org/jira/browse/ARROW-3745
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: C#, C++
>    Affects Versions: 0.11.1
>            Reporter: Wes McKinney
>            Priority: Major
>
> With {{make array-test}} I see
> {code}
> [ 97%] Building CXX object src/arrow/CMakeFiles/array-test.dir/array-test.cc.o
> cd /home/wesm/code/arrow/cpp/build-test/src/arrow && /usr/bin/ccache 
> /usr/bin/clang++-6.0  -DARROW_JEMALLOC 
> -DARROW_JEMALLOC_INCLUDE_DIR=/home/wesm/code/arrow/cpp/build-test/jemalloc_ep-prefix/src/jemalloc_ep/dist//include
>  -DARROW_WITH_BROTLI -DARROW_WITH_LZ4 -DARROW_WITH_SNAPPY -DARROW_WITH_ZLIB 
> -DARROW_WITH_ZSTD -isystem /home/wesm/cpp-toolchain/include -isystem 
> /home/wesm/code/arrow/cpp/build-test/double-conversion_ep/src/double-conversion_ep/include
>  -isystem /home/wesm/code/arrow/cpp/build-test/jemalloc_ep-prefix/src 
> -isystem /home/wesm/code/arrow/cpp/thirdparty/hadoop/include 
> -I/home/wesm/code/arrow/cpp/build-test/src -I/home/wesm/code/arrow/cpp/src  
> -std=c++11  -Qunused-arguments -ggdb -O0  -Wall -Wno-unknown-warning-option 
> -msse3 -maltivec  -g   -std=gnu++11 -o 
> CMakeFiles/array-test.dir/array-test.cc.o -c 
> /home/wesm/code/arrow/cpp/src/arrow/array-test.cc
> [100%] Linking CXX executable ../../debug/array-test
> cd /home/wesm/code/arrow/cpp/build-test/src/arrow && 
> /home/wesm/cpp-toolchain/bin/cmake -E cmake_link_script 
> CMakeFiles/array-test.dir/link.txt --verbose=1
> /usr/bin/ccache /usr/bin/clang++-6.0   -std=c++11  -Qunused-arguments -ggdb 
> -O0  -Wall -Wno-unknown-warning-option -msse3 -maltivec  -g  -rdynamic 
> CMakeFiles/array-test.dir/array-test.cc.o  -o ../../debug/array-test 
> -Wl,-rpath,/home/wesm/cpp-toolchain/lib ../../debug/libarrow.a 
> /home/wesm/cpp-toolchain/lib/libgtest_main.a 
> /home/wesm/cpp-toolchain/lib/libgtest.a -ldl 
> /home/wesm/cpp-toolchain/lib/libglog.a /home/wesm/cpp-toolchain/lib/libglog.a 
> /home/wesm/cpp-toolchain/lib/libzstd.a /home/wesm/cpp-toolchain/lib/libzstd.a 
> /home/wesm/cpp-toolchain/lib/libz.so /home/wesm/cpp-toolchain/lib/libz.so 
> /home/wesm/cpp-toolchain/lib/libsnappy.a 
> /home/wesm/cpp-toolchain/lib/libsnappy.a 
> /home/wesm/cpp-toolchain/lib/liblz4.a /home/wesm/cpp-toolchain/lib/liblz4.a 
> /home/wesm/cpp-toolchain/lib/libbrotlidec-static.a 
> /home/wesm/cpp-toolchain/lib/libbrotlidec-static.a 
> /home/wesm/cpp-toolchain/lib/libbrotlienc-static.a 
> /home/wesm/cpp-toolchain/lib/libbrotlienc-static.a 
> /home/wesm/cpp-toolchain/lib/libbrotlicommon-static.a 
> /home/wesm/cpp-toolchain/lib/libbrotlicommon-static.a 
> ../../double-conversion_ep/src/double-conversion_ep/lib/libdouble-conversion.a
>  
> ../../double-conversion_ep/src/double-conversion_ep/lib/libdouble-conversion.a
>  /home/wesm/cpp-toolchain/lib/libboost_system.so 
> /home/wesm/cpp-toolchain/lib/libboost_filesystem.so 
> /home/wesm/cpp-toolchain/lib/libboost_regex.so 
> ../../jemalloc_ep-prefix/src/jemalloc_ep/dist//lib/libjemalloc_pic.a 
> -lpthread -lrt /usr/lib/x86_64-linux-gnu/libpthread.so 
> /home/wesm/cpp-toolchain/lib/libgtest_main.a 
> /home/wesm/cpp-toolchain/lib/libgtest.a 
> {code}
> Note how some of the static libraries are passed multiple times



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

Reply via email to