Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Which abseil is current protobuf compatible with? #10768

Closed
jiapei100 opened this issue Oct 12, 2022 · 20 comments
Closed

Which abseil is current protobuf compatible with? #10768

jiapei100 opened this issue Oct 12, 2022 · 20 comments
Assignees
Labels
c++ documentation inactive Denotes the issue/PR has not seen activity in the last 90 days.

Comments

@jiapei100
Copy link

I tried to build protobuf 21.7 from source, with abseil-cpp 20220623.1, but got the following ERROR messages:

[  0%] Building CXX object CMakeFiles/libprotobuf-lite.dir/src/google/protobuf/any_lite.cc.o
/usr/bin/c++ -DGOOGLE_PROTOBUF_CMAKE_BUILD -DHAVE_ZLIB -DLIBPROTOBUF_EXPORTS -DPROTOBUF_USE_DLLS -Dlibprotobuf_lite_EXPORTS -I....../protobuf/build -I....../protobuf/src -O3 -DNDEBUG -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -std=c++14 -MD -MT CMakeFiles/libprotobuf-lite.dir/src/google/protobuf/any_lite.cc.o -MF CMakeFiles/libprotobuf-lite.dir/src/google/protobuf/any_lite.cc.o.d -o CMakeFiles/libprotobuf-lite.dir/src/google/protobuf/any_lite.cc.o -c ....../protobuf/src/google/protobuf/any_lite.cc
In file included from ....../protobuf/src/google/protobuf/stubs/common.h:46,
                 from ....../protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.h:53,
                 from ....../protobuf/src/google/protobuf/any_lite.cc:31:
/usr/local/include/absl/strings/string_view.h:52:26: error: ‘string_view’ in namespace ‘std’ does not name a type
   52 | using string_view = std::string_view;
      |                          ^~~~~~~~~~~
/usr/local/include/absl/strings/string_view.h:52:21: note: ‘std::string_view’ is only available from C++17 onwards
   52 | using string_view = std::string_view;
      |                     ^~~
/usr/local/include/absl/strings/string_view.h:686:8: error: ‘string_view’ does not name a type
  686 | inline string_view ClippedSubstr(string_view s, size_t pos,
      |        ^~~~~~~~~~~
/usr/local/include/absl/strings/string_view.h:697:11: error: ‘string_view’ does not name a type
  697 | constexpr string_view NullSafeStringView(const char* p) {
      |           ^~~~~~~~~~~
In file included from ....../protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.h:53,
                 from ....../protobuf/src/google/protobuf/any_lite.cc:31:
....../protobuf/src/google/protobuf/stubs/common.h:136:1: warning: inline variables are only available with ‘-std=c++17’ or ‘-std=gnu++17’
  136 | inline bool IsStructurallyValidUTF8(absl::string_view str) {
      | ^~~~~~
....../protobuf/src/google/protobuf/stubs/common.h:136:43: error: ‘bool google::protobuf::internal::IsStructurallyValidUTF8’ redeclared as different kind of entity
  136 | inline bool IsStructurallyValidUTF8(absl::string_view str) {
      |                                           ^~~~~~~~~~~
....../protobuf/src/google/protobuf/stubs/common.h:134:22: note: previous declaration ‘bool google::protobuf::internal::IsStructurallyValidUTF8(const char*, int)’
  134 | PROTOBUF_EXPORT bool IsStructurallyValidUTF8(const char* buf, int len);
      |                      ^~~~~~~~~~~~~~~~~~~~~~~
....../protobuf/src/google/protobuf/stubs/common.h:136:43: error: ‘string_view’ is not a member of ‘absl’
  136 | inline bool IsStructurallyValidUTF8(absl::string_view str) {
      |                                           ^~~~~~~~~~~
....../protobuf/src/google/protobuf/stubs/common.h:141:52: error: ‘string_view’ is not a member of ‘absl’
  141 | PROTOBUF_EXPORT int UTF8SpnStructurallyValid(absl::string_view str);
      |                                                    ^~~~~~~~~~~
....../protobuf/src/google/protobuf/stubs/common.h:155:59: error: ‘string_view’ is not a member of ‘absl’
  155 | PROTOBUF_EXPORT char* UTF8CoerceToStructurallyValid(absl::string_view str,
      |                                                           ^~~~~~~~~~~
....../protobuf/src/google/protobuf/stubs/common.h:156:53: error: expected primary-expression before ‘char’
  156 |                                                     char* dst,
      |                                                     ^~~~
....../protobuf/src/google/protobuf/stubs/common.h:157:53: error: expected primary-expression before ‘char’
  157 |                                                     char replace_char);
      |                                                     ^~~~
....../protobuf/src/google/protobuf/stubs/common.h:157:70: error: expression list treated as compound expression in initializer [-fpermissive]
  157 |                                                     char replace_char);
      |                                                                      ^
In file included from ....../protobuf/src/google/protobuf/any_lite.cc:32:
/usr/local/include/absl/strings/match.h:46:31: error: ‘string_view’ is not a member of ‘absl’
   46 | inline bool StrContains(absl::string_view haystack,
      |                               ^~~~~~~~~~~
/usr/local/include/absl/strings/match.h:47:31: error: ‘string_view’ is not a member of ‘absl’
   47 |                         absl::string_view needle) noexcept {
      |                               ^~~~~~~~~~~
/usr/local/include/absl/strings/match.h:47:49: error: expression list treated as compound expression in initializer [-fpermissive]
   47 |                         absl::string_view needle) noexcept {
      |                                                 ^
/usr/local/include/absl/strings/match.h:51:13: error: redefinition of ‘bool absl::StrContains’
   51 | inline bool StrContains(absl::string_view haystack, char needle) noexcept {
      |             ^~~~~~~~~~~
/usr/local/include/absl/strings/match.h:46:13: note: ‘bool absl::StrContains’ previously defined here
   46 | inline bool StrContains(absl::string_view haystack,
      |             ^~~~~~~~~~~
/usr/local/include/absl/strings/match.h:51:31: error: ‘string_view’ is not a member of ‘absl’
   51 | inline bool StrContains(absl::string_view haystack, char needle) noexcept {
      |                               ^~~~~~~~~~~
/usr/local/include/absl/strings/match.h:51:53: error: expected primary-expression before ‘char’
   51 | inline bool StrContains(absl::string_view haystack, char needle) noexcept {
      |                                                     ^~~~
/usr/local/include/absl/strings/match.h:58:30: error: ‘string_view’ is not a member of ‘absl’
   58 | inline bool StartsWith(absl::string_view text,
      |                              ^~~~~~~~~~~
/usr/local/include/absl/strings/match.h:59:30: error: ‘string_view’ is not a member of ‘absl’
   59 |                        absl::string_view prefix) noexcept {
      |                              ^~~~~~~~~~~
/usr/local/include/absl/strings/match.h:59:48: error: expression list treated as compound expression in initializer [-fpermissive]
   59 |                        absl::string_view prefix) noexcept {
      |                                                ^
/usr/local/include/absl/strings/match.h:68:28: error: ‘string_view’ is not a member of ‘absl’
   68 | inline bool EndsWith(absl::string_view text,
      |                            ^~~~~~~~~~~
/usr/local/include/absl/strings/match.h:69:28: error: ‘string_view’ is not a member of ‘absl’
   69 |                      absl::string_view suffix) noexcept {
      |                            ^~~~~~~~~~~
/usr/local/include/absl/strings/match.h:69:46: error: expression list treated as compound expression in initializer [-fpermissive]
   69 |                      absl::string_view suffix) noexcept {
      |                                              ^
/usr/local/include/absl/strings/match.h:80:29: error: ‘string_view’ is not a member of ‘absl’
   80 | bool EqualsIgnoreCase(absl::string_view piece1,
      |                             ^~~~~~~~~~~
/usr/local/include/absl/strings/match.h:81:29: error: ‘string_view’ is not a member of ‘absl’
   81 |                       absl::string_view piece2) noexcept;
      |                             ^~~~~~~~~~~
/usr/local/include/absl/strings/match.h:81:47: error: expression list treated as compound expression in initializer [-fpermissive]
   81 |                       absl::string_view piece2) noexcept;
      |                                               ^
/usr/local/include/absl/strings/match.h:87:33: error: ‘string_view’ is not a member of ‘absl’
   87 | bool StartsWithIgnoreCase(absl::string_view text,
      |                                 ^~~~~~~~~~~
/usr/local/include/absl/strings/match.h:88:33: error: ‘string_view’ is not a member of ‘absl’
   88 |                           absl::string_view prefix) noexcept;
      |                                 ^~~~~~~~~~~
/usr/local/include/absl/strings/match.h:88:51: error: expression list treated as compound expression in initializer [-fpermissive]
   88 |                           absl::string_view prefix) noexcept;
      |                                                   ^
/usr/local/include/absl/strings/match.h:94:31: error: ‘string_view’ is not a member of ‘absl’
   94 | bool EndsWithIgnoreCase(absl::string_view text,
      |                               ^~~~~~~~~~~
/usr/local/include/absl/strings/match.h:95:31: error: ‘string_view’ is not a member of ‘absl’
   95 |                         absl::string_view suffix) noexcept;
      |                               ^~~~~~~~~~~
/usr/local/include/absl/strings/match.h:95:49: error: expression list treated as compound expression in initializer [-fpermissive]
   95 |                         absl::string_view suffix) noexcept;
      |                                                 ^
In file included from /usr/local/include/absl/strings/str_cat.h:64,
                 from ....../protobuf/src/google/protobuf/any_lite.cc:33:
/usr/local/include/absl/strings/numbers.h:62:44: error: ‘string_view’ is not a member of ‘absl’
   62 | ABSL_MUST_USE_RESULT bool SimpleAtoi(absl::string_view str, int_type* out);
      |                                            ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:62:69: error: expected primary-expression before ‘*’ token
   62 | ABSL_MUST_USE_RESULT bool SimpleAtoi(absl::string_view str, int_type* out);
      |                                                                     ^
/usr/local/include/absl/strings/numbers.h:62:71: error: ‘out’ was not declared in this scope
   62 | ABSL_MUST_USE_RESULT bool SimpleAtoi(absl::string_view str, int_type* out);
      |                                                                       ^~~
/usr/local/include/absl/strings/numbers.h:62:74: error: expression list treated as compound expression in initializer [-fpermissive]
   62 | ABSL_MUST_USE_RESULT bool SimpleAtoi(absl::string_view str, int_type* out);
      |                                                                          ^
/usr/local/include/absl/strings/numbers.h:73:44: error: ‘string_view’ is not a member of ‘absl’
   73 | ABSL_MUST_USE_RESULT bool SimpleAtof(absl::string_view str, float* out);
      |                                            ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:73:61: error: expected primary-expression before ‘float’
   73 | ABSL_MUST_USE_RESULT bool SimpleAtof(absl::string_view str, float* out);
      |                                                             ^~~~~
/usr/local/include/absl/strings/numbers.h:73:71: error: expression list treated as compound expression in initializer [-fpermissive]
   73 | ABSL_MUST_USE_RESULT bool SimpleAtof(absl::string_view str, float* out);
      |                                                                       ^
/usr/local/include/absl/strings/numbers.h:84:44: error: ‘string_view’ is not a member of ‘absl’
   84 | ABSL_MUST_USE_RESULT bool SimpleAtod(absl::string_view str, double* out);
      |                                            ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:84:61: error: expected primary-expression before ‘double’
   84 | ABSL_MUST_USE_RESULT bool SimpleAtod(absl::string_view str, double* out);
      |                                                             ^~~~~~
/usr/local/include/absl/strings/numbers.h:84:72: error: expression list treated as compound expression in initializer [-fpermissive]
   84 | ABSL_MUST_USE_RESULT bool SimpleAtod(absl::string_view str, double* out);
      |                                                                        ^
/usr/local/include/absl/strings/numbers.h:94:44: error: ‘string_view’ is not a member of ‘absl’
   94 | ABSL_MUST_USE_RESULT bool SimpleAtob(absl::string_view str, bool* out);
      |                                            ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:94:61: error: expected primary-expression before ‘bool’
   94 | ABSL_MUST_USE_RESULT bool SimpleAtob(absl::string_view str, bool* out);
      |                                                             ^~~~
/usr/local/include/absl/strings/numbers.h:94:70: error: expression list treated as compound expression in initializer [-fpermissive]
   94 | ABSL_MUST_USE_RESULT bool SimpleAtob(absl::string_view str, bool* out);
      |                                                                      ^
/usr/local/include/absl/strings/numbers.h:107:47: error: ‘string_view’ is not a member of ‘absl’
  107 | ABSL_MUST_USE_RESULT bool SimpleHexAtoi(absl::string_view str, int_type* out);
      |                                               ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:107:72: error: expected primary-expression before ‘*’ token
  107 | ABSL_MUST_USE_RESULT bool SimpleHexAtoi(absl::string_view str, int_type* out);
      |                                                                        ^
/usr/local/include/absl/strings/numbers.h:107:74: error: ‘out’ was not declared in this scope
  107 | ABSL_MUST_USE_RESULT bool SimpleHexAtoi(absl::string_view str, int_type* out);
      |                                                                          ^~~
/usr/local/include/absl/strings/numbers.h:107:77: error: expression list treated as compound expression in initializer [-fpermissive]
  107 | ABSL_MUST_USE_RESULT bool SimpleHexAtoi(absl::string_view str, int_type* out);
      |                                                                             ^
/usr/local/include/absl/strings/numbers.h:110:54: error: ‘bool absl::SimpleHexAtoi’ redeclared as different kind of entity
  110 | ABSL_MUST_USE_RESULT inline bool SimpleHexAtoi(absl::string_view str,
      |                                                      ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:107:27: note: previous declaration ‘template<class int_type> bool absl::SimpleHexAtoi<int_type>’
  107 | ABSL_MUST_USE_RESULT bool SimpleHexAtoi(absl::string_view str, int_type* out);
      |                           ^~~~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:110:54: error: ‘string_view’ is not a member of ‘absl’
  110 | ABSL_MUST_USE_RESULT inline bool SimpleHexAtoi(absl::string_view str,
      |                                                      ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:111:60: error: expected primary-expression before ‘*’ token
  111 |                                                absl::int128* out);
      |                                                            ^
/usr/local/include/absl/strings/numbers.h:111:62: error: ‘out’ was not declared in this scope
  111 |                                                absl::int128* out);
      |                                                              ^~~
/usr/local/include/absl/strings/numbers.h:112:54: error: ‘bool absl::SimpleHexAtoi’ redeclared as different kind of entity
  112 | ABSL_MUST_USE_RESULT inline bool SimpleHexAtoi(absl::string_view str,
      |                                                      ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:107:27: note: previous declaration ‘template<class int_type> bool absl::SimpleHexAtoi<int_type>’
  107 | ABSL_MUST_USE_RESULT bool SimpleHexAtoi(absl::string_view str, int_type* out);
      |                           ^~~~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:112:54: error: ‘string_view’ is not a member of ‘absl’
  112 | ABSL_MUST_USE_RESULT inline bool SimpleHexAtoi(absl::string_view str,
      |                                                      ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:113:61: error: expected primary-expression before ‘*’ token
  113 |                                                absl::uint128* out);
      |                                                             ^
/usr/local/include/absl/strings/numbers.h:113:63: error: ‘out’ was not declared in this scope
  113 |                                                absl::uint128* out);
      |                                                               ^~~
/usr/local/include/absl/strings/numbers.h:144:30: error: ‘string_view’ is not a member of ‘absl’
  144 | bool safe_strto32_base(absl::string_view text, int32_t* value, int base);
      |                              ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:144:55: error: expected primary-expression before ‘*’ token
  144 | bool safe_strto32_base(absl::string_view text, int32_t* value, int base);
      |                                                       ^
/usr/local/include/absl/strings/numbers.h:144:57: error: ‘value’ was not declared in this scope
  144 | bool safe_strto32_base(absl::string_view text, int32_t* value, int base);
      |                                                         ^~~~~
/usr/local/include/absl/strings/numbers.h:144:64: error: expected primary-expression before ‘int’
  144 | bool safe_strto32_base(absl::string_view text, int32_t* value, int base);
      |                                                                ^~~
/usr/local/include/absl/strings/numbers.h:144:72: error: expression list treated as compound expression in initializer [-fpermissive]
  144 | bool safe_strto32_base(absl::string_view text, int32_t* value, int base);
      |                                                                        ^
/usr/local/include/absl/strings/numbers.h:145:30: error: ‘string_view’ is not a member of ‘absl’
  145 | bool safe_strto64_base(absl::string_view text, int64_t* value, int base);
      |                              ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:145:55: error: expected primary-expression before ‘*’ token
  145 | bool safe_strto64_base(absl::string_view text, int64_t* value, int base);
      |                                                       ^
/usr/local/include/absl/strings/numbers.h:145:57: error: ‘value’ was not declared in this scope
  145 | bool safe_strto64_base(absl::string_view text, int64_t* value, int base);
      |                                                         ^~~~~
/usr/local/include/absl/strings/numbers.h:145:64: error: expected primary-expression before ‘int’
  145 | bool safe_strto64_base(absl::string_view text, int64_t* value, int base);
      |                                                                ^~~
/usr/local/include/absl/strings/numbers.h:145:72: error: expression list treated as compound expression in initializer [-fpermissive]
  145 | bool safe_strto64_base(absl::string_view text, int64_t* value, int base);
      |                                                                        ^
/usr/local/include/absl/strings/numbers.h:146:31: error: ‘string_view’ is not a member of ‘absl’
  146 | bool safe_strto128_base(absl::string_view text, absl::int128* value,
      |                               ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:146:61: error: expected primary-expression before ‘*’ token
  146 | bool safe_strto128_base(absl::string_view text, absl::int128* value,
      |                                                             ^
/usr/local/include/absl/strings/numbers.h:146:63: error: ‘value’ was not declared in this scope
  146 | bool safe_strto128_base(absl::string_view text, absl::int128* value,
      |                                                               ^~~~~
/usr/local/include/absl/strings/numbers.h:147:26: error: expected primary-expression before ‘int’
  147 |                          int base);
      |                          ^~~
/usr/local/include/absl/strings/numbers.h:147:34: error: expression list treated as compound expression in initializer [-fpermissive]
  147 |                          int base);
      |                                  ^
/usr/local/include/absl/strings/numbers.h:148:31: error: ‘string_view’ is not a member of ‘absl’
  148 | bool safe_strtou32_base(absl::string_view text, uint32_t* value, int base);
      |                               ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:148:57: error: expected primary-expression before ‘*’ token
  148 | bool safe_strtou32_base(absl::string_view text, uint32_t* value, int base);
      |                                                         ^
/usr/local/include/absl/strings/numbers.h:148:59: error: ‘value’ was not declared in this scope
  148 | bool safe_strtou32_base(absl::string_view text, uint32_t* value, int base);
      |                                                           ^~~~~
/usr/local/include/absl/strings/numbers.h:148:66: error: expected primary-expression before ‘int’
  148 | bool safe_strtou32_base(absl::string_view text, uint32_t* value, int base);
      |                                                                  ^~~
/usr/local/include/absl/strings/numbers.h:148:74: error: expression list treated as compound expression in initializer [-fpermissive]
  148 | bool safe_strtou32_base(absl::string_view text, uint32_t* value, int base);
      |                                                                          ^
/usr/local/include/absl/strings/numbers.h:149:31: error: ‘string_view’ is not a member of ‘absl’
  149 | bool safe_strtou64_base(absl::string_view text, uint64_t* value, int base);
      |                               ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:149:57: error: expected primary-expression before ‘*’ token
  149 | bool safe_strtou64_base(absl::string_view text, uint64_t* value, int base);
      |                                                         ^
/usr/local/include/absl/strings/numbers.h:149:59: error: ‘value’ was not declared in this scope
  149 | bool safe_strtou64_base(absl::string_view text, uint64_t* value, int base);
      |                                                           ^~~~~
/usr/local/include/absl/strings/numbers.h:149:66: error: expected primary-expression before ‘int’
  149 | bool safe_strtou64_base(absl::string_view text, uint64_t* value, int base);
      |                                                                  ^~~
/usr/local/include/absl/strings/numbers.h:149:74: error: expression list treated as compound expression in initializer [-fpermissive]
  149 | bool safe_strtou64_base(absl::string_view text, uint64_t* value, int base);
      |                                                                          ^
/usr/local/include/absl/strings/numbers.h:150:32: error: ‘string_view’ is not a member of ‘absl’
  150 | bool safe_strtou128_base(absl::string_view text, absl::uint128* value,
      |                                ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:150:63: error: expected primary-expression before ‘*’ token
  150 | bool safe_strtou128_base(absl::string_view text, absl::uint128* value,
      |                                                               ^
/usr/local/include/absl/strings/numbers.h:150:65: error: ‘value’ was not declared in this scope
  150 | bool safe_strtou128_base(absl::string_view text, absl::uint128* value,
      |                                                                 ^~~~~
/usr/local/include/absl/strings/numbers.h:151:26: error: expected primary-expression before ‘int’
  151 |                          int base);
      |                          ^~~
/usr/local/include/absl/strings/numbers.h:151:34: error: expression list treated as compound expression in initializer [-fpermissive]
  151 |                          int base);
      |                                  ^
/usr/local/include/absl/strings/numbers.h:202:50: error: ‘string_view’ is not a member of ‘absl’
  202 | ABSL_MUST_USE_RESULT bool safe_strtoi_base(absl::string_view s, int_type* out,
      |                                                  ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:202:73: error: expected primary-expression before ‘*’ token
  202 | ABSL_MUST_USE_RESULT bool safe_strtoi_base(absl::string_view s, int_type* out,
      |                                                                         ^
/usr/local/include/absl/strings/numbers.h:202:75: error: ‘out’ was not declared in this scope
  202 | ABSL_MUST_USE_RESULT bool safe_strtoi_base(absl::string_view s, int_type* out,
      |                                                                           ^~~
/usr/local/include/absl/strings/numbers.h:203:44: error: expected primary-expression before ‘int’
  203 |                                            int base) {
      |                                            ^~~
/usr/local/include/absl/strings/numbers.h:203:52: error: expression list treated as compound expression in initializer [-fpermissive]
  203 |                                            int base) {
      |                                                    ^
/usr/local/include/absl/strings/numbers.h:203:53: error: expected ‘;’ before ‘{’ token
  203 |                                            int base) {
      |                                                     ^~
      |                                                     ;
/usr/local/include/absl/strings/numbers.h:271:27: error: redefinition of ‘template<class int_type> bool absl::SimpleAtoi’
  271 | ABSL_MUST_USE_RESULT bool SimpleAtoi(absl::string_view str, int_type* out) {
      |                           ^~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:62:27: note: ‘template<class int_type> bool absl::SimpleAtoi<int_type>’ previously declared here
   62 | ABSL_MUST_USE_RESULT bool SimpleAtoi(absl::string_view str, int_type* out);
      |                           ^~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:271:44: error: ‘string_view’ is not a member of ‘absl’
  271 | ABSL_MUST_USE_RESULT bool SimpleAtoi(absl::string_view str, int_type* out) {
      |                                            ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:271:69: error: expected primary-expression before ‘*’ token
  271 | ABSL_MUST_USE_RESULT bool SimpleAtoi(absl::string_view str, int_type* out) {
      |                                                                     ^
/usr/local/include/absl/strings/numbers.h:271:71: error: ‘out’ was not declared in this scope
  271 | ABSL_MUST_USE_RESULT bool SimpleAtoi(absl::string_view str, int_type* out) {
      |                                                                       ^~~
/usr/local/include/absl/strings/numbers.h:275:51: error: ‘bool absl::SimpleAtoi’ redeclared as different kind of entity
  275 | ABSL_MUST_USE_RESULT inline bool SimpleAtoi(absl::string_view str,
      |                                                   ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:62:27: note: previous declaration ‘template<class int_type> bool absl::SimpleAtoi<int_type>’
   62 | ABSL_MUST_USE_RESULT bool SimpleAtoi(absl::string_view str, int_type* out);
      |                           ^~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:275:51: error: ‘string_view’ is not a member of ‘absl’
  275 | ABSL_MUST_USE_RESULT inline bool SimpleAtoi(absl::string_view str,
      |                                                   ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:276:57: error: expected primary-expression before ‘*’ token
  276 |                                             absl::int128* out) {
      |                                                         ^
/usr/local/include/absl/strings/numbers.h:276:59: error: ‘out’ was not declared in this scope
  276 |                                             absl::int128* out) {
      |                                                           ^~~
/usr/local/include/absl/strings/numbers.h:280:51: error: ‘bool absl::SimpleAtoi’ redeclared as different kind of entity
  280 | ABSL_MUST_USE_RESULT inline bool SimpleAtoi(absl::string_view str,
      |                                                   ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:62:27: note: previous declaration ‘template<class int_type> bool absl::SimpleAtoi<int_type>’
   62 | ABSL_MUST_USE_RESULT bool SimpleAtoi(absl::string_view str, int_type* out);
      |                           ^~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:280:51: error: ‘string_view’ is not a member of ‘absl’
  280 | ABSL_MUST_USE_RESULT inline bool SimpleAtoi(absl::string_view str,
      |                                                   ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:281:58: error: expected primary-expression before ‘*’ token
  281 |                                             absl::uint128* out) {
      |                                                          ^
/usr/local/include/absl/strings/numbers.h:281:60: error: ‘out’ was not declared in this scope
  281 |                                             absl::uint128* out) {
      |                                                            ^~~
/usr/local/include/absl/strings/numbers.h:286:27: error: redefinition of ‘template<class int_type> bool absl::SimpleHexAtoi’
  286 | ABSL_MUST_USE_RESULT bool SimpleHexAtoi(absl::string_view str, int_type* out) {
      |                           ^~~~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:107:27: note: ‘template<class int_type> bool absl::SimpleHexAtoi<int_type>’ previously declared here
  107 | ABSL_MUST_USE_RESULT bool SimpleHexAtoi(absl::string_view str, int_type* out);
      |                           ^~~~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:286:47: error: ‘string_view’ is not a member of ‘absl’
  286 | ABSL_MUST_USE_RESULT bool SimpleHexAtoi(absl::string_view str, int_type* out) {
      |                                               ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:286:72: error: expected primary-expression before ‘*’ token
  286 | ABSL_MUST_USE_RESULT bool SimpleHexAtoi(absl::string_view str, int_type* out) {
      |                                                                        ^
/usr/local/include/absl/strings/numbers.h:286:74: error: ‘out’ was not declared in this scope
  286 | ABSL_MUST_USE_RESULT bool SimpleHexAtoi(absl::string_view str, int_type* out) {
      |                                                                          ^~~
/usr/local/include/absl/strings/numbers.h:290:54: error: ‘bool absl::SimpleHexAtoi’ redeclared as different kind of entity
  290 | ABSL_MUST_USE_RESULT inline bool SimpleHexAtoi(absl::string_view str,
      |                                                      ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:107:27: note: previous declaration ‘template<class int_type> bool absl::SimpleHexAtoi<int_type>’
  107 | ABSL_MUST_USE_RESULT bool SimpleHexAtoi(absl::string_view str, int_type* out);
      |                           ^~~~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:290:54: error: ‘string_view’ is not a member of ‘absl’
  290 | ABSL_MUST_USE_RESULT inline bool SimpleHexAtoi(absl::string_view str,
      |                                                      ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:291:60: error: expected primary-expression before ‘*’ token
  291 |                                                absl::int128* out) {
      |                                                            ^
/usr/local/include/absl/strings/numbers.h:291:62: error: ‘out’ was not declared in this scope
  291 |                                                absl::int128* out) {
      |                                                              ^~~
/usr/local/include/absl/strings/numbers.h:295:54: error: ‘bool absl::SimpleHexAtoi’ redeclared as different kind of entity
  295 | ABSL_MUST_USE_RESULT inline bool SimpleHexAtoi(absl::string_view str,
      |                                                      ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:107:27: note: previous declaration ‘template<class int_type> bool absl::SimpleHexAtoi<int_type>’
  107 | ABSL_MUST_USE_RESULT bool SimpleHexAtoi(absl::string_view str, int_type* out);
      |                           ^~~~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:295:54: error: ‘string_view’ is not a member of ‘absl’
  295 | ABSL_MUST_USE_RESULT inline bool SimpleHexAtoi(absl::string_view str,
      |                                                      ^~~~~~~~~~~
/usr/local/include/absl/strings/numbers.h:296:61: error: expected primary-expression before ‘*’ token
  296 |                                                absl::uint128* out) {
      |                                                             ^
/usr/local/include/absl/strings/numbers.h:296:63: error: ‘out’ was not declared in this scope
  296 |                                                absl::uint128* out) {
      |                                                               ^~~
In file included from ....../protobuf/src/google/protobuf/any_lite.cc:33:
/usr/local/include/absl/strings/str_cat.h:121:15: error: ‘string_view’ has not been declared
  121 |   void Append(string_view v);
      |               ^~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h:123:24: error: ‘string_view’ has not been declared
  123 |   bool PutPaddedString(string_view v, int width, int precision, bool left);
      |                        ^~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h:126:58: error: ‘absl::string_view’ has not been declared
  126 |   friend void AbslFormatFlush(StringifySink* sink, absl::string_view v) {
      |                                                          ^~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h:131:10: error: ‘string_view’ does not name a type
  131 |   friend string_view ExtractStringification(StringifySink& sink, const T& v);
      |          ^~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h:138:1: error: ‘string_view’ does not name a type
  138 | string_view ExtractStringification(StringifySink& sink, const T& v) {
      | ^~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h:329:29: error: expected ‘)’ before ‘pc’
  329 |   AlphaNum(absl::string_view pc) : piece_(pc) {}  // NOLINT(runtime/explicit)
      |           ~                 ^~~
      |                             )
/usr/local/include/absl/strings/str_cat.h:349:9: error: ‘string_view’ in namespace ‘absl’ does not name a type
  349 |   absl::string_view::size_type size() const { return piece_.size(); }
      |         ^~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h:351:9: error: ‘string_view’ in namespace ‘absl’ does not name a type
  351 |   absl::string_view Piece() const { return piece_; }
      |         ^~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h:373:9: error: ‘string_view’ in namespace ‘absl’ does not name a type
  373 |   absl::string_view piece_;
      |         ^~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h: In constructor ‘absl::AlphaNum::AlphaNum(int)’:
/usr/local/include/absl/strings/str_cat.h:290:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
  290 |       : piece_(digits_, static_cast<size_t>(
      |         ^~~~~~
/usr/local/include/absl/strings/str_cat.h: In constructor ‘absl::AlphaNum::AlphaNum(unsigned int)’:
/usr/local/include/absl/strings/str_cat.h:294:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
  294 |       : piece_(digits_, static_cast<size_t>(
      |         ^~~~~~
/usr/local/include/absl/strings/str_cat.h: In constructor ‘absl::AlphaNum::AlphaNum(long int)’:
/usr/local/include/absl/strings/str_cat.h:298:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
  298 |       : piece_(digits_, static_cast<size_t>(
      |         ^~~~~~
/usr/local/include/absl/strings/str_cat.h: In constructor ‘absl::AlphaNum::AlphaNum(long unsigned int)’:
/usr/local/include/absl/strings/str_cat.h:302:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
  302 |       : piece_(digits_, static_cast<size_t>(
      |         ^~~~~~
/usr/local/include/absl/strings/str_cat.h: In constructor ‘absl::AlphaNum::AlphaNum(long long int)’:
/usr/local/include/absl/strings/str_cat.h:306:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
  306 |       : piece_(digits_, static_cast<size_t>(
      |         ^~~~~~
/usr/local/include/absl/strings/str_cat.h: In constructor ‘absl::AlphaNum::AlphaNum(long long unsigned int)’:
/usr/local/include/absl/strings/str_cat.h:310:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
  310 |       : piece_(digits_, static_cast<size_t>(
      |         ^~~~~~
/usr/local/include/absl/strings/str_cat.h: In constructor ‘absl::AlphaNum::AlphaNum(float)’:
/usr/local/include/absl/strings/str_cat.h:315:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
  315 |       : piece_(digits_, numbers_internal::SixDigitsToBuffer(f, digits_)) {}
      |         ^~~~~~
/usr/local/include/absl/strings/str_cat.h: In constructor ‘absl::AlphaNum::AlphaNum(double)’:
/usr/local/include/absl/strings/str_cat.h:317:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
  317 |       : piece_(digits_, numbers_internal::SixDigitsToBuffer(f, digits_)) {}
      |         ^~~~~~
/usr/local/include/absl/strings/str_cat.h: In constructor ‘absl::AlphaNum::AlphaNum(const absl::strings_internal::AlphaNumBuffer<size>&)’:
/usr/local/include/absl/strings/str_cat.h:325:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
  325 |       : piece_(&buf.data[0], buf.size) {}
      |         ^~~~~~
/usr/local/include/absl/strings/str_cat.h: In constructor ‘absl::AlphaNum::AlphaNum(const char*)’:
/usr/local/include/absl/strings/str_cat.h:328:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
  328 |       : piece_(NullSafeStringView(c_str)) {}      // NOLINT(runtime/explicit)
      |         ^~~~~~
/usr/local/include/absl/strings/str_cat.h:328:16: error: ‘NullSafeStringView’ was not declared in this scope
  328 |       : piece_(NullSafeStringView(c_str)) {}      // NOLINT(runtime/explicit)
      |                ^~~~~~~~~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h: In constructor ‘absl::AlphaNum::AlphaNum(const T&, absl::strings_internal::StringifySink&&)’:
/usr/local/include/absl/strings/str_cat.h:336:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
  336 |       : piece_(strings_internal::ExtractStringification(sink, v)) {}
      |         ^~~~~~
/usr/local/include/absl/strings/str_cat.h:336:34: error: ‘ExtractStringification’ is not a member of ‘absl::strings_internal’
  336 |       : piece_(strings_internal::ExtractStringification(sink, v)) {}
      |                                  ^~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h: In constructor ‘absl::AlphaNum::AlphaNum(const std::__cxx11::basic_string<char, std::char_traits<char>, Allocator>&)’:
/usr/local/include/absl/strings/str_cat.h:341:9: error: class ‘absl::AlphaNum’ does not have any field named ‘piece_’
  341 |       : piece_(str) {}
      |         ^~~~~~
/usr/local/include/absl/strings/str_cat.h: In member function ‘const char* absl::AlphaNum::data() const’:
/usr/local/include/absl/strings/str_cat.h:350:37: error: ‘piece_’ was not declared in this scope
  350 |   const char* data() const { return piece_.data(); }
      |                                     ^~~~~~
/usr/local/include/absl/strings/str_cat.h: At global scope:
/usr/local/include/absl/strings/str_cat.h:408:51: error: ‘string_view’ is not a member of ‘absl’
  408 | std::string CatPieces(std::initializer_list<absl::string_view> pieces);
      |                                                   ^~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h:408:51: error: ‘string_view’ is not a member of ‘absl’
/usr/local/include/absl/strings/str_cat.h:408:62: error: template argument 1 is invalid
  408 | std::string CatPieces(std::initializer_list<absl::string_view> pieces);
      |                                                              ^
/usr/local/include/absl/strings/str_cat.h:410:47: error: ‘string_view’ is not a member of ‘absl’
  410 |                   std::initializer_list<absl::string_view> pieces);
      |                                               ^~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h:410:47: error: ‘string_view’ is not a member of ‘absl’
/usr/local/include/absl/strings/str_cat.h:410:58: error: template argument 1 is invalid
  410 |                   std::initializer_list<absl::string_view> pieces);
      |                                                          ^
/usr/local/include/absl/strings/str_cat.h: In function ‘std::string absl::StrCat(const absl::AlphaNum&)’:
/usr/local/include/absl/strings/str_cat.h:417:34: error: ‘const class absl::AlphaNum’ has no member named ‘size’
  417 |   return std::string(a.data(), a.size());
      |                                  ^~~~
/usr/local/include/absl/strings/str_cat.h: In function ‘std::string absl::StrCat(const absl::AlphaNum&, const absl::AlphaNum&, const absl::AlphaNum&, const absl::AlphaNum&, const absl::AlphaNum&, const AV& ...)’:
/usr/local/include/absl/strings/str_cat.h:432:10: error: ‘const class absl::AlphaNum’ has no member named ‘Piece’
  432 |       {a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
      |          ^~~~~
/usr/local/include/absl/strings/str_cat.h:432:21: error: ‘const class absl::AlphaNum’ has no member named ‘Piece’
  432 |       {a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
      |                     ^~~~~
/usr/local/include/absl/strings/str_cat.h:432:32: error: ‘const class absl::AlphaNum’ has no member named ‘Piece’
  432 |       {a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
      |                                ^~~~~
/usr/local/include/absl/strings/str_cat.h:432:43: error: ‘const class absl::AlphaNum’ has no member named ‘Piece’
  432 |       {a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
      |                                           ^~~~~
/usr/local/include/absl/strings/str_cat.h:432:54: error: ‘const class absl::AlphaNum’ has no member named ‘Piece’
  432 |       {a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
      |                                                      ^~~~~
/usr/local/include/absl/strings/str_cat.h:433:43: error: ‘const class absl::AlphaNum’ has no member named ‘Piece’
  433 |        static_cast<const AlphaNum&>(args).Piece()...});
      |                                           ^~~~~
/usr/local/include/absl/strings/str_cat.h:431:37: error: cannot convert ‘<brace-enclosed initializer list>’ to ‘int’
  431 |   return strings_internal::CatPieces(
      |          ~~~~~~~~~~~~~~~~~~~~~~~~~~~^
      |                                     |
      |                                     <brace-enclosed initializer list>
  432 |       {a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  433 |        static_cast<const AlphaNum&>(args).Piece()...});
      |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/absl/strings/str_cat.h:408:64: note:   initializing argument 1 of ‘std::string absl::strings_internal::CatPieces(int)’
  408 | std::string CatPieces(std::initializer_list<absl::string_view> pieces);
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
/usr/local/include/absl/strings/str_cat.h: In function ‘void absl::StrAppend(std::string*, const absl::AlphaNum&, const absl::AlphaNum&, const absl::AlphaNum&, const absl::AlphaNum&, const absl::AlphaNum&, const AV& ...)’:
/usr/local/include/absl/strings/str_cat.h:477:16: error: ‘const class absl::AlphaNum’ has no member named ‘Piece’
  477 |       dest, {a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
      |                ^~~~~
/usr/local/include/absl/strings/str_cat.h:477:27: error: ‘const class absl::AlphaNum’ has no member named ‘Piece’
  477 |       dest, {a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
      |                           ^~~~~
/usr/local/include/absl/strings/str_cat.h:477:38: error: ‘const class absl::AlphaNum’ has no member named ‘Piece’
  477 |       dest, {a.Piece(), b.Piece(), c.Piece(), d.Piece(), e.Piece(),
......

Seems to be a compatibility issue of protobuf and abseil ???

@jiapei100 jiapei100 added the untriaged auto added to all issues by default when created. label Oct 12, 2022
@fowles
Copy link
Contributor

fowles commented Oct 12, 2022

We have not made a release of protobuf that uses abseil yet. The main branch has a dependency on abseil and can use it.

@fowles fowles added c++ and removed untriaged auto added to all issues by default when created. labels Oct 12, 2022
@sudhinmishra
Copy link

Is there a work-around for this?

shr-project added a commit to webOS-ports/meta-webos-ports that referenced this issue May 17, 2023
* on gentoo with gcc-13 on host there is one more issue with
  dev-cpp/abseil-cpp-20230125.2 while older dev-cpp/abseil-cpp-20220623.1
  works fine when building host's flatbuffers, similar to:
  protocolbuffers/protobuf#10768

Signed-off-by: Martin Jansa <[email protected]>
shr-project added a commit to webOS-ports/meta-webos-ports that referenced this issue May 18, 2023
* on gentoo with gcc-13 on host there is one more issue with
  dev-cpp/abseil-cpp-20230125.2 while older dev-cpp/abseil-cpp-20220623.1
  works fine when building host's flatbuffers, similar to:
  protocolbuffers/protobuf#10768

Signed-off-by: Martin Jansa <[email protected]>
shr-project added a commit to webOS-ports/meta-webos-ports that referenced this issue May 18, 2023
* on gentoo with gcc-13 on host there is one more issue with dev-cpp/abseil-cpp-20230125.2
  while older dev-cpp/abseil-cpp-20220623.1 works fine when building host's flatbuffers,
  similar to: protocolbuffers/protobuf#10768

  webruntime $ grep include/absl 94-r59.2/temp/log.do_compile.* | sort -u
  94-r59.2/temp/log.do_compile.2082512:/usr/include/absl/strings/string_view.h:52:21: note: ‘std::string_view’ is only available from C++17 onwards
  94-r59.2/temp/log.do_compile.2082512:/usr/include/absl/strings/string_view.h:52:26: error: ‘string_view’ in namespace ‘std’ does not name a type
  94-r59.2/temp/log.do_compile.2082512:/usr/include/absl/strings/string_view.h:686:8: error: ‘string_view’ does not name a type
  94-r59.2/temp/log.do_compile.2082512:/usr/include/absl/strings/string_view.h:697:11: error: ‘string_view’ does not name a type

* it still builds own version of host absl with or without abseil-cpp-native dependency:
  94-r59.2/temp/log.do_compile.1947113:[11550/43007] STAMP host/obj/third_party/abseil-cpp/absl.stamp
  94-r59.2/temp/log.do_compile.2082512:[11326/43007] STAMP host/obj/third_party/abseil-cpp/absl.stamp
  but at least now it works even with newer absl on host

Signed-off-by: Martin Jansa <[email protected]>
shr-project added a commit to webOS-ports/meta-webos-ports that referenced this issue May 18, 2023
* on gentoo with gcc-13 on host there is one more issue with
  dev-cpp/abseil-cpp-20230125.2 while older dev-cpp/abseil-cpp-20220623.1
  works fine when building host's flatbuffers, similar to:
  protocolbuffers/protobuf#10768

Signed-off-by: Martin Jansa <[email protected]>
shr-project added a commit to webOS-ports/meta-webos-ports that referenced this issue May 18, 2023
* on gentoo with gcc-13 on host there is one more issue with dev-cpp/abseil-cpp-20230125.2
  while older dev-cpp/abseil-cpp-20220623.1 works fine when building host's flatbuffers,
  similar to: protocolbuffers/protobuf#10768

  webruntime $ grep include/absl 94-r59.2/temp/log.do_compile.* | sort -u
  94-r59.2/temp/log.do_compile.2082512:/usr/include/absl/strings/string_view.h:52:21: note: ‘std::string_view’ is only available from C++17 onwards
  94-r59.2/temp/log.do_compile.2082512:/usr/include/absl/strings/string_view.h:52:26: error: ‘string_view’ in namespace ‘std’ does not name a type
  94-r59.2/temp/log.do_compile.2082512:/usr/include/absl/strings/string_view.h:686:8: error: ‘string_view’ does not name a type
  94-r59.2/temp/log.do_compile.2082512:/usr/include/absl/strings/string_view.h:697:11: error: ‘string_view’ does not name a type

* it still builds own version of host absl with or without abseil-cpp-native dependency:
  94-r59.2/temp/log.do_compile.1947113:[11550/43007] STAMP host/obj/third_party/abseil-cpp/absl.stamp
  94-r59.2/temp/log.do_compile.2082512:[11326/43007] STAMP host/obj/third_party/abseil-cpp/absl.stamp
  but at least now it works even with newer absl on host

Signed-off-by: Martin Jansa <[email protected]>
shr-project added a commit to webOS-ports/meta-webos-ports that referenced this issue May 18, 2023
* on gentoo with gcc-13 on host there is one more issue with dev-cpp/abseil-cpp-20230125.2
  while older dev-cpp/abseil-cpp-20220623.1 works fine when building host's flatbuffers,
  similar to: protocolbuffers/protobuf#10768

  webruntime $ grep include/absl 94-r59.2/temp/log.do_compile.* | sort -u
  94-r59.2/temp/log.do_compile.2082512:/usr/include/absl/strings/string_view.h:52:21: note: ‘std::string_view’ is only available from C++17 onwards
  94-r59.2/temp/log.do_compile.2082512:/usr/include/absl/strings/string_view.h:52:26: error: ‘string_view’ in namespace ‘std’ does not name a type
  94-r59.2/temp/log.do_compile.2082512:/usr/include/absl/strings/string_view.h:686:8: error: ‘string_view’ does not name a type
  94-r59.2/temp/log.do_compile.2082512:/usr/include/absl/strings/string_view.h:697:11: error: ‘string_view’ does not name a type

* it still builds own version of host absl with or without abseil-cpp-native dependency:
  94-r59.2/temp/log.do_compile.1947113:[11550/43007] STAMP host/obj/third_party/abseil-cpp/absl.stamp
  94-r59.2/temp/log.do_compile.2082512:[11326/43007] STAMP host/obj/third_party/abseil-cpp/absl.stamp
  but at least now it works even with newer absl on host

Signed-off-by: Martin Jansa <[email protected]>
Herrie82 pushed a commit to webOS-ports/meta-webos-ports that referenced this issue May 18, 2023
* on gentoo with gcc-13 on host there is one more issue with
  dev-cpp/abseil-cpp-20230125.2 while older dev-cpp/abseil-cpp-20220623.1
  works fine when building host's flatbuffers, similar to:
  protocolbuffers/protobuf#10768

Signed-off-by: Martin Jansa <[email protected]>
Herrie82 pushed a commit to webOS-ports/meta-webos-ports that referenced this issue May 18, 2023
* on gentoo with gcc-13 on host there is one more issue with dev-cpp/abseil-cpp-20230125.2
  while older dev-cpp/abseil-cpp-20220623.1 works fine when building host's flatbuffers,
  similar to: protocolbuffers/protobuf#10768

  webruntime $ grep include/absl 94-r59.2/temp/log.do_compile.* | sort -u
  94-r59.2/temp/log.do_compile.2082512:/usr/include/absl/strings/string_view.h:52:21: note: ‘std::string_view’ is only available from C++17 onwards
  94-r59.2/temp/log.do_compile.2082512:/usr/include/absl/strings/string_view.h:52:26: error: ‘string_view’ in namespace ‘std’ does not name a type
  94-r59.2/temp/log.do_compile.2082512:/usr/include/absl/strings/string_view.h:686:8: error: ‘string_view’ does not name a type
  94-r59.2/temp/log.do_compile.2082512:/usr/include/absl/strings/string_view.h:697:11: error: ‘string_view’ does not name a type

* it still builds own version of host absl with or without abseil-cpp-native dependency:
  94-r59.2/temp/log.do_compile.1947113:[11550/43007] STAMP host/obj/third_party/abseil-cpp/absl.stamp
  94-r59.2/temp/log.do_compile.2082512:[11326/43007] STAMP host/obj/third_party/abseil-cpp/absl.stamp
  but at least now it works even with newer absl on host

Signed-off-by: Martin Jansa <[email protected]>
shr-project added a commit to webOS-ports/meta-webos-ports that referenced this issue May 22, 2023
* on gentoo with gcc-13 on host there is one more issue with
  dev-cpp/abseil-cpp-20230125.2 while older dev-cpp/abseil-cpp-20220623.1
  works fine when building host's flatbuffers, similar to:
  protocolbuffers/protobuf#10768

Signed-off-by: Martin Jansa <[email protected]>
shr-project added a commit to webOS-ports/meta-webos-ports that referenced this issue May 22, 2023
* on gentoo with gcc-13 on host there is one more issue with dev-cpp/abseil-cpp-20230125.2
  while older dev-cpp/abseil-cpp-20220623.1 works fine when building host's flatbuffers,
  similar to: protocolbuffers/protobuf#10768

  webruntime $ grep include/absl 94-r59.2/temp/log.do_compile.* | sort -u
  94-r59.2/temp/log.do_compile.2082512:/usr/include/absl/strings/string_view.h:52:21: note: ‘std::string_view’ is only available from C++17 onwards
  94-r59.2/temp/log.do_compile.2082512:/usr/include/absl/strings/string_view.h:52:26: error: ‘string_view’ in namespace ‘std’ does not name a type
  94-r59.2/temp/log.do_compile.2082512:/usr/include/absl/strings/string_view.h:686:8: error: ‘string_view’ does not name a type
  94-r59.2/temp/log.do_compile.2082512:/usr/include/absl/strings/string_view.h:697:11: error: ‘string_view’ does not name a type

* it still builds own version of host absl with or without abseil-cpp-native dependency:
  94-r59.2/temp/log.do_compile.1947113:[11550/43007] STAMP host/obj/third_party/abseil-cpp/absl.stamp
  94-r59.2/temp/log.do_compile.2082512:[11326/43007] STAMP host/obj/third_party/abseil-cpp/absl.stamp
  but at least now it works even with newer absl on host

Signed-off-by: Martin Jansa <[email protected]>
shr-project added a commit to webOS-ports/meta-webos-ports that referenced this issue May 22, 2023
* on gentoo with gcc-13 on host there is one more issue with
  dev-cpp/abseil-cpp-20230125.2 while older dev-cpp/abseil-cpp-20220623.1
  works fine when building host's flatbuffers, similar to:
  protocolbuffers/protobuf#10768

Signed-off-by: Martin Jansa <[email protected]>
shr-project added a commit to webOS-ports/meta-webos-ports that referenced this issue May 22, 2023
* on gentoo with gcc-13 on host there is one more issue with dev-cpp/abseil-cpp-20230125.2
  while older dev-cpp/abseil-cpp-20220623.1 works fine when building host's flatbuffers,
  similar to: protocolbuffers/protobuf#10768

  webruntime $ grep include/absl 94-r59.2/temp/log.do_compile.* | sort -u
  94-r59.2/temp/log.do_compile.2082512:/usr/include/absl/strings/string_view.h:52:21: note: ‘std::string_view’ is only available from C++17 onwards
  94-r59.2/temp/log.do_compile.2082512:/usr/include/absl/strings/string_view.h:52:26: error: ‘string_view’ in namespace ‘std’ does not name a type
  94-r59.2/temp/log.do_compile.2082512:/usr/include/absl/strings/string_view.h:686:8: error: ‘string_view’ does not name a type
  94-r59.2/temp/log.do_compile.2082512:/usr/include/absl/strings/string_view.h:697:11: error: ‘string_view’ does not name a type

* it still builds own version of host absl with or without abseil-cpp-native dependency:
  94-r59.2/temp/log.do_compile.1947113:[11550/43007] STAMP host/obj/third_party/abseil-cpp/absl.stamp
  94-r59.2/temp/log.do_compile.2082512:[11326/43007] STAMP host/obj/third_party/abseil-cpp/absl.stamp
  but at least now it works even with newer absl on host

Signed-off-by: Martin Jansa <[email protected]>
shr-project added a commit to webOS-ports/meta-webos-ports that referenced this issue May 22, 2023
* on gentoo with gcc-13 on host there is one more issue with
  dev-cpp/abseil-cpp-20230125.2 while older dev-cpp/abseil-cpp-20220623.1
  works fine when building host's flatbuffers, similar to:
  protocolbuffers/protobuf#10768

Signed-off-by: Martin Jansa <[email protected]>
shr-project added a commit to webOS-ports/meta-webos-ports that referenced this issue May 22, 2023
* on gentoo with gcc-13 on host there is one more issue with dev-cpp/abseil-cpp-20230125.2
  while older dev-cpp/abseil-cpp-20220623.1 works fine when building host's flatbuffers,
  similar to: protocolbuffers/protobuf#10768

  webruntime $ grep include/absl 94-r59.2/temp/log.do_compile.* | sort -u
  94-r59.2/temp/log.do_compile.2082512:/usr/include/absl/strings/string_view.h:52:21: note: ‘std::string_view’ is only available from C++17 onwards
  94-r59.2/temp/log.do_compile.2082512:/usr/include/absl/strings/string_view.h:52:26: error: ‘string_view’ in namespace ‘std’ does not name a type
  94-r59.2/temp/log.do_compile.2082512:/usr/include/absl/strings/string_view.h:686:8: error: ‘string_view’ does not name a type
  94-r59.2/temp/log.do_compile.2082512:/usr/include/absl/strings/string_view.h:697:11: error: ‘string_view’ does not name a type

* it still builds own version of host absl with or without abseil-cpp-native dependency:
  94-r59.2/temp/log.do_compile.1947113:[11550/43007] STAMP host/obj/third_party/abseil-cpp/absl.stamp
  94-r59.2/temp/log.do_compile.2082512:[11326/43007] STAMP host/obj/third_party/abseil-cpp/absl.stamp
  but at least now it works even with newer absl on host

Signed-off-by: Martin Jansa <[email protected]>
@jiapei100
Copy link
Author

We have not made a release of protobuf that uses abseil yet. The main branch has a dependency on abseil and can use it.

In the official release v23.2, for protobuf_ABSL_PROVIDER, there are ONLY 2 options:

  • module
  • package

Which one to choose and build protobuf? It looks to me: no matter it's a module, or it's package, protobuf is ALWAYS based on abseil, isn't it?

@maxnoe
Copy link

maxnoe commented Aug 31, 2023

Please define the minimum required abseil version in the CMakeLists.txt, I had libabsl-dev installed on my ubuntu 22.04 machine but it seems the version is too old for protobuf (cmake complains about absl::absl_check not existing)

@shaba
Copy link

shaba commented Oct 20, 2023

If abseil build with -std=c++17 (default since GCC 11), then protobuf and python module need build with c++17 too.
sed -i 's/c++14/c++17/g' python/setup.py

thomas-roos added a commit to thomas-roos/meta-openembedded that referenced this issue Jan 8, 2024
Protobuf is compiled with -std=c++14, so abseil must be as well.
Details can be found here: protocolbuffers/protobuf#10768
Copy link

We triage inactive PRs and issues in order to make it easier to find active work. If this issue should remain active or becomes active again, please add a comment.

This issue is labeled inactive because the last activity was over 90 days ago.

@github-actions github-actions bot added the inactive Denotes the issue/PR has not seen activity in the last 90 days. label Jan 19, 2024
@maxnoe
Copy link

maxnoe commented Jan 19, 2024

The documentation still doesn't mention which versions of abseil are supported.

@github-actions github-actions bot removed the inactive Denotes the issue/PR has not seen activity in the last 90 days. label Jan 20, 2024
Copy link

We triage inactive PRs and issues in order to make it easier to find active work. If this issue should remain active or becomes active again, please add a comment.

This issue is labeled inactive because the last activity was over 90 days ago.

@github-actions github-actions bot added the inactive Denotes the issue/PR has not seen activity in the last 90 days. label Apr 19, 2024
@maxnoe
Copy link

maxnoe commented Apr 19, 2024

@Logofile
Copy link
Member

Thanks, Maximilian, for keeping this open.

@Logofile
Copy link
Member

Independent of the doc update needs, @jiapei100, the errors that you experienced appear to be that you're building with -std=c++14 and using a version of absl that dropped support for c++14.

@fowles
Copy link
Contributor

fowles commented Apr 19, 2024

Slight correction. Abseil has not dropped support for C++14. Very likely you are compiling in an interesting mixed configuration.

@github-actions github-actions bot removed the inactive Denotes the issue/PR has not seen activity in the last 90 days. label Apr 20, 2024
Copy link

We triage inactive PRs and issues in order to make it easier to find active work. If this issue should remain active or becomes active again, please add a comment.

This issue is labeled inactive because the last activity was over 90 days ago. This issue will be closed and archived after 14 additional days without activity.

@github-actions github-actions bot added the inactive Denotes the issue/PR has not seen activity in the last 90 days. label Jul 19, 2024
@maxnoe
Copy link

maxnoe commented Jul 19, 2024

Still relevant

@github-actions github-actions bot removed the inactive Denotes the issue/PR has not seen activity in the last 90 days. label Jul 20, 2024
Copy link

We triage inactive PRs and issues in order to make it easier to find active work. If this issue should remain active or becomes active again, please add a comment.

This issue is labeled inactive because the last activity was over 90 days ago. This issue will be closed and archived after 14 additional days without activity.

@github-actions github-actions bot added the inactive Denotes the issue/PR has not seen activity in the last 90 days. label Oct 18, 2024
Copy link

github-actions bot commented Nov 2, 2024

We triage inactive PRs and issues in order to make it easier to find active work. If this issue should remain active or becomes active again, please reopen it.

This issue was closed and archived because there has been no new activity in the 14 days since the inactive label was added.

@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Nov 2, 2024
@ViktorKatz
Copy link

Any news on this one? The documentation still doesn't provide any useful info.

@tonyliaoss
Copy link
Member

For this use case, you can take a look at the bazel mod command to debug dependency versions at your particular branch.

Documentation: https://bazel.build/external/mod-command

Sample command:

$ bazel mod deps abseil-cpp --enable_bzlmod
<root> ([email protected])
└───[email protected] 
    ├───[email protected] 
    ├───[email protected] 
    └───[email protected] 

bazel mod graph produces the full output:

$ bazel mod graph --enable_bzlmod        
<root> ([email protected])   
├───[email protected]   
│   ├───[email protected] (*) 
│   ├───[email protected] (*)                                                   
│   └───[email protected] (*) 
├───[email protected] 
│   └───[email protected] (*) 
├───[email protected] 
│   ├───[email protected] (*) 
│   └───[email protected] (*) 
├───[email protected] 
│   ├───[email protected] (*) 
│   ├───[email protected] (*) 
│   └───re2@2024-07-02 
... etc ...

@bruno-viva
Copy link

For this use case, you can take a look at the bazel mod command to debug dependency versions at your particular branch.

Documentation: https://bazel.build/external/mod-command

Sample command:

$ bazel mod deps abseil-cpp --enable_bzlmod
<root> ([email protected])
└───[email protected] 
    ├───[email protected] 
    ├───[email protected] 
    └───[email protected] 

bazel mod graph produces the full output:

$ bazel mod graph --enable_bzlmod        
<root> ([email protected])   
├───[email protected]   
│   ├───[email protected] (*) 
│   ├───[email protected] (*)                                                   
│   └───[email protected] (*) 
├───[email protected] 
│   └───[email protected] (*) 
├───[email protected] 
│   ├───[email protected] (*) 
│   └───[email protected] (*) 
├───[email protected] 
│   ├───[email protected] (*) 
│   ├───[email protected] (*) 
│   └───re2@2024-07-02 
... etc ...

Thanks for responding! Is there a way to do it with CMake? (our project does not use Bazel)

@tonyliaoss
Copy link
Member

Our CMake support is best-effort compared with Bazel, but I suspect you can try the following:

  1. Run cmake .
  2. Open _deps/absl-src/CMakeLists.txt

Look for the following line:

project(absl LANGUAGES CXX VERSION 20240722)
set(ABSL_SOVERSION "2407.0.0")
include(CTest)

There might be a better way to do this. TBH I'm not a CMake expert.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c++ documentation inactive Denotes the issue/PR has not seen activity in the last 90 days.
Projects
None yet
Development

No branches or pull requests

9 participants