From 3fefcaff4abbb32c978d97fbac66929eb5fef1f6 Mon Sep 17 00:00:00 2001
From: Thomas Zander <t.zander@nokia.com>
Date: Mon, 1 Feb 2010 17:27:08 +0100
Subject: Remove bash-isms and make elf2e32 work properly.

elf2e32 doesn't seem to return a non-null value on error. To avoid silently
continuing we need to detect there is an error in the output of the command
and stop the build if there is.
---
 mkspecs/symbian/linux-armcc/features/symbian_building.prf | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/mkspecs/symbian/linux-armcc/features/symbian_building.prf b/mkspecs/symbian/linux-armcc/features/symbian_building.prf
index 0a697f4..a176547 100644
--- a/mkspecs/symbian/linux-armcc/features/symbian_building.prf
+++ b/mkspecs/symbian/linux-armcc/features/symbian_building.prf
@@ -78,7 +78,8 @@ isEmpty(TARGET.UID2):TARGET.UID2 = 0x00000000
 contains(TEMPLATE, lib):!contains(CONFIG, static):!contains(CONFIG, staticlib) {
     !isEmpty($$QMAKE_POST_LINK):QMAKE_POST_LINK += &&
     QMAKE_POST_LINK += $$QMAKE_MOVE $$symbianDestdir/$${TARGET}.dll $$symbianDestdir/$${TARGET}.sym
-    QMAKE_POST_LINK += && elf2e32  --version=$$decVersion --sid=$$TARGET.SID  --uid1=0x10000079 --uid2=$$TARGET.UID2 --uid3=$$TARGET.UID3 --dlldata --heap=0x00020000,0x00800000 --stack=0x00014000 --capability=None --fpu=softvfp --targettype=DLL --elfinput=$${symbianDestdir}/$${TARGET}.sym --output=$${symbianDestdir}/$${TARGET}.dll --dso=$$symbianDestdir/$${TARGET}.dso --defoutput=$$symbianObjdir/$${TARGET}.def --unfrozen --linkas=$${TARGET}\\{$${hexVersion}\\}\\[$${intUid3}\\].dll --compressionmethod bytepair $$elf2e32_LIBPATH --unpaged | tee elf2e32.log && ! grep Error: elf2e32.log >& /dev/null && rm -f elf2e32.log
+    # the tee and grep at the end work around the issue that elf2e32 doesn't return non-null on error
+    QMAKE_POST_LINK += && elf2e32  --version=$$decVersion --sid=$$TARGET.SID  --uid1=0x10000079 --uid2=$$TARGET.UID2 --uid3=$$TARGET.UID3 --dlldata --heap=0x00020000,0x00800000 --stack=0x00014000 --capability=None --fpu=softvfp --targettype=DLL --elfinput=$${symbianDestdir}/$${TARGET}.sym --output=$${symbianDestdir}/$${TARGET}.dll --dso=$$symbianDestdir/$${TARGET}.dso --defoutput=$$symbianObjdir/$${TARGET}.def --unfrozen --linkas=$${TARGET}\\{$${hexVersion}\\}\\[$${intUid3}\\].dll --compressionmethod bytepair $$elf2e32_LIBPATH --unpaged | tee elf2e32.log && test `grep -c 'Error:' elf2e32.log` = 0 && rm elf2e32.log
     QMAKE_DISTCLEAN += $${symbianDestdir}/$${TARGET}.sym
     QMAKE_DISTCLEAN += $${symbianDestdir}/$${TARGET}.dso
     QMAKE_CLEAN += $${symbianObjdir}/$${TARGET}.def
@@ -92,7 +93,8 @@ contains(TEMPLATE, app) {
     !isEmpty($$QMAKE_POST_LINK):QMAKE_POST_LINK += &&
 
     QMAKE_POST_LINK += $$QMAKE_MOVE $$symbianDestdir/$${TARGET} $$symbianDestdir/$${TARGET}.sym
-    QMAKE_POST_LINK += && elf2e32  --version $$decVersion --sid=$$TARGET.SID  --uid1=0x1000007a --uid2=$$TARGET.UID2 --uid3=$$TARGET.UID3 --dlldata --heap=0x00020000,0x00800000 --stack=0x00014000 --capability=None --fpu=softvfp --targettype=EXE --elfinput=$${symbianDestdir}/$${TARGET}.sym --output=$${symbianDestdir}/$${TARGET}.exe --unfrozen --linkas=$${TARGET}\\{$${hexVersion}\\}\\[$${intUid3}\\].exe --compressionmethod bytepair $$elf2e32_LIBPATH --unpaged | tee elf2e32.log && ! grep Error: elf2e32.log >& /dev/null && rm -f elf2e32.log
+    # the tee and grep at the end work around the issue that elf2e32 doesn't return non-null on error
+    QMAKE_POST_LINK += && elf2e32  --version $$decVersion --sid=$$TARGET.SID  --uid1=0x1000007a --uid2=$$TARGET.UID2 --uid3=$$TARGET.UID3 --dlldata --heap=0x00020000,0x00800000 --stack=0x00014000 --capability=None --fpu=softvfp --targettype=EXE --elfinput=$${symbianDestdir}/$${TARGET}.sym --output=$${symbianDestdir}/$${TARGET}.exe --unfrozen --linkas=$${TARGET}\\{$${hexVersion}\\}\\[$${intUid3}\\].exe --compressionmethod bytepair $$elf2e32_LIBPATH --unpaged | tee elf2e32.log && test `grep -c 'Error:' elf2e32.log` = 0 && rm elf2e32.log
     QMAKE_DISTCLEAN += $${symbianDestdir}/$${TARGET}.exe
 
     QMAKE_LIBS += -leexe.lib\\(uc_exe_.o\\)
-- 
cgit v0.12