You are not logged in.

#1 2018-06-01 22:32:39

jonathon
Member
From: UK
Registered: 2017-07-19
Posts: 40
Website

extra/qt5-webengine

qt-webengine=5.11.0 doesn't build from the Arch PKGBUILD, erroring out with:

In file included from ../../../../qtwebengine-everywhere-src-5.11.0/src/3rdparty/chromium/mojo/edk/embedder/scoped_platform_handle.h:12,
                 from ../../../../qtwebengine-everywhere-src-5.11.0/src/3rdparty/chromium/mojo/edk/embedder/connection_params.h:10,
                 from ../../../../qtwebengine-everywhere-src-5.11.0/src/3rdparty/chromium/mojo/edk/embedder/peer_connection.h:9,
                 from ../../../../qtwebengine-everywhere-src-5.11.0/src/3rdparty/chromium/mojo/edk/embedder/peer_connection.cc:5:
../../../../qtwebengine-everywhere-src-5.11.0/src/3rdparty/chromium/mojo/public/c/system/message_pipe.h:47:42: error: static assertion failed: int64_t has weird alignment
 MOJO_STATIC_ASSERT(MOJO_ALIGNOF(int64_t) == 8, "int64_t has weird alignment");
../../../../qtwebengine-everywhere-src-5.11.0/src/3rdparty/chromium/mojo/public/c/system/macros.h:15:53: note: in definition of macro 'MOJO_STATIC_ASSERT'
 #define MOJO_STATIC_ASSERT(expr, msg) static_assert(expr, msg)
                                                     ^~~~
../../../../qtwebengine-everywhere-src-5.11.0/src/3rdparty/chromium/mojo/public/c/system/buffer.h:38:42: error: static assertion failed: int64_t has weird alignment
 MOJO_STATIC_ASSERT(MOJO_ALIGNOF(int64_t) == 8, "int64_t has weird alignment");
../../../../qtwebengine-everywhere-src-5.11.0/src/3rdparty/chromium/mojo/public/c/system/macros.h:15:53: note: in definition of macro 'MOJO_STATIC_ASSERT'
 #define MOJO_STATIC_ASSERT(expr, msg) static_assert(expr, msg)
                                                     ^~~~
../../../../qtwebengine-everywhere-src-5.11.0/src/3rdparty/chromium/mojo/public/c/system/data_pipe.h:49:42: error: static assertion failed: int64_t has weird alignment
 MOJO_STATIC_ASSERT(MOJO_ALIGNOF(int64_t) == 8, "int64_t has weird alignment");
../../../../qtwebengine-everywhere-src-5.11.0/src/3rdparty/chromium/mojo/public/c/system/macros.h:15:53: note: in definition of macro 'MOJO_STATIC_ASSERT'
 #define MOJO_STATIC_ASSERT(expr, msg) static_assert(expr, msg)
                                                     ^~~~

