Non-installable module should not be installed into a fuzzer .zip package
libicu_* fuzzer depends on installable cc modules and non-installable cc modules with the same name, because the non-installable modules are stubs used in the compile-time, and shouldn't be used in runtime. Bug: 175583039 Test: make haiku dist Test: Run 2 arbitrary binaries from out/dist/fuzz-target-x86_64.zip on device Test: Run 2 arbitrary binaries from out/dist/fuzz-host-x86_64.zip on host Change-Id: I0ecf24bb83e3985da3b8f393adab8c87ab7400c6
This commit is contained in:
@@ -20,6 +20,8 @@ import (
|
|||||||
"sort"
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/google/blueprint/proptools"
|
||||||
|
|
||||||
"android/soong/android"
|
"android/soong/android"
|
||||||
"android/soong/cc/config"
|
"android/soong/cc/config"
|
||||||
)
|
)
|
||||||
@@ -172,7 +174,7 @@ func collectAllSharedDependencies(ctx android.SingletonContext, module android.M
|
|||||||
// This function takes a module and determines if it is a unique shared library
|
// This function takes a module and determines if it is a unique shared library
|
||||||
// that should be installed in the fuzz target output directories. This function
|
// that should be installed in the fuzz target output directories. This function
|
||||||
// returns true, unless:
|
// returns true, unless:
|
||||||
// - The module is not a shared library, or
|
// - The module is not an installable shared library, or
|
||||||
// - The module is a header, stub, or vendor-linked library, or
|
// - The module is a header, stub, or vendor-linked library, or
|
||||||
// - The module is a prebuilt and its source is available, or
|
// - The module is a prebuilt and its source is available, or
|
||||||
// - The module is a versioned member of an SDK snapshot.
|
// - The module is a versioned member of an SDK snapshot.
|
||||||
@@ -209,6 +211,11 @@ func isValidSharedDependency(dependency android.Module) bool {
|
|||||||
if _, isLLndkStubLibrary := ccLibrary.linker.(*stubDecorator); isLLndkStubLibrary {
|
if _, isLLndkStubLibrary := ccLibrary.linker.(*stubDecorator); isLLndkStubLibrary {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
// Discard installable:false libraries because they are expected to be absent
|
||||||
|
// in runtime.
|
||||||
|
if !proptools.BoolDefault(ccLibrary.Properties.Installable, true) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the same library is present both as source and a prebuilt we must pick
|
// If the same library is present both as source and a prebuilt we must pick
|
||||||
|
Reference in New Issue
Block a user