* [Buildroot] [PATCH 1/1] package/bearssl: disable parallel build @ 2022-10-15 0:58 James Hilliard 2022-10-15 22:14 ` Fabrice Fontaine 2022-10-30 20:29 ` Thomas Petazzoni via buildroot 0 siblings, 2 replies; 13+ messages in thread From: James Hilliard @ 2022-10-15 0:58 UTC (permalink / raw) To: buildroot; +Cc: James Hilliard, Fabrice Fontaine The bearssl package is not compatible with parallel builds. Fixes: - http://autobuild.buildroot.net/results/5e1/5e1b72db206b2d17fa5ce378a70fdc2f3f5bf773 Signed-off-by: James Hilliard <james.hilliard1@gmail.com> --- package/bearssl/bearssl.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/bearssl/bearssl.mk b/package/bearssl/bearssl.mk index ff5f4e87b7..c2a5760af5 100644 --- a/package/bearssl/bearssl.mk +++ b/package/bearssl/bearssl.mk @@ -24,7 +24,7 @@ BEARSSL_TARGETS += lib endif define BEARSSL_BUILD_CMDS - $(TARGET_MAKE_ENV) $(MAKE) $(BEARSSL_MAKE_OPTS) -C $(@D) \ + $(TARGET_MAKE_ENV) $(MAKE1) $(BEARSSL_MAKE_OPTS) -C $(@D) \ $(BEARSSL_TARGETS) endef -- 2.34.1 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/bearssl: disable parallel build 2022-10-15 0:58 [Buildroot] [PATCH 1/1] package/bearssl: disable parallel build James Hilliard @ 2022-10-15 22:14 ` Fabrice Fontaine 2022-10-15 23:21 ` James Hilliard 2022-10-30 20:29 ` Thomas Petazzoni via buildroot 1 sibling, 1 reply; 13+ messages in thread From: Fabrice Fontaine @ 2022-10-15 22:14 UTC (permalink / raw) To: James Hilliard; +Cc: buildroot [-- Attachment #1.1: Type: text/plain, Size: 1179 bytes --] Hi James, Le sam. 15 oct. 2022 à 02:58, James Hilliard <james.hilliard1@gmail.com> a écrit : > The bearssl package is not compatible with parallel builds. > bearssl was building perfectly fine up until now and it seems there are a lot of packages that are affected by parallel build issues (e.g. dmraid, musepack, slang, etc). Did we change something recently on the autobuilders? > > Fixes: > - > http://autobuild.buildroot.net/results/5e1/5e1b72db206b2d17fa5ce378a70fdc2f3f5bf773 > > Signed-off-by: James Hilliard <james.hilliard1@gmail.com> > --- > package/bearssl/bearssl.mk | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/package/bearssl/bearssl.mk b/package/bearssl/bearssl.mk > index ff5f4e87b7..c2a5760af5 100644 > --- a/package/bearssl/bearssl.mk > +++ b/package/bearssl/bearssl.mk > @@ -24,7 +24,7 @@ BEARSSL_TARGETS += lib > endif > > define BEARSSL_BUILD_CMDS > - $(TARGET_MAKE_ENV) $(MAKE) $(BEARSSL_MAKE_OPTS) -C $(@D) \ > + $(TARGET_MAKE_ENV) $(MAKE1) $(BEARSSL_MAKE_OPTS) -C $(@D) \ > $(BEARSSL_TARGETS) > endef > > -- > 2.34.1 > > Best Regards, Fabrice [-- Attachment #1.2: Type: text/html, Size: 2293 bytes --] [-- Attachment #2: Type: text/plain, Size: 150 bytes --] _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/bearssl: disable parallel build 2022-10-15 22:14 ` Fabrice Fontaine @ 2022-10-15 23:21 ` James Hilliard 2022-10-16 7:50 ` Yann E. MORIN 0 siblings, 1 reply; 13+ messages in thread From: James Hilliard @ 2022-10-15 23:21 UTC (permalink / raw) To: Fabrice Fontaine; +Cc: buildroot On Sat, Oct 15, 2022 at 6:14 PM Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote: > > Hi James, > > Le sam. 15 oct. 2022 à 02:58, James Hilliard <james.hilliard1@gmail.com> a écrit : >> >> The bearssl package is not compatible with parallel builds. > > > bearssl was building perfectly fine up until now and it seems there are a lot of packages that are affected by parallel build issues (e.g. dmraid, musepack, slang, etc). Some parallel build bugs don't reproduce reliably due to timing, I made a change to my autobuilders which massively increases the chance of triggering build failures in packages which have dependency graph bugs. This triggers build build failures in -j1 builds which would otherwise only appear when running parallel builds(my autobuilders are generally running with -j1 to make the logs more readable). > Did we change something recently on the autobuilders? Yes, all my autobuilders were recently changed to use make master(will be make version 4.4 once released) with top level --shuffle=random. Details: https://github.com/mirror/make/blob/3e20e376b7aa26fa43f81f23323c717c4cae1bfb/NEWS#L123-L128 https://trofi.github.io/posts/238-new-make-shuffle-mode.html http://trofi.github.io/posts/249-an-update-on-make-shuffle.html Note that MAKE1 is currently broken itself without this when using shuffle mode: https://patchwork.ozlabs.org/project/buildroot/patch/20221015005611.4054933-1-james.hilliard1@gmail.com/ > >> >> >> Fixes: >> - http://autobuild.buildroot.net/results/5e1/5e1b72db206b2d17fa5ce378a70fdc2f3f5bf773 >> >> Signed-off-by: James Hilliard <james.hilliard1@gmail.com> >> --- >> package/bearssl/bearssl.mk | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/package/bearssl/bearssl.mk b/package/bearssl/bearssl.mk >> index ff5f4e87b7..c2a5760af5 100644 >> --- a/package/bearssl/bearssl.mk >> +++ b/package/bearssl/bearssl.mk >> @@ -24,7 +24,7 @@ BEARSSL_TARGETS += lib >> endif >> >> define BEARSSL_BUILD_CMDS >> - $(TARGET_MAKE_ENV) $(MAKE) $(BEARSSL_MAKE_OPTS) -C $(@D) \ >> + $(TARGET_MAKE_ENV) $(MAKE1) $(BEARSSL_MAKE_OPTS) -C $(@D) \ >> $(BEARSSL_TARGETS) >> endef >> >> -- >> 2.34.1 >> > Best Regards, > > Fabrice _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/bearssl: disable parallel build 2022-10-15 23:21 ` James Hilliard @ 2022-10-16 7:50 ` Yann E. MORIN 2022-10-16 15:44 ` James Hilliard 0 siblings, 1 reply; 13+ messages in thread From: Yann E. MORIN @ 2022-10-16 7:50 UTC (permalink / raw) To: James Hilliard; +Cc: Fabrice Fontaine, buildroot James, All, On 2022-10-15 19:21 -0400, James Hilliard spake thusly: > On Sat, Oct 15, 2022 at 6:14 PM Fabrice Fontaine > <fontaine.fabrice@gmail.com> wrote: > > Le sam. 15 oct. 2022 à 02:58, James Hilliard <james.hilliard1@gmail.com> a écrit : > >> The bearssl package is not compatible with parallel builds. > > bearssl was building perfectly fine up until now and it seems there > > are a lot of packages that are affected by parallel build issues > > (e.g. dmraid, musepack, slang, etc). > > Some parallel build bugs don't reproduce reliably due to timing, I made a change > to my autobuilders which massively increases the chance of triggering > build failures > in packages which have dependency graph bugs. This triggers build build failures > in -j1 builds which would otherwise only appear when running parallel builds(my > autobuilders are generally running with -j1 to make the logs more readable). > > > Did we change something recently on the autobuilders? > > Yes, all my autobuilders were recently changed to use make master(will be > make version 4.4 once released) with top level --shuffle=random. By disabling parallel build because you are using ana as yet unreleased version, we remove the parallel build for everyone, which is not very nice at all. Instead, we should really try and fix the packages rather than papering over the issue. Notes: - it *is* interesting to find those bugs; - it is sad that the default mode for --shuffle will be random, not none. Regards, Yann E. MORIN. > Details: > https://github.com/mirror/make/blob/3e20e376b7aa26fa43f81f23323c717c4cae1bfb/NEWS#L123-L128 > https://trofi.github.io/posts/238-new-make-shuffle-mode.html > http://trofi.github.io/posts/249-an-update-on-make-shuffle.html > > Note that MAKE1 is currently broken itself without this when using shuffle mode: > https://patchwork.ozlabs.org/project/buildroot/patch/20221015005611.4054933-1-james.hilliard1@gmail.com/ > > > > >> > >> > >> Fixes: > >> - http://autobuild.buildroot.net/results/5e1/5e1b72db206b2d17fa5ce378a70fdc2f3f5bf773 > >> > >> Signed-off-by: James Hilliard <james.hilliard1@gmail.com> > >> --- > >> package/bearssl/bearssl.mk | 2 +- > >> 1 file changed, 1 insertion(+), 1 deletion(-) > >> > >> diff --git a/package/bearssl/bearssl.mk b/package/bearssl/bearssl.mk > >> index ff5f4e87b7..c2a5760af5 100644 > >> --- a/package/bearssl/bearssl.mk > >> +++ b/package/bearssl/bearssl.mk > >> @@ -24,7 +24,7 @@ BEARSSL_TARGETS += lib > >> endif > >> > >> define BEARSSL_BUILD_CMDS > >> - $(TARGET_MAKE_ENV) $(MAKE) $(BEARSSL_MAKE_OPTS) -C $(@D) \ > >> + $(TARGET_MAKE_ENV) $(MAKE1) $(BEARSSL_MAKE_OPTS) -C $(@D) \ > >> $(BEARSSL_TARGETS) > >> endef > >> > >> -- > >> 2.34.1 > >> > > Best Regards, > > > > Fabrice > _______________________________________________ > buildroot mailing list > buildroot@buildroot.org > https://lists.buildroot.org/mailman/listinfo/buildroot -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/bearssl: disable parallel build 2022-10-16 7:50 ` Yann E. MORIN @ 2022-10-16 15:44 ` James Hilliard 2022-10-16 16:05 ` Yann E. MORIN 0 siblings, 1 reply; 13+ messages in thread From: James Hilliard @ 2022-10-16 15:44 UTC (permalink / raw) To: Yann E. MORIN; +Cc: Fabrice Fontaine, buildroot On Sun, Oct 16, 2022 at 3:51 AM Yann E. MORIN <yann.morin.1998@free.fr> wrote: > > James, All, > > On 2022-10-15 19:21 -0400, James Hilliard spake thusly: > > On Sat, Oct 15, 2022 at 6:14 PM Fabrice Fontaine > > <fontaine.fabrice@gmail.com> wrote: > > > Le sam. 15 oct. 2022 à 02:58, James Hilliard <james.hilliard1@gmail.com> a écrit : > > >> The bearssl package is not compatible with parallel builds. > > > bearssl was building perfectly fine up until now and it seems there > > > are a lot of packages that are affected by parallel build issues > > > (e.g. dmraid, musepack, slang, etc). > > > > Some parallel build bugs don't reproduce reliably due to timing, I made a change > > to my autobuilders which massively increases the chance of triggering > > build failures > > in packages which have dependency graph bugs. This triggers build build failures > > in -j1 builds which would otherwise only appear when running parallel builds(my > > autobuilders are generally running with -j1 to make the logs more readable). > > > > > Did we change something recently on the autobuilders? > > > > Yes, all my autobuilders were recently changed to use make master(will be > > make version 4.4 once released) with top level --shuffle=random. > > By disabling parallel build because you are using ana as yet unreleased > version, we remove the parallel build for everyone, which is not very > nice at all. Failures with shuffle mode indicate that the package is not parallel compatible on existing make releases as well, it just makes those bugs more visible. I'm running shuffle with -j1 because that way it's obvious in the logs where the failure is getting hit, otherwise these bugs tend to be transient and difficult to trace as they otherwise are timing dependent. > > Instead, we should really try and fix the packages rather than papering > over the issue. > > Notes: > - it *is* interesting to find those bugs; > - it is sad that the default mode for --shuffle will be random, not > none. Default is equivalent to none, I modified my autobuilder runner to pass --shuffle=random. > > Regards, > Yann E. MORIN. > > > Details: > > https://github.com/mirror/make/blob/3e20e376b7aa26fa43f81f23323c717c4cae1bfb/NEWS#L123-L128 > > https://trofi.github.io/posts/238-new-make-shuffle-mode.html > > http://trofi.github.io/posts/249-an-update-on-make-shuffle.html > > > > Note that MAKE1 is currently broken itself without this when using shuffle mode: > > https://patchwork.ozlabs.org/project/buildroot/patch/20221015005611.4054933-1-james.hilliard1@gmail.com/ > > > > > > > >> > > >> > > >> Fixes: > > >> - http://autobuild.buildroot.net/results/5e1/5e1b72db206b2d17fa5ce378a70fdc2f3f5bf773 > > >> > > >> Signed-off-by: James Hilliard <james.hilliard1@gmail.com> > > >> --- > > >> package/bearssl/bearssl.mk | 2 +- > > >> 1 file changed, 1 insertion(+), 1 deletion(-) > > >> > > >> diff --git a/package/bearssl/bearssl.mk b/package/bearssl/bearssl.mk > > >> index ff5f4e87b7..c2a5760af5 100644 > > >> --- a/package/bearssl/bearssl.mk > > >> +++ b/package/bearssl/bearssl.mk > > >> @@ -24,7 +24,7 @@ BEARSSL_TARGETS += lib > > >> endif > > >> > > >> define BEARSSL_BUILD_CMDS > > >> - $(TARGET_MAKE_ENV) $(MAKE) $(BEARSSL_MAKE_OPTS) -C $(@D) \ > > >> + $(TARGET_MAKE_ENV) $(MAKE1) $(BEARSSL_MAKE_OPTS) -C $(@D) \ > > >> $(BEARSSL_TARGETS) > > >> endef > > >> > > >> -- > > >> 2.34.1 > > >> > > > Best Regards, > > > > > > Fabrice > > _______________________________________________ > > buildroot mailing list > > buildroot@buildroot.org > > https://lists.buildroot.org/mailman/listinfo/buildroot > > -- > .-----------------.--------------------.------------------.--------------------. > | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | > | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | > | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | > | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | > '------------------------------^-------^------------------^--------------------' _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/bearssl: disable parallel build 2022-10-16 15:44 ` James Hilliard @ 2022-10-16 16:05 ` Yann E. MORIN 2022-10-16 16:45 ` James Hilliard 0 siblings, 1 reply; 13+ messages in thread From: Yann E. MORIN @ 2022-10-16 16:05 UTC (permalink / raw) To: James Hilliard; +Cc: Fabrice Fontaine, Thomas Petazzoni, buildroot James, All, +Thomas, Peter, Arnout On 2022-10-16 11:44 -0400, James Hilliard spake thusly: > On Sun, Oct 16, 2022 at 3:51 AM Yann E. MORIN <yann.morin.1998@free.fr> wrote: > > On 2022-10-15 19:21 -0400, James Hilliard spake thusly: [--SNIP--] > > > Yes, all my autobuilders were recently changed to use make master(will be > > > make version 4.4 once released) with top level --shuffle=random. > > By disabling parallel build because you are using ana as yet unreleased > > version, we remove the parallel build for everyone, which is not very > > nice at all. > Failures with shuffle mode indicate that the package is not parallel compatible > on existing make releases as well, it just makes those bugs more visible. I never said they were not, and I even said (further on) that it *is* interesting to find such bugs. However, the behaviour so far has been ordering of prerequisites (and goals!), and for some packages, that ordering was enough to work in a parallel make. For example, the bearsll parallel issue is caused by the ordering so the mkdir is very early. Yes, it is incorrect, but it happens to always work in practice. And yes it is easy to fix, here's a patch: diff -durN a/mk/mkrules.sh b/mk/mkrules.sh --- a/mk/mkrules.sh 2018-08-14 22:41:54.000000000 +0200 +++ b/mk/mkrules.sh 2022-10-16 17:54:22.282069851 +0200 @@ -531,23 +531,23 @@ (for f in $coresrc ; do b="$(basename "$f" .c)\$O" g="$(escsep "$f")" - printf '\n$(OBJDIR)$P%s: %s $(HEADERSPRIV)\n\t$(CC) $(CFLAGS) $(INCFLAGS) $(CCOUT)$(OBJDIR)$P%s %s\n' "$b" "$g" "$b" "$g" + printf '\n$(OBJDIR)$P%s: $(OBJDIR) %s $(HEADERSPRIV)\n\t$(CC) $(CFLAGS) $(INCFLAGS) $(CCOUT)$(OBJDIR)$P%s %s\n' "$b" "$g" "$b" "$g" done for f in $toolssrc ; do b="$(basename "$f" .c)\$O" g="$(escsep "$f")" - printf '\n$(OBJDIR)$P%s: %s $(HEADERSTOOLS)\n\t$(CC) $(CFLAGS) $(INCFLAGS) $(CCOUT)$(OBJDIR)$P%s %s\n' "$b" "$g" "$b" "$g" + printf '\n$(OBJDIR)$P%s: $(OBJDIR) %s $(HEADERSTOOLS)\n\t$(CC) $(CFLAGS) $(INCFLAGS) $(CCOUT)$(OBJDIR)$P%s %s\n' "$b" "$g" "$b" "$g" done for f in $testcryptosrc $testspeedsrc ; do b="$(basename "$f" .c)\$O" g="$(escsep "$f")" - printf '\n$(OBJDIR)$P%s: %s $(HEADERSPRIV)\n\t$(CC) $(CFLAGS) $(INCFLAGS) $(CCOUT)$(OBJDIR)$P%s %s\n' "$b" "$g" "$b" "$g" + printf '\n$(OBJDIR)$P%s: $(OBJDIR) %s $(HEADERSPRIV)\n\t$(CC) $(CFLAGS) $(INCFLAGS) $(CCOUT)$(OBJDIR)$P%s %s\n' "$b" "$g" "$b" "$g" done for f in $testx509src ; do b="$(basename "$f" .c)\$O" g="$(escsep "$f")" - printf '\n$(OBJDIR)$P%s: %s $(HEADERSPRIV)\n\t$(CC) $(CFLAGS) $(INCFLAGS) -DSRCDIRNAME=".." $(CCOUT)$(OBJDIR)$P%s %s\n' "$b" "$g" "$b" "$g" + printf '\n$(OBJDIR)$P%s: $(OBJDIR) %s $(HEADERSPRIV)\n\t$(CC) $(CFLAGS) $(INCFLAGS) -DSRCDIRNAME=".." $(CCOUT)$(OBJDIR)$P%s %s\n' "$b" "$g" "$b" "$g" done) >> Rules.mk Binary files a/mk/.mkrules.sh.swp and b/mk/.mkrules.sh.swp differ And then adding a CONFIGURE_CMDS that runs mk/mkrules.sh to regenerate the Makefile. > I'm running shuffle with -j1 because that way it's obvious in the logs where the > failure is getting hit, otherwise these bugs tend to be transient and > difficult to > trace as they otherwise are timing dependent. Yes, this is very interesting to find such bugs, but disabling parallel build in packages is not nice when they can be (easily) fixed. > > Notes: > > - it *is* interesting to find those bugs; > > - it is sad that the default mode for --shuffle will be random, not > > none. > Default is equivalent to none, Yeah, I noticed the hard way after having my patch rejected in makem as you may have noticed. :-/ > I modified my autobuilder runner to pass > --shuffle=random. Again, that is very interesting, but please, please, conordinate with the rest of us when you do such changes, because that is very weird, as Fabrice noted, to suddenly get build failures out of the blue when nothing seemed to have otherwise changed. Regards, Yann E. MORIN. -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/bearssl: disable parallel build 2022-10-16 16:05 ` Yann E. MORIN @ 2022-10-16 16:45 ` James Hilliard 2022-10-17 7:16 ` Thomas Petazzoni via buildroot 0 siblings, 1 reply; 13+ messages in thread From: James Hilliard @ 2022-10-16 16:45 UTC (permalink / raw) To: Yann E. MORIN; +Cc: Fabrice Fontaine, Thomas Petazzoni, buildroot On Sun, Oct 16, 2022 at 12:05 PM Yann E. MORIN <yann.morin.1998@free.fr> wrote: > > James, All, > > +Thomas, Peter, Arnout > > On 2022-10-16 11:44 -0400, James Hilliard spake thusly: > > On Sun, Oct 16, 2022 at 3:51 AM Yann E. MORIN <yann.morin.1998@free.fr> wrote: > > > On 2022-10-15 19:21 -0400, James Hilliard spake thusly: > [--SNIP--] > > > > Yes, all my autobuilders were recently changed to use make master(will be > > > > make version 4.4 once released) with top level --shuffle=random. > > > By disabling parallel build because you are using ana as yet unreleased > > > version, we remove the parallel build for everyone, which is not very > > > nice at all. > > Failures with shuffle mode indicate that the package is not parallel compatible > > on existing make releases as well, it just makes those bugs more visible. > > I never said they were not, and I even said (further on) that it *is* > interesting to find such bugs. > > However, the behaviour so far has been ordering of prerequisites (and > goals!), and for some packages, that ordering was enough to work in a > parallel make. > > For example, the bearsll parallel issue is caused by the ordering so > the mkdir is very early. Yes, it is incorrect, but it happens to always > work in practice. And yes it is easy to fix, here's a patch: Yeah, I think a lot of these are bugs that usually don't appear most of the time but may randomly pop up under high load highly parallel conditions. Randomly failing parallel builds has been an issue I've seen pop up a good bit for my project builds so I wanted to try and find a way to make them more visible. > > diff -durN a/mk/mkrules.sh b/mk/mkrules.sh > --- a/mk/mkrules.sh 2018-08-14 22:41:54.000000000 +0200 > +++ b/mk/mkrules.sh 2022-10-16 17:54:22.282069851 +0200 > @@ -531,23 +531,23 @@ > (for f in $coresrc ; do > b="$(basename "$f" .c)\$O" > g="$(escsep "$f")" > - printf '\n$(OBJDIR)$P%s: %s $(HEADERSPRIV)\n\t$(CC) $(CFLAGS) $(INCFLAGS) $(CCOUT)$(OBJDIR)$P%s %s\n' "$b" "$g" "$b" "$g" > + printf '\n$(OBJDIR)$P%s: $(OBJDIR) %s $(HEADERSPRIV)\n\t$(CC) $(CFLAGS) $(INCFLAGS) $(CCOUT)$(OBJDIR)$P%s %s\n' "$b" "$g" "$b" "$g" > done > > for f in $toolssrc ; do > b="$(basename "$f" .c)\$O" > g="$(escsep "$f")" > - printf '\n$(OBJDIR)$P%s: %s $(HEADERSTOOLS)\n\t$(CC) $(CFLAGS) $(INCFLAGS) $(CCOUT)$(OBJDIR)$P%s %s\n' "$b" "$g" "$b" "$g" > + printf '\n$(OBJDIR)$P%s: $(OBJDIR) %s $(HEADERSTOOLS)\n\t$(CC) $(CFLAGS) $(INCFLAGS) $(CCOUT)$(OBJDIR)$P%s %s\n' "$b" "$g" "$b" "$g" > done > > for f in $testcryptosrc $testspeedsrc ; do > b="$(basename "$f" .c)\$O" > g="$(escsep "$f")" > - printf '\n$(OBJDIR)$P%s: %s $(HEADERSPRIV)\n\t$(CC) $(CFLAGS) $(INCFLAGS) $(CCOUT)$(OBJDIR)$P%s %s\n' "$b" "$g" "$b" "$g" > + printf '\n$(OBJDIR)$P%s: $(OBJDIR) %s $(HEADERSPRIV)\n\t$(CC) $(CFLAGS) $(INCFLAGS) $(CCOUT)$(OBJDIR)$P%s %s\n' "$b" "$g" "$b" "$g" > done > > for f in $testx509src ; do > b="$(basename "$f" .c)\$O" > g="$(escsep "$f")" > - printf '\n$(OBJDIR)$P%s: %s $(HEADERSPRIV)\n\t$(CC) $(CFLAGS) $(INCFLAGS) -DSRCDIRNAME=".." $(CCOUT)$(OBJDIR)$P%s %s\n' "$b" "$g" "$b" "$g" > + printf '\n$(OBJDIR)$P%s: $(OBJDIR) %s $(HEADERSPRIV)\n\t$(CC) $(CFLAGS) $(INCFLAGS) -DSRCDIRNAME=".." $(CCOUT)$(OBJDIR)$P%s %s\n' "$b" "$g" "$b" "$g" > done) >> Rules.mk > Binary files a/mk/.mkrules.sh.swp and b/mk/.mkrules.sh.swp differ > > And then adding a CONFIGURE_CMDS that runs mk/mkrules.sh to regenerate > the Makefile. > > > I'm running shuffle with -j1 because that way it's obvious in the logs where the > > failure is getting hit, otherwise these bugs tend to be transient and > > difficult to > > trace as they otherwise are timing dependent. > > Yes, this is very interesting to find such bugs, but disabling parallel > build in packages is not nice when they can be (easily) fixed. Yeah, I hadn't investigated the root cause in detail as bearssl didn't appear to be very widely used. At least with per-package directories disabling parallel build for an individual package shouldn't meaningfully slow down the build in most cases AFAIU. I agree fixing the root cause is ideal, I thought our typical approach was to just mark parallel incompatible stuff with MAKE1 and then fix things later on as needed. If a lot of packages have dependency ordering issues I assume we would want to prioritise fixing popular packages that have long build times first. What do you think the best strategy there would be? > > > > Notes: > > > - it *is* interesting to find those bugs; > > > - it is sad that the default mode for --shuffle will be random, not > > > none. > > Default is equivalent to none, > > Yeah, I noticed the hard way after having my patch rejected in makem as > you may have noticed. :-/ > > > I modified my autobuilder runner to pass > > --shuffle=random. > > Again, that is very interesting, but please, please, conordinate with > the rest of us when you do such changes, because that is very weird, as > Fabrice noted, to suddenly get build failures out of the blue when > nothing seemed to have otherwise changed. I've been experimenting a bit in general with autobuilder settings to try and fix some issues with poor coverage. One other reason for testing with shuffle=random is to make higher kconfig probability values more useful(as otherwise build failures will be concentrated in packages early in the dependency ordering) : https://patchwork.ozlabs.org/project/buildroot/patch/20220514214612.3221647-1-james.hilliard1@gmail.com/ > > Regards, > Yann E. MORIN. > > -- > .-----------------.--------------------.------------------.--------------------. > | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | > | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | > | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | > | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | > '------------------------------^-------^------------------^--------------------' _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/bearssl: disable parallel build 2022-10-16 16:45 ` James Hilliard @ 2022-10-17 7:16 ` Thomas Petazzoni via buildroot 2022-10-17 11:29 ` James Hilliard 0 siblings, 1 reply; 13+ messages in thread From: Thomas Petazzoni via buildroot @ 2022-10-17 7:16 UTC (permalink / raw) To: James Hilliard; +Cc: buildroot, Yann E. MORIN, Fabrice Fontaine Hello James, On Sun, 16 Oct 2022 12:45:06 -0400 James Hilliard <james.hilliard1@gmail.com> wrote: > > Again, that is very interesting, but please, please, conordinate with > > the rest of us when you do such changes, because that is very weird, as > > Fabrice noted, to suddenly get build failures out of the blue when > > nothing seemed to have otherwise changed. > > I've been experimenting a bit in general with autobuilder settings to try > and fix some issues with poor coverage. > > One other reason for testing with shuffle=random is to make higher kconfig > probability values more useful(as otherwise build failures will be concentrated > in packages early in the dependency ordering) : > https://patchwork.ozlabs.org/project/buildroot/patch/20220514214612.3221647-1-james.hilliard1@gmail.com/ Thanks a lot for all this work, which I find really useful. However, like Yann said I believe we need to coordinate better. I think we would prefer to see build results submitted on autobuild.buildroot.org to only be generated by the official/upstream autobuild-run script. Otherwise, it's super confusing as we get results that corresponding to variations of build configurations/build logic that we are not even aware they exist. Another concern is that the autobuilder results are already extremely bad these days, and therefore the priority is more on addressing/fixing the existing issues rather than adding more. It's a lot easier/practical to fix new problems when they are not mixed together with zillions of old problems. Again, thanks a lot for your work on this! Thomas -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/bearssl: disable parallel build 2022-10-17 7:16 ` Thomas Petazzoni via buildroot @ 2022-10-17 11:29 ` James Hilliard 2022-10-17 12:21 ` Thomas Petazzoni via buildroot 0 siblings, 1 reply; 13+ messages in thread From: James Hilliard @ 2022-10-17 11:29 UTC (permalink / raw) To: Thomas Petazzoni; +Cc: buildroot, Yann E. MORIN, Fabrice Fontaine On Mon, Oct 17, 2022 at 3:16 AM Thomas Petazzoni <thomas.petazzoni@bootlin.com> wrote: > > Hello James, > > On Sun, 16 Oct 2022 12:45:06 -0400 > James Hilliard <james.hilliard1@gmail.com> wrote: > > > > Again, that is very interesting, but please, please, conordinate with > > > the rest of us when you do such changes, because that is very weird, as > > > Fabrice noted, to suddenly get build failures out of the blue when > > > nothing seemed to have otherwise changed. > > > > I've been experimenting a bit in general with autobuilder settings to try > > and fix some issues with poor coverage. > > > > One other reason for testing with shuffle=random is to make higher kconfig > > probability values more useful(as otherwise build failures will be concentrated > > in packages early in the dependency ordering) : > > https://patchwork.ozlabs.org/project/buildroot/patch/20220514214612.3221647-1-james.hilliard1@gmail.com/ > > Thanks a lot for all this work, which I find really useful. However, > like Yann said I believe we need to coordinate better. I think we would > prefer to see build results submitted on autobuild.buildroot.org to > only be generated by the official/upstream autobuild-run script. > Otherwise, it's super confusing as we get results that corresponding to > variations of build configurations/build logic that we are not even > aware they exist. The shuffle=random changes don't require modifying autobuild-run, I'm just tweaking the path to make in my autobuild service environment and then passing an additional config flag to autobuild-run like this: --make-opts="--shuffle=random" > > Another concern is that the autobuilder results are already extremely > bad these days, and therefore the priority is more on addressing/fixing > the existing issues rather than adding more. It's a lot > easier/practical to fix new problems when they are not mixed together > with zillions of old problems. Well builds were mostly failing in the same place due to deterministic build ordering, I was trying to make it so that we would see failures in different places as that's more useful compared with always seeing the same errors. To me seeing the same errors most of the time indicates there's some major coverage issues with the autobuilders which need fixing. > > Again, thanks a lot for your work on this! > > Thomas > -- > Thomas Petazzoni, co-owner and CEO, Bootlin > Embedded Linux and Kernel engineering and training > https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/bearssl: disable parallel build 2022-10-17 11:29 ` James Hilliard @ 2022-10-17 12:21 ` Thomas Petazzoni via buildroot 2022-10-17 19:02 ` James Hilliard 0 siblings, 1 reply; 13+ messages in thread From: Thomas Petazzoni via buildroot @ 2022-10-17 12:21 UTC (permalink / raw) To: James Hilliard; +Cc: buildroot, Yann E. MORIN, Fabrice Fontaine On Mon, 17 Oct 2022 07:29:52 -0400 James Hilliard <james.hilliard1@gmail.com> wrote: > The shuffle=random changes don't require modifying autobuild-run, I'm > just tweaking the path to make in my autobuild service environment and > then passing an additional config flag to autobuild-run like this: > --make-opts="--shuffle=random" Right, but my point stands: it's custom usage/configuration of autobuild-run that we would prefer to discuss on the mailing list first before deploying/enabling. > Well builds were mostly failing in the same place due to deterministic > build ordering, I was trying to make it so that we would see failures > in different places as that's more useful compared with always seeing > the same errors. > > To me seeing the same errors most of the time indicates there's some > major coverage issues with the autobuilders which need fixing. I think you're missing a point here: many of the builds today are failing due to the glibc 2.36 bump. So pretty much every single build that is glibc based will indeed fail with some error related to this glibc bump. Your additional randomization will not change anything to this. It's just that we now have the glibc bump issues + the newly discovered issues related to the extra randomization + the usual amount of build issues. Best regards, Thomas -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/bearssl: disable parallel build 2022-10-17 12:21 ` Thomas Petazzoni via buildroot @ 2022-10-17 19:02 ` James Hilliard 0 siblings, 0 replies; 13+ messages in thread From: James Hilliard @ 2022-10-17 19:02 UTC (permalink / raw) To: Thomas Petazzoni; +Cc: buildroot, Yann E. MORIN, Fabrice Fontaine On Mon, Oct 17, 2022 at 8:21 AM Thomas Petazzoni <thomas.petazzoni@bootlin.com> wrote: > > On Mon, 17 Oct 2022 07:29:52 -0400 > James Hilliard <james.hilliard1@gmail.com> wrote: > > > The shuffle=random changes don't require modifying autobuild-run, I'm > > just tweaking the path to make in my autobuild service environment and > > then passing an additional config flag to autobuild-run like this: > > --make-opts="--shuffle=random" > > Right, but my point stands: it's custom usage/configuration of > autobuild-run that we would prefer to discuss on the mailing list first > before deploying/enabling. I've generally been deploying autobuild-run tweaks after initial local testing. Typically I send them to the mailing list after running them deployed for a little to clean them up and make sure they work as expected and verify the builds that are failing are not due to bugs in the autobuild-run tweaks themselves. They don't usually get looked at for a while in patchwork so I haven't really been bringing them up on the mailing list until after I've tested/deployed them myself for a little, I have a couple pending in patchwork at the moment for autobuild-run for example: https://patchwork.ozlabs.org/project/buildroot/patch/20220607231211.533086-1-james.hilliard1@gmail.com/ https://patchwork.ozlabs.org/project/buildroot/patch/20220718043901.873466-1-james.hilliard1@gmail.com/ Sometimes I override genrandconfig as well to test patches such as: https://patchwork.ozlabs.org/project/buildroot/patch/20220514214612.3221647-1-james.hilliard1@gmail.com/ I have a local patch to autobuild-run that redirects to an out of tree genrandconfig so that I can test tweaks there. I also have it validating that the in tree version of genrandconfig hasn't changed by comparing against a known sha256 hash before using the out of tree tweaked version to ensure that autobuild-run automatically falls back to using the in-tree genrandconfig if genrandconfig gets changed/fixes in upstream buildroot. For autobuild-run changes that increase error rates significantly due to higher rates of bugs which need fixes in buildroot I sometimes have held off on sending them as patches until the rates of errors triggered get low enough that it would make sense for others to use those changes as well. In this case I was also holding off on a patch automatically enabling shuffle mode to autobuild-run as using that feature currently requires running a yet to be released version of make and was triggering a few issues in buildroot that needed fixing on the buildroot side. I also figured that by testing master make using the autobuilders we can get make issues fixed upstream before the next make release, such as this shuffle mode bug so far: https://savannah.gnu.org/bugs/index.php?63215 What sort of autobuilder changes would you like me to discuss on the mailing list before deploying? I tend to experiment a bit but am usually pretty careful to make sure that my autobuilder tweaks only cause build failures due to real bugs that need fixing in buildroot/buildroot packages. > > > Well builds were mostly failing in the same place due to deterministic > > build ordering, I was trying to make it so that we would see failures > > in different places as that's more useful compared with always seeing > > the same errors. > > > > To me seeing the same errors most of the time indicates there's some > > major coverage issues with the autobuilders which need fixing. > > I think you're missing a point here: many of the builds today are > failing due to the glibc 2.36 bump. So pretty much every single build > that is glibc based will indeed fail with some error related to this > glibc bump. Probably a lot were failing for a couple days due to this glibc bug: https://github.com/buildroot/buildroot/commit/b749d6dd7b5fc6cc8b85a316878721d42654759c There's probably some failures still due to this issue but most of the others seem to be dependency bugs in package makefiles: https://patchwork.ozlabs.org/project/buildroot/patch/20221016193014.3384022-1-james.hilliard1@gmail.com/ However I'm actually referring to a separate issue with test coverage that has always been present. > > Your additional randomization will not change anything to this. It's > just that we now have the glibc bump issues + the newly discovered > issues related to the extra randomization + the usual amount of build > issues. When I brought patch up this on irc: https://patchwork.ozlabs.org/project/buildroot/patch/20220514214612.3221647-1-james.hilliard1@gmail.com/ arnout mentioned: 2022-07-25.log-[03:28:02] <arnout> Lightsword: about the build time: I think the issue is that if you increase the number of selected packages, you also reduce the number of successful builds (because it fails as soon as one failing package is selected) - and that way, packages that get built late (i.e. that come late in the alphabet and have no reverse dependencies) don't get built. This is indeed the case when I tested increasing the probability further, however by randomizing the dependency ordering using make 4.4's new shuffle mode we should be able to mitigate the alphabetical ordering bias issue and thus get better test coverage of packages with larger dependency trees by increasing the number of selected packages while using shuffle mode. Looking at the current autobuilder failure logs I'm seeing that most autobuilders other than my own have much lower build failure rates and not much variety in terms of failure reasons due to poor coverage of packages with larger dependency trees. For my own autobuilders running with shuffle mode I'm seeing much higher failure rates for different reasons so these changes do appear to be increasing out test coverage overall, there's a lot of issues with makefile dependency ordering that are new and I suspect once those are fixed we'll be able to get much better overall coverage of more common issues, especially issues hit when running parallel builds. > > Best regards, > > Thomas > -- > Thomas Petazzoni, co-owner and CEO, Bootlin > Embedded Linux and Kernel engineering and training > https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/bearssl: disable parallel build 2022-10-15 0:58 [Buildroot] [PATCH 1/1] package/bearssl: disable parallel build James Hilliard 2022-10-15 22:14 ` Fabrice Fontaine @ 2022-10-30 20:29 ` Thomas Petazzoni via buildroot 2022-10-31 2:54 ` James Hilliard 1 sibling, 1 reply; 13+ messages in thread From: Thomas Petazzoni via buildroot @ 2022-10-30 20:29 UTC (permalink / raw) To: James Hilliard; +Cc: Fabrice Fontaine, buildroot Hello James, On Fri, 14 Oct 2022 18:58:13 -0600 James Hilliard <james.hilliard1@gmail.com> wrote: > The bearssl package is not compatible with parallel builds. > > Fixes: > - http://autobuild.buildroot.net/results/5e1/5e1b72db206b2d17fa5ce378a70fdc2f3f5bf773 > > Signed-off-by: James Hilliard <james.hilliard1@gmail.com> > --- > package/bearssl/bearssl.mk | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Based on the feedback which said that fixing bearssl was preferred over using $(MAKE1), I have marked this patch as Changes Requested. Could you see at fixing the bearssl build system, submit the fix upstream, and provide the fix for Buildroot? Thanks a lot! Thomas -- Thomas Petazzoni, CTO, Bootlin Embedded Linux and Kernel engineering https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/bearssl: disable parallel build 2022-10-30 20:29 ` Thomas Petazzoni via buildroot @ 2022-10-31 2:54 ` James Hilliard 0 siblings, 0 replies; 13+ messages in thread From: James Hilliard @ 2022-10-31 2:54 UTC (permalink / raw) To: Thomas Petazzoni; +Cc: Fabrice Fontaine, buildroot On Sun, Oct 30, 2022 at 4:29 PM Thomas Petazzoni <thomas.petazzoni@bootlin.com> wrote: > > Hello James, > > On Fri, 14 Oct 2022 18:58:13 -0600 > James Hilliard <james.hilliard1@gmail.com> wrote: > > > The bearssl package is not compatible with parallel builds. > > > > Fixes: > > - http://autobuild.buildroot.net/results/5e1/5e1b72db206b2d17fa5ce378a70fdc2f3f5bf773 > > > > Signed-off-by: James Hilliard <james.hilliard1@gmail.com> > > --- > > package/bearssl/bearssl.mk | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > Based on the feedback which said that fixing bearssl was preferred over > using $(MAKE1), I have marked this patch as Changes Requested. Could > you see at fixing the bearssl build system, submit the fix upstream, > and provide the fix for Buildroot? I contacted the maintainer as described here https://bearssl.org/contrib.html with the suggested change, so far I haven't received a response back. > > Thanks a lot! > > Thomas > -- > Thomas Petazzoni, CTO, Bootlin > Embedded Linux and Kernel engineering > https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2022-10-31 2:54 UTC | newest] Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-10-15 0:58 [Buildroot] [PATCH 1/1] package/bearssl: disable parallel build James Hilliard 2022-10-15 22:14 ` Fabrice Fontaine 2022-10-15 23:21 ` James Hilliard 2022-10-16 7:50 ` Yann E. MORIN 2022-10-16 15:44 ` James Hilliard 2022-10-16 16:05 ` Yann E. MORIN 2022-10-16 16:45 ` James Hilliard 2022-10-17 7:16 ` Thomas Petazzoni via buildroot 2022-10-17 11:29 ` James Hilliard 2022-10-17 12:21 ` Thomas Petazzoni via buildroot 2022-10-17 19:02 ` James Hilliard 2022-10-30 20:29 ` Thomas Petazzoni via buildroot 2022-10-31 2:54 ` James Hilliard
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.