summaryrefslogtreecommitdiffstats
path: root/mkspecs
diff options
context:
space:
mode:
authorThomas Zander <t.zander@nokia.com>2010-02-24 15:01:43 (GMT)
committerThomas Zander <t.zander@nokia.com>2010-02-24 17:20:11 (GMT)
commite9ea8cf1332a741eb4e4d115b96d89ff146f850f (patch)
tree6a16134fb471ab666df548ed8a87f55da4ee3b1c /mkspecs
parent9f0899d86afcc2304c9de824c43e363d2a881339 (diff)
downloadQt-e9ea8cf1332a741eb4e4d115b96d89ff146f850f.zip
Qt-e9ea8cf1332a741eb4e4d115b96d89ff146f850f.tar.gz
Qt-e9ea8cf1332a741eb4e4d115b96d89ff146f850f.tar.bz2
Make gcce xcompiler for symbian compile+link QtCore
This moves some stuff from the common to linux-armcc specific and updates the cloned gcce specs to do the right thing.
Diffstat (limited to 'mkspecs')
-rw-r--r--mkspecs/common/armcc.conf1
-rw-r--r--mkspecs/common/symbian/symbian.conf2
-rw-r--r--mkspecs/symbian/linux-armcc/platformlibs.conf4
-rw-r--r--mkspecs/symbian/linux-gcce/features/qt.prf2
-rw-r--r--mkspecs/symbian/linux-gcce/features/symbian_building.prf52
-rw-r--r--mkspecs/symbian/linux-gcce/platformlibs.conf5
-rw-r--r--mkspecs/symbian/linux-gcce/qmake.conf19
7 files changed, 58 insertions, 27 deletions
diff --git a/mkspecs/common/armcc.conf b/mkspecs/common/armcc.conf
index c9a518b..2c765bc 100644
--- a/mkspecs/common/armcc.conf
+++ b/mkspecs/common/armcc.conf
@@ -2,6 +2,7 @@
# qmake configuration for armcc
#
+CONFIG += rvct_linker
QMAKE_CC = armcc
QMAKE_CFLAGS +=
QMAKE_CFLAGS_DEPS += -M
diff --git a/mkspecs/common/symbian/symbian.conf b/mkspecs/common/symbian/symbian.conf
index 744ffda..b496f72 100644
--- a/mkspecs/common/symbian/symbian.conf
+++ b/mkspecs/common/symbian/symbian.conf
@@ -3,7 +3,7 @@
#
TEMPLATE = app
-CONFIG += qt warn_on release incremental link_prl rvct_linker sis_targets
+CONFIG += qt warn_on release incremental link_prl sis_targets
QT += core gui
QMAKE_INCREMENTAL_STYLE = sublib
diff --git a/mkspecs/symbian/linux-armcc/platformlibs.conf b/mkspecs/symbian/linux-armcc/platformlibs.conf
index ac57790..d03cb9b 100644
--- a/mkspecs/symbian/linux-armcc/platformlibs.conf
+++ b/mkspecs/symbian/linux-armcc/platformlibs.conf
@@ -1 +1,3 @@
-QMAKE_LIBS += -lusrt2_2.lib -ldfpaeabi.dso -ldfprvct2_2.dso -ldrtaeabi.dso -lscppnwdl.dso -ldrtrvct2_2.dso -lh_t__uf.l\\(switch8.o\\)
+QMAKE_LIBS += usrt2_2.lib dfpaeabi.dso dfprvct2_2.dso drtaeabi.dso scppnwdl.dso drtrvct2_2.dso h_t__uf.l\\(switch8.o\\)
+
+QMAKE_RVCT_LINKSTYLE = 1
diff --git a/mkspecs/symbian/linux-gcce/features/qt.prf b/mkspecs/symbian/linux-gcce/features/qt.prf
index 7c97368..79d46d1 100644
--- a/mkspecs/symbian/linux-gcce/features/qt.prf
+++ b/mkspecs/symbian/linux-gcce/features/qt.prf
@@ -1,4 +1,4 @@
-QMAKE_LIBDIR_QT += $${EPOCROOT}epoc32/release/armv5/lib
+QMAKE_LIBDIR += $${EPOCROOT}epoc32/release/armv5/lib
INCLUDEPATH = $${EPOCROOT}epoc32/include/variant \
$${EPOCROOT}epoc32/include/stdapis \
diff --git a/mkspecs/symbian/linux-gcce/features/symbian_building.prf b/mkspecs/symbian/linux-gcce/features/symbian_building.prf
index 3e5324f..168b08b 100644
--- a/mkspecs/symbian/linux-gcce/features/symbian_building.prf
+++ b/mkspecs/symbian/linux-gcce/features/symbian_building.prf
@@ -26,25 +26,22 @@ contains(QMAKE_CFLAGS, "--thumb")|contains(QMAKE_CXXFLAGS, "--thumb") {
DEFINES += __MARM_THUMB__
}
-for(libraries, LIBS) {
- libraries = $$replace(libraries, "\.dll$", ".dso")
- isFullName = $$find(libraries, \.)
- isEmpty(isFullName) {
- newLIBS += "$${libraries}.dso"
- } else {
- newLIBS += "$${libraries}"
- }
+for(library, LIBS) {
+ library = $$replace(library, "\.dll$", ".dso")
+ library = $$replace(library, "^-l", "")
+ isFullName = $$find(library, \.)
+ isEmpty(isFullName):library="$${library}.dso"
+ newLIBS += "${EPOCROOT}epoc32/release/armv5/lib/$${library}"
}
LIBS = $$newLIBS
newLIBS =
-for(libraries, QMAKE_LIBS) {
- libraries = $$replace(libraries, "\.dll$", ".dso")
- isFullName = $$find(libraries, \.)
- isEmpty(isFullName) {
- newLIBS += "$${libraries}.dso"
- } else {
- newLIBS += "$${libraries}"
- }
+QMAKE_LIBS += dfpaeabi drtaeabi scppnwdl
+for(library, QMAKE_LIBS) {
+ library = $$replace(library, "\.dll$", ".dso")
+ library = $$replace(library, "^-l", "")
+ isFullName = $$find(library, \.)
+ isEmpty(isFullName):library="$${library}.dso"
+ newLIBS += "${EPOCROOT}epoc32/release/armv5/lib/$${library}"
}
QMAKE_LIBS = $$newLIBS
@@ -105,9 +102,20 @@ contains(TEMPLATE, lib):!contains(CONFIG, static):!contains(CONFIG, staticlib) {
QMAKE_DISTCLEAN += $${symbianDestdir}/$${TARGET}.dso
QMAKE_CLEAN += $${symbianObjdir}/$${TARGET}.def
- QMAKE_LIBS += -ledllstub.lib -ledll.lib\\(uc_dll_.o\\)
+ QMAKE_LIBS += ${EPOCROOT}/epoc32/release/armv5/udeb/edllstub.lib \
+ ${EPOCROOT}/epoc32/release/armv5/udeb/edll.lib \
+ -lsupc++ \
+ -lgcc
+
+ QMAKE_LFLAGS += --soname $${TARGET}\\{$${hexVersion}\\}\\[$${intUid3}\\].dll \
+ -Ttext 0x80000 -Tdata 0x400000 \
+ --target1-abs \
+ --no-undefined \
+ --strip-debug \
+ --nostdlib \
+ -L/home/zander/work/build-symbian/arm-2009q3/lib/gcc/arm-none-symbianelf/4.4.1/ \
+ -L/home/zander/work/build-symbian/arm-2009q3/arm-none-symbianelf/lib/
- QMAKE_LFLAGS += --symver_soname --soname $${TARGET}\\{$${hexVersion}\\}\\[$${intUid3}\\].dll
}
contains(TEMPLATE, app):!contains(QMAKE_LINK, "^@.*") {
@@ -123,7 +131,13 @@ contains(TEMPLATE, app):!contains(QMAKE_LINK, "^@.*") {
QMAKE_LIBS += -leexe.lib\\(uc_exe_.o\\)
- QMAKE_LFLAGS += --symver_soname --soname $${TARGET}\\{$${hexVersion}\\}\\[$${intUid3}\\].exe
+ QMAKE_LFLAGS += --symver_soname --soname=$${TARGET}\\{$${hexVersion}\\}\\[$${intUid3}\\].exe \
+ --target1-abs \
+ --no-undefined \
+ --shared \
+ -lsupc++ \
+ -lgcc \
+ --nostdlib
}
# Symbian resource files
diff --git a/mkspecs/symbian/linux-gcce/platformlibs.conf b/mkspecs/symbian/linux-gcce/platformlibs.conf
index 0a74ba9..d31b793 100644
--- a/mkspecs/symbian/linux-gcce/platformlibs.conf
+++ b/mkspecs/symbian/linux-gcce/platformlibs.conf
@@ -1 +1,4 @@
-QMAKE_LIBS += -lusrt2_2.lib -ldfpaeabi.dso -ldrtaeabi.dso -lscppnwdl.dso :lh_t__uf.l\\(switch8.o\\)
+QMAKE_LIBS += "-\\( ${EPOCROOT}epoc32/release/armv5/udeb/usrt2_2.lib -\\)"
+
+QMAKE_LIBDIR += ${EPOCROOT}/epoc32/release/armv5/udeb/
+
diff --git a/mkspecs/symbian/linux-gcce/qmake.conf b/mkspecs/symbian/linux-gcce/qmake.conf
index e4b08c1..7e3dff7 100644
--- a/mkspecs/symbian/linux-gcce/qmake.conf
+++ b/mkspecs/symbian/linux-gcce/qmake.conf
@@ -8,9 +8,20 @@ include(../../common/g++.conf)
QMAKE_CC = arm-none-symbianelf-gcc
QMAKE_CXX = arm-none-symbianelf-g++
-QMAKE_LINK = arm-none-symbianelf-g++
-QMAKE_LINK_SHLIB = arm-none-symbianelf-g++
-QMAKE_LINK_C = arm-none-symbianelf-gcc
-QMAKE_LINK_C_SHLIB = arm-none-symbianelf-gcc
+QMAKE_LINK = arm-none-symbianelf-ld
+QMAKE_LINK_SHLIB = arm-none-symbianelf-ld
+QMAKE_LINK_C = arm-none-symbianelf-ld
+QMAKE_LINK_C_SHLIB = arm-none-symbianelf-ld
QMAKE_AR = arm-none-symbianelf-ar cqs
+# never use -fPIC, gcce-linker doesn't like it.
+# g++ conf above adds it if the host platform is 64 bit, so we remove it again
+QMAKE_CFLAGS_SHLIB -= -fPIC
+QMAKE_CFLAGS_STATIC_LIB -= -fPIC
+QMAKE_CXXFLAGS_SHLIB -= -fPIC
+QMAKE_CXXFLAGS_STATIC_LIB -= -fPIC
+
+QMAKE_LFLAGS_SONAME =
+#QMAKE_LFLAGS_THREAD +=
+#QMAKE_LFLAGS_NOUNDEF += -Wl,--no-undefined
+QMAKE_RPATH = --rpath=