From 9ffe136f6aca63d7f9a78c1b6b08cbafa12a2753 Mon Sep 17 00:00:00 2001 From: Zach van Rijn Date: Tue, 13 Dec 2022 15:35:12 -0600 Subject: user/qt5-qtwebkit: ppc ucontext patch. 32-bit link flags. fixes #922. This patch reverts upstream a7cdcdc77b8efef239d9b06e857a64e490d1a81b which caused a build failure on musl. Additionally, 32-bit architectures (ppc in particular) may fail to link due to address space limitations. Adjust link flags to mitigate. --- user/qt5-qtwebkit/APKBUILD | 22 ++++++++++++++++++---- user/qt5-qtwebkit/ppc-ucontext.patch | 15 +++++++++++++++ 2 files changed, 33 insertions(+), 4 deletions(-) create mode 100644 user/qt5-qtwebkit/ppc-ucontext.patch diff --git a/user/qt5-qtwebkit/APKBUILD b/user/qt5-qtwebkit/APKBUILD index 7431683e0..63e18cb07 100644 --- a/user/qt5-qtwebkit/APKBUILD +++ b/user/qt5-qtwebkit/APKBUILD @@ -4,7 +4,7 @@ pkgname=qt5-qtwebkit _realname=qtwebkit pkgver=5.212.0_git20200924 _ts=1600955993 -pkgrel=0 +pkgrel=1 pkgdesc="Open source Web browser engine" url="https://github.com/qtwebkit/qtwebkit/wiki" arch="all" @@ -20,20 +20,33 @@ makedepends="$depends_dev ninja sqlite-dev icu-dev ruby perl bison flex gperf ruby-dev glib-dev libgcrypt-dev libtasn1-dev" subpackages="$pkgname-dev" #source="https://github.com/qtwebkit/qtwebkit/releases/download/$_realname-$_realver/$_realname-$_realver.tar.xz -source="https://download.qt.io/snapshots/ci/qtwebkit/5.212/$_ts/src/submodules/$_realname-opensource-src-5.212.tar.xz +source="https://download.qt.io/snapshots/ci/qtwebkit/${pkgver%.*}/$_ts/src/submodules/$_realname-opensource-src-${pkgver%.*}.tar.xz armv6.patch glib-compat.patch icu-68.patch jsc-musl.patch ppc-llint.patch + ppc-ucontext.patch ppc64-llint.patch " -builddir="$srcdir"/$_realname-opensource-src-5.212 +builddir="$srcdir"/$_realname-opensource-src-${pkgver%.*} build() { if [ "$CBUILD" != "$CHOST" ]; then CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux" fi + + case "${CARCH}" in + armv7|pmmx|ppc) + # 32-bit memory ceiling (#922) + BUILD_TYPE="MinSizeRel"; + LDFLAGS="${LDFLAGS} -Wl,--strip-debug"; + ;; + *) + BUILD_TYPE="RelWithDebugInfo"; + ;; + esac + # We can enable the JIT when it is stable on all Tier 1 platforms: # pmmx (ensure no SSE) # ppc @@ -47,7 +60,7 @@ build() { -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=lib \ -DBUILD_SHARED_LIBS=True \ - -DCMAKE_BUILD_TYPE=RelWithDebugInfo \ + -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ -DCMAKE_CXX_FLAGS="$CXXFLAGS" \ -DCMAKE_C_FLAGS="$CFLAGS" \ -DENABLE_JIT=OFF \ @@ -79,4 +92,5 @@ ca77802de1b945c05b6a88d5cc0cbb093a751ef16626d221c8b2ca5cf841f5d42fffe62087df1ce0 5f0ca182c68c55a6f221e96bf2221784c7126006ea8db3e9eee2b66dbdda18d7d0f9830e8345ac2b0bc6f557af5d2a54a321b06be4a2c845dd1003282b053443 icu-68.patch 9e3638d4d5c6e56510525931b278c8d6e28134917c300837b4eccf1b9298af1e274668318af82091137e99b83da0f78904084b7ee9dd8422b347a0f35e765c31 jsc-musl.patch 4a3a15f8b1e63cade07c589be45afd794b45b34ee98e4d2d3fc2f52662c26c518d400b44c9314e41113cad847b9efd544d2a4c02425c9892ca9729e218ae9306 ppc-llint.patch +48f81c6a2c0f4e9b215dada4c0bebdafc66feb75178a7b1ca661f2bbcddd6b573e7db4dd179f6e4b6345c7ebcf17ce1c6647cc6ce39dbac8ba68f8863a98bdc0 ppc-ucontext.patch db98d710815eb68f1fb025098b04c34b33518750c193e702383ca879e145c52ba4786fa4721f384f01f90231c32be9478d507c1000eb761621751edcd071b966 ppc64-llint.patch" diff --git a/user/qt5-qtwebkit/ppc-ucontext.patch b/user/qt5-qtwebkit/ppc-ucontext.patch new file mode 100644 index 000000000..e1b9bdfda --- /dev/null +++ b/user/qt5-qtwebkit/ppc-ucontext.patch @@ -0,0 +1,15 @@ +diff -ur a/Source/JavaScriptCore/heap/MachineStackMarker.cpp b/Source/JavaScriptCore/heap/MachineStackMarker.cpp +--- a/Source/JavaScriptCore/heap/MachineStackMarker.cpp 2022-12-13 14:54:53.144583311 -0600 ++++ b/Source/JavaScriptCore/heap/MachineStackMarker.cpp 2022-12-13 14:55:16.829078581 -0600 +@@ -86,11 +86,7 @@ + } + + ucontext_t* userContext = static_cast(ucontext); +-#if CPU(PPC) +- thread->suspendedMachineContext = *userContext->uc_mcontext.uc_regs; +-#else + thread->suspendedMachineContext = userContext->uc_mcontext; +-#endif + + // Allow suspend caller to see that this thread is suspended. + // sem_post is async-signal-safe function. It means that we can call this from a signal handler. -- cgit v1.2.3-70-g09d2