[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