[oe] [RFC] turning conf/machine into a set of bblayers

Frans Meulenbroeks fransmeulenbroeks at gmail.com
Wed Nov 3 08:15:01 UTC 2010


2010/11/2 Tom Rini <tom_rini at mentor.com>:
> Eric Bénard wrote:
>>
>> Hi,
>>
>> Le 02/11/2010 21:46, Koen Kooi a écrit :
>>>
>>> I do fear that pulling things into seperate layers too much will make it
>>> harder to propagate fixes...
>>>
>> yes, in your example, the fines in conf/machine/include are common to all
>> omap boards (and even all cortexa8 for tune-cortexa8.inc) and thus when
>> fixing one BSP you have to think to fix the others (and to communicate the
>> fix to other BSP maintainers).
>> The same apply for most of the .inc in recipes-bsp/*/.
>>
>> Do you think the following setup is possible ?
>>
>> - ARM overlay (containing all generic files for ARM achitecture :
>> conf/machines/include for example)
>>
>> - OMAP3 overlay (containing all generic files for OMAP3 SOC :
>> conf/machines/include/omap* + recipes/linux u-boot x-load base files for
>> omap3 architecture,
>>
>> - specific board overlay (conf/machine/themachine.conf + board specific
>> additions in recipes/linux u-boot & x-load (with patches based on top of the
>> OMAP3 overlay).
>
> How about:
>
> - allow some form of conf/machine/include to continue to exist in the main
> layer
>
> ? There would have to be some judgment calls, but I don't think that should
> be too hard, over when it's SOC_FAMILY or when it's very generic.  Basically
> the ARM overlay wouldn't be created in this case (nor the PPC nor MIPS nor
> ...).  But we must avoid duplicating tune-coretexa8.inc and similar.
>

I'd say it is definitely nice to have a arch specific overlay (e.g.
ARM, MIPS, PPC, Nios2) which contains the specific recipes for that
architecture.
To give an example:
For nios2 the only backend is for gcc 4.1.2 and binutils
17.50.something. I can imagine that at some point in time it is
decided not to support these in the mainline/standard/common/base
system. In such a case I think the arch specific overlay would be a
good place.

Whether there should be an omap3 specific overlay (or wheter it should
be cortexA8, or maybe cortexA8 and omap3) remains probably to be seen.
I would suggest initially storing these in the arm machine overlay. If
that one becomes too crowded we alwasy can create an additional layer.

Khem wrote:
> in general we should try to move minimal stuff into machine layers for obvious maintenance
> burdening reasons. I am afraid that this has potential of leading usinto maintenance problems
> if we hold this loosely.

I fully agree with this.
In my opinion the rule should be:
machine specific stuff should go into the machine overlay. A machine
overlay could cover several closely related machines (e.g.
beagleboard, beagleboard-XM (should these be considered as different)
arch specific stuff (including stuff that is appropriate for multiple
machines in the arch.
non hw specific stuff should go into the common base.

We should definitely avoid that multiple recipes and multiple recipe
variants are created as that creates a maintenance nightmare.

Coming back on the gcc/nios2 example.
I'd expect this to be in the common base, but if at some point in time
it is decided to eliminate it from there, it should move to the nios2
overlay.
Maintenance responsibility then shifts from the maintainers of the
common base to the maintainer of the nios2 layer.

Frans.




More information about the Openembedded-devel mailing list