Skip to content
Snippets Groups Projects
Verified Commit 1a2f5691 authored by Anna Wilcox's avatar Anna Wilcox :fox:
Browse files

user/qt5-qtwebkit: Bump to 5.212.0 git snapshot

This is required to build against Qt 5.12 and supports ppc64.
parent 474dbb60
No related branches found
No related tags found
No related merge requests found
# Contributor: A. Wilcox <awilfox@adelielinux.org>
# Maintainer: A. Wilcox <awilfox@adelielinux.org>
pkgname=qt5-qtwebkit
_realname=qtwebkit
pkgver=5.212.0_alpha2
_realver=$(printf '%s' "$pkgver" | sed 's/_/-/')
pkgrel=0
pkgdesc="Open source Web browser engine"
url="https://github.com/annulen/webkit"
arch="all"
license="LGPL-2.1+ AND BSD-3-Clause AND Others"
depends="gst-plugins-base"
depends_dev="qt5-qtbase-dev"
makedepends="$depends_dev ninja sqlite-dev icu-dev ruby perl bison flex gperf
libxml2-dev libxslt-dev libjpeg-turbo-dev libpng-dev zlib-dev glib-dev
gstreamer-dev fontconfig-dev qt5-qtsensors-dev qt5-qtpositioning-dev
qt5-qtdeclarative-dev qt5-qtwebchannel-dev libxcomposite-dev
libxrender-dev gst-plugins-base-dev hyphen-dev libexecinfo-dev"
subpackages="$pkgname-dev $pkgname-doc"
source="https://github.com/annulen/webkit/releases/download/$_realname-$_realver/$_realname-$_realver.tar.xz
jsc-port-to-musl.patch
musl-thread-stacksize.patch
"
builddir="$srcdir"/$_realname-$_realver
unpack() {
default_unpack
# just ripped from Firefox's APKBUILD...
[ -z $SKIP_PYTHON ] || return 0
msg "Killing all remaining hope for humanity and building Python 2..."
cd "$srcdir"
[ -d python ] && rm -r python
mkdir python
cd python
# 19:39 <+solar> just make the firefox build process build its own py2 copy
curl -O https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tar.xz
tar xJf Python-2.7.15.tar.xz
cd Python-2.7.15
# 20:03 <calvin> TheWilfox: there's always violence
./configure --prefix="$srcdir/python"
make -j $JOBS
# 6 tests failed:
# test__locale test_os test_posix test_re test_strptime test_time
# make test
make -j $JOBS install
}
build() {
cd "$builddir"
if [ "$CBUILD" != "$CHOST" ]; then
CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
fi
export PATH="$srcdir/python/bin:$PATH"
# We can enable the JIT when it is stable on all Tier 1 platforms:
# pmmx (ensure no SSE)
# ppc
# ppc64
#
# DONE:
# aarch64
# armv7
# x86_64
cmake \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DBUILD_SHARED_LIBS=True \
-DCMAKE_BUILD_TYPE=RelWithDebugInfo \
-DCMAKE_CXX_FLAGS="$CXXFLAGS" \
-DCMAKE_C_FLAGS="$CFLAGS" \
-DENABLE_JIT=OFF \
-DPORT=Qt \
-DUSE_SYSTEM_MALLOC=ON \
${CMAKE_CROSSOPTS}
# too memory hungry
if [ -z "$JOBS" ] || [ $JOBS -gt 32 ]; then
make -j32
else
make
fi
}
check() {
cd "$builddir"
CTEST_OUTPUT_ON_FAILURE=TRUE ctest
}
package() {
cd "$builddir"
make DESTDIR="$pkgdir" install
}
sha512sums="b15985aab20c5618dc1f71a0d91f02dbed993516272090a4a12990714bf4c9554ccbdcf9d6a143bf46fcc2c170f691e571114d61686fe49791f8d5c540785758 qtwebkit-5.212.0-alpha2.tar.xz
19efd97c5f628108d30cc0e5e53f689725cc480ffe1ea90577e5f961d7f35a6a434dda5a03c73c0fb74a30c46ced32bcf580340a2eaf4e72960e61c28ed34dba jsc-port-to-musl.patch
a8df6d20346882e49745dbdf9bdf2eddf2f3e1ac3301e9fd826397fa746d1d9228deaf2eab0316fa977a85032d6c091559cd5404b7a576e3adc0bec64a5a4ad9 musl-thread-stacksize.patch"
diff -Naur qtwebkit-5.212.0-alpha2-original/Source/JavaScriptCore/heap/MachineStackMarker.cpp qtwebkit-5.212.0-alpha2/Source/JavaScriptCore/heap/MachineStackMarker.cpp
--- qtwebkit-5.212.0-alpha2-original/Source/JavaScriptCore/heap/MachineStackMarker.cpp 2017-06-04 20:16:05.000000000 +0000
+++ qtwebkit-5.212.0-alpha2/Source/JavaScriptCore/heap/MachineStackMarker.cpp 2018-09-26 02:13:44.660000000 +0000
@@ -566,7 +566,7 @@
#error Unknown Architecture
#endif
-#elif defined(__GLIBC__) && ENABLE(JIT)
+#elif defined(__linux__) && ENABLE(JIT)
#if CPU(X86)
return reinterpret_cast<void*>((uintptr_t) regs.machineContext.gregs[REG_ESP]);
@@ -665,7 +665,7 @@
#error Unknown Architecture
#endif
-#elif defined(__GLIBC__)
+#elif defined(__linux__)
// The following sequence depends on glibc's sys/ucontext.h.
#if CPU(X86)
@@ -747,7 +747,7 @@
#error Unknown Architecture
#endif
-#elif defined(__GLIBC__)
+#elif defined(__linux__)
// The following sequence depends on glibc's sys/ucontext.h.
#if CPU(X86)
@@ -838,7 +838,7 @@
#error Unknown Architecture
#endif
-#elif defined(__GLIBC__)
+#elif defined(__linux__)
// The following sequence depends on glibc's sys/ucontext.h.
#if CPU(X86)
diff -Naur qtwebkit-5.212.0-alpha2-original/Source/ThirdParty/ANGLE/src/compiler/preprocessor/ExpressionParser.cpp qtwebkit-5.212.0-alpha2/Source/ThirdParty/ANGLE/src/compiler/preprocessor/ExpressionParser.cpp
--- qtwebkit-5.212.0-alpha2-original/Source/ThirdParty/ANGLE/src/compiler/preprocessor/ExpressionParser.cpp 2017-06-04 20:16:06.000000000 +0000
+++ qtwebkit-5.212.0-alpha2/Source/ThirdParty/ANGLE/src/compiler/preprocessor/ExpressionParser.cpp 2018-09-26 02:12:36.770000000 +0000
@@ -828,7 +828,7 @@
#if YYERROR_VERBOSE
# ifndef yystrlen
-# if defined __GLIBC__ && defined _STRING_H
+# if defined __linux__ && defined _STRING_H
# define yystrlen strlen
# else
/* Return the length of YYSTR. */
@@ -844,7 +844,7 @@
# endif
# ifndef yystpcpy
-# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
+# if defined __linux__ && defined _STRING_H && defined _GNU_SOURCE
# define yystpcpy stpcpy
# else
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
diff -Naur qtwebkit-5.212.0-alpha2-original/Source/ThirdParty/ANGLE/src/compiler/translator/glslang_tab.cpp qtwebkit-5.212.0-alpha2/Source/ThirdParty/ANGLE/src/compiler/translator/glslang_tab.cpp
--- qtwebkit-5.212.0-alpha2-original/Source/ThirdParty/ANGLE/src/compiler/translator/glslang_tab.cpp 2017-06-04 20:16:06.000000000 +0000
+++ qtwebkit-5.212.0-alpha2/Source/ThirdParty/ANGLE/src/compiler/translator/glslang_tab.cpp 2018-09-26 02:12:54.740000000 +0000
@@ -1835,7 +1835,7 @@
#if YYERROR_VERBOSE
# ifndef yystrlen
-# if defined __GLIBC__ && defined _STRING_H
+# if defined __linux__ && defined _STRING_H
# define yystrlen strlen
# else
/* Return the length of YYSTR. */
@@ -1851,7 +1851,7 @@
# endif
# ifndef yystpcpy
-# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
+# if defined __linux__ && defined _STRING_H && defined _GNU_SOURCE
# define yystpcpy stpcpy
# else
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
--- qtwebkit-5.212.0-alpha2/Source/WTF/wtf/ThreadingPthreads.cpp.old 2017-06-04 15:16:06.000000000 -0500
+++ qtwebkit-5.212.0-alpha2/Source/WTF/wtf/ThreadingPthreads.cpp 2018-09-05 02:29:45.980000000 +0000
@@ -107,10 +107,11 @@
void initializeThreading()
{
static bool isInitialized;
+ pthread_attr_t attr;
if (isInitialized)
return;
isInitialized = true;
WTF::double_conversion::initialize();
@@ -122,6 +122,11 @@
ThreadIdentifierData::initializeOnce();
wtfThreadData();
initializeDates();
+
+ pthread_attr_init(&attr);
+ pthread_attr_setstacksize(&attr, 2097152);
+ pthread_setattr_default_np(&attr);
+ pthread_attr_destroy(&attr);
}
static ThreadMap& threadMap()
@@ -171,6 +171,7 @@
pthread_t threadHandle;
pthread_attr_t attr;
pthread_attr_init(&attr);
+ pthread_attr_setstacksize(&attr, 2097152);
#if HAVE(QOS_CLASSES)
pthread_attr_set_qos_class_np(&attr, QOS_CLASS_USER_INITIATED, 0);
#endif
--- qtwebkit-5.212.0-alpha2/Source/JavaScriptCore/runtime/Options.h.old 2017-06-04 20:16:05.000000000 +0000
+++ qtwebkit-5.212.0-alpha2/Source/JavaScriptCore/runtime/Options.h 2018-09-26 03:02:39.700000000 +0000
@@ -112,9 +112,9 @@
\
v(bool, reportMustSucceedExecutableAllocations, false, nullptr) \
\
- v(unsigned, maxPerThreadStackUsage, 4 * MB, nullptr) \
- v(unsigned, reservedZoneSize, 128 * KB, nullptr) \
- v(unsigned, errorModeReservedZoneSize, 64 * KB, nullptr) \
+ v(unsigned, maxPerThreadStackUsage, 512 * KB, nullptr) \
+ v(unsigned, reservedZoneSize, 32 * KB, nullptr) \
+ v(unsigned, errorModeReservedZoneSize, 16 * KB, nullptr) \
\
v(bool, crashIfCantAllocateJITMemory, false, nullptr) \
v(unsigned, jitMemoryReservationSize, 0, "Set this number to change the executable allocation size in ExecutableAllocatorFixedVMPool. (In bytes.)") \
diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h
index 4594ec8..639f28f 100644
--- a/Source/WTF/wtf/Platform.h
+++ b/Source/WTF/wtf/Platform.h
@@ -342,7 +342,7 @@
#endif
#endif
-#if CPU(ARM) || CPU(MIPS) || CPU(SH4) || CPU(SPARC) || CPU(MIPS64)
+#if CPU(ARM) || CPU(MIPS) || CPU(SH4) || CPU(SPARC) || CPU(MIPS64) || CPU(AARCH64)
#define WTF_CPU_NEEDS_ALIGNED_ACCESS 1
#endif
# Contributor: A. Wilcox <awilfox@adelielinux.org>
# Maintainer: A. Wilcox <awilfox@adelielinux.org>
pkgname=qt5-qtwebkit
_pkgname=qtwebkit-opensource-src
pkgver=5.9.1
pkgrel=4
pkgdesc="Qt 5 - WebKit components"
url="https://www.qt.io/"
_realname=$pkgname
#qtwebkit
pkgver=5.212.0_git20191114
_realver=$(printf '%s' "$pkgver" | sed 's/_/-/')
pkgrel=0
pkgdesc="Open source Web browser engine"
url="https://github.com/qtwebkit/qtwebkit"
arch="all"
options="!check"
license="LGPL-2.0 with exceptions OR GPL-3.0 with exceptions"
depends=""
depends_dev="qt5-qtdeclarative-dev gstreamer-dev gst-plugins-base-dev
libxslt-dev mesa-dev icu-dev libxext-dev glib-dev libxcomposite-dev
libxrender-dev
"
makedepends="$depends_dev bison flex fontconfig-dev gperf libjpeg-turbo-dev
libpng-dev libwebp-dev pcre-dev qt5-qtbase-dev ruby sqlite-dev zlib-dev"
options="!check" # Tests fail (surprise), require X11.
license="LGPL-2.1+ AND BSD-3-Clause AND Others"
depends="gst-plugins-base"
depends_dev="qt5-qtbase-dev"
makedepends="$depends_dev ninja sqlite-dev icu-dev ruby perl bison flex gperf
libxml2-dev libxslt-dev libjpeg-turbo-dev libpng-dev zlib-dev glib-dev
gstreamer-dev fontconfig-dev qt5-qtsensors-dev qt5-qtpositioning-dev
qt5-qtdeclarative-dev qt5-qtwebchannel-dev libxcomposite-dev cmake
libxrender-dev gst-plugins-base-dev hyphen-dev libexecinfo-dev
ruby-dev glib-dev libgcrypt-dev libtasn1-dev"
subpackages="$pkgname-dev"
source="https://download.qt.io/official_releases/qt/${pkgver%.*}/$pkgver/submodules/$_pkgname-$pkgver.tar.xz
pic.patch
fix-rpath.patch
fix-execinfo.patch
0001-Add-ARM-64-support.patch
#source="https://github.com/qtwebkit/qtwebkit/releases/download/$_realname-$_realver/$_realname-$_realver.tar.xz
source="https://distfiles.adelielinux.org/source/$_realname-$_realver.tar.xz
bug-931.patch
ppc-llint.patch
"
builddir="$srcdir"/$_pkgname-$pkgver
prepare() {
default_prepare
# remove some bundled
mkdir Source/ThirdParty/orig
mv Source/ThirdParty/gtest/ \
Source/ThirdParty/qunit/ \
Source/ThirdParty/orig/
syncqt.pl -version $pkgver Source/sync.profile
}
builddir="$srcdir"/$_realname-$_realver
build() {
local _maybe_smaller=""
cd "$builddir"
# On 32-bit x86, ld.bfd will run out of memory if debugging information
# is built. See https://sourceware.org/bugzilla/show_bug.cgi?id=23470
# for more information.
case "$CARCH" in
pmmx) _maybe_smaller="QMAKE_CXXFLAGS_DEBUG+=-g0"
esac
qmake $_maybe_smaller
# /usr/include/fortify/stdlib.h:20:25: fatal error: stdlib.h: No such file or directory
# see: http://stackoverflow.com/questions/37218953/isystem-on-a-system-include-directory-causes-errors
# see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71090
# see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70129
qmake Source/JavaScriptCore/LLIntOffsetsExtractor.pro -o \
Source/JavaScriptCore/Makefile.LLIntOffsetsExtractor
sed -i 's:-isystem /usr/include ::' \
Source/JavaScriptCore/Makefile.LLIntOffsetsExtractor
if [ "$CBUILD" != "$CHOST" ]; then
CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
fi
# We can enable the JIT when it is stable on all Tier 1 platforms:
# pmmx (ensure no SSE)
# ppc
# ppc64
#
# DONE:
# aarch64
# armv7
# x86_64
#
# https://github.com/qtwebkit/qtwebkit/issues/930
# -DENABLE_MEDIA_SOURCE=ON \
# -DENABLE_VIDEO=ON \
# -DENABLE_WEB_AUDIO=ON \
# -DUSE_GSTREAMER=ON \
cmake \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DBUILD_SHARED_LIBS=True \
-DCMAKE_BUILD_TYPE=RelWithDebugInfo \
-DCMAKE_CXX_FLAGS="$CXXFLAGS" \
-DCMAKE_C_FLAGS="$CFLAGS" \
-DENABLE_JIT=OFF \
-DENABLE_PRINT_SUPPORT=ON \
-DENABLE_QT_WEBCHANNEL=ON \
-DPORT=Qt \
-DUSE_SYSTEM_MALLOC=ON \
-DUSE_WOFF2=OFF \
${CMAKE_CROSSOPTS} .
make
}
check() {
CTEST_OUTPUT_ON_FAILURE=TRUE ctest
}
package() {
cd "$builddir"
make install INSTALL_ROOT="$pkgdir"
sed -i -e 's:-L/home[^ ]\+::g' "$pkgdir"/usr/lib/pkgconfig/*.pc
make DESTDIR="$pkgdir" install
}
sha512sums="79316ab746a230fdb290e28629d7cec5fca75119ba8868060742c682ab86490de9ffd8e517569aa7412f35fd709568dbb5f7d2d467bdb4461e192f8b05d6f1e5 qtwebkit-opensource-src-5.9.1.tar.xz
9a62a5e7af91c44311b517608262f88b5bc607e75dc5878dd08b0a0872ec03fb7a566df0a41413f7e60beb1b9880e24f084b90c38ed50d4219ec2ad6af9bd62f pic.patch
00d59c0cdb58ae8e7cf6bc3d03f133697e74c267ccebe12238bcdc274d4c90210b82c2d8bdf0e949cd43da13a4fd8a4c35fb54a00ed5102a4ac4d23aa002d0fe fix-rpath.patch
f17c2f4b90090c8f12e4ba1f2cbd7a9f496c8de024ba6e0d55b98e5b89ab89298aff84f39e81905e0491fe6bd11544633a8b191403a866e16ed654d44cf8dc6f fix-execinfo.patch
af5097d44f73de156ca31a5423136301dfc12ae693e20c4702bf3f1c6e16395f3912e9268582480ba3177021f37d4cae3b84d4b23eeb063fdc40f2444d3b34c8 0001-Add-ARM-64-support.patch"
sha512sums="ec009773953b9f3e2c0e47072cd678f7044b16219c85879a6031c109c7b2b84f426564bb673ccaafa0bcc3f7a656e3cb0d8e3be28d3bbfb401adcd1a6b8b9edd qt5-qtwebkit-5.212.0-git20191114.tar.xz
85adb979eb5d58ccab85d07d6a6db470b34bdb6fd8af2eef04ce268da41a596b4a19295c97dca1201daf4a51ca9e183bb27dd36b9b12b0e149224793d1c190a9 bug-931.patch
0b358e4df16e8792c995a385386bfe9e197e23854f30129b504d3ba851cdfab3a2adef462a6ae3a775ec01d02cd67ef404259491339336c6ce896d7940597c95 ppc-llint.patch"
--- qt5-qtwebkit-5.212.0-git20191114/Source/JavaScriptCore/runtime/NativeExecutable.cpp.old 2019-11-14 19:31:45.000000000 +0000
+++ qt5-qtwebkit-5.212.0-git20191114/Source/JavaScriptCore/runtime/NativeExecutable.cpp 2020-01-04 19:14:22.974744920 +0000
@@ -28,6 +28,7 @@
#include "BatchedTransitionOptimizer.h"
#include "CodeBlock.h"
#include "Debugger.h"
+#include "ExecutableBaseInlines.h"
#include "JIT.h"
#include "JSCInlines.h"
#include "LLIntEntrypoint.h"
--- webkitgtk-2.2.0.orig/Source/WTF/wtf/Assertions.cpp
+++ webkitgtk-2.2.0/Source/WTF/wtf/Assertions.cpp
@@ -64,7 +64,7 @@
#include <windows.h>
#endif
-#if (OS(DARWIN) || (OS(LINUX) && !defined(__UCLIBC__))) && !OS(ANDROID)
+#if OS(DARWIN) || (OS(LINUX) && defined(__GLIBC__) && !defined(__UCLIBC__)) && !OS(ANDROID)
#include <cxxabi.h>
#include <dlfcn.h>
#include <execinfo.h>
@@ -242,7 +242,7 @@
void WTFGetBacktrace(void** stack, int* size)
{
-#if (OS(DARWIN) || (OS(LINUX) && !defined(__UCLIBC__))) && !OS(ANDROID)
+#if OS(DARWIN) || (OS(LINUX) && defined(__GLIBC__) && !defined(__UCLIBC__)) && !OS(ANDROID)
*size = backtrace(stack, *size);
#elif OS(WINDOWS) && !OS(WINCE)
// The CaptureStackBackTrace function is available in XP, but it is not defined
--- ./Tools/qmake/mkspecs/features/unix/default_post.prf.orig
+++ ./Tools/qmake/mkspecs/features/unix/default_post.prf
@@ -59,8 +59,6 @@
}
}
-contains(TEMPLATE, app): CONFIG += rpath
-
CONFIG(debug, debug|release)|force_debug_info {
# Make ld not cache the symbol tables of input files in memory to avoid memory exhaustion during the linking phase.
!force_static_libs_as_shared:config_gnuld: QMAKE_LFLAGS += -Wl,--no-keep-memory
--- ./Source/WTF/wtf/InlineASM.h.orig 2013-10-07 11:36:58.995128674 +0000
+++ ./Source/WTF/wtf/InlineASM.h 2013-10-07 11:37:28.058792290 +0000
@@ -42,7 +42,7 @@
#define THUMB_FUNC_PARAM(name)
#endif
-#if (OS(LINUX) || OS(FREEBSD)) && CPU(X86_64)
+#if (OS(LINUX) || OS(FREEBSD)) && (CPU(X86_64) || defined(__PIC__))
#define GLOBAL_REFERENCE(name) #name "@plt"
#elif CPU(X86) && COMPILER(MINGW)
#define GLOBAL_REFERENCE(name) "@" #name "@4"
This fixes JavaScriptCore on big endian systems (mainly ppc).
Without the patch, attempting to run any JS results in
a crash as the generated code was endian specific.
--- qtwebkit/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
+++ qtwebkit/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
@@ -1440,13 +1440,13 @@ _llint_op_put_by_id:
loadp StructureChain::m_vector[t3], t3
assert(macro (ok) btpnz t3, ok end)
- loadp Structure::m_prototype[t2], t2
+ loadp Structure::m_prototype + PayloadOffset[t2], t2
btpz t2, .opPutByIdTransitionChainDone
.opPutByIdTransitionChainLoop:
loadp [t3], t1
bineq t1, JSCell::m_structureID[t2], .opPutByIdSlow
addp 4, t3
- loadp Structure::m_prototype[t1], t2
+ loadp Structure::m_prototype + PayloadOffset[t1], t2
btpnz t2, .opPutByIdTransitionChainLoop
.opPutByIdTransitionChainDone:
@@ -2004,7 +2004,7 @@ _llint_throw_from_slow_path_trampoline:
# When throwing from the interpreter (i.e. throwing from LLIntSlowPaths), so
# the throw target is not necessarily interpreted code, we come to here.
# This essentially emulates the JIT's throwing protocol.
- loadp Callee[cfr], t1
+ loadp Callee + PayloadOffset[cfr], t1
andp MarkedBlockMask, t1
loadp MarkedBlockFooterOffset + MarkedBlock::Footer::m_vm[t1], t1
jmp VM::targetMachinePCForThrow[t1]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment