Merge "Recovery partition uses the first architecture only"
diff --git a/cc/cc.go b/cc/cc.go
index 6438bcd..b7183d7 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -1569,6 +1569,19 @@
 				recoveryVariantNeeded = true
 			}
 
+			if recoveryVariantNeeded {
+				var recoveryMultilib string
+				if mctx.Config().DevicePrefer32BitExecutables() {
+					recoveryMultilib = "lib32"
+				} else {
+					recoveryMultilib = "lib64"
+				}
+				multilib := genrule.Target().Arch.ArchType.Multilib
+				if multilib != recoveryMultilib {
+					recoveryVariantNeeded = false
+				}
+			}
+
 			var variants []string
 			if coreVariantNeeded {
 				variants = append(variants, coreMode)
@@ -1676,6 +1689,19 @@
 		coreVariantNeeded = false
 	}
 
+	if recoveryVariantNeeded {
+		var recoveryMultilib string
+		if mctx.Config().DevicePrefer32BitExecutables() {
+			recoveryMultilib = "lib32"
+		} else {
+			recoveryMultilib = "lib64"
+		}
+		multilib := m.Target().Arch.ArchType.Multilib
+		if multilib != recoveryMultilib {
+			recoveryVariantNeeded = false
+		}
+	}
+
 	var variants []string
 	if coreVariantNeeded {
 		variants = append(variants, coreMode)