summaryrefslogtreecommitdiff
path: root/extra/webkitgtk
diff options
context:
space:
mode:
Diffstat (limited to 'extra/webkitgtk')
-rw-r--r--extra/webkitgtk/0001-https-bugs.webkit.org-show_bug.cgi-id-112141.patch64
-rw-r--r--extra/webkitgtk/PKGBUILD35
-rw-r--r--extra/webkitgtk/python3.patch20
3 files changed, 95 insertions, 24 deletions
diff --git a/extra/webkitgtk/0001-https-bugs.webkit.org-show_bug.cgi-id-112141.patch b/extra/webkitgtk/0001-https-bugs.webkit.org-show_bug.cgi-id-112141.patch
new file mode 100644
index 000000000..49eb83223
--- /dev/null
+++ b/extra/webkitgtk/0001-https-bugs.webkit.org-show_bug.cgi-id-112141.patch
@@ -0,0 +1,64 @@
+Without ChangeLog change.
+
+From 7ba6eb5405cb66c97398f8cdb6d5f9e919ba6131 Mon Sep 17 00:00:00 2001
+From: "rgabor@webkit.org"
+ <rgabor@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
+Date: Tue, 12 Mar 2013 15:28:10 +0000
+Subject: [PATCH] https://bugs.webkit.org/show_bug.cgi?id=112141 LLInt CLoop
+ backend misses Double2Ints() on 32bit architectures
+
+Reviewed by Filip Pizlo.
+
+Implement Double2Ints() in CLoop backend of LLInt on 32bit architectures.
+
+* llint/LowLevelInterpreter.cpp:
+(LLInt):
+(JSC::LLInt::Double2Ints):
+* offlineasm/cloop.rb:
+
+
+git-svn-id: http://svn.webkit.org/repository/webkit/trunk@145551 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+---
+ Source/JavaScriptCore/ChangeLog | 14 ++++++++++++++
+ Source/JavaScriptCore/llint/LowLevelInterpreter.cpp | 11 +++++++++++
+ Source/JavaScriptCore/offlineasm/cloop.rb | 2 +-
+ 3 files changed, 26 insertions(+), 1 deletion(-)
+
+diff --git a/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp b/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp
+index d3c73b0..186c659 100644
+--- a/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp
++++ b/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp
+@@ -117,6 +117,17 @@ static double Ints2Double(uint32_t lo, uint32_t hi)
+ u.ival64 = (static_cast<uint64_t>(hi) << 32) | lo;
+ return u.dval;
+ }
++
++static void Double2Ints(double val, uint32_t& lo, uint32_t& hi)
++{
++ union {
++ double dval;
++ uint64_t ival64;
++ } u;
++ u.dval = val;
++ hi = static_cast<uint32_t>(u.ival64 >> 32);
++ lo = static_cast<uint32_t>(u.ival64);
++}
+ #endif // USE(JSVALUE32_64)
+
+ } // namespace LLint
+diff --git a/Source/JavaScriptCore/offlineasm/cloop.rb b/Source/JavaScriptCore/offlineasm/cloop.rb
+index 14cacb9..f6bd552 100644
+--- a/Source/JavaScriptCore/offlineasm/cloop.rb
++++ b/Source/JavaScriptCore/offlineasm/cloop.rb
+@@ -1025,7 +1025,7 @@ class Instruction
+ # 32-bit instruction: f2dii dblOp int32LoOp int32HiOp (based on ARMv7)
+ # Encode a 64-bit double into 2 32-bit ints (low and high).
+ when "fd2ii"
+- $asm.putc "Double2Ints(#{operands[0].clValue(:double)}, #{operands[1].clValue}, #{operands[2].clValue});"
++ $asm.putc "Double2Ints(#{operands[0].clValue(:double)}, #{operands[1].clValue(:uint32)}, #{operands[2].clValue(:uint32)});"
+
+ # 64-bit instruction: fq2d int64Op dblOp (based on X64)
+ # Copy a bit-encoded double in a 64-bit int register to a double register.
+--
+1.8.2.1
+
diff --git a/extra/webkitgtk/PKGBUILD b/extra/webkitgtk/PKGBUILD
index 0502cb7f6..e95bccc34 100644
--- a/extra/webkitgtk/PKGBUILD
+++ b/extra/webkitgtk/PKGBUILD
@@ -5,22 +5,49 @@ pkgbase=webkitgtk
pkgname=('webkitgtk3')
pkgver=2.0.2
pkgrel=1
-arch=('i686' 'x86_64')
+arch=('i686' 'x86_64' 'mips64el')
url="http://webkitgtk.org/"
license=('custom')
makedepends=('libxt' 'libxslt' 'sqlite' 'libsoup' 'enchant' 'libgl' 'geoclue' 'gtk2' 'gtk3' 'gst-plugins-base-libs' 'gperf' 'gobject-introspection' 'python' 'mesa' 'ruby' 'gtk-doc' 'libsecret' 'libwebp')
options=('!libtool' '!emptydirs')
-source=(http://webkitgtk.org/releases/$pkgbase-$pkgver.tar.xz)
-sha256sums=('c3685032545eb4c23f3f56826817783a6963ad59bd7bbf806705059b3d8caeb2')
+source=(http://webkitgtk.org/releases/$pkgbase-$pkgver.tar.xz
+ 0001-https-bugs.webkit.org-show_bug.cgi-id-112141.patch)
+sha256sums=('c3685032545eb4c23f3f56826817783a6963ad59bd7bbf806705059b3d8caeb2'
+ '7b4c1419342bafcca642d7a41abe92713810401591906b081fe476169cb9a3aa')
prepare() {
cd $pkgbase-$pkgver
mkdir build-gtk3
+ if [ "$CARCH" = "mips64el" ]; then
+ # Fix MIPS N32 support.
+ sed -i 's/defined(_ABIO32)/(defined(_ABIO32) || defined(_ABIN32))/' \
+ Source/WTF/wtf/Platform.h
+ # Don't enable JIT even if configure finds that it's not supported.
+ sed -i 's/#define ENABLE_JIT 1/#define ENABLE_JIT 0/' \
+ Source/WTF/wtf/Platform.h
+ fi
+
+ # Fix build on 32-bit platforms.
+ patch -p1 -i "$srcdir/0001-https-bugs.webkit.org-show_bug.cgi-id-112141.patch"
+
+ # Won't be made before files there.
+ mkdir -p build-gtk3/Programs/resources
}
build() {
cd $pkgbase-$pkgver/build-gtk3
- ../configure --prefix=/usr --libexecdir=/usr/lib/webkitgtk3 --enable-introspection
+
+ if [ "$CARCH" = "mips64el" ]; then
+ # Optimizations make it segfault when running; without
+ # -mlong-calls R_MIPS_26 relocations will be used and truncated.
+ # Disable unneeded arch-specific warnings.
+ export CPPFLAGS="${CPPFLAGS/-D_FORTIFY_SOURCE=[0-9]} -Wno-cast-align"
+ export CFLAGS="${CFLAGS/-O[0-9]} -mlong-calls"
+ export CXXFLAGS="${CXXFLAGS/-O[0-9]} -mlong-calls"
+ extra="--disable-fast-malloc --disable-optimizations"
+ fi
+
+ ../configure --prefix=/usr --libexecdir=/usr/lib/webkitgtk3 --enable-introspection $extra
make all stamp-po
}
diff --git a/extra/webkitgtk/python3.patch b/extra/webkitgtk/python3.patch
deleted file mode 100644
index efd640043..000000000
--- a/extra/webkitgtk/python3.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/Tools/gtk/generate-feature-defines-files b/Tools/gtk/generate-feature-defines-files
-index 1a92bf50a05831655308cb62646eb05a6db4b63c..f5b2c7e61eab12bf0eb25b0f9c595f2fd83ebbe9 100755
---- a/Tools/gtk/generate-feature-defines-files
-+++ b/Tools/gtk/generate-feature-defines-files
-@@ -32,13 +32,13 @@ def write_file_if_contents_changed(filename, contents):
-
- def write_feature_defines_header(feature_defines):
- contents = ''
-- for (feature, value) in feature_defines.iteritems():
-+ for (feature, value) in feature_defines.items():
- contents += '#define {0} {1}\n'.format(feature, value)
- write_file_if_contents_changed("WebKitFeatures.h", contents)
-
- def write_flattened_feature_defines_file(feature_defines):
- contents = ''
-- for (feature, value) in feature_defines.iteritems():
-+ for (feature, value) in feature_defines.items():
- contents += '{0}={1}\n'.format(feature, value)
- write_file_if_contents_changed("WebKitFeatures.txt", contents)
-