From 95d55818a46d793295db5e90fa55fd0b01bed059 Mon Sep 17 00:00:00 2001 From: Kiyoung Kim Date: Thu, 18 Jul 2019 20:21:05 +0900 Subject: [PATCH] Replace xargs with other shell command Recently Android build team changed environment to use prebuilt toybox binaries for common tools (aosp/852849). However, as toybox xargs does not support -I option, update_and_install_ld_config.mk started to fail filtering out private vndk libraries from the list. To resolve this, xargs usages are replaced with other shell command (read). Bug: 137832162 Test: m -j && tested on Cuttlefish Change-Id: I218ce6272c781f826b87c8efc0d3c77bf6bc3af5 --- rootdir/update_and_install_ld_config.mk | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/rootdir/update_and_install_ld_config.mk b/rootdir/update_and_install_ld_config.mk index c949a4f1c..ee29afcc4 100644 --- a/rootdir/update_and_install_ld_config.mk +++ b/rootdir/update_and_install_ld_config.mk @@ -88,7 +88,7 @@ endif # ifneq ($(lib_list_from_prebuilts),true) # $(2): output file with the filtered list of lib names $(LOCAL_BUILT_MODULE): private-filter-out-private-libs = \ paste -sd ":" $(1) > $(2) && \ - cat $(PRIVATE_VNDK_PRIVATE_LIBRARIES_FILE) | xargs -n 1 -I privatelib bash -c "sed -i.bak 's/privatelib//' $(2)" && \ + while read -r privatelib; do sed -i.bak "s/$$privatelib//" $(2) ; done < $(PRIVATE_VNDK_PRIVATE_LIBRARIES_FILE) && \ sed -i.bak -e 's/::\+/:/g ; s/^:\+// ; s/:\+$$//' $(2) && \ rm -f $(2).bak $(LOCAL_BUILT_MODULE): PRIVATE_LLNDK_LIBRARIES_FILE := $(llndk_libraries_file) @@ -139,8 +139,9 @@ else endif $(hide) echo -n > $(PRIVATE_INTERMEDIATES_DIR)/private_llndk && \ - cat $(PRIVATE_VNDK_PRIVATE_LIBRARIES_FILE) | \ - xargs -n 1 -I privatelib bash -c "(grep privatelib $(PRIVATE_LLNDK_LIBRARIES_FILE) || true) >> $(PRIVATE_INTERMEDIATES_DIR)/private_llndk" && \ + while read -r privatelib; \ + do (grep $$privatelib $(PRIVATE_LLNDK_LIBRARIES_FILE) || true) >> $(PRIVATE_INTERMEDIATES_DIR)/private_llndk ; \ + done < $(PRIVATE_VNDK_PRIVATE_LIBRARIES_FILE) && \ paste -sd ":" $(PRIVATE_INTERMEDIATES_DIR)/private_llndk | \ sed -i.bak -e "s?%PRIVATE_LLNDK_LIBRARIES%?$$(cat -)?g" $@