Make order of properties in snapshot module consistent

Previously the compile_multilib property was added after the member
list properties at the top level but before them in the target.os
level. This change makes it always be added before them.

Bug: 186290299
Test: m nothing
Change-Id: I01fe272933fd11f7f730cc379f60fb2ce70f2114
diff --git a/sdk/update.go b/sdk/update.go
index 248cf5d..0bec505 100644
--- a/sdk/update.go
+++ b/sdk/update.go
@@ -380,9 +380,6 @@
 	extractor := newCommonValueExtractor(commonDynamicMemberProperties)
 	extractCommonProperties(ctx, extractor, commonDynamicMemberProperties, dynamicMemberPropertiesContainers)
 
-	// Add properties common to all os types.
-	s.addMemberPropertiesToPropertySet(builder, snapshotModule, commonDynamicMemberProperties)
-
 	// Optimize other per-variant properties, besides the dynamic member lists.
 	type variantProperties struct {
 		Compile_multilib string `android:"arch_variant"`
@@ -399,11 +396,14 @@
 	commonVariantProperties := variantProperties{}
 	extractor = newCommonValueExtractor(commonVariantProperties)
 	extractCommonProperties(ctx, extractor, &commonVariantProperties, variantPropertiesContainers)
+
 	if commonVariantProperties.Compile_multilib != "" && commonVariantProperties.Compile_multilib != "both" {
 		// Compile_multilib defaults to both so only needs to be set when it's
 		// specified and not both.
 		snapshotModule.AddProperty("compile_multilib", commonVariantProperties.Compile_multilib)
 	}
+	// Add properties common to all os types.
+	s.addMemberPropertiesToPropertySet(builder, snapshotModule, commonDynamicMemberProperties)
 
 	targetPropertySet := snapshotModule.AddPropertySet("target")