summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2024-06-14 09:18:18 +0100
committerSam James <sam@gentoo.org>2024-06-14 09:18:18 +0100
commit410197e34e6a385937b0d00898916d6dd11d0e73 (patch)
tree35c0f9fc1cf59d75aaaa4a74abbec46ec3596d04 /dev-libs
parentdev-db/mysql: Stabilize 8.0.36 amd64, #919815 (diff)
downloadgentoo-410197e34e6a385937b0d00898916d6dd11d0e73.tar.gz
gentoo-410197e34e6a385937b0d00898916d6dd11d0e73.tar.bz2
gentoo-410197e34e6a385937b0d00898916d6dd11d0e73.zip
dev-libs/protobuf: backport template instantiation fix
Closes: https://bugs.gentoo.org/917046 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-libs')
-rw-r--r--dev-libs/protobuf/files/protobuf-23.3-messages_lite-template-instances.patch66
-rw-r--r--dev-libs/protobuf/protobuf-23.3-r4.ebuild (renamed from dev-libs/protobuf/protobuf-23.3-r3.ebuild)1
2 files changed, 67 insertions, 0 deletions
diff --git a/dev-libs/protobuf/files/protobuf-23.3-messages_lite-template-instances.patch b/dev-libs/protobuf/files/protobuf-23.3-messages_lite-template-instances.patch
new file mode 100644
index 000000000000..3869ad95993c
--- /dev/null
+++ b/dev-libs/protobuf/files/protobuf-23.3-messages_lite-template-instances.patch
@@ -0,0 +1,66 @@
+https://bugs.gentoo.org/917046
+https://github.com/protocolbuffers/protobuf/commit/e6f8b9d1026996f6463d4f014d7760256b757227
+
+From e6f8b9d1026996f6463d4f014d7760256b757227 Mon Sep 17 00:00:00 2001
+From: Protobuf Team Bot <protobuf-github-bot@google.com>
+Date: Wed, 8 Nov 2023 09:20:10 -0800
+Subject: [PATCH] message_lite.h: Use PROTOBUF_EXPORT_TEMPLATE_DECLARE with
+ extern template
+
+Export extern templates in message_lite.h to avoid missing symbols when
+linking protobuf-lite.so.
+
+PiperOrigin-RevId: 580556084
+--- a/src/google/protobuf/message_lite.h
++++ b/src/google/protobuf/message_lite.h
+@@ -616,22 +616,22 @@ namespace internal {
+ template <bool alias>
+ bool MergeFromImpl(absl::string_view input, MessageLite* msg,
+ MessageLite::ParseFlags parse_flags);
+-extern template bool MergeFromImpl<false>(absl::string_view input,
+- MessageLite* msg,
+- MessageLite::ParseFlags parse_flags);
+-extern template bool MergeFromImpl<true>(absl::string_view input,
+- MessageLite* msg,
+- MessageLite::ParseFlags parse_flags);
++extern template PROTOBUF_EXPORT_TEMPLATE_DECLARE bool MergeFromImpl<false>(
++ absl::string_view input, MessageLite* msg,
++ MessageLite::ParseFlags parse_flags);
++extern template PROTOBUF_EXPORT_TEMPLATE_DECLARE bool MergeFromImpl<true>(
++ absl::string_view input, MessageLite* msg,
++ MessageLite::ParseFlags parse_flags);
+
+ template <bool alias>
+ bool MergeFromImpl(io::ZeroCopyInputStream* input, MessageLite* msg,
+ MessageLite::ParseFlags parse_flags);
+-extern template bool MergeFromImpl<false>(io::ZeroCopyInputStream* input,
+- MessageLite* msg,
+- MessageLite::ParseFlags parse_flags);
+-extern template bool MergeFromImpl<true>(io::ZeroCopyInputStream* input,
+- MessageLite* msg,
+- MessageLite::ParseFlags parse_flags);
++extern template PROTOBUF_EXPORT_TEMPLATE_DECLARE bool MergeFromImpl<false>(
++ io::ZeroCopyInputStream* input, MessageLite* msg,
++ MessageLite::ParseFlags parse_flags);
++extern template PROTOBUF_EXPORT_TEMPLATE_DECLARE bool MergeFromImpl<true>(
++ io::ZeroCopyInputStream* input, MessageLite* msg,
++ MessageLite::ParseFlags parse_flags);
+
+ struct BoundedZCIS {
+ io::ZeroCopyInputStream* zcis;
+@@ -641,10 +641,10 @@ struct BoundedZCIS {
+ template <bool alias>
+ bool MergeFromImpl(BoundedZCIS input, MessageLite* msg,
+ MessageLite::ParseFlags parse_flags);
+-extern template bool MergeFromImpl<false>(BoundedZCIS input, MessageLite* msg,
+- MessageLite::ParseFlags parse_flags);
+-extern template bool MergeFromImpl<true>(BoundedZCIS input, MessageLite* msg,
+- MessageLite::ParseFlags parse_flags);
++extern template PROTOBUF_EXPORT_TEMPLATE_DECLARE bool MergeFromImpl<false>(
++ BoundedZCIS input, MessageLite* msg, MessageLite::ParseFlags parse_flags);
++extern template PROTOBUF_EXPORT_TEMPLATE_DECLARE bool MergeFromImpl<true>(
++ BoundedZCIS input, MessageLite* msg, MessageLite::ParseFlags parse_flags);
+
+ template <typename T>
+ struct SourceWrapper;
+
diff --git a/dev-libs/protobuf/protobuf-23.3-r3.ebuild b/dev-libs/protobuf/protobuf-23.3-r4.ebuild
index 6ef5f8f482f1..f44655dc1c74 100644
--- a/dev-libs/protobuf/protobuf-23.3-r3.ebuild
+++ b/dev-libs/protobuf/protobuf-23.3-r4.ebuild
@@ -40,6 +40,7 @@ RDEPEND="
PATCHES=(
"${FILESDIR}/${PN}-23.3-disable-32-bit-tests.patch"
"${FILESDIR}/${PN}-23.3-static_assert-failure.patch"
+ "${FILESDIR}/${PN}-23.3-messages_lite-template-instances.patch"
)
DOCS=( CONTRIBUTORS.txt README.md )