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

Qt6 does not build on ARMv5/v6 due to yield instruction

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • Not Evaluated
    • None
    • 6.3.1
    • Core: Other
    • None
    • Linux/Other display system

    Description

      On ARM < v7 with gcc, the build fails with:

      /tmp/ccRlrCQi.s: Assembler messages:
      /tmp/ccRlrCQi.s:3858: Error: selected processor does not support `yield' in ARM mode
      /tmp/ccRlrCQi.s:3875: Error: selected processor does not support `yield' in ARM mode
      /tmp/ccRlrCQi.s:4606: Error: selected processor does not support `yield' in ARM mode
      /tmp/ccRlrCQi.s:4853: Error: selected processor does not support `yield' in ARM mode
      /tmp/ccRlrCQi.s:5268: Error: selected processor does not support `yield' in ARM mode

      while building src/corelib/thread/qfutureinterface.cpp.

      This is due to the fact that the qYieldCpu() macro on ARM, assumes
      that if the compiler is gcc, we can do asm volatile("yield"). However,
      this instruction is only guaranteed to exist on ARMv7+ cores. It
      doesn't exist on ARMv5, and only some (but not all) ARMv6 cores have
      it.

      I initially intended to contribute the patch directly, but the Qt contribution process is too painful for such a small change, so I attach the patch here. I don't care about authorship on the patch, so if changing the author to somebody else makes the acceptance process easier from a legal standpoint, feel free to pick up the change with a different author name.

      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
              thomas.petazzoni Thomas Petazzoni
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes