Merge "Run 'pstree' if ninja_log hasn't updated recently"
diff --git a/cc/config/global.go b/cc/config/global.go
index 667b34b..4ae22c9 100644
--- a/cc/config/global.go
+++ b/cc/config/global.go
@@ -76,8 +76,8 @@
 
 	// prebuilts/clang default settings.
 	ClangDefaultBase         = "prebuilts/clang/host"
-	ClangDefaultVersion      = "clang-3859424"
-	ClangDefaultShortVersion = "4.0"
+	ClangDefaultVersion      = "clang-4053586"
+	ClangDefaultShortVersion = "5.0"
 )
 
 var pctx = android.NewPackageContext("android/soong/cc/config")
diff --git a/cc/sanitize.go b/cc/sanitize.go
index 8900ee8..fcb3289 100644
--- a/cc/sanitize.go
+++ b/cc/sanitize.go
@@ -212,8 +212,8 @@
 		// TODO(ccross): error for compile_multilib = "32"?
 	}
 
-	if Bool(s.All_undefined) || Bool(s.Undefined) || Bool(s.Address) ||
-		Bool(s.Thread) || Bool(s.Coverage) || Bool(s.Safestack) || Bool(s.Cfi) {
+	if ctx.Os() != android.Windows && (Bool(s.All_undefined) || Bool(s.Undefined) || Bool(s.Address) || Bool(s.Thread) ||
+		Bool(s.Coverage) || Bool(s.Safestack) || Bool(s.Cfi) || len(s.Misc_undefined) > 0) {
 		sanitize.Properties.SanitizerEnabled = true
 	}
 
@@ -308,9 +308,6 @@
 			// libraries needed with -fsanitize=address. http://b/18650275 (WAI)
 			flags.LdFlags = append(flags.LdFlags, "-lm", "-lpthread")
 			flags.LdFlags = append(flags.LdFlags, "-Wl,--no-as-needed")
-			// Host ASAN only links symbols in the final executable, so
-			// there will always be undefined symbols in intermediate libraries.
-			_, flags.LdFlags = removeFromList("-Wl,--no-undefined", flags.LdFlags)
 		} else {
 			flags.CFlags = append(flags.CFlags, "-mllvm", "-asan-globals=0")
 			flags.DynamicLinker = "/system/bin/linker_asan"
@@ -355,6 +352,9 @@
 			flags.CFlags = append(flags.CFlags, "-fno-sanitize-recover=all")
 			flags.LdFlags = append(flags.LdFlags, sanitizeArg)
 			flags.LdFlags = append(flags.LdFlags, "-lrt", "-ldl")
+			// Host sanitizers only link symbols in the final executable, so
+			// there will always be undefined symbols in intermediate libraries.
+			_, flags.LdFlags = removeFromList("-Wl,--no-undefined", flags.LdFlags)
 		} else {
 			flags.CFlags = append(flags.CFlags, "-fsanitize-trap=all", "-ftrap-function=abort")
 		}