All of lore.kernel.org
 help / color / mirror / Atom feed
From: Elliott Mitchell <ehem+xen@m5p.com>
To: Anthony PERARD <anthony.perard@citrix.com>
Cc: Jan Beulich <jbeulich@suse.com>, Wei Liu <wl@xen.org>,
	Juergen Gross <jgross@suse.com>,
	xen-devel@lists.xenproject.org
Subject: Re: [XEN PATCH] tools: Have flex and bison mandatory
Date: Tue, 7 Feb 2023 10:48:56 -0800	[thread overview]
Message-ID: <Y+KdGBSukPdVR0hz@mattapan.m5p.com> (raw)
In-Reply-To: <Y+KSRY+5SmrNYpJ/@perard.uk.xensource.com>

On Tue, Feb 07, 2023 at 06:02:45PM +0000, Anthony PERARD wrote:
> On Tue, Feb 07, 2023 at 06:03:12PM +0100, Jan Beulich wrote:
> > On 07.02.2023 17:09, Anthony PERARD wrote:
> > > This also remove the way the missing binaries are been handled, with
> > > double-column-rules, which might be an issue sometime.
> > 
> > These double-colon rules should never have been introduced. Double
> > colons have a different meaning ("terminal rule") for pattern rules.
> > In fact they were my initial suspects when looking into that odd build
> > failure in CI.
> 
> After some more investigation, I don't think anymore the double-colon
> rules here is an issue.
> 
> I think the issue that Andrew saw in the CI with "libxlu_cfg_y.o"
> failing to build while "libxlu_cfg_l.[ch]" are been regenerated is
> probably because make doesn't consider "libxlu_cfg_l.[ch]" as a group of
> targets.
> 
> If for some reason we have:
>     libxlu_cfg_l.h newer than libxlu_cfg_l.l newer than libxlu_cfg_l.c
> 
> Then make seems to take two parallel decision:
>     When building libxlu_cfg_y.o:
>         libxlu_cfg_l.h is newer than libxlu_cfg_l.l
>         -> libxlu_cfg_l.h is up-to-date, start building libxlu_cfg_y.o
>     When building libxlu_cfg_l.o:
>         libxlu_cfg_l.c is older than libxlu_cfg_l.l
>         -> we need to generate libxlu_cfg_l.c first
> Then, libxlu_cfg_y.o fails to build because libxlu_cfg_l.h is been
> updated do to the parallel build of libxlu_cfg_l.o.
> 
> I can easily reproduce the issue with:
>     touch libxlu_cfg_l.c; sleep .1; touch libxlu_cfg_l.l; sleep .1;
>     touch libxlu_cfg_l.h; sleep .1; make -j
> And having "sleep 1" in "%.c %.h: %.l" recipe, between `rm` and `flex`.
> 
> I don't know how to properly fix this yet.
> Event writing "%.c %.h &: %.l" doesn't work, with make 4.3, which is
> supposed to be grouped targets. But that's is maybe fixed in 4.4.

Might this be solved with:

%.c: %.l | %.h

I'm unsure whether order-only dependencies are GNU-make only (there is a
good chance).  There is also the option of using .PRECIOUS


-- 
(\___(\___(\______          --=> 8-) EHM <=--          ______/)___/)___/)
 \BS (    |         ehem+sigmsg@m5p.com  PGP 87145445         |    )   /
  \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445




  reply	other threads:[~2023-02-07 18:49 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-07 16:09 [XEN PATCH] tools: Have flex and bison mandatory Anthony PERARD
2023-02-07 17:03 ` Jan Beulich
2023-02-07 18:02   ` Anthony PERARD
2023-02-07 18:48     ` Elliott Mitchell [this message]
2023-02-07 19:12       ` Elliott Mitchell
2023-02-08  8:02     ` Jan Beulich
2023-02-08 18:51       ` Elliott Mitchell
2023-02-09  8:23         ` Jan Beulich
2023-02-09 15:44           ` Elliott Mitchell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y+KdGBSukPdVR0hz@mattapan.m5p.com \
    --to=ehem+xen@m5p.com \
    --cc=anthony.perard@citrix.com \
    --cc=jbeulich@suse.com \
    --cc=jgross@suse.com \
    --cc=wl@xen.org \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.