[mingw-webkitgtk] Update to 2.2.3

Erik van Pienbroek epienbro at fedoraproject.org
Sun Dec 15 15:50:29 UTC 2013


commit 892fdb59a5989e157f9409d6ebd99a4459225dff
Author: Erik van Pienbroek <epienbro at fedoraproject.org>
Date:   Sun Dec 15 16:50:22 2013 +0100

    Update to 2.2.3

 .gitignore                                         |    1 +
 mingw-webkitgtk.spec                               |   73 +++++++-
 sources                                            |    2 +-
 webkit-fix-angle-windows-compilation.patch         |   82 ++++++++
 webkitgtk-dont-build-test-webkit-api.patch         |   10 +
 webkitgtk-jit-win64.patch                          |  196 --------------------
 webkitgtk-mingw-compile-fix.patch                  |   11 +
 ...itgtk-mingw-dont-declare-readwritebarrier.patch |   11 +
 webkitgtk-mingw-fix-includes.patch                 |   12 ++
 webkitgtk-mingw-m-pi.patch                         |   14 ++
 webkitgtk-mingw-opengl.patch                       |   38 ++++
 ...tgtk-mingw-prevent-no-error-name-conflict.patch |   16 ++
 webkitgtk-mingw-use-gcc-asm.patch                  |   11 +
 ...tgtk-prevent-multiple-plugins-definitions.patch |   35 ++++
 ...ngw.patch => webkitgtk-redo-commit-148663.patch |   39 +++--
 ...tk-remove-reference-to-nonexisting-header.patch |   14 ++
 ...gtk-workaround-conflicting-htonl-on-win64.patch |   23 +++
 17 files changed, 366 insertions(+), 222 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index bde3ae2..ecbfbd2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,3 +15,4 @@
 /webkitgtk-1.10.1.tar.xz
 /webkitgtk-1.10.2.tar.xz
 /webkitgtk-2.0.4.tar.xz
+/webkitgtk-2.2.3.tar.xz
diff --git a/mingw-webkitgtk.spec b/mingw-webkitgtk.spec
index d123953..8301263 100644
--- a/mingw-webkitgtk.spec
+++ b/mingw-webkitgtk.spec
@@ -24,8 +24,8 @@
 %bcond_with	debug
 
 Name:		mingw-webkitgtk
-Version:	2.0.4
-Release:	2%{?dist}
+Version:	2.2.3
+Release:	1%{?dist}
 Summary:	MinGW Windows web content engine library
 
 Group:		Development/Libraries
@@ -34,13 +34,53 @@ URL:		http://webkit.org/
 
 Source0:	http://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz
 
+# Remove reference to a header which doesn't exist any more
+Patch0:         webkitgtk-remove-reference-to-nonexisting-header.patch
+
+# Don't use MSVC specific ASM code, but GCC compatible ASM code
+Patch1:         webkitgtk-mingw-use-gcc-asm.patch
+
 # Skip building the DumpRenderTree tool which requires internal symbols that
 # aren't exported in the .dll.
 Patch2:         webkit-dont-build-dump-render-tree.patch
-#https://bugs.webkit.org/show_bug.cgi?id=107965
-Patch7:         webkitgtk-jit-win64.patch
-#https://bugs.webkit.org/show_bug.cgi?id=114580
-Patch8:         webkitgtk-jit-mingw.patch
+
+# Don't declare _ReadWriteBarrier which conflicts with mingw-w64's intrinsic headers
+Patch3:         webkitgtk-mingw-dont-declare-readwritebarrier.patch
+
+# Some code in webkitgtk assumes that building for the GTK platform always happens for non-Windows targets
+Patch4:         webkitgtk-mingw-compile-fix.patch
+
+# The mingw-w64 headers contain a #define NO_ERROR which conflicts with the one used in WebKitGtk
+Patch5:         webkitgtk-mingw-prevent-no-error-name-conflict.patch
+
+# Add missing include path which is needed to allow mingw compilation
+Patch6:         webkitgtk-mingw-fix-includes.patch
+
+# The ANGLE code needs a piece of Windows specific code. Apparently this
+# code isn't bundled in the webkitgtk tarball. Manually import this missing
+# file from https://chromium.googlesource.com/angle/angle/+/master/src/compiler/ossource_win.cpp
+Patch7:         webkit-fix-angle-windows-compilation.patch
+
+# M_PI is only defined in non-c++11 builds
+Patch8:         webkitgtk-mingw-m-pi.patch
+
+# Make sure only one plugin implementation is built
+Patch9:         webkitgtk-prevent-multiple-plugins-definitions.patch
+
+# Fix OpenGL detection when using MinGW
+Patch10:        webkitgtk-mingw-opengl.patch
+
+# The test tool TestWebKitAPI currently doesn't build
+Patch11:        webkitgtk-dont-build-test-webkit-api.patch
+
+# Support for JIT on MinGW Win64 got lost by the refactor which was
+# done in commit 153160. Reapply the commit in question which got lost
+Patch12:        webkitgtk-redo-commit-148663.patch
+
+# The prototype declaration of htonl from mingw-headers conflicts with
+# prototype declaration as used inside WebKitGTK for the win64 target
+# Workaround this for now
+Patch13:        webkitgtk-workaround-conflicting-htonl-on-win64.patch
 
 BuildArch:	noarch
 
@@ -148,9 +188,20 @@ Static version of the MinGW Windows WebKitGTK+ library.
 %prep
 %setup -qn "webkitgtk-%{version}"
 
+%patch0 -p1 -b .mingw
+%patch1 -p1 -b .asm
 %patch2 -p0 -b .dumprendertree
-%patch7 -p1 -b .jit-win64
-%patch8 -p1 -b .jit-mingw
+%patch3 -p1 -b .intrin
+%patch4 -p1 -b .win_platform
+%patch5 -p1 -b .no_error
+%patch6 -p1 -b .includes
+%patch7 -p1 -b .angle
+%patch8 -p1 -b .m_pi
+%patch9 -p0 -b .plugins
+%patch10 -p1 -b .opengl
+%patch11 -p1 -b .test_webkit_api
+%patch12 -p1 -b .jit_win64
+%patch13 -p1 -b .htonl
 
 autoreconf --verbose --install -I Source/autotools
 
@@ -170,7 +221,8 @@ export AR_FLAGS="cru"
 			--with-target=win32			\
 			--with-gtk=2.0				\
 			--enable-static --enable-shared		\
-			--with-acceleration-backend=none	\
+			--disable-accelerated-compositing	\
+			--disable-egl				\
 			--disable-credential-storage		\
 			--disable-geolocation			\
 			--disable-webkit2			\
@@ -254,6 +306,9 @@ find $RPM_BUILD_ROOT -name "*.la" -delete
 
 
 %changelog
+* Wed Dec  4 2013 Erik van Pienbroek <epienbro at fedoraproject.org> - 2.2.3-1
+- Update to 2.2.3
+
 * Fri Sep 20 2013 Erik van Pienbroek <epienbro at fedoraproject.org> - 2.0.4-2
 - Rebuild against winpthreads
 
diff --git a/sources b/sources
index cd5ab26..bdc6def 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-413be319ba171feed9348d1bede6b0a7  webkitgtk-2.0.4.tar.xz
+613e81c460368ff4d6e02c7887206572  webkitgtk-2.2.3.tar.xz
diff --git a/webkit-fix-angle-windows-compilation.patch b/webkit-fix-angle-windows-compilation.patch
new file mode 100644
index 0000000..0f7d6fb
--- /dev/null
+++ b/webkit-fix-angle-windows-compilation.patch
@@ -0,0 +1,82 @@
+--- /dev/null	2013-12-01 23:52:53.623612457 +0100
++++ webkitgtk-2.2.3/Source/ThirdParty/ANGLE/src/compiler/ossource_win.cpp	2013-12-04 23:17:33.367830698 +0100
+@@ -0,0 +1,58 @@
++//
++// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
++// Use of this source code is governed by a BSD-style license that can be
++// found in the LICENSE file.
++//
++
++#include "compiler/osinclude.h"
++//
++// This file contains contains the window's specific functions
++//
++
++#if !defined(ANGLE_OS_WIN)
++#error Trying to build a windows specific file in a non windows build.
++#endif
++
++
++//
++// Thread Local Storage Operations
++//
++OS_TLSIndex OS_AllocTLSIndex()
++{
++        DWORD dwIndex = TlsAlloc();
++        if (dwIndex == TLS_OUT_OF_INDEXES) {
++                assert(0 && "OS_AllocTLSIndex(): Unable to allocate Thread Local Storage");
++                return OS_INVALID_TLS_INDEX;
++        }
++
++        return dwIndex;
++}
++
++
++bool OS_SetTLSValue(OS_TLSIndex nIndex, void *lpvValue)
++{
++        if (nIndex == OS_INVALID_TLS_INDEX) {
++                assert(0 && "OS_SetTLSValue(): Invalid TLS Index");
++                return false;
++        }
++
++        if (TlsSetValue(nIndex, lpvValue))
++                return true;
++        else
++                return false;
++}
++
++
++bool OS_FreeTLSIndex(OS_TLSIndex nIndex)
++{
++        if (nIndex == OS_INVALID_TLS_INDEX) {
++                assert(0 && "OS_SetTLSValue(): Invalid TLS Index");
++                return false;
++        }
++
++        if (TlsFree(nIndex))
++                return true;
++        else
++                return false;
++}
++
+--- webkitgtk-2.2.3/Source/ThirdParty/ANGLE/GNUmakefile.am.orig	2013-12-04 23:12:01.034574086 +0100
++++ webkitgtk-2.2.3/Source/ThirdParty/ANGLE/GNUmakefile.am	2013-12-04 23:19:09.719774371 +0100
+@@ -75,7 +75,6 @@
+ 	Source/ThirdParty/ANGLE/src/compiler/MapLongVariableNames.h \
+ 	Source/ThirdParty/ANGLE/src/compiler/MMap.h \
+ 	Source/ThirdParty/ANGLE/src/compiler/osinclude.h \
+-	Source/ThirdParty/ANGLE/src/compiler/ossource_posix.cpp \
+ 	Source/ThirdParty/ANGLE/src/compiler/OutputESSL.cpp \
+ 	Source/ThirdParty/ANGLE/src/compiler/OutputESSL.h \
+ 	Source/ThirdParty/ANGLE/src/compiler/OutputGLSL.cpp \
+@@ -154,3 +153,10 @@
+ 	Source/ThirdParty/ANGLE/src/compiler/VariableInfo.h \
+ 	Source/ThirdParty/ANGLE/src/third_party/compiler/ArrayBoundsClamper.cpp \
+ 	Source/ThirdParty/ANGLE/src/third_party/compiler/ArrayBoundsClamper.h
++
++if TARGET_WIN32
++libANGLE_la_SOURCES += Source/ThirdParty/ANGLE/src/compiler/ossource_win.cpp
++else
++libANGLE_la_SOURCES += Source/ThirdParty/ANGLE/src/compiler/ossource_posix.cpp
++endif
++
diff --git a/webkitgtk-dont-build-test-webkit-api.patch b/webkitgtk-dont-build-test-webkit-api.patch
new file mode 100644
index 0000000..324ab4d
--- /dev/null
+++ b/webkitgtk-dont-build-test-webkit-api.patch
@@ -0,0 +1,10 @@
+--- webkitgtk-2.2.3/Tools/TestWebKitAPI/GNUmakefile.am.orig	2013-12-11 20:44:41.223779759 +0100
++++ webkitgtk-2.2.3/Tools/TestWebKitAPI/GNUmakefile.am	2013-12-11 20:44:58.007779094 +0100
+@@ -23,7 +23,6 @@
+ noinst_PROGRAMS += \
+ 	Programs/TestWebKitAPI/TestWTF \
+ 	Programs/TestWebKitAPI/TestJavaScriptCore \
+-	Programs/TestWebKitAPI/TestWebCore \
+ 	Programs/TestWebKitAPI/TestGtk
+ 
+ if ENABLE_WEBKIT2
diff --git a/webkitgtk-mingw-compile-fix.patch b/webkitgtk-mingw-compile-fix.patch
new file mode 100644
index 0000000..3d8525e
--- /dev/null
+++ b/webkitgtk-mingw-compile-fix.patch
@@ -0,0 +1,11 @@
+--- webkitgtk-2.2.3/Source/WTF/wtf/threads/BinarySemaphore.cpp.orig	2013-12-04 20:08:56.016394944 +0100
++++ webkitgtk-2.2.3/Source/WTF/wtf/threads/BinarySemaphore.cpp	2013-12-04 20:09:22.055655312 +0100
+@@ -26,7 +26,7 @@
+ #include "config.h"
+ #include "BinarySemaphore.h"
+ 
+-#if !PLATFORM(WIN)
++#if !OS(WINDOWS)
+ 
+ namespace WTF {
+ 
diff --git a/webkitgtk-mingw-dont-declare-readwritebarrier.patch b/webkitgtk-mingw-dont-declare-readwritebarrier.patch
new file mode 100644
index 0000000..8944d2b
--- /dev/null
+++ b/webkitgtk-mingw-dont-declare-readwritebarrier.patch
@@ -0,0 +1,11 @@
+--- webkitgtk-2.2.3/Source/WTF/wtf/Atomics.h.orig	2013-12-04 19:53:50.995225126 +0100
++++ webkitgtk-2.2.3/Source/WTF/wtf/Atomics.h	2013-12-04 19:56:24.103724030 +0100
+@@ -65,7 +65,7 @@
+ #if OS(WINDOWS)
+ #if OS(WINCE)
+ #include <cmnintrin.h>
+-#else
++#elif !COMPILER(MINGW)
+ extern "C" void _ReadWriteBarrier(void);
+ #pragma intrinsic(_ReadWriteBarrier)
+ #endif
diff --git a/webkitgtk-mingw-fix-includes.patch b/webkitgtk-mingw-fix-includes.patch
new file mode 100644
index 0000000..2f17df9
--- /dev/null
+++ b/webkitgtk-mingw-fix-includes.patch
@@ -0,0 +1,12 @@
+--- webkitgtk-2.2.3/Source/Platform/GNUmakefile.am.orig	2013-12-04 22:54:03.522928222 +0100
++++ webkitgtk-2.2.3/Source/Platform/GNUmakefile.am	2013-12-04 22:54:28.684175941 +0100
+@@ -55,7 +55,8 @@
+ 	-I$(srcdir)/Source/WebCore/platform/network/gtk \
+ 	-I$(srcdir)/Source/WebCore/platform/network/soup \
+ 	-I$(srcdir)/Source/WebCore/platform/text \
+-	-I$(srcdir)/Source/WebCore/platform/text/transcoder
++	-I$(srcdir)/Source/WebCore/platform/text/transcoder \
++	-I$(srcdir)/Source/WebCore/platform/win
+ 
+ noinst_LTLIBRARIES += \
+ 	libPlatform.la \
diff --git a/webkitgtk-mingw-m-pi.patch b/webkitgtk-mingw-m-pi.patch
new file mode 100644
index 0000000..7be5346
--- /dev/null
+++ b/webkitgtk-mingw-m-pi.patch
@@ -0,0 +1,14 @@
+--- webkitgtk-2.2.3/Tools/TestWebKitAPI/Tests/WTF/MediaTime.cpp.orig	2013-12-05 08:22:08.604832230 +0100
++++ webkitgtk-2.2.3/Tools/TestWebKitAPI/Tests/WTF/MediaTime.cpp	2013-12-05 08:23:27.257593978 +0100
+@@ -44,6 +44,11 @@
+ #endif
+ #endif
+ 
++#if COMPILER(MINGW) && !defined(M_PI)
++// M_PI is only defined in MinGW in non-c++11 builds
++#define M_PI		3.14159265358979323846
++#endif
++
+ namespace WTF {
+ 
+ std::ostream& operator<<(std::ostream& out, const MediaTime& val)
diff --git a/webkitgtk-mingw-opengl.patch b/webkitgtk-mingw-opengl.patch
new file mode 100644
index 0000000..819d755
--- /dev/null
+++ b/webkitgtk-mingw-opengl.patch
@@ -0,0 +1,38 @@
+--- webkitgtk-2.2.3/Source/autotools/FindDependencies.m4.orig	2013-12-05 21:46:18.648151386 +0100
++++ webkitgtk-2.2.3/Source/autotools/FindDependencies.m4	2013-12-05 21:48:03.347173354 +0100
+@@ -436,6 +436,9 @@
+     if test "$enable_gles2" = "yes"; then
+         acceleration_description="$acceleration_description (gles2"
+         OPENGL_LIBS="-lGLESv2"
++    elif test "$os_win32" = "yes"; then
++        acceleration_description="$acceleration_description (gl"
++        OPENGL_LIBS="-lopengl32"
+     else
+         acceleration_description="$acceleration_description (gl"
+         OPENGL_LIBS="-lGL"
+@@ -450,7 +453,9 @@
+ 
+     # Check whether dlopen() is in the core libc like on FreeBSD, or in a separate
+     # libdl like on GNU/Linux (in which case we want to link to libdl).
+-    AC_CHECK_FUNC([dlopen], [], [AC_CHECK_LIB([dl], [dlopen], [OPENGL_LIBS="$OPENGL_LIBS -ldl"])])
++    if test "$os_win32" = "no"; then
++        AC_CHECK_FUNC([dlopen], [], [AC_CHECK_LIB([dl], [dlopen], [OPENGL_LIBS="$OPENGL_LIBS -ldl"])])
++    fi
+ 
+     acceleration_description="$acceleration_description)"
+ fi
+--- webkitgtk-2.2.3/Source/WebCore/platform/graphics/OpenGLShims.cpp.orig	2013-12-05 21:50:59.704893040 +0100
++++ webkitgtk-2.2.3/Source/WebCore/platform/graphics/OpenGLShims.cpp	2013-12-05 21:52:14.032617235 +0100
+@@ -44,10 +44,10 @@
+         return reinterpret_cast<void*>(context->getProcAddress(procName));
+     return 0;
+ }
+-#elif PLATFORM(WIN)
++#elif OS(WINDOWS)
+ static void* getProcAddress(const char* procName)
+ {
+-    return GetProcAddress(GetModuleHandleA("libGLESv2"), procName);
++    return reinterpret_cast<void*>(GetProcAddress(GetModuleHandleA("libGLESv2"), procName));
+ }
+ #else
+ typedef void* (*glGetProcAddressType) (const char* procName);
diff --git a/webkitgtk-mingw-prevent-no-error-name-conflict.patch b/webkitgtk-mingw-prevent-no-error-name-conflict.patch
new file mode 100644
index 0000000..64b052b
--- /dev/null
+++ b/webkitgtk-mingw-prevent-no-error-name-conflict.patch
@@ -0,0 +1,16 @@
+--- webkitgtk-2.2.3/Source/WebCore/platform/graphics/GraphicsContext3D.h.orig	2013-12-04 22:08:10.625202381 +0100
++++ webkitgtk-2.2.3/Source/WebCore/platform/graphics/GraphicsContext3D.h	2013-12-04 22:16:51.331228349 +0100
+@@ -43,9 +43,11 @@
+ #endif
+ 
+ // FIXME: Find a better way to avoid the name confliction for NO_ERROR.
+-#if PLATFORM(WIN) || (PLATFORM(QT) && OS(WINDOWS))
++#if PLATFORM(WIN) || (PLATFORM(QT) && OS(WINDOWS)) || (PLATFORM(GTK) && OS(WINDOWS))
+ #undef NO_ERROR
+-#elif PLATFORM(GTK)
++#endif
++
++#if PLATFORM(GTK)
+ // This define is from the X11 headers, but it's used below, so we must undefine it.
+ #undef VERSION
+ #endif
diff --git a/webkitgtk-mingw-use-gcc-asm.patch b/webkitgtk-mingw-use-gcc-asm.patch
new file mode 100644
index 0000000..fe47e4a
--- /dev/null
+++ b/webkitgtk-mingw-use-gcc-asm.patch
@@ -0,0 +1,11 @@
+--- webkitgtk-2.2.3/Source/WTF/wtf/Atomics.h.orig	2013-12-04 19:49:26.788630335 +0100
++++ webkitgtk-2.2.3/Source/WTF/wtf/Atomics.h	2013-12-04 19:50:17.217126505 +0100
+@@ -278,7 +278,7 @@
+ inline bool weakCompareAndSwap(uint8_t* location, uint8_t expected, uint8_t newValue)
+ {
+ #if ENABLE(COMPARE_AND_SWAP)
+-#if !OS(WINDOWS) && (CPU(X86) || CPU(X86_64))
++#if COMPILER(GCC) && (CPU(X86) || CPU(X86_64))
+     unsigned char result;
+     asm volatile(
+         "lock; cmpxchgb %3, %2\n\t"
diff --git a/webkitgtk-prevent-multiple-plugins-definitions.patch b/webkitgtk-prevent-multiple-plugins-definitions.patch
new file mode 100644
index 0000000..28dfcd8
--- /dev/null
+++ b/webkitgtk-prevent-multiple-plugins-definitions.patch
@@ -0,0 +1,35 @@
+--- Source/WebCore/GNUmakefile.list.am.orig	2013-12-05 18:16:06.814020249 +0100
++++ Source/WebCore/GNUmakefile.list.am	2013-12-05 19:08:48.105560181 +0100
+@@ -6261,22 +6261,25 @@
+ 	Source/WebCore/platform/graphics/glx/GLContextGLX.h
+ endif # END USE_GLX
+ else
++if !TARGET_WIN32
+ webcore_sources += \
+ 	Source/WebCore/plugins/PluginPackageNone.cpp \
+ 	Source/WebCore/plugins/PluginViewNone.cpp
++endif # END !TARGET_WIN32
+ endif # END TARGET_X11
+ 
++if USE_OPENGL
++platformgtk_sources += \
++        Source/WebCore/platform/graphics/GLContext.cpp \
++        Source/WebCore/platform/graphics/GLContext.h \
++        Source/WebCore/platform/gtk/RedirectedXCompositeWindow.cpp \
++        Source/WebCore/platform/gtk/RedirectedXCompositeWindow.h
++endif # END USE_OPENGL
++
+ if TARGET_X11_OR_WAYLAND
+ platformgtk_sources += \
+ 	Source/WebCore/platform/cairo/WidgetBackingStoreCairo.h \
+ 	Source/WebCore/platform/cairo/WidgetBackingStoreCairo.cpp
+-if USE_OPENGL
+-platformgtk_sources += \
+-	Source/WebCore/platform/graphics/GLContext.cpp \
+-	Source/WebCore/platform/graphics/GLContext.h \
+-	Source/WebCore/platform/gtk/RedirectedXCompositeWindow.cpp \
+-	Source/WebCore/platform/gtk/RedirectedXCompositeWindow.h
+-endif # END USE_OPENGL
+ if USE_EGL
+ webcoregtk_sources += \
+ 	Source/WebCore/platform/graphics/egl/GLContextEGL.cpp \
diff --git a/webkitgtk-jit-mingw.patch b/webkitgtk-redo-commit-148663.patch
similarity index 72%
rename from webkitgtk-jit-mingw.patch
rename to webkitgtk-redo-commit-148663.patch
index c8daffb..607ecbc 100644
--- a/webkitgtk-jit-mingw.patch
+++ b/webkitgtk-redo-commit-148663.patch
@@ -1,21 +1,20 @@
-diff --git a/Source/JavaScriptCore/jit/JITStubs.cpp b/Source/JavaScriptCore/jit/JITStubs.cpp
-index d3da846..052292f 100644
---- a/Source/JavaScriptCore/jit/JITStubs.cpp
-+++ b/Source/JavaScriptCore/jit/JITStubs.cpp
-@@ -368,7 +368,7 @@ SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
+--- webkitgtk-2.2.3/Source/JavaScriptCore/jit/JITStubsX86_64.h.orig	2013-12-14 15:36:33.948695738 +0100
++++ webkitgtk-2.2.3/Source/JavaScriptCore/jit/JITStubsX86_64.h	2013-12-14 15:57:48.788612387 +0100
+@@ -43,7 +43,7 @@
  
- #else // USE(JSVALUE32_64)
+ namespace JSC {
  
--#if COMPILER(GCC) && CPU(X86_64)
-+#if COMPILER(GCC) && CPU(X86_64) && !OS(WINDOWS)
+-#if COMPILER(GCC)
++#if COMPILER(GCC) && !OS(WINDOWS)
  
  // These ASSERTs remind you that, if you change the layout of JITStackFrame, you
  // need to change the assembly trampolines below to match.
-@@ -437,6 +437,75 @@ SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
-     "ret" "\n"
+@@ -289,7 +289,86 @@
  );
+ #endif // USE(MASM_PROBE)
  
-+#elif COMPILER(GCC) && CPU(X86_64) && OS(WINDOWS)
+-#endif // COMPILER(GCC)
++#elif COMPILER(GCC) && OS(WINDOWS)
 +
 +// These ASSERTs remind you that, if you change the layout of JITStackFrame, you
 +// need to change the assembly trampolines below to match.
@@ -71,6 +70,16 @@ index d3da846..052292f 100644
 +);
 +
 +asm (
++".globl " SYMBOL_STRING(ctiVMHandleException) "\n"
++HIDE_SYMBOL(ctiVMHandleException) "\n"
++SYMBOL_STRING(ctiVMHandleException) ":" "\n"
++    "movq %r13, %rdi" "\n"
++    "call " LOCAL_REFERENCE(cti_vm_handle_exception) "\n"
++    // When cti_vm_handle_exception returns, rax has callFrame and rdx has handler address
++    "jmp *%rdx" "\n"
++);
++
++asm (
 +".globl " SYMBOL_STRING(ctiOpThrowNotCaught) "\n"
 +HIDE_SYMBOL(ctiOpThrowNotCaught) "\n"
 +SYMBOL_STRING(ctiOpThrowNotCaught) ":" "\n"
@@ -84,9 +93,7 @@ index d3da846..052292f 100644
 +    "ret" "\n"
 +);
 +
- #elif COMPILER(MSVC) && CPU(X86_64)
++#endif // COMPILER(GCC) && !OS(WINDOWS)
+ 
+ #if COMPILER(MSVC)
  
- // These ASSERTs remind you that, if you change the layout of JITStackFrame, you
--- 
-1.8.2.1
-
diff --git a/webkitgtk-remove-reference-to-nonexisting-header.patch b/webkitgtk-remove-reference-to-nonexisting-header.patch
new file mode 100644
index 0000000..36efd3e
--- /dev/null
+++ b/webkitgtk-remove-reference-to-nonexisting-header.patch
@@ -0,0 +1,14 @@
+--- webkitgtk-2.2.3/Source/WTF/wtf/Platform.h.orig	2013-12-04 19:44:46.333861578 +0100
++++ webkitgtk-2.2.3/Source/WTF/wtf/Platform.h	2013-12-04 19:44:52.559923235 +0100
+@@ -627,11 +627,6 @@
+ #define HAVE_SYS_TIMEB_H 1
+ #define HAVE_ALIGNED_MALLOC 1
+ #define HAVE_ISDEBUGGERPRESENT 1
+-
+-#if !PLATFORM(QT)
+-#include <WTF/WTFHeaderDetection.h>
+-#endif
+-
+ #endif
+ 
+ #if OS(WINDOWS)
diff --git a/webkitgtk-workaround-conflicting-htonl-on-win64.patch b/webkitgtk-workaround-conflicting-htonl-on-win64.patch
new file mode 100644
index 0000000..dcfb962
--- /dev/null
+++ b/webkitgtk-workaround-conflicting-htonl-on-win64.patch
@@ -0,0 +1,23 @@
+--- webkitgtk-2.2.3/Source/WTF/wtf/ByteOrder.h.orig	2013-12-11 22:37:44.176510725 +0100
++++ webkitgtk-2.2.3/Source/WTF/wtf/ByteOrder.h	2013-12-11 22:52:27.280475698 +0100
+@@ -49,17 +49,17 @@
+ inline uint16_t ntohs(uint16_t x) { return x; }
+ inline uint16_t htons(uint16_t x) { return x; }
+ inline uint32_t ntohl(uint32_t x) { return x; }
+-inline uint32_t htonl(uint32_t x) { return x; }
++inline u_long   htonl(u_long   x) { return x; }
+ #elif CPU(MIDDLE_ENDIAN)
+ inline uint16_t ntohs(uint16_t x) { return x; }
+ inline uint16_t htons(uint16_t x) { return x; }
+ inline uint32_t ntohl(uint32_t x) { return WTF::wswap32(x); }
+-inline uint32_t htonl(uint32_t x) { return WTF::wswap32(x); }
++inline u_long   htonl(u_long   x) { return WTF::wswap32(x); }
+ #else
+ inline uint16_t ntohs(uint16_t x) { return WTF::bswap16(x); }
+ inline uint16_t htons(uint16_t x) { return WTF::bswap16(x); }
+ inline uint32_t ntohl(uint32_t x) { return WTF::bswap32(x); }
+-inline uint32_t htonl(uint32_t x) { return WTF::bswap32(x); }
++inline u_long   htonl(u_long   x) { return WTF::bswap32(x); }
+ #endif
+ 
+ #endif // OS(WINDOWS)


More information about the scm-commits mailing list