<div dir="ltr"><div><div><div>Hi!<br><br></div>KConfig build fails with this messages, all of them related to QBasicAtomicInt. Are they KF5 bugs?<br><br>[ 19%] Building CXX object src/core/CMakeFiles/KF5ConfigCore.dir/kconfig.cpp.o<br>
Scanning dependencies of target kconfigcompiler-basic-test<br>[ 19%] Building CXX object autotests/kconfig_compiler/CMakeFiles/kconfigcompiler-basic-test.dir/kconfigcompiler_test.cpp.o<br>/home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfig.cpp: In constructor ‘KConfigPrivate::KConfigPrivate(KConfig::OpenFlags, QStandardPaths::StandardLocation)’:<br>
/home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfig.cpp:67:23: error: no match for ‘operator<’ (operand types are ‘QBasicAtomicInt’ and ‘int’)<br>     if (use_etc_kderc < 0) {<br>                       ^<br>
/home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfig.cpp:67:23: note: candidates are:<br>In file included from /opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qsharedpointer.h:50:0,<br>                 from /opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qdatetime.h:47,<br>
                 from /opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/QDate:1,<br>                 from /home/david/devel/kf5-development/src/frameworks/kconfig/src/core/conversioncheck.h:25,<br>                 from /home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfiggroup.h:717,<br>
                 from /home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfig_p.h:29,<br>                 from /home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfig.cpp:24:<br>/opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qsharedpointer_impl.h:754:24: note: template<class T, class X> bool operator<(T*, const QSharedPointer<T>&)<br>
 Q_INLINE_TEMPLATE bool operator<(T *ptr1, const QSharedPointer<X> &ptr2)<br>                        ^<br>/opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qsharedpointer_impl.h:754:24: note:   template argument deduction/substitution failed:<br>
/home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfig.cpp:67:25: note:   mismatched types ‘T*’ and ‘QBasicAtomicInteger<int>’<br>     if (use_etc_kderc < 0) {<br>                         ^<br>
In file included from /opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qsharedpointer.h:50:0,<br>                 from /opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qdatetime.h:47,<br>                 from /opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/QDate:1,<br>
                 from /home/david/devel/kf5-development/src/frameworks/kconfig/src/core/conversioncheck.h:25,<br>                 from /home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfiggroup.h:717,<br>
                 from /home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfig_p.h:29,<br>                 from /home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfig.cpp:24:<br>/opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qsharedpointer_impl.h:749:24: note: template<class T, class X> bool operator<(const QSharedPointer<T>&, X*)<br>
 Q_INLINE_TEMPLATE bool operator<(const QSharedPointer<T> &ptr1, X *ptr2)<br>                        ^<br>/opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qsharedpointer_impl.h:749:24: note:   template argument deduction/substitution failed:<br>
/home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfig.cpp:67:25: note:   ‘QBasicAtomicInt’ is not derived from ‘const QSharedPointer<T>’<br>     if (use_etc_kderc < 0) {<br>                         ^<br>
In file included from /opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qsharedpointer.h:50:0,<br>                 from /opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qdatetime.h:47,<br>                 from /opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/QDate:1,<br>
                 from /home/david/devel/kf5-development/src/frameworks/kconfig/src/core/conversioncheck.h:25,<br>                 from /home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfiggroup.h:717,<br>
                 from /home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfig_p.h:29,<br>                 from /home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfig.cpp:24:<br>/opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qsharedpointer_impl.h:744:24: note: template<class T, class X> bool operator<(const QSharedPointer<T>&, const QSharedPointer<T>&)<br>
 Q_INLINE_TEMPLATE bool operator<(const QSharedPointer<T> &ptr1, const QSharedPointer<X> &ptr2)<br>                        ^<br>/opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qsharedpointer_impl.h:744:24: note:   template argument deduction/substitution failed:<br>
/home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfig.cpp:67:25: note:   ‘QBasicAtomicInt’ is not derived from ‘const QSharedPointer<T>’<br>     if (use_etc_kderc < 0) {<br>                         ^<br>
In file included from /home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfig_p.h:27:0,<br>                 from /home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfig.cpp:24:<br>/home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfigdata.h:130:13: note: bool operator<(const KEntryKey&, const KEntryKey&)<br>
 inline bool operator <(const KEntryKey &k1, const KEntryKey &k2)<br>             ^<br>/home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfigdata.h:130:13: note:   no known conversion for argument 1 from ‘QBasicAtomicInt’ to ‘const KEntryKey&’<br>
In file included from /opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qmap.h:48:0,<br>                 from /opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qvariant.h:49,<br>                 from /opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/QVariant:1,<br>
                 from /home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfig.h:32,<br>                 from /home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfig.cpp:23:<br>/opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qpair.h:91:24: note: template<class T1, class T2> bool operator<(const QPair<T, U>&, const QPair<T, U>&)<br>
 Q_INLINE_TEMPLATE bool operator<(const QPair<T1, T2> &p1, const QPair<T1, T2> &p2)<br>                        ^<br>/opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qpair.h:91:24: note:   template argument deduction/substitution failed:<br>
/home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfig.cpp:67:25: note:   ‘QBasicAtomicInt’ is not derived from ‘const QPair<T, U>’<br>     if (use_etc_kderc < 0) {<br>                         ^<br>
In file included from /opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/QString:1:0,<br>                 from /home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfig.h:31,<br>                 from /home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfig.cpp:23:<br>
/opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qstring.h:1352:20: note: bool operator<(const QStringRef&, const QStringRef&)<br> Q_CORE_EXPORT bool operator<(const QStringRef &s1,const QStringRef &s2);<br>
                    ^<br>/opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qstring.h:1352:20: note:   no known conversion for argument 1 from ‘QBasicAtomicInt’ to ‘const QStringRef&’<br>/opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qstring.h:1003:13: note: bool operator<(QLatin1String, QLatin1String)<br>
 inline bool operator<(QLatin1String s1, QLatin1String s2)<br>             ^<br>/opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qstring.h:1003:13: note:   no known conversion for argument 1 from ‘QBasicAtomicInt’ to ‘QLatin1String’<br>
In file included from /opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qstring.h:46:0,<br>                 from /opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/QString:1,<br>                 from /home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfig.h:31,<br>
                 from /home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfig.cpp:23:<br>/opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qbytearray.h:553:13: note: bool operator<(const char*, const QByteArray&)<br>
 inline bool operator<(const char *a1, const QByteArray &a2)<br>             ^<br>/opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qbytearray.h:553:13: note:   no known conversion for argument 1 from ‘QBasicAtomicInt’ to ‘const char*’<br>
/opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qbytearray.h:551:14: note: bool operator<(const QByteArray&, const char*)<br>  inline bool operator<(const QByteArray &a1, const char *a2)<br>              ^<br>/opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qbytearray.h:551:14: note:   no known conversion for argument 1 from ‘QBasicAtomicInt’ to ‘const QByteArray&’<br>
/opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qbytearray.h:549:13: note: bool operator<(const QByteArray&, const QByteArray&)<br> inline bool operator<(const QByteArray &a1, const QByteArray &a2)<br>             ^<br>
/opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qbytearray.h:549:13: note:   no known conversion for argument 1 from ‘QBasicAtomicInt’ to ‘const QByteArray&’<br>In file included from /opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qstring.h:45:0,<br>
                 from /opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/QString:1,<br>                 from /home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfig.h:31,<br>                 from /home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfig.cpp:23:<br>
/opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qchar.h:517:13: note: bool operator<(QChar, QChar)<br> inline bool operator<(QChar c1, QChar c2) { return c1.unicode() < c2.unicode(); }<br>             ^<br>/opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qchar.h:517:13: note:   no known conversion for argument 1 from ‘QBasicAtomicInt’ to ‘QChar’<br>
/home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfig.cpp:68:23: error: use of deleted function ‘QBasicAtomicInteger<T>& QBasicAtomicInteger<T>::operator=(const QBasicAtomicInteger<T>&) [with T = int]’<br>
         use_etc_kderc = !qEnvironmentVariableIsSet("KDE_SKIP_KDERC");    // for unit tests<br>                       ^<br>In file included from /opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qatomic.h:47:0,<br>                 from /opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qglobalstatic.h:47,<br>
                 from /opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qglobal.h:1022,<br>                 from /opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/QtGlobal:1,<br>                 from /home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfigbase.h:29,<br>
                 from /home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfig.h:27,<br>                 from /home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfig.cpp:23:<br>/opt/Qt5.2.0-KF5/5.2.0/gcc/include/QtCore/qbasicatomic.h:194:26: error: declared here<br>
     QBasicAtomicInteger &operator=(const QBasicAtomicInteger &) = delete;<br>                          ^<br>/home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfig.cpp:70:22: error: could not convert ‘use_etc_kderc’ from ‘QBasicAtomicInt’ to ‘bool’<br>
     if (use_etc_kderc) {<br>                      ^<br>/home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfig.cpp: In member function ‘void KConfigPrivate::parseConfigFiles()’:<br>/home/david/devel/kf5-development/src/frameworks/kconfig/src/core/kconfig.cpp:710:145: note: #pragma message: TODO: enable kiosk feature again (resource restrictions), but without KStandardDirs... Needs a class in the kconfig framework.<br>
 #pragma message("TODO: enable kiosk feature again (resource restrictions), but without KStandardDirs... Needs a class in the kconfig framework.")<br>                                                                                                                                                 ^<br>
make[2]: *** [src/core/CMakeFiles/KF5ConfigCore.dir/kconfig.cpp.o] Error 1<br>make[1]: *** [src/core/CMakeFiles/KF5ConfigCore.dir/all] Error 2<br>make[1]: *** Waiting for unfinished jobs....<br>[ 20%] Building CXX object autotests/kconfig_compiler/CMakeFiles/kconfigcompiler-basic-test.dir/kconfigcompiler-basic-test_automoc.cpp.o<br>
Linking CXX executable kconfigcompiler-basic-test<br>[ 20%] Built target kconfigcompiler-basic-test<br>make: *** [all] Error 2<br><br></div><div>Still trying to compile KF5...<br></div><div><br></div>Cheers,<br><br></div>
David Gil<br></div>