[OE-core] Kernel fails to build in do_populate_sysroot after OE-core upgrade

Mike Crowe mac at mcrowe.com
Wed Nov 20 13:22:15 UTC 2013


On Wednesday 20 November 2013 at 13:51:27 +0100, Mike Looijmans wrote:
> I expect this is related somehow to the recent change in the kernel
> to use hardlinks, but I have no idea what's going wrong here.
> 
> This is the recipe for the kernel, which has run fine so far.
> https://github.com/milosoftware/meta-zynq/blob/master/recipes-kernel/linux-zynq/linux-milo.bb
> 
> 
> This is the output log:
> 
> 
> DEBUG: Executing python function sstate_task_prefunc
> DEBUG: Python function sstate_task_prefunc finished
> DEBUG: Executing python function do_populate_sysroot
> DEBUG: Executing python function sysroot_stage_all
> ERROR: Error executing a python function in /home/mike/zynq-next/meta-zynq/recipes-kernel/linux-zynq/linux-milo.bb:
> 
> The stack trace of python calls that resulted in this exception/failure was:
> File: 'sysroot_stage_all', lineno: 6, function: <module>
>      0002:def sysroot_stage_all(d):
>      0003: oe.path.copyhardlinktree(d.expand("/home/mike/zynq-next/build/tmp-eglibc/work/zedboard-oe-linux-gnueabi/linux-milo/3.10+gitAUTOINC+dbebd8b890-r0/image/usr/src/kernel"), d.expand("/home/mike/zynq-next/build/tmp-eglibc/work/zedboard-oe-linux-gnueabi/linux-milo/3.10+gitAUTOINC+dbebd8b890-r0/sysroot-destdir//usr/src/kernel"))
>      0004:
>      0005:
>  *** 0006:sysroot_stage_all(d)
>      0007:
> File: 'sysroot_stage_all', lineno: 3, function: sysroot_stage_all
>      0001:
>      0002:def sysroot_stage_all(d):
>  *** 0003: oe.path.copyhardlinktree(d.expand("/home/mike/zynq-next/build/tmp-eglibc/work/zedboard-oe-linux-gnueabi/linux-milo/3.10+gitAUTOINC+dbebd8b890-r0/image/usr/src/kernel"), d.expand("/home/mike/zynq-next/build/tmp-eglibc/work/zedboard-oe-linux-gnueabi/linux-milo/3.10+gitAUTOINC+dbebd8b890-r0/sysroot-destdir//usr/src/kernel"))
>      0004:
>      0005:
>      0006:sysroot_stage_all(d)
>      0007:
> File: '/home/mike/zynq-next/oe-core/meta/lib/oe/path.py', lineno:
> 93, function: copyhardlinktree
>      0089:    bb.utils.mkdirhier(dst)
>      0090:    if os.path.isdir(src) and not len(os.listdir(src)):
>      0091:        return
>      0092:
>  *** 0093:    if (os.stat(src).st_dev ==  os.stat(dst).st_dev):
>      0094:        # Need to copy directories only with tar first
> since cp will error if two
>      0095:        # writers try and create a directory at the same time
>      0096:        cmd = 'cd %s; find . -type d -print | tar -cf - -C
> %s -p --files-from - --no-recursion | tar -xf - -C %s' % (src, src,
> dst)
>      0097:        check_output(cmd, shell=True, stderr=subprocess.STDOUT)
> Exception: OSError: [Errno 2] No such file or directory: '/home/mike/zynq-next/build/tmp-eglibc/work/zedboard-oe-linux-gnueabi/linux-milo/3.10+gitAUTOINC+dbebd8b890-r0/image/usr/src/kernel'
> 
> DEBUG: Python function sysroot_stage_all finished
> DEBUG: Python function do_populate_sysroot finished
> ERROR: Function failed: sysroot_stage_all

I believe that Richard Purdie's bitbake patch
http://git.openembedded.org/bitbake/commit/?h=master-next&id=f21910157d873c030b149c4cdc5b57c5062ab5a6
fixes this build failure.

HTH.

Mike.



More information about the Openembedded-core mailing list