Created attachment 204209 [details] patch Remove devel/qt5/files/extrapatch-mkspecs_freebsd-g++_qmake.conf, it's not needed. Copy devel/qt5/files/extrapatch-mkspecs_common_bsd_bsd.conf to devel/qt5/files/extrapatch-mkspecs_common_bsd_bsd.conf-gcc and add: EXTRA_INCLUDEPATH += %%LOCALBASE%%/lib/gcc%%GCC_DEFAULT%%/include %%LOCALBASE%%/lib/gcc%%GCC_DEFAULT%%/include/c++ Move devel/qt5/files/extrapatch-mkspecs_common_bsd_bsd.conf to devel/qt5/files/extrapatch-mkspecs_common_bsd_bsd.conf-clang and apply on Clang architectures. I compiled qt5-core on amd64 and powerpc64, seems to build fine.
over to the maintainer.
I still think that it should work without putting it in bsd.conf, which is just included by the compiler specific one.... I need to setup a gcc environment to figure our why it does not work. Does it already fail at qt5-core? Mfg Tobias
(In reply to Tobias C. Berner from comment #2) Yes, e.g. http://pylon.nyi.freebsd.org/data/head-powerpc64-default/p500451_s346935/logs/errors/qt5-core-5.12.2_1.log
(In reply to Tobias C. Berner from comment #2) Anything about it? With my patch, qt5 applications build and run on my ppc64 desktop.
Not yet, as I did not yet have time to setup something to test it with.
(In reply to Tobias C. Berner from comment #5) Just if you don't know this, you can just set USE_GCC="YES" in /etc/src.conf and rebuild world. You don't need to remove llvm.
Comment on attachment 204209 [details] patch The line: -+EXTRA_INCLUDEPATH += %%LOCALBASE%%/lib/gcc%%GCC_DEFAULT%%/include %%LOCALBASE%%/lib/gcc%%GCC_DEFAULT%%/include/c++ involves multiple %%LOCALBASE%% so the substitution needs to allow more than one substitution per line: use of "g". In my context this looks like: # svnlite diff/usr/ports/Mk/Uses/ Index: /usr/ports/Mk/Uses/qt-dist.mk =================================================================== --- /usr/ports/Mk/Uses/qt-dist.mk (revision 501994) +++ /usr/ports/Mk/Uses/qt-dist.mk (working copy) @@ -251,7 +251,7 @@ .if ${_QT_VER:M5} post-patch: gcc-post-patch gcc-post-patch: - ${REINPLACE_CMD} 's|%%LOCALBASE%%|${LOCALBASE}|' \ + ${REINPLACE_CMD} 's|%%LOCALBASE%%|${LOCALBASE}|g' \ ${WRKSRC}/mkspecs/common/gcc-base.conf \ ${WRKSRC}/mkspecs/freebsd-g++/qmake.conf ${REINPLACE_CMD} 's|%%GCC_DEFAULT%%|${GCC_DEFAULT}|g' \ I and Jason Bacon were able to build devel/qt5-core with this change to how svn has things. (This does not address the oddity of some places having the optional -e and others not when there is only one sed command being fed to ${REINPLACE_CMD}.)
Pjotr, could you please check whether fixing the sed call and nothing else is enough? You'll need to rebuild qt5-qmake too. Mfg Tobias
(In reply to Mark Millard from comment #7) I forgot to mention: powerpc64 context for building. In my case a system-clang-8 based world, no gcc 4.2.1 present. Side note for the system-clang-8 context: Without another change devel/qt5-core builds but is incoherent by having both libstdc++ and libc++/libcxxrt involved overall in /usr/local/lib/qt5/bin/qlalr : /usr/local/lib/libicui18n.so.64 /usr/local/lib/libicuuc.so.64 are not built by GCC (in my case gcc8/g+=8) and cause libc++/libcxxrt to be in use in addition to the libstdc++ from gcc parts of the build. My temporary hack to work around the issue is as follows but would not be appropriate for a gcc 4.2.1 environment. @@ -171,7 +171,9 @@ ${PORTSDIR}/devel/${_QT_RELNAME}/files/extrapatch-mkspecs_features_qt__module.prf \ ${PORTSDIR}/devel/${_QT_RELNAME}/files/extrapatch-mkspecs_common_bsd_bsd.conf \ ${PORTSDIR}/devel/${_QT_RELNAME}/files/extrapatch-mkspecs_freebsd-clang_qmake.conf -. if ${ARCH:Mmips*} || ${ARCH:Mpowerpc*} || ${ARCH} == sparc64 +. if ${ARCH:Mpowerpc64} + # HACK: for experimenting with a system-clang-8-based world +. elif ${ARCH:Mmips*} || ${ARCH:Mpowerpc*} || ${ARCH} == sparc64 _EXTRA_PATCHES_QT5+= ${PORTSDIR}/devel/${_QT_RELNAME}/files/extra-patch-mkspecs_common_g++-base.conf \ ${PORTSDIR}/devel/${_QT_RELNAME}/files/extra-patch-mkspecs_common_gcc-base.conf \ ${PORTSDIR}/devel/${_QT_RELNAME}/files/extrapatch-mkspecs_freebsd-g++_qmake.conf
(In reply to Mark Millard from comment #7) Yes, this change helps. @tcberner Can you commit this change?
Yup, I will. Thanks for testing and the fix @mark
FYI, this small, innocuous-looking patch, provided by Mark Millard on the freebsd-ppc list, was sufficient for me to build keepassx. There may be other issues addressed by Piotr's more extensive changes, but perhaps the patch below could be committed while that's analyzed, so we can at least build and test some of the qt5 dependents? Index: /usr/ports/Mk/Uses/qt-dist.mk =================================================================== --- /usr/ports/Mk/Uses/qt-dist.mk (revision 501994) +++ /usr/ports/Mk/Uses/qt-dist.mk (working copy) @@ -251,7 +251,7 @@ .if ${_QT_VER:M5} post-patch: gcc-post-patch gcc-post-patch: - ${REINPLACE_CMD} 's|%%LOCALBASE%%|${LOCALBASE}|' \ + ${REINPLACE_CMD} 's|%%LOCALBASE%%|${LOCALBASE}|g' \ ${WRKSRC}/mkspecs/common/gcc-base.conf \ ${WRKSRC}/mkspecs/freebsd-g++/qmake.conf ${REINPLACE_CMD} 's|%%GCC_DEFAULT%%|${GCC_DEFAULT}|g' \ ===> Registering installation for keepassxc-2.4.1 Installing keepassxc-2.4.1... <<<ROOT@powermacg5.acadix>>> /usr/ports/security/keepassxc 361 # pkg info |grep qt5 qt5-buildtools-5.12.2 Qt build tools qt5-concurrent-5.12.2 Qt multi-threading module qt5-core-5.12.2_1 Qt core non-graphical module qt5-dbus-5.12.2 Qt D-Bus inter-process communication module qt5-declarative-5.12.2 Qt declarative framework for dynamic user interfaces qt5-gui-5.12.2 Qt graphical user interface module qt5-linguisttools-5.12.2 Qt localization tools qt5-network-5.12.2_1 Qt network module qt5-qmake-5.12.2 Qt Makefile generator qt5-sql-5.12.2 Qt SQL database integration module qt5-svg-5.12.2 Qt SVG support module qt5-testlib-5.12.2 Qt unit testing module qt5-widgets-5.12.2 Qt C++ widgets module qt5-x11extras-5.12.2 Qt platform-specific features for X11-based systems qt5-xml-5.12.2 Qt SAX and DOM implementations qt5-xmlpatterns-5.12.2 Qt support for XPath, XQuery, XSLT and XML Schema quazip-qt5-0.7.6_2 Qt/C++ wrapper for ZIP/UNZIP package
Add print/qpdfview and x11/lumina to the ports that build on powerpc64 following the simple reinplace patch. Since powerpc64 packages are only built for quarterly snapshots, it would be nice to have a fix committed before the next branch.
A commit references this bug: Author: tcberner Date: Sat May 25 20:02:56 UTC 2019 New revision: 502628 URL: https://svnweb.freebsd.org/changeset/ports/502628 Log: qt5: fix build on gcc architectures - the sed call was only replacing one of the %%LOCALBASE%% by ${LOCALBASE}, due to the missing 'g' flag to the sed call. - with this change the gcc architectures should be able to build Qt5 again. PR: 237745 Submitted by: Mark Millard <marklmi26-fbsd@yahoo.com>, jwb Reported by: pkubaj Changes: head/Mk/Uses/qt-dist.mk head/devel/qt5-qmake/Makefile
A commit references this bug: Author: tcberner Date: Sat May 25 20:53:14 UTC 2019 New revision: 502634 URL: https://svnweb.freebsd.org/changeset/ports/502634 Log: MFH: r499101 r499116 r502628 Fix build when using GCC. Needed by GCC architectures. Tested for no breakage on amd64 with Clang. PR: 235921 Reviewed by: tcberner Approved by: tcberner (mentor) devel/qt5: Follow-up to r499101 - Move the GCC related path fix into freebsd-g++/qmake.conf Otherwise the inclusion of the GCC path would break clang based systems when gcc-${GCC_DEFAULT} was installed. - This might break GCC architectures again, and if so, that will be fixed in a follow up commit. PR: 235921 qt5: fix build on gcc architectures - the sed call was only replacing one of the %%LOCALBASE%% by ${LOCALBASE}, due to the missing 'g' flag to the sed call. - with this change the gcc architectures should be able to build Qt5 again. PR: 237745 Submitted by: Mark Millard <marklmi26-fbsd@yahoo.com>, jwb Reported by: pkubaj Approved by: ports-secteam (joneum via irc) Changes: _U branches/2019Q2/ branches/2019Q2/Mk/Uses/qt-dist.mk branches/2019Q2/devel/qt5/files/extrapatch-mkspecs_freebsd-g++_qmake.conf branches/2019Q2/devel/qt5-qmake/Makefile
(In reply to Jason W. Bacon from comment #13) Yes, it was nice to get the change into quarterly ... but, actually, powerpc64 packages are built for both 12-STABLE quarterly and 13-CURRENT. fwiw, this change has not yet propogated to either.