diff -uNr qt-kde-qt-mac.orig/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp qt-kde-qt-mac/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp --- qt-kde-qt-mac.orig/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp 2011-05-08 23:25:04.000000000 -0400 +++ qt-kde-qt-mac/src/3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.cpp 2013-10-30 18:24:56.000000000 -0400 @@ -52,6 +52,8 @@ #include #include #include +// clang's libc++ headers does not pull in pthread.h (but libstdc++ does) +#include #elif OS(WINDOWS) diff -uNr qt-kde-qt-mac.orig/src/3rdparty/javascriptcore/JavaScriptCore/wtf/HashTable.h qt-kde-qt-mac/src/3rdparty/javascriptcore/JavaScriptCore/wtf/HashTable.h --- qt-kde-qt-mac.orig/src/3rdparty/javascriptcore/JavaScriptCore/wtf/HashTable.h 2010-12-27 15:11:05.000000000 -0500 +++ qt-kde-qt-mac/src/3rdparty/javascriptcore/JavaScriptCore/wtf/HashTable.h 2013-10-30 18:24:56.000000000 -0400 @@ -257,8 +257,8 @@ using std::swap; -#if !COMPILER(MSVC) - // Visual C++ has a swap for pairs defined. +#if !COMPILER(MSVC) && !defined(_LIBCPP_VERSION) + // The Dinkumware C++ library (used by MSVC and QNX) and clang's libc++ have a swap for pairs defined. // swap pairs by component, in case of pair members that specialize swap template inline void swap(pair& a, pair& b) diff -uNr qt-kde-qt-mac.orig/src/3rdparty/webkit/JavaScriptCore/wtf/HashTable.h qt-kde-qt-mac/src/3rdparty/webkit/JavaScriptCore/wtf/HashTable.h --- qt-kde-qt-mac.orig/src/3rdparty/webkit/JavaScriptCore/wtf/HashTable.h 2010-12-27 15:22:05.000000000 -0500 +++ qt-kde-qt-mac/src/3rdparty/webkit/JavaScriptCore/wtf/HashTable.h 2013-10-30 18:24:56.000000000 -0400 @@ -259,8 +259,8 @@ using std::swap; -#if !COMPILER(MSVC) - // Visual C++ has a swap for pairs defined. +#if !COMPILER(MSVC) && !defined(_LIBCPP_VERSION) + // The Dinkumware C++ library (used by MSVC and QNX) and clang's libc++ have a swap for pairs defined. // swap pairs by component, in case of pair members that specialize swap template inline void swap(pair& a, pair& b) diff -uNr qt-kde-qt-mac.orig/src/3rdparty/webkit/WebCore/WebCore.pro qt-kde-qt-mac/src/3rdparty/webkit/WebCore/WebCore.pro --- qt-kde-qt-mac.orig/src/3rdparty/webkit/WebCore/WebCore.pro 2011-05-08 23:25:04.000000000 -0400 +++ qt-kde-qt-mac/src/3rdparty/webkit/WebCore/WebCore.pro 2013-10-30 18:24:39.000000000 -0400 @@ -2,6 +2,8 @@ CONFIG += building-libs CONFIG += depend_includepath +contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols + symbian: { TARGET.EPOCALLOWDLLDATA=1 TARGET.CAPABILITY = All -Tcb diff -uNr qt-kde-qt-mac.orig/src/3rdparty/webkit/WebCore/bindings/js/JSDOMBinding.h qt-kde-qt-mac/src/3rdparty/webkit/WebCore/bindings/js/JSDOMBinding.h --- qt-kde-qt-mac.orig/src/3rdparty/webkit/WebCore/bindings/js/JSDOMBinding.h 2010-12-27 15:22:05.000000000 -0500 +++ qt-kde-qt-mac/src/3rdparty/webkit/WebCore/bindings/js/JSDOMBinding.h 2013-10-30 18:24:39.000000000 -0400 @@ -225,7 +225,7 @@ { if (!node) return JSC::jsNull(); - if (JSNode* wrapper = getCachedDOMNodeWrapper(exec, node->document(), node)) + if (JSC::JSCell* wrapper = getCachedDOMNodeWrapper(exec, node->document(), node)) return wrapper; return createDOMNodeWrapper(exec, globalObject, node); } diff -uNr qt-kde-qt-mac.orig/src/3rdparty/webkit/WebCore/dom/ContainerNode.cpp qt-kde-qt-mac/src/3rdparty/webkit/WebCore/dom/ContainerNode.cpp --- qt-kde-qt-mac.orig/src/3rdparty/webkit/WebCore/dom/ContainerNode.cpp 2010-12-27 15:22:05.000000000 -0500 +++ qt-kde-qt-mac/src/3rdparty/webkit/WebCore/dom/ContainerNode.cpp 2013-10-30 18:24:56.000000000 -0400 @@ -21,6 +21,7 @@ */ #include "config.h" +#include #include "ContainerNode.h" #include "BeforeLoadEvent.h" diff -uNr qt-kde-qt-mac.orig/src/3rdparty/webkit/WebCore/platform/Timer.cpp qt-kde-qt-mac/src/3rdparty/webkit/WebCore/platform/Timer.cpp --- qt-kde-qt-mac.orig/src/3rdparty/webkit/WebCore/platform/Timer.cpp 2013-10-30 15:08:52.000000000 -0700 +++ qt-kde-qt-mac/src/3rdparty/webkit/WebCore/platform/Timer.cpp 2013-10-30 15:36:12.000000000 -0700 @@ -76,6 +76,13 @@ ASSERT(m_index < static_cast(timerHeap().size())); } + void + swap(TimerHeapElement& x) { + timerHeap()[m_index] = x.m_timer; + timerHeap()[x.m_index] = m_timer; + std::swap(x.m_timer->m_heapIndex, m_timer->m_heapIndex); + } + private: TimerHeapElement(); @@ -100,6 +107,10 @@ return *this; } +inline void swap(TimerHeapElement x, TimerHeapElement y) { + x.swap(y); +} + inline bool operator<(const TimerHeapElement& a, const TimerHeapElement& b) { // The comparisons below are "backwards" because the heap puts the largest diff -uNr qt-kde-qt-mac.orig/src/3rdparty/webkit/WebCore/platform/sql/SQLiteDatabase.cpp qt-kde-qt-mac/src/3rdparty/webkit/WebCore/platform/sql/SQLiteDatabase.cpp --- qt-kde-qt-mac.orig/src/3rdparty/webkit/WebCore/platform/sql/SQLiteDatabase.cpp 2010-12-27 15:22:06.000000000 -0500 +++ qt-kde-qt-mac/src/3rdparty/webkit/WebCore/platform/sql/SQLiteDatabase.cpp 2013-10-30 18:24:39.000000000 -0400 @@ -374,9 +374,9 @@ m_lockingMutex.unlock(); } -bool SQLiteDatabase::isAutoCommitOn() const +bool SQLiteDatabase::isAutoCommitOn() { - return sqlite3_get_autocommit(m_db); + return (sqlite3_get_autocommit(m_db) != 0); } } // namespace WebCore diff -uNr qt-kde-qt-mac.orig/src/3rdparty/webkit/WebCore/platform/sql/SQLiteDatabase.h qt-kde-qt-mac/src/3rdparty/webkit/WebCore/platform/sql/SQLiteDatabase.h --- qt-kde-qt-mac.orig/src/3rdparty/webkit/WebCore/platform/sql/SQLiteDatabase.h 2010-12-27 15:22:06.000000000 -0500 +++ qt-kde-qt-mac/src/3rdparty/webkit/WebCore/platform/sql/SQLiteDatabase.h 2013-10-30 18:24:39.000000000 -0400 @@ -106,7 +106,7 @@ // (un)locks the database like a mutex void lock(); void unlock(); - bool isAutoCommitOn() const; + bool isAutoCommitOn(); // Set this flag to allow access from multiple threads. Not all multi-threaded accesses are safe! // See http://www.sqlite.org/cvstrac/wiki?p=MultiThreading for more info.