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

Use Symbian E32 atomics where available

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P1: Critical
    • 4.6.3
    • 4.6.0
    • None
    • None
    • This needs a suitable Symbian^3 environment for testing. (the compile time flag has just been added by the kernelhwsrv package)
    • 643f80ec50ada93b4f0a5771e6260fd32efa3e54

    Description

      Symbian^3 kernel adds SMP support.
      Qt's ARMv5 and ARMv6 assembly atomics are not SMP safe.
      Additionally, the ARM 'SWP' instruction is deprecated, and may not be implemented on SMP versions of the ARM - this impacts backward compatibility.

      Symbian added atomic functions in the user library & kernel (collectively known as "e32").
      These are implemented according to the configuration options for building the kernel, but the entry points are binary compatible.

      Good points:
      Qt can use these functions, which map closely to Qt's atomic primitives - Qt doesn't need a different binary for SMP vs non SMP hardware
      We took steps in 4.6.0 to allow the atomic implementation to be replaced while keeping backward compatibility for applications built against 4.6.0.

      Bad points:
      These functions aren't implemented for Symbian 9.4 and earlier.

      • we need a separate Qt binary for S60 3.1 through Symbian^2 vs Symbian^3 and beyond
      • or we need to do runtime lookup, which will impact performance - atomics are used heavily by Qt.

      Compile time flag from symbian is SYMBIAN_E32_ATOMIC_API

      Attachments

        Issue Links

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

          Activity

            People

              shkearns Shane Kearns
              shkearns Shane Kearns
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes