From fce28386112c670009bbd16280838d31d65800f2 Mon Sep 17 00:00:00 2001 From: Kiyoung Kim Date: Wed, 25 Sep 2019 10:38:56 +0900 Subject: [PATCH] Find or guess installed libraries for VNDK library list Current implementation just uses VNDK library list from variable. However this does not match with expected library name as some libraries change their names from initial one by appending extra information such as version. To match this name each libraries should be searched from installed module list. Bug: 141584631 Test: m -j passed Test: Tested from cuttlefish Change-Id: If9685be59404226de4db16642781546e478694fb --- rootdir/Android.mk | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/rootdir/Android.mk b/rootdir/Android.mk index df1d92979..7097a123b 100644 --- a/rootdir/Android.mk +++ b/rootdir/Android.mk @@ -334,6 +334,15 @@ LOCAL_MODULE_PATH := $(TARGET_RECOVERY_ROOT_OUT)/system/etc LOCAL_MODULE_STEM := ld.config.txt include $(BUILD_PREBUILT) +# Returns the unique installed basenames of a module, or module.so if there are +# none. The guess is to handle cases like libc, where the module itself is +# marked uninstallable but a symlink is installed with the name libc.so. +# $(1): list of libraries +# $(2): suffix to to add to each library (not used for guess) +define module-installed-files-or-guess +$(foreach lib,$(1),$(or $(strip $(sort $(notdir $(call module-installed-files,$(lib)$(2))))),$(lib).so)) +endef + ####################################### # llndk.libraries.txt include $(CLEAR_VARS) @@ -342,13 +351,13 @@ LOCAL_MODULE_CLASS := ETC LOCAL_MODULE_PATH := $(TARGET_OUT_ETC) LOCAL_MODULE_STEM := $(call append_vndk_version,$(LOCAL_MODULE)) include $(BUILD_SYSTEM)/base_rules.mk -$(LOCAL_BUILT_MODULE): PRIVATE_LLNDK_LIBRARIES := $(LLNDK_LIBRARIES) +$(LOCAL_BUILT_MODULE): PRIVATE_LLNDK_LIBRARIES := $(call module-installed-files-or-guess,$(LLNDK_LIBRARIES),) $(LOCAL_BUILT_MODULE): @echo "Generate: $@" @mkdir -p $(dir $@) $(hide) echo -n > $@ $(hide) $(foreach lib,$(PRIVATE_LLNDK_LIBRARIES), \ - echo $(lib).so >> $@;) + echo $(lib) >> $@;) ####################################### # vndksp.libraries.txt @@ -358,13 +367,13 @@ LOCAL_MODULE_CLASS := ETC LOCAL_MODULE_PATH := $(TARGET_OUT_ETC) LOCAL_MODULE_STEM := $(call append_vndk_version,$(LOCAL_MODULE)) include $(BUILD_SYSTEM)/base_rules.mk -$(LOCAL_BUILT_MODULE): PRIVATE_VNDK_SAMEPROCESS_LIBRARIES := $(VNDK_SAMEPROCESS_LIBRARIES) +$(LOCAL_BUILT_MODULE): PRIVATE_VNDK_SAMEPROCESS_LIBRARIES := $(call module-installed-files-or-guess,$(VNDK_SAMEPROCESS_LIBRARIES),.vendor) $(LOCAL_BUILT_MODULE): @echo "Generate: $@" @mkdir -p $(dir $@) $(hide) echo -n > $@ $(hide) $(foreach lib,$(PRIVATE_VNDK_SAMEPROCESS_LIBRARIES), \ - echo $(lib).so >> $@;) + echo $(lib) >> $@;) ####################################### # vndkcore.libraries.txt @@ -374,13 +383,13 @@ LOCAL_MODULE_CLASS := ETC LOCAL_MODULE_PATH := $(TARGET_OUT_ETC) LOCAL_MODULE_STEM := $(call append_vndk_version,$(LOCAL_MODULE)) include $(BUILD_SYSTEM)/base_rules.mk -$(LOCAL_BUILT_MODULE): PRIVATE_VNDK_CORE_LIBRARIES := $(VNDK_CORE_LIBRARIES) +$(LOCAL_BUILT_MODULE): PRIVATE_VNDK_CORE_LIBRARIES := $(call module-installed-files-or-guess,$(VNDK_CORE_LIBRARIES),.vendor) $(LOCAL_BUILT_MODULE): @echo "Generate: $@" @mkdir -p $(dir $@) $(hide) echo -n > $@ $(hide) $(foreach lib,$(PRIVATE_VNDK_CORE_LIBRARIES), \ - echo $(lib).so >> $@;) + echo $(lib) >> $@;) ####################################### # vndkprivate.libraries.txt @@ -390,13 +399,13 @@ LOCAL_MODULE_CLASS := ETC LOCAL_MODULE_PATH := $(TARGET_OUT_ETC) LOCAL_MODULE_STEM := $(call append_vndk_version,$(LOCAL_MODULE)) include $(BUILD_SYSTEM)/base_rules.mk -$(LOCAL_BUILT_MODULE): PRIVATE_VNDK_PRIVATE_LIBRARIES := $(VNDK_PRIVATE_LIBRARIES) +$(LOCAL_BUILT_MODULE): PRIVATE_VNDK_PRIVATE_LIBRARIES := $(call module-installed-files-or-guess,$(VNDK_PRIVATE_LIBRARIES),.vendor) $(LOCAL_BUILT_MODULE): @echo "Generate: $@" @mkdir -p $(dir $@) $(hide) echo -n > $@ $(hide) $(foreach lib,$(PRIVATE_VNDK_PRIVATE_LIBRARIES), \ - echo $(lib).so >> $@;) + echo $(lib) >> $@;) ####################################### # sanitizer.libraries.txt