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)

Reply via email to