From 0f0618f13f764427bd55921e8a3cb7469984391b Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Mon, 9 Dec 2019 10:28:41 +0100 Subject: Updated workaround for mzbz#1601707, updated build config --- firefox-mozconfig | 2 - firefox.spec | 49 ++++++++------ ...round_dom_indexdb_actorsparent_allignment.patch | 76 +++++++++++++++++----- 3 files changed, 88 insertions(+), 39 deletions(-) diff --git a/firefox-mozconfig b/firefox-mozconfig index 78aa1da..3605a29 100644 --- a/firefox-mozconfig +++ b/firefox-mozconfig @@ -1,7 +1,5 @@ . $topsrcdir/browser/config/mozconfig -ac_add_options --prefix="$PREFIX" -ac_add_options --libdir="$LIBDIR" ac_add_options --with-system-zlib ac_add_options --with-system-bz2 ac_add_options --disable-strip diff --git a/firefox.spec b/firefox.spec index 55f7cbf..4daca71 100644 --- a/firefox.spec +++ b/firefox.spec @@ -86,11 +86,15 @@ ExcludeArch: s390x %global pre_tag .clang %global build_with_pgo 0 %endif +%if %{build_with_asan} +%global pre_tag .asan +%global build_with_pgo 0 +%endif Summary: Mozilla Firefox Web browser Name: firefox Version: 71.0 -Release: 12%{?pre_tag}%{?dist} +Release: 13%{?pre_tag}%{?dist} URL: https://www.mozilla.org/firefox/ License: MPLv1.1 or GPLv2+ or LGPLv2+ Source0: https://archive.mozilla.org/pub/firefox/releases/%{version}%{?pre_version}/source/firefox-%{version}%{?pre_version}.source.tar.xz @@ -378,6 +382,9 @@ echo "ac_add_options --enable-official-branding" >> .mozconfig %{__cp} %{SOURCE24} mozilla-api-key %{__cp} %{SOURCE27} google-api-key +echo "ac_add_options --prefix=\"%{_prefix}\"" >> .mozconfig +echo "ac_add_options --libdir=\"%{_libdir}\"" >> .mozconfig + %if %{?system_nss} echo "ac_add_options --with-system-nspr" >> .mozconfig echo "ac_add_options --with-system-nss" >> .mozconfig @@ -547,30 +554,27 @@ export RUSTFLAGS="-Cdebuginfo=0" %endif %if %{build_with_asan} MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -fsanitize=address -Dxmalloc=myxmalloc" -MOZ_LINK_FLAGS="$MOZ_LINK_FLAGS -fsanitize=address" +MOZ_LINK_FLAGS="$MOZ_LINK_FLAGS -fsanitize=address -ldl" %endif %if !%{build_with_clang} -export CFLAGS=$MOZ_OPT_FLAGS -export CXXFLAGS=$MOZ_OPT_FLAGS -export LDFLAGS=$MOZ_LINK_FLAGS +echo "export CFLAGS=\"$MOZ_OPT_FLAGS\"" >> .mozconfig +echo "export CXXFLAGS=\"$MOZ_OPT_FLAGS\"" >> .mozconfig +echo "export LDFLAGS=\"$MOZ_LINK_FLAGS\"" >> .mozconfig %endif -export PREFIX='%{_prefix}' -export LIBDIR='%{_libdir}' - %if 0%{?build_with_clang} -export LLVM_PROFDATA="llvm-profdata" -export AR="llvm-ar" -export NM="llvm-nm" -export RANLIB="llvm-ranlib" -echo "ac_add_options --enable-linker=lld" >> .mozconfig +echo "export LLVM_PROFDATA=\"llvm-profdata\"" >> .mozconfig +echo "export AR=\"llvm-ar\"" >> .mozconfig +echo "export NM=\"llvm-nm\"" >> .mozconfig +echo "export RANLIB=\"llvm-ranlib\"" >> .mozconfig +echo "export --enable-linker=lld" >> .mozconfig %else -export CC=gcc -export CXX=g++ -export AR="gcc-ar" -export NM="gcc-nm" -export RANLIB="gcc-ranlib" +echo "export CC=gcc" >> .mozconfig +echo "export CXX=g++" >> .mozconfig +echo "export AR=\"gcc-ar\"" >> .mozconfig +echo "export NM=\"gcc-nm\"" >> .mozconfig +echo "export RANLIB=\"gcc-ranlib\"" >> .mozconfig %endif %if 0%{?build_with_pgo} echo "ac_add_options MOZ_PGO=1" >> .mozconfig @@ -593,9 +597,9 @@ MOZ_SMP_FLAGS=-j1 [ "$RPM_BUILD_NCPUS" -ge 8 ] && MOZ_SMP_FLAGS=-j8 %endif -export MOZ_MAKE_FLAGS="$MOZ_SMP_FLAGS" -export MOZ_SERVICES_SYNC="1" -export STRIP=/bin/true +echo "export MOZ_MAKE_FLAGS=\"$MOZ_SMP_FLAGS\"" >> .mozconfig +echo "export MOZ_SERVICES_SYNC=1" >> .mozconfig +echo "export STRIP=/bin/true" >> .mozconfig %if 0%{?build_with_pgo} %if 0%{?pgo_wayland} xvfb-run mutter --wayland --nested & @@ -925,6 +929,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : #--------------------------------------------------------------------- %changelog +* Mon Dec 9 2019 Martin Stransky - 71.0-13 +- Updated workaround for mzbz#1601707 + * Fri Dec 6 2019 Martin Stransky - 71.0-12 - Clang test build, should fix extension breakage diff --git a/workaround_dom_indexdb_actorsparent_allignment.patch b/workaround_dom_indexdb_actorsparent_allignment.patch index e651efc..7002c6d 100644 --- a/workaround_dom_indexdb_actorsparent_allignment.patch +++ b/workaround_dom_indexdb_actorsparent_allignment.patch @@ -1,15 +1,7 @@ -Workaround GCC/Clang6 not supporting class-temporary#6.7 [1] -Bugs: -+ https://bugzilla.mozilla.org/show_bug.cgi?id=1601707 -+ http://gcc.gnu.org/PR92831 -+ https://bugzilla.redhat.com/show_bug.cgi?id=1779082 - -[1] http://eel.is/c++draft/class.temporary#6.7 - -diff --git a/dom/indexedDB/ActorsParent.cpp b/dom/indexedDB/ActorsParent.cpp ---- a/dom/indexedDB/ActorsParent.cpp -+++ b/dom/indexedDB/ActorsParent.cpp -@@ -24311,11 +24311,11 @@ +diff -up firefox-71.0/dom/indexedDB/ActorsParent.cpp.gcc-workaround firefox-71.0/dom/indexedDB/ActorsParent.cpp +--- firefox-71.0/dom/indexedDB/ActorsParent.cpp.gcc-workaround 2019-12-02 13:22:58.000000000 +0100 ++++ firefox-71.0/dom/indexedDB/ActorsParent.cpp 2019-12-08 21:52:54.449199120 +0100 +@@ -24311,11 +24311,11 @@ nsresult ObjectStoreAddOrPutRequestOp::D // if we allow overwrite or not. By not allowing overwrite we raise // detectable errors rather than corrupting data. DatabaseConnection::CachedStatement stmt; @@ -25,7 +17,59 @@ diff --git a/dom/indexedDB/ActorsParent.cpp b/dom/indexedDB/ActorsParent.cpp NS_LITERAL_CSTRING("INTO object_data " "(object_store_id, key, file_ids, data) " "VALUES (:") + -@@ -26076,9 +26076,6 @@ +@@ -25869,11 +25869,8 @@ void Cursor::OpenOp::PrepareIndexKeyCond + } + } + +- const auto& comparisonChar = +- isIncreasingOrder ? NS_LITERAL_CSTRING(">") : NS_LITERAL_CSTRING("<"); +- + mCursor->mContinueToQuery = +- aQueryStart + NS_LITERAL_CSTRING(" AND sort_column ") + comparisonChar + ++ aQueryStart + NS_LITERAL_CSTRING(" AND sort_column ") + (isIncreasingOrder ? NS_LITERAL_CSTRING(">") : NS_LITERAL_CSTRING("<")) + + NS_LITERAL_CSTRING("= :") + kStmtParamNameCurrentKey; + + switch (mCursor->mDirection) { +@@ -25881,11 +25878,11 @@ void Cursor::OpenOp::PrepareIndexKeyCond + case IDBCursor::PREV: + mCursor->mContinueQuery = + aQueryStart + NS_LITERAL_CSTRING(" AND sort_column ") + +- comparisonChar + NS_LITERAL_CSTRING("= :") + ++ (isIncreasingOrder ? NS_LITERAL_CSTRING(">") : NS_LITERAL_CSTRING("<")) + NS_LITERAL_CSTRING("= :") + + kStmtParamNameCurrentKey + NS_LITERAL_CSTRING(" AND ( sort_column ") + +- comparisonChar + NS_LITERAL_CSTRING(" :") + kStmtParamNameCurrentKey + ++ (isIncreasingOrder ? NS_LITERAL_CSTRING(">") : NS_LITERAL_CSTRING("<")) + NS_LITERAL_CSTRING(" :") + kStmtParamNameCurrentKey + + NS_LITERAL_CSTRING(" OR ") + aObjectDataKeyPrefix + +- NS_LITERAL_CSTRING("object_data_key ") + comparisonChar + ++ NS_LITERAL_CSTRING("object_data_key ") + (isIncreasingOrder ? NS_LITERAL_CSTRING(">") : NS_LITERAL_CSTRING("<")) + + NS_LITERAL_CSTRING(" :") + kStmtParamNameObjectStorePosition + + NS_LITERAL_CSTRING(" ) "); + +@@ -25896,12 +25893,12 @@ void Cursor::OpenOp::PrepareIndexKeyCond + "(sort_column == :") + + kStmtParamNameCurrentKey + NS_LITERAL_CSTRING(" AND ") + + aObjectDataKeyPrefix + NS_LITERAL_CSTRING("object_data_key ") + +- comparisonChar + NS_LITERAL_CSTRING("= :") + ++ (isIncreasingOrder ? NS_LITERAL_CSTRING(">") : NS_LITERAL_CSTRING("<")) + NS_LITERAL_CSTRING("= :") + + kStmtParamNameObjectStorePosition + + NS_LITERAL_CSTRING( + ") OR " + "sort_column ") + +- comparisonChar + NS_LITERAL_CSTRING(" :") + kStmtParamNameCurrentKey + ++ (isIncreasingOrder ? NS_LITERAL_CSTRING(">") : NS_LITERAL_CSTRING("<")) + NS_LITERAL_CSTRING(" :") + kStmtParamNameCurrentKey + + NS_LITERAL_CSTRING(")"); + break; + +@@ -25909,7 +25906,7 @@ void Cursor::OpenOp::PrepareIndexKeyCond + case IDBCursor::PREV_UNIQUE: + mCursor->mContinueQuery = + aQueryStart + NS_LITERAL_CSTRING(" AND sort_column ") + +- comparisonChar + NS_LITERAL_CSTRING(" :") + kStmtParamNameCurrentKey; ++ (isIncreasingOrder ? NS_LITERAL_CSTRING(">") : NS_LITERAL_CSTRING("<")) + NS_LITERAL_CSTRING(" :") + kStmtParamNameCurrentKey; + break; + + default: +@@ -26076,9 +26073,6 @@ nsresult Cursor::OpenOp::DoIndexDatabase const bool usingKeyRange = mOptionalKeyRange.isSome(); @@ -35,7 +79,7 @@ diff --git a/dom/indexedDB/ActorsParent.cpp b/dom/indexedDB/ActorsParent.cpp NS_NAMED_LITERAL_CSTRING(sortColumn, "sort_column"); -@@ -26099,7 +26096,9 @@ +@@ -26099,7 +26093,9 @@ nsresult Cursor::OpenOp::DoIndexDatabase "object_data.file_ids, " "object_data.data " "FROM ") + @@ -46,7 +90,7 @@ diff --git a/dom/indexedDB/ActorsParent.cpp b/dom/indexedDB/ActorsParent.cpp NS_LITERAL_CSTRING( " AS index_table " "JOIN object_data " -@@ -26198,9 +26197,6 @@ +@@ -26198,9 +26194,6 @@ nsresult Cursor::OpenOp::DoIndexKeyDatab const bool usingKeyRange = mOptionalKeyRange.isSome(); @@ -56,7 +100,7 @@ diff --git a/dom/indexedDB/ActorsParent.cpp b/dom/indexedDB/ActorsParent.cpp NS_NAMED_LITERAL_CSTRING(sortColumn, "sort_column"); -@@ -26218,7 +26214,10 @@ +@@ -26218,7 +26211,10 @@ nsresult Cursor::OpenOp::DoIndexKeyDatab NS_LITERAL_CSTRING( "object_data_key " " FROM ") + -- cgit