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

Khem Raj raj.khem at gmail.com
Mon Mar 20 14:49:45 UTC 2017


On Mon, Mar 20, 2017 at 6:47 AM, Kristian Amlie
<kristian.amlie at mender.io> wrote:
> First of all, kudos to Khem Raj for the hard work on the go compiler
> support, this will help a lot!
>
> However, I have one problem when my project reaches do_rootfs:
>
> ----------------------------------------------
> ERROR: core-image-full-cmdline-1.0-r0 do_rootfs: Error executing a
> python function in exec_python_func() autogenerated:
>
> The stack trace of python calls that resulted in this exception/failure was:
> File: 'exec_python_func() autogenerated', lineno: 2, function: <module>
>      0001:
>  *** 0002:extend_recipe_sysroot(d)
>      0003:
> File: '/home/kristian/code/poky/meta/classes/staging.bbclass', lineno:
> 623, function: extend_recipe_sysroot
>      0619:                    dest = newmanifest[l]
>      0620:                    if l.endswith("/"):
>      0621:                        staging_copydir(l, targetdir, dest,
> seendirs)
>      0622:                        continue
>  *** 0623:                    staging_copyfile(l, targetdir, dest,
> postinsts, seendirs)
>      0624:
>      0625:    for f in fixme:
>      0626:        if f == '':
>      0627:            staging_processfixme(fixme[f], recipesysroot,
> recipesysroot, recipesysrootnative, d)
> File: '/home/kristian/code/poky/meta/classes/staging.bbclass', lineno:
> 269, function: staging_copyfile
>      0265:        os.symlink(linkto, dest)
>      0266:        #bb.warn(c)
>      0267:    else:
>      0268:        try:
>  *** 0269:            os.link(c, dest)
>      0270:        except OSError as err:
>      0271:            if err.errno == errno.EXDEV:
>      0272:                bb.utils.copyfile(c, dest)
>      0273:            else:
> Exception: FileExistsError: [Errno 17] File exists:
> '/home/kristian/code/poky/build/tmp/sysroots-components/x86_64/go-bootstrap-native/usr/bin/go'
> ->
> '/home/kristian/code/poky/build/tmp/work/vexpress_qemu-poky-linux-gnueabi/core-image-full-cmdline/1.0-r0/recipe-sysroot-native/usr/bin/go'
>
> ERROR: core-image-full-cmdline-1.0-r0 do_rootfs: Function failed:
> extend_recipe_sysroot
> ERROR: Logfile of failure stored in:
> /home/kristian/code/poky/build/tmp/work/vexpress_qemu-poky-linux-gnueabi/core-image-full-cmdline/1.0-r0/temp/log.do_rootfs.18987
> ERROR: Task
> (/home/kristian/code/poky/meta/recipes-extended/images/core-image-full-cmdline.bb:do_rootfs)
> failed with exit code '1'
> NOTE: Tasks Summary: Attempted 3634 tasks of which 3589 didn't need to
> be rerun and 1 failed.
>
> Summary: 1 task failed:
>
> /home/kristian/code/poky/meta/recipes-extended/images/core-image-full-cmdline.bb:do_rootfs
> Summary: There were 3 WARNING messages shown.
> Summary: There were 2 ERROR messages shown, returning a non-zero exit code.
> --------------------------------------------------
>
> 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.

>
> Thoughts?
>
> --
> Kristian



More information about the Openembedded-core mailing list