mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-07-27 20:07:25 +00:00
xmlrpc-c: Fix race condition triggered during symlink creation
This should fix race condition sometime seen in highly parallell builds | rm -f libxmlrpc_util.so.4 | rm -f libxmlrpc_util.so.4 | ln -s libxmlrpc_util.so.4.60 libxmlrpc_util.so.4 | ln -s libxmlrpc_util.so.4.60 libxmlrpc_util.so.4 | rm -f libxmlrpc_util.so | ln: failed to create symbolic link 'libxmlrpc_util.so.4': File exists | make[2]: *** [/home/kraj01/yoe/build/tmp/work/core2-64-yoe-linux/xmlrpc-c/1.60.03/git/stable/unix-common.mk:72: libxmlrpc_util.so.4] Error 1 Signed-off-by: Khem Raj <raj.khem@gmail.com> Cc: Martin Jansa <Martin.Jansa@gmail.com>
This commit is contained in:
+46
@@ -0,0 +1,46 @@
|
|||||||
|
From c9bd05e8f0ad805b81625cfa717d06071cfd9b48 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Khem Raj <raj.khem@gmail.com>
|
||||||
|
Date: Wed, 16 Oct 2024 22:52:38 -0700
|
||||||
|
Subject: [PATCH] unix-common.mk: Ensuring Sequential Execution of rm and ln commands
|
||||||
|
|
||||||
|
With high parallel execution, it results in race condition where
|
||||||
|
its trying to create symlink while the original symlink while rm is
|
||||||
|
not done deleting the existing file yet.
|
||||||
|
|
||||||
|
force sequential execution by adding dependencies between the steps
|
||||||
|
or combining them into a single shell command
|
||||||
|
|
||||||
|
Here, && ensures that the ln -s command only runs after rm -f target
|
||||||
|
successfully completes.
|
||||||
|
|
||||||
|
Similar error reported here [1]
|
||||||
|
|
||||||
|
[1] https://bugs.gentoo.org/932835
|
||||||
|
|
||||||
|
Upstream-Status: Pending
|
||||||
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||||
|
---
|
||||||
|
unix-common.mk | 6 ++----
|
||||||
|
1 file changed, 2 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/unix-common.mk b/unix-common.mk
|
||||||
|
index 6954faf5..983c48cd 100644
|
||||||
|
--- a/unix-common.mk
|
||||||
|
+++ b/unix-common.mk
|
||||||
|
@@ -62,14 +62,12 @@ SHLIB_CMD = $(CCLD) $(LADD) $(LDFLAGS_SHLIB) -o $@ $^
|
||||||
|
SHLIB_LE_TARGETS = $(call shliblefn, $(SHARED_LIBS_TO_BUILD))
|
||||||
|
|
||||||
|
$(SHLIB_LE_TARGETS):%:%.$(MAJ)
|
||||||
|
- rm -f $@
|
||||||
|
- $(LN_S) $< $@
|
||||||
|
+ rm -f $@ && $(LN_S) $< $@
|
||||||
|
|
||||||
|
SONAME_TARGETS = $(SHLIB_LE_TARGETS:%=%.$(MAJ))
|
||||||
|
|
||||||
|
$(SONAME_TARGETS):%:%.$(MIN)
|
||||||
|
- rm -f $@
|
||||||
|
- $(LN_S) $< $@
|
||||||
|
+ rm -f $@ && $(LN_S) $< $@
|
||||||
|
|
||||||
|
.PHONY: $(SHLIB_INSTALL_TARGETS)
|
||||||
|
.PHONY: install-shared-libraries
|
||||||
@@ -7,6 +7,7 @@ LIC_FILES_CHKSUM = "file://doc/COPYING;md5=aefbf81ba0750f02176b6f86752ea951"
|
|||||||
|
|
||||||
SRC_URI = "git://github.com/mirror/xmlrpc-c.git;branch=master;protocol=https \
|
SRC_URI = "git://github.com/mirror/xmlrpc-c.git;branch=master;protocol=https \
|
||||||
file://0001-test-cpp-server_abyss-Fix-build-with-clang-libc.patch \
|
file://0001-test-cpp-server_abyss-Fix-build-with-clang-libc.patch \
|
||||||
|
file://0001-unix-common.mk-Ensuring-Sequential-Execution-of-rm-a.patch \
|
||||||
"
|
"
|
||||||
# one more commit after Release 1.60.03 in the Stable series
|
# one more commit after Release 1.60.03 in the Stable series
|
||||||
SRCREV = "a823b0bb5cf0a4dbd34f929cbfdfb0439c5d9b0e"
|
SRCREV = "a823b0bb5cf0a4dbd34f929cbfdfb0439c5d9b0e"
|
||||||
|
|||||||
Reference in New Issue
Block a user