Revert "Allow Linux hosts to use ubsan runtime sanitizers."

This reverts commit dbc5000c5b6ca1f0968207686c4f41fbff18d7a7.

Reason for revert: Build breakage.

Change-Id: Ia6a1b58f156e4cc071562043c2f99f78b45b7968
Exempt-From-Owner-Approval: Reverting change due to build breakage.
diff --git a/cc/config/x86_linux_host.go b/cc/config/x86_linux_host.go
index 13b5511..f08a379 100644
--- a/cc/config/x86_linux_host.go
+++ b/cc/config/x86_linux_host.go
@@ -234,7 +234,7 @@
 }
 
 func (toolchainLinuxX86) LibclangRuntimeLibraryArch() string {
-	return "i386"
+	return "i686"
 }
 
 func (toolchainLinuxX8664) LibclangRuntimeLibraryArch() string {
diff --git a/cc/sanitize.go b/cc/sanitize.go
index ecaafe4..93c4b41 100644
--- a/cc/sanitize.go
+++ b/cc/sanitize.go
@@ -334,8 +334,8 @@
 		s.Diag.Cfi = nil
 	}
 
-	// Disable sanitizers that depend on the UBSan runtime for windows/darwin builds.
-	if !ctx.Os().Linux() {
+	// Disable sanitizers that depend on the UBSan runtime for host builds.
+	if ctx.Host() {
 		s.Cfi = nil
 		s.Diag.Cfi = nil
 		s.Misc_undefined = nil
@@ -433,18 +433,11 @@
 func (sanitize *sanitize) flags(ctx ModuleContext, flags Flags) Flags {
 	minimalRuntimeLib := config.UndefinedBehaviorSanitizerMinimalRuntimeLibrary(ctx.toolchain()) + ".a"
 	minimalRuntimePath := "${config.ClangAsanLibDir}/" + minimalRuntimeLib
-	builtinsRuntimeLib := config.BuiltinsRuntimeLibrary(ctx.toolchain()) + ".a"
-	builtinsRuntimePath := "${config.ClangAsanLibDir}/" + builtinsRuntimeLib
 
-	if sanitize.Properties.MinimalRuntimeDep {
+	if ctx.Device() && sanitize.Properties.MinimalRuntimeDep {
 		flags.Local.LdFlags = append(flags.Local.LdFlags,
 			minimalRuntimePath,
 			"-Wl,--exclude-libs,"+minimalRuntimeLib)
-		if ctx.Host() {
-			flags.Local.LdFlags = append(flags.Local.LdFlags,
-				builtinsRuntimePath,
-				"-Wl,--exclude-libs,"+builtinsRuntimeLib)
-		}
 	}
 	if !sanitize.Properties.SanitizerEnabled && !sanitize.Properties.UbsanRuntimeDep {
 		return flags
@@ -548,15 +541,11 @@
 			// there will always be undefined symbols in intermediate libraries.
 			_, flags.Global.LdFlags = removeFromList("-Wl,--no-undefined", flags.Global.LdFlags)
 			flags.Local.LdFlags = append(flags.Local.LdFlags, sanitizeArg)
-		}
-
-		if enableMinimalRuntime(sanitize) {
-			flags.Local.CFlags = append(flags.Local.CFlags, strings.Join(minimalRuntimeFlags, " "))
-			flags.libFlags = append([]string{minimalRuntimePath}, flags.libFlags...)
-			flags.Local.LdFlags = append(flags.Local.LdFlags, "-Wl,--exclude-libs,"+minimalRuntimeLib)
-			if !ctx.toolchain().Bionic() {
-				flags.libFlags = append([]string{builtinsRuntimePath}, flags.libFlags...)
-				flags.Local.LdFlags = append(flags.Local.LdFlags, "-Wl,--exclude-libs,"+builtinsRuntimeLib)
+		} else {
+			if enableMinimalRuntime(sanitize) {
+				flags.Local.CFlags = append(flags.Local.CFlags, strings.Join(minimalRuntimeFlags, " "))
+				flags.libFlags = append([]string{minimalRuntimePath}, flags.libFlags...)
+				flags.Local.LdFlags = append(flags.Local.LdFlags, "-Wl,--exclude-libs,"+minimalRuntimeLib)
 			}
 		}
 
@@ -899,46 +888,34 @@
 			runtimeLibrary = config.UndefinedBehaviorSanitizerRuntimeLibrary(toolchain)
 		}
 
-		if runtimeLibrary != "" {
-			// Devices and LinuxBionic use the same libraries.
-			if toolchain.Bionic() {
-				if isLlndkLibrary(runtimeLibrary, mctx.Config()) && !c.static() && c.UseVndk() {
-					runtimeLibrary = runtimeLibrary + llndkLibrarySuffix
-				}
-
-				// Adding dependency to the runtime library. We are using *FarVariation*
-				// because the runtime libraries themselves are not mutated by sanitizer
-				// mutators and thus don't have sanitizer variants whereas this module
-				// has been already mutated.
-				//
-				// Note that by adding dependency with {static|shared}DepTag, the lib is
-				// added to libFlags and LOCAL_SHARED_LIBRARIES by cc.Module
-				if c.staticBinary() {
-					// static executable gets static runtime libs
-					mctx.AddFarVariationDependencies(append(mctx.Target().Variations(), []blueprint.Variation{
-						{Mutator: "link", Variation: "static"},
-						c.ImageVariation(),
-					}...), StaticDepTag, append([]string{runtimeLibrary}, extraStaticDeps...)...)
-				} else if !c.static() && !c.header() {
-					// dynamic executable and shared libs get shared runtime libs
-					mctx.AddFarVariationDependencies(append(mctx.Target().Variations(), []blueprint.Variation{
-						{Mutator: "link", Variation: "shared"},
-						c.ImageVariation(),
-					}...), earlySharedDepTag, runtimeLibrary)
-				}
-				// static lib does not have dependency to the runtime library. The
-				// dependency will be added to the executables or shared libs using
-				// the static lib.
-			} else {
-				if c.sanitize.Properties.UbsanRuntimeDep {
-					// Support UBSan runtime on host modules, which requires the builtins linked in as well.
-					mctx.AddFarVariationDependencies(append(mctx.Target().Variations(), []blueprint.Variation{
-						{Mutator: "link", Variation: "static"},
-						c.ImageVariation(),
-					}...), StaticDepTag, append([]string{runtimeLibrary, config.BuiltinsRuntimeLibrary(toolchain)},
-						extraStaticDeps...)...)
-				}
+		if mctx.Device() && runtimeLibrary != "" {
+			if isLlndkLibrary(runtimeLibrary, mctx.Config()) && !c.static() && c.UseVndk() {
+				runtimeLibrary = runtimeLibrary + llndkLibrarySuffix
 			}
+
+			// Adding dependency to the runtime library. We are using *FarVariation*
+			// because the runtime libraries themselves are not mutated by sanitizer
+			// mutators and thus don't have sanitizer variants whereas this module
+			// has been already mutated.
+			//
+			// Note that by adding dependency with {static|shared}DepTag, the lib is
+			// added to libFlags and LOCAL_SHARED_LIBRARIES by cc.Module
+			if c.staticBinary() {
+				// static executable gets static runtime libs
+				mctx.AddFarVariationDependencies(append(mctx.Target().Variations(), []blueprint.Variation{
+					{Mutator: "link", Variation: "static"},
+					c.ImageVariation(),
+				}...), StaticDepTag, append([]string{runtimeLibrary}, extraStaticDeps...)...)
+			} else if !c.static() && !c.header() {
+				// dynamic executable and shared libs get shared runtime libs
+				mctx.AddFarVariationDependencies(append(mctx.Target().Variations(), []blueprint.Variation{
+					{Mutator: "link", Variation: "shared"},
+					c.ImageVariation(),
+				}...), earlySharedDepTag, runtimeLibrary)
+			}
+			// static lib does not have dependency to the runtime library. The
+			// dependency will be added to the executables or shared libs using
+			// the static lib.
 		}
 	}
 }