Skip to content

[C++] Purely static linking broken #21463

@asfimport

Description

@asfimport

On the current master, 816c10d030842a1a0da4d00f95a5e3749c86a74f (#3965), running

 

docker-compose build cpp
docker-compose run cpp-static-only

yields

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

Reporter: Philipp Moritz / @pcmoritz
Assignee: Uwe Korn / @xhochy

PRs and other links:

Note: This issue was originally created as ARROW-4958. Please see the migration documentation for further details.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions