[Context basics: projects/clang380-import -r295351 for buildworld/buildkernel that targeted an rpi2 (armv7-a/cortex-a7).] When I attempt portinstall/portmaster builds for devel/qt5-linguisttools I get the following. . . . --- .obj/qdeclarative.o --- /usr/bin/clang++ -c -O -pipe -target armv6--freebsd11.0-gnueabi -march=armv7-a -mcpu=cortex-a7 -mfloat-abi=softfp -mno-unaligned-access -mfloat-abi=softfp -fno-strict-aliasing -std=c++11 -fno-exceptions -Wall -W -pthread -D_THREAD_SAFE -fPIC -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DPROEVALUATOR_CUMULATIVE -DPROEVALUATOR_INIT_PROPS -DPROEVALUATOR_DEBUG -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_QMLDEVTOOLS_LIB -DQT_XML_LIB -DQT_CORE_LIB -I. -I../shared -I/usr/local/include/qt5/QtCore/5.5.1 -I/usr/local/include/qt5/QtCore/5.5.1/QtCore -I/usr/local/include/qt5 -I/usr/local/include/qt5/QtQml -I/usr/local/include/qt5/QtQml/5.4.1 -I/usr/local/include/qt5/QtQml/5.4.1/QtQml -I/usr/local/include/qt5/QtXml -I/usr/local/include/qt5/QtCore -I.moc -I/usr/local/include -I/usr/local/lib/qt5/mkspecs/freebsd-clang -o .obj/qdeclarative.o qdeclarative.cpp qdeclarative.cpp:428:65: error: non-virtual member function marked 'override' hides virtual member function void importFile(const QString &, const QString &, int, int) Q_DECL_OVERRIDE { consumeDirective(); } ^ /usr/local/include/qt5/QtCore/qcompilerdetection.h:1027:26: note: expanded from macro 'Q_DECL_OVERRIDE' # define Q_DECL_OVERRIDE override ^ /usr/local/include/qt5/QtQml/5.4.1/QtQml/private/qqmljslexer_p.h:67:18: note: hidden overloaded virtual function 'QQmlJS::Directives::importFile' declared here: different number of parameters (2 vs 4) virtual void importFile(const QString &jsfile, const QString &module) ^ qdeclarative.cpp:429:84: error: non-virtual member function marked 'override' hides virtual member function void importModule(const QString &, const QString &, const QString &, int, int) Q_DECL_OVERRIDE { consumeDirective(); } ^ /usr/local/include/qt5/QtCore/qcompilerdetection.h:1027:26: note: expanded from macro 'Q_DECL_OVERRIDE' # define Q_DECL_OVERRIDE override ^ /usr/local/include/qt5/QtQml/5.4.1/QtQml/private/qqmljslexer_p.h:73:18: note: hidden overloaded virtual function 'QQmlJS::Directives::importModule' declared here: different number of parameters (3 vs 5) virtual void importModule(const QString &uri, const QString &version, const QString &module) ^ 2 errors generated. *** [.obj/qdeclarative.o] Error code 1 make[2]: stopped in /usr/obj/portswork/usr/ports/devel/qt5-linguisttools/work/qttools-opensource-src-5.5.1/src/linguist/lupdate 1 error . . . which stops the overall build. Stop reading the description here if you do not care about supporting details at this point. Other context details: # svnlite info /usr/ports/devel/qt5-linguisttools Path: devel/qt5-linguisttools Working Copy Root Path: /usr/ports URL: https://svn0.us-west.freebsd.org/ports/head/devel/qt5-linguisttools Relative URL: ^/head/devel/qt5-linguisttools Repository Root: https://svn0.us-west.freebsd.org/ports Repository UUID: 35697150-7ecd-e111-bb59-0022644237b5 Revision: 408464 Node Kind: directory Schedule: normal Last Changed Author: rakuco Last Changed Rev: 407169 Last Changed Date: 2016-01-24 18:10:14 +0000 (Sun, 24 Jan 2016) # freebsd-version -ku; uname -aKU 11.0-CURRENT 11.0-CURRENT FreeBSD rpi2 11.0-CURRENT FreeBSD 11.0-CURRENT #14 r295351M: Sun Feb 7 03:23:24 PST 2016 markmi@FreeBSDx64:/usr/obj/clang/arm.armv6/usr/src/sys/RPI2-NODBG arm 1100097 1100097 # more /etc/make.conf DEFAULT_VERSIONS+=perl5=5.22 WRKDIRPREFIX=/usr/obj/portswork WITH_DEBUG= WITH_DEBUG_FILES= MALLOC_PRODUCTION= # TO_TYPE=armv6 VERSION_CONTEXT=11.0 CFLAGS+=-target ${TO_TYPE}--freebsd${VERSION_CONTEXT}-gnueabi -march=armv7-a -mcpu=cortex-a7 -mfloat-abi=softfp -mno-unaligned-access .if ${.MAKE.LEVEL} == 0 CC=/usr/bin/clang CXX=/usr/bin/clang++ CPP=/usr/bin/clang-cpp .export CC .export CXX .export CPP .endif (This is a clang 3.8.0 testing/usage context, in case that was not clear.)
The error is here => different number of parameters (3 vs 5) qqmljslexer.cpp - line 1423 http://fossies.org/linux/qt-everywhere-opensource-src/qtdeclarative/src/qml/parser/qqmljslexer.cpp (header-file qqmljslexer_p.h https://codereview.qt-project.org/#/c/108051/4/src/tools/qdoc/qmlparser/qqmljslexer_p.h)
But I can't reproduce on my box, so I cannot provide a patch.
(In reply to w.schwarzenfeld from comment #2) Are you using clang 3.8.0? My submittal might effectively be an early warning of what happens in that context. (I do not have a normal clang 3.7.1 context set up to compare with 3.8.0 results.) If my 3.8.0 explorations and the resulting report are an early warning and it takes a while for things to work in that context, it is not a problem for me personally but it might eventually be for others. There was also a 2 vs. 4 count in the report: note: . . . different number of parameters (2 vs 4) virtual void importFile(const QString &jsfile, const QString &module) in addition to the 3 vs. 5 one: note: . . . different number of parameters (3 vs 5) virtual void importModule(const QString &uri, const QString &version, const QString &module)
I don't use clang38, but the line in the file is on my system: 428 void importFile(const QString &, const QString &, int, int) Q_DECL_OVERRIDE { consumeD 428 irective(); } 429 void importModule(const QString &, const QString &, const QString &, int, int) Q_DECL_ 429 OVERRIDE { consumeDirective(); }
was unclear, cause of linebreaks, correct it: src/qml/parser/qqmljslexer.cpp 428 void importFile(const QString &, const QString &, int, int) Q_DECL_OVERRIDE { consumeDirective(); } 429 void importModule(const QString &, const QString &, const QString &, int, int) Q_DECL_OVERRIDE { consumeDirective(); }
(In reply to w.schwarzenfeld from comment #1) Looks like the commit that contains those changes in that specific .h has about 6 .h files and 3 .cpp files involved overall. I'm not sure that I'll try all that. I may just wait. I quote the commit message below, just for reference. (The copy/paste put the line numbers to the right for what I copied.) Parent: fd826c11 ([QFontEngineFT] Fix alphamap creation for a cached glyph with no data) 1 Author: Martin Smith <martin.smith@digia.com> 2 AuthorDate: 2015-03-09 10:23:50 +0100 3 Commit: Martin Smith <martin.smith@digia.com> 4 CommitDate: 2015-03-12 08:32:30 +0000 5 6 qdoc: Bring qdoc's QML parser up to date 7 8 qdoc's QML parser has fallen behind the QML: parser in 9 QtDeclarative. Bring it up to date. 10 11 Change-Id: I12a688873564762434852960350c56655004e460 12 Task-number: QTBUG-44868 13 Reviewed-by: Martin Smith <martin.smith@digia.com>
(In reply to w.schwarzenfeld from comment #5) I finally noticed what is likely the essential problem: implicit use of /usr/local/include/qt5/. . . mixed with the failing lang/qt5-qml build. It appears that the compile is picking up include files from the prior installation of qt pkgs and/or ports (I do not remember which): /usr/local/include/qt5/QtCore/qcompilerdetection.h:1027:26: note: . . . /usr/local/include/qt5/QtQml/5.4.1/QtQml/private/qqmljslexer_p.h:67:18: note: . . . /usr/local/include/qt5/QtCore/qcompilerdetection.h:1027:26: note: . . . /usr/local/include/qt5/QtQml/5.4.1/QtQml/private/qqmljslexer_p.h:73:18: note: . . . Since building lang/qt5-qml is failing the 2 lines mentioning qt5/QtQml/5.4.1/QtQml have not been updated from 5.4.1 to anything more recent yet. It looks like lang/qt5-qml needs to come first before building devel/qt5-linguisttools (as long as /usr/local/include/qt5/. . . is in use for this). Otherwise devel/qt5-linguisttools would need its own copies of the files to find (unlikely). Should the build failure of lang/qt5-qml have stopped the attempt at building devel/qt5-linguisttools because of such dependencies between them?
=> from the prior installation Did you try to deinstall both packages before recompile?
If I understood right. You are trying buildworld/buildkernel (not update)? If it is so recent version of qt5 is 5.5.1.
(In reply to w.schwarzenfeld from comments #9 & #8) I originally did an svnlite update -r408464 /usr/ports . This should have updated all the source for qt5 to 5.5.1. Then I used portupdate -a . (The original qt5 use is indirect through other things I explicitly installed.) Most of the involved parts of qt5 built fine. But qt5-qml and qt5-lingisttools did not complete at the time. (buildworld/buildkernel is not directly involved at this stage: world and kernel were already installed and booted well before this and they do not involve qt5.) As for the current effort (comment #8 reply): Trying pkg deletes first resulted in . . . pkg delete qt5-qml did not ask about deleting anything else, leaving the old qt5-linguisttools in place. pkg delete qt5-linguisttools did not ask about deleting anything else. I then decided to initially try just portinstall devel/qt5-lingisttools to see what it would do about lang/qt5/qml not being there. It completed fine this time. So devel/qt5-lingisttools is apparently an example of needing a clean starting environment that does not have a prior version of various material still around that other related portinstall's would replace (possibly later depending on the ordering). It was not obvious to me that one or both pkg delete's were a requirement to do the original portupgrade's of these two ports. But if such is standard/expected then possibly this bug report (207098) can be closed. Then I tried portinstall lang/qt5-qml to see what it would do. This was without -w so my prior source change that you had suggested was replaced by official materials. This still gets the error: "The cacheFlush support is missing on this platform." that I reported in bug 207099 . In essence there is nothing new here relative to the lang/qt5-qml bug.
=> But if such is standard/expected... No is not. But sometimes it helps.
If pkg delete removes nothing, I fear there is something badly weird on your system.
(In reply to w.schwarzenfeld from comment #12) You misinterpret me. I'll try a different wording. . . pkg delete qt5-qml did delete qt5-qml. pkg delete qt5-lingisttools did delete qt5-lingisttools. But in both cases no dependencies were present to cause anything else to be deleted by the command. In particular qt5-lingisttools is not handled as being dependent on qt5-qml. This may be expected. But I had guessed from the 5.4.1 qt5-qml header files being involved and causing problems before the deletes that there was (or should be) a dependency of qt5-lingisttools on qt5-qml . Apparently I was wrong about that. These 2 deletes were enough of a context change for "portinstall qt5-lingisttools" to then complete. I do not know if this should have required the deletes or not. But the observation is that the deletes were sufficient to establish a context for qt5-lingisttools to be installed from.
A commit references this bug: Author: rakuco Date: Thu Feb 11 10:34:38 UTC 2016 New revision: 408682 URL: https://svnweb.freebsd.org/changeset/ports/408682 Log: Readd lang/qt5-qml as a build-dependency after r407169. lupdate needs QmlDevTools; if the dependency is not present, an update might try to use an older qt5-qml version and fail. No PORTREVISION bump necessary: the generated package does not change, and if the port built successfully it means the right qt5-qml version was used. PR: 207098 Changes: head/devel/qt5-linguisttools/Makefile
As noted before in this bug, qt5-linguisttools needs to build-depend on qt5-qml. Removing this dependency in ports r407169 was a mistake which I've fixed in ports r408682.