toolchain: handle toolchains with multiple ld*.so.* files
authorJonah Petri <jonah@petri.us>
Tue, 24 Aug 2021 20:38:41 +0000 (16:38 -0400)
committerArnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Wed, 25 Aug 2021 19:50:17 +0000 (21:50 +0200)
Some 3rd party vendor toolchains have multiple files which match
these glob patterns.  In this case, the shell script failed.
Switching to use find and xargs solves the issue.

Signed-off-by: Jonah Petri <jonah@petri.us>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
toolchain/helpers.mk

index dfb2581ed5edda39474a735f3c3ea9ef358ddd47..5ed149d57d31a162993e6750c741fd6ed28843f0 100644 (file)
@@ -135,10 +135,8 @@ copy_toolchain_sysroot = \
                        $(call simplify_symlink,$$i,$(STAGING_DIR)) ; \
                done ; \
        fi ; \
-       if [ ! -e $(STAGING_DIR)/lib/ld*.so.* ]; then \
-               if [ -e $${ARCH_SYSROOT_DIR}/lib/ld*.so.* ]; then \
-                       cp -a $${ARCH_SYSROOT_DIR}/lib/ld*.so.* $(STAGING_DIR)/lib/ ; \
-               fi ; \
+       if ! find -wholename $(STAGING_DIR)'/lib/ld*.so.*' > /dev/null; then \
+               find -wholename $${ARCH_SYSROOT_DIR}'/lib/ld*.so.*' -print0 | xargs -0 -I % cp % $(STAGING_DIR)/lib/; \
        fi ; \
        if [ `readlink -f $${SYSROOT_DIR}` != `readlink -f $${ARCH_SYSROOT_DIR}` ] ; then \
                if [ ! -d $${ARCH_SYSROOT_DIR}/usr/include ] ; then \