[Buildroot] [PATCHv2] package/dash: don't build in paralle
Arnout Vandecappelle
arnout at mind.be
Wed May 30 16:56:53 UTC 2018
On 29-05-18 19:42, Yann E. MORIN wrote:
> dash has races in its Makefile, but upstream is not too keen in fixing
> those, and just suggests that dash not be built in parallel:
>
> https://www.mail-archive.com/dash@vger.kernel.org/msg01675.html
Herbert's comment was:
Until there is a good solution to rules with multiple targets,
perhaps we should just disable parallel building in dash.
Fortunately, there is a good solution: pattern rules. From the info page:
Pattern rules may have more than one target. Unlike normal rules,
this does not act as many different rules with the same prerequisites
and recipe. If a pattern rule has multiple targets, 'make' knows that
the rule's recipe is responsible for making all of the targets. The
recipe is executed only once to make all the targets.
So a pattern rule like:
%token.h %token_vars.h: %mktokens
$(SHELL) $^
should do the trick.
I think this is a GNU make extension, however. I don't know if that's
acceptable for upstream. I can imagine that they want to support bsdmake.
Regards,
Arnout
>
> Fixes:
> http://autobuild.buildroot.org/results/793/7934c815a3009af688c2f1183e67dfe542c9a009/
> http://autobuild.buildroot.org/results/fc4/fc4e4ab47455ac47dd4a3a60083cec2848e74dbb/
> http://autobuild.buildroot.org/results/6bf/6bfdd44ea5d55a6ca3ef92254eab18c7c0416b7b/
> [...]
>
> Reported-by: Baruch Siach <baruch at tkos.co.il>
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
> Cc: Baruch Siach <baruch at tkos.co.il>
>
> ---
> Changes v1 -> v2:
> - disable parallel build instead of trying to fix it, since upstream
> suggest so.
> ---
> package/dash/dash.mk | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/package/dash/dash.mk b/package/dash/dash.mk
> index 9a26ebb642..80f0ea8cf3 100644
> --- a/package/dash/dash.mk
> +++ b/package/dash/dash.mk
> @@ -9,6 +9,9 @@ DASH_SITE = http://gondor.apana.org.au/~herbert/dash/files
> DASH_LICENSE = BSD-3-Clause, GPL-2.0+ (mksignames.c)
> DASH_LICENSE_FILES = COPYING
>
> +# dash does not build in parallel
> +DASH_MAKE = $(MAKE1)
> +
> ifeq ($(BR2_PACKAGE_LIBEDIT),y)
> DASH_DEPENDENCIES += libedit host-pkgconf
> DASH_CONF_OPTS += --with-libedit
>
--
Arnout Vandecappelle arnout at mind be
Senior Embedded Software Architect +32-16-286500
Essensium/Mind http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint: 7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
More information about the buildroot
mailing list