Index: trunk/kBuild/tools/VCC142.kmk
===================================================================
--- trunk/kBuild/tools/VCC142.kmk	(revision 3360)
+++ trunk/kBuild/tools/VCC142.kmk	(revision 3370)
@@ -122,11 +122,10 @@
 TOOL_VCC142_MT  ?= $(EXEC_X86_WIN32) $(call TOOL_VCC142_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC142_MT_CACHED)
 
-undefine TOOL_VCC142_USE_KSUBMIT # for now
 ifdef TOOL_VCC142_USE_KSUBMIT
  ifeq ($(KBUILD_HOST),win)
-  ifneq ($(substr $(qdir un,$(PATH_TOOL_VCC142_BIN)),-3),64/)
+  ifeq ($(findstring /HostX86/,$(PATH_TOOL_VCC142AMD64_BIN)),/HostX86/)
+   TOOL_VCC142_KSUBMIT ?= kmk_builtin_kSubmit --32-bit
+  else
    TOOL_VCC142_KSUBMIT ?= kmk_builtin_kSubmit --64-bit
-  else
-   TOOL_VCC142_KSUBMIT ?= kmk_builtin_kSubmit --32-bit
   endif
   ifdef PATH_TOOL_VCC142_DLL_BIN
@@ -272,4 +271,6 @@
 # @param    $(outbase)  Output basename (full). Use this for list files and such.
 # @param    $(objsuff)  Object suffix.
+# @note The -d1scalableinclude- option disables include directory caching as the cache goes
+#       stale in kWorker.  Besides, kWorker does it's own caching, so it is not necessary.
 TOOL_VCC142_COMPILE_C_DEPEND =
 TOOL_VCC142_COMPILE_C_DEPORD =
@@ -280,5 +281,5 @@
  define TOOL_VCC142_COMPILE_C_CMDS
 	$(QUIET)$(TOOL_VCC142_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
-		-- $(TOOL_VCC142_CC) -c\
+		-- $(TOOL_VCC142_CC) -c -d1scalableinclude-\
 		$(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
 		-Fd$(outbase)-obj.pdb \
@@ -288,5 +289,5 @@
 else
  define TOOL_VCC142_COMPILE_C_CMDS
-	$(QUIET)$(TOOL_VCC142_SETUP_ENV) $(TOOL_VCC142_CC) -c\
+	$(QUIET)$(TOOL_VCC142_SETUP_ENV)$(TOOL_VCC142_CC) -c\
 		$(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
 		-Fd$(outbase)-obj.pdb \
@@ -311,4 +312,7 @@
 # @param    $(outbase)  Output basename (full). Use this for list files and such.
 # @param    $(objsuff)  Object suffix.
+# @note The -d1scalableinclude- option disables include directory caching as the cache goes
+#       stale in kWorker.  Besides, kWorker does it's own caching, so it is not necessary.
+#       ('-d1' means it's passed to c1.dll/c1xx.dll and 'scalableinclude-' is the actual option.)
 TOOL_VCC142_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE)
 TOOL_VCC142_COMPILE_CXX_DEPORD =
@@ -320,5 +324,5 @@
  define TOOL_VCC142_COMPILE_CXX_CMDS
 	$(QUIET)$(TOOL_VCC142_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
-		-- $(TOOL_VCC142_CXX) -c\
+		-- $(TOOL_VCC142_CXX) -c -d1scalableinclude-\
 		$(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
 		$(if-expr defined($(target)_PCH_HDR)\
@@ -330,5 +334,5 @@
 else
  define TOOL_VCC142_COMPILE_CXX_CMDS
-	$(QUIET)$(TOOL_VCC142_SETUP_ENV) $(TOOL_VCC142_CXX) -c\
+	$(QUIET)$(TOOL_VCC142_SETUP_ENV)$(TOOL_VCC142_CXX) -c\
 		$(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
 		$(if-expr defined($(target)_PCH_HDR)\
@@ -365,5 +369,5 @@
 	$(QUIET)$(RM) -f -- $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
 	$(QUIET)$(TOOL_VCC142_KSUBMIT) --no-pch-caching -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\
-		-- $(TOOL_VCC142_CXX) -c -Yc\
+		-- $(TOOL_VCC142_CXX) -c -Yc -d1scalableinclude-\
 		$(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
                -Fp$($(target)_1_VCC_PCH_FILE) \
@@ -376,5 +380,5 @@
  define TOOL_VCC142-PCH_COMPILE_CXX_CMDS
 	$(QUIET)$(RM) -f -- $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
-	$(QUIET)$(TOOL_VCC142_SETUP_ENV) $(TOOL_VCC142_CXX) -c -Yc\
+	$(QUIET)$(TOOL_VCC142_SETUP_ENV)$(TOOL_VCC142_CXX) -c -Yc\
 		$(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
                -Fp$($(target)_1_VCC_PCH_FILE) \
Index: trunk/kBuild/tools/VCC142AMD64.kmk
===================================================================
--- trunk/kBuild/tools/VCC142AMD64.kmk	(revision 3360)
+++ trunk/kBuild/tools/VCC142AMD64.kmk	(revision 3370)
@@ -92,11 +92,10 @@
 TOOL_VCC142AMD64_MT ?= $(EXEC_X86_WIN32) $(call TOOL_VCC142_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC142_MT_CACHED)
 
-undefine TOOL_VCC142AMD64_USE_KSUBMIT # for now
 ifdef TOOL_VCC142AMD64_USE_KSUBMIT
  ifeq ($(KBUILD_HOST),win)
-  ifneq ($(substr $(qdir un,$(PATH_TOOL_VCC142AMD64_BIN)),-3),64/)
+  ifeq ($(findstring /HostX86/,$(PATH_TOOL_VCC142AMD64_BIN)),/HostX86/)
+   TOOL_VCC142AMD64_KSUBMIT ?= kmk_builtin_kSubmit --32-bit
+  else
    TOOL_VCC142AMD64_KSUBMIT ?= kmk_builtin_kSubmit --64-bit
-  else
-   TOOL_VCC142AMD64_KSUBMIT ?= kmk_builtin_kSubmit --32-bit
   endif
   ifdef PATH_TOOL_VCC142AMD64_DLL_BIN
@@ -174,4 +173,6 @@
 # @param    $(outbase)  Output basename (full). Use this for list files and such.
 # @param    $(objsuff)  Object suffix.
+# @note The -d1scalableinclude- option disables include directory caching as the cache goes
+#       stale in kWorker.  Besides, kWorker does it's own caching, so it is not necessary.
 TOOL_VCC142AMD64_COMPILE_C_DEPEND =
 TOOL_VCC142AMD64_COMPILE_C_DEPORD =
@@ -182,5 +183,5 @@
  define TOOL_VCC142AMD64_COMPILE_C_CMDS
 	$(QUIET)$(TOOL_VCC142AMD64_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
-		-- $(TOOL_VCC142AMD64_CC) -c\
+		-- $(TOOL_VCC142AMD64_CC) -c -d1scalableinclude-\
 		$(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
 		-Fd$(outbase)-obj.pdb \
@@ -213,4 +214,7 @@
 # @param    $(outbase)  Output basename (full). Use this for list files and such.
 # @param    $(objsuff)  Object suffix.
+# @note The -d1scalableinclude- option disables include directory caching as the cache goes
+#       stale in kWorker.  Besides, kWorker does it's own caching, so it is not necessary.
+#       ('-d1' means it's passed to c1.dll/c1xx.dll and 'scalableinclude-' is the actual option.)
 TOOL_VCC142AMD64_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE)
 TOOL_VCC142AMD64_COMPILE_CXX_DEPORD =
@@ -222,5 +226,5 @@
  define TOOL_VCC142AMD64_COMPILE_CXX_CMDS
 	$(QUIET)$(TOOL_VCC142AMD64_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
-		-- $(TOOL_VCC142AMD64_CXX) -c\
+		-- $(TOOL_VCC142AMD64_CXX) -c -d1scalableinclude-\
 		$(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
 		$(if-expr defined($(target)_PCH_HDR)\
@@ -267,5 +271,5 @@
 	$(QUIET)$(RM) -f -- $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
 	$(QUIET)$(TOOL_VCC142AMD64_KSUBMIT) --no-pch-caching -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\
-		-- $(TOOL_VCC142AMD64_CXX) -c -Yc\
+		-- $(TOOL_VCC142AMD64_CXX) -c -Yc -d1scalableinclude-\
 		$(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
                -Fp$($(target)_1_VCC_PCH_FILE) \
Index: trunk/kBuild/tools/VCC142X86.kmk
===================================================================
--- trunk/kBuild/tools/VCC142X86.kmk	(revision 3360)
+++ trunk/kBuild/tools/VCC142X86.kmk	(revision 3370)
@@ -92,11 +92,10 @@
 TOOL_VCC142X86_MT ?= $(EXEC_X86_WIN32) $(call TOOL_VCC142_FN_FIND_SDK_TOOL,mt.exe,[Mm][Tt].[Ee][Xx][Ee],TOOL_VCC142_MT_CACHED)
 
-undefine TOOL_VCC142X86_USE_KSUBMIT # for now
 ifdef TOOL_VCC142X86_USE_KSUBMIT
  ifeq ($(KBUILD_HOST),win)
-  ifneq ($(substr $(qdir un,$(PATH_TOOL_VCC142X86_BIN)),-3),64/)
+  ifeq ($(findstring /HostX86/,$(PATH_TOOL_VCC142X86_BIN)),/HostX86/)
+   TOOL_VCC142X86_KSUBMIT ?= kmk_builtin_kSubmit --32-bit
+  else
    TOOL_VCC142X86_KSUBMIT ?= kmk_builtin_kSubmit --64-bit
-  else
-   TOOL_VCC142X86_KSUBMIT ?= kmk_builtin_kSubmit --32-bit
   endif
   ifdef PATH_TOOL_VCC142X86_DLL_BIN
@@ -174,4 +173,6 @@
 # @param    $(outbase)  Output basename (full). Use this for list files and such.
 # @param    $(objsuff)  Object suffix.
+# @note The -d1scalableinclude- option disables include directory caching as the cache goes
+#       stale in kWorker.  Besides, kWorker does it's own caching, so it is not necessary.
 TOOL_VCC142X86_COMPILE_C_DEPEND =
 TOOL_VCC142X86_COMPILE_C_DEPORD =
@@ -182,5 +183,5 @@
  define TOOL_VCC142X86_COMPILE_C_CMDS
 	$(QUIET)$(TOOL_VCC142X86_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
-		-- $(TOOL_VCC142X86_CC) -c\
+		-- $(TOOL_VCC142X86_CC) -c -d1scalableinclude-\
 		$(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
 		-Fd$(outbase)-obj.pdb \
@@ -213,4 +214,7 @@
 # @param    $(outbase)  Output basename (full). Use this for list files and such.
 # @param    $(objsuff)  Object suffix.
+# @note The -d1scalableinclude- option disables include directory caching as the cache goes
+#       stale in kWorker.  Besides, kWorker does it's own caching, so it is not necessary.
+#       ('-d1' means it's passed to c1.dll/c1xx.dll and 'scalableinclude-' is the actual option.)
 TOOL_VCC142X86_COMPILE_CXX_DEPEND = $($(target)_1_VCC_PCH_FILE)
 TOOL_VCC142X86_COMPILE_CXX_DEPORD =
@@ -222,5 +226,5 @@
  define TOOL_VCC142X86_COMPILE_CXX_CMDS
 	$(QUIET)$(TOOL_VCC142X86_KSUBMIT) -P $(DEP_OBJ_INT) -f -s -q -o $(dep) -t $(obj) $(obj)\
-		-- $(TOOL_VCC142X86_CXX) -c\
+		-- $(TOOL_VCC142X86_CXX) -c -d1scalableinclude-\
 		$(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
 		$(if-expr defined($(target)_PCH_HDR)\
@@ -267,5 +271,5 @@
 	$(QUIET)$(RM) -f -- $($(target)_1_VCC_PCH_FILE) $($(target)_1_VCC_COMMON_OBJ_PDB)
 	$(QUIET)$(TOOL_VCC142X86_KSUBMIT) --no-pch-caching -P $(DEP_OBJ_INT) -f -s -q -e .pch -o $(dep) -t $(obj) $(obj)\
-		-- $(TOOL_VCC142X86_CXX) -c -Yc\
+		-- $(TOOL_VCC142X86_CXX) -c -Yc -d1scalableinclude-\
 		$(flags) $(qaddprefix sh,-I, $(incs)) $(qaddprefix sh,-D, $(defs))\
                -Fp$($(target)_1_VCC_PCH_FILE) \
