2017-01-08 14:07 GMT+03:00 Stuart Henderson <s...@spacehopper.org>: > On 2017/01/08 10:29, Adam Wolk wrote: >> > > >> > > Runtime seems fine, but I see a segfault at shutdown (which I don't >> > > see with the current amd64 snapshot packages) - any ideas? >> > > >> >> Looks like it's an upstream Qt issue: >> https://github.com/OtterBrowser/otter-browser/issues/889 >> https://bugreports.qt.io/browse/QTBUG-50829 > > Ah great, thanks for looking into it. I'm OK with the Otter update then, > now building Qt with the diff from the Qt commit to check if it helps (port > diff for this below - Vadim, do you agree with committing this if it works?). > > Index: Makefile > =================================================================== > RCS file: /cvs/ports/x11/qt5/qtbase/Makefile,v > retrieving revision 1.2 > diff -u -p -r1.2 Makefile > --- Makefile 28 Dec 2016 01:41:23 -0000 1.2 > +++ Makefile 8 Jan 2017 11:06:42 -0000 > @@ -16,7 +16,7 @@ PKGNAME-psql = qt5-postgresql-${VERSION > PKGNAME-sqlite2 = qt5-sqlite2-${VERSION} > PKGNAME-tds = qt5-tds-${VERSION} > > -REVISION-main = 0 > +REVISION-main = 1 > > PKG_ARCH-global = * > PKG_ARCH-examples = * > Index: patches/patch-src_corelib_plugin_qfactoryloader_cpp > =================================================================== > RCS file: patches/patch-src_corelib_plugin_qfactoryloader_cpp > diff -N patches/patch-src_corelib_plugin_qfactoryloader_cpp > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-src_corelib_plugin_qfactoryloader_cpp 8 Jan 2017 11:06:42 > -0000 > @@ -0,0 +1,25 @@ > +$OpenBSD$ > + > +Stop unloading plugins in QPluginLoader and QFactoryLoader > + > +https://bugreports.qt.io/browse/QTBUG-50829 > +http://lists.qt-project.org/pipermail/development/2015-November/023681.html > +https://codereview.qt-project.org/#/c/140750/4//ALL,unified > + > +--- src/corelib/plugin/qfactoryloader.cpp.orig Sun Jan 8 10:57:50 2017 > ++++ src/corelib/plugin/qfactoryloader.cpp Sun Jan 8 10:58:25 2017 > +@@ -208,10 +208,12 @@ void QFactoryLoader::update() > + ++keyUsageCount; > + } > + } > +- if (keyUsageCount || keys.isEmpty()) > ++ if (keyUsageCount || keys.isEmpty()) { > ++ library->setLoadHints(QLibrary::PreventUnloadHint); // once > loaded, don't unload > + d->libraryList += library; > +- else > ++ } else { > + library->release(); > ++ } > + } > + } > + #else > Index: patches/patch-src_corelib_plugin_qpluginloader_cpp > =================================================================== > RCS file: patches/patch-src_corelib_plugin_qpluginloader_cpp > diff -N patches/patch-src_corelib_plugin_qpluginloader_cpp > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-src_corelib_plugin_qpluginloader_cpp 8 Jan 2017 11:06:42 > -0000 > @@ -0,0 +1,36 @@ > +$OpenBSD$ > + > +Stop unloading plugins in QPluginLoader and QFactoryLoader > + > +https://bugreports.qt.io/browse/QTBUG-50829 > +http://lists.qt-project.org/pipermail/development/2015-November/023681.html > +https://codereview.qt-project.org/#/c/140750/4//ALL,unified > + > +--- src/corelib/plugin/qpluginloader.cpp.orig Fri Sep 16 06:49:42 2016 > ++++ src/corelib/plugin/qpluginloader.cpp Sun Jan 8 11:00:04 2017 > +@@ -148,6 +148,7 @@ QPluginLoader::QPluginLoader(const QString &fileName, > + : QObject(parent), d(0), did_load(false) > + { > + setFileName(fileName); > ++ setLoadHints(QLibrary::PreventUnloadHint); > + } > + > + /*! > +@@ -342,7 +343,7 @@ static QString locatePlugin(const QString& fileName) > + void QPluginLoader::setFileName(const QString &fileName) > + { > + #if defined(QT_SHARED) > +- QLibrary::LoadHints lh; > ++ QLibrary::LoadHints lh = QLibrary::PreventUnloadHint; > + if (d) { > + lh = d->loadHints(); > + d->release(); > +@@ -391,7 +392,7 @@ Q_GLOBAL_STATIC(StaticPluginList, staticPluginList) > + \brief Give the load() function some hints on how it should behave. > + > + You can give hints on how the symbols in the plugin are > +- resolved. By default, none of the hints are set. > ++ resolved. By default since Qt 5.7, QLibrary::PreventUnloadHint is set. > + > + See the documentation of QLibrary::loadHints for a complete > + description of how this property works.
I've just started looking at the issue, and you already bite me. :) Please, go with it. -- WBR, Vadim Zhukov