Skip to content

GH-37116: [C++][ORC] Link to absl::log_internal_check_op for ABSL_DCHECK*()#37117

Merged
kou merged 1 commit intoapache:mainfrom
kou:cpp-macos-orc
Aug 11, 2023
Merged

GH-37116: [C++][ORC] Link to absl::log_internal_check_op for ABSL_DCHECK*()#37117
kou merged 1 commit intoapache:mainfrom
kou:cpp-macos-orc

Conversation

@kou
Copy link
Copy Markdown
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
Copy Markdown

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

@assignUser
Copy link
Copy Markdown
Member

fyi: #37066

@kou
Copy link
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown

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