Add C symbol file to module sdk snapshot
cc_prebuilt_library_shared does not currently support generating stubs from API symbol_files, and therefore the symbol file was removed from the module sdk snapshots in https://ag.corp.google.com/11394495 As part of b/275273834, the stubs will be generated from the API files for cc_prebuilt_library_shared, so add the symbol file back to the module sdk Bug: 275273834 Test: m nothing --no-skip-soong-tests Test: m art-module-sdk and verified the map.txt is copied to the zip next to the Android.bp file Change-Id: I9551e7b8a76ceb9db3ed0434d315b6839f5e3d54
This commit is contained in:
7
cc/cc.go
7
cc/cc.go
@@ -4079,6 +4079,13 @@ func (c *Module) BaseModuleName() string {
|
|||||||
return c.ModuleBase.BaseModuleName()
|
return c.ModuleBase.BaseModuleName()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *Module) stubsSymbolFilePath() android.Path {
|
||||||
|
if library, ok := c.linker.(*libraryDecorator); ok {
|
||||||
|
return library.stubsSymbolFilePath
|
||||||
|
}
|
||||||
|
return android.OptionalPath{}.Path()
|
||||||
|
}
|
||||||
|
|
||||||
var Bool = proptools.Bool
|
var Bool = proptools.Bool
|
||||||
var BoolDefault = proptools.BoolDefault
|
var BoolDefault = proptools.BoolDefault
|
||||||
var BoolPtr = proptools.BoolPtr
|
var BoolPtr = proptools.BoolPtr
|
||||||
|
@@ -428,6 +428,9 @@ type libraryDecorator struct {
|
|||||||
*baseInstaller
|
*baseInstaller
|
||||||
|
|
||||||
apiListCoverageXmlPath android.ModuleOutPath
|
apiListCoverageXmlPath android.ModuleOutPath
|
||||||
|
|
||||||
|
// Path to the file containing the APIs exported by this library
|
||||||
|
stubsSymbolFilePath android.Path
|
||||||
}
|
}
|
||||||
|
|
||||||
// linkerProps returns the list of properties structs relevant for this library. (For example, if
|
// linkerProps returns the list of properties structs relevant for this library. (For example, if
|
||||||
@@ -596,6 +599,7 @@ func (library *libraryDecorator) compile(ctx ModuleContext, flags Flags, deps Pa
|
|||||||
ctx.PropertyErrorf("symbol_file", "%q doesn't have .map.txt suffix", symbolFile)
|
ctx.PropertyErrorf("symbol_file", "%q doesn't have .map.txt suffix", symbolFile)
|
||||||
return Objects{}
|
return Objects{}
|
||||||
}
|
}
|
||||||
|
library.stubsSymbolFilePath = android.PathForModuleSrc(ctx, symbolFile)
|
||||||
// b/239274367 --apex and --systemapi filters symbols tagged with # apex and #
|
// b/239274367 --apex and --systemapi filters symbols tagged with # apex and #
|
||||||
// systemapi, respectively. The former is for symbols defined in platform libraries
|
// systemapi, respectively. The former is for symbols defined in platform libraries
|
||||||
// and the latter is for symbols defined in APEXes.
|
// and the latter is for symbols defined in APEXes.
|
||||||
|
@@ -406,6 +406,9 @@ func addPossiblyArchSpecificProperties(sdkModuleContext android.ModuleContext, b
|
|||||||
if len(libInfo.StubsVersions) > 0 {
|
if len(libInfo.StubsVersions) > 0 {
|
||||||
stubsSet := outputProperties.AddPropertySet("stubs")
|
stubsSet := outputProperties.AddPropertySet("stubs")
|
||||||
stubsSet.AddProperty("versions", libInfo.StubsVersions)
|
stubsSet.AddProperty("versions", libInfo.StubsVersions)
|
||||||
|
// The symbol file will be copied next to the Android.bp file
|
||||||
|
stubsSet.AddProperty("symbol_file", libInfo.StubsSymbolFilePath.Base())
|
||||||
|
builder.CopyToSnapshot(libInfo.StubsSymbolFilePath, libInfo.StubsSymbolFilePath.Base())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -481,6 +484,9 @@ type nativeLibInfoProperties struct {
|
|||||||
// is written to does not vary by arch so cannot be android specific.
|
// is written to does not vary by arch so cannot be android specific.
|
||||||
StubsVersions []string `sdk:"ignored-on-host"`
|
StubsVersions []string `sdk:"ignored-on-host"`
|
||||||
|
|
||||||
|
// The symbol file containing the APIs exported by this library.
|
||||||
|
StubsSymbolFilePath android.Path `sdk:"ignored-on-host"`
|
||||||
|
|
||||||
// Value of SanitizeProperties.Sanitize. Several - but not all - of these
|
// Value of SanitizeProperties.Sanitize. Several - but not all - of these
|
||||||
// affect the expanded variants. All are propagated to avoid entangling the
|
// affect the expanded variants. All are propagated to avoid entangling the
|
||||||
// sanitizer logic with the snapshot generation.
|
// sanitizer logic with the snapshot generation.
|
||||||
@@ -549,6 +555,11 @@ func (p *nativeLibInfoProperties) PopulateFromVariant(ctx android.SdkMemberConte
|
|||||||
// the versioned stub libs are retained in the prebuilt tree; currently only
|
// the versioned stub libs are retained in the prebuilt tree; currently only
|
||||||
// the stub corresponding to ccModule.StubsVersion() is.
|
// the stub corresponding to ccModule.StubsVersion() is.
|
||||||
p.StubsVersions = lib.allStubsVersions()
|
p.StubsVersions = lib.allStubsVersions()
|
||||||
|
if lib.buildStubs() && ccModule.stubsSymbolFilePath() == nil {
|
||||||
|
ctx.ModuleErrorf("Could not determine symbol_file")
|
||||||
|
} else {
|
||||||
|
p.StubsSymbolFilePath = ccModule.stubsSymbolFilePath()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
p.SystemSharedLibs = specifiedDeps.systemSharedLibs
|
p.SystemSharedLibs = specifiedDeps.systemSharedLibs
|
||||||
|
@@ -2205,6 +2205,7 @@ cc_prebuilt_library_shared {
|
|||||||
"3",
|
"3",
|
||||||
"current",
|
"current",
|
||||||
],
|
],
|
||||||
|
symbol_file: "stubslib.map.txt",
|
||||||
},
|
},
|
||||||
arch: {
|
arch: {
|
||||||
arm64: {
|
arm64: {
|
||||||
@@ -2268,6 +2269,7 @@ cc_prebuilt_library_shared {
|
|||||||
"3",
|
"3",
|
||||||
"current",
|
"current",
|
||||||
],
|
],
|
||||||
|
symbol_file: "stubslib.map.txt",
|
||||||
},
|
},
|
||||||
target: {
|
target: {
|
||||||
host: {
|
host: {
|
||||||
|
Reference in New Issue
Block a user