diff options
Diffstat (limited to 'extra/webkitgtk')
-rw-r--r-- | extra/webkitgtk/0001-https-bugs.webkit.org-show_bug.cgi-id-112141.patch | 64 | ||||
-rw-r--r-- | extra/webkitgtk/PKGBUILD | 33 |
2 files changed, 94 insertions, 3 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 fc48f7867..cf2265f70 100644 --- a/extra/webkitgtk/PKGBUILD +++ b/extra/webkitgtk/PKGBUILD @@ -4,8 +4,7 @@ pkgname=webkitgtk pkgver=2.2.0 pkgrel=1 -pkgdesc="GTK+ Web content engine library" -arch=(i686 x86_64) +arch=(i686 x86_64 mips64el) url="http://webkitgtk.org/" license=(custom) depends=(libxt libxslt sqlite libsoup enchant libgl geoclue gtk3 gst-plugins-base-libs @@ -19,11 +18,39 @@ options=(!libtool !emptydirs) source=(http://webkitgtk.org/releases/$pkgname-${pkgver}.tar.xz) sha256sums=('84902e3255dcc6efa1298c8a1f2d2a49674126dcacea383f309aeed9e734d538') +prepare() { + cd $pkgbase-$pkgver + + 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 + + # Won't be made before files there. + mkdir -p Programs/resources +} + build() { cd $pkgname-$pkgver + + 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/$pkgname \ - --enable-introspection + --enable-introspection \ + ${extra} # https://bugzilla.gnome.org/show_bug.cgi?id=655517 sed -i 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool |