You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
23.0: issue with generated protobuf.pc files (it depends on utf8_range) #12746
I've added quick hack to remove utf8_range from Requires on rpm package %install stage.
With such product I was able to start testing use generated package on building other packages.
Results:
[ 21%] Building CXX object modules/dnn/CMakeFiles/opencv_dnn.dir/opencv-caffe.pb.cc.o
cd /home/tkloczko/rpmbuild/BUILD/opencv-4.7.0/x86_64-redhat-linux-gnu/modules/dnn && /usr/bin/g++ -DCVAPI_EXPORTS -DENABLE_PLUGINS -DHAVE_PROTOBUF=1 -DOPENCV_DNN_EXTERNAL_PROTOBUF=1 -DVK_NO_PROTOTYPES -D_USE_MATH_DEFINES -D__OPENCV_BUILD=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/tkloczko/rpmbuild/BUILD/opencv-4.7.0/x86_64-redhat-linux-gnu -I/usr/include/vulkan -I/home/tkloczko/rpmbuild/BUILD/opencv-4.7.0/modules/dnn/include -I/home/tkloczko/rpmbuild/BUILD/opencv-4.7.0/x86_64-redhat-linux-gnu/modules/dnn -I/home/tkloczko/rpmbuild/BUILD/opencv-4.7.0/modules/core/include -I/home/tkloczko/rpmbuild/BUILD/opencv-4.7.0/modules/imgproc/include -isystem /usr/include/eigen3 -O2 -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fdata-sections -ffunction-sections -fsigned-char -W -Wall -Wreturn-type -Wnon-virtual-dtor -Waddress -Wsequence-point -Wformat -Wformat-security -Wundef -Winit-self -Wpointer-arith -Wsign-promo -Wuninitialized -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -Wno-long-long -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -msse -msse2 -msse3 -fvisibility=hidden -fvisibility-inlines-hidden -fopenmp -Wno-deprecated -Wno-missing-declarations -Wno-shadow -Wno-unused-parameter -Wno-sign-compare -Wno-invalid-offsetof -DNDEBUG -std=c++11 -fPIC -Wno-suggest-override -Wno-array-bounds -MD -MT modules/dnn/CMakeFiles/opencv_dnn.dir/opencv-caffe.pb.cc.o -MF CMakeFiles/opencv_dnn.dir/opencv-caffe.pb.cc.o.d -o CMakeFiles/opencv_dnn.dir/opencv-caffe.pb.cc.o -c /home/tkloczko/rpmbuild/BUILD/opencv-4.7.0/x86_64-redhat-linux-gnu/modules/dnn/opencv-caffe.pb.cc
In file included from /usr/include/absl/base/config.h:86, from /usr/include/absl/base/attributes.h:37, from /usr/include/absl/strings/string_view.h:39, from /usr/include/google/protobuf/stubs/common.h:44, from /usr/include/google/protobuf/io/coded_stream.h:130, from /home/tkloczko/rpmbuild/BUILD/opencv-4.7.0/x86_64-redhat-linux-gnu/modules/dnn/opencv-caffe.pb.h:24, from /home/tkloczko/rpmbuild/BUILD/opencv-4.7.0/x86_64-redhat-linux-gnu/modules/dnn/opencv-caffe.pb.cc:4:/usr/include/absl/base/policy_checks.h:79:2: error: #error "C++ versions less than C++14 are not supported." 79 | #error "C++ versions less than C++14 are not supported." | ^~~~~In file included from /home/tkloczko/rpmbuild/BUILD/opencv-4.7.0/x86_64-redhat-linux-gnu/modules/dnn/opencv-caffe.pb.h:11:/usr/include/google/protobuf/port_def.inc:205:15: error: static assertion failed: Protobuf only supports C++14 and newer. 205 | static_assert(PROTOBUF_CPLUSPLUS_MIN(201402L), "Protobuf only supports C++14 and newer."); | ^~~~~~~~~~~~~~~~~~~~~~/usr/include/google/protobuf/port_def.inc:205:15: note: the comparison reduces to ‘(201103 >= 201402)’/usr/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/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/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/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 /usr/include/google/protobuf/stubs/port.h:45, from /usr/include/google/protobuf/stubs/common.h:46:/usr/include/google/protobuf/port_def.inc:205:15: error: static assertion failed: Protobuf only supports C++14 and newer. 205 | static_assert(PROTOBUF_CPLUSPLUS_MIN(201402L), "Protobuf only supports C++14 and newer."); | ^~~~~~~~~~~~~~~~~~~~~~/usr/include/google/protobuf/port_def.inc:205:15: note: the comparison reduces to ‘(201103 >= 201402)’In file included from /usr/include/google/protobuf/stubs/common.h:56:/usr/include/google/protobuf/port_def.inc:205:15: error: static assertion failed: Protobuf only supports C++14 and newer. 205 | static_assert(PROTOBUF_CPLUSPLUS_MIN(201402L), "Protobuf only supports C++14 and newer."); | ^~~~~~~~~~~~~~~~~~~~~~/usr/include/google/protobuf/port_def.inc:205:15: note: the comparison reduces to ‘(201103 >= 201402)’In file included from /usr/include/absl/log/internal/check_op.h:36, from /usr/include/absl/log/internal/check_impl.h:19, from /usr/include/absl/log/absl_check.h:38, from /usr/include/google/protobuf/io/coded_stream.h:132:/usr/include/absl/log/internal/nullstream.h:49:32: error: ‘absl::string_view’ has not been declared 49 | NullStream& AtLocation(absl::string_view, int) { return *this; } | ^~~~~~~~~~~In file included from /usr/include/absl/time/time.h:89, from /usr/include/absl/log/log_entry.h:35, from /usr/include/absl/log/internal/log_message.h:41, from /usr/include/absl/log/internal/strip.h:24, from /usr/include/absl/log/internal/check_op.h:37:/usr/include/absl/time/civil_time.h:489:27: error: ‘string_view’ is not a member of ‘absl’ 489 | bool ParseCivilTime(absl::string_view s, CivilSecond* c); | ^~~~~~~~~~~/usr/include/absl/time/civil_time.h:489:53: error: expected primary-expression before ‘*’ token 489 | bool ParseCivilTime(absl::string_view s, CivilSecond* c); | ^/usr/include/absl/time/civil_time.h:489:55: error: ‘c’ was not declared in this scope 489 | bool ParseCivilTime(absl::string_view s, CivilSecond* c); | ^/usr/include/absl/time/civil_time.h:489:56: error: expression list treated as compound expression in initializer [-fpermissive] 489 | bool ParseCivilTime(absl::string_view s, CivilSecond* c); | ^/usr/include/absl/time/civil_time.h:490:6: error: redefinition of ‘bool absl::lts_20230125::ParseCivilTime’ 490 | bool ParseCivilTime(absl::string_view s, CivilMinute* c); | ^~~~~~~~~~~~~~/usr/include/absl/time/civil_time.h:489:6: note: ‘bool absl::lts_20230125::ParseCivilTime’ previously defined here 489 | bool ParseCivilTime(absl::string_view s, CivilSecond* c); | ^~~~~~~~~~~~~~/usr/include/absl/time/civil_time.h:490:27: error: ‘string_view’ is not a member of ‘absl’ 490 | bool ParseCivilTime(absl::string_view s, CivilMinute* c); | ^~~~~~~~~~~/usr/include/absl/time/civil_time.h:490:53: error: expected primary-expression before ‘*’ token 490 | bool ParseCivilTime(absl::string_view s, CivilMinute* c); | ^/usr/include/absl/time/civil_time.h:490:55: error: ‘c’ was not declared in this scope 490 | bool ParseCivilTime(absl::string_view s, CivilMinute* c); | ^/usr/include/absl/time/civil_time.h:491:6: error: redefinition of ‘bool absl::lts_20230125::ParseCivilTime’ 491 | bool ParseCivilTime(absl::string_view s, CivilHour* c); | ^~~~~~~~~~~~~~/usr/include/absl/time/civil_time.h:489:6: note: ‘bool absl::lts_20230125::ParseCivilTime’ previously defined here 489 | bool ParseCivilTime(absl::string_view s, CivilSecond* c); | ^~~~~~~~~~~~~~/usr/include/absl/time/civil_time.h:491:27: error: ‘string_view’ is not a member of ‘absl’ 491 | bool ParseCivilTime(absl::string_view s, CivilHour* c); | ^~~~~~~~~~~/usr/include/absl/time/civil_time.h:491:51: error: expected primary-expression before ‘*’ token 491 | bool ParseCivilTime(absl::string_view s, CivilHour* c); | ^/usr/include/absl/time/civil_time.h:491:53: error: ‘c’ was not declared in this scope 491 | bool ParseCivilTime(absl::string_view s, CivilHour* c); | ^/usr/include/absl/time/civil_time.h:492:6: error: redefinition of ‘bool absl::lts_20230125::ParseCivilTime’ 492 | bool ParseCivilTime(absl::string_view s, CivilDay* c); | ^~~~~~~~~~~~~~/usr/include/absl/time/civil_time.h:489:6: note: ‘bool absl::lts_20230125::ParseCivilTime’ previously defined here 489 | bool ParseCivilTime(absl::string_view s, CivilSecond* c); | ^~~~~~~~~~~~~~/usr/include/absl/time/civil_time.h:492:27: error: ‘string_view’ is not a member of ‘absl’ 492 | bool ParseCivilTime(absl::string_view s, CivilDay* c); | ^~~~~~~~~~~/usr/include/absl/time/civil_time.h:492:50: error: expected primary-expression before ‘*’ token 492 | bool ParseCivilTime(absl::string_view s, CivilDay* c); | ^/usr/include/absl/time/civil_time.h:492:52: error: ‘c’ was not declared in this scope 492 | bool ParseCivilTime(absl::string_view s, CivilDay* c); | ^/usr/include/absl/time/civil_time.h:493:6: error: redefinition of ‘bool absl::lts_20230125::ParseCivilTime’ 493 | bool ParseCivilTime(absl::string_view s, CivilMonth* c); | ^~~~~~~~~~~~~~/usr/include/absl/time/civil_time.h:489:6: note: ‘bool absl::lts_20230125::ParseCivilTime’ previously defined here 489 | bool ParseCivilTime(absl::string_view s, CivilSecond* c); | ^~~~~~~~~~~~~~/usr/include/absl/time/civil_time.h:493:27: error: ‘string_view’ is not a member of ‘absl’ 493 | bool ParseCivilTime(absl::string_view s, CivilMonth* c); | ^~~~~~~~~~~/usr/include/absl/time/civil_time.h:493:52: error: expected primary-expression before ‘*’ token 493 | bool ParseCivilTime(absl::string_view s, CivilMonth* c); | ^/usr/include/absl/time/civil_time.h:493:54: error: ‘c’ was not declared in this scope 493 | bool ParseCivilTime(absl::string_view s, CivilMonth* c); | ^/usr/include/absl/time/civil_time.h:494:6: error: redefinition of ‘bool absl::lts_20230125::ParseCivilTime’ 494 | bool ParseCivilTime(absl::string_view s, CivilYear* c); | ^~~~~~~~~~~~~~/usr/include/absl/time/civil_time.h:489:6: note: ‘bool absl::lts_20230125::ParseCivilTime’ previously defined here 489 | bool ParseCivilTime(absl::string_view s, CivilSecond* c); | ^~~~~~~~~~~~~~/usr/include/absl/time/civil_time.h:494:27: error: ‘string_view’ is not a member of ‘absl’ 494 | bool ParseCivilTime(absl::string_view s, CivilYear* c); | ^~~~~~~~~~~/usr/include/absl/time/civil_time.h:494:51: error: expected primary-expression before ‘*’ token 494 | bool ParseCivilTime(absl::string_view s, CivilYear* c); | ^/usr/include/absl/time/civil_time.h:494:53: error: ‘c’ was not declared in this scope 494 | bool ParseCivilTime(absl::string_view s, CivilYear* c); | ^/usr/include/absl/time/civil_time.h:509:34: error: ‘string_view’ is not a member of ‘absl’ 509 | bool ParseLenientCivilTime(absl::string_view s, CivilSecond* c); | ^~~~~~~~~~~/usr/include/absl/time/civil_time.h:509:60: error: expected primary-expression before ‘*’ token 509 | bool ParseLenientCivilTime(absl::string_view s, CivilSecond* c); | ^/usr/include/absl/time/civil_time.h:509:62: error: ‘c’ was not declared in this scope 509 | bool ParseLenientCivilTime(absl::string_view s, CivilSecond* c); | ^/usr/include/absl/time/civil_time.h:509:63: error: expression list treated as compound expression in initializer [-fpermissive] 509 | bool ParseLenientCivilTime(absl::string_view s, CivilSecond* c); | ^/usr/include/absl/time/civil_time.h:510:6: error: redefinition of ‘bool absl::lts_20230125::ParseLenientCivilTime’ 510 | bool ParseLenientCivilTime(absl::string_view s, CivilMinute* c); | ^~~~~~~~~~~~~~~~~~~~~/usr/include/absl/time/civil_time.h:509:6: note: ‘bool absl::lts_20230125::ParseLenientCivilTime’ previously defined here 509 | bool ParseLenientCivilTime(absl::string_view s, CivilSecond* c); | ^~~~~~~~~~~~~~~~~~~~~/usr/include/absl/time/civil_time.h:510:34: error: ‘string_view’ is not a member of ‘absl’ 510 | bool ParseLenientCivilTime(absl::string_view s, CivilMinute* c); | ^~~~~~~~~~~/usr/include/absl/time/civil_time.h:510:60: error: expected primary-expression before ‘*’ token 510 | bool ParseLenientCivilTime(absl::string_view s, CivilMinute* c); | ^/usr/include/absl/time/civil_time.h:510:62: error: ‘c’ was not declared in this scope 510 | bool ParseLenientCivilTime(absl::string_view s, CivilMinute* c); | ^/usr/include/absl/time/civil_time.h:511:6: error: redefinition of ‘bool absl::lts_20230125::ParseLenientCivilTime’ 511 | bool ParseLenientCivilTime(absl::string_view s, CivilHour* c); | ^~~~~~~~~~~~~~~~~~~~~/usr/include/absl/time/civil_time.h:509:6: note: ‘bool absl::lts_20230125::ParseLenientCivilTime’ previously defined here 509 | bool ParseLenientCivilTime(absl::string_view s, CivilSecond* c); | ^~~~~~~~~~~~~~~~~~~~~/usr/include/absl/time/civil_time.h:511:34: error: ‘string_view’ is not a member of ‘absl’ 511 | bool ParseLenientCivilTime(absl::string_view s, CivilHour* c); | ^~~~~~~~~~~/usr/include/absl/time/civil_time.h:511:58: error: expected primary-expression before ‘*’ token 511 | bool ParseLenientCivilTime(absl::string_view s, CivilHour* c); | ^/usr/include/absl/time/civil_time.h:511:60: error: ‘c’ was not declared in this scope 511 | bool ParseLenientCivilTime(absl::string_view s, CivilHour* c); | ^/usr/include/absl/time/civil_time.h:512:6: error: redefinition of ‘bool absl::lts_20230125::ParseLenientCivilTime’ 512 | bool ParseLenientCivilTime(absl::string_view s, CivilDay* c); | ^~~~~~~~~~~~~~~~~~~~~/usr/include/absl/time/civil_time.h:509:6: note: ‘bool absl::lts_20230125::ParseLenientCivilTime’ previously defined here 509 | bool ParseLenientCivilTime(absl::string_view s, CivilSecond* c); | ^~~~~~~~~~~~~~~~~~~~~/usr/include/absl/time/civil_time.h:512:34: error: ‘string_view’ is not a member of ‘absl’ 512 | bool ParseLenientCivilTime(absl::string_view s, CivilDay* c); | ^~~~~~~~~~~/usr/include/absl/time/civil_time.h:512:57: error: expected primary-expression before ‘*’ token 512 | bool ParseLenientCivilTime(absl::string_view s, CivilDay* c); | ^/usr/include/absl/time/civil_time.h:512:59: error: ‘c’ was not declared in this scope 512 | bool ParseLenientCivilTime(absl::string_view s, CivilDay* c); | ^/usr/include/absl/time/civil_time.h:513:6: error: redefinition of ‘bool absl::lts_20230125::ParseLenientCivilTime’ 513 | bool ParseLenientCivilTime(absl::string_view s, CivilMonth* c); | ^~~~~~~~~~~~~~~~~~~~~/usr/include/absl/time/civil_time.h:509:6: note: ‘bool absl::lts_20230125::ParseLenientCivilTime’ previously defined here 509 | bool ParseLenientCivilTime(absl::string_view s, CivilSecond* c); | ^~~~~~~~~~~~~~~~~~~~~/usr/include/absl/time/civil_time.h:513:34: error: ‘string_view’ is not a member of ‘absl’ 513 | bool ParseLenientCivilTime(absl::string_view s, CivilMonth* c); | ^~~~~~~~~~~/usr/include/absl/time/civil_time.h:513:59: error: expected primary-expression before ‘*’ token 513 | bool ParseLenientCivilTime(absl::string_view s, CivilMonth* c); | ^/usr/include/absl/time/civil_time.h:513:61: error: ‘c’ was not declared in this scope 513 | bool ParseLenientCivilTime(absl::string_view s, CivilMonth* c); | ^/usr/include/absl/time/civil_time.h:514:6: error: redefinition of ‘bool absl::lts_20230125::ParseLenientCivilTime’ 514 | bool ParseLenientCivilTime(absl::string_view s, CivilYear* c); | ^~~~~~~~~~~~~~~~~~~~~/usr/include/absl/time/civil_time.h:509:6: note: ‘bool absl::lts_20230125::ParseLenientCivilTime’ previously defined here 509 | bool ParseLenientCivilTime(absl::string_view s, CivilSecond* c); | ^~~~~~~~~~~~~~~~~~~~~/usr/include/absl/time/civil_time.h:514:34: error: ‘string_view’ is not a member of ‘absl’ 514 | bool ParseLenientCivilTime(absl::string_view s, CivilYear* c); | ^~~~~~~~~~~/usr/include/absl/time/civil_time.h:514:58: error: expected primary-expression before ‘*’ token 514 | bool ParseLenientCivilTime(absl::string_view s, CivilYear* c); | ^/usr/include/absl/time/civil_time.h:514:60: error: ‘c’ was not declared in this scope 514 | bool ParseLenientCivilTime(absl::string_view s, CivilYear* c); | ^/usr/include/absl/time/civil_time.h:540:26: error: ‘string_view’ is not a member of ‘absl’ 540 | bool AbslParseFlag(absl::string_view s, CivilSecond* c, std::string* error); | ^~~~~~~~~~~/usr/include/absl/time/civil_time.h:540:52: error: expected primary-expression before ‘*’ token 540 | bool AbslParseFlag(absl::string_view s, CivilSecond* c, std::string* error); | ^/usr/include/absl/time/civil_time.h:540:54: error: ‘c’ was not declared in this scope 540 | bool AbslParseFlag(absl::string_view s, CivilSecond* c, std::string* error); | ^/usr/include/absl/time/civil_time.h:540:68: error: expected primary-expression before ‘*’ token 540 | bool AbslParseFlag(absl::string_view s, CivilSecond* c, std::string* error); | ^/usr/include/absl/time/civil_time.h:540:70: error: ‘error’ was not declared in this scope; did you mean ‘perror’? 540 | bool AbslParseFlag(absl::string_view s, CivilSecond* c, std::string* error); | ^~~~~ | perror/usr/include/absl/time/civil_time.h:540:75: error: expression list treated as compound expression in initializer [-fpermissive] 540 | bool AbslParseFlag(absl::string_view s, CivilSecond* c, std::string* error); | ^/usr/include/absl/time/civil_time.h:541:6: error: redefinition of ‘bool absl::lts_20230125::time_internal::AbslParseFlag’ 541 | bool AbslParseFlag(absl::string_view s, CivilMinute* c, std::string* error); | ^~~~~~~~~~~~~/usr/include/absl/time/civil_time.h:540:6: note: ‘bool absl::lts_20230125::time_internal::AbslParseFlag’ previously defined here 540 | bool AbslParseFlag(absl::string_view s, CivilSecond* c, std::string* error); | ^~~~~~~~~~~~~/usr/include/absl/time/civil_time.h:541:26: error: ‘string_view’ is not a member of ‘absl’ 541 | bool AbslParseFlag(absl::string_view s, CivilMinute* c, std::string* error); | ^~~~~~~~~~~/usr/include/absl/time/civil_time.h:541:52: error: expected primary-expression before ‘*’ token 541 | bool AbslParseFlag(absl::string_view s, CivilMinute* c, std::string* error); | ^/usr/include/absl/time/civil_time.h:541:54: error: ‘c’ was not declared in this scope 541 | bool AbslParseFlag(absl::string_view s, CivilMinute* c, std::string* error); | ^/usr/include/absl/time/civil_time.h:541:68: error: expected primary-expression before ‘*’ token 541 | bool AbslParseFlag(absl::string_view s, CivilMinute* c, std::string* error); | ^/usr/include/absl/time/civil_time.h:541:70: error: ‘error’ was not declared in this scope; did you mean ‘perror’? 541 | bool AbslParseFlag(absl::string_view s, CivilMinute* c, std::string* error); | ^~~~~ | perror/usr/include/absl/time/civil_time.h:542:6: error: redefinition of ‘bool absl::lts_20230125::time_internal::AbslParseFlag’ 542 | bool AbslParseFlag(absl::string_view s, CivilHour* c, std::string* error); | ^~~~~~~~~~~~~/usr/include/absl/time/civil_time.h:540:6: note: ‘bool absl::lts_20230125::time_internal::AbslParseFlag’ previously defined here 540 | bool AbslParseFlag(absl::string_view s, CivilSecond* c, std::string* error); | ^~~~~~~~~~~~~/usr/include/absl/time/civil_time.h:542:26: error: ‘string_view’ is not a member of ‘absl’ 542 | bool AbslParseFlag(absl::string_view s, CivilHour* c, std::string* error); | ^~~~~~~~~~~/usr/include/absl/time/civil_time.h:542:50: error: expected primary-expression before ‘*’ token 542 | bool AbslParseFlag(absl::string_view s, CivilHour* c, std::string* error); | ^/usr/include/absl/time/civil_time.h:542:52: error: ‘c’ was not declared in this scope 542 | bool AbslParseFlag(absl::string_view s, CivilHour* c, std::string* error); | ^/usr/include/absl/time/civil_time.h:542:66: error: expected primary-expression before ‘*’ token 542 | bool AbslParseFlag(absl::string_view s, CivilHour* c, std::string* error); | ^/usr/include/absl/time/civil_time.h:542:68: error: ‘error’ was not declared in this scope; did you mean ‘perror’? 542 | bool AbslParseFlag(absl::string_view s, CivilHour* c, std::string* error); | ^~~~~ | perror/usr/include/absl/time/civil_time.h:543:6: error: redefinition of ‘bool absl::lts_20230125::time_internal::AbslParseFlag’ 543 | bool AbslParseFlag(absl::string_view s, CivilDay* c, std::string* error); | ^~~~~~~~~~~~~/usr/include/absl/time/civil_time.h:540:6: note: ‘bool absl::lts_20230125::time_internal::AbslParseFlag’ previously defined here 540 | bool AbslParseFlag(absl::string_view s, CivilSecond* c, std::string* error); | ^~~~~~~~~~~~~/usr/include/absl/time/civil_time.h:543:26: error: ‘string_view’ is not a member of ‘absl’ 543 | bool AbslParseFlag(absl::string_view s, CivilDay* c, std::string* error); | ^~~~~~~~~~~/usr/include/absl/time/civil_time.h:543:49: error: expected primary-expression before ‘*’ token 543 | bool AbslParseFlag(absl::string_view s, CivilDay* c, std::string* error); | ^/usr/include/absl/time/civil_time.h:543:51: error: ‘c’ was not declared in this scope 543 | bool AbslParseFlag(absl::string_view s, CivilDay* c, std::string* error); | ^/usr/include/absl/time/civil_time.h:543:65: error: expected primary-expression before ‘*’ token 543 | bool AbslParseFlag(absl::string_view s, CivilDay* c, std::string* error); | ^/usr/include/absl/time/civil_time.h:543:67: error: ‘error’ was not declared in this scope; did you mean ‘perror’? 543 | bool AbslParseFlag(absl::string_view s, CivilDay* c, std::string* error); | ^~~~~ | perror/usr/include/absl/time/civil_time.h:544:6: error: redefinition of ‘bool absl::lts_20230125::time_internal::AbslParseFlag’ 544 | bool AbslParseFlag(absl::string_view s, CivilMonth* c, std::string* error); | ^~~~~~~~~~~~~/usr/include/absl/time/civil_time.h:540:6: note: ‘bool absl::lts_20230125::time_internal::AbslParseFlag’ previously defined here 540 | bool AbslParseFlag(absl::string_view s, CivilSecond* c, std::string* error); | ^~~~~~~~~~~~~/usr/include/absl/time/civil_time.h:544:26: error: ‘string_view’ is not a member of ‘absl’ 544 | bool AbslParseFlag(absl::string_view s, CivilMonth* c, std::string* error); | ^~~~~~~~~~~/usr/include/absl/time/civil_time.h:544:51: error: expected primary-expression before ‘*’ token 544 | bool AbslParseFlag(absl::string_view s, CivilMonth* c, std::string* error); | ^/usr/include/absl/time/civil_time.h:544:53: error: ‘c’ was not declared in this scope 544 | bool AbslParseFlag(absl::string_view s, CivilMonth* c, std::string* error); | ^/usr/include/absl/time/civil_time.h:544:67: error: expected primary-expression before ‘*’ token 544 | bool AbslParseFlag(absl::string_view s, CivilMonth* c, std::string* error); | ^/usr/include/absl/time/civil_time.h:544:69: error: ‘error’ was not declared in this scope; did you mean ‘perror’? 544 | bool AbslParseFlag(absl::string_view s, CivilMonth* c, std::string* error); | ^~~~~ | perror/usr/include/absl/time/civil_time.h:545:6: error: redefinition of ‘bool absl::lts_20230125::time_internal::AbslParseFlag’ 545 | bool AbslParseFlag(absl::string_view s, CivilYear* c, std::string* error); | ^~~~~~~~~~~~~/usr/include/absl/time/civil_time.h:540:6: note: ‘bool absl::lts_20230125::time_internal::AbslParseFlag’ previously defined here 540 | bool AbslParseFlag(absl::string_view s, CivilSecond* c, std::string* error); | ^~~~~~~~~~~~~/usr/include/absl/time/civil_time.h:545:26: error: ‘string_view’ is not a member of ‘absl’ 545 | bool AbslParseFlag(absl::string_view s, CivilYear* c, std::string* error); | ^~~~~~~~~~~/usr/include/absl/time/civil_time.h:545:50: error: expected primary-expression before ‘*’ token 545 | bool AbslParseFlag(absl::string_view s, CivilYear* c, std::string* error); | ^/usr/include/absl/time/civil_time.h:545:52: error: ‘c’ was not declared in this scope 545 | bool AbslParseFlag(absl::string_view s, CivilYear* c, std::string* error); | ^/usr/include/absl/time/civil_time.h:545:66: error: expected primary-expression before ‘*’ token 545 | bool AbslParseFlag(absl::string_view s, CivilYear* c, std::string* error); | ^/usr/include/absl/time/civil_time.h:545:68: error: ‘error’ was not declared in this scope; did you mean ‘perror’? 545 | bool AbslParseFlag(absl::string_view s, CivilYear* c, std::string* error); | ^~~~~ | perror/usr/include/absl/time/time.h:619:26: error: ‘string_view’ is not a member of ‘absl’ 619 | bool ParseDuration(absl::string_view dur_string, Duration* d); | ^~~~~~~~~~~/usr/include/absl/time/time.h:619:58: error: expected primary-expression before ‘*’ token 619 | bool ParseDuration(absl::string_view dur_string, Duration* d); | ^/usr/include/absl/time/time.h:619:60: error: ‘d’ was not declared in this scope 619 | bool ParseDuration(absl::string_view dur_string, Duration* d); | ^/usr/include/absl/time/time.h:619:61: error: expression list treated as compound expression in initializer [-fpermissive] 619 | bool ParseDuration(absl::string_view dur_string, Duration* d); | ^/usr/include/absl/time/time.h:626:26: error: ‘string_view’ is not a member of ‘absl’ 626 | bool AbslParseFlag(absl::string_view text, Duration* dst, std::string* error); | ^~~~~~~~~~~/usr/include/absl/time/time.h:626:52: error: expected primary-expression before ‘*’ token 626 | bool AbslParseFlag(absl::string_view text, Duration* dst, std::string* error); | ^/usr/include/absl/time/time.h:626:54: error: ‘dst’ was not declared in this scope 626 | bool AbslParseFlag(absl::string_view text, Duration* dst, std::string* error); | ^~~/usr/include/absl/time/time.h:626:70: error: expected primary-expression before ‘*’ token 626 | bool AbslParseFlag(absl::string_view text, Duration* dst, std::string* error); | ^/usr/include/absl/time/time.h:626:72: error: ‘error’ was not declared in this scope; did you mean ‘perror’? 626 | bool AbslParseFlag(absl::string_view text, Duration* dst, std::string* error); | ^~~~~ | perror/usr/include/absl/time/time.h:626:77: error: expression list treated as compound expression in initializer [-fpermissive] 626 | bool AbslParseFlag(absl::string_view text, Duration* dst, std::string* error); | ^/usr/include/absl/time/time.h:934:6: error: redefinition of ‘bool absl::lts_20230125::AbslParseFlag’ 934 | bool AbslParseFlag(absl::string_view text, Time* t, std::string* error); | ^~~~~~~~~~~~~/usr/include/absl/time/time.h:626:6: note: ‘bool absl::lts_20230125::AbslParseFlag’ previously defined here 626 | bool AbslParseFlag(absl::string_view text, Duration* dst, std::string* error); | ^~~~~~~~~~~~~/usr/include/absl/time/time.h:934:26: error: ‘string_view’ is not a member of ‘absl’ 934 | bool AbslParseFlag(absl::string_view text, Time* t, std::string* error); | ^~~~~~~~~~~/usr/include/absl/time/time.h:934:48: error: expected primary-expression before ‘*’ token 934 | bool AbslParseFlag(absl::string_view text, Time* t, std::string* error); | ^/usr/include/absl/time/time.h:934:50: error: ‘t’ was not declared in this scope; did you mean ‘tm’? 934 | bool AbslParseFlag(absl::string_view text, Time* t, std::string* error); | ^ | tm/usr/include/absl/time/time.h:934:64: error: expected primary-expression before ‘*’ token 934 | bool AbslParseFlag(absl::string_view text, Time* t, std::string* error); | ^/usr/include/absl/time/time.h:934:66: error: ‘error’ was not declared in this scope; did you mean ‘perror’? 934 | bool AbslParseFlag(absl::string_view text, Time* t, std::string* error); | ^~~~~ | perror/usr/include/absl/time/time.h:1138:32: error: ‘string_view’ is not a member of ‘absl’ 1138 | inline bool LoadTimeZone(absl::string_view name, TimeZone* tz) { | ^~~~~~~~~~~/usr/include/absl/time/time.h:1138:58: error: expected primary-expression before ‘*’ token 1138 | inline bool LoadTimeZone(absl::string_view name, TimeZone* tz) { | ^/usr/include/absl/time/time.h:1138:60: error: ‘tz’ was not declared in this scope; did you mean ‘tm’? 1138 | inline bool LoadTimeZone(absl::string_view name, TimeZone* tz) { | ^~ | tm/usr/include/absl/time/time.h:1138:62: error: expression list treated as compound expression in initializer [-fpermissive] 1138 | inline bool LoadTimeZone(absl::string_view name, TimeZone* tz) { | ^/usr/include/absl/time/time.h:1375:59: error: ‘string_view’ is not a member of ‘absl’ 1375 | ABSL_ATTRIBUTE_PURE_FUNCTION std::string FormatTime(absl::string_view format, | ^~~~~~~~~~~/usr/include/absl/time/time.h:1376:58: error: expected primary-expression before ‘t’ 1376 | Time t, TimeZone tz); | ^/usr/include/absl/time/time.h:1376:70: error: expected primary-expression before ‘tz’ 1376 | Time t, TimeZone tz); | ^~/usr/include/absl/time/time.h:1381:72: error: ‘std::string absl::lts_20230125::FormatTime(Time, TimeZone)’ redeclared as different kind of entity 1381 | ABSL_ATTRIBUTE_PURE_FUNCTION std::string FormatTime(Time t, TimeZone tz); | ^/usr/include/absl/time/time.h:1375:42: note: previous declaration ‘std::string absl::lts_20230125::FormatTime’ 1375 | ABSL_ATTRIBUTE_PURE_FUNCTION std::string FormatTime(absl::string_view format, | ^~~~~~~~~~/usr/include/absl/time/time.h:1382:59: error: ‘std::string absl::lts_20230125::FormatTime(Time)’ redeclared as different kind of entity 1382 | ABSL_ATTRIBUTE_PURE_FUNCTION std::string FormatTime(Time t); | ^/usr/include/absl/time/time.h:1375:42: note: previous declaration ‘std::string absl::lts_20230125::FormatTime’ 1375 | ABSL_ATTRIBUTE_PURE_FUNCTION std::string FormatTime(absl::string_view format, | ^~~~~~~~~~/usr/include/absl/time/time.h: In function ‘std::ostream& absl::lts_20230125::operator<<(std::ostream&, Time)’:/usr/include/absl/time/time.h:1386:26: error: no match for call to ‘(std::string {aka std::__cxx11::basic_string<char>}) (absl::lts_20230125::Time&)’ 1386 | return os << FormatTime(t); | ~~~~~~~~~~^~~/usr/include/absl/time/time.h: At global scope:/usr/include/absl/time/time.h:1438:22: error: ‘string_view’ is not a member of ‘absl’ 1438 | bool ParseTime(absl::string_view format, absl::string_view input, Time* time, | ^~~~~~~~~~~/usr/include/absl/time/time.h:1438:48: error: ‘string_view’ is not a member of ‘absl’ 1438 | bool ParseTime(absl::string_view format, absl::string_view input, Time* time, | ^~~~~~~~~~~/usr/include/absl/time/time.h:1438:71: error: expected primary-expression before ‘*’ token 1438 | bool ParseTime(absl::string_view format, absl::string_view input, Time* time, | ^/usr/include/absl/time/time.h:1439:27: error: expected primary-expression before ‘*’ token 1439 | std::string* err); | ^/usr/include/absl/time/time.h:1439:29: error: ‘err’ was not declared in this scope; did you mean ‘erf’? 1439 | std::string* err); | ^~~ | erf/usr/include/absl/time/time.h:1439:32: error: expression list treated as compound expression in initializer [-fpermissive] 1439 | std::string* err); | ^/usr/include/absl/time/time.h:1448:6: error: redefinition of ‘bool absl::lts_20230125::ParseTime’ 1448 | bool ParseTime(absl::string_view format, absl::string_view input, TimeZone tz, | ^~~~~~~~~/usr/include/absl/time/time.h:1438:6: note: ‘bool absl::lts_20230125::ParseTime’ previously defined here 1438 | bool ParseTime(absl::string_view format, absl::string_view input, Time* time, | ^~~~~~~~~/usr/include/absl/time/time.h:1448:22: error: ‘string_view’ is not a member of ‘absl’ 1448 | bool ParseTime(absl::string_view format, absl::string_view input, TimeZone tz, | ^~~~~~~~~~~/usr/include/absl/time/time.h:1448:48: error: ‘string_view’ is not a member of ‘absl’ 1448 | bool ParseTime(absl::string_view format, absl::string_view input, TimeZone tz, | ^~~~~~~~~~~/usr/include/absl/time/time.h:1448:76: error: expected primary-expression before ‘tz’ 1448 | bool ParseTime(absl::string_view format, absl::string_view input, TimeZone tz, | ^~/usr/include/absl/time/time.h:1449:20: error: expected primary-expression before ‘*’ token 1449 | Time* time, std::string* err); | ^/usr/include/absl/time/time.h:1449:39: error: expected primary-expression before ‘*’ token 1449 | Time* time, std::string* err); | ^/usr/include/absl/time/time.h:1449:41: error: ‘err’ was not declared in this scope; did you mean ‘erf’? 1449 | Time* time, std::string* err); | ^~~ | erfIn file included from /usr/include/absl/types/span.h:69, from /usr/include/absl/log/log_entry.h:36:/usr/include/absl/types/internal/span.h:119:26: error: ‘remove_const_t’ in namespace ‘std’ does not name a template type; did you mean ‘remove_const’? 119 | using Container = std::remove_const_t<T>; | ^~~~~~~~~~~~~~ | remove_const/usr/include/absl/types/internal/span.h:121:44: error: parse error in template argument list 121 | decltype(span_internal::GetData(std::declval<const Container&>())); | ^~~~~~~~~~~~~~~~~~~~~~~~~/usr/include/absl/types/internal/span.h:122:64: error: ‘Container’ was not declared in this scope 122 | using MutData = decltype(span_internal::GetData(std::declval<Container&>())); | ^~~~~~~~~/usr/include/absl/types/internal/span.h:122:56: error: parse error in template argument list 122 | using MutData = decltype(span_internal::GetData(std::declval<Container&>())); | ^~~~~~~~~~~~~~~~~~~/usr/include/absl/types/internal/span.h:130:29: error: ‘enable_if_t’ in namespace ‘std’ does not name a template type 130 | using EnableIfIsView = std::enable_if_t<IsView<T>::value, int>; | ^~~~~~~~~~~/usr/include/absl/types/internal/span.h:130:24: note: ‘std::enable_if_t’ is only available from C++14 onwards 130 | using EnableIfIsView = std::enable_if_t<IsView<T>::value, int>; | ^~~/usr/include/absl/types/internal/span.h:133:32: error: ‘enable_if_t’ in namespace ‘std’ does not name a template type 133 | using EnableIfNotIsView = std::enable_if_t<!IsView<T>::value, int>; | ^~~~~~~~~~~/usr/include/absl/types/internal/span.h:133:27: note: ‘std::enable_if_t’ is only available from C++14 onwards 133 | using EnableIfNotIsView = std::enable_if_t<!IsView<T>::value, int>; | ^~~/usr/include/absl/types/span.h:201:39: error: ‘EnableIfNotIsView’ in namespace ‘absl::lts_20230125::span_internal’ does not name a template type 201 | typename = span_internal::EnableIfNotIsView<V>> | ^~~~~~~~~~~~~~~~~/usr/include/absl/types/span.h:201:56: error: expected ‘>’ before ‘<’ token 201 | typename = span_internal::EnableIfNotIsView<V>> | ^/usr/include/absl/types/span.h:210:39: error: ‘EnableIfNotIsView’ in namespace ‘absl::lts_20230125::span_internal’ does not name a template type 210 | typename = span_internal::EnableIfNotIsView<V>> | ^~~~~~~~~~~~~~~~~/usr/include/absl/types/span.h:210:56: error: expected ‘>’ before ‘<’ token 210 | typename = span_internal::EnableIfNotIsView<V>> | ^/usr/include/absl/types/span.h:222:28: error: ‘absl::lts_20230125::span_internal::EnableIfIsView’ has not been declared 222 | span_internal::EnableIfIsView<V> = 0> | ^~~~~~~~~~~~~~/usr/include/absl/types/span.h:222:42: error: expected ‘>’ before ‘<’ token 222 | span_internal::EnableIfIsView<V> = 0> | ^/usr/include/absl/types/span.h:223:12: error: ‘template<class T> template<class V, class, class, <typeprefixerror><anonymous> > absl::lts_20230125::Span<T>::Span(V&)’ cannot be overloaded with ‘template<class T> template<class V, class, class, class> absl::lts_20230125::Span<T>::Span(V&)’ 223 | explicit Span(V& v) noexcept // NOLINT(runtime/references) | ^~~~/usr/include/absl/types/span.h:202:12: note: previous declaration ‘template<class T> template<class V, class, class, class> absl::lts_20230125::Span<T>::Span(V&)’ 202 | explicit Span( | ^~~~/usr/include/absl/types/span.h:227:28: error: ‘absl::lts_20230125::span_internal::EnableIfIsView’ has not been declared 227 | span_internal::EnableIfIsView<V> = 0> | ^~~~~~~~~~~~~~/usr/include/absl/types/span.h:227:42: error: expected ‘>’ before ‘<’ token 227 | span_internal::EnableIfIsView<V> = 0> | ^/usr/include/absl/types/span.h:228:13: error: ‘template<class T> template<class V, class, class, <typeprefixerror><anonymous> > constexpr absl::lts_20230125::Span<T>::Span(const V&)’ cannot be overloaded with ‘template<class T> template<class V, class, class, class> constexpr absl::lts_20230125::Span<T>::Span(const V&)’ 228 | constexpr Span(const V& v) noexcept // NOLINT(runtime/explicit) | ^~~~/usr/include/absl/types/span.h:211:13: note: previous declaration ‘template<class T> template<class V, class, class, class> constexpr absl::lts_20230125::Span<T>::Span(const V&)’ 211 | constexpr Span( | ^~~~/usr/include/absl/log/log_entry.h:75:9: error: ‘string_view’ in namespace ‘absl’ does not name a type 75 | absl::string_view source_filename() const ABSL_ATTRIBUTE_LIFETIME_BOUND { | ^~~~~~~~~~~/usr/include/absl/log/log_entry.h:78:9: error: ‘string_view’ in namespace ‘absl’ does not name a type 78 | absl::string_view source_basename() const ABSL_ATTRIBUTE_LIFETIME_BOUND { | ^~~~~~~~~~~/usr/include/absl/log/log_entry.h:144:9: error: ‘string_view’ in namespace ‘absl’ does not name a type 144 | absl::string_view text_message_with_prefix_and_newline() const | ^~~~~~~~~~~/usr/include/absl/log/log_entry.h:150:9: error: ‘string_view’ in namespace ‘absl’ does not name a type 150 | absl::string_view text_message_with_prefix() const | ^~~~~~~~~~~/usr/include/absl/log/log_entry.h:156:9: error: ‘string_view’ in namespace ‘absl’ does not name a type 156 | absl::string_view text_message_with_newline() const | ^~~~~~~~~~~/usr/include/absl/log/log_entry.h:162:9: error: ‘string_view’ in namespace ‘absl’ does not name a type 162 | absl::string_view text_message() const ABSL_ATTRIBUTE_LIFETIME_BOUND { | ^~~~~~~~~~~/usr/include/absl/log/log_entry.h:177:9: error: ‘string_view’ in namespace ‘absl’ does not name a type 177 | absl::string_view encoded_message() const ABSL_ATTRIBUTE_LIFETIME_BOUND { | ^~~~~~~~~~~/usr/include/absl/log/log_entry.h:193:9: error: ‘string_view’ in namespace ‘absl’ does not name a type 193 | absl::string_view stacktrace() const ABSL_ATTRIBUTE_LIFETIME_BOUND { | ^~~~~~~~~~~/usr/include/absl/log/log_entry.h:200:9: error: ‘string_view’ in namespace ‘absl’ does not name a type 200 | absl::string_view full_filename_; | ^~~~~~~~~~~/usr/include/absl/log/log_entry.h:201:9: error: ‘string_view’ in namespace ‘absl’ does not name a type 201 | absl::string_view base_filename_; | ^~~~~~~~~~~/usr/include/absl/log/log_entry.h:210:9: error: ‘string_view’ in namespace ‘absl’ does not name a type 210 | absl::string_view encoding_; | ^~~~~~~~~~~In file included from /usr/include/absl/log/internal/log_message.h:43:/usr/include/absl/strings/internal/has_absl_stringify.h:35:15: error: ‘string_view’ has not been declared 35 | void Append(string_view v); | ^~~~~~~~~~~/usr/include/absl/strings/internal/has_absl_stringify.h:38:62: error: ‘absl::string_view’ has not been declared 38 | friend void AbslFormatFlush(UnimplementedSink* sink, absl::string_view v); | ^~~~~~~~~~~/usr/include/absl/strings/internal/has_absl_stringify.h:46:13: error: ‘enable_if_t’ is not a member of ‘std’ 46 | T, std::enable_if_t<std::is_void<decltype(AbslStringify( | ^~~~~~~~~~~/usr/include/absl/strings/internal/has_absl_stringify.h:46:13: note: ‘std::enable_if_t’ is only available from C++14 onwards/usr/include/absl/strings/internal/has_absl_stringify.h:46:13: error: ‘enable_if_t’ is not a member of ‘std’/usr/include/absl/strings/internal/has_absl_stringify.h:46:13: note: ‘std::enable_if_t’ is only available from C++14 onwards/usr/include/absl/strings/internal/has_absl_stringify.h:48:41: error: type/value mismatch at argument 2 in template parameter list for ‘template<class T, class> struct absl::lts_20230125::strings_internal::HasAbslStringify’ 48 | std::declval<const T&>()))>::value>> : std::true_type {}; | ^~~~~/usr/include/absl/strings/internal/has_absl_stringify.h:48:41: note: expected a type, got ‘(<expression error> < std::is_void<decltype (AbslStringify(std::declval<absl::lts_20230125::strings_internal::UnimplementedSink&>(), declval<const T&>()))>::value)’/usr/include/absl/strings/internal/has_absl_stringify.h:48:46: error: expected unqualified-id before ‘>’ token 48 | std::declval<const T&>()))>::value>> : std::true_type {}; | ^~/usr/include/absl/log/internal/log_message.h:63:32: error: ‘absl::string_view’ has not been declared 63 | LogMessage& AtLocation(absl::string_view file, int line); | ^~~~~~~~~~~/usr/include/absl/log/internal/log_message.h:134:32: error: ‘absl::string_view’ has not been declared 134 | LogMessage& operator<<(absl::string_view v); | ^~~~~~~~~~~/usr/include/absl/log/internal/log_message.h:134:15: error: ‘absl::lts_20230125::log_internal::LogMessage& absl::lts_20230125::log_internal::LogMessage::operator<<(int)’ cannot be overloaded with ‘absl::lts_20230125::log_internal::LogMessage& absl::lts_20230125::log_internal::LogMessage::operator<<(int)’ 134 | LogMessage& operator<<(absl::string_view v); | ^~~~~~~~/usr/include/absl/log/internal/log_message.h:106:15: note: previous declaration ‘absl::lts_20230125::log_internal::LogMessage& absl::lts_20230125::log_internal::LogMessage::operator<<(int)’ 106 | LogMessage& operator<<(signed int v) { return operator<< <signed int>(v); } | ^~~~~~~~/usr/include/absl/log/internal/log_message.h:222:34: error: ‘absl::string_view’ has not been declared 222 | void CopyToEncodedBuffer(absl::string_view str, | ^~~~~~~~~~~/usr/include/absl/log/internal/log_message.h:259:21: error: ‘absl::string_view’ has not been declared 259 | void Append(absl::string_view v) { | ^~~~~~~~~~~/usr/include/absl/log/internal/log_message.h:264:58: error: ‘absl::string_view’ has not been declared 264 | friend void AbslFormatFlush(StringifySink* sink, absl::string_view v) { | ^~~~~~~~~~~/usr/include/absl/log/internal/log_message.h:336:25: error: ‘absl::string_view’ has not been declared 336 | absl::string_view failure_msg) ABSL_ATTRIBUTE_COLD; | ^~~~~~~~~~~/usr/include/absl/log/internal/log_message.h:344:32: error: ‘absl::string_view’ has not been declared 344 | absl::string_view failure_msg) ABSL_ATTRIBUTE_COLD; | ^~~~~~~~~~~/usr/include/absl/log/internal/check_op.h:310:1: error: ‘string_view’ in namespace ‘absl’ does not name a type 310 | ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING_EXTERN(const absl::string_view&); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/usr/include/absl/log/internal/check_op.h:310:1: error: ‘string_view’ in namespace ‘absl’ does not name a type 310 | ABSL_LOG_INTERNAL_DEFINE_MAKE_CHECK_OP_STRING_EXTERN(const absl::string_view&); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~In file included from /usr/include/absl/container/internal/compressed_tuple.h:40, from /usr/include/absl/container/internal/inlined_vector.h:30, from /usr/include/absl/container/inlined_vector.h:53, from /usr/include/absl/strings/cord.h:78, from /usr/include/google/protobuf/io/coded_stream.h:134:/usr/include/absl/utility/utility.h:164:12: error: ‘in_place_t’ has not been declared in ‘std’ 164 | using std::in_place_t; | ^~~~~~~~~~/usr/include/absl/utility/utility.h:165:12: error: ‘in_place’ has not been declared in ‘std’ 165 | using std::in_place; | ^~~~~~~~/usr/include/absl/utility/utility.h:181:12: error: ‘in_place_type’ has not been declared in ‘std’ 181 | using std::in_place_type; | ^~~~~~~~~~~~~/usr/include/absl/utility/utility.h:182:12: error: ‘in_place_type_t’ has not been declared in ‘std’ 182 | using std::in_place_type_t; | ^~~~~~~~~~~~~~~/usr/include/absl/utility/utility.h:198:12: error: ‘in_place_index’ has not been declared in ‘std’ 198 | using std::in_place_index; | ^~~~~~~~~~~~~~/usr/include/absl/utility/utility.h:199:12: error: ‘in_place_index_t’ has not been declared in ‘std’ 199 | using std::in_place_index_t; | ^~~~~~~~~~~~~~~~/usr/include/absl/container/internal/compressed_tuple.h:107:46: error: expected ‘)’ before ‘,’ token 107 | explicit constexpr Storage(absl::in_place_t, V&& v) | ~ ^ | )/usr/include/absl/container/internal/compressed_tuple.h:120:46: error: expected ‘)’ before ‘,’ token 120 | explicit constexpr Storage(absl::in_place_t, V&& v) | ~ ^ | )/usr/include/absl/container/internal/compressed_tuple.h:143:58: error: expected ‘)’ before ‘,’ token 143 | explicit constexpr CompressedTupleImpl(absl::in_place_t, Vs&&... args) | ~ ^ | )/usr/include/absl/container/internal/compressed_tuple.h:155:58: error: expected ‘)’ before ‘,’ token 155 | explicit constexpr CompressedTupleImpl(absl::in_place_t, Vs&&... args) | ~ ^ | )/usr/include/absl/container/internal/compressed_tuple.h: In constructor ‘constexpr absl::lts_20230125::container_internal::CompressedTuple<Ts>::CompressedTuple(const Ts& ...)’:/usr/include/absl/container/internal/compressed_tuple.h:242:52: error: ‘in_place’ is not a member of ‘absl’ 242 | : CompressedTuple::CompressedTupleImpl(absl::in_place, base...) {} | ^~~~~~~~/usr/include/absl/container/internal/compressed_tuple.h: In constructor ‘constexpr absl::lts_20230125::container_internal::CompressedTuple<Ts>::CompressedTuple(First&&, Vs&& ...)’:/usr/include/absl/container/internal/compressed_tuple.h:254:52: error: ‘in_place’ is not a member of ‘absl’ 254 | : CompressedTuple::CompressedTupleImpl(absl::in_place, | ^~~~~~~~In file included from /usr/include/absl/container/internal/inlined_vector.h:31:/usr/include/absl/memory/memory.h: At global scope:/usr/include/absl/memory/memory.h:97:12: error: ‘make_unique’ has not been declared in ‘std’ 97 | using std::make_unique; | ^~~~~~~~~~~In file included from /usr/include/absl/crc/internal/crc_cord_state.h:23, from /usr/include/absl/strings/cord.h:79:/usr/include/absl/crc/crc32c.h:72:37: error: ‘absl::string_view’ has not been declared 72 | absl::string_view buf_to_add); | ^~~~~~~~~~~[..]
In other words looks likke protobuf 23.0 is not ready to be used.
Happy to do a drive-by. It would be useful to know what platform (Linux, Windows, etc.) this was on, and what version of the compiler. Looks like some Linux distro, with GCC.
if (some_variable_enabled_when_utf8_is_required)
list(APPEND _pc_targets "utf8_range")
endif ()
The broken build for libphonenumber
This error:
/usr/bin/ld: /tmp/ccOihmdo.lto.o: in function `google::protobuf::RepeatedField<int>::GrowNoAnnotate(int, int)':
/usr/include/google/protobuf/thread_safe_arena.h:198: undefined reference to `google::protobuf::internal::ThreadSafeArena::thread_cache_'
was fixed in #12700. I think @fowles already backported that fix to the 22.x and 23.x branches.
The broken build for mysql
This error
/usr/bin/ld: /usr/lib64/libprotoc.so: undefined reference to symbol '_ZN4absl12lts_2023012513base_internal12SpinLockWaitEPSt6atomicIjEiPKNS1_22SpinLockWaitTransitionENS1_14SchedulingModeE'
/usr/bin/ld: /usr/lib64/libabsl_spinlock_wait.so.2301.0.0: error adding symbols: DSO missing from command line
Seems like a missing -labsl*. Most likely mysql is using find_package(protobuf), using the FindProtobuf embedded with CMake and missing all the new deps. That is indeed the case:
I am not familiar with the configuration options for opencv. It may be necessary to use cmake -DCMAKE_CXX_STANDARD=14 ..., or maybe just omit the -DCMAKE_CXX_STANDARD=14 altogether. Most compilers default to C++14 or higher these days. There are very few cases where one needs to explicitly request C++11.
In summary:
Looks like the version of Protobuf you are using is missing some fixes already in the release branches.
Maybe there is a bug in the CMake files if utf8_range is not a hard-dependency.
I think there are multiple opportunities to improve the Protobuf documentation around building and installation.
Happy to do a drive-by. It would be useful to know what platform (Linux, Windows, etc.) this was on, and what version of the compiler. Looks like some Linux distro, with GCC.
if (some_variable_enabled_when_utf8_is_required)
list(APPEND _pc_targets "utf8_range")
endif ()
I dont see any fix for that in 22.x branch v22.5...22.x
The broken build for libphonenumber
This error:
/usr/bin/ld: /tmp/ccOihmdo.lto.o: in function `google::protobuf::RepeatedField<int>::GrowNoAnnotate(int, int)':
/usr/include/google/protobuf/thread_safe_arena.h:198: undefined reference to `google::protobuf::internal::ThreadSafeArena::thread_cache_'
was fixed in #12700. I think @fowles already backported that fix to the 22.x and 23.x branches.
/usr/bin/ld: /usr/lib64/libprotoc.so: undefined reference to symbol '_ZN4absl12lts_2023012513base_internal12SpinLockWaitEPSt6atomicIjEiPKNS1_22SpinLockWaitTransitionENS1_14SchedulingModeE'
/usr/bin/ld: /usr/lib64/libabsl_spinlock_wait.so.2301.0.0: error adding symbols: DSO missing from command line
Seems like a missing -labsl*. Most likely mysql is using find_package(protobuf), using the FindProtobuf embedded with CMake and missing all the new deps. That is indeed the case:
Happy to do a drive-by. It would be useful to know what platform (Linux, Windows, etc.) this was on, and what version of the compiler. Looks like some Linux distro, with GCC.
The dependency on utf8_range
Is utf8_range a hard dependency? If it is, then the install instructions should say so. Consider adding step-by-step instructions to build all the dependencies from source in https://github.com/protocolbuffers/protobuf/blob/main/src/README.md
If it is not a hard dependency, then this:
mysql is not using absl API and error message shows missing symbol in libprotoc -> it points on libprotoc underlinking with some of the absl DSOs.
I am not sure I follow. That is intentional. libprotoc.so depends on the Abseil symbols. Some of the abseil symbols are part of the public API of libprotoc. It is not expected that -lprotoc by itself will be enough. If it did (for example by linking all the absl* libraries into the .so), I think applications that used Abseil and libprotoc at the same time would quickly run into ODR violations.
In summary:
Looks like the version of Protobuf you are using is missing some fixes already in the release branches.
As I've wrote I've tested that with 23.0.
Thanks that is useful. Could you also share the specific Linux distro and the steps you are using to compile Protobuf? It would make it easier to repro any bugs locally.
mysql needs some patches to use Protobuf >= 22.0.
I disagree. It compiles and linking fails because missing symbols.
I think you are expecting that linking with just -lprotoc should work. It does not and it is not expected to. The Protobuf team has fixed the pkg-config modules and the CMake config files to add any new -l flags. That should make it easier to migrate build scripts to add the flags where needed.
Build scripts written for Protobuf <= 21.x must be updated to take into account the new dependencies. If a build script (like mysql's) relies on CMake's FindProtobuf module it needs to be updated. That is because FindProtobuf does not know about the new dependencies.
mysql uses that module and that is why the build is missing -l flags.
I also do not think the Protobuf team should (or could) fix the FindProtobuf module. First, because they cannot go back in time and fix the version of that module that already shipped everywhere. Second, because CMake's team plan of record is to migrate to the config files that Protobuf already generates and installs.
I appreciate this is maybe surprising and/or frustrating. But I am not sure what actions are you suggesting.
Trying to figure out why libprotobuf DSO does not provdes `google::protobuf::internal::ThreadSafeArena::thread_cache_' I found another "intersting: thing.
Despite
[tkloczko@pers-jacek x86_64-redhat-linux-gnu]$ cmake -LCMake Warning: No source or binary directory provided. Both will be assumed to be the same as the current working directory, but note that this warning will become a fatal error in future CMake releases.CMake Error: The source directory "/home/tkloczko/rpmbuild/BUILD/protobuf-22.5/x86_64-redhat-linux-gnu" does not appear to contain CMakeLists.txt.Specify --help for usage, or press the help button on the CMake GUI.-- Cache valuesCMAKE_BUILD_TYPE:STRING=RelWithDebInfoCMAKE_INSTALL_PREFIX:PATH=/usrGTest_DIR:PATH=/usr/lib64/cmake/GTestabsl_DIR:PATH=/usr/lib64/cmake/abslprotobuf_ABSL_PROVIDER:STRING=packageprotobuf_ALLOW_CCACHE:BOOL=OFFprotobuf_BUILD_CONFORMANCE:BOOL=OFFprotobuf_BUILD_EXAMPLES:BOOL=OFFprotobuf_BUILD_LIBPROTOC:BOOL=OFFprotobuf_BUILD_PROTOBUF_BINARIES:BOOL=ONprotobuf_BUILD_PROTOC_BINARIES:BOOL=ONprotobuf_BUILD_SHARED_LIBS:BOOL=ONprotobuf_BUILD_TESTS:BOOL=ONprotobuf_DISABLE_RTTI:BOOL=OFFprotobuf_INSTALL:BOOL=ONprotobuf_INSTALL_EXAMPLES:BOOL=OFFprotobuf_REMOVE_INSTALLED_HEADERS:BOOL=OFFprotobuf_TEST_XML_OUTDIR:BOOL=OFFprotobuf_USE_EXTERNAL_GTEST:BOOL=ONprotobuf_WITH_ZLIB:BOOL=ONutf8_range_ENABLE_INSTALL:BOOL=OFFutf8_range_ENABLE_TESTS:BOOL=OFF
in which is possible to see protobuf_BUILD_LIBPROTOC:BOOL=OFF libprotoc DSO is build, linked and installed.
That is what causes the undefined google::protobuf::internal::ThreadSafeArena::thread_cache_ symbol.
Are you sure you are using the correct .pc file when building the downstream dependency? Or if you are not using .pc files and you are using CMake: is the downstream build using the protobuf config (as opposed to the FindProtobuf module)?
Are you sure you are using the correct .pc file when building the downstream dependency? Or if you are not using .pc files and you are using CMake: is the downstream build using the protobuf config (as opposed to the FindProtobuf module)?
Yes I'm sure.
Generated .pc files have that -DPROTOBUF_USE_DLLS (I've done that without checking possible impact of that kind of change).
Of course reverte 18fae1c caused that it was not possible to build protobuf baceuse other sybols in that case where missing.
Nevertheless looks liks like something is wrong around use that define in some headers.
FYI, on the main branch, the linking errors about thread_cache_ (and only this error, as this issue seems to mix several unrelated issues) should now be gone (for all non Windows users).
Note: I am not involved at all in Protobuf development, I am just an external contributor who hit this issue and decided to submit a fix for it ;)
We are not able to build MySQL against Protobuf 23+. I've reported this upstream.3 I've offered upstream the same assessment as what's in this issue, and they seem to agree.
Linux centos also has error:
/usr/local/include/google/protobuf/thread_safe_arena.h:198: undefined reference to google::protobuf::internal::ThreadSafeArena::thread_cache_' /usr/local/include/google/protobuf/thread_safe_arena.h:198: undefined reference to google::protobuf::internal::ThreadSafeArena::thread_cache_'
/usr/local/include/google/protobuf/thread_safe_arena.h:198: undefined reference to `google::protobuf::internal::ThreadSafeArena::thread_cache_'
if message has repeated int32 or int64, i will get errors above, why?
while if message has repeated other type such as message or bytes, it build success...
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.
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.
Activity
kloczek commentedon May 9, 2023
In generated protobuf-config.cmake I see as well:
kloczek commentedon May 9, 2023
Just in case I've build protobuf with
-D utf8_range_ENABLE_INSTALL=OFF.kloczek commentedon May 10, 2023
I've added quick hack to remove
utf8_rangefrom Requires on rpm package %install stage.With such product I was able to start testing use generated package on building other packages.
Results:
In other words looks likke protobuf 23.0 is not ready to be used.
kloczek commentedon May 11, 2023
Gentle ping .. any update?
I was able to rebuild protobuf-c usimg 22.5 however still on rebuilding libphonenumber, mysql, opencv are failing on missing symbols.
fowles commentedon May 12, 2023
@coryan do you have a moment to take a look at this?
coryan commentedon May 12, 2023
Happy to do a drive-by. It would be useful to know what platform (Linux, Windows, etc.) this was on, and what version of the compiler. Looks like some Linux distro, with GCC.
The dependency on
utf8_rangeIs
utf8_rangea hard dependency? If it is, then the install instructions should say so. Consider adding step-by-step instructions to build all the dependencies from source in https://github.com/protocolbuffers/protobuf/blob/main/src/README.mdIf it is not a hard dependency, then this:
protobuf/cmake/install.cmake
Line 7 in 56d1b0f
Needs to have a conditional:
The broken build for
libphonenumberThis error:
was fixed in #12700. I think @fowles already backported that fix to the 22.x and 23.x branches.
The broken build for
mysqlThis error
Seems like a missing
-labsl*. Most likelymysqlis usingfind_package(protobuf), using theFindProtobufembedded with CMake and missing all the new deps. That is indeed the case:https://github.com/mysql/mysql-server/blob/ea7087d885006918ad54458e7aad215b1650312c/cmake/protobuf.cmake#L124
That needs to change to
find_package(protobuf CONFIG). See #12292. It is becoming a FAQ, the Protobuf team should consider updating the release notes.The broken build for
opencvI think in this case the error explains itself:
The opencv library was configured (or maybe defaults to) compile as C++11:
I am not familiar with the configuration options for opencv. It may be necessary to use
cmake -DCMAKE_CXX_STANDARD=14 ..., or maybe just omit the-DCMAKE_CXX_STANDARD=14altogether. Most compilers default to C++14 or higher these days. There are very few cases where one needs to explicitly request C++11.In summary:
utf8_rangeis not a hard-dependency.opencvmay need some tweaks.HTH
kloczek commentedon May 13, 2023
I dont see any fix for that in 22.x branch v22.5...22.x
None of the commits from #12700 are on the list
v22.5...22.x
mysql is not using absl API and error message shows missing symbol in libprotoc -> it points on libprotoc underlinking with some of the absl DSOs.
As I've wrote I've tested that with 23.0.
I disagree. It compiles and linking fails because missing symbols.
coryan commentedon May 13, 2023
Yes. I said "if it is not a hard dependency". But I looked at the code again and it is. That means this:
Was probably not a good idea.
I am not sure why that matters since you are testing with 23.0. FWIW, the relevant commit in the 22.x series is 18fae1c and it is there:
v22.4...22.x
The relevant commit in the 23.x series is 1ca4e9c
I am not sure I follow. That is intentional.
libprotoc.sodepends on the Abseil symbols. Some of the abseil symbols are part of the public API of libprotoc. It is not expected that-lprotocby itself will be enough. If it did (for example by linking all the absl* libraries into the.so), I think applications that used Abseil and libprotoc at the same time would quickly run into ODR violations.Thanks that is useful. Could you also share the specific Linux distro and the steps you are using to compile Protobuf? It would make it easier to repro any bugs locally.
I think you are expecting that linking with just
-lprotocshould work. It does not and it is not expected to. The Protobuf team has fixed the pkg-config modules and the CMake config files to add any new-lflags. That should make it easier to migrate build scripts to add the flags where needed.Build scripts written for Protobuf <= 21.x must be updated to take into account the new dependencies. If a build script (like mysql's) relies on CMake's
FindProtobufmodule it needs to be updated. That is becauseFindProtobufdoes not know about the new dependencies.mysql uses that module and that is why the build is missing
-lflags.I also do not think the Protobuf team should (or could) fix the
FindProtobufmodule. First, because they cannot go back in time and fix the version of that module that already shipped everywhere. Second, because CMake's team plan of record is to migrate to the config files that Protobuf already generates and installs.I appreciate this is maybe surprising and/or frustrating. But I am not sure what actions are you suggesting.
kloczek commentedon May 13, 2023
Nope I'm now on 22.5 because with that version I was able to compile everythiong and have now only linking issues.
kloczek commentedon May 13, 2023
Trying to figure out why libprotobuf DSO does not provdes `google::protobuf::internal::ThreadSafeArena::thread_cache_' I found another "intersting: thing.
Despite
in which is possible to see
protobuf_BUILD_LIBPROTOC:BOOL=OFFlibprotoc DSO is build, linked and installed.kloczek commentedon May 13, 2023
BTW looks like 18fae1c is already included in 22.5.
kloczek commentedon May 13, 2023
According to
protobuf/cmake/README.md
Lines 296 to 314 in 17a2d53
PROTOBUF_USE_DLLSdefine should be used only on Win.Going to try to roll back 18fae1c.
coryan commentedon May 13, 2023
I think the documentation is very much out of date and I filed a bug requesting fixes (see #12787).
If you compile the library with PROTOBUF_USE_DLLS defined and use it with that undefined you will have an inconsistent definition for this class:
protobuf/src/google/protobuf/thread_safe_arena.h
Lines 264 to 271 in 17a2d53
And that macro is defined when CMake creates shared libraries. Both on Windows and other platforms:
protobuf/cmake/libprotobuf.cmake
Lines 30 to 34 in 42b20b3
That is what causes the undefined
google::protobuf::internal::ThreadSafeArena::thread_cache_symbol.Are you sure you are using the correct
.pcfile when building the downstream dependency? Or if you are not using.pcfiles and you are using CMake: is the downstream build using the protobuf config (as opposed to theFindProtobufmodule)?kloczek commentedon May 13, 2023
Yes I'm sure.
Generated .pc files have that
-DPROTOBUF_USE_DLLS(I've done that without checking possible impact of that kind of change).Of course reverte 18fae1c caused that it was not possible to build protobuf baceuse other sybols in that case where missing.
Nevertheless looks liks like something is wrong around use that define in some headers.
40 remaining items
kloczek commentedon May 25, 2023
Cmake settings:
kloczek commentedon May 25, 2023
libphonenumber maintainers just mentioned that they are observing as well linking issue https://issuetracker.google.com/issues/283987730#comment6
Use the same ABI for static and shared libraries on non-Windows platf…
Romain-Geissler-1A commentedon Jun 6, 2023
Hi,
FYI, on the main branch, the linking errors about
thread_cache_(and only this error, as this issue seems to mix several unrelated issues) should now be gone (for all non Windows users).Note: I am not involved at all in Protobuf development, I am just an external contributor who hit this issue and decided to submit a fix for it ;)
Cheers,
Romain
carlocab commentedon Jul 7, 2023
Not sure what the status of this issue is, but here's some information that might be helpful. At Homebrew:
-DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ONand-Dprotobuf_MODULE_COMPATIBLE=ONtocmake.2 I believe this confirms 23.0: issue with generated protobuf.pc files (it depends onutf8_range) #12746 (comment).Footnotes
https://github.com/Homebrew/homebrew-core/pull/133623 ↩
https://github.com/Homebrew/homebrew-core/blob/244feeee298712178bd3cd60da0091d5a5b79a71/Formula/opencv.rb#L109-L110 ↩
https://bugs.mysql.com/bug.php?id=111469 ↩
LazyPlanet commentedon Jul 17, 2023
Linux centos also has error:
/usr/local/include/google/protobuf/thread_safe_arena.h:198: undefined reference to
google::protobuf::internal::ThreadSafeArena::thread_cache_' /usr/local/include/google/protobuf/thread_safe_arena.h:198: undefined reference togoogle::protobuf::internal::ThreadSafeArena::thread_cache_'/usr/local/include/google/protobuf/thread_safe_arena.h:198: undefined reference to `google::protobuf::internal::ThreadSafeArena::thread_cache_'
if message has repeated int32 or int64, i will get errors above, why?
while if message has repeated other type such as message or bytes, it build success...
Romain-Geissler-1A commentedon Sep 16, 2023
Why not using up to date probotuf where this very problem is fixed already, without any hack required ?
Fix linking error
Fix linking errors
Fix linking errors
Fix linking errors
github-actions commentedon Dec 17, 2023
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
inactivebecause the last activity was over 90 days ago.github-actions commentedon Jan 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
inactivelabel was added.