Merge fix
authortimothy.murphy@nokia.com
Sun, 28 Feb 2010 21:19:57 +0200
branchfix
changeset 280 8ba60ea0ce9a
parent 276 e80c44f576df (diff)
parent 279 733464eaac50 (current diff)
child 281 6125450a72c5
Merge
--- a/sbsv2/raptor/RELEASE-NOTES.txt	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/RELEASE-NOTES.txt	Sun Feb 28 21:19:57 2010 +0200
@@ -1,14 +1,20 @@
 Release Notes for Symbian Build System v2
 
-
 next version
 
 Defect Fixes:
+- SF Bug 1912 - Raptor should take python from the path [if not set with SBS_PYTHON or bundled with Raptor]
+- SF Bug 2042 - [Raptor] component field empty in recipe
+- SF Bug 2007 - [Raptor] GCCE 4.4.1 builds require 4.3.1 and 4.3.2 SBS_GCCE???BIN env vars etc.
+- SF Bug 2000 - [Raptor] Talon fails when installed in a path containing the string '-c' (windows only)
+- SF Bug 1861 - [Raptor] More helpful console message in case of timeouts
+- SF Bug 1571 - Raptor cannot report error or warning message in wrong implib project
 - DPDEF142718 Incremental rebuild fails if dependent files deleted
   --no-depend-generate added to suppress the generation and processing of dependency files
   .DEFAULT target introduced for all non --no-depend-generate and/or --no-depend-include builds
-- SF Bug 1861 - [Raptor] More helpful console message in case of Error 128 (timeout)
-- SF Bug 2000 - Talon fails when installed in a path containing the string '-c' (windows only)
+- Add support for PLUGIN3 TARGETTYPEs
+- Fixing logfile corruption for large GCCXML builds by suppressing zip output
+- Stop copying .bmp files to epoc32/localisation and fix the "what" reporting
 
 
 version 2.12.2
--- a/sbsv2/raptor/bin/sbs	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/bin/sbs	Sun Feb 28 21:19:57 2010 +0200
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -17,7 +17,7 @@
 #
 
 # If SBS_HOME is not set in the environment then work it out
-# from the path to this batch file
+# from the path to this script
 if [ -z "$SBS_HOME" ] ; then
 	temp=$0
 	SBS_HOME=$(cd ${temp%/*} && echo $PWD)
@@ -62,30 +62,44 @@
 fi
 
 if [ "$OSTYPE" == "cygwin" ]; then
-
-	SBS_HOME=${SBS_HOME//\\//}
-
 	__MINGW__=${SBS_MINGW:-$SBS_HOME/$HOSTPLATFORM_DIR/mingw}
 	__CYGWIN__=${SBS_CYGWIN:-$SBS_HOME/$HOSTPLATFORM_DIR/cygwin}
-	__PYTHON__=${SBS_PYTHON:-$SBS_HOME/$HOSTPLATFORM_DIR/python264/python.exe}
-	export PYTHONPATH=${SBS_PYTHONPATH:-$SBS_HOME/$HOSTPLATFORM_DIR/python264}
 
-    # Command for unifying path strings. For example, "c:\some\path" and
-    # "/cygdrive/c/some/path" will both be converted into "c:/some/path".
+	# Command for unifying path strings. For example, "c:\some\path" and
+	# "/cygdrive/c/some/path" will both be converted into "c:/some/path".
 	u="$__CYGWIN__/bin/cygpath.exe -m"
-
+	
+	SBS_HOME=${SBS_HOME//\\//}
+	export SBS_HOME=$($u "$SBS_HOME")
+	
 	__MINGW__=$($u "$__MINGW__")
 	__CYGWIN__=$($u "$__MINGW__")
-	__PYTHON__=$($u "$__PYTHON__")
-
-	export SBS_HOME=$($u "$SBS_HOME")
-
 	export PATH=${__MINGW__}/bin:${__CYGWIN__}/bin:$SBS_HOME/$HOSTPLATFORM_DIR/bin:$PATH
 
 	# Tell Cygwin not to map unix security attributes to windows to
 	# prevent raptor from potentially creating read-only files:
 	export CYGWIN='nontsec nosmbntsec'
 
+	# The python and PYTHONPATH used by Raptor are determined by, in order of precedence:
+	#  1. the SBS_PYTHON and SBS_PYTHONPATH environment variables (if set)
+	#  2. the python shipped locally with Raptor (if present)
+	#  3. the python on the system PATH and the PYTHONPATH set in the system environment
+
+	__LOCAL_PYTHON__=$SBS_HOME/win32/python264/python.exe
+
+	if [ -n "$SBS_PYTHON" ]; then
+		__PYTHON__=$SBS_PYTHON
+	elif [ -f "$__LOCAL_PYTHON__" ]; then
+		__PYTHON__=$__LOCAL_PYTHON__
+		export PYTHONPATH=
+	else
+		__PYTHON__=python.exe
+	fi
+	__PYTHON__=$($u "$__PYTHON__")		
+
+	if [ -n "$SBS_PYTHONPATH" ]; then
+		export PYTHONPATH=$($u "$SBS_PYTHONPATH")
+	fi
 else
 	export PYTHONPATH=${SBS_PYTHONPATH:-$SBS_HOME/$HOSTPLATFORM_DIR/python262/lib}
 	PATH=$SBS_HOME/$HOSTPLATFORM_DIR/python262/bin:$SBS_HOME/$HOSTPLATFORM_DIR/bin:$PATH
--- a/sbsv2/raptor/bin/sbs.bat	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/bin/sbs.bat	Sun Feb 28 21:19:57 2010 +0200
@@ -1,5 +1,5 @@
 @rem
-@rem Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+@rem Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
 @rem under the terms of the License "Eclipse Public License v1.0"
@@ -28,11 +28,27 @@
 @cd /d %WD%
 :foundhome 
 
-@REM Use the python set by the environment if possible
+@REM The python and PYTHONPATH used by Raptor are determined by, in order of precedence:
+@REM 1. the SBS_PYTHON and SBS_PYTHONPATH environment variables (if set)
+@REM 2. the python shipped locally with Raptor (if present)
+@REM 3. the python on the system PATH and the PYTHONPATH set in the system environment
+
+@SET __LOCAL_PYTHON__=%SBS_HOME%\win32\python264\python.exe
+@IF NOT "%SBS_PYTHON%"=="" GOTO sbspython
+@IF EXIST %__LOCAL_PYTHON__% GOTO localpython
+@SET __PYTHON__=python.exe
+@GOTO sbspythonpath
+
+:sbspython
 @SET __PYTHON__=%SBS_PYTHON%
-@IF "%__PYTHON__%"=="" SET __PYTHON__=%SBS_HOME%\win32\python264\python.exe
-@SET PYTHONPATH=%SBS_PYTHONPATH%
-@IF "%PYTHONPATH%"=="" SET PYTHONPATH=%SBS_HOME%\win32\python264
+@GOTO sbspythonpath
+
+:localpython
+@SET __PYTHON__=%__LOCAL_PYTHON__%
+@SET PYTHONPATH=
+
+:sbspythonpath
+@IF NOT "%SBS_PYTHONPATH%"=="" SET PYTHONPATH=%SBS_PYTHONPATH%
 
 @REM Use the mingw set by the environment if possible
 @SET __MINGW__=%SBS_MINGW%
--- a/sbsv2/raptor/lib/config/gcce.xml	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/lib/config/gcce.xml	Sun Feb 28 21:19:57 2010 +0200
@@ -5,101 +5,123 @@
 	<var name="gcce_base">
 		<set name="TOOLCHAIN" value="GCCE"/>
 		<set name="PLATMACROS.TOOLCHAIN" value="GCCE"/>
-		<set name="CC" value="$(GCCECC)"/>
-		<set name="LD" value="$(GCCELD)"/>
-		<set name="ASM" value="$(GCCEASM)"/>
-		<set name="AR" value="$(GCCEAR)"/>		
+
 		<set name="GCCECC" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)"/>
 		<set name="GCCELD" value="$(GCCEBIN)/arm-none-symbianelf-g++$(DOTEXE)"/>
 		<set name="GCCEASM" value="$(GCCEBIN)/arm-none-symbianelf-as$(DOTEXE)"/>
 		<set name="GCCEAR" value="$(GCCEBIN)/arm-none-symbianelf-ar$(DOTEXE)"/>
 		<set name="FROMELF" value="$(GCCEBIN)/arm-none-symbianelf-readelf$(DOTEXE)"/>
+
+		<set name="CC" value="$(GCCECC)"/>
+		<set name="LD" value="$(GCCELD)"/>
+		<set name="ASM" value="$(GCCEASM)"/>
+		<set name="AR" value="$(GCCEAR)"/>
+		
 		<set name="AAPCS_OPTION" value="-mapcs -mthumb-interwork"/>
 		<set name="ARCHIVER_CREATE_OPTION" value="cr"/>
 		<set name="ARM_INSTRUCTION_SET" value="-marm"/>
+		<set name="ARMLIBS" value=""/>
 		<set name="ASM_OUTPUT_OPTION" value="-o"/>
 		<set name="ASSEMBLER_LISTING_OPTION" value="-S"/>
 		<set name="BPABI_OPTION" value=""/>
-		<set name="CC_ERRORS_CONTROL_OPTION" value=""/>
-		<set name="CC_WARNINGS_CONTROL_OPTION" value="-Wall -Wno-unknown-pragmas"/>
 		<set name="C_LANG_OPTION" value="-x c"/>
-		<set name="COMMANDFILE_OPTION" value="@"/>
-		<set name="COMPILE_ONLY_OPTION" value="-c"/>
-		<set name="CPP_LANG_OPTION" value="-x c++ -Wno-ctor-dtor-privacy"/>
-		<set name="DEBUG_OPTIMISATION" value="-O0"/>
-		<set name="DEPEND_OPTION" value="-MD -MF"/>
-		<set name="ENUM_OPTION" value=""/>
-		<set name="EXPORT_VTBL_OPTION" value=""/>
-		<set name="EXTRA_LD_OPTION" value=""/>
-		<set name="FPMODE_OPTION" value=""/>
-		<set name="LD_ERRORS_CONTROL_OPTION" value=""/>
-		<set name="LD_WARNINGS_CONTROL_OPTION" value="-Wl,--no-undefined"/>
-		<set name="LISTING_OPTION" value="-S"/>
-		<set name="EXCEPTIONS" value="-fexceptions"/>
-		<set name="NO_EXCEPTIONS" value="-fno-exceptions"/>
-		<set name="PREINCLUDE_OPTION" value="-include"/>
-		<set name="PREPROCESSOR_OPTION" value="-E"/>
-		<set name="REL_OPTIMISATION" value="-O2"/>
-		<set name="STDLIB_OPTION" value="-nodefaultlibs"/>
-		<set name="RUNTIME_SYMBOL_VISIBILITY_OPTION" value=""/>
-		<set name="RW_BASE_OPTION" value="-Wl,-Tdata,"/>
-		<set name="RW_BASE" value="$(RW_BASE_OPTION)0x400000"/>
-		<set name="CODE_SEGMENT_START" value="-Ttext"/>
-		<set name="PREINCLUDE" value="$(EPOCINCLUDE)/gcce/gcce.h"/>
+		<set name="CC.ARMV5" value="-march=armv5t"/>
+		<set name="CC.ARMV6" value="-march=armv6t2"/>
+		<set name="CC.ARMV7" value="-march=armv7"/>
 		<!-- From the GCC manual: "With this option, GCC uses features of DWARF version 3 when they are useful; ..." -->
 		<!-- There is no -gdwarf-3 option; hence CC.DWARF2 and CC.DWARF3 have the same value. -->
 		<set name="CC.DWARF2" value="-gdwarf-2"/>
 		<set name="CC.DWARF3" value="-gdwarf-2"/>
-		<set name="LD.ARMV5" value=""/>
-		<set name="LD.ARMV6" value=""/>
-		<set name="LD.ARMV7" value=""/>
+		<set name="CC.NO_UNALIGNED_ACCESS" value=""/>
+		<set name="CC.SOFTVFP_MAYBE_VFPV2" value="soft"/>
+		<set name="CC.SOFTVFP_MAYBE_VFPV3" value="soft"/>
+		<set name="CC_ERRORS_CONTROL_OPTION" value=""/>
+		<set name="CC_WARNINGS_CONTROL_OPTION" value="-Wall -Wno-unknown-pragmas"/>
 		<set name="CFLAGS" value=""/>
 		<set name="CIADEFS" value="__CIA__"/>
-		<append name="CDEFS" value='__SUPPORT_CPP_EXCEPTIONS__ _UNICODE __SYMBIAN32__ __GCCE__ __EPOC32__ __MARM__ __EABI__ __PRODUCT_INCLUDE__="$(PRODUCT_INCLUDE)" $(MMPDEFS) $(ARMMACROS)'/>
-		<!-- Note that the intention of ABLD for CIA compilation seems to be "-S -Wa,-adln", although this doesn't work -->
+		<set name="CODE_SEGMENT_START" value="-Ttext"/>
+		<set name="COMMANDFILE_OPTION" value="@"/>
+		<set name="COMPILE_ONLY_OPTION" value="-c"/>
 		<set name="COMPILER_CIA_FLAGS" value="-marm"/>
 		<set name="COMPILER_DEFINES" value="-D__GCCE__"/>		
 		<set name="COMPILER_FPU_OPTION" value="-mfloat-abi="/>		
 		<set name="COMPILER_INTERWORK_DEFINES" value="__MARM_INTERWORK__"/>
 		<set name="COMPILER_SYSTEM_INCLUDE_OPTION" value="-I"/>
 		<set name="COMPILER_THUMB_DEFINES" value="__MARM_THUMB__"/>
+		<set name="CPP_LANG_OPTION" value="-x c++ -Wno-ctor-dtor-privacy"/>
 		<set name="DATA_SEGMENT_START" value="$(SPLIT_OPTION) $(RW_BASE_OPTION)"/>
+		<set name="DEBUG_OPTIMISATION" value="-O0"/>
+		<set name="DEPEND_OPTION" value="-MD -MF"/>
+		<set name="ENUM_OPTION" value=""/>
+		<set name="EXCEPTIONS" value="-fexceptions"/>
+		<set name="EXPORT_VTBL_OPTION" value=""/>
 		<set name="EXTRA_CC_OPTION" value=""/>
+		<set name="EXTRA_LD_OPTION" value=""/>
+		<set name="FPMODE_OPTION" value=""/>
 		<set name="HEADER_FILES_CONTROL_OPTION" value=""/>
+		<set name="INSTRUCTION_SET" value=""/>
+		<set name="KERNEL_STATIC_RUNTIME_LIB" value="ksrt3_1.lib"/>
+		<set name="LD.ARMV5" value=""/>
+		<set name="LD.ARMV6" value=""/>
+		<set name="LD.ARMV7" value=""/>
+		<set name="LD_ERRORS_CONTROL_OPTION" value=""/>
+		<set name="LD_WARNINGS_CONTROL_OPTION" value="-Wl,--no-undefined"/>
 		<set name="LIBPATH" value=""/>
 		<set name="LIBRARY" value=""/>
 		<set name="LICENSERETRY_OPTION" value=""/>
 		<set name="LINKER_ADD_STATIC_RUNTIME" value="1"/>
 		<set name="LINKER_DEBUG_OPTION" value=""/>
-		<!-- Clearly the linker libs stuff following isn't right - need to use ARMLIBS (or reinvent this a bit) -->
+		<set name="LINKER_DEFAULT_LIB_PATHS" value=""/>
 		<set name="LINKER_DEFAULT_LIBS" value="-lsupc++ -lgcc"/>
-		<set name="LINKER_DEFAULT_LIB_PATHS" value=""/>
 		<set name="LINKER_ENTRY_OPTION" value="-Wl,--entry"/>
+		<set name="LINKER_GROUP_END_OPTION" value="--end-group"/>
 		<set name="LINKER_GROUP_START_OPTION" value="--start-group"/>
-		<set name="LINKER_GROUP_END_OPTION" value="--end-group"/>
 		<set name="LINKER_MISC_FLAGS" value="-Wl,$(CODE_SEGMENT_START),0x8000"/>
 		<set name="LINKER_NODEBUG_OPTION" value = "-Wl,--strip-debug"/>
 		<set name="LINKER_SCRIPT_FILE_OPTION" value="-T"/>
+		<set name="LINKER_SYMBOLS_FILE_OPTION" value="-Wl,-Map"/>
 		<set name="LINKER_SYMBOLS_OPTION" value=""/>
-		<set name="LINKER_SYMBOLS_FILE_OPTION" value="-Wl,-Map"/>
+		<set name="LISTING_OPTION" value="-S"/>
+		<set name="NEED_ENTRYPOINT_LIBRARY" value="" />
+		<set name="NEED_ENTRYPOINT_LIBRARY" value=""/>
+		<set name="NO_EXCEPTIONS" value="-fno-exceptions"/>
+		<set name="NO_UNALIGNED_ACCESS" value="$(CC.NO_UNALIGNED_ACCESS)"/>
+		<set name="OWN_LIBRARY_OPTION" value=""/>
+		<set name="PL.SOFTVFP_MAYBE_VFPV2" value="softvfp"/>
+		<set name="PL.SOFTVFP_MAYBE_VFPV3" value="softvfp"/>
+		<set name="PREINCLUDE" value="$(EPOCINCLUDE)/gcce/gcce.h"/>
+		<set name="PREINCLUDE_OPTION" value="-include"/>
+		<set name="PREPROCESSOR_OPTION" value="-E"/>
+		<set name="REL_OPTIMISATION" value="-O2"/>
+		<set name="RELOCATABLE_IMAGE_OPTION" value=""/>
+		<set name="RUNTIME_SYMBOL_VISIBILITY_OPTION" value=""/>
+		<set name="RVCTBIN" value="" />
+		<set name="RVCTINC" value="" />
+		<set name="RVCTLIB" value=""/>
+		<set name="RW_BASE" value="$(RW_BASE_OPTION)0x400000"/>
+		<set name="RW_BASE_OPTION" value="-Wl,-Tdata,"/>
 		<set name="SHARED_OBJECT_OPTION" value="-Wl,-shared"/>
 		<set name="SID" value=""/>
 		<set name="SO_NAME_OPTION" value="-Wl,-soname"/>
+		<set name="SPLIT_OPTION" value=""/>
+		<set name="STATIC_LIBS_LIST" value=""/>
 		<set name="STATIC_LIBS_PATH" value="" />
 		<set name="STDCPP_INCLUDE" value="$(EPOCINCLUDE)/stdapis"/>
+		<set name="STDLIB_OPTION" value="-nodefaultlibs"/>
 		<set name="SUPPORTS_ABIV1_IMPLIBS" value=""/>	
 		<set name="SYMBIAN_LD_MESSAGE_OPTION" value="$(LD_WARNINGS_CONTROL_OPTION) $(LD_ERRORS_CONTROL_OPTION)"/>
+		<set name="SYMVER_OPTION" value="-Wl,--default-symver"/>
 		<set name="TARGET_RELOCATION_OPTION" value="--target1-rel" />
-		<set name="SYMVER_OPTION" value="-Wl,--default-symver"/>
 		<set name="TEMP_FILES_OPTION" value="-pipe"/>
 		<set name="THUMB_INSTRUCTION_SET" value="-mthumb"/>
 		<set name="TRANSFORM_CIA" value=""/>		
-		<set name="INSTRUCTION_SET" value=""/>
 		<set name="UNDEFINED_SYMBOL_REF_OPTION" value="-u"/>
 		<set name="UNRESOLVED_SYMBOL_REF_OPTION" value=""/>
+		<set name="USER_LIBS_PATH_OPTION" value="--userlibpath"/>
+		<set name="USER_STATIC_RUNTIME_LIB" value="usrt3_1.lib"/>
 		<set name="USERINCLUDE" value=""/>
-		<set name="USER_LIBS_PATH_OPTION" value="--userlibpath"/>
 		<set name="VFE_OPTION" value=""/>
-		<set name="NO_UNALIGNED_ACCESS" value="$(CC.NO_UNALIGNED_ACCESS)"/>
+
+		<append name="CDEFS" value='__SUPPORT_CPP_EXCEPTIONS__ _UNICODE __SYMBIAN32__ __GCCE__ __EPOC32__ __MARM__ __EABI__ __PRODUCT_INCLUDE__="$(PRODUCT_INCLUDE)" $(MMPDEFS) $(ARMMACROS)'/>
 	</var>
 </build>
--- a/sbsv2/raptor/lib/config/interfaces.xml	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/lib/config/interfaces.xml	Sun Feb 28 21:19:57 2010 +0200
@@ -5,7 +5,7 @@
 	<var name="default.interfaces">
 		<!-- interfaces corresponding to target types -->
 
-		<set name="INTERFACE_TYPES" value="exe stdexe ext_makefile dll stddll lib stdlib export extension ani plugin textnotifier2 implib var var2 exexp kexe kdll kext klib pdll ldd pdd pdl fsy resource none stringtable bitmap"/>
+		<set name="INTERFACE_TYPES" value="exe stdexe ext_makefile dll stddll lib stdlib export extension ani plugin plugin3 textnotifier2 implib var var2 exexp kexe kdll kext klib pdll ldd pdd pdl fsy resource none stringtable bitmap"/>
 		<set name="INTERFACE.exe" value="Symbian.exe"/>
 		<set name="INTERFACE.stdexe" value="Symbian.stdexe"/>
 		<set name="INTERFACE.stddll" value="Symbian.stddll"/>
@@ -15,6 +15,7 @@
 		<set name="INTERFACE.lib" value="Symbian.lib"/>
 		<set name="INTERFACE.ani" value="Symbian.ani"/>
 		<set name="INTERFACE.plugin" value="Symbian.plugin"/>
+		<set name="INTERFACE.plugin3" value="Symbian.plugin3"/>
 		<set name="INTERFACE.textnotifier2" value="Symbian.textnotifier2"/>
 		<set name="INTERFACE.implib" value="Symbian.implib"/>
 		<set name="INTERFACE.var" value="Symbian.var"/>
--- a/sbsv2/raptor/lib/config/variants.xml	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/lib/config/variants.xml	Sun Feb 28 21:19:57 2010 +0200
@@ -77,41 +77,24 @@
 	<var name="whatlog">
 		<set name='WHATLOG' value='TRUE'/>
 	</var>
-
+	
 	<var name="gcce4_3_2" extends="gcce_base">
 		<env name="SBS_GCCE432BIN" type="path" />
 		<set name="GCCEBIN" value="$(SBS_GCCE432BIN)" />
-		<set name="OWN_LIBRARY_OPTION" value=""/>
-		<set name="STATIC_LIBS_LIST" value=""/>
 		<set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso dfprvct3_1.dso drtrvct3_1.dso"/>
-		<set name="ARMLIBS" value=""/>
-		<set name="CC.SOFTVFP_MAYBE_VFPV2" value="soft"/>
-		<set name="PL.SOFTVFP_MAYBE_VFPV2" value="softvfp"/>
-		<set name="CC.SOFTVFP_MAYBE_VFPV3" value="soft"/>
-		<set name="PL.SOFTVFP_MAYBE_VFPV3" value="softvfp"/>
-		<set name="CC.ARMV5" value="-march=armv5t"/>
-		<set name="CC.ARMV6" value="-march=armv6t2"/>
-		<set name="CC.ARMV7" value="-march=armv7"/>
-		<set name="RELOCATABLE_IMAGE_OPTION" value=""/>
-		<set name="RVCTLIB" value=""/>
-		<set name="CC.NO_UNALIGNED_ACCESS" value=""/>
-		<set name="SPLIT_OPTION" value=""/>
-		<set name="NEED_ENTRYPOINT_LIBRARY" value=""/>
-		<set name="RVCTBIN" value="" />
-		<set name="RVCTINC" value="" />
-		<set name="USER_STATIC_RUNTIME_LIB" value="usrt3_1.lib"/>
-		<set name="KERNEL_STATIC_RUNTIME_LIB" value="ksrt3_1.lib"/>
-		<set name="NEED_ENTRYPOINT_LIBRARY" value="" />
 		<set name="PLATMACROS.VAR" value="GCCE_4 GCCE_4_3"/>
 		<set name="ARMMACROS.VAR" value="__GCCE_4__ __GCCE_4_3__"/>
 	</var>
 
-	<var name="gcce4_3_3" extends="gcce4_3_2">
+	<var name="gcce4_3_3" extends="gcce_base">
 		<env name="SBS_GCCE433BIN" type="path" />
 		<set name="GCCEBIN" value="$(SBS_GCCE433BIN)" />
+		<set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso dfprvct3_1.dso drtrvct3_1.dso"/>
+		<set name="PLATMACROS.VAR" value="GCCE_4 GCCE_4_3"/>
+		<set name="ARMMACROS.VAR" value="__GCCE_4__ __GCCE_4_3__"/>
 	</var>
 	
-	<var name="gcce4_4_1" extends="gcce4_3_3">
+	<var name="gcce4_4_1" extends="gcce_base">
 		<env name="SBS_GCCE441BIN" type="path" />
 		<set name="GCCEBIN" value="$(SBS_GCCE441BIN)" />
 		<set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso"/>
--- a/sbsv2/raptor/lib/config/winscw.xml	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/lib/config/winscw.xml	Sun Feb 28 21:19:57 2010 +0200
@@ -41,6 +41,7 @@
 		<set name="INTERFACE.pdd" value="Emulator.pdd"/>
 		<set name="INTERFACE.pdl" value="Emulator.pdl"/>
 		<set name="INTERFACE.plugin" value="Emulator.plugin"/>
+		<set name="INTERFACE.plugin3" value="Emulator.plugin3"/>
 		<set name="INTERFACE.resource" value="Emulator.resource"/>
 		<set name="INTERFACE.textnotifier2" value="Emulator.textnotifier2"/>
 		<set name="INTERFACE.var" value="Emulator.var"/>
--- a/sbsv2/raptor/lib/flm/bitmap.flm	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/lib/flm/bitmap.flm	Sun Feb 28 21:19:57 2010 +0200
@@ -1,4 +1,4 @@
-# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -118,54 +118,6 @@
 $(eval $(call copybitmap))
 endif
 
-################################### localisation #########################################
-## copy .bmp files to localisation
-
-# $(BMPFILES) is a list of bmp files in src
-BMPFILES:=$(subst FILE=,,$(filter FILE=%,$(SOURCE)))
-BMBASENAME:=$(call lowercase,$(basename $(BMTARGET)))
-BMPCOPYFILES:=
-BMPCOPYDIR:=$(EPOCROOT)/epoc32/localisation/$(BMBASENAME)/mbm
-$(call makepath,$(BMPCOPYDIR))
-
-define copyBMP
-# $(1) is the source .bmp file
-# $(2) is the (lower cased) copy in localisation 
-
-ifneq ($(BINCOPYDIRS),)
-BITMAP:: $(2)
-
-$(2): $(1)
-	$(call startrule,bmpfilecopy,FORCESUCCESS) \
-	$(GNUCP) $(1) $(2) && $(GNUCHMOD) +rw $(2) \
-	$(call endrule,bmpfilecopy)
-	
-endif
-
-BMPCOPYFILES:=$$(BMPCOPYFILES) $(2)
-endef
-
-$(foreach BMP,$(BMPFILES),$(eval $(call copyBMP,$(BMP),$(BMPCOPYDIR)/$(call lowercase,$(notdir $(BMP))))))
-
-## create and edit info files for bitmap files in localisation/group
-INFOFILE:=$(EPOCROOT)/epoc32/localisation/group/$(BMBASENAME).info
-DEPTH:=$(subst DEPTH=,,$(filter DEPTH=%,$(SOURCE)))
-BMP:=$(notdir $(BMPFILES))
-DEPTHBMP:=$(subst _,\,$(join $(patsubst %,/%,$(DEPTH)),$(patsubst %,_%,$(BMP))))
-
-define bmpInfo
-
-BITMAP::$(INFOFILE)
-
-$(INFOFILE)::
-	@if [ ! -d $(EPOCROOT)/epoc32/localisation/group ]; then $(GNUMKDIR) -p $(EPOCROOT)/epoc32/localisation/group; fi
-	@if [ ! -f $$@ ]; then echo "DATADIR: /$(BMBASENAME)" > $$@ ; fi
-	@echo -e "\n/z$(TARGETPATH)/$(BMTARGET) : $(DEPTHBMP)" >> $$@
-endef
-
-$(eval $(call bmpInfo))
-
-# end of localisation #########################################################
 
 ## Clean up
 $(call raptor_clean,$(CLEANTARGETS))
@@ -173,6 +125,6 @@
 $(call makepathfor,$(BITMAPHEADER))
 
 # for the abld -what target
-BMPRELEASEABLES:=$(RELEASEABLES) $(MBMCOPYFILES) $(BMPCOPYFILES) $(INFOFILE)
+BMPRELEASEABLES:=$(RELEASEABLES) $(MBMCOPYFILES)
 $(call raptor_release,$(BMPRELEASEABLES),BITMAP)
 
--- a/sbsv2/raptor/lib/flm/e32abiv2defaults.mk	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/lib/flm/e32abiv2defaults.mk	Sun Feb 28 21:19:57 2010 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -59,7 +59,7 @@
 	LINKER_ENTRYPOINT_ADORNMENT:=(uc_exe_.o)
   endif
 
-  ifeq ($(call isoneof,$(TARGETTYPE),ani textnotifier2 stddll plugin fsy pdl dll pdll),1)
+  ifeq ($(call isoneof,$(TARGETTYPE),ani textnotifier2 stddll plugin plugin3 fsy pdl dll pdll),1)
 	LINKER_ENTRYPOINT_ADORNMENT:=(uc_dll_.o)
   endif
 
--- a/sbsv2/raptor/lib/flm/e32abiv2plugin.flm	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/lib/flm/e32abiv2plugin.flm	Sun Feb 28 21:19:57 2010 +0200
@@ -16,7 +16,7 @@
 # 
 #
 
-ifeq ($(TARGETTYPE),plugin)
+ifneq ($(filter plugin plugin3,$(TARGETTYPE)),)
 include $(FLMHOME)/e32abiv2defaults.mk
 
 # Default Linker settings for this target type
@@ -50,6 +50,10 @@
 # We could check the UID rather than forcing it
 # but there seems to be no point in that.
 UID2:=10009D8D
+ifeq ($(TARGETTYPE),plugin3)
+UID2:=10009D93
+POSTLINKTARGETTYPE:=PLUGIN3
+endif
 
 
 RESOURCEPATH:=Resource/Plugins
@@ -64,5 +68,5 @@
 $(call vrestore)
 
 else
-$(error $e32abiv2plugin.flm called with wrong TARGETTYPE (should be 'plugin' but is '$(TARGETTYPE)'))
+$(error $e32abiv2plugin.flm called with wrong TARGETTYPE (should be 'plugin' or 'plugin3' but is '$(TARGETTYPE)'))
 endif
--- a/sbsv2/raptor/lib/flm/emulator.xml	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/lib/flm/emulator.xml	Sun Feb 28 21:19:57 2010 +0200
@@ -231,6 +231,9 @@
 	<interface name="Emulator.plugin" extends="Emulator.dll" flm="win32plugin.flm">
 	</interface>
 
+	<interface name="Emulator.plugin3" extends="Emulator.dll" flm="win32plugin.flm">
+	</interface>
+
 	<interface name="Emulator.textnotifier2" extends="Emulator.dll" flm="win32textnotifier2.flm">
 	</interface>
 
--- a/sbsv2/raptor/lib/flm/gccxml.flm	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/lib/flm/gccxml.flm	Sun Feb 28 21:19:57 2010 +0200
@@ -71,7 +71,7 @@
 # $(2) list of further variable arguments to group in 150 element calls
 define groupcallin50
 	$(if $2,$1 $(foreach L,$(wordlist 1,50,$2),$(L)),)
-	$(if $2,$(call groupcallin50,$1,$(wordlist 51,$(words $2),$2)),true)
+	$(if $2,$(call groupcallin50,$1,$(wordlist 51,$(words $2),$2)),@true)
 endef
 
 # echos content to a file in groups performing optional search/replace based on passed args
@@ -235,7 +235,7 @@
 # note: the main call here needs to reside outside of start/endrule in order to avoid command line length issues.
 define gccxmlpackage
   $(TEMPGXPARCHIVE): $(MMPXMLFILE) $(SRCXMLFILES) $(DEFFILE)
-	  $$(call groupcallin50,$(ZIP) -j $$@,$$^ $(RFIFILES)) ;
+	  $$(call groupcallin50,@$(ZIP) -j $$@ > /dev/null 2>&1,$$^ $(RFIFILES)) ;
 	  $(call startrule,gccxmlpackage) \
 	  $(GNURM) -f $(GXPARCHIVE) && \
 	  $(GNUCP) $$@ $(GXPARCHIVE) \
--- a/sbsv2/raptor/lib/flm/standard.xml	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/lib/flm/standard.xml	Sun Feb 28 21:19:57 2010 +0200
@@ -237,6 +237,8 @@
 	</interface>
 	<interface name="Symbian.plugin" extends="Symbian.dll" flm="e32abiv2plugin.flm">
 	</interface>
+	<interface name="Symbian.plugin3" extends="Symbian.dll" flm="e32abiv2plugin.flm">
+	</interface>
 	<interface name="Symbian.textnotifier2" extends="Symbian.dll" flm="e32abiv2textnotifier2.flm">
 	</interface>
 	<interface name="Symbian.implib" extends="Symbian.dll" flm="e32abiv2implib.flm">
--- a/sbsv2/raptor/lib/flm/win32plugin.flm	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/lib/flm/win32plugin.flm	Sun Feb 28 21:19:57 2010 +0200
@@ -1,4 +1,4 @@
-# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -16,19 +16,22 @@
 # 
 #
 
-ifeq ($(TARGETTYPE),plugin)
-
+ifneq ($(filter plugin plugin3,$(TARGETTYPE)),)
 BASE_TYPE:=dll
 CW_STATIC_RUNTIME:=1
 FIRST_STATLIB:=
 FIXED_EXPORT:=?ImplementationGroupProxy@@YAPBUTImplementationProxy@@AAH@Z
 SUPPORTS_IMPORT_LIBRARY:=0
 SYSTEM_TARGET:=0
+
 UID2_DEFAULT:=10009D8D
+ifeq ($(TARGETTYPE),plugin3)
+UID2_DEFAULT:=10009D93
+endif
 
 # Use the general win32 FLM 
 include $(FLMHOME)/win32.flm
 
 else
-$(error $win32plugin.flm called with wrong TARGETTYPE (should be 'plugin' but is '$(TARGETTYPE)'))
+$(error $win32plugin.flm called with wrong TARGETTYPE (should be 'plugin' or 'plugin3' but is '$(TARGETTYPE)'))
 endif
--- a/sbsv2/raptor/python/plugins/filter_terminal.py	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/python/plugins/filter_terminal.py	Sun Feb 28 21:19:57 2010 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
--- a/sbsv2/raptor/python/raptor.py	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/python/raptor.py	Sun Feb 28 21:19:57 2010 +0200
@@ -238,7 +238,7 @@
 class Component(ModelNode):
 	"""A group of projects or, in symbian-speak, a bld.inf.
 	"""
-	def __init__(self, filename):
+	def __init__(self, filename, layername="", componentname=""):
 		super(Component,self).__init__(filename)
 		# Assume that components are specified in bld.inf files for now
 		# One day that tyranny might end.
@@ -249,21 +249,34 @@
 		self.exportspecs = []
 		self.depfiles = []
 		self.unfurled = False # We can parse this
+		
+		# Extra metadata optionally supplied with system definition file gathered components
+		self.layername = layername
+		self.componentname = componentname
 
 	def AddMMP(self, filename):
 		self.children.add(Project(filename))
 
 
 class Layer(ModelNode):
-	""" 	Some components that should be built togther
+	""" Some components that should be built togther
 		e.g. a Layer in the system definition.
+		
+		Components that come from system definition files can
+		have extra surrounding metadata that we need to pass
+		on for use in log output.
 	"""
 	def __init__(self, name, componentlist=[]):
 		super(Layer,self).__init__(name)
 		self.name = name
 
 		for c in componentlist:
-			self.children.add(Component(c))
+			if isinstance(c, raptor_xml.SystemModelComponent):
+				# this component came from a system_definition.xml
+				self.children.add(Component(c, c.GetContainerName("layer"), c.GetContainerName("component")))
+			else:
+				# this is a plain old bld.inf file from the command-line
+				self.children.add(Component(c))
 
 	def unfurl(self, build):
 		"""Discover the children of this layer. This involves parsing the component MetaData (bld.infs, mmps).
--- a/sbsv2/raptor/python/raptor_meta.py	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/python/raptor_meta.py	Sun Feb 28 21:19:57 2010 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -2177,6 +2177,9 @@
 		self.BuildVariant.AddOperation(raptor_data.Set("DEFFILEKEYWORD", deffile_keyword))
 		self.__debug("Set DEFFILEKEYWORD to '%s'",deffile_keyword)
 
+		# If target type is "implib" it must have a def file
+		self.checkImplibDefFile(resolvedDefFile)
+
 		# if this target type has a default TARGETPATH other than "" for
 		# resources then we need to add that default to all resources which
 		# do not explicitly set the TARGETPATH themselves.
@@ -2268,6 +2271,14 @@
 		"""Target type in lower case - the standard format"""
 		return self.__targettype.lower()
 
+	def checkImplibDefFile(self, defFile):
+		"""Project with target type implib must have DEFFILE defined 
+		explicitly or implicitly, otherwise it is an error
+		""" 
+		if self.getTargetType() == 'implib' and defFile == '':
+			self.__Raptor.Error("No DEF File for IMPLIB target type in " + \
+							self.__currentMmpFile, bldinf=self.__bldInfFilename)
+
 	def resolveDefFile(self, aTARGET, aBuildPlatform):
 		"""Returns a fully resolved DEFFILE entry depending on .mmp file location and TARGET, DEFFILE and NOSTRICTDEF
 		entries in the .mmp file itself (where appropriate).
@@ -2675,15 +2686,6 @@
 
 		specName = getSpecName(component.bldinf_filename, fullPath=True)
 
-		if isinstance(component.bldinf, raptor_xml.SystemModelComponent):
-			# this component came from a system_definition.xml
-			layer = component.bldinf.GetContainerName("layer")
-			componentName = component.bldinf.GetContainerName("component")
-		else:
-			# this is a plain old bld.inf file from the command-line
-			layer = ""
-			componentName = ""
-
 		# exports are independent of build platform
 		for i,ep in enumerate(self.ExportPlatforms):
 			specNode = raptor_data.Specification(name = specName)
@@ -2694,8 +2696,8 @@
 			# add some basic data in a component-wide variant
 			var = raptor_data.Variant(name='component-wide')
 			var.AddOperation(raptor_data.Set("COMPONENT_META", str(component.bldinf_filename)))
-			var.AddOperation(raptor_data.Set("COMPONENT_NAME", componentName))
-			var.AddOperation(raptor_data.Set("COMPONENT_LAYER", layer))
+			var.AddOperation(raptor_data.Set("COMPONENT_NAME", component.componentname))
+			var.AddOperation(raptor_data.Set("COMPONENT_LAYER", component.layername))
 			specNode.AddVariant(var)
 
 			# add this bld.inf Specification to the export platform
@@ -2726,8 +2728,8 @@
 				# add some basic data in a component-wide variant
 				var = raptor_data.Variant(name='component-wide-settings-' + plat)
 				var.AddOperation(raptor_data.Set("COMPONENT_META",str(component.bldinf_filename)))
-				var.AddOperation(raptor_data.Set("COMPONENT_NAME", componentName))
-				var.AddOperation(raptor_data.Set("COMPONENT_LAYER", layer))
+				var.AddOperation(raptor_data.Set("COMPONENT_NAME", component.componentname))
+				var.AddOperation(raptor_data.Set("COMPONENT_LAYER", component.layername))
 				var.AddOperation(raptor_data.Set("MODULE", modulename))
 				var.AddOperation(raptor_data.Append("OUTPUTPATHOFFSET", outputDir, '/'))
 				var.AddOperation(raptor_data.Append("OUTPUTPATH", outputDir, '/'))
--- a/sbsv2/raptor/schema/build/log/1_0.xsd	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/schema/build/log/1_0.xsd	Sun Feb 28 21:19:57 2010 +0200
@@ -3,7 +3,7 @@
 
 	<xsd:annotation>
 		<xsd:documentation xml:lang="en">
-			Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+			Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 			All rights reserved.
 			This component and the accompanying materials are made available
 			uunder the terms of the License "Eclipse Public License v1.0"
@@ -60,7 +60,8 @@
 					<xsd:attribute name="name" type="xsd:string"/>
 					<xsd:attribute name="project" type="xsd:string"/>
 					<xsd:attribute name="component" type="xsd:string"/>
-					<xsd:attribute name="forcesuccess" type="xsd:string"/>
+					<xsd:attribute name="flags" type="xsd:string"/>
+					<xsd:attribute name="reason" type="xsd:string"/>
 				</xsd:complexType>
 			</xsd:element>
 		</xsd:sequence>
--- a/sbsv2/raptor/test/smoke_suite/bitmap.py	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/test/smoke_suite/bitmap.py	Sun Feb 28 21:19:57 2010 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2000-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -26,13 +26,6 @@
 	t.targets = [
 		"$(EPOCROOT)/epoc32/include/testbitmap.mbg",
 		"$(EPOCROOT)/epoc32/data/z/resource/apps/testbitmap.mBm",
-		"$(EPOCROOT)/epoc32/localisation/group/testbitmap.info",
-		"$(EPOCROOT)/epoc32/localisation/testbitmap/mbm/def2m.bmp",
-		"$(EPOCROOT)/epoc32/localisation/testbitmap/mbm/def3m.bmp",
-		"$(EPOCROOT)/epoc32/localisation/testbitmap/mbm/def4m.bmp",
-		"$(EPOCROOT)/epoc32/localisation/testbitmap/mbm/def24.bmp",
-		"$(EPOCROOT)/epoc32/localisation/testbitmap/mbm/def32.bmp",
-		"$(EPOCROOT)/epoc32/localisation/testbitmap/mbm/def48.bmp",
 		"$(EPOCROOT)/epoc32/tools/makefile_templates/test/mifconv.xml",
 		"$(EPOCROOT)/epoc32/tools/makefile_templates/test/mifconv.flm"
 		]
--- a/sbsv2/raptor/test/smoke_suite/gui_whatlog.py	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/test/smoke_suite/gui_whatlog.py	Sun Feb 28 21:19:57 2010 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -30,12 +30,6 @@
 	t.usebash = True
 	t.targets = [
 		"$(EPOCROOT)/epoc32/data/z/resource/apps/helloworld.mbm",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon24.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon2m.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon32.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon3m.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon48.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon4m.bmp",
 		"$(EPOCROOT)/epoc32/localisation/group/helloworld.info",
 		"$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/helloworld.mbm",
 		"$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/helloworld.mbm",
@@ -122,13 +116,6 @@
 	t.stdout = [
 		"<whatlog bldinf='"+componentpath+"/Bld.inf' mmp='"+componentpath+"/HelloWorld.mmp' config='armv5_udeb.whatlog'>",
 		"<bitmap>$(EPOCROOT)/epoc32/data/z/resource/apps/helloworld.mbm</bitmap>",
-		"<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon24.bmp</bitmap>",
-		"<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon2m.bmp</bitmap>",
-		"<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon32.bmp</bitmap>",
-		"<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon3m.bmp</bitmap>",
-		"<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon48.bmp</bitmap>",
-		"<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon4m.bmp</bitmap>",
-		"<bitmap>$(EPOCROOT)/epoc32/localisation/group/helloworld.info</bitmap>",
 		"<resource>$(EPOCROOT)/epoc32/include/helloworld.rsg</resource>",
 		"<resource>$(EPOCROOT)/epoc32/data/z/resource/apps/helloworld.rsc</resource>",
 		"<resource>$(EPOCROOT)/epoc32/localisation/helloworld/rsc/helloworld.rpp</resource>",
@@ -142,13 +129,6 @@
 		"<bitmap>$(EPOCROOT)/epoc32/data/z/resource/apps/helloworld.mbm</bitmap>",
 		"<bitmap>$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/helloworld.mbm</bitmap>",
 		"<bitmap>$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/helloworld.mbm</bitmap>",
-		"<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon24.bmp</bitmap>",
-		"<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon2m.bmp</bitmap>",
-		"<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon32.bmp</bitmap>",
-		"<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon3m.bmp</bitmap>",
-		"<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon48.bmp</bitmap>",
-		"<bitmap>$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon4m.bmp</bitmap>",
-		"<bitmap>$(EPOCROOT)/epoc32/localisation/group/helloworld.info</bitmap>",
 		"<resource>$(EPOCROOT)/epoc32/include/helloworld.rsg</resource>",
 		"<resource>$(EPOCROOT)/epoc32/data/z/resource/apps/helloworld.rsc</resource>",
 		"<resource>$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/helloworld.rsc</resource>",
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/implib_nodef.py	Sun Feb 28 21:19:57 2010 +0200
@@ -0,0 +1,55 @@
+#
+# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of the License "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description: 
+#
+
+from raptor_tests import SmokeTest
+
+def run():
+	t = SmokeTest()
+	
+	t.id = "71a"
+	t.name = "implib_implicit_def"
+	t.command = "sbs -b smoke_suite/test_resources/simple_implib/nodef/group/bld.inf" \
+			+ " -p implib_implicit_def.mmp"
+	t.targets = [
+		"$(EPOCROOT)/epoc32/release/armv5/lib/implib_implicit_def.dso",
+		"$(EPOCROOT)/epoc32/release/armv5/lib/implib_implicit_def{000a0000}.dso",
+		"$(EPOCROOT)/epoc32/release/winscw/udeb/implib_implicit_def.lib"
+		]
+	t.run("linux")
+	if t.result == SmokeTest.SKIP:
+		t.targets.extend([
+			"$(EPOCROOT)/epoc32/release/armv5/lib/implib_implicit_def.lib",
+			"$(EPOCROOT)/epoc32/release/armv5/lib/implib_implicit_def{000a0000}.lib"
+			])
+		t.run("windows")
+
+	t.id = "71b"
+	t.name = "implib_no_def"
+	t.command = "sbs -b smoke_suite/test_resources/simple_implib/nodef/group/bld.inf" \
+			+ " -p implib_no_def.mmp"
+	t.targets = []
+	t.mustmatch = [
+		"No DEF File for IMPLIB target type in"	
+		]
+	t.errors = 2 # 1 for winscw and 1 for armv5
+	t.returncode = 1
+	t.run()
+
+	t.id = "71"
+	t.name = "implib_nodef"
+	t.print_result()
+
+	return t
--- a/sbsv2/raptor/test/smoke_suite/plugin_armv5_winscw_freeze.py	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/test/smoke_suite/plugin_armv5_winscw_freeze.py	Sun Feb 28 21:19:57 2010 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -20,15 +20,16 @@
 	t = SmokeTest()
 	t.id = "90"
 	t.name = "plugin_armv5_winscw_freeze"
-	t.description = """Builds two PLUGIN components, one with and one without an explicit DEFFILE statement,
-		and confirms the correct FREEZE behaviour in each case.  The correct behaviour for a PLUGIN is indicative
-		of all TARGETTYPEs where the build system defines known exports: FREEZE should do nothing unless an
-		explicit DEFFILE statement is present in the .mmp file."""
+	t.description = """Builds several ECOM plugins, with and without explicit DEFFILE statements, confirming
+		the correct FREEZE behaviour in each case.  The correct behaviour for a PLUGIN/PLUGIN3 is
+		indicative of all TARGETTYPEs where the build system defines known exports: FREEZE should do nothing
+		unless an explicit DEFFILE statement is present in the .mmp file.
+		Also confirms default UID2 settings for PLUGIN3 TARGETTYPEs."""
 	t.usebash = True
 	
 	t.command = """
 		sbs -b smoke_suite/test_resources/simple_plugin/bld.inf -c armv5_urel -c winscw_urel CLEAN > /dev/null &&
-		sbs -b smoke_suite/test_resources/simple_plugin/bld.inf -c armv5_urel -c winscw_urel > /dev/null &&
+		sbs -f- -b smoke_suite/test_resources/simple_plugin/bld.inf -c armv5_urel -c winscw_urel &&
 		sbs -b smoke_suite/test_resources/simple_plugin/bld.inf -c armv5_urel -c winscw_urel FREEZE -m ${SBSMAKEFILE} -f ${SBSLOGFILE}"""
 
 	t.targets = [
@@ -43,7 +44,10 @@
 	
 	t.mustmatch = [
 		".*EFREEZE: Appending 3 New Export\(s\) to .*/test/smoke_suite/test_resources/simple_plugin/eabi/plugin2u.def.*",
-		".*EFREEZE: Appending 1 New Export\(s\) to .*/test/smoke_suite/test_resources/simple_plugin/bwins/plugin2u.def.*"
+		".*EFREEZE: Appending 1 New Export\(s\) to .*/test/smoke_suite/test_resources/simple_plugin/bwins/plugin2u.def.*",
+		".*__EMULATOR_IMAGE_HEADER2\(0x10000079,0x10009D93,0x00000000.*",
+		".*elf2e32.*--targettype=PLUGIN3.*--output=.*plugin3.dll.*--uid2=0x10009D93.*"
+		
 		]
 
 	t.mustnotmatch = [
@@ -51,6 +55,6 @@
 		".*EFREEZE: .*/test/smoke_suite/test_resources/simple_plugin/bwins/pluginu.def.*"
 		]
 	
-	t.warnings = 2	
+	t.warnings = 4	
 	t.run()
 	return t
--- a/sbsv2/raptor/test/smoke_suite/resource.py	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/test/smoke_suite/resource.py	Sun Feb 28 21:19:57 2010 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -30,12 +30,6 @@
 		"$(EPOCROOT)/epoc32/localisation/testresource/rsc/testresource.rpp",
 		
 		"$(EPOCROOT)/epoc32/data/z/resource/apps/helloworld.mbm",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon24.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon2m.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon32.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon3m.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon48.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon4m.bmp",
 		"$(EPOCROOT)/epoc32/localisation/group/helloworld.info",
 		"$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/helloworld.mbm",
 		"$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/helloworld.mbm",
--- a/sbsv2/raptor/test/smoke_suite/sysdef_layers.py	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/test/smoke_suite/sysdef_layers.py	Sun Feb 28 21:19:57 2010 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -20,11 +20,10 @@
 	t = SmokeTest()
 	t.id = "48"
 	t.name = "sysdef_layers"
-	t.description = "Test system_definition.xml layer processing"
-	t.command = 'sbs -s ' + \
-			'smoke_suite/test_resources/sysdef/system_definition_order_layer_test.xml' + \
-			' -l "Metadata Export" -l "Build Generated Source" -l ' + \
-			'"Component with Layer Dependencies" -o'
+	t.usebash = True
+	t.description = "Test system_definition.xml layer processing and log reporting"
+	t.command = 'sbs -f- -s smoke_suite/test_resources/sysdef/system_definition_order_layer_test.xml ' + \
+			'-l "Metadata Export" -l "Build Generated Source" -l "Component with Layer Dependencies" -o'
 	t.targets = [
 		"$(SBS_HOME)/test/smoke_suite/test_resources/sysdef/build_gen_source/exported.inf",
 		"$(SBS_HOME)/test/smoke_suite/test_resources/sysdef/build_gen_source/exported.mmh",
@@ -49,12 +48,6 @@
 		"$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/helloworld.rsc",
 		"$(EPOCROOT)/epoc32/localisation/group/helloworld.info",
 		"$(EPOCROOT)/epoc32/localisation/helloworld/rsc/helloworld.rpp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon2m.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon3m.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon4m.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon24.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon32.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon48.bmp",
 		"$(EPOCROOT)/epoc32/localisation/group/helloworld_reg.info",
 		"$(EPOCROOT)/epoc32/localisation/helloworld_reg/rsc/helloworld_reg.rpp"
 		]
@@ -88,5 +81,9 @@
 		"helloworld_exe/winscw/urel/helloworld_UID_.o",
 		"helloworld_reg_exe/helloworld_reg__private_10003a3f_apps_sc.rpp"
 		])
+	t.countmatch = [
+		["<recipe .*layer='Component with Layer Dependencies' component='dependent'.*>", 37],
+		["<recipe .*layer='Build Generated Source' component='build generated source'.*>", 7]		
+		]
 	t.run()
 	return t
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/simple_implib/nodef/bwins/implib_implicit_def.def	Sun Feb 28 21:19:57 2010 +0200
@@ -0,0 +1,5 @@
+EXPORTS
+; NEW:
+	?NewLC@CMessenger@@SAPAV1@AAVCConsoleBase@@ABVTDesC16@@@Z @ 1 NONAME ; public: static class CMessenger * __cdecl CMessenger::NewLC(class CConsoleBase &,class TDesC16 const &)
+	?ShowMessage@CMessenger@@QAEXXZ @ 2 NONAME ; public: void __thiscall CMessenger::ShowMessage(void)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/simple_implib/nodef/eabi/implib_implicit_def.def	Sun Feb 28 21:19:57 2010 +0200
@@ -0,0 +1,6 @@
+EXPORTS
+	_ZN10CMessenger11ShowMessageEv @ 1 NONAME
+	_ZN10CMessenger5NewLCER12CConsoleBaseRK7TDesC16 @ 2 NONAME
+	_ZTI10CMessenger @ 3 NONAME ; #<TI>#
+	_ZTV10CMessenger @ 4 NONAME ; #<VT>#
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/simple_implib/nodef/group/bld.inf	Sun Feb 28 21:19:57 2010 +0200
@@ -0,0 +1,24 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+
+PRJ_PLATFORMS
+WINSCW ARMV5 ARMV5SMP
+
+PRJ_MMPFILES
+implib_no_def.mmp
+implib_implicit_def.mmp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/simple_implib/nodef/group/implib_implicit_def.mmp	Sun Feb 28 21:19:57 2010 +0200
@@ -0,0 +1,23 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+
+TARGET        implib_implicit_def.lib
+TARGETTYPE    implib
+  
+NOSTRICTDEF
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/simple_implib/nodef/group/implib_no_def.mmp	Sun Feb 28 21:19:57 2010 +0200
@@ -0,0 +1,23 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+
+TARGET        implib_no_def.lib
+TARGETTYPE    implib
+
+NOSTRICTDEF
+
--- a/sbsv2/raptor/test/smoke_suite/test_resources/simple_plugin/bld.inf	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/simple_plugin/bld.inf	Sun Feb 28 21:19:57 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -18,3 +18,4 @@
 PRJ_MMPFILES
 plugin.mmp
 plugin_with_deffile.mmp
+plugin3.mmp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/simple_plugin/plugin3.mmp	Sun Feb 28 21:19:57 2010 +0200
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+* Example ECOMP plugin3 component, with no UID listed
+*
+*/
+
+
+
+TARGET			plugin3.dll
+TARGETTYPE		plugin3
+CAPABILITY		Protserv
+VENDORID		0x70000001
+SOURCEPATH		.
+SOURCE			plugin.cpp
+SYSTEMINCLUDE 	/epoc32/include
+SYSTEMINCLUDE 	/epoc32/include/ecom 
+LIBRARY			euser.lib apmime.lib efsrv.lib
--- a/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/TC_featurevariant/group/HelloWorld.mmp	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/TC_featurevariant/group/HelloWorld.mmp	Sun Feb 28 21:19:57 2010 +0200
@@ -14,7 +14,7 @@
 USERINCLUDE	..\inc  
 USERINCLUDE	..\traces
 SYSTEMINCLUDE	\epoc32\include
-SYSTEMINCLUDE	\epoc32\include\internal
+SYSTEMINCLUDE	\epoc32\include\platform
 
 SOURCEPATH	..\src
 SOURCE		HelloWorld.cpp
--- a/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/TC_featurevariant/traces/OstTraceDefinitions.h	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/TC_featurevariant/traces/OstTraceDefinitions.h	Sun Feb 28 21:19:57 2010 +0200
@@ -1,7 +1,7 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-// #define OST_TRACE_COMPILER_IN_USE
-#include <OpenSystemTrace.h>
-#endif
+#ifndef __OSTTRACEDEFINITIONS_H__
+#define __OSTTRACEDEFINITIONS_H__
+// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
+// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
+#define OST_TRACE_COMPILER_IN_USE
+#include <opensystemtrace.h>
+#endif
--- a/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/TC_winscw/tcwinsStaticDLL.mmp	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/TC_winscw/tcwinsStaticDLL.mmp	Sun Feb 28 21:19:57 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2000-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2000-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -30,7 +30,7 @@
 
 USERINCLUDE   .
 SYSTEMINCLUDE /epoc32/include
-SYSTEMINCLUDE /epoc32/include/internal
+SYSTEMINCLUDE /epoc32/include/platform
 USERINCLUDE traces
 
 LIBRARY       euser.lib
--- a/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/TC_winscw/traces/OstTraceDefinitions.h	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/TC_winscw/traces/OstTraceDefinitions.h	Sun Feb 28 21:19:57 2010 +0200
@@ -3,5 +3,5 @@
 // OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
 // REMOVE BEFORE CHECK-IN TO VERSION CONTROL
 #define OST_TRACE_COMPILER_IN_USE
-#include <OpenSystemTrace.h>
+#include <opensystemtrace.h>
 #endif
--- a/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/multiple_variants/group/tc_variants.mmp	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/multiple_variants/group/tc_variants.mmp	Sun Feb 28 21:19:57 2010 +0200
@@ -5,7 +5,7 @@
 UID			0x100039ce 0x10000004
 LIBRARY			euser.lib
 SYSTEMINCLUDE		/epoc32/include
-SYSTEMINCLUDE		/epoc32/include/internal
+SYSTEMINCLUDE		/epoc32/include/platform
 
 SOURCEPATH		../src
 SOURCE			tc_main.cpp
--- a/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/multiple_variants/traces/OstTraceDefinitions.h	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/multiple_variants/traces/OstTraceDefinitions.h	Sun Feb 28 21:19:57 2010 +0200
@@ -1,7 +1,7 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-// #define OST_TRACE_COMPILER_IN_USE
-#include <OpenSystemTrace.h>
-#endif
+#ifndef __OSTTRACEDEFINITIONS_H__
+#define __OSTTRACEDEFINITIONS_H__
+// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
+// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
+#define OST_TRACE_COMPILER_IN_USE
+#include <opensystemtrace.h>
+#endif
--- a/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/group/child1.mmp	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/group/child1.mmp	Sun Feb 28 21:19:57 2010 +0200
@@ -5,7 +5,7 @@
 UID			0x100039ce 0x11100001
 LIBRARY			euser.lib
 SYSTEMINCLUDE		/epoc32/include
-SYSTEMINCLUDE		/epoc32/include/internal
+SYSTEMINCLUDE		/epoc32/include/platform
 
 SOURCEPATH		../src
 SOURCE			child1.cpp
--- a/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/group/child2.mmp	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/group/child2.mmp	Sun Feb 28 21:19:57 2010 +0200
@@ -5,7 +5,7 @@
 UID			0x100039ce 0x11100002
 LIBRARY			euser.lib
 SYSTEMINCLUDE		/epoc32/include
-SYSTEMINCLUDE		/epoc32/include/internal
+SYSTEMINCLUDE		/epoc32/include/platform
 
 SOURCEPATH		../src
 SOURCE			child2.cpp
--- a/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/group/child3.mmp	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/group/child3.mmp	Sun Feb 28 21:19:57 2010 +0200
@@ -4,7 +4,7 @@
 UID			0x100039ce 0x11100002
 LIBRARY			euser.lib
 SYSTEMINCLUDE		/epoc32/include
-SYSTEMINCLUDE		/epoc32/include/internal
+SYSTEMINCLUDE		/epoc32/include/platform
 
 SOURCEPATH		../src
 SOURCE			child3.cpp
--- a/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/traces_child1_exe/OstTraceDefinitions.h	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/traces_child1_exe/OstTraceDefinitions.h	Sun Feb 28 21:19:57 2010 +0200
@@ -1,7 +1,7 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-// #define OST_TRACE_COMPILER_IN_USE
-#include <OpenSystemTrace.h>
-#endif
+#ifndef __OSTTRACEDEFINITIONS_H__
+#define __OSTTRACEDEFINITIONS_H__
+// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
+// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
+#define OST_TRACE_COMPILER_IN_USE
+#include <opensystemtrace.h>
+#endif
--- a/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/traces_child2_exe/OstTraceDefinitions.h	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/traces_child2_exe/OstTraceDefinitions.h	Sun Feb 28 21:19:57 2010 +0200
@@ -1,7 +1,7 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-// #define OST_TRACE_COMPILER_IN_USE
-#include <OpenSystemTrace.h>
-#endif
+#ifndef __OSTTRACEDEFINITIONS_H__
+#define __OSTTRACEDEFINITIONS_H__
+// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
+// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
+#define OST_TRACE_COMPILER_IN_USE
+#include <opensystemtrace.h>
+#endif
--- a/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/traces_child3_exe/OstTraceDefinitions.h	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/mum_children_mmps/traces_child3_exe/OstTraceDefinitions.h	Sun Feb 28 21:19:57 2010 +0200
@@ -1,7 +1,7 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-// #define OST_TRACE_COMPILER_IN_USE
-#include <OpenSystemTrace.h>
-#endif
+#ifndef __OSTTRACEDEFINITIONS_H__
+#define __OSTTRACEDEFINITIONS_H__
+// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
+// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
+#define OST_TRACE_COMPILER_IN_USE
+#include <opensystemtrace.h>
+#endif
--- a/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/testTC/group/testTC.mmp	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/testTC/group/testTC.mmp	Sun Feb 28 21:19:57 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -36,6 +36,7 @@
 OS_LAYER_SYSTEMINCLUDE
 SYSTEMINCLUDE   /epoc32/include/libc
 SYSTEMINCLUDE   /epoc32/include/internal
+SYSTEMINCLUDE   /epoc32/include/platform
 
 LIBRARY         euser.lib
 LIBRARY		iscapi.lib
--- a/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/testTC/src/wlanhwinit.cpp	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/testTC/src/wlanhwinit.cpp	Sun Feb 28 21:19:57 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2006 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -43,7 +43,7 @@
 
 EXPORT_C CWlanHwInit* CWlanHwInit::NewL()
     {
-    OstTrace0( TRACE_API, CWLANHWINIT_NEWL, "CWlanHwInit::NewL()" );
+    OstTrace0( TRACE_BORDER, CWLANHWINIT_NEWL, "CWlanHwInit::NewL()" );
     OstTrace0( TRACE_NORMAL, DUP1_CWLANHWINIT_NEWL, "CWlanHwInit::NewL()" );  
     CWlanHwInit* self = new( ELeave ) CWlanHwInit;
     CleanupStack::PushL( self );
@@ -55,7 +55,7 @@
 EXPORT_C CWlanHwInit::~CWlanHwInit()
     {
     TraceDump( INFO_LEVEL, ( _L( "CWlanHwInit::~CWlanHwInit()" ) ) );
-    OstTrace0( TRACE_API, DUP1_CWLANHWINIT_CWLANHWINIT, "CWlanHwInit::~CWlanHwInit()" );
+    OstTrace0( TRACE_BORDER, DUP1_CWLANHWINIT_CWLANHWINIT, "CWlanHwInit::~CWlanHwInit()" );
     OstTrace0( TRACE_NORMAL, DUP2_CWLANHWINIT_CWLANHWINIT, "CWlanHwInit::~CWlanHwInit()" );  
     delete iMain;
     iMain = NULL;
@@ -72,7 +72,7 @@
     TUint& aFwLength )
     {
     TraceDump( INFO_LEVEL, ( _L( "CWlanHwInit::GetHwInitData()" ) ) );
-    OstTrace0( TRACE_API, DUP1_CWLANHWINIT_GETHWINITDATA, "CWlanHwInit::GetHwInitData()" );
+    OstTrace0( TRACE_BORDER, DUP1_CWLANHWINIT_GETHWINITDATA, "CWlanHwInit::GetHwInitData()" );
     OstTrace0( TRACE_NORMAL, CWLANHWINIT_GETHWINITDATA, "CWlanHwInit::GetHwInitData()" );
     
     //BOB10d initialization data block is in one piece (NVS + FW)
@@ -97,7 +97,7 @@
     TMacAddr& aMacAddress )
     {
     TraceDump( INFO_LEVEL, ( _L( "CWlanHwInit::GetMacAddress()" ) ) );
-    OstTrace0( TRACE_API, CWLANHWINIT_GETMACADDRESS, "CWlanHwInit::GetMacAddress()" );
+    OstTrace0( TRACE_BORDER, CWLANHWINIT_GETMACADDRESS, "CWlanHwInit::GetMacAddress()" );
     OstTrace0( TRACE_NORMAL, DUP1_CWLANHWINIT_GETMACADDRESS, "CWlanHwInit::GetMacAddress()" ); 
     return iMain->GetMacAddress( aMacAddress );
     }
@@ -113,7 +113,7 @@
     TUint& aFwLength )
     {
     TraceDump( INFO_LEVEL, ( _L( "CWlanHwInit::GetHwTestInitData()" ) ) );
-    OstTrace0( TRACE_API, CWLANHWINIT_GETHWTESTINITDATA, "CWlanHwInit::GetHwTestInitData()" );
+    OstTrace0( TRACE_BORDER, CWLANHWINIT_GETHWTESTINITDATA, "CWlanHwInit::GetHwTestInitData()" );
     OstTrace0( TRACE_NORMAL, DUP1_CWLANHWINIT_GETHWTESTINITDATA, "CWlanHwInit::GetHwTestInitData()" );
     
     //BOB10d initialization data block is in one piece (NVS + FW)
@@ -139,7 +139,7 @@
     TDes8& aData )
     {
     TraceDump( INFO_LEVEL, ( _L( "CWlanHwInit::GetHwTestData()" ) ) );
-    OstTrace0( TRACE_API, DUP1_CWLANHWINIT_GETHWTESTDATA, "CWlanHwInit::GetHwTestData()" );   
+    OstTrace0( TRACE_BORDER, DUP1_CWLANHWINIT_GETHWTESTDATA, "CWlanHwInit::GetHwTestData()" );   
     OstTrace0( TRACE_NORMAL, CWLANHWINIT_GETHWTESTDATA, "CWlanHwInit::GetHwTestData()" );  
     return iMain->GetHwTestData( aId, aData );
     }
@@ -153,7 +153,7 @@
     TDesC8& aData )
     {
     TraceDump( INFO_LEVEL, ( _L( "CWlanHwInit::SetHwTestData()" ) ) );
-    OstTrace0( TRACE_API, DUP1_CWLANHWINIT_SETHWTESTDATA, "CWlanHwInit::SetHwTestData()" ); 
+    OstTrace0( TRACE_BORDER, DUP1_CWLANHWINIT_SETHWTESTDATA, "CWlanHwInit::SetHwTestData()" ); 
     OstTrace0( TRACE_NORMAL, CWLANHWINIT_SETHWTESTDATA, "CWlanHwInit::SetHwTestData()" );
     return iMain->SetHwTestData( aId, aData );
     }
--- a/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/testTC/traces/OstTraceDefinitions.h	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/testTC/traces/OstTraceDefinitions.h	Sun Feb 28 21:19:57 2010 +0200
@@ -1,7 +1,7 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-// #define OST_TRACE_COMPILER_IN_USE
-#include <OpenSystemTrace.h>
-#endif
+#ifndef __OSTTRACEDEFINITIONS_H__
+#define __OSTTRACEDEFINITIONS_H__
+// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
+// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
+#define OST_TRACE_COMPILER_IN_USE
+#include <opensystemtrace.h>
+#endif
--- a/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/variant_source/group/invariant_source.mmp	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/variant_source/group/invariant_source.mmp	Sun Feb 28 21:19:57 2010 +0200
@@ -4,7 +4,7 @@
 UID			0x100039ce 0x10000002
 LIBRARY			euser.lib
 SYSTEMINCLUDE		/epoc32/include
-SYSTEMINCLUDE		/epoc32/include/internal
+SYSTEMINCLUDE		/epoc32/include/platform
 SOURCEPATH		../src
 SOURCE			inv_source.cpp
 
--- a/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/variant_source/group/variant_source.mmp	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/variant_source/group/variant_source.mmp	Sun Feb 28 21:19:57 2010 +0200
@@ -6,7 +6,7 @@
 UID			0x100039ce 0x10000003
 LIBRARY			euser.lib
 SYSTEMINCLUDE		/epoc32/include
-SYSTEMINCLUDE		/epoc32/include/internal
+SYSTEMINCLUDE		/epoc32/include/platform
 
 SOURCEPATH		../src
 SOURCE			var_source1.cpp
--- a/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/variant_source/traces/OstTraceDefinitions.h	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/tracecompiler/variant_source/traces/OstTraceDefinitions.h	Sun Feb 28 21:19:57 2010 +0200
@@ -1,7 +1,7 @@
-#ifndef __OSTTRACEDEFINITIONS_H__
-#define __OSTTRACEDEFINITIONS_H__
-// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
-// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
-// #define OST_TRACE_COMPILER_IN_USE
-#include <OpenSystemTrace.h>
-#endif
+#ifndef __OSTTRACEDEFINITIONS_H__
+#define __OSTTRACEDEFINITIONS_H__
+// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler
+// REMOVE BEFORE CHECK-IN TO VERSION CONTROL
+#define OST_TRACE_COMPILER_IN_USE
+#include <opensystemtrace.h>
+#endif
--- a/sbsv2/raptor/test/smoke_suite/timeout.py	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/test/smoke_suite/timeout.py	Sun Feb 28 21:19:57 2010 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
--- a/sbsv2/raptor/test/smoke_suite/whatlog_cache.py	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/test/smoke_suite/whatlog_cache.py	Sun Feb 28 21:19:57 2010 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -42,12 +42,6 @@
 		
 	t.targets = [
 		"$(EPOCROOT)/epoc32/data/z/resource/apps/helloworld.mbm",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon24.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon2m.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon32.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon3m.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon48.bmp",
-		"$(EPOCROOT)/epoc32/localisation/helloworld/mbm/icon4m.bmp",
 		"$(EPOCROOT)/epoc32/localisation/group/helloworld.info",
 		"$(EPOCROOT)/epoc32/release/winscw/udeb/z/resource/apps/helloworld.mbm",
 		"$(EPOCROOT)/epoc32/release/winscw/urel/z/resource/apps/helloworld.mbm",
@@ -142,12 +136,6 @@
 		[".*\'.*\\\\\\\\epoc32\\\\\\\\include\\\\\\\\helloworld.rsg\'", 4],
 		[".*\'.*\\\\\\\\epoc32\\\\\\\\localisation\\\\\\\\group\\\\\\\\helloworld.info\'", 4],
 		[".*\'.*\\\\\\\\epoc32\\\\\\\\localisation\\\\\\\\group\\\\\\\\helloworld_reg.info\'", 4],
-		[".*\'.*\\\\\\\\epoc32\\\\\\\\localisation\\\\\\\\helloworld\\\\\\\\mbm\\\\\\\\icon24.bmp\'", 4],
-		[".*\'.*\\\\\\\\epoc32\\\\\\\\localisation\\\\\\\\helloworld\\\\\\\\mbm\\\\\\\\icon2m.bmp\'", 4],
-		[".*\'.*\\\\\\\\epoc32\\\\\\\\localisation\\\\\\\\helloworld\\\\\\\\mbm\\\\\\\\icon32.bmp\'", 4],
-		[".*\'.*\\\\\\\\epoc32\\\\\\\\localisation\\\\\\\\helloworld\\\\\\\\mbm\\\\\\\\icon3m.bmp\'", 4],
-		[".*\'.*\\\\\\\\epoc32\\\\\\\\localisation\\\\\\\\helloworld\\\\\\\\mbm\\\\\\\\icon48.bmp\'", 4],
-		[".*\'.*\\\\\\\\epoc32\\\\\\\\localisation\\\\\\\\helloworld\\\\\\\\mbm\\\\\\\\icon4m.bmp\'", 4],
 		[".*\'.*\\\\\\\\epoc32\\\\\\\\localisation\\\\\\\\helloworld\\\\\\\\rsc\\\\\\\\helloworld.rpp\'", 4],
 		[".*\'.*\\\\\\\\epoc32\\\\\\\\localisation\\\\\\\\helloworld_reg\\\\\\\\rsc\\\\\\\\helloworld_reg.rpp\'", 4],
 		[".*\'.*\\\\\\\\epoc32\\\\\\\\release\\\\\\\\(armv5|winscw)\\\\\\\\(udeb|urel)\\\\\\\\helloworld.exe\'",4],
--- a/sbsv2/raptor/util/talon/Makefile	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/util/talon/Makefile	Sun Feb 28 21:19:57 2010 +0200
@@ -1,4 +1,4 @@
-# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2006-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
@@ -21,6 +21,7 @@
 include $(SBS_HOME:\=/)/util/gccprogram.mk
 
 ifeq ($(filter win,$(HOSTPLATFORM)),win)
+CHOMP_C:=chomp.c
 PROCESS_C:=process_win.c
 CFLAGS:=-DHOST_WIN
 ifeq ($(SBS_MINGW),)
@@ -29,6 +30,7 @@
 LDFLAGS:=$(subst \,/,$(SBS_MINGW:\=/)\lib\libiberty.a)
 endif
 else
+CHOMP_C:=
 PROCESS_C:=process.c
 CFLAGS:=-g
 linux_PTHREADLIBS:=-lpthread
@@ -43,8 +45,7 @@
 MANIFEST:=$(SOURCEDIR)/manifest
 
 TARGET:=talon
-SOURCES:=$(addprefix $(SOURCEDIR)/,talon.c buffer.c sema.c log.c $(PROCESS_C))
-#$(info $(cprogram))
+SOURCES:=$(addprefix $(SOURCEDIR)/,talon.c buffer.c sema.c log.c $(PROCESS_C) $(CHOMP_C)) 
 $(eval $(cprogram))
 
 TARGET:=talonctl
@@ -63,3 +64,7 @@
 SOURCES:=$(addprefix $(SOURCEDIR)/,lock.c sema.c log.c)
 $(eval $(cprogram))
 
+TARGET:=testchomp
+SOURCES:=$(addprefix $(SOURCEDIR)/,testchomp.c chomp.c log.c)
+$(eval $(cprogram))
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/util/talon/chomp.c	Sun Feb 28 21:19:57 2010 +0200
@@ -0,0 +1,177 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+/*
+   Get rid of the path to talon from a commandline string on windows find the 
+   -c (if it's there) and step past it to after the quote on the first command:
+
+   "g:\program files\talon\talon.exe" -c "gcc -c . . ."
+                                          ^------ Returns a pointer to here
+
+   Take care of the possibilty that there might be spaces in the command
+   if it is quoted.
+
+   A state-machine is flexible but not all that easy to write.  Should investigate
+   the possiblity of using the Ragel state machine generator perhaps.
+
+*/
+#define CH_START 0 	/* start state */
+#define CH_PRE 1	/* spaces before executable name */
+#define CH_EXQUOTE 2    /* part of the executable name, outside quotes */
+#define CH_INQUOTE 3	/* part of the executable name, in a quoted region */
+#define CH_POST 4	/* spaces after executable name */
+#define CH_MINUS 5	/* start of -c option */
+#define CH_C 6		/* end of -c option */
+#define CH_PRECOMMAND 7 /* spaces before shell commands */
+#define CH_COMMAND 8	/* first character of shell command */
+#define CH_ERR 9	/* Error! */
+
+#include "log.h"
+#include "chomp.h"
+
+char * chompCommand(char command[])
+{
+	char *result = command;
+	int state = CH_START;
+
+	while (state != CH_COMMAND && state != CH_ERR)
+	{
+		DEBUG(("startstate: %d, char %c ",state, *result));
+		switch (*result)
+		{
+			case ' ':
+				switch (state)
+				{
+					case CH_START:
+					case CH_PRE:
+						state = CH_PRE;
+						break;
+					case CH_EXQUOTE:
+						state = CH_POST;
+						break;
+					case CH_INQUOTE:
+						break;
+					case CH_POST:
+						break;
+					case CH_MINUS:
+						state = CH_C;
+						break;
+					case CH_C:
+						state = CH_PRECOMMAND;
+						break;
+					case CH_PRECOMMAND:
+						break;
+					default:
+						state = CH_ERR;
+						break;
+				}
+			break;
+			case 'c':
+				switch (state)
+				{
+					case CH_START:
+					case CH_PRE:
+						state = CH_EXQUOTE;
+						break;
+					case CH_EXQUOTE:
+					case CH_INQUOTE:
+						break;
+					case CH_POST:
+						state = CH_ERR;
+						break;
+					case CH_MINUS:
+						state = CH_C;
+						break;
+					case CH_C:
+					case CH_PRECOMMAND:
+					default:
+						state = CH_ERR;
+						break;
+				}
+			break;
+			case '-':
+				switch (state)
+				{
+					case CH_START:
+					case CH_PRE:
+						state = CH_EXQUOTE;
+						break;
+					case CH_EXQUOTE:
+					case CH_INQUOTE:
+						break;
+					case CH_POST:
+						state = CH_MINUS;
+						break;
+					case CH_MINUS:
+					case CH_C:
+					case CH_PRECOMMAND:
+					default:
+						state = CH_ERR;
+						break;
+				}
+			break;
+			case '"':
+				switch (state)
+				{
+					case CH_START:
+					case CH_PRE:
+					case CH_EXQUOTE:
+						state = CH_INQUOTE;
+						break;
+					case CH_INQUOTE:
+						state = CH_EXQUOTE;
+						break;
+					case CH_POST:
+					case CH_MINUS:
+					case CH_C:
+						state = CH_ERR;
+						break;
+					case CH_PRECOMMAND:
+						state = CH_COMMAND;
+						break;
+					default:
+						state = CH_ERR;
+						break;
+				}
+
+			break;
+			default:
+				switch (state)
+				{
+					case CH_START:
+					case CH_PRE:
+						state = CH_EXQUOTE;
+						break;
+					case CH_INQUOTE:
+					case CH_EXQUOTE:
+						break;
+					default:
+						state = CH_ERR;
+						break;
+				}
+			break;
+		}
+		DEBUG(("endstate: %d\n",state));
+		result ++;
+		
+	}
+
+	if (state == CH_ERR)
+		return (char *)0;
+
+	return result;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/util/talon/chomp.h	Sun Feb 28 21:19:57 2010 +0200
@@ -0,0 +1,21 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+#ifndef _CHOMP_H_
+#define _CHOMP_H_
+char * chompCommand(char command[]);
+#endif
--- a/sbsv2/raptor/util/talon/process.c	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/util/talon/process.c	Sun Feb 28 21:19:57 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
--- a/sbsv2/raptor/util/talon/talon.c	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/util/talon/talon.c	Sun Feb 28 21:19:57 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -33,6 +33,10 @@
 #include "buffer.h"
 #include "../config.h"
 
+#ifdef HAS_GETCOMMANDLINE
+#include "chomp.h"
+#endif
+
 /* The output semaphore. */
 sbs_semaphore talon_sem;
 
@@ -222,166 +226,6 @@
 	return recipe;
 }
 
-#ifdef HAS_GETCOMMANDLINE
-/*
-   Get rid of the path to talon from a commandline string on windows find the 
-   -c (if it's there) and step past it to after the quote on the first command:
-
-   "g:\program files\talon\talon.exe" -c "gcc -c . . ."
-                                          ^------ Returns a pointer to here
-
-   Take care of the possibilty that there might be spaces in the command
-   if it is quoted.
-
-   A state-machine is flexible but not all that easy to write.  Should investigate
-   the possiblity of using the Ragel state machine generator perhaps.
-
-*/
-#define CH_START 0
-#define CH_PRE 1
-#define CH_EXQUOTE 2
-#define CH_INQUOTE 3
-#define CH_POST 4
-#define CH_MINUS 5
-#define CH_C 6
-#define CH_PRECOMMAND 7
-#define CH_COMMAND 8
-#define CH_ERR 9
-
-char * chompCommand(char command[])
-{
-	char *result = command;
-	int state = CH_START;
-
-	while (state != CH_COMMAND && state != CH_ERR)
-	{
-		DEBUG(("startstate: %d, char %c ",state, *result));
-		switch (*result)
-		{
-			case ' ':
-				switch (state)
-				{
-					case CH_START:
-					case CH_PRE:
-						state = CH_PRE;
-						break;
-					case CH_EXQUOTE:
-						state = CH_POST;
-						break;
-					case CH_INQUOTE:
-						break;
-					case CH_POST:
-						break;
-					case CH_MINUS:
-						state = CH_C;
-						break;
-					case CH_C:
-						state = CH_PRECOMMAND;
-						break;
-					case CH_PRECOMMAND:
-						break;
-					default:
-						state = CH_ERR;
-						break;
-				}
-			break;
-			case 'c':
-				switch (state)
-				{
-					case CH_START:
-					case CH_PRE:
-						state = CH_EXQUOTE;
-						break;
-					case CH_EXQUOTE:
-					case CH_INQUOTE:
-						break;
-					case CH_POST:
-						state = CH_ERR;
-						break;
-					case CH_MINUS:
-						state = CH_C;
-						break;
-					case CH_C:
-					case CH_PRECOMMAND:
-					default:
-						state = CH_ERR;
-						break;
-				}
-			break;
-			case '-':
-				switch (state)
-				{
-					case CH_START:
-					case CH_PRE:
-						state = CH_EXQUOTE;
-						break;
-					case CH_EXQUOTE:
-					case CH_INQUOTE:
-						break;
-					case CH_POST:
-						state = CH_MINUS;
-						break;
-					case CH_MINUS:
-					case CH_C:
-					case CH_PRECOMMAND:
-					default:
-						state = CH_ERR;
-						break;
-				}
-			break;
-			case '"':
-				switch (state)
-				{
-					case CH_START:
-					case CH_PRE:
-					case CH_EXQUOTE:
-						state = CH_INQUOTE;
-						break;
-					case CH_INQUOTE:
-						state = CH_EXQUOTE;
-						break;
-					case CH_POST:
-					case CH_MINUS:
-					case CH_C:
-						state = CH_ERR;
-						break;
-					case CH_PRECOMMAND:
-						state = CH_COMMAND;
-						break;
-					default:
-						state = CH_ERR;
-						break;
-				}
-
-			break;
-			default:
-				switch (state)
-				{
-					case CH_START:
-					case CH_PRE:
-						state = CH_EXQUOTE;
-						break;
-					case CH_INQUOTE:
-					case CH_EXQUOTE:
-						break;
-					default:
-						state = CH_ERR;
-						break;
-				}
-			break;
-		}
-		DEBUG((stderr,"endstate: %d\n",state));
-		result ++;
-		
-	}
-
-	if (state == CH_ERR)
-		return NULL;
-
-	return result;
-}
-#endif
-
 int main(int argc, char *argv[])
 {
 	/* find the argument to -c then strip the talon related front section */
@@ -402,11 +246,6 @@
 
 	
 	recipe = chompCommand(commandline);
-	if (recipe == NULL)
-	{
-		error("talon: error: unable to locate argument start in '%s'\n", commandline);
-		return 1;
-	}
 	if (recipe)
 	{
 		/* there was a -c so extract the quoted commands */
--- a/sbsv2/raptor/util/talon/testbuffer.c	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/util/talon/testbuffer.c	Sun Feb 28 21:19:57 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -12,7 +12,10 @@
 * Contributors:
 *
 * Description: 
-*
+* This program reads from stdin into a "buffer" structure. It is designed to be
+* run from within valgrind to detect memory corruption errors.
+* The buffer is then written to /tmp/outfile where it can be compared
+* with the input to determine if they are the same
 */
 
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/util/talon/testchomp.c	Sun Feb 28 21:19:57 2010 +0200
@@ -0,0 +1,96 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+* This programs tests the chompCommand function used by talon.
+*/
+
+
+
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+
+
+#include "chomp.h"
+#include "log.h"
+
+char *positives[] =  { 
+"c:\\apps\\talon.exe -c \"armcc -o barney.o\"", 
+"c:\\apps\\sbs2112-capabilites\\bin\\talon.exe -c \"armcc -o barney.o\"", 
+"\"c:\\apps and stuff\\talon.exe\" -c \"armcc -o barney.o\"", 
+"\"c:\\apps-can-cause-crxxx\\talon.exe\" -c \"armcc -o barney.o\"", 
+"c:\\bigspaces-\"   \"\\talon.exe -c \"armcc -o barney.o\"", 
+"c:\\bigspaces2\"   \"\\talon.exe -c \"armcc -o barney.o\"", 
+"c:\\apps\\talon.exe   -c   \"armcc -o barney.o\"", 
+"c:\\\"apps\"\\talon.exe   -c   \"armcc -o barney.o\"", 
+"c:\\\"ap ps\"\\talon.exe -c \"armcc -o barney.o\"", 
+(char *)0
+};
+
+char *negatives[] =  { 
+"c:\\apps\\talon.exe -c\"armcc -o barney.o\"", 
+"c:\\apps and stuff\\talon.exe -c \"armcc -o barney.o\"", 
+"c:\\apps\\talon.exe -c armcc -o barney.o", 
+"c:\\apps\\talon.exe commandlist.tmp", 
+(char *)0
+};
+
+char commandstr[]="armcc -o barney.o\"";
+
+int main(int argc, char *argv[])
+{
+	int i;
+	int errors = 0;
+	/* loglevel = LOGDEBUG; /* useful to leave this here */
+
+	for (i=0; positives[i] != (char *)0 ; i++)
+	{
+		char * c = chompCommand(positives[i]);
+		if (!c)
+		{
+			fprintf(stdout,"error: test failed with NULL on: %s\n", positives[i]);
+			errors++;
+			continue;
+		}
+
+		if (strcmp(commandstr, c) != 0)
+		{
+			fprintf(stdout,"error: test failed with %s on: %s\n", c,positives[i]);
+			errors++;
+			continue;
+		}
+		fprintf(stdout,"ok: %s\n", positives[i]);
+	}
+
+	for (i=0; negatives[i] != (char *)0 ; i++)
+	{
+		char * c = chompCommand(negatives[i]);
+		if (c)
+		{
+			fprintf(stdout,"error: negatice test failed with %s on: %s\n", c, negatives[i]);
+			errors++;
+			continue;
+		}
+		fprintf(stdout,"ok: negative: %s\n", negatives[i]);
+	}
+
+		
+	fprintf(stdout,"TOTAL errors: %d\n", errors);
+	return errors;
+}
--- a/sbsv2/raptor/util/talon/testprocess.c	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/util/talon/testprocess.c	Sun Feb 28 21:19:57 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of the License "Eclipse Public License v1.0"
@@ -12,7 +12,11 @@
 * Contributors:
 *
 * Description: 
-*
+* This programs tests the process execution functions in talon.
+* it executes it's first argument with the following arguments 
+* as parameters to it.  Output is buffered and finally printed.
+* Should be run from within valgrind if possible to detect memory
+* corruption errors.
 */
 
 
--- a/sbsv2/raptor/util/talon/tests/t3.mk	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/util/talon/tests/t3.mk	Sun Feb 28 21:19:57 2010 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
--- a/sbsv2/raptor/util/talon/tests/t4.mk	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/util/talon/tests/t4.mk	Sun Feb 28 21:19:57 2010 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
--- a/sbsv2/raptor/util/talon/tests/t5.mk	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/util/talon/tests/t5.mk	Sun Feb 28 21:19:57 2010 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
--- a/sbsv2/raptor/util/talon/tests/xcopystdin.mk	Sun Feb 28 21:18:07 2010 +0200
+++ b/sbsv2/raptor/util/talon/tests/xcopystdin.mk	Sun Feb 28 21:19:57 2010 +0200
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved.
 # This component and the accompanying materials are made available
 # under the terms of the License "Eclipse Public License v1.0"
Binary file sbsv2/raptor/win32/bin/talon.exe has changed
Binary file sbsv2/raptor/win32/bin/talonctl.exe has changed