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

Hongzhi, Song hongzhi.song at windriver.com
Fri Jul 20 06:07:01 UTC 2018


Hi Raj,

Even if enable ptest, the error can't be reproduced. In fact, the recipe

doesn't inherit ptest, it just compiles programs and output them, which

will be used by other oe modules(oe-selftest or ptest), to a custom 
directory.


I know that you are busy with your job. And my request will add your 
workload

, which is not my intention. But it is really hard for me to reproduce 
your error.~_~


So I sincerely hope that could I get your whole environment, including 
your metadata

and other files? I think docker would be an easy way.


Could you help me again? If I get your image, I think I will be 
confident to fix the error.


--Hongzhi


On 2018年07月20日 00:21, Khem Raj wrote:
> can you try with ptest enabled in DISTRO_FEATURES
> On Wed, Jul 18, 2018 at 12:57 AM Hongzhi, Song
> <hongzhi.song at windriver.com> wrote:
>> Hi Raj,
>>
>> I have try my best to reproduce your error, but I failed.
>>
>> Could you help me to do the build in docker and share the dock image
>> with us. Or maybe you have a better method.
>>
>>
>> Thanks,
>>
>> Hongzhi
>>
>>
>> On 2018年07月10日 12:11, Khem Raj wrote:
>>> This is failing to build here
>>>
>>> | DEBUG: Executing shell function do_compile
>>> | NOTE: make -j 16 CROSS_COMPILE=x86_64-bec-linux- ARCH=x86
>>> CC=x86_64-bec-linux-gcc  -m64 -march=core2 -mtune=core2 -msse3
>>> -mfpmath=sse -fstack-protector-strong  -D_FORTIFY_SOURCE=2 -Wformat
>>> -Wformat-security -Werror=format-security
>>> --sysroot=/mnt/a/oe/build/tmp/work/qemux86_64-bec-linux/kernel-selftest/1.0-r0/recipe-sysroot
>>> AR=x86_64-bec-linux-ar LD=x86_64-bec-linux-ld
>>> --sysroot=/mnt/a/oe/build/tmp/work/qemux86_64-bec-linux/kernel-selftest/1.0-r0/recipe-sysroot
>>>     DESTDIR=/mnt/a/oe/build/tmp/work/qemux86_64-bec-linux/kernel-selftest/1.0-r0/image
>>> -C /mnt/a/oe/build/tmp/work/qemux86_64-bec-linux/kernel-selftest/1.0-r0/kernel-selftest-1.0/tools/testing/selftests/bpf
>>> | make: Entering directory
>>> '/mnt/a/oe/build/tmp/work/qemux86_64-bec-linux/kernel-selftest/1.0-r0/kernel-selftest-1.0/tools/testing/selftests/bpf'
>>> | Makefile:19: *** recipe commences before first target.  Stop.
>>> | make: Leaving directory
>>> '/mnt/a/oe/build/tmp/work/qemux86_64-bec-linux/kernel-selftest/1.0-r0/kernel-selftest-1.0/tools/testing/selftests/bpf'
>>> | ERROR: oe_runmake failed
>>> On Sat, Jul 7, 2018 at 11:05 PM Hongzhi.Song <hongzhi.song at windriver.com> wrote:
>>>> The recipe builds the framework for kernel-selftest. Now, it just
>>>> contains two sets of testcase, bpf and vm. We are appending others
>>>> to the recipe.
>>>>
>>>> It needs some features which will be written into relevant recipe.
>>>> But now, you should add them to conf/local.conf manually.
>>>> KERNEL_FEATURES_append += "features/bpf/bpf.scc"
>>>>
>>>> Signed-off-by: Dengke Du <dengke.du at windriver.com>
>>>> Signed-off-by: Hongzhi.Song <hongzhi.song at windriver.com>
>>>> ---
>>>>    .../recipes-kernel/kselftest/kernel-selftest.bb    | 94 ++++++++++++++++++++++
>>>>    1 file changed, 94 insertions(+)
>>>>    create mode 100644 meta-oe/recipes-kernel/kselftest/kernel-selftest.bb
>>>>
>>>> diff --git a/meta-oe/recipes-kernel/kselftest/kernel-selftest.bb b/meta-oe/recipes-kernel/kselftest/kernel-selftest.bb
>>>> new file mode 100644
>>>> index 0000000..6f20bd3
>>>> --- /dev/null
>>>> +++ b/meta-oe/recipes-kernel/kselftest/kernel-selftest.bb
>>>> @@ -0,0 +1,94 @@
>>>> +SUMMARY = "Kernel selftest for Linux"
>>>> +DESCRIPTION = "Kernel selftest for Linux"
>>>> +LICENSE = "GPLv2"
>>>> +
>>>> +# for bpf and vm
>>>> +DEPENDS = " \
>>>> +    elfutils \
>>>> +    libcap \
>>>> +    libcap-ng \
>>>> +    fuse \
>>>> +    util-linux \
>>>> +    rsync-native \
>>>> +"
>>>> +# for vm
>>>> +RDEPENDS_${PN} += "libgcc \
>>>> +                   bash \
>>>> +"
>>>> +
>>>> +do_configure[depends] += "virtual/kernel:do_shared_workdir"
>>>> +
>>>> +inherit linux-kernel-base kernel-arch
>>>> +
>>>> +do_populate_lic[depends] += "virtual/kernel:do_patch"
>>>> +
>>>> +S = "${WORKDIR}/${BP}"
>>>> +
>>>> +# now we just test bpf and vm
>>>> +# we will append other kernel selftest in the future
>>>> +TEST_LIST = "bpf \
>>>> +             vm \
>>>> +"
>>>> +
>>>> +EXTRA_OEMAKE = '\
>>>> +    CROSS_COMPILE=${TARGET_PREFIX} \
>>>> +    ARCH=${ARCH} \
>>>> +    CC="${CC}" \
>>>> +    AR="${AR}" \
>>>> +    LD="${LD}" \
>>>> +'
>>>> +
>>>> +EXTRA_OEMAKE += "\
>>>> +    'DESTDIR=${D}' \
>>>> +"
>>>> +
>>>> +KERNEL_SELFTEST_SRC ?= "Makefile \
>>>> +                        include \
>>>> +                        tools \
>>>> +                        scripts \
>>>> +                        arch \
>>>> +"
>>>> +
>>>> +do_compile() {
>>>> +    for i in ${TEST_LIST}
>>>> +    do
>>>> +        oe_runmake -C ${S}/tools/testing/selftests/${i}
>>>> +    done
>>>> +}
>>>> +
>>>> +do_install() {
>>>> +    for i in ${TEST_LIST}
>>>> +    do
>>>> +        oe_runmake -C ${S}/tools/testing/selftests/${i} INSTALL_PATH=${D}/opt/kselftest/${i} install
>>>> +    done
>>>> +
>>>> +    chown root:root  -R ${D}/opt/kselftest
>>>> +}
>>>> +
>>>> +do_configure() {
>>>> +    :
>>>> +}
>>>> +
>>>> +do_configure[prefuncs] += "copy_kselftest_source_from_kernel remove_clang_related"
>>>> +python copy_kselftest_source_from_kernel() {
>>>> +    sources = (d.getVar("KERNEL_SELFTEST_SRC") or "").split()
>>>> +    src_dir = d.getVar("STAGING_KERNEL_DIR")
>>>> +    dest_dir = d.getVar("S")
>>>> +    bb.utils.mkdirhier(dest_dir)
>>>> +    for s in sources:
>>>> +        src = oe.path.join(src_dir, s)
>>>> +        dest = oe.path.join(dest_dir, s)
>>>> +        if os.path.isdir(src):
>>>> +            oe.path.copytree(src, dest)
>>>> +        else:
>>>> +            bb.utils.copyfile(src, dest)
>>>> +}
>>>> +
>>>> +remove_clang_related() {
>>>> +       sed -i -e '/test_pkt_access/d' -e '/test_pkt_md_access/d' ${S}/tools/testing/selftests/bpf/Makefile
>>>> +}
>>>> +
>>>> +PACKAGE_ARCH = "${MACHINE_ARCH}"
>>>> +
>>>> +INHIBIT_PACKAGE_DEBUG_SPLIT="1"
>>>> +FILES_${PN} += "/opt/kselftest/"
>>>> --
>>>> 2.8.1
>>>>
>>>> --
>>>> _______________________________________________
>>>> Openembedded-devel mailing list
>>>> Openembedded-devel at lists.openembedded.org
>>>> http://lists.openembedded.org/mailman/listinfo/openembedded-devel




More information about the Openembedded-devel mailing list