Skip to content

Compiling with protobuf 30.0-rc1 fails #32

@monkeynova

Description

@monkeynova

I have a github repo that has riegeli as an indirect dependency (through fuzztest, and I know I can cut it out, but didn't want to go off-default too far).

I try to keep up with latest on my dependencies and upgraded to current today on all my dependencies from the bazel central repository. Upon doing so I met with the following error:

external/riegeli+/riegeli/chunk_encoding/transpose_encoder.cc:137:15: warning: unused function 'operator==' [-Wunused-function]
  137 |   friend bool operator==(const PriorityQueueEntry& a,
      |               ^~~~~~~~
1 warning generated.
ERROR: /private/var/tmp/_bazel_keith/7aeb99f7f348857a60e16b07cad11c5b/external/riegeli+/riegeli/records/BUILD:49:11: Compiling riegeli/records/record_writer.cc failed: (Exit 1): cc_wrapper.sh failed: error executing CppCompile command (from target @@riegeli+//riegeli/records:record_writer) external/rules_cc++cc_configure_extension+local_config_cc/cc_wrapper.sh -U_FORTIFY_SOURCE -fstack-protector -Wall -Wthread-safety -Wself-assign -Wunused-but-set-parameter -Wno-free-nonheap-object ... (remaining 117 arguments skipped)

Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging
external/riegeli+/riegeli/records/record_writer.cc:94:22: error: no matching member function for call to 'insert'
   94 |     if (!files_seen_.insert(file_descriptor->name()).second) return;
      |          ~~~~~~~~~~~~^~~~~~
external/abseil-cpp+/absl/container/internal/raw_hash_set.h:3027:29: note: candidate function not viable: no known conversion from 'internal::DescriptorStringView' (aka 'basic_string_view<char>') to 'init_type' (aka 'std::string') for 1st argument
 3027 |   std::pair<iterator, bool> insert(init_type&& value)
      |                             ^      ~~~~~~~~~~~~~~~~~
external/abseil-cpp+/absl/container/internal/raw_hash_set.h:3086:8: note: candidate function not viable: no known conversion from 'internal::DescriptorStringView' (aka 'basic_string_view<char>') to 'std::initializer_list<init_type>' (aka 'initializer_list<std::string>') for 1st argument
 3086 |   void insert(std::initializer_list<init_type> ilist) {
      |        ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
external/abseil-cpp+/absl/container/internal/raw_hash_set.h:3090:22: note: candidate function not viable: no known conversion from 'internal::DescriptorStringView' (aka 'basic_string_view<char>') to 'node_type' (aka 'node_handle<absl::container_internal::FlatHashSetPolicy<std::string>, hash_policy_traits<FlatHashSetPolicy<string>>, std::allocator<std::string>>') for 1st argument
 3090 |   insert_return_type insert(node_type&& node) ABSL_ATTRIBUTE_LIFETIME_BOUND {
      |                      ^      ~~~~~~~~~~~~~~~~
external/abseil-cpp+/absl/container/internal/raw_hash_set.h:2978:29: note: candidate template ignored: requirement 'disjunction<std::is_same<std::string, std::string_view>, std::is_convertible<std::string_view, std::string>>::value' was not satisfied [with T = internal::DescriptorStringView]
 2978 |   std::pair<iterator, bool> insert(T&& value) ABSL_ATTRIBUTE_LIFETIME_BOUND {
      |                             ^
external/abseil-cpp+/absl/container/internal/raw_hash_set.h:2987:29: note: candidate template ignored: requirement 'disjunction<std::is_same<std::string, std::string_view>, std::is_convertible<std::string_view, std::string>>::value' was not satisfied [with T = internal::DescriptorStringView]
 2987 |   std::pair<iterator, bool> insert(
      |                             ^
external/abseil-cpp+/absl/container/internal/raw_hash_set.h:3008:29: note: candidate template ignored: requirement 'disjunction<std::is_same<std::string, std::string_view>, std::is_convertible<const std::string_view &, std::string>>::value' was not satisfied [with T = internal::DescriptorStringView]
 3008 |   std::pair<iterator, bool> insert(const T& value)
      |                             ^
external/abseil-cpp+/absl/container/internal/raw_hash_set.h:3016:29: note: candidate template ignored: requirement 'disjunction<std::is_same<std::string, std::string_view>, std::is_convertible<const std::string_view &, std::string>>::value' was not satisfied [with T = internal::DescriptorStringView]
 3016 |   std::pair<iterator, bool> insert(
      |                             ^
external/abseil-cpp+/absl/container/internal/raw_hash_set.h:3082:8: note: candidate template ignored: could not match 'initializer_list' against 'basic_string_view'
 3082 |   void insert(std::initializer_list<T> ilist) {
      |        ^
external/abseil-cpp+/absl/container/internal/raw_hash_set.h:3036:29: note: candidate function not viable: constraints not satisfied
 3036 |   std::pair<iterator, bool> insert(
      |                             ^
external/abseil-cpp+/absl/container/internal/raw_hash_set.h:3039:14: note: because 'IsLifetimeBoundAssignmentFrom<init_type>::value' evaluated to false
 3039 |     requires(IsLifetimeBoundAssignmentFrom<init_type>::value)
      |              ^
external/abseil-cpp+/absl/container/internal/raw_hash_set.h:3050:12: note: candidate function not viable: requires 2 arguments, but 1 was provided
 3050 |   iterator insert(const_iterator, T&& value) ABSL_ATTRIBUTE_LIFETIME_BOUND {
      |            ^      ~~~~~~~~~~~~~~~~~~~~~~~~~
external/abseil-cpp+/absl/container/internal/raw_hash_set.h:3058:12: note: candidate function not viable: requires 2 arguments, but 1 was provided
 3058 |   iterator insert(const_iterator, T&& value ABSL_INTERNAL_ATTRIBUTE_CAPTURED_BY(
      |            ^      ~~~~~~~~~~~~~~~~~~~~~~~~~
external/abseil-cpp+/absl/container/internal/raw_hash_set.h:3065:12: note: candidate function not viable: requires 2 arguments, but 1 was provided
 3065 |   iterator insert(const_iterator,
      |            ^      ~~~~~~~~~~~~~~~
 3066 |                   const T& value) ABSL_ATTRIBUTE_LIFETIME_BOUND {
      |                   ~~~~~~~~~~~~~~
external/abseil-cpp+/absl/container/internal/raw_hash_set.h:3070:12: note: candidate function not viable: requires 2 arguments, but 1 was provided
 3070 |   iterator insert(const_iterator,
      |            ^      ~~~~~~~~~~~~~~~
 3071 |                   init_type&& value) ABSL_ATTRIBUTE_LIFETIME_BOUND {
      |                   ~~~~~~~~~~~~~~~~~
external/abseil-cpp+/absl/container/internal/raw_hash_set.h:3076:8: note: candidate function not viable: requires 2 arguments, but 1 was provided
 3076 |   void insert(InputIt first, InputIt last) {
      |        ^      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
external/abseil-cpp+/absl/container/internal/raw_hash_set.h:3104:12: note: candidate function not viable: requires 2 arguments, but 1 was provided
 3104 |   iterator insert(const_iterator,
      |            ^      ~~~~~~~~~~~~~~~
 3105 |                   node_type&& node) ABSL_ATTRIBUTE_LIFETIME_BOUND {
      |                   ~~~~~~~~~~~~~~~~
1 error generated.

De-upgrading protobuf from 30.0-rc1 to 29.0 allowed my build to succeed again.

This looks like an automatic type conversion problem from a string_view type to a string through an intermediate, but I didn't continue digging after I got the build to succeed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions