[jhbuild] core-deps-latest: Fix WebKit build on clang 6



commit cd336a350ed75d83bd067b4a8a205aac0537a009
Author: Ting-Wei Lan <lantw src gnome org>
Date:   Sat Jun 23 23:05:02 2018 +0800

    core-deps-latest: Fix WebKit build on clang 6

 modulesets/gnome-suites-core-deps-latest.modules |  1 +
 patches/WebKit-JavaScriptCore-clang-6-fix.patch  | 62 ++++++++++++++++++++++++
 2 files changed, 63 insertions(+)
---
diff --git a/modulesets/gnome-suites-core-deps-latest.modules 
b/modulesets/gnome-suites-core-deps-latest.modules
index 9c2532be..0db62ae1 100644
--- a/modulesets/gnome-suites-core-deps-latest.modules
+++ b/modulesets/gnome-suites-core-deps-latest.modules
@@ -1969,6 +1969,7 @@ the module and we will just change it to use a tarball anyway.
             module="webkitgtk-2.21.4.tar.xz" version="2.21.4"
             hash="sha256:59f4359ace702ecaa92b975666c1bcde3858258909b047e7675ce3807efdd1e7"
             size="16873972">
+      <patch file="WebKit-JavaScriptCore-clang-6-fix.patch" strip="1"/>
     </branch>
     <dependencies>
       <dep package="c++"/>
diff --git a/patches/WebKit-JavaScriptCore-clang-6-fix.patch b/patches/WebKit-JavaScriptCore-clang-6-fix.patch
new file mode 100644
index 00000000..11698d5e
--- /dev/null
+++ b/patches/WebKit-JavaScriptCore-clang-6-fix.patch
@@ -0,0 +1,62 @@
+From 798c5c2ba53396ed9a885e74228e534a9cf963c8 Mon Sep 17 00:00:00 2001
+From: "mark lam apple com"
+ <mark lam apple com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
+Date: Fri, 22 Jun 2018 03:01:52 +0000
+Subject: [PATCH] =?UTF-8?q?WebKit=20(JavaScriptCore)=20compilation=20error?=
+ =?UTF-8?q?=20with=20Clang=20=E2=89=A5=206.=20https://bugs.webkit.org/show?=
+ =?UTF-8?q?=5Fbug.cgi=3Fid=3D185947=20<rdar://problem/40131933>?=
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Reviewed by Saam Barati.
+
+Newer Clang versions (due to C++17 support) is not happy with how I implemented
+conversions between CodeLocation types.  We'll fix this by adding a conversion
+operator for converting between CodeLocation types.
+
+* assembler/CodeLocation.h:
+(JSC::CodeLocationCommon::operator T):
+
+
+git-svn-id: http://svn.webkit.org/repository/webkit/trunk@233070 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+---
+ Source/JavaScriptCore/ChangeLog                | 15 +++++++++++++++
+ Source/JavaScriptCore/assembler/CodeLocation.h |  6 ++++++
+ 2 files changed, 21 insertions(+)
+
+2018-06-21  Mark Lam  <mark lam apple com>
+
+        WebKit (JavaScriptCore) compilation error with Clang ≥ 6.
+        https://bugs.webkit.org/show_bug.cgi?id=185947
+        <rdar://problem/40131933>
+
+        Reviewed by Saam Barati.
+
+        Newer Clang versions (due to C++17 support) is not happy with how I implemented
+        conversions between CodeLocation types.  We'll fix this by adding a conversion
+        operator for converting between CodeLocation types.
+
+        * assembler/CodeLocation.h:
+        (JSC::CodeLocationCommon::operator T):
+
+diff --git a/Source/JavaScriptCore/assembler/CodeLocation.h b/Source/JavaScriptCore/assembler/CodeLocation.h
+index 75446df3dc2..41d251e73f0 100644
+--- a/Source/JavaScriptCore/assembler/CodeLocation.h
++++ b/Source/JavaScriptCore/assembler/CodeLocation.h
+@@ -71,6 +71,12 @@ public:
+     template<typename T = void*>
+     T dataLocation() const { return Base::template dataLocation<T>(); }
+ 
++    template<typename T, typename = std::enable_if_t<std::is_base_of<CodeLocationCommon<tag>, T>::value>>
++    operator T()
++    {
++        return T(MacroAssemblerCodePtr<tag>::createFromExecutableAddress(this->executableAddress()));
++    }
++
+ protected:
+     CodeLocationCommon()
+     {
+-- 
+2.18.0
+


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]