Index: /trunk/Config.kmk
===================================================================
--- /trunk/Config.kmk	(revision 55043)
+++ /trunk/Config.kmk	(revision 55044)
@@ -1895,4 +1895,13 @@
 else
  VBOX_MKISOFS  ?= mkisofs
+endif
+
+ifeq ($(KBUILD_HOST),win)
+ ifndef TOOL_MINGW32
+  include $(KBUILD_PATH)/tools/MINGW32.kmk
+ endif
+ VBOX_NM ?= $(PATH_TOOL_MINGW32)/bin/nm.exe -p
+else
+ VBOX_NM ?= nm -p
 endif
 
Index: /trunk/src/VBox/VMM/Makefile.kmk
===================================================================
--- /trunk/src/VBox/VMM/Makefile.kmk	(revision 55043)
+++ /trunk/src/VBox/VMM/Makefile.kmk	(revision 55044)
@@ -751,4 +751,39 @@
 
 
+#
+# Test for undefined symbols.
+#
+if1of ($(SYSMODS),VMMRC)
+ test-undef-rc:: $(PATH_TARGET)/undef-rc.run
+ OTHERS      += $(PATH_TARGET)/undef-rc.run
+ CLEANS      += $(PATH_TARGET)/undef-rc.run
+ $(PATH_TARGET)/undef-rc.run: \
+		$$(VMMRC_1_TARGET)
+ ifn1of ($(KBUILD_TARGET), linux solaris)
+ else
+	$(call MSG_L1,VMM: Testing for undefined symbols in VMMRC using nm...)
+	$(QUIET)nm $^  2> /dev/null \
+		| $(SED) -n \
+			-e '/^[0-9a-f][0-9a-f]* [^U] .*/d' \
+			-e 's/^[0-9a-f][0-9a-f]* //' \
+			-e 's/ *U //' \
+			\
+			-e '/^g_VM\>/d'\
+			-e '/^g_CPUM\>/d'\
+			-e '/^g_Logger\>/d'\
+			-e '/^g_RelLogger\>/d'\
+			-e '/^g_TRPM\>/d'\
+			-e '/^g_TRPMCPU\>/d'\
+			-e '/^g_pSUPGlobalInfoPage\>/d'\
+			-e '/^g_trpmHyperCtxCore\>/d' \
+			-e '/^g_trpmGuestCtxCore\>/d' \
+			\
+			-e 's/\(.*\)$(DOLLAR)/  Undefined symbol: \1/' \
+			-e 'p' \
+			-e 'q 1'
+ endif
+	$(QUIET)$(APPEND) -t $@
+endif
+
 include $(FILE_KBUILD_SUB_FOOTER)
 
Index: /trunk/src/VBox/VMM/testcase/Makefile.kmk
===================================================================
--- /trunk/src/VBox/VMM/testcase/Makefile.kmk	(revision 55043)
+++ /trunk/src/VBox/VMM/testcase/Makefile.kmk	(revision 55044)
@@ -529,14 +529,4 @@
 # Some handcrafted support targets for tstAsmStructs.
 #
-
-ifeq ($(KBUILD_HOST),win)
- ifndef TOOL_MINGW32
-  include $(KBUILD_PATH)/tools/MINGW32.kmk
- endif
- VBOX_NM ?= $(PATH_TOOL_MINGW32)/bin/nm.exe -p
-else
- VBOX_NM ?= nm -p
-endif
-
 MY_ASA_ASM_STUFF = \
 		$(addprefix -D, \
Index: /trunk/src/libs/xpcom18a4/Makefile.kmk
===================================================================
--- /trunk/src/libs/xpcom18a4/Makefile.kmk	(revision 55043)
+++ /trunk/src/libs/xpcom18a4/Makefile.kmk	(revision 55044)
@@ -32,5 +32,4 @@
 XPCOM_C_NAMESPACE_MAP = $(VBOX_PATH_XPCOM_SRC)/xpcom-namespace-cleanup.map
 ifdef VBOX_WITH_XPCOM_NAMESPACE_CLEANUP
- VBOX_NM = nm$(HOSTSUFF_EXE)
  # At the moment, only Solaris uses the generated map file. GNU ld is smart
  # enough to handle symbol wildcards itself.
