Skip to content

Conversation

@kou
Copy link
Member

@kou kou commented Aug 10, 2023

Rationale for this change

Recent protoc generates files that use ABSL_DCHECK*(). At least 3.21.12 doesn't use ABSL_DCHECK*() and 23.4 uses ABSL_DCHECK*().

If ABSL_DCHECK*() are used, we need to link to absl::log_internal_check_op.

What changes are included in this PR?

Link to absl::log_internal_check_op if possible.

Are these changes tested?

Yes.

Are there any user-facing changes?

No.

…SL_DEHCK*()

Recent protoc generates files that use ABSL_DCHECK*(). At least
3.21.12 doesn't use ABSL_DCHECK*() and 23.4 uses ABSL_DCHECK*().

If ABSL_DCHECK*() are used, we need to link to
absl::log_internal_check_op.
@kou kou requested review from assignUser and raulcd as code owners August 10, 2023 22:23
@github-actions
Copy link

⚠️ GitHub issue #37116 has been automatically assigned in GitHub to PR creator.

@assignUser
Copy link
Member

fyi: #37066

@kou
Copy link
Member Author

kou commented Aug 11, 2023

Thanks for the information.
I think that this is related to Protobuf version instead of Abseil version.

BTW, do you need a help for #37066?

@kou
Copy link
Member Author

kou commented Aug 11, 2023

ARROW_ORC=ON without this change failed: https://github.com/kou/arrow/actions/runs/5826608466/job/15800926252#step:11:1488

FAILED: debug/arrow-orc-adapter-test 
: && /Applications/Xcode_14.2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/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 -msse4.2  -g -Werror -O0 -ggdb -g1 -isysroot /Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk -mmacosx-version-min=12.6 -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/MacOSX12.sdk/System/Library/Frameworks -Wl,-rpath,/usr/local/lib  orc_ep-install/lib/liborc.a  debug/libarrow_testing.a  debug/libarrow.a  googletest_ep-prefix/lib/libgtest_maind.dylib  googletest_ep-prefix/lib/libgtestd.dylib  orc_ep-install/lib/liborc.a  /usr/local/Cellar/lz4/1.9.4/lib/liblz4.dylib  /usr/local/lib/libzstd.1.5.5.dylib  /usr/local/lib/libsnappy.1.1.10.dylib  google_cloud_cpp_ep-install/lib/libgoogle_cloud_cpp_storage.a  /Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/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  /Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk/usr/lib/libcurl.tbd  /usr/local/opt/openssl@3/lib/libssl.dylib  /usr/local/opt/openssl@3/lib/libcrypto.dylib  /usr/local/Cellar/brotli/1.0.9/lib/libbrotlienc.dylib  /usr/local/Cellar/brotli/1.0.9/lib/libbrotlidec.dylib  /usr/local/Cellar/brotli/1.0.9/lib/libbrotlicommon.dylib  /Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk/usr/lib/libbz2.tbd  /usr/local/lib/libprotobuf.dylib  /usr/local/lib/libaws-cpp-sdk-config.dylib  /usr/local/lib/libaws-cpp-sdk-transfer.dylib  /usr/local/lib/libaws-cpp-sdk-identity-management.dylib  /usr/local/lib/libaws-cpp-sdk-cognito-identity.dylib  /usr/local/lib/libaws-cpp-sdk-sts.dylib  /usr/local/lib/libaws-cpp-sdk-s3.dylib  /usr/local/lib/libaws-cpp-sdk-core.dylib  /usr/local/lib/libaws-crt-cpp.dylib  /usr/local/lib/libaws-c-mqtt.1.0.0.dylib  /usr/local/lib/libaws-c-event-stream.1.0.0.dylib  /usr/local/lib/libaws-c-s3.1.0.0.dylib  /usr/local/lib/libaws-c-auth.1.0.0.dylib  /usr/local/lib/libaws-c-http.1.0.0.dylib  /usr/local/lib/libaws-c-io.1.0.0.dylib  /usr/local/lib/libaws-c-compression.1.0.0.dylib  /usr/local/lib/libaws-c-cal.1.0.0.dylib  -framework Security  /usr/local/lib/libaws-c-sdkutils.1.0.0.dylib  /usr/local/lib/libaws-checksums.1.0.0.dylib  /usr/local/lib/libaws-c-common.1.0.0.dylib  -pthread  -lpthread  -framework CoreFoundation  /usr/local/lib/libutf8proc.dylib  /usr/local/lib/libre2.11.0.0.dylib  /usr/local/lib/libabsl_flags.2301.0.0.dylib  /usr/local/lib/libabsl_flags_internal.2301.0.0.dylib  /usr/local/lib/libabsl_flags_marshalling.2301.0.0.dylib  /usr/local/lib/libabsl_str_format_internal.2301.0.0.dylib  /usr/local/lib/libabsl_flags_reflection.2301.0.0.dylib  /usr/local/lib/libabsl_flags_config.2301.0.0.dylib  /usr/local/lib/libabsl_flags_program_name.2301.0.0.dylib  /usr/local/lib/libabsl_flags_private_handle_accessor.2301.0.0.dylib  /usr/local/lib/libabsl_flags_commandlineflag.2301.0.0.dylib  /usr/local/lib/libabsl_flags_commandlineflag_internal.2301.0.0.dylib  /usr/local/lib/libabsl_cord.2301.0.0.dylib  /usr/local/lib/libabsl_cordz_info.2301.0.0.dylib  /usr/local/lib/libabsl_cord_internal.2301.0.0.dylib  /usr/local/lib/libabsl_cordz_functions.2301.0.0.dylib  /usr/local/lib/libabsl_cordz_handle.2301.0.0.dylib  /usr/local/lib/libabsl_crc_cord_state.2301.0.0.dylib  /usr/local/lib/libabsl_crc32c.2301.0.0.dylib  /usr/local/lib/libabsl_crc_internal.2301.0.0.dylib  /usr/local/lib/libabsl_crc_cpu_detect.2301.0.0.dylib  /usr/local/lib/libabsl_hash.2301.0.0.dylib  /usr/local/lib/libabsl_bad_variant_access.2301.0.0.dylib  /usr/local/lib/libabsl_city.2301.0.0.dylib  /usr/local/lib/libabsl_low_level_hash.2301.0.0.dylib  /usr/local/lib/libabsl_raw_hash_set.2301.0.0.dylib  /usr/local/lib/libabsl_hashtablez_sampler.2301.0.0.dylib  /usr/local/lib/libabsl_exponential_biased.2301.0.0.dylib  /usr/local/lib/libabsl_bad_optional_access.2301.0.0.dylib  /usr/local/lib/libabsl_synchronization.2301.0.0.dylib  /usr/local/lib/libabsl_graphcycles_internal.2301.0.0.dylib  /usr/local/lib/libabsl_time.2301.0.0.dylib  /usr/local/lib/libabsl_civil_time.2301.0.0.dylib  /usr/local/lib/libabsl_time_zone.2301.0.0.dylib  -Xlinker -framework -Xlinker CoreFoundation  /usr/local/lib/libabsl_stacktrace.2301.0.0.dylib  /usr/local/lib/libabsl_symbolize.2301.0.0.dylib  /usr/local/lib/libabsl_strings.2301.0.0.dylib  /usr/local/lib/libabsl_strings_internal.2301.0.0.dylib  /usr/local/lib/libabsl_int128.2301.0.0.dylib  /usr/local/lib/libabsl_throw_delegate.2301.0.0.dylib  /usr/local/lib/libabsl_malloc_internal.2301.0.0.dylib  /usr/local/lib/libabsl_debugging_internal.2301.0.0.dylib  /usr/local/lib/libabsl_demangle_internal.2301.0.0.dylib  /usr/local/lib/libabsl_base.2301.0.0.dylib  /usr/local/lib/libabsl_raw_logging_internal.2301.0.0.dylib  /usr/local/lib/libabsl_log_severity.2301.0.0.dylib  /usr/local/lib/libabsl_spinlock_wait.2301.0.0.dylib  jemalloc_ep-prefix/src/jemalloc_ep/dist//lib/libjemalloc_pic.a && :
Undefined symbols for architecture x86_64:
  "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::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 x86_64

@kou
Copy link
Member Author

kou commented Aug 11, 2023

ARROW_ORC=ON with this change succeeded: https://github.com/apache/arrow/actions/runs/5826698741/job/15801199933

So I merge this.

@kou kou merged commit e51f442 into apache:main Aug 11, 2023
@kou kou deleted the cpp-macos-orc branch August 11, 2023 01:05
@kou kou removed the awaiting committer review Awaiting committer review label Aug 11, 2023
@conbench-apache-arrow
Copy link

After merging your PR, Conbench analyzed the 6 benchmarking runs that have been run so far on merge-commit e51f442.

There were 5 benchmark results indicating a performance regression:

The full Conbench report has more details. It also includes information about possible false positives for unstable benchmarks that are known to sometimes produce them.

loicalleyne pushed a commit to loicalleyne/arrow that referenced this pull request Nov 13, 2023
…SL_DCHECK*() (apache#37117)

### Rationale for this change

Recent protoc generates files that use ABSL_DCHECK*(). At least 3.21.12 doesn't use ABSL_DCHECK*() and 23.4 uses ABSL_DCHECK*().

If ABSL_DCHECK*() are used, we need to link to absl::log_internal_check_op.

### What changes are included in this PR?

Link to absl::log_internal_check_op if possible.

### Are these changes tested?

Yes.

### Are there any user-facing changes?

No.
* Closes: apache#37116

Authored-by: Sutou Kouhei <kou@clear-code.com>
Signed-off-by: Sutou Kouhei <kou@clear-code.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

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

2 participants