From: Paul Eggleton Date: Mon, 18 Sep 2017 04:54:42 +0000 (+1200) Subject: classes/externalsrc: delete symlinks at start of do_buildclean X-Git-Tag: 2017-10~138 X-Git-Url: https://code.ossystems.io/gitweb?a=commitdiff_plain;h=927b3b05a7f6b85967f7375b1942605fe8d37d0c;p=openembedded-core.git classes/externalsrc: delete symlinks at start of do_buildclean To help users find the work and log directories (especially within the eSDK) we create symlinks to these from the source tree. However during do_buildclean we call "make clean", and some project Makefiles which delete something like "*/*/lib" which will match files underneath the oe-workdir symlink and fail. do_buildclean is called from do_clean which is in turn called by devtool reset by default, and thus devtool reset is blocked. An example of a recipe where this is visible is the openssl-qat recipe in meta-intel. In order to fix this, delete the symlinks at the start of do_buildclean since we shouldn't need them at that point anyway, and thus make clean won't be able to trip over them. Fixes [YOCTO #11036]. Signed-off-by: Paul Eggleton Signed-off-by: Ross Burton --- diff --git a/meta/classes/externalsrc.bbclass b/meta/classes/externalsrc.bbclass index 8141f25e04..08e6e47901 100644 --- a/meta/classes/externalsrc.bbclass +++ b/meta/classes/externalsrc.bbclass @@ -172,6 +172,7 @@ do_buildclean[nostamp] = "1" do_buildclean[doc] = "Call 'make clean' or equivalent in ${B}" externalsrc_do_buildclean() { if [ -e Makefile -o -e makefile -o -e GNUmakefile ]; then + rm -f ${@' '.join([x.split(':')[0] for x in (d.getVar('EXTERNALSRC_SYMLINKS') or '').split()])} oe_runmake clean || die "make failed" else bbnote "nothing to do - no makefile found"