[linux-yocto] Custom kernel recipe based on linux-yocto fails due to wrong make call

David Daniel david.daniel at bbv.ch
Wed Aug 22 04:31:09 PDT 2018


Hi all

I am trying to get a custom kernel recipe to work and it fails by
issuing a weird make command - the command contains the arguments one
would pass to gcc when cross-compiling. Bitbake spits a NOTE about the
error that looks like the following:

----------------------
ERROR: linux-vortex86-4.14.65-r0 do_compile: oe_runmake failed
ERROR: linux-vortex86-4.14.65-r0 do_compile: Function failed: do_compile (log file is located at /home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-linux/linux-vortex86/4.14.65-r0/temp/log.do_compile.13645)
ERROR: Logfile of failure stored in: /home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-linux/linux-vortex86/4.14.65-r0/temp/log.do_compile.13645
Log data follows:
| DEBUG: Executing shell function do_compile
| NOTE: make -j 8 HOSTCC=gcc  -isystem/home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-linux/linux-vortex86/4.14.65-r0/recipe-sysroot-native/usr/include -O2 -pipe -L/home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-linux/linux-vortex86/4.14.65-r0/recipe-sysroot-native/usr/lib -L/home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-linux/linux-vortex86/4.14.65-r0/recipe-sysroot-native/lib -Wl,-rpath-link,/home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-linux/linux-vortex86/4.14.65-r0/recipe-sysroot-native/usr/lib -Wl,-rpath-link,/home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-linux/linux-vortex86/4.14.65-r0/recipe-sysroot-native/lib -Wl,-rpath,/home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-linux/linux-vortex86/4.14.65-r0/recipe-sysroot-native/usr/lib -Wl,-rpath,/home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-linux/linux-vortex86/4.14.65-r0/recipe-sysroot-native/lib -Wl,-O1 -Wl,--allow-shlib-undefined -Wl,--dynamic-linker=/home/david/yocto/kraemer-ng/poky/build/tmp/sysroots-uninative/x86_64-linux/lib/ld-linux-x86-64.so.2 HOSTCPP=gcc  -E zImage CC=i586-poky-linux-gcc  -fuse-ld=bfd -fdebug-prefix-map=/home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-linux/linux-vortex86/4.14.65-r0=/usr/src/debug/linux-vortex86/4.14.65-r0 -fdebug-prefix-map=/home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-linux/linux-vortex86/4.14.65-r0/recipe-sysroot= -fdebug-prefix-map=/home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-linux/linux-vortex86/4.14.65-r0/recipe-sysroot-native=  -fdebug-prefix-map=/home/david/yocto/kraemer-ng/poky/build/tmp/work-shared/vortex86/kernel-source=/usr/src/kernel -ffile-prefix-map=/home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-linux/linux-vortex86/4.14.65-r0/git=/kernel-source/  LD=i586-poky-linux-ld.bfd
|   GEN     ./Makefile
| scripts/kconfig/conf  --silentoldconfig Kconfig
| make[2]: *** No rule to make target 'zImage'.  Stop.
| make[1]: *** [Makefile:146: sub-make] Error 2
| make: *** [Makefile:24: __sub-make] Error 2
| ERROR: oe_runmake failed
| WARNING: /home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-linux/linux-vortex86/4.14.65-r0/temp/run.do_compile.13645:1 exit 1 from 'exit 1'
| ERROR: Function failed: do_compile (log file is located at /home/david/yocto/kraemer-ng/poky/build/tmp/work/vortex86-poky-linux/linux-vortex86/4.14.65-r0/temp/log.do_compile.13645)
ERROR: Task (/home/david/yocto/kraemer-ng/poky/build/../meta-vortex86/recipes-kernel/linux/linux-vortex86_4.14.65-1.bb:do_compile) failed with exit code '1'
NOTE: Tasks Summary: Attempted 513 tasks of which 509 didn't need to be rerun and 1 failed.
----------------------

We have a device with a vortex86 (mainly i586 or i686 without CMOV)
processor why I created a corresponding machine. The machine is defined
with tune-i586.inc. The machine definition seems to be fine, the cross
compiler gets built and many packages build correctly for the target
system. This is the machine configuration:

----------------------
require conf/machine/include/tune-i586.inc

TARGET_ARCH = "i586"
PREFERRED_PROVIDER_virtual/kernel = "linux-vortex86"
MACHINE_FEATURES = "ext2 irda keyboard pcbios pci rtc screen serial touchscreen usbhost"

TARGET_FPU ?= "soft"
X86ARCH32 ?= "i586"

TUNE_PKGARCH = "${TUNE_PKGARCH_tune-${DEFAULTTUNE}}"

TUNECONFLICTS[m32] = "m64 mx32"
TUNE_ARCH = "i586"

GLIBC_ADDONS = "nptl"

SERIAL_CONSOLES = "115200;ttymxc2"

IMAGE_FSTYPES += "wic wic.bmap"
WKS_FILE ?= "kraemer.wks"
do_image_wic[depends] += "gptfdisk-native:do_populate_sysroot"
do_image_wic[recrdeptask] += "do_bootimg"
----------------------

I guess the problem lies in the kernel recipe, since everything else
seems to be fine. I started with a recipe that was shown on the
presentation "Working with the Linux Kernel in the Yocto Project" that
was published in March this year:

https://www.youtube.com/watch?v=tZACGS5nQxw

This didn't work though and I started to search the documentation. I
finally found:

https://www.yoctoproject.org/docs/1.6.1/kernel-dev/kernel-dev.html#working-with-your-own-sources

So I went ahead and modified until I got the current version of the
recipe:

----------------------
SECTION = "kernel"
DESCRIPTION = "Linux kernel for the Vortex86 processor"
LICENSE = "GPLv2"
FILESEXTRAPATHS_prepend = "${THISDIR}/linux-vortex86:"
LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"

require recipes-kernel/linux/linux-yocto.inc
inherit kernel

SRCBRANCH = "linux-4.14.y"
SRCREV = "80a4edf7eba019147d93e60843bd2dda66526d5c"

SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git;branch=${SRCBRANCH} \
           file://defconfig \
           file://bootlogo.ppm"

LINUX_VERSION ?= "4.14.65"

S = "${WORKDIR}/git"
PV = "4.14.65"
PR = "r0"

COMPATIBLE_MACHINE = "vortex86"
----------------------

Does anybody know what is wrong with that recipe? Why does bitbake for
building the kernel call make with arguments for gcc?

Thanks for any hints!
Best Regards
Dave


More information about the linux-yocto mailing list