diff options
author | 2024-07-23 21:34:24 +0000 | |
---|---|---|
committer | 2024-07-23 22:18:00 +0000 | |
commit | e20c56cdf024018574458af4586ab7416845b250 (patch) | |
tree | ca55636564a32ff99f7feb86fb5b57551db295ae | |
parent | 9a2f01b76275200bef1f4ba6467e9be1b0abe8af (diff) |
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
-rw-r--r-- | cc/cc.go | 7 | ||||
-rw-r--r-- | cc/library.go | 4 | ||||
-rw-r--r-- | cc/library_sdk_member.go | 11 | ||||
-rw-r--r-- | sdk/cc_sdk_test.go | 2 |
4 files changed, 24 insertions, 0 deletions
@@ -4079,6 +4079,13 @@ func (c *Module) BaseModuleName() string { 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 BoolDefault = proptools.BoolDefault var BoolPtr = proptools.BoolPtr diff --git a/cc/library.go b/cc/library.go index 6dd5b5615..ff21cc3f6 100644 --- a/cc/library.go +++ b/cc/library.go @@ -428,6 +428,9 @@ type libraryDecorator struct { *baseInstaller 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 @@ -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) return Objects{} } + library.stubsSymbolFilePath = android.PathForModuleSrc(ctx, symbolFile) // b/239274367 --apex and --systemapi filters symbols tagged with # apex and # // systemapi, respectively. The former is for symbols defined in platform libraries // and the latter is for symbols defined in APEXes. diff --git a/cc/library_sdk_member.go b/cc/library_sdk_member.go index 1f71c1922..e8a98274c 100644 --- a/cc/library_sdk_member.go +++ b/cc/library_sdk_member.go @@ -406,6 +406,9 @@ func addPossiblyArchSpecificProperties(sdkModuleContext android.ModuleContext, b if len(libInfo.StubsVersions) > 0 { stubsSet := outputProperties.AddPropertySet("stubs") 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. 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 // affect the expanded variants. All are propagated to avoid entangling the // 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 stub corresponding to ccModule.StubsVersion() is. 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 diff --git a/sdk/cc_sdk_test.go b/sdk/cc_sdk_test.go index 5d76930b4..25839b8a1 100644 --- a/sdk/cc_sdk_test.go +++ b/sdk/cc_sdk_test.go @@ -2205,6 +2205,7 @@ cc_prebuilt_library_shared { "3", "current", ], + symbol_file: "stubslib.map.txt", }, arch: { arm64: { @@ -2268,6 +2269,7 @@ cc_prebuilt_library_shared { "3", "current", ], + symbol_file: "stubslib.map.txt", }, target: { host: { |