Support cross-compiling Windows binaries on Linux

This defines another mutator between HostOrDevice and Arch that will
expand host modules into a module for each host type
(Darwin/Linux/Windows) that is currently being built.

Change-Id: I4c8ac6b616c229f6bd45ad8a35902652fb6a4fff
diff --git a/cc/x86_linux_host.go b/cc/x86_linux_host.go
index f544476..09a0803 100644
--- a/cc/x86_linux_host.go
+++ b/cc/x86_linux_host.go
@@ -1,7 +1,6 @@
 package cc
 
 import (
-	"runtime"
 	"strings"
 
 	"android/soong/common"
@@ -12,6 +11,8 @@
 		"-fno-exceptions", // from build/core/combo/select.mk
 		"-Wno-multichar",  // from build/core/combo/select.mk
 
+		"-fdiagnostics-color",
+
 		"-Wa,--noexecstack",
 
 		"-fPIC",
@@ -233,8 +234,6 @@
 }
 
 func init() {
-	if runtime.GOOS == "linux" {
-		registerToolchainFactory(common.Host, common.X86, linuxX86ToolchainFactory)
-		registerToolchainFactory(common.Host, common.X86_64, linuxX8664ToolchainFactory)
-	}
+	registerHostToolchainFactory(common.Linux, common.X86, linuxX86ToolchainFactory)
+	registerHostToolchainFactory(common.Linux, common.X86_64, linuxX8664ToolchainFactory)
 }