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

Khem Raj raj.khem at gmail.com
Wed Jul 11 19:59:41 UTC 2018


bec is my distro config its not a whole different than oe-core nodistro.
The issue is not related to libc, since its happening on glibc or musl alike.
It could be related to parallel compile race, you might want to explore it from
that angle.

On Wed, Jul 11, 2018 at 4:40 AM Hongzhi, Song
<hongzhi.song at windriver.com> wrote:
>
> Sorry, I didn't reproduce the problem by appending your auto.conf to
>
> my local.conf. It just prompted some error because of using musl-lib
>
> instead of the error about Makefile your encountered.
>
>
> Then I commented off the statement of "TCLIBC_qemux86 = "musl"" and
>
> rebuild the image, it passed.
>
>
> 1. What else can I do to reproduce your case?
>
> 2. What is "bec" in your cross-compiler?
>
>     How can I get it?
>
> 3. Could the meta-oe accept it with only glibc support in the bb file.
>
>     We can add the support with musl in the future.
>
>
> --Hongzhi
>
>
>
> On 2018年07月10日 15:43, Khem Raj wrote:
>
> Look at the report I sent to oe Devel earlier it should have link to full logs
>
> On Mon, Jul 9, 2018 at 10:51 PM Hongzhi, Song <hongzhi.song at windriver.com> wrote:
>>
>> Could you attach building arguments, conf/local.conf, log.do_compile for me?
>>
>> The text you pasted is not enough.
>>
>> -- 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