shared_lib dependency from a static lib crosses the APEX boundary
cc_library_static { name: "libfoo", shared_libs: ["libbar"], } cc_library { name: "libbar", } If libfoo is part of an APEX, then libbar is no longer considered as a member of the APEX, because it isn't actually linked to libfoo. To distinguish such a shared lib dependency from a static library from a shared lib dependency from a shared library, a new dep type SharedFromStaticDepTag is introduced. It is treated exactly the same as SharedDepTag, except when we determine whether a dependency is crossing the APEX boundary or not. This allows us to check the apex_available property more correctly. Previously, modules were incorrectly considered as being used for an APEX due to the shared lib dependency from a static lib. As a good side effect, this also reduces the number of APEX variants. Specifically, on aosp_arm64, the number of the generated modules were reduced from 44745 to 44180. Bug: 147671264 Test: m Change-Id: I899ccb9eae1574effef77ca1bc3a0df145983861
Loading
Please register or sign in to comment