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

yield is not available on armel

    XMLWordPrintable

Details

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

    Description

      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.

      Attachments

        Issue Links

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

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes