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

Stable branch V4 compilation failure on ARM Linux

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P1: Critical
    • Resolution: Cannot Reproduce
    • Affects Version/s: 5.2.0
    • Fix Version/s: 5.2.0 RC1
    • Labels:
      None
    • Environment:
      32-bit ARM (Freescale i.MX53x); cross-compilation g++ toolchain generated using OpenEmbedded.

      Description

      The stable branch of qtdeclarative currently does not compile on ARM Linux. As far as I can tell, there is indeed no convertUInt32ToDouble method in the MASM::Assembler base class in the current stable branch.

      In file included from /home/housel/src/qt/qt5/qtdeclarative/src/qml/compiler/qv4isel_masm.cpp:42:0:
      /home/housel/src/qt/qt5/qtdeclarative/src/qml/compiler/qv4isel_masm_p.h: In member function 'void QQmlJS::MASM::Assembler::storeUInt32(JSC::AbstractMacroAssembler<JSC::ARMAssembler>::RegisterID, QQmlJS::MASM::Assembler::Pointer)':
      /home/housel/src/qt/qt5/qtdeclarative/src/qml/compiler/qv4isel_masm_p.h:1210:63: error: 'convertUInt32ToDouble' was not declared in this scope
      convertUInt32ToDouble(reg, FPGpr0, ReturnValueRegister);
      ^
      /home/housel/src/qt/qt5/qtdeclarative/src/qml/compiler/qv4isel_masm_p.h: In member function 'void QQmlJS::MASM::InstructionSelection::convertUIntToDouble(QQmlJS::V4IR::Temp*, QQmlJS::V4IR::Temp*)':
      /home/housel/src/qt/qt5/qtdeclarative/src/qml/compiler/qv4isel_masm_p.h:1489:18: error: 'class QQmlJS::MASM::Assembler' has no member named 'convertUInt32ToDouble'
      _as->convertUInt32ToDouble(reg, (Assembler::FPRegisterID) target->index, tmpReg);
      ^
      /home/housel/src/qt/qt5/qtdeclarative/src/qml/compiler/qv4isel_masm_p.h:1491:18: error: 'class QQmlJS::MASM::Assembler' has no member named 'convertUInt32ToDouble'
      _as->convertUInt32ToDouble(_as->toUInt32Register(source, tmpReg),
      ^
      /home/housel/src/qt/qt5/qtdeclarative/src/qml/compiler/qv4isel_masm.cpp: In member function 'virtual void QQmlJS::MASM::InstructionSelection::visitRet(QQmlJS::V4IR::Ret*)':
      /home/housel/src/qt/qt5/qtdeclarative/src/qml/compiler/qv4isel_masm.cpp:1904:22: error: 'class QQmlJS::MASM::Assembler' has no member named 'convertUInt32ToDouble'
      _as->convertUInt32ToDouble(srcReg, Assembler::FPGpr0, Assembler::ReturnValueRegister);
      ^
      /home/housel/src/qt/qt5/qtdeclarative/src/qml/compiler/qv4isel_masm.cpp: In member function 'JSC::AbstractMacroAssembler<JSC::ARMAssembler>::Jump QQmlJS::MASM::InstructionSelection::genTryDoubleConversion(QQmlJS::V4IR::Expr*, JSC::MacroAssemblerARM::FPRegisterID)':
      /home/housel/src/qt/qt5/qtdeclarative/src/qml/compiler/qv4isel_masm.cpp:2098:14: error: 'class QQmlJS::MASM::Assembler' has no member named 'convertUInt32ToDouble'
      _as->convertUInt32ToDouble(_as->toUInt32Register(src, Assembler::ScratchRegister),
      ^
      make: *** [.obj/debug-shared/qv4isel_masm.o] Error 1
      arm-oe-linux-gnueabi-g++ -march=armv7-a -mthumb-interwork -mfloat-abi=softfp -mfpu=neon --sysroot=/home/housel/oe-dylan/build/tmp-raptor-eglibc/sysroots/imx53qsb -c -pipe -pipe -pipe -O2 -pipe -g -feliminate-unused-debug-types -O2 -pipe -g -feliminate-unused-debug-types -fpermissive -fvisibility-inlines-hidden -g -w -std=c+0x -D_REENTRANT -fPIC -DQT_NO_XCB -DQT_NO_XKBCOMMON -DQT_NO_URL_CAST_FROM_STRING -DQT_NO_INTEGER_EVENT_COORDINATES -DQT_BUILD_QML_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DV4_ENABLE_JIT -DENABLE_YARR_JIT=1 -DWTF_EXPORT_PRIVATE= -DJS_EXPORT_PRIVATE= -DENABLE_LLINT=0 -DENABLE_DFG_JIT=0 -DENABLE_DFG_JIT_UTILITY_METHODS=1 -DENABLE_JIT_CONSTANT_BLINDING=0 -DENABLE_ASSEMBLER=1 -DBUILDING_QT__ -DENABLE_JIT=1 -DWTF_USE_UDIS86=0 -DV4_CXX_ABI_EXCEPTION -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NETWORK_LIB -DQT_CORE_LIB -I/home/housel/src/qt/qt5/qtbase/mkspecs/linux-oe-g+ -I/home/housel/src/qt/qt5/qtdeclarative/src/qml -I../../include -I../../include/QtQml -I../../include/QtQml/5.2.0 -I../../include/QtQml/5.2.0/QtQml -I/home/housel/src/qt/qt5/qtdeclarative/src/3rdparty/masm/jit -I/home/housel/src/qt/qt5/qtdeclarative/src/3rdparty/masm/assembler -I/home/housel/src/qt/qt5/qtdeclarative/src/3rdparty/masm/runtime -I/home/housel/src/qt/qt5/qtdeclarative/src/3rdparty/masm/wtf -I/home/housel/src/qt/qt5/qtdeclarative/src/3rdparty/masm/stubs -I/home/housel/src/qt/qt5/qtdeclarative/src/3rdparty/masm/stubs/wtf -I/home/housel/src/qt/qt5/qtdeclarative/src/3rdparty/masm -I/home/housel/src/qt/qt5/qtdeclarative/src/3rdparty/masm/disassembler -I/home/housel/src/qt/qt5/qtdeclarative/src/3rdparty/masm/disassembler/udis86 -I/home/housel/src/qt/qt5/qtdeclarative/src/qml/compiler -I. -I/home/housel/src/qt/qt5/qtdeclarative/src/qml/jsruntime -I. -I/home/housel/src/qt/qt5/qtdeclarative/src/3rdparty/double-conversion -I/home/housel/src/qt/qt5/qtdeclarative/src/qml/animations -I/home/housel/obj/armv7a-vfp-neon-oe-linux-gnueabi/qtbase/include -I/home/housel/obj/armv7a-vfp-neon-oe-linux-gnueabi/qtbase/include/QtNetwork -I/home/housel/obj/armv7a-vfp-neon-oe-linux-gnueabi/qtbase/include/QtCore -I/home/housel/obj/armv7a-vfp-neon-oe-linux-gnueabi/qtbase/include/QtCore/5.2.0 -I/home/housel/obj/armv7a-vfp-neon-oe-linux-gnueabi/qtbase/include/QtCore/5.2.0/QtCore -I.moc/debug-shared -I. -o .obj/debug-shared/qv4engine.o /home/housel/src/qt/qt5/qtdeclarative/src/qml/jsruntime/qv4engine.cpp
      In file included from /home/housel/src/qt/qt5/qtdeclarative/src/qml/jsruntime/qv4engine.cpp:72:0:
      /home/housel/src/qt/qt5/qtdeclarative/src/qml/compiler/qv4isel_masm_p.h: In member function 'void QQmlJS::MASM::Assembler::storeUInt32(JSC::AbstractMacroAssembler<JSC::ARMAssembler>::RegisterID, QQmlJS::MASM::Assembler::Pointer)':
      /home/housel/src/qt/qt5/qtdeclarative/src/qml/compiler/qv4isel_masm_p.h:1210:63: error: 'convertUInt32ToDouble' was not declared in this scope
      convertUInt32ToDouble(reg, FPGpr0, ReturnValueRegister);
      ^
      /home/housel/src/qt/qt5/qtdeclarative/src/qml/compiler/qv4isel_masm_p.h: In member function 'void QQmlJS::MASM::InstructionSelection::convertUIntToDouble(QQmlJS::V4IR::Temp*, QQmlJS::V4IR::Temp*)':
      /home/housel/src/qt/qt5/qtdeclarative/src/qml/compiler/qv4isel_masm_p.h:1489:18: error: 'class QQmlJS::MASM::Assembler' has no member named 'convertUInt32ToDouble'
      _as->convertUInt32ToDouble(reg, (Assembler::FPRegisterID) target->index, tmpReg);
      ^
      /home/housel/src/qt/qt5/qtdeclarative/src/qml/compiler/qv4isel_masm_p.h:1491:18: error: 'class QQmlJS::MASM::Assembler' has no member named 'convertUInt32ToDouble'
      _as->convertUInt32ToDouble(_as->toUInt32Register(source, tmpReg),
      ^

        Attachments

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

          Activity

            People

            Assignee:
            erikv Erik Verbruggen
            Reporter:
            housel Peter S. Housel
            Votes:
            1 Vote for this issue
            Watchers:
            7 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Gerrit Reviews

                There are no open Gerrit changes