diff -Nru webkitgtk-2.4.3/debian/changelog webkitgtk-2.4.3/debian/changelog
--- webkitgtk-2.4.3/debian/changelog	2014-06-09 13:35:50.000000000 +0100
+++ webkitgtk-2.4.3/debian/changelog	2014-06-06 09:36:24.000000000 +0100
@@ -1,15 +1,30 @@
-webkitgtk (2.4.3-2) unstable; urgency=medium
+webkitgtk (2.4.3-2~ubuntu2) utopic; urgency=medium
 
+  * Don't fail the build on gtk-doc warnings.
+
+ -- Iain Lane <iain.lane@canonical.com>  Fri, 06 Jun 2014 09:36:07 +0100
+
+webkitgtk (2.4.3-2~ubuntu1) utopic; urgency=medium
+
+  [ Alberto Garcia ]
   * debian/rules:
     + Move -Wl,--as-needed from CFLAGS to LDFLAGS.
   * debian/control:
     + Build depend on libegl1-mesa-dev and libgles2-mesa-dev on armel and
       armhf (Closes: #749700).
-  * debian/patches/gtkdoc-remove-Wcast-align.patch:
-    + Remove -Wcast-align during gtk-doc generation. Fixes FTBFS on hppa
-      and others (Closes: #750839).
 
- -- Alberto Garcia <berto@igalia.com>  Mon, 09 Jun 2014 15:35:44 +0300
+  [ Iain Lane ]
+  * Merge with unreleased Debian git. Remaining changes:
+    - Build for ppc64el and arm64
+    - bugzilla_clear_surface.patch: Take patch to fix upstream bug#123480
+      which was a crash affecting software-center in Ubuntu.
+    - Don't use COMPARE_AND_SWAP and other snippets of asm on arm64; the
+      compiler complains that they are invalid.
+  * Stick on geoclue 1 for now, the new version isn't in main and a transition
+    plan needs to be worked out, for example for how to integrate the Ubuntu
+    GeoIP service.
+
+ -- Iain Lane <iain.lane@canonical.com>  Wed, 04 Jun 2014 15:05:20 +0100
 
 webkitgtk (2.4.3-1) unstable; urgency=medium
 
@@ -23,6 +38,17 @@
 
  -- Alberto Garcia <berto@igalia.com>  Tue, 27 May 2014 12:16:19 +0200
 
+webkitgtk (2.4.2-1ubuntu1) utopic; urgency=medium
+
+  * Merge with Debian. Remaining changes:
+    - Build for ppc64el and arm64
+    - bugzilla_clear_surface.patch: Take patch to fix upstream bug#123480
+      which was a crash affecting software-center in Ubuntu.
+    - Don't use COMPARE_AND_SWAP and other snippets of asm on arm64; the
+      compiler complains that they are invalid.
+
+ -- Iain Lane <iain.lane@canonical.com>  Wed, 14 May 2014 10:21:01 +0100
+
 webkitgtk (2.4.2-1) unstable; urgency=medium
 
   * New upstream release (Closes: #732095).
@@ -48,6 +74,17 @@
 
  -- Alberto Garcia <berto@igalia.com>  Wed, 30 Apr 2014 09:17:14 +0300
 
+webkitgtk (2.4.1-1ubuntu1) trusty; urgency=medium
+
+  * Merge with Debian. Remaining changes:
+    - Build for ppc64el and arm64
+    - bugzilla_clear_surface.patch: Take patch to fix upstream bug#123480
+      which was a crash affecting software-center in Ubuntu.
+    - Don't use COMPARE_AND_SWAP and other snippets of asm on arm64; the
+      compiler complains that they are invalid.
+
+ -- Iain Lane <iain.lane@canonical.com>  Fri, 25 Apr 2014 17:03:34 +0100
+
 webkitgtk (2.4.1-1) experimental; urgency=medium
 
   * New upstream release.
@@ -58,6 +95,26 @@
 
  -- Alberto Garcia <berto@igalia.com>  Mon, 14 Apr 2014 20:22:51 +0000
 
+webkitgtk (2.4.0-1ubuntu2) trusty; urgency=medium
+
+  * Restore accidentally dropped debian/rules change disabling JIT, YARR_JIT
+    and ASSEMBLER on arm64/ppc64el.
+
+ -- Iain Lane <iain@orangesquash.org.uk>  Sat, 05 Apr 2014 16:30:23 +0100
+
+webkitgtk (2.4.0-1ubuntu1) trusty; urgency=medium
+
+  * Merge with Debian. Remaining changes:
+    - Build for ppc64el and arm64
+    - bugzilla_clear_surface.patch: Take patch to fix upstream bug#123480
+      which was a crash affecting software-center in Ubuntu.
+    - Don't use COMPARE_AND_SWAP and other snippets of asm on arm64; the
+      compiler complains that they are invalid.
+  * debian/patches/no-no-tree-dce: Don't build with -fno-tree-dce on Ubuntu,
+    it triggers a gcc bug on armhf (gcc bug #60617).
+
+ -- Iain Lane <iain.lane@canonical.com>  Fri, 04 Apr 2014 17:44:42 +0100
+
 webkitgtk (2.4.0-1) experimental; urgency=medium
 
   * New upstream stable release.
@@ -75,6 +132,24 @@
 
  -- Alberto Garcia <berto@igalia.com>  Mon, 17 Mar 2014 21:07:56 +0000
 
+webkitgtk (2.3.91-0ubuntu1) trusty; urgency=medium
+
+  * New upstream release
+  * debian/patches/dfg-jit.patch: Update - partially applied upstream.
+
+ -- Iain Lane <iain.lane@canonical.com>  Tue, 04 Mar 2014 17:57:17 +0000
+
+webkitgtk (2.3.90-1ubuntu1) trusty; urgency=medium
+
+  * Merge with Debian. Remaining changes:
+    - Build for ppc64el and arm64
+    - bugzilla_clear_surface.patch: Take patch to fix upstream bug#123480
+      which was a crash affecting software-center in Ubuntu.
+    - Don't use COMPARE_AND_SWAP and other snippets of asm on arm64; the
+      compiler complains that they are invalid.
+
+ -- Iain Lane <iain.lane@canonical.com>  Thu, 20 Feb 2014 10:31:10 +0000
+
 webkitgtk (2.3.90-1) experimental; urgency=medium
 
   * New upstream release.
@@ -147,6 +222,29 @@
 
  -- Alberto Garcia <berto@igalia.com>  Thu, 16 Jan 2014 08:30:14 +0000
 
+webkitgtk (2.3.4-1ubuntu2) trusty; urgency=medium
+
+  * Cherry-pick a patch from upstream to use the 'q' constraint in some asm,
+    to force the use of a register that allows access to its lower byte. Fixes
+    FTBFS on i386.
+  * Replace webkitgtk-2.3.2-libatomic.patch with explicit linking with
+    -latomic on powerpc.
+
+ -- Iain Lane <iain.lane@canonical.com>  Thu, 23 Jan 2014 10:21:36 +0000
+
+webkitgtk (2.3.4-1ubuntu1) trusty; urgency=medium
+
+  * Merge with Debian. Remaining changes:
+    - Build for ppc64el and arm64
+    - bugzilla_clear_surface.patch: Take patch to fix upstream bug#123480
+      which was a crash affecting software-center in Ubuntu.
+    - Don't use COMPARE_AND_SWAP and other snippets of asm on arm64; the
+      compiler complains that they are invalid.
+    - Take patch from Fedora to use __atomic_fetch_{add,sub} instead of
+      __sync_{add_sub}_and_fetch to avoid a powerpc FTBFS.
+
+ -- Iain Lane <iain.lane@canonical.com>  Mon, 20 Jan 2014 10:16:26 +0000
+
 webkitgtk (2.3.4-1) experimental; urgency=low
 
   * New upstream release.
@@ -1641,4 +1739,3 @@
   * Initial release. (Closes: #428855)
 
  -- Mike Hommey <glandium@debian.org>  Wed, 15 Aug 2007 14:19:46 +0200
-
diff -Nru webkitgtk-2.4.3/debian/control webkitgtk-2.4.3/debian/control
--- webkitgtk-2.4.3/debian/control	2014-06-09 13:35:50.000000000 +0100
+++ webkitgtk-2.4.3/debian/control	2014-06-06 09:36:24.000000000 +0100
@@ -1,7 +1,8 @@
 Source: webkitgtk
 Priority: optional
 Section: web
-Maintainer: Debian WebKit Maintainers <pkg-webkit-maintainers@lists.alioth.debian.org>
+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
+XSBC-Original-Maintainer: Debian WebKit Maintainers <pkg-webkit-maintainers@lists.alioth.debian.org>
 Uploaders: Mike Hommey <glandium@debian.org>, Gustavo Noronha Silva <kov@debian.org>,
            Emilio Pozuelo Monfort <pochu@debian.org>, Alberto Garcia <berto@igalia.com>
 Build-Depends: gawk,
@@ -40,7 +41,7 @@
                libgstreamer-plugins-base1.0-dev (>= 1.0.3),
                libenchant-dev (>= 0.22),
                gtk-doc-tools,
-               geoclue-2.0,
+               libgeoclue-dev,
                libsecret-1-dev,
                gobject-introspection (>= 1.32.0),
                libgirepository1.0-dev (>= 0.9.12-4),
@@ -135,7 +136,6 @@
          ${misc:Depends}
 Recommends: gstreamer1.0-plugins-base (>= 1.0.3),
             gstreamer1.0-plugins-good,
-            geoclue-2.0,
             ${gst:Recommends}
 Breaks: midori (<< 0.4.1-2), claws-mail-fancy-plugin (<< 3.7.10-3)
 Description: Web content engine library for GTK+
@@ -337,7 +337,6 @@
          ${misc:Depends}
 Recommends: gstreamer1.0-plugins-base,
             gstreamer1.0-plugins-good,
-            geoclue-2.0,
             ${gst:Recommends}
 Description: Web content engine library for GTK+
  WebKit is a web content engine, derived from KHTML and KJS from KDE, and
@@ -442,7 +441,6 @@
          ${misc:Depends}
 Recommends: gstreamer1.0-plugins-base,
             gstreamer1.0-plugins-good,
-            geoclue-2.0,
             ${gst:Recommends}
 Breaks: libwebkit2gtk-3.0-0
 Replaces: libwebkit2gtk-3.0-0
diff -Nru webkitgtk-2.4.3/debian/gbp.conf webkitgtk-2.4.3/debian/gbp.conf
--- webkitgtk-2.4.3/debian/gbp.conf	2014-06-09 13:35:50.000000000 +0100
+++ webkitgtk-2.4.3/debian/gbp.conf	2014-06-06 09:36:24.000000000 +0100
@@ -1,5 +1,5 @@
 [DEFAULT]
-debian-branch = unstable
+debian-branch = ubuntu
 upstream-branch = webkitgtk-2.4
 pristine-tar = False
 compression = xz
diff -Nru webkitgtk-2.4.3/debian/patches/aarch64.patch webkitgtk-2.4.3/debian/patches/aarch64.patch
--- webkitgtk-2.4.3/debian/patches/aarch64.patch	1970-01-01 01:00:00.000000000 +0100
+++ webkitgtk-2.4.3/debian/patches/aarch64.patch	2014-06-06 09:36:24.000000000 +0100
@@ -0,0 +1,32 @@
+From: Andreas Schwab <schwab@suse.de>
+Date: Mon, 13 May 2013 15:31:45 +0200
+Subject: [PATCH] Add support for AAarch64
+Origin: backport, https://bugs.webkit.org/show_bug.cgi?id=116030
+Bug: https://bugs.webkit.org/show_bug.cgi?id=116030
+
+        * wtf/Platform.h: Add support for AArch64.
+        * wtf/dtoa/utils.h: Likewise.
+---
+ Source/WTF/wtf/Platform.h   | 13 +++++++++++--
+ Source/WTF/wtf/dtoa/utils.h |  2 +-
+ 2 files changed, 12 insertions(+), 3 deletions(-)
+
+Index: b/Source/WTF/wtf/Platform.h
+===================================================================
+--- a/Source/WTF/wtf/Platform.h
++++ b/Source/WTF/wtf/Platform.h
+@@ -173,6 +173,14 @@
+ #define WTF_CPU_ARM64 1
+ #endif
+ 
++/* CPU(ARM64) - AArch64 */
++#if defined(__aarch64__)
++#define WTF_CPU_ARM64 1
++#if defined(__AARCH64BE__)
++#define WTF_CPU_BIG_ENDIAN 1
++#endif
++#endif
++
+ /* CPU(ARM) - ARM, any version*/
+ #define WTF_ARM_ARCH_AT_LEAST(N) (CPU(ARM) && WTF_ARM_ARCH_VERSION >= N)
+ 
diff -Nru webkitgtk-2.4.3/debian/patches/bugzilla_clear_surface.patch webkitgtk-2.4.3/debian/patches/bugzilla_clear_surface.patch
--- webkitgtk-2.4.3/debian/patches/bugzilla_clear_surface.patch	1970-01-01 01:00:00.000000000 +0100
+++ webkitgtk-2.4.3/debian/patches/bugzilla_clear_surface.patch	2014-06-06 09:36:24.000000000 +0100
@@ -0,0 +1,33 @@
+# Upstream: https://bugs.webkit.org/show_bug.cgi?id=123480
+Index: b/Source/WebCore/platform/gtk/WidgetBackingStoreGtkX11.cpp
+===================================================================
+--- a/Source/WebCore/platform/gtk/WidgetBackingStoreGtkX11.cpp
++++ b/Source/WebCore/platform/gtk/WidgetBackingStoreGtkX11.cpp
+@@ -27,6 +27,11 @@
+ 
+ namespace WebCore {
+ 
++static void free_pixmap (void *data)
++{
++  XFreePixmap(GDK_SCREEN_XDISPLAY(gdk_screen_get_default()), GPOINTER_TO_UINT(data));
++}
++
+ PassOwnPtr<WidgetBackingStore> WidgetBackingStoreGtkX11::create(GtkWidget* widget, const IntSize& size)
+ {
+     return adoptPtr(new WidgetBackingStoreGtkX11(widget, size));
+@@ -47,13 +52,14 @@
+ 
+     m_surface = adoptRef(cairo_xlib_surface_create(m_display, m_pixmap,
+         GDK_VISUAL_XVISUAL(visual), size.width(), size.height()));
++    static cairo_user_data_key_t key;
++    cairo_surface_set_user_data(cairoSurface(), &key, GUINT_TO_POINTER(m_pixmap), (cairo_destroy_func_t)free_pixmap);
+ }
+ 
+ WidgetBackingStoreGtkX11::~WidgetBackingStoreGtkX11()
+ {
+     // The pixmap needs to exist when the surface is destroyed, so begin by clearing it.
+     m_surface.clear();
+-    XFreePixmap(m_display, m_pixmap);
+     XFreeGC(m_display, m_gc);
+ }
+ 
diff -Nru webkitgtk-2.4.3/debian/patches/disable-jit-harder.patch webkitgtk-2.4.3/debian/patches/disable-jit-harder.patch
--- webkitgtk-2.4.3/debian/patches/disable-jit-harder.patch	1970-01-01 01:00:00.000000000 +0100
+++ webkitgtk-2.4.3/debian/patches/disable-jit-harder.patch	2014-06-06 09:36:24.000000000 +0100
@@ -0,0 +1,403 @@
+Subversion Revision: 158105
+Index: b/Source/JavaScriptCore/bytecode/CodeBlock.cpp
+===================================================================
+--- a/Source/JavaScriptCore/bytecode/CodeBlock.cpp
++++ b/Source/JavaScriptCore/bytecode/CodeBlock.cpp
+@@ -332,38 +332,25 @@
+     }
+     out.printf("]");
+ }
+-#endif
+ 
+ void CodeBlock::printGetByIdCacheStatus(PrintStream& out, ExecState* exec, int location, const StubInfoMap& map)
+ {
+     Instruction* instruction = instructions().begin() + location;
+-
+     const Identifier& ident = identifier(instruction[3].u.operand);
+-    
+-    UNUSED_PARAM(ident); // tell the compiler to shut up in certain platform configurations.
+-    
+-#if ENABLE(LLINT)
+-    if (exec->interpreter()->getOpcodeID(instruction[0].u.opcode) == op_get_array_length)
+-        out.printf(" llint(array_length)");
+-    else if (Structure* structure = instruction[4].u.structure.get()) {
+-        out.printf(" llint(");
+-        dumpStructure(out, "struct", exec, structure, ident);
+-        out.printf(")");
+-    }
+-#endif
+ 
+-#if ENABLE(JIT)
++    printGetByIdCacheStatus(out, exec, location);
++
+     if (StructureStubInfo* stubPtr = map.get(CodeOrigin(location))) {
+         StructureStubInfo& stubInfo = *stubPtr;
+         if (stubInfo.seen) {
+             out.printf(" jit(");
+-            
++
+             Structure* baseStructure = 0;
+             Structure* prototypeStructure = 0;
+             StructureChain* chain = 0;
+             PolymorphicAccessStructureList* structureList = 0;
+             int listSize = 0;
+-            
++
+             switch (stubInfo.accessType) {
+             case access_get_by_id_self:
+                 out.printf("self");
+@@ -405,22 +392,22 @@
+                 RELEASE_ASSERT_NOT_REACHED();
+                 break;
+             }
+-            
++
+             if (baseStructure) {
+                 out.printf(", ");
+                 dumpStructure(out, "struct", exec, baseStructure, ident);
+             }
+-            
++
+             if (prototypeStructure) {
+                 out.printf(", ");
+                 dumpStructure(out, "prototypeStruct", exec, baseStructure, ident);
+             }
+-            
++
+             if (chain) {
+                 out.printf(", ");
+                 dumpChain(out, exec, chain, ident);
+             }
+-            
++
+             if (structureList) {
+                 out.printf(", list = %p: [", structureList);
+                 for (int i = 0; i < listSize; ++i) {
+@@ -446,8 +433,25 @@
+             out.printf(")");
+         }
+     }
+-#else
+-    UNUSED_PARAM(map);
++}
++#endif
++
++void CodeBlock::printGetByIdCacheStatus(PrintStream& out, ExecState* exec, int location)
++{
++    Instruction* instruction = instructions().begin() + location;
++
++    const Identifier& ident = identifier(instruction[3].u.operand);
++
++    UNUSED_PARAM(ident); // tell the compiler to shut up in certain platform configurations.
++
++#if ENABLE(LLINT)
++    if (exec->interpreter()->getOpcodeID(instruction[0].u.opcode) == op_get_array_length)
++        out.printf(" llint(array_length)");
++    else if (Structure* structure = instruction[4].u.structure.get()) {
++        out.printf(" llint(");
++        dumpStructure(out, "struct", exec, structure, ident);
++        out.printf(")");
++    }
+ #endif
+ }
+ 
+@@ -524,20 +528,21 @@
+     if (needsFullScopeChain() && codeType() == FunctionCode)
+         out.printf("; activation in r%d", activationRegister().offset());
+     out.printf("\n");
+-    
+-    StubInfoMap stubInfos;
+-#if ENABLE(JIT)
+-    {
+-        ConcurrentJITLocker locker(m_lock);
+-        getStubInfoMap(locker, stubInfos);
+-    }
+-#endif
+-    
++
+     const Instruction* begin = instructions().begin();
+     const Instruction* end = instructions().end();
++#if ENABLE(JIT)
++    StubInfoMap stubInfos;
++    ConcurrentJITLocker locker(m_lock);
++    getStubInfoMap(locker, stubInfos);
++
+     for (const Instruction* it = begin; it != end; ++it)
+         dumpBytecode(out, exec, begin, it, stubInfos);
+-    
++#else
++    for (const Instruction* it = begin; it != end; ++it)
++        dumpBytecode(out, exec, begin, it);
++#endif
++
+     if (numberOfIdentifiers()) {
+         out.printf("\nIdentifiers:\n");
+         size_t i = 0;
+@@ -653,10 +658,44 @@
+     out.print(name, profile->m_counter);
+ }
+ 
++#if ENABLE(JIT)
+ void CodeBlock::dumpBytecode(PrintStream& out, ExecState* exec, const Instruction* begin, const Instruction*& it, const StubInfoMap& map)
+ {
+     int location = it - begin;
++    bool printed = false;
++
++    switch (exec->interpreter()->getOpcodeID(it->u.opcode)) {
++    case op_get_by_id:
++    case op_get_by_id_out_of_line:
++    case op_get_by_id_self:
++    case op_get_by_id_proto:
++    case op_get_by_id_chain:
++    case op_get_by_id_getter_self:
++    case op_get_by_id_getter_proto:
++    case op_get_by_id_getter_chain:
++    case op_get_by_id_custom_self:
++    case op_get_by_id_custom_proto:
++    case op_get_by_id_custom_chain:
++    case op_get_by_id_generic:
++    case op_get_array_length:
++    case op_get_string_length:
++        printGetByIdOp(out, exec, location, it);
++        printGetByIdCacheStatus(out, exec, location, map);
++        printed = true;
++        break;
++    default:
++        break;
++    }
++
++    dumpBytecode(out, exec, begin, it, printed);
++}
++#endif
++
++void CodeBlock::dumpBytecode(PrintStream& out, ExecState* exec, const Instruction* begin, const Instruction*& it, bool printed)
++{
++    int location = it - begin;
+     bool hasPrintedProfiling = false;
++
+     switch (exec->interpreter()->getOpcodeID(it->u.opcode)) {
+         case op_enter: {
+             printLocationAndOp(out, exec, location, it, "enter");
+@@ -958,8 +997,10 @@
+         case op_get_by_id_generic:
+         case op_get_array_length:
+         case op_get_string_length: {
+-            printGetByIdOp(out, exec, location, it);
+-            printGetByIdCacheStatus(out, exec, location, map);
++            if (!printed) {
++                printGetByIdOp(out, exec, location, it);
++                printGetByIdCacheStatus(out, exec, location);
++            }
+             dumpValueProfiling(out, it, hasPrintedProfiling);
+             break;
+         }
+Index: b/Source/JavaScriptCore/bytecode/CodeBlock.h
+===================================================================
+--- a/Source/JavaScriptCore/bytecode/CodeBlock.h
++++ b/Source/JavaScriptCore/bytecode/CodeBlock.h
+@@ -942,7 +942,10 @@
+ 
+ #if ENABLE(JIT)
+     ClosureCallStubRoutine* findClosureCallForReturnPC(ReturnAddressPtr);
++    void dumpBytecode(PrintStream&, ExecState*, const Instruction* begin, const Instruction*&, const StubInfoMap&);
+ #endif
++
++    void dumpBytecode(PrintStream&, ExecState*, const Instruction* begin, const Instruction*&, bool printed = false);
+         
+     void updateAllPredictionsAndCountLiveness(unsigned& numberOfLiveNonArgumentValueProfiles, unsigned& numberOfSamplesInProfiles);
+ 
+@@ -954,14 +957,15 @@
+             m_constantRegisters[i].set(*m_vm, ownerExecutable(), constants[i].get());
+     }
+ 
+-    void dumpBytecode(PrintStream&, ExecState*, const Instruction* begin, const Instruction*&, const StubInfoMap& = StubInfoMap());
+-
+     CString registerName(int r) const;
+     void printUnaryOp(PrintStream&, ExecState*, int location, const Instruction*&, const char* op);
+     void printBinaryOp(PrintStream&, ExecState*, int location, const Instruction*&, const char* op);
+     void printConditionalJump(PrintStream&, ExecState*, const Instruction*, const Instruction*&, int location, const char* op);
+     void printGetByIdOp(PrintStream&, ExecState*, int location, const Instruction*&);
++    void printGetByIdCacheStatus(PrintStream&, ExecState*, int location);
++#if ENABLE(JIT)
+     void printGetByIdCacheStatus(PrintStream&, ExecState*, int location, const StubInfoMap&);
++#endif
+     enum CacheDumpMode { DumpCaches, DontDumpCaches };
+     void printCallOp(PrintStream&, ExecState*, int location, const Instruction*&, const char* op, CacheDumpMode, bool& hasPrintedProfiling);
+     void printPutByIdOp(PrintStream&, ExecState*, int location, const Instruction*&, const char* op);
+Index: b/Source/JavaScriptCore/bytecode/GetByIdStatus.cpp
+===================================================================
+--- a/Source/JavaScriptCore/bytecode/GetByIdStatus.cpp
++++ b/Source/JavaScriptCore/bytecode/GetByIdStatus.cpp
+@@ -116,6 +116,7 @@
+ #endif
+ }
+ 
++#if ENABLE(JIT)
+ GetByIdStatus GetByIdStatus::computeFor(CodeBlock* profiledBlock, StubInfoMap& map, unsigned bytecodeIndex, StringImpl* uid)
+ {
+     ConcurrentJITLocker locker(profiledBlock->m_lock);
+@@ -151,18 +152,18 @@
+         if (!list->list[i].isDirect)
+             return GetByIdStatus(MakesCalls, true);
+     }
+-    
++
+     // Next check if it takes slow case, in which case we want to be kind of careful.
+     if (profiledBlock->likelyToTakeSlowCase(bytecodeIndex))
+         return GetByIdStatus(TakesSlowPath, true);
+-    
++
+     // Finally figure out if we can derive an access strategy.
+     GetByIdStatus result;
+     result.m_wasSeenInJIT = true; // This is interesting for bytecode dumping only.
+     switch (stubInfo->accessType) {
+     case access_unset:
+         return computeFromLLInt(profiledBlock, bytecodeIndex, uid);
+-        
++
+     case access_get_by_id_self: {
+         Structure* structure = stubInfo->u.getByIdSelf.baseObjectStructure.get();
+         if (structure->takesSlowPathInDFGForImpureProperty())
+@@ -215,15 +216,15 @@
+                 break;
+             } else if (result.m_specificValue != JSValue(specificValue))
+                 result.m_specificValue = JSValue();
+-            
++
+             result.m_structureSet.add(structure);
+         }
+-                    
++
+         if (isValidOffset(result.m_offset))
+             ASSERT(result.m_structureSet.size());
+         break;
+     }
+-        
++
+     case access_get_by_id_proto: {
+         if (!stubInfo->u.getByIdProto.isDirect)
+             return GetByIdStatus(MakesCalls, true);
+@@ -234,7 +235,7 @@
+         computeForChain(result, profiledBlock, uid);
+         break;
+     }
+-        
++
+     case access_get_by_id_chain: {
+         if (!stubInfo->u.getByIdChain.isDirect)
+             return GetByIdStatus(MakesCalls, true);
+@@ -246,12 +247,12 @@
+         computeForChain(result, profiledBlock, uid);
+         break;
+     }
+-        
++
+     default:
+         ASSERT(!isValidOffset(result.m_offset));
+         break;
+     }
+-    
++
+     if (!isValidOffset(result.m_offset)) {
+         result.m_state = TakesSlowPath;
+         result.m_structureSet.clear();
+@@ -259,13 +260,14 @@
+         result.m_specificValue = JSValue();
+     } else
+         result.m_state = Simple;
+-    
++
+     return result;
+-#else // ENABLE(JIT)
++#else // ENABLE(VALUE_PROFILER)
+     UNUSED_PARAM(map);
+     return GetByIdStatus(NoInformation, false);
+-#endif // ENABLE(JIT)
++#endif // ENABLE(VALUE_PROFILER)
+ }
++#endif // ENABLE(JIT)
+ 
+ GetByIdStatus GetByIdStatus::computeFor(VM& vm, Structure* structure, StringImpl* uid)
+ {
+Index: b/Source/JavaScriptCore/bytecode/GetByIdStatus.h
+===================================================================
+--- a/Source/JavaScriptCore/bytecode/GetByIdStatus.h
++++ b/Source/JavaScriptCore/bytecode/GetByIdStatus.h
+@@ -70,8 +70,9 @@
+     {
+         ASSERT((state == Simple) == (offset != invalidOffset));
+     }
+-    
++#if ENABLE(JIT)
+     static GetByIdStatus computeFor(CodeBlock*, StubInfoMap&, unsigned bytecodeIndex, StringImpl* uid);
++#endif
+     static GetByIdStatus computeFor(VM&, Structure*, StringImpl* uid);
+     
+     State state() const { return m_state; }
+Index: b/Source/JavaScriptCore/bytecode/PutByIdStatus.cpp
+===================================================================
+--- a/Source/JavaScriptCore/bytecode/PutByIdStatus.cpp
++++ b/Source/JavaScriptCore/bytecode/PutByIdStatus.cpp
+@@ -81,6 +81,7 @@
+ #endif
+ }
+ 
++#if ENABLE(JIT)
+ PutByIdStatus PutByIdStatus::computeFor(CodeBlock* profiledBlock, StubInfoMap& map, unsigned bytecodeIndex, StringImpl* uid)
+ {
+     ConcurrentJITLocker locker(profiledBlock->m_lock);
+@@ -103,7 +104,7 @@
+     case access_unset:
+         // If the JIT saw it but didn't optimize it, then assume that this takes slow path.
+         return PutByIdStatus(TakesSlowPath, 0, 0, 0, invalidOffset);
+-        
++
+     case access_put_by_id_replace: {
+         PropertyOffset offset =
+             stubInfo->u.putByIdReplace.baseObjectStructure->getConcurrently(
+@@ -117,7 +118,7 @@
+         }
+         return PutByIdStatus(TakesSlowPath, 0, 0, 0, invalidOffset);
+     }
+-        
++
+     case access_put_by_id_transition_normal:
+     case access_put_by_id_transition_direct: {
+         ASSERT(stubInfo->u.putByIdTransition.previousStructure->transitionWatchpointSetHasBeenInvalidated());
+@@ -136,17 +137,18 @@
+         }
+         return PutByIdStatus(TakesSlowPath, 0, 0, 0, invalidOffset);
+     }
+-        
++
+     default:
+         // FIXME: We should handle polymorphic PutById. We probably have some interesting things
+         // we could do about it.
+         return PutByIdStatus(TakesSlowPath, 0, 0, 0, invalidOffset);
+     }
+-#else // ENABLE(JIT)
++#else // ENABLE(VALUE_PROFILER)
+     UNUSED_PARAM(map);
+     return PutByIdStatus(NoInformation, 0, 0, 0, invalidOffset);
+-#endif // ENABLE(JIT)
++#endif // ENABLE(VALUE_PROFILER)
+ }
++#endif // ENABLE(JIT)
+ 
+ PutByIdStatus PutByIdStatus::computeFor(VM& vm, JSGlobalObject* globalObject, Structure* structure, StringImpl* uid, bool isDirect)
+ {
+Index: b/Source/JavaScriptCore/bytecode/PutByIdStatus.h
+===================================================================
+--- a/Source/JavaScriptCore/bytecode/PutByIdStatus.h
++++ b/Source/JavaScriptCore/bytecode/PutByIdStatus.h
+@@ -90,8 +90,9 @@
+         ASSERT(!((m_state != SimpleTransition) && m_structureChain));
+         ASSERT((m_state == NoInformation || m_state == TakesSlowPath) == (m_offset == invalidOffset));
+     }
+-    
++#if ENABLE(JIT)
+     static PutByIdStatus computeFor(CodeBlock*, StubInfoMap&, unsigned bytecodeIndex, StringImpl* uid);
++#endif
+     static PutByIdStatus computeFor(VM&, JSGlobalObject*, Structure*, StringImpl* uid, bool isDirect);
+     
+     State state() const { return m_state; }
diff -Nru webkitgtk-2.4.3/debian/patches/fix-aarch64.patch webkitgtk-2.4.3/debian/patches/fix-aarch64.patch
--- webkitgtk-2.4.3/debian/patches/fix-aarch64.patch	1970-01-01 01:00:00.000000000 +0100
+++ webkitgtk-2.4.3/debian/patches/fix-aarch64.patch	2014-06-06 09:36:24.000000000 +0100
@@ -0,0 +1,30 @@
+Description: Don't use COMPARE_AND_SWAP on arm64; it produces invalid asm. Fix some other areas where disabling JIT doesn't work.
+Author: Iain Lane <iain.lane@canonical.com>
+Forwarded: no (not test-built yet, and ideally the asm should be fixed instead)
+
+Index: b/Source/WTF/wtf/Platform.h
+===================================================================
+--- a/Source/WTF/wtf/Platform.h
++++ b/Source/WTF/wtf/Platform.h
+@@ -969,7 +968,7 @@
+ #define WTF_USE_IMLANG_FONT_LINK2 1
+ #endif
+ 
+-#if !defined(ENABLE_COMPARE_AND_SWAP) && (OS(WINDOWS) || (COMPILER(GCC) && (CPU(X86) || CPU(X86_64) || CPU(ARM_THUMB2) || CPU(ARM64))))
++#if !defined(ENABLE_COMPARE_AND_SWAP) && (OS(WINDOWS) || (COMPILER(GCC) && (CPU(X86) || CPU(X86_64) || CPU(ARM_THUMB2))))
+ #define ENABLE_COMPARE_AND_SWAP 1
+ #endif
+
+Index: b/Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp
+===================================================================
+--- webkitgtk-2.3.4.orig/Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp
++++ webkitgtk-2.3.4.orig/Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp
+@@ -1035,7 +1035,7 @@ TransformationMatrix TransformationMatri
+ // this = mat * this.
+ TransformationMatrix& TransformationMatrix::multiply(const TransformationMatrix& mat)
+ {
+-#if CPU(ARM64)
++#if CPU(ARM64) && PLATFORM(IOS)
+     double* leftMatrix = &(m_matrix[0][0]);
+     const double* rightMatrix = &(mat.m_matrix[0][0]);
+     asm volatile (
diff -Nru webkitgtk-2.4.3/debian/patches/gtkdoc-remove-Wcast-align.patch webkitgtk-2.4.3/debian/patches/gtkdoc-remove-Wcast-align.patch
--- webkitgtk-2.4.3/debian/patches/gtkdoc-remove-Wcast-align.patch	2014-06-09 13:35:50.000000000 +0100
+++ webkitgtk-2.4.3/debian/patches/gtkdoc-remove-Wcast-align.patch	1970-01-01 01:00:00.000000000 +0100
@@ -1,28 +0,0 @@
-From: Victor Jaquez <vjaquez@igalia.com>
-Subject: Remove -Wcast-align during gtk-doc generation
-Bug: https://bugs.webkit.org/show_bug.cgi?id=133640
-Bug-Debian: http://bugs.debian.org/750839
-diff --git a/Tools/gtk/generate-gtkdoc b/Tools/gtk/generate-gtkdoc
-index c55998b..f9ab96b 100755
---- a/Tools/gtk/generate-gtkdoc
-+++ b/Tools/gtk/generate-gtkdoc
-@@ -110,6 +110,7 @@ def get_generator_for_config(config_file, virtual_root):
-     if not os.path.isfile(pkgconfig_file):
-         return None
- 
-+    cflags = [x for x in config.get(module_name, 'cflags').split() if x != '-Wcast-align']
-     source_dirs = config.get(module_name, 'source_dirs').replace(';', ' ').split()
-     headers = [os.path.abspath(f) for f in config.get(module_name, 'headers').replace(';', ' ').split()]
-     return gtkdoc.PkgConfigGTKDoc(pkgconfig_file, {
-@@ -123,7 +124,7 @@ def get_generator_for_config(config_file, virtual_root):
-         'output_dir': common.build_path('Documentation', module_name),
-         'source_dirs': source_dirs,
-         'headers': headers,
--        'cflags': " ".join(config.get(module_name, 'cflags').split()),
-+        'cflags': " ".join(cflags),
-         'cross_reference_deps': get_gtkdoc_module_paths(gtk_version),
-         'ignored_files': files_to_ignore(source_dirs, headers),
-     })
--- 
-2.0.0.rc2
-
diff -Nru webkitgtk-2.4.3/debian/patches/no-gtkdoc-warning-fail.patch webkitgtk-2.4.3/debian/patches/no-gtkdoc-warning-fail.patch
--- webkitgtk-2.4.3/debian/patches/no-gtkdoc-warning-fail.patch	1970-01-01 01:00:00.000000000 +0100
+++ webkitgtk-2.4.3/debian/patches/no-gtkdoc-warning-fail.patch	2014-06-06 09:36:24.000000000 +0100
@@ -0,0 +1,8 @@
+--- a/Tools/gtk/generate-gtkdoc
++++ b/Tools/gtk/generate-gtkdoc
+@@ -200,4 +200,4 @@
+     saw_webkit1_warnings = generate_documentation_for_config(common.build_path('gtkdoc-webkitgtk.cfg'))
+     saw_webkit2_warnings = generate_documentation_for_config(common.build_path('gtkdoc-webkit2gtk.cfg'))
+ 
+-    sys.exit(saw_webkit1_warnings or saw_webkit2_warnings)
++    sys.exit(False)
diff -Nru webkitgtk-2.4.3/debian/patches/ppc64el.patch webkitgtk-2.4.3/debian/patches/ppc64el.patch
--- webkitgtk-2.4.3/debian/patches/ppc64el.patch	1970-01-01 01:00:00.000000000 +0100
+++ webkitgtk-2.4.3/debian/patches/ppc64el.patch	2014-06-06 09:36:24.000000000 +0100
@@ -0,0 +1,29 @@
+Description: Handle little-endian mode for PowerPC
+Author: Colin Watson <cjwatson@ubuntu.com>
+Forwarded: no
+Last-Update: 2013-12-16
+
+Index: b/Source/WTF/wtf/Platform.h
+===================================================================
+--- a/Source/WTF/wtf/Platform.h
++++ b/Source/WTF/wtf/Platform.h
+@@ -109,15 +109,19 @@
+     || defined(_M_PPC)      \
+     || defined(__PPC)
+ #define WTF_CPU_PPC 1
++#ifndef __LITTLE_ENDIAN__
+ #define WTF_CPU_BIG_ENDIAN 1
+ #endif
++#endif
+ 
+ /* CPU(PPC64) - PowerPC 64-bit */
+ #if   defined(__ppc64__) \
+     || defined(__PPC64__)
+ #define WTF_CPU_PPC64 1
++#ifndef __LITTLE_ENDIAN__
+ #define WTF_CPU_BIG_ENDIAN 1
+ #endif
++#endif
+ 
+ /* CPU(SH4) - SuperH SH-4 */
+ #if defined(__SH4__)
diff -Nru webkitgtk-2.4.3/debian/patches/series webkitgtk-2.4.3/debian/patches/series
--- webkitgtk-2.4.3/debian/patches/series	2014-06-09 13:35:50.000000000 +0100
+++ webkitgtk-2.4.3/debian/patches/series	2014-06-06 09:36:24.000000000 +0100
@@ -5,9 +5,14 @@
 restore_sparc_code.patch
 enable_llint.patch
 02_notebook_scroll.patch
+aarch64.patch
+bugzilla_clear_surface.patch
+ppc64el.patch
+disable-jit-harder.patch
+fix-aarch64.patch
 fix-textrel-x86.patch
 ftbfs-armhf.patch
 local-label-string-hurd.patch
 x32_support.patch
 fix-webprocess-leak.patch
-gtkdoc-remove-Wcast-align.patch
+no-gtkdoc-warning-fail.patch
diff -Nru webkitgtk-2.4.3/debian/rules webkitgtk-2.4.3/debian/rules
--- webkitgtk-2.4.3/debian/rules	2014-06-09 13:35:50.000000000 +0100
+++ webkitgtk-2.4.3/debian/rules	2014-06-06 09:36:24.000000000 +0100
@@ -62,7 +62,7 @@
 endif
 
 # See https://bugs.webkit.org/show_bug.cgi?id=113638
-ifneq (,$(filter $(DEB_BUILD_ARCH),alpha hppa ia64 powerpc powerpcspe ppc64 sparc sparc64 s390 s390x mips64el))
+ifneq (,$(filter $(DEB_BUILD_ARCH),arm64 alpha hppa ia64 powerpc powerpcspe ppc64 ppc64el sparc sparc64 s390 s390x mips64el))
 	CPPFLAGS += -DENABLE_JIT=0 -DENABLE_YARR_JIT=0 -DENABLE_ASSEMBLER=0
 endif
 

