Rewrite LDLIBS and SHARED_LIBRARIES
LOCAL_LDLIBS was the only correct way to use NDK libraries, but few used it correctly. It also often got confused with LOCAL_LDFLAGS, so move the flags to the correct variable. For binaries that weren't using the NDK (empty LOCAL_SDK_VERSION), it was never valid to use LOCAL_LDLIBS, as dependencies would not be properly set up, and could lead to random build failures. So convert any -l linker flags to using LOCAL_SHARED_LIBRARIES automatically. For binaries built using the NDK (LOCAL_SDK_VERSION set), they were required to use LOCAL_LDLIBS for prebuilt NDK libraries, otherwise they would get headers and dependencies to the platform versions. Any non-prebuilt LOCAL_LDLIBS would miss dependencies. So move the NDK prebuilt libraries to LDLIBS from SHARED_LIBRARIES, and move everything else to SHARED_LIBRARIES. So now, for device modules, LOCAL_SHARED_LIBRARIES should always be used, and we'll do the right thing. LOCAL_LDLIBS should only be used for host libraries from the system. Change-Id: Ide34c7afdcfb6507a378d45a42471729e489a9e0
Loading
Please register or sign in to comment