# 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)