summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Zander <t.zander@nokia.com>2010-03-02 12:11:22 (GMT)
committerThomas Zander <t.zander@nokia.com>2010-03-02 12:17:44 (GMT)
commit984c227bb23cff57fbad6710fdac5c5dfc056409 (patch)
tree7c1230718804ebf7267c86b7dab476ba8e1caa38
parentcef67062373434e6ba737b3fc327f9e94e4381a2 (diff)
downloadQt-984c227bb23cff57fbad6710fdac5c5dfc056409.zip
Qt-984c227bb23cff57fbad6710fdac5c5dfc056409.tar.gz
Qt-984c227bb23cff57fbad6710fdac5c5dfc056409.tar.bz2
Properly get the paths for the compiler-provided libs
I call g++ to tell me the library paths for the compiler so I can pass that on to ld. I'm a bit confused why this is needed, need to find out if thats expected behavior for gcce
-rw-r--r--mkspecs/symbian/linux-gcce/features/symbian_building.prf16
-rw-r--r--mkspecs/symbian/linux-gcce/platformlibs.conf18
2 files changed, 20 insertions, 14 deletions
diff --git a/mkspecs/symbian/linux-gcce/features/symbian_building.prf b/mkspecs/symbian/linux-gcce/features/symbian_building.prf
index fc9d621..58d0b5e 100644
--- a/mkspecs/symbian/linux-gcce/features/symbian_building.prf
+++ b/mkspecs/symbian/linux-gcce/features/symbian_building.prf
@@ -101,18 +101,11 @@ contains(TEMPLATE, lib):!contains(CONFIG, static):!contains(CONFIG, staticlib) {
QMAKE_DISTCLEAN += $${symbianDestdir}/$${TARGET}.dso
QMAKE_CLEAN += $${symbianObjdir}/$${TARGET}.def
- QMAKE_LIBS += -l:edllstub.lib \
- -l:edll.lib \
- -lsupc++ \
- -lgcc
-
QMAKE_LFLAGS += --soname $${TARGET}\\{$${hexVersion}\\}\\[$${intUid3}\\].dll \
--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/
+ --nostdlib
}
contains(TEMPLATE, app):!contains(QMAKE_LINK, "^@.*") {
@@ -126,14 +119,11 @@ contains(TEMPLATE, app):!contains(QMAKE_LINK, "^@.*") {
QMAKE_DISTCLEAN += $${symbianDestdir}/$${TARGET}.exe
QMAKE_CLEAN += $${symbianDestdir}/$${TARGET}
- QMAKE_LIBS += -leexe.lib\\(uc_exe_.o\\)
-
- QMAKE_LFLAGS += --symver_soname --soname=$${TARGET}\\{$${hexVersion}\\}\\[$${intUid3}\\].exe \
+ QMAKE_LFLAGS += --soname=$${TARGET}\\{$${hexVersion}\\}\\[$${intUid3}\\].exe \
--target1-abs \
--no-undefined \
+ --strip-debug \
--shared \
- -lsupc++ \
- -lgcc \
--nostdlib
}
diff --git a/mkspecs/symbian/linux-gcce/platformlibs.conf b/mkspecs/symbian/linux-gcce/platformlibs.conf
index 4651d1e..f344ef0 100644
--- a/mkspecs/symbian/linux-gcce/platformlibs.conf
+++ b/mkspecs/symbian/linux-gcce/platformlibs.conf
@@ -1,4 +1,20 @@
-QMAKE_LIBS += -l:usrt2_2.lib
+QMAKE_LIBS += -l:usrt2_2.lib \
+ -l:edllstub.lib \
+ -l:edll.lib \
+ -lsupc++ \
+ -lgcc
QMAKE_LIBDIR += ${EPOCROOT}/epoc32/release/armv5/udeb/
+
+# g++ knows the path to the gcc-shipped-libs, ld doesn't. So cache the full path in the generate Makefile
+QMAKE_GCC_SEARCH_DIRS =$$system($$QMAKE_CXX -print-search-dirs)
+for(line, QMAKE_GCC_SEARCH_DIRS) {
+ contains(line, "libraries:") {
+ foundIt="1"
+ } else {
+ contains(foundIt, "1") {
+ QMAKE_LFLAGS += $$replace(line, "[=:]", " -L")
+ }
+ }
+}