From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: "Robert P. J. Day" <rpjday@crashcourse.ca>
Cc: OE Core mailing list <openembedded-core@lists.openembedded.org>
Subject: Re: diff between defining a "no-op" task and using [noexec]?
Date: Fri, 18 Oct 2013 14:42:25 +0100 [thread overview]
Message-ID: <1382103745.29912.545.camel@ted> (raw)
In-Reply-To: <alpine.DEB.2.02.1310180909160.18187@oneiric>
On Fri, 2013-10-18 at 09:13 -0400, Robert P. J. Day wrote:
> On Fri, 18 Oct 2013, Richard Purdie wrote:
>
> > On Thu, 2013-10-17 at 08:07 -0400, Robert P. J. Day wrote:
> > > using a concrete example, there's this from oe core's
> > > linux-dummy.bb:
> > >
> > > do_configure() {
> > > :
> > > }
> > >
> > > do_compile () {
> > > :
> > > }
> > >
> > > do_install() {
> > > :
> > > }
> > >
> > > what is the difference between the above and writing:
> > >
> > > do_configure[noexec] = "1"
> > > do_compile[noexec] = "1"
> > > do_install[noexec] = "1"
> > >
> > > *is* there a difference? if so, does it have to do with the
> > > processing of other flags for that task?
> > >
> > > i can see that, technically, the first variation still defines a
> > > task to be run, while the second specifies that the task *not* be run,
> > > so i can appreciate that those two operations have different results.
> >
> > The difference is just that, with the first case bitbake will run
> > the task, it will do nothing. In the second case, bitbake will not
> > bother running it at all.
>
> i figured as much, but is there any important (pragmatic)
> distinction between the two if one simply wants to nullify an existing
> task?
One is slightly more efficient since bitbake doesn't run it at all.
> if there's a defined task dependency of some kind, i can certainly
> see how having a defined task consisting of a no-op would behave
> differently from specifying to not run that task at all, in terms of
> subsequent dependencies. does that distinction come into play
> anywhere? is there an example in the OE source that recognizes this?
No, the way we use noexec tasks, we still have to ensure dependencies
are recognised and built before the noexec task is skipped.
> and WRT to how developers should code, is one of these approaches
> considered better than the other? i've seen both approaches used in
> recipe files, and i'm wondering simply about coding style. thanks.
noexec is newer, slightly more efficient and not used everywhere. The
":" notation is slightly more readable in some circumstances.
You're looking for a "use X" type answer but I'm not giving one since
sometimes one can make slightly more sense that the other and I don't
want patches doing wholesale conversion from one to the other. I
appreciate that is frustrating but like any things, hard and fast rules
don't make sense, you should think about it.
Cheers,
Richard
next prev parent reply other threads:[~2013-10-18 13:42 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-17 12:07 diff between defining a "no-op" task and using [noexec]? Robert P. J. Day
2013-10-18 9:41 ` Richard Purdie
2013-10-18 13:13 ` Robert P. J. Day
2013-10-18 13:42 ` Richard Purdie [this message]
2013-10-18 13:49 ` Robert P. J. Day
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=1382103745.29912.545.camel@ted \
--to=richard.purdie@linuxfoundation.org \
--cc=openembedded-core@lists.openembedded.org \
--cc=rpjday@crashcourse.ca \
/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.