diff options
author | Iain <qt-info@nokia.com> | 2011-02-09 17:34:27 (GMT) |
---|---|---|
committer | Iain <qt-info@nokia.com> | 2011-02-09 18:00:51 (GMT) |
commit | 34aca9f03e25e94b4ca730ddd3c88aa95653a0b5 (patch) | |
tree | 5e1d664f122d08f408eded273b1bf5acf45dd9a4 /src | |
parent | bf47aa67e286f31db5a8b84060f278f7fea217b2 (diff) | |
download | Qt-34aca9f03e25e94b4ca730ddd3c88aa95653a0b5.zip Qt-34aca9f03e25e94b4ca730ddd3c88aa95653a0b5.tar.gz Qt-34aca9f03e25e94b4ca730ddd3c88aa95653a0b5.tar.bz2 |
Change paging attributes for Symbian binaries
Removed UNPAGED workaround from QtCore and QtSql on OS releases where
data paging is supported. Depends on new macro being defined in the OS
builds (SYMBIAN_DLL_DATA_EXPORTS_SUPPORTED) to allow us to detect this.
Data exports are supported in all S^3 builds after early 2009, however,
this macro is only added recently (and thus isn't defined in, eg.
Symbian Foundation PDKs (v3.0.4), or current releases (v0.9) of the S^3
SDK from Nokia). Thus building Qt against these older S^3 builds will
still result in QtCore and QtSql being unpaged.
Also, remove PAGED keyword from all Qt-based software. This changes the
code paging field in the Symbian (E32Image) header from "paged" to
"default". Thus it is left to the configuration of the particular
device whether paging is used for the binary or not. All devices that
support code paging should have it turned on (the value is stored in
the HAL, so can be checked using eg. fshell); data paging may or may
not be turned on depending on the device characteristics. Leaving both
code and data paging as "default" means that any limitations in the
device (eg. around flash wear) can be controlled by that device by
disabling the appropriate types of paging.
This change also leaves the way open to deprecated PAGED as a keyword
in the Symbian build systems, so you can only opt out of paging. This
makes more sense, as the default for code paging will be on, the
default for data paging will be on if the device can handle it, and
binaries should only be opting out of paging if they have some specific
real-time requirements that paging inhibits.
Task-number: QT-3503
Task-number: QTBUG-13931
Reviewed-by: Shane Kearns
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/corelib.pro | 9 | ||||
-rw-r--r-- | src/sql/sql.pro | 9 |
2 files changed, 12 insertions, 6 deletions
diff --git a/src/corelib/corelib.pro b/src/corelib/corelib.pro index a001940..06aa191 100644 --- a/src/corelib/corelib.pro +++ b/src/corelib/corelib.pro @@ -33,7 +33,10 @@ contains(DEFINES,QT_EVAL):include(eval.pri) symbian: { TARGET.UID3=0x2001B2DC - # Workaroud for problems with paging this dll - MMP_RULES -= PAGED - MMP_RULES *= UNPAGED + # Problems using data exports from this DLL mean that we can't page it on releases that don't support + # data exports (currently that's any release before Symbian^3) + pagingBlock = "$${LITERAL_HASH}ifndef SYMBIAN_DLL_DATA_EXPORTS_SUPPORTED" \ + "UNPAGED" \ + "$${LITERAL_HASH}endif" + MMP_RULES += pagingBlock } diff --git a/src/sql/sql.pro b/src/sql/sql.pro index b8f819d..a02b0f4 100644 --- a/src/sql/sql.pro +++ b/src/sql/sql.pro @@ -20,7 +20,10 @@ include(models/models.pri) symbian: { TARGET.UID3=0x2001E61D - # Workaroud for problems with paging this dll - MMP_RULES -= PAGED - MMP_RULES *= UNPAGED + # Problems using data exports from this DLL mean that we can't page it on releases that don't support + # data exports (currently that's any release before Symbian^3) + pagingBlock = "$${LITERAL_HASH}ifndef SYMBIAN_DLL_DATA_EXPORTS_SUPPORTED" \ + "UNPAGED" \ + "$${LITERAL_HASH}endif" + MMP_RULES += pagingBlock } |