[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