Return false in DirectlyInAnyApex for host libraries.
Host doesn't have apexes.
Bug: 122947954
Test: build dex2oat, check that libnativebridge is installed.
Change-Id: I3548e3f155a200e56d71e88631b71511bad84161
diff --git a/android/apex.go b/android/apex.go
index 8d99d56..a93baf6 100644
--- a/android/apex.go
+++ b/android/apex.go
@@ -178,8 +178,16 @@
return false
}
+type hostContext interface {
+ Host() bool
+}
+
// Tests whether a module named moduleName is directly depended on by any APEX.
-func DirectlyInAnyApex(moduleName string) bool {
+func DirectlyInAnyApex(ctx hostContext, moduleName string) bool {
+ if ctx.Host() {
+ // Host has no APEX.
+ return false
+ }
apexNamesMapMutex.Lock()
defer apexNamesMapMutex.Unlock()
if apexNames, ok := apexNamesMap()[moduleName]; ok {
diff --git a/cc/androidmk.go b/cc/androidmk.go
index 7844756..fa0017d 100644
--- a/cc/androidmk.go
+++ b/cc/androidmk.go
@@ -32,6 +32,9 @@
Name() string
Target() android.Target
subAndroidMk(*android.AndroidMkData, interface{})
+ Arch() android.Arch
+ Os() android.OsType
+ Host() bool
useVndk() bool
static() bool
inRecovery() bool
@@ -189,9 +192,9 @@
}
})
}
-
- if len(library.Properties.Stubs.Versions) > 0 && android.DirectlyInAnyApex(ctx.Name()) &&
- !ctx.inRecovery() && !ctx.useVndk() && !ctx.static() {
+ if len(library.Properties.Stubs.Versions) > 0 &&
+ android.DirectlyInAnyApex(ctx, ctx.Name()) && !ctx.inRecovery() && !ctx.useVndk() &&
+ !ctx.static() {
if !library.buildStubs() {
ret.SubName = ".bootstrap"
}
diff --git a/cc/cc.go b/cc/cc.go
index 4717b72..46ce841 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -874,7 +874,8 @@
// force anything in the make world to link against the stubs library.
// (unless it is explicitly referenced via .bootstrap suffix or the
// module is marked with 'bootstrap: true').
- if c.HasStubsVariants() && android.DirectlyInAnyApex(ctx.baseModuleName()) &&
+ if c.HasStubsVariants() &&
+ android.DirectlyInAnyApex(ctx, ctx.baseModuleName()) &&
!c.inRecovery() && !c.useVndk() && !c.static() && c.IsStubs() {
c.Properties.HideFromMake = false // unhide
// Note: this is still non-installable
@@ -1456,7 +1457,7 @@
depIsStubs := dependentLibrary.buildStubs()
depHasStubs := ccDep.HasStubsVariants()
depInSameApex := android.DirectlyInApex(c.ApexName(), depName)
- depInPlatform := !android.DirectlyInAnyApex(depName)
+ depInPlatform := !android.DirectlyInAnyApex(ctx, depName)
var useThisDep bool
if depIsStubs && explicitlyVersioned {