From: Jo-Philipp Wich Date: Tue, 12 Apr 2011 20:37:43 +0000 (+0000) Subject: base-files: return success on lib-copying with external toolchain when using an exter... X-Git-Tag: reboot~16910 X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=2f6361832e1284fdbf3480abc48bd7a1a1362760;p=openwrt%2Fstaging%2Fxback.git base-files: return success on lib-copying with external toolchain when using an external toolchain the base-files package copies libc, libgcc and others from the library directory. The file list is given as following in the .config: CONFIG_LIBC_FILE_SPEC="./lib/ld{-*.so,-linux*.so.*} ./lib/lib{anl,c,cidn,crypt,dl,m,nsl,nss_dns,nss_files,resolv,util}{-*.so,.so.*}" Because the filenames are composed with different endings, not all files exist and will be skipped. Currently, this works only if the last composed file (util.so.*) really exists. At the moment this works - but only if you don't add a new file like 'uClibc'. Adding it at the end '...resolv,util,uClibc}{-*.so,.so.*}' will lead to this message, because the combination 'libuClibc.so.*' doesn't exist and Make will evaluate the last copy statement of the for loop. --- diff --git a/package/base-files/Makefile b/package/base-files/Makefile index a4a62d23f5..e56774f1e3 100644 --- a/package/base-files/Makefile +++ b/package/base-files/Makefile @@ -487,10 +487,11 @@ ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),) $(TOOLCHAIN_DIR)/lib/ld-$(LIBC_SO_VERSION).so \ $(1)/lib/ for file in libanl libc libcidn libcrypt libdl libm $(use_libnsl) $(use_nsswitch) libresolv $(use_libutil); do \ - $(CP) \ - $(TOOLCHAIN_DIR)/lib/$$$$file.so.* \ - $(TOOLCHAIN_DIR)/lib/$$$$file-$(LIBC_SO_VERSION).so \ - $(1)/lib/; \ + for file in $(TOOLCHAIN_DIR)/lib/$$$$file.so.* $(TOOLCHAIN_DIR)/lib/$$$$file-$(LIBC_SO_VERSION).so; do \ + if [ -e "$$$$file" ]; then \ + $(CP) $$$$file $(1)/lib/; \ + fi; \ + done; \ done endef @@ -575,7 +576,8 @@ else dir=`dirname $$$$file` ; \ $(INSTALL_DIR) $(1)/$$$$dir ; \ $(CP) $(call qstrip,$(CONFIG_LIBGCC_ROOT_DIR))/$$$$file $(1)/$$$$dir/ ; \ - done + done ; \ + exit 0 endef define Package/libssp/install @@ -583,7 +585,8 @@ else dir=`dirname $$$$file` ; \ $(INSTALL_DIR) $(1)/$$$$dir ; \ $(CP) $(call qstrip,$(CONFIG_LIBSSP_ROOT_DIR))/$$$$file $(1)/$$$$dir/ ; \ - done + done ; \ + exit 0 endef define Package/libstdcpp/install @@ -591,7 +594,8 @@ else dir=`dirname $$$$file` ; \ $(INSTALL_DIR) $(1)/$$$$dir ; \ $(CP) $(call qstrip,$(CONFIG_LIBSTDCPP_ROOT_DIR))/$$$$file $(1)/$$$$dir/ ; \ - done + done ; \ + exit 0 endef define Package/libc/install @@ -599,7 +603,8 @@ else dir=`dirname $$$$file` ; \ $(INSTALL_DIR) $(1)/$$$$dir ; \ $(CP) $(call qstrip,$(CONFIG_LIBC_ROOT_DIR))/$$$$file $(1)/$$$$dir/ ; \ - done + done ; \ + exit 0 endef define Package/libpthread/install @@ -607,7 +612,8 @@ else dir=`dirname $$$$file` ; \ $(INSTALL_DIR) $(1)/$$$$dir ; \ $(CP) $(call qstrip,$(CONFIG_LIBPTHREAD_ROOT_DIR))/$$$$file $(1)/$$$$dir/ ; \ - done + done ; \ + exit 0 endef define Package/librt/install @@ -615,7 +621,8 @@ else dir=`dirname $$$$file` ; \ $(INSTALL_DIR) $(1)/$$$$dir ; \ $(CP) $(call qstrip,$(CONFIG_LIBRT_ROOT_DIR))/$$$$file $(1)/$$$$dir/ ; \ - done + done ; \ + exit 0 endef define Package/ldd/install @@ -623,7 +630,8 @@ else dir=`dirname $$$$file` ; \ $(INSTALL_DIR) $(1)/$$$$dir ; \ $(CP) $(call qstrip,$(CONFIG_LDD_ROOT_DIR))/$$$$file $(1)/$$$$dir/ ; \ - done + done ; \ + exit 0 endef define Package/ldconfig/install @@ -631,7 +639,8 @@ else dir=`dirname $$$$file` ; \ $(INSTALL_DIR) $(1)/$$$$dir ; \ $(CP) $(call qstrip,$(CONFIG_LDCONFIG_ROOT_DIR))/$$$$file $(1)/$$$$dir/ ; \ - done + done ; \ + exit 0 endef endif