Merge "Revert "Revert "Fix: sanitizerRuntimeMutator is not run for host"""
diff --git a/android/arch.go b/android/arch.go
index bb8cc02..de19dbe 100644
--- a/android/arch.go
+++ b/android/arch.go
@@ -105,7 +105,6 @@
var archVariants = map[ArchType][]string{
Arm: {
- "armv7-a",
"armv7-a-neon",
"armv8-a",
"armv8-2a",
@@ -1269,7 +1268,6 @@
func getMegaDeviceConfig() []archConfig {
return []archConfig{
- {"arm", "armv7-a", "generic", []string{"armeabi-v7a"}},
{"arm", "armv7-a-neon", "generic", []string{"armeabi-v7a"}},
{"arm", "armv7-a-neon", "cortex-a7", []string{"armeabi-v7a"}},
{"arm", "armv7-a-neon", "cortex-a8", []string{"armeabi-v7a"}},
@@ -1321,7 +1319,7 @@
func getNdkAbisConfig() []archConfig {
return []archConfig{
- {"arm", "armv7-a", "", []string{"armeabi"}},
+ {"arm", "armv7-a-neon", "", []string{"armeabi"}},
{"arm64", "armv8-a", "", []string{"arm64-v8a"}},
{"x86", "", "", []string{"x86"}},
{"x86_64", "", "", []string{"x86_64"}},
diff --git a/android/paths.go b/android/paths.go
index 13b31c7..4b84c97 100644
--- a/android/paths.go
+++ b/android/paths.go
@@ -503,16 +503,9 @@
return ret, err
}
- abs, err := filepath.Abs(ret.String())
- if err != nil {
- return ret, err
- }
- buildroot, err := filepath.Abs(ctx.Config().buildDir)
- if err != nil {
- return ret, err
- }
- if strings.HasPrefix(abs, buildroot) {
- return ret, fmt.Errorf("source path %s is in output", abs)
+ // absolute path already checked by validateSafePath
+ if strings.HasPrefix(ret.String(), ctx.Config().buildDir) {
+ return ret, fmt.Errorf("source path %s is in output", ret.String())
}
return ret, err
@@ -526,16 +519,9 @@
return ret, err
}
- abs, err := filepath.Abs(ret.String())
- if err != nil {
- return ret, err
- }
- buildroot, err := filepath.Abs(ctx.Config().buildDir)
- if err != nil {
- return ret, err
- }
- if strings.HasPrefix(abs, buildroot) {
- return ret, fmt.Errorf("source path %s is in output", abs)
+ // absolute path already checked by validatePath
+ if strings.HasPrefix(ret.String(), ctx.Config().buildDir) {
+ return ret, fmt.Errorf("source path %s is in output", ret.String())
}
return ret, nil
diff --git a/android/paths_test.go b/android/paths_test.go
index c4332d2..1ed0734 100644
--- a/android/paths_test.go
+++ b/android/paths_test.go
@@ -630,3 +630,64 @@
})
}
}
+
+func TestPathForSource(t *testing.T) {
+ testCases := []struct {
+ name string
+ buildDir string
+ src string
+ err string
+ }{
+ {
+ name: "normal",
+ buildDir: "out",
+ src: "a/b/c",
+ },
+ {
+ name: "abs",
+ buildDir: "out",
+ src: "/a/b/c",
+ err: "is outside directory",
+ },
+ {
+ name: "in out dir",
+ buildDir: "out",
+ src: "out/a/b/c",
+ err: "is in output",
+ },
+ }
+
+ funcs := []struct {
+ name string
+ f func(ctx PathContext, pathComponents ...string) (SourcePath, error)
+ }{
+ {"pathForSource", pathForSource},
+ {"safePathForSource", safePathForSource},
+ }
+
+ for _, f := range funcs {
+ t.Run(f.name, func(t *testing.T) {
+ for _, test := range testCases {
+ t.Run(test.name, func(t *testing.T) {
+ testConfig := TestConfig(test.buildDir, nil)
+ ctx := &configErrorWrapper{config: testConfig}
+ _, err := f.f(ctx, test.src)
+ if len(ctx.errors) > 0 {
+ t.Fatalf("unexpected errors %v", ctx.errors)
+ }
+ if err != nil {
+ if test.err == "" {
+ t.Fatalf("unexpected error %q", err.Error())
+ } else if !strings.Contains(err.Error(), test.err) {
+ t.Fatalf("incorrect error, want substring %q got %q", test.err, err.Error())
+ }
+ } else {
+ if test.err != "" {
+ t.Fatalf("missing error %q", test.err)
+ }
+ }
+ })
+ }
+ })
+ }
+}
diff --git a/cc/config/arm_device.go b/cc/config/arm_device.go
index cd7c410..aee16eb 100644
--- a/cc/config/arm_device.go
+++ b/cc/config/arm_device.go
@@ -51,11 +51,6 @@
}
armClangArchVariantCflags = map[string][]string{
- "armv7-a": []string{
- "-march=armv7-a",
- "-mfloat-abi=softfp",
- "-mfpu=vfpv3-d16",
- },
"armv7-a-neon": []string{
"-march=armv7-a",
"-mfloat-abi=softfp",
@@ -189,8 +184,6 @@
pctx.StaticVariable("ArmClangThumbCflags", strings.Join(ClangFilterUnknownCflags(armThumbCflags), " "))
// Clang arch variant cflags
- pctx.StaticVariable("ArmClangArmv7ACflags",
- strings.Join(armClangArchVariantCflags["armv7-a"], " "))
pctx.StaticVariable("ArmClangArmv7ANeonCflags",
strings.Join(armClangArchVariantCflags["armv7-a-neon"], " "))
pctx.StaticVariable("ArmClangArmv8ACflags",
@@ -219,7 +212,6 @@
var (
armClangArchVariantCflagsVar = map[string]string{
- "armv7-a": "${config.ArmClangArmv7ACflags}",
"armv7-a-neon": "${config.ArmClangArmv7ANeonCflags}",
"armv8-a": "${config.ArmClangArmv8ACflags}",
"armv8-2a": "${config.ArmClangArmv82ACflags}",
@@ -335,8 +327,6 @@
default:
fixCortexA8 = "-Wl,--no-fix-cortex-a8"
}
- case "armv7-a":
- fixCortexA8 = "-Wl,--fix-cortex-a8"
case "armv8-a", "armv8-2a":
// Nothing extra for armv8-a/armv8-2a
default:
diff --git a/java/builder.go b/java/builder.go
index df17f7b..7aac881 100644
--- a/java/builder.go
+++ b/java/builder.go
@@ -47,7 +47,8 @@
`$processorpath $processor $javacFlags $bootClasspath $classpath ` +
`-source $javaVersion -target $javaVersion ` +
`-d $outDir -s $annoDir @$out.rsp @$srcJarDir/list ; fi ) && ` +
- `${config.SoongZipCmd} -jar -o $out -C $outDir -D $outDir`,
+ `${config.SoongZipCmd} -jar -o $out -C $outDir -D $outDir && ` +
+ `rm -rf "$srcJarDir"`,
CommandDeps: []string{
"${config.JavacCmd}",
"${config.SoongZipCmd}",
diff --git a/java/droiddoc.go b/java/droiddoc.go
index babde55..01e2989 100644
--- a/java/droiddoc.go
+++ b/java/droiddoc.go
@@ -34,7 +34,9 @@
`$opts $bootclasspathArgs $classpathArgs $sourcepathArgs ` +
`-d $outDir -quiet && ` +
`${config.SoongZipCmd} -write_if_changed -d -o $docZip -C $outDir -D $outDir && ` +
- `${config.SoongZipCmd} -write_if_changed -jar -o $out -C $stubsDir -D $stubsDir $postDoclavaCmds`,
+ `${config.SoongZipCmd} -write_if_changed -jar -o $out -C $stubsDir -D $stubsDir $postDoclavaCmds && ` +
+ `rm -rf "$srcJarDir"`,
+
CommandDeps: []string{
"${config.ZipSyncCmd}",
"${config.JavadocCmd}",
@@ -74,7 +76,8 @@
`${config.JavaCmd} -jar ${config.MetalavaJar} -encoding UTF-8 -source $javaVersion @$out.rsp @$srcJarDir/list ` +
`$bootclasspathArgs $classpathArgs $sourcepathArgs --no-banner --color --quiet --format=v2 ` +
`$opts && ` +
- `${config.SoongZipCmd} -write_if_changed -jar -o $out -C $stubsDir -D $stubsDir`,
+ `${config.SoongZipCmd} -write_if_changed -jar -o $out -C $stubsDir -D $stubsDir && ` +
+ `rm -rf "$srcJarDir"`,
CommandDeps: []string{
"${config.ZipSyncCmd}",
"${config.JavaCmd}",
@@ -94,7 +97,7 @@
`${config.ZipSyncCmd} -d $srcJarDir -l $srcJarDir/list -f "*.java" $srcJars && ` +
`${config.JavaCmd} -jar ${config.MetalavaJar} -encoding UTF-8 -source $javaVersion @$out.rsp @$srcJarDir/list ` +
`$bootclasspathArgs $classpathArgs $sourcepathArgs --no-banner --color --quiet --format=v2 ` +
- `$opts && touch $out ) || ` +
+ `$opts && touch $out && rm -rf "$srcJarDir") || ` +
`( echo -e "$msg" ; exit 38 )`,
CommandDeps: []string{
"${config.ZipSyncCmd}",
@@ -120,7 +123,8 @@
`${config.JavaCmd} -jar ${config.DokkaJar} $srcJarDir ` +
`$classpathArgs -format dac -dacRoot /reference/kotlin -output $outDir $opts && ` +
`${config.SoongZipCmd} -write_if_changed -d -o $docZip -C $outDir -D $outDir && ` +
- `${config.SoongZipCmd} -write_if_changed -jar -o $out -C $stubsDir -D $stubsDir`,
+ `${config.SoongZipCmd} -write_if_changed -jar -o $out -C $stubsDir -D $stubsDir && ` +
+ `rm -rf "$srcJarDir"`,
CommandDeps: []string{
"${config.ZipSyncCmd}",
"${config.DokkaJar}",
@@ -1570,7 +1574,7 @@
func (d *Droidstubs) transformCheckApi(ctx android.ModuleContext,
apiFile, removedApiFile android.Path, implicits android.Paths,
- javaVersion, bootclasspathArgs, classpathArgs, sourcepathArgs, opts, msg string,
+ javaVersion, bootclasspathArgs, classpathArgs, sourcepathArgs, opts, subdir, msg string,
output android.WritablePath) {
ctx.Build(pctx, android.BuildParams{
Rule: metalavaApiCheck,
@@ -1580,7 +1584,7 @@
Implicits: append(android.Paths{apiFile, removedApiFile, d.apiFile, d.removedApiFile},
implicits...),
Args: map[string]string{
- "srcJarDir": android.PathForModuleOut(ctx, "apicheck-srcjars").String(),
+ "srcJarDir": android.PathForModuleOut(ctx, subdir, "srcjars").String(),
"srcJars": strings.Join(d.Javadoc.srcJars.Strings(), " "),
"javaVersion": javaVersion,
"bootclasspathArgs": bootclasspathArgs,
@@ -1669,7 +1673,7 @@
flags.metalavaInclusionAnnotationsFlags + flags.metalavaMergeAnnoDirFlags + " "
d.transformCheckApi(ctx, apiFile, removedApiFile, metalavaCheckApiImplicits,
- javaVersion, flags.bootClasspathArgs, flags.classpathArgs, flags.sourcepathArgs, opts,
+ javaVersion, flags.bootClasspathArgs, flags.classpathArgs, flags.sourcepathArgs, opts, "current-apicheck",
fmt.Sprintf(`\n******************************\n`+
`You have tried to change the API from what has been previously approved.\n\n`+
`To make these errors go away, you have two choices:\n`+
@@ -1700,7 +1704,7 @@
removedApiFile.String() + flags.metalavaMergeAnnoDirFlags + " "
d.transformCheckApi(ctx, apiFile, removedApiFile, metalavaCheckApiImplicits,
- javaVersion, flags.bootClasspathArgs, flags.classpathArgs, flags.sourcepathArgs, opts,
+ javaVersion, flags.bootClasspathArgs, flags.classpathArgs, flags.sourcepathArgs, opts, "last-apicheck",
`\n******************************\n`+
`You have tried to change the API from what has been previously released in\n`+
`an SDK. Please fix the errors listed above.\n`+
diff --git a/java/kotlin.go b/java/kotlin.go
index 9c47f98..81b89f9 100644
--- a/java/kotlin.go
+++ b/java/kotlin.go
@@ -32,7 +32,8 @@
`${config.GenKotlinBuildFileCmd} $classpath $classesDir $out.rsp $srcJarDir/list > $kotlinBuildFile &&` +
`${config.KotlincCmd} ${config.JavacHeapFlags} $kotlincFlags ` +
`-jvm-target $kotlinJvmTarget -Xbuild-file=$kotlinBuildFile && ` +
- `${config.SoongZipCmd} -jar -o $out -C $classesDir -D $classesDir`,
+ `${config.SoongZipCmd} -jar -o $out -C $classesDir -D $classesDir && ` +
+ `rm -rf "$srcJarDir"`,
CommandDeps: []string{
"${config.KotlincCmd}",
"${config.KotlinCompilerJar}",
@@ -89,7 +90,8 @@
`$kaptProcessorPath ` +
`$kaptProcessor ` +
`-Xbuild-file=$kotlinBuildFile && ` +
- `${config.SoongZipCmd} -jar -o $out -C $kaptDir/sources -D $kaptDir/sources`,
+ `${config.SoongZipCmd} -jar -o $out -C $kaptDir/sources -D $kaptDir/sources && ` +
+ `rm -rf "$srcJarDir"`,
CommandDeps: []string{
"${config.KotlincCmd}",
"${config.KotlinCompilerJar}",