aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Yann E. MORIN <yann.morin.1998@free.fr>2016-08-14 16:13:33 +0200
committerGravatar Thomas Petazzoni <thomas.petazzoni@free-electrons.com>2016-08-19 11:48:46 +0200
commit99067c1598c475399788a7fa1cad55d7da816594 (patch)
treed1fd4a0961222a5cf820e104cec46630b10e8d8b
parent3ab6c65b4e239e94e192f3a3227d7bec83e829a0 (diff)
downloadbuildroot-99067c1598c475399788a7fa1cad55d7da816594.tar.gz
buildroot-99067c1598c475399788a7fa1cad55d7da816594.tar.bz2
package/ustr: don't run ldconfig
The ustr Makefile.in (as introduced by the Debian patch we apply), is probably not parallel-safe: 402 install: install-opt install-dbg 403 404 install-opt: install-dirs install-opt-lib install-common 405 406 install-dbg: install-dirs install-dbg-lib install-common 407 408 install-opt-lib install-dbg-lib install-common: install-dirs [--SNIP--] 424 install-opt-lib: $(OPT_LIB_STATIC) $(OPT_LIB_SHARED) ustr.pc 425 @echo Installing files 426 install -m 644 -t $(DESTDIR)$(libdir) $(OPT_LIB_STATIC) 427 install -m 755 -t $(DESTDIR)$(libdir) $(OPT_LIB_SHARED) 428 -rm -f $(DESTDIR)$(libdir)/$(OPT_LIB_SHARED_NAME) 429 ln -s $(OPT_LIB_SHARED) $(DESTDIR)$(libdir)/$(OPT_LIB_SHARED_NAME) 430 -rm -f $(DESTDIR)$(libdir)/$(OPT_LIB_SHAREDEV) 431 ln -s $(OPT_LIB_SHARED_NAME) $(DESTDIR)$(libdir)/$(OPT_LIB_SHAREDEV) 432 -rm -f $(DESTDIR)$(libdir)/$(OPT_LIB_SHAREDEV_BSO) 433 ln -s $(OPT_LIB_SHARED_NAME) $(DESTDIR)$(libdir)/$(OPT_LIB_SHAREDEV_BSO) 434 $(LDCONFIG) -n $(DESTDIR)$(libdir) 435 install -pm 644 -t $(DESTDIR)$(libdir)/pkgconfig ustr.pc 436 437 install-dbg-lib: $(DBG_LIB_STATIC) $(DBG_LIB_SHARED) ustr-debug.pc 438 @echo Installing files 439 install -m 644 -t $(DESTDIR)$(libdir) $(DBG_LIB_STATIC) 440 install -m 755 -t $(DESTDIR)$(libdir) $(DBG_LIB_SHARED) 441 -rm -f $(DESTDIR)$(libdir)/$(DBG_LIB_SHARED_NAME) 442 ln -s $(DBG_LIB_SHARED) $(DESTDIR)$(libdir)/$(DBG_LIB_SHARED_NAME) 443 -rm -f $(DESTDIR)$(libdir)/$(DBG_LIB_SHAREDEV) 444 ln -s $(DBG_LIB_SHARED_NAME) $(DESTDIR)$(libdir)/$(DBG_LIB_SHAREDEV) 445 -rm -f $(DESTDIR)$(libdir)/$(DBG_LIB_SHAREDEV_BSO) 446 ln -s $(DBG_LIB_SHARED_NAME) $(DESTDIR)$(libdir)/$(DBG_LIB_SHAREDEV_BSO) 447 $(LDCONFIG) -n $(DESTDIR)$(libdir) 448 install -pm 644 -t $(DESTDIR)$(libdir)/pkgconfig ustr-debug.pc As Thomas already noticed [0], the two interesting rules above are not dependent one on the other, so can be run in parallel. So, while one is doing its rm'n'ln dance, the other can be running an ldconfig, which has the side effect of creating the missing symlinks. So, we can see this sequence: install-opt-lib: install-dbg-lib: ldconfig rm -f .../$(OPT_LIB_SHAREDEV) \ `-> symlink(..., .../$(OPT_LIB_SHAREDEV)) ln -s .../$(OPT_LIB_SHAREDEV) In this case, ldconfig uses the opportunity-window between the rm and the ln to create the link; so the ln does not work, as the target already exist. We fix that by not running ldconfig at all in Buildroot, we just pass LDCONFIG=/bin/true . Fixes (hopefully, since I was not even able to reproduce the failure): http://autobuild.buildroot.org/?reason=ustr-1.0.4 http://autobuild.buildroot.org/results/936/93626f55625ed7900c147bfd79ff7802366639b1/ http://autobuild.buildroot.org/results/18b/18b6ec537da9e9055f58a8649c0719dc64df1bcf/ [...] [0] http://lists.busybox.net/pipermail/buildroot/2016-May/161923.html Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Clayton Shotwell <clayton.shotwell@rockwellcollins.com> Cc: Arnout Vandecappelle <arnout@mind.be> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-rw-r--r--package/ustr/ustr.mk2
1 files changed, 2 insertions, 0 deletions
diff --git a/package/ustr/ustr.mk b/package/ustr/ustr.mk
index 174f05565a..1d629ab846 100644
--- a/package/ustr/ustr.mk
+++ b/package/ustr/ustr.mk
@@ -23,5 +23,7 @@ USTR_INSTALL_STAGING = YES
# 'all-shared' to the default 'all' rule.
USTR_MAKE_OPTS = all all-shared
+USTR_MAKE_OPTS += LDCONFIG=/bin/true
+
$(eval $(autotools-package))
$(eval $(host-autotools-package))