[ https://issues.apache.org/jira/browse/ARROW-2257?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Wes McKinney closed ARROW-2257. ------------------------------- > [C++] Add high-level option to toggle CXX11 ABI > ----------------------------------------------- > > Key: ARROW-2257 > URL: https://issues.apache.org/jira/browse/ARROW-2257 > Project: Apache Arrow > Issue Type: Improvement > Components: C++ > Reporter: Wes McKinney > Assignee: Wes McKinney > Priority: Major > Fix For: 0.9.0 > > > Using gcc-4.8-based toolchain libraries from conda-forge I ran into the > following failure when building on Ubuntu 16.04 with clang-5.0 > {code} > [48/48] Linking CXX executable debug/python-test > FAILED: debug/python-test > : && /usr/bin/ccache /usr/bin/clang++-5.0 -ggdb -O0 -Weverything > -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-deprecated > -Wno-weak-vtables -Wno-padded -Wno-comma -Wno-unused-parameter > -Wno-unused-template -Wno-undef -Wno-shadow -Wno-switch-enum > -Wno-exit-time-destructors -Wno-global-constructors > -Wno-weak-template-vtables -Wno-undefined-reinterpret-cast > -Wno-implicit-fallthrough -Wno-unreachable-code-return -Wno-float-equal > -Wno-missing-prototypes -Wno-old-style-cast -Wno-covered-switch-default > -Wno-cast-align -Wno-vla-extension -Wno-shift-sign-overflow > -Wno-used-but-marked-unused -Wno-missing-variable-declarations > -Wno-gnu-zero-variadic-macro-arguments -Wconversion -Wno-sign-conversion > -Wno-disabled-macro-expansion -Wno-gnu-folding-constant > -Wno-reserved-id-macro -Wno-range-loop-analysis -Wno-double-promotion > -Wno-undefined-func-template -Wno-zero-as-null-pointer-constant > -Wno-unknown-warning-option -Werror -std=c++11 -msse3 -maltivec -Werror > -D_GLIBCXX_USE_CXX11_ABI=0 -Qunused-arguments -fsanitize=address > -DADDRESS_SANITIZER -fsanitize-coverage=trace-pc-guard -g -rdynamic > src/arrow/python/CMakeFiles/python-test.dir/python-test.cc.o -o > debug/python-test > -Wl,-rpath,/home/wesm/code/arrow/cpp/build/debug:/home/wesm/miniconda/envs/arrow-dev/lib:/home/wesm/cpp-toolchain/lib > debug/libarrow_python_test_main.a debug/libarrow_python.a > debug/libarrow.so.0.0.0 > /home/wesm/miniconda/envs/arrow-dev/lib/libpython3.6m.so > /home/wesm/cpp-toolchain/lib/libgtest.a -lpthread -ldl > orc_ep-install/lib/liborc.a /home/wesm/cpp-toolchain/lib/libprotobuf.a > /home/wesm/cpp-toolchain/lib/libzstd.a /home/wesm/cpp-toolchain/lib/libz.a > /home/wesm/cpp-toolchain/lib/libsnappy.a > /home/wesm/cpp-toolchain/lib/liblz4.a > /home/wesm/cpp-toolchain/lib/libbrotlidec-static.a > /home/wesm/cpp-toolchain/lib/libbrotlienc-static.a > /home/wesm/cpp-toolchain/lib/libbrotlicommon-static.a -lpthread > -Wl,-rpath-link,/home/wesm/cpp-toolchain/lib && : > debug/libarrow.so.0.0.0: undefined reference to > `orc::ParseError::ParseError(std::string const&)' > debug/libarrow.so.0.0.0: undefined reference to > `google::protobuf::io::CodedOutputStream::WriteStringWithSizeToArray(std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const&, unsigned char*)' > debug/libarrow.so.0.0.0: undefined reference to > `google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(int, > std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, google::protobuf::io::CodedOutputStream*)' > debug/libarrow.so.0.0.0: undefined reference to > `google::protobuf::internal::fixed_address_empty_string[abi:cxx11]' > debug/libarrow.so.0.0.0: undefined reference to > `google::protobuf::internal::WireFormatLite::ReadBytes(google::protobuf::io::CodedInputStream*, > std::__cxx11::basic_string<char, std::char_traits<char>, > std::allocator<char> >*)' > debug/libarrow.so.0.0.0: undefined reference to > `google::protobuf::Message::GetTypeName[abi:cxx11]() const' > debug/libarrow.so.0.0.0: undefined reference to > `google::protobuf::Message::InitializationErrorString[abi:cxx11]() const' > debug/libarrow.so.0.0.0: undefined reference to > `google::protobuf::MessageLite::SerializeToString(std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> >*) const' > debug/libarrow.so.0.0.0: undefined reference to > `google::protobuf::internal::WireFormatLite::WriteString(int, > std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, google::protobuf::io::CodedOutputStream*)' > debug/libarrow.so.0.0.0: undefined reference to > `google::protobuf::MessageFactory::InternalRegisterGeneratedFile(char const*, > void (*)(std::__cxx11::basic_string<char, std::char_traits<char>, > std::allocator<char> > const&))' > debug/libarrow.so.0.0.0: undefined reference to > `google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(int, > std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, google::protobuf::io::CodedOutputStream*)' > debug/libarrow.so.0.0.0: undefined reference to > `google::protobuf::internal::AssignDescriptors(std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const&, > google::protobuf::internal::MigrationSchema const*, google::protobuf::Message > const* const*, unsigned int const*, google::protobuf::MessageFactory*, > google::protobuf::Metadata*, google::protobuf::EnumDescriptor const**, > google::protobuf::ServiceDescriptor const**)' > debug/libarrow.so.0.0.0: undefined reference to > `google::protobuf::MessageLite::ParseFromString(std::__cxx11::basic_string<char, > std::char_traits<char>, std::allocator<char> > const&)' > debug/libarrow.so.0.0.0: undefined reference to > `orc::RowReaderOptions::includeTypes(std::list<unsigned long, > std::allocator<unsigned long> > const&)' > clang: error: linker command failed with exit code 1 (use -v to see > invocation) > ninja: build stopped: subcommand failed. > {code} > The problem was that I added {{-DGLIBCXX_USE_CXX11_ABI=0}} in ARROW_CXXFLAGS > instead of CMAKE_CXX_FLAGS. We should either add a build option to set this > correctly or document it better in the README -- This message was sent by Atlassian JIRA (v7.6.3#76005)