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

Bruce Ashfield bruce.ashfield at gmail.com
Wed Aug 22 17:35:46 PDT 2018


On Wed, Aug 22, 2018 at 7:31 AM, David Daniel <david.daniel at bbv.ch> wrote:
> 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,--all
>  ow-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?

Those are the flags for HOSTCC/HOSTCPP not for the actual building of
the kernel image, they are required to properly build host components
of the kernel (i.e. mconf) against the sysroot.

The error that you are pasting looks more like an invalid type of
image (zImage) for your configured machine.

Bruce

>
> Thanks for any hints!
> Best Regards
> Dave
> --
> _______________________________________________
> linux-yocto mailing list
> linux-yocto at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/linux-yocto



-- 
"Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end"


More information about the linux-yocto mailing list