diff --git a/MozillaThunderbird.changes b/MozillaThunderbird.changes index 7b5ef48..5a30c9f 100644 --- a/MozillaThunderbird.changes +++ b/MozillaThunderbird.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Sun Mar 26 10:57:52 UTC 2023 - Wolfgang Rosenauer + +- add gcc13-fix.patch to support current Tumbleweed + ------------------------------------------------------------------- Sun Mar 12 09:52:40 UTC 2023 - Wolfgang Rosenauer diff --git a/MozillaThunderbird.spec b/MozillaThunderbird.spec index 99ee187..fdafef2 100644 --- a/MozillaThunderbird.spec +++ b/MozillaThunderbird.spec @@ -206,6 +206,7 @@ Patch19: mozilla-silence-no-return-type.patch Patch20: mozilla-bmo531915.patch Patch21: one_swizzle_to_rule_them_all.patch Patch22: svg-rendering.patch +Patch23: gcc13-fix.patch %endif BuildRoot: %{_tmppath}/%{name}-%{version}-build PreReq: /bin/sh @@ -294,6 +295,7 @@ fi %patch20 -p1 %patch21 -p1 %patch22 -p1 +%patch23 -p1 %endif %build diff --git a/gcc13-fix.patch b/gcc13-fix.patch new file mode 100644 index 0000000..ecdd363 --- /dev/null +++ b/gcc13-fix.patch @@ -0,0 +1,176 @@ +diff --git a/dom/media/webrtc/sdp/RsdparsaSdpGlue.cpp b/dom/media/webrtc/sdp/RsdparsaSdpGlue.cpp +index 8c8a0369c3..01a1a1d817 100644 +--- a/dom/media/webrtc/sdp/RsdparsaSdpGlue.cpp ++++ b/dom/media/webrtc/sdp/RsdparsaSdpGlue.cpp +@@ -4,6 +4,7 @@ + * 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 "sdp/RsdparsaSdpInc.h" + #include "sdp/RsdparsaSdpGlue.h" +diff --git a/gfx/2d/Rect.h b/gfx/2d/Rect.h +index 4875ad6714..f52437bbdc 100644 +--- a/gfx/2d/Rect.h ++++ b/gfx/2d/Rect.h +@@ -15,6 +15,7 @@ + #include "mozilla/Maybe.h" + + #include ++#include + + namespace mozilla { + +diff --git a/toolkit/components/telemetry/pingsender/pingsender.cpp b/toolkit/components/telemetry/pingsender/pingsender.cpp +index 01fdb63c29..a61b9d3693 100644 +--- a/toolkit/components/telemetry/pingsender/pingsender.cpp ++++ b/toolkit/components/telemetry/pingsender/pingsender.cpp +@@ -4,6 +4,7 @@ + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + + #include ++#include + #include + #include + #include +diff --git a/tools/profiler/core/platform.cpp b/tools/profiler/core/platform.cpp +index bd20110f12..08e38d6938 100644 +--- a/tools/profiler/core/platform.cpp ++++ b/tools/profiler/core/platform.cpp +@@ -1106,7 +1106,7 @@ class ActivePS { + continue; + } + ThreadRegistry::OffThreadRef::RWFromAnyThreadWithLock lockedThreadData = +- offThreadRef.LockedRWFromAnyThread(); ++ offThreadRef.GetLockedRWFromAnyThread(); + MOZ_RELEASE_ASSERT(array.append(ProfiledThreadListElement{ + profiledThreadData->Info().RegisterTime(), + lockedThreadData->GetJSContext(), profiledThreadData})); +@@ -4050,7 +4050,7 @@ void SamplerThread::Run() { + + 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( +@@ -4764,7 +4764,7 @@ static ProfilingStack* locked_register_thread( + aLock, aOffThreadRef.UnlockedConstReaderCRef().Info()); + if (threadProfilingFeatures != ThreadProfilingFeatures::NotProfiled) { + ThreadRegistry::OffThreadRef::RWFromAnyThreadWithLock +- lockedRWFromAnyThread = aOffThreadRef.LockedRWFromAnyThread(); ++ lockedRWFromAnyThread = aOffThreadRef.GetLockedRWFromAnyThread(); + + ProfiledThreadData* profiledThreadData = ActivePS::AddLiveProfiledThread( + aLock, MakeUnique( +@@ -5629,7 +5629,7 @@ static void locked_profiler_start(PSLockRef aLock, PowerOfTwo32 aCapacity, + 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, +@@ -5853,7 +5853,7 @@ void profiler_ensure_started(PowerOfTwo32 aCapacity, double aInterval, + } + + ThreadRegistry::OffThreadRef::RWFromAnyThreadWithLock lockedThreadData = +- offThreadRef.LockedRWFromAnyThread(); ++ offThreadRef.GetLockedRWFromAnyThread(); + + lockedThreadData->ClearProfilingFeaturesAndData(aLock); + +@@ -6196,7 +6196,7 @@ static void locked_unregister_thread( + // thread that is in the process of disappearing. + + ThreadRegistration::OnThreadRef::RWOnThreadWithLock lockedThreadData = +- aOnThreadRef.LockedRWOnThread(); ++ aOnThreadRef.GetLockedRWOnThread(); + + ProfiledThreadData* profiledThreadData = + lockedThreadData->GetProfiledThreadData(lock); +@@ -6717,7 +6717,7 @@ void profiler_clear_js_context() { + // 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); +diff --git a/tools/profiler/public/ProfilerThreadRegistration.h b/tools/profiler/public/ProfilerThreadRegistration.h +index fafe06e446..3fb931987d 100644 +--- a/tools/profiler/public/ProfilerThreadRegistration.h ++++ b/tools/profiler/public/ProfilerThreadRegistration.h +@@ -214,14 +214,14 @@ class ThreadRegistration { + 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()); + } + +diff --git a/tools/profiler/public/ProfilerThreadRegistry.h b/tools/profiler/public/ProfilerThreadRegistry.h +index 76e0c0a78a..4d0fd3ef68 100644 +--- a/tools/profiler/public/ProfilerThreadRegistry.h ++++ b/tools/profiler/public/ProfilerThreadRegistry.h +@@ -177,14 +177,14 @@ class ThreadRegistry { + 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()); + } + +diff --git a/tools/profiler/tests/gtest/GeckoProfiler.cpp b/tools/profiler/tests/gtest/GeckoProfiler.cpp +index fd0d4d2acc..c9882cb5d3 100644 +--- a/tools/profiler/tests/gtest/GeckoProfiler.cpp ++++ b/tools/profiler/tests/gtest/GeckoProfiler.cpp +@@ -621,7 +621,7 @@ TEST(GeckoProfiler, ThreadRegistration_DataAccess) + EXPECT_FALSE(TR::IsDataMutexLockedOnCurrentThread()); + { + TR::OnThreadRef::RWOnThreadWithLock rwOnThreadWithLock = +- aOnThreadRef.LockedRWOnThread(); ++ aOnThreadRef.GetLockedRWOnThread(); + EXPECT_TRUE(TR::IsDataMutexLockedOnCurrentThread()); + TestConstLockedRWOnThread(rwOnThreadWithLock.DataCRef(), + beforeRegistration, afterRegistration, +@@ -1020,7 +1020,7 @@ TEST(GeckoProfiler, ThreadRegistry_DataAccess) + EXPECT_FALSE(TR::IsDataMutexLockedOnCurrentThread()); + { + TRy::OffThreadRef::RWFromAnyThreadWithLock rwFromAnyThreadWithLock = +- aOffThreadRef.LockedRWFromAnyThread(); ++ aOffThreadRef.GetLockedRWFromAnyThread(); + if (profiler_current_thread_id() == testThreadId) { + EXPECT_TRUE(TR::IsDataMutexLockedOnCurrentThread()); + } +@@ -1157,7 +1157,7 @@ TEST(GeckoProfiler, ThreadRegistration_RegistrationEdgeCases) + PR_Sleep(PR_MillisecondsToInterval(1)); + } + TRy::OffThreadRef::RWFromAnyThreadWithLock rwFromAnyThreadWithLock = +- aOffThreadRef.LockedRWFromAnyThread(); ++ aOffThreadRef.GetLockedRWFromAnyThread(); + ++otherThreadReads; + if (otherThreadReads % 1000 == 0) { + PR_Sleep(PR_MillisecondsToInterval(1));