Merge "Avoid conflicting shared libraries from SDK snapshots."
This commit is contained in:
18
cc/fuzz.go
18
cc/fuzz.go
@@ -167,7 +167,9 @@ func collectAllSharedDependencies(ctx android.SingletonContext, module android.M
|
|||||||
// 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 a shared library, or
|
||||||
// - The module is a header, stub, or vendor-linked library.
|
// - 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 versioned member of an SDK snapshot.
|
||||||
func isValidSharedDependency(dependency android.Module) bool {
|
func isValidSharedDependency(dependency android.Module) bool {
|
||||||
// TODO(b/144090547): We should be parsing these modules using
|
// TODO(b/144090547): We should be parsing these modules using
|
||||||
// ModuleDependencyTag instead of the current brute-force checking.
|
// ModuleDependencyTag instead of the current brute-force checking.
|
||||||
@@ -190,6 +192,20 @@ func isValidSharedDependency(dependency android.Module) bool {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If the same library is present both as source and a prebuilt we must pick
|
||||||
|
// only one to avoid a conflict. Always prefer the source since the prebuilt
|
||||||
|
// probably won't be built with sanitizers enabled.
|
||||||
|
if prebuilt, ok := dependency.(android.PrebuiltInterface); ok &&
|
||||||
|
prebuilt.Prebuilt() != nil && prebuilt.Prebuilt().SourceExists() {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// Discard versioned members of SDK snapshots, because they will conflict with
|
||||||
|
// unversioned ones.
|
||||||
|
if sdkMember, ok := dependency.(android.SdkAware); ok && !sdkMember.ContainingSdk().Unversioned() {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user