Rust cdylib/statliclib support for vendor snapshot.
Adds support for platform vendor_available Rust FFI libraries and binaries to be included in the vendor snapshot. Because rlib and dylibs are not yet in snapshots, libstd cannot be included in a vendor snapshot. As a result, vendor-specific Rust code can't be guaranteed to work with the platform-provided vendor_available modules built with a newer toolchain. For now, a check is added indicating vendor-specific Rust code is unsupported. This changes the linkage for vendor variants of these modules to default to rlib linkage since dylibs cannot be included in the snapshot yet. Bug: 184042776 Test: m nothing # new Soong tests pass Change-Id: I502eaa4bb962eb87ff868fcf49b435f0d2f982e6
This commit is contained in:
@@ -202,6 +202,8 @@ func (mod *Module) SetImageVariation(ctx android.BaseModuleContext, variant stri
|
||||
|
||||
func (mod *Module) ImageMutatorBegin(mctx android.BaseModuleContext) {
|
||||
// Rust does not support installing to the product image yet.
|
||||
vendorSpecific := mctx.SocSpecific() || mctx.DeviceSpecific()
|
||||
|
||||
if Bool(mod.VendorProperties.Product_available) {
|
||||
mctx.PropertyErrorf("product_available",
|
||||
"Rust modules do not yet support being available to the product image")
|
||||
@@ -217,6 +219,9 @@ func (mod *Module) ImageMutatorBegin(mctx android.BaseModuleContext) {
|
||||
mctx.PropertyErrorf("vendor_ramdisk_available", "cannot be set for rust_ffi or rust_ffi_shared modules.")
|
||||
}
|
||||
}
|
||||
if vendorSpecific {
|
||||
mctx.PropertyErrorf("vendor", "Vendor-only non-rust_ffi Rust modules are not supported.")
|
||||
}
|
||||
|
||||
cc.MutateImage(mctx, mod)
|
||||
|
||||
|
Reference in New Issue
Block a user