From 1886b3b7c99b853751a63d66d93cc4cdcea678cd2bc82190e216b93c760f0e03 Mon Sep 17 00:00:00 2001 From: Wolfgang Rosenauer Date: Tue, 7 Mar 2023 10:01:14 +0000 Subject: [PATCH 1/2] Accepting request 1069880 from home:marxin:branches:mozilla:Factory - Cherry-pick upstream changes for GCC 13 in gcc13-fix.patch. OBS-URL: https://build.opensuse.org/request/show/1069880 OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox?expand=0&rev=1042 --- MozillaFirefox.changes | 5 + MozillaFirefox.spec | 1 + gcc13-fix.patch | 225 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 231 insertions(+) create mode 100644 gcc13-fix.patch diff --git a/MozillaFirefox.changes b/MozillaFirefox.changes index 5fe6036..0640fc7 100644 --- a/MozillaFirefox.changes +++ b/MozillaFirefox.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Tue Mar 7 09:40:11 UTC 2023 - Martin Liška + +- Cherry-pick upstream changes for GCC 13 in gcc13-fix.patch. + ------------------------------------------------------------------- Mon Mar 6 20:09:41 UTC 2023 - Andreas Schwab diff --git a/MozillaFirefox.spec b/MozillaFirefox.spec index e2c1c33..de9e60c 100644 --- a/MozillaFirefox.spec +++ b/MozillaFirefox.spec @@ -232,6 +232,7 @@ Patch28: mozilla-bmo1810584.patch # Firefox/browser Patch101: firefox-kde.patch Patch102: firefox-branded-icons.patch +Patch103: gcc13-fix.patch %endif BuildRoot: %{_tmppath}/%{name}-%{version}-build Requires(post): coreutils shared-mime-info desktop-file-utils diff --git a/gcc13-fix.patch b/gcc13-fix.patch new file mode 100644 index 0000000..fe200ec --- /dev/null +++ b/gcc13-fix.patch @@ -0,0 +1,225 @@ +diff --git a/tools/profiler/core/platform.cpp b/tools/profiler/core/platform.cpp +--- a/tools/profiler/core/platform.cpp ++++ b/tools/profiler/core/platform.cpp +@@ -1176,11 +1176,11 @@ + if (!profiledThreadData) { + // This thread was not profiled, continue with the next one. + continue; + } + ThreadRegistry::OffThreadRef::RWFromAnyThreadWithLock lockedThreadData = +- offThreadRef.LockedRWFromAnyThread(); ++ offThreadRef.GetLockedRWFromAnyThread(); + MOZ_RELEASE_ASSERT(array.append(ProfiledThreadListElement{ + profiledThreadData->Info().RegisterTime(), + lockedThreadData->GetJSContext(), profiledThreadData})); + } + +@@ -4208,11 +4208,11 @@ + ProfileBufferEntry::Kind::RunningTimes, runningTimesDiff); + } + + if (threadStackSampling) { + ThreadRegistry::OffThreadRef::RWFromAnyThreadWithLock +- lockedThreadData = offThreadRef.LockedRWFromAnyThread(); ++ lockedThreadData = offThreadRef.GetLockedRWFromAnyThread(); + // Suspend the thread and collect its stack data in the local + // buffer. + mSampler.SuspendAndSampleAndResumeThread( + lock, lockedThreadData.DataCRef(), now, + [&](const Registers& aRegs, const TimeStamp& aNow) { +@@ -4922,11 +4922,11 @@ + ThreadProfilingFeatures threadProfilingFeatures = + ActivePS::ProfilingFeaturesForThread( + aLock, aOffThreadRef.UnlockedConstReaderCRef().Info()); + if (threadProfilingFeatures != ThreadProfilingFeatures::NotProfiled) { + ThreadRegistry::OffThreadRef::RWFromAnyThreadWithLock +- lockedRWFromAnyThread = aOffThreadRef.LockedRWFromAnyThread(); ++ lockedRWFromAnyThread = aOffThreadRef.GetLockedRWFromAnyThread(); + + ProfiledThreadData* profiledThreadData = ActivePS::AddLiveProfiledThread( + aLock, MakeUnique( + aOffThreadRef.UnlockedConstReaderCRef().Info())); + lockedRWFromAnyThread->SetProfilingFeaturesAndData( +@@ -5788,11 +5788,11 @@ + + ThreadProfilingFeatures threadProfilingFeatures = + ActivePS::ProfilingFeaturesForThread(aLock, info); + if (threadProfilingFeatures != ThreadProfilingFeatures::NotProfiled) { + ThreadRegistry::OffThreadRef::RWFromAnyThreadWithLock lockedThreadData = +- offThreadRef.LockedRWFromAnyThread(); ++ offThreadRef.GetLockedRWFromAnyThread(); + ProfiledThreadData* profiledThreadData = ActivePS::AddLiveProfiledThread( + aLock, MakeUnique(info)); + lockedThreadData->SetProfilingFeaturesAndData(threadProfilingFeatures, + profiledThreadData, aLock); + lockedThreadData->GetNewCpuTimeInNs(); +@@ -6012,11 +6012,11 @@ + ThreadProfilingFeatures::NotProfiled) { + continue; + } + + ThreadRegistry::OffThreadRef::RWFromAnyThreadWithLock lockedThreadData = +- offThreadRef.LockedRWFromAnyThread(); ++ offThreadRef.GetLockedRWFromAnyThread(); + + lockedThreadData->ClearProfilingFeaturesAndData(aLock); + + if (ActivePS::FeatureJS(aLock)) { + lockedThreadData->StopJSSampling(); +@@ -6355,11 +6355,11 @@ + + // We don't call StopJSSampling() here; there's no point doing that for a JS + // thread that is in the process of disappearing. + + ThreadRegistration::OnThreadRef::RWOnThreadWithLock lockedThreadData = +- aOnThreadRef.LockedRWOnThread(); ++ aOnThreadRef.GetLockedRWOnThread(); + + ProfiledThreadData* profiledThreadData = + lockedThreadData->GetProfiledThreadData(lock); + lockedThreadData->ClearProfilingFeaturesAndData(lock); + +@@ -6876,11 +6876,11 @@ + } + + // The profiler mutex must be locked before the ThreadRegistration's. + PSAutoLock lock; + ThreadRegistration::OnThreadRef::RWOnThreadWithLock lockedThreadData = +- aOnThreadRef.LockedRWOnThread(); ++ aOnThreadRef.GetLockedRWOnThread(); + + if (ProfiledThreadData* profiledThreadData = + lockedThreadData->GetProfiledThreadData(lock); + profiledThreadData && ActivePS::Exists(lock) && + ActivePS::FeatureJS(lock)) { +diff --git a/tools/profiler/public/ProfilerThreadRegistration.h b/tools/profiler/public/ProfilerThreadRegistration.h +--- a/tools/profiler/public/ProfilerThreadRegistration.h ++++ b/tools/profiler/public/ProfilerThreadRegistration.h +@@ -212,18 +212,18 @@ + + LockedRWOnThread& mLockedRWOnThread; + DataLock mDataLock; + }; + +- [[nodiscard]] RWOnThreadWithLock LockedRWOnThread() { ++ [[nodiscard]] RWOnThreadWithLock GetLockedRWOnThread() { + return RWOnThreadWithLock{mThreadRegistration->mData, + mThreadRegistration->mDataMutex}; + } + + template + auto WithLockedRWOnThread(F&& aF) { +- RWOnThreadWithLock lockedData = LockedRWOnThread(); ++ RWOnThreadWithLock lockedData = GetLockedRWOnThread(); + return std::forward(aF)(lockedData.DataRef()); + } + + // This is needed to allow OnThreadPtr::operator-> to return a temporary + // OnThreadRef object, for which `->` must work; Here it provides a pointer +diff --git a/tools/profiler/public/ProfilerThreadRegistry.h b/tools/profiler/public/ProfilerThreadRegistry.h +--- a/tools/profiler/public/ProfilerThreadRegistry.h ++++ b/tools/profiler/public/ProfilerThreadRegistry.h +@@ -175,18 +175,18 @@ + + LockedRWFromAnyThread& mLockedRWFromAnyThread; + ThreadRegistration::DataLock mDataLock; + }; + +- [[nodiscard]] RWFromAnyThreadWithLock LockedRWFromAnyThread() { ++ [[nodiscard]] RWFromAnyThreadWithLock GetLockedRWFromAnyThread() { + return RWFromAnyThreadWithLock{mThreadRegistration->mData, + mThreadRegistration->mDataMutex}; + } + + template + auto WithLockedRWFromAnyThread(F&& aF) { +- RWFromAnyThreadWithLock lockedData = LockedRWFromAnyThread(); ++ RWFromAnyThreadWithLock lockedData = GetLockedRWFromAnyThread(); + return std::forward(aF)(lockedData.DataRef()); + } + + private: + // Only ThreadRegistry should construct an OnThreadRef. +diff --git a/tools/profiler/tests/gtest/GeckoProfiler.cpp b/tools/profiler/tests/gtest/GeckoProfiler.cpp +--- a/tools/profiler/tests/gtest/GeckoProfiler.cpp ++++ b/tools/profiler/tests/gtest/GeckoProfiler.cpp +@@ -620,11 +620,11 @@ + // non-const LockedRWOnThread + + EXPECT_FALSE(TR::IsDataMutexLockedOnCurrentThread()); + { + TR::OnThreadRef::RWOnThreadWithLock rwOnThreadWithLock = +- aOnThreadRef.LockedRWOnThread(); ++ aOnThreadRef.GetLockedRWOnThread(); + EXPECT_TRUE(TR::IsDataMutexLockedOnCurrentThread()); + TestConstLockedRWOnThread(rwOnThreadWithLock.DataCRef(), + beforeRegistration, afterRegistration, + &onStackChar); + TestLockedRWOnThread(rwOnThreadWithLock.DataRef(), beforeRegistration, +@@ -1019,11 +1019,11 @@ + // non-const LockedRWFromAnyThread + + EXPECT_FALSE(TR::IsDataMutexLockedOnCurrentThread()); + { + TRy::OffThreadRef::RWFromAnyThreadWithLock rwFromAnyThreadWithLock = +- aOffThreadRef.LockedRWFromAnyThread(); ++ aOffThreadRef.GetLockedRWFromAnyThread(); + if (profiler_current_thread_id() == testThreadId) { + EXPECT_TRUE(TR::IsDataMutexLockedOnCurrentThread()); + } + TestLockedRWFromAnyThread(rwFromAnyThreadWithLock.DataRef(), + beforeRegistration, afterRegistration, +@@ -1156,11 +1156,11 @@ + aOffThreadRef) { + if (otherThreadLoops % 1000 == 0) { + PR_Sleep(PR_MillisecondsToInterval(1)); + } + TRy::OffThreadRef::RWFromAnyThreadWithLock rwFromAnyThreadWithLock = +- aOffThreadRef.LockedRWFromAnyThread(); ++ aOffThreadRef.GetLockedRWFromAnyThread(); + ++otherThreadReads; + if (otherThreadReads % 1000 == 0) { + PR_Sleep(PR_MillisecondsToInterval(1)); + } + }); + +diff --git a/gfx/2d/Rect.h b/gfx/2d/Rect.h +--- a/gfx/2d/Rect.h ++++ b/gfx/2d/Rect.h +@@ -10,16 +10,17 @@ + #include "BaseRect.h" + #include "BaseMargin.h" + #include "NumericTools.h" + #include "Point.h" + #include "Tools.h" + #include "mozilla/Maybe.h" + + #include ++#include + + namespace mozilla { + + template + struct IsPixel; + + namespace gfx { + +diff --git a/toolkit/components/telemetry/pingsender/pingsender.cpp b/toolkit/components/telemetry/pingsender/pingsender.cpp +--- a/toolkit/components/telemetry/pingsender/pingsender.cpp ++++ b/toolkit/components/telemetry/pingsender/pingsender.cpp +@@ -1,14 +1,15 @@ + /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ + /* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + #include ++#include + #include + #include + #include + #include + #include + #include + + #include From 7506067808aa6420afa2df0ade3c533d818590354ed5c572b8b35507f84ccbcf Mon Sep 17 00:00:00 2001 From: Wolfgang Rosenauer Date: Tue, 7 Mar 2023 10:04:24 +0000 Subject: [PATCH 2/2] - Fix 32 bit build bmo#1810584 (add mozilla-bmo1810584.patch) - Mozilla Firefox 110.0.1 (boo#1208886) Digital ID in Denmark (bmo#1819096) OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox?expand=0&rev=1043 --- MozillaFirefox.changes | 6 +++--- MozillaFirefox.spec | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/MozillaFirefox.changes b/MozillaFirefox.changes index 0640fc7..c53ae68 100644 --- a/MozillaFirefox.changes +++ b/MozillaFirefox.changes @@ -11,18 +11,18 @@ Mon Mar 6 20:09:41 UTC 2023 - Andreas Schwab ------------------------------------------------------------------- Sat Mar 4 16:03:22 UTC 2023 - Andreas Stieger -- Fix 32 bit build bmo#1810584 add mozilla-bmo1810584.patch +- Fix 32 bit build bmo#1810584 (add mozilla-bmo1810584.patch) ------------------------------------------------------------------- Fri Mar 3 17:29:27 UTC 2023 - Andreas Stieger -- Mozilla Firefox 110.0.1 boo#1208886 +- Mozilla Firefox 110.0.1 (boo#1208886) * Fixed clearing recent cookies clears all cookies (bmo#1816279) * Fixed WebGL crashes on Linux when ran inside a VMWare virtual machine (bmo#1807942) * Fixed a bug with CSP serialization causing bugs with the MitID - Digital ID in Denmark (Bug 1819096) + Digital ID in Denmark (bmo#1819096) ------------------------------------------------------------------- Wed Feb 15 09:56:46 UTC 2023 - Wolfgang Rosenauer diff --git a/MozillaFirefox.spec b/MozillaFirefox.spec index de9e60c..97648ef 100644 --- a/MozillaFirefox.spec +++ b/MozillaFirefox.spec @@ -229,10 +229,10 @@ Patch25: one_swizzle_to_rule_them_all.patch Patch26: svg-rendering.patch Patch27: mozilla-buildfixes.patch Patch28: mozilla-bmo1810584.patch +Patch29: gcc13-fix.patch # Firefox/browser Patch101: firefox-kde.patch Patch102: firefox-branded-icons.patch -Patch103: gcc13-fix.patch %endif BuildRoot: %{_tmppath}/%{name}-%{version}-build Requires(post): coreutils shared-mime-info desktop-file-utils