]> git.pld-linux.org Git - packages/firefox.git/commitdiff
upstream (protobuf) fix for build failure on x86 32-bit
authorJan Palus <atler@pld-linux.org>
Tue, 23 Aug 2022 22:49:19 +0000 (00:49 +0200)
committerJan Palus <atler@pld-linux.org>
Tue, 23 Aug 2022 22:49:59 +0000 (00:49 +0200)
firefox.spec
protobuf-alignment.patch [new file with mode: 0644]

index 9d9aad30cd32fae3b6e8d85c7f06cb59d6fd59f2..390b1065e0aa52afe4fb3982838295e86090f558 100644 (file)
@@ -264,6 +264,7 @@ Patch8:             %{name}-system-virtualenv.patch
 Patch9:                %{name}-Disable-Firefox-Health-Report.patch
 Patch10:       system-cairo.patch
 Patch11:       glibc-double.patch
+Patch12:       protobuf-alignment.patch
 URL:           https://www.mozilla.org/firefox/
 BuildRequires: OpenGL-devel
 BuildRequires: alsa-lib-devel
@@ -2126,6 +2127,9 @@ unpack() {
 %patch9 -p1
 %{?with_system_cairo:%patch10 -p1}
 %patch11 -p1
+cd toolkit/components/protobuf
+%patch12 -p1
+cd ../../..
 
 %if %{with pgo}
 %{__sed} -i -e 's@__BROWSER_PATH__@"../../dist/bin/firefox-bin"@' build/automation.py.in
diff --git a/protobuf-alignment.patch b/protobuf-alignment.patch
new file mode 100644 (file)
index 0000000..a7a6424
--- /dev/null
@@ -0,0 +1,34 @@
+From db1dab5f8d6b521ef915fb42bcb08eccb94c9b09 Mon Sep 17 00:00:00 2001
+From: Yash Tibrewal <yashkt@google.com>
+Date: Thu, 21 Jul 2022 22:04:41 +0000
+Subject: [PATCH] Reduce the required alignment of ArenaString from 8 to 4
+
+---
+ src/google/protobuf/arenastring.cc | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/src/google/protobuf/arenastring.cc b/src/google/protobuf/arenastring.cc
+index 3887c940a3..af0c9df6bc 100644
+--- a/src/google/protobuf/arenastring.cc
++++ b/src/google/protobuf/arenastring.cc
+@@ -50,7 +50,8 @@ namespace internal {
+ namespace  {
+-// Enforce that allocated data aligns to at least 8 bytes, and that
++// TaggedStringPtr::Flags uses the lower 2 bits as tags.
++// Enforce that allocated data aligns to at least 4 bytes, and that
+ // the alignment of the global const string value does as well.
+ // The alignment guaranteed by `new std::string` depends on both:
+ // - new align = __STDCPP_DEFAULT_NEW_ALIGNMENT__ / max_align_t
+@@ -64,8 +65,8 @@ constexpr size_t kNewAlign = alignof(std::max_align_t);
+ #endif
+ constexpr size_t kStringAlign = alignof(std::string);
+-static_assert((kStringAlign > kNewAlign ? kStringAlign : kNewAlign) >= 8, "");
+-static_assert(alignof(ExplicitlyConstructedArenaString) >= 8, "");
++static_assert((kStringAlign > kNewAlign ? kStringAlign : kNewAlign) >= 4, "");
++static_assert(alignof(ExplicitlyConstructedArenaString) >= 4, "");
+ }  // namespace
This page took 0.399791 seconds and 4 git commands to generate.