summaryrefslogtreecommitdiff
path: root/python/binary.go
diff options
context:
space:
mode:
author Cole Faust <colefaust@google.com> 2023-02-02 12:11:29 -0800
committer Cole Faust <colefaust@google.com> 2023-02-02 13:47:56 -0800
commitaa5b377ee956f2e7ff2e0fb6630f636ecfe15b84 (patch)
treeafadf90b414efb846a061928242ca79821b14f47 /python/binary.go
parent8e0ae8e9607375b2ae64582c10a66d7b70a6d9b7 (diff)
Dynamically assemble the list of python launcher shared libs for precompiling
Still fall back to the hardcoded list for what to put in LOCAL_SHARED_LIBRARIES, because I couldn't figure out a good way to get those modules at the moment. Bug: 259718110 Test: Presubmits Change-Id: Ia992ffea8819d8c67280b08bc45505f77af09de0
Diffstat (limited to 'python/binary.go')
-rw-r--r--python/binary.go29
1 files changed, 20 insertions, 9 deletions
diff --git a/python/binary.go b/python/binary.go
index 75135f345..95c751a82 100644
--- a/python/binary.go
+++ b/python/binary.go
@@ -125,6 +125,25 @@ func (p *PythonBinaryModule) buildBinary(ctx android.ModuleContext) {
launcherPath = provider.IntermPathForModuleOut()
}
})
+
+ // TODO: get the list of shared libraries directly from the launcher module somehow
+ var sharedLibs []string
+ sharedLibs = append(sharedLibs, "libsqlite")
+ if ctx.Target().Os.Bionic() {
+ sharedLibs = append(sharedLibs, "libc", "libdl", "libm")
+ }
+ if ctx.Target().Os == android.LinuxMusl && !ctx.Config().HostStaticBinaries() {
+ sharedLibs = append(sharedLibs, "libc_musl")
+ }
+ switch p.properties.Actual_version {
+ case pyVersion2:
+ sharedLibs = append(sharedLibs, "libc++")
+ case pyVersion3:
+ if ctx.Device() {
+ sharedLibs = append(sharedLibs, "liblog")
+ }
+ }
+ p.androidMkSharedLibs = sharedLibs
}
srcsZips := make(android.Paths, 0, len(depsSrcsZips)+1)
if embeddedLauncher {
@@ -136,14 +155,6 @@ func (p *PythonBinaryModule) buildBinary(ctx android.ModuleContext) {
p.installSource = registerBuildActionForParFile(ctx, embeddedLauncher, launcherPath,
p.getHostInterpreterName(ctx, p.properties.Actual_version),
main, p.getStem(ctx), srcsZips)
-
- var sharedLibs []string
- // if embedded launcher is enabled, we need to collect the shared library dependencies of the
- // launcher
- for _, dep := range ctx.GetDirectDepsWithTag(launcherSharedLibTag) {
- sharedLibs = append(sharedLibs, ctx.OtherModuleName(dep))
- }
- p.androidMkSharedLibs = sharedLibs
}
func (p *PythonBinaryModule) AndroidMkEntries() []android.AndroidMkEntries {
@@ -176,7 +187,7 @@ func (p *PythonBinaryModule) DepsMutator(ctx android.BottomUpMutatorContext) {
p.PythonLibraryModule.DepsMutator(ctx)
if p.isEmbeddedLauncherEnabled() {
- p.AddDepsOnPythonLauncherAndStdlib(ctx, pythonLibTag, launcherTag, launcherSharedLibTag, p.autorun(), ctx.Target())
+ p.AddDepsOnPythonLauncherAndStdlib(ctx, pythonLibTag, launcherTag, p.autorun(), ctx.Target())
}
}