From: Peter Seebach <peter.seebach@windriver.com>
To: Patches and discussions about the oe-core layer
<openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH 2/2] sanity.bbclass: Implement initial toolchain sanity checks
Date: Tue, 1 May 2012 11:23:18 -0500 [thread overview]
Message-ID: <20120501112318.6561f45d@wrlaptop> (raw)
In-Reply-To: <1335869234.7415.94.camel@ted>
On Tue, 1 May 2012 11:47:14 +0100
Richard Purdie <richard.purdie@linuxfoundation.org> wrote:
> > This patch also provides a whitelisting mechanism (which is
> > completely unused) to allow vendors providing prebuilt toolchain
> > components to restrict tunings to those based on or compatible with
> > a particular ABI.
^-- this will be referred back to later
> > + if not tune or tune == "":
> "if not tune:"
Heh. I do about 80% of my scripting work in Lua and Ruby these
days. :)
> We'd usually have
>
> features = (data.getVar("TUNE_FEATURES_tune-%s" % tune, True) or
> "").split() if not features:
> return "Tuning '%s' has no defined features, and cannot be
> used." % tune
Heh. And here, again, I'm used to things in which "".split() would
have given me an array with a single empty string back, same as any
other string with no spaces in it. :)
Looks like I have to do more experiments.
> > + valid_tunes = data.getVarFlags('TUNEVALID') or ""
> > + conflicts = data.getVarFlags('TUNECONFLICTS') or ""
> Hmm, shouldn't this be "or {}" ?
Yes.
> > + whitelist = data.getVar("TUNEABI_WHITELIST", True) or ''
> So what is TUNEABI_WHITELIST?
See the last paragraph of the above.
> and what is TUNEABI_OVERRIDE? These should probably get the [doc] tags
> you add for other things.
Good catch.
> To be honest I'm really tempted to split this tuneabi stuff out into a
> different class. I appreciate the OSVs need something but it probably
> doesn't make sense with half an implementation sitting in the core
> like this, particularly when the code is near impenetrable like the
> above. I'm left wondering what TUNEABI is too...
The big reason I'd advocate for having it in the base stuff is that
otherwise, all the OSVs are going to do their own and do it
incompatibly. The one thing worse than having one incomprehensible
thing is having many incomprehensible things with subtly different
semantics.
> > + bb.warn("Got an unexpected '%s' in MULTILIBS." %
> > pairs[0])
> Shouldn't this get added to the errors list?
Good question! I was unable to find anything definite on the topic.
My thought is, if everything has to be multilib:, there's no reason for
the leading multilib: because it adds no information, so presumably
there logically *could* be something else, but I haven't seen any and
don't know about them.
> > + else:
> > + if pairs[1] == 'lib':
> > + tune_error_set.append("The multilib 'lib' was
> > specified, but that causes parse errors.")
> Hmm, it does?
Yeah, that was the thing I ran into when I tried a default config
someone suggested; I thoughtfully corrected lib32 to lib, and libxcb
exploded with two pages of Python stack traces and diagnostics. If
that's not intentional, I can drop this check and we can treat it as a
package bug.
> What we really want to check here is that each pair[1] value is
> unique.
> Again, I'd just add this to the error list. If someone really wants to
> do it, they can disable the checks. This should also happen if tune is
> used more than once.
Okay. Good catch on that, hadn't thought of it.
> Just set these and skip "doc" in the above tests. Its ugly but I'd
> prefer to have them set than unset.
Okay.
> Can you split this patch into two so we can get the bits that were
> below in (they look fine) whilst we work on the above.
Yup.
-s
--
Listen, get this. Nobody with a good compiler needs to be justified.
next prev parent reply other threads:[~2012-05-01 16:33 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-30 20:33 [v3] [PATCH 0/2] toolchain sanity checks, revised Peter Seebach
2012-04-30 20:33 ` [PATCH 1/2] tune-sh4.inc: Fix spelling of big-endian feature set Peter Seebach
2012-04-30 20:33 ` [PATCH 2/2] sanity.bbclass: Implement initial toolchain sanity checks Peter Seebach
2012-04-30 20:42 ` Mark Hatle
2012-04-30 20:48 ` Peter Seebach
2012-05-01 10:21 ` Richard Purdie
2012-05-01 10:25 ` Koen Kooi
2012-05-01 15:56 ` Peter Seebach
2012-05-01 10:47 ` Richard Purdie
2012-05-01 16:23 ` Peter Seebach [this message]
2012-05-01 20:17 ` Richard Purdie
2012-05-02 1:32 ` Peter Seebach
-- strict thread matches above, loose matches on Subject: below --
2012-05-01 16:42 [PATCH 0/2] sanity.bblass: Initial " Peter Seebach
2012-05-01 16:42 ` [PATCH 2/2] sanity.bbclass: Implement initial " Peter Seebach
2012-04-27 23:51 [PATCH 0/2] sanity.bbclass: Toolchain " Peter Seebach
2012-04-27 23:51 ` [PATCH 2/2] sanity.bbclass: Implement initial toolchain " Peter Seebach
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=20120501112318.6561f45d@wrlaptop \
--to=peter.seebach@windriver.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