Catch up to wip branch wip
authortimothy.murphy@nokia.com
Sun, 29 Nov 2009 16:09:20 +0000
branchwip
changeset 22 072f869b0bc5
parent 21 a695dd5e4c37
child 23 e9dc34adfa0e
Catch up to wip branch
sbsv2/raptor/lib/config/gcce.xml
sbsv2/raptor/lib/config/rvct.xml
sbsv2/raptor/lib/config/variants.xml
sbsv2/raptor/lib/flm/e32abiv2.flm
sbsv2/raptor/lib/flm/e32abiv2ani.flm
sbsv2/raptor/lib/flm/e32abiv2defaults.mk
sbsv2/raptor/lib/flm/e32abiv2dll.flm
sbsv2/raptor/lib/flm/e32abiv2exe.flm
sbsv2/raptor/lib/flm/e32abiv2exexp.flm
sbsv2/raptor/lib/flm/e32abiv2fsy.flm
sbsv2/raptor/lib/flm/e32abiv2kdll.flm
sbsv2/raptor/lib/flm/e32abiv2kext.flm
sbsv2/raptor/lib/flm/e32abiv2ldd.flm
sbsv2/raptor/lib/flm/e32abiv2pdd.flm
sbsv2/raptor/lib/flm/e32abiv2pdl.flm
sbsv2/raptor/lib/flm/e32abiv2plugin.flm
sbsv2/raptor/lib/flm/e32abiv2stddll.flm
sbsv2/raptor/lib/flm/e32abiv2stdexe.flm
sbsv2/raptor/lib/flm/e32abiv2textnotifier2.flm
sbsv2/raptor/lib/flm/e32abiv2var.flm
sbsv2/raptor/lib/flm/e32abiv2var2.flm
sbsv2/raptor/lib/flm/standard.xml
sbsv2/raptor/test/common/raptor_tests.py
sbsv2/raptor/test/config/apply_test_variants.xml
sbsv2/raptor/test/smoke_suite/dll_armv6.py
sbsv2/raptor/test/smoke_suite/dll_armv7.py
sbsv2/raptor/test/smoke_suite/parallel_parsing.py
--- a/sbsv2/raptor/lib/config/gcce.xml	Sun Nov 29 16:09:02 2009 +0000
+++ b/sbsv2/raptor/lib/config/gcce.xml	Sun Nov 29 16:09:20 2009 +0000
@@ -10,7 +10,7 @@
 		<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-ld$(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)"/>
@@ -33,16 +33,17 @@
 		<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="--no-undefined"/>
+		<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="-nostdlib"/>
+		<set name="STDLIB_OPTION" value="-nodefaultlibs"/>
 		<set name="RUNTIME_SYMBOL_VISIBILITY_OPTION" value=""/>
-		<set name="RW_BASE_OPTION" value="-Tdata"/>
+		<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"/>
 		<!-- From the GCC manual: "With this option, GCC uses features of DWARF version 3 when they are useful; ..." -->
@@ -72,24 +73,24 @@
 		<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_LIBS" value="-lsupc++ -lgcc"/>
-		<set name="LINKER_DEFAULT_LIB_PATHS" value="-L $(GCCEBIN)/../lib/gcc/arm-none-symbianelf/$(TOOLCHAINVERSION) -L $(GCCEBIN)/../lib/gcc/arm-none-symbianelf/$(TOOLCHAINVERSION)/../../../../arm-none-symbianelf/lib"/>
-		<set name="LINKER_ENTRY_OPTION" value="--entry"/>
+		<set name="LINKER_DEFAULT_LIB_PATHS" value=""/>
+		<set name="LINKER_ENTRY_OPTION" value="-Wl,--entry"/>
 		<set name="LINKER_GROUP_START_OPTION" value="--start-group"/>
 		<set name="LINKER_GROUP_END_OPTION" value="--end-group"/>
-		<set name="LINKER_MISC_FLAGS" value="$(CODE_SEGMENT_START) 0x8000"/>
-		<set name="LINKER_NODEBUG_OPTION" value = "--strip-debug"/>
+		<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_OPTION" value="-Map"/>
-		<set name="LINKER_SYMBOLS_FILE_OPTION" value=""/>
-		<set name="SHARED_OBJECT_OPTION" value="-shared"/>
+		<set name="LINKER_SYMBOLS_OPTION" value=""/>
+		<set name="LINKER_SYMBOLS_FILE_OPTION" value="-Wl,-Map"/>
+		<set name="SHARED_OBJECT_OPTION" value="-Wl,-shared"/>
 		<set name="SID" value=""/>
-		<set name="SO_NAME_OPTION" value="-soname"/>
+		<set name="SO_NAME_OPTION" value="-Wl,-soname"/>
 		<set name="STATIC_LIBS_PATH" value="" />
 		<set name="STDCPP_INCLUDE" value="$(EPOCINCLUDE)/stdapis"/>
 		<set name="SUPPORTS_ABIV1_IMPLIBS" value=""/>	
 		<set name="SYMBIAN_LD_MESSAGE_OPTION" value="$(LD_WARNINGS_CONTROL_OPTION) $(LD_ERRORS_CONTROL_OPTION)"/>
 		<set name="TARGET_RELOCATION_OPTION" value="--target1-rel" />
-		<set name="SYMVER_OPTION" value="--default-symver"/>
+		<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=""/>		
--- a/sbsv2/raptor/lib/config/rvct.xml	Sun Nov 29 16:09:02 2009 +0000
+++ b/sbsv2/raptor/lib/config/rvct.xml	Sun Nov 29 16:09:20 2009 +0000
@@ -42,7 +42,8 @@
 		<set name="REL_OPTIMISATION" value="-O2"/>
 		<set name="STDLIB_OPTION" value="--no_scanlib"/>
 		<set name="RUNTIME_SYMBOL_VISIBILITY_OPTION" value="--dllimport_runtime"/>
-		<set name="RW_BASE_OPTION" value="--rw-base"/>
+		<set name="RW_BASE_OPTION" value="--rw-base" /> 
+		<set name="RW_BASE" value="$(RW_BASE_OPTION) 0x400000"/>
 		<set name="CODE_SEGMENT_START" value=""/>
 		<set name="PREINCLUDE" value="$(RVCT_PRE_INCLUDE)"/>
 		<set name="CC.DWARF2" value="--dwarf2"/>
@@ -75,7 +76,7 @@
 		<set name="LINKER_MISC_FLAGS" value="$(LICENSERETRY_OPTION)"/>
 		<set name="LINKER_NODEBUG_OPTION" value=""/>
 		<set name="LINKER_SCRIPT_FILE_OPTION" value=""/>
-		<set name="LINKER_SYMBOLS_OPTION" value="--symbols"/>
+		<set name="LINKER_SYMBOLS_OPTION" value="--symbols"/> 
 		<set name="LINKER_SYMBOLS_FILE_OPTION" value="--list"/>
 		<set name="SHARED_OBJECT_OPTION" value="--dll"/>
 		<set name="SID" value=""/>
--- a/sbsv2/raptor/lib/config/variants.xml	Sun Nov 29 16:09:02 2009 +0000
+++ b/sbsv2/raptor/lib/config/variants.xml	Sun Nov 29 16:09:20 2009 +0000
@@ -79,16 +79,19 @@
 	</var>
 
 	<var name="gcce4_3_2" extends="gcce_base">
-		<env name="GCCEBIN" type="path" />
-		<env name="GCCEVERSION" default="$(TOOLCHAINVERSION)" />
-		<set name="TOOLCHAINVERSION" value="4.3.2" />
+		<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=""/>
@@ -99,15 +102,21 @@
 		<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">
-		<set name="TOOLCHAINVERSION" value="4.3.3" />
+		<env name="SBS_GCCE433BIN" type="path" />
+		<set name="GCCEBIN" value="$(SBS_GCCE433BIN)" />
 	</var>
 	
 	<var name="gcce4_4_1" extends="gcce4_3_3">
-		<set name="TOOLCHAINVERSION" value="4.4.1" />
+		<env name="SBS_GCCE441BIN" type="path" />
+		<set name="GCCEBIN" value="$(SBS_GCCE441BIN)" />
 		<set name="RUNTIME_LIBS_LIST" value="drtaeabi.dso dfpaeabi.dso"/>
+		<set name="PLATMACROS.VAR" value="GCCE_4 GCCE_4_4"/>
+		<set name="ARMMACROS.VAR" value="__GCCE_4__ __GCCE_4_4__"/>
 	</var>
 	
 	<var name="rvct2_2" extends="rvct">
@@ -244,5 +253,18 @@
 	<var name="mwccinc">
 		<set name='OPTION_CW' value='-cwd include'/>
 	</var>
-
+	
+	<!-- Variant to allow GCCE-built binaries to be created in epoc32/release/gcce, 
+	     epoc32/release/gccev6 and epoc32/release/gccev7 -->
+	<var name="release_gcce">
+		<set name="VARIANTPLATFORM" value="gcce" />
+		<set name="STATIC_RUNTIME_DIR" value="$(EPOCROOT)/epoc32/release/armv5/$(VARIANTTYPE)"/>
+		<set name="STATIC_LIBRARY_DIR" value="$(EPOCROOT)/epoc32/release/armv5/$(VARIANTTYPE)"/>
+	</var>
+	<var name="release_gccev6" extends="release_gcce" >
+		<set name="VARIANTPLATFORM" value="gccev6" />
+	</var>
+	<var name="release_gccev7" extends="release_gcce" >
+		<set name="VARIANTPLATFORM" value="gccev7" />
+	</var>
 </build>
--- a/sbsv2/raptor/lib/flm/e32abiv2.flm	Sun Nov 29 16:09:02 2009 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2.flm	Sun Nov 29 16:09:20 2009 +0000
@@ -595,14 +595,13 @@
 	$(LD) $(LINKER_MISC_FLAGS) $(LINKER_DEFAULT_LIB_PATHS) $(SYMBIAN_LINK_FLAGS) $(if $(DEBUG_INFO),$(LINKER_DEBUG_OPTION),$(LINKER_NODEBUG_OPTION)) \
 	  $(if $(ARMLIBS),$(LD_WARNINGS_SUPPRESSION_ARMLIBS),) \
 	  $(SHARED_OBJECT_OPTION) $(SPLIT_OPTION) \
-	  $(RW_BASE_OPTION) 0x400000 \
+	  $(RW_BASE) \
 	  $(LINKER_ARCH_OPTION) \
-	  $(SYMVER_OPTION) $(SO_NAME_OPTION) $(call dblquote,$(LINKASVERSIONED)) \
+	  $(SYMVER_OPTION) $(SO_NAME_OPTION)=$(call dblquote,$(LINKASVERSIONED)) \
 	  $(LINKER_ENTRYPOINT_SETTING) \
 	  -o $$(call dblquote,$$@) \
 	  $(if $(LTCG),$(LTCG_OPTION),) \
-	  $(LINKER_SYMBOLS_OPTION) $(LINKER_SYMBOLS_FILE_OPTION) \
-	  $(call dblquote,$(MAPFILE)) \
+	  $(LINKER_SYMBOLS_OPTION) $(LINKER_SYMBOLS_FILE_OPTION)=$(call dblquote,$(MAPFILE)) \
   	  $(LINKEROPTION) \
 	  $(if $(MULTIFILE_ENABLED),$(call dblquote,$(MULTIFILEOBJECT) $(CIAFILES_LINKOBJECTS)),$(COMMANDFILE_OPTION)$(call dblquote,$(VIAFILE))) \
           $(if $(GENERATELINKERFEEDBACK),$(FEEDBACK_OPTION)$(call dblquote,$(FEEDBACKFILE))) \
--- a/sbsv2/raptor/lib/flm/e32abiv2ani.flm	Sun Nov 29 16:09:02 2009 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2ani.flm	Sun Nov 29 16:09:20 2009 +0000
@@ -29,7 +29,7 @@
 
 # Determine what kind of entrypoint option to set
 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/edll.lib
-LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
+LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
 
 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
 LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP)
--- a/sbsv2/raptor/lib/flm/e32abiv2defaults.mk	Sun Nov 29 16:09:02 2009 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2defaults.mk	Sun Nov 29 16:09:20 2009 +0000
@@ -40,13 +40,17 @@
 # Reset these variables as they change for every single target type
 # LINKER_ENTRYPOINT_ADORNMENT will be blank for GCCE; for RVCT it will look like "(uc_exe_.o)"
 # LINKER_ENTRYPOINT_DECORATION will be blank for RVCT; for GCCE it will look like "-u _E32Startup"
+# LINKER_SEPARATOR is a comma for GCCE as g++ is used for linking; for RVCT is should be a space, but
+# as make strips trailing spaces, we use the CHAR_SPACE variable.
 
 LINKER_ENTRYPOINT_ADORNMENT:=
 LINKER_ENTRYPOINT_DECORATION:=
+LINKER_SEPARATOR:=
 
 # For GCCE
 ifeq ($(TOOLCHAIN),GCCE)
-LINKER_ENTRYPOINT_DECORATION:=$(if $(call isoneof,$(TARGETTYPE),exexp exe),-u _E32Startup,-u _E32Dll)
+LINKER_ENTRYPOINT_DECORATION:=$(if $(call isoneof,$(TARGETTYPE),exexp exe),-Wl$(CHAR_COMMA)-u$(CHAR_COMMA)_E32Startup,-Wl$(CHAR_COMMA)-u$(CHAR_COMMA)_E32Dll)
+LINKER_SEPARATOR:=$(CHAR_COMMA)
 endif
 
 # For RVCT
@@ -74,6 +78,7 @@
   ifeq ($(TARGETTYPE),kdll)
 	LINKER_ENTRYPOINT_ADORNMENT:=(L_ENTRY_.o)
   endif
+LINKER_SEPARATOR:=$(CHAR_SPACE)
 endif
 
 # "OPTION" metadata from the front-end can potentially be supplied simultaneously for both GCCE and RVCT,
--- a/sbsv2/raptor/lib/flm/e32abiv2dll.flm	Sun Nov 29 16:09:02 2009 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2dll.flm	Sun Nov 29 16:09:20 2009 +0000
@@ -28,7 +28,7 @@
 
 # Default Linker settings for this target type
 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/edll.lib
-LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
+LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
 
 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
 LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP)
--- a/sbsv2/raptor/lib/flm/e32abiv2exe.flm	Sun Nov 29 16:09:02 2009 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2exe.flm	Sun Nov 29 16:09:20 2009 +0000
@@ -28,7 +28,7 @@
 LINKER_STUB_LIBRARY:=
 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/$(if $(FIRSTLIB),$(FIRSTLIB),eexe.lib)
 
-LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Startup $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/$(if $(FIRSTLIB),$(FIRSTLIB),eexe.lib)$(LINKER_ENTRYPOINT_ADORNMENT)) 
+LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Startup $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/$(if $(FIRSTLIB),$(FIRSTLIB),eexe.lib)$(LINKER_ENTRYPOINT_ADORNMENT)) 
 
 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
 LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP)
--- a/sbsv2/raptor/lib/flm/e32abiv2exexp.flm	Sun Nov 29 16:09:02 2009 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2exexp.flm	Sun Nov 29 16:09:20 2009 +0000
@@ -52,10 +52,10 @@
 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/$(FIRSTLIB)
 
 ifeq ("$(TOOLCHAIN)","RVCT")
-LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Startup  $(call dblquote,$(STATIC_RUNTIME_DIR)/$(FIRSTLIB)($(FIRSTLIB_OBJECTFILE)))
+LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Startup $(call dblquote,$(STATIC_RUNTIME_DIR)/$(FIRSTLIB)($(FIRSTLIB_OBJECTFILE)))
 else
 # GCCE
-LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Startup -u _E32Startup  $(call dblquote,$(STATIC_RUNTIME_DIR)/$(FIRSTLIB))
+LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Startup -Wl,-u$(LINKER_SEPARATOR)_E32Startup$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/$(FIRSTLIB))
 endif
 
 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
--- a/sbsv2/raptor/lib/flm/e32abiv2fsy.flm	Sun Nov 29 16:09:02 2009 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2fsy.flm	Sun Nov 29 16:09:20 2009 +0000
@@ -28,7 +28,7 @@
 # Determine what kind of entrypoint option to set
 AUTOEXPORTS:=CreateFileSystem,1;
 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/edll.lib
-LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
+LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
 
 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
 LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP)
--- a/sbsv2/raptor/lib/flm/e32abiv2kdll.flm	Sun Nov 29 16:09:02 2009 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2kdll.flm	Sun Nov 29 16:09:20 2009 +0000
@@ -27,7 +27,7 @@
 
 # Determine what kind of entrypoint option to set
 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/ekll.lib
-LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/ekll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
+LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/ekll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
 
 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
 LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP)
--- a/sbsv2/raptor/lib/flm/e32abiv2kext.flm	Sun Nov 29 16:09:02 2009 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2kext.flm	Sun Nov 29 16:09:20 2009 +0000
@@ -34,7 +34,7 @@
 
 # Default Linker settings for this target type
 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/eext.lib
-LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/eext.lib$(LINKER_ENTRYPOINT_ADORNMENT))
+LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/eext.lib$(LINKER_ENTRYPOINT_ADORNMENT))
 
 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
 LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP)
--- a/sbsv2/raptor/lib/flm/e32abiv2ldd.flm	Sun Nov 29 16:09:02 2009 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2ldd.flm	Sun Nov 29 16:09:20 2009 +0000
@@ -29,7 +29,7 @@
 
 # Determine what kind of entrypoint option to set
 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/edev.lib
-LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/edev.lib$(LINKER_ENTRYPOINT_ADORNMENT))
+LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/edev.lib$(LINKER_ENTRYPOINT_ADORNMENT))
 
 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
 LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP)
--- a/sbsv2/raptor/lib/flm/e32abiv2pdd.flm	Sun Nov 29 16:09:02 2009 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2pdd.flm	Sun Nov 29 16:09:20 2009 +0000
@@ -28,7 +28,7 @@
 
 # Determine what kind of entrypoint option to set
 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/edev.lib
-LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/edev.lib$(LINKER_ENTRYPOINT_ADORNMENT))
+LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/edev.lib$(LINKER_ENTRYPOINT_ADORNMENT))
 
 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
 LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP)
--- a/sbsv2/raptor/lib/flm/e32abiv2pdl.flm	Sun Nov 29 16:09:02 2009 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2pdl.flm	Sun Nov 29 16:09:20 2009 +0000
@@ -28,7 +28,7 @@
 
 # Determine what kind of entrypoint option to set
 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/edll.lib
-LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
+LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
 
 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
 LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP)
--- a/sbsv2/raptor/lib/flm/e32abiv2plugin.flm	Sun Nov 29 16:09:02 2009 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2plugin.flm	Sun Nov 29 16:09:20 2009 +0000
@@ -31,7 +31,7 @@
 
 # Default Linker settings for this target type
 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/edll.lib
-LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
+LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
 
 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
 LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP)
--- a/sbsv2/raptor/lib/flm/e32abiv2stddll.flm	Sun Nov 29 16:09:02 2009 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2stddll.flm	Sun Nov 29 16:09:20 2009 +0000
@@ -29,7 +29,7 @@
 
 # Default Linker settings for this target type
 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/edll.lib
-LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
+LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
 DEFAULT_NEWLIB:=$(DEFAULT_STDCPP_NEWLIB)
 
 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
--- a/sbsv2/raptor/lib/flm/e32abiv2stdexe.flm	Sun Nov 29 16:09:02 2009 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2stdexe.flm	Sun Nov 29 16:09:20 2009 +0000
@@ -28,7 +28,7 @@
 # Determine what kind of entrypoint option to set
 LINKER_STUB_LIBRARY:=
 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/eexe.lib
-LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Startup $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/eexe.lib$(LINKER_ENTRYPOINT_ADORNMENT))
+LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Startup $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/eexe.lib$(LINKER_ENTRYPOINT_ADORNMENT))
 DEFAULT_NEWLIB:=$(DEFAULT_STDCPP_NEWLIB)
 
 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
--- a/sbsv2/raptor/lib/flm/e32abiv2textnotifier2.flm	Sun Nov 29 16:09:02 2009 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2textnotifier2.flm	Sun Nov 29 16:09:20 2009 +0000
@@ -28,7 +28,7 @@
 AUTOEXPORTS:=_Z13NotifierArrayv,1;
 # Determine what kind of entrypoint option to set
 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/edll.lib
-LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
+LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION))$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/edll.lib$(LINKER_ENTRYPOINT_ADORNMENT))
 
 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
 LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP)
--- a/sbsv2/raptor/lib/flm/e32abiv2var.flm	Sun Nov 29 16:09:02 2009 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2var.flm	Sun Nov 29 16:09:20 2009 +0000
@@ -29,7 +29,7 @@
 
 # Determine what kind of entrypoint option to set
 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/evar.lib
-LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/evar.lib$(LINKER_ENTRYPOINT_ADORNMENT))
+LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/evar.lib$(LINKER_ENTRYPOINT_ADORNMENT))
 
 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
 LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP)
--- a/sbsv2/raptor/lib/flm/e32abiv2var2.flm	Sun Nov 29 16:09:02 2009 +0000
+++ b/sbsv2/raptor/lib/flm/e32abiv2var2.flm	Sun Nov 29 16:09:20 2009 +0000
@@ -29,7 +29,7 @@
 
 # Determine what kind of entrypoint option to set
 LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/evar.lib
-LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION) _E32Dll $(LINKER_ENTRYPOINT_DECORATION) $(call dblquote,$(STATIC_RUNTIME_DIR)/evar.lib$(LINKER_ENTRYPOINT_ADORNMENT))
+LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/evar.lib$(LINKER_ENTRYPOINT_ADORNMENT))
 
 ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
 LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP)
--- a/sbsv2/raptor/lib/flm/standard.xml	Sun Nov 29 16:09:02 2009 +0000
+++ b/sbsv2/raptor/lib/flm/standard.xml	Sun Nov 29 16:09:20 2009 +0000
@@ -73,7 +73,6 @@
 		<param name='CC.VAL.SOFTVFP_MAYBE_VFPV2' default=''/>
 		<param name='CODE_SEGMENT_START' default=''/>
 		<param name='TOOLCHAIN' default=''/>
-		<param name='TOOLCHAINVERSION' default=''/>
 	</interface>
 	<interface name="Symbian.e32abiv2" extends="Symbian.mmp" flm="e32abiv2.flm">
 		<param name='SUPPORTS_STDCPP_NEWLIB' default='1'/>
@@ -163,6 +162,7 @@
 		<param name='RVCTBIN'/>
 		<param name='RVCTINC'/>
 		<param name='RVCTLIB'/>
+		<param name='RW_BASE'/>
 		<param name='RW_BASE_OPTION'/>
 		<param name='SBSV1MAKE'/>
 		<param name='NMAKE'/>
--- a/sbsv2/raptor/test/common/raptor_tests.py	Sun Nov 29 16:09:02 2009 +0000
+++ b/sbsv2/raptor/test/common/raptor_tests.py	Sun Nov 29 16:09:20 2009 +0000
@@ -100,8 +100,14 @@
 				except OSError, error:
 					pass
 	else:
-		(comIn, comOut) = os.popen4("which " + input_file)
-		output = comOut.read()
+		whichproc = subprocess.Popen(args=["which", input_file], 
+					stdout=subprocess.PIPE,
+					stderr=subprocess.STDOUT,
+					shell=False,
+					universal_newlines=True)
+		output = whichproc.stdout.readlines()
+		whichproc.wait()
+
 		if len(output) > 0:
 			locations.append(output[0:(len(output) - 1)])
 				
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sbsv2/raptor/test/config/apply_test_variants.xml	Sun Nov 29 16:09:20 2009 +0000
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<build xmlns="http://symbian.com/xml/build"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://symbian.com/xml/build build/2_0.xsd">
+
+  <!-- These variants are used to test the APPLY keyword -->
+
+  <var name="apply_test_append_cdefs">
+	<append name="CDEFS" value="APPLYTESTAPPENDCDEFS" />
+  </var>
+  
+</build>
--- a/sbsv2/raptor/test/smoke_suite/dll_armv6.py	Sun Nov 29 16:09:02 2009 +0000
+++ b/sbsv2/raptor/test/smoke_suite/dll_armv6.py	Sun Nov 29 16:09:20 2009 +0000
@@ -18,10 +18,9 @@
 
 def run():
 	t = AntiTargetSmokeTest()
-	t.id = "97"
-	t.name = "dll_armv6"
-	t.command = "sbs -b smoke_suite/test_resources/simple_dll/bld.inf -c armv6"
-	t.targets = [
+
+	rootcommand = "sbs -b smoke_suite/test_resources/simple_dll/bld.inf"
+	targets = [
 		"$(EPOCROOT)/epoc32/release/armv6/udeb/createstaticdll.dll.sym",
 		"$(EPOCROOT)/epoc32/release/armv6/urel/createstaticdll.dll.sym",
 		"$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll.dso",
@@ -29,15 +28,41 @@
 		"$(EPOCROOT)/epoc32/release/armv6/udeb/createstaticdll.dll",
 		"$(EPOCROOT)/epoc32/release/armv6/urel/createstaticdll.dll"
 		]
-	t.antitargets = [
+	antitargets = [
 		"$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll.lib",
 		"$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll{000a0000}.lib"
 		]
-	t.addbuildtargets('smoke_suite/test_resources/simple_dll/bld.inf', [
+	buildtargets = [
 		"createstaticdll_dll/armv6/udeb/CreateStaticDLL.o",
 		"createstaticdll_dll/armv6/urel/CreateStaticDLL.o",
 		"createstaticdll_dll/armv6/udeb/armv6_specific.o",
 		"createstaticdll_dll/armv6/urel/armv6_specific.o"
-	])
+	]
+	
+	t.id = "0097a"
+	t.name = "dll_armv6_rvct"
+	t.command = rootcommand + " -c armv6"
+	t.targets = targets
+	t.antitargets = antitargets
+	t.addbuildtargets("smoke_suite/test_resources/simple_dll/bld.inf", buildtargets)
 	t.run()
+
+	t.id = "0097b"
+	t.name = "dll_armv6_clean"
+	t.command = rootcommand + " -c armv6 clean"
+	t.targets = []
+	t.antitargets = []
+	t.run()
+
+	t.id = "0097c"
+	t.name = "dll_armv6_gcce"
+	t.command = rootcommand + " -c arm.v6.udeb.gcce4_3_2 -c arm.v6.urel.gcce4_3_2"
+	t.targets = targets
+	t.antitargets = antitargets
+	t.addbuildtargets("smoke_suite/test_resources/simple_dll/bld.inf", buildtargets)
+	t.run()
+
+	t.id = "97"
+	t.name = "dll_armv6"
+	t.print_result()
 	return t
--- a/sbsv2/raptor/test/smoke_suite/dll_armv7.py	Sun Nov 29 16:09:02 2009 +0000
+++ b/sbsv2/raptor/test/smoke_suite/dll_armv7.py	Sun Nov 29 16:09:20 2009 +0000
@@ -18,10 +18,9 @@
 
 def run():
 	t = SmokeTest()
-	t.id = "11"
-	t.name = "dll_armv7"
-	t.command = "sbs -b smoke_suite/test_resources/simple_dll/bld.inf -c armv7"
-	t.targets = [
+	
+	rootcommand = "sbs -b smoke_suite/test_resources/simple_dll/bld.inf"
+	targets = [
 		"$(EPOCROOT)/epoc32/release/armv7/udeb/createstaticdll.dll.sym",
 		"$(EPOCROOT)/epoc32/release/armv7/urel/createstaticdll.dll.sym",
 		"$(EPOCROOT)/epoc32/release/armv5/lib/createstaticdll.dso",
@@ -29,11 +28,34 @@
 		"$(EPOCROOT)/epoc32/release/armv7/udeb/createstaticdll.dll",
 		"$(EPOCROOT)/epoc32/release/armv7/urel/createstaticdll.dll"
 		]
-	t.addbuildtargets('smoke_suite/test_resources/simple_dll/bld.inf', [
+	buildtargets = [
 		"createstaticdll_dll/armv7/udeb/CreateStaticDLL.o",
 		"createstaticdll_dll/armv7/urel/CreateStaticDLL.o",
 		"createstaticdll_dll/armv7/udeb/armv7_specific.o",
 		"createstaticdll_dll/armv7/urel/armv7_specific.o"		
-	])
+	]
+	
+	t.id = "0011a"
+	t.name = "dll_armv7_rvct"
+	t.command = rootcommand + " -c armv7"
+	t.targets = targets
+	t.addbuildtargets("smoke_suite/test_resources/simple_dll/bld.inf", buildtargets)
 	t.run()
+
+	t.id = "0011b"
+	t.name = "dll_armv7_clean"
+	t.command = rootcommand + " -c armv7 clean"
+	t.targets = []
+	t.run()
+
+	t.id = "0011c"
+	t.name = "dll_armv7_gcce"
+	t.command = rootcommand + " -c arm.v7.udeb.gcce4_3_2 -c arm.v7.urel.gcce4_3_2"
+	t.targets = targets
+	t.addbuildtargets("smoke_suite/test_resources/simple_dll/bld.inf", buildtargets)
+	t.run()
+
+	t.id = "11"
+	t.name = "dll_armv7"
+	t.print_result()
 	return t
--- a/sbsv2/raptor/test/smoke_suite/parallel_parsing.py	Sun Nov 29 16:09:02 2009 +0000
+++ b/sbsv2/raptor/test/smoke_suite/parallel_parsing.py	Sun Nov 29 16:09:20 2009 +0000
@@ -53,7 +53,7 @@
 
 	warnings = 0
 		
-	t.id = "103"
+	t.id = "104"
 	t.name = "parallelparsing"
 	t.description = description
 	t.command = command