Skip to content

Compiling with protobuf 30.0-rc1 fails #32

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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions