Index: /trunk/Config.kmk
===================================================================
--- /trunk/Config.kmk	(revision 66015)
+++ /trunk/Config.kmk	(revision 66016)
@@ -309,6 +309,6 @@
 VBOX_WITH_ADDITIONS = 1
 # Build the optional ring-0 part of the additions for syntax checking.
-# (Except when cross-building on linux since we're using /usr/src/...)
-ifn1of ($(KBUILD_TARGET).$(KBUILD_HOST_ARCH).$(KBUILD_TARGET_ARCH), linux.x86.amd64 linux.amd64.x86)
+# On linux we build this as a test case instead.
+ifneq ($(KBUILD_TARGET), linux)
  VBOX_WITH_ADDITION_DRIVERS = 1
 endif
@@ -565,5 +565,8 @@
 VBOX_WITH_INSTALLER = 1
 # The kernel driver/module and related runtime libraries.
-VBOX_WITH_VBOXDRV = 1
+# On Linux we build this as a test case instead.
+ifneq ($(KBUILD_TARGET), linux)
+ VBOX_WITH_VBOXDRV = 1
+endif
 # The main api.
 VBOX_WITH_MAIN = 1
@@ -2928,15 +2931,4 @@
 ifdef VBOX_WITH_NO_GCC_WARNING_POLICY
  $(info build debug: VBOX_WITH_NO_GCC_WARNING_POLICY is enabled)
-endif
-
-#
-# We compile the kernel driver/module and related runtime libraries with C++.
-# This does not work for g++-4.8 and recent Linux kernels.
-#
-ifeq ($(BUILD_TARGET),linux)
- ifeq ($(int-div $(VBOX_GCC_VERSION_CXX),100), 408)
-  VBOX_WITH_VBOXDRV =
-  VBOX_WITH_ADDITION_DRIVERS =
- endif
 endif
 
Index: /trunk/src/VBox/Additions/linux/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Additions/linux/Makefile.kmk	(revision 66015)
+++ /trunk/src/VBox/Additions/linux/Makefile.kmk	(revision 66016)
@@ -27,4 +27,27 @@
  include $(PATH_SUB_CURRENT)/lightdm-greeter/Makefile.kmk
 endif
+
+#
+# Build test for the Guest Additions kernel modules
+#
+
+ifdef VBOX_WITH_TESTCASES
+ ifndef VBOX_ONLY_SDK
+  VBOX_LNX_ADD_TEST=$(PATH_TARGET)/tstguest_mod
+  VBOX_LNX_ADD_TEST_TARGET=$(PATH_TARGET)/tstguest_mod.run
+  VBOX_LNX_ADD_SOURCES=$(vboxguest-src_2_INST_TARGETS) $(vboxsf-mod_2_INST_TARGETS) $(vboxvideo_drm-mod_2_INST_TARGETS)
+  TESTING += $(VBOX_LNX_ADD_TEST_TARGET)
+  OTHERS += $(VBOX_LNX_ADD_TEST_TARGET)
+  OTHER_CLEAN += $(VBOX_LNX_ADD_TEST)
+$$(VBOX_LNX_ADD_TEST_TARGET): $$(VBOX_LNX_ADD_SOURCES)
+	$(QUIET)$(call MSG_L1,Doing a test build of the guest kernel modules)
+	$(QUIET)$(ASH) -c "rm -f $@"
+	$(QUIET)$(ASH) -c "mkdir -p $(VBOX_LNX_ADD_TEST) && cp -r $(PATH_STAGE_BIN)/additions/src/* $(VBOX_LNX_ADD_TEST)"
+	$(QUIET)$(ASH) -c "cd $(VBOX_LNX_ADD_TEST) && if ! make > build.log 2>&1; then echo Failed: check file $(VBOX_LNX_ADD_TEST)/build.log && false; fi"
+	$(QUIET)$(APPEND) -t "$@" "done"
+ endif
+endif
+
+
 
 #
Index: /trunk/src/VBox/Installer/linux/Makefile.include.footer
===================================================================
--- /trunk/src/VBox/Installer/linux/Makefile.include.footer	(revision 66015)
+++ /trunk/src/VBox/Installer/linux/Makefile.include.footer	(revision 66016)
@@ -71,4 +71,5 @@
 EXTRA_CFLAGS += $(MOD_CFLAGS) $(INCL) $(KFLAGS) $(MOD_EXTRA) $(KDEBUG)
 
+.PHONY: $(MODULE)
 all: $(MODULE)
 
Index: /trunk/src/VBox/Installer/linux/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Installer/linux/Makefile.kmk	(revision 66015)
+++ /trunk/src/VBox/Installer/linux/Makefile.kmk	(revision 66016)
@@ -29,4 +29,25 @@
 ifneq ($(KBUILD_HOST),linux)
  $(error "The Linux installer can only be built on Linux!")
+endif
+
+#
+# Build test for the host kernel modules
+#
+
+ifdef VBOX_WITH_TESTCASES
+ ifndef VBOX_ONLY_SDK
+  VBOX_LNX_MOD_TEST=$(PATH_TARGET)/tsthost_mod
+  VBOX_LNX_MOD_TEST_TARGET=$(PATH_TARGET)/tsthost_mod.run
+  VBOX_LNX_MOD_SOURCES=$(vboxdrv-mod_2_INST_TARGETS) $(VBoxNetFlt-src_2_INST_TARGETS) $(VBoxNetFlt-src_2_INST_TARGETS) $(VBoxPci-src_2_INST_TARGETS)
+  TESTING += $(VBOX_LNX_MOD_TEST_TARGET)
+  OTHERS += $(VBOX_LNX_MOD_TEST_TARGET)
+  OTHER_CLEAN += $(VBOX_LNX_MOD_TEST)
+$$(VBOX_LNX_MOD_TEST_TARGET): $$(VBOX_LNX_MOD_SOURCES)
+	$(QUIET)$(call MSG_L1,Doing a test build of the host kernel modules)
+	$(QUIET)$(ASH) -c "rm -f $@"
+	$(QUIET)$(ASH) -c "mkdir -p $(VBOX_LNX_MOD_TEST) && cp -r $(PATH_STAGE_BIN)/src/* $(VBOX_LNX_MOD_TEST)"
+	$(QUIET)$(ASH) -c "cd $(VBOX_LNX_MOD_TEST) && if ! make > build.log 2>&1; then echo Failed: check file $(VBOX_LNX_MOD_TEST)/build.log && false; fi"
+	$(QUIET)$(APPEND) -t "$@" "done"
+ endif
 endif
 
