diff options
Diffstat (limited to 'meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-Lower-init-prio-for-extension-attributes.patch')
-rw-r--r-- | meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-Lower-init-prio-for-extension-attributes.patch | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-Lower-init-prio-for-extension-attributes.patch b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-Lower-init-prio-for-extension-attributes.patch deleted file mode 100644 index a1200e01c1..0000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/0001-Lower-init-prio-for-extension-attributes.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 8ff34dbff1eac612326b492d0b2cb93901ad7e2b Mon Sep 17 00:00:00 2001 -From: Jani Nurminen <jani.nurminen@windriver.com> -Date: Fri, 24 Sep 2021 09:56:11 +0200 -Subject: [PATCH] Lower init prio for extension attributes -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Added PROTOBUF_EXTENSION_ATTRIBUTE_INIT_PRIORITY in -code generation for extension attributes. -It has lower prio than PROTOBUF_ATTRIBUTE_INIT_PRIORITY to -ensure that extension attributes are initialized after -other attribute. -This is needed in some applications to avoid segmentation fault. - -Reported by Karl-Herman Näslund. - -Signed-off-by: Jani Nurminen <jani.nurminen@windriver.com> - -Rebase on master - -Signed-off-by: He Zhe <zhe.he@windriver.com> ---- - src/google/protobuf/compiler/cpp/cpp_extension.cc | 2 +- - src/google/protobuf/port_def.inc | 12 ++++++++++++ - src/google/protobuf/port_undef.inc | 1 + - 3 files changed, 14 insertions(+), 1 deletion(-) - -diff --git a/src/google/protobuf/compiler/cpp/cpp_extension.cc b/src/google/protobuf/compiler/cpp/cpp_extension.cc -index 8604da5f2..984345ebe 100644 ---- a/src/google/protobuf/compiler/cpp/cpp_extension.cc -+++ b/src/google/protobuf/compiler/cpp/cpp_extension.cc -@@ -164,7 +164,7 @@ void ExtensionGenerator::GenerateDefinition(io::Printer* printer) { - } - - format( -- "PROTOBUF_ATTRIBUTE_INIT_PRIORITY " -+ "PROTOBUF_EXTENSION_ATTRIBUTE_INIT_PRIORITY " - "::$proto_ns$::internal::ExtensionIdentifier< $extendee$,\n" - " ::$proto_ns$::internal::$type_traits$, $field_type$, $packed$ >\n" - " $scoped_name$($constant_name$, $1$);\n", -diff --git a/src/google/protobuf/port_def.inc b/src/google/protobuf/port_def.inc -index 7e9119112..a5117090d 100644 ---- a/src/google/protobuf/port_def.inc -+++ b/src/google/protobuf/port_def.inc -@@ -614,6 +614,18 @@ - #define PROTOBUF_ATTRIBUTE_INIT_PRIORITY - #endif - -+// Some embedded systems get a segmentation fault if extension attributes are -+// initialized with higher or equal priority as other attributes. This gives -+// extension attributes high priority, but lower than other attributes. -+#ifdef PROTOBUF_EXTENSION_ATTRIBUTE_INIT_PRIORITY -+#error PROTOBUF_EXTENSION_ATTRIBUTE_INIT_PRIORITY was previously defined -+#endif -+#if PROTOBUF_GNUC_MIN(3, 0) && (!defined(__APPLE__) || defined(__clang__)) && !((defined(sun) || defined(__sun)) && (defined(__SVR4) || defined(__svr4__))) -+#define PROTOBUF_EXTENSION_ATTRIBUTE_INIT_PRIORITY __attribute__((init_priority((103)))) -+#else -+#define PROTOBUF_EXTENSION_ATTRIBUTE_INIT_PRIORITY -+#endif -+ - #ifdef PROTOBUF_PRAGMA_INIT_SEG - #error PROTOBUF_PRAGMA_INIT_SEG was previously defined - #endif -diff --git a/src/google/protobuf/port_undef.inc b/src/google/protobuf/port_undef.inc -index ccc5daf56..2b28f3a31 100644 ---- a/src/google/protobuf/port_undef.inc -+++ b/src/google/protobuf/port_undef.inc -@@ -83,6 +83,7 @@ - #undef PROTOBUF_HAVE_ATTRIBUTE_WEAK - #undef PROTOBUF_ATTRIBUTE_NO_DESTROY - #undef PROTOBUF_ATTRIBUTE_INIT_PRIORITY -+#undef PROTOBUF_EXTENSION_ATTRIBUTE_INIT_PRIORITY - #undef PROTOBUF_PRAGMA_INIT_SEG - #undef PROTOBUF_ASAN - #undef PROTOBUF_MSAN --- -2.26.2 - |