summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Stransky <stransky@redhat.com>2022-03-04 12:11:14 +0100
committerMartin Stransky <stransky@redhat.com>2022-03-04 12:11:14 +0100
commitb9596148e42fec01e7dcd8177e2f3a206134bb08 (patch)
tree5efc8d94701b28608e8738ad443dc195879e26b8
parentAdded missing files, updated to build2 (diff)
downloadlibrewolf-fedora-ff-b9596148e42fec01e7dcd8177e2f3a206134bb08.tar.gz
librewolf-fedora-ff-b9596148e42fec01e7dcd8177e2f3a206134bb08.tar.bz2
librewolf-fedora-ff-b9596148e42fec01e7dcd8177e2f3a206134bb08.zip
Added fix for gcc12 build errors
-rw-r--r--0001-GLIBCXX-fix-for-GCC-12.patch44
-rw-r--r--firefox.spec2
2 files changed, 46 insertions, 0 deletions
diff --git a/0001-GLIBCXX-fix-for-GCC-12.patch b/0001-GLIBCXX-fix-for-GCC-12.patch
new file mode 100644
index 0000000..37d6f50
--- /dev/null
+++ b/0001-GLIBCXX-fix-for-GCC-12.patch
@@ -0,0 +1,44 @@
+From efd5bc0715e5477318be95a76811cda0a89e8289 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= <emilio@crisal.io>
+Date: Fri, 4 Mar 2022 12:00:26 +0100
+Subject: [PATCH] GLIBCXX fix for GCC 12?
+
+---
+ build/unix/stdc++compat/stdc++compat.cpp | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+diff --git a/build/unix/stdc++compat/stdc++compat.cpp b/build/unix/stdc++compat/stdc++compat.cpp
+index 0180f6bcfa998..8d7a542ff11f0 100644
+--- a/build/unix/stdc++compat/stdc++compat.cpp
++++ b/build/unix/stdc++compat/stdc++compat.cpp
+@@ -24,6 +24,7 @@
+ GLIBCXX_3.4.27 is from gcc 10
+ GLIBCXX_3.4.28 is from gcc 10
+ GLIBCXX_3.4.29 is from gcc 11
++ GLIBCXX_3.4.30 is from gcc 12
+
+ This file adds the necessary compatibility tricks to avoid symbols with
+ version GLIBCXX_3.4.20 and bigger, keeping binary compatibility with
+@@ -69,6 +70,19 @@ void __attribute__((weak)) __throw_bad_array_new_length() { MOZ_CRASH(); }
+ } // namespace std
+ #endif
+
++#if _GLIBCXX_RELEASE >= 12
++namespace std {
++
++/* This avoids the GLIBCXX_3.4.30 symbol version. */
++void __attribute__((weak))
++__glibcxx_assert_fail(const char* __file, int __line, const char* __function,
++ const char* __condition) {
++ MOZ_CRASH();
++}
++
++} // namespace std
++#endif
++
+ /* While we generally don't build with exceptions, we have some host tools
+ * that do use them. libstdc++ from GCC 5.0 added exception constructors with
+ * char const* argument. Older versions only have a constructor with
+--
+2.35.1
+
diff --git a/firefox.spec b/firefox.spec
index 7c54108..7ef1065 100644
--- a/firefox.spec
+++ b/firefox.spec
@@ -224,6 +224,7 @@ Patch66: D139078.diff
Patch67: D139088.diff
Patch68: D139703.diff
Patch69: D139704.diff
+Patch70: 0001-GLIBCXX-fix-for-GCC-12.patch
# Test patches
# Generate without context by
@@ -477,6 +478,7 @@ This package contains results of tests executed during build.
%patch67 -p1 -b .D139088
%patch68 -p1 -b .D139703
%patch69 -p1 -b .D139704
+%patch70 -p1 -b .0001-GLIBCXX-fix-for-GCC-12
# Test patches
#%patch100 -p1 -b .firefox-tests-xpcshell
bgstack15