rust: Add rust_ffi_static vendor ramdisk Support

Similar to our vendor support, this adds support for linking rust static
libraries to vendor ramdisk cc modules.

A bug fix is also included where a restriction against setting rust_ffi
vendor-specific was not being enforced.

Bug: 179397942
Test: Example modules link, Soong tests pass.
Change-Id: I737cdf0c2f49ab349bcea2a0429e6298ebc1313e
This commit is contained in:
Ivan Lozano
2021-02-05 10:57:43 -05:00
parent c64b961708
commit e6d3098c1b
8 changed files with 99 additions and 16 deletions

View File

@@ -26,9 +26,9 @@ import (
var (
nativeBridgeSuffix = ".native_bridge"
productSuffix = ".product"
vendorSuffix = ".vendor"
VendorSuffix = ".vendor"
ramdiskSuffix = ".ramdisk"
vendorRamdiskSuffix = ".vendor_ramdisk"
VendorRamdiskSuffix = ".vendor_ramdisk"
recoverySuffix = ".recovery"
sdkSuffix = ".sdk"
)

View File

@@ -1544,7 +1544,7 @@ func (c *Module) getNameSuffixWithVndkVersion(ctx android.ModuleContext) string
nameSuffix = productSuffix
} else {
vndkVersion = ctx.DeviceConfig().VndkVersion()
nameSuffix = vendorSuffix
nameSuffix = VendorSuffix
}
if vndkVersion == "current" {
vndkVersion = ctx.DeviceConfig().PlatformVndkVersion()
@@ -1591,11 +1591,11 @@ func (c *Module) GenerateAndroidBuildActions(actx android.ModuleContext) {
} else if _, ok := c.linker.(*vndkPrebuiltLibraryDecorator); ok {
// .vendor suffix is added for backward compatibility with VNDK snapshot whose names with
// such suffixes are already hard-coded in prebuilts/vndk/.../Android.bp.
c.Properties.SubName += vendorSuffix
c.Properties.SubName += VendorSuffix
} else if c.InRamdisk() && !c.OnlyInRamdisk() {
c.Properties.SubName += ramdiskSuffix
} else if c.InVendorRamdisk() && !c.OnlyInVendorRamdisk() {
c.Properties.SubName += vendorRamdiskSuffix
c.Properties.SubName += VendorRamdiskSuffix
} else if c.InRecovery() && !c.OnlyInRecovery() {
c.Properties.SubName += recoverySuffix
} else if c.IsSdkVariant() && (c.Properties.SdkAndPlatformVariantVisibleToMake || c.SplitPerApiLevel()) {
@@ -2927,7 +2927,7 @@ func (c *Module) makeLibName(ctx android.ModuleContext, ccDep LinkableInterface,
} else if ccDep.InRamdisk() && !ccDep.OnlyInRamdisk() {
return libName + ramdiskSuffix
} else if ccDep.InVendorRamdisk() && !ccDep.OnlyInVendorRamdisk() {
return libName + vendorRamdiskSuffix
return libName + VendorRamdiskSuffix
} else if ccDep.InRecovery() && !ccDep.OnlyInRecovery() {
return libName + recoverySuffix
} else if ccDep.Target().NativeBridge == android.NativeBridgeEnabled {

View File

@@ -144,7 +144,7 @@ func (vendorSnapshotImage) imageVariantName(cfg android.DeviceConfig) string {
}
func (vendorSnapshotImage) moduleNameSuffix() string {
return vendorSuffix
return VendorSuffix
}
func (recoverySnapshotImage) init(ctx android.RegistrationContext) {

View File

@@ -43,6 +43,7 @@ func GatherRequiredDepsForTest(oses ...android.OsType) string {
name: "libatomic",
defaults: ["linux_bionic_supported"],
vendor_available: true,
vendor_ramdisk_available: true,
product_available: true,
recovery_available: true,
native_bridge_supported: true,
@@ -52,6 +53,7 @@ func GatherRequiredDepsForTest(oses ...android.OsType) string {
toolchain_library {
name: "libcompiler_rt-extras",
vendor_available: true,
vendor_ramdisk_available: true,
product_available: true,
recovery_available: true,
src: "",
@@ -60,6 +62,7 @@ func GatherRequiredDepsForTest(oses ...android.OsType) string {
toolchain_library {
name: "libclang_rt.builtins-arm-android",
vendor_available: true,
vendor_ramdisk_available: true,
product_available: true,
recovery_available: true,
native_bridge_supported: true,
@@ -69,6 +72,7 @@ func GatherRequiredDepsForTest(oses ...android.OsType) string {
toolchain_library {
name: "libclang_rt.builtins-aarch64-android",
vendor_available: true,
vendor_ramdisk_available: true,
product_available: true,
recovery_available: true,
native_bridge_supported: true,
@@ -93,6 +97,7 @@ func GatherRequiredDepsForTest(oses ...android.OsType) string {
toolchain_library {
name: "libclang_rt.builtins-i686-android",
vendor_available: true,
vendor_ramdisk_available: true,
product_available: true,
recovery_available: true,
native_bridge_supported: true,
@@ -103,6 +108,7 @@ func GatherRequiredDepsForTest(oses ...android.OsType) string {
name: "libclang_rt.builtins-x86_64-android",
defaults: ["linux_bionic_supported"],
vendor_available: true,
vendor_ramdisk_available: true,
product_available: true,
recovery_available: true,
native_bridge_supported: true,
@@ -113,6 +119,7 @@ func GatherRequiredDepsForTest(oses ...android.OsType) string {
name: "libunwind",
defaults: ["linux_bionic_supported"],
vendor_available: true,
vendor_ramdisk_available: true,
product_available: true,
recovery_available: true,
native_bridge_supported: true,
@@ -238,6 +245,7 @@ func GatherRequiredDepsForTest(oses ...android.OsType) string {
cc_library {
name: "libprofile-extras",
vendor_available: true,
vendor_ramdisk_available: true,
product_available: true,
recovery_available: true,
native_coverage: false,
@@ -248,6 +256,7 @@ func GatherRequiredDepsForTest(oses ...android.OsType) string {
cc_library {
name: "libprofile-clang-extras",
vendor_available: true,
vendor_ramdisk_available: true,
product_available: true,
recovery_available: true,
native_coverage: false,
@@ -319,6 +328,7 @@ func GatherRequiredDepsForTest(oses ...android.OsType) string {
system_shared_libs: [],
stl: "none",
vendor_available: true,
vendor_ramdisk_available: true,
product_available: true,
recovery_available: true,
host_supported: true,
@@ -356,6 +366,7 @@ func GatherRequiredDepsForTest(oses ...android.OsType) string {
stl: "none",
host_supported: false,
vendor_available: true,
vendor_ramdisk_available: true,
product_available: true,
recovery_available: true,
min_sdk_version: "29",
@@ -380,6 +391,7 @@ func GatherRequiredDepsForTest(oses ...android.OsType) string {
defaults: ["linux_bionic_supported"],
recovery_available: true,
vendor_available: true,
vendor_ramdisk_available: true,
product_available: true,
native_bridge_supported: true,
stl: "none",