Message ID | 20230329100810.705855-3-xiangyu.chen@eng.windriver.com |
---|---|
State | Under Review |
Headers | show |
Series | protobuf: upgrade 3.21.12 -> 4.22.2 | expand |
I use archlinux for build system and I am still seeing build failure for protobuf-c-native http://sprunge.us/TiQyPZ On Wed, Mar 29, 2023 at 3:08 AM Xiangyu Chen <xiangyu.chen@eng.windriver.com> wrote: > > From: Xiangyu Chen <xiangyu.chen@windriver.com> > > Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com> > --- > .../0001-add-support-of-protobuf-4.22.x.patch | 315 ++++++++++++++++++ > .../protobuf/protobuf-c_1.4.1.bb | 5 +- > 2 files changed, 319 insertions(+), 1 deletion(-) > create mode 100644 meta-oe/recipes-devtools/protobuf/protobuf-c/0001-add-support-of-protobuf-4.22.x.patch > > diff --git a/meta-oe/recipes-devtools/protobuf/protobuf-c/0001-add-support-of-protobuf-4.22.x.patch b/meta-oe/recipes-devtools/protobuf/protobuf-c/0001-add-support-of-protobuf-4.22.x.patch > new file mode 100644 > index 000000000..075b7044c > --- /dev/null > +++ b/meta-oe/recipes-devtools/protobuf/protobuf-c/0001-add-support-of-protobuf-4.22.x.patch > @@ -0,0 +1,315 @@ > +From 66a0b0d205224f63f19dd8f96abf9dcdc2112331 Mon Sep 17 00:00:00 2001 > +From: Xiangyu Chen <xiangyu.chen@windriver.com> > +Date: Wed, 29 Mar 2023 14:25:17 +0800 > +Subject: [PATCH] add support of protobuf 4.22.x > + > +after upgrade the protobuf to 4.22.x, the protobuf-c cannot compile anymore (#544) due to following changes: > +1.protobuf using c++14, that cause the command_line_interface.h report error > +2.protobuf using abseil-cpp library instead the trace API with GOOGLE_ header > +3. removed GOOGLE_DISALLOW_EVIL_CONSTRUCTORS > + > +Upstream-Status: Pending [https://github.com/protobuf-c/protobuf-c/pull/548] > + > +Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com> > +--- > + Makefile.am | 2 +- > + configure.ac | 8 ++++++++ > + protoc-c/c_bytes_field.h | 1 - > + protoc-c/c_enum.h | 1 - > + protoc-c/c_enum_field.h | 1 - > + protoc-c/c_extension.h | 1 - > + protoc-c/c_field.cc | 2 +- > + protoc-c/c_field.h | 3 --- > + protoc-c/c_file.h | 1 - > + protoc-c/c_generator.h | 2 -- > + protoc-c/c_helpers.cc | 4 ++-- > + protoc-c/c_message.cc | 4 ++-- > + protoc-c/c_message.h | 1 - > + protoc-c/c_message_field.h | 3 --- > + protoc-c/c_primitive_field.cc | 6 +++--- > + protoc-c/c_primitive_field.h | 3 --- > + protoc-c/c_service.h | 1 - > + protoc-c/c_string_field.h | 1 - > + 18 files changed, 17 insertions(+), 28 deletions(-) > + > +diff --git a/Makefile.am b/Makefile.am > +index c7339ef..3b0d1d6 100644 > +--- a/Makefile.am > ++++ b/Makefile.am > +@@ -20,7 +20,7 @@ AM_CPPFLAGS = \ > + -I${top_builddir} \ > + -I${top_srcdir} > + AM_CFLAGS = ${my_CFLAGS} > +-AM_LDFLAGS = > ++AM_LDFLAGS = ${ABSL_LOG_INTERNAL_CHECK_OP_LIBS} ${ABSL_LOG_RAW_HASH_SET_LIBS} > + > + # code coverage > + > +diff --git a/configure.ac b/configure.ac > +index f5a0261..8ed549a 100644 > +--- a/configure.ac > ++++ b/configure.ac > +@@ -78,6 +78,14 @@ if test "x$enable_protoc" != "xno"; then > + > + AX_CXX_COMPILE_STDCXX(11, noext, mandatory) > + > ++# now checking 4.22.x protobuf, if so, set cxx as 14 > ++ AS_IF([pkg-config --atleast-version 4.22.0 protobuf],[AX_CXX_COMPILE_STDCXX(14, noext, mandatory)]) > ++ > ++ AS_IF([pkg-config --atleast-version 4.22.0 protobuf], > ++ [PKG_CHECK_MODULES([ABSL_LOG_INTERNAL_CHECK_OP], [absl_log_internal_check_op], > ++ [PKG_CHECK_MODULES([ABSL_LOG_RAW_HASH_SET], [absl_raw_hash_set], [], [AC_MSG_ERROR([Missing absl_raw_hash_set library.])])], > ++ [AC_MSG_ERROR([Missing absl_log_internal_check_op library.])])]) > ++ > + PKG_CHECK_MODULES([protobuf], [protobuf >= 3.0.0], > + [proto3_supported=yes], > + [PKG_CHECK_MODULES([protobuf], [protobuf >= 2.6.0])] > +diff --git a/protoc-c/c_bytes_field.h b/protoc-c/c_bytes_field.h > +index bf873f0..8fc63d3 100644 > +--- a/protoc-c/c_bytes_field.h > ++++ b/protoc-c/c_bytes_field.h > +@@ -88,7 +88,6 @@ class BytesFieldGenerator : public FieldGenerator { > + private: > + std::map<std::string, std::string> variables_; > + > +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(BytesFieldGenerator); > + }; > + > + > +diff --git a/protoc-c/c_enum.h b/protoc-c/c_enum.h > +index 9c34b69..d5e58f0 100644 > +--- a/protoc-c/c_enum.h > ++++ b/protoc-c/c_enum.h > +@@ -107,7 +107,6 @@ class EnumGenerator { > + const EnumDescriptor* descriptor_; > + std::string dllexport_decl_; > + > +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(EnumGenerator); > + }; > + > + } // namespace c > +diff --git a/protoc-c/c_enum_field.h b/protoc-c/c_enum_field.h > +index 3f8c005..03eb402 100644 > +--- a/protoc-c/c_enum_field.h > ++++ b/protoc-c/c_enum_field.h > +@@ -86,7 +86,6 @@ class EnumFieldGenerator : public FieldGenerator { > + private: > + std::map<std::string, std::string> variables_; > + > +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(EnumFieldGenerator); > + }; > + > + > +diff --git a/protoc-c/c_extension.h b/protoc-c/c_extension.h > +index 9541388..9c5797d 100644 > +--- a/protoc-c/c_extension.h > ++++ b/protoc-c/c_extension.h > +@@ -99,7 +99,6 @@ class ExtensionGenerator { > + std::string type_traits_; > + std::string dllexport_decl_; > + > +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ExtensionGenerator); > + }; > + > + } // namespace c > +diff --git a/protoc-c/c_field.cc b/protoc-c/c_field.cc > +index 0716744..4abdc6d 100644 > +--- a/protoc-c/c_field.cc > ++++ b/protoc-c/c_field.cc > +@@ -231,7 +231,7 @@ FieldGeneratorMap::~FieldGeneratorMap() {} > + > + const FieldGenerator& FieldGeneratorMap::get( > + const FieldDescriptor* field) const { > +- GOOGLE_CHECK_EQ(field->containing_type(), descriptor_); > ++ ABSL_CHECK_EQ(field->containing_type(), descriptor_); > + return *field_generators_[field->index()]; > + } > + > +diff --git a/protoc-c/c_field.h b/protoc-c/c_field.h > +index 3cad35d..76d3b0b 100644 > +--- a/protoc-c/c_field.h > ++++ b/protoc-c/c_field.h > +@@ -104,8 +104,6 @@ class FieldGenerator { > + const std::string &descriptor_addr) const; > + const FieldDescriptor *descriptor_; > + > +- private: > +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FieldGenerator); > + }; > + > + // Convenience class which constructs FieldGenerators for a Descriptor. > +@@ -122,7 +120,6 @@ class FieldGeneratorMap { > + > + static FieldGenerator* MakeGenerator(const FieldDescriptor* field); > + > +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FieldGeneratorMap); > + }; > + > + } // namespace c > +diff --git a/protoc-c/c_file.h b/protoc-c/c_file.h > +index 8dfd8ba..ec55906 100644 > +--- a/protoc-c/c_file.h > ++++ b/protoc-c/c_file.h > +@@ -104,7 +104,6 @@ class FileGenerator { > + std::unique_ptr<std::unique_ptr<ServiceGenerator>[]> service_generators_; > + std::unique_ptr<std::unique_ptr<ExtensionGenerator>[]> extension_generators_; > + > +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FileGenerator); > + }; > + > + } // namespace c > +diff --git a/protoc-c/c_generator.h b/protoc-c/c_generator.h > +index ac1ffaf..9260116 100644 > +--- a/protoc-c/c_generator.h > ++++ b/protoc-c/c_generator.h > +@@ -94,8 +94,6 @@ class PROTOC_C_EXPORT CGenerator : public CodeGenerator { > + OutputDirectory* output_directory, > + std::string* error) const; > + > +- private: > +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(CGenerator); > + }; > + > + } // namespace c > +diff --git a/protoc-c/c_helpers.cc b/protoc-c/c_helpers.cc > +index 6fd0cd3..1eaeeb4 100644 > +--- a/protoc-c/c_helpers.cc > ++++ b/protoc-c/c_helpers.cc > +@@ -286,7 +286,7 @@ const char* const kKeywordList[] = { > + > + std::set<std::string> MakeKeywordsMap() { > + std::set<std::string> result; > +- for (int i = 0; i < GOOGLE_ARRAYSIZE(kKeywordList); i++) { > ++ for (int i = 0; i < ABSL_ARRAYSIZE(kKeywordList); i++) { > + result.insert(kKeywordList[i]); > + } > + return result; > +@@ -548,7 +548,7 @@ std::string CEscape(const std::string& src) { > + std::unique_ptr<char[]> dest(new char[dest_length]); > + const int len = CEscapeInternal(src.data(), src.size(), > + dest.get(), dest_length, false); > +- GOOGLE_DCHECK_GE(len, 0); > ++ ABSL_DCHECK_GE(len, 0); > + return std::string(dest.get(), len); > + } > + > +diff --git a/protoc-c/c_message.cc b/protoc-c/c_message.cc > +index 37e8bf8..c7e8515 100755 > +--- a/protoc-c/c_message.cc > ++++ b/protoc-c/c_message.cc > +@@ -499,7 +499,7 @@ GenerateMessageDescriptor(io::Printer* printer, bool gen_init) { > + // NOTE: not supported by protobuf > + vars["maybe_static"] = ""; > + vars["field_dv_ctype"] = "{ ... }"; > +- GOOGLE_LOG(DFATAL) << "Messages can't have default values!"; > ++ ABSL_LOG(FATAL) << "Messages can't have default values!"; > + break; > + case FieldDescriptor::CPPTYPE_STRING: > + if (fd->type() == FieldDescriptor::TYPE_BYTES || opt.string_as_bytes()) > +@@ -521,7 +521,7 @@ GenerateMessageDescriptor(io::Printer* printer, bool gen_init) { > + break; > + } > + default: > +- GOOGLE_LOG(DFATAL) << "Unknown CPPTYPE"; > ++ ABSL_LOG(FATAL) << "Unknown CPPTYPE"; > + break; > + } > + if (!already_defined) > +diff --git a/protoc-c/c_message.h b/protoc-c/c_message.h > +index ea1c3ab..e90782b 100644 > +--- a/protoc-c/c_message.h > ++++ b/protoc-c/c_message.h > +@@ -137,7 +137,6 @@ class MessageGenerator { > + std::unique_ptr<std::unique_ptr<EnumGenerator>[]> enum_generators_; > + std::unique_ptr<std::unique_ptr<ExtensionGenerator>[]> extension_generators_; > + > +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MessageGenerator); > + }; > + > + } // namespace c > +diff --git a/protoc-c/c_message_field.h b/protoc-c/c_message_field.h > +index 39b8d99..42efe36 100644 > +--- a/protoc-c/c_message_field.h > ++++ b/protoc-c/c_message_field.h > +@@ -83,9 +83,6 @@ class MessageFieldGenerator : public FieldGenerator { > + std::string GetDefaultValue(void) const; > + void GenerateStaticInit(io::Printer* printer) const; > + > +- private: > +- > +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MessageFieldGenerator); > + }; > + > + > +diff --git a/protoc-c/c_primitive_field.cc b/protoc-c/c_primitive_field.cc > +index 6990893..d5a7b60 100644 > +--- a/protoc-c/c_primitive_field.cc > ++++ b/protoc-c/c_primitive_field.cc > +@@ -99,7 +99,7 @@ void PrimitiveFieldGenerator::GenerateStructMembers(io::Printer* printer) const > + case FieldDescriptor::TYPE_STRING : > + case FieldDescriptor::TYPE_BYTES : > + case FieldDescriptor::TYPE_GROUP : > +- case FieldDescriptor::TYPE_MESSAGE : GOOGLE_LOG(FATAL) << "not a primitive type"; break; > ++ case FieldDescriptor::TYPE_MESSAGE : ABSL_LOG(FATAL) << "not a primitive type"; break; > + > + // No default because we want the compiler to complain if any new > + // types are added. > +@@ -143,7 +143,7 @@ std::string PrimitiveFieldGenerator::GetDefaultValue() const > + case FieldDescriptor::CPPTYPE_BOOL: > + return descriptor_->default_value_bool() ? "1" : "0"; > + default: > +- GOOGLE_LOG(DFATAL) << "unexpected CPPTYPE in c_primitive_field"; > ++ ABSL_LOG(FATAL) << "unexpected CPPTYPE in c_primitive_field"; > + return "UNEXPECTED_CPPTYPE"; > + } > + } > +@@ -197,7 +197,7 @@ void PrimitiveFieldGenerator::GenerateDescriptorInitializer(io::Printer* printer > + case FieldDescriptor::TYPE_STRING : > + case FieldDescriptor::TYPE_BYTES : > + case FieldDescriptor::TYPE_GROUP : > +- case FieldDescriptor::TYPE_MESSAGE : GOOGLE_LOG(FATAL) << "not a primitive type"; break; > ++ case FieldDescriptor::TYPE_MESSAGE : ABSL_LOG(FATAL) << "not a primitive type"; break; > + > + // No default because we want the compiler to complain if any new > + // types are added. > +diff --git a/protoc-c/c_primitive_field.h b/protoc-c/c_primitive_field.h > +index a9eb893..d2bb724 100644 > +--- a/protoc-c/c_primitive_field.h > ++++ b/protoc-c/c_primitive_field.h > +@@ -83,9 +83,6 @@ class PrimitiveFieldGenerator : public FieldGenerator { > + std::string GetDefaultValue(void) const; > + void GenerateStaticInit(io::Printer* printer) const; > + > +- private: > +- > +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(PrimitiveFieldGenerator); > + }; > + > + } // namespace c > +diff --git a/protoc-c/c_service.h b/protoc-c/c_service.h > +index 27125a6..4737ff3 100644 > +--- a/protoc-c/c_service.h > ++++ b/protoc-c/c_service.h > +@@ -101,7 +101,6 @@ class ServiceGenerator { > + const ServiceDescriptor* descriptor_; > + std::map<std::string, std::string> vars_; > + > +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ServiceGenerator); > + }; > + > + } // namespace c > +diff --git a/protoc-c/c_string_field.h b/protoc-c/c_string_field.h > +index 513cea7..ba258e4 100644 > +--- a/protoc-c/c_string_field.h > ++++ b/protoc-c/c_string_field.h > +@@ -88,7 +88,6 @@ class StringFieldGenerator : public FieldGenerator { > + private: > + std::map<std::string, std::string> variables_; > + > +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(StringFieldGenerator); > + }; > + > + > +-- > +2.34.1 > + > diff --git a/meta-oe/recipes-devtools/protobuf/protobuf-c_1.4.1.bb b/meta-oe/recipes-devtools/protobuf/protobuf-c_1.4.1.bb > index d724287d6..bdaf43a54 100644 > --- a/meta-oe/recipes-devtools/protobuf/protobuf-c_1.4.1.bb > +++ b/meta-oe/recipes-devtools/protobuf/protobuf-c_1.4.1.bb > @@ -12,7 +12,10 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=9f725889e0d77383e26cb42b0b62cea2" > > DEPENDS = "protobuf-native protobuf" > > -SRC_URI = "git://github.com/protobuf-c/protobuf-c.git;branch=master;protocol=https" > +SRC_URI = "git://github.com/protobuf-c/protobuf-c.git;branch=master;protocol=https \ > + file://0001-add-support-of-protobuf-4.22.x.patch \ > + " > + > SRCREV = "abc67a11c6db271bedbb9f58be85d6f4e2ea8389" > > S = "${WORKDIR}/git" > -- > 2.34.1 >
here are errors on qemuarm/clang https://errors.yoctoproject.org/Errors/Build/161813/ On Wed, Mar 29, 2023 at 12:49 PM Khem Raj <raj.khem@gmail.com> wrote: > > I use archlinux for build system and I am still seeing build failure > for protobuf-c-native > > http://sprunge.us/TiQyPZ > > On Wed, Mar 29, 2023 at 3:08 AM Xiangyu Chen > <xiangyu.chen@eng.windriver.com> wrote: > > > > From: Xiangyu Chen <xiangyu.chen@windriver.com> > > > > Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com> > > --- > > .../0001-add-support-of-protobuf-4.22.x.patch | 315 ++++++++++++++++++ > > .../protobuf/protobuf-c_1.4.1.bb | 5 +- > > 2 files changed, 319 insertions(+), 1 deletion(-) > > create mode 100644 meta-oe/recipes-devtools/protobuf/protobuf-c/0001-add-support-of-protobuf-4.22.x.patch > > > > diff --git a/meta-oe/recipes-devtools/protobuf/protobuf-c/0001-add-support-of-protobuf-4.22.x.patch b/meta-oe/recipes-devtools/protobuf/protobuf-c/0001-add-support-of-protobuf-4.22.x.patch > > new file mode 100644 > > index 000000000..075b7044c > > --- /dev/null > > +++ b/meta-oe/recipes-devtools/protobuf/protobuf-c/0001-add-support-of-protobuf-4.22.x.patch > > @@ -0,0 +1,315 @@ > > +From 66a0b0d205224f63f19dd8f96abf9dcdc2112331 Mon Sep 17 00:00:00 2001 > > +From: Xiangyu Chen <xiangyu.chen@windriver.com> > > +Date: Wed, 29 Mar 2023 14:25:17 +0800 > > +Subject: [PATCH] add support of protobuf 4.22.x > > + > > +after upgrade the protobuf to 4.22.x, the protobuf-c cannot compile anymore (#544) due to following changes: > > +1.protobuf using c++14, that cause the command_line_interface.h report error > > +2.protobuf using abseil-cpp library instead the trace API with GOOGLE_ header > > +3. removed GOOGLE_DISALLOW_EVIL_CONSTRUCTORS > > + > > +Upstream-Status: Pending [https://github.com/protobuf-c/protobuf-c/pull/548] > > + > > +Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com> > > +--- > > + Makefile.am | 2 +- > > + configure.ac | 8 ++++++++ > > + protoc-c/c_bytes_field.h | 1 - > > + protoc-c/c_enum.h | 1 - > > + protoc-c/c_enum_field.h | 1 - > > + protoc-c/c_extension.h | 1 - > > + protoc-c/c_field.cc | 2 +- > > + protoc-c/c_field.h | 3 --- > > + protoc-c/c_file.h | 1 - > > + protoc-c/c_generator.h | 2 -- > > + protoc-c/c_helpers.cc | 4 ++-- > > + protoc-c/c_message.cc | 4 ++-- > > + protoc-c/c_message.h | 1 - > > + protoc-c/c_message_field.h | 3 --- > > + protoc-c/c_primitive_field.cc | 6 +++--- > > + protoc-c/c_primitive_field.h | 3 --- > > + protoc-c/c_service.h | 1 - > > + protoc-c/c_string_field.h | 1 - > > + 18 files changed, 17 insertions(+), 28 deletions(-) > > + > > +diff --git a/Makefile.am b/Makefile.am > > +index c7339ef..3b0d1d6 100644 > > +--- a/Makefile.am > > ++++ b/Makefile.am > > +@@ -20,7 +20,7 @@ AM_CPPFLAGS = \ > > + -I${top_builddir} \ > > + -I${top_srcdir} > > + AM_CFLAGS = ${my_CFLAGS} > > +-AM_LDFLAGS = > > ++AM_LDFLAGS = ${ABSL_LOG_INTERNAL_CHECK_OP_LIBS} ${ABSL_LOG_RAW_HASH_SET_LIBS} > > + > > + # code coverage > > + > > +diff --git a/configure.ac b/configure.ac > > +index f5a0261..8ed549a 100644 > > +--- a/configure.ac > > ++++ b/configure.ac > > +@@ -78,6 +78,14 @@ if test "x$enable_protoc" != "xno"; then > > + > > + AX_CXX_COMPILE_STDCXX(11, noext, mandatory) > > + > > ++# now checking 4.22.x protobuf, if so, set cxx as 14 > > ++ AS_IF([pkg-config --atleast-version 4.22.0 protobuf],[AX_CXX_COMPILE_STDCXX(14, noext, mandatory)]) > > ++ > > ++ AS_IF([pkg-config --atleast-version 4.22.0 protobuf], > > ++ [PKG_CHECK_MODULES([ABSL_LOG_INTERNAL_CHECK_OP], [absl_log_internal_check_op], > > ++ [PKG_CHECK_MODULES([ABSL_LOG_RAW_HASH_SET], [absl_raw_hash_set], [], [AC_MSG_ERROR([Missing absl_raw_hash_set library.])])], > > ++ [AC_MSG_ERROR([Missing absl_log_internal_check_op library.])])]) > > ++ > > + PKG_CHECK_MODULES([protobuf], [protobuf >= 3.0.0], > > + [proto3_supported=yes], > > + [PKG_CHECK_MODULES([protobuf], [protobuf >= 2.6.0])] > > +diff --git a/protoc-c/c_bytes_field.h b/protoc-c/c_bytes_field.h > > +index bf873f0..8fc63d3 100644 > > +--- a/protoc-c/c_bytes_field.h > > ++++ b/protoc-c/c_bytes_field.h > > +@@ -88,7 +88,6 @@ class BytesFieldGenerator : public FieldGenerator { > > + private: > > + std::map<std::string, std::string> variables_; > > + > > +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(BytesFieldGenerator); > > + }; > > + > > + > > +diff --git a/protoc-c/c_enum.h b/protoc-c/c_enum.h > > +index 9c34b69..d5e58f0 100644 > > +--- a/protoc-c/c_enum.h > > ++++ b/protoc-c/c_enum.h > > +@@ -107,7 +107,6 @@ class EnumGenerator { > > + const EnumDescriptor* descriptor_; > > + std::string dllexport_decl_; > > + > > +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(EnumGenerator); > > + }; > > + > > + } // namespace c > > +diff --git a/protoc-c/c_enum_field.h b/protoc-c/c_enum_field.h > > +index 3f8c005..03eb402 100644 > > +--- a/protoc-c/c_enum_field.h > > ++++ b/protoc-c/c_enum_field.h > > +@@ -86,7 +86,6 @@ class EnumFieldGenerator : public FieldGenerator { > > + private: > > + std::map<std::string, std::string> variables_; > > + > > +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(EnumFieldGenerator); > > + }; > > + > > + > > +diff --git a/protoc-c/c_extension.h b/protoc-c/c_extension.h > > +index 9541388..9c5797d 100644 > > +--- a/protoc-c/c_extension.h > > ++++ b/protoc-c/c_extension.h > > +@@ -99,7 +99,6 @@ class ExtensionGenerator { > > + std::string type_traits_; > > + std::string dllexport_decl_; > > + > > +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ExtensionGenerator); > > + }; > > + > > + } // namespace c > > +diff --git a/protoc-c/c_field.cc b/protoc-c/c_field.cc > > +index 0716744..4abdc6d 100644 > > +--- a/protoc-c/c_field.cc > > ++++ b/protoc-c/c_field.cc > > +@@ -231,7 +231,7 @@ FieldGeneratorMap::~FieldGeneratorMap() {} > > + > > + const FieldGenerator& FieldGeneratorMap::get( > > + const FieldDescriptor* field) const { > > +- GOOGLE_CHECK_EQ(field->containing_type(), descriptor_); > > ++ ABSL_CHECK_EQ(field->containing_type(), descriptor_); > > + return *field_generators_[field->index()]; > > + } > > + > > +diff --git a/protoc-c/c_field.h b/protoc-c/c_field.h > > +index 3cad35d..76d3b0b 100644 > > +--- a/protoc-c/c_field.h > > ++++ b/protoc-c/c_field.h > > +@@ -104,8 +104,6 @@ class FieldGenerator { > > + const std::string &descriptor_addr) const; > > + const FieldDescriptor *descriptor_; > > + > > +- private: > > +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FieldGenerator); > > + }; > > + > > + // Convenience class which constructs FieldGenerators for a Descriptor. > > +@@ -122,7 +120,6 @@ class FieldGeneratorMap { > > + > > + static FieldGenerator* MakeGenerator(const FieldDescriptor* field); > > + > > +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FieldGeneratorMap); > > + }; > > + > > + } // namespace c > > +diff --git a/protoc-c/c_file.h b/protoc-c/c_file.h > > +index 8dfd8ba..ec55906 100644 > > +--- a/protoc-c/c_file.h > > ++++ b/protoc-c/c_file.h > > +@@ -104,7 +104,6 @@ class FileGenerator { > > + std::unique_ptr<std::unique_ptr<ServiceGenerator>[]> service_generators_; > > + std::unique_ptr<std::unique_ptr<ExtensionGenerator>[]> extension_generators_; > > + > > +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FileGenerator); > > + }; > > + > > + } // namespace c > > +diff --git a/protoc-c/c_generator.h b/protoc-c/c_generator.h > > +index ac1ffaf..9260116 100644 > > +--- a/protoc-c/c_generator.h > > ++++ b/protoc-c/c_generator.h > > +@@ -94,8 +94,6 @@ class PROTOC_C_EXPORT CGenerator : public CodeGenerator { > > + OutputDirectory* output_directory, > > + std::string* error) const; > > + > > +- private: > > +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(CGenerator); > > + }; > > + > > + } // namespace c > > +diff --git a/protoc-c/c_helpers.cc b/protoc-c/c_helpers.cc > > +index 6fd0cd3..1eaeeb4 100644 > > +--- a/protoc-c/c_helpers.cc > > ++++ b/protoc-c/c_helpers.cc > > +@@ -286,7 +286,7 @@ const char* const kKeywordList[] = { > > + > > + std::set<std::string> MakeKeywordsMap() { > > + std::set<std::string> result; > > +- for (int i = 0; i < GOOGLE_ARRAYSIZE(kKeywordList); i++) { > > ++ for (int i = 0; i < ABSL_ARRAYSIZE(kKeywordList); i++) { > > + result.insert(kKeywordList[i]); > > + } > > + return result; > > +@@ -548,7 +548,7 @@ std::string CEscape(const std::string& src) { > > + std::unique_ptr<char[]> dest(new char[dest_length]); > > + const int len = CEscapeInternal(src.data(), src.size(), > > + dest.get(), dest_length, false); > > +- GOOGLE_DCHECK_GE(len, 0); > > ++ ABSL_DCHECK_GE(len, 0); > > + return std::string(dest.get(), len); > > + } > > + > > +diff --git a/protoc-c/c_message.cc b/protoc-c/c_message.cc > > +index 37e8bf8..c7e8515 100755 > > +--- a/protoc-c/c_message.cc > > ++++ b/protoc-c/c_message.cc > > +@@ -499,7 +499,7 @@ GenerateMessageDescriptor(io::Printer* printer, bool gen_init) { > > + // NOTE: not supported by protobuf > > + vars["maybe_static"] = ""; > > + vars["field_dv_ctype"] = "{ ... }"; > > +- GOOGLE_LOG(DFATAL) << "Messages can't have default values!"; > > ++ ABSL_LOG(FATAL) << "Messages can't have default values!"; > > + break; > > + case FieldDescriptor::CPPTYPE_STRING: > > + if (fd->type() == FieldDescriptor::TYPE_BYTES || opt.string_as_bytes()) > > +@@ -521,7 +521,7 @@ GenerateMessageDescriptor(io::Printer* printer, bool gen_init) { > > + break; > > + } > > + default: > > +- GOOGLE_LOG(DFATAL) << "Unknown CPPTYPE"; > > ++ ABSL_LOG(FATAL) << "Unknown CPPTYPE"; > > + break; > > + } > > + if (!already_defined) > > +diff --git a/protoc-c/c_message.h b/protoc-c/c_message.h > > +index ea1c3ab..e90782b 100644 > > +--- a/protoc-c/c_message.h > > ++++ b/protoc-c/c_message.h > > +@@ -137,7 +137,6 @@ class MessageGenerator { > > + std::unique_ptr<std::unique_ptr<EnumGenerator>[]> enum_generators_; > > + std::unique_ptr<std::unique_ptr<ExtensionGenerator>[]> extension_generators_; > > + > > +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MessageGenerator); > > + }; > > + > > + } // namespace c > > +diff --git a/protoc-c/c_message_field.h b/protoc-c/c_message_field.h > > +index 39b8d99..42efe36 100644 > > +--- a/protoc-c/c_message_field.h > > ++++ b/protoc-c/c_message_field.h > > +@@ -83,9 +83,6 @@ class MessageFieldGenerator : public FieldGenerator { > > + std::string GetDefaultValue(void) const; > > + void GenerateStaticInit(io::Printer* printer) const; > > + > > +- private: > > +- > > +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MessageFieldGenerator); > > + }; > > + > > + > > +diff --git a/protoc-c/c_primitive_field.cc b/protoc-c/c_primitive_field.cc > > +index 6990893..d5a7b60 100644 > > +--- a/protoc-c/c_primitive_field.cc > > ++++ b/protoc-c/c_primitive_field.cc > > +@@ -99,7 +99,7 @@ void PrimitiveFieldGenerator::GenerateStructMembers(io::Printer* printer) const > > + case FieldDescriptor::TYPE_STRING : > > + case FieldDescriptor::TYPE_BYTES : > > + case FieldDescriptor::TYPE_GROUP : > > +- case FieldDescriptor::TYPE_MESSAGE : GOOGLE_LOG(FATAL) << "not a primitive type"; break; > > ++ case FieldDescriptor::TYPE_MESSAGE : ABSL_LOG(FATAL) << "not a primitive type"; break; > > + > > + // No default because we want the compiler to complain if any new > > + // types are added. > > +@@ -143,7 +143,7 @@ std::string PrimitiveFieldGenerator::GetDefaultValue() const > > + case FieldDescriptor::CPPTYPE_BOOL: > > + return descriptor_->default_value_bool() ? "1" : "0"; > > + default: > > +- GOOGLE_LOG(DFATAL) << "unexpected CPPTYPE in c_primitive_field"; > > ++ ABSL_LOG(FATAL) << "unexpected CPPTYPE in c_primitive_field"; > > + return "UNEXPECTED_CPPTYPE"; > > + } > > + } > > +@@ -197,7 +197,7 @@ void PrimitiveFieldGenerator::GenerateDescriptorInitializer(io::Printer* printer > > + case FieldDescriptor::TYPE_STRING : > > + case FieldDescriptor::TYPE_BYTES : > > + case FieldDescriptor::TYPE_GROUP : > > +- case FieldDescriptor::TYPE_MESSAGE : GOOGLE_LOG(FATAL) << "not a primitive type"; break; > > ++ case FieldDescriptor::TYPE_MESSAGE : ABSL_LOG(FATAL) << "not a primitive type"; break; > > + > > + // No default because we want the compiler to complain if any new > > + // types are added. > > +diff --git a/protoc-c/c_primitive_field.h b/protoc-c/c_primitive_field.h > > +index a9eb893..d2bb724 100644 > > +--- a/protoc-c/c_primitive_field.h > > ++++ b/protoc-c/c_primitive_field.h > > +@@ -83,9 +83,6 @@ class PrimitiveFieldGenerator : public FieldGenerator { > > + std::string GetDefaultValue(void) const; > > + void GenerateStaticInit(io::Printer* printer) const; > > + > > +- private: > > +- > > +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(PrimitiveFieldGenerator); > > + }; > > + > > + } // namespace c > > +diff --git a/protoc-c/c_service.h b/protoc-c/c_service.h > > +index 27125a6..4737ff3 100644 > > +--- a/protoc-c/c_service.h > > ++++ b/protoc-c/c_service.h > > +@@ -101,7 +101,6 @@ class ServiceGenerator { > > + const ServiceDescriptor* descriptor_; > > + std::map<std::string, std::string> vars_; > > + > > +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ServiceGenerator); > > + }; > > + > > + } // namespace c > > +diff --git a/protoc-c/c_string_field.h b/protoc-c/c_string_field.h > > +index 513cea7..ba258e4 100644 > > +--- a/protoc-c/c_string_field.h > > ++++ b/protoc-c/c_string_field.h > > +@@ -88,7 +88,6 @@ class StringFieldGenerator : public FieldGenerator { > > + private: > > + std::map<std::string, std::string> variables_; > > + > > +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(StringFieldGenerator); > > + }; > > + > > + > > +-- > > +2.34.1 > > + > > diff --git a/meta-oe/recipes-devtools/protobuf/protobuf-c_1.4.1.bb b/meta-oe/recipes-devtools/protobuf/protobuf-c_1.4.1.bb > > index d724287d6..bdaf43a54 100644 > > --- a/meta-oe/recipes-devtools/protobuf/protobuf-c_1.4.1.bb > > +++ b/meta-oe/recipes-devtools/protobuf/protobuf-c_1.4.1.bb > > @@ -12,7 +12,10 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=9f725889e0d77383e26cb42b0b62cea2" > > > > DEPENDS = "protobuf-native protobuf" > > > > -SRC_URI = "git://github.com/protobuf-c/protobuf-c.git;branch=master;protocol=https" > > +SRC_URI = "git://github.com/protobuf-c/protobuf-c.git;branch=master;protocol=https \ > > + file://0001-add-support-of-protobuf-4.22.x.patch \ > > + " > > + > > SRCREV = "abc67a11c6db271bedbb9f58be85d6f4e2ea8389" > > > > S = "${WORKDIR}/git" > > -- > > 2.34.1 > >
diff --git a/meta-oe/recipes-devtools/protobuf/protobuf-c/0001-add-support-of-protobuf-4.22.x.patch b/meta-oe/recipes-devtools/protobuf/protobuf-c/0001-add-support-of-protobuf-4.22.x.patch new file mode 100644 index 000000000..075b7044c --- /dev/null +++ b/meta-oe/recipes-devtools/protobuf/protobuf-c/0001-add-support-of-protobuf-4.22.x.patch @@ -0,0 +1,315 @@ +From 66a0b0d205224f63f19dd8f96abf9dcdc2112331 Mon Sep 17 00:00:00 2001 +From: Xiangyu Chen <xiangyu.chen@windriver.com> +Date: Wed, 29 Mar 2023 14:25:17 +0800 +Subject: [PATCH] add support of protobuf 4.22.x + +after upgrade the protobuf to 4.22.x, the protobuf-c cannot compile anymore (#544) due to following changes: +1.protobuf using c++14, that cause the command_line_interface.h report error +2.protobuf using abseil-cpp library instead the trace API with GOOGLE_ header +3. removed GOOGLE_DISALLOW_EVIL_CONSTRUCTORS + +Upstream-Status: Pending [https://github.com/protobuf-c/protobuf-c/pull/548] + +Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com> +--- + Makefile.am | 2 +- + configure.ac | 8 ++++++++ + protoc-c/c_bytes_field.h | 1 - + protoc-c/c_enum.h | 1 - + protoc-c/c_enum_field.h | 1 - + protoc-c/c_extension.h | 1 - + protoc-c/c_field.cc | 2 +- + protoc-c/c_field.h | 3 --- + protoc-c/c_file.h | 1 - + protoc-c/c_generator.h | 2 -- + protoc-c/c_helpers.cc | 4 ++-- + protoc-c/c_message.cc | 4 ++-- + protoc-c/c_message.h | 1 - + protoc-c/c_message_field.h | 3 --- + protoc-c/c_primitive_field.cc | 6 +++--- + protoc-c/c_primitive_field.h | 3 --- + protoc-c/c_service.h | 1 - + protoc-c/c_string_field.h | 1 - + 18 files changed, 17 insertions(+), 28 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index c7339ef..3b0d1d6 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -20,7 +20,7 @@ AM_CPPFLAGS = \ + -I${top_builddir} \ + -I${top_srcdir} + AM_CFLAGS = ${my_CFLAGS} +-AM_LDFLAGS = ++AM_LDFLAGS = ${ABSL_LOG_INTERNAL_CHECK_OP_LIBS} ${ABSL_LOG_RAW_HASH_SET_LIBS} + + # code coverage + +diff --git a/configure.ac b/configure.ac +index f5a0261..8ed549a 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -78,6 +78,14 @@ if test "x$enable_protoc" != "xno"; then + + AX_CXX_COMPILE_STDCXX(11, noext, mandatory) + ++# now checking 4.22.x protobuf, if so, set cxx as 14 ++ AS_IF([pkg-config --atleast-version 4.22.0 protobuf],[AX_CXX_COMPILE_STDCXX(14, noext, mandatory)]) ++ ++ AS_IF([pkg-config --atleast-version 4.22.0 protobuf], ++ [PKG_CHECK_MODULES([ABSL_LOG_INTERNAL_CHECK_OP], [absl_log_internal_check_op], ++ [PKG_CHECK_MODULES([ABSL_LOG_RAW_HASH_SET], [absl_raw_hash_set], [], [AC_MSG_ERROR([Missing absl_raw_hash_set library.])])], ++ [AC_MSG_ERROR([Missing absl_log_internal_check_op library.])])]) ++ + PKG_CHECK_MODULES([protobuf], [protobuf >= 3.0.0], + [proto3_supported=yes], + [PKG_CHECK_MODULES([protobuf], [protobuf >= 2.6.0])] +diff --git a/protoc-c/c_bytes_field.h b/protoc-c/c_bytes_field.h +index bf873f0..8fc63d3 100644 +--- a/protoc-c/c_bytes_field.h ++++ b/protoc-c/c_bytes_field.h +@@ -88,7 +88,6 @@ class BytesFieldGenerator : public FieldGenerator { + private: + std::map<std::string, std::string> variables_; + +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(BytesFieldGenerator); + }; + + +diff --git a/protoc-c/c_enum.h b/protoc-c/c_enum.h +index 9c34b69..d5e58f0 100644 +--- a/protoc-c/c_enum.h ++++ b/protoc-c/c_enum.h +@@ -107,7 +107,6 @@ class EnumGenerator { + const EnumDescriptor* descriptor_; + std::string dllexport_decl_; + +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(EnumGenerator); + }; + + } // namespace c +diff --git a/protoc-c/c_enum_field.h b/protoc-c/c_enum_field.h +index 3f8c005..03eb402 100644 +--- a/protoc-c/c_enum_field.h ++++ b/protoc-c/c_enum_field.h +@@ -86,7 +86,6 @@ class EnumFieldGenerator : public FieldGenerator { + private: + std::map<std::string, std::string> variables_; + +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(EnumFieldGenerator); + }; + + +diff --git a/protoc-c/c_extension.h b/protoc-c/c_extension.h +index 9541388..9c5797d 100644 +--- a/protoc-c/c_extension.h ++++ b/protoc-c/c_extension.h +@@ -99,7 +99,6 @@ class ExtensionGenerator { + std::string type_traits_; + std::string dllexport_decl_; + +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ExtensionGenerator); + }; + + } // namespace c +diff --git a/protoc-c/c_field.cc b/protoc-c/c_field.cc +index 0716744..4abdc6d 100644 +--- a/protoc-c/c_field.cc ++++ b/protoc-c/c_field.cc +@@ -231,7 +231,7 @@ FieldGeneratorMap::~FieldGeneratorMap() {} + + const FieldGenerator& FieldGeneratorMap::get( + const FieldDescriptor* field) const { +- GOOGLE_CHECK_EQ(field->containing_type(), descriptor_); ++ ABSL_CHECK_EQ(field->containing_type(), descriptor_); + return *field_generators_[field->index()]; + } + +diff --git a/protoc-c/c_field.h b/protoc-c/c_field.h +index 3cad35d..76d3b0b 100644 +--- a/protoc-c/c_field.h ++++ b/protoc-c/c_field.h +@@ -104,8 +104,6 @@ class FieldGenerator { + const std::string &descriptor_addr) const; + const FieldDescriptor *descriptor_; + +- private: +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FieldGenerator); + }; + + // Convenience class which constructs FieldGenerators for a Descriptor. +@@ -122,7 +120,6 @@ class FieldGeneratorMap { + + static FieldGenerator* MakeGenerator(const FieldDescriptor* field); + +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FieldGeneratorMap); + }; + + } // namespace c +diff --git a/protoc-c/c_file.h b/protoc-c/c_file.h +index 8dfd8ba..ec55906 100644 +--- a/protoc-c/c_file.h ++++ b/protoc-c/c_file.h +@@ -104,7 +104,6 @@ class FileGenerator { + std::unique_ptr<std::unique_ptr<ServiceGenerator>[]> service_generators_; + std::unique_ptr<std::unique_ptr<ExtensionGenerator>[]> extension_generators_; + +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FileGenerator); + }; + + } // namespace c +diff --git a/protoc-c/c_generator.h b/protoc-c/c_generator.h +index ac1ffaf..9260116 100644 +--- a/protoc-c/c_generator.h ++++ b/protoc-c/c_generator.h +@@ -94,8 +94,6 @@ class PROTOC_C_EXPORT CGenerator : public CodeGenerator { + OutputDirectory* output_directory, + std::string* error) const; + +- private: +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(CGenerator); + }; + + } // namespace c +diff --git a/protoc-c/c_helpers.cc b/protoc-c/c_helpers.cc +index 6fd0cd3..1eaeeb4 100644 +--- a/protoc-c/c_helpers.cc ++++ b/protoc-c/c_helpers.cc +@@ -286,7 +286,7 @@ const char* const kKeywordList[] = { + + std::set<std::string> MakeKeywordsMap() { + std::set<std::string> result; +- for (int i = 0; i < GOOGLE_ARRAYSIZE(kKeywordList); i++) { ++ for (int i = 0; i < ABSL_ARRAYSIZE(kKeywordList); i++) { + result.insert(kKeywordList[i]); + } + return result; +@@ -548,7 +548,7 @@ std::string CEscape(const std::string& src) { + std::unique_ptr<char[]> dest(new char[dest_length]); + const int len = CEscapeInternal(src.data(), src.size(), + dest.get(), dest_length, false); +- GOOGLE_DCHECK_GE(len, 0); ++ ABSL_DCHECK_GE(len, 0); + return std::string(dest.get(), len); + } + +diff --git a/protoc-c/c_message.cc b/protoc-c/c_message.cc +index 37e8bf8..c7e8515 100755 +--- a/protoc-c/c_message.cc ++++ b/protoc-c/c_message.cc +@@ -499,7 +499,7 @@ GenerateMessageDescriptor(io::Printer* printer, bool gen_init) { + // NOTE: not supported by protobuf + vars["maybe_static"] = ""; + vars["field_dv_ctype"] = "{ ... }"; +- GOOGLE_LOG(DFATAL) << "Messages can't have default values!"; ++ ABSL_LOG(FATAL) << "Messages can't have default values!"; + break; + case FieldDescriptor::CPPTYPE_STRING: + if (fd->type() == FieldDescriptor::TYPE_BYTES || opt.string_as_bytes()) +@@ -521,7 +521,7 @@ GenerateMessageDescriptor(io::Printer* printer, bool gen_init) { + break; + } + default: +- GOOGLE_LOG(DFATAL) << "Unknown CPPTYPE"; ++ ABSL_LOG(FATAL) << "Unknown CPPTYPE"; + break; + } + if (!already_defined) +diff --git a/protoc-c/c_message.h b/protoc-c/c_message.h +index ea1c3ab..e90782b 100644 +--- a/protoc-c/c_message.h ++++ b/protoc-c/c_message.h +@@ -137,7 +137,6 @@ class MessageGenerator { + std::unique_ptr<std::unique_ptr<EnumGenerator>[]> enum_generators_; + std::unique_ptr<std::unique_ptr<ExtensionGenerator>[]> extension_generators_; + +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MessageGenerator); + }; + + } // namespace c +diff --git a/protoc-c/c_message_field.h b/protoc-c/c_message_field.h +index 39b8d99..42efe36 100644 +--- a/protoc-c/c_message_field.h ++++ b/protoc-c/c_message_field.h +@@ -83,9 +83,6 @@ class MessageFieldGenerator : public FieldGenerator { + std::string GetDefaultValue(void) const; + void GenerateStaticInit(io::Printer* printer) const; + +- private: +- +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MessageFieldGenerator); + }; + + +diff --git a/protoc-c/c_primitive_field.cc b/protoc-c/c_primitive_field.cc +index 6990893..d5a7b60 100644 +--- a/protoc-c/c_primitive_field.cc ++++ b/protoc-c/c_primitive_field.cc +@@ -99,7 +99,7 @@ void PrimitiveFieldGenerator::GenerateStructMembers(io::Printer* printer) const + case FieldDescriptor::TYPE_STRING : + case FieldDescriptor::TYPE_BYTES : + case FieldDescriptor::TYPE_GROUP : +- case FieldDescriptor::TYPE_MESSAGE : GOOGLE_LOG(FATAL) << "not a primitive type"; break; ++ case FieldDescriptor::TYPE_MESSAGE : ABSL_LOG(FATAL) << "not a primitive type"; break; + + // No default because we want the compiler to complain if any new + // types are added. +@@ -143,7 +143,7 @@ std::string PrimitiveFieldGenerator::GetDefaultValue() const + case FieldDescriptor::CPPTYPE_BOOL: + return descriptor_->default_value_bool() ? "1" : "0"; + default: +- GOOGLE_LOG(DFATAL) << "unexpected CPPTYPE in c_primitive_field"; ++ ABSL_LOG(FATAL) << "unexpected CPPTYPE in c_primitive_field"; + return "UNEXPECTED_CPPTYPE"; + } + } +@@ -197,7 +197,7 @@ void PrimitiveFieldGenerator::GenerateDescriptorInitializer(io::Printer* printer + case FieldDescriptor::TYPE_STRING : + case FieldDescriptor::TYPE_BYTES : + case FieldDescriptor::TYPE_GROUP : +- case FieldDescriptor::TYPE_MESSAGE : GOOGLE_LOG(FATAL) << "not a primitive type"; break; ++ case FieldDescriptor::TYPE_MESSAGE : ABSL_LOG(FATAL) << "not a primitive type"; break; + + // No default because we want the compiler to complain if any new + // types are added. +diff --git a/protoc-c/c_primitive_field.h b/protoc-c/c_primitive_field.h +index a9eb893..d2bb724 100644 +--- a/protoc-c/c_primitive_field.h ++++ b/protoc-c/c_primitive_field.h +@@ -83,9 +83,6 @@ class PrimitiveFieldGenerator : public FieldGenerator { + std::string GetDefaultValue(void) const; + void GenerateStaticInit(io::Printer* printer) const; + +- private: +- +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(PrimitiveFieldGenerator); + }; + + } // namespace c +diff --git a/protoc-c/c_service.h b/protoc-c/c_service.h +index 27125a6..4737ff3 100644 +--- a/protoc-c/c_service.h ++++ b/protoc-c/c_service.h +@@ -101,7 +101,6 @@ class ServiceGenerator { + const ServiceDescriptor* descriptor_; + std::map<std::string, std::string> vars_; + +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ServiceGenerator); + }; + + } // namespace c +diff --git a/protoc-c/c_string_field.h b/protoc-c/c_string_field.h +index 513cea7..ba258e4 100644 +--- a/protoc-c/c_string_field.h ++++ b/protoc-c/c_string_field.h +@@ -88,7 +88,6 @@ class StringFieldGenerator : public FieldGenerator { + private: + std::map<std::string, std::string> variables_; + +- GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(StringFieldGenerator); + }; + + +-- +2.34.1 + diff --git a/meta-oe/recipes-devtools/protobuf/protobuf-c_1.4.1.bb b/meta-oe/recipes-devtools/protobuf/protobuf-c_1.4.1.bb index d724287d6..bdaf43a54 100644 --- a/meta-oe/recipes-devtools/protobuf/protobuf-c_1.4.1.bb +++ b/meta-oe/recipes-devtools/protobuf/protobuf-c_1.4.1.bb @@ -12,7 +12,10 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=9f725889e0d77383e26cb42b0b62cea2" DEPENDS = "protobuf-native protobuf" -SRC_URI = "git://github.com/protobuf-c/protobuf-c.git;branch=master;protocol=https" +SRC_URI = "git://github.com/protobuf-c/protobuf-c.git;branch=master;protocol=https \ + file://0001-add-support-of-protobuf-4.22.x.patch \ + " + SRCREV = "abc67a11c6db271bedbb9f58be85d6f4e2ea8389" S = "${WORKDIR}/git"