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

yield is not available on armel

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Not Evaluated Not Evaluated
    • None
    • 6.3.1, 6.4.0 Beta2
    • Core: Other
    • None
    • Debian unstable
    • Linux/Wayland, Linux/X11, Linux/Yocto

      As per this build log:

      [321/1566] /usr/bin/c++ -DBACKTRACE_HEADER=\"execinfo.h\" -DCore_EXPORTS -DELF_INTERPRETER=\"/lib/ld-linux.so.3\" -DQT_ASCII_CAST_WARNINGS -DQT_BUILDING_QT -DQT_BUILD_CORE_LIB -DQT_DEPRECATED_WARNINGS -DQT_DEPRECATED_WARNINGS_SINCE=0x060000 -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_MOC_COMPAT -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_FOREACH -DQT_NO_JAVA_STYLE_ITERATORS -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_NO_USING_NAMESPACE -DQT_TYPESAFE_FLAGS -DQT_USE_QSTRINGBUILDER -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I/<<PKGBUILDDIR>>/obj-arm-linux-gnueabi/src/corelib/Core_autogen/include -I/<<PKGBUILDDIR>>/obj-arm-linux-gnueabi/include -I/<<PKGBUILDDIR>>/obj-arm-linux-gnueabi/include/QtCore -I/<<PKGBUILDDIR>>/src/corelib -I/<<PKGBUILDDIR>>/obj-arm-linux-gnueabi/src/corelib -I/<<PKGBUILDDIR>>/obj-arm-linux-gnueabi/src/corelib/global -I/<<PKGBUILDDIR>>/obj-arm-linux-gnueabi/src/corelib/kernel -I/<<PKGBUILDDIR>>/src/corelib/../3rdparty/tinycbor/src -I/<<PKGBUILDDIR>>/obj-arm-linux-gnueabi/include/QtCore/6.3.1 -I/<<PKGBUILDDIR>>/obj-arm-linux-gnueabi/include/QtCore/6.3.1/QtCore -I/<<PKGBUILDDIR>>/src/corelib/../3rdparty/forkfd -I/<<PKGBUILDDIR>>/mkspecs/linux-g++ -isystem /usr/include/double-conversion -isystem /usr/include/glib-2.0 -isystem /usr/lib/arm-linux-gnueabi/glib-2.0/include -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -march=native -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wextra -Wsuggest-override -std=c++17 -Winvalid-pch -include /<<PKGBUILDDIR>>/obj-arm-linux-gnueabi/src/corelib/CMakeFiles/Core.dir/cmake_pch.hxx -MD -MT src/corelib/CMakeFiles/Core.dir/thread/qfutureinterface.cpp.o -MF src/corelib/CMakeFiles/Core.dir/thread/qfutureinterface.cpp.o.d -o src/corelib/CMakeFiles/Core.dir/thread/qfutureinterface.cpp.o -c /<<PKGBUILDDIR>>/src/corelib/thread/qfutureinterface.cpp
      FAILED: src/corelib/CMakeFiles/Core.dir/thread/qfutureinterface.cpp.o 
      /usr/bin/c++ -DBACKTRACE_HEADER=\"execinfo.h\" -DCore_EXPORTS -DELF_INTERPRETER=\"/lib/ld-linux.so.3\" -DQT_ASCII_CAST_WARNINGS -DQT_BUILDING_QT -DQT_BUILD_CORE_LIB -DQT_DEPRECATED_WARNINGS -DQT_DEPRECATED_WARNINGS_SINCE=0x060000 -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_MOC_COMPAT -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_FOREACH -DQT_NO_JAVA_STYLE_ITERATORS -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_NO_USING_NAMESPACE -DQT_TYPESAFE_FLAGS -DQT_USE_QSTRINGBUILDER -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I/<<PKGBUILDDIR>>/obj-arm-linux-gnueabi/src/corelib/Core_autogen/include -I/<<PKGBUILDDIR>>/obj-arm-linux-gnueabi/include -I/<<PKGBUILDDIR>>/obj-arm-linux-gnueabi/include/QtCore -I/<<PKGBUILDDIR>>/src/corelib -I/<<PKGBUILDDIR>>/obj-arm-linux-gnueabi/src/corelib -I/<<PKGBUILDDIR>>/obj-arm-linux-gnueabi/src/corelib/global -I/<<PKGBUILDDIR>>/obj-arm-linux-gnueabi/src/corelib/kernel -I/<<PKGBUILDDIR>>/src/corelib/../3rdparty/tinycbor/src -I/<<PKGBUILDDIR>>/obj-arm-linux-gnueabi/include/QtCore/6.3.1 -I/<<PKGBUILDDIR>>/obj-arm-linux-gnueabi/include/QtCore/6.3.1/QtCore -I/<<PKGBUILDDIR>>/src/corelib/../3rdparty/forkfd -I/<<PKGBUILDDIR>>/mkspecs/linux-g++ -isystem /usr/include/double-conversion -isystem /usr/include/glib-2.0 -isystem /usr/lib/arm-linux-gnueabi/glib-2.0/include -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -march=native -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wextra -Wsuggest-override -std=c++17 -Winvalid-pch -include /<<PKGBUILDDIR>>/obj-arm-linux-gnueabi/src/corelib/CMakeFiles/Core.dir/cmake_pch.hxx -MD -MT src/corelib/CMakeFiles/Core.dir/thread/qfutureinterface.cpp.o -MF src/corelib/CMakeFiles/Core.dir/thread/qfutureinterface.cpp.o.d -o src/corelib/CMakeFiles/Core.dir/thread/qfutureinterface.cpp.o -c /<<PKGBUILDDIR>>/src/corelib/thread/qfutureinterface.cpp
      /tmp/ccqRiusr.s: Assembler messages:
      /tmp/ccqRiusr.s:1860: Error: selected processor does not support `yield' in ARM mode
      /tmp/ccqRiusr.s:2998: Error: selected processor does not support `yield' in ARM mode
      /tmp/ccqRiusr.s:5828: Error: selected processor does not support `yield' in ARM mode
      /tmp/ccqRiusr.s:9716: Error: selected processor does not support `yield' in ARM mode
      /tmp/ccqRiusr.s:14074: Error: selected processor does not support `yield' in ARM mode
      

      Debian's armel port can't use yield. This regression was introduced in https://github.com/qt/qtbase/commit/877c158c5976bebffd0ff02c39b6b66a842c6344 by mmutz

      In order to workaround it we added another precompiler directive to avoid

      asm volatile("yield");

      if the compiler is not Q_CC_GNU and __ARM_ARCH is equal or more to 7. This will work for us, but I'm not entirely sure this is the right sequence for a more general patch for Qt.

      Thanks to Adrian Bunk for finding the right piece of code and providing an initial patch.

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

            thiago Thiago Macieira
            lisandropm Lisandro Damián Nicanor Pérez Meyer
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes