kbuild: improve check-symlink
o if include/asm point to a nonexisting directory remove the asm symlink
o if include/asm is a directory error out
This fixes a situation where one could be left with a symlink
to asm-x86 but that directory no longer exist and thus the build
would error out.
include/asm may be a directory if the kernel tree has been copied
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
diff --git a/Makefile b/Makefile
index a7f2068..ffac712 100644
--- a/Makefile
+++ b/Makefile
@@ -961,6 +961,7 @@
# The asm symlink changes when $(ARCH) changes.
# Detect this and ask user to run make mrproper
+# If asm is a stale symlink (point to dir that does not exist) remove it
define check-symlink
set -e; \
if [ -L include/asm ]; then \
@@ -970,6 +971,10 @@
echo " set ARCH or save .config and run 'make mrproper' to fix it"; \
exit 1; \
fi; \
+ test -e $$asmlink || rm include/asm; \
+ elif [ -d include/asm ]; then \
+ echo "ERROR: $@ is a directory but a symlink was expected";\
+ exit 1; \
fi
endef