summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorIain <qt-info@nokia.com>2011-02-09 17:34:27 (GMT)
committerIain <qt-info@nokia.com>2011-02-09 18:00:51 (GMT)
commit34aca9f03e25e94b4ca730ddd3c88aa95653a0b5 (patch)
tree5e1d664f122d08f408eded273b1bf5acf45dd9a4 /src
parentbf47aa67e286f31db5a8b84060f278f7fea217b2 (diff)
downloadQt-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.pro9
-rw-r--r--src/sql/sql.pro9
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
}