From 04eead7e2bd6e54d08e5e567acfca8c446628f42 Mon Sep 17 00:00:00 2001 From: Dan Albert Date: Thu, 23 Oct 2014 14:04:02 -0700 Subject: [PATCH] Don't sort shared library link order. Only sort the list of shared libraries used for naming dependencies, not the order they are actually linked in. The order in which shared libraries appear to the linker affects which symbols get used if there is a multiply defined symbol. Also link system shared libraries _after_ user provided libraries, since a user will want their functions to override the system's if they exist. Change-Id: I071059d940d40a648d69d90e0699073ef520138a --- core/binary.mk | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/core/binary.mk b/core/binary.mk index 750e783f51..5774357a20 100644 --- a/core/binary.mk +++ b/core/binary.mk @@ -235,16 +235,15 @@ ifdef LOCAL_SDK_VERSION $(my_shared_libraries) else installed_shared_library_module_names := \ - $(my_system_shared_libraries) $(my_shared_libraries) + $(my_shared_libraries) $(my_system_shared_libraries) endif -installed_shared_library_module_names := $(sort $(installed_shared_library_module_names)) # The real dependency will be added after all Android.mks are loaded and the install paths # of the shared libraries are determined. ifdef LOCAL_INSTALLED_MODULE ifdef installed_shared_library_module_names $(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)DEPENDENCIES_ON_SHARED_LIBRARIES += \ - $(my_register_name):$(LOCAL_INSTALLED_MODULE):$(subst $(space),$(comma),$(installed_shared_library_module_names)) + $(my_register_name):$(LOCAL_INSTALLED_MODULE):$(subst $(space),$(comma),$(sort $(installed_shared_library_module_names))) endif endif