toolchain/toolchain-external: handle case of dangling symlink
copy_toolchain_lib_root was not handling the case of "readlink" returning nothing, which will happen if the symlink it is trying to resolve does not point to a valid file on the build host. This shouldn't happen, but it can. The end result of this situation would be an endless loop of error messages that would only end if aborted manually. [...] cp: missing destination file operand after '/local/users/mmayer/buildroot/output/arm64/target//' Try 'cp --help' for more information. readlink: missing operand Try 'readlink --help' for more information. basename: missing operand Try 'basename --help' for more information. dirname: missing operand Try 'dirname --help' for more information. ^C make[1]: *** [package/pkg-generic.mk:384: Instead of looping endlessly without explanation, let's abort and inform the user that something seems amiss with their setup. Signed-off-by: Markus Mayer <mmayer@broadcom.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
parent
d5599cb1b4
commit
b11ed25c4a
@ -19,7 +19,12 @@ copy_toolchain_lib_root = \
|
||||
rm -fr $(TARGET_DIR)/$${DESTDIR}/$${LIBNAME}; \
|
||||
if test -h $${LIBPATH} ; then \
|
||||
cp -d $${LIBPATH} $(TARGET_DIR)/$${DESTDIR}/$${LIBNAME}; \
|
||||
OLD_LIBPATH="$${LIBPATH}"; \
|
||||
LIBPATH="`readlink -f $${LIBPATH}`"; \
|
||||
if [ "$${LIBPATH}" = "" ]; then \
|
||||
echo "LIBPATH empty after trying to resolve symlink $${OLD_LIBPATH}" 1>&2; \
|
||||
exit 1; \
|
||||
fi; \
|
||||
elif test -f $${LIBPATH}; then \
|
||||
$(INSTALL) -D -m0755 $${LIBPATH} $(TARGET_DIR)/$${DESTDIR}/$${LIBNAME}; \
|
||||
break ; \
|
||||
|
Loading…
Reference in New Issue
Block a user