diff mbox series

make do_symlink_kernelsrc reentrant when S is overriden

Message ID 20231216132355.182564-1-ecordonnier@snap.com
State New
Headers show
Series make do_symlink_kernelsrc reentrant when S is overriden | expand

Commit Message

Etienne Cordonnier Dec. 16, 2023, 1:23 p.m. UTC
From: Etienne Cordonnier <ecordonnier@snap.com>

The function do_symlink_kernsrc is not reentrant in the case where S is defined
to a non-default value. This causes build-failures e.g. when building linux-yocto, then updating
poky to a commit which modifies kernel.bbclass, and then building linux-yocto again.

Bugzilla: https://bugzilla.yoctoproject.org/show_bug.cgi?id=15325

Signed-off-by: Etienne Cordonnier <ecordonnier@snap.com>
---
 meta/classes-recipe/kernel.bbclass | 5 +++++
 1 file changed, 5 insertions(+)
diff mbox series

Patch

diff --git a/meta/classes-recipe/kernel.bbclass b/meta/classes-recipe/kernel.bbclass
index 9ff37f5c38..130bedd901 100644
--- a/meta/classes-recipe/kernel.bbclass
+++ b/meta/classes-recipe/kernel.bbclass
@@ -194,6 +194,11 @@  python do_symlink_kernsrc () {
             os.symlink(s, kernsrc)
         else:
             import shutil
+            if os.path.islink(s):
+                # this happens for instance when a poky update forces symlink_kernsrc to run again
+                # after s was already moved to kernsrc
+                bb.warn("%s is already a symlink! Not symlinking kernel sources" % s)
+                return 0
             shutil.move(s, kernsrc)
             os.symlink(kernsrc, s)
 }