summaryrefslogtreecommitdiffstats
path: root/deps/qt5/patches/qt5.webengine_gcc8.patch
blob: cf276bc7322eb219b4bad93a766df6f1fd018c6d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# Prevent these errors caused by using GCC8
# (original patch taken from Fedora's chromium SRPM):
#
#  make: *** [Makefile:1028: module-qtwebengine-make_first] Error 2
#  FAILED: obj/mojo/public/c/system/system/thunks.o 
#  ../../3rdparty/chromium/mojo/public/c/system/buffer.h:38:42: error: static assertion failed: int64_t has weird alignment
#  ../../3rdparty/chromium/mojo/public/c/system/data_pipe.h:49:42: error: static assertion failed: int64_t has weird alignment
#  ../../3rdparty/chromium/mojo/public/c/system/message_pipe.h:47:42: error: static assertion failed: int64_t has weird alignment
#
--- a/src/3rdparty/chromium/mojo/public/c/system/macros.h	2018-05-15 14:58:46.448912634 -0400
+++ b/src/3rdparty/chromium/mojo/public/c/system/macros.h	2018-05-15 14:58:52.041784613 -0400
@@ -18,7 +18,13 @@
 #endif
 
 // Like the C++11 |alignof| operator.
-#if __cplusplus >= 201103L
+#if defined(__GNUC__) && __GNUC__ >= 8
+// GCC 8 has changed the alignof operator to return the minimal alignment
+// required by the target ABI, instead of the preferred alignment.
+// This means that on 32-bit x86, it will return 4 instead of 8.
+// Use __alignof__ instead to avoid this.
+#define MOJO_ALIGNOF(type) __alignof__(type)
+#elif __cplusplus >= 201103L
 #define MOJO_ALIGNOF(type) alignof(type)
 #elif defined(__GNUC__)
 #define MOJO_ALIGNOF(type) __alignof__(type)