[OE-core] go-bootstrap / go-native conflict during do_rootfs

Kristian Amlie kristian.amlie at mender.io
Tue Mar 21 06:13:17 UTC 2017


On 20/03/17 17:50, Khem Raj wrote:
> On Mon, Mar 20, 2017 at 8:29 AM, Khem Raj <raj.khem at gmail.com> wrote:
>> On Mon, Mar 20, 2017 at 8:17 AM, Richard Purdie
>> <richard.purdie at linuxfoundation.org> wrote:
>>> On Mon, 2017-03-20 at 07:49 -0700, Khem Raj wrote:
>>>> On Mon, Mar 20, 2017 at 6:47 AM, Kristian Amlie
>>>> <kristian.amlie at mender.io> wrote:
>>>>>
>>>>> --------------------------------------------------
>>>>>
>>>>> Additionally, in the logs I found these two snippets:
>>>>>
>>>>> --------------------------------------------------
>>>>> Considering setscene task: ['go-native', 'do_populate_sysroot']
>>>>>   considering dependency: ['go-native', 'do_populate_sysroot']
>>>>>   considering dependency: ['mender-artifact-native',
>>>>> 'do_populate_sysroot']
>>>>> Adding dependency on go-native
>>>>> ...
>>>>> Considering setscene task: ['go-bootstrap-native',
>>>>> 'do_populate_sysroot']
>>>>>   considering dependency: ['go-native', 'do_populate_sysroot']
>>>>> Adding dependency on go-bootstrap-native
>>>>> --------------------------------------------------
>>>>>
>>>>> which lead me to believe that all dependencies are being pulled in
>>>>> simultaneously by do_rootfs, but go-native and go-bootstrap-native
>>>>> are
>>>>> in fact mutually exclusive, since they install to the sysroot in
>>>>> the
>>>>> same location. Note that both compilers build just fine, it's only
>>>>> at
>>>>> the do_rootfs stage that this shows up.
>>>>>
>>>>> I think the oe-meta-go layer solved this by having go-bootstrap-
>>>>> native
>>>>> install in a different location, but I'm unsure what is the best
>>>>> approach for OE.
>>>> go-bootstrap is only needed for few recipes. I think we should find
>>>> out
>>>> a way to keep this dep limited to those recipes and not reflect in
>>>> final
>>>> image rootfs creation. That seems to be not useful.
>>>
>>> There is code in sstate.bbclass in setscene_depvalid:
>>>
>>>         # Consider sysroot depending on sysroot tasks
>>>         if taskdependees[task][1] == 'do_populate_sysroot' and taskdependees[dep][1] == 'do_populate_sysroot':
>>>             [...]
>>>             # Nothing need depend on libc-initial/gcc-cross-initial
>>>             if "-initial" in taskdependees[task][0]:
>>>                 continue
>>>
>>> so if go-bootstrap-native were renamed go-native-initial, things might
>>> happen to work better...
>>
>> ah thats right, forgot about that, I think we should rename the recipe
>> to go-native-initial
>>
>>>
> 
> Can you try
> 
> http://lists.openembedded.org/pipermail/openembedded-core/2017-March/134372.html
> 
> and see if this works out for you ?

That worked, thanks!

-- 
Kristian



More information about the Openembedded-core mailing list