aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-qt/qt5/qtwebengine
diff options
context:
space:
mode:
authorMartin Jansa <Martin.Jansa@gmail.com>2017-07-11 10:20:35 +0200
committerMartin Jansa <Martin.Jansa@gmail.com>2017-07-12 10:25:33 +0200
commitc2768bd4e5dffb22126c0bd1f40638c9a74295fd (patch)
tree923b028b03e66b94079e40a760b8db3e781ad95b /recipes-qt/qt5/qtwebengine
parent00d72cd892b2c7edb3c0c158f0f2f5f5ecd41887 (diff)
qtwebengine: fix build with gcc7
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'recipes-qt/qt5/qtwebengine')
-rw-r--r--recipes-qt/qt5/qtwebengine/0001-chromium-base.gypi-include-atomicops_internals_x86_g.patch21
-rw-r--r--recipes-qt/qt5/qtwebengine/0002-chromium-Change-false-to-FALSE-and-1-to-TRUE-FIX-qtw.patch25
-rw-r--r--recipes-qt/qt5/qtwebengine/0003-chromium-v8-fix-build-with-gcc7.patch134
-rw-r--r--recipes-qt/qt5/qtwebengine/0004-chromium-WebKit-fix-build-with-gcc7.patch44
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 @@
-From db56cd0fd185a9f3858f5aa6e95b24e63dee119f Mon Sep 17 00:00:00 2001
+From 83eee1ff5f9259595b8630e464fa869c6fde8f3c Mon Sep 17 00:00:00 2001
From: Martin Jansa <Martin.Jansa@gmail.com>
Date: Fri, 3 Oct 2014 03:52:11 +0200
-Subject: [PATCH] <chromium> base.gypi: include atomicops_internals_x86_gcc.cc
- when building for x64 arch
+Subject: [PATCH 1/4] <chromium> base.gypi: include
+ atomicops_internals_x86_gcc.cc when building for x64 arch
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
- src/3rdparty/chromium/base/base.gypi | 2 +-
+ chromium/base/base.gypi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/src/3rdparty/chromium/base/base.gypi b/src/3rdparty/chromium/base/base.gypi
-index 63c3f76..331c975 100644
---- a/src/3rdparty/chromium/base/base.gypi
-+++ b/src/3rdparty/chromium/base/base.gypi
-@@ -801,7 +801,7 @@
+diff --git a/chromium/base/base.gypi b/chromium/base/base.gypi
+index a4da596070..13173d621e 100644
+--- a/chromium/base/base.gypi
++++ b/chromium/base/base.gypi
+@@ -845,7 +845,7 @@
['include', '^nix/'],
],
}],
@@ -22,3 +22,6 @@ index 63c3f76..331c975 100644
'sources/': [
['include', 'atomicops_internals_x86_gcc.cc'],
],
+--
+2.13.2
+
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 @@
-From de6311b4d556abbe131462a3cd962ae87da59522 Mon Sep 17 00:00:00 2001
+From 4aa614106c03793709e5dbd69f45df8a5e5c9fe4 Mon Sep 17 00:00:00 2001
From: Cleiton Bueno <cleitonrbueno@gmail.com>
Date: Thu, 24 Dec 2015 12:46:58 -0200
-Subject: [PATCH] chromium: Change false to FALSE and 1 to TRUE, FIX
+Subject: [PATCH 2/4] chromium: Change false to FALSE and 1 to TRUE, FIX
qtwebengine compile
Signed-off-by: Cleiton Bueno <cleitonrbueno@gmail.com>
@@ -10,11 +10,11 @@ Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
chromium/ui/gfx/codec/jpeg_codec.cc | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
-diff --git a/src/3rdparty/chromium/ui/gfx/codec/jpeg_codec.cc b/src/3rdparty/chromium/ui/gfx/codec/jpeg_codec.cc
-index 8a08fe0..32b2a05 100644
---- a/src/3rdparty/chromium/ui/gfx/codec/jpeg_codec.cc
-+++ b/src/3rdparty/chromium/ui/gfx/codec/jpeg_codec.cc
-@@ -120,7 +120,7 @@ boolean EmptyOutputBuffer(jpeg_compress_struct* cinfo) {
+diff --git a/chromium/ui/gfx/codec/jpeg_codec.cc b/chromium/ui/gfx/codec/jpeg_codec.cc
+index 6d926378be..738d3fdedf 100644
+--- a/chromium/ui/gfx/codec/jpeg_codec.cc
++++ b/chromium/ui/gfx/codec/jpeg_codec.cc
+@@ -121,7 +121,7 @@ boolean EmptyOutputBuffer(jpeg_compress_struct* cinfo) {
// tell libjpeg where to write the next data
cinfo->dest->next_output_byte = &(*state->out)[state->image_buffer_used];
cinfo->dest->free_in_buffer = state->out->size() - state->image_buffer_used;
@@ -23,7 +23,7 @@ index 8a08fe0..32b2a05 100644
}
// Cleans up the JpegEncoderState to prepare for returning in the final form.
-@@ -261,7 +261,7 @@ bool JPEGCodec::Encode(const unsigned char* input, ColorFormat format,
+@@ -262,7 +262,7 @@ bool JPEGCodec::Encode(const unsigned char* input, ColorFormat format,
cinfo.data_precision = 8;
jpeg_set_defaults(&cinfo);
@@ -32,7 +32,7 @@ index 8a08fe0..32b2a05 100644
// set up the destination manager
jpeg_destination_mgr destmgr;
-@@ -273,7 +273,7 @@ bool JPEGCodec::Encode(const unsigned char* input, ColorFormat format,
+@@ -274,7 +274,7 @@ bool JPEGCodec::Encode(const unsigned char* input, ColorFormat format,
JpegEncoderState state(output);
cinfo.client_data = &state;
@@ -41,7 +41,7 @@ index 8a08fe0..32b2a05 100644
// feed it the rows, doing necessary conversions for the color format
#ifdef JCS_EXTENSIONS
-@@ -359,7 +359,7 @@ void InitSource(j_decompress_ptr cinfo) {
+@@ -360,7 +360,7 @@ void InitSource(j_decompress_ptr cinfo) {
// set to a positive value if TRUE is returned. A FALSE return should only
// be used when I/O suspension is desired."
boolean FillInputBuffer(j_decompress_ptr cinfo) {
@@ -50,7 +50,7 @@ index 8a08fe0..32b2a05 100644
}
// Skip data in the buffer. Since we have all the data at once, this operation
-@@ -487,8 +487,8 @@ bool JPEGCodec::Decode(const unsigned char* input, size_t input_size,
+@@ -488,8 +488,8 @@ bool JPEGCodec::Decode(const unsigned char* input, size_t input_size,
cinfo.client_data = &state;
// fill the file metadata into our buffer
@@ -61,3 +61,6 @@ index 8a08fe0..32b2a05 100644
// we want to always get RGB data out
switch (cinfo.jpeg_color_space) {
+--
+2.13.2
+
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 @@
+From 1a163c0cab05761f269fcb5adad5d40d71200d52 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Tue, 11 Jul 2017 10:15:41 +0200
+Subject: [PATCH 3/4] chromium: v8 fix build with gcc7
+
+Use the fix from nodejs:
+https://github.com/nodejs/node/commit/2a2a5565c298639b823250b571101f51210c50e8
+
+* fixes:
+| ../../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)':
+| ../../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*&)'
+| IterateBody(obj);
+| ^
+
+and
+
+| ../../v8/src/objects.h: In member function 'uint32_t v8::internal::HashTable<Derived, Shape, Key>::Hash(Key)':
+| ../../v8/src/objects.h:3205:46: error: invalid use of incomplete type 'class v8::internal::Heap' [-Werror]
+| return Shape::SeededHash(key, GetHeap()->HashSeed());
+| ^~
+
+and
+
+../../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]
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ chromium/v8/src/heap/mark-compact.cc | 5 +++++
+ chromium/v8/src/objects-body-descriptors.h | 2 +-
+ chromium/v8/src/objects-inl.h | 20 ++++++++++++++++++++
+ chromium/v8/src/objects.h | 20 ++++----------------
+ 4 files changed, 30 insertions(+), 17 deletions(-)
+
+diff --git a/chromium/v8/src/heap/mark-compact.cc b/chromium/v8/src/heap/mark-compact.cc
+index f9a55dfc61..da46270aec 100644
+--- a/chromium/v8/src/heap/mark-compact.cc
++++ b/chromium/v8/src/heap/mark-compact.cc
+@@ -3614,6 +3614,9 @@ void MarkCompactCollector::EvacuateNewSpaceAndCandidates() {
+ #endif
+ }
+
++#pragma GCC diagnostic push
++#pragma GCC diagnostic warning "-Wattributes"
++
+ template <PointerDirection direction>
+ class PointerUpdateJobTraits {
+ public:
+@@ -3701,6 +3704,8 @@ class PointerUpdateJobTraits {
+ }
+ };
+
++#pragma GCC diagnostic pop
++
+ int NumberOfPointerUpdateTasks(int pages) {
+ if (!FLAG_parallel_pointer_update) return 1;
+ const int kMaxTasks = 4;
+diff --git a/chromium/v8/src/objects-body-descriptors.h b/chromium/v8/src/objects-body-descriptors.h
+index 91cb8883be..a1c3634bd7 100644
+--- a/chromium/v8/src/objects-body-descriptors.h
++++ b/chromium/v8/src/objects-body-descriptors.h
+@@ -99,7 +99,7 @@ class FixedBodyDescriptor final : public BodyDescriptorBase {
+
+ template <typename StaticVisitor>
+ static inline void IterateBody(HeapObject* obj, int object_size) {
+- IterateBody(obj);
++ IterateBody<StaticVisitor>(obj);
+ }
+ };
+
+diff --git a/chromium/v8/src/objects-inl.h b/chromium/v8/src/objects-inl.h
+index 58441d3853..e850fd787f 100644
+--- a/chromium/v8/src/objects-inl.h
++++ b/chromium/v8/src/objects-inl.h
+@@ -38,6 +38,26 @@
+ namespace v8 {
+ namespace internal {
+
++template <typename Derived, typename Shape, typename Key>
++uint32_t HashTable<Derived, Shape, Key>::Hash(Key key) {
++ if (Shape::UsesSeed) {
++ return Shape::SeededHash(key, GetHeap()->HashSeed());
++ } else {
++ return Shape::Hash(key);
++ }
++}
++
++
++template <typename Derived, typename Shape, typename Key>
++uint32_t HashTable<Derived, Shape, Key>::HashForObject(Key key,
++ Object* object) {
++ if (Shape::UsesSeed) {
++ return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
++ } else {
++ return Shape::HashForObject(key, object);
++ }
++}
++
+ PropertyDetails::PropertyDetails(Smi* smi) {
+ value_ = smi->value();
+ }
+diff --git a/chromium/v8/src/objects.h b/chromium/v8/src/objects.h
+index 7d774beb5b..eda1478766 100644
+--- a/chromium/v8/src/objects.h
++++ b/chromium/v8/src/objects.h
+@@ -3193,22 +3193,10 @@ class HashTable : public HashTableBase {
+ public:
+ typedef Shape ShapeT;
+
+- // Wrapper methods
+- inline uint32_t Hash(Key key) {
+- if (Shape::UsesSeed) {
+- return Shape::SeededHash(key, GetHeap()->HashSeed());
+- } else {
+- return Shape::Hash(key);
+- }
+- }
+-
+- inline uint32_t HashForObject(Key key, Object* object) {
+- if (Shape::UsesSeed) {
+- return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
+- } else {
+- return Shape::HashForObject(key, object);
+- }
+- }
++ // Wrapper methods. Defined in src/objects-inl.h
++ // to break a cycle with src/heap/heap.h.
++ inline uint32_t Hash(Key key);
++ inline uint32_t HashForObject(Key key, Object* object);
+
+ // Returns a new HashTable object.
+ MUST_USE_RESULT static Handle<Derived> New(
+--
+2.13.2
+
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 @@
+From 2be0856e09f47e7f2c35e77d4e000d769c6beaf9 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Tue, 11 Jul 2017 10:18:13 +0200
+Subject: [PATCH 4/4] chromium: WebKit fix build with gcc7
+
+Based on qtwebengine-opensource-src-5.8.0-wtf-gcc7.patch from
+http://git.net/ml/scm-fedora-commits/2017-03/msg15697.html
+
+* Fixes:
+In file included from ../../git/src/third_party/WebKit/Source/platform/heap/ThreadingTraits.h:14:0,
+ from ../../git/src/third_party/WebKit/Source/platform/heap/ThreadState.h:37,
+ from ../../git/src/third_party/WebKit/Source/platform/heap/GarbageCollected.h:8,
+ from ../../git/src/third_party/WebKit/Source/platform/heap/Visitor.h:35,
+ from ../../git/src/third_party/WebKit/Source/platform/heap/GCInfo.h:8,
+ from ../../git/src/third_party/WebKit/Source/platform/heap/Heap.h:35,
+ from ../../git/src/third_party/WebKit/Source/platform/heap/Handle.h:34,
+ from ../../git/src/third_party/WebKit/public/platform/WebPrivatePtr.h:38,
+ from ../../git/src/third_party/WebKit/public/platform/WebString.h:35,
+ from ../../git/src/third_party/WebKit/Source/platform/exported/FilePathConversion.cpp:8:
+../../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>&)':
+../../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]
+ swapAnchor(m_anchor, other.m_anchor);
+ ^~~~~~~~~~
+../../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)
+---
+ chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h b/chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h
+index e85c72fd65..6f94cd6734 100644
+--- a/chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h
++++ b/chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h
+@@ -542,6 +542,8 @@ inline LinkedHashSet<T, U, V, W>& LinkedHashSet<T, U, V, W>::operator=(LinkedHas
+ return *this;
+ }
+
++inline void swapAnchor(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b);
++
+ template<typename T, typename U, typename V, typename W>
+ inline void LinkedHashSet<T, U, V, W>::swap(LinkedHashSet& other)
+ {
+--
+2.13.2
+