[OE-core] should a SRC_URI referring to "rday.cfg" look for "rday.scc"?
Robert P. J. Day
rpjday at crashcourse.ca
Tue May 10 11:40:54 UTC 2016
On Mon, 9 May 2016, Bruce Ashfield wrote:
> On Mon, May 9, 2016 at 6:39 AM, Robert P. J. Day <rpjday at crashcourse.ca> wrote:
>
> (aside: this is with wind river linux 8 and i dropped bruce a note
> about it, but i really should keep this stuff on the mailing list.)
>
> not sure if this is a WRL issue, or more general OE or YP issue, but
> i was doing a kernel config yesterday, and my SRC_URI included, say,
> "rday.scc", which incorporated both kernel config fragments and
> patches, and that worked fine.
>
> eventually, after massive refactoring, all that was left of that
> item was some kernel configuration which was already in "rday.cfg", so
> i edited SRC_URI and replaced "rday.scc" with "rday.cfg", but i left
> that old "rday.scc" in that directory (with its referent patches),
> assuming it would be ignored.
>
> did a clean and configure and got:
>
> | DEBUG: Executing shell function do_kernel_metadata
> | ERROR: could not find patch rday.patch, included from
> .../rday.scc ...
>
> it *appears* that, even though SRC_URI now refers to (among other
> things) just "rday.cfg", it looks like the configure step is *still*
> trying to process "rday.scc", which contains a reference to a now
> non-existent patch, hence the failure.
>
> if i just remove (or rename) "rday.scc", then things work fine. is
> this expected behaviour? is there some reason that if SRC_URI
> includes, say "derf.cfg", the configuration will automatically look
> for and try to process "derf.scc"? or am i just doing something silly?
>
>
> There's no automatic inclusions like that. Take a look at your
> meta-series and see if there's an explicit reference to the .scc
> file.
>
> Otherwise, I'll have to try and reproduce it here.
ah, i just tripped over this again, and here's what's happening. i'm
using overrides to define SRC_URI items in machine-specific
directories, and that works fine, and if i change, say, the .scc or
.cfg files, then do a kernel clean operation and configure again, any
changes i made will be recognized and processed. so far, so good.
however, i just realized that a related set of SRC_URI files:
* uio.scc
* uio.cfg
* uio.patch
actually apply to *all* my target boards, so i moved those files up
one directory level to be picked up for all builds.
the SRC_URI reference to this is unchanged, still contains:
SRC_URI += " \
... snip ...
file://uio.scc \
... snip ...
but (obviously) the search should *now* find that file in the
general kernel version directory, rather than the board-specific
directory it was in before. not so:
[INFO] Sanitizing .kernel-meta/cfg/mpc8360/kernel_baseline.cfg
[INFO] Sanitizing .kernel-meta/cfg/mpc8360/serial_ucc_uart.cfg
[INFO] Sanitizing .kernel-meta/cfg/uio.cfg
[ERROR] Kern frag .kernel-meta/cfg/uio.cfg does not exist
it seems that once the configuration process locates the SRC_URI
items the first time, it caches(?) their location, so any *changes*
you make will be picked, but you can't *move* them, even to another
location where they would normally be found based on FILESPATH.
so ... simple question, what's the command to clear that memory if i
move a SRC_URI item? i did verify that if i *completely* remove the
build directory and start from scratch, then (predictably) it works
fine.
rday
--
========================================================================
Robert P. J. Day Ottawa, Ontario, CANADA
http://crashcourse.ca
Twitter: http://twitter.com/rpjday
LinkedIn: http://ca.linkedin.com/in/rpjday
========================================================================
More information about the Openembedded-core
mailing list