Add support for preferred arch symlinks
Add a symlink_preferred_arch property to binaries to allow compiling the
binary for multiple architectures and then creating a symlink to the
preferred archicture, for example dalvikvm32 and dalvikvm64, with
dalvikvm symlinked to dalvikvm64.
Test: mmma -j art/dalvikvm
Change-Id: Ied15f2be9d52c01006fe8ac207c175b78558eab1
diff --git a/android/config.go b/android/config.go
index 6c524e1..21a7233 100644
--- a/android/config.go
+++ b/android/config.go
@@ -75,6 +75,7 @@
envFrozen bool
inMake bool
+
OncePer
}
@@ -332,6 +333,14 @@
return Bool(c.ProductVariables.Allow_missing_dependencies)
}
+func (c *config) DevicePrefer32BitExecutables() bool {
+ return Bool(c.ProductVariables.DevicePrefer32BitExecutables)
+}
+
+func (c *config) HostPrefer32BitExecutables() bool {
+ return Bool(c.ProductVariables.HostPrefer32BitExecutables)
+}
+
func (c *config) SkipDeviceInstall() bool {
return c.EmbeddedInMake() || Bool(c.Mega_device)
}
diff --git a/android/module.go b/android/module.go
index fd37ca8..45afec1 100644
--- a/android/module.go
+++ b/android/module.go
@@ -63,6 +63,7 @@
Device() bool
Darwin() bool
Debug() bool
+ PrimaryArch() bool
AConfig() Config
DeviceConfig() DeviceConfig
}
@@ -548,6 +549,10 @@
return a.debug
}
+func (a *androidBaseContextImpl) PrimaryArch() bool {
+ return a.target.Arch.ArchType == a.config.Targets[a.target.Os.Class][0].Arch.ArchType
+}
+
func (a *androidBaseContextImpl) AConfig() Config {
return a.config
}
diff --git a/android/variable.go b/android/variable.go
index 531125d..be2407d 100644
--- a/android/variable.go
+++ b/android/variable.go
@@ -102,6 +102,9 @@
Schedboost *bool `json:",omitempty"`
Binder32bit *bool `json:",omitempty"`
+ DevicePrefer32BitExecutables *bool `json:",omitempty"`
+ HostPrefer32BitExecutables *bool `json:",omitempty"`
+
SanitizeHost *[]string `json:",omitempty"`
SanitizeDevice *[]string `json:",omitempty"`
}