Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Darren Hart <dvhart@linux.intel.com>
Cc: Patches and discussions about the oe-core layer
	<openembedded-core@lists.openembedded.org>
Subject: Re: [RFC PATCH] u-boot: remove UBOOT_MACHINE and COMPATIBLE_MACHINES
Date: Wed, 18 May 2011 12:46:11 +0100	[thread overview]
Message-ID: <1305719171.3424.314.camel@rex> (raw)
In-Reply-To: <4DD306A2.7030702@linux.intel.com>

On Tue, 2011-05-17 at 16:37 -0700, Darren Hart wrote:
> 
> On 05/17/2011 04:15 PM, Richard Purdie wrote:
> > On Tue, 2011-05-17 at 16:00 -0700, Darren Hart wrote:
> >> oe-core does not define any machines, so it does not make sense to
> >> add machine specific information in the oe-core u-boot recipe and
> >> infrastructure.
> >>
> >> Since every machine wishing to use the u-boot recipe would need to add itself to
> >> COMPATIBLE_MACHINES, typically via a bbappend recipe, the mechanism loses any
> >> utility it may have had and unecessarily complicates using the u-boot recipe. By
> >> removing it, we simplify the task of adding support for new machines.
> > 
> > NAK.
> > 
> > This break usability of things like "bitbake world" since all of a
> > sudden it will try and build u-boot in cases where it makes no sense
> > (qemu* machines for example).
> 
> OK, I thought there might be something like that surrounding
> COMPATIBLE_MACHINE, thus the RFC.
> 
> > 
> > I know it sounds strange but we do want this recipe enabled on a case by
> > case basis (and we have the beagleboard as a reference platform using it
> > which is handy). This means the default of no supported machine is
> > correct even if it looks odd.
> > 
> > Having the recipe deselect itself (raise a skip parsing event) if
> > UBOOT_MACHINE isn't set instead of using COMPATIBLE_MACHINE would be
> > acceptable though.
> 
> That sounds promising. I'd like to avoid having to create a
> u-boot_git.bbappend everytime you want to use u-boot. Is there an
> example you can think of that does this? greping for "deselect" and
> "skip pars" didn't yield any results.

grepping base.bbclass for COMPATIBLE_MACHINE might be more productive :)

The key piece is:

need_machine = bb.data.getVar('COMPATIBLE_MACHINE', d, 1)
if need_machine:
    import re
        this_machine = bb.data.getVar('MACHINE', d, 1)
        if this_machine and not re.match(need_machine, this_machine):
                raise bb.parse.SkipPackage("incompatible with machine %s" % this_machine)

which I think shows what I'm talking about clearly. And yes, ideally
this would have been called SkipRecipe but its from the days when we
were much more confused about terminology ;-).

Cheers,

Richard




      reply	other threads:[~2011-05-18 11:49 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-17 23:00 [RFC PATCH] u-boot: remove UBOOT_MACHINE and COMPATIBLE_MACHINES Darren Hart
2011-05-17 23:15 ` Richard Purdie
2011-05-17 23:37   ` Darren Hart
2011-05-18 11:46     ` Richard Purdie [this message]

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=1305719171.3424.314.camel@rex \
    --to=richard.purdie@linuxfoundation.org \
    --cc=dvhart@linux.intel.com \
    --cc=openembedded-core@lists.openembedded.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox