* update thunderbird to 115.0.1-1
This commit is contained in:
parent
288f569172
commit
4c4dfcc0cf
@ -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:
|
||||
|
@ -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>
|
@ -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 &&
|
@ -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" }
|
@ -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;
|
||||
}
|
||||
}
|
@ -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
|
@ -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;
|
@ -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>
|
@ -0,0 +1,63 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
=/ReQ
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
@ -0,0 +1,63 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
=/ReQ
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
@ -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":
|
||||
|
@ -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
|
||||
|
@ -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
@ -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.
|
||||
//
|
@ -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) {
|
@ -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);
|
Loading…
x
Reference in New Issue
Block a user