Rust rlib vendor snapshot support.
Adds support for snapshotting Rust rlibs. This allows us vendor-specific code that uses rlib-only linkage until dylib snapshot support is added. Bug: 184042776 Test: m nothing # new Soong tests pass Test: Example test Rust vendor module builds Test: m dist vendor-snapshot # includes rlibs Change-Id: I4976d3e1efec0ee778cc97730d45be471dffb678
This commit is contained in:
@@ -124,7 +124,8 @@ type libraryInterface interface {
|
||||
setStatic()
|
||||
setSource()
|
||||
|
||||
// Set libstd linkage
|
||||
// libstd linkage functions
|
||||
rlibStd() bool
|
||||
setRlibStd()
|
||||
setDylibStd()
|
||||
|
||||
@@ -195,6 +196,10 @@ func (library *libraryDecorator) setDylib() {
|
||||
library.MutatedProperties.VariantIsShared = false
|
||||
}
|
||||
|
||||
func (library *libraryDecorator) rlibStd() bool {
|
||||
return library.MutatedProperties.VariantIsStaticStd
|
||||
}
|
||||
|
||||
func (library *libraryDecorator) setRlibStd() {
|
||||
library.MutatedProperties.VariantIsStaticStd = true
|
||||
}
|
||||
@@ -680,9 +685,10 @@ func LibstdMutator(mctx android.BottomUpMutatorContext) {
|
||||
dylib := modules[1].(*Module)
|
||||
rlib.compiler.(libraryInterface).setRlibStd()
|
||||
dylib.compiler.(libraryInterface).setDylibStd()
|
||||
if dylib.ModuleBase.ImageVariation().Variation == android.VendorRamdiskVariation {
|
||||
if dylib.ModuleBase.ImageVariation().Variation == android.VendorRamdiskVariation ||
|
||||
strings.HasPrefix(dylib.ModuleBase.ImageVariation().Variation, cc.VendorVariationPrefix) {
|
||||
// TODO(b/165791368)
|
||||
// Disable rlibs that link against dylib-std on vendor ramdisk variations until those dylib
|
||||
// Disable rlibs that link against dylib-std on vendor and vendor ramdisk variations until those dylib
|
||||
// variants are properly supported.
|
||||
dylib.Disable()
|
||||
}
|
||||
|
Reference in New Issue
Block a user