[oe] [meta-oe][PATCH 1/1] kernel-selftest: Add a recipe on kernel selftest

Hongzhi, Song hongzhi.song at windriver.com
Tue Jul 31 11:14:04 UTC 2018


Hi Raj,

I have fixed the error for poky-lsb with patch sent to oe-core.

The patch fixed the error, 'No libelf found' and 'BPF API too old'.


With the patch above, please compile the kernel-selftest recipe again.

If there is no problem, please merge it.


--Hongzhi


On 2018年07月31日 02:38, Khem Raj wrote:
> These are generic layers so adding recipes which limit them to a 
> certain kernel or setup is
> Not preferred generally I would suggest keep
> This recipe in BSP layers where it’s certain that
> They will be provided with needed pre requisites
>
> On Mon, Jul 30, 2018 at 5:12 AM Hongzhi, Song 
> <hongzhi.song at windriver.com <mailto:hongzhi.song at windriver.com>> wrote:
>
>     Hi Raj,
>
>     I can continue to fix the error with rpi that you build. But I
>     found that rpi gets kernel
>
>     from git://github.com/raspberrypi/linux.git;branch=rpi-4.14.y
>     <http://github.com/raspberrypi/linux.git;branch=rpi-4.14.y>, which
>     is not belong
>
>     to openembeded. I think that the rpi recipe must make some special
>     change which
>
>     cause the error.
>
>
>     And the recipe in meta-oe is OK both with glibc and musl. So could
>     you build a project
>
>     with oe-core's kernel?  If there is no problem, would you merge
>     the recipe?
>
>
>     --Hongzhi
>
>
>
>     On 2018年07月30日 12:02, Khem Raj wrote:
>>     I can not get it compiling for musl and rpi with poky lsb
>>     equivalent distro until there are clean builds it won’t be
>>     possible for me to get this in
>>
>>     On Sun, Jul 29, 2018 at 8:34 PM Hongzhi, Song
>>     <hongzhi.song at windriver.com <mailto:hongzhi.song at windriver.com>>
>>     wrote:
>>
>>         ping
>>
>>         --Hongzhi
>>
>>
>>         On 2018年07月27日 17:00, Hongzhi, Song wrote:
>>         > Hi Raj,
>>         >
>>         > Could you help to confirm that if the libelf exists in your
>>         > recipe-sysroot?
>>         >
>>         > Because I can't reproduce your error.
>>         >
>>         >
>>         > --Hongzhi
>>         >
>>         >
>>         > On 2018年07月27日 16:40, Khem Raj wrote:
>>         >> this fails on rpi
>>         >>
>>         >> ERROR: Logfile of failure stored in:
>>         >>
>>         /mnt/a/oe/build/tmp/work/raspberrypi3-bec-linux-gnueabi/kernel-selftest/1.0-r0/temp/log.do_compile.22198
>>
>>         >>
>>         >> Log data follows:
>>         >> | DEBUG: Executing shell function do_compile
>>         >> | NOTE: make -j 16 CROSS_COMPILE=arm-bec-linux-gnueabi-
>>         ARCH=arm
>>         >> CC=arm-bec-linux-gnueabi-gcc -march=armv7ve -mthumb
>>         -mfpu=neon-vfpv4
>>         >> -mfloat-abi=hard -mcpu=cortex-a7 -fstack-protector-strong
>>         >> -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security
>>         -Werror=format-security
>>         >> -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat
>>         >> -Wformat-security -Werror=format-security
>>         >>
>>         --sysroot=/mnt/a/oe/build/tmp/work/raspberrypi3-bec-linux-gnueabi/kernel-selftest/1.0-r0/recipe-sysroot
>>
>>         >>
>>         >> AR=arm-bec-linux-gnueabi-ar LD=arm-bec-linux-gnueabi-ld
>>         >>
>>         --sysroot=/mnt/a/oe/build/tmp/work/raspberrypi3-bec-linux-gnueabi/kernel-selftest/1.0-r0/recipe-sysroot
>>
>>         >>
>>         >>
>>         DESTDIR=/mnt/a/oe/build/tmp/work/raspberrypi3-bec-linux-gnueabi/kernel-selftest/1.0-r0/image
>>         >> -C
>>         >>
>>         /mnt/a/oe/build/tmp/work/raspberrypi3-bec-linux-gnueabi/kernel-selftest/1.0-r0/kernel-selftest-1.0/tools/testing/selftests/bpf
>>         >> | make: Entering directory
>>         >>
>>         '/mnt/a/oe/build/tmp/work/raspberrypi3-bec-linux-gnueabi/kernel-selftest/1.0-r0/kernel-selftest-1.0/tools/testing/selftests/bpf'
>>
>>         >>
>>         >> | make -C ../../../lib/bpf
>>         >>
>>         OUTPUT=/mnt/a/oe/build/tmp/work/raspberrypi3-bec-linux-gnueabi/kernel-selftest/1.0-r0/kernel-selftest-1.0/tools/testing/selftests/bpf/
>>
>>         >>
>>         >> | make[1]: Entering directory
>>         >>
>>         '/mnt/a/oe/build/tmp/work/raspberrypi3-bec-linux-gnueabi/kernel-selftest/1.0-r0/kernel-selftest-1.0/tools/lib/bpf'
>>
>>         >>
>>         >> |
>>         >> | Auto-detecting system features:
>>         >> | ...                   No libelf found     libelf: [
>>         ^[[31mOFF^[[m ]
>>         >> | ...                           bpf: [ ^[[31mOFF^[[m ]
>>         >> |
>>         >> | BPF API too old
>>         >> | make[1]: *** [Makefile:219: bpfdep] Error 255
>>         >> | make[1]: *** Waiting for unfinished jobs....
>>         >> | No libelf found
>>         >> | make[1]: *** [Makefile:216: elfdep] Error 255
>>         >> |   HOSTCC
>>         >>
>>         /mnt/a/oe/build/tmp/work/raspberrypi3-bec-linux-gnueabi/kernel-selftest/1.0-r0/kernel-selftest-1.0/tools/testing/selftests/bpf/fixdep.o
>>         >> |   HOSTLD
>>         >>
>>         /mnt/a/oe/build/tmp/work/raspberrypi3-bec-linux-gnueabi/kernel-selftest/1.0-r0/kernel-selftest-1.0/tools/testing/selftests/bpf/fixdep-in.o
>>         >> |   LINK
>>         >>
>>         /mnt/a/oe/build/tmp/work/raspberrypi3-bec-linux-gnueabi/kernel-selftest/1.0-r0/kernel-selftest-1.0/tools/testing/selftests/bpf/fixdep
>>         >> | make[1]: Leaving directory
>>         >>
>>         '/mnt/a/oe/build/tmp/work/raspberrypi3-bec-linux-gnueabi/kernel-selftest/1.0-r0/kernel-selftest-1.0/tools/lib/bpf'
>>
>>         >>
>>         >> | make: *** [Makefile:33:
>>         >>
>>         /mnt/a/oe/build/tmp/work/raspberrypi3-bec-linux-gnueabi/kernel-selftest/1.0-r0/kernel-selftest-1.0/tools/testing/selftests/bpf/libbpf.a]
>>
>>         >>
>>         >> Error 2
>>         >> | make: Leaving directory
>>         >>
>>         '/mnt/a/oe/build/tmp/work/raspberrypi3-bec-linux-gnueabi/kernel-selftest/1.0-r0/kernel-selftest-1.0/tools/testing/selftests/bpf'
>>
>>         >>
>>         >> | ERROR: oe_runmake failed
>>         >> | WARNING:
>>         >>
>>         /mnt/a/oe/build/tmp/work/raspberrypi3-bec-linux-gnueabi/kernel-selftest/1.0-r0/temp/run.do_compile.22198:1
>>         >> exit 1 from 'exit 1'
>>         >> | ERROR: Function failed: do_compile (log file is located at
>>         >>
>>         /mnt/a/oe/build/tmp/work/raspberrypi3-bec-linux-gnueabi/kernel-selftest/1.0-r0/temp/log.do_compile.22198)
>>
>>         >>
>>         >>
>>         >> On Mon, Jul 16, 2018 at 2:51 AM Hongzhi, Song
>>         >> <hongzhi.song at windriver.com
>>         <mailto:hongzhi.song at windriver.com>> wrote:
>>         >>>
>>         >>>
>>         >>> On 2018年07月14日 00:23, Burton, Ross wrote:
>>         >>>> On 13 July 2018 at 15:06, Hongzhi.Song
>>         <hongzhi.song at windriver.com <mailto:hongzhi.song at windriver.com>>
>>         >>>> wrote:
>>         >>>>> +LIC_FILES_CHKSUM =
>>         >>>>> "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7 \
>>         >>>> Why are you shipping your own copy of the kernel's
>>         COPYING file even
>>         >>>> though you copy another in that prefunc?
>>         >>>>
>>         >>>> Isn't it possible to just depend on kernel-source and
>>         build directly
>>         >>>> from the kernel source tree?
>>         >>>>
>>         >>>>> +# for bpf and vm
>>         >>>>> +DEPENDS = " \
>>         >>>>> +    elfutils \
>>         >>>>> +    libcap \
>>         >>>>> +    libcap-ng \
>>         >>>>> +    fuse \
>>         >>>>> +    util-linux \
>>         >>>>> +    rsync-native \
>>         >>>>> +"
>>         >>>> Really not convinced these dependencies are accurate.
>>         >>>>
>>         >>>>> +TEST_LIST = "bpf \
>>         >>>>> +             vm \
>>         >>>>> +"
>>         >>>> You're not listing memfd in here, but that is the only
>>         place which
>>         >>>> uses fuse as far as I can tell.
>>         >>>>
>>         >>>> My suggestion is to trim the DEPENDS back to the core
>>         minimum and use
>>         >>>> PACKAGECONIG to select what directories get built. This
>>         means you can
>>         >>>> have optional test suites where the dependencies are not
>>         in oe-core
>>         >>>> (fuse for memfd, for example), and get the right
>>         RDEPENDS too.
>>         >>>>
>>         >>>>> +        oe_runmake -C ${S}/tools/testing/selftests/${i}
>>         >>>>> INSTALL_PATH=${D}/opt/kselftest/${i} install
>>         >>>> FHS says /opt is for sysadmin-installed tools that are
>>         not package
>>         >>>> managed.  You're building a package.  You're also
>>         building a package
>>         >>>> which is essentially ptest.  I'd say inherit ptest,
>>         write a runner,
>>         >>>> and put all the binaries in $PTESTDIR.
>>         >>> Hi Burton,
>>         >>>
>>         >>> kernel-selftest is designed to be shared by ptest and
>>         oe-self, and
>>         >>> thus is
>>         >>> not supposed to inherit ptest.
>>         >>>
>>         >>> The suggestions you mentioned above will be modified soon.
>>         >>>
>>         >>> --Hongzhi
>>         >>>
>>         >>>> Ross
>>         >>>>
>>         >
>>
>




More information about the Openembedded-devel mailing list