summaryrefslogtreecommitdiffstats
path: root/recipes-qt/qt5/qtwebengine/0003-chromium-v8-fix-build-with-gcc7.patch
diff options
context:
space:
mode:
authorSamuli Piippo <samuli.piippo@qt.io>2017-06-09 09:34:09 +0300
committerMartin Jansa <Martin.Jansa@gmail.com>2017-08-20 19:30:05 +0200
commit969f1f80bf255498abbec6886d443670c20a79c8 (patch)
tree45a65f19da61868c2fe71669fb4b7d29b374edac /recipes-qt/qt5/qtwebengine/0003-chromium-v8-fix-build-with-gcc7.patch
parent648f7b0a2eb202d4378ce50ae566b6ca450dd010 (diff)
downloadmeta-qt5-969f1f80bf255498abbec6886d443670c20a79c8.tar.gz
Upgrade to Qt 5.9.0
* adapt QtWebEngine recipe to use GN instead of GYP * add QtRemoteObjects and QtWebView as a new Qt modules * update available QtBase configure arguments * remove obsolete patches * patch all .pc files to remove build paths * include generated QML cache files in packages * the patch "configure paths for target qmake properly" could not be applied anymore and support must be done differently * QtWebEngine now requires gcc-multilib to be installed on the host system, because the host tools are built to the same bitness as the target (arm -> x86, aarch64 -> x86-64) * refresh the patches to match with b5.9* branches on: https://github.com/meta-qt5/qtbase https://github.com/meta-qt5/qtwebengine and 56-based branch on https://github.com/meta-qt5/qtwebengine-chromium Signed-off-by: Samuli Piippo <samuli.piippo@qt.io> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'recipes-qt/qt5/qtwebengine/0003-chromium-v8-fix-build-with-gcc7.patch')
-rw-r--r--recipes-qt/qt5/qtwebengine/0003-chromium-v8-fix-build-with-gcc7.patch131
1 files changed, 0 insertions, 131 deletions
diff --git a/recipes-qt/qt5/qtwebengine/0003-chromium-v8-fix-build-with-gcc7.patch b/recipes-qt/qt5/qtwebengine/0003-chromium-v8-fix-build-with-gcc7.patch
deleted file mode 100644
index f2456dd6..00000000
--- a/recipes-qt/qt5/qtwebengine/0003-chromium-v8-fix-build-with-gcc7.patch
+++ /dev/null
@@ -1,131 +0,0 @@
1From 944746d5d04ea8eaf268a97440c98136beae1e47 Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Tue, 11 Jul 2017 10:15:41 +0200
4Subject: [PATCH] chromium: v8 fix build with gcc7
5
6Use the fix from nodejs:
7https://github.com/nodejs/node/commit/2a2a5565c298639b823250b571101f51210c50e8
8
9* fixes:
10| ../../git/src/v8/src/objects-body-descriptors.h: In static member function 'static void v8::internal::FixedBodyDescriptor<start_offset, end_offset, size>::IterateBody(v8::internal::HeapObject*, int)':
11| ../../git/src/v8/src/objects-body-descriptors.h:102:20: error: no matching function for call to 'v8::internal::FixedBodyDescriptor<start_offset, end_offset, size>::IterateBody(v8::internal::HeapObject*&)'
12| IterateBody(obj);
13| ^
14
15and
16
17| ../../v8/src/objects.h: In member function 'uint32_t v8::internal::HashTable<Derived, Shape, Key>::Hash(Key)':
18| ../../v8/src/objects.h:3205:46: error: invalid use of incomplete type 'class v8::internal::Heap' [-Werror]
19| return Shape::SeededHash(key, GetHeap()->HashSeed());
20| ^~
21
22and
23
24../../v8/src/heap/mark-compact.cc:3660:43: error: 'v8::internal::PointerUpdateJobTraits<direction>::UpdateTypedPointers(v8::internal::Heap*, v8::internal::MemoryChunk*)::<lambda(v8::internal::SlotType, v8::internal::Address, v8::internal::Address)> [with v8::internal::PointerDirection direction = (v8::internal::PointerDirection)1; v8::internal::Address = unsigned char*; v8::internal::byte = unsigned char]::<lambda(v8::internal::Object**)>' declared with greater visibility than the type of its field 'v8::internal::PointerUpdateJobTraits<direction>::UpdateTypedPointers(v8::internal::Heap*, v8::internal::MemoryChunk*)::<lambda(v8::internal::SlotType, v8::internal::Address, v8::internal::Address)> [with v8::internal::PointerDirection direction = (v8::internal::PointerDirection)1; v8::internal::Address = unsigned char*; v8::internal::byte = unsigned char]::<lambda(v8::internal::Object**)>::<heap capture>' [-Werror=attributes]
25
26Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
27---
28 chromium/v8/src/heap/mark-compact.cc | 5 +++++
29 chromium/v8/src/objects-body-descriptors.h | 2 +-
30 chromium/v8/src/objects-inl.h | 20 ++++++++++++++++++++
31 chromium/v8/src/objects.h | 20 ++++----------------
32 4 files changed, 30 insertions(+), 17 deletions(-)
33
34diff --git a/chromium/v8/src/heap/mark-compact.cc b/chromium/v8/src/heap/mark-compact.cc
35index f9a55dfc61..da46270aec 100644
36--- a/chromium/v8/src/heap/mark-compact.cc
37+++ b/chromium/v8/src/heap/mark-compact.cc
38@@ -3614,6 +3614,9 @@ void MarkCompactCollector::EvacuateNewSpaceAndCandidates() {
39 #endif
40 }
41
42+#pragma GCC diagnostic push
43+#pragma GCC diagnostic warning "-Wattributes"
44+
45 template <PointerDirection direction>
46 class PointerUpdateJobTraits {
47 public:
48@@ -3701,6 +3704,8 @@ class PointerUpdateJobTraits {
49 }
50 };
51
52+#pragma GCC diagnostic pop
53+
54 int NumberOfPointerUpdateTasks(int pages) {
55 if (!FLAG_parallel_pointer_update) return 1;
56 const int kMaxTasks = 4;
57diff --git a/chromium/v8/src/objects-body-descriptors.h b/chromium/v8/src/objects-body-descriptors.h
58index 91cb8883be..a1c3634bd7 100644
59--- a/chromium/v8/src/objects-body-descriptors.h
60+++ b/chromium/v8/src/objects-body-descriptors.h
61@@ -99,7 +99,7 @@ class FixedBodyDescriptor final : public BodyDescriptorBase {
62
63 template <typename StaticVisitor>
64 static inline void IterateBody(HeapObject* obj, int object_size) {
65- IterateBody(obj);
66+ IterateBody<StaticVisitor>(obj);
67 }
68 };
69
70diff --git a/chromium/v8/src/objects-inl.h b/chromium/v8/src/objects-inl.h
71index 58441d3853..e850fd787f 100644
72--- a/chromium/v8/src/objects-inl.h
73+++ b/chromium/v8/src/objects-inl.h
74@@ -38,6 +38,26 @@
75 namespace v8 {
76 namespace internal {
77
78+template <typename Derived, typename Shape, typename Key>
79+uint32_t HashTable<Derived, Shape, Key>::Hash(Key key) {
80+ if (Shape::UsesSeed) {
81+ return Shape::SeededHash(key, GetHeap()->HashSeed());
82+ } else {
83+ return Shape::Hash(key);
84+ }
85+}
86+
87+
88+template <typename Derived, typename Shape, typename Key>
89+uint32_t HashTable<Derived, Shape, Key>::HashForObject(Key key,
90+ Object* object) {
91+ if (Shape::UsesSeed) {
92+ return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
93+ } else {
94+ return Shape::HashForObject(key, object);
95+ }
96+}
97+
98 PropertyDetails::PropertyDetails(Smi* smi) {
99 value_ = smi->value();
100 }
101diff --git a/chromium/v8/src/objects.h b/chromium/v8/src/objects.h
102index 7d774beb5b..eda1478766 100644
103--- a/chromium/v8/src/objects.h
104+++ b/chromium/v8/src/objects.h
105@@ -3193,22 +3193,10 @@ class HashTable : public HashTableBase {
106 public:
107 typedef Shape ShapeT;
108
109- // Wrapper methods
110- inline uint32_t Hash(Key key) {
111- if (Shape::UsesSeed) {
112- return Shape::SeededHash(key, GetHeap()->HashSeed());
113- } else {
114- return Shape::Hash(key);
115- }
116- }
117-
118- inline uint32_t HashForObject(Key key, Object* object) {
119- if (Shape::UsesSeed) {
120- return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
121- } else {
122- return Shape::HashForObject(key, object);
123- }
124- }
125+ // Wrapper methods. Defined in src/objects-inl.h
126+ // to break a cycle with src/heap/heap.h.
127+ inline uint32_t Hash(Key key);
128+ inline uint32_t HashForObject(Key key, Object* object);
129
130 // Returns a new HashTable object.
131 MUST_USE_RESULT static Handle<Derived> New(