It turns out that the symlink may exists already by the time the
toolchain Makefile gets an opportunity to run.  While we asked to
replace the target, ln doesn't do so until after dereferencing the
existing symlink.  This results in an unintended symlink that refers to
itself.  Instead, create the link without dereferencing any
symlinks by using the -n option.
---

While this is the only instance that's actually causing a bad link to be
created, there are a couple of other spots that intend to symlink
directories that aren't using the -n option.  Should those be updated too?

 toolchain/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/toolchain/Makefile b/toolchain/Makefile
index bdfb29e..763381a 100644
--- a/toolchain/Makefile
+++ b/toolchain/Makefile
@@ -63,7 +63,7 @@ ifneq ($(ARCH),)
                $(if $(QUIET),,set -x;) \
                mkdir -p "$$dir"; \
                cd "$$dir"; \
-               ln -sf lib lib64; \
+               ln -nsf lib lib64; \
                mkdir -p stamp lib usr/include usr/lib ; \
        ); done
        @grep GCC_VERSION $@ >/dev/null 2>&1 || $(INSTALL_DATA) 
$(TOPDIR)/toolchain/info.mk $@
-- 
1.8.1.1

_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to