diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/JavaScriptCore/jit/JITStubsX86.h webkitgtk-2.4.1/Source/JavaScriptCore/jit/JITStubsX86.h --- webkitgtk-2.4.1.old/Source/JavaScriptCore/jit/JITStubsX86.h 2014-06-20 20:05:59 +0000 +++ webkitgtk-2.4.1/Source/JavaScriptCore/jit/JITStubsX86.h 2014-06-20 19:42:30 +0000 @@ -32,6 +32,7 @@ #define JITStubsX86_h #include "JITStubsX86Common.h" +#include #if !CPU(X86) #error "JITStubsX86.h should only be #included if CPU(X86)" @@ -198,6 +199,225 @@ SYMBOL_STRING(ctiMasmProbeTrampolineEnd) ); #endif // USE(MASM_PROBE) +#if OS(WINDOWS) && ENABLE(JIT) +extern "C" { + + // FIXME: Since Windows doesn't use the LLInt, we have inline stubs here. + // Until the LLInt is changed to support Windows, these stub needs to be updated. + asm ( + ".globl " SYMBOL_STRING(callToJavaScript) "\n" + HIDE_SYMBOL(callToJavaScript) "\n" + SYMBOL_STRING(callToJavaScript) ":" "\n" + "mov (%esp),%edx" "\n" + "push %ebp" "\n" + "mov %ebp,%eax" "\n" + "mov %esp,%ebp" "\n" + "push %esi" "\n" + "push %edi" "\n" + "push %ebx" "\n" + "sub $0x1c,%esp" "\n" + "mov 0x34(%esp),%ecx" "\n" + "mov 0x38(%esp),%esi" "\n" + "mov 0x3c(%esp),%ebp" "\n" + "sub $0x20,%ebp" "\n" + "movl $0x0,0x24(%ebp)" "\n" + "movl $0x0,0x20(%ebp)" "\n" + "movl $0x0,0x1c(%ebp)" "\n" + "mov %ecx,0x18(%ebp)" "\n" + "mov (%ecx),%ebx" "\n" + "movl $0x0,0x14(%ebp)" "\n" + "mov %ebx,0x10(%ebp)" "\n" + "movl $0x0,0xc(%ebp)" "\n" + "movl $0x1,0x8(%ebp)" "\n" + "mov %edx,0x4(%ebp)" "\n" + "mov %eax,0x0(%ebp)" "\n" + "mov %ebp,%eax" "\n" + + "mov 0x28(%esi),%edx" "\n" + "add $0x5,%edx" "\n" + "shl $0x3,%edx" "\n" + "sub %edx,%ebp" "\n" + "mov %eax,0x0(%ebp)" "\n" + + "mov $0x5,%eax" "\n" + + ".copyHeaderLoop:" "\n" + "sub $0x1,%eax" "\n" + "mov (%esi,%eax,8),%ecx" "\n" + "mov %ecx,0x8(%ebp,%eax,8)" "\n" + "mov 0x4(%esi,%eax,8),%ecx" "\n" + "mov %ecx,0xc(%ebp,%eax,8)" "\n" + "test %eax,%eax" "\n" + "jne .copyHeaderLoop" "\n" + + "mov 0x18(%esi),%edx" "\n" + "sub $0x1,%edx" "\n" + "mov 0x28(%esi),%ecx" "\n" + "sub $0x1,%ecx" "\n" + + "cmp %ecx,%edx" "\n" + "je .copyArgs" "\n" + + "xor %eax,%eax" "\n" + "mov $0xfffffffc,%ebx" "\n" + + ".fillExtraArgsLoop:" "\n" + "sub $0x1,%ecx" "\n" + "mov %eax,0x30(%ebp,%ecx,8)" "\n" + "mov %ebx,0x34(%ebp,%ecx,8)" "\n" + "cmp %ecx,%edx" "\n" + "jne .fillExtraArgsLoop" "\n" + + ".copyArgs:" "\n" + "mov 0x2c(%esi),%eax" "\n" + + ".copyArgsLoop:" "\n" + "test %edx,%edx" "\n" + "je .copyArgsDone" "\n" + "sub $0x1,%edx" "\n" + "mov (%eax,%edx,8),%ecx" "\n" + "mov 0x4(%eax,%edx,8),%ebx" "\n" + "mov %ecx,0x30(%ebp,%edx,8)" "\n" + "mov %ebx,0x34(%ebp,%edx,8)" "\n" + "jmp .copyArgsLoop" "\n" + + ".copyArgsDone:" "\n" + "mov 0x34(%esp),%ecx" "\n" + "mov %ebp,(%ecx)" "\n" + + "call *0x30(%esp)" "\n" + + "cmpl $0x1,0x8(%ebp)" "\n" + "je .calleeFramePopped" "\n" + "mov 0x0(%ebp),%ebp" "\n" + + ".calleeFramePopped:" "\n" + "mov 0x18(%ebp),%ecx" "\n" + "mov 0x10(%ebp),%ebx" "\n" + "mov %ebx,(%ecx)" "\n" + + "add $0x1c,%esp" "\n" + "pop %ebx" "\n" + "pop %edi" "\n" + "pop %esi" "\n" + "pop %ebp" "\n" + "ret" "\n" + + ".globl " SYMBOL_STRING(returnFromJavaScript) "\n" + HIDE_SYMBOL(returnFromJavaScript) "\n" + SYMBOL_STRING(returnFromJavaScript) ":" "\n" + "add $0x1c,%esp" "\n" + "pop %ebx" "\n" + "pop %edi" "\n" + "pop %esi" "\n" + "pop %ebp" "\n" + "ret" "\n" + + ".globl " SYMBOL_STRING(callToNativeFunction) "\n" + HIDE_SYMBOL(callToNativeFunction) "\n" + SYMBOL_STRING(callToNativeFunction) ":" "\n" + "mov (%esp),%edx" "\n" + "push %ebp" "\n" + "mov %ebp,%eax" "\n" + "mov %esp,%ebp" "\n" + "push %esi" "\n" + "push %edi" "\n" + "push %ebx" "\n" + "sub $0x1c,%esp" "\n" + "mov 0x34(%esp),%ecx" "\n" + "mov 0x38(%esp),%esi" "\n" + "mov 0x3c(%esp),%ebp" "\n" + "sub $0x20,%ebp" "\n" + "movl $0x0,0x24(%ebp)" "\n" + "movl $0x0,0x20(%ebp)" "\n" + "movl $0x0,0x1c(%ebp)" "\n" + "mov %ecx,0x18(%ebp)" "\n" + "mov (%ecx),%ebx" "\n" + "movl $0x0,0x14(%ebp)" "\n" + "mov %ebx,0x10(%ebp)" "\n" + "movl $0x0,0xc(%ebp)" "\n" + "movl $0x1,0x8(%ebp)" "\n" + "mov %edx,0x4(%ebp)" "\n" + "mov %eax,0x0(%ebp)" "\n" + "mov %ebp,%eax" "\n" + + "mov 0x28(%esi),%edx" "\n" + "add $0x5,%edx" "\n" + "shl $0x3,%edx" "\n" + "sub %edx,%ebp" "\n" + "mov %eax,0x0(%ebp)" "\n" + + "mov $0x5,%eax" "\n" + + "copyHeaderLoop:" "\n" + "sub $0x1,%eax" "\n" + "mov (%esi,%eax,8),%ecx" "\n" + "mov %ecx,0x8(%ebp,%eax,8)" "\n" + "mov 0x4(%esi,%eax,8),%ecx" "\n" + "mov %ecx,0xc(%ebp,%eax,8)" "\n" + "test %eax,%eax" "\n" + "jne copyHeaderLoop" "\n" + + "mov 0x18(%esi),%edx" "\n" + "sub $0x1,%edx" "\n" + "mov 0x28(%esi),%ecx" "\n" + "sub $0x1,%ecx" "\n" + + "cmp %ecx,%edx" "\n" + "je copyArgs" "\n" + + "xor %eax,%eax" "\n" + "mov $0xfffffffc,%ebx" "\n" + + "fillExtraArgsLoop:" "\n" + "sub $0x1,%ecx" "\n" + "mov %eax,0x30(%ebp,%ecx,8)" "\n" + "mov %ebx,0x34(%ebp,%ecx,8)" "\n" + "cmp %ecx,%edx" "\n" + "jne fillExtraArgsLoop" "\n" + + "copyArgs:" "\n" + "mov 0x2c(%esi),%eax" "\n" + + "copyArgsLoop:" "\n" + "test %edx,%edx" "\n" + "je copyArgsDone" "\n" + "sub $0x1,%edx" "\n" + "mov (%eax,%edx,8),%ecx" "\n" + "mov 0x4(%eax,%edx,8),%ebx" "\n" + "mov %ecx,0x30(%ebp,%edx,8)" "\n" + "mov %ebx,0x34(%ebp,%edx,8)" "\n" + "jmp copyArgsLoop" "\n" + + "copyArgsDone:" "\n" + "mov 0x34(%esp),%ecx" "\n" + "mov %ebp,(%ecx)" "\n" + + "mov 0x30(%esp),%edi" "\n" + "mov %ebp,0x30(%esp)" "\n" + "mov %ebp,%ecx" "\n" + "call *%edi" "\n" + + "cmpl $0x1,0x8(%ebp)" "\n" + "je calleeFramePopped" "\n" + "mov 0x0(%ebp),%ebp" "\n" + + "calleeFramePopped:" "\n" + "mov 0x18(%ebp),%ecx" "\n" + "mov 0x10(%ebp),%ebx" "\n" + "mov %ebx,(%ecx)" "\n" + + "add $0x1c,%esp" "\n" + "pop %ebx" "\n" + "pop %edi" "\n" + "pop %esi" "\n" + "pop %ebp" "\n" + "ret" "\n" + ); +} + +#endif // OS(WINDOWS) && ENABLE(JIT) + #endif // COMPILER(GCC) #if COMPILER(MSVC) diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/ThirdParty/ANGLE/GNUmakefile.am webkitgtk-2.4.1/Source/ThirdParty/ANGLE/GNUmakefile.am --- webkitgtk-2.4.1.old/Source/ThirdParty/ANGLE/GNUmakefile.am 2014-06-20 20:05:59 +0000 +++ webkitgtk-2.4.1/Source/ThirdParty/ANGLE/GNUmakefile.am 2014-05-24 05:04:11 +0000 @@ -80,7 +80,6 @@ libANGLE_la_SOURCES = \ Source/ThirdParty/ANGLE/src/compiler/MMap.h \ Source/ThirdParty/ANGLE/src/compiler/NodeSearch.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/OutputGLSLBase.cpp \ @@ -161,3 +160,11 @@ libANGLE_la_SOURCES = \ Source/ThirdParty/ANGLE/src/compiler/VersionGLSL.h \ Source/ThirdParty/ANGLE/src/third_party/compiler/ArrayBoundsClamper.cpp \ Source/ThirdParty/ANGLE/src/third_party/compiler/ArrayBoundsClamper.h + +if OS_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 -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/ThirdParty/ANGLE/src/compiler/ossource_win.cpp webkitgtk-2.4.1/Source/ThirdParty/ANGLE/src/compiler/ossource_win.cpp --- webkitgtk-2.4.1.old/Source/ThirdParty/ANGLE/src/compiler/ossource_win.cpp 2014-07-12 16:07:30 +0000 +++ webkitgtk-2.4.1/Source/ThirdParty/ANGLE/src/compiler/ossource_win.cpp 2014-05-24 05:04:11 +0000 @@ -0,0 +1,57 @@ +// +// 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; +} diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/WTF/GNUmakefile.list.am webkitgtk-2.4.1/Source/WTF/GNUmakefile.list.am --- webkitgtk-2.4.1.old/Source/WTF/GNUmakefile.list.am 2014-05-18 16:44:48 +0000 +++ webkitgtk-2.4.1/Source/WTF/GNUmakefile.list.am 2014-05-24 05:09:00 +0000 @@ -256,3 +256,8 @@ wtf_sources += \ Source/WTF/wtf/unicode/UnicodeMacrosFromICU.h \ Source/WTF/wtf/unicode/icu/CollatorICU.cpp \ Source/WTF/wtf/unicode/icu/UnicodeIcu.h + +if TARGET_WIN32 +wtf_sources += \ + Source/WTF/wtf/win/GdiObject.h +endif # TARGET_WIN32 diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/WTF/wtf/Atomics.h webkitgtk-2.4.1/Source/WTF/wtf/Atomics.h --- webkitgtk-2.4.1.old/Source/WTF/wtf/Atomics.h 2014-06-20 20:05:59 +0000 +++ webkitgtk-2.4.1/Source/WTF/wtf/Atomics.h 2014-05-28 18:01:59 +0000 @@ -260,7 +260,7 @@ inline void memoryBarrierBeforeUnlock() 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(MSVC) && (CPU(X86) || CPU(X86_64)) unsigned char result; asm volatile( "lock; cmpxchgb %3, %2\n\t" diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/WTF/wtf/MathExtras.h webkitgtk-2.4.1/Source/WTF/wtf/MathExtras.h --- webkitgtk-2.4.1.old/Source/WTF/wtf/MathExtras.h 2014-06-20 20:05:59 +0000 +++ webkitgtk-2.4.1/Source/WTF/wtf/MathExtras.h 2014-05-24 05:04:11 +0000 @@ -67,6 +67,12 @@ const double piOverFourDouble = M_PI_4; const float piOverFourFloat = static_cast(M_PI_4); #endif +#ifndef M_SQRT2 +const double sqrtOfTwoDouble = 1.41421356237309504880; +#else +const double sqrtOfTwoDouble = M_SQRT2; +#endif + #if OS(DARWIN) // Work around a bug in the Mac OS X libc where ceil(-0.1) return +0. diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/WTF/wtf/Platform.h webkitgtk-2.4.1/Source/WTF/wtf/Platform.h --- webkitgtk-2.4.1.old/Source/WTF/wtf/Platform.h 2014-06-20 20:05:59 +0000 +++ webkitgtk-2.4.1/Source/WTF/wtf/Platform.h 2014-05-24 05:04:11 +0000 @@ -594,8 +594,6 @@ #define HAVE_ALIGNED_MALLOC 1 #define HAVE_ISDEBUGGERPRESENT 1 -#include - #endif #if OS(WINDOWS) diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/WTF/wtf/threads/BinarySemaphore.h webkitgtk-2.4.1/Source/WTF/wtf/threads/BinarySemaphore.h --- webkitgtk-2.4.1.old/Source/WTF/wtf/threads/BinarySemaphore.h 2014-05-18 16:44:58 +0000 +++ webkitgtk-2.4.1/Source/WTF/wtf/threads/BinarySemaphore.h 2014-05-29 17:02:56 +0000 @@ -41,12 +41,12 @@ public: WTF_EXPORT_PRIVATE void signal(); WTF_EXPORT_PRIVATE bool wait(double absoluteTime); -#if OS(WINDOWS) +#if PLATFORM(WIN) HANDLE event() const { return m_event; } #endif private: -#if OS(WINDOWS) +#if PLATFORM(WIN) HANDLE m_event; #else bool m_isSet; diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/WTF/wtf/win/GDIObject.h webkitgtk-2.4.1/Source/WTF/wtf/win/GDIObject.h --- webkitgtk-2.4.1.old/Source/WTF/wtf/win/GDIObject.h 2014-07-12 06:21:32 +0000 +++ webkitgtk-2.4.1/Source/WTF/wtf/win/GDIObject.h 2014-05-24 12:26:42 +0000 @@ -0,0 +1,131 @@ +/* + * Copyright (C) 2013 Apple Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef GDIObject_h +#define GDIObject_h + +#include +#include +#include +#include +#include +#include + +namespace WTF { + +template void deleteObject(T); + +template class GDIObject { + WTF_MAKE_NONCOPYABLE(GDIObject); +public: + GDIObject() : m_object(0) { } + GDIObject(std::nullptr_t) : m_object(0) { } + ~GDIObject() { deleteObject(m_object); } + + T get() const { return m_object; } + + void clear(); + T leak() WARN_UNUSED_RETURN; + + bool operator!() const { return !m_object; } + + // This conversion operator allows implicit conversion to bool but not to other integer types. + typedef const void* UnspecifiedBoolType; + operator UnspecifiedBoolType() const { return m_object ? reinterpret_cast(&m_object) : 0; } + + GDIObject& operator=(std::nullptr_t) { clear(); return *this; } + + GDIObject(GDIObject&&); + template GDIObject(GDIObject&&); + + GDIObject& operator=(GDIObject&&); + template GDIObject& operator=(GDIObject&&); + + void swap(GDIObject& o) { std::swap(m_object, o.m_object); } + +private: + template friend GDIObject adoptGDIObject(U); + GDIObject(T object) : m_object(object) { } + + GDIObject& operator=(T); + + T m_object; +}; + +template inline void GDIObject::clear() +{ + T object = m_object; + m_object = 0; + deleteObject(object); +} + +template inline T GDIObject::leak() +{ + T object = m_object; + m_object = 0; + return object; +} + +template inline GDIObject::GDIObject(GDIObject&& other) + : m_object(other.leak()) +{ +} + +template inline GDIObject& GDIObject::operator=(GDIObject&& other) +{ + auto object = std::move(other); + swap(object); + return *this; +} + +template inline GDIObject adoptGDIObject(T object) +{ + return GDIObject(object); +} + +template inline void swap(GDIObject& a, GDIObject& b) +{ + a.swap(b); +} + +// Nearly all GDI types use the same DeleteObject call. +template inline void deleteObject(T object) +{ + if (object) + ::DeleteObject(object); +} + +template<> inline void deleteObject(HDC hdc) +{ + if (hdc) + ::DeleteDC(hdc); +} + +} // namespace WTF + +using WTF::GDIObject; +using WTF::adoptGDIObject; + +#endif // GDIObject_h diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/WebCore/GNUmakefile.list.am webkitgtk-2.4.1/Source/WebCore/GNUmakefile.list.am --- webkitgtk-2.4.1.old/Source/WebCore/GNUmakefile.list.am 2014-06-20 20:05:59 +0000 +++ webkitgtk-2.4.1/Source/WebCore/GNUmakefile.list.am 2014-05-24 05:09:00 +0000 @@ -6252,9 +6252,11 @@ webcoregtk_sources += \ 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 # !TARGET_WIN32 endif # END TARGET_X11 if TARGET_X11_OR_WAYLAND @@ -6281,9 +6283,12 @@ webcore_sources += \ Source/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp \ Source/WebCore/platform/graphics/win/GraphicsContextWin.cpp \ Source/WebCore/platform/graphics/win/LocalWindowsContext.h \ + Source/WebCore/platform/graphics/win/SharedGDIObject.h \ Source/WebCore/platform/graphics/win/TransformationMatrixWin.cpp \ Source/WebCore/platform/win/BitmapInfo.cpp \ Source/WebCore/platform/win/BitmapInfo.h \ + Source/WebCore/platform/win/GDIObjectCounter.cpp \ + Source/WebCore/platform/win/GDIObjectCounter.h \ Source/WebCore/platform/win/SystemInfo.cpp \ Source/WebCore/platform/win/SystemInfo.h \ Source/WebCore/platform/win/WebCoreInstanceHandle.cpp \ diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/WebCore/bindings/scripts/preprocessor.pm webkitgtk-2.4.1/Source/WebCore/bindings/scripts/preprocessor.pm --- webkitgtk-2.4.1.old/Source/WebCore/bindings/scripts/preprocessor.pm 2014-06-20 20:05:59 +0000 +++ webkitgtk-2.4.1/Source/WebCore/bindings/scripts/preprocessor.pm 2014-05-24 05:04:11 +0000 @@ -51,6 +51,8 @@ sub applyPreprocessor $preprocessor = "/usr/sfw/bin/gcc"; } elsif (-x "/usr/bin/clang") { $preprocessor = "/usr/bin/clang"; + } elsif ($Config{osname} eq 'msys') { + $preprocessor = "gcc"; } else { $preprocessor = "/usr/bin/gcc"; } @@ -71,7 +73,7 @@ sub applyPreprocessor @macros = map { "-D$_" } @macros; my $pid = 0; - if ($Config{osname} eq "cygwin" || $Config{osname} eq 'MSWin32') { + if ($Config{osname} eq "cygwin" || $Config{osname} eq 'MSWin32' || $Config{osname} eq 'msys') { # This call can fail if Windows rebases cygwin, so retry a few times until it succeeds. for (my $tries = 0; !$pid && ($tries < 20); $tries++) { eval { diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/WebCore/dom/make_names.pl webkitgtk-2.4.1/Source/WebCore/dom/make_names.pl --- webkitgtk-2.4.1.old/Source/WebCore/dom/make_names.pl 2014-06-20 20:05:59 +0000 +++ webkitgtk-2.4.1/Source/WebCore/dom/make_names.pl 2014-05-24 05:04:11 +0000 @@ -69,6 +69,8 @@ if ($ENV{CC}) { $gccLocation = "/usr/sfw/bin/gcc"; } elsif ($Config::Config{"osname"} eq "darwin" && $ENV{SDKROOT}) { chomp($gccLocation = `xcrun -find cc -sdk '$ENV{SDKROOT}'`); +} elsif ($Config::Config{"osname"} eq "msys") { + $gccLocation = "gcc"; } else { $gccLocation = "/usr/bin/cc"; } diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/WebCore/platform/graphics/FontPlatformData.h webkitgtk-2.4.1/Source/WebCore/platform/graphics/FontPlatformData.h --- webkitgtk-2.4.1.old/Source/WebCore/platform/graphics/FontPlatformData.h 2014-06-20 20:05:59 +0000 +++ webkitgtk-2.4.1/Source/WebCore/platform/graphics/FontPlatformData.h 2014-05-24 05:04:11 +0000 @@ -62,7 +62,6 @@ typedef const struct __CTFont* CTFontRef #include #if PLATFORM(WIN) -#include typedef struct HFONT__* HFONT; #endif diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp webkitgtk-2.4.1/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp --- webkitgtk-2.4.1.old/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp 2014-06-20 20:05:59 +0000 +++ webkitgtk-2.4.1/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp 2014-05-24 05:04:11 +0000 @@ -32,6 +32,7 @@ #include #include FT_TRUETYPE_TABLES_H #include +#include #if !PLATFORM(EFL) #include @@ -120,7 +121,7 @@ static void rotateCairoMatrixForVertical // combination of rotation (R) and translation (T) applied on the // horizontal matrix (H). V = H . R . T, where R rotates by -90 degrees // and T translates by font size towards y axis. - cairo_matrix_rotate(matrix, -M_PI_2); + cairo_matrix_rotate(matrix, -piOverTwoDouble); cairo_matrix_translate(matrix, 0.0, 1.0); } diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp webkitgtk-2.4.1/Source/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp --- webkitgtk-2.4.1.old/Source/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp 2014-06-20 20:05:59 +0000 +++ webkitgtk-2.4.1/Source/WebCore/platform/graphics/win/GraphicsContextCairoWin.cpp 2014-05-24 05:09:00 +0000 @@ -32,6 +32,7 @@ #include #include "GraphicsContextPlatformPrivateCairo.h" +#include using namespace std; diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/WebCore/platform/gtk/FileSystemGtk.cpp webkitgtk-2.4.1/Source/WebCore/platform/gtk/FileSystemGtk.cpp --- webkitgtk-2.4.1.old/Source/WebCore/platform/gtk/FileSystemGtk.cpp 2014-06-20 20:05:59 +0000 +++ webkitgtk-2.4.1/Source/WebCore/platform/gtk/FileSystemGtk.cpp 2014-05-24 05:04:11 +0000 @@ -23,6 +23,10 @@ #include "config.h" #include "FileSystem.h" +#if OS(WINDOWS) +#include +#endif + #include "FileMetadata.h" #include "UUID.h" #include diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/WebCore/rendering/RenderBlock.h webkitgtk-2.4.1/Source/WebCore/rendering/RenderBlock.h --- webkitgtk-2.4.1.old/Source/WebCore/rendering/RenderBlock.h 2014-06-20 20:05:59 +0000 +++ webkitgtk-2.4.1/Source/WebCore/rendering/RenderBlock.h 2014-05-24 15:52:01 +0000 @@ -613,8 +613,8 @@ public: unsigned m_beingDestroyed : 1; unsigned m_hasMarkupTruncation : 1; unsigned m_hasBorderOrPaddingLogicalWidthChanged : 1; - enum LineLayoutPath { UndeterminedPath, SimpleLinesPath, LineBoxesPath, ForceLineBoxesPath }; unsigned m_lineLayoutPath : 2; + enum LineLayoutPath { UndeterminedPath, SimpleLinesPath, LineBoxesPath, ForceLineBoxesPath }; // RenderRubyBase objects need to be able to split and merge, moving their children around // (calling moveChildTo, moveAllChildrenTo, and makeChildrenNonInline). diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/WebCore/rendering/mathml/RenderMathMLMenclose.cpp webkitgtk-2.4.1/Source/WebCore/rendering/mathml/RenderMathMLMenclose.cpp --- webkitgtk-2.4.1.old/Source/WebCore/rendering/mathml/RenderMathMLMenclose.cpp 2014-06-20 20:05:59 +0000 +++ webkitgtk-2.4.1/Source/WebCore/rendering/mathml/RenderMathMLMenclose.cpp 2014-05-24 05:04:11 +0000 @@ -71,8 +71,8 @@ void RenderMathMLMenclose::computePrefer size_t notationalValueSize = notationValues.size(); for (size_t i = 0; i < notationalValueSize; i++) { if (notationValues[i] == "circle") { - m_minPreferredLogicalWidth = minPreferredLogicalWidth() * float(M_SQRT2); - m_maxPreferredLogicalWidth = maxPreferredLogicalWidth() * float(M_SQRT2); + m_minPreferredLogicalWidth = minPreferredLogicalWidth() * float(sqrtOfTwoDouble); + m_maxPreferredLogicalWidth = maxPreferredLogicalWidth() * float(sqrtOfTwoDouble); } } @@ -86,7 +86,7 @@ void RenderMathMLMenclose::updateLogical size_t notationalValueSize = notationValues.size(); for (size_t i = 0; i < notationalValueSize; i++) if (notationValues[i] == "circle") - setLogicalHeight(logicalHeight() * float(M_SQRT2)); + setLogicalHeight(logicalHeight() * float(sqrtOfTwoDouble)); } void RenderMathMLMenclose::paint(PaintInfo& info, const LayoutPoint& paintOffset) diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/autotools/FindDependencies.m4 webkitgtk-2.4.1/Source/autotools/FindDependencies.m4 --- webkitgtk-2.4.1.old/Source/autotools/FindDependencies.m4 2014-06-20 20:05:59 +0000 +++ webkitgtk-2.4.1/Source/autotools/FindDependencies.m4 2014-05-24 05:04:11 +0000 @@ -109,8 +109,14 @@ case "$host" in UNICODE_LIBS="-licucore" ;; *-*-mingw*) - UNICODE_CFLAGS="" - UNICODE_LIBS="-licui18n -licuuc" + PKG_CHECK_MODULES(ICU, icu-i18n, ,) + if test "x$ICU_LIBS" = "x" ; then + UNICODE_CFLAGS="" + UNICODE_LIBS="-licui18n -licuuc" + else + UNICODE_CFLAGS="$ICU_CFLAGS" + UNICODE_LIBS="$ICU_LIBS" + fi AC_CHECK_HEADERS([unicode/uchar.h], [], [AC_MSG_ERROR([Could not find ICU headers.])]) ;; *) @@ -455,7 +461,14 @@ if test "$found_opengl" = "yes"; then OPENGL_LIBS="-lGLESv2" else acceleration_description="$acceleration_description (gl" - OPENGL_LIBS="-lGL" + case "$host" in + *-*-mingw*) + OPENGL_LIBS="-lopengl32" + ;; + *) + OPENGL_LIBS="-lGL" + ;; + esac fi if test "$enable_egl" = "yes"; then acceleration_description="$acceleration_description, egl" diff -upr -x .deps -x .libs -x '*.la' webkitgtk-2.4.1.old/Source/autotools/ReadCommandLineArguments.m4 webkitgtk-2.4.1/Source/autotools/ReadCommandLineArguments.m4 --- webkitgtk-2.4.1.old/Source/autotools/ReadCommandLineArguments.m4 2014-06-20 20:05:59 +0000 +++ webkitgtk-2.4.1/Source/autotools/ReadCommandLineArguments.m4 2014-05-24 05:04:11 +0000 @@ -83,7 +83,7 @@ AM_WEBKIT_DETERMINE_BUILD_TARGET_STATUS( AM_WEBKIT_DETERMINE_BUILD_TARGET_STATUS([directfb], [enable_directfb_target], [build_targets]) AC_MSG_CHECKING([whether to build for the Win32 target]) -AC_MSG_RESULT([$enable_wayland_target]) +AC_MSG_RESULT([$enable_win32_target]) AC_MSG_CHECKING([whether to enable spellcheck support]) AC_ARG_ENABLE([spellcheck],