summaryrefslogtreecommitdiffstats
path: root/meta/classes
diff options
context:
space:
mode:
authorMatthias Schiffer <matthias.schiffer@ew.tq-group.com>2018-11-06 09:56:23 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-11-09 15:27:34 +0000
commitf4de5d85b8929d56136fce1d6cb9b9b51e8172b4 (patch)
tree8d564498a8302f6b4a1264fb35668cd5dfa27950 /meta/classes
parentb9feb4e46b8a45910ba7002a431b137454f05909 (diff)
downloadpoky-f4de5d85b8929d56136fce1d6cb9b9b51e8172b4.tar.gz
base.bbclass: avoid 'find -ignore_readdir_race -delete'
Due to a bug in find [1], -ignore_readdir_race does not work correctly with -delete. This can lead to spurious build failures when files disappear while such a command is running; specifically this was seen in the case of do_configure and do_populate_lic running concurrently for packages with ${B} == ${WORKDIR}: find: '.../sstate-build-populate_lic': No such file or directory While the issue is fixed in the findutils git master, the find command of the host system is called here, so we can't ensure that the used version contains the fix. Many common distros have not updated to a recent enough findutils version yet (Ubuntu 18.10 contains the fix, while 18.04 is still affected). Work around the issue by passing the output of find to 'rm -f' instead of using -delete. [1] https://savannah.gnu.org/bugs/?52981 (From OE-Core rev: 8079e2d62e23f7c274f46185e6dad64fa95394c1) Signed-off-by: Matthias Schiffer <matthias.schiffer@ew.tq-group.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes')
-rw-r--r--meta/classes/base.bbclass4
1 files changed, 3 insertions, 1 deletions
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
index 57b69492ce..bc9b236b84 100644
--- a/meta/classes/base.bbclass
+++ b/meta/classes/base.bbclass
@@ -309,7 +309,9 @@ base_do_configure() {
309 if [ "${CLEANBROKEN}" != "1" -a \( -e Makefile -o -e makefile -o -e GNUmakefile \) ]; then 309 if [ "${CLEANBROKEN}" != "1" -a \( -e Makefile -o -e makefile -o -e GNUmakefile \) ]; then
310 oe_runmake clean 310 oe_runmake clean
311 fi 311 fi
312 find ${B} -ignore_readdir_race -name \*.la -delete 312 # -ignore_readdir_race does not work correctly with -delete;
313 # use xargs to avoid spurious build failures
314 find ${B} -ignore_readdir_race -name \*.la -type f -print0 | xargs -0 rm -f
313 fi 315 fi
314 fi 316 fi
315 if [ -n "${CONFIGURESTAMPFILE}" ]; then 317 if [ -n "${CONFIGURESTAMPFILE}" ]; then