Merge "root.bp: Use system/*"
diff --git a/android/arch.go b/android/arch.go
index a061730..df50afa 100644
--- a/android/arch.go
+++ b/android/arch.go
@@ -610,11 +610,13 @@
 		//         key: value,
 		//     },
 		// },
-		c := variantReplacer.Replace(arch.CpuVariant)
-		if c != "" {
-			field := proptools.FieldNameForProperty(c)
-			prefix := "arch." + t.Name + "." + c
-			a.appendProperties(ctx, genProps, archStruct, field, prefix)
+		if arch.CpuVariant != arch.ArchVariant {
+			c := variantReplacer.Replace(arch.CpuVariant)
+			if c != "" {
+				field := proptools.FieldNameForProperty(c)
+				prefix := "arch." + t.Name + "." + c
+				a.appendProperties(ctx, genProps, archStruct, field, prefix)
+			}
 		}
 
 		// Handle arch-feature-specific properties in the form:
diff --git a/android/config.go b/android/config.go
index 8f531cc..7d268fc 100644
--- a/android/config.go
+++ b/android/config.go
@@ -435,6 +435,10 @@
 	}
 }
 
+func (c *config) ArtUseReadBarrier() bool {
+	return Bool(c.ProductVariables.ArtUseReadBarrier)
+}
+
 func (c *deviceConfig) Arches() []Arch {
 	var arches []Arch
 	for _, target := range c.config.Targets[Device] {
diff --git a/android/variable.go b/android/variable.go
index f006370..e6abee6 100644
--- a/android/variable.go
+++ b/android/variable.go
@@ -136,6 +136,8 @@
 	SanitizeHost       []string `json:",omitempty"`
 	SanitizeDevice     []string `json:",omitempty"`
 	SanitizeDeviceArch []string `json:",omitempty"`
+
+	ArtUseReadBarrier *bool `json:",omitempty"`
 }
 
 func boolPtr(v bool) *bool {