AFAICT this is only important on non-x86 platforms (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51628#c0).

A workaround is to remove this assert, a very naïve and hacky way being:

prepare() {
...
  for patchfile in buffer.h data_pipe.h message_pipe.h; do
    sed -i '/MOJO_STATIC_ASSERT(MOJO_ALIGNOF(int64_t) == 8, "int64_t has weird alignment");/d' ${srcdir}/${_pkgfqn}/src/3rdparty/chromium/mojo/public/c/system/$patchfile
  done
...
}

Or as a diff:

diff --git a/src/3rdparty/chromium/mojo/public/c/system/buffer.h b/src/3rdparty/chromium/mojo/public/c/system/buffer.h
index 09f6d28..e29a68c 100644
--- a/src/3rdparty/chromium/mojo/public/c/system/buffer.h
+++ b/src/3rdparty/chromium/mojo/public/c/system/buffer.h
@@ -35,7 +35,6 @@ const MojoCreateSharedBufferOptionsFlags
   ((MojoCreateSharedBufferOptionsFlags)0)
 #endif
 
-MOJO_STATIC_ASSERT(MOJO_ALIGNOF(int64_t) == 8, "int64_t has weird alignment");
 struct MOJO_ALIGNAS(8) MojoCreateSharedBufferOptions {
   uint32_t struct_size;
   MojoCreateSharedBufferOptionsFlags flags;
diff --git a/src/3rdparty/chromium/mojo/public/c/system/data_pipe.h b/src/3rdparty/chromium/mojo/public/c/system/data_pipe.h
index 62adbea..c79f350 100644
--- a/src/3rdparty/chromium/mojo/public/c/system/data_pipe.h
+++ b/src/3rdparty/chromium/mojo/public/c/system/data_pipe.h
@@ -46,7 +46,6 @@ const MojoCreateDataPipeOptionsFlags MOJO_CREATE_DATA_PIPE_OPTIONS_FLAG_NONE =
   ((MojoCreateDataPipeOptionsFlags)0)
 #endif
 
-MOJO_STATIC_ASSERT(MOJO_ALIGNOF(int64_t) == 8, "int64_t has weird alignment");
 struct MOJO_ALIGNAS(8) MojoCreateDataPipeOptions {
   MOJO_ALIGNAS(4) uint32_t struct_size;
   MOJO_ALIGNAS(4) MojoCreateDataPipeOptionsFlags flags;
diff --git a/src/3rdparty/chromium/mojo/public/c/system/message_pipe.h b/src/3rdparty/chromium/mojo/public/c/system/message_pipe.h
index f0f69d1..096198f 100644
--- a/src/3rdparty/chromium/mojo/public/c/system/message_pipe.h
+++ b/src/3rdparty/chromium/mojo/public/c/system/message_pipe.h
@@ -44,7 +44,6 @@ const MojoCreateMessagePipeOptionsFlags
   ((MojoCreateMessagePipeOptionsFlags)0)
 #endif
 
-MOJO_STATIC_ASSERT(MOJO_ALIGNOF(int64_t) == 8, "int64_t has weird alignment");
 struct MOJO_ALIGNAS(8) MojoCreateMessagePipeOptions {
   uint32_t struct_size;
   MojoCreateMessagePipeOptionsFlags flags;

Compilation then proceeds.

I'm currently building for manjaro32 and will get it tested; if it works I'll open a PR.

Last edited by jonathon (2018-06-01 23:15:09)

Offline

#2 2018-06-02 11:54:27

jonathon
Member
From: UK
Registered: 2017-07-19
Posts: 40
Website

Re: extra/qt5-webengine

Pants. Build fails much later on:

/usr/bin/moc -DQT_DEPRECATED_WARNINGS -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_PLUGIN -DQT_WEBENGINEWIDGETS_LIB -DQT_WEBENGINECORE_LIB -DQT_DESIGNER_LIB -DQT_UIPLUGIN_LIB -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_XML_LIB -DQT_WEBCHANNEL_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_POSITIONING_LIB -DQT_CORE_LIB -DQDESIGNER_EXPORT_WIDGETS --include .moc/moc_predefs.h -I/usr/lib/qt/mkspecs/linux-g++ -I/build/src/qtwebengine-everywhere-src-5.11.0/src/plugins/qwebengineview -I/build/src/qtwebengine-everywhere-src-5.11.0/include -I/build/src/qtwebengine-everywhere-src-5.11.0/include/QtWebEngineWidgets -I/build/src/build/include -I/build/src/build/include/QtWebEngineWidgets -I/build/src/qtwebengine-everywhere-src-5.11.0/include/QtWebEngineCore -I/build/src/build/include/QtWebEngineCore -I/usr/include/qt -I/usr/include/qt/QtDesigner -I/usr/include/qt/QtUiPlugin -I/usr/include/qt/QtPrintSupport -I/usr/include/qt/QtWidgets -I/usr/include/qt/QtQuick -I/usr/include/qt/QtGui -I/usr/include/qt/QtXml -I/usr/include/qt/QtWebChannel -I/usr/include/qt/QtQml -I/usr/include/qt/QtNetwork -I/usr/include/qt/QtPositioning -I/usr/include/qt/QtCore -I. -I/usr/include/c++/8.1.0 -I/usr/include/c++/8.1.0/i686-pc-linux-gnu -I/usr/include/c++/8.1.0/backward -I/usr/lib/gcc/i686-pc-linux-gnu/8.1.0/include -I/usr/local/include -I/usr/lib/gcc/i686-pc-linux-gnu/8.1.0/include-fixed -I/usr/include /build/src/qtwebengine-everywhere-src-5.11.0/src/plugins/qwebengineview/qwebengineview_plugin.h -o .moc/moc_qwebengineview_plugin.cpp
In file included from /build/src/qtwebengine-everywhere-src-5.11.0/src/plugins/qwebengineview/qwebengineview_plugin.cpp:40:
/build/src/qtwebengine-everywhere-src-5.11.0/src/plugins/qwebengineview/qwebengineview_plugin.h:43:10: fatal error: QtUiPlugin/QDesignerCustomWidgetInterface: No such file or directory
 #include <QtUiPlugin/QDesignerCustomWidgetInterface>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[3]: *** [Makefile:513: .obj/qwebengineview_plugin.o] Error 1
make[3]: *** Waiting for unfinished jobs....
/build/src/qtwebengine-everywhere-src-5.11.0/src/plugins/qwebengineview/qwebengineview_plugin.h:85: Error: Undefined interface
$ ls -l /usr/include/qt/QtUiPlugin/
total 14
-rw-r--r-- 1 root root  243 May 28 08:33 QtUiPluginDepends
-rw-r--r-- 1 root root 2931 May 16 08:53 customwidget.h
-rw-r--r-- 1 root root 1675 May 16 08:53 qdesignerexportwidget.h

Hmm. I can see "-I/usr/include/qt/QtUiPlugin" in the command line so I don't understand this...

---

OK, so I rebuilt and reinstalled qt5-tools and now the qt5-webengine build succeeds. I don't get it, but whatever. https://bugreports.qt.io/browse/QTBUG-5 … ent-348387

Last edited by jonathon (2018-06-02 13:12:07)

Offline

#3 2018-06-03 07:25:17

andreas_baumann
Administrator
From: Zurich, Switzerland
Registered: 2017-08-10
Posts: 833
Website

Re: extra/qt5-webengine

I just digged into this problem and there seems to be some information in:

https://bugzilla.redhat.com/show_bug.cgi?id=1563446
https://src.fedoraproject.org/cgit/rpms … gnof.patch

Because the code seems to stem from the chromium project.

I'll try myself and see what happens.. :-)

Offline

Board footer

Powered by FluxBB