diff options
Diffstat (limited to 'srcpkgs')
-rw-r--r-- | srcpkgs/qt5-webkit/patches/ppc-llint.patch | 32 | ||||
-rw-r--r-- | srcpkgs/qt5-webkit/patches/reduce-exports.patch | 27 | ||||
-rw-r--r-- | srcpkgs/qt5-webkit/template | 61 |
3 files changed, 102 insertions, 18 deletions
diff --git a/srcpkgs/qt5-webkit/patches/ppc-llint.patch b/srcpkgs/qt5-webkit/patches/ppc-llint.patch new file mode 100644 index 00000000000..2fc5a46e523 --- /dev/null +++ b/srcpkgs/qt5-webkit/patches/ppc-llint.patch @@ -0,0 +1,32 @@ +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. + +--- Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm ++++ Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm +@@ -1500,13 +1500,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 + bpneq 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: +@@ -1984,7 +1984,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 MarkedBlock::m_weakSet + WeakSet::m_vm[t1], t1 + copyCalleeSavesToVMCalleeSavesBuffer(t1, t2) diff --git a/srcpkgs/qt5-webkit/patches/reduce-exports.patch b/srcpkgs/qt5-webkit/patches/reduce-exports.patch new file mode 100644 index 00000000000..7addb0f7c16 --- /dev/null +++ b/srcpkgs/qt5-webkit/patches/reduce-exports.patch @@ -0,0 +1,27 @@ +Description: reduce the number of exported symbols in libQt5WebKit.so.5 +Author: Dmitry Shachnev <mitya57@debian.org> +Forwarded: not-needed +Last-Update: 2017-08-27 + +--- Source/WTF/wtf/ExportMacros.h ++++ Source/WTF/wtf/ExportMacros.h +@@ -56,7 +56,7 @@ + + #elif defined(__GNUC__) && !defined(__CC_ARM) && !defined(__ARMCC__) + +-#define WTF_EXPORT_DECLARATION __attribute__((visibility("default"))) ++#define WTF_EXPORT_DECLARATION + #define WTF_IMPORT_DECLARATION WTF_EXPORT_DECLARATION + #define WTF_HIDDEN_DECLARATION __attribute__((visibility("hidden"))) + +--- Source/cmake/OptionsQt.cmake ++++ Source/cmake/OptionsQt.cmake +@@ -658,6 +658,7 @@ if (COMPILER_IS_GCC_OR_CLANG AND UNIX) + if (NOT SHARED_CORE) + set(CMAKE_C_FLAGS "-fvisibility=hidden ${CMAKE_C_FLAGS}") + set(CMAKE_CXX_FLAGS "-fvisibility=hidden -fvisibility-inlines-hidden ${CMAKE_CXX_FLAGS}") ++ add_definitions(-DJS_NO_EXPORT) + endif () + endif () + + diff --git a/srcpkgs/qt5-webkit/template b/srcpkgs/qt5-webkit/template index 004d63757e6..c7c09c1376e 100644 --- a/srcpkgs/qt5-webkit/template +++ b/srcpkgs/qt5-webkit/template @@ -1,23 +1,30 @@ # Template file for 'qt5-webkit' pkgname=qt5-webkit version=5.212.0 -revision=5 -_snap=1561566461 +revision=6 +_snap=1565895469 _v=${version%.*} wrksrc="qtwebkit-everywhere-src-${_v}" build_style=cmake -configure_args="-DPORT=Qt -DUSE_LD_GOLD=OFF" +# some nasty stuff to prevent cmake from inducing buggy -O3 and default -g +configure_args="-DPORT=Qt -DUSE_LD_GOLD=OFF + -DCMAKE_CXX_FLAGS_RELEASE=-DNDEBUG + -DCMAKE_CXX_FLAGS_DEBUG=-DNDEBUG + -DCMAKE_CXX_FLAGS_RELWITHDEBINFO=-DNDEBUG + -DCMAKE_C_FLAGS_RELEASE=-DNDEBUG + -DCMAKE_C_FLAGS_DEBUG=-DNDEBUG + -DCMAKE_C_FLAGS_RELWITHDEBINFO=-DNDEBUG" hostmakedepends="flex gperf perl pkg-config python qt5-qmake ruby" makedepends="libwebp-devel libxslt-devel libXcomposite-devel sqlite-devel libjpeg-turbo-devel gst-plugins-base1-devel qt5-declarative-devel qt5-location-devel qt5-sensors-devel qt5-webchannel-devel hyphen-devel ruby-devel" short_desc="Cross-platform application and UI framework (Qt5) - WebKit2 component" -maintainer="Orphaned <orphan@voidlinux.org>" +maintainer="q66 <daniel@octaforge.org>" license="LGPL-2.1-or-later" homepage="https://www.qt.io/" distfiles="https://download.qt.io/snapshots/ci/qtwebkit/${_v}/${_snap}/src/submodules/qtwebkit-everywhere-src-${_v}.tar.xz" -checksum=68eae85e7a12077b8004d7a039af065d68112e8e9ab95013f4e01527759fab9f +checksum=607f0a13e05bbf831d86904d12ae464e7d46a15f0ceed2465487b53512948824 CPPFLAGS="-I${XBPS_CROSS_BASE}/usr/include" CXXFLAGS="-fpermissive -Wno-class-memaccess" @@ -27,27 +34,45 @@ if [ "$CROSS_BUILD" ]; then configure_args+=" -DRUBY_CONFIG_INCLUDE_DIR=${XBPS_CROSS_BASE}/usr/include/ruby-*" fi -# reduce memory footprint when linking -if [ "$XBPS_WORDSIZE" -eq 32 ]; then - nodebug=yes -fi +# only a few platform support JIT +case "$XBPS_TARGET_MACHINE" in + armv[67]*|aarch64*|i686*|x86_64*|mips*) ;; + *) configure_args+=" -DENABLE_JIT=OFF" ;; +esac +# some platforms need libatomic case "$XBPS_TARGET_MACHINE" in - armv6*) # Need libatomic for __atomic_fetch_add_8 etc. - makedepends+=" libatomic-devel" - LIBS+=" -latomic" - ;; - ppc64*) # no JIT on ppc64 and other build workarounds - configure_args+=" -DENABLE_JIT=OFF -DUSE_SYSTEM_MALLOC=ON" - ;; - ppc*) # no JIT on ppc and need libatomic - configure_args+=" -DENABLE_JIT=OFF -DUSE_SYSTEM_MALLOC=ON" + ppc64*) ;; + armv6*|ppc*) makedepends+=" libatomic-devel" LIBS+=" -latomic" ;; + *) ;; +esac + +# use system malloc on ppc64le (potential 64k page kernel) +case "$XBPS_TARGET_MACHINE" in + ppc64le*) configure_args+=" -DUSE_SYSTEM_MALLOC=ON" ;; + *) ;; esac pre_configure() { + # work around large debug symbols on 32-bit hosts + if [ "$XBPS_WORDSIZE" = "32" ]; then + export CFLAGS="${CFLAGS/-g/-g1}" + export CXXFLAGS="${CXXFLAGS/-g/-g1}" + export LDFLAGS+=" -Wl,--no-keep-memory" + fi + + # the above is not enough for 32-bit ppc and debug + case "$XBPS_TARGET_MACHINE" in + ppc64*) ;; + ppc*) + export CFLAGS="${CFLAGS/-O2/-Os}" + export CXXFLAGS="${CXXFLAGS/-O2/-Os}" + ;; + esac + if [ "$CROSS_BUILD" ]; then # XXX: disable failing check for private headers and assume they are available sed -i Source/cmake/OptionsQt.cmake \ |