diff options
author | alk3pInjection <webmaster@raspii.tech> | 2023-04-20 00:08:54 +0800 |
---|---|---|
committer | alk3pInjection <webmaster@raspii.tech> | 2023-04-20 00:08:54 +0800 |
commit | 923de58d67f7706e390551aa39c3c200100508b3 (patch) | |
tree | e7624ee1c43130597c12251dc0e93798bb853af8 /android/arch.go | |
parent | 3ba16183209cb452f73eb482cb04c1e7403c8586 (diff) | |
parent | 4993a08b8d37d5075ea0101a09ed9bbde4687ab9 (diff) |
Merge tag 'LA.QSSI.13.0.r1-09800-qssi.0' into tachibanatachibana
"LA.QSSI.13.0.r1-09800-qssi.0"
Change-Id: If5115134fea6c667ca1b5c8f50861ef9e3398842
Diffstat (limited to 'android/arch.go')
-rw-r--r-- | android/arch.go | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/android/arch.go b/android/arch.go index cbf77c758..3587b469f 100644 --- a/android/arch.go +++ b/android/arch.go @@ -655,7 +655,8 @@ func archMutator(bpctx blueprint.BottomUpMutatorContext) { prefer32 := os == Windows // Determine the multilib selection for this module. - multilib, extraMultilib := decodeMultilib(base, os) + force_first_on_device := mctx.Config().ForceMultilibFirstOnDevice() + multilib, extraMultilib := decodeMultilib(base, os, force_first_on_device) // Convert the multilib selection into a list of Targets. targets, err := decodeMultilibTargets(multilib, osTargets, prefer32) @@ -730,7 +731,7 @@ func addTargetProperties(m Module, target Target, multiTargets []Target, primary // multilib from the factory's call to InitAndroidArchModule if none was set. For modules that // called InitAndroidMultiTargetsArchModule it always returns "common" for multilib, and returns // the actual multilib in extraMultilib. -func decodeMultilib(base *ModuleBase, os OsType) (multilib, extraMultilib string) { +func decodeMultilib(base *ModuleBase, os OsType, force_first_on_device bool) (multilib, extraMultilib string) { // First check the "android.compile_multilib" or "host.compile_multilib" properties. switch os.Class { case Device: @@ -749,6 +750,13 @@ func decodeMultilib(base *ModuleBase, os OsType) (multilib, extraMultilib string multilib = base.commonProperties.Default_multilib } + // If a device is configured with multiple targets, this option + // force all device targets that prefer32 to be compiled only as + // the first target. + if force_first_on_device && os.Class == Device && (multilib == "prefer32" || multilib == "first_prefer32") { + multilib = "first" + } + if base.commonProperties.UseTargetVariants { // Darwin has the concept of "universal binaries" which is implemented in Soong by // building both x86_64 and arm64 variants, and having select module types know how to |