Merge "Fix manifest merging flags"
diff --git a/android/arch.go b/android/arch.go
index d84c829..6971bc8 100644
--- a/android/arch.go
+++ b/android/arch.go
@@ -201,7 +201,7 @@
 	osArchTypeMap = map[OsType][]ArchType{
 		Linux:       []ArchType{X86, X86_64},
 		LinuxBionic: []ArchType{X86_64},
-		Darwin:      []ArchType{X86, X86_64},
+		Darwin:      []ArchType{X86_64},
 		Windows:     []ArchType{X86, X86_64},
 		Android:     []ArchType{Arm, Arm64, Mips, Mips64, X86, X86_64},
 	}
diff --git a/cc/config/x86_darwin_host.go b/cc/config/x86_darwin_host.go
index 4ec2b31..694137d 100644
--- a/cc/config/x86_darwin_host.go
+++ b/cc/config/x86_darwin_host.go
@@ -37,28 +37,14 @@
 		"-isysroot ${macSdkRoot}",
 		"-mmacosx-version-min=${macMinVersion}",
 		"-DMACOSX_DEPLOYMENT_TARGET=${macMinVersion}",
+
+		"-m64",
 	}
 
 	darwinLdflags = []string{
 		"-isysroot ${macSdkRoot}",
 		"-Wl,-syslibroot,${macSdkRoot}",
 		"-mmacosx-version-min=${macMinVersion}",
-	}
-
-	// Extended cflags
-	darwinX86Cflags = []string{
-		"-m32",
-	}
-
-	darwinX8664Cflags = []string{
-		"-m64",
-	}
-
-	darwinX86Ldflags = []string{
-		"-m32",
-	}
-
-	darwinX8664Ldflags = []string{
 		"-m64",
 	}
 
@@ -67,27 +53,16 @@
 		"-fstack-protector-strong",
 	}...)
 
-	darwinX86ClangCflags = append(ClangFilterUnknownCflags(darwinX86Cflags), []string{
-		"-msse3",
-	}...)
-
 	darwinClangLdflags = ClangFilterUnknownCflags(darwinLdflags)
 
 	darwinClangLldflags = ClangFilterUnknownLldflags(darwinClangLdflags)
 
-	darwinX86ClangLdflags = ClangFilterUnknownCflags(darwinX86Ldflags)
-
-	darwinX86ClangLldflags = ClangFilterUnknownLldflags(darwinX86ClangLdflags)
-
-	darwinX8664ClangLdflags = ClangFilterUnknownCflags(darwinX8664Ldflags)
-
-	darwinX8664ClangLldflags = ClangFilterUnknownLldflags(darwinX8664ClangLdflags)
-
 	darwinSupportedSdkVersions = []string{
 		"10.10",
 		"10.11",
 		"10.12",
 		"10.13",
+		"10.14",
 	}
 
 	darwinAvailableLibraries = append(
@@ -149,21 +124,7 @@
 	pctx.StaticVariable("DarwinClangLdflags", strings.Join(darwinClangLdflags, " "))
 	pctx.StaticVariable("DarwinClangLldflags", strings.Join(darwinClangLldflags, " "))
 
-	// Extended cflags
-	pctx.StaticVariable("DarwinX86Cflags", strings.Join(darwinX86Cflags, " "))
-	pctx.StaticVariable("DarwinX8664Cflags", strings.Join(darwinX8664Cflags, " "))
-	pctx.StaticVariable("DarwinX86Ldflags", strings.Join(darwinX86Ldflags, " "))
-	pctx.StaticVariable("DarwinX8664Ldflags", strings.Join(darwinX8664Ldflags, " "))
-
-	pctx.StaticVariable("DarwinX86ClangCflags", strings.Join(darwinX86ClangCflags, " "))
-	pctx.StaticVariable("DarwinX8664ClangCflags",
-		strings.Join(ClangFilterUnknownCflags(darwinX8664Cflags), " "))
-	pctx.StaticVariable("DarwinX86ClangLdflags", strings.Join(darwinX86ClangLdflags, " "))
-	pctx.StaticVariable("DarwinX86ClangLldflags", strings.Join(darwinX86ClangLldflags, " "))
-	pctx.StaticVariable("DarwinX8664ClangLdflags", strings.Join(darwinX8664ClangLdflags, " "))
-	pctx.StaticVariable("DarwinX8664ClangLldflags", strings.Join(darwinX8664ClangLldflags, " "))
-	pctx.StaticVariable("DarwinX86YasmFlags", "-f macho -m x86")
-	pctx.StaticVariable("DarwinX8664YasmFlags", "-f macho -m amd64")
+	pctx.StaticVariable("DarwinYasmFlags", "-f macho -m amd64")
 }
 
 func xcrun(ctx android.PackageVarContext, args ...string) string {
@@ -202,23 +163,10 @@
 
 type toolchainDarwin struct {
 	cFlags, ldFlags string
-}
-
-type toolchainDarwinX86 struct {
-	toolchain32Bit
-	toolchainDarwin
-}
-
-type toolchainDarwinX8664 struct {
 	toolchain64Bit
-	toolchainDarwin
 }
 
-func (t *toolchainDarwinX86) Name() string {
-	return "x86"
-}
-
-func (t *toolchainDarwinX8664) Name() string {
+func (t *toolchainDarwin) Name() string {
 	return "x86_64"
 }
 
@@ -235,71 +183,43 @@
 }
 
 func (t *toolchainDarwin) Cflags() string {
-	return "${config.DarwinCflags} ${config.DarwinX86Cflags}"
-}
-
-func (t *toolchainDarwinX8664) Cflags() string {
-	return "${config.DarwinCflags} ${config.DarwinX8664Cflags}"
+	return "${config.DarwinCflags}"
 }
 
 func (t *toolchainDarwin) Cppflags() string {
 	return ""
 }
 
-func (t *toolchainDarwinX86) Ldflags() string {
-	return "${config.DarwinLdflags} ${config.DarwinX86Ldflags}"
-}
-
-func (t *toolchainDarwinX8664) Ldflags() string {
-	return "${config.DarwinLdflags} ${config.DarwinX8664Ldflags}"
+func (t *toolchainDarwin) Ldflags() string {
+	return "${config.DarwinLdflags}"
 }
 
 func (t *toolchainDarwin) IncludeFlags() string {
 	return ""
 }
 
-func (t *toolchainDarwinX86) ClangTriple() string {
-	return "i686-apple-darwin"
-}
-
-func (t *toolchainDarwinX86) ClangCflags() string {
-	return "${config.DarwinClangCflags} ${config.DarwinX86ClangCflags}"
-}
-
-func (t *toolchainDarwinX8664) ClangTriple() string {
+func (t *toolchainDarwin) ClangTriple() string {
 	return "x86_64-apple-darwin"
 }
 
-func (t *toolchainDarwinX8664) ClangCflags() string {
-	return "${config.DarwinClangCflags} ${config.DarwinX8664ClangCflags}"
+func (t *toolchainDarwin) ClangCflags() string {
+	return "${config.DarwinClangCflags}"
 }
 
 func (t *toolchainDarwin) ClangCppflags() string {
 	return ""
 }
 
-func (t *toolchainDarwinX86) ClangLdflags() string {
-	return "${config.DarwinClangLdflags} ${config.DarwinX86ClangLdflags}"
+func (t *toolchainDarwin) ClangLdflags() string {
+	return "${config.DarwinClangLdflags}"
 }
 
-func (t *toolchainDarwinX86) ClangLldflags() string {
-	return "${config.DarwinClangLldflags} ${config.DarwinX86ClangLldflags}"
+func (t *toolchainDarwin) ClangLldflags() string {
+	return "${config.DarwinClangLldflags}"
 }
 
-func (t *toolchainDarwinX8664) ClangLdflags() string {
-	return "${config.DarwinClangLdflags} ${config.DarwinX8664ClangLdflags}"
-}
-
-func (t *toolchainDarwinX8664) ClangLldflags() string {
-	return "${config.DarwinClangLldflags} ${config.DarwinX8664ClangLldflags}"
-}
-
-func (t *toolchainDarwinX86) YasmFlags() string {
-	return "${config.DarwinX86YasmFlags}"
-}
-
-func (t *toolchainDarwinX8664) YasmFlags() string {
-	return "${config.DarwinX8664YasmFlags}"
+func (t *toolchainDarwin) YasmFlags() string {
+	return "${config.DarwinYasmFlags}"
 }
 
 func (t *toolchainDarwin) ShlibSuffix() string {
@@ -318,18 +238,12 @@
 	return "${config.MacToolPath}"
 }
 
-var toolchainDarwinX86Singleton Toolchain = &toolchainDarwinX86{}
-var toolchainDarwinX8664Singleton Toolchain = &toolchainDarwinX8664{}
+var toolchainDarwinSingleton Toolchain = &toolchainDarwin{}
 
-func darwinX86ToolchainFactory(arch android.Arch) Toolchain {
-	return toolchainDarwinX86Singleton
-}
-
-func darwinX8664ToolchainFactory(arch android.Arch) Toolchain {
-	return toolchainDarwinX8664Singleton
+func darwinToolchainFactory(arch android.Arch) Toolchain {
+	return toolchainDarwinSingleton
 }
 
 func init() {
-	registerToolchainFactory(android.Darwin, android.X86, darwinX86ToolchainFactory)
-	registerToolchainFactory(android.Darwin, android.X86_64, darwinX8664ToolchainFactory)
+	registerToolchainFactory(android.Darwin, android.X86_64, darwinToolchainFactory)
 }
diff --git a/cc/makevars.go b/cc/makevars.go
index 5b9ac1d..c4ef5f1 100644
--- a/cc/makevars.go
+++ b/cc/makevars.go
@@ -127,6 +127,8 @@
 	ctx.Strict("ADDRESS_SANITIZER_CONFIG_EXTRA_LDFLAGS", strings.Join(asanLdflags, " "))
 	ctx.Strict("ADDRESS_SANITIZER_CONFIG_EXTRA_STATIC_LIBRARIES", strings.Join(asanLibs, " "))
 
+	ctx.Strict("HWADDRESS_SANITIZER_CONFIG_EXTRA_CFLAGS", strings.Join(hwasanCflags, " "))
+
 	ctx.Strict("CFI_EXTRA_CFLAGS", strings.Join(cfiCflags, " "))
 	ctx.Strict("CFI_EXTRA_LDFLAGS", strings.Join(cfiLdflags, " "))
 
diff --git a/java/builder.go b/java/builder.go
index ff5de09..68fba86 100644
--- a/java/builder.go
+++ b/java/builder.go
@@ -66,7 +66,6 @@
 				`${config.GenKotlinBuildFileCmd} $classpath $outDir $out.rsp $srcJarDir/list > $outDir/kotlinc-build.xml &&` +
 				`${config.KotlincCmd} $kotlincFlags ` +
 				`-jvm-target $kotlinJvmTarget -Xbuild-file=$outDir/kotlinc-build.xml && ` +
-				`rm $outDir/kotlinc-build.xml && ` +
 				`${config.SoongZipCmd} -jar -o $out -C $outDir -D $outDir`,
 			CommandDeps: []string{
 				"${config.KotlincCmd}",
diff --git a/java/droiddoc.go b/java/droiddoc.go
index 52db705..070d5c1 100644
--- a/java/droiddoc.go
+++ b/java/droiddoc.go
@@ -904,6 +904,7 @@
 	if String(d.properties.Dex_api_filename) != "" {
 		d.dexApiFile = android.PathForModuleOut(ctx, String(d.properties.Dex_api_filename))
 		doclavaFlags += " -dexApi " + d.dexApiFile.String()
+		MetalavaFlags += " --dex-api " + d.dexApiFile.String()
 		*implicitOutputs = append(*implicitOutputs, d.dexApiFile)
 	}
 
diff --git a/java/java.go b/java/java.go
index 7f82c77..295863f 100644
--- a/java/java.go
+++ b/java/java.go
@@ -86,10 +86,6 @@
 	// ext, and framework for device targets)
 	No_framework_libs *bool
 
-	// Use renamed kotlin stdlib (com.android.kotlin.*). This allows kotlin usage without colliding
-	// with app-provided kotlin stdlib.
-	Renamed_kotlin_stdlib *bool
-
 	// list of module-specific flags that will be used for javac compiles
 	Javacflags []string `android:"arch_variant"`
 
@@ -1025,8 +1021,6 @@
 		}
 	}
 
-	var stripFiles []string
-
 	var kotlinJars android.Paths
 
 	if srcFiles.HasExt(".kt") {
@@ -1035,7 +1029,6 @@
 		// won't emit any classes for them.
 
 		flags.kotlincFlags = "-no-stdlib"
-
 		if ctx.Device() {
 			flags.kotlincFlags += " -no-jdk"
 		}
@@ -1060,18 +1053,7 @@
 
 		// Jar kotlin classes into the final jar after javac
 		kotlinJars = append(kotlinJars, kotlinJar)
-
-		if Bool(j.properties.Renamed_kotlin_stdlib) {
-			// Remove any kotlin-reflect related files
-			// TODO(pszczepaniak): Support kotlin-reflect
-			stripFiles = append(stripFiles,
-				"**/*.kotlin_module",
-				"**/*.kotlin_builtins")
-		} else {
-			// Only add kotlin-stdlib if not using (on-device) renamed stdlib
-			// (it's expected to be on device bootclasspath)
-			kotlinJars = append(kotlinJars, deps.kotlinStdlib...)
-		}
+		kotlinJars = append(kotlinJars, deps.kotlinStdlib...)
 	}
 
 	jars := append(android.Paths(nil), kotlinJars...)
@@ -1207,21 +1189,10 @@
 	} else {
 		combinedJar := android.PathForModuleOut(ctx, "combined", jarName)
 		TransformJarsToJar(ctx, combinedJar, "for javac", jars, manifest,
-			false, stripFiles, nil)
+			false, nil, nil)
 		outputFile = combinedJar
 	}
 
-	// Use renamed kotlin standard library?
-	if srcFiles.HasExt(".kt") && Bool(j.properties.Renamed_kotlin_stdlib) {
-		jarjarFile := android.PathForModuleOut(ctx, "kotlin-renamed", jarName)
-		TransformJarJar(ctx, jarjarFile, outputFile,
-			android.PathForSource(ctx, "external/kotlinc/jarjar-rules.txt"))
-		outputFile = jarjarFile
-		if ctx.Failed() {
-			return
-		}
-	}
-
 	// jarjar implementation jar if necessary
 	if j.properties.Jarjar_rules != nil {
 		jarjar_rules := android.PathForModuleSrc(ctx, *j.properties.Jarjar_rules)
diff --git a/java/java_test.go b/java/java_test.go
index c9f3dbf..3ace528 100644
--- a/java/java_test.go
+++ b/java/java_test.go
@@ -209,8 +209,6 @@
 		"bar-doc/IFoo.aidl":              nil,
 		"bar-doc/known_oj_tags.txt":      nil,
 		"external/doclava/templates-sdk": nil,
-
-		"external/kotlinc/jarjar-rules.txt": nil,
 	}
 
 	for k, v := range fs {
@@ -823,12 +821,6 @@
 			name: "baz",
 			srcs: ["c.java"],
 		}
-
-		java_library {
-			name: "blorg",
-			renamed_kotlin_stdlib: true,
-			srcs: ["b.kt"],
-		}
 		`)
 
 	fooKotlinc := ctx.ModuleForTests("foo", "android_common").Rule("kotlinc")
@@ -871,12 +863,6 @@
 		t.Errorf(`expected %q in bar implicits %v`,
 			bazHeaderJar.Output.String(), barKotlinc.Implicits.Strings())
 	}
-
-	blorgRenamedJar := ctx.ModuleForTests("blorg", "android_common").Output("kotlin-renamed/blorg.jar")
-	if blorgRenamedJar.Implicit.String() != "external/kotlinc/jarjar-rules.txt" {
-		t.Errorf(`expected external/kotlinc/jarjar-rules.txt in blorg implicit %q`,
-			blorgRenamedJar.Implicit.String())
-	}
 }
 
 func TestTurbine(t *testing.T) {
diff --git a/scripts/build-ndk-prebuilts.sh b/scripts/build-ndk-prebuilts.sh
index e3552a0..7f6e2c9 100755
--- a/scripts/build-ndk-prebuilts.sh
+++ b/scripts/build-ndk-prebuilts.sh
@@ -62,7 +62,6 @@
         "armeabi-v7a"
     ],
     "HostArch": "x86_64",
-    "HostSecondaryArch": "x86",
     "Malloc_not_svelte": false,
     "Safestack": false
 }
diff --git a/ui/build/cleanbuild.go b/ui/build/cleanbuild.go
index a076b66..4dee638 100644
--- a/ui/build/cleanbuild.go
+++ b/ui/build/cleanbuild.go
@@ -102,6 +102,7 @@
 		productOut("skin"),
 		productOut("obj/NOTICE_FILES"),
 		productOut("obj/PACKAGING"),
+		productOut("ramdisk"),
 		productOut("recovery"),
 		productOut("root"),
 		productOut("system"),
diff --git a/ui/build/paths/config.go b/ui/build/paths/config.go
index 51fa8fe..610af17 100644
--- a/ui/build/paths/config.go
+++ b/ui/build/paths/config.go
@@ -129,6 +129,7 @@
 	"sum":       Allowed,
 	"tar":       Allowed,
 	"tail":      Allowed,
+	"todos":     Allowed,
 	"touch":     Allowed,
 	"tr":        Allowed,
 	"true":      Allowed,