diff options
| author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2021-01-19 12:27:23 +0000 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2021-01-20 22:46:17 +0000 |
| commit | 21a045090db604e583c112964ba17c47ca9288fb (patch) | |
| tree | 402cca045e2aa86caaf63d44898686ec82ca368c | |
| parent | f2467c692531eb0d13382f0308187423dadf4c7e (diff) | |
| download | poky-21a045090db604e583c112964ba17c47ca9288fb.tar.gz | |
bash: Add makefile race workaround
There is a race between two make invocations in 5.1. It has been
reported upstream, in the meantime add a work around patch (which
upstream may yet even apply). The autobuilder found two instances
of this race in a single build.
(From OE-Core rev: 62b8580cea567f2d9b7a900fc4302d6bc5a785b2)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | meta/recipes-extended/bash/bash/makerace.patch | 52 | ||||
| -rw-r--r-- | meta/recipes-extended/bash/bash_5.1.bb | 1 |
2 files changed, 53 insertions, 0 deletions
diff --git a/meta/recipes-extended/bash/bash/makerace.patch b/meta/recipes-extended/bash/bash/makerace.patch new file mode 100644 index 0000000000..9bd7c280fe --- /dev/null +++ b/meta/recipes-extended/bash/bash/makerace.patch | |||
| @@ -0,0 +1,52 @@ | |||
| 1 | We're seeing pipesize.h being created in parallel: | ||
| 2 | |||
| 3 | /bin/sh ../../bash-5.1/builtins/psize.sh > pipesize.h | ||
| 4 | /bin/sh ../../bash-5.1/builtins/psize.sh > pipesize.h | ||
| 5 | |||
| 6 | ./mkbuiltins -D ../../bash-5.1/builtins ../../bash-5.1/builtins/ulimit.def | ||
| 7 | x86_64-pokysdk-linux-gcc --sysroot=/home/pokybuild/yocto-worker/multilib/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-bash/5.1-r0/recipe-sysroot -c -DHAVE_CONFIG_H -DSHELL -I. -I.. -I../../bash-5.1 -I../../bash-5.1/include -I../../bash-5.1/lib -I../../bash-5.1/builtins -O2 -pipe -fmacro-prefix-map=/home/pokybuild/yocto-worker/multilib/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-bash/5.1-r0=/usr/src/debug/nativesdk-bash/5.1-r0 -fdebug-prefix-map=/home/pokybuild/yocto-worker/multilib/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-bash/5.1-r0=/usr/src/debug/nativesdk-bash/5.1-r0 -fdebug-prefix-map=/home/pokybuild/yocto-worker/multilib/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-bash/5.1-r0/recipe-sysroot= -fdebug-prefix-map=/home/pokybuild/yocto-worker/multilib/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-bash/5.1-r0/recipe-sysroot-native= ulimit.c || ( rm -f ulimit.c ; exit 1 ) | ||
| 8 | make[1]: Leaving directory '/home/pokybuild/yocto-worker/multilib/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-bash/5.1-r0/build/builtins' | ||
| 9 | rm -f redir.o | ||
| 10 | x86_64-pokysdk-linux-gcc --sysroot=/home/pokybuild/yocto-worker/multilib/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-bash/5.1-r0/recipe-sysroot -DPROGRAM='"bash"' -DCONF_HOSTTYPE='"x86_64"' -DCONF_OSTYPE='"linux-gnu"' -DCONF_MACHTYPE='"x86_64-pokysdk-linux-gnu"' -DCONF_VENDOR='"pokysdk"' -DLOCALEDIR='"/opt/poky/3.2+snapshot/sysroots/x86_64-pokysdk-linux/usr/share/locale"' -DPACKAGE='"bash"' -DSHELL -DHAVE_CONFIG_H -I. -I../bash-5.1 -I../bash-5.1/include -I../bash-5.1/lib -O2 -pipe -fmacro-prefix-map=/home/pokybuild/yocto-worker/multilib/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-bash/5.1-r0=/usr/src/debug/nativesdk-bash/5.1-r0 -fdebug-prefix-map=/home/pokybuild/yocto-worker/multilib/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-bash/5.1-r0=/usr/src/debug/nativesdk-bash/5.1-r0 -fdebug-prefix-map=/home/pokybuild/yocto-worker/multilib/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-bash/5.1-r0/recipe-sysroot= -fdebug-prefix-map=/home/pokybuild/yocto-worker/multilib/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-bash/5.1-r0/recipe-sysroot-native= -c ../bash-5.1/redir.c | ||
| 11 | In file included from ../../bash-5.1/builtins/../../bash-5.1/builtins/ulimit.def:95: | ||
| 12 | pipesize.h:9:5: error: expected '=', ',', ';', 'asm' or '__attribute__' before '-' token | ||
| 13 | 9 | bash-5.1/builtins/psize.sh: 37: ../../bash-5.1/builtins/psize.sh: ./psize.aux: Text file busy | ||
| 14 | | ^ | ||
| 15 | make[1]: *** [Makefile:119: ulimit.o] Error 1 | ||
| 16 | make[1]: Leaving directory '/home/pokybuild/yocto-worker/multilib/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-bash/5.1-r0/build/builtins' | ||
| 17 | make: *** [Makefile:737: builtins/libbuiltins.a] Error 1 | ||
| 18 | make: *** Waiting for unfinished jobs.... | ||
| 19 | In file included from ../bash-5.1/redir.c:61: | ||
| 20 | ./builtins/pipesize.h:9:5: error: expected '=', ',', ';', 'asm' or '__attribute__' before '-' token | ||
| 21 | 9 | bash-5.1/builtins/psize.sh: 37: ../../bash-5.1/builtins/psize.sh: ./psize.aux: Text file busy | ||
| 22 | | ^ | ||
| 23 | make: *** [Makefile:101: redir.o] Error 1 | ||
| 24 | WARNING: exit code 1 from a shell command. | ||
| 25 | |||
| 26 | which happens since builtins/ulimit.o depends on pipesize.h as well as a top | ||
| 27 | level dependency. This means: | ||
| 28 | |||
| 29 | @(cd $(DEFDIR) && $(MAKE) $(MFLAGS) pipesize.h ) || exit 1 | ||
| 30 | |||
| 31 | races with: | ||
| 32 | |||
| 33 | @(cd $(DEFDIR) && $(MAKE) $(MFLAGS) DEBUG=${DEBUG} targets ) || exit 1 | ||
| 34 | |||
| 35 | Hack around this by forcing BUILTINS_LIBRARY onto pipesize.h as a dependency. | ||
| 36 | |||
| 37 | Upstream-Status: Submitted [https://lists.gnu.org/archive/html/bug-bash/2021-01/msg00152.html] | ||
| 38 | Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> | ||
| 39 | |||
| 40 | Index: bash-5.1/Makefile.in | ||
| 41 | =================================================================== | ||
| 42 | --- bash-5.1.orig/Makefile.in | ||
| 43 | +++ bash-5.1/Makefile.in | ||
| 44 | @@ -746,7 +746,7 @@ ${DEFDIR}/bashgetopt.o: $(BUILTIN_SRCDIR | ||
| 45 | ${DEFDIR}/builtext.h: $(BUILTIN_DEFS) | ||
| 46 | @(cd $(DEFDIR) && $(MAKE) $(MFLAGS) builtext.h ) || exit 1 | ||
| 47 | |||
| 48 | -${DEFDIR}/pipesize.h: | ||
| 49 | +${DEFDIR}/pipesize.h: $(BUILTINS_LIBRARY) | ||
| 50 | @(cd $(DEFDIR) && $(MAKE) $(MFLAGS) pipesize.h ) || exit 1 | ||
| 51 | |||
| 52 | $(SDIR)/man2html$(EXEEXT): ${SUPPORT_SRC}/man2html.c | ||
diff --git a/meta/recipes-extended/bash/bash_5.1.bb b/meta/recipes-extended/bash/bash_5.1.bb index 25b8a7ff73..e5e013b734 100644 --- a/meta/recipes-extended/bash/bash_5.1.bb +++ b/meta/recipes-extended/bash/bash_5.1.bb | |||
| @@ -17,6 +17,7 @@ SRC_URI = "${GNU_MIRROR}/bash/${BP}.tar.gz;name=tarball \ | |||
| 17 | file://run-bash-ptests \ | 17 | file://run-bash-ptests \ |
| 18 | file://fix-run-builtins.patch \ | 18 | file://fix-run-builtins.patch \ |
| 19 | file://use_aclocal.patch \ | 19 | file://use_aclocal.patch \ |
| 20 | file://makerace.patch \ | ||
| 20 | " | 21 | " |
| 21 | 22 | ||
| 22 | SRC_URI[tarball.sha256sum] = "cc012bc860406dcf42f64431bcd3d2fa7560c02915a601aba9cd597a39329baa" | 23 | SRC_URI[tarball.sha256sum] = "cc012bc860406dcf42f64431bcd3d2fa7560c02915a601aba9cd597a39329baa" |
