HostCross is an attribute of a Target, not OsType
A host target is considered as being cross-compiled when the target can't run natively on the build machine. For example, linux_glibc/x86_64 is a non-cross target on a standard x86/Linux machine, but is a cross host on Mac. Previously, whether cross or not was a static attribute of an OsType. For example, Windows was always considered as cross host, while linux_bionic was not. This becomes a problem when we support more host targets like linux_bionic/arm64 which should be cross-host on standard x86/Linux machines. This change removes HostCross from the OsClass type and instead adds a property HostCross to the Target type. When a target is being added, it is initialized to true when the target can't run natively on the current build machine. Bug: 168086242 Test: m Change-Id: Ic37c8db918873ddf324c86b12b5412952b0f2be2
This commit is contained in:
4
cc/cc.go
4
cc/cc.go
@@ -950,9 +950,9 @@ func (c *Module) Init() android.Module {
|
||||
c.AddProperties(feature.props()...)
|
||||
}
|
||||
|
||||
c.Prefer32(func(ctx android.BaseModuleContext, base *android.ModuleBase, class android.OsClass) bool {
|
||||
c.Prefer32(func(ctx android.BaseModuleContext, base *android.ModuleBase, os android.OsType) bool {
|
||||
// Windows builds always prefer 32-bit
|
||||
return class == android.HostCross
|
||||
return os == android.Windows
|
||||
})
|
||||
android.InitAndroidArchModule(c, c.hod, c.multilib)
|
||||
android.InitApexModule(c)
|
||||
|
Reference in New Issue
Block a user