Revert "Prohibit static executable in APEX"
This reverts commit 3a8130c797cd762427698f6a6245bba4c84c2e4b.
Reason for revert: Build failed.
Change-Id: I28c72c8c3adaeb23bff9bffe3994971aa3f2e4f4
diff --git a/apex/apex.go b/apex/apex.go
index e8bb9b7..0857946 100644
--- a/apex/apex.go
+++ b/apex/apex.go
@@ -1696,7 +1696,6 @@
a.checkUpdatable(ctx)
a.checkMinSdkVersion(ctx)
a.checkStaticLinkingToStubLibraries(ctx)
- a.checkStaticExecutables(ctx)
if len(a.properties.Tests) > 0 && !a.testApex {
ctx.PropertyErrorf("tests", "property allowed only in apex_test module type")
return
@@ -2488,35 +2487,6 @@
})
}
-// checkStaticExecutable ensures that executables in an APEX are not static.
-func (a *apexBundle) checkStaticExecutables(ctx android.ModuleContext) {
- ctx.VisitDirectDepsBlueprint(func(module blueprint.Module) {
- if ctx.OtherModuleDependencyTag(module) != executableTag {
- return
- }
- if cc, ok := module.(*cc.Module); ok && cc.StaticExecutable() {
- apex := a.ApexVariationName()
- exec := ctx.OtherModuleName(module)
- if isStaticExecutableAllowed(apex, exec) {
- return
- }
- ctx.ModuleErrorf("executable %s is static", ctx.OtherModuleName(module))
- }
- })
-}
-
-// A small list of exceptions where static executables are allowed in APEXes.
-func isStaticExecutableAllowed(apex string, exec string) bool {
- m := map[string][]string{
- "com.android.runtime": []string{
- "linker",
- "linkerconfig",
- },
- }
- execNames, ok := m[apex]
- return ok && android.InList(exec, execNames)
-}
-
// Collect information for opening IDE project files in java/jdeps.go.
func (a *apexBundle) IDEInfo(dpInfo *android.IdeInfo) {
dpInfo.Deps = append(dpInfo.Deps, a.properties.Java_libs...)
diff --git a/apex/apex_test.go b/apex/apex_test.go
index 1645c99..f58bf6c 100644
--- a/apex/apex_test.go
+++ b/apex/apex_test.go
@@ -374,6 +374,7 @@
symlinks: ["foo_link_"],
symlink_preferred_arch: true,
system_shared_libs: [],
+ static_executable: true,
stl: "none",
apex_available: [ "myapex", "com.android.gki.*" ],
}
@@ -2493,6 +2494,7 @@
srcs: ["mylib.cpp"],
relative_install_path: "foo/bar",
system_shared_libs: [],
+ static_executable: true,
stl: "none",
apex_available: [ "myapex" ],
}
@@ -2552,6 +2554,7 @@
name: "mybin",
relative_install_path: "foo/bar",
system_shared_libs: [],
+ static_executable: true,
stl: "none",
apex_available: [ "myapex" ],
native_bridge_supported: true,
@@ -8185,33 +8188,6 @@
}
}
-func TestProhibitStaticExecutable(t *testing.T) {
- testApexError(t, `executable mybin is static`, `
- apex {
- name: "myapex",
- key: "myapex.key",
- binaries: ["mybin"],
- min_sdk_version: "29",
- }
-
- apex_key {
- name: "myapex.key",
- public_key: "testkey.avbpubkey",
- private_key: "testkey.pem",
- }
-
- cc_binary {
- name: "mybin",
- srcs: ["mylib.cpp"],
- relative_install_path: "foo/bar",
- static_executable: true,
- system_shared_libs: [],
- stl: "none",
- apex_available: [ "myapex" ],
- }
- `)
-}
-
func TestMain(m *testing.M) {
os.Exit(m.Run())
}