Enable arch variant properties in prebuilt_etc.

Bug: 122332178
Test: Soong unit tests + TreeHugger.
Change-Id: Ia8fab0add09478599398e8cbb703debc39f658f6
diff --git a/android/prebuilt_etc.go b/android/prebuilt_etc.go
index 40da653..46d128e 100644
--- a/android/prebuilt_etc.go
+++ b/android/prebuilt_etc.go
@@ -170,7 +170,7 @@
 	module := &PrebuiltEtc{}
 	InitPrebuiltEtcModule(module)
 	// This module is device-only
-	InitAndroidArchModule(module, DeviceSupported, MultilibCommon)
+	InitAndroidArchModule(module, DeviceSupported, MultilibFirst)
 	return module
 }
 
diff --git a/android/prebuilt_etc_test.go b/android/prebuilt_etc_test.go
index 27736ba..8ab978b 100644
--- a/android/prebuilt_etc_test.go
+++ b/android/prebuilt_etc_test.go
@@ -101,7 +101,7 @@
 		}
 	`)
 
-	p := ctx.ModuleForTests("foo.conf", "android_common_core").Module().(*PrebuiltEtc)
+	p := ctx.ModuleForTests("foo.conf", "android_arm64_armv8-a_core").Module().(*PrebuiltEtc)
 	if p.outputFilePath.Base() != "foo.installed.conf" {
 		t.Errorf("expected foo.installed.conf, got %q", p.outputFilePath.Base())
 	}
@@ -120,12 +120,12 @@
 		}
 	`)
 
-	p := ctx.ModuleForTests("my_foo", "android_common_core").Module().(*PrebuiltEtc)
+	p := ctx.ModuleForTests("my_foo", "android_arm64_armv8-a_core").Module().(*PrebuiltEtc)
 	if p.outputFilePath.Base() != "my_foo" {
 		t.Errorf("expected my_foo, got %q", p.outputFilePath.Base())
 	}
 
-	p = ctx.ModuleForTests("my_bar", "android_common_core").Module().(*PrebuiltEtc)
+	p = ctx.ModuleForTests("my_bar", "android_arm64_armv8-a_core").Module().(*PrebuiltEtc)
 	if p.outputFilePath.Base() != "bar.conf" {
 		t.Errorf("expected bar.conf, got %q", p.outputFilePath.Base())
 	}
diff --git a/apex/apex.go b/apex/apex.go
index 6269868..f6cfc26 100644
--- a/apex/apex.go
+++ b/apex/apex.go
@@ -409,6 +409,11 @@
 				a.properties.Multilib.First.Native_shared_libs,
 				a.properties.Multilib.First.Binaries, target.String(),
 				a.getImageVariation(config))
+
+			// When multilib.* is omitted for prebuilts, it implies multilib.first.
+			ctx.AddFarVariationDependencies([]blueprint.Variation{
+				{Mutator: "arch", Variation: target.String()},
+			}, prebuiltTag, a.properties.Prebuilts...)
 		}
 
 		switch target.Arch.ArchType.Multilib {
@@ -444,10 +449,6 @@
 		{Mutator: "arch", Variation: "android_common"},
 	}, javaLibTag, a.properties.Java_libs...)
 
-	ctx.AddFarVariationDependencies([]blueprint.Variation{
-		{Mutator: "arch", Variation: "android_common"},
-	}, prebuiltTag, a.properties.Prebuilts...)
-
 	if !ctx.Config().FlattenApex() || ctx.Config().UnbundledBuild() {
 		if String(a.properties.Key) == "" {
 			ctx.ModuleErrorf("key is missing")
diff --git a/java/java_test.go b/java/java_test.go
index 7a37b7b..6437c0c 100644
--- a/java/java_test.go
+++ b/java/java_test.go
@@ -861,7 +861,7 @@
 	ctx.ModuleForTests("foo"+sdkDocsSuffix, "android_common")
 	ctx.ModuleForTests("foo"+sdkDocsSuffix+sdkSystemApiSuffix, "android_common")
 	ctx.ModuleForTests("foo"+sdkDocsSuffix+sdkTestApiSuffix, "android_common")
-	ctx.ModuleForTests("foo"+sdkXmlFileSuffix, "android_common")
+	ctx.ModuleForTests("foo"+sdkXmlFileSuffix, "android_arm64_armv8-a")
 	ctx.ModuleForTests("foo.api.public.28", "")
 	ctx.ModuleForTests("foo.api.system.28", "")
 	ctx.ModuleForTests("foo.api.test.28", "")