diff options
author | 2024-05-17 14:13:41 -0400 | |
---|---|---|
committer | 2024-06-26 01:35:41 +0000 | |
commit | fd47b1ab6a51ce3b148e2d4644b1d96b058c2064 (patch) | |
tree | 70d50006ec4333b14d8f47c4fc790283b92e87dc /rust/image_test.go | |
parent | 9c067f62d0b4d3e9c5a245f51f14dc51521c0e63 (diff) |
cc/rust: Alias ffi rlib variant for static_libs
Alias the rlib variant to "link: static". This allows declaring
rust_ffi_rlib modules in static_libs. This effectively removes any
distinction between rust_ffi_static and rust_ffi_rlib. Removing the
functionality for building Rust staticlib modules will be cleaned up in
a follow-on CL.
This should have the effect of changing the default linkage for all rust
modules in static_libs from linking individual staticlibs to building a
single staticlib that includes all rust_ffi rlib dependencies.
This removes the static_rlibs property, as we're now handling
the choice dynamically. This also makes rlibs only propagate through
cc_library_static modules if the rlib is included in
whole_static_lib. This both mirrors the expected behavior of
cc libraries and helps control which version of a crate ends up in the
final link (e.g. libdoh_ffi vs libdoh_ffi_for_test).
Bug: 254469782
Test: m
Test: m blueprint_tests
Change-Id: I2925f67f6dc9329dae3dcccafb8560900ac8a6fc
Diffstat (limited to 'rust/image_test.go')
-rw-r--r-- | rust/image_test.go | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/rust/image_test.go b/rust/image_test.go index 71e271c89..d84eb10c5 100644 --- a/rust/image_test.go +++ b/rust/image_test.go @@ -22,18 +22,20 @@ import ( "android/soong/cc" ) -// Test that cc modules can link against vendor_available rust_ffi_rlib/rust_ffi_static libraries. +// Test that cc modules can depend on vendor_available rust_ffi_rlib/rust_ffi_static libraries. func TestVendorLinkage(t *testing.T) { ctx := testRust(t, ` cc_binary { name: "fizz_vendor_available", - static_libs: ["libfoo_vendor_static"], - static_rlibs: ["libfoo_vendor"], + static_libs: [ + "libfoo_vendor", + "libfoo_vendor_static" + ], vendor_available: true, } cc_binary { name: "fizz_soc_specific", - static_rlibs: ["libfoo_vendor"], + static_libs: ["libfoo_vendor"], soc_specific: true, } rust_ffi_rlib { @@ -52,8 +54,8 @@ func TestVendorLinkage(t *testing.T) { vendorBinary := ctx.ModuleForTests("fizz_vendor_available", "android_vendor_arm64_armv8-a").Module().(*cc.Module) - if !android.InList("libfoo_vendor_static.vendor", vendorBinary.Properties.AndroidMkStaticLibs) { - t.Errorf("vendorBinary should have a dependency on libfoo_vendor_static.vendor: %#v", vendorBinary.Properties.AndroidMkStaticLibs) + if android.InList("libfoo_vendor_static.vendor", vendorBinary.Properties.AndroidMkStaticLibs) { + t.Errorf("vendorBinary should not have a staticlib dependency on libfoo_vendor_static.vendor: %#v", vendorBinary.Properties.AndroidMkStaticLibs) } } @@ -110,8 +112,10 @@ func TestVendorRamdiskLinkage(t *testing.T) { ctx := testRust(t, ` cc_library_shared { name: "libcc_vendor_ramdisk", - static_rlibs: ["libfoo_vendor_ramdisk"], - static_libs: ["libfoo_static_vendor_ramdisk"], + static_libs: [ + "libfoo_vendor_ramdisk", + "libfoo_static_vendor_ramdisk" + ], system_shared_libs: [], vendor_ramdisk_available: true, } @@ -131,8 +135,8 @@ func TestVendorRamdiskLinkage(t *testing.T) { vendorRamdiskLibrary := ctx.ModuleForTests("libcc_vendor_ramdisk", "android_vendor_ramdisk_arm64_armv8-a_shared").Module().(*cc.Module) - if !android.InList("libfoo_static_vendor_ramdisk.vendor_ramdisk", vendorRamdiskLibrary.Properties.AndroidMkStaticLibs) { - t.Errorf("libcc_vendor_ramdisk should have a dependency on libfoo_static_vendor_ramdisk") + if android.InList("libfoo_static_vendor_ramdisk.vendor_ramdisk", vendorRamdiskLibrary.Properties.AndroidMkStaticLibs) { + t.Errorf("libcc_vendor_ramdisk should not have a dependency on the libfoo_static_vendor_ramdisk static library") } } |