Skip to content

[C++] Bundled ORC reports Abseil related link errors on macOS #37116

@kou

Description

@kou

Describe the bug, including details regarding any error messages, version, and platform.

This may be related to Abseil/Protobuf version. Both of them are installed by Homebrew in this case.

[84/161] Linking CXX executable debug/arrow-orc-adapter-test
FAILED: debug/arrow-orc-adapter-test 
: && /Library/Developer/CommandLineTools/usr/bin/c++ -fno-aligned-new  -Qunused-arguments -fcolor-diagnostics  -Wall -Wextra -Wdocumentation -Wshorten-64-to-32 -Wno-missing-braces -Wno-unused-parameter -Wno-constant-logical-operand -Wno-return-stack-address -Wdate-time -Wno-unknown-warning-option -Wno-pass-failed -march=armv8-a  -g -Werror -O0 -ggdb  -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX13.1.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names  src/arrow/adapters/orc/CMakeFiles/arrow-orc-adapter-test.dir/adapter_test.cc.o -o debug/arrow-orc-adapter-test -F/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/System/Library/Frameworks -Wl,-rpath,/Users/kou/work/cpp/arrow/cpp.build/debug -Wl,-rpath,/opt/homebrew/lib  orc_ep-install/lib/liborc.a  debug/libarrow_testing.1300.0.0.dylib  debug/libarrow.1300.0.0.dylib  googletest_ep-prefix/lib/libgtest_maind.dylib  googletest_ep-prefix/lib/libgtestd.dylib  orc_ep-install/lib/liborc.a  /opt/homebrew/Cellar/lz4/1.9.4/lib/liblz4.dylib  /opt/homebrew/lib/libzstd.1.5.5.dylib  /opt/homebrew/lib/libsnappy.1.1.10.dylib  google_cloud_cpp_ep-install/lib/libgoogle_cloud_cpp_storage.a  /Library/Developer/CommandLineTools/SDKs/MacOSX13.1.sdk/usr/lib/libz.tbd  google_cloud_cpp_ep-install/lib/libgoogle_cloud_cpp_rest_internal.a  google_cloud_cpp_ep-install/lib/libgoogle_cloud_cpp_common.a  crc32c_ep-install/lib/libcrc32c.a  /Library/Developer/CommandLineTools/SDKs/MacOSX13.1.sdk/usr/lib/libcurl.tbd  /opt/homebrew/opt/openssl@3/lib/libssl.dylib  /opt/homebrew/opt/openssl@3/lib/libcrypto.dylib  /opt/homebrew/Cellar/brotli/1.0.9/lib/libbrotlienc.dylib  /opt/homebrew/Cellar/brotli/1.0.9/lib/libbrotlidec.dylib  /opt/homebrew/Cellar/brotli/1.0.9/lib/libbrotlicommon.dylib  /opt/homebrew/lib/libprotobuf.dylib  /opt/homebrew/lib/libaws-cpp-sdk-config.dylib  /opt/homebrew/lib/libaws-cpp-sdk-transfer.dylib  /opt/homebrew/lib/libaws-cpp-sdk-identity-management.dylib  /opt/homebrew/lib/libaws-cpp-sdk-cognito-identity.dylib  /opt/homebrew/lib/libaws-cpp-sdk-sts.dylib  /opt/homebrew/lib/libaws-cpp-sdk-s3.dylib  /opt/homebrew/lib/libaws-cpp-sdk-core.dylib  /opt/homebrew/lib/libaws-crt-cpp.dylib  /opt/homebrew/lib/libaws-c-mqtt.1.0.0.dylib  /opt/homebrew/lib/libaws-c-event-stream.1.0.0.dylib  /opt/homebrew/lib/libaws-c-s3.1.0.0.dylib  /opt/homebrew/lib/libaws-c-auth.1.0.0.dylib  /opt/homebrew/lib/libaws-c-http.1.0.0.dylib  /opt/homebrew/lib/libaws-c-io.1.0.0.dylib  /opt/homebrew/lib/libaws-c-compression.1.0.0.dylib  /opt/homebrew/lib/libaws-c-cal.1.0.0.dylib  -framework Security  /opt/homebrew/lib/libaws-c-sdkutils.1.0.0.dylib  /opt/homebrew/lib/libaws-checksums.1.0.0.dylib  /opt/homebrew/lib/libaws-c-common.1.0.0.dylib  -pthread  -lpthread  -framework CoreFoundation  /opt/homebrew/lib/libutf8proc.dylib  /opt/homebrew/lib/libre2.11.0.0.dylib  /opt/homebrew/lib/libabsl_flags.2301.0.0.dylib  /opt/homebrew/lib/libabsl_flags_internal.2301.0.0.dylib  /opt/homebrew/lib/libabsl_flags_marshalling.2301.0.0.dylib  /opt/homebrew/lib/libabsl_str_format_internal.2301.0.0.dylib  /opt/homebrew/lib/libabsl_flags_reflection.2301.0.0.dylib  /opt/homebrew/lib/libabsl_flags_config.2301.0.0.dylib  /opt/homebrew/lib/libabsl_flags_program_name.2301.0.0.dylib  /opt/homebrew/lib/libabsl_flags_private_handle_accessor.2301.0.0.dylib  /opt/homebrew/lib/libabsl_flags_commandlineflag.2301.0.0.dylib  /opt/homebrew/lib/libabsl_flags_commandlineflag_internal.2301.0.0.dylib  /opt/homebrew/lib/libabsl_cord.2301.0.0.dylib  /opt/homebrew/lib/libabsl_cordz_info.2301.0.0.dylib  /opt/homebrew/lib/libabsl_cord_internal.2301.0.0.dylib  /opt/homebrew/lib/libabsl_cordz_functions.2301.0.0.dylib  /opt/homebrew/lib/libabsl_cordz_handle.2301.0.0.dylib  /opt/homebrew/lib/libabsl_crc_cord_state.2301.0.0.dylib  /opt/homebrew/lib/libabsl_crc32c.2301.0.0.dylib  /opt/homebrew/lib/libabsl_crc_internal.2301.0.0.dylib  /opt/homebrew/lib/libabsl_crc_cpu_detect.2301.0.0.dylib  /opt/homebrew/lib/libabsl_hash.2301.0.0.dylib  /opt/homebrew/lib/libabsl_bad_variant_access.2301.0.0.dylib  /opt/homebrew/lib/libabsl_city.2301.0.0.dylib  /opt/homebrew/lib/libabsl_low_level_hash.2301.0.0.dylib  /opt/homebrew/lib/libabsl_raw_hash_set.2301.0.0.dylib  /opt/homebrew/lib/libabsl_hashtablez_sampler.2301.0.0.dylib  /opt/homebrew/lib/libabsl_exponential_biased.2301.0.0.dylib  /opt/homebrew/lib/libabsl_bad_optional_access.2301.0.0.dylib  /opt/homebrew/lib/libabsl_synchronization.2301.0.0.dylib  /opt/homebrew/lib/libabsl_graphcycles_internal.2301.0.0.dylib  /opt/homebrew/lib/libabsl_time.2301.0.0.dylib  /opt/homebrew/lib/libabsl_civil_time.2301.0.0.dylib  /opt/homebrew/lib/libabsl_time_zone.2301.0.0.dylib  -Xlinker -framework -Xlinker CoreFoundation  /opt/homebrew/lib/libabsl_stacktrace.2301.0.0.dylib  /opt/homebrew/lib/libabsl_symbolize.2301.0.0.dylib  /opt/homebrew/lib/libabsl_strings.2301.0.0.dylib  /opt/homebrew/lib/libabsl_strings_internal.2301.0.0.dylib  /opt/homebrew/lib/libabsl_int128.2301.0.0.dylib  /opt/homebrew/lib/libabsl_throw_delegate.2301.0.0.dylib  /opt/homebrew/lib/libabsl_malloc_internal.2301.0.0.dylib  /opt/homebrew/lib/libabsl_debugging_internal.2301.0.0.dylib  /opt/homebrew/lib/libabsl_demangle_internal.2301.0.0.dylib  /opt/homebrew/lib/libabsl_base.2301.0.0.dylib  /opt/homebrew/lib/libabsl_raw_logging_internal.2301.0.0.dylib  /opt/homebrew/lib/libabsl_log_severity.2301.0.0.dylib  /opt/homebrew/lib/libabsl_spinlock_wait.2301.0.0.dylib  jemalloc_ep-prefix/src/jemalloc_ep/dist//lib/libjemalloc_pic.a  mimalloc_ep/src/mimalloc_ep/lib/mimalloc-2.0/libmimalloc-debug.a && :
Undefined symbols for architecture arm64:
  "absl::lts_20230125::log_internal::LogMessage::CopyToEncodedBuffer(std::__1::basic_string_view<char, std::__1::char_traits<char> >, absl::lts_20230125::log_internal::LogMessage::StringType)", referenced from:
      absl::lts_20230125::log_internal::LogMessage& absl::lts_20230125::log_internal::LogMessage::operator<<<48>(char const (&) [48]) in liborc.a(Writer.cc.o)
      absl::lts_20230125::log_internal::LogMessage& absl::lts_20230125::log_internal::LogMessage::operator<<<59>(char const (&) [59]) in liborc.a(Writer.cc.o)
      absl::lts_20230125::log_internal::LogMessage& absl::lts_20230125::log_internal::LogMessage::operator<<<19>(char const (&) [19]) in liborc.a(Writer.cc.o)
      absl::lts_20230125::log_internal::LogMessage& absl::lts_20230125::log_internal::LogMessage::operator<<<48>(char const (&) [48]) in liborc.a(ColumnWriter.cc.o)
      absl::lts_20230125::log_internal::LogMessage& absl::lts_20230125::log_internal::LogMessage::operator<<<59>(char const (&) [59]) in liborc.a(ColumnWriter.cc.o)
      absl::lts_20230125::log_internal::LogMessage& absl::lts_20230125::log_internal::LogMessage::operator<<<19>(char const (&) [19]) in liborc.a(ColumnWriter.cc.o)
      absl::lts_20230125::log_internal::LogMessage& absl::lts_20230125::log_internal::LogMessage::operator<<<48>(char const (&) [48]) in liborc.a(orc-proto-wrapper.cc.o)
      ...
  "absl::lts_20230125::log_internal::LogMessage& absl::lts_20230125::log_internal::LogMessage::operator<<<unsigned long, 0>(unsigned long const&)", referenced from:
      absl::lts_20230125::log_internal::LogMessage::operator<<(unsigned long) in liborc.a(Writer.cc.o)
      absl::lts_20230125::log_internal::LogMessage::operator<<(unsigned long) in liborc.a(ColumnWriter.cc.o)
      absl::lts_20230125::log_internal::LogMessage::operator<<(unsigned long) in liborc.a(orc-proto-wrapper.cc.o)
      absl::lts_20230125::log_internal::LogMessage::operator<<(unsigned long) in liborc.a(Statistics.cc.o)
  "absl::lts_20230125::log_internal::LogMessageFatal::LogMessageFatal(char const*, int, std::__1::basic_string_view<char, std::__1::char_traits<char> >)", referenced from:
      google::protobuf::RepeatedField<unsigned int>::GrowNoAnnotate(int, int) in liborc.a(Writer.cc.o)
      char* google::protobuf::Arena::CreateArray<char>(google::protobuf::Arena*, unsigned long) in liborc.a(Writer.cc.o)
      google::protobuf::RepeatedField<unsigned int>::elements() const in liborc.a(Writer.cc.o)
      google::protobuf::internal::ArenaAlignAs(unsigned long) in liborc.a(Writer.cc.o)
      void google::protobuf::internal::RepeatedPtrFieldBase::Clear<google::protobuf::RepeatedPtrField<orc::proto::ColumnStatistics>::TypeHandler>() in liborc.a(Writer.cc.o)
      void google::protobuf::internal::RepeatedPtrFieldBase::ClearNonEmpty<google::protobuf::RepeatedPtrField<orc::proto::ColumnStatistics>::TypeHandler>() in liborc.a(Writer.cc.o)
      google::protobuf::RepeatedPtrField<orc::proto::Type>::TypeHandler::Type* google::protobuf::internal::RepeatedPtrFieldBase::Mutable<google::protobuf::RepeatedPtrField<orc::proto::Type>::TypeHandler>(int) in liborc.a(Writer.cc.o)
      ...
  "absl::lts_20230125::log_internal::LogMessageFatal::~LogMessageFatal()", referenced from:
      google::protobuf::RepeatedField<unsigned int>::GrowNoAnnotate(int, int) in liborc.a(Writer.cc.o)
      char* google::protobuf::Arena::CreateArray<char>(google::protobuf::Arena*, unsigned long) in liborc.a(Writer.cc.o)
      google::protobuf::RepeatedField<unsigned int>::elements() const in liborc.a(Writer.cc.o)
      google::protobuf::internal::ArenaAlignAs(unsigned long) in liborc.a(Writer.cc.o)
      void google::protobuf::internal::RepeatedPtrFieldBase::Clear<google::protobuf::RepeatedPtrField<orc::proto::ColumnStatistics>::TypeHandler>() in liborc.a(Writer.cc.o)
      void google::protobuf::internal::RepeatedPtrFieldBase::ClearNonEmpty<google::protobuf::RepeatedPtrField<orc::proto::ColumnStatistics>::TypeHandler>() in liborc.a(Writer.cc.o)
      google::protobuf::RepeatedPtrField<orc::proto::Type>::TypeHandler::Type* google::protobuf::internal::RepeatedPtrFieldBase::Mutable<google::protobuf::RepeatedPtrField<orc::proto::Type>::TypeHandler>(int) in liborc.a(Writer.cc.o)
      ...
  "std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::MakeCheckOpString<void const*, void const*>(void const*, void const*, char const*)", referenced from:
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::Check_NEImpl<orc::proto::IntegerStatistics const*, orc::proto::IntegerStatistics*>(orc::proto::IntegerStatistics const* const&, orc::proto::IntegerStatistics* const&, char const*) in liborc.a(orc-proto-wrapper.cc.o)
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::Check_NEImpl<orc::proto::DoubleStatistics const*, orc::proto::DoubleStatistics*>(orc::proto::DoubleStatistics const* const&, orc::proto::DoubleStatistics* const&, char const*) in liborc.a(orc-proto-wrapper.cc.o)
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::Check_NEImpl<orc::proto::StringStatistics const*, orc::proto::StringStatistics*>(orc::proto::StringStatistics const* const&, orc::proto::StringStatistics* const&, char const*) in liborc.a(orc-proto-wrapper.cc.o)
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::Check_NEImpl<orc::proto::BucketStatistics const*, orc::proto::BucketStatistics*>(orc::proto::BucketStatistics const* const&, orc::proto::BucketStatistics* const&, char const*) in liborc.a(orc-proto-wrapper.cc.o)
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::Check_NEImpl<orc::proto::DecimalStatistics const*, orc::proto::DecimalStatistics*>(orc::proto::DecimalStatistics const* const&, orc::proto::DecimalStatistics* const&, char const*) in liborc.a(orc-proto-wrapper.cc.o)
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::Check_NEImpl<orc::proto::DateStatistics const*, orc::proto::DateStatistics*>(orc::proto::DateStatistics const* const&, orc::proto::DateStatistics* const&, char const*) in liborc.a(orc-proto-wrapper.cc.o)
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::Check_NEImpl<orc::proto::TimestampStatistics const*, orc::proto::TimestampStatistics*>(orc::proto::TimestampStatistics const* const&, orc::proto::TimestampStatistics* const&, char const*) in liborc.a(orc-proto-wrapper.cc.o)
      ...
  "std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::MakeCheckOpString<long long, long long>(long long, long long, char const*)", referenced from:
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::Check_GTImpl<int, int>(int const&, int const&, char const*) in liborc.a(Writer.cc.o)
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::Check_GEImpl<int, int>(int const&, int const&, char const*) in liborc.a(Writer.cc.o)
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::Check_LTImpl<int, int>(int const&, int const&, char const*) in liborc.a(Writer.cc.o)
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::Check_GEImpl<int, int>(int const&, int const&, char const*) in liborc.a(TypeImpl.cc.o)
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::Check_LTImpl<int, int>(int const&, int const&, char const*) in liborc.a(TypeImpl.cc.o)
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::Check_GTImpl<int, int>(int const&, int const&, char const*) in liborc.a(TypeImpl.cc.o)
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::Check_GEImpl<int, int>(int const&, int const&, char const*) in liborc.a(Reader.cc.o)
      ...
  "std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::MakeCheckOpString<unsigned long long, unsigned long long>(unsigned long long, unsigned long long, char const*)", referenced from:
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::Check_LEImpl<unsigned long, unsigned long>(unsigned long const&, unsigned long const&, char const*) in liborc.a(Writer.cc.o)
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::Check_LEImpl<unsigned long, unsigned long>(unsigned long const&, unsigned long const&, char const*) in liborc.a(ColumnWriter.cc.o)
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::Check_LEImpl<unsigned long, unsigned long>(unsigned long const&, unsigned long const&, char const*) in liborc.a(orc-proto-wrapper.cc.o)
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::Check_LEImpl<unsigned long, unsigned long>(unsigned long const&, unsigned long const&, char const*) in liborc.a(Statistics.cc.o)
  "absl::lts_20230125::log_internal::CheckOpMessageBuilder::ForVar2()", referenced from:
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::MakeCheckOpString<unsigned long long, long long>(unsigned long long, long long, char const*) in liborc.a(Writer.cc.o)
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::MakeCheckOpString<unsigned long long, long long>(unsigned long long, long long, char const*) in liborc.a(ColumnWriter.cc.o)
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::MakeCheckOpString<unsigned long long, long long>(unsigned long long, long long, char const*) in liborc.a(orc-proto-wrapper.cc.o)
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::MakeCheckOpString<unsigned long long, long long>(unsigned long long, long long, char const*) in liborc.a(Statistics.cc.o)
  "absl::lts_20230125::log_internal::CheckOpMessageBuilder::NewString()", referenced from:
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::MakeCheckOpString<unsigned long long, long long>(unsigned long long, long long, char const*) in liborc.a(Writer.cc.o)
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::MakeCheckOpString<unsigned long long, long long>(unsigned long long, long long, char const*) in liborc.a(ColumnWriter.cc.o)
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::MakeCheckOpString<unsigned long long, long long>(unsigned long long, long long, char const*) in liborc.a(orc-proto-wrapper.cc.o)
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::MakeCheckOpString<unsigned long long, long long>(unsigned long long, long long, char const*) in liborc.a(Statistics.cc.o)
  "absl::lts_20230125::log_internal::CheckOpMessageBuilder::CheckOpMessageBuilder(char const*)", referenced from:
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::MakeCheckOpString<unsigned long long, long long>(unsigned long long, long long, char const*) in liborc.a(Writer.cc.o)
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::MakeCheckOpString<unsigned long long, long long>(unsigned long long, long long, char const*) in liborc.a(ColumnWriter.cc.o)
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::MakeCheckOpString<unsigned long long, long long>(unsigned long long, long long, char const*) in liborc.a(orc-proto-wrapper.cc.o)
      std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >* absl::lts_20230125::log_internal::MakeCheckOpString<unsigned long long, long long>(unsigned long long, long long, char const*) in liborc.a(Statistics.cc.o)
ld: symbol(s) not found for architecture arm64

Component(s)

C++

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions