toolchain-external: simplify previously-broken symbolic links
authorThomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Tue, 7 Feb 2017 21:56:45 +0000 (22:56 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Wed, 5 Apr 2017 19:32:29 +0000 (21:32 +0200)
A previous commit rewrote broken symbolic links in staging, caused by a
non-singular ARCH_LIB_DIR. In this case, the symbolic links are typically
using one or more intermediate directory symlinks, which can be simplified
using the newly introduced simplify_symlink helper.

Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
toolchain/helpers.mk

index 5137b5d10243171d03a551a453813af2474f3bc7..8367a063dc1d6858745418da9a26c86b1affe03d 100644 (file)
@@ -63,6 +63,8 @@ copy_toolchain_lib_root = \
 # components, as links to the current directory are always fine.
 # We need to fix the broken links by removing the right amount of ../
 # dots from the link destination.
+# Once the link destination is valid again, it can be simplified to
+# remove the dependency on intermediate directory symlinks.
 #
 # It is possible that ARCH_LIB_DIR does not contain the dynamic loader
 # (ld*.so or similar) because it (or the main symlink to it) normally
@@ -126,6 +128,7 @@ copy_toolchain_sysroot = \
                        LINKTARGET=`readlink $$i` ; \
                        NEWLINKTARGET=$${LINKTARGET\#$$relpath} ; \
                        ln -sf $${NEWLINKTARGET} $$i ; \
+                       $(call simplify_symlink,$$i,$(STAGING_DIR)) ; \
                done ; \
        fi ; \
        if [ -e $${ARCH_SYSROOT_DIR}/lib/ld*.so ]; then \