Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-76199

Raspberry Pi3: Current dev(5.14.0) build fails in QtDeclarative

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Reported
    • Priority: P2: Important
    • Resolution: Unresolved
    • Affects Version/s: 5.14.0 Alpha
    • Fix Version/s: None
    • Labels:
      None
    • Environment:
      Latest Gentoo Linux ~amd64
    • Platform/s:
      Linux/Other display system

      Description

      Cross compiling dev branch for Raspberry Pi 3 fails.

      Cross compiler: https://github.com/raspberrypi/tools/tree/master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian

      In file included from ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/qvarlengtharray.h:1:0,
                       from ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/../../../../qt5/qtbase/src/corelib/kernel/qmetatype.h:48,
                       from ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/qmetatype.h:1,
                       from ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/../../../../qt5/qtbase/src/corelib/kernel/qobject.h:54,
                       from ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/qobject.h:1,
                       from ../../include/QtQml/5.14.0/QtQml/private/../../../../../../../qt5/qtdeclarative/src/qml/qml/qqmltypeloader_p.h:55,
                       from ../../include/QtQml/5.14.0/QtQml/private/qqmltypeloader_p.h:1,
                       from ~/io/qt/code/qt/qt5/dev/qt5/qtdeclarative/src/qml/compiler/qqmltypecompiler_p.h:56,
                       from ~/io/qt/code/qt/qt5/dev/qt5/qtdeclarative/src/qml/compiler/qqmltypecompiler.cpp:40:
      ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/../../../../qt5/qtbase/src/corelib/tools/qvarlengtharray.h: In instantiation of ‘QVarLengthArray<T, Prealloc>::QVarLengthArray(InputIterator, InputIterator) [with InputIterator = const QV4::CompiledData::Alias* const*; typename std::enable_if<std::is_convertible<typename std::iterator_traits<_II1>::iterator_category, std::input_iterator_tag>::value, bool>::type <anonymous> = 1u; T = const QV4::CompiledData::Alias*; int Prealloc = 4]’:
      ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/../../../../qt5/qtbase/src/corelib/tools/qvarlengtharray.h:72:51:   required from ‘QVarLengthArray<T, Prealloc>::QVarLengthArray(std::initializer_list<_Tp>) [with T = const QV4::CompiledData::Alias*; int Prealloc = 4]’
      ../../include/QtQml/5.14.0/QtQml/private/../../../../../../../qt5/qtdeclarative/src/qml/compiler/qqmlpropertycachecreator_p.h:705:85:   required from ‘QQmlCompileError QQmlPropertyCacheAliasCreator<T>::propertyDataForAlias(const CompiledObject&, const QV4::CompiledData::Alias&, int*, int*, QQmlPropertyData::Flags*) [with ObjectContainer = QQmlTypeCompiler; QQmlPropertyCacheAliasCreator<T>::CompiledObject = QmlIR::Object]’
      ../../include/QtQml/5.14.0/QtQml/private/../../../../../../../qt5/qtdeclarative/src/qml/compiler/qqmlpropertycachecreator_p.h:813:110:   required from ‘QQmlCompileError QQmlPropertyCacheAliasCreator<T>::appendAliasesToPropertyCache(const CompiledObject&, int) [with ObjectContainer = QQmlTypeCompiler; QQmlPropertyCacheAliasCreator<T>::CompiledObject = QmlIR::Object]’
      ~/io/qt/code/qt/qt5/dev/qt5/qtdeclarative/src/qml/compiler/qqmltypecompiler.cpp:1032:133:   required from here
      ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/../../../../qt5/qtbase/src/corelib/tools/qvarlengtharray.h:78:27: error: no matching function for call to ‘QVarLengthArray<const QV4::CompiledData::Alias*, 4>::QVarLengthArray()’
               : QVarLengthArray()
                                 ^
      ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/../../../../qt5/qtbase/src/corelib/tools/qvarlengtharray.h:78:27: note: candidates are:
      ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/../../../../qt5/qtbase/src/corelib/tools/qvarlengtharray.h:77:12: note: template<class InputIterator, typename std::enable_if<std::is_convertible<typename std::iterator_traits<_Iterator>::iterator_category, std::input_iterator_tag>::value, bool>::type <anonymous> > QVarLengthArray<T, Prealloc>::QVarLengthArray(InputIterator, InputIterator)
           inline QVarLengthArray(InputIterator first, InputIterator last)
                  ^
      ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/../../../../qt5/qtbase/src/corelib/tools/qvarlengtharray.h:77:12: note:   template argument deduction/substitution failed:
      ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/../../../../qt5/qtbase/src/corelib/tools/qvarlengtharray.h:78:27: note:   candidate expects 2 arguments, 0 provided
               : QVarLengthArray()
                                 ^
      ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/../../../../qt5/qtbase/src/corelib/tools/qvarlengtharray.h:71:5: note: QVarLengthArray<T, Prealloc>::QVarLengthArray(std::initializer_list<_Tp>) [with T = const QV4::CompiledData::Alias*; int Prealloc = 4]
           QVarLengthArray(std::initializer_list<T> args)
           ^
      ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/../../../../qt5/qtbase/src/corelib/tools/qvarlengtharray.h:71:5: note:   candidate expects 1 argument, 0 provided
      ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/../../../../qt5/qtbase/src/corelib/tools/qvarlengtharray.h:65:12: note: QVarLengthArray<T, Prealloc>::QVarLengthArray(const QVarLengthArray<T, Prealloc>&) [with T = const QV4::CompiledData::Alias*; int Prealloc = 4]
           inline QVarLengthArray(const QVarLengthArray<T, Prealloc> &other)
                  ^
      ~/io/qt/code/qt/qt5/dev/rpi/qtbase/include/QtCore/../../../../qt5/qtbase/src/corelib/tools/qvarlengtharray.h:65:12: note:   candidate expects 1 argument, 0 provided
      make[3]: *** [Makefile:15237: .obj/qqmltypecompiler.o] Error 1
      make[2]: *** [Makefile:57: sub-qml-make_first-ordered] Error 2
      make[1]: *** [Makefile:50: sub-src-make_first] Error 2
      make: *** [Makefile:73: module-qtdeclarative-make_first] Error 2

      The workaround here solved the error.

      diff --git a/src/corelib/tools/qvarlengtharray.h b/src/corelib/tools/qvarlengtharray.h
      index 01fc63b677..12383deb14 100644
      --- a/src/corelib/tools/qvarlengtharray.h
      +++ b/src/corelib/tools/qvarlengtharray.h
      @@ -75,7 +75,7 @@ public:
      
           template <typename InputIterator, QtPrivate::IfIsInputIterator<InputIterator> = true>
           inline QVarLengthArray(InputIterator first, InputIterator last)
      -        : QVarLengthArray()
      +        : QVarLengthArray(0)
           {
               QtPrivate::reserveIfForwardIterator(this, first, last);
               std::copy(first, last, std::back_inserter(*this));
      

        Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

            • Assignee:
              thiago Thiago Macieira
              Reporter:
              tasuku.suzuki Tasuku Suzuki
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:

                Gerrit Reviews

                There are no open Gerrit changes