[OE-core] [PATCH 2/2] libgcc.inc: Fix an issue w/ a recursive symlink
Mark Hatle
mark.hatle at kernel.crashing.org
Wed Jan 22 00:27:02 UTC 2020
From: Mark Hatle <mark.hatle at xilinx.com>
If the OS is not Linux, the code could end up generating a recursive symlink.
This can happen because the same symlink can be created twice in a row. If this
happenes, the second symlink becomes a link to itself within the directory
pointed to by the original link.
In order to prevent this, verify that the destination does not already exist.
Signed-off-by: Mark Hatle <mark.hatle at xilinx.com>
Signed-off-by: Mark Hatle <mark.hatle at kernel.crashing.org>
---
meta/recipes-devtools/gcc/libgcc.inc | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/meta/recipes-devtools/gcc/libgcc.inc b/meta/recipes-devtools/gcc/libgcc.inc
index e008d14f36..6d48ec9809 100644
--- a/meta/recipes-devtools/gcc/libgcc.inc
+++ b/meta/recipes-devtools/gcc/libgcc.inc
@@ -9,14 +9,18 @@ do_install_append_class-target () {
"linux-musleabi") extra_target_os="linux-gnueabi";;
*) extra_target_os="linux";;
esac
- ln -s ${TARGET_SYS} ${D}${libdir}/${TARGET_ARCH}${TARGET_VENDOR}-$extra_target_os
+ if [ ! -e ${D}${libdir}/${TARGET_ARCH}${TARGET_VENDOR}-$extra_target_os ]; then
+ ln -s ${TARGET_SYS} ${D}${libdir}/${TARGET_ARCH}${TARGET_VENDOR}-$extra_target_os
+ fi
fi
if [ -n "${@ bb.utils.contains('TUNE_CCARGS_MFLOAT', 'hard', 'hf', '', d)}" ]; then
case "${TARGET_OS}" in
"linux-musleabi") extra_target_os="linux-musleabihf";;
"linux-gnueabi") extra_target_os="linux-gnueabihf";;
esac
- ln -s ${TARGET_SYS} ${D}${libdir}/${TARGET_ARCH}${TARGET_VENDOR}-$extra_target_os
+ if [ ! -e ${D}${libdir}/${TARGET_ARCH}${TARGET_VENDOR}-$extra_target_os ]; then
+ ln -s ${TARGET_SYS} ${D}${libdir}/${TARGET_ARCH}${TARGET_VENDOR}-$extra_target_os
+ fi
fi
}
--
2.17.1
More information about the Openembedded-core
mailing list