Copy Rust fuzzer dependencies to /data.
Fix an issue where rust_fuzz modules were not correctly packaging and copying their dependencies. This is done by extending the CC fuzz packager to simply handle both Rust and CC modules, ensuring this doesn't get out of sync again. Fuzzer related functions are added to the Linkable interface to facilitate this. There was a bug where the Make definitions for Rust fuzzers were not being created as well, and that is addressed here. Bug: 249551848 Test: m android_log_fuzzer #check $OUT/data/fuzz/arm64/libs Change-Id: I9b41153e0cf08ab510476b75003c3a3baccc3858
This commit is contained in:
30
rust/rust.go
30
rust/rust.go
@@ -208,6 +208,11 @@ func (mod *Module) OutputFiles(tag string) (android.Paths, error) {
|
||||
}
|
||||
return android.Paths{}, nil
|
||||
}
|
||||
case "unstripped":
|
||||
if mod.compiler != nil {
|
||||
return android.PathsIfNonNil(mod.compiler.unstrippedOutputFilePath()), nil
|
||||
}
|
||||
return nil, nil
|
||||
default:
|
||||
return nil, fmt.Errorf("unsupported module reference tag %q", tag)
|
||||
}
|
||||
@@ -619,6 +624,31 @@ func (mod *Module) CcLibraryInterface() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (mod *Module) IsFuzzModule() bool {
|
||||
if _, ok := mod.compiler.(*fuzzDecorator); ok {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (mod *Module) FuzzModuleStruct() fuzz.FuzzModule {
|
||||
return mod.FuzzModule
|
||||
}
|
||||
|
||||
func (mod *Module) FuzzPackagedModule() fuzz.FuzzPackagedModule {
|
||||
if fuzzer, ok := mod.compiler.(*fuzzDecorator); ok {
|
||||
return fuzzer.fuzzPackagedModule
|
||||
}
|
||||
panic(fmt.Errorf("FuzzPackagedModule called on non-fuzz module: %q", mod.BaseModuleName()))
|
||||
}
|
||||
|
||||
func (mod *Module) FuzzSharedLibraries() android.Paths {
|
||||
if fuzzer, ok := mod.compiler.(*fuzzDecorator); ok {
|
||||
return fuzzer.sharedLibraries
|
||||
}
|
||||
panic(fmt.Errorf("FuzzSharedLibraries called on non-fuzz module: %q", mod.BaseModuleName()))
|
||||
}
|
||||
|
||||
func (mod *Module) UnstrippedOutputFile() android.Path {
|
||||
if mod.compiler != nil {
|
||||
return mod.compiler.unstrippedOutputFilePath()
|
||||
|
Reference in New Issue
Block a user