From 1c28cf571af169942c423e967b51913c5244d6c3 Mon Sep 17 00:00:00 2001 From: Mark Hatle Date: Tue, 21 Jan 2020 18:27:02 -0600 Subject: libgcc.inc: Fix an issue w/ a recursive symlink 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. (From OE-Core rev: ef28e5a74d939acc98d6e8e9a0efbeb143b8025f) Signed-off-by: Mark Hatle Signed-off-by: Mark Hatle Signed-off-by: Richard Purdie --- meta/recipes-devtools/gcc/libgcc.inc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'meta/recipes-devtools/gcc') 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 } -- cgit v1.2.3-54-g00ecf