[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