[OE-core] [PATCH] kernel.bbclass: explicitly depend on bison-native for deterministic builds

Otavio Salvador otavio.salvador at ossystems.com.br
Tue Feb 20 14:53:25 UTC 2018


On Tue, Feb 20, 2018 at 7:10 AM, Khem Raj <raj.khem at gmail.com> wrote:
> On 2/19/18 5:20 PM, Denys Dmytriyenko wrote:
>>
>> On Mon, Feb 19, 2018 at 09:36:22PM -0300, Otavio Salvador wrote:
>>>
>>> On Mon, Feb 19, 2018 at 8:54 PM, Denys Dmytriyenko <denis at denix.org>
>>> wrote:
>>>>
>>>> From: Denys Dmytriyenko <denys at ti.com>
>>>>
>>>> Explicitly depend on bison-native for deterministic builds, as it is
>>>> required
>>>> for the build:
>>>>
>>>> |   HOSTCC  scripts/basic/fixdep
>>>> |   GEN     ./Makefile
>>>> |   HOSTCC  scripts/kconfig/conf.o
>>>> |   YACC    scripts/kconfig/zconf.tab.c
>>>> | /bin/sh: bison: command not found
>>>> | scripts/Makefile.lib:217: recipe for target
>>>> 'scripts/kconfig/zconf.tab.c' failed
>>>>
>>>> In most cases, this dependency comes indirectly via toolchain
>>>> dependencies,
>>>> specifically binutils-cross, which pulls bison-native. Different setups,
>>>> such as with external toolchain, would expose this problem, since
>>>> correct
>>>> dependency is not marked explicitly.
>>>>
>>>> Signed-off-by: Denys Dmytriyenko <denys at ti.com>
>>>> ---
>>>> I'm seeing this now on 4.16-rc2 with external toolchain.
>>>
>>>
>>> I am not against the addition but in fact, it is because 4.16 stopped
>>> of using pre-generated files and now requires bison to be available.
>>
>>
>> Ok, good, I was wondering why I didn't see it before 4.16...
>>
>>
>>> I am unsure it ought to be on kernel.bbclass at this moment.
>>
>>
>> Why not? Because it's 4.16+ specific?
>>
>> By default bison-native dependency gets added implicitly when built with
>> the
>> toolchain from oe-core, so this doesn't add any extra dependencies, only
>> makes
>> it explicit.
>>
> it will be overcompensating for < 4.16 kernel recipes where this dependency
> is not needed. it might be a legit dependency for another component, that
> doesn't stage this package in kernel recipe-specific sysroot but this change
> will do that. So its not completely innocent change.

I'd be in favor of matching the version and adding it if it is a 4.16
or newer kernel. Adding for prior versions seems wrong for me.

-- 
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://code.ossystems.com.br
Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750



More information about the Openembedded-core mailing list