Philipp Moritz created ARROW-4958:
-------------------------------------
Summary: [C++] Purely static linking broken
Key: ARROW-4958
URL: https://issues.apache.org/jira/browse/ARROW-4958
Project: Apache Arrow
Issue Type: Improvement
Reporter: Philipp Moritz
On the current master, 816c10d030842a1a0da4d00f95a5e3749c86a74f (#3965), running
{code:java}
docker-compose build cpp
docker-compose run cpp-static-only{code}
yields
{code:java}
[357/382] Linking CXX executable debug/parquet-encoding-benchmark
FAILED: debug/parquet-encoding-benchmark
: && /opt/conda/bin/ccache /usr/bin/g++ -Wno-noexcept-type
-fdiagnostics-color=always -ggdb -O0 -Wall -Wno-conversion
-Wno-sign-conversion -Werror -msse4.2 -g -rdynamic
src/parquet/CMakeFiles/parquet-encoding-benchmark.dir/encoding-benchmark.cc.o
-o debug/parquet-encoding-benchmark -Wl,-rpath,/opt/conda/lib
/opt/conda/lib/libbenchmark_main.a debug/libparquet.a
/opt/conda/lib/libbenchmark.a debug/libarrow.a
/opt/conda/lib/libdouble-conversion.a /opt/conda/lib/libbrotlienc.so
/opt/conda/lib/libbrotlidec.so /opt/conda/lib/libbrotlicommon.so
/opt/conda/lib/libbz2.so /opt/conda/lib/liblz4.so
/opt/conda/lib/libsnappy.so.1.1.7 /opt/conda/lib/libz.so
/opt/conda/lib/libzstd.so orc_ep-install/lib/liborc.a
/opt/conda/lib/libprotobuf.so /opt/conda/lib/libglog.so
/opt/conda/lib/libboost_system.so /opt/conda/lib/libboost_filesystem.so
jemalloc_ep-prefix/src/jemalloc_ep/dist//lib/libjemalloc_pic.a -pthread -lrt
/opt/conda/lib/libboost_regex.so /opt/conda/lib/libthrift.so && :
src/parquet/CMakeFiles/parquet-encoding-benchmark.dir/encoding-benchmark.cc.o:
In function `testing::AssertionResult::AppendMessage(testing::Message const&)':
/opt/conda/include/gtest/gtest.h:352: undefined reference to
`testing::Message::GetString[abi:cxx11]() const'
src/parquet/CMakeFiles/parquet-encoding-benchmark.dir/encoding-benchmark.cc.o:
In function `parquet::BenchmarkDecodeArrow::InitDataInputs()':
/arrow/cpp/src/parquet/encoding-benchmark.cc:201: undefined reference to
`arrow::random::RandomArrayGenerator::StringWithRepeats(long, long, int, int,
double)'
src/parquet/CMakeFiles/parquet-encoding-benchmark.dir/encoding-benchmark.cc.o:
In function `parquet::BM_DictDecodingByteArray::DoEncodeData()':
/arrow/cpp/src/parquet/encoding-benchmark.cc:317: undefined reference to
`testing::internal::AlwaysTrue()'
/arrow/cpp/src/parquet/encoding-benchmark.cc:317: undefined reference to
`testing::internal::AlwaysTrue()'
/arrow/cpp/src/parquet/encoding-benchmark.cc:317: undefined reference to
`testing::Message::Message()'
/arrow/cpp/src/parquet/encoding-benchmark.cc:317: undefined reference to
`testing::internal::AssertHelper::AssertHelper(testing::TestPartResult::Type,
char const*, int, char const*)'
/arrow/cpp/src/parquet/encoding-benchmark.cc:317: undefined reference to
`testing::internal::AssertHelper::operator=(testing::Message const&) const'
/arrow/cpp/src/parquet/encoding-benchmark.cc:317: undefined reference to
`testing::internal::AssertHelper::~AssertHelper()'
/arrow/cpp/src/parquet/encoding-benchmark.cc:321: undefined reference to
`testing::Message::Message()'
/arrow/cpp/src/parquet/encoding-benchmark.cc:321: undefined reference to
`testing::internal::AssertHelper::AssertHelper(testing::TestPartResult::Type,
char const*, int, char const*)'
/arrow/cpp/src/parquet/encoding-benchmark.cc:321: undefined reference to
`testing::internal::AssertHelper::operator=(testing::Message const&) const'
/arrow/cpp/src/parquet/encoding-benchmark.cc:321: undefined reference to
`testing::internal::AssertHelper::~AssertHelper()'
/arrow/cpp/src/parquet/encoding-benchmark.cc:317: undefined reference to
`testing::internal::AssertHelper::~AssertHelper()'
/arrow/cpp/src/parquet/encoding-benchmark.cc:321: undefined reference to
`testing::internal::AssertHelper::~AssertHelper()'
src/parquet/CMakeFiles/parquet-encoding-benchmark.dir/encoding-benchmark.cc.o:
In function `testing::internal::scoped_ptr<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >
>::reset(std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >*)':
/opt/conda/include/gtest/internal/gtest-port.h:1215: undefined reference to
`testing::internal::IsTrue(bool)'
src/parquet/CMakeFiles/parquet-encoding-benchmark.dir/encoding-benchmark.cc.o:
In function `testing::AssertionResult
testing::internal::CmpHelperNE<parquet::DictEncoder<parquet::DataType<(parquet::Type::type)6>
>*, decltype(nullptr)>(char const*, char const*,
parquet::DictEncoder<parquet::DataType<(parquet::Type::type)6> >* const&,
decltype(nullptr) const&)':
/opt/conda/include/gtest/gtest.h:1573: undefined reference to
`testing::AssertionSuccess()'
src/parquet/CMakeFiles/parquet-encoding-benchmark.dir/encoding-benchmark.cc.o:
In function
`testing::internal::scoped_ptr<std::__cxx11::basic_stringstream<char,
std::char_traits<char>, std::allocator<char> >
>::reset(std::__cxx11::basic_stringstream<char, std::char_traits<char>,
std::allocator<char> >*)':
/opt/conda/include/gtest/internal/gtest-port.h:1215: undefined reference to
`testing::internal::IsTrue(bool)'
src/parquet/CMakeFiles/parquet-encoding-benchmark.dir/encoding-benchmark.cc.o:
In function `testing::AssertionResult
testing::internal::CmpHelperOpFailure<parquet::DictEncoder<parquet::DataType<(parquet::Type::type)6>
>*, decltype(nullptr)>(char const*, char const*,
parquet::DictEncoder<parquet::DataType<(parquet::Type::type)6> >* const&,
decltype(nullptr) const&, char const*)':
/opt/conda/include/gtest/gtest.h:1541: undefined reference to
`testing::AssertionFailure()'
/opt/conda/include/gtest/gtest.h:1543: undefined reference to
`testing::AssertionResult::AssertionResult(testing::AssertionResult const&)'
src/parquet/CMakeFiles/parquet-encoding-benchmark.dir/encoding-benchmark.cc.o:
In function `testing::AssertionResult& testing::AssertionResult::operator<<
<char [12]>(char const (&) [12])':
/opt/conda/include/gtest/gtest.h:335: undefined reference to
`testing::Message::Message()'
src/parquet/CMakeFiles/parquet-encoding-benchmark.dir/encoding-benchmark.cc.o:
In function `testing::AssertionResult& testing::AssertionResult::operator<<
<char const*>(char const* const&)':
/opt/conda/include/gtest/gtest.h:335: undefined reference to
`testing::Message::Message()'
src/parquet/CMakeFiles/parquet-encoding-benchmark.dir/encoding-benchmark.cc.o:
In function `testing::AssertionResult& testing::AssertionResult::operator<<
<char [3]>(char const (&) [3])':
/opt/conda/include/gtest/gtest.h:335: undefined reference to
`testing::Message::Message()'
src/parquet/CMakeFiles/parquet-encoding-benchmark.dir/encoding-benchmark.cc.o:
In function `testing::AssertionResult& testing::AssertionResult::operator<<
<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>
> >(std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&)':
/opt/conda/include/gtest/gtest.h:335: undefined reference to
`testing::Message::Message()'
src/parquet/CMakeFiles/parquet-encoding-benchmark.dir/encoding-benchmark.cc.o:
In function `testing::AssertionResult& testing::AssertionResult::operator<<
<char [5]>(char const (&) [5])':
/opt/conda/include/gtest/gtest.h:335: undefined reference to
`testing::Message::Message()'
collect2: error: ld returned 1 exit status
[366/382] Linking CXX executable debug/parquet-column_writer-test
ninja: build stopped: subcommand failed.{code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)