Retain all stubs versions in the snapshot.

This is a quick fix to avoid build failures due to prebuilts lacking
stubs versions that the sources have, which causes dependencies on
older version stubs fail on master-art-host where the sources of e.g.
Bionic are no longer available.

More work is required to make the version handling of stubs DTRT - a
TODO comment outlines it.

Test: m nothing
Test: `m runtime-module-sdk`, check that the generated Android.bp
  has the full stubs.versions list like the sources.
Bug: 169373910
Change-Id: I0ebfaf94f9d45a0e58d9785c40e7cea626f0ab83
This commit is contained in:
Martin Stjernholm 2020-09-24 16:53:04 +01:00
parent ca17414206
commit 618b671bf4
2 changed files with 31 additions and 11 deletions

View file

@ -295,9 +295,9 @@ func addPossiblyArchSpecificProperties(sdkModuleContext android.ModuleContext, b
outputProperties.AddProperty(property, includeDirs[property]) outputProperties.AddProperty(property, includeDirs[property])
} }
if len(libInfo.StubsVersion) > 0 { if len(libInfo.StubsVersions) > 0 {
stubsSet := outputProperties.AddPropertySet("stubs") stubsSet := outputProperties.AddPropertySet("stubs")
stubsSet.AddProperty("versions", []string{libInfo.StubsVersion}) stubsSet.AddProperty("versions", libInfo.StubsVersions)
} }
} }
@ -368,10 +368,10 @@ type nativeLibInfoProperties struct {
// The specific stubs version for the lib variant, or empty string if stubs // The specific stubs version for the lib variant, or empty string if stubs
// are not in use. // are not in use.
// //
// Marked 'ignored-on-host' as the StubsVersion() from which this is initialized is // Marked 'ignored-on-host' as the AllStubsVersions() from which this is
// not set on host and the stubs.versions property which this is written to is does // initialized is not set on host and the stubs.versions property which this
// not vary by arch so cannot be android specific. // is written to does not vary by arch so cannot be android specific.
StubsVersion string `sdk:"ignored-on-host"` StubsVersions []string `sdk:"ignored-on-host"`
// Value of SanitizeProperties.Sanitize.Never. Needs to be propagated for CRT objects. // Value of SanitizeProperties.Sanitize.Never. Needs to be propagated for CRT objects.
SanitizeNever bool `android:"arch_variant"` SanitizeNever bool `android:"arch_variant"`
@ -420,7 +420,11 @@ func (p *nativeLibInfoProperties) PopulateFromVariant(ctx android.SdkMemberConte
p.exportedGeneratedHeaders = ccModule.ExportedGeneratedHeaders() p.exportedGeneratedHeaders = ccModule.ExportedGeneratedHeaders()
if ccModule.HasStubsVariants() { if ccModule.HasStubsVariants() {
p.StubsVersion = ccModule.StubsVersion() // TODO(b/169373910): 1. Only output the specific version (from
// ccModule.StubsVersion()) if the module is versioned. 2. Ensure that all
// the versioned stub libs are retained in the prebuilt tree; currently only
// the stub corresponding to ccModule.StubsVersion() is.
p.StubsVersions = ccModule.AllStubsVersions()
} }
if ccModule.sanitize != nil && proptools.Bool(ccModule.sanitize.Properties.Sanitize.Never) { if ccModule.sanitize != nil && proptools.Bool(ccModule.sanitize.Properties.Sanitize.Never) {

View file

@ -2330,7 +2330,11 @@ cc_prebuilt_library_shared {
installable: false, installable: false,
compile_multilib: "both", compile_multilib: "both",
stubs: { stubs: {
versions: ["3"], versions: [
"1",
"2",
"3",
],
}, },
arch: { arch: {
arm64: { arm64: {
@ -2347,7 +2351,11 @@ cc_prebuilt_library_shared {
prefer: false, prefer: false,
compile_multilib: "both", compile_multilib: "both",
stubs: { stubs: {
versions: ["3"], versions: [
"1",
"2",
"3",
],
}, },
arch: { arch: {
arm64: { arm64: {
@ -2401,7 +2409,11 @@ cc_prebuilt_library_shared {
installable: false, installable: false,
compile_multilib: "both", compile_multilib: "both",
stubs: { stubs: {
versions: ["3"], versions: [
"1",
"2",
"3",
],
}, },
target: { target: {
host: { host: {
@ -2431,7 +2443,11 @@ cc_prebuilt_library_shared {
host_supported: true, host_supported: true,
compile_multilib: "both", compile_multilib: "both",
stubs: { stubs: {
versions: ["3"], versions: [
"1",
"2",
"3",
],
}, },
target: { target: {
host: { host: {