* update thunderbird to 115.0.1-1

This commit is contained in:
Alexander Baldeck 2023-07-28 07:29:03 +02:00
parent 288f569172
commit 4c4dfcc0cf
17 changed files with 196 additions and 9649 deletions

View File

@ -8,27 +8,58 @@
pkgbase=thunderbird
pkgname=(thunderbird)
pkgver=102.12.0
pkgver=115.0.1
pkgrel=1
pkgdesc='Standalone mail and news reader from mozilla.org'
url='https://www.mozilla.org/thunderbird/'
arch=(x86_64 powerpc64le)
url='https://www.thunderbird.net/'
arch=(x86_64 powerpc64le powerpc64 riscv64)
license=(MPL GPL LGPL)
depends=(
glibc gtk3 libgdk-3.so libgtk-3.so mime-types dbus libdbus-1.so dbus-glib
alsa-lib nss hunspell sqlite ttf-font libvpx libvpx.so zlib bzip2 libbz2.so
botan2 libwebp libwebp.so libwebpdemux.so libevent libjpeg-turbo libffi
libffi.so nspr gcc-libs libx11 libxrender libxfixes libxext libxcomposite
libxdamage pango libpango-1.0.so cairo gdk-pixbuf2 icu libicui18n.so
libicuuc.so freetype2 libfreetype.so fontconfig libfontconfig.so glib2
libglib-2.0.so pixman libpixman-1.so gnupg json-c libcanberra
glibc
gtk3 libgdk-3.so libgtk-3.so
mime-types
dbus libdbus-1.so
dbus-glib
alsa-lib
nss
hunspell
sqlite
ttf-font
libvpx libvpx.so
zlib
bzip2 libbz2.so
botan2
libwebp libwebp.so libwebpdemux.so
libevent
libjpeg-turbo
libffi libffi.so
nspr
gcc-libs
libx11
libxrender
libxfixes
libxext
libxcomposite
libxdamage
pango libpango-1.0.so
cairo
gdk-pixbuf2
freetype2 libfreetype.so
fontconfig libfontconfig.so
glib2 libglib-2.0.so
pixman libpixman-1.so
gnupg
json-c
libcanberra
ffmpeg
icu libicui18n.so libicuuc.so
)
makedepends=(
unzip zip diffutils python python-setuptools mesa imake libpulse
xorg-server-xvfb autoconf2.13 rust clang llvm cbindgen nodejs lld
unzip zip diffutils python mesa libpulse libice libsm
rust clang llvm cbindgen nodejs lld
gawk perl findutils libotr wasi-compiler-rt wasi-libc wasi-libc++ wasi-libc++abi
)
makedepends_x86_64=(nasm yasm)
makedepends_x86_64=(nasm)
options=(!emptydirs !makeflags !lto)
source=(https://archive.mozilla.org/pub/thunderbird/releases/$pkgver/source/thunderbird-$pkgver.source.tar.xz{,.asc}
thunderbird.desktop
@ -36,39 +67,15 @@ source=(https://archive.mozilla.org/pub/thunderbird/releases/$pkgver/source/thun
distribution.ini
mozconfig.cfg
metainfo.patch
rustc_version-0.4.0.patch
libwebrtc-gn.patch
avoid-redefinition.patch
big-endian-image-decoders.patch
fix-image-format-warning.patch
fix-webrtc-glibcisms.patch
flac-no-ffvpx.patch
mallinfo.patch
skia-sucks3.patch
skia-sucks2.patch
skia-sucks1.patch
combined.patch
mozilla-core-1807652.patch)
sha256sums=('5aa776b75dd47e77303185033c2c443a425488d28ced5c6e29e5bd64e7ac5afe'
gcc-13.patch)
sha256sums=('ca6f181f7d4d469763c480860beed01f5d5b3f429af39373dd06f4f846415935'
'SKIP'
'e44c55501f650a4e80b9c353b81f33e07ca65808db831eff6ca616aded233827'
'fa11b4736bbf53ec015f71cd42b1040b22d1a855c562b76927b3f0eccb925c85'
'bc3aae2cc00dc9806f54606f98d967366a2ba7223f6a3ad1c658a653ebff5569'
'362896dfbe23b9d0958b6fc53031c2483097b2c726aebee0314ac83fa486fdca'
'59cab9977c3effbba33129c014e87414ea939c02be859f1f0b9d79581c8935eb'
'3390d127e5dd70a0ff60895bcb044ec4521dd528cd9d6efc27c4ba58df9cca5c'
'0e9f0b92edd008ae157af41b19691135011ebf8cebd82e21169a9ca12acfbe68'
'82d25d789483805cb547a1199eb59798e1ce6cbee7bdbbf53c06a8f251a40140'
'51b9bb6a7db6eeae292fb9d947198f9f28547fb01c589fee5cb8c8cd916c27ee'
'4eb95f37dfe07175a30d89b6b0a22a59adbc0bd211fedf975e450f8b407c6e45'
'd77afe9c293fff5e4d41fe1ec749a9bdd6085b3b7f049cbc0e6116ea2154e62e'
'0b33247a87160cc2d80827c1c3ae6ca915f4ea72ecc41be9c496ff402b3a5252'
'482878758309bf965e9db9dea7ebe54daf2c8adf4720c74cdf576026b49b1811'
'4d4dd75aa6ff76437f3f9d4b07d3b1fe09eaf6ffd4239a3f941214e05c79b714'
'5a0fea05cf1828f102b0b73878a27c0d05b0cf21c81e1a2f463242a0d3121251'
'a4ad198fc98acb0a16a013f1ae0a09ab1b96d9b49eadc52045138de5ae2c5ee2'
'c36b73c23975ef72b6f562c4e9199e4958ea5083473926562b96ea255c08b148'
'e70f9a927fa369d6f125c207a7687929cca5c8c684254747f2c09c06e7057ed7'
'666c0c17e967ef23a731b3f2a737cea1cc8ec6409b0f35da7044fc806ed66689')
'eef7fe1c3a98603acdfc4b1dc79e0fb8f6ee04a75cd1eb825677a63858d685d9')
validpgpkeys=(
14F26682D0916CDD81E37B6D61B7B526D98F0353 # Mozilla Software Releases <release@mozilla.com>
4360FE2109C49763186F8E21EBE41E90F6F12F6D # Mozilla Software Releases <release@mozilla.com>
@ -99,6 +106,11 @@ prepare() {
msg2 "Applying patch $src..."
patch -Np1 < "../$src"
done
sed -e 's|73114a5c28472e77082ad259113ffafb418ed602c1741f26da3e10278b0bf93e|a88d6cc10ec1322b53a8f4c782b5133135ace0fdfcf03d1624b768788e17be0f|' \
-i third_party/rust/mp4parse/.cargo-checksum.json
# Make icon transparent
sed -i '/^<rect/d' comm/mail/branding/thunderbird/TB-symbolic.svg
printf "%s" "$_google_api_key" >google-api-key
printf "%s" "$_mozilla_api_key" >mozilla-api-key
@ -109,6 +121,9 @@ prepare() {
powerpc64*)
echo "ac_add_options --disable-webrtc" >> .mozconfig
;;
riscv64)
sed 's@.*enable-linker.*@@g' -i .mozconfig
;;
x86_64)
echo "ac_add_options --disable-elf-hack" >> .mozconfig
;;
@ -117,12 +132,12 @@ prepare() {
build() {
cd $pkgname-$pkgver
if [[ -n "${SOURCE_DATE_EPOCH}" ]]; then
export MOZ_BUILD_DATE=$(date --date "@${SOURCE_DATE_EPOCH}" "+%Y%m%d%H%M%S")
fi
export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none
export MOZBUILD_STATE_PATH="${srcdir}/mozbuild"
./mach configure
./mach build
./mach buildsymbols
@ -130,6 +145,7 @@ build() {
package_thunderbird() {
optdepends=(
'hunspell-en_us: Spell checking, American English'
'libotr: OTR support for active one-to-one chats'
'libnotify: Notification integration'
)
@ -165,5 +181,4 @@ END
ln -srf "$pkgdir/usr/bin/$pkgname" \
"$pkgdir/usr/lib/$pkgname/thunderbird-bin"
}
# vim:set sw=2 et:

View File

@ -1,15 +0,0 @@
Author: Rasmus Thomsen <oss@cogitri.dev>
Reason: FF is mixing userspace net headers (net/if.h) and kernelspace ones
(linux/if.h), leading to redefinitions. We need to include net/if.h before
linux/if.h because linux/if.h has redifinition guards whereas net/if.h doesnt
Upstream: No
--- a/dom/media/webrtc/transport/third_party/nICEr/src/stun/addrs-netlink.c 2020-07-28 19:24:32.359751046 +0200
+++ b/dom/media/webrtc/transport/third_party/nICEr/src/stun/addrs-netlink.c 2020-07-28 19:24:37.856343751 +0200
@@ -31,6 +31,7 @@
*/
#if defined(LINUX)
+#include <net/if.h>
#include "addrs-netlink.h"
#include <csi_platform.h>
#include <assert.h>

View File

@ -1,88 +0,0 @@
https://bugzilla.mozilla.org/show_bug.cgi?id=1626236
https://bug1626236.bmoattachments.org/attachment.cgi?id=9137096
# HG changeset patch
# User msirringhaus@suse.de
# Date 1582805876 -3600
# Thu Feb 27 13:17:56 2020 +0100
# Node ID cc3d09abea31068e57f1ab918782f9f86fc6a158
# Parent 9cd90914846f667f18babc491a74c164ae5d6e9f
imported patch decoder_workaround.patch
diff -r 9cd90914846f image/decoders/nsGIFDecoder2.cpp
--- a/image/decoders/nsGIFDecoder2.cpp Thu Feb 27 12:57:14 2020 +0100
+++ b/image/decoders/nsGIFDecoder2.cpp Fri Mar 27 13:06:18 2020 +0100
@@ -422,6 +422,9 @@
MOZ_ASSERT(mSwizzleFn);
uint8_t* data = reinterpret_cast<uint8_t*>(aColormap);
mSwizzleFn(data, data, aColors);
+#if MOZ_BIG_ENDIAN()
+ SwizzleRow(SurfaceFormat::A8R8G8B8, SurfaceFormat::B8G8R8A8)(data, data, aColors);
+#endif
}
LexerResult nsGIFDecoder2::DoDecode(SourceBufferIterator& aIterator,
diff -r 9cd90914846f image/decoders/nsJPEGDecoder.cpp
--- a/image/decoders/nsJPEGDecoder.cpp Thu Feb 27 12:57:14 2020 +0100
+++ b/image/decoders/nsJPEGDecoder.cpp Fri Mar 27 13:06:18 2020 +0100
@@ -263,6 +263,9 @@
case JCS_YCbCr:
// By default, we will output directly to BGRA. If we need to apply
// special color transforms, this may change.
+#if MOZ_BIG_ENDIAN()
+ mInfo.out_color_space = MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB;
+#else
switch (SurfaceFormat::OS_RGBX) {
case SurfaceFormat::B8G8R8X8:
mInfo.out_color_space = JCS_EXT_BGRX;
@@ -277,6 +280,7 @@
mState = JPEG_ERROR;
return Transition::TerminateFailure();
}
+#endif
break;
case JCS_CMYK:
case JCS_YCCK:
diff -r 9cd90914846f image/decoders/nsPNGDecoder.cpp
--- a/image/decoders/nsPNGDecoder.cpp Thu Feb 27 12:57:14 2020 +0100
+++ b/image/decoders/nsPNGDecoder.cpp Fri Mar 27 13:06:18 2020 +0100
@@ -361,7 +361,7 @@
IResumable* aOnResume) {
MOZ_ASSERT(!HasError(), "Shouldn't call DoDecode after error!");
- return mLexer.Lex(aIterator, aOnResume,
+ LexerResult res = mLexer.Lex(aIterator, aOnResume,
[=](State aState, const char* aData, size_t aLength) {
switch (aState) {
case State::PNG_DATA:
@@ -371,6 +371,14 @@
}
MOZ_CRASH("Unknown State");
});
+
+#if MOZ_BIG_ENDIAN()
+ if(res.is<TerminalState>() && res.as<TerminalState>() == TerminalState::SUCCESS) {
+ NativeEndian::swapToLittleEndianInPlace<uint32_t>((uint32_t*)(mImageData), mImageDataLength / 4);
+ }
+#endif
+
+ return res;
}
LexerTransition<nsPNGDecoder::State> nsPNGDecoder::ReadPNGData(
diff -r 9cd90914846f image/decoders/nsWebPDecoder.cpp
--- a/image/decoders/nsWebPDecoder.cpp Thu Feb 27 12:57:14 2020 +0100
+++ b/image/decoders/nsWebPDecoder.cpp Fri Mar 27 13:06:18 2020 +0100
@@ -237,7 +237,12 @@
// WebP doesn't guarantee that the alpha generated matches the hint in the
// header, so we always need to claim the input is BGRA. If the output is
// BGRX, swizzling will mask off the alpha channel.
+#if MOZ_BIG_ENDIAN()
+ mBuffer.colorspace = MODE_ARGB;
+ SurfaceFormat inFormat = mFormat;
+#else
SurfaceFormat inFormat = SurfaceFormat::OS_RGBA;
+#endif
SurfacePipeFlags pipeFlags = SurfacePipeFlags();
if (mFormat == SurfaceFormat::OS_RGBA &&

View File

@ -1,343 +0,0 @@
Submitted By: Xi Ruoyao <xry111 at xry111 dot site>
Date: 2023-05-14
Initial Package Version: 102.12.0esr
Upstream Status: Applied for nightly, but not ESR
Origin:
- The first patch comes from
- https://github.com/rust-lang/rust-bindgen/pull/2319
- https://github.com/rust-lang/rust-bindgen/pull/2339
And they are integrated into mozilla at
- https://hg.mozilla.org/mozilla-central/rev/bd3481bf45fb
- The second patch comes from
- https://hg.mozilla.org/mozilla-central/rev/61f052c26dd1
- https://hg.mozilla.org/mozilla-central/rev/9fffd4b92c43
- The third patch comes from
- https://hg.mozilla.org/mozilla-central/rev/1a15f95b880f
- The fourth patch comes from
- https://github.com/mozilla/mp4parse-rust/commit/8d58b2d5fc7f
And it's integrated into mozilla at
- https://hg.mozilla.org/mozilla-central/rev/a651d4323066
A hack is added for Cargo.{toml,lock} to suppress sha256 check
Description: The first patch updates the bundled rust-bindgen
crate to be compatible with Clang/LLVM 16.
Without this patch, you will encounter "not a valid
Ident" errors when building Firefox, and it will
come out of fallback.rs in proc-macro2. This
references mfbt/Vector.h (symlinked to
firefox-build-dir/dist/include/mozilla/Vector.h) in
it's error output, but it is because LLVM changed
how it reports anonymous items.
The second patch adds missing "#include <cstdint>"
for three C++ headers and source files. Without
this patch, it will fail to build with C++ headers
from GCC 13.
The third and fourth patches work around build
failures with Rustc-1.70.0.
From 8e0b55b6029226d448ffc1c5465bf475ea0852c5 Mon Sep 17 00:00:00 2001
From: Xi Ruoyao <xry111@xry111.site>
Date: Sun, 14 May 2023 03:37:24 +0800
Subject: [PATCH 1/4] cbindgen patch
---
third_party/rust/bindgen/src/clang.rs | 5 ++++
third_party/rust/bindgen/src/ir/comp.rs | 3 +-
third_party/rust/bindgen/src/ir/ty.rs | 30 +++++++++++--------
third_party/rust/bindgen/src/ir/var.rs | 8 ++---
5 files changed, 29 insertions(+), 19 deletions(-)
diff --git a/third_party/rust/bindgen/src/clang.rs b/third_party/rust/bindgen/src/clang.rs
index 488660c434..ef74ac08c2 100644
--- a/third_party/rust/bindgen/src/clang.rs
+++ b/third_party/rust/bindgen/src/clang.rs
@@ -54,6 +54,11 @@ impl Cursor {
unsafe { clang_isDeclaration(self.kind()) != 0 }
}
+ /// Is this cursor's referent an anonymous record or so?
+ pub fn is_anonymous(&self) -> bool {
+ unsafe { clang_Cursor_isAnonymous(self.x) != 0 }
+ }
+
/// Get this cursor's referent's spelling.
pub fn spelling(&self) -> String {
unsafe { cxstring_into_string(clang_getCursorSpelling(self.x)) }
diff --git a/third_party/rust/bindgen/src/ir/comp.rs b/third_party/rust/bindgen/src/ir/comp.rs
index 22c124fa36..b715616c5e 100644
--- a/third_party/rust/bindgen/src/ir/comp.rs
+++ b/third_party/rust/bindgen/src/ir/comp.rs
@@ -1372,8 +1372,7 @@ impl CompInfo {
// A declaration of an union or a struct without name could
// also be an unnamed field, unfortunately.
- if cur.spelling().is_empty() &&
- cur.kind() != CXCursor_EnumDecl
+ if cur.is_anonymous() && cur.kind() != CXCursor_EnumDecl
{
let ty = cur.cur_type();
let offset = cur.offset_of_field().ok();
diff --git a/third_party/rust/bindgen/src/ir/ty.rs b/third_party/rust/bindgen/src/ir/ty.rs
index e6eecc3c50..f3e1193ce2 100644
--- a/third_party/rust/bindgen/src/ir/ty.rs
+++ b/third_party/rust/bindgen/src/ir/ty.rs
@@ -737,7 +737,12 @@ impl Type {
let layout = ty.fallible_layout(ctx).ok();
let cursor = ty.declaration();
- let mut name = cursor.spelling();
+ let is_anonymous = cursor.is_anonymous();
+ let mut name = if is_anonymous {
+ None
+ } else {
+ Some(cursor.spelling()).filter(|n| !n.is_empty())
+ };
debug!(
"from_clang_ty: {:?}, ty: {:?}, loc: {:?}",
@@ -771,7 +776,7 @@ impl Type {
if is_canonical_objcpointer && is_template_type_param {
// Objective-C generics are just ids with fancy name.
// To keep it simple, just name them ids
- name = "id".to_owned();
+ name = Some("id".to_owned());
}
}
@@ -900,7 +905,7 @@ impl Type {
return Err(ParseError::Recurse);
}
} else {
- name = location.spelling();
+ name = Some(location.spelling());
}
let complex = CompInfo::from_ty(
@@ -942,7 +947,7 @@ impl Type {
CXType_Typedef
);
- name = current.spelling();
+ name = Some(location.spelling());
let inner_ty = cur
.typedef_type()
@@ -1126,10 +1131,10 @@ impl Type {
CXType_Enum => {
let enum_ = Enum::from_ty(ty, ctx).expect("Not an enum?");
- if name.is_empty() {
+ if !is_anonymous {
let pretty_name = ty.spelling();
if clang::is_valid_identifier(&pretty_name) {
- name = pretty_name;
+ name = Some(pretty_name);
}
}
@@ -1144,12 +1149,12 @@ impl Type {
)
.expect("Not a complex type?");
- if name.is_empty() {
+ if !is_anonymous {
// The pretty-printed name may contain typedefed name,
// but may also be "struct (anonymous at .h:1)"
let pretty_name = ty.spelling();
if clang::is_valid_identifier(&pretty_name) {
- name = pretty_name;
+ name = Some(pretty_name);
}
}
@@ -1161,8 +1166,7 @@ impl Type {
location,
None,
ctx,
- )
- .expect("Not able to resolve vector element?");
+ )?;
TypeKind::Vector(inner, ty.num_elements().unwrap())
}
CXType_ConstantArray => {
@@ -1189,7 +1193,9 @@ impl Type {
CXType_ObjCClass | CXType_ObjCInterface => {
let interface = ObjCInterface::from_ty(&location, ctx)
.expect("Not a valid objc interface?");
- name = interface.rust_name();
+ if !is_anonymous {
+ name = Some(interface.rust_name());
+ }
TypeKind::ObjCInterface(interface)
}
CXType_Dependent => {
@@ -1207,7 +1213,7 @@ impl Type {
}
};
- let name = if name.is_empty() { None } else { Some(name) };
+ name = name.filter(|n| !n.is_empty());
let is_const = ty.is_const() ||
(ty.kind() == CXType_ConstantArray &&
diff --git a/third_party/rust/bindgen/src/ir/var.rs b/third_party/rust/bindgen/src/ir/var.rs
index c6f121d74e..30fb0b5ee8 100644
--- a/third_party/rust/bindgen/src/ir/var.rs
+++ b/third_party/rust/bindgen/src/ir/var.rs
@@ -301,11 +301,11 @@ impl ClangSubItemParser for Var {
let ty = match Item::from_ty(&ty, cursor, None, ctx) {
Ok(ty) => ty,
Err(e) => {
- assert_eq!(
- ty.kind(),
- CXType_Auto,
+ assert!(
+ matches!(ty.kind(), CXType_Auto | CXType_Unexposed),
"Couldn't resolve constant type, and it \
- wasn't an nondeductible auto type!"
+ wasn't an nondeductible auto type or unexposed \
+ type!"
);
return Err(e);
}
--
2.40.1
From 2c22f8cc4756d3e492fe6be4be634fb592b4b0e3 Mon Sep 17 00:00:00 2001
From: Xi Ruoyao <xry111@xry111.site>
Date: Sun, 14 May 2023 03:37:04 +0800
Subject: [PATCH 2/4] add missing <cstdint>
---
dom/media/webrtc/sdp/RsdparsaSdpGlue.cpp | 1 +
gfx/2d/Rect.h | 1 +
toolkit/components/telemetry/pingsender/pingsender.cpp | 1 +
3 files changed, 3 insertions(+)
diff --git a/dom/media/webrtc/sdp/RsdparsaSdpGlue.cpp b/dom/media/webrtc/sdp/RsdparsaSdpGlue.cpp
index 8c8a0369c3..d43b4a1e0d 100644
--- a/dom/media/webrtc/sdp/RsdparsaSdpGlue.cpp
+++ b/dom/media/webrtc/sdp/RsdparsaSdpGlue.cpp
@@ -3,6 +3,7 @@
/* 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 <cstdint>
#include <string>
#include "sdp/RsdparsaSdpInc.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 <cmath>
+#include <cstdint>
namespace mozilla {
diff --git a/toolkit/components/telemetry/pingsender/pingsender.cpp b/toolkit/components/telemetry/pingsender/pingsender.cpp
index 01fdb63c29..ceda3b1945 100644
--- a/toolkit/components/telemetry/pingsender/pingsender.cpp
+++ b/toolkit/components/telemetry/pingsender/pingsender.cpp
@@ -3,6 +3,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 <cstdint>
#include <cstdlib>
#include <cstring>
#include <ctime>
--
2.40.1
# HG changeset patch
# User Emilio Cobos Álvarez <emilio@crisal.io>
# Date 1682520906 0
# Node ID 1a15f95b880f3d4b5a427c750932c53a01b4897a
# Parent 17ea6f29654b2ff39d374073cec3e7116c1ec548
[PATCH 3/4] Bug 1829964 - Allow ambiguous glob reexports for now in autogenerated bindings. r=glandium
I started looking into removing these glob re-exports, but I couldn't
convince myself that the result was particularly better...
Differential Revision: https://phabricator.services.mozilla.com/D176473
diff --git a/layout/style/ServoBindings.toml b/layout/style/ServoBindings.toml
--- a/layout/style/ServoBindings.toml
+++ b/layout/style/ServoBindings.toml
@@ -35,16 +35,17 @@ headers = [
"mozilla/SizeOfState.h",
"nsCSSProps.h",
"nsMappedAttributes.h",
"nsNameSpaceManager.h",
]
raw-lines = [
# FIXME(emilio): Incrementally remove these "pub use"s. Probably
# mozilla::css and mozilla::dom are easier.
+ "#[allow(unknown_lints, ambiguous_glob_reexports)]",
"pub use self::root::*;",
"pub use self::root::mozilla::*;",
"pub use self::root::mozilla::css::*;",
"pub use self::root::mozilla::dom::*;",
]
hide-types = [
".*char_traits",
".*incompatible_char_type",
From 8b5b652d38e007e736bb442ccd5aa5ed699db100 Mon Sep 17 00:00:00 2001
From: Matthew Gregan <kinetik@flim.org>
Date: Thu, 16 Jun 2022 13:54:02 +1200
Subject: [PATCH 4/4] Fix `unstable-name-collisions` warning by using fully
qualified path.
---
mp4parse/src/lib.rs | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/third_party/rust/mp4parse/src/lib.rs b/third_party/rust/mp4parse/src/lib.rs
index 567ee21d..4f3d7153 100644
--- a/third_party/rust/mp4parse/src/lib.rs
+++ b/third_party/rust/mp4parse/src/lib.rs
@@ -3506,8 +3506,13 @@ macro_rules! impl_mul {
type Output = $output;
fn mul(self, rhs: $rhs) -> Self::Output {
- static_assertions::const_assert!(<$output>::MAX <= <$inner>::MAX as u64);
- static_assertions::const_assert!(<$lhs>::MAX * <$rhs>::MAX <= <$output>::MAX);
+ static_assertions::const_assert!(
+ <$output as UpperBounded>::MAX <= <$inner>::MAX as u64
+ );
+ static_assertions::const_assert!(
+ <$lhs as UpperBounded>::MAX * <$rhs as UpperBounded>::MAX
+ <= <$output as UpperBounded>::MAX
+ );
let lhs: $inner = self.get().into();
let rhs: $inner = rhs.get().into();
--- firefox-102.12.0.orig/Cargo.lock 2023-05-30 01:34:26.000000000 +0800
+++ firefox-102.12.0/Cargo.lock 2023-06-04 18:52:58.494327811 +0800
@@ -3407,7 +3407,6 @@
[[package]]
name = "mp4parse"
version = "0.13.0"
-source = "git+https://github.com/mozilla/mp4parse-rust?rev=3bfc47d9a571d0842676043ba60716318e946c06#3bfc47d9a571d0842676043ba60716318e946c06"
dependencies = [
"bitreader",
"byteorder",
--- firefox-102.12.0.orig/Cargo.toml 2023-05-30 01:34:26.000000000 +0800
+++ firefox-102.12.0/Cargo.toml 2023-06-04 18:52:44.365719856 +0800
@@ -128,3 +128,7 @@
# Patch fallible_collections for issues with rustc 1.65.
[patch.crates-io.fallible_collections]
path = "third_party/rust/fallible_collections"
+
+# Patch mp4parse for issues with rustc-1.70.
+[patch."https://github.com/mozilla/mp4parse-rust"]
+mp4parse = { path = "third_party/rust/mp4parse" }

View File

@ -1,39 +0,0 @@
# HG changeset patch
# User Lee Salzman <lsalzman@mozilla.com>
# Date 1462463631 14400
# Thu May 05 11:53:51 2016 -0400
# Node ID 8da374804a09977c8f89af5e6e0cb37cb074595d
# Parent 29662e28a9c93ac67ee0b8ddfb65a9f29bbf73f5
handle big-endian formats in Cairo format conversions
--- a/gfx/2d/HelpersCairo.h
+++ b/gfx/2d/HelpersCairo.h
@@ -147,7 +147,14 @@ static inline cairo_format_t GfxFormatToCairoFormat(Su
case SurfaceFormat::R5G6B5_UINT16:
return CAIRO_FORMAT_RGB16_565;
default:
- gfxCriticalError() << "Unknown image format " << (int)format;
+ // _UINT32 formats don't match B8G8R8[AX]8 on big-endian platforms,
+ // and Moz2d uses B8G8R8[AX]8 as if it was _UINT32.
+ // See bug 1269654
+ if (format == SurfaceFormat::B8G8R8X8) {
+ return CAIRO_FORMAT_RGB24;
+ } else if (format != SurfaceFormat::B8G8R8A8) {
+ gfxCriticalError() << "Unknown image format " << (int)format;
+ }
return CAIRO_FORMAT_ARGB32;
}
}
@@ -177,7 +184,11 @@ static inline cairo_content_t GfxFormatToCairoContent(
case SurfaceFormat::A8:
return CAIRO_CONTENT_ALPHA;
default:
- gfxCriticalError() << "Unknown image content format " << (int)format;
+ if (format == SurfaceFormat::B8G8R8X8) {
+ return CAIRO_CONTENT_COLOR;
+ } else if (format != SurfaceFormat::B8G8R8A8) {
+ gfxCriticalError() << "Unknown image content format " << (int)format;
+ }
return CAIRO_CONTENT_COLOR_ALPHA;
}
}

View File

@ -1,20 +0,0 @@
--- a/third_party/libwebrtc/system_wrappers/source/cpu_features_linux.cc
+++ b/third_party/libwebrtc/system_wrappers/source/cpu_features_linux.cc
@@ -18,7 +18,7 @@
#define WEBRTC_GLIBC_PREREQ(a, b) 0
#endif
-#if WEBRTC_GLIBC_PREREQ(2, 16)
+#if !__GLIBC__ || WEBRTC_GLIBC_PREREQ(2, 16)
#include <sys/auxv.h>
#else
#include <errno.h>
@@ -40,7 +40,7 @@
int architecture = 0;
uint64_t hwcap = 0;
const char* platform = NULL;
-#if WEBRTC_GLIBC_PREREQ(2, 16)
+#if !__GLIBC__ || WEBRTC_GLIBC_PREREQ(2, 16)
hwcap = getauxval(AT_HWCAP);
platform = (const char*)getauxval(AT_PLATFORM);
#else

View File

@ -1,25 +0,0 @@
Enable FLAC on platforms without ffvpx like powerpc*
diff --git dom/media/flac/FlacDecoder.cpp dom/media/flac/FlacDecoder.cpp
index 53fc3c9937f7..b23771ab80fa 100644
--- a/dom/media/flac/FlacDecoder.cpp
+++ b/dom/media/flac/FlacDecoder.cpp
@@ -7,6 +7,7 @@
#include "FlacDecoder.h"
#include "MediaContainerType.h"
#include "mozilla/StaticPrefs_media.h"
+#include "PDMFactory.h"
namespace mozilla {
@@ -14,6 +15,10 @@ namespace mozilla {
bool FlacDecoder::IsEnabled() {
#ifdef MOZ_FFVPX
return StaticPrefs::media_flac_enabled();
+#elif defined(MOZ_FFMPEG)
+ RefPtr<PDMFactory> platform = new PDMFactory();
+ return StaticPrefs::media_flac_enabled() &&
+ platform->SupportsMimeType("audio/flac"_ns);
#else
// Until bug 1295886 is fixed.
return false;

View File

@ -1,20 +1,10 @@
--- thunderbird-102.7.1/dom/media/webrtc/sdp/RsdparsaSdpGlue.cpp.gcc13-header-dependency 2023-01-24 04:23:43.000000000 +0100
+++ thunderbird-102.7.1/dom/media/webrtc/sdp/RsdparsaSdpGlue.cpp 2023-01-25 19:23:11.048662899 +0100
@@ -3,6 +3,7 @@
/* 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/. */
--- a/comm/third_party/rnp/src/libsexp/include/sexp/sexp-error.h Tue Jul 11 04:56:32 2023 +0000
+++ b/comm/third_party/rnp/src/libsexp/include/sexp/sexp-error.h Tue Jul 11 12:24:40 2023 +0100
@@ -29,6 +29,7 @@
#pragma once
+#include <cstdint>
#include <string>
#include "sdp/RsdparsaSdpInc.h"
--- thunderbird-102.7.1/toolkit/components/telemetry/pingsender/pingsender.cpp.gcc13-header-dependency 2023-01-24 04:23:55.000000000 +0100
+++ thunderbird-102.7.1/toolkit/components/telemetry/pingsender/pingsender.cpp 2023-01-25 21:38:39.432188899 +0100
@@ -3,6 +3,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 <cstdint>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <exception>
#include <iostream>
#include <string>

View File

@ -0,0 +1,63 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBFWpQAQBEAC+9wVlwGLy8ILCybLesuB3KkHHK+Yt1F1PJaI30X448ttGzxCz
PQpH6BoA73uzcTReVjfCFGvM4ij6qVV2SNaTxmNBrL1uVeEUsCuGduDUQMQYRGxR
tWq5rCH48LnltKPamPiEBzrgFL3i5bYEUHO7M0lATEknG7Iaz697K/ssHREZfuuc
B4GNxXMgswZ7GTZO3VBDVEw5GwU3sUvww93TwMC29lIPCux445AxZPKr5sOVEsEn
dUB2oDMsSAoS/dZcl8F4otqfR1pXg618cU06omvq5yguWLDRV327BLmezYK0prD3
P+7qwEp8MTVmxlbkrClS5j5pR47FrJGdyupNKqLzK+7hok5kBxhsdMsdTZLd4tVR
jXf04isVO3iFFf/GKuwscOi1+ZYeB3l3sAqgFUWnjbpbHxfslTmo7BgvmjZvAH5Z
asaewF3wA06biCDJdcSkC9GmFPmN5DS5/Dkjwfj8+dZAttuSKfmQQnypUPaJ2sBu
blnJ6INpvYgsEZjV6CFG1EiDJDPu2Zxap8ep0iRMbBBZnpfZTn7SKAcurDJptxin
CRclTcdOdi1iSZ35LZW0R2FKNnGL33u1IhxU9HRLw3XuljXCOZ84RLn6M+PBc1eZ
suv1TA+Mn111yD3uDv/u/edZ/xeJccF6bYcMvUgRRZh0sgZ0ZT4b0Q6YcQARAQAB
tC9Nb3ppbGxhIFNvZnR3YXJlIFJlbGVhc2VzIDxyZWxlYXNlQG1vemlsbGEuY29t
PokCOAQTAQIAIgUCValABAIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQ
Ybe1JtmPA1NQqg//Rr6/V7uLqrIwx0UFknyNJasRJZhUkYxdGsLD18zO0Na8Ve3Q
sYpOC3ojpqaFUzpqm6KNv8eXfd/Ku7j3WGr9kPkbjZNghvy6V5Lva4JkxO6LMxKk
JYqiqF2o1Gfda8NfcK08GFy4C0L8zNwlADvmdMo4382tmHNGbTTft7BeVaRrE9xW
9eGmGQ2jYOsjxb5MsadAdZUuK8IC95ZHlUDR3gH9KqhfbQWp5Bo924Kiv+f2JUzN
rrG98eOm1Qb8F9rePzZ2DOYRJyOe4p8Gpl+kojCXNntkJgcwJ1a1yRE6wy9RzpeB
lCeoQuLS92MNne+deQZUskTZFoYXUadf6vbdfqL0nuPCKdl9lhef1QNwE30IRymt
6fhJCFffFQjGdeMfSiCHgcI8ichQbrzhBCGGR3bAHan9c2EbQ+puqG3Aa0YjX6Db
GJjWOI6A61bqSPepLCMVaXqV2mZEIaZWdZkOHjnRrU6CJdXG/+D4m1YBZwYM60eJ
kNu4eMMwMFnRsHiWf7bhqKptwuk8HyIGp2o4j8iqrFRVJEbK/ctdhA3H1AlKug9f
NrfwCfqhNCSBju97V03U26j04JMn9nrZ2UEGbpty+8ONTb38WX5/oC61BgwV8Ki4
6Lwyb7fImUzz8jE83pjh7s3+NCKvvbH+VfT12f+V/fsphN3EwGwJPTC3fX25Ag0E
YKLN1QEQALUkQAa6MpKjjvt2at6XoURjNmn7dnY4ooCoYVYPnia/mH3yFNkO95fc
54mEs1TJBVbiT3e1pAZ5RDCJ/AVBodOKKejFfpM19ILrt7//Yv9GoDUt9cQHV85n
9YubG0FNXkcpcmUUorDNorhewWK30rDgR7+9XH/ojPeCsa814gdWwzS+AzdE+frw
qA44B2l27Xp+EHZujnYwQlL/SMfHYU+Dsx8BzlCu4KJk60DOh8m9L4ELA1yldj7P
6VjkpPydnAq0FK2nxapFQAAt5upGhlPLXumJQFOxhXH+DDj8NeVkzNomilsD5MCv
W/0aP+UX2W6p3XvBAQKBZINF/JrIRlQwbWAmlvtalAN2QXEM1L6LGFLDUAvTcfGP
f7ZKgsCAVM7MbiK0mB8Xqj04cUjLwpoNqh15pmwMbGzs9w0zsCqVkkRjgkxhabCw
alooIxvi/vYiMfu5K9oB/LWHJNUT8kJtOJPbnQ/MMFwr8pU1MzVXfO+rDd6Ncckm
juZ8/CbTP/8Tz3LRRTGZgtNWwZ/o0bmqQ6mPqkxS/nioXqzlGYLN5x7e3BAc95vJ
3hoNPyYcgcEurEBe4dBEwWqVQ5SgkbrwICRyK43oy+b/pFUax/S+nsuQgHURvUm3
37DcGaKOaPEq3RnF+oaRYqoNY2Vr2b+ce/zz0lu3z7jTR7KMVUZ/ABEBAAGJBHIE
GAEKACYWIQQU8maC0JFs3YHje21ht7Um2Y8DUwUCYKLN1QIbAgUJA8JnAAJACRBh
t7Um2Y8DU8F0IAQZAQoAHRYhBENg/iEJxJdjGG+OIevkHpD28S9tBQJgos3VAAoJ
EOvkHpD28S9tjesP/jm5hVqQq9HZldbZvtbbgi9ObCdN9ShZdxJB9/PRZqzDKFZO
PXux+VK5++3s0FzvTHvEdJ2YFVGryXSnCc4H9SGbS6uVauauetyPIIJa/KyWmnnx
mLr/Y4rcfwmtrPrryTFB4DHgT5hRTiqCBfEIDiXZEobdpSJHem3fPWsiy6CF5Rov
HeiuLRFnjIoLXbPRWHMl+6PMV5rfV6giGjG5CbYlM48+t3TdDvNVAo9E7yteylwL
3JYc664mbqNqzng0wXEJiistlCmWiY1Kons7joNbedd2SM4ctaF84OQiW+Y4LJmZ
o7SY69etX7+XfGKHJI+989v8+O8K8uk4REn2EpCMSSIiD+UsGcjTHnh0mVJ2jE6s
3eZAy+apza4SRwgQcsXCAXBqab91Y2dUDVNZNE8fjM6X2bWxP/4ncPkOyM/U/984
ze/SYWItbc82mkEeiaBIjTKRx5HZDhkcH3YqTO6CpexypfsyQs2i0xOJmyJwsUoJ
/tUYSPqxs011caiCqJ2K1q2uBFQQIILjK8TTI7hLW7BeeENu8dvh/zHsPnreiv7L
qsoet0s33deC1hI+DWkfPbRM++pyciRbhbQ3hkpruvPz4uUvC7PTMSiSYiCZnN5U
Kg1ExxIi3O0bWQLIAFpS3OlJxbGgqlyicbmjLO6hQ+6akhnx8WG6AcWse0qq7bcP
/3gu64IYhc33JxGUJ+vhj1txSXOT9XYki7aPfbIsd7mlio70p2UnLzznvKICbdSU
KUAAAaB33ex885RsybVP8gy/d9Vg+pxE6em/3ZO7d2lKZPFhTBtfS/i/UGxKY8Q4
tsKMzuwhoOhYQu5rvirErKKy6nd0GCqASxtD29it2c9zze8te5H9QIsWtv/6axTX
6RBsD/X5c9k1L0nbXfSb3Jw8/v98get7ZrgrFD2Wkd5YU5DYl2Ru1kwCwNQKiFCh
acSPnDkMWjtvh+l14jjd8fANj83dZmcrlDD5NnOiP3NWX8yV8Rf1iVX7s7WVzQhq
HGBeJAd19O7jroiqyAzFw09zqd8CdESJ6Y8sj5cMKL98yFUHBt5n1j3JVzXCEUgH
WnS6usoUwVFW4THdo9qoGtb7WlZR/5tMxYYm/PES39fxYlV++g9avmpxvoE/krDD
3e4UhkENvup4AQL8eE9SB7RYD6nzWgOPZvG92gKKxqOgW85sIeF6/uwzNn0rJAbJ
BnSD2YAOFcruPzwuWgk8ndDapQYI/4O10UDBrxUZHZxCHFWW78Xc5+I9enUvuN3V
MxTCyk4UW5FGrp2mKGTyGLoqm8AqBV+7yXYATGk8WH5ApXOSyUla/l/vUWDcJTp+
JIkMyrLVbZf6n6Q6MOkLBpgPSe7/FbfSRINOdkRHGWZg
=/ReQ
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -0,0 +1,63 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
=/ReQ
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -1,17 +0,0 @@
diff --git a/third_party/libwebrtc/moz.build b/third_party/libwebrtc/moz.build
index 8579f8bb3622..d9ca79d4fcb8 100644
--- a/third_party/libwebrtc/moz.build
+++ b/third_party/libwebrtc/moz.build
@@ -520,7 +520,10 @@ if CONFIG["CPU_ARCH"] == "ppc64" and CONFIG["OS_TARGET"] == "Linux":
"/third_party/libwebrtc/api/audio_codecs/isac/audio_decoder_isac_float_gn",
"/third_party/libwebrtc/api/audio_codecs/isac/audio_encoder_isac_float_gn",
"/third_party/libwebrtc/modules/audio_coding/isac_c_gn",
- "/third_party/libwebrtc/modules/audio_coding/isac_gn"
+ "/third_party/libwebrtc/modules/audio_coding/isac_gn",
+ "/third_party/libwebrtc/modules/desktop_capture/desktop_capture_generic_gn",
+ "/third_party/libwebrtc/modules/desktop_capture/desktop_capture_gn",
+ "/third_party/libwebrtc/modules/desktop_capture/primitives_gn"
]
if CONFIG["CPU_ARCH"] == "x86" and CONFIG["OS_TARGET"] == "Linux":

View File

@ -6,12 +6,13 @@ ac_add_options --enable-linker=lld
ac_add_options --enable-hardening
ac_add_options --enable-optimize
ac_add_options --enable-rust-simd
# https://bugzilla.mozilla.org/show_bug.cgi?id=1423822
ac_add_options --with-wasi-sysroot=/usr/share/wasi-sysroot
# Branding
ac_add_options --enable-official-branding
ac_add_options --enable-update-channel=release
ac_add_options --with-distribution-id=org.archlinux
ac_add_options --with-distribution-id=org.archpower
# Keys
ac_add_options --with-google-location-service-api-keyfile=@PWD@/google-api-key
@ -23,6 +24,7 @@ ac_add_options --with-system-zlib
ac_add_options --with-system-bz2
ac_add_options --with-system-icu
ac_add_options --with-system-jpeg
ac_add_options --with-system-jsonc
# does not have APNG support
# ac_add_options --with-system-png
ac_add_options --with-system-libvpx

View File

@ -1,273 +0,0 @@
# HG changeset patch
# User Nazım Can Altınova <canaltinova@gmail.com>
# Date 1676296366 0
# Node ID 8d310a8b6460a18313dc50a7c612f7f6703718ad
# Parent dee626e0693967f3f7be9fd4be3737c2fe5cb3ea
Bug 1807652 - Rename some methods to not conflict with aliases r=mstange
We have some aliases with the names of LockedRWFromAnyThread and
LockedRWOnThread. We also had some methods with the same name. clang and gcc
that were before version 12 weren't complaining about that. But apparently
starting from gcc 13, it became an error. This patch renames the methods so we
don't conflict with these aliases anymore.
Differential Revision: https://phabricator.services.mozilla.com/D169507
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
@@ -1173,17 +1173,17 @@ class ActivePS {
ProfiledThreadData* profiledThreadData =
offThreadRef.UnlockedRWForLockedProfilerRef().GetProfiledThreadData(
aLock);
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}));
}
for (auto& t : sInstance->mDeadProfiledThreads) {
MOZ_RELEASE_ASSERT(array.append(ProfiledThreadListElement{
t->Info().RegisterTime(), (JSContext*)nullptr, t.get()}));
@@ -4205,17 +4205,17 @@ void SamplerThread::Run() {
// get incorrectly duplicated when the thread is sleeping.
if (!runningTimesDiff.IsEmpty()) {
profiler_get_core_buffer().PutObjects(
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) {
DoPeriodicSample(lock, lockedThreadData.DataCRef(), aRegs,
samplePos, bufferRangeStart,
localProfileBuffer);
@@ -4919,17 +4919,17 @@ static ProfilingStack* locked_register_t
VTUNE_REGISTER_THREAD(aOffThreadRef.UnlockedConstReaderCRef().Info().Name());
if (ActivePS::Exists(aLock)) {
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<ProfiledThreadData>(
aOffThreadRef.UnlockedConstReaderCRef().Info()));
lockedRWFromAnyThread->SetProfilingFeaturesAndData(
threadProfilingFeatures, profiledThreadData, aLock);
if (ActivePS::FeatureJS(aLock)) {
@@ -5785,17 +5785,17 @@ static void locked_profiler_start(PSLock
for (ThreadRegistry::OffThreadRef offThreadRef : lockedRegistry) {
const ThreadRegistrationInfo& info =
offThreadRef.UnlockedConstReaderCRef().Info();
ThreadProfilingFeatures threadProfilingFeatures =
ActivePS::ProfilingFeaturesForThread(aLock, info);
if (threadProfilingFeatures != ThreadProfilingFeatures::NotProfiled) {
ThreadRegistry::OffThreadRef::RWFromAnyThreadWithLock lockedThreadData =
- offThreadRef.LockedRWFromAnyThread();
+ offThreadRef.GetLockedRWFromAnyThread();
ProfiledThreadData* profiledThreadData = ActivePS::AddLiveProfiledThread(
aLock, MakeUnique<ProfiledThreadData>(info));
lockedThreadData->SetProfilingFeaturesAndData(threadProfilingFeatures,
profiledThreadData, aLock);
lockedThreadData->GetNewCpuTimeInNs();
if (ActivePS::FeatureJS(aLock)) {
lockedThreadData->StartJSSampling(ActivePS::JSFlags(aLock));
if (ThreadRegistration::LockedRWOnThread* lockedRWOnThread =
@@ -6009,17 +6009,17 @@ void profiler_ensure_started(PowerOfTwo3
ThreadRegistry::LockedRegistry lockedRegistry;
for (ThreadRegistry::OffThreadRef offThreadRef : lockedRegistry) {
if (offThreadRef.UnlockedRWForLockedProfilerRef().ProfilingFeatures() ==
ThreadProfilingFeatures::NotProfiled) {
continue;
}
ThreadRegistry::OffThreadRef::RWFromAnyThreadWithLock lockedThreadData =
- offThreadRef.LockedRWFromAnyThread();
+ offThreadRef.GetLockedRWFromAnyThread();
lockedThreadData->ClearProfilingFeaturesAndData(aLock);
if (ActivePS::FeatureJS(aLock)) {
lockedThreadData->StopJSSampling();
if (ThreadRegistration::LockedRWOnThread* lockedRWOnThread =
lockedThreadData.GetLockedRWOnThread();
lockedRWOnThread) {
@@ -6352,17 +6352,17 @@ static void locked_unregister_thread(
// down.
return;
}
// 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);
MOZ_RELEASE_ASSERT(
lockedThreadData->Info().ThreadId() == profiler_current_thread_id(),
"Thread being unregistered has changed its TID");
@@ -6873,17 +6873,17 @@ void profiler_clear_js_context() {
aOnThreadRef.UnlockedReaderAndAtomicRWOnThreadCRef().GetJSContext();
if (!cx) {
return;
}
// 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)) {
profiledThreadData->NotifyAboutToLoseJSContext(
cx, CorePS::ProcessStartTime(), ActivePS::Buffer(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
@@ -209,24 +209,24 @@ class ThreadRegistration {
RWOnThreadWithLock(LockedRWOnThread& aLockedRWOnThread,
DataMutex& aDataMutex)
: mLockedRWOnThread(aLockedRWOnThread), mDataLock(aDataMutex) {}
LockedRWOnThread& mLockedRWOnThread;
DataLock mDataLock;
};
- [[nodiscard]] RWOnThreadWithLock LockedRWOnThread() {
+ [[nodiscard]] RWOnThreadWithLock GetLockedRWOnThread() {
return RWOnThreadWithLock{mThreadRegistration->mData,
mThreadRegistration->mDataMutex};
}
template <typename F>
auto WithLockedRWOnThread(F&& aF) {
- RWOnThreadWithLock lockedData = LockedRWOnThread();
+ RWOnThreadWithLock lockedData = GetLockedRWOnThread();
return std::forward<F>(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
// to itself, so that the next follow-up `->` will work as member accessor.
OnThreadRef* operator->() && { return this; }
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
@@ -172,24 +172,24 @@ class ThreadRegistry {
ThreadRegistration::DataMutex& aDataMutex)
: mLockedRWFromAnyThread(aLockedRWFromAnyThread),
mDataLock(aDataMutex) {}
LockedRWFromAnyThread& mLockedRWFromAnyThread;
ThreadRegistration::DataLock mDataLock;
};
- [[nodiscard]] RWFromAnyThreadWithLock LockedRWFromAnyThread() {
+ [[nodiscard]] RWFromAnyThreadWithLock GetLockedRWFromAnyThread() {
return RWFromAnyThreadWithLock{mThreadRegistration->mData,
mThreadRegistration->mDataMutex};
}
template <typename F>
auto WithLockedRWFromAnyThread(F&& aF) {
- RWFromAnyThreadWithLock lockedData = LockedRWFromAnyThread();
+ RWFromAnyThreadWithLock lockedData = GetLockedRWFromAnyThread();
return std::forward<F>(aF)(lockedData.DataRef());
}
private:
// Only ThreadRegistry should construct an OnThreadRef.
friend class ThreadRegistry;
explicit OffThreadRef(ThreadRegistration& aThreadRegistration)
: mThreadRegistration(&aThreadRegistration) {}
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
@@ -617,17 +617,17 @@ TEST(GeckoProfiler, ThreadRegistration_D
});
EXPECT_FALSE(TR::IsDataMutexLockedOnCurrentThread());
// 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,
afterRegistration, &onStackChar);
}
EXPECT_FALSE(TR::IsDataMutexLockedOnCurrentThread());
@@ -1016,17 +1016,17 @@ TEST(GeckoProfiler, ThreadRegistry_DataA
});
EXPECT_FALSE(TR::IsDataMutexLockedOnCurrentThread());
// 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,
&onStackChar, testThreadId);
}
EXPECT_FALSE(TR::IsDataMutexLockedOnCurrentThread());
@@ -1153,17 +1153,17 @@ TEST(GeckoProfiler, ThreadRegistration_R
++otherThreadLoops;
TRy::WithOffThreadRef(testThreadId, [&](TRy::OffThreadRef
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));
}
});
}
});

File diff suppressed because one or more lines are too long

View File

@ -1,77 +0,0 @@
https://bugzilla.mozilla.org/show_bug.cgi?id=1504834#c5
https://bugzilla.mozilla.org/attachment.cgi?id=9028600
--- a/gfx/skia/skia/third_party/skcms/skcms.cc
+++ b/gfx/skia/skia/third_party/skcms/skcms.cc
@@ -30,6 +30,8 @@
#include <avx512fintrin.h>
#include <avx512dqintrin.h>
#endif
+#elif defined(__BIG_ENDIAN__)
+ #define SKCMS_PORTABLE
#endif
// sizeof(x) will return size_t, which is 32-bit on some machines and 64-bit on others.
@@ -280,20 +282,28 @@ enum {
static uint16_t read_big_u16(const uint8_t* ptr) {
uint16_t be;
memcpy(&be, ptr, sizeof(be));
-#if defined(_MSC_VER)
- return _byteswap_ushort(be);
+#if defined(__BIG_ENDIAN__)
+ return be;
#else
+ #if defined(_MSC_VER)
+ return _byteswap_ushort(be);
+ #else
return __builtin_bswap16(be);
+ #endif
#endif
}
static uint32_t read_big_u32(const uint8_t* ptr) {
uint32_t be;
memcpy(&be, ptr, sizeof(be));
-#if defined(_MSC_VER)
- return _byteswap_ulong(be);
+#if defined(__BIG_ENDIAN__)
+ return be;
#else
+ #if defined(_MSC_VER)
+ return _byteswap_ulong(be);
+ #else
return __builtin_bswap32(be);
+ #endif
#endif
}
--- a/gfx/2d/DrawTargetSkia.cpp
+++ b/gfx/2d/DrawTargetSkia.cpp
@@ -138,8 +138,7 @@ static IntRect CalculateSurfaceBounds(const IntSize& a
return surfaceBounds.Intersect(bounds);
}
-static const int kARGBAlphaOffset =
- SurfaceFormat::A8R8G8B8_UINT32 == SurfaceFormat::B8G8R8A8 ? 3 : 0;
+static const int kARGBAlphaOffset = 0;
static bool VerifyRGBXFormat(uint8_t* aData, const IntSize& aSize,
const int32_t aStride, SurfaceFormat aFormat) {
--- a/gfx/2d/Types.h
+++ b/gfx/2d/Types.h
@@ -87,15 +87,8 @@ enum class SurfaceFormat : int8_t {
// The following values are endian-independent synonyms. The _UINT32 suffix
// indicates that the name reflects the layout when viewed as a uint32_t
// value.
-#if MOZ_LITTLE_ENDIAN()
A8R8G8B8_UINT32 = B8G8R8A8, // 0xAARRGGBB
X8R8G8B8_UINT32 = B8G8R8X8, // 0x00RRGGBB
-#elif MOZ_BIG_ENDIAN()
- A8R8G8B8_UINT32 = A8R8G8B8, // 0xAARRGGBB
- X8R8G8B8_UINT32 = X8R8G8B8, // 0x00RRGGBB
-#else
-# error "bad endianness"
-#endif
// The following values are OS and endian-independent synonyms.
//

View File

@ -1,44 +0,0 @@
# HG changeset patch
# Parent aecb4600e5da17443b224c79eee178c1d8e155e3
For FF68, AntiAliasing of XULTexts seem to be broken on big endian (s390x). Text and icons of the sandwich-menu to the
right of the address bar, as well as plugin-windows appears transparant, which usually means unreadable (white on white).
diff -r aecb4600e5da gfx/skia/skia/include/private/SkNx.h
--- a/gfx/skia/skia/include/private/SkNx.h Tue Aug 20 09:46:55 2019 +0200
+++ b/gfx/skia/skia/include/private/SkNx.h Mon Sep 09 10:04:06 2019 +0200
@@ -238,7 +238,18 @@
AI SkNx operator*(const SkNx& y) const { return fVal * y.fVal; }
AI SkNx operator/(const SkNx& y) const { return fVal / y.fVal; }
+ // On Big endian the commented out variant doesn't work,
+ // and honestly, I have no idea why it exists in the first place.
+ // The reason its broken is, I think, that it defaults to the double-variant of ToBits()
+ // which gets a 64-bit integer, and FromBits returns 32-bit,
+ // cutting off the wrong half again.
+ // Overall, I see no reason to have ToBits and FromBits at all (even for floats/doubles).
+ // Still we are only "fixing" this for big endian and leave little endian alone (never touch a running system)
+#ifdef SK_CPU_BENDIAN
+ AI SkNx operator&(const SkNx& y) const { return fVal & y.fVal; }
+#else
AI SkNx operator&(const SkNx& y) const { return FromBits(ToBits(fVal) & ToBits(y.fVal)); }
+#endif
AI SkNx operator|(const SkNx& y) const { return FromBits(ToBits(fVal) | ToBits(y.fVal)); }
AI SkNx operator^(const SkNx& y) const { return FromBits(ToBits(fVal) ^ ToBits(y.fVal)); }
diff -r aecb4600e5da gfx/skia/skia/src/opts/SkBlitMask_opts.h
--- a/gfx/skia/skia/src/opts/SkBlitMask_opts.h Tue Aug 20 09:46:55 2019 +0200
+++ b/gfx/skia/skia/src/opts/SkBlitMask_opts.h Mon Sep 09 10:04:06 2019 +0200
@@ -203,7 +203,13 @@
// ~~~>
// a = 1*aa + d(1-1*aa) = aa + d(1-aa)
// c = 0*aa + d(1-1*aa) = d(1-aa)
+
+ // For big endian we have to swap the alpha-mask from 0,0,0,255 to 255,0,0,0
+#ifdef SK_CPU_BENDIAN
+ return Sk4px(Sk16b(aa) & Sk16b(255,0,0,0, 255,0,0,0, 255,0,0,0, 255,0,0,0))
+#else
return Sk4px(Sk16b(aa) & Sk16b(0,0,0,255, 0,0,0,255, 0,0,0,255, 0,0,0,255))
+#endif
+ d.approxMulDiv255(aa.inv());
};
while (h --> 0) {

View File

@ -1,32 +0,0 @@
CompositableHost.cpp patch added by @q66, based on patch in issue 1602730.
# HG changeset patch
# Parent 46ea866ca3acb8bb5e1709ceb799b9c94f591dec
Problem description: Tab-titles that are too long to fit into a tab get faded out.
On big endian this is broken and instead of fading out, the
tab gets white and the font transparent, leading to an unreadable
tab-title
Solution: This is not a real solution, but a hack. The real solution would have been
to byte-swap the correct buffer, but I could not find it.
So the next best thing is to deactivate the fading-effect. Now all tab-titles
are readable, albeit not as pretty to look at as they could be.
Side-effects: I have not yet found an unwanted side-effect.
diff -r 46ea866ca3ac -r 6ef20eee3f8f gfx/2d/DrawTargetSkia.cpp
--- a/gfx/2d/DrawTargetSkia.cpp Tue Oct 22 12:27:22 2019 +0200
+++ b/gfx/2d/DrawTargetSkia.cpp Thu Oct 31 09:11:56 2019 +0100
@@ -1861,6 +1861,14 @@
SkCanvas::kPreserveLCDText_SaveLayerFlag |
(aCopyBackground ? SkCanvas::kInitWithPrevious_SaveLayerFlag : 0));
+#if MOZ_BIG_ENDIAN()
+ // Pushing a layer where an aMask is defined produces wrong output.
+ // We _should_ endian swap the data, but I couldn't find a workable way to do so
+ // Therefore I deactivate those layers in the meantime.
+ // The result is: Tab-titles that are longer than the available space should be faded out.
+ // The fading doesn't work, so we deactivate the fading-effect here.
+ if (!aMask)
+#endif
mCanvas->saveLayer(saveRec);
SetPermitSubpixelAA(aOpaque);