Merge in latest fix for rom_sbs.pl GCC_SURGE
authorWilliam Roberts <williamr@symbian.org>
Mon, 26 Jul 2010 11:21:15 +0100
branchGCC_SURGE
changeset 230 ec72eca27576
parent 229 07a685bbdd3d (diff)
parent 227 e4a1175ecbc0 (current diff)
child 233 0cfe5abbc633
Merge in latest fix for rom_sbs.pl
kernel/eka/rombuild/rom_sbs.pl
--- a/bsptemplate/asspandvariant/template_assp/interrupts.cia	Mon Jul 26 11:06:41 2010 +0100
+++ b/bsptemplate/asspandvariant/template_assp/interrupts.cia	Mon Jul 26 11:21:15 2010 +0100
@@ -88,6 +88,6 @@
 	asm("__KTemplateIntCtrlBase: ");
 	asm(".word %a0" : : "i" ((TInt)KHwBaseInterrupts));
 	asm("__Handlers: ");
-	asm(".word %a0" : : "i" ((TInt)&TemplateInterrupt::Handlers[0]));
+	asm(".word %a0" : : "i" (&TemplateInterrupt::Handlers[0]));
 	}
 
--- a/bsptemplate/asspandvariant/template_variant/bld.inf	Mon Jul 26 11:06:41 2010 +0100
+++ b/bsptemplate/asspandvariant/template_variant/bld.inf	Mon Jul 26 11:21:15 2010 +0100
@@ -115,6 +115,11 @@
 
 start		extension		base.bootstrap bootstrap
 
+#ifdef SYMBIAN_OLD_EXPORT_LOCATION
+option INC_PATH   $(EPOCROOT)epoc32/include
+#else
+option INC_PATH   $(EPOCROOT)epoc32/include/platform
+#endif
 
 option		NAME			_template_bootrom
 option		CPU				arm
@@ -146,6 +151,13 @@
 option		EXTRA_SRC_PATH		$(EXTENSION_ROOT)/bootstrap
 option		INCLUDES		$(EXTENSION_ROOT)/config.inc
 option		E32PATH			$(EXTENSION_ROOT)/../../../kernel/eka/../.
+#ifdef GCCE
+option		GCCE			GCCE
+option		EXTRA_INC_PATH	$(EPOCBLD)/$(NAME)
+#endif
+#ifdef ARMCC
+option		ARMCC			ARMCC
+#endif
 
 end
 
--- a/bsptemplate/asspandvariant/template_variant/inc/lffsdev.h	Mon Jul 26 11:06:41 2010 +0100
+++ b/bsptemplate/asspandvariant/template_variant/inc/lffsdev.h	Mon Jul 26 11:21:15 2010 +0100
@@ -47,18 +47,18 @@
 
 #if FLASH_BUS_WIDTH == 32
 	#define TFLASHWORD TUint32
-	#define FLASH_BYTES_TO_WORDS(aNumBytes) (aNumBytes >> 2)
-	#define FLASH_ADDRESS_IN_BYTES(aWordAddr) (aWordAddr << 2)
+	#define FLASH_BYTES_TO_WORDS(aNumBytes) ((aNumBytes) >> 2)
+	#define FLASH_ADDRESS_IN_BYTES(aWordAddr) ((aWordAddr) << 2)
 	#define FLASH_ERASE_WORD_VALUE 0xFFFFFFFF
 #elif FLASH_BUS_WIDTH == 16
 	#define TFLASHWORD TUint16
-	#define FLASH_BYTES_TO_WORDS(aNumBytes) (aNumBytes >> 1)
-	#define FLASH_ADDRESS_IN_BYTES(aWordAddr) (aWordAddr << 1)
+	#define FLASH_BYTES_TO_WORDS(aNumBytes) ((aNumBytes) >> 1)
+	#define FLASH_ADDRESS_IN_BYTES(aWordAddr) ((aWordAddr) << 1)
 	#define FLASH_ERASE_WORD_VALUE 0xFFFF
 #else	// FLASH_BUS_WIDTH == 8
 	#define TFLASHWORD TUint8
-	#define FLASH_BYTES_TO_WORDS(aNumBytes) aNumBytes
-	#define FLASH_ADDRESS_IN_BYTES(aWordAddr) aWordAddr
+	#define FLASH_BYTES_TO_WORDS(aNumBytes) (aNumBytes)
+	#define FLASH_ADDRESS_IN_BYTES(aWordAddr) (aWordAddr)
 	#define FLASH_ERASE_WORD_VALUE 0xFF
 #endif
 
--- a/kernel/eka/common/arm/carray.cia	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/common/arm/carray.cia	Mon Jul 26 11:21:15 2010 +0100
@@ -82,6 +82,7 @@
 
 EXPORT_C __NAKED__ TInt RPointerArrayBase::Find(const TAny* /*anEntry*/, TGeneralIdentityRelation /*anIdentity*/) const
 	{
+	__EH_FNSTART
 	asm("stmfd sp!, {r4-r8,lr} ");
 	__EH_FRAME_PUSH2(r4-r8,lr)
 	asm("ldmia r0, {r4,r5} ");			// r4=iCount, r5=iEntries
@@ -103,16 +104,17 @@
 	asm("ptr_find2_return: ");			// return r6
 	asm("mov r0, r6 ");
 	__POPRET("r4-r8,");
+	__EH_FNEND
 	}
 
-EXPORT_C __NAKED__ TInt RPointerArrayBase::BinarySearchSigned(TInt /*anEntry*/, TInt& /*anIndex*/) const
+EXPORT_C TInt RPointerArrayBase::BinarySearchSigned(TInt anEntry, TInt& anIndex) const
 	{
-	asm("mov r3, #0 ");
-	// fall through
+	return RPointerArrayBase::BinarySearchSigned(anEntry, anIndex, 0);
 	}
 
 EXPORT_C __NAKED__ TInt RPointerArrayBase::BinarySearchSigned(TInt /*anEntry*/, TInt& /*anIndex*/, TInt /*aMode*/) const
 	{
+	__EH_FNSTART
 	asm("stmfd sp!, {r4-r6,lr} ");
 	__EH_FRAME_PUSH2(r4-r6,lr)
 	asm("mov r6, r2 ");					// r6=&anIndex
@@ -160,16 +162,17 @@
 	asm("bne 3b ");						// if not, V=0 (left from subs), N=1 for last, 0 for first, Z=0 => LAST->LT FIRST->GT
 	asm("mov r2, r12 ");				// if so, r2 = mid
 	__JUMP(,lr);						// and return with r0 = 0
+	__EH_FNEND
 	}
 
-EXPORT_C __NAKED__ TInt RPointerArrayBase::BinarySearchUnsigned(TUint /*anEntry*/, TInt& /*anIndex*/) const
+EXPORT_C TInt RPointerArrayBase::BinarySearchUnsigned(TUint anEntry, TInt& anIndex) const
 	{
-	asm("mov r3, #0 ");
-	// fall through
+	return RPointerArrayBase::BinarySearchUnsigned(anEntry, anIndex, 0);
 	}
 
 EXPORT_C __NAKED__ TInt RPointerArrayBase::BinarySearchUnsigned(TUint /*anEntry*/, TInt& /*anIndex*/, TInt /*aMode*/) const
 	{
+	__EH_FNSTART
 	asm("stmfd sp!, {r4-r6,lr} ");
 	__EH_FRAME_PUSH2(r4-r6,lr)
 	asm("mov r6, r2 ");					// r6=&anIndex
@@ -218,10 +221,12 @@
 	asm("bne 3b ");						// if not ANY, branch back
 	asm("mov r2, r12 ");				// if ANY, r2 = mid
 	__JUMP(,lr);						// and return with r0 = 0
+	__EH_FNEND
 	}
 
 EXPORT_C __NAKED__ TInt RPointerArrayBase::BinarySearch(const TAny* /*anEntry*/, TInt& /*anIndex*/, TGeneralLinearOrder /*anOrder*/, TInt /*aMode*/) const
 	{
+	__EH_FNSTART
 	asm("stmfd sp!, {r2,r4-r11,lr} ");	// store &anIndex, r4-r11, lr
 	__EH_FRAME_ADDRESS(sp,4)
 	__EH_FRAME_PUSH2(r4-r11,lr)
@@ -282,16 +287,17 @@
 	asm("2: ");
 	asm("mov r5, r8 ");					// if ANY, r8 = mid
 	__JUMP(,r9);						// and return with r0 = 0, Z=1
+	__EH_FNEND
 	}
 
-EXPORT_C __NAKED__ TInt RPointerArrayBase::FindIsqSigned(TInt /*anEntry*/) const
+EXPORT_C TInt RPointerArrayBase::FindIsqSigned(TInt anEntry) const
 	{
-	asm("mov r2, #0 ");
-	// fall through
+	return RPointerArrayBase::FindIsqSigned(anEntry, 0);
 	}
 
 EXPORT_C __NAKED__ TInt RPointerArrayBase::FindIsqSigned(TInt /*anEntry*/, TInt /*aMode*/) const
 	{
+	__EH_FNSTART
 #ifdef __EABI__
 	// sp needs correct alignment
 	asm("stmfd sp!, {r4-r6,lr} ");
@@ -308,16 +314,17 @@
 #else
 	__POPRET("r4,r5,");
 #endif
+	__EH_FNEND
 	}
 
-EXPORT_C __NAKED__ TInt RPointerArrayBase::FindIsqUnsigned(TUint /*anEntry*/) const
+EXPORT_C TInt RPointerArrayBase::FindIsqUnsigned(TUint anEntry) const
 	{
-	asm("mov r2, #0 ");
-	// fall through
+	return RPointerArrayBase::FindIsqUnsigned(anEntry, 0);
 	}
 
 EXPORT_C __NAKED__ TInt RPointerArrayBase::FindIsqUnsigned(TUint /*anEntry*/, TInt /*aMode*/) const
 	{
+	__EH_FNSTART
 #ifdef __EABI__
 	// sp needs correct alignment
 	asm("stmfd sp!, {r4-r6,lr} ");
@@ -334,17 +341,17 @@
 #else
 	__POPRET("r4,r5,");
 #endif
+	__EH_FNEND
 	}
 
-EXPORT_C __NAKED__ TInt RPointerArrayBase::FindIsq(const TAny* /*anEntry*/, TGeneralLinearOrder /*anOrder*/) const
+EXPORT_C TInt RPointerArrayBase::FindIsq(const TAny* anEntry, TGeneralLinearOrder anOrder) const
 	{
-	asm("mov r3, #0 ");
-	// fall through
+	return RPointerArrayBase::FindIsq(anEntry, anOrder, 0);
 	}
 
 EXPORT_C __NAKED__ TInt RPointerArrayBase::FindIsq(const TAny* /*anEntry*/, TGeneralLinearOrder /*anOrder*/, TInt /*aMode*/) const
 	{
-
+	__EH_FNSTART
 	asm("stmfd sp!, {r3-r11,lr} ");
 	__EH_FRAME_PUSH2(r4-r6,lr)
 	asm("ldmia r0, {r5,r6} ");			// r5=count, r6=iEntries
@@ -354,11 +361,13 @@
 	asm("bl BinarySearchPointers ");
 	asm("moveq r0, r5 ");				// if match, r0=match index
 	__POPRET("r3-r11,");
+	__EH_FNEND
 	}
 
 #ifndef __KERNEL_MODE__
 EXPORT_C __NAKED__ void RPointerArrayBase::HeapSortSigned()
 	{
+	__EH_FNSTART
 #ifdef __EABI__
 	asm("stmfd sp!, {r4-r10,lr} ");
 	__EH_FRAME_PUSH2(r4-r10,lr)
@@ -420,6 +429,7 @@
 	asm("bgt hss_loop_start2 ");
 	asm("str r7, [r5, #0] ");
 	__JUMP(,lr);
+	__EH_FNEND
 	}
 
 EXPORT_C __NAKED__ void RPointerArrayBase::HeapSortUnsigned()
@@ -492,6 +502,7 @@
 #ifndef __KERNEL_MODE__
 EXPORT_C __NAKED__ void RPointerArrayBase::HeapSort(TGeneralLinearOrder /*anOrder*/)
 	{
+	__EH_FNSTART
 	asm("stmfd sp!, {r3-r11,lr} ");
 	// r3 is caller save
 	__EH_FRAME_ADDRESS(sp,4)
@@ -553,6 +564,7 @@
 	asm("bgt hsp_loop_start2 ");
 	asm("str r7, [r5, #0] ");
 	__JUMP(,r11);
+	__EH_FNEND
 	}
 #endif	// __KERNEL_MODE__
 
@@ -623,6 +635,7 @@
 
 EXPORT_C __NAKED__ TInt RArrayBase::Find(const TAny* /*anEntry*/, TGeneralIdentityRelation /*anIdentity*/) const
 	{
+	__EH_FNSTART
 	asm("stmfd sp!, {r4-r10,lr} ");		// save r4-r10,lr
 	__EH_FRAME_PUSH2(r4-r10,lr)
 	asm("ldmia r0, {r4,r5,r6} ");		// r4=count, r5=iEntries, r6=iEntrySize
@@ -644,16 +657,17 @@
 	asm("simple_find2_return: ");
 	asm("sub r0, r7, r4 ");				// index=count-r4
 	__POPRET("r4-r10,");
+	__EH_FNEND
 	}
 
-EXPORT_C __NAKED__ TInt RArrayBase::BinarySearchSigned(const TAny* /*anEntry*/, TInt& /*anIndex*/) const
+EXPORT_C TInt RArrayBase::BinarySearchSigned(const TAny* anEntry, TInt& anIndex) const
 	{
-	asm("mov r3, #0 ");
-	// fall through
+	return RArrayBase::BinarySearchSigned(anEntry, anIndex, 0);
 	}
 
 EXPORT_C __NAKED__ TInt RArrayBase::BinarySearchSigned(const TAny* /*anEntry*/, TInt& /*anIndex*/, TInt /*aMode*/) const
 	{
+	__EH_FNSTART
 	asm("stmfd sp!, {r4-r8,lr} ");
 	__EH_FRAME_PUSH2(r4-r8,lr)
 	asm("mov r8, r2 ");					// r8=&anIndex
@@ -709,16 +723,17 @@
 	asm("bne 3b ");						// if not, V=0 (left from subs), N=1 for last, 0 for first, Z=0 => LAST->LT FIRST->GT
 	asm("mov r2, r12 ");				// if so, r2 = mid
 	__JUMP(,lr);						// and return with r0 = 0
+	__EH_FNEND
 	}
 
-EXPORT_C __NAKED__ TInt RArrayBase::BinarySearchUnsigned(const TAny* /*anEntry*/, TInt& /*anIndex*/) const
+EXPORT_C TInt RArrayBase::BinarySearchUnsigned(const TAny* anEntry, TInt& anIndex) const
 	{
-	asm("mov r3, #0 ");
-	// fall through
+	return RArrayBase::BinarySearchUnsigned(anEntry, anIndex, 0);
 	}
 
 EXPORT_C __NAKED__ TInt RArrayBase::BinarySearchUnsigned(const TAny* /*anEntry*/, TInt& /*anIndex*/, TInt /*aMode*/) const
 	{
+	__EH_FNSTART
 	asm("stmfd sp!, {r4-r8,lr} ");
 	__EH_FRAME_PUSH2(r4-r8,lr)
 	asm("mov r8, r2 ");					// r8=&anIndex
@@ -775,10 +790,12 @@
 	asm("bne 3b ");						// if not ANY, branch back
 	asm("mov r2, r12 ");				// if ANY, r2 = mid
 	__JUMP(,lr);						// and return with r0 = 0
+	__EH_FNEND
 	}
 
 EXPORT_C __NAKED__ TInt RArrayBase::BinarySearch(const TAny* /*anEntry*/, TInt& /*anIndex*/, TGeneralLinearOrder /*anOrder*/, TInt /*aMode*/) const
 	{
+	__EH_FNSTART
 	asm("stmfd sp!, {r3-r11,lr} ");
 	// r3 is caller save
 	__EH_FRAME_ADDRESS(sp,4)
@@ -836,16 +853,17 @@
 	asm("2: ");
 	asm("mov r5, r8 ");					// if ANY, r8 = mid
 	__POPRET("r2,");					// and return with r0 = 0, Z=1
+	__EH_FNEND
 	}
 
-EXPORT_C __NAKED__ TInt RArrayBase::FindIsqSigned(const TAny* /*anEntry*/) const
+EXPORT_C TInt RArrayBase::FindIsqSigned(const TAny* anEntry) const
 	{
-	asm("mov r2, #0 ");
-	// fall through
+	return RArrayBase::FindIsqSigned(anEntry, 0);
 	}
 
 EXPORT_C __NAKED__ TInt RArrayBase::FindIsqSigned(const TAny* /*anEntry*/, TInt /*aMode*/) const
 	{
+	__EH_FNSTART
 #ifdef __EABI__
 	// sp needs to be aligned correctly
 	asm("stmfd sp!, {r4-r8,lr} ");
@@ -869,16 +887,17 @@
 #else
 	__POPRET("r4-r7,");
 #endif
+	__EH_FNEND
 	}
 
-EXPORT_C __NAKED__ TInt RArrayBase::FindIsqUnsigned(const TAny* /*anEntry*/) const
+EXPORT_C TInt RArrayBase::FindIsqUnsigned(const TAny* anEntry) const
 	{
-	asm("mov r2, #0 ");
-	// fall through
+	return RArrayBase::FindIsqUnsigned(anEntry, 0);
 	}
 
 EXPORT_C __NAKED__ TInt RArrayBase::FindIsqUnsigned(const TAny* /*anEntry*/, TInt /*aMode*/) const
 	{
+	__EH_FNSTART
 #ifdef __EABI__
 	// sp needs to be aligned correctly
 	asm("stmfd sp!, {r4-r8,lr} ");
@@ -902,16 +921,17 @@
 #else
 	__POPRET("r4-r7,");
 #endif
+	__EH_FNEND
 	}
 
-EXPORT_C __NAKED__ TInt RArrayBase::FindIsq(const TAny* /*anEntry*/, TGeneralLinearOrder /*anOrder*/) const
+EXPORT_C TInt RArrayBase::FindIsq(const TAny* anEntry, TGeneralLinearOrder anOrder) const
 	{
-	asm("mov r3, #0 ");
-	// fall through
+	return RArrayBase::FindIsq(anEntry, anOrder, 0);
 	}
 
 EXPORT_C __NAKED__ TInt RArrayBase::FindIsq(const TAny* /*anEntry*/, TGeneralLinearOrder /*anOrder*/, TInt /*aMode*/) const
 	{
+	__EH_FNSTART
 	asm("stmfd sp!, {r3-r11,lr} ");
 	// r3 is caller save
 	__EH_FRAME_ADDRESS(sp,4)
@@ -924,11 +944,13 @@
 	asm("bl BinarySearchEntries ");
 	asm("moveq r0, r5 ");				// if match r0=index
 	__POPRET("r3-r11,");
+	__EH_FNEND
 	}
 
 #ifndef __KERNEL_MODE__
 EXPORT_C __NAKED__ void RArrayBase::HeapSortSigned()
 	{
+//	__EH_FNSTART
 #ifdef __EABI__
 	// need sp aligned correctly
 	asm("stmfd sp!, {r3-r11,lr} ");
@@ -1017,10 +1039,12 @@
 	asm("bl wordmove ");				// entry[0]=[sp]
 	asm("add sp, sp, r10 ");			// free temporary stack space
 	__JUMP(,r7);
+//	__EH_FNEND
 	}
 
 EXPORT_C __NAKED__ void RArrayBase::HeapSortUnsigned()
 	{
+//	__EH_FNSTART
 #ifdef __EABI__
 	// need sp aligned correctly
 	asm("stmfd sp!, {r3-r11,lr} ");
@@ -1109,10 +1133,12 @@
 	asm("bl wordmove ");				// entry[0]=[sp]
 	asm("add sp, sp, r10 ");			// free temporary stack space
 	__JUMP(,r7);
+//	__EH_FNEND
 	}
 
 EXPORT_C __NAKED__ void RArrayBase::HeapSort(TGeneralLinearOrder anOrder)
 	{
+//	__EH_FNSTART
 #ifdef __EABI__
 	// need sp aligned correctly
 	asm("stmfd sp!, {r3-r11,lr} ");
@@ -1204,6 +1230,7 @@
 	asm("bl wordmove ");				// entry[0]=[sp]
 	asm("ldr sp, [sp, r10] ");			// restore stack pointer, freeing temporary stack space
 	__POPRET("");
+//	__EH_FNEND
 	}
 #endif	// __KERNEL_MODE__
 #endif	// __ARRAY_MACHINE_CODED__
--- a/kernel/eka/common/arm/cdes16.cia	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/common/arm/cdes16.cia	Mon Jul 26 11:21:15 2010 +0100
@@ -183,7 +183,7 @@
 	asm("sub r3, r3, r1 ");				// r3 = 2*length
 	asm("mov r3, r3, lsr #1 ");			// r3 = length (+EBufC)
 	asm("cmp r3, r2 ");					// check against max length
-	asm("bgt Des16PanicLengthOutOfRange__Fv ");
+	asm("bgt " CSM_Z26Des16PanicLengthOutOfRangev);
 	asm("stmfd sp!, {r0,lr} ");			// save registers for function call
 	asm("str r3, [r0], #4 ");			// save length/type field, r0->buffer
 	asm("add r2, r3, r3 ");				// size=2*length into r2 for function call
@@ -230,7 +230,7 @@
 	asm("sub r3, r3, r1 ");				// r3 = 2*length
 	asm("mov r3, r3, lsr #1 ");			// r3 = length (+EBufC)
 	asm("cmp r3, r2 ");					// check against max length
-	asm("bgt Des16PanicLengthOutOfRange__Fv ");
+	asm("bgt " CSM_Z26Des16PanicLengthOutOfRangev);
 	asm("str r3, [r0], #4 ");			// save length/type field, r0->buffer
 	asm("add r2, r3, r3 ");				// size=2*length into r2 for function call
 	asm("b memmove ");					// call memmove
@@ -290,7 +290,7 @@
 	asm("rsb r3, r12, r1, lsr #1 ");	// r3 = length + 1
 	asm("sub r3, r3, #1 ");				// r3 = length
 	asm("cmp r3, r2 ");					// compare to max length
-	asm("bgt Des16PanicLengthOutOfRange__Fv ");	// length too big, so panic
+	asm("bgt " CSM_Z26Des16PanicLengthOutOfRangev);	// length too big, so panic
 	asm("orr r1, r3, #0x30000000 ");	// if length<=max, r1=EBuf + length
 	asm("stmfd sp!, {r0, lr} ");		// save registers for function call
 	asm("stmia r0!, {r1, r2} ");		// store type/length and max length fields, r0->buffer
@@ -373,9 +373,9 @@
 	asm("mov r2, r2, lsr #1 ");			// r2=length of string
 	asm("ldmia r0, {r3,r12} ");			// r3=type/length of this, r12=maxlength
 	asm("cmp r2, r12 ");				// compare new length against maxlength
-	asm("bgt Des16PanicDesOverflow__Fv ");
+	asm("bgt " CSM_Z21Des16PanicDesOverflowv);
 	asm("cmp r3, #0x50000000 ");
-	asm("bcs Des16PanicBadDesType__Fv ");
+	asm("bcs " CSM_Z20Des16PanicBadDesTypev);
 	asm("and r3, r3, #0xF0000000 ");	// r3=type of this
 	asm("orr r3, r3, r2 ");				// r3=new type/length
 	asm("str r3, [r0], #4 ");			// store it
@@ -451,12 +451,12 @@
 	// Return TPtr8 ([r0]=length/type,[r0,#4]=maxLength,[r0,#8]=Ptr)
 	asm("ldr r3, [r1], #4 ");				// r3=this.length/type
 	asm("cmp r2, #0 ");						// check aLength>=0
-	asm("blt Des16PanicPosOutOfRange__Fv ");	// if not, panic
+	asm("blt " CSM_Z23Des16PanicPosOutOfRangev);	// if not, panic
 	asm("bic r12, r3, #0xF0000000 ");		// r12=this.Length()
 	asm("cmp r2, r12 ");					// else limit aLength to Length()
 	asm("movgt r2, r12 ");
 	asm("cmp r3, #0x50000000 ");
-	asm("bcs Des16PanicBadDesType__Fv ");
+	asm("bcs " CSM_Z20Des16PanicBadDesTypev);
 	asm("eor r3, r3, r3, lsr #1 ");
 	asm("msr cpsr_flg, r3 ");
 	asm("addcs r1, r1, #4 ");
@@ -477,12 +477,12 @@
 	// Return TPtr8 ([r0]=length/type,[r0,#4]=maxLength,[r0,#8]=Ptr)
 	asm("ldr r3, [r1], #4 ");				// r3=this.length/type
 	asm("cmp r2, #0 ");						// check aLength>=0
-	asm("blt Des16PanicPosOutOfRange__Fv ");	// if not, panic
+	asm("blt " CSM_Z23Des16PanicPosOutOfRangev);	// if not, panic
 	asm("bic r12, r3, #0xF0000000 ");		// r12=this.Length()
 	asm("cmp r2, r12 ");					// else limit aLength to Length()
 	asm("movgt r2, r12 ");
 	asm("cmp r3, #0x50000000 ");
-	asm("bcs Des16PanicBadDesType__Fv ");
+	asm("bcs " CSM_Z20Des16PanicBadDesTypev);
 	asm("eor r3, r3, r3, lsr #1 ");
 	asm("msr cpsr_flg, r3 ");
 	asm("addcs r1, r1, #4 ");
@@ -506,9 +506,9 @@
 	asm("bic r12, r3, #0xF0000000 ");		// r12=this.Length()
 	asm("cmp r2, #0 ");						// check aPos>=0
 	asm("cmpge r12, r2 ");					// if so check Length()>=aPos
-	asm("blt Des16PanicPosOutOfRange__Fv ");
+	asm("blt " CSM_Z23Des16PanicPosOutOfRangev);
 	asm("cmp r3, #0x50000000 ");
-	asm("bcs Des16PanicBadDesType__Fv ");
+	asm("bcs " CSM_Z20Des16PanicBadDesTypev);
 	asm("eor r3, r3, r3, lsr #1 ");
 	asm("msr cpsr_flg, r3 ");
 	asm("addcs r1, r1, #4 ");
@@ -532,7 +532,7 @@
 	asm("ldr r12, [r1], #4 ");				// r12=this.length/type
 	asm("mov r4, r1 ");
 	asm("cmp r12, #0x50000000 ");			// check valid descriptor type
-	asm("bcs Des16PanicBadDesType__Fv ");
+	asm("bcs " CSM_Z20Des16PanicBadDesTypev);
 	asm("eor r12, r12, r12, lsr #1 ");
 	asm("msr cpsr_flg, r12 ");
 	asm("ldr r12, [r1, #-4] ");
@@ -549,7 +549,7 @@
 	asm("stmgeia r0, {r1-r3} ");
 	asm("ldrge r4, [sp], #4 ");
 	__JUMP(ge,lr);
-	asm("b Des16PanicPosOutOfRange__Fv ");
+	asm("b " CSM_Z23Des16PanicPosOutOfRangev);
 	}
 
 __NAKED__ EXPORT_C const TUint16& TDesC16::AtC(TInt /*anIndex*/) const
@@ -581,7 +581,7 @@
 	{
 	asm("ldr r2, [r0], #4 ");			// r2=length/type
 	asm("cmp r2, #0x50000000 ");
-	asm("bcs Des16PanicBadDesType__Fv ");
+	asm("bcs " CSM_Z20Des16PanicBadDesTypev);
 	asm("bics r3, r2, #0xF0000000 ");	// r3=length
 	asm("mvneq r0, #0 ");				// if length=0, not found
 	__JUMP(eq,lr);
@@ -611,7 +611,7 @@
 	{
 	asm("ldr r2, [r0], #4 ");			// r2=length/type
 	asm("cmp r2, #0x50000000 ");
-	asm("bcs Des16PanicBadDesType__Fv ");
+	asm("bcs " CSM_Z20Des16PanicBadDesTypev);
 	asm("bics r3, r2, #0xF0000000 ");	// r3=length
 	asm("mvneq r0, #0 ");				// if length=0, not found
 	__JUMP(eq,lr);
@@ -643,7 +643,7 @@
 	asm("ldr r12, 1f ");
 	asm("b comparebody ");
 	asm("1: ");
-	asm(".word  " CSM_ZN3Mem8CompareFEPKtiS0_i);
+	asm(".word  " CSM_ZN3Mem8CompareFEPKtiS1_i);
 	}
 
 __NAKED__ EXPORT_C TInt TDesC16::CompareC(const TDesC16& /*aDes*/) const
@@ -654,7 +654,7 @@
 	asm("ldr r12, 1f ");
 	asm("b comparebody ");
 	asm("1: ");
-	asm(".word  " CSM_ZN3Mem8CompareCEPKtiS0_i);
+	asm(".word  " CSM_ZN3Mem8CompareCEPKtiS1_i);
 	}
 #endif
 
@@ -695,7 +695,7 @@
 #ifdef __KERNEL_MODE__
 	asm(".word memcompare ");
 #else
-	asm(".word  " CSM_ZN3Mem7CompareEPKtiS0_i);
+	asm(".word  " CSM_ZN3Mem7CompareEPKtiS1_i);
 #endif
 	}
 #endif // __DES16_MACHINE_CODED__
@@ -820,12 +820,12 @@
 	// Return TPtr16 ([r0]=length/type,[r0,#4]=Ptr)
 	asm("ldr r3, [r1], #4 ");				// r3=this.length/type
 	asm("cmp r2, #0 ");					// check aLength>=0
-	asm("blt Des16PanicPosOutOfRange__Fv ");		// if not, panic
+	asm("blt " CSM_Z23Des16PanicPosOutOfRangev);		// if not, panic
 	asm("bic r12, r3, #0xF0000000 ");			// r12=this.Length()
 	asm("cmp r2, r12 ");					// else limit aLength to Length()
 	asm("movgt r2, r12 ");
 	asm("cmp r3, #0x50000000 ");
-	asm("bcs Des16PanicBadDesType__Fv ");
+	asm("bcs " CSM_Z20Des16PanicBadDesTypev);
 	asm("eor r3, r3, r3, lsr #1 ");
 	asm("msr cpsr_flg, r3 ");
 	asm("addcs r1, r1, #4 ");
@@ -846,12 +846,12 @@
 	// Return TPtr16 ([r0]=length/type,[r0,#4]=Ptr)
 	asm("ldr r3, [r1], #4 ");				// r3=this.length/type
 	asm("cmp r2, #0 ");					// check aLength>=0
-	asm("blt Des16PanicPosOutOfRange__Fv ");		// if not, panic
+	asm("blt " CSM_Z23Des16PanicPosOutOfRangev);		// if not, panic
 	asm("bic r12, r3, #0xF0000000 ");			// r12=this.Length()
 	asm("cmp r2, r12 ");					// else limit aLength to Length()
 	asm("movgt r2, r12 ");
 	asm("cmp r3, #0x50000000 ");
-	asm("bcs Des16PanicBadDesType__Fv ");
+	asm("bcs " CSM_Z20Des16PanicBadDesTypev);
 	asm("eor r3, r3, r3, lsr #1 ");
 	asm("msr cpsr_flg, r3 ");
 	asm("addcs r1, r1, #4 ");
@@ -875,9 +875,9 @@
 	asm("bic r12, r3, #0xF0000000 ");			// r12=this.Length()
 	asm("cmp r2, #0 ");					// check aPos>=0
 	asm("cmpge r12, r2 ");					// if so check Length()>=aPos
-	asm("blt Des16PanicPosOutOfRange__Fv ");
+	asm("blt " CSM_Z23Des16PanicPosOutOfRangev);
 	asm("cmp r3, #0x50000000 ");
-	asm("bcs Des16PanicBadDesType__Fv ");
+	asm("bcs " CSM_Z20Des16PanicBadDesTypev);
 	asm("eor r3, r3, r3, lsr #1 ");
 	asm("msr cpsr_flg, r3 ");
 	asm("addcs r1, r1, #4 ");
@@ -899,7 +899,7 @@
 	// Return TPtr16 ([r0]=length/type,[r0,#4]=Ptr)
 	asm("ldr r12, [r1], #4 ");				// r12=this.length/type
 	asm("cmp r12, #0x50000000 ");				// check valid descriptor type
-	asm("bcs Des16PanicBadDesType__Fv ");
+	asm("bcs " CSM_Z20Des16PanicBadDesTypev);
 	asm("eor r12, r12, r12, lsr #1 ");
 	asm("msr cpsr_flg, r12 ");
 	asm("ldr r12, [r1, #-4] ");
@@ -914,7 +914,7 @@
 	asm("orrge r1, r3, #0x10000000 ");			// and r1 = aLength + EPtrC
 	asm("stmgeia r0, {r1,r2} ");
 	__JUMP(ge,lr);
-	asm("b Des16PanicPosOutOfRange__Fv ");
+	asm("b " CSM_Z23Des16PanicPosOutOfRangev);
 	}
 #endif // __EABI__
 
@@ -953,9 +953,9 @@
 	asm("ldmia r0, {r1,r2} ");			// r1=length/type, r2=maxlength
 	asm("bic r3, r1, #0xF0000000 ");	// r3=Length();
 	asm("cmp r3, r2 ");					// check Length()<MaxLength()
-	asm("bge Des16PanicDesOverflow__Fv ");
+	asm("bge " CSM_Z21Des16PanicDesOverflowv);
 	asm("cmp r1, #0x50000000 ");
-	asm("bcs Des16PanicBadDesType__Fv ");
+	asm("bcs " CSM_Z20Des16PanicBadDesTypev);
 	asm("eor r1, r1, r1, lsr #1 ");
 	asm("msr cpsr_flg, r1 ");
 	asm("add r0, r0, #4 ");
@@ -977,9 +977,9 @@
 	asm("ldmia r0, {r2,r3} ");			// r2=length/type, r3=maxlength
 	asm("bic r12, r2, #0xF0000000 ");	// r12=Length();
 	asm("cmp r12, r3 ");				// check Length()<MaxLength()
-	asm("bge Des16PanicDesOverflow__Fv ");
+	asm("bge " CSM_Z21Des16PanicDesOverflowv);
 	asm("cmp r2, #0x50000000 ");
-	asm("bcs Des16PanicBadDesType__Fv ");
+	asm("bcs " CSM_Z20Des16PanicBadDesTypev);
 	asm("add r2, r2, #1 ");				// increment length by 1
 	asm("str r2, [r0] ");				// store new length
 	asm("eor r2, r2, r2, lsr #1 ");
@@ -1072,7 +1072,7 @@
 	// on entry r0=this, r1=fill char
 	asm("ldr r3, [r0] ");				// r3=length/type
 	asm("cmp r3, #0x50000000 ");
-	asm("bcs Des16PanicBadDesType__Fv ");
+	asm("bcs " CSM_Z20Des16PanicBadDesTypev);
 	asm("bics r2, r3, #0xF0000000 ");	// r2=Length()
 	__JUMP(eq,lr);						// if length is zero, finished
 	asm("stmfd sp!, {r0,lr} ");			// save registers for function call
--- a/kernel/eka/common/arm/cdes8.cia	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/common/arm/cdes8.cia	Mon Jul 26 11:21:15 2010 +0100
@@ -441,12 +441,12 @@
 	// Return TPtr8 ([r0]=length/type,[r0,#4]=maxLength,[r0,#8]=Ptr)
 	asm("ldr r3, [r1], #4 ");				// r3=this.length/type
 	asm("cmp r2, #0 ");						// check aLength>=0
-	asm("blt Des8PanicPosOutOfRange__Fv ");	// if not panic
+	asm("blt " CSM_Z27Des8PanicDesIndexOutOfRangev);	// if not panic
 	asm("bic r12, r3, #0xF0000000 ");		// r12=this.Length()
 	asm("cmp r2, r12 ");					// limit aLength to Length()
 	asm("movgt r2, r12 ");
 	asm("cmp r3, #0x50000000 ");			// check type() <= 4
-	asm("bcs Des8PanicBadDesType__Fv ");	// if not, panic
+	asm("bcs " CSM_Z19Des8PanicBadDesTypev);	// if not, panic
 	asm("eor r3, r3, r3, lsr #1 ");
 	asm("msr cpsr_flg, r3 ");
 	asm("addcs r1, r1, #4 ");
@@ -467,12 +467,12 @@
 	// Return TPtr8 ([r0]=length/type,[r0,#4]=maxLength,[r0,#8]=Ptr)
 	asm("ldr r3, [r1], #4 ");				// r3=this.length/type
 	asm("cmp r2, #0 ");						// check aLength>=0
-	asm("blt Des8PanicPosOutOfRange__Fv ");	// if not, panic
+	asm("blt " CSM_Z27Des8PanicDesIndexOutOfRangev);	// if not, panic
 	asm("bic r12, r3, #0xF0000000 ");		// r12=this.Length()
 	asm("cmp r2, r12 ");					// limit aLength to Length()
 	asm("movgt r2, r12 ");
 	asm("cmp r3, #0x50000000 ");			// check type() <= 4
-	asm("bcs Des8PanicBadDesType__Fv ");
+	asm("bcs " CSM_Z19Des8PanicBadDesTypev);
 	asm("eor r3, r3, r3, lsr #1 ");
 	asm("msr cpsr_flg, r3 ");
 	asm("addcs r1, r1, #4 ");
@@ -496,9 +496,9 @@
 	asm("bic r12, r3, #0xF0000000 ");		// r12=this.Length()
 	asm("cmp r2, #0 ");						// check aPos>=0
 	asm("cmpge r12, r2 ");					// if so check Length()>=aPos
-	asm("blt Des8PanicPosOutOfRange__Fv ");
+	asm("blt " CSM_Z27Des8PanicDesIndexOutOfRangev);
 	asm("cmp r3, #0x50000000 ");			// check type() <= 4
-	asm("bcs Des8PanicBadDesType__Fv ");
+	asm("bcs " CSM_Z19Des8PanicBadDesTypev);
 	asm("eor r3, r3, r3, lsr #1 ");
 	asm("msr cpsr_flg, r3 ");
 	asm("addcs r1, r1, #4 ");
@@ -522,7 +522,7 @@
 	asm("ldr r12, [r1], #4 ");				// r12=this.length/type
 	asm("mov r4, r1 ");
 	asm("cmp r12, #0x50000000 ");			// check valid descriptor type
-	asm("bcs Des8PanicBadDesType__Fv ");
+	asm("bcs " CSM_Z19Des8PanicBadDesTypev);
 	asm("eor r12, r12, r12, lsr #1 ");
 	asm("msr cpsr_flg, r12 ");
 	asm("ldr r12, [r1, #-4] ");
@@ -539,7 +539,7 @@
 	asm("stmgeia r0, {r1-r3} ");
 	asm("ldrge r4, [sp], #4 ");
 	__JUMP(ge,lr);
-	asm("b Des8PanicPosOutOfRange__Fv ");
+	asm("b " CSM_Z27Des8PanicDesIndexOutOfRangev);
 	}
 #endif
 
@@ -630,7 +630,7 @@
 	asm("ldr r12, 1f ");
 	asm("b comparebody ");
 	asm("1: ");
-	asm(".word  " CSM_ZN3Mem8CompareFEPKhiS0_i);
+	asm(".word  " CSM_ZN3Mem8CompareFEPKhiS1_i);
 	}
 
 __NAKED__ EXPORT_C TInt TDesC8::CompareC(const TDesC8& /*aDes*/) const
@@ -641,7 +641,7 @@
 	asm("ldr r12, 1f ");
 	asm("b comparebody ");
 	asm("1: ");
-	asm(".word  " CSM_ZN3Mem8CompareCEPKhiS0_i);
+	asm(".word  " CSM_ZN3Mem8CompareCEPKhiS1_i);
 	}
 #endif
 
@@ -798,12 +798,12 @@
 	// Return TPtrC8 ([r0]=length/type,[r0,#4]=Ptr)
 	asm("ldr r3, [r1], #4 ");				// r3=this.length/type
 	asm("cmp r2, #0 ");					// check aLength>=0
-	asm("blt Des8PanicPosOutOfRange__Fv ");			// if not panic
+	asm("blt " CSM_Z27Des8PanicDesIndexOutOfRangev);			// if not panic
 	asm("bic r12, r3, #0xF0000000 ");			// r12=this.Length()
 	asm("cmp r2, r12 ");					// limit aLength to Length()
 	asm("movgt r2, r12 ");
 	asm("cmp r3, #0x50000000 ");				// check type() <= 4
-	asm("bcs Des8PanicBadDesType__Fv ");			// if not, panic
+	asm("bcs " CSM_Z19Des8PanicBadDesTypev);			// if not, panic
 	asm("eor r3, r3, r3, lsr #1 ");
 	asm("msr cpsr_flg, r3 ");
 	asm("addcs r1, r1, #4 ");
@@ -824,12 +824,12 @@
 	// Return TPtrC8 ([r0]=length/type,[r0,#4]=Ptr)
 	asm("ldr r3, [r1], #4 ");				// r3=this.length/type
 	asm("cmp r2, #0 ");					// check aLength>=0
-	asm("blt Des8PanicPosOutOfRange__Fv ");			// if not, panic
+	asm("blt " CSM_Z27Des8PanicDesIndexOutOfRangev);			// if not, panic
 	asm("bic r12, r3, #0xF0000000 ");			// r12=this.Length()
 	asm("cmp r2, r12 ");					// limit aLength to Length()
 	asm("movgt r2, r12 ");
 	asm("cmp r3, #0x50000000 ");				// check type() <= 4
-	asm("bcs Des8PanicBadDesType__Fv ");
+	asm("bcs " CSM_Z19Des8PanicBadDesTypev);
 	asm("eor r3, r3, r3, lsr #1 ");
 	asm("msr cpsr_flg, r3 ");
 	asm("addcs r1, r1, #4 ");
@@ -853,9 +853,9 @@
 	asm("bic r12, r3, #0xF0000000 ");			// r12=this.Length()
 	asm("cmp r2, #0 ");					// check aPos>=0
 	asm("cmpge r12, r2 ");					// if so check Length()>=aPos
-	asm("blt Des8PanicPosOutOfRange__Fv ");
+	asm("blt " CSM_Z27Des8PanicDesIndexOutOfRangev);
 	asm("cmp r3, #0x50000000 ");				// check type() <= 4
-	asm("bcs Des8PanicBadDesType__Fv ");
+	asm("bcs " CSM_Z19Des8PanicBadDesTypev);
 	asm("eor r3, r3, r3, lsr #1 ");
 	asm("msr cpsr_flg, r3 ");
 	asm("addcs r1, r1, #4 ");
@@ -877,7 +877,7 @@
 	// Return TPtrC8 ([r0]=length/type,[r0,#4]=Ptr)
 	asm("ldr r12, [r1], #4 ");				// r12=this.length/type
 	asm("cmp r12, #0x50000000 ");			// check valid descriptor type
-	asm("bcs Des8PanicBadDesType__Fv ");
+	asm("bcs " CSM_Z19Des8PanicBadDesTypev);
 	asm("eor r12, r12, r12, lsr #1 ");
 	asm("msr cpsr_flg, r12 ");
 	asm("ldr r12, [r1, #-4] ");
@@ -892,7 +892,7 @@
 	asm("orrge r1, r3, #0x10000000 ");			// and r1=aLength + EPtrC
 	asm("stmgeia r0, {r1,r2} ");
 	__JUMP(ge,lr);
-	asm("b Des8PanicPosOutOfRange__Fv ");
+	asm("b " CSM_Z27Des8PanicDesIndexOutOfRangev);
 	}
 #endif
 
--- a/kernel/eka/common/arm/cmem.cia	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/common/arm/cmem.cia	Mon Jul 26 11:21:15 2010 +0100
@@ -181,19 +181,46 @@
 	asm("small_fill_end: ");
 	__JUMP(,lr);
 
+    }
+
 #ifdef __EABI__
-	// The AEABI switched the order of arg2 and arg3 to save an intruction when
-	// calling 'memset' from 'memclr'	
-	asm(".global __aeabi_memset8 ");
-	asm("__aeabi_memset8: 		 ");
-	asm(".global __aeabi_memset4 ");
-	asm("__aeabi_memset4: 		 ");
-	asm(".global __aeabi_memset  ");
-	asm("__aeabi_memset: 		 ");
-    asm("   and      r2, r2, #255");
-	asm("	b		 fill		 ");
-#endif
-    }
+//mikek N.B. These __aeabi_mem functions are also defined in rvct/compsupp/aeabimem.cpp
+// and should be implemented in the compsupp library, not here, when we build one for gcce.  
+
+#define EXPORT_EABI_MEMSET_VENEER(name) \
+extern "C" EXPORT_C __NAKED__ TAny* (name)(TAny* /*aTrg*/, unsigned int /*aLength*/, TInt /*aValue*/ ) \
+{ \
+    asm("   and      r2, r2, #255"); \
+	asm("	b		 fill		 "); \
+}
+
+EXPORT_EABI_MEMSET_VENEER(__aeabi_memset8)
+EXPORT_EABI_MEMSET_VENEER(__aeabi_memset4)
+EXPORT_EABI_MEMSET_VENEER(__aeabi_memset)
+
+#define EXPORT_EABI_MEMCLR_ALIAS(alias) \
+extern "C" EXPORT_C __NAKED__ TAny* (alias)(TAny* /*aTrg*/, unsigned int /*aLength*/ ) \
+{ \
+	asm("   b  memclr  "); \
+}
+
+EXPORT_EABI_MEMCLR_ALIAS(__aeabi_memclr8)
+EXPORT_EABI_MEMCLR_ALIAS(__aeabi_memclr4)
+EXPORT_EABI_MEMCLR_ALIAS(__aeabi_memclr)
+
+#define EXPORT_EABI_MEMMOVE_ALIAS(alias,func) \
+extern "C" EXPORT_C __NAKED__ TAny* (alias)(TAny* /*aTrg*/, const TAny* /*aSrc*/, unsigned int /*aLength*/) \
+{ \
+	asm("   b " #func ); \
+}
+
+EXPORT_EABI_MEMMOVE_ALIAS(__aeabi_memcpy8,memcpy)
+EXPORT_EABI_MEMMOVE_ALIAS(__aeabi_memcpy4,memcpy)
+EXPORT_EABI_MEMMOVE_ALIAS(__aeabi_memcpy,memcpy)
+EXPORT_EABI_MEMMOVE_ALIAS(__aeabi_memmove8,memmove)
+EXPORT_EABI_MEMMOVE_ALIAS(__aeabi_memmove4,memmove)
+EXPORT_EABI_MEMMOVE_ALIAS(__aeabi_memmove,memmove)
+#endif // __EABI__
 
 #endif  // USE_REPLACEMENT_MEMSET
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/kernel/eka/common/arm/gccehlp.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -0,0 +1,121 @@
+// Copyright (c) 1995-2009 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:
+// Mike Kinghan, mikek@symbian.org, for Symbian Foundation
+//
+// Contributors:
+//
+// Description:
+// kernelhwsrv/kernel/eka/common/arm/gccehlp.cpp
+// 
+//
+
+#include "../common.h"
+#include <nkern.h>
+
+extern "C" {
+EXPORT_C int __aeabi_idiv0 (int return_value)
+    {
+      FAULT();
+      return return_value;
+    }
+
+EXPORT_C long long __aeabi_ldiv0 (long long return_value)
+    {
+      FAULT();
+      return return_value;
+    }
+
+EXPORT_C int __cxa_pure_virtual()
+//
+// Gets called for any unreplaced pure virtual methods.
+//
+	{
+#ifdef __STANDALONE_NANOKERNEL__
+	__NK_ASSERT_ALWAYS(0);
+#else
+	Panic(EPureVirtualCalled);
+#endif
+	return 0;
+	}
+
+#ifdef __KERNEL_MODE__
+
+void __cxa_end_catch(){}
+
+void __cxa_begin_catch(){}
+
+void __cxa_rethrow(){}
+// std::terminate
+
+void __cxa_call_unexpected() {}
+
+void __aeabi_unwind_cpp_pr0() {}
+
+void __cxa_end_cleanup() {}
+
+EXPORT_C void __cxa_guard_abort() {}
+
+EXPORT_C void __cxa_guard_acquire() {}
+
+EXPORT_C void __cxa_guard_release() {}
+
+#endif
+}
+
+//
+// The global new operator.
+//
+#include <kernel/kernel.h>
+
+EXPORT_C TAny* operator new[](TUint aSize, const std::nothrow_t&) __NO_THROW
+	{
+	return Kern::Alloc(aSize);
+	}
+
+EXPORT_C TAny* operator new(TUint aSize, const std::nothrow_t&) __NO_THROW
+	{
+	return Kern::Alloc(aSize);
+	}
+
+
+
+__NAKED__ void __rt_exporter_dummy(void)
+	{
+// Ensure that "vtable for __cxxabiv1::__si_class_type_info" is available from ekern.exe
+// ** This is almost certainly just creating an instance of the symbol, without supplying the 
+// ** required functionality!
+
+#define COMM_SYMBOL(x)  asm(".comm " x ",4")
+
+COMM_SYMBOL("_ZTVN10__cxxabiv117__class_type_infoE");     // vtable for __cxxabiv1::__class_type_info
+COMM_SYMBOL("_ZTVN10__cxxabiv120__si_class_type_infoE");  // vtable for __cxxabiv1::__si_class_type_info
+COMM_SYMBOL("_ZTVN10__cxxabiv121__vmi_class_type_infoE"); // vtable for __cxxabiv1::__vmi_class_type_info
+
+// Implementations exist as globals in libgcc.a, we just need to pull them in
+#define IMPORT_GLOBAL(x)  asm(".global " x );
+
+IMPORT_GLOBAL("__aeabi_lasr");
+IMPORT_GLOBAL("__aeabi_lcmp");
+IMPORT_GLOBAL("__aeabi_llsl");
+IMPORT_GLOBAL("__aeabi_llsr");
+IMPORT_GLOBAL("__aeabi_lmul");
+IMPORT_GLOBAL("__aeabi_ulcmp");
+
+// Implementations exist as "hidden" in libgcc.a, so we need to pull them in and reveal them
+// ** This version will completely fail to do that, but creates junk to be exported
+#define IMPORT_HIDDEN(x)  asm(".comm " x ",4");
+
+// unaligned-funcs.c
+IMPORT_HIDDEN("__aeabi_uread4");
+IMPORT_HIDDEN("__aeabi_uread8");
+IMPORT_HIDDEN("__aeabi_uwrite4");
+IMPORT_HIDDEN("__aeabi_uwrite8");
+
+	}
+
--- a/kernel/eka/common/des16.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/common/des16.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -2013,7 +2013,7 @@
 */
 	{
 	__ASSERT_ALWAYS(aMaxLength>=0,Panic(ETDes16MaxLengthNegative));
-	return new(STD_CLASS::Alloc(_FOFF(HBufC16,iBuf[aMaxLength]))) HBufC16(0);
+	return new(STD_CLASS::Alloc(_FOFF_DYNAMIC(HBufC16,iBuf[aMaxLength]))) HBufC16(0);
 	}
 
 EXPORT_C HBufC16 *HBufC16::NewL(TInt aMaxLength)
@@ -2092,7 +2092,7 @@
 */
 	{
 	__ASSERT_ALWAYS(aMaxLength>=0,Panic(ETDes16MaxLengthNegative));
-	return new(STD_CLASS::Alloc(_FOFF(HBufC16,iBuf[aMaxLength]))) HBufC16(aMaxLength);
+	return new(STD_CLASS::Alloc(_FOFF_DYNAMIC(HBufC16,iBuf[aMaxLength]))) HBufC16(aMaxLength);
 	}
 
 EXPORT_C HBufC16 *HBufC16::NewMaxL(TInt aMaxLength)
--- a/kernel/eka/common/des8.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/common/des8.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -978,7 +978,7 @@
 */
 	{
 	__ASSERT_ALWAYS(aMaxLength>=0,Panic(ETDes8MaxLengthNegative));
-	return new(STD_CLASS::Alloc(_FOFF(HBufC8,iBuf[aMaxLength]))) HBufC8(0);
+	return new(STD_CLASS::Alloc(_FOFF_DYNAMIC(HBufC8,iBuf[aMaxLength]))) HBufC8(0);
 	}
 
 EXPORT_C HBufC8 *HBufC8::NewL(TInt aMaxLength)
@@ -1057,7 +1057,7 @@
 */
 	{
 	__ASSERT_ALWAYS(aMaxLength>=0,Panic(ETDes8MaxLengthNegative));
-	return new(STD_CLASS::Alloc(_FOFF(HBufC8,iBuf[aMaxLength]))) HBufC8(aMaxLength);
+	return new(STD_CLASS::Alloc(_FOFF_DYNAMIC(HBufC8,iBuf[aMaxLength]))) HBufC8(aMaxLength);
 	}
 
 EXPORT_C HBufC8 *HBufC8::NewMaxL(TInt aMaxLength)
--- a/kernel/eka/common/mem.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/common/mem.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -23,7 +23,6 @@
 //NOTE - if these values are changed then the WINS test case value must be updated
 
 #ifndef __MEM_MACHINE_CODED__
-
 extern "C" {
 
 // See header file e32cmn.h for the in-source documentation.
@@ -161,7 +160,7 @@
 
 
 
-
+//IMK: Should this __GCC32__ should be __GCCE__ now?
 #if defined(__GCC32__) && !defined(__KERNEL_MODE__)
 /**
 Compares a block of data at one specified location with a block of data at 
--- a/kernel/eka/compsupp/bld.inf	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/compsupp/bld.inf	Mon Jul 26 11:21:15 2010 +0100
@@ -29,10 +29,11 @@
 
 compsupp.iby                /epoc32/rom/include/
 
-
 PRJ_MMPFILES
 
-#if !defined GCCXML && !defined GCCE
+#if !defined GCCXML
+
+#if !defined GCCE
 
     symcpp/scppnwdl.mmp
     rvct/dfprvct-thunk.mmp
@@ -57,22 +58,34 @@
 
     #endif
 
+#endif // !defined GCCE
+
 PRJ_EXTENSIONS
 
-// Unzip RVCT3.1 runtime if being built with RVCT2.2 or RVCT4.0
-
-start extension tools/compsupp
+// Export the compiler-specific support files built by this component
+// when using the other versions of RVCT
 
-#if defined(ARMCC_2_2) || defined(ARMCC_4_0)
-option  FILE  $(EXTENSION_ROOT)/rt_3_1.zip
-#elif defined(ARMCC_3_1)
-option  FILE  $(EXTENSION_ROOT)/rt_2_2.zip
+#if !defined(ARMCC_2_2)
+start extension tools/compsupp
+option  FILE  $(EXTENSION_ROOT)/rt_2_2_export.zip
+option  TODIR $(EPOCROOT)
+end
 #endif
 
-option  TODIR $(EPOCROOT)epoc32/release
-
+#if !defined(ARMCC_3_1)
+start extension tools/compsupp
+option  FILE  $(EXTENSION_ROOT)/rt_3_1_export.zip
+option  TODIR $(EPOCROOT)
 end
+#endif
 
-#endif // #if !defined GCCXML && !defined GCCE
+#if !defined(ARMCC_4_0)
+start extension tools/compsupp
+option  FILE  $(EXTENSION_ROOT)/rt_4_0_export.zip
+option  TODIR $(EPOCROOT)
+end
+#endif
+
+#endif // #if !defined GCCXML
 
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/kernel/eka/compsupp/gcce/bld.inf	Mon Jul 26 11:21:15 2010 +0100
@@ -0,0 +1,33 @@
+// Copyright (c) 2010 Symbian Foundation Ltd
+// 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:
+// Symbian Foundation Ltd - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// GCC runtime support
+// 
+//
+
+PRJ_PLATFORMS
+
+ARMV5
+
+
+PRJ_EXPORTS
+
+// Workaround for GCCE builds
+// Export the generic binaries which are currently only built with RVCT
+
+:zip ..\rt_generic_export.zip
+:zip ..\rt_4_0_export.zip
+
+PRJ_MMPFILES
+
+// none - (yet)
+
--- a/kernel/eka/compsupp/gcce/gcce.h	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/compsupp/gcce/gcce.h	Mon Jul 26 11:21:15 2010 +0100
@@ -97,6 +97,7 @@
 // __NAKED__ from cpudefs.h
 #define __NAKED__ __declspec(naked)
 #define ____ONLY_USE_NAKED_IN_CIA____ __declspec(naked)
+#define __WEAK__  __attribute__((weak))
 
 // Int64 and Uint64 from nkern\nklib.h
 typedef long long Int64;
@@ -167,9 +168,24 @@
 // Support for throwing exceptions through embedded assembler
 // Should only be needed user side
 
-#define	__EH_FRAME_ADDRESS(reg,offset)	FRAME ADDRESS reg, offset
-#define __EH_FRAME_PUSH2(reg1,reg2) FRAME PUSH {reg1, reg2}
-#define __EH_FRAME_SAVE1(reg,offset) FRAME SAVE {reg}, offset
+#define __VSTR(x) #x
+#define __STR(x) __VSTR(x)
+#define __GAS_SAVE_REG(reg) ".save {" __STR(reg) " }"
+#define __ASM_GAS_SAVE_REG(reg) asm( __GAS_SAVE_REG(reg) );
+#define __GAS_SAVE_REGS2(reg1,reg2) ".save {" __STR(reg1) "," __STR(reg2) "}"
+#define __ASM_GAS_SAVE_REGS2(reg1,reg2) asm( __GAS_SAVE_REGS2(reg1,reg2) );
+#define __GAS_SETFP(reg,offset) ".setfp fp," __STR(reg) ",#" __STR(offset)
+#define __ASM_GAS_SETFP(reg,offset) asm( __GAS_SETFP(reg,offset) );
+
+#define	__EH_FRAME_ADDRESS(reg,offset)	\
+		__ASM_GAS_SETFP(reg,offset)
+#define __EH_FRAME_PUSH2(reg1,reg2) __ASM_GAS_SAVE_REGS2(reg1,reg2)
+#define __EH_FRAME_SAVE1(reg,offset) \
+	__EH_FRAME_ADDRESS(fp,offset) \
+	__ASM_GAS_SAVE_REG(reg)
+
+#define __EH_FNSTART asm(".fnstart");
+#define __EH_FNEND asm(".fnend");
 
 #endif
 
Binary file kernel/eka/compsupp/rt_2_2.zip has changed
Binary file kernel/eka/compsupp/rt_2_2_export.zip has changed
Binary file kernel/eka/compsupp/rt_3_1.zip has changed
Binary file kernel/eka/compsupp/rt_3_1_export.zip has changed
Binary file kernel/eka/compsupp/rt_4_0_export.zip has changed
Binary file kernel/eka/compsupp/rt_generic_export.zip has changed
--- a/kernel/eka/compsupp/rvct.h	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/compsupp/rvct.h	Mon Jul 26 11:21:15 2010 +0100
@@ -116,6 +116,7 @@
 // __NAKED__ from cpudefs.h
 #define __NAKED__ __asm
 #define ____ONLY_USE_NAKED_IN_CIA____ __asm
+#define __WEAK__  __attribute__((weak))
 
 // Int64 and Uint64 from nkern\nklib.h
 typedef long long Int64;
@@ -175,5 +176,9 @@
     #define	__EH_FRAME_ADDRESS(reg,offset)  FRAME ADDRESS reg, offset
     #define __EH_FRAME_PUSH2(reg1,reg2)     FRAME PUSH {reg1, reg2}
     #define __EH_FRAME_SAVE1(reg,offset)    FRAME SAVE {reg}, offset
+
+	#define __EH_FNSTART
+	#define __EH_FNEND
+
 #endif
 
--- a/kernel/eka/compsupp/rvct2_1/rvct2_1.h	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/compsupp/rvct2_1/rvct2_1.h	Mon Jul 26 11:21:15 2010 +0100
@@ -191,4 +191,7 @@
 #define __EH_FRAME_PUSH2(reg1,reg2) FRAME PUSH {reg1, reg2}
 #define __EH_FRAME_SAVE1(reg,offset) FRAME SAVE {reg}, offset
 
+#define __EH_FNSTART
+#define __EH_FNEND
+
 #endif
--- a/kernel/eka/debug/ost/inc/traceutils.h	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/debug/ost/inc/traceutils.h	Mon Jul 26 11:21:15 2010 +0100
@@ -85,9 +85,17 @@
 
 #ifdef __MARM_ARMV5__
 	//armv5
-#define GET_PC(pc) \
-	TUint32 pc = 0; \
-	asm("mov pc, __return_address()")
+	#if defined(__GCCE__)
+	#define GET_PC(pc) \
+		TUint32 pc = 0; \
+		asm("mov %[res], %[val]" : [res] "=r" (pc) : [val] "r" (__builtin_return_address(0)))
+	#elif defined(__ARMCC__)
+	#define GET_PC(pc) \
+		TUint32 pc = 0; \
+		asm("mov pc, __return_address()")
+	#else
+	#error What compiler?
+	#endif
 #elif __MARM_ARM4__
 	//arm4 not implemented yet!
 #define GET_PC(pc) \
--- a/kernel/eka/debug/utrace/inc/traceutils.h	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/debug/utrace/inc/traceutils.h	Mon Jul 26 11:21:15 2010 +0100
@@ -77,9 +77,17 @@
 
 #ifdef __MARM_ARMV5__
 	//armv5
-#define GET_PC(pc) \
-	TUint32 pc = 0; \
-	asm("mov pc, __return_address()")
+	#if defined(__GCCE__)
+	#define GET_PC(pc) \
+		TUint32 pc = 0; \
+		asm("mov %[res], %[val]" : [res] "=r" (pc) : [val] "r" (__builtin_return_address(0)))
+	#elif defined(__ARMCC__)
+	#define GET_PC(pc) \
+		TUint32 pc = 0; \
+		asm("mov pc, __return_address()")
+	#else
+	#error What compiler?
+	#endif
 #elif __MARM_ARM4__
 	//arm4 not implemented yet!
 #define GET_PC(pc) \
--- a/kernel/eka/drivers/debug/group/rm_debug_kerneldriver.mmh	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/drivers/debug/group/rm_debug_kerneldriver.mmh	Mon Jul 26 11:21:15 2010 +0100
@@ -52,4 +52,9 @@
 
 capability			all
 
+#ifdef GCCE
+staticlibrary usrt4_0.lib
+library drtaeabi.dso
+#endif
+
 SMPSAFE
--- a/kernel/eka/drivers/debug/rmdebug/d_rmd_stepping.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/drivers/debug/rmdebug/d_rmd_stepping.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -325,7 +325,13 @@
 
 	// determine the architecture
 	TUint32 cpuid;
+#if defined(__ARMCC__)
 	asm("mrc p15, 0, cpuid, c0, c0, 0 ");
+#elif defined(__GCCE__)
+	asm("mrc p15, 0, %[id], c0, c0, 0 " : [id] "=r" (cpuid));
+#else
+#error What compiler?
+#endif
 	LOG_MSG2("DRMDStepping::PCAfterInstructionExecutes() - cpuid = 0x%08x\n",cpuid);
 
 	cpuid >>= 8;
@@ -866,7 +872,7 @@
 				// 
 
 				// ARM ARM DDI0406A - section A8.6.26
-				if (inst32 & 0xFFF0FFFF == 0xE3C08F00)
+				if ((inst32 & 0xFFF0FFFF) == 0xE3C08F00)
 					{
 					LOG_MSG("ARM ARM DDI0406A - section A8.6.26 - BXJ is not supported");
 
@@ -879,7 +885,7 @@
 				// ARM ARM DDi046A - section B6.1.13 - SUBS PC,LR
 				//
 				// Encoding T1
-				if (inst32 & 0xFFFFFF00 == 0xF3DE8F00)
+				if ((inst32 & 0xFFFFFF00) == 0xF3DE8F00)
 					{
 					LOG_MSG("ARM ARM DDI0406A - section B6.1.13 - SUBS PC,LR Encoding T1");
 
@@ -905,7 +911,7 @@
 				// ARM ARM DDI0406A - section A8.6.16 - B
 				//
 				// Branch Encoding T3
-				if (inst32 & 0xF800D000 == 0xF0008000)
+				if ((inst32 & 0xF800D000) == 0xF0008000)
 					{
 					LOG_MSG("ARM ARM DDI0406A - section A8.6.16 - B Encoding T3");
 
@@ -930,7 +936,7 @@
 				// ARM ARM DDI0406A - section A8.6.16 - B
 				//
 				// Branch Encoding T4
-				if (inst32 & 0xF800D000 == 0xF0009000)
+				if ((inst32 & 0xF800D000) == 0xF0009000)
 					{
 					LOG_MSG("ARM ARM DDI0406A - section A8.6.16 - B");
 
@@ -959,7 +965,7 @@
 				// ARM ARM DDI0406A - section A8.6.225 - TBB, TBH
 				//
 				// Table Branch Byte, Table Branch Halfword
-				if (inst32 & 0xFFF0FFE0 == 0xE8D0F000)
+				if ((inst32 & 0xFFF0FFE0) == 0xE8D0F000)
 						{
 					LOG_MSG("ARM ARM DDI0406A - section A8.6.225 TBB,TBH Encoding T1");
 
@@ -1000,7 +1006,7 @@
 				// ARM ARM DDI0406A - section A8.6.55 - LDMDB, LDMEA
 				//
 				// LDMDB Encoding T1
-				if (inst32 & 0xFFD02000 == 0xE9100000)
+				if ((inst32 & 0xFFD02000) == 0xE9100000)
 					{
 					LOG_MSG("ARM ARM DDI0406 - section A8.6.55 LDMDB Encoding T1");
 
@@ -1046,7 +1052,7 @@
 				// ARM ARM DDI0406A - section A8.6.121 POP
 				//
 				// POP.W Encoding T2
-				if (inst32 & 0xFFFF2000 == 0xE8BD0000)
+				if ((inst32 & 0xFFFF2000) == 0xE8BD0000)
 					{
 					LOG_MSG("ARM ARM DDI0406A - section A8.6.121 POP Encoding T2");
 
@@ -1082,7 +1088,7 @@
 					}
 
 				// POP Encoding T3
-				if (inst32 & 0xFFFF0FFFF == 0xF85D0B04)
+				if ((inst32 & 0xFFFF0FFFF) == 0xF85D0B04)
 					{
 					LOG_MSG("ARM ARM DDI0406A - section A8.6.121 POP Encoding T3");
 
--- a/kernel/eka/drivers/debug/rmdebug/d_rmd_stepping.inl	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/drivers/debug/rmdebug/d_rmd_stepping.inl	Mon Jul 26 11:21:15 2010 +0100
@@ -238,7 +238,7 @@
 {
 //#define ARM_B_ADDR(x)			((x & 0x00800000) ? ((TUint32)(x) & 0x00FFFFFF | 0xFF000000) : (TUint32)(x) & 0x00FFFFFF)
 
-	TUint32 aVal = ((aInst & 0x00800000) ? ((TUint32)(aInst) & 0x00FFFFFF | 0xFF000000) : (TUint32)(aInst) & 0x00FFFFFF);
+	TUint32 aVal = ((aInst & 0x00800000) ? (((TUint32)(aInst) & 0x00FFFFFF) | 0xFF000000) : (TUint32)(aInst) & 0x00FFFFFF);
 
 	return aVal;
 }
--- a/kernel/eka/drivers/ecomm/d_comm.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/drivers/ecomm/d_comm.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -933,7 +933,7 @@
 			{
 			// Replace bad character
 			if (iConfig.iParityError==KConfigParityErrorReplaceChar)
-				c = c & ~(0xff|KReceiveIsrParityError) | iConfig.iParityErrorChar;
+				c = (c & ~(0xff|KReceiveIsrParityError)) | iConfig.iParityErrorChar;
 			// Ignore parity error
 			if (iConfig.iParityError==KConfigParityErrorIgnore)
 				c = c & ~KReceiveIsrParityError;
--- a/kernel/eka/drivers/locmedia/traces/OstTraceDefinitions.h	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/drivers/locmedia/traces/OstTraceDefinitions.h	Mon Jul 26 11:21:15 2010 +0100
@@ -17,5 +17,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/kernel/eka/drivers/medmmc/traces/OstTraceDefinitions.h	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/drivers/medmmc/traces/OstTraceDefinitions.h	Mon Jul 26 11:21:15 2010 +0100
@@ -17,5 +17,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/kernel/eka/drivers/pbus/mmc/stack.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/drivers/pbus/mmc/stack.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -2453,8 +2453,8 @@
 
 		DISABLEPREEMPTION
 
-		if( !iAbortReq &&
-			((iStackState & KMMCStackStateWaitingDFC) ||
+		if( ((!iAbortReq &&
+			((iStackState & KMMCStackStateWaitingDFC))) ||
 			 (iCompReq | iInitialise | iAttention)==0) ||
 			 ((iSessionP) && (iSessionP->iState & KMMCSessStateAllowDirectCommands)))
 			{
--- a/kernel/eka/drivers/pbus/mmc/traces/OstTraceDefinitions.h	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/drivers/pbus/mmc/traces/OstTraceDefinitions.h	Mon Jul 26 11:21:15 2010 +0100
@@ -17,5 +17,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/kernel/eka/drivers/trace/arm/btracex_impl.cia	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/drivers/trace/arm/btracex_impl.cia	Mon Jul 26 11:21:15 2010 +0100
@@ -161,7 +161,7 @@
 
 #ifdef BTRACE_INCLUDE_TIMESTAMPS
 #ifdef __SMP__
-	asm("bl		Timestamp__5NKern ");
+	asm("bl	" CSM_ZN5NKern9TimestampEv);
 	asm("str	r0, [r5], #4 ");		// store timestamp low word
 #ifdef USE_TIMESTAMP2
 	asm("str	r1, [r5], #4 ");		// store timestamp high word
--- a/kernel/eka/drivers/trace/btracec.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/drivers/trace/btracec.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -213,7 +213,7 @@
 		if (--retries<0)
 			return KErrInUse;
 		// sleep every 8 tries to give the write a chance
-		if (retries&7==0)
+		if ((retries&7)==0)
 			User::AfterHighRes(1);
 		g0 = iGeneration;
 		__e32_memory_barrier();
--- a/kernel/eka/drivers/usbcsc/d_usbcsc.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/drivers/usbcsc/d_usbcsc.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -3523,7 +3523,7 @@
 		}
 
 	
-	if (iBuffer && (iBuffer->iStatusList.iState) || (!iRealEpNumber))
+	if ((iBuffer && (iBuffer->iStatusList.iState)) || (!iRealEpNumber))
 		{
 		if (iRequestCallbackInfo->iTransferDir==EControllerWrite)
 			iController->CancelWriteBuffer(iLdd, iRealEpNumber);
--- a/kernel/eka/drivers/usbcsc/usbcsc_bil.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/drivers/usbcsc/usbcsc_bil.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -160,7 +160,7 @@
 	TUint localTail = endpointHdr->iBilTail;
 	TUsbcScTransferHeader* currentTransfer = (TUsbcScTransferHeader*) (base + localTail);
 
-	if ((localTail == (TUint)endpointHdr->iHead) || (currentTransfer->iAltSettingSeq != (iAltSettingSeq+1)&0xFFFF))
+	if ((localTail == (TUint)endpointHdr->iHead) || (currentTransfer->iAltSettingSeq != ((iAltSettingSeq+1)&0xFFFF)))
 		// if alternate setting has not changed
 		return KErrNotReady;
 	else
--- a/kernel/eka/euser/bld.inf	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/euser/bld.inf	Mon Jul 26 11:21:15 2010 +0100
@@ -76,7 +76,7 @@
 euser
 #endif
 
-#if defined(GENERIC_MARM) && !defined(ARMCC)
+#if defined(GENERIC_MARM) && !defined(EABI)
 #ifndef SMP
 epoc/arm/eka1_entry_stub
 #endif
--- a/kernel/eka/euser/epoc/arm/uc_dll.cia	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/euser/epoc/arm/uc_dll.cia	Mon Jul 26 11:21:15 2010 +0100
@@ -72,6 +72,32 @@
 #endif
 
 #endif
+#elif defined(__GCCE__)
+#ifdef __SUPPORT_CPP_EXCEPTIONS__
+
+
+  /* It is possible no functions included in the image require
+   * a handler table. Therefore make only a weak reference to
+   * the handler table base symbol, which may be absent.
+   */
+  asm(".weak .ARM.extab$$Base");
+  asm(".global Symbian$$CPP$$Exception$$Descriptor");
+
+  /* Symbian$$CPP$$Exception$$Descriptor is referenced from the Image header.
+   * A pointer to this object can be cached by the unwinder in the UCB
+   * on the assumption that the EHT for the previous frame is likely to be right
+   * for the current frame
+   */
+
+  asm("Symbian$$CPP$$Exception$$Descriptor:");
+#ifdef __LEAVE_EQUALS_THROW__
+  asm(".word .ARM.exidx$$Base");   /* index table base */
+  asm(".word .ARM.exidx$$Limit");  /* index table limit */
+#endif
+  asm(".word Image$$ER_RO$$Base + 1"); /* RO segment base + mark as ehabi v2 */
+  asm(".word Image$$ER_RO$$Limit");    /* RO segment limit */
+  asm(".word 0");                      /* reserved for future use */
+#endif
 #endif
 	}
 }
--- a/kernel/eka/euser/epoc/arm/uc_dll.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/euser/epoc/arm/uc_dll.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -44,11 +44,11 @@
 	return 0;
 	}
 
-#elif defined(__ARMCC__)
+#elif defined(__EABI__)
 
 void __DLL_Export_Table__(void);
 void __cpp_initialize__aeabi_(void);
-__weak void run_static_dtors(void);
+__WEAK__ void run_static_dtors(void);
 
 GLDEF_C TInt _E32Dll_Body(TInt aReason)
 	{
--- a/kernel/eka/euser/epoc/arm/uc_exe.cia	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/euser/epoc/arm/uc_exe.cia	Mon Jul 26 11:21:15 2010 +0100
@@ -62,7 +62,7 @@
 	asm("mov r11, sp ");		// save stack pointer
 
 	// The frame starts 84 bytes (up) from r11 i.e. CFA is r11 + 84
-	__EH_FRAME_ADDRESS(r11, 84)
+	__EH_FRAME_ADDRESS(sp, 84) // Reg needs to be sp (=r11) here for gcce
 	// we can only restore callee-save values, but that's what we want if we 'leave'
 	// saved link is -8 bytes from CFA (= r11 + 0x24 + 0x20 + 0x8)
 	__EH_FRAME_SAVE1(lr, -8)
@@ -73,10 +73,15 @@
 	__EH_FRAME_SAVE1(r4-r11, -48)
 	// but the macro expansion gives rise to odd code so we do what follows
 #endif
-#ifdef __ARMCC__
+#if defined(__ARMCC__)
 	FRAME SAVE {r4-r11}, -48
+#elif defined(__GCCE__)
+	__EH_FRAME_SAVE1(r4-r11,-48)
+#else
+#error What compiler?	
 #endif
 
+
 	asm("bic sp, sp, #4 ");		// align stack to 8 byte boundary
 //  	asm("bl " CSM_ZN4User15HandleExceptionEPv );
   	asm("bl _xxxx_call_user_handle_exception ");
@@ -116,6 +121,32 @@
 #endif
 
 #endif
+#elif defined(__GCCE__)
+#ifdef __SUPPORT_CPP_EXCEPTIONS__
+
+
+  /* It is possible no functions included in the image require
+   * a handler table. Therefore make only a weak reference to
+   * the handler table base symbol, which may be absent.
+   */
+  asm(".weak .ARM.extab$$Base");
+  asm(".global Symbian$$CPP$$Exception$$Descriptor");
+
+  /* Symbian$$CPP$$Exception$$Descriptor is referenced from the Image header.
+   * A pointer to this object can be cached by the unwinder in the UCB
+   * on the assumption that the EHT for the previous frame is likely to be right
+   * for the current frame
+   */
+
+  asm("Symbian$$CPP$$Exception$$Descriptor:");
+#ifdef __LEAVE_EQUALS_THROW__
+  asm(".word .ARM.exidx$$Base");   /* index table base */
+  asm(".word .ARM.exidx$$Limit");  /* index table limit */
+#endif
+  asm(".word Image$$ER_RO$$Base + 1"); /* RO segment base + mark as ehabi v2 */
+  asm(".word Image$$ER_RO$$Limit");    /* RO segment limit */
+  asm(".word 0");                      /* reserved for future use */
+#endif
 #endif
 
 	}
--- a/kernel/eka/euser/epoc/arm/uc_exe.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/euser/epoc/arm/uc_exe.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -70,11 +70,11 @@
 	}
 }
 
-#elif defined(__ARMCC__)
+#elif defined(__EABI__)
 
 TInt CallThrdProcEntry(TInt (*aFn)(void*), void* aPtr, TInt aNotFirst);
 
-__weak void run_static_dtors(void);
+__WEAK__ void run_static_dtors(void);
 
 void globalDestructorFunc()
 	{
--- a/kernel/eka/euser/epoc/arm/uc_i64.cia	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/euser/epoc/arm/uc_i64.cia	Mon Jul 26 11:21:15 2010 +0100
@@ -21,7 +21,7 @@
 #if defined(__GCC32__)
 extern "C" void __division_by_zero();
 #define DIV_BY_ZERO " __division_by_zero "
-#elif defined(__ARMCC__)
+#elif defined(__EABI__)
 extern "C" void __rt_div0 (void);
 #define DIV_BY_ZERO " __cpp(__rt_div0) "
 #endif
--- a/kernel/eka/euser/epoc/arm/uc_realx.cia	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/euser/epoc/arm/uc_realx.cia	Mon Jul 26 11:21:15 2010 +0100
@@ -3548,7 +3548,7 @@
 #endif
 
 #ifdef __REALS_MACHINE_CODED__
-#ifndef __ARMCC__
+#ifndef __EABI__
 extern "C" {
 
 extern "C" void __math_exception(TInt aErrType);
--- a/kernel/eka/euser/euser.mmh	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/euser/euser.mmh	Mon Jul 26 11:21:15 2010 +0100
@@ -22,7 +22,7 @@
 ALWAYS_BUILD_AS_ARM
 #endif
 
-#if defined(USE_VFP_MATH) && defined(ARMCC)
+#if defined(USE_VFP_MATH) && defined(EABI)
 macro __USE_VFP_MATH
 #endif
 
--- a/kernel/eka/ewsrv/ky_tran.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/ewsrv/ky_tran.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -451,8 +451,8 @@
 	iDigits+=ch.DigitValue();
 	iErrorFlag=(TBool)(iErrorFlag
 					  || !ch.IsDigitGivenRadix(iRadix)
-					  || (iTermination==ETerminationByCtrlUp)
-						  && ((aModifiers&EModifierCtrl)==0));
+					  || ((iTermination==ETerminationByCtrlUp)
+						  && ((aModifiers&EModifierCtrl)==0)));
 	}
 //
 TBool TCtrlDigits::Terminated(TInt aModifiers) const
--- a/kernel/eka/include/cpudefs.h	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/include/cpudefs.h	Mon Jul 26 11:21:15 2010 +0100
@@ -247,7 +247,7 @@
 	#define __COBJECT_MACHINE_CODED__
 	#define __CACTIVESCHEDULER_MACHINE_CODED__
 	#define __CSERVER_MACHINE_CODED__
-	#define __ARRAY_MACHINE_CODED__
+//	#define __ARRAY_MACHINE_CODED__ IMK working around bug #2976
 	#define __HUFFMAN_MACHINE_CODED__
 #if defined(__MARM_ARM4__) || defined(__MARM_ARMI__) || defined(__MARM_THUMB__) || defined(__MARM_ARMV4__) || defined(__MARM_ARMV5__)
 	#define __DES16_MACHINE_CODED_HWORD__
--- a/kernel/eka/include/d32usbcsc.h	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/include/d32usbcsc.h	Mon Jul 26 11:21:15 2010 +0100
@@ -1336,7 +1336,9 @@
 	This return value used by GetBuffer indicates that the item pointed to by 
 	aBuffer/aOffset represents a state change, instead of endpoint data.
 	*/
-	const static TInt KStateChange = 0x01;
+	enum {
+		KStateChange = 0x01
+	};
 
 public:
 	IMPORT_C TEndpointBuffer();
--- a/kernel/eka/include/drivers/rm_debug_eventhandler.h	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/include/drivers/rm_debug_eventhandler.h	Mon Jul 26 11:21:15 2010 +0100
@@ -27,12 +27,12 @@
 		TInt Start();
 		TInt Stop();
 		
-		inline void DRM_DebugEventHandler::LockDataAccess()
+		inline void LockDataAccess()
 		    {
 		    Kern::SemaphoreWait(*iProtectionLock);
 		    }
 
-		inline void DRM_DebugEventHandler::ReleaseDataAccess()
+		inline void ReleaseDataAccess()
 		    {
 		    Kern::SemaphoreSignal(*iProtectionLock);
 		    }
--- a/kernel/eka/include/e32cia.h	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/include/e32cia.h	Mon Jul 26 11:21:15 2010 +0100
@@ -28,7 +28,7 @@
 
 // CIA symbols for USER side code
 // CIA symbol macros for Gcc98r2
-#if defined(__GCC32__)
+#if defined(__GCC32__) && !defined(__EABI__)
 #define CSM_ZN4Exec12PopTrapFrameEv " PopTrapFrame__4Exec"
 #define CSM_ZN4User7ReAllocEPvii " ReAlloc__4UserPvii"
 #define CSM_Z30PanicCObjectConIndexOutOfRangev " PanicCObjectConIndexOutOfRange__Fv"
@@ -134,8 +134,8 @@
 
 // CIA symbols for KERNEL side code
 // CIA symbol macros for Gcc98r2
-#if defined(__GCC32__)
-#define CSM_ZN1K8MsgInfoE " _1K.MsgInfo"
+#if defined(__GCC32__) && !defined(__EABI__)
+#define CSM_ZN1K7MsgInfoE " _1K.MsgInfo"
 #define CSM_ZN14NFastSemaphore6SignalEv " Signal__14NFastSemaphore"
 #define CSM_ZN4Kern4ExitEi " Exit__4Kerni"
 #define CSM_ZN5NKern4ExitEv " Exit__5NKern"
@@ -244,9 +244,12 @@
 #define CSM_ZN8DSession14PinDescriptorsEPiPA3_mPP17TVirtualPinObject "PinDescriptors__8DSessionPiPA2_UlPP17TVirtualPinObject"
 #define CSM_ZN14TClientRequest5ResetEv "Reset__14TClientRequest"
 #define CSM_ZN9RMessageK8CloseRefEv "CloseRef__9RMessageK"
+#define CSM_ZN14DBTraceFilter25CheckEm " Check__14DBTraceFilter2Ul"
+#define CSM_ZN19DKernelEventHandler8DispatchE12TKernelEventPvS1_ "Dispatch__19DKernelEventHandler12TKernelEventPvT2"
+
 #elif defined(__ARMCC__)
 // CIA symbol macros for RVCT
-#define CSM_ZN1K8MsgInfoE " __cpp(&K::MsgInfo)"
+#define CSM_ZN1K7MsgInfoE " __cpp(&K::MsgInfo)"
 #define CSM_ZN14NFastSemaphore6SignalEv " __cpp(NFastSemaphore::Signal)"
 #define CSM_ZN4Kern4ExitEi " __cpp(Kern::Exit)"
 #define CSM_ZN5NKern4ExitEv " __cpp(NKern::Exit)"
@@ -355,9 +358,11 @@
 #define CSM_ZN8DSession14PinDescriptorsEPiPA3_mPP17TVirtualPinObject " __cpp(DSession::PinDescriptors)"
 #define CSM_ZN14TClientRequest5ResetEv "__cpp(TClientRequest::Reset)"
 #define CSM_ZN9RMessageK8CloseRefEv "__cpp(RMessageK::CloseRef)"
+#define CSM_ZN14DBTraceFilter25CheckEm  " __cpp(DBTraceFilter2::Check)"
+#define CSM_ZN19DKernelEventHandler8DispatchE12TKernelEventPvS1_ "__cpp(DKernelEventHandler::Dispatch)"
 #else
 // CIA symbol macros for EABI assemblers
-#define CSM_ZN1K8MsgInfoE " _ZN1K9MsgInfoE"
+#define CSM_ZN1K7MsgInfoE " _ZN1K7MsgInfoE"
 #define CSM_ZN14NFastSemaphore6SignalEv " _ZN14NFastSemaphore6SignalEv"
 #define CSM_ZN4Kern4ExitEi " _ZN4Kern4ExitEi"
 #define CSM_ZN5NKern4ExitEv " _ZN5NKern4ExitEv"
@@ -466,27 +471,29 @@
 #define CSM_ZN8DSession14PinDescriptorsEPiPA3_mPP17TVirtualPinObject "_ZN8DSession14PinDescriptorsEPiPA3_mPP17TVirtualPinObject"
 #define CSM_ZN14TClientRequest5ResetEv "_ZN14TClientRequest5ResetEv"
 #define CSM_ZN9RMessageK8CloseRefEv "_ZN9RMessageK8CloseRefEv"
+#define CSM_ZN14DBTraceFilter25CheckEm  " _ZN14DBTraceFilter25CheckEm"
+#define CSM_ZN19DKernelEventHandler8DispatchE12TKernelEventPvS1_ " _ZN19DKernelEventHandler8DispatchE12TKernelEventPvS1_"
 #endif
 
 // CIA symbols for COMMON code (used both USER and KERNEL side)
 // CIA symbol macros for Gcc98r2
-#if defined(__GCC32__)
+#if defined(__GCC32__) && !defined(__EABI__)
 #define CSM_CFUNC(f)	#f
 #define CSM_Z26Des16PanicLengthOutOfRangev " Des16PanicLengthOutOfRange__Fv"
 #define CSM_Z20Des8PanicDesOverflowv " Des8PanicDesOverflow__Fv"
 #define CSM_ZN10RArrayBase4GrowEv " Grow__10RArrayBase"
-#define CSM_ZN3Mem8CompareCEPKtiS0_i " CompareC__3MemPCUsiT1i"
+#define CSM_ZN3Mem8CompareCEPKtiS1_i " CompareC__3MemPCUsiT1i"
 #define CSM_Z20Des16PanicBadDesTypev " Des16PanicBadDesType__Fv"
 #define CSM_Z24Des16PanicLengthNegativev " Des16PanicLengthNegative__Fv"
 #define CSM_Z19Des8PanicBadDesTypev " Des8PanicBadDesType__Fv"
-#define CSM_ZN3Mem7CompareEPKtiS0_i " Compare__3MemPCUsiT1i"
+#define CSM_ZN3Mem7CompareEPKtiS1_i " Compare__3MemPCUsiT1i"
 #define CSM_Z23Des8PanicLengthNegativev " Des8PanicLengthNegative__Fv"
 #define CSM_ZN17RPointerArrayBase4GrowEv " Grow__17RPointerArrayBase"
 #define CSM_Z28Des16PanicDesIndexOutOfRangev " Des16PanicDesIndexOutOfRange__Fv"
-#define CSM_ZN3Mem8CompareFEPKhiS0_i " CompareF__3MemPCUciT1i"
+#define CSM_ZN3Mem8CompareFEPKhiS1_i " CompareF__3MemPCUciT1i"
 #define CSM_Z5Panic9TCdtPanic " Panic__F9TCdtPanic"
 #define CSM_Z27Des8PanicDesIndexOutOfRangev " Des8PanicDesIndexOutOfRange__Fv"
-#define CSM_ZN3Mem8CompareFEPKtiS0_i " CompareF__3MemPCUsiT1i"
+#define CSM_ZN3Mem8CompareFEPKtiS1_i " CompareF__3MemPCUsiT1i"
 #define CSM_Z26Des8PanicMaxLengthNegativev " Des8PanicMaxLengthNegative__Fv"
 #define CSM_Z25Des8PanicLengthOutOfRangev " Des8PanicLengthOutOfRange__Fv"
 #define CSM_Z21Des16PanicDesOverflowv " Des16PanicDesOverflow__Fv"
@@ -494,7 +501,7 @@
 #define CSM_Z18PanicBadArrayIndexv " PanicBadArrayIndex__Fv"
 #define CSM_Z22Des8PanicPosOutOfRangev " Des8PanicPosOutOfRange__Fv"
 #define CSM_Z23Des16PanicPosOutOfRangev " Des16PanicPosOutOfRange__Fv"
-#define CSM_ZN3Mem8CompareCEPKhiS0_i " CompareC__3MemPCUciT1i"
+#define CSM_ZN3Mem8CompareCEPKhiS1_i " CompareC__3MemPCUciT1i"
 #define CSM_Z22RHeap_PanicBadNextCellv " RHeap_PanicBadNextCell__Fv"
 #define CSM_Z30PanicEWordMoveSourceNotAlignedv " PanicEWordMoveSourceNotAligned__Fv"
 #define CSM_Z30PanicEWordMoveTargetNotAlignedv " PanicEWordMoveTargetNotAligned__Fv"
@@ -508,18 +515,18 @@
 #define CSM_Z26Des16PanicLengthOutOfRangev " __cpp(Des16PanicLengthOutOfRange)"
 #define CSM_Z20Des8PanicDesOverflowv " __cpp(Des8PanicDesOverflow)"
 #define CSM_ZN10RArrayBase4GrowEv " __cpp(RArrayBase::Grow)"
-#define CSM_ZN3Mem8CompareCEPKtiS0_i " __cpp(static_cast<int (*) (const unsigned short*, int, const unsigned short*, int)>(&Mem::CompareC))"
+#define CSM_ZN3Mem8CompareCEPKtiS1_i " __cpp(static_cast<int (*) (const unsigned short*, int, const unsigned short*, int)>(&Mem::CompareC))"
 #define CSM_Z20Des16PanicBadDesTypev " __cpp(Des16PanicBadDesType)"
 #define CSM_Z24Des16PanicLengthNegativev " __cpp(Des16PanicLengthNegative)"
 #define CSM_Z19Des8PanicBadDesTypev " __cpp(Des8PanicBadDesType)"
-#define CSM_ZN3Mem7CompareEPKtiS0_i " __cpp(static_cast<int (*) (const unsigned short*, int, const unsigned short*, int)>(&Mem::Compare))"
+#define CSM_ZN3Mem7CompareEPKtiS1_i " __cpp(static_cast<int (*) (const unsigned short*, int, const unsigned short*, int)>(&Mem::Compare))"
 #define CSM_Z23Des8PanicLengthNegativev " __cpp(Des8PanicLengthNegative)"
 #define CSM_ZN17RPointerArrayBase4GrowEv " __cpp(RPointerArrayBase::Grow)"
 #define CSM_Z28Des16PanicDesIndexOutOfRangev " __cpp(Des16PanicDesIndexOutOfRange)"
-#define CSM_ZN3Mem8CompareFEPKhiS0_i " __cpp(static_cast<int (*) (const unsigned char*, int, const unsigned char*, int)>(&Mem::CompareF))"
+#define CSM_ZN3Mem8CompareFEPKhiS1_i " __cpp(static_cast<int (*) (const unsigned char*, int, const unsigned char*, int)>(&Mem::CompareF))"
 #define CSM_Z5Panic9TCdtPanic " __cpp(Panic)"
 #define CSM_Z27Des8PanicDesIndexOutOfRangev " __cpp(Des8PanicDesIndexOutOfRange)"
-#define CSM_ZN3Mem8CompareFEPKtiS0_i " __cpp(static_cast<int (*) (const unsigned short*, int, const unsigned short*, int)>(&Mem::CompareF))"
+#define CSM_ZN3Mem8CompareFEPKtiS1_i " __cpp(static_cast<int (*) (const unsigned short*, int, const unsigned short*, int)>(&Mem::CompareF))"
 #define CSM_Z26Des8PanicMaxLengthNegativev " __cpp(Des8PanicMaxLengthNegative)"
 #define CSM_Z25Des8PanicLengthOutOfRangev " __cpp(Des8PanicLengthOutOfRange)"
 #define CSM_Z21Des16PanicDesOverflowv " __cpp(Des16PanicDesOverflow)"
@@ -527,7 +534,7 @@
 #define CSM_Z18PanicBadArrayIndexv " __cpp(PanicBadArrayIndex)"
 #define CSM_Z22Des8PanicPosOutOfRangev " __cpp(Des8PanicPosOutOfRange)"
 #define CSM_Z23Des16PanicPosOutOfRangev " __cpp(Des16PanicPosOutOfRange)"
-#define CSM_ZN3Mem8CompareCEPKhiS0_i " __cpp(static_cast<int (*) (const unsigned char*, int, const unsigned char*, int)>(&Mem::CompareC))"
+#define CSM_ZN3Mem8CompareCEPKhiS1_i " __cpp(static_cast<int (*) (const unsigned char*, int, const unsigned char*, int)>(&Mem::CompareC))"
 #define CSM_Z22RHeap_PanicBadNextCellv " __cpp(RHeap_PanicBadNextCell)"
 #define CSM_Z30PanicEWordMoveSourceNotAlignedv " __cpp(PanicEWordMoveSourceNotAligned)"
 #define CSM_Z30PanicEWordMoveTargetNotAlignedv " __cpp(PanicEWordMoveTargetNotAligned)"
@@ -540,18 +547,18 @@
 #define CSM_Z26Des16PanicLengthOutOfRangev " _Z26Des16PanicLengthOutOfRangev"
 #define CSM_Z20Des8PanicDesOverflowv " _Z20Des8PanicDesOverflowv"
 #define CSM_ZN10RArrayBase4GrowEv " _ZN10RArrayBase4GrowEv"
-#define CSM_ZN3Mem8CompareCEPKtiS0_i " _ZN3Mem8CompareCEPKtiS0_i"
+#define CSM_ZN3Mem8CompareCEPKtiS1_i " _ZN3Mem8CompareCEPKtiS1_i"
 #define CSM_Z20Des16PanicBadDesTypev " _Z20Des16PanicBadDesTypev"
 #define CSM_Z24Des16PanicLengthNegativev " _Z24Des16PanicLengthNegativev"
 #define CSM_Z19Des8PanicBadDesTypev " _Z19Des8PanicBadDesTypev"
-#define CSM_ZN3Mem7CompareEPKtiS0_i " _ZN3Mem7CompareEPKtiS0_i"
+#define CSM_ZN3Mem7CompareEPKtiS1_i " _ZN3Mem7CompareEPKtiS1_i"
 #define CSM_Z23Des8PanicLengthNegativev " _Z23Des8PanicLengthNegativev"
 #define CSM_ZN17RPointerArrayBase4GrowEv " _ZN17RPointerArrayBase4GrowEv"
 #define CSM_Z28Des16PanicDesIndexOutOfRangev " _Z28Des16PanicDesIndexOutOfRangev"
-#define CSM_ZN3Mem8CompareFEPKhiS0_i " _ZN3Mem8CompareFEPKhiS0_i"
+#define CSM_ZN3Mem8CompareFEPKhiS1_i " _ZN3Mem8CompareFEPKhiS1_i" 
 #define CSM_Z5Panic9TCdtPanic " _Z5Panic9TCdtPanic"
 #define CSM_Z27Des8PanicDesIndexOutOfRangev " _Z27Des8PanicDesIndexOutOfRangev"
-#define CSM_ZN3Mem8CompareFEPKtiS0_i " _ZN3Mem8CompareFEPKtiS0_i"
+#define CSM_ZN3Mem8CompareFEPKtiS1_i " _ZN3Mem8CompareFEPKtiS1_i"
 #define CSM_Z26Des8PanicMaxLengthNegativev " _Z26Des8PanicMaxLengthNegativev"
 #define CSM_Z25Des8PanicLengthOutOfRangev " _Z25Des8PanicLengthOutOfRangev"
 #define CSM_Z21Des16PanicDesOverflowv " _Z21Des16PanicDesOverflowv"
@@ -559,7 +566,7 @@
 #define CSM_Z18PanicBadArrayIndexv " _Z18PanicBadArrayIndexv"
 #define CSM_Z22Des8PanicPosOutOfRangev " _Z22Des8PanicPosOutOfRangev"
 #define CSM_Z23Des16PanicPosOutOfRangev " _Z23Des16PanicPosOutOfRangev"
-#define CSM_ZN3Mem8CompareCEPKhiS0_i " _ZN3Mem8CompareCEPKhiS0_i"
+#define CSM_ZN3Mem8CompareCEPKhiS1_i " _ZN3Mem8CompareCEPKhiS1_i"
 #define CSM_Z22RHeap_PanicBadNextCellv " _Z22RHeap_PanicBadNextCellv"
 #define CSM_Z30PanicEWordMoveSourceNotAlignedv " _Z30PanicEWordMoveSourceNotAlignedv"
 #define CSM_Z30PanicEWordMoveTargetNotAlignedv " _Z30PanicEWordMoveTargetNotAlignedv"
--- a/kernel/eka/include/e32cmn.inl	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/include/e32cmn.inl	Mon Jul 26 11:21:15 2010 +0100
@@ -6992,7 +6992,7 @@
 inline const TSecureId* SSecureId::operator&() const
 	{ return (const TSecureId*)this; }
 inline SSecureId::operator const TSecureId&() const
-	{ /* coverity[return_local_addr] */ return (const TSecureId&)iId; }
+	{ return reinterpret_cast<const TSecureId&>(iId); }
 inline SSecureId::operator TUint32() const
 	{ return iId; }
 inline SSecureId::operator TUid() const
@@ -7032,7 +7032,7 @@
 inline const TVendorId* SVendorId::operator&() const
 	{ return (const TVendorId*)this; }
 inline SVendorId::operator const TVendorId&() const
-	{ /* coverity[return_local_addr] */ return (const TVendorId&)iId; }
+	{ return reinterpret_cast<const TVendorId&>(iId); }
 inline SVendorId::operator TUint32() const
 	{ return iId; }
 inline SVendorId::operator TUid() const
--- a/kernel/eka/include/e32def.h	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/include/e32def.h	Mon Jul 26 11:21:15 2010 +0100
@@ -443,10 +443,11 @@
 @see TDblQue
 */
 #ifndef _FOFF
+#define _FOFF_DYNAMIC(c,f)	(((TInt)&(((c *)0x1000)->f))-0x1000)		// can be a runtime calculation if f is not sufficiently constant
 #if __GNUC__ < 4
-#define _FOFF(c,f)			(((TInt)&(((c *)0x1000)->f))-0x1000)
+#define _FOFF(c,f)			_FOFF_DYNAMIC(c,f)
 #else
-#define _FOFF(c,f)			__builtin_offsetof(c,f)
+#define _FOFF(c,f)			(__builtin_offsetof(c,f))
 #endif
 #endif
 
--- a/kernel/eka/include/kernel/execs.h	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/include/kernel/execs.h	Mon Jul 26 11:21:15 2010 +0100
@@ -127,7 +127,7 @@
 #define FAST_EXEC_END
 
 #define DECLARE_WORD(n)				asm(".word %a0" : : "i" ((TInt)n));
-#define	DECLARE_FUNC(f)				asm(".word %a0" : : "i" ((TInt)&f));
+#define	DECLARE_FUNC(f)				asm(".word %a0" : : "i" (&f));
 #define	DECLARE_FAST_EXEC_INVALID	DECLARE_FUNC(InvalidFastExec)
 
 #define	SLOW_EXEC_BEGIN	\
--- a/kernel/eka/include/page_alloc.h	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/include/page_alloc.h	Mon Jul 26 11:21:15 2010 +0100
@@ -18,7 +18,7 @@
 #ifndef __KERNEL_MODE__ 
 
 const int MAXSMALLPAGEBITS = 68<<3;
-#define MINPAGEPOWER	PAGESHIFT+2
+#define MINPAGEPOWER	((PAGESHIFT)+2)
 
 struct paged_bitmap
 {
--- a/kernel/eka/kernel/arm/cache_maintenance.cia	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/kernel/arm/cache_maintenance.cia	Mon Jul 26 11:21:15 2010 +0100
@@ -58,9 +58,9 @@
 	__JUMP(,lr);
 
 	asm("__DCacheInfo: ");
-	asm(".word %a0" : : "i" ((TInt)&InternalCache::Info[KCacheInfoD]));
+	asm(".word %a0" : : "i" (&InternalCache::Info[KCacheInfoD]));
 	asm("__ICacheInfo: ");
-	asm(".word %a0" : : "i" ((TInt)&InternalCache::Info[KCacheInfoI]));
+	asm(".word %a0" : : "i" (&InternalCache::Info[KCacheInfoI]));
 	asm("__TheScheduler: ");
 	asm(".word TheScheduler ");
 	}
@@ -340,7 +340,7 @@
 	__JUMP(,lr);
 	
 	asm("__ExternalCacheCtrlBase: ");
-	asm(".word %a0" : : "i" ((TInt)&Base));
+	asm(".word %a0" : : "i" (&Base));
 	asm("__KDummyUncachedAddr: ");
 	asm(".word %a0" : : "i" ((TInt)KDummyUncachedAddr));
 }
@@ -376,7 +376,7 @@
 	__POPRET("");
 	
 	asm("__ExternalCacheCtrlBase: ");
-	asm(".word %a0" : : "i" ((TInt)&Base));
+	asm(".word %a0" : : "i" (&Base));
 	asm("__KDummyUncachedAddr: ");
 	asm(".word %a0" : : "i" ((TInt)KDummyUncachedAddr));
 }
@@ -413,10 +413,10 @@
 	__POPRET("");
 	
 	asm("__ExternalCacheCtrlBase: ");
-	asm(".word %a0" : : "i" ((TInt)&Base));
+	asm(".word %a0" : : "i" (&Base));
 #if defined(__SMP__)
 	asm("__PL310SpinLock: ");
-	asm(".word %a0" : : "i" ((TInt)&iLock));
+	asm(".word %a0" : : "i" (&iLock));
 #endif	
 }
 #endif //(__ARM_L210_CACHE__) or (__ARM_L220_CACHE__) or (__ARM_PL310_CACHE__)
--- a/kernel/eka/kernel/arm/cache_maintenancev7.cia	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/kernel/arm/cache_maintenancev7.cia	Mon Jul 26 11:21:15 2010 +0100
@@ -72,11 +72,11 @@
 	__JUMP(,lr);
 
 	asm("__DCacheInfoPoU: ");
-	asm(".word %a0" : : "i" ((TInt)&InternalCache::Info[KCacheInfoD_PoU]));
+	asm(".word %a0" : : "i" (&InternalCache::Info[KCacheInfoD_PoU]));
 	asm("__DCacheInfoPoC: ");
-	asm(".word %a0" : : "i" ((TInt)&InternalCache::Info[KCacheInfoD]));
+	asm(".word %a0" : : "i" (&InternalCache::Info[KCacheInfoD]));
 	asm("__ICacheInfo: ");
-	asm(".word %a0" : : "i" ((TInt)&InternalCache::Info[KCacheInfoI]));
+	asm(".word %a0" : : "i" (&InternalCache::Info[KCacheInfoI]));
 	}
 
 __NAKED__ void InternalCache::IMB_CacheLine(TLinAddr /*aAddr*/)
--- a/kernel/eka/kernel/arm/cexec.cia	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/kernel/arm/cexec.cia	Mon Jul 26 11:21:15 2010 +0100
@@ -838,7 +838,7 @@
 	asm("b  " CSM_ZN1K18PanicCurrentThreadEi);
 
 	asm("__KernMsgInfo: ");
-	asm(".word  " CSM_ZN1K8MsgInfoE);
+	asm(".word  " CSM_ZN1K7MsgInfoE);
 	}
 
 
--- a/kernel/eka/kernel/arm/cipc.cia	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/kernel/arm/cipc.cia	Mon Jul 26 11:21:15 2010 +0100
@@ -432,6 +432,6 @@
 	asm(".word TheScheduler ");
 #endif
 	asm("__K_MsgInfo: ");
-	asm(".word  " CSM_ZN1K8MsgInfoE);
+	asm(".word  " CSM_ZN1K7MsgInfoE);
 	}
 #endif
--- a/kernel/eka/kernel/arm/ckernel.cia	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/kernel/arm/ckernel.cia	Mon Jul 26 11:21:15 2010 +0100
@@ -38,7 +38,7 @@
 #ifdef __DEBUGGER_SUPPORT__
 	asm("mov r0, #%a0" : : "i" ((TInt)EEventStartThread));
 	asm("mov r1, r4");
-	asm("bl	Dispatch__19DKernelEventHandler12TKernelEventPvT2");
+	asm("bl	" CSM_ZN19DKernelEventHandler8DispatchE12TKernelEventPvS1_);
 #endif
 #ifdef __EMI_SUPPORT__
 	asm("mov r0,r4");                                   // a1=DThread;
@@ -271,7 +271,7 @@
 	asm(".word TheScheduler ");
 #endif
 	asm("__IpcExcHandler: ");
-	asm(".word %a0" : : "i" ((TInt)DThread::IpcExcHandler));
+	asm(".word %a0" : : "i" (DThread::IpcExcHandler));
 	asm("__default_exc_trap_handler: ");
 	asm("mov r1, #%a0" : : "i" ((TInt)KErrBadDescriptor));	// r0 already contains pointer to TExcTrap
 	// fall through
@@ -544,7 +544,7 @@
 	__JUMP(,lr);
 
 	asm("__FirstFree: ");
-	asm(".word %a0" : : "i" ((TInt)&FirstFree));
+	asm(".word %a0" : : "i" (&FirstFree));
 	}
 
 __NAKED__ void TThreadWaitList::ChangePriority(DThread* aThread, TInt aNewPriority)
--- a/kernel/eka/kernel/arm/d_entry.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/kernel/arm/d_entry.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -49,11 +49,11 @@
 	return KernelModuleEntry(aReason);
 	}
 
-#elif defined(__ARMCC__)
+#elif defined(__EABI__)
 
 void __DLL_Export_Table__(void);
 void __cpp_initialize__aeabi_(void);
-__weak void run_static_dtors(void);
+__WEAK__ void run_static_dtors(void);
 
 GLDEF_C TInt _E32Dll_Body(TInt aReason)
 //
--- a/kernel/eka/kernel/arm/k_entry.cia	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/kernel/arm/k_entry.cia	Mon Jul 26 11:21:15 2010 +0100
@@ -71,7 +71,7 @@
 	asm("__CtorList: ");
 	asm(".word __CTOR_LIST__ ");
 	}
-#elif defined(__ARMCC__)
+#elif defined(__EABI__)
 void __DLL_Export_Table__(void);
 void __cpp_initialize__aeabi_();
   
@@ -80,7 +80,7 @@
 void __record_needed_destruction (void * d){}
 // 2.1 calls __aeabi_atexit passing __dso_handle. This can be a dummy (i.e. just a label)
 
-__asm void __dso_handle(void) {}
+__NAKED__ void __dso_handle(void) {}
 void __aeabi_atexit(void *object, void (*dtor)(void *), void *handle){}
 
 void _E32Startup_Body(TLinAddr aRomHeader, TLinAddr aSuperPage);
--- a/kernel/eka/kernel/arm/l_entry.cia	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/kernel/arm/l_entry.cia	Mon Jul 26 11:21:15 2010 +0100
@@ -19,7 +19,7 @@
 
 extern "C" {
 
-#if defined(__ARMCC__)
+#if defined(__EABI__)
 void __DLL_Export_Table__(void);
 #endif
 
--- a/kernel/eka/kernel/arm/v_entry.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/kernel/arm/v_entry.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -46,7 +46,7 @@
 	return KErrGeneral;
 	}
 
-#elif defined(__ARMCC__)
+#elif defined(__EABI__)
 
 void __DLL_Export_Table__(void);
 void __cpp_initialize__aeabi_();
@@ -55,7 +55,7 @@
 // needs destruction. But kernel side static objects will never need this so, define it as a nop
 void __record_needed_destruction (void * d){}
 // 2.1 calls __aeabi_atexit passing __dso_handle. This can just be a label since its not used
-__asm void __dso_handle(void) {}
+__NAKED__ void __dso_handle(void) {}
 void __aeabi_atexit(void *object, void (*dtor)(void *), void *handle){}
 
 GLDEF_C TInt _E32Dll_Body(TInt aReason)
--- a/kernel/eka/kernel/arm/x_entry.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/kernel/arm/x_entry.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -41,7 +41,7 @@
 	return KernelModuleEntry(aReason);
 	}
 
-#elif defined(__ARMCC__)
+#elif defined(__EABI__)
 
 void __DLL_Export_Table__(void);
 void __cpp_initialize__aeabi_();
@@ -50,7 +50,7 @@
 // needs destruction. But the kernel never will need this so, define it as a nop
 void __record_needed_destruction (void * d){}
 // 2.1 calls __aeabi_atexit passing __dso_handle. This can just be a label since its not used.
-__asm void __dso_handle(void){}
+__NAKED__ void __dso_handle(void){}
 void __aeabi_atexit(void *object, void (*dtor)(void *), void *handle){}
 
 GLDEF_C TInt _E32Dll_Body(TInt aReason)
--- a/kernel/eka/kernel/ekern.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/kernel/ekern.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -87,13 +87,15 @@
 source					 ckdes8.cia cumem.cia cbma.cia
 sourcepath				../common/arm
 source					carray.cia cdes8.cia cmem.cia
-#if defined(GCC32)
-source 					cgcchelp.cpp cgcchelp.cia
-#elif defined(ARMCC)
+#if defined(ARMCC)
 source					armcchlp.cpp
 #ifndef SBSV2
 source					armcchlp.cia
 #endif
+#elif defined(GCCE)
+source					gccehlp.cpp
+#elif defined(GCC32)
+source 					cgcchelp.cpp cgcchelp.cia
 #endif
 
 #if defined(REPLACE_GENERIC_UTILS)
--- a/kernel/eka/kernel/kdebug.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/kernel/kdebug.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -563,7 +563,7 @@
 		DChunk* chunk = (DChunk*)a1;
 
 		//The chunk will not neccesarily have an owning process.
-		interested = hdrPresent && ( !chunk->iOwningProcess && hdr->iFlags & TFilterHeader::EGlobalEvents ||
+		interested = hdrPresent && ( (!chunk->iOwningProcess && hdr->iFlags & TFilterHeader::EGlobalEvents) ||
 				(chunk->iOwningProcess && DEventHandler::InterestedIn(aType, *(chunk->iOwningProcess->iName))));
 
 		Change() |= KDebuggerChangeChunk;
--- a/kernel/eka/kernel/smonitor.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/kernel/smonitor.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -655,7 +655,7 @@
 	__KTRACE_OPT(KALWAYS,Kern::Printf("All monitors have completed.  Restarting..."));
 	//Ensure all characters make it to the serial port...
 	__KTRACE_OPT(KALWAYS,Kern::Printf("                                           "));
-	if(restartType&ESoftRestart == ESoftRestart)
+	if((restartType&ESoftRestart) == ESoftRestart)
 		Kern::Restart(0);
 	else //EHardRestart
 		Kern::Restart(0x80000000);
--- a/kernel/eka/kernel/sprocess.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/kernel/sprocess.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -32,7 +32,7 @@
 DProcess::DProcess()
 	: iPriority(EProcPriorityForeground),
 	  iExitType((TUint8)EExitPending), iGeneration(1), iFlags(KProcessFlagJustInTime),
-	  iDynamicCode(8, _FOFF(SCodeSegEntry, iSeg), 2*256)
+	  iDynamicCode(8, (TInt)_FOFF(SCodeSegEntry, iSeg), 2*256)
 	{
 	//reserve slot 0 for later use for the command line
 	iEnvironmentData[0] = EBinaryData;
@@ -115,7 +115,7 @@
 TInt DProcess::SetPaging(const TProcessCreateInfo& aInfo)
 	{// Default implementation that only verifies flags, this virtual method 
 	// is overridden in memory models that support paging.
-	if (aInfo.iFlags & TProcessCreateInfo::EDataPagingMask == 
+	if ((aInfo.iFlags & TProcessCreateInfo::EDataPagingMask) == 
 		TProcessCreateInfo::EDataPagingMask)
 		{
 		return KErrCorrupt;	
--- a/kernel/eka/memmodel/epoc/mmubase/ramalloc.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/memmodel/epoc/mmubase/ramalloc.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -396,9 +396,9 @@
 	aZone->iFlags &= ~KRamZoneFlagMark;	// clear the mark as this zone is active
 
 	// Check if power state of zone needs to be changed
-	if (iZonePowerFunc && !(iZonePwrState & (((TUint64)1) << aZone - iZones)))
+	if (iZonePowerFunc && !(iZonePwrState & (((TUint64)1) << (aZone - iZones))))
 		{//zone no longer empty so call variant to power RAM zone up if necessary
-		iZonePwrState |= (((TUint64)1) << aZone - iZones);
+		iZonePwrState |= (((TUint64)1) << (aZone - iZones));
 
 		if (iZoneCallbackInitSent)
 			{
@@ -541,7 +541,7 @@
 	if (iZonePowerFunc && !(aZone->iFlags & KRamZoneFlagClaiming) &&
 		aZone->iFreePages == aZone->iPhysPages)
 		{// Zone is empty so call variant to power down RAM zone if desirable.
-		TUint64 pwrMask = ~(((TUint64)1) << aZone - iZones);
+		TUint64 pwrMask = ~(((TUint64)1) << (aZone - iZones));
 		iZonePwrState &= pwrMask;
 
 		// Don't invoke callback until Init callback sent.
@@ -1009,7 +1009,7 @@
 		for (; zone2 < lastZone; zone2++)
 			{
 			if (zone->iPref > zone2->iPref ||
-				zone->iPref == zone2->iPref && zone->iFreePages > zone2->iFreePages)
+				(zone->iPref == zone2->iPref && zone->iFreePages > zone2->iFreePages))
 				{
 				lowerZones++;
 				}
--- a/kernel/eka/nkern/arm/ncsched.cia	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/nkern/arm/ncsched.cia	Mon Jul 26 11:21:15 2010 +0100
@@ -895,7 +895,7 @@
 	__JUMP(,lr);
 
 	asm("__PendingDfcQueue: ");
-	asm(".word %a0" : : "i" ((TInt)&TheScheduler.iDfcs));
+	asm(".word %a0" : : "i" (&TheScheduler.iDfcs));
 	}
 
 
@@ -1760,11 +1760,11 @@
 	SET_THUMB2EE_HNDLR_BASE(,r1);			
 #endif
 #ifdef __CPU_HAS_CP15_THREAD_ID_REG
-	SET_RWRW_TID(,r3)						// restore Thread ID from r3
+	SET_RWRW_TID(,r3);						// restore Thread ID from r3
 #endif 
 	asm("mov r3, r2 ");						// r3=TheCurrentThread
 #ifdef __CPU_HAS_COPROCESSOR_ACCESS_REG
-	SET_CAR(,r10)
+	SET_CAR(,r10);
 #endif
 #ifdef __CPU_ARM_USE_DOMAINS
 	asm("mcr p15, 0, r11, c3, c0, 0 ");
@@ -1850,7 +1850,7 @@
 	asm("__TheScheduler: ");
 	asm(".word TheScheduler ");
 	asm("__SystemLock: ");
-	asm(".word %a0" : : "i" ((TInt)&TheScheduler.iLock));
+	asm(".word %a0" : : "i" (&TheScheduler.iLock));
 #ifdef BTRACE_CPU_USAGE
 	asm("context_switch_trace_header:");
 	asm(".word %a0" : : "i" ((TInt)(8<<BTrace::ESizeIndex) + (BTrace::EContextIdPresent<<BTrace::EFlagsIndex*8) + (BTrace::ECpuUsage<<BTrace::ECategoryIndex*8) + (BTrace::ENewThreadContext<<BTrace::ESubCategoryIndex*8)) );
@@ -2308,7 +2308,7 @@
 	asm("ldr pc, [sp], #4 ");
 
 	asm("__RescheduleNeededFlag: ");
-	asm(".word %a0" : : "i" ((TInt)&TheScheduler.iRescheduleNeededFlag));
+	asm(".word %a0" : : "i" (&TheScheduler.iRescheduleNeededFlag));
 	}
 
 
--- a/kernel/eka/nkern/arm/ncutilf.cia	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/nkern/arm/ncutilf.cia	Mon Jul 26 11:21:15 2010 +0100
@@ -81,7 +81,7 @@
 	asm("b  " CSM_ZN5NKern6UnlockEv);
 
 	asm("__SystemLock: ");
-	asm(".word %a0" : : "i" ((TInt)&TheScheduler.iLock));
+	asm(".word %a0" : : "i" (&TheScheduler.iLock));
 	asm("__TheScheduler: ");
 	asm(".word TheScheduler ");
 	}
--- a/kernel/eka/nkern/arm/ncutils.cia	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/nkern/arm/ncutils.cia	Mon Jul 26 11:21:15 2010 +0100
@@ -303,7 +303,7 @@
 	__ASM_CRASH();
 
 	asm("__CrashState: ");
-	asm(".word %a0" : : "i" ((TInt)&CrashState));
+	asm(".word %a0" : : "i" (&CrashState));
 	}
 
 
@@ -501,7 +501,7 @@
 
 
 	asm("mov	r6, r0");
-	asm("bl		Check__14DBTraceFilter2Ul");
+	asm("bl	" CSM_ZN14DBTraceFilter25CheckEm);
 	// r0 = result
 
 
--- a/kernel/eka/nkern/arm/nk_entry.cia	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/nkern/arm/nk_entry.cia	Mon Jul 26 11:21:15 2010 +0100
@@ -80,7 +80,7 @@
 	asm("__CtorList: ");
 	asm(".word __CTOR_LIST__ ");
 	}
-#elif defined(__ARMCC__)
+#elif defined(__EABI__)
 void __DLL_Export_Table__(void);
 void __cpp_initialize__aeabi_();
   
@@ -89,7 +89,7 @@
 void __record_needed_destruction (void * d){}
 // 2.1 calls __aeabi_atexit passing __dso_handle. This can be a dummy (i.e. just a label)
 
-__asm void __dso_handle(void) {}
+__NAKED__  void __dso_handle(void) {}
 void __aeabi_atexit(void *object, void (*dtor)(void *), void *handle){}
 
 void _E32Startup_Body(TLinAddr aRomHeader, TLinAddr aSuperPage);
--- a/kernel/eka/nkernsmp/arm/ncsched.cia	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/nkernsmp/arm/ncsched.cia	Mon Jul 26 11:21:15 2010 +0100
@@ -866,7 +866,7 @@
 	asm("stmfd	sp!, {r0,lr} ");
 	asm("mov	r0, r3 ");
 	asm("mov	r1, r12 ");
-	asm("bl		ReschedInactiveCpus__10TSchedulerUl ");
+	asm("bl		ReschedInactiveCpus__10TSchedulerUl ");	// CSM needed
 	asm("mov	r12, r0 ");
 	asm("ldmfd	sp!, {r0,lr} ");
 	asm("ldr	r2, [r0, #%a0]" : : "i" _FOFF(TSubScheduler, iSSX.iGicDistAddr));
--- a/kernel/eka/nkernsmp/arm/ncthrd.cia	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/nkernsmp/arm/ncthrd.cia	Mon Jul 26 11:21:15 2010 +0100
@@ -576,15 +576,15 @@
 	asm("mov	r4, r0 ");
 	asm("mov	r5, r1 ");
 	asm("mov	r0, r1 ");
-	asm("bl		AcqSLock__12NSchedulable ");
+	asm("bl		AcqSLock__12NSchedulable "); // CSM needed
 	asm("add	r0, r5, #%a0" : : "i" _FOFF(NThreadBase, iWaitState));
 	asm("mov	r1, #%a0" : : "i" ((TInt)NThreadBase::EWaitFastSemaphore));
 	asm("mov	r2, r4 ");
 	asm("mov	r3, #0 ");
-	asm("bl		UnBlockT__16NThreadWaitStateUiPvi ");
+	asm("bl		UnBlockT__16NThreadWaitStateUiPvi "); // CSM needed
 	asm("mov	r0, r5 ");
 	asm("ldmfd	sp!, {r4-r6,lr} ");
-	asm("b		RelSLock__12NSchedulable ");
+	asm("b		RelSLock__12NSchedulable "); // CSM needed
 	}
 
 
@@ -707,7 +707,7 @@
 	__ASM_STI();
 	asm("bl		fs_signal_wake ");			// wake up the thread
 	asm("ldmfd	sp!, {r4,lr} ");
-	asm("b		Unlock__5NKern ");
+	asm("b " CSM_ZN5NKern6UnlockEv);
 	}
 
 
@@ -960,14 +960,14 @@
 	asm("bne	1b ");						// no - retry
 	asm("mov	r6, r0 ");
 	asm("tst	r4, #%a0" : : "i" ((TInt)EWtStTimeout));
-	asm("blne	CancelTimerT__16NThreadWaitState ");
+	asm("blne	CancelTimerT__16NThreadWaitState "); // CSM needed
 	asm("tst	r4, #%a0" : : "i" ((TInt)EWtStWaitActive));
 	asm("beq	0f ");
 	asm("ldr	r1, [r6, #%a0]" : : "i" (_FOFF(NThreadBase,iPauseCount)-_FOFF(NThreadBase,iWaitState)));
 	asm("sub	r0, r6, #%a0" : : "i" _FOFF(NThreadBase,iWaitState));	// r0 = Thread()
 	asm("movs	r1, r1, lsl #16 ");				// check if iPauseCount=iSuspendCount=0
 	asm("andeq	r1, r4, #%a0" : : "i" ((TInt)EWtStObstructed));
-	asm("bleq	ReadyT__12NSchedulableUi ");	// if so, make thread ready
+	asm("bleq	ReadyT__12NSchedulableUi ");	// if so, make thread ready // CSM needed
 	asm("0:		");
 	asm("mov	r0, #0 ");
 	__POPRET("	r4-r6,");					// return KErrNone
@@ -1002,7 +1002,7 @@
 
 	asm("2:		");
 	asm("mov	r5, lr ");
-	asm("bl		CancelTimerT__16NThreadWaitState ");
+	asm("bl		CancelTimerT__16NThreadWaitState "); // CSM needed
 	asm("mov	r0, r4 ");
 	asm("mov	lr, r5 ");
 	asm("ldmfd	sp!, {r4-r5} ");
@@ -1039,7 +1039,7 @@
 	asm("ldr	r0, btrace_hdr_fmsignal ");
 	asm("mov	r2, #0 ");
 	asm("mov	r3, #0 ");
-	asm("bl		OutX__6BTraceUlUlUlUl ");
+	asm("bl	" CSM_ZN6BTrace4OutXEmmmm);
 	asm("ldmfd	sp!, {r0,lr} ");
 #endif
 	GET_RWNO_TID(,r3);
@@ -1069,7 +1069,7 @@
 	asm("orr	r12, r0, #1 ");
 	asm("str	r12, [r1, #%a0]" : : "i" _FOFF(NThreadBase,iHeldFastMutex));
 	__ASM_STI();
-	asm("b		DoSignalL__10NFastMutex ");
+	asm("b		DoSignalL__10NFastMutex "); // CSM needed
 	}
 
 
@@ -1137,7 +1137,7 @@
 	asm("ldr	r0, btrace_hdr_fmwait ");
 	asm("mov	r2, #0 ");
 	asm("mov	r3, #0 ");
-	asm("b		OutX__6BTraceUlUlUlUl ");
+	asm("b " CSM_ZN6BTrace4OutXEmmmm);
 #endif
 	__JUMP(,lr);					// mutex acquired without contention
 
@@ -1149,9 +1149,9 @@
 	__ASM_STI();
 	__DATA_MEMORY_BARRIER_Z__(r12);
 	asm("stmfd	sp!, {r4,lr} ");
-	asm("bl		DoWaitL__10NFastMutex ");
+	asm("bl		DoWaitL__10NFastMutex "); // CSM needed
 	asm("ldmfd	sp!, {r4,lr} ");
-	asm("b		Unlock__5NKern ");
+	asm("b " CSM_ZN5NKern6UnlockEv);
 
 	asm("__SystemLock: ");
 	asm(".word	%a0" : : "i" ((TInt)&TheScheduler.iLock));
@@ -1195,7 +1195,7 @@
 	asm("ldr	r0, btrace_hdr_fmsignal ");
 	asm("mov	r2, #0 ");
 	asm("mov	r3, #0 ");
-	asm("bl		OutX__6BTraceUlUlUlUl ");
+	asm("bl	" CSM_ZN6BTrace4OutXEmmmm);
 	asm("ldmfd	sp!, {r0,lr} ");
 #endif
 	__ASM_CLI();
@@ -1223,9 +1223,9 @@
 	asm("str	r12, [r3, #%a0]" : : "i" _FOFF(TSubScheduler,iKernLockCount));
 	asm("str	r4, [r1, #%a0]" : : "i" _FOFF(NThreadBase,iHeldFastMutex));
 	__ASM_STI();
-	asm("bl		DoSignalL__10NFastMutex ");
+	asm("bl		DoSignalL__10NFastMutex "); // CSM needed
 	asm("ldmfd	sp!, {r4,lr} ");
-	asm("b		Unlock__5NKern ");
+	asm("b " CSM_ZN5NKern6UnlockEv);
 	}
 
 
@@ -1298,7 +1298,7 @@
 	asm("stmfd	sp!, {r4,lr} ");
 	asm("mov	r2, #0 ");
 	asm("mov	r3, #0 ");
-	asm("bl		OutX__6BTraceUlUlUlUl ");
+	asm("bl	" CSM_ZN6BTrace4OutXEmmmm);
 	asm("ldmfd	sp!, {r4,lr} ");
 #endif
 	asm("mov	r0, #0 ");
@@ -1315,11 +1315,11 @@
 	__ASM_STI();
 	asm("stmfd	sp!, {r4,lr} ");
 	asm("mov	r4, r0 ");
-	asm("bl		Signal__10NFastMutex ");
-	asm("bl		PreemptionPoint__5NKern ");
+	asm("bl	" CSM_ZN10NFastMutex6SignalEv);
+	asm("bl	" CSM_ZN5NKern15PreemptionPointEv);
 	asm("mov	r0, r4 ");
-	asm("bl		Wait__10NFastMutex ");
-	asm("bl		Unlock__5NKern ");
+	asm("bl	" CSM_ZN10NFastMutex4WaitEv);
+	asm("bl	" CSM_ZN5NKern6UnlockEv);
 	asm("ldmfd	sp!, {r4,lr} ");
 	asm("mov	r0, #1 ");
 	__JUMP(,lr);								// return TRUE
--- a/kernel/eka/nkernsmp/arm/ncutils.cia	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/nkernsmp/arm/ncutils.cia	Mon Jul 26 11:21:15 2010 +0100
@@ -592,7 +592,7 @@
 	asm("btrace_check_filter2: ");
 	asm("stmfd	sp!, {r0,r1,r3,r4,r12,lr} ");
 	asm("mov	r0, r12 ");
-	asm("bl		CheckFilter2__11SBTraceDataUl ");
+	asm("bl		CheckFilter2__11SBTraceDataUl ");  // CSM needed
 	asm("cmp	r0, #0 ");
 	asm("beq	0f ");
 	asm("mrs	r14, cpsr ");
--- a/kernel/eka/nkernsmp/arm/vectors.cia	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/nkernsmp/arm/vectors.cia	Mon Jul 26 11:21:15 2010 +0100
@@ -157,7 +157,7 @@
 #ifndef __FAST_SEM_MACHINE_CODED__
 	asm("wait_for_any_request: ");
 	__ASM_STI();							// all interrupts on
-	asm("b		WaitForAnyRequest__5NKern ");
+	asm("b		WaitForAnyRequest__5NKern "); // CSM needed
 #else
 	asm(".global exec_wfar_wait ");
 	asm("exec_wfar_wait: ");
@@ -1005,7 +1005,7 @@
 	// CsFunction outstanding so do it
 	asm("5:		");
 	__ASM_STI();					// enable interrupts
-	asm("bl		ThreadLeaveCS__5NKern ");
+	asm("bl	" CSM_ZN5NKern13ThreadLeaveCSEv);
 	__ASM_CLI();					// turn off interrupts
 	__DATA_MEMORY_BARRIER__(r6);
 	asm("ldr	r1, [r8] ");
--- a/kernel/eka/personality/example/personality.h	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/personality/example/personality.h	Mon Jul 26 11:21:15 2010 +0100
@@ -41,6 +41,8 @@
 typedef unsigned int size_t;
 #elif defined(__ARMCC__)
 typedef unsigned int size_t;
+#elif defined(__GCCE__)
+typedef unsigned int size_t;
 #endif
 
 #ifdef __cplusplus
--- a/kernel/eka/rombuild/rom.flm	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/rombuild/rom.flm	Mon Jul 26 11:21:15 2010 +0100
@@ -2,19 +2,19 @@
 # Copyright (c) 2009 Symbian.  All rights reserved.
 #
 
+ifeq ($(OSTYPE),unix)
+	rombuilder := $(EPOCROOT)/epoc32/rom/tools/romnibus.pl
+else
+	rombuilder := $(EPOCROOT)/sf/os/kernelhwsrv/kernel/eka/rombuild/rom_sbs.pl 
+endif
+
 # macro for all the rules
 define rom
 
 FINAL::	
-ifeq ($(OSTYPE),unix)
 	$(call startrule,rom) \
-	echo "This is not supported currently"; \
+	$(PERL) $(rombuilder) --variant=$(REE_TARGET) --inst=$(PLATFORM) --build=$(CFG) --type=$(TYPE) --clean --name=$(REE_TARGET)_$(TYPE)_$(PLATFORM)_$(CFG).img \
 	$(call endrule,rom)
-else
-	$(call startrule,rom) \
-	$(PERL) $(EPOCROOT)/sf/os/kernelhwsrv/kernel/eka/rombuild/rom_sbs.pl --variant=$(REE_TARGET) --inst=$(PLATFORM) --build=$(CFG) --type=$(TYPE) --clean --name=$(REE_TARGET)_$(TYPE)_$(PLATFORM)_$(CFG).img \
-	$(call endrule,rom)
-endif
 
 FINAL::	
 	$(call startrule,copy) \
--- a/kernel/eka/rombuild/rom.pl	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/rombuild/rom.pl	Mon Jul 26 11:21:15 2010 +0100
@@ -311,6 +311,7 @@
 
 # Zap any ## marks REMS or blank lines
 
+print "Cleaning up rom2.tmp to make rom3.tmp\n" if $debug;
 cleanup("rom2.tmp", "rom3.tmp", $k);
 
 # scan tmp file and generate auxiliary files, if required
@@ -324,6 +325,7 @@
 		genfile("nonpaged");	}
 	}
 
+print "Parsing PatchData to make rom4.tmp\n" if $debug;
 parsePatchData("rom3.tmp", "rom4.tmp");
 
 # break down the oby file into rom, rofs, extensions and smr oby files
@@ -717,17 +719,28 @@
 	open TMP, $file or die "Can't read $file\n";
 
 	# ignore local symbols.
-	while (<TMP> !~ /Global Symbols/) { }
-
 	while (<TMP>)
 	{
-		if (/^\s*(\S+)\s+(\S+)\s+data\s+(\S+)/i)
+		last if /Global Symbols|Linker script and memory map/;
+	}
+
+  my @return_values = ();
+  my $line;
+	while ($line = <TMP>)
+	{
+		next if (index($line, $name) < 0);		
+		
+		# RVCT 2.2
+		# 
+		#     KHeapMinCellSize  0x0004e38c  Data 4  mem.o(.constdata)
+		#
+		if ($line =~ /^\s*(\S+)\s+(\S+)\s+data\s+(\S+)/i)
 		{
 			my ($symbol, $addr, $size) = ($1, $2, $3);
 			if ($symbol eq $name)
 			{
-				close TMP;
-				return ($addr, $size);
+				@return_values = ($addr, $size);
+				last;
 			}
 		}
 
@@ -736,18 +749,42 @@
 		#
 		# KHeapMinCellSize (EXPORTED) 0x0003d81c Data 4 mem.o(.constdata)
 		#
-		elsif (/^\s*(\S+)\s+\(exported\)\s+(\S+)\s+data\s+(\S+)/i)
+		elsif ($line =~ /^\s*(\S+)\s+\(exported\)\s+(\S+)\s+data\s+(\S+)/i)
 		{
 			my ($symbol, $addr, $size) = ($1, $2, $3);
 			if ($symbol eq $name)
 			{
-				close TMP;
-				return ($addr, $size);
+				@return_values = ($addr, $size);
+				last;
 			}
 		}
-	}
+		
+		# GCC 4.x map files
+		#                 0x00114c68                KHeapMinCellSize
+		#                 0x00114c6c                KHeapShrinkHysRatio
+		#  .rodata        0x00115130      0x968 M:/epoc32/build/kernel/c_99481fddbd6c6f58/_omap3530_ekern_exe/armv5/udeb/heap_hybrid.o
+		#
+		elsif ($line =~ /^.+\s+(0x\S+)\s+(\S+)/i)
+		{
+			my ($addr, $symbol) = ($1, $2);
+			if ($symbol eq $name)
+			{
+				my $next_line = <TMP>;
+				if ($next_line =~ /^.+\s+(0x\S+)\s+(\S+)/i)
+				{
+					my $addr2 = $1;
+					
+					@return_values = ($addr, hex($addr2) - hex($addr));
+					last;
+				}
+			}
+		}
 
-	die "patchdata: Can't find symbol $name\n";
+	}
+	close TMP;
+
+	die "patchdata: Can't find symbol $name\n" if (scalar @return_values == 0);
+	return @return_values;
 }
 
 sub parsePatchData($$)
@@ -767,6 +804,8 @@
 				die "Bad patchdata command: $line\n";
 			}
 
+			print "Handling $line\n" if $debug;
+
 			my ($file, $symbol, $value) = (lc $1, $2, $3);
 			my ($srcFile, $destFile) = lookupFileInfo($infile, $file);
 			my ($index, $elementSize) = (undef, undef);
@@ -778,6 +817,7 @@
 
 			if ($srcFile =~ /\\armv5(smp)?\\/i)
 			{
+				print "..looking up $symbol in $srcFile.map\n" if $debug;
 				my ($symbolAddr, $symbolSize) = lookupSymbolInfo("$srcFile.map", $symbol);
 
 				my $max;
@@ -819,6 +859,7 @@
 				$value = sprintf("0x%08x", $value);
 
 				$line = "patchdata $destFile addr $symbolAddr $symbolSize $value\n";
+				print ".. new line is $line\n" if $debug;
 			}
 			else
 			{
--- a/kernel/eka/rombuild/user.iby	Mon Jul 26 11:06:41 2010 +0100
+++ b/kernel/eka/rombuild/user.iby	Mon Jul 26 11:21:15 2010 +0100
@@ -29,7 +29,7 @@
 file=\Epoc32\Release\##EUSERDIR##\##BUILD##\##EUSER_DLL					\sys\bin\EUSER.DLL
 
 #ifdef RVCT
-#include <rom\include\compsupp.iby>
+#include <rom/include/compsupp.iby>
 #endif
 
 #ifndef SYMBIAN_EXCLUDE_KEYBOARD
--- a/kerneltest/e32test/defrag/perf/t_perf.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/defrag/perf/t_perf.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -37,8 +37,8 @@
 #include <e32std.h>
 #include <e32std_private.h>
 
-#include "..\d_pagemove.h"
-#include "..\..\mmu\mmudetect.h"
+#include "../d_pagemove.h"
+#include "../../mmu/mmudetect.h"
 #include "t_perf.h"
 
 
--- a/kerneltest/e32test/defrag/perf/t_perf.h	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/defrag/perf/t_perf.h	Mon Jul 26 11:21:15 2010 +0100
@@ -19,7 +19,7 @@
 #define _DEFRAG_PERF_T_PERF_H_
 
 #include "t_testdll.h"
-#include "..\d_pagemove.h"
+#include "../d_pagemove.h"
 
 typedef TUint32 DTime_t;
 //#define EXTRA_TRACE
--- a/kerneltest/e32test/defrag/perf/t_perfdll.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/defrag/perf/t_perfdll.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -18,7 +18,7 @@
 #define __E32TEST_EXTENSION__
 #include <e32test.h>
 #include <e32hal.h>
-#include "..\d_pagemove.h"
+#include "../d_pagemove.h"
 #include "t_perf.h"
 #include "t_testdll.h"
 
--- a/kerneltest/e32test/defrag/perf/t_testproc.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/defrag/perf/t_testproc.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -18,7 +18,7 @@
 #define __E32TEST_EXTENSION__
 #include <e32test.h>
 
-#include "..\d_pagemove.h"
+#include "../d_pagemove.h"
 #include "t_perf.h"
 #include "t_testdll.h"
 
--- a/kerneltest/e32test/defrag/t_pagemove.cia	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/defrag/t_pagemove.cia	Mon Jul 26 11:21:15 2010 +0100
@@ -46,13 +46,13 @@
 	{
 	asm("add r0, r0, #1 ");
 	__JUMP(,lr);
-	asm("Increment__Fi_end: ");
+	asm("_Z9Incrementi_end: ");
 	}
 
 __NAKED__ TUint Increment_Length()
 	{
-	asm("adr r0, Increment__Fi_end ");
-	asm("adr r1, Increment__Fi ");
+	asm("adr r0, _Z9Incrementi_end ");
+	asm("adr r1, _Z9Incrementi ");
 	asm("sub r0, r0, r1 ");
 	__JUMP(,lr);
 	}
@@ -61,13 +61,13 @@
 	{
 	asm("sub r0, r0, #1 ");
 	__JUMP(,lr);
-	asm("Decrement__Fi_end: ");
+	asm("_Z9Decrementi_end: ");
 	}
 
 __NAKED__ TUint Decrement_Length()
 	{
-	asm("adr r0, Decrement__Fi_end ");
-	asm("adr r1, Decrement__Fi ");
+	asm("adr r0, _Z9Decrementi_end ");
+	asm("adr r1, _Z9Decrementi ");
 	asm("sub r0, r0, r1 ");
 	__JUMP(,lr);
 	}
--- a/kerneltest/e32test/defrag/t_pagemove.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/defrag/t_pagemove.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -60,9 +60,9 @@
 #include "d_pagemove.h"
 #include "t_pagemove_dll.h"
 #include "t_pmwsd.h"
-#include "..\mmu\mmudetect.h"
-#include "..\debug\d_codemodifier.h"
-#include "..\mmu\d_memorytest.h"
+#include "../mmu/mmudetect.h"
+#include "../debug/d_codemodifier.h"
+#include "../mmu/d_memorytest.h"
 
 //#define _DEBUG_MSG
 #ifdef _DEBUG_MSG
--- a/kerneltest/e32test/defrag/t_ramdefrag.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/defrag/t_ramdefrag.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -33,7 +33,7 @@
 #include <e32math.h>
 #include <hal.h>
 #include "testdefs.h"
-#include "..\mmu\mmudetect.h"
+#include "../mmu/mmudetect.h"
 
 
 #include <dptest.h>
--- a/kerneltest/e32test/demandpaging/t_printsysinfo.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/demandpaging/t_printsysinfo.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -20,7 +20,7 @@
 #include <e32test.h>
 #include <e32cmn.h>
 #include <dptest.h>
-#include "..\mmu\mmudetect.h"
+#include "../mmu/mmudetect.h"
 
 
 RTest test(_L("T_PRINTSYSINFO"));
--- a/kerneltest/e32test/digitiser/d_ldddigitisertest.h	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/digitiser/d_ldddigitisertest.h	Mon Jul 26 11:21:15 2010 +0100
@@ -111,5 +111,5 @@
 	inline TInt setPointer3DPressureStep(TUint aPointer3DPressureStep);
 	};
 
-#include "d_lddDigitisertest.inl"
+#include "d_ldddigitisertest.inl"
 #endif   //__DLDDDIGITISERTEST_H__
--- a/kerneltest/e32test/digitiser/t_ldddigitisertest.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/digitiser/t_ldddigitisertest.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -17,7 +17,7 @@
 
 #include <e32test.h>
 #include <e32hal.h>
-#include "d_lddDigitisertest.h"
+#include "d_ldddigitisertest.h"
 #include <hal.h>
 
 _LIT(KLddFileName, "D_LDDDIGITISERTEST.LDD");
--- a/kerneltest/e32test/eabi/d_second_excp2u.def	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/eabi/d_second_excp2u.def	Mon Jul 26 11:21:15 2010 +0100
@@ -7,5 +7,5 @@
 	_ZN14UncaughtTesterC2ERi @ 6 NONAME
 	_ZN14UncaughtTesterD1Ev @ 7 NONAME
 	_ZN14UncaughtTesterD2Ev @ 8 NONAME
-	_ZTT17MyFourthException @ 9 NONAME
+	_ZTT17MyFourthException @ 9 ABSENT
 
--- a/kerneltest/e32test/eabi/d_second_excpu.def	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/eabi/d_second_excpu.def	Mon Jul 26 11:21:15 2010 +0100
@@ -7,5 +7,5 @@
 	_ZN14UncaughtTesterC2ERi @ 6 NONAME
 	_ZN14UncaughtTesterD1Ev @ 7 NONAME
 	_ZN14UncaughtTesterD2Ev @ 8 NONAME
-	_ZTT17MyFourthException @ 9 NONAME
+	_ZTT17MyFourthException @ 9 ABSENT
 
--- a/kerneltest/e32test/examples/defrag/t_defrag_ref.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/examples/defrag/t_defrag_ref.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -33,7 +33,7 @@
 #define __E32TEST_EXTENSION__
 #include <e32test.h>
 #include "d_defrag_ref.h"
-#include "..\..\mmu\mmudetect.h"
+#include "../../mmu/mmudetect.h"
 
 LOCAL_D RTest test(_L("T_DEFRAG_REF"));
 
--- a/kerneltest/e32test/group/bld.inf	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/bld.inf	Mon Jul 26 11:21:15 2010 +0100
@@ -1066,6 +1066,8 @@
 
 #include "../hcr/hcr.inf"
 
+#ifndef GCCE
 //pci tests
 t_pci
+#endif
 
--- a/kerneltest/e32test/group/d_ldd.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/d_ldd.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -29,5 +29,10 @@
 UID		0x100000af
 VENDORID 0x70000001
 
+#ifdef GCCE
+staticlibrary usrt4_0.lib
+library drtaeabi.dso
+#endif
+
 capability		all
 SMPSAFE
--- a/kerneltest/e32test/group/d_ldd2.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/d_ldd2.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -26,5 +26,10 @@
 
 EPOCALLOWDLLDATA
 
+#ifdef GCCE
+staticlibrary usrt4_0.lib
+library drtaeabi.dso
+#endif
+
 capability		all
 SMPSAFE
--- a/kerneltest/e32test/group/d_ldd2_ram.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/d_ldd2_ram.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -29,5 +29,10 @@
 romtarget
 ramtarget +
 
+#ifdef GCCE
+staticlibrary usrt4_0.lib
+library drtaeabi.dso
+#endif
+
 capability		all
 SMPSAFE
--- a/kerneltest/e32test/group/d_ldd_ram.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/d_ldd_ram.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -31,5 +31,10 @@
 romtarget
 RAMTARGET +
 
+#ifdef GCCE
+staticlibrary usrt4_0.lib
+library drtaeabi.dso
+#endif
+
 capability		all
 SMPSAFE
--- a/kerneltest/e32test/group/d_lddns.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/d_lddns.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -30,5 +30,10 @@
 VENDORID 0x70000001
 RAMTARGET D_LDDNS_ram.LDD
 
+#ifdef GCCE
+staticlibrary usrt4_0.lib
+library drtaeabi.dso
+#endif
+
 capability		all
 SMPSAFE
--- a/kerneltest/e32test/group/d_nanowait.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/d_nanowait.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -24,7 +24,7 @@
 SOURCEPATH		../SYSTEM
 SOURCE			D_NANOWAIT.CPP
 
-LIBRARY			EKERN.LIB
+LIBRARY			ekern.lib
 
 epocallowdlldata
 
--- a/kerneltest/e32test/group/d_timestamp.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/d_timestamp.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -17,7 +17,7 @@
 
 
 
-#include "kernel\kern_ext.mmh"
+#include "kernel/kern_ext.mmh"
 
 TARGET		        D_TIMESTAMP.LDD
 TARGETTYPE		LDD
@@ -25,7 +25,7 @@
 SOURCEPATH		../timestamp
 SOURCE			D_TIMESTAMP.CPP
 
-LIBRARY			EKERN.LIB
+LIBRARY			ekern.lib
 
 epocallowdlldata
 
--- a/kerneltest/e32test/group/rescontrol_extended_psl.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/rescontrol_extended_psl.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -46,6 +46,11 @@
 uid			0x100039d0 0x10285812
 capability 	all
 
+#ifdef GCCE
+staticlibrary usrt4_0.lib
+library drtaeabi.dso
+#endif
+
 start wins
 win32_headers
 end
--- a/kerneltest/e32test/group/rescontrol_psl.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/rescontrol_psl.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -43,9 +43,14 @@
 uid			0x100039d0 0x10285812
 capability 	all
 
+#ifdef GCCE
+staticlibrary usrt4_0.lib
+library drtaeabi.dso
+#endif
+
 start wins
 win32_headers
 end
 
 macro CPU_AFFINITY_ANY
-SMPSAFE
\ No newline at end of file
+SMPSAFE
--- a/kerneltest/e32test/group/t_break.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/t_break.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -19,7 +19,7 @@
 TARGETTYPE     EXE
 SOURCEPATH	../SYSTEM
 SOURCE         T_BREAK.CPP
-LIBRARY        EUSER.LIB
+LIBRARY        euser.lib
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 RAMTARGET +
 
--- a/kerneltest/e32test/group/t_dce.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/t_dce.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -19,7 +19,7 @@
 TARGETTYPE     EXE
 SOURCEPATH	../DEVICE
 SOURCE         T_DCE.CPP
-LIBRARY        EUSER.LIB
+LIBRARY        euser.lib
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 
--- a/kerneltest/e32test/group/t_dceutl.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/t_dceutl.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -19,7 +19,7 @@
 TARGETTYPE     EXE
 SOURCEPATH	../DEVICE
 SOURCE         T_DCEUTL.CPP
-LIBRARY        EUSER.LIB HAL.LIB
+LIBRARY        euser.lib hal.lib
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 
--- a/kerneltest/e32test/group/t_defragperf.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/t_defragperf.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -20,7 +20,7 @@
 ALWAYS_BUILD_AS_ARM
 SOURCEPATH	../DEFRAG/PERF
 SOURCE         T_PERF.CPP T_PERFDLL.CPP T_TIMER.CPP
-LIBRARY        EUSER.LIB HAL.LIB 
+LIBRARY        euser.lib hal.lib 
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 ROMTARGET
 RAMTARGET +
--- a/kerneltest/e32test/group/t_defragtestperf.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/t_defragtestperf.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -19,7 +19,7 @@
 TARGETTYPE     EXE
 SOURCEPATH	../DEFRAG/PERF
 SOURCE         t_testproc.cpp T_PERFDLL.CPP t_timer.cpp
-LIBRARY        EUSER.LIB HAL.LIB 
+LIBRARY        euser.lib hal.lib 
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 ROMTARGET
--- a/kerneltest/e32test/group/t_drtaeabi.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/t_drtaeabi.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -21,6 +21,8 @@
 
 SOURCE			aeabidiv0.cpp
 SOURCE			drtaeabi.cpp
+OS_LAYER_LIBC_SYSTEMINCLUDE
+OS_LAYER_STDCPP_SYSTEMINCLUDE
 SOURCE			type_info.cpp
 
 USERINCLUDE	../../../kernel/eka/include
--- a/kerneltest/e32test/group/t_lfsdrvbm.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/t_lfsdrvbm.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -19,7 +19,7 @@
 TARGETTYPE     EXE
 SOURCEPATH	../LFFS
 SOURCE         T_LFSDRVBM.CPP
-LIBRARY        EUSER.LIB
+LIBRARY        euser.lib
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 
--- a/kerneltest/e32test/group/t_modem1.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/t_modem1.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -19,7 +19,7 @@
 TARGETTYPE     EXE
 SOURCEPATH	../DEVICE
 SOURCE         T_MODEM1.CPP
-LIBRARY        EUSER.LIB HAL.LIB
+LIBRARY        euser.lib hal.lib
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 
--- a/kerneltest/e32test/group/t_modem2.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/t_modem2.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -19,7 +19,7 @@
 TARGETTYPE     EXE
 SOURCEPATH	../DEVICE
 SOURCE         T_MODEM2.CPP
-LIBRARY        EUSER.LIB
+LIBRARY        euser.lib
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 
--- a/kerneltest/e32test/group/t_nanowait.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/t_nanowait.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -19,7 +19,7 @@
 TARGETTYPE		EXE
 SOURCEPATH		../SYSTEM
 SOURCE			T_NANOWAIT.CPP
-LIBRARY			EUSER.LIB HAL.LIB
+LIBRARY			euser.lib hal.lib
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 
--- a/kerneltest/e32test/group/t_pagemove.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/t_pagemove.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -20,7 +20,7 @@
 SOURCEPATH	../DEFRAG
 SOURCE         T_PAGEMOVE.CPP
 SOURCE         T_PAGEMOVE.CIA
-LIBRARY        EUSER.LIB dptest.lib T_PMWSD.LIB T_PAGEMOVE_DLL.LIB
+LIBRARY        euser.lib dptest.lib t_pmwsd.lib t_pagemove_dll.lib
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 // This process shouldn't be paged
--- a/kerneltest/e32test/group/t_pccd1.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/t_pccd1.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -19,7 +19,7 @@
 TARGETTYPE     EXE
 SOURCEPATH	../PCCD
 SOURCE         T_PCCD1.CPP
-LIBRARY        EUSER.LIB
+LIBRARY        euser.lib
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 
--- a/kerneltest/e32test/group/t_pccd2.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/t_pccd2.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -19,7 +19,7 @@
 TARGETTYPE     EXE
 SOURCEPATH	../PCCD
 SOURCE         T_PCCD2.CPP
-LIBRARY        EUSER.LIB
+LIBRARY        euser.lib
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 
--- a/kerneltest/e32test/group/t_pccd3.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/t_pccd3.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -19,7 +19,7 @@
 TARGETTYPE     EXE
 SOURCEPATH	../PCCD
 SOURCE         T_PCCD3.CPP
-LIBRARY        EUSER.LIB HAL.LIB
+LIBRARY        euser.lib hal.lib
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 
--- a/kerneltest/e32test/group/t_persistrestart.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/t_persistrestart.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -19,7 +19,7 @@
 TARGETTYPE     EXE
 SOURCEPATH     ../POWER
 SOURCE         T_PERSISTRESTART.CPP
-LIBRARY        EUSER.LIB HAL.LIB
+LIBRARY        euser.lib hal.lib
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 USERINCLUDE  ../power
 
--- a/kerneltest/e32test/group/t_prom.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/t_prom.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -19,7 +19,7 @@
 TARGETTYPE     EXE
 SOURCEPATH	../DEVICE
 SOURCE         T_PROM.CPP
-LIBRARY        EUSER.LIB
+LIBRARY        euser.lib
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 
--- a/kerneltest/e32test/group/t_r64.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/t_r64.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -21,7 +21,7 @@
 SOURCE         T_R64.CPP
 SOURCE         T_R64DTA.CPP
 SOURCE         T_GCC64.CPP
-LIBRARY        EUSER.LIB
+LIBRARY        euser.lib
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 
--- a/kerneltest/e32test/group/t_regram.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/t_regram.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -19,7 +19,7 @@
 TARGETTYPE     EXE
 SOURCEPATH	../SYSTEM
 SOURCE         T_REGRAM.CPP
-LIBRARY        EUSER.LIB
+LIBRARY        euser.lib
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 
--- a/kerneltest/e32test/group/t_romchk.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/t_romchk.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -19,7 +19,7 @@
 TARGETTYPE		EXE
 SOURCEPATH		../MISC
 SOURCE			T_ROMCHK.CPP
-LIBRARY			EUSER.LIB
+LIBRARY			euser.lib
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 capability		all
--- a/kerneltest/e32test/group/t_usb_device.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/t_usb_device.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -22,7 +22,7 @@
 
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
-USERINCLUDE	  ../USB/T_USB_DEVICE/INCLUDE
+USERINCLUDE	  ../usb/t_usb_device/include
 
 // Source file paths
 
@@ -40,8 +40,8 @@
 SOURCE		usbms.cpp
 
 
-LIBRARY       EUSER.LIB HAL.LIB
-LIBRARY       EFSRV.LIB
+LIBRARY       euser.lib hal.lib
+LIBRARY       efsrv.lib
 
 CAPABILITY    ALL
 
--- a/kerneltest/e32test/group/t_usb_scdevice.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/t_usb_scdevice.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -42,9 +42,9 @@
 SOURCE		usbms.cpp
 
 
-LIBRARY     EUSER.LIB HAL.LIB
+LIBRARY     euser.lib hal.lib
 LIBRARY		usbcsc_bil.lib
-LIBRARY     EFSRV.LIB
+LIBRARY     efsrv.lib
 
 CAPABILITY    ALL
 
--- a/kerneltest/e32test/group/t_usbcsc.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/t_usbcsc.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -22,7 +22,7 @@
 SOURCE        t_usbcsc.cpp
 
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-LIBRARY       EUSER.LIB HAL.LIB usbcsc_bil.lib
+LIBRARY       euser.lib hal.lib usbcsc_bil.lib
 
 CAPABILITY    all
 
--- a/kerneltest/e32test/group/thrdlist.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/group/thrdlist.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -19,7 +19,7 @@
 TARGETTYPE     EXE
 SOURCEPATH	../MISC
 SOURCE         THRDLIST.CPP
-LIBRARY        EUSER.LIB EFSRV.LIB
+LIBRARY        euser.lib efsrv.lib
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 
--- a/kerneltest/e32test/hcr/d_hcrsim_client.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/hcr/d_hcrsim_client.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -33,6 +33,11 @@
 epocallowdlldata
 smpsafe
 
+#ifdef GCCE
+staticlibrary usrt4_0.lib
+library drtaeabi.dso
+#endif
+
 start wins
 win32_headers
 end
--- a/kerneltest/e32test/hcr/d_hcrsim_own.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/hcr/d_hcrsim_own.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -32,6 +32,11 @@
 epocallowdlldata
 smpsafe
 
+#ifdef GCCE
+staticlibrary usrt4_0.lib
+library drtaeabi.dso
+#endif
+
 start wins
 win32_headers
 end
--- a/kerneltest/e32test/hcr/d_hcrut.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/hcr/d_hcrut.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -38,6 +38,11 @@
 epocallowdlldata
 smpsafe
 
+#ifdef GCCE
+staticlibrary usrt4_0.lib
+library drtaeabi.dso
+#endif
+
 start wins
 win32_headers
 end
--- a/kerneltest/e32test/lffs/t_lfsdrv2.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/lffs/t_lfsdrv2.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -22,7 +22,7 @@
 #include <e32uid.h>
 #include <hal.h>
 #include "u32std.h"
-#include "..\misc\prbs.h"
+#include "../misc/prbs.h"
 
 _LIT(KTestName,"T_LFSDRV");
 _LIT(KMediaDriverName,"MEDLFS");
--- a/kerneltest/e32test/lffs/t_lfsdrvbm.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/lffs/t_lfsdrvbm.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -19,7 +19,7 @@
 #include <e32svr.h>
 #include <e32hal.h>
 #include <e32uid.h>
-#include "..\misc\prbs.h"
+#include "../misc/prbs.h"
 
 
 LOCAL_D TBuf<16384> DataBuf;
--- a/kerneltest/e32test/misc/d_testkerncorestats.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/misc/d_testkerncorestats.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -15,7 +15,7 @@
 // 
 //
 
-#include "d_TestKernCoreStats.h"
+#include "d_testkerncorestats.h"
 
 #include <kernel/kernel.h>
 #include <kernel/kerncorestats.h>
--- a/kerneltest/e32test/mmu/t_alias_remove.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/mmu/t_alias_remove.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -30,7 +30,7 @@
 #include <e32test.h>
 #include <e32hal.h>
 #include <e32svr.h>
-#include "..\defrag\d_pagemove.h"
+#include "../defrag/d_pagemove.h"
 
 const TPtrC KAliasProcessName = _L("T_ALIAS_REMOVE");
 const TPtrC KAliasChunkName = _L("AliasChunk");
--- a/kerneltest/e32test/mmu/t_cachechunk.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/mmu/t_cachechunk.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -87,7 +87,7 @@
 #include "d_gobble.h"
 #include <dptest.h>
 #include "freeram.h"
-#include "..\demandpaging\t_dpcmn.h"
+#include "../demandpaging/t_dpcmn.h"
 
 RTest test(_L("T_CACHECHUNK"));
 
--- a/kerneltest/e32test/mmu/t_imb.cia	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/mmu/t_imb.cia	Mon Jul 26 11:21:15 2010 +0100
@@ -169,14 +169,14 @@
 	asm("bic r3, r3, #0x00080000 ");	// else convert SNaN to QNaN
 	asm("b fastsqrtxa ");				// and return KErrArgument
 
-	asm("Sqrt__FRdRCd_end: ");
+	asm("_Z4SqrtRdRKd_end: ");
 
 	}
 
 __NAKED__ TUint Sqrt_Length()
 	{
-	asm("adr r0, Sqrt__FRdRCd_end ");
-	asm("adr r1, Sqrt__FRdRCd ");
+	asm("adr r0, _Z4SqrtRdRKd_end ");
+	asm("adr r1, _Z4SqrtRdRKd ");
 	asm("sub r0, r0, r1 ");
 	__JUMP(,lr);
 	}
@@ -436,13 +436,13 @@
 	asm("__RealIndefiniteExponent: ");
 	asm(".word 0xFFFF0001 ");
 
-	asm("Divide__FR6TRealXRC6TRealX_end: ");
+	asm("_Z6DivideR6TRealXRKS__end: ");
 	}
 
 __NAKED__ TUint Divide_Length()
 	{
-	asm("adr r0, Divide__FR6TRealXRC6TRealX_end ");
-	asm("adr r1, Divide__FR6TRealXRC6TRealX ");
+	asm("adr r0, _Z6DivideR6TRealXRKS__end ");
+	asm("adr r1, _Z6DivideR6TRealXRKS_ ");
 	asm("sub r0, r0, r1 ");
 	__JUMP(,lr);
 	}
@@ -450,13 +450,13 @@
 __NAKED__ TInt SDummy(TInt)
 	{
 	__JUMP(,lr);
-	asm("SDummy__Fi_end: ");
+	asm("_Z6SDummyi_end: ");
 	}
 
 __NAKED__ TUint SDummy_Length()
 	{
-	asm("adr r0, SDummy__Fi_end ");
-	asm("adr r1, SDummy__Fi ");
+	asm("adr r0, _Z6SDummyi_end ");
+	asm("adr r1, _Z6SDummyi ");
 	asm("sub r0, r0, r1 ");
 	__JUMP(,lr);
 	}
@@ -465,13 +465,13 @@
 	{
 	asm("add r0, r0, #1 ");
 	__JUMP(,lr);
-	asm("Increment__Fi_end: ");
+	asm("_Z9Incrementi_end: ");
 	}
 
 __NAKED__ TUint Increment_Length()
 	{
-	asm("adr r0, Increment__Fi_end ");
-	asm("adr r1, Increment__Fi ");
+	asm("adr r0, _Z9Incrementi_end ");
+	asm("adr r1, _Z9Incrementi ");
 	asm("sub r0, r0, r1 ");
 	__JUMP(,lr);
 	}
--- a/kerneltest/e32test/mmu/t_mmustress.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/mmu/t_mmustress.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -29,7 +29,7 @@
 #include <e32def.h>
 #include <e32def_private.h>
 #include "d_memorytest.h"
-#include "..\defrag\d_pagemove.h"
+#include "../defrag/d_pagemove.h"
 
 TBool TRACE = 0;
 
--- a/kerneltest/e32test/mmu/t_shadow.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/mmu/t_shadow.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -40,7 +40,7 @@
 #include <e32hal.h>
 #include "d_shadow.h"
 #include "d_gobble.h"
-#include "..\defrag\d_pagemove.h"
+#include "../defrag/d_pagemove.h"
 #include "d_memorytest.h"
 #include <dptest.h>
 #include "mmudetect.h"
--- a/kerneltest/e32test/pipe/t_pipe.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/pipe/t_pipe.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -58,7 +58,7 @@
 #include <e32math.h>
 #include <hal.h>
 
-#include "RPipe.h"
+#include "rpipe.h"
 
 LOCAL_D RTest test(_L("t_pipe"));
 
--- a/kerneltest/e32test/rm_debug/group/t_rmdebug2.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/rm_debug/group/t_rmdebug2.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -18,6 +18,8 @@
 
 target         t_rmdebug2.exe
 
+USERINCLUDE ../../../../kernel/eka/debug/securityServer/inc
+
 sourcepath	   	../basic_tests
 source        	t_rmdebug2.cpp 
 source		r_low_memory_security_svr_session.cpp
--- a/kerneltest/e32test/rm_debug/group/t_rmdebug2_oem.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/rm_debug/group/t_rmdebug2_oem.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -20,6 +20,8 @@
 
 target         t_rmdebug2_oem.exe
 
+USERINCLUDE ../../../../kernel/eka/debug/securityServer/inc
+
 sourcepath	   	../basic_tests
 source        	t_rmdebug2.cpp 
 source		r_low_memory_security_svr_session.cpp
--- a/kerneltest/e32test/rm_debug/group/t_rmdebug2_oem2.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/rm_debug/group/t_rmdebug2_oem2.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -20,6 +20,8 @@
 
 target         t_rmdebug2_oem2.exe
 
+USERINCLUDE ../../../../kernel/eka/debug/securityServer/inc
+
 sourcepath	   	../basic_tests
 source        	t_rmdebug2.cpp 
 source		r_low_memory_security_svr_session.cpp
--- a/kerneltest/e32test/usb/t_usb_device/src/activedevicestatenotifier.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/usb/t_usb_device/src/activedevicestatenotifier.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -20,7 +20,7 @@
 #include "general.h"
 #include "activerw.h"									// CActiveRW
 #include "config.h"
-#include "activeControl.h"
+#include "activecontrol.h"
 #include "activedevicestatenotifier.h"
 
 extern CActiveControl* gActiveControl;
--- a/kerneltest/e32test/usb/t_usb_device/src/main.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/e32test/usb/t_usb_device/src/main.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -20,7 +20,7 @@
 #include "general.h"
 #include "config.h"
 #include "activecontrol.h"
-#include "activeRW.h"
+#include "activerw.h"
 
 // --- Global Top Level Variables
 
--- a/kerneltest/f32test/bench/t_fsrdirload.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/bench/t_fsrdirload.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -18,7 +18,7 @@
 #include <f32file.h>
 #include <e32test.h>
 #include "t_select.h"
-#include "..\server\t_server.h"
+#include "../server/t_server.h"
 #include "t_benchmain.h"
 
 
--- a/kerneltest/f32test/bench/t_fsrdirscan.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/bench/t_fsrdirscan.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -18,7 +18,7 @@
 #include <f32file.h>
 #include <e32test.h>
 #include "t_select.h"
-#include "..\server\t_server.h"
+#include "../server/t_server.h"
 #include "t_benchmain.h"
 
 GLDEF_D RTest test(_L("File Server Benchmarks, DirScan"));
--- a/kerneltest/f32test/bench/t_fsropen.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/bench/t_fsropen.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -18,7 +18,7 @@
 #include <f32file.h>
 #include <e32test.h>
 #include "t_select.h"
-#include "..\server\t_server.h"
+#include "../server/t_server.h"
 #include "t_benchmain.h"
 
 GLDEF_D RTest test(_L("File Server Benchmarks, Open File"));
--- a/kerneltest/f32test/demandpaging/loader/t_pageldrtstdll.cia	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/demandpaging/loader/t_pageldrtstdll.cia	Mon Jul 26 11:21:15 2010 +0100
@@ -32,7 +32,7 @@
 
 //#if defined(_DEBUG) || defined(_DEBUG_RELEASE)
 
-#if defined __ARMCC__ || defined __X86__
+#if defined __EABI__ || defined __X86__
 
 #ifdef __X86__
 
@@ -68,7 +68,7 @@
 #define __NAKED__
 #endif 
 
-#if defined __ARMCC__
+#if defined __EABI__
 #define ASM_OP1   asm("movs		r2,r0");
 #define ASM_OP2   asm("adds		r0,r2,r1");
 #define ASM_OP3   asm("bx		lr");
@@ -1633,12 +1633,17 @@
 
 __NAKED__ TInt TestAlignmentxXXx(TInt aParam1)
     {
-#ifdef __X86__
+#if defined(__X86__)
 	return 0;
-#else
+#elif defined(__ARMCC__)
     space    4096
     BX       lr
     ENDP
+#elif defined(__GCCE__)
+	asm(".fill 4096");
+	asm("bx lr");
+#else
+#error What compiler? 
 #endif
     }
 
@@ -1934,7 +1939,7 @@
 	}
 
 
-#endif // __ARMCC__
+#endif // __EABI__
 
 TInt CallTestFunc(TInt aParam1, TInt aParam2, TInt aIndex)
 	{
--- a/kerneltest/f32test/demandpaging/t_mmcpaging.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/demandpaging/t_mmcpaging.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -350,7 +350,7 @@
 		{
 		TInt r=UserSvr::HalFunction(EHalGroupVM,EVMHalFlushCache,0,0);
 		if (Random() & 1)
-			User::AfterHighRes(500+Random() & 2047);
+			User::AfterHighRes((500+Random()) & 2047);
 
 		if (r<0)
 			{
@@ -376,7 +376,7 @@
 					}
 				PagedTrashCount++;
 				if (RandomNo & 1)
-					User::AfterHighRes(500+Random() & 2047);
+					User::AfterHighRes((500+Random()) & 2047);
 				}
 			}
 	
--- a/kerneltest/f32test/demandpaging/t_nandpaging.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/demandpaging/t_nandpaging.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -356,7 +356,7 @@
 		{
 		TInt r=UserSvr::HalFunction(EHalGroupVM,EVMHalFlushCache,0,0);
 		if (Random() & 1)
-			User::AfterHighRes(500+Random() & 2047);
+			User::AfterHighRes((500+Random()) & 2047);
 
 		if (r<0)
 			{
@@ -382,7 +382,7 @@
 					}
 				PagedTrashCount++;
 				if (RandomNo & 1)
-					User::AfterHighRes(500+Random() & 2047);
+					User::AfterHighRes((500+Random()) & 2047);
 				}
 			}
 	
@@ -670,7 +670,7 @@
 				TInt tries = 10;
 				do { // If we get zero hits, maybe the page hasnt hit yet.
 					tries--;
-					User::AfterHighRes(1000+Random() & 2047);  // Throw some uncertainly into things
+					User::AfterHighRes((1000+Random()) & 2047);  // Throw some uncertainly into things
 				
 					TPtr8 statsBuf((TUint8*) &stats, sizeof(stats));
 			 		r = Drive.ControlIO(KNandGetDeferStats,statsBuf,0);
--- a/kerneltest/f32test/demandpaging/t_pagestress.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/demandpaging/t_pagestress.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -974,7 +974,7 @@
 	TestPrioChange = EFalse;
 	TestMediaAccess = EFalse;
 
-#if defined __ARMCC__ || defined __X86__
+#if defined __EABI__ || defined __X86__
 	// Currently we only build aligned DLLs on ARMV5 and X86 builds.
 	TEST_NEXT((_L("Alignment Check.")));
 	RUNTEST1(CheckAlignments() == KErrNone);
--- a/kerneltest/f32test/filesystem/fat/b_fat32.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/filesystem/fat/b_fat32.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -305,7 +305,7 @@
 //
     {
     static TBuf<6> str(_L("------"));
-    static char*   atr = "RHSVDA";
+    static char const *   atr = "RHSVDA";
     for (TInt i = 0; i < 6; i++)
         if ((aAttrib >> i) & 1)
             str[i] = atr[i];
--- a/kerneltest/f32test/filesystem/fat/t_scn32dr1.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/filesystem/fat/t_scn32dr1.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -519,7 +519,7 @@
 //
     {
     LOCAL_D TBuf<6> str;
-    LOCAL_D char*   atr = "RHSVDA";
+    LOCAL_D char const *   atr = "RHSVDA";
     str.Fill(TText('-'), 6);
     for (TInt i = 0; i < 6; i++)
         if ((aAttrib >> i) & 1)
@@ -1987,7 +1987,7 @@
         ReadFatDisk(fatBuf);
         }
 
-    // use first entry \scndrv\dir2\almostfull\ 
+    // use first entry \scndrv\dir2\almostfull
     test.Next(_L("Partial entry in middle of subdir"));
     last = GetStartCluster(gClusterDir2_AFull,7);
     TEntryInfo partial2(ClusterEntryToBytes(gClusterDir2_AFull,2),6);
@@ -1998,7 +1998,7 @@
     res=TestPartialEntry(partial2);
     test(res);
 
-    // reduce size of \scndrv\dir2\full\ 
+    // reduce size of \scndrv\dir2\full 
     test.Next(_L("Test directory reclaim"));
     last = GetStartCluster(gClusterDir2_Full,gEntriesPerCluster-2);
     WriteEndOfDir(ClusterEntryToBytes(gClusterDir2_Full,gEntriesPerCluster-2));
@@ -2018,7 +2018,7 @@
     res=IsSameAsDrive(fatBuf,dirBuf);
     test(res);
 
-    // use last entry of first cluster in \scndrv\dir2\full\ 
+    // use last entry of first cluster in \scndrv\dir2\full
     test.Next(_L("Partial entry at end of subdir"));
     r=temp.Create(TheFs,_L("\\scndrv\\dir2\\full\\temp"),EFileShareAny);
     test_KErrNone(r);
@@ -2030,7 +2030,7 @@
     res=TestPartialEntry(partial3);
     test(res);
 
-    // use entry in \scndrv\dir2\almostfull\ 
+    // use entry in \scndrv\dir2\almostfull 
     test.Next(_L("Partial entry preceeding end-of-dir marker"));
     last = GetStartCluster(gClusterDir2_AFull,14);
     if (last > 0)
@@ -2052,7 +2052,7 @@
 	//	as it is impossible for ScanDrive to judge if the illegal byte is part of a legal
 	//	DBCS charater.
 
-	// create entry in \scndrv\dir2\almostfull\ 
+	// create entry in \scndrv\dir2\almostfull 
 //	test.Next(_L("Partial entry with invalid dos name"));
 //	r=temp.Create(TheFs,_L("\\scndrv\\dir2\\almostfull\\Dodgy file name"),EFileShareAny);
 //	test_KErrNone(r);
@@ -2069,7 +2069,7 @@
 
     if (BootSector.SectorsPerCluster() == 1)
         {
-        // use entry created in \scndrv\dir2\ 
+        // use entry created in \scndrv\dir2 
         test.Next(_L("Partial entry spanning more than two clusters"));
         last = GetStartCluster(gClusterDir2_Full,gEntriesPerCluster-1);
         WriteEndOfDir(ClusterEntryToBytes(gClusterDir2_Full,gEntriesPerCluster-2));
@@ -2121,7 +2121,7 @@
     test(res);
 
     // matching entries between 2 subdirs, one which has a full cluster
-    // first entry in \scndrv\dir2\full\ + end of \scndrv\dir2\almostfull\ 
+    // first entry in \scndrv\dir2\full\ + end of \scndrv\dir2\almostfull
     test.Next(_L("matching entries between 2 subdirs"));
     TEntryInfo from2(ClusterEntryToBytes(gClusterDir2_Full,2),2);
     TEntryInfo to2(ClusterEntryToBytes(gClusterDir2_AFull,14),2);
@@ -2130,7 +2130,7 @@
     test(res);
 
     // matching entries between two subdirs - one with end of dir marker next
-    // \scndrv\dir2\somedirwith3entries to \scndrv\ 
+    // \scndrv\dir2\somedirwith3entries to \scndrv 
     test.Next(_L("matching entries between two subdirs"));
     TEntryInfo from3(ClusterEntryToBytes(gClusterDir2,4),3);
     TEntryInfo to3(ClusterEntryToBytes(gClusterScnDrv,6),3);
@@ -2139,7 +2139,7 @@
     test(res);
 
     // matching entries in same subdir, one in new cluster - irrelevant if matching names
-    // 1st and last entries in \scndrv\dir2\full\ 
+    // 1st and last entries in \scndrv\dir2\full 
     test.Next(_L("matching entries in same subdir"));
     // delete entries to allow contiguous clusters in \scndrv\dir2\full directory
     TInt r=TheFs.RmDir(_L("\\scndrv\\dir2\\somedirwith3entries\\"));
@@ -2161,7 +2161,7 @@
     res=TestMatchingEntry(to4);
     test(res);
 
-    // \scndrv\dir1\very long name to \\scndrv\dir2\full\ 
+    // \scndrv\dir1\very long name to \\scndrv\dir2\full 
     test.Next(_L("matching entries in diff dirs + new cluster"));
     // delete last entry in directory
     r=TheFs.Delete(LastInFull);
--- a/kerneltest/f32test/filesystem/fat/t_tscan32.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/filesystem/fat/t_tscan32.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -475,7 +475,7 @@
 //
 	{
 	LOCAL_D TBuf<6> str(_L("------"));
-	LOCAL_D char*   atr = "RHSVDA";
+	LOCAL_D char const *   atr = "RHSVDA";
 	for (TInt i = 0; i < 6; i++)
 		if ((aAttrib >> i) & 1)
 			str[i] = atr[i];
--- a/kerneltest/f32test/group/bld.inf	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/group/bld.inf	Mon Jul 26 11:21:15 2010 +0100
@@ -57,6 +57,7 @@
 t_fsysbm    support
 t_whet      support
 #ifdef ARMCC
+// ARMCC should become EABI if and when VFP is supported for GCCE builds.
 t_whetvfp   support
 #endif
 //T_WARM        manual
--- a/kerneltest/f32test/group/t_bigfile.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/group/t_bigfile.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -23,7 +23,7 @@
 SOURCEPATH     ../fileutils/src
 SOURCE         f32_test_utils.cpp
 SOURCE         t_chlffs.cpp 
-LIBRARY        EUSER.LIB EFSRV.LIB HAL.LIB
+LIBRARY        euser.lib efsrv.lib hal.lib
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 USERINCLUDE    ../server
 USERINCLUDE    ../fileutils/inc
--- a/kerneltest/f32test/group/t_cfileman.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/group/t_cfileman.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -30,7 +30,7 @@
 USERINCLUDE    ../server
 USERINCLUDE    ../fileutils/inc
 
-LIBRARY        EUSER.LIB EFSRV.LIB HAL.LIB
+LIBRARY        euser.lib efsrv.lib hal.lib
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 USERINCLUDE    ../server
--- a/kerneltest/f32test/group/t_cp_plugin.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/group/t_cp_plugin.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -29,7 +29,7 @@
 SOURCE          fat_utils.cpp f32_test_utils.cpp
 SOURCE          t_chlffs.cpp
 
-LIBRARY         EUSER.LIB EFSRV.LIB EKTRAN.LIB HAL.LIB
+LIBRARY         euser.lib efsrv.lib ektran.lib hal.lib
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 USERINCLUDE     ../server
 USERINCLUDE     ../fileutils/inc
--- a/kerneltest/f32test/group/t_fatcharsetconv.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/group/t_fatcharsetconv.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -26,7 +26,7 @@
 SOURCE         fat_utils.cpp f32_test_utils.cpp
 SOURCE	       T_CHLFFS.CPP
 
-LIBRARY        EUSER.LIB EFSRV.LIB EKTRAN.LIB HAL.LIB
+LIBRARY        euser.lib efsrv.lib ektran.lib hal.lib
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 USERINCLUDE    ../server
 USERINCLUDE    ../fileutils/inc
--- a/kerneltest/f32test/group/t_file64bit.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/group/t_file64bit.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -23,10 +23,10 @@
 SOURCEPATH     ../FILEUTILS/SRC
 SOURCE         f32_test_utils.cpp
 SOURCE         t_chlffs.cpp
-LIBRARY        EUSER.LIB EFSRV.LIB HAL.LIB
+LIBRARY        euser.lib efsrv.lib hal.lib
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
-USERINCLUDE    ../SERVER
-USERINCLUDE    ../FILEUTILS/INC
+USERINCLUDE    ../server
+USERINCLUDE    ../fileutils/inc
 
 CAPABILITY	   All -TCB NetworkControl
 
--- a/kerneltest/f32test/group/t_filecache.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/group/t_filecache.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -23,7 +23,7 @@
 //SOURCE		T_MAIN.CPP
 //SOURCE		T_CHLFFS.CPP
 
-LIBRARY			EUSER.LIB EFSRV.LIB HAL.LIB
+LIBRARY			euser.lib efsrv.lib hal.lib
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 CAPABILITY		TCB DISKADMIN ALLFILES
--- a/kerneltest/f32test/group/t_localeutils_cp932.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/group/t_localeutils_cp932.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -26,7 +26,7 @@
 SOURCE          fat_utils.cpp f32_test_utils.cpp
 SOURCE          t_chlffs.cpp
 
-LIBRARY         EUSER.LIB EFSRV.LIB EKTRAN.LIB HAL.LIB
+LIBRARY         euser.lib efsrv.lib ektran.lib hal.lib
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 USERINCLUDE     ../server
 USERINCLUDE     ../fileutils/inc
--- a/kerneltest/f32test/group/t_romg.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/group/t_romg.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -25,7 +25,7 @@
 SOURCE         f32_test_utils.cpp
 SOURCE         T_CHLFFS.CPP
 
-LIBRARY        EUSER.LIB EFSRV.LIB HAL.LIB
+LIBRARY        euser.lib efsrv.lib hal.lib
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 USERINCLUDE    ../server
 USERINCLUDE    ../fileutils/inc
--- a/kerneltest/f32test/group/t_surrogatepair.mmp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/group/t_surrogatepair.mmp	Mon Jul 26 11:21:15 2010 +0100
@@ -27,7 +27,7 @@
 SOURCE          fat_utils.cpp f32_test_utils.cpp
 SOURCE          t_chlffs.cpp
 
-LIBRARY         EUSER.LIB EFSRV.LIB EKTRAN.LIB HAL.LIB
+LIBRARY         euser.lib efsrv.lib ektran.lib hal.lib
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 USERINCLUDE     ../server
 USERINCLUDE     ../fileutils/inc
--- a/kerneltest/f32test/locl/localeutils/elocl32_japan/inc/t_tlocl32_charconv.h	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/locl/localeutils/elocl32_japan/inc/t_tlocl32_charconv.h	Mon Jul 26 11:21:15 2010 +0100
@@ -21,11 +21,11 @@
 #define __CHARCONV_H__
 
 #if !defined(__E32STD_H__)
-#include <E32STD.H>
+#include <e32std.h>
 #endif
 
 #if !defined(__E32BASE_H__)
-#include <E32BASE.H>
+#include <e32base.h>
 #endif
 
 /** 
--- a/kerneltest/f32test/locl/localeutils/elocl32_japan/inc/t_tlocl32_shiftjis.h	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/locl/localeutils/elocl32_japan/inc/t_tlocl32_shiftjis.h	Mon Jul 26 11:21:15 2010 +0100
@@ -21,15 +21,15 @@
 #define __SHIFTJIS_H__
 
 #if !defined(__E32STD_H__)
-#include <E32STD.H>
+#include <e32std.h>
 #endif
 
 #if !defined(__CHARCONV_H__)
-#include "T_TLOCL32_CHARCONV.H"
+#include "t_tlocl32_charconv.h"
 #endif
 
 #if !defined(__CONVUTILS_H__)
-#include "T_TLOCL32_CONVUTILS.H"
+#include "t_tlocl32_convutils.h"
 #endif
 
 class CnvShiftJis 
--- a/kerneltest/f32test/locl/t_locChange.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/locl/t_locChange.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -41,7 +41,7 @@
         }
     
     //new version of End, which calls handler before exit..
-    IMPORT_C void End() 
+    EXPORT_C void End() 
         { 
         if (iFailHdnFunc) iFailHdnFunc(*this);
         RTest::End();
--- a/kerneltest/f32test/manager/t_romg.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/manager/t_romg.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -19,7 +19,7 @@
 #include <f32file.h>
 #include <e32test.h>
 #include <e32rom.h>
-#include "..\server\t_server.h"
+#include "../server/t_server.h"
 
 const TInt KBufSize=0x10000;
 const TInt KFillerSize=0x100;
--- a/kerneltest/f32test/outsideBMP/src/t_surrogatepair.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/outsideBMP/src/t_surrogatepair.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -18,10 +18,10 @@
 #define __E32TEST_EXTENSION__
 
 #include <e32test.h>
-#include <HAL.H>
+#include <hal.h>
 #include <f32fsys.h>
 #include <f32dbg.h>
-#include "..\server\t_server.h"
+#include "../server/t_server.h"
 
 RTest test(_L("T_SURROGATEPAIR"));
 
--- a/kerneltest/f32test/plugins/version_1/virus/t_virus.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/plugins/version_1/virus/t_virus.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -21,13 +21,13 @@
 #include <f32dbg.h>
 #include "t_server.h"
 
-GLREF_C void TestIfEqual( TInt aValue, TInt aExpected, TInt aLine, char aFileName[]);
+GLREF_C void TestIfEqual( TInt aValue, TInt aExpected, TInt aLine, char const * aFileName);
 
 #define TEST_FOR_ERROR( r )	TestIfEqual( r, KErrNone, __LINE__, __FILE__)
 #define TEST_FOR_VALUE( r, expected ) TestIfEqual( r, expected, __LINE__, __FILE__)
 
 _LIT( KValueTestFailMsg, "ERROR Got %d expected %d" );
-GLDEF_C void TestIfEqual( TInt aValue, TInt aExpected, TInt aLine, char aFileName[])
+GLDEF_C void TestIfEqual( TInt aValue, TInt aExpected, TInt aLine, char const *aFileName)
 	{
 	if( aExpected != aValue )
 		{
--- a/kerneltest/f32test/plugins/version_2/src/AllSupportedDrives_plugin.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/plugins/version_2/src/AllSupportedDrives_plugin.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -13,7 +13,7 @@
 // Description:
 //
 
-#include "AllSupportedDrives_plugin.h"
+#include "allsupporteddrives_plugin.h"
 #include <f32pluginutils.h>
 
 /**
--- a/kerneltest/f32test/plugins/version_2/src/combinational2_plugin.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/plugins/version_2/src/combinational2_plugin.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -13,7 +13,7 @@
 // Description:
 //
 
-#include "Combinational2_plugin.h"
+#include "combinational2_plugin.h"
 #include "plugincommon.h"
 #include <f32pluginutils.h>
 
--- a/kerneltest/f32test/plugins/version_2/src/drivec_plugin.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/plugins/version_2/src/drivec_plugin.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -13,7 +13,7 @@
 // Description:
 //
 
-#include "DriveC_plugin.h"
+#include "drivec_plugin.h"
 #include <f32pluginutils.h>
 #include "plugincommon.h"
 
--- a/kerneltest/f32test/plugins/version_2/src/drivez_plugin.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/plugins/version_2/src/drivez_plugin.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -13,7 +13,7 @@
 // Description:
 //
 
-#include "DriveZ_plugin.h"
+#include "drivez_plugin.h"
 #include <f32pluginutils.h>
 #include "plugincommon.h"
 
--- a/kerneltest/f32test/plugins/version_2beta/t_plugin_v2beta.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/plugins/version_2beta/t_plugin_v2beta.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -24,7 +24,7 @@
 #include "encrypt.h"
 #include "hex.h"
 
-GLREF_C void TestIfEqual( TInt aValue, TInt aExpected, TInt aLine, char aFileName[]);
+GLREF_C void TestIfEqual( TInt aValue, TInt aExpected, TInt aLine, char const * aFileName);
 
 #define TEST_FOR_ERROR( r )	{ TInt _r = (r); if (_r < 0) HandleError(_r, __LINE__); }
 #define TEST_FOR_VALUE( r, expected ) TestIfEqual( r, expected, __LINE__, __FILE__)
@@ -51,7 +51,7 @@
 					"line 9 abcdefghijklmnopqrstuvwxyz\n");
 
 _LIT( KValueTestFailMsg, "ERROR Got %d expected %d" );
-GLDEF_C void TestIfEqual( TInt aValue, TInt aExpected, TInt aLine, char aFileName[])
+GLDEF_C void TestIfEqual( TInt aValue, TInt aExpected, TInt aLine, char const * aFileName)
 	{
 	if( aExpected != aValue )
 		{
--- a/kerneltest/f32test/server/t_cp_plugintest.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/server/t_cp_plugintest.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -19,10 +19,10 @@
 #define __E32TEST_EXTENSION__
 
 #include <e32test.h>
-#include <HAL.H>
+#include <hal.h>
 #include <f32fsys.h>
 #include <f32dbg.h>
-#include "..\server\t_server.h"
+#include "../server/t_server.h"
 #include "fat_utils.h"
 
 	
--- a/kerneltest/f32test/server/t_fatcharsetconv_Cases.h	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/server/t_fatcharsetconv_Cases.h	Mon Jul 26 11:21:15 2010 +0100
@@ -19,7 +19,7 @@
 #ifndef T_FATCHARSETCONV_CASES_H
 #define T_FATCHARSETCONV_CASES_H
 
-#include "T_Fatcharsetconv_Aux.h"
+#include "t_fatcharsetconv_aux.h"
 
 #if defined(_DEBUG) || defined(_DEBUG_RELEASE)
 extern CFileMan* gFileman;
--- a/kerneltest/f32test/server/t_fatcharsetconv_SpecificCases.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/server/t_fatcharsetconv_SpecificCases.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -16,14 +16,14 @@
 */
 #define __E32TEST_EXTENSION__
 
-#include "T_Fatcharsetconv_aux.h"
+#include "t_fatcharsetconv_aux.h"
 #include <f32file.h>
 #include <e32test.h>
 #include <e32svr.h>
-#include <HAL.H>
+#include <hal.h>
 #include <f32fsys.h>
 #include <f32dbg.h>
-#include "..\server\t_server.h"
+#include "../server/t_server.h"
 
 //#include "fat_utils.h"
 
@@ -578,7 +578,8 @@
 	while(__FILE__[i]!='\0')
 		{
 		fileName.SetLength(i+1);
-		fileName[i] = __FILE__[i++];
+		fileName[i] = __FILE__[i];
+		++i;
 		}
 	gFileName = fileName;
 
--- a/kerneltest/f32test/server/t_fatcharsetconv_aux.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/server/t_fatcharsetconv_aux.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -16,7 +16,7 @@
 //
 
 #include <f32dbg.h>
-#include "T_fatcharsetconv_Aux.h"
+#include "t_fatcharsetconv_aux.h"
 
 CFileMan* gFileMan = NULL;
 RPointerArray<RFile>* gFileHandles = NULL;
--- a/kerneltest/f32test/server/t_fatcharsetconv_main.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/server/t_fatcharsetconv_main.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -25,7 +25,7 @@
 #include "t_server.h"
 #include "t_chlffs.h"
 #include "fat_utils.h"
-#include "T_Fatcharsetconv_Cases.h"
+#include "t_fatcharsetconv_Cases.h"
 
 
 RTest test(_L("T_FatCharSetConv"));
@@ -1341,7 +1341,8 @@
 			while(__FILE__[i]!='\0')
 				{
 				fileName.SetLength(i+1);
-				fileName[i] = __FILE__[i++];
+				fileName[i] = __FILE__[i];
+				++i;
 				}
 			gFileName.Append(fileName);
 			
--- a/kerneltest/f32test/server/t_file64bit.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/server/t_file64bit.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -31,7 +31,7 @@
 #include <e32svr.h>
 #include "t_server.h"
 #include "t_file64bit.h"
-#include "..\\fileshare\\handshare64bit.h"
+#include "../fileshare/handshare64bit.h"
 #include <f32pluginutils.h>
 #include <massstorage.h>
 #include <e32math.h>
--- a/kerneltest/f32test/server/t_fsrv.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/server/t_fsrv.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -297,7 +297,7 @@
         if (anInfo.iType==EMediaNotPresent)
             return;
 
-		test_Value(anInfo.iDriveAtt, anInfo.iDriveAtt&(KDriveAttLocal|KDriveAttInternal)==KDriveAttLocal|KDriveAttInternal);	// LFFS sets KDriveAttTransaction as well
+		test_Value(anInfo.iDriveAtt, (anInfo.iDriveAtt&(KDriveAttLocal|KDriveAttInternal))==(KDriveAttLocal|KDriveAttInternal));	// LFFS sets KDriveAttTransaction as well
         test_Value(anInfo.iType, anInfo.iType==EMediaFlash);
         test_Value(anInfo.iMediaAtt, anInfo.iMediaAtt==KMediaAttFormattable);
 		}
--- a/kerneltest/f32test/server/t_localeutils_cp932.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/server/t_localeutils_cp932.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -19,11 +19,11 @@
 
 
 #include <e32test.h>
-#include <HAL.H>
+#include <hal.h>
 #include <f32fsys.h>
 #include <f32dbg.h>
 #include <e32svr.h>
-#include "..\server\t_server.h"
+#include "../server/t_server.h"
 #include "fat_utils.h"
 
 RTest test(_L("T_LOCALEUTILS_CP932"));
--- a/kerneltest/f32test/server/t_prel.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/server/t_prel.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -22,7 +22,7 @@
 EXPORT_C void FurtiveD(TFileName &aInfo)
 	{
 
-	char *dummy="Link unit for Preload test";
+	char const *dummy="Link unit for Preload test";
 	dummy=dummy;
 	TFileName name;
 	Dll::FileName(name);
--- a/kerneltest/f32test/smassstorage/scsiprot/t_ms_main.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/smassstorage/scsiprot/t_ms_main.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -45,7 +45,7 @@
 	}
 
 _LIT( KValueTestFailMsg, "ERROR Got %d expected %d" );
-GLDEF_C void TestIfEqual( TInt aValue, TInt aExpected, TInt aLine, char aFileName[])
+GLDEF_C void TestIfEqual( TInt aValue, TInt aExpected, TInt aLine, char const *aFileName)
 	{
 	if( aExpected != aValue )
 		{
--- a/kerneltest/f32test/smassstorage/scsiprot/t_ms_main.h	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/smassstorage/scsiprot/t_ms_main.h	Mon Jul 26 11:21:15 2010 +0100
@@ -34,7 +34,7 @@
 GLDEF_C void t_scsi_prot();
 
 
-GLDEF_C void TestIfEqual( TInt aValue, TInt aExpected, TInt aLine, char aFileName[]);
+GLDEF_C void TestIfEqual( TInt aValue, TInt aExpected, TInt aLine, char const * aFileName);
 #define TEST_FOR_VALUE( r, expected ) TestIfEqual( r, expected, __LINE__, __FILE__)
 
 #define TEST_SENSE_CODE( aSensePtr, aExpKey, aExtAddCode ) 		\
--- a/kerneltest/f32test/smassstorage/src/t_ms_main.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/kerneltest/f32test/smassstorage/src/t_ms_main.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -38,7 +38,7 @@
 
 
 _LIT( KValueTestFailMsg, "ERROR Got %d expected %d" );
-GLDEF_C void TestIfEqual( TInt aValue, TInt aExpected, TInt aLine, char aFileName[])
+GLDEF_C void TestIfEqual( TInt aValue, TInt aExpected, TInt aLine, char const * aFileName)
 	{
 	if( aExpected != aValue )
 		{
--- a/package_definition.xml	Mon Jul 26 11:06:41 2010 +0100
+++ b/package_definition.xml	Mon Jul 26 11:21:15 2010 +0100
@@ -92,6 +92,9 @@
       <component id="estart" name="Base Starter" filter="gt" purpose="optional">
         <unit bldFile="userlibandfileserver/fileserver/estart" mrp="userlibandfileserver/fileserver/estart/base_f32_estart.mrp"/>
       </component>
+      <component id="automounter" name="File Server Automounter" filter="gt" purpose="optional">
+        <unit bldFile="userlibandfileserver/fileserver/automounter" mrp="userlibandfileserver/fileserver/automounter/base_f32_automounter.mrp"/>
+      </component>
       <component id="domainmgr" name="Domain Manager" introduced="8.1b" purpose="mandatory">
         <unit bldFile="userlibandfileserver/domainmgr/group" mrp="userlibandfileserver/domainmgr/group/base_domain.mrp"/>
       </component>
--- a/userlibandfileserver/fileserver/sfat/sl_utl.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/userlibandfileserver/fileserver/sfat/sl_utl.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -203,7 +203,7 @@
     chkSum = (TUint8)(((chkSum<<7) | (chkSum>>1)) + ((w0 << 8)  >> 24));
     chkSum = (TUint8)(((chkSum<<7) | (chkSum>>1)) + ( w0 >> 24));
 
-    chkSum = (TUint8)(((chkSum<<7) | (chkSum>>1)) + (w1) & 0xFF);
+    chkSum = (TUint8)(((chkSum<<7) | (chkSum>>1)) + (w1 & 0xFF));
     chkSum = (TUint8)(((chkSum<<7) | (chkSum>>1)) + ((w1 << 16) >> 24));
     chkSum = (TUint8)(((chkSum<<7) | (chkSum>>1)) + ((w1 << 8)  >> 24));
     chkSum = (TUint8)(((chkSum<<7) | (chkSum>>1)) + ( w1 >> 24));
--- a/userlibandfileserver/fileserver/sfat32/sl_utl.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/userlibandfileserver/fileserver/sfat32/sl_utl.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -150,7 +150,7 @@
     chkSum = (TUint8)(((chkSum<<7) | (chkSum>>1)) + ((w0 << 8)  >> 24));
     chkSum = (TUint8)(((chkSum<<7) | (chkSum>>1)) + ( w0 >> 24));
 
-    chkSum = (TUint8)(((chkSum<<7) | (chkSum>>1)) + (w1) & 0xFF);
+    chkSum = (TUint8)(((chkSum<<7) | (chkSum>>1)) + (w1 & 0xFF));
     chkSum = (TUint8)(((chkSum<<7) | (chkSum>>1)) + ((w1 << 16) >> 24));
     chkSum = (TUint8)(((chkSum<<7) | (chkSum>>1)) + ((w1 << 8)  >> 24));
     chkSum = (TUint8)(((chkSum<<7) | (chkSum>>1)) + ( w1 >> 24));
--- a/userlibandfileserver/fileserver/sfile/sf_func.h	Mon Jul 26 11:06:41 2010 +0100
+++ b/userlibandfileserver/fileserver/sfile/sf_func.h	Mon Jul 26 11:21:15 2010 +0100
@@ -918,9 +918,12 @@
 public:
 	static TInt Initialise(CFsRequest* aRequest);
 	static TInt DoRequestL(CFsRequest* aRequest);
+	
+#ifndef __GCCE__ // GCC does not like AddFsToCompositeMountL() being private 
 #ifndef __GCC32__ // GCC does not like AddFsToCompositeMountL() being private 
 private:
 #endif
+#endif
 	static void AddFsToCompositeMountL(TInt aDriveNumber, CFileSystem& aFileSystem, TInt aLocalDriveNumber);
 	};
 
--- a/userlibandfileserver/fileserver/sfile/sf_thread.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/userlibandfileserver/fileserver/sfile/sf_thread.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -379,7 +379,7 @@
 	TUint id=RThread().Id();
 	if(aIsLock)
 		t.iFSLock.Wait();
-	TBool b = t.iIsAvailable && (!t.iIsSync && t.iId==id || t.iIsSync);
+	TBool b = t.iIsAvailable && ((!t.iIsSync && t.iId==id) || t.iIsSync);
 	if(aIsLock)
 		t.iFSLock.Signal();
 	return(b);
--- a/userlibandfileserver/fileserver/sfsrv/cl_fman.cpp	Mon Jul 26 11:06:41 2010 +0100
+++ b/userlibandfileserver/fileserver/sfsrv/cl_fman.cpp	Mon Jul 26 11:21:15 2010 +0100
@@ -2614,7 +2614,7 @@
 	TInt r=KErrNotFound;
 	if (iAction == EInternalRmDir ||
 	    (iAction == EInternalCopyForMove && ((iMatchEntry & KMovingFilesMask) != KMovingFilesMask) && !iMovingContents && !iSrcFile.IsRoot()) ||
-	    iAction == EInternalRenameForMove && !iMovingContents && iNumberOfFilesProcessed)
+	    (iAction == EInternalRenameForMove && !iMovingContents && iNumberOfFilesProcessed))
 		{
 		r=iFs.RmDir(iSrcFile.FullName());
 		if ((r!=KErrNone && r!=KErrNotFound && iAction!=EInternalRenameForMove && r!=KErrInUse) || (iAction == EInternalRmDir && r == KErrInUse))