firefox: add patches for BE/ppc, mark broken on ppc32

[ci skip]
This commit is contained in:
q66 2019-08-13 17:23:18 +02:00 committed by Johannes
parent 92c67bf51d
commit 99f6f341ca
4 changed files with 78 additions and 4 deletions

View file

@ -0,0 +1,15 @@
Imported from Adélie. Firefox is prone to this warning on BE and
it leads to huge .xsession-errors, and the warning is not very
important or meaningful, so just disable it.
--- gfx/2d/HelpersCairo.h
+++ gfx/2d/HelpersCairo.h
@@ -147,7 +147,7 @@
case SurfaceFormat::R5G6B5_UINT16:
return CAIRO_FORMAT_RGB16_565;
default:
- gfxCriticalError() << "Unknown image format " << (int)format;
+ //gfxCriticalError() << "Unknown image format " << (int)format;
return CAIRO_FORMAT_ARGB32;
}
}

View file

@ -0,0 +1,11 @@
--- mozglue/misc/StackWalk.cpp 2017-04-11 04:13:21.000000000 +0200
+++ mozglue/misc/StackWalk.cpp 2017-11-29 15:23:07.218649970 +0100
@@ -41,7 +41,7 @@
#define MOZ_STACKWALK_SUPPORTS_MACOSX 0
#endif
-#if (defined(linux) && \
+#if defined(__GLIBC__) && (defined(linux) && \
((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \
defined(HAVE__UNWIND_BACKTRACE)))
#define MOZ_STACKWALK_SUPPORTS_LINUX 1

View file

@ -0,0 +1,48 @@
# HG changeset patch
# User A. Wilcox <AWilcox@Wilcox-Tech.com>
# Date 1543674229 0
# Sat Dec 01 14:23:49 2018 +0000
# Node ID 0309ff19e46b126c527e633518d7de8570442114
# Parent 53107afbc21ec78e7ac46d37af212505f2032d5d
Bug 1511604 - Swizzle YCbCr->RGB data on big-endian machines
diff -r 53107afbc21e -r 0309ff19e46b gfx/ycbcr/YCbCrUtils.cpp
--- gfx/ycbcr/YCbCrUtils.cpp Wed Nov 07 04:50:21 2018 +0000
+++ gfx/ycbcr/YCbCrUtils.cpp Sat Dec 01 14:23:49 2018 +0000
@@ -3,7 +3,9 @@
* 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 "mozilla/EndianUtils.h"
#include "gfx2DGlue.h"
+#include "mozilla/gfx/Swizzle.h"
#include "YCbCrUtils.h"
#include "yuv_convert.h"
@@ -236,6 +238,13 @@
yuvtype,
srcData.mYUVColorSpace);
}
+#if MOZ_BIG_ENDIAN
+ // libyuv makes endian-correct result, which needs to be swapped to BGRX
+ if (aDestFormat != SurfaceFormat::R5G6B5_UINT16)
+ gfx::SwizzleData(aDestBuffer, aStride, gfx::SurfaceFormat::X8R8G8B8,
+ aDestBuffer, aStride, gfx::SurfaceFormat::B8G8R8X8,
+ srcData.mPicSize);
+#endif
}
void
@@ -257,6 +266,12 @@
aSrcStrideYA,
aSrcStrideUV,
aDstStrideARGB);
+#if MOZ_BIG_ENDIAN
+ // libyuv makes endian-correct result, which needs to be swapped to BGRA
+ gfx::SwizzleData(aDstARGB, aDstStrideARGB, gfx::SurfaceFormat::A8R8G8B8,
+ aDstARGB, aDstStrideARGB, gfx::SurfaceFormat::B8G8R8A8,
+ IntSize(aWidth, aHeight));
+#endif
}
} // namespace gfx

View file

@ -40,6 +40,8 @@ case $XBPS_TARGET_MACHINE in
armv6*)
broken="required NEON extensions are not supported on armv6"
;;
ppc64*) ;;
ppc*) broken="ftbfs in several places" ;;
esac
post_extract() {
@ -112,12 +114,10 @@ do_build() {
;;
esac
case "$XBPS_MACHINE" in
i686*)
if [ "$XBPS_WORDSIZE" -eq 32 ]; then
# ENOMEM
echo "ac_add_options --disable-debug-symbols" >>.mozconfig
;;
esac
fi
export LDFLAGS+=" -Wl,-rpath=/usr/lib/firefox"