Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
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
- is required for
-
QTBUG-8280 Symbian4_2010_13
- Closed