From 984c227bb23cff57fbad6710fdac5c5dfc056409 Mon Sep 17 00:00:00 2001 From: Thomas Zander Date: Tue, 2 Mar 2010 13:11:22 +0100 Subject: 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 --- .../symbian/linux-gcce/features/symbian_building.prf | 16 +++------------- mkspecs/symbian/linux-gcce/platformlibs.conf | 18 +++++++++++++++++- 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") + } + } +} -- cgit v0.12