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

Kristian Amlie kristian.amlie at mender.io
Mon Mar 20 13:47:19 UTC 2017


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.

Thoughts?

-- 
Kristian



More information about the Openembedded-core mailing list