From: Chen Qi Date: Wed, 25 Dec 2019 07:01:13 +0000 (+0800) Subject: base.bbclass: clean up dead symlink when handling hosttools X-Git-Tag: uninative-2.8~737 X-Git-Url: https://code.ossystems.io/gitweb?a=commitdiff_plain;h=b03577cf85784fc052b89083054d911816f8c6e1;p=openembedded-core.git base.bbclass: clean up dead symlink when handling hosttools When some hosttool is a dead symlink, bitbake any recipe will fail with error like below. FileExistsError: [Errno 17] File exists: '/usr/bin/chrpath' -> '/path/to/builddir/tmp-glibc/hosttools/chrpath' So we remove dead symlink under hostools/ directory to avoid such error. Signed-off-by: Chen Qi Signed-off-by: Richard Purdie --- diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index 145daea3ec..5e5cf66322 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass @@ -127,6 +127,9 @@ def setup_hosttools_dir(dest, toolsvar, d, fatal=True): for tool in tools: desttool = os.path.join(dest, tool) if not os.path.exists(desttool): + # clean up dead symlink + if os.path.islink(desttool): + os.unlink(desttool) srctool = bb.utils.which(path, tool, executable=True) # gcc/g++ may link to ccache on some hosts, e.g., # /usr/local/bin/ccache/gcc -> /usr/bin/ccache, then which(gcc)