diff options
author | Thomas Zander <t.zander@nokia.com> | 2010-02-24 15:01:43 (GMT) |
---|---|---|
committer | Thomas Zander <t.zander@nokia.com> | 2010-02-24 17:20:11 (GMT) |
commit | e9ea8cf1332a741eb4e4d115b96d89ff146f850f (patch) | |
tree | 6a16134fb471ab666df548ed8a87f55da4ee3b1c /mkspecs | |
parent | 9f0899d86afcc2304c9de824c43e363d2a881339 (diff) | |
download | Qt-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.conf | 1 | ||||
-rw-r--r-- | mkspecs/common/symbian/symbian.conf | 2 | ||||
-rw-r--r-- | mkspecs/symbian/linux-armcc/platformlibs.conf | 4 | ||||
-rw-r--r-- | mkspecs/symbian/linux-gcce/features/qt.prf | 2 | ||||
-rw-r--r-- | mkspecs/symbian/linux-gcce/features/symbian_building.prf | 52 | ||||
-rw-r--r-- | mkspecs/symbian/linux-gcce/platformlibs.conf | 5 | ||||
-rw-r--r-- | mkspecs/symbian/linux-gcce/qmake.conf | 19 |
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= |