diff options
author | Martin Jansa <Martin.Jansa@gmail.com> | 2017-07-11 10:20:35 +0200 |
---|---|---|
committer | Martin Jansa <Martin.Jansa@gmail.com> | 2017-07-12 10:25:33 +0200 |
commit | c2768bd4e5dffb22126c0bd1f40638c9a74295fd (patch) | |
tree | 923b028b03e66b94079e40a760b8db3e781ad95b /recipes-qt/qt5/qtwebengine | |
parent | 00d72cd892b2c7edb3c0c158f0f2f5f5ecd41887 (diff) | |
download | meta-qt5-c2768bd4e5dffb22126c0bd1f40638c9a74295fd.tar.gz |
qtwebengine: fix build with gcc7
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'recipes-qt/qt5/qtwebengine')
4 files changed, 204 insertions, 20 deletions
diff --git a/recipes-qt/qt5/qtwebengine/0001-chromium-base.gypi-include-atomicops_internals_x86_g.patch b/recipes-qt/qt5/qtwebengine/0001-chromium-base.gypi-include-atomicops_internals_x86_g.patch index ccd43e21..44901165 100644 --- a/recipes-qt/qt5/qtwebengine/0001-chromium-base.gypi-include-atomicops_internals_x86_g.patch +++ b/recipes-qt/qt5/qtwebengine/0001-chromium-base.gypi-include-atomicops_internals_x86_g.patch | |||
@@ -1,19 +1,19 @@ | |||
1 | From db56cd0fd185a9f3858f5aa6e95b24e63dee119f Mon Sep 17 00:00:00 2001 | 1 | From 83eee1ff5f9259595b8630e464fa869c6fde8f3c Mon Sep 17 00:00:00 2001 |
2 | From: Martin Jansa <Martin.Jansa@gmail.com> | 2 | From: Martin Jansa <Martin.Jansa@gmail.com> |
3 | Date: Fri, 3 Oct 2014 03:52:11 +0200 | 3 | Date: Fri, 3 Oct 2014 03:52:11 +0200 |
4 | Subject: [PATCH] <chromium> base.gypi: include atomicops_internals_x86_gcc.cc | 4 | Subject: [PATCH 1/4] <chromium> base.gypi: include |
5 | when building for x64 arch | 5 | atomicops_internals_x86_gcc.cc when building for x64 arch |
6 | 6 | ||
7 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | 7 | Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> |
8 | --- | 8 | --- |
9 | src/3rdparty/chromium/base/base.gypi | 2 +- | 9 | chromium/base/base.gypi | 2 +- |
10 | 1 file changed, 1 insertion(+), 1 deletion(-) | 10 | 1 file changed, 1 insertion(+), 1 deletion(-) |
11 | 11 | ||
12 | diff --git a/src/3rdparty/chromium/base/base.gypi b/src/3rdparty/chromium/base/base.gypi | 12 | diff --git a/chromium/base/base.gypi b/chromium/base/base.gypi |
13 | index 63c3f76..331c975 100644 | 13 | index a4da596070..13173d621e 100644 |
14 | --- a/src/3rdparty/chromium/base/base.gypi | 14 | --- a/chromium/base/base.gypi |
15 | +++ b/src/3rdparty/chromium/base/base.gypi | 15 | +++ b/chromium/base/base.gypi |
16 | @@ -801,7 +801,7 @@ | 16 | @@ -845,7 +845,7 @@ |
17 | ['include', '^nix/'], | 17 | ['include', '^nix/'], |
18 | ], | 18 | ], |
19 | }], | 19 | }], |
@@ -22,3 +22,6 @@ index 63c3f76..331c975 100644 | |||
22 | 'sources/': [ | 22 | 'sources/': [ |
23 | ['include', 'atomicops_internals_x86_gcc.cc'], | 23 | ['include', 'atomicops_internals_x86_gcc.cc'], |
24 | ], | 24 | ], |
25 | -- | ||
26 | 2.13.2 | ||
27 | |||
diff --git a/recipes-qt/qt5/qtwebengine/0002-chromium-Change-false-to-FALSE-and-1-to-TRUE-FIX-qtw.patch b/recipes-qt/qt5/qtwebengine/0002-chromium-Change-false-to-FALSE-and-1-to-TRUE-FIX-qtw.patch index 34f58ded..eae27879 100644 --- a/recipes-qt/qt5/qtwebengine/0002-chromium-Change-false-to-FALSE-and-1-to-TRUE-FIX-qtw.patch +++ b/recipes-qt/qt5/qtwebengine/0002-chromium-Change-false-to-FALSE-and-1-to-TRUE-FIX-qtw.patch | |||
@@ -1,7 +1,7 @@ | |||
1 | From de6311b4d556abbe131462a3cd962ae87da59522 Mon Sep 17 00:00:00 2001 | 1 | From 4aa614106c03793709e5dbd69f45df8a5e5c9fe4 Mon Sep 17 00:00:00 2001 |
2 | From: Cleiton Bueno <cleitonrbueno@gmail.com> | 2 | From: Cleiton Bueno <cleitonrbueno@gmail.com> |
3 | Date: Thu, 24 Dec 2015 12:46:58 -0200 | 3 | Date: Thu, 24 Dec 2015 12:46:58 -0200 |
4 | Subject: [PATCH] chromium: Change false to FALSE and 1 to TRUE, FIX | 4 | Subject: [PATCH 2/4] chromium: Change false to FALSE and 1 to TRUE, FIX |
5 | qtwebengine compile | 5 | qtwebengine compile |
6 | 6 | ||
7 | Signed-off-by: Cleiton Bueno <cleitonrbueno@gmail.com> | 7 | Signed-off-by: Cleiton Bueno <cleitonrbueno@gmail.com> |
@@ -10,11 +10,11 @@ Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> | |||
10 | chromium/ui/gfx/codec/jpeg_codec.cc | 12 ++++++------ | 10 | chromium/ui/gfx/codec/jpeg_codec.cc | 12 ++++++------ |
11 | 1 file changed, 6 insertions(+), 6 deletions(-) | 11 | 1 file changed, 6 insertions(+), 6 deletions(-) |
12 | 12 | ||
13 | diff --git a/src/3rdparty/chromium/ui/gfx/codec/jpeg_codec.cc b/src/3rdparty/chromium/ui/gfx/codec/jpeg_codec.cc | 13 | diff --git a/chromium/ui/gfx/codec/jpeg_codec.cc b/chromium/ui/gfx/codec/jpeg_codec.cc |
14 | index 8a08fe0..32b2a05 100644 | 14 | index 6d926378be..738d3fdedf 100644 |
15 | --- a/src/3rdparty/chromium/ui/gfx/codec/jpeg_codec.cc | 15 | --- a/chromium/ui/gfx/codec/jpeg_codec.cc |
16 | +++ b/src/3rdparty/chromium/ui/gfx/codec/jpeg_codec.cc | 16 | +++ b/chromium/ui/gfx/codec/jpeg_codec.cc |
17 | @@ -120,7 +120,7 @@ boolean EmptyOutputBuffer(jpeg_compress_struct* cinfo) { | 17 | @@ -121,7 +121,7 @@ boolean EmptyOutputBuffer(jpeg_compress_struct* cinfo) { |
18 | // tell libjpeg where to write the next data | 18 | // tell libjpeg where to write the next data |
19 | cinfo->dest->next_output_byte = &(*state->out)[state->image_buffer_used]; | 19 | cinfo->dest->next_output_byte = &(*state->out)[state->image_buffer_used]; |
20 | cinfo->dest->free_in_buffer = state->out->size() - state->image_buffer_used; | 20 | cinfo->dest->free_in_buffer = state->out->size() - state->image_buffer_used; |
@@ -23,7 +23,7 @@ index 8a08fe0..32b2a05 100644 | |||
23 | } | 23 | } |
24 | 24 | ||
25 | // Cleans up the JpegEncoderState to prepare for returning in the final form. | 25 | // Cleans up the JpegEncoderState to prepare for returning in the final form. |
26 | @@ -261,7 +261,7 @@ bool JPEGCodec::Encode(const unsigned char* input, ColorFormat format, | 26 | @@ -262,7 +262,7 @@ bool JPEGCodec::Encode(const unsigned char* input, ColorFormat format, |
27 | cinfo.data_precision = 8; | 27 | cinfo.data_precision = 8; |
28 | 28 | ||
29 | jpeg_set_defaults(&cinfo); | 29 | jpeg_set_defaults(&cinfo); |
@@ -32,7 +32,7 @@ index 8a08fe0..32b2a05 100644 | |||
32 | 32 | ||
33 | // set up the destination manager | 33 | // set up the destination manager |
34 | jpeg_destination_mgr destmgr; | 34 | jpeg_destination_mgr destmgr; |
35 | @@ -273,7 +273,7 @@ bool JPEGCodec::Encode(const unsigned char* input, ColorFormat format, | 35 | @@ -274,7 +274,7 @@ bool JPEGCodec::Encode(const unsigned char* input, ColorFormat format, |
36 | JpegEncoderState state(output); | 36 | JpegEncoderState state(output); |
37 | cinfo.client_data = &state; | 37 | cinfo.client_data = &state; |
38 | 38 | ||
@@ -41,7 +41,7 @@ index 8a08fe0..32b2a05 100644 | |||
41 | 41 | ||
42 | // feed it the rows, doing necessary conversions for the color format | 42 | // feed it the rows, doing necessary conversions for the color format |
43 | #ifdef JCS_EXTENSIONS | 43 | #ifdef JCS_EXTENSIONS |
44 | @@ -359,7 +359,7 @@ void InitSource(j_decompress_ptr cinfo) { | 44 | @@ -360,7 +360,7 @@ void InitSource(j_decompress_ptr cinfo) { |
45 | // set to a positive value if TRUE is returned. A FALSE return should only | 45 | // set to a positive value if TRUE is returned. A FALSE return should only |
46 | // be used when I/O suspension is desired." | 46 | // be used when I/O suspension is desired." |
47 | boolean FillInputBuffer(j_decompress_ptr cinfo) { | 47 | boolean FillInputBuffer(j_decompress_ptr cinfo) { |
@@ -50,7 +50,7 @@ index 8a08fe0..32b2a05 100644 | |||
50 | } | 50 | } |
51 | 51 | ||
52 | // Skip data in the buffer. Since we have all the data at once, this operation | 52 | // Skip data in the buffer. Since we have all the data at once, this operation |
53 | @@ -487,8 +487,8 @@ bool JPEGCodec::Decode(const unsigned char* input, size_t input_size, | 53 | @@ -488,8 +488,8 @@ bool JPEGCodec::Decode(const unsigned char* input, size_t input_size, |
54 | cinfo.client_data = &state; | 54 | cinfo.client_data = &state; |
55 | 55 | ||
56 | // fill the file metadata into our buffer | 56 | // fill the file metadata into our buffer |
@@ -61,3 +61,6 @@ index 8a08fe0..32b2a05 100644 | |||
61 | 61 | ||
62 | // we want to always get RGB data out | 62 | // we want to always get RGB data out |
63 | switch (cinfo.jpeg_color_space) { | 63 | switch (cinfo.jpeg_color_space) { |
64 | -- | ||
65 | 2.13.2 | ||
66 | |||
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 new file mode 100644 index 00000000..2acce2c5 --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/0003-chromium-v8-fix-build-with-gcc7.patch | |||
@@ -0,0 +1,134 @@ | |||
1 | From 1a163c0cab05761f269fcb5adad5d40d71200d52 Mon Sep 17 00:00:00 2001 | ||
2 | From: Martin Jansa <Martin.Jansa@gmail.com> | ||
3 | Date: Tue, 11 Jul 2017 10:15:41 +0200 | ||
4 | Subject: [PATCH 3/4] chromium: v8 fix build with gcc7 | ||
5 | |||
6 | Use the fix from nodejs: | ||
7 | https://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 | |||
15 | and | ||
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 | |||
22 | and | ||
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 | |||
26 | Signed-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 | |||
34 | diff --git a/chromium/v8/src/heap/mark-compact.cc b/chromium/v8/src/heap/mark-compact.cc | ||
35 | index 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; | ||
57 | diff --git a/chromium/v8/src/objects-body-descriptors.h b/chromium/v8/src/objects-body-descriptors.h | ||
58 | index 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 | |||
70 | diff --git a/chromium/v8/src/objects-inl.h b/chromium/v8/src/objects-inl.h | ||
71 | index 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 | } | ||
101 | diff --git a/chromium/v8/src/objects.h b/chromium/v8/src/objects.h | ||
102 | index 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( | ||
132 | -- | ||
133 | 2.13.2 | ||
134 | |||
diff --git a/recipes-qt/qt5/qtwebengine/0004-chromium-WebKit-fix-build-with-gcc7.patch b/recipes-qt/qt5/qtwebengine/0004-chromium-WebKit-fix-build-with-gcc7.patch new file mode 100644 index 00000000..46e87611 --- /dev/null +++ b/recipes-qt/qt5/qtwebengine/0004-chromium-WebKit-fix-build-with-gcc7.patch | |||
@@ -0,0 +1,44 @@ | |||
1 | From 2be0856e09f47e7f2c35e77d4e000d769c6beaf9 Mon Sep 17 00:00:00 2001 | ||
2 | From: Martin Jansa <Martin.Jansa@gmail.com> | ||
3 | Date: Tue, 11 Jul 2017 10:18:13 +0200 | ||
4 | Subject: [PATCH 4/4] chromium: WebKit fix build with gcc7 | ||
5 | |||
6 | Based on qtwebengine-opensource-src-5.8.0-wtf-gcc7.patch from | ||
7 | http://git.net/ml/scm-fedora-commits/2017-03/msg15697.html | ||
8 | |||
9 | * Fixes: | ||
10 | In file included from ../../git/src/third_party/WebKit/Source/platform/heap/ThreadingTraits.h:14:0, | ||
11 | from ../../git/src/third_party/WebKit/Source/platform/heap/ThreadState.h:37, | ||
12 | from ../../git/src/third_party/WebKit/Source/platform/heap/GarbageCollected.h:8, | ||
13 | from ../../git/src/third_party/WebKit/Source/platform/heap/Visitor.h:35, | ||
14 | from ../../git/src/third_party/WebKit/Source/platform/heap/GCInfo.h:8, | ||
15 | from ../../git/src/third_party/WebKit/Source/platform/heap/Heap.h:35, | ||
16 | from ../../git/src/third_party/WebKit/Source/platform/heap/Handle.h:34, | ||
17 | from ../../git/src/third_party/WebKit/public/platform/WebPrivatePtr.h:38, | ||
18 | from ../../git/src/third_party/WebKit/public/platform/WebString.h:35, | ||
19 | from ../../git/src/third_party/WebKit/Source/platform/exported/FilePathConversion.cpp:8: | ||
20 | ../../git/src/third_party/WebKit/Source/wtf/LinkedHashSet.h: In member function 'void WTF::LinkedHashSet<Value, HashFunctions, HashTraits, Allocator>::swap(WTF::LinkedHashSet<Value, HashFunctions, HashTraits, Allocator>&)': | ||
21 | ../../git/src/third_party/WebKit/Source/wtf/LinkedHashSet.h:549:5: error: there are no arguments to 'swapAnchor' that depend on a template parameter, so a declaration of 'swapAnchor' must be available [-fpermissive] | ||
22 | swapAnchor(m_anchor, other.m_anchor); | ||
23 | ^~~~~~~~~~ | ||
24 | ../../git/src/third_party/WebKit/Source/wtf/LinkedHashSet.h:549:5: note: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated) | ||
25 | --- | ||
26 | chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h | 2 ++ | ||
27 | 1 file changed, 2 insertions(+) | ||
28 | |||
29 | diff --git a/chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h b/chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h | ||
30 | index e85c72fd65..6f94cd6734 100644 | ||
31 | --- a/chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h | ||
32 | +++ b/chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h | ||
33 | @@ -542,6 +542,8 @@ inline LinkedHashSet<T, U, V, W>& LinkedHashSet<T, U, V, W>::operator=(LinkedHas | ||
34 | return *this; | ||
35 | } | ||
36 | |||
37 | +inline void swapAnchor(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b); | ||
38 | + | ||
39 | template<typename T, typename U, typename V, typename W> | ||
40 | inline void LinkedHashSet<T, U, V, W>::swap(LinkedHashSet& other) | ||
41 | { | ||
42 | -- | ||
43 | 2.13.2 | ||
44 | |||