From e877ddb2150b723a9f181b4978f9cc8e39557a8e Mon Sep 17 00:00:00 2001 From: Liu Yiding Date: Wed, 30 Jul 2025 13:09:16 +0800 Subject: ltp: upgrade 20250130 -> 20250530 Changelog: https://github.com/linux-test-project/ltp/releases/tag/20250530 (From OE-Core rev: 6ad236f2fb724798ed62f6ad5f78b51d57496caa) Signed-off-by: Liu Yiding Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie --- ...1-Add-__clear_cache-declaration-for-clang.patch | 6 +- .../0001-Remove-OOM-tests-from-runtest-mm.patch | 8 +- ...0001-cve-2015-3290-Disable-AVX-for-x86_64.patch | 42 ------ .../0001-kernel-kvm-don-t-hardcode-objcopy.patch | 69 ---------- meta/recipes-extended/ltp/ltp_20250130.bb | 148 --------------------- meta/recipes-extended/ltp/ltp_20250530.bb | 146 ++++++++++++++++++++ 6 files changed, 153 insertions(+), 266 deletions(-) delete mode 100644 meta/recipes-extended/ltp/ltp/0001-cve-2015-3290-Disable-AVX-for-x86_64.patch delete mode 100644 meta/recipes-extended/ltp/ltp/0001-kernel-kvm-don-t-hardcode-objcopy.patch delete mode 100644 meta/recipes-extended/ltp/ltp_20250130.bb create mode 100644 meta/recipes-extended/ltp/ltp_20250530.bb diff --git a/meta/recipes-extended/ltp/ltp/0001-Add-__clear_cache-declaration-for-clang.patch b/meta/recipes-extended/ltp/ltp/0001-Add-__clear_cache-declaration-for-clang.patch index ade6a52b63..c95d7220cd 100644 --- a/meta/recipes-extended/ltp/ltp/0001-Add-__clear_cache-declaration-for-clang.patch +++ b/meta/recipes-extended/ltp/ltp/0001-Add-__clear_cache-declaration-for-clang.patch @@ -1,4 +1,4 @@ -From 2d384f268791ecd5ff0f26c8137dd4de0a1c4566 Mon Sep 17 00:00:00 2001 +From 859d27dd6dfc6e9d26ae9a05f4b32ac45b911887 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Mon, 10 Jun 2024 22:52:56 -0700 Subject: [PATCH] Add __clear_cache declaration for clang @@ -19,10 +19,10 @@ Cc: Hui Min Mina Chou 1 file changed, 1 insertion(+) diff --git a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap15.c b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap15.c -index a84ba6476..856e22ff3 100644 +index 1dde9e87b..6a6f5fe5e 100644 --- a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap15.c +++ b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap15.c -@@ -21,6 +21,7 @@ +@@ -19,6 +19,7 @@ #if defined(__clang__) #pragma clang optimize off diff --git a/meta/recipes-extended/ltp/ltp/0001-Remove-OOM-tests-from-runtest-mm.patch b/meta/recipes-extended/ltp/ltp/0001-Remove-OOM-tests-from-runtest-mm.patch index 5b6c780bec..936e23ebda 100644 --- a/meta/recipes-extended/ltp/ltp/0001-Remove-OOM-tests-from-runtest-mm.patch +++ b/meta/recipes-extended/ltp/ltp/0001-Remove-OOM-tests-from-runtest-mm.patch @@ -1,4 +1,4 @@ -From 768159aa53257d247645a12518778f50b8fdf578 Mon Sep 17 00:00:00 2001 +From 7096737fbbe19d0765f0a8c62ef7667bf4875780 Mon Sep 17 00:00:00 2001 From: "Mingde (Matthew) Zeng" Date: Wed, 29 Jul 2020 08:47:09 -0400 Subject: [PATCH] Remove OOM tests from runtest/mm @@ -14,12 +14,12 @@ Signed-off-by: Petr Vorel 1 file changed, 6 deletions(-) diff --git a/runtest/mm b/runtest/mm -index 6a8cd0b9d..8ce3f4416 100644 +index 5566a7742..8014d509b 100644 --- a/runtest/mm +++ b/runtest/mm -@@ -76,12 +76,6 @@ ksm07 ksm07 - +@@ -70,12 +70,6 @@ ksm07 ksm07 cpuset01 cpuset01 + cpuset02 cpuset02 -oom01 oom01 -oom02 oom02 diff --git a/meta/recipes-extended/ltp/ltp/0001-cve-2015-3290-Disable-AVX-for-x86_64.patch b/meta/recipes-extended/ltp/ltp/0001-cve-2015-3290-Disable-AVX-for-x86_64.patch deleted file mode 100644 index c6fae88eb9..0000000000 --- a/meta/recipes-extended/ltp/ltp/0001-cve-2015-3290-Disable-AVX-for-x86_64.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 28d823a63ee29f5d72c2aba781a06a7e2651cadc Mon Sep 17 00:00:00 2001 -From: Siddhesh Poyarekar -Date: Mon, 7 Apr 2025 06:24:47 -0400 -Subject: [PATCH] cve-2015-3290: Disable AVX for x86_64 - -When the input compiler enables AVX, stack realignment requirements -causes gcc to fail to omit %rbp use, due to which the test fails to -clobber %rbp in inline asm. Disable AVX to build the test on x86_64 so -that the test continues working. - -Link: https://lore.kernel.org/ltp/20250407102448.2605506-2-siddhesh@gotplt.org/ - -Upstream-Status: Backport [https://github.com/linux-test-project/ltp/commit/28d823a63ee29f5d72c2aba781a06a7e2651cadc] - -Reviewed-by: Martin Doucha -Reviewed-by: Petr Vorel -Signed-off-by: Siddhesh Poyarekar - ---- - testcases/cve/Makefile | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/testcases/cve/Makefile b/testcases/cve/Makefile -index 01b9b9ccb..98c38e908 100644 ---- a/testcases/cve/Makefile -+++ b/testcases/cve/Makefile -@@ -22,6 +22,12 @@ ifneq (,$(filter $(HOST_CPU),x86 x86_64)) - meltdown: CFLAGS += -msse2 - endif - -+# The test needs to clobber %rbp, which requires frame pointer omission. Also -+# for x86_64, disable AVX since that could sometimes require a stack -+# realignment, which gets in the way of frame pointer omission. - cve-2015-3290: CFLAGS += -pthread -fomit-frame-pointer -+ifeq ($(HOST_CPU),x86_64) -+cve-2015-3290: CFLAGS += -mno-avx -+endif - - include $(top_srcdir)/include/mk/generic_leaf_target.mk --- -2.37.3 - diff --git a/meta/recipes-extended/ltp/ltp/0001-kernel-kvm-don-t-hardcode-objcopy.patch b/meta/recipes-extended/ltp/ltp/0001-kernel-kvm-don-t-hardcode-objcopy.patch deleted file mode 100644 index 256c8eaa34..0000000000 --- a/meta/recipes-extended/ltp/ltp/0001-kernel-kvm-don-t-hardcode-objcopy.patch +++ /dev/null @@ -1,69 +0,0 @@ -From 0a42a8ee0ae8c6f1e603c1836b7c9c7fab0ca3a8 Mon Sep 17 00:00:00 2001 -From: Ross Burton -Date: Thu, 27 Feb 2025 12:38:50 +0000 -Subject: [PATCH] kernel/kvm: don't hardcode objcopy - -testcases/kernel/kvm uses objcopy to contruct a payload binary, but in -cross builds the host objcopy may not know how to handle target -binaries: - - CC testcases/kernel/kvm/lib_host.o - objcopy: Unable to recognise the format of the input file `kvm_svm03-payload.elf' - make[3]: *** [ltp/testcases/kernel/kvm/Makefile:67: kvm_svm03-payload.o] Error 1 - -This is trivially fixed by searching for an objcopy tool (so -host-prefixed in cross builds) and using that instead. - -Upstream-Status: Backport [a3942c0a5f9b4463e8320e80cd8522a2e008bfd2] -Signed-off-by: Ross Burton ---- - configure.ac | 1 + - include/mk/config.mk.in | 1 + - testcases/kernel/kvm/Makefile | 4 ++-- - 3 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 344b2ae2c..0f2b6f332 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -30,6 +30,7 @@ AC_PROG_RANLIB - AC_DEFUN([AC_PROG_STRIP], [AC_CHECK_TOOL(STRIP, strip, :)]) - AC_PROG_STRIP - AC_PROG_YACC -+AC_CHECK_TOOL([OBJCOPY], [objcopy], [:]) - - m4_ifndef([PKG_CHECK_EXISTS], - [m4_fatal([must install pkg-config or pkgconfig and pkg.m4 macro (usual dependency), see INSTALL])]) -diff --git a/include/mk/config.mk.in b/include/mk/config.mk.in -index 2b7c8a071..4c3da304f 100644 ---- a/include/mk/config.mk.in -+++ b/include/mk/config.mk.in -@@ -11,6 +11,7 @@ AR := @AR@ - CC := @CC@ - LEX := @LEX@ - RANLIB := @RANLIB@ -+OBJCOPY := @OBJCOPY@ - STRIP := @STRIP@ - YACC := @YACC@ - -diff --git a/testcases/kernel/kvm/Makefile b/testcases/kernel/kvm/Makefile -index 07bdd9705..e93528a33 100644 ---- a/testcases/kernel/kvm/Makefile -+++ b/testcases/kernel/kvm/Makefile -@@ -60,11 +60,11 @@ include $(top_srcdir)/include/mk/generic_leaf_target.mk - %-payload.o: %.c lib_guest.o $(ARCH_OBJ) - ifdef VERBOSE - $(CC) $(GUEST_CPPFLAGS) $(GUEST_CFLAGS) $(GUEST_LDFLAGS) -o $*-payload.elf $^ $(GUEST_LDLIBS) -- objcopy -O binary -j .init.boot -j .text -j .data -j .init -j .preinit_array -j .init_array --gap-fill=0 $*-payload.elf $*-payload.bin -+ $(OBJCOPY) -O binary -j .init.boot -j .text -j .data -j .init -j .preinit_array -j .init_array --gap-fill=0 $*-payload.elf $*-payload.bin - $(KVM_LD) -z noexecstack -r -T $(abs_srcdir)/linker/payload.lds --oformat=$(BIN_FORMAT) -o $@ $*-payload.bin - else - @$(CC) $(GUEST_CPPFLAGS) $(GUEST_CFLAGS) $(GUEST_LDFLAGS) -o $*-payload.elf $^ $(GUEST_LDLIBS) -- @objcopy -O binary -j .init.boot -j .text -j .data -j .init -j .preinit_array -j .init_array --gap-fill=0 $*-payload.elf $*-payload.bin -+ @$(OBJCOPY) -O binary -j .init.boot -j .text -j .data -j .init -j .preinit_array -j .init_array --gap-fill=0 $*-payload.elf $*-payload.bin - @$(KVM_LD) -z noexecstack -r -T $(abs_srcdir)/linker/payload.lds --oformat=$(BIN_FORMAT) -o $@ $*-payload.bin - @echo KVM_CC $(target_rel_dir)$@ - endif --- -2.43.0 - diff --git a/meta/recipes-extended/ltp/ltp_20250130.bb b/meta/recipes-extended/ltp/ltp_20250130.bb deleted file mode 100644 index 8de13c6000..0000000000 --- a/meta/recipes-extended/ltp/ltp_20250130.bb +++ /dev/null @@ -1,148 +0,0 @@ -SUMMARY = "Linux Test Project" -DESCRIPTION = "The Linux Test Project is a joint project with SGI, IBM, OSDL, and Bull with a goal to deliver test suites to the open source community that validate the reliability, robustness, and stability of Linux. The Linux Test Project is a collection of tools for testing the Linux kernel and related features." -HOMEPAGE = "https://linux-test-project.github.io/" -SECTION = "console/utils" -LICENSE = "GPL-2.0-only & GPL-2.0-or-later & LGPL-2.0-or-later & LGPL-2.1-or-later & BSD-2-Clause" -LIC_FILES_CHKSUM = "\ - file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ - file://testcases/open_posix_testsuite/COPYING;md5=48b1c5ec633e3e30ec2cf884ae699947 \ - file://testcases/network/can/filter-tests/COPYING;md5=5b155ea7d7f86eae8e8832955d8b70bc \ -" - -DEPENDS = "attr libaio libcap acl openssl zip-native" -DEPENDS:append:libc-musl = " fts " -EXTRA_OEMAKE:append:libc-musl = " LIBC=musl " -EXTRA_OECONF:append:libc-musl = " LIBS=-lfts " - -# since ltp contains x86-64 assembler which uses the frame-pointer register, -# set -fomit-frame-pointer x86-64 to handle cases where optimisation -# is set to -O0 or frame pointers have been enabled by -fno-omit-frame-pointer -# earlier in CFLAGS, etc. -CFLAGS:append:x86-64 = " -fomit-frame-pointer" -TUNE_CCARGS:remove:x86 = "-mfpmath=sse" -TUNE_CCARGS:remove:x86-64 = "-mfpmath=sse" - -CFLAGS:append:powerpc64 = " -D__SANE_USERSPACE_TYPES__" -CFLAGS:append:mipsarchn64 = " -D__SANE_USERSPACE_TYPES__" -SRCREV = "a7c31dff7edc089a32e990765e12952cc4d7666a" - -SRC_URI = "git://github.com/linux-test-project/ltp.git;branch=master;protocol=https \ - file://0001-Remove-OOM-tests-from-runtest-mm.patch \ - file://0001-Add-__clear_cache-declaration-for-clang.patch \ - file://0001-kernel-kvm-don-t-hardcode-objcopy.patch \ - file://0001-cve-2015-3290-Disable-AVX-for-x86_64.patch \ - file://0001-syscalls-semctl08-Skip-semctl08-when-__USE_TIME64_RE.patch \ - " - -inherit autotools-brokensep pkgconfig - -# Version 20220527 added KVM test infrastructure which currently fails to build with lld due to -# SORT_NONE in linker script which isn't supported by gold: -# https://sourceware.org/bugzilla/show_bug.cgi?id=18097 -# https://github.com/linux-test-project/ltp/commit/3fce2064b54843218d085aae326c8f7ecf3a8c41#diff-39268f0855c634ca48c8993fcd2c95b12a65b79e8d9fa5ccd6b0f5a8785c0dd6R36 -LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', '-fuse-ld=bfd', '', d)}" - -# After 0002-kvm-use-LD-instead-of-hardcoding-ld.patch -# https://github.com/linux-test-project/ltp/commit/f94e0ef3b7280f886384703ef9019aaf2f2dfebb -# it fails with lld also a bit later when trying to use *-payload.bin -# http://errors.yoctoproject.org/Errors/Details/663094/ -# work around this by forcing .bfd linked in LD when ld-is-lld is in DISTRO_FEATURES -KVM_LD = "${@bb.utils.contains_any('DISTRO_FEATURES', 'ld-is-lld', '${HOST_PREFIX}ld.bfd${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}', '${LD}', d)}" - -TARGET_CC_ARCH += "${LDFLAGS}" - -export prefix = "/opt/${PN}" -export exec_prefix = "/opt/${PN}" - -PACKAGECONFIG[numa] = "--with-numa, --without-numa, numactl," -EXTRA_AUTORECONF += "-I ${S}/testcases/realtime/m4" -EXTRA_OECONF = " --with-realtime-testsuite --with-open-posix-testsuite " -# ltp network/rpc test cases ftbfs when libtirpc is found -EXTRA_OECONF += " --without-tirpc " - -do_compile() { - oe_runmake HOSTCC="${CC_FOR_BUILD}" HOST_CFLAGS="${CFLAGS_FOR_BUILD}" HOST_LDFLAGS="${LDFLAGS_FOR_BUILD}" KVM_LD="${KVM_LD}" -} - -do_install(){ - install -d ${D}${prefix}/ - oe_runmake DESTDIR=${D} SKIP_IDCHECK=1 install include-install - - # fixup not deploy STPfailure_report.pl to avoid confusing about it fails to run - # as it lacks dependency on some perl moudle such as LWP::Simple - # And this script previously works as a tool for analyzing failures from LTP - # runs on the OSDL's Scaleable Test Platform (STP) and it mainly accesses - # http://khack.osdl.org to retrieve ltp test results run on - # OSDL's Scaleable Test Platform, but now http://khack.osdl.org unaccessible - rm -rf ${D}${prefix}/bin/STPfailure_report.pl - - # The controllers memcg_stree test seems to cause us hangs and takes 900s - # (maybe we expect more regular output?), anyhow, skip it - sed -e '/^memcg_stress/d' -i ${D}${prefix}/runtest/controllers -} - -RDEPENDS:${PN} = "\ - attr \ - bash \ - bc \ - coreutils \ - cpio \ - cronie \ - curl \ - e2fsprogs \ - e2fsprogs-mke2fs \ - expect \ - file \ - findutils \ - gawk \ - gdb \ - gzip \ - iproute2 \ - ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'iputils-ping6', '', d)} \ - ldd \ - libaio \ - logrotate \ - net-tools \ - perl \ - python3-core \ - procps \ - quota \ - unzip \ - util-linux \ - which \ - tar \ -" - -RRECOMMENDS:${PN} += "kernel-module-loop" - -FILES:${PN} += "${prefix}/* ${prefix}/runtest/* ${prefix}/scenario_groups/* ${prefix}/testcases/bin/* ${prefix}/testcases/bin/*/bin/* ${prefix}/testscripts/* ${prefix}/testcases/open_posix_testsuite/* ${prefix}/testcases/open_posix_testsuite/conformance/* ${prefix}/testcases/open_posix_testsuite/Documentation/* ${prefix}/testcases/open_posix_testsuite/functional/* ${prefix}/testcases/open_posix_testsuite/include/* ${prefix}/testcases/open_posix_testsuite/scripts/* ${prefix}/testcases/open_posix_testsuite/stress/* ${prefix}/testcases/open_posix_testsuite/tools/* ${prefix}/testcases/data/nm01/lib.a ${prefix}/lib/libmem.a" - -# Avoid stripping some generated binaries otherwise some of the ltp tests such as ldd01 & nm01 fail -INHIBIT_PACKAGE_STRIP_FILES = "${prefix}/testcases/bin/nm01 ${prefix}/testcases/bin/ldd01" -INSANE_SKIP:${PN} += "already-stripped staticdev" - -CACHED_CONFIGUREVARS:libc-musl = "ac_cv_type_struct_mnt_id_req=no ac_cv_type_struct_statmount=no" - -remove_broken_musl_sources() { - [ "${TCLIBC}" = "musl" ] || return 0 - - cd ${S} - echo "WARNING: remove unsupported tests (until they're fixed)" - - # sync with upstream - # https://github.com/linux-test-project/ltp/blob/master/ci/alpine.sh#L33 - rm -rfv \ - testcases/kernel/syscalls/fmtmsg/fmtmsg01.c \ - testcases/kernel/syscalls/getcontext/getcontext01.c \ - testcases/kernel/syscalls/rt_tgsigqueueinfo/rt_tgsigqueueinfo01.c \ - testcases/kernel/syscalls/timer_create/timer_create01.c \ - testcases/kernel/syscalls/timer_create/timer_create03.c \ - testcases/kernel/syscalls/statmount/statmount02.c -} -do_patch[postfuncs] += "remove_broken_musl_sources" - -# Avoid file dependency scans, as LTP checks for things that may or may not -# exist on the running system. For instance it has specific checks for -# csh and ksh which are not typically part of OpenEmbedded systems (but -# can be added via additional layers.) -SKIP_FILEDEPS:${PN} = '1' diff --git a/meta/recipes-extended/ltp/ltp_20250530.bb b/meta/recipes-extended/ltp/ltp_20250530.bb new file mode 100644 index 0000000000..9ea5de10ee --- /dev/null +++ b/meta/recipes-extended/ltp/ltp_20250530.bb @@ -0,0 +1,146 @@ +SUMMARY = "Linux Test Project" +DESCRIPTION = "The Linux Test Project is a joint project with SGI, IBM, OSDL, and Bull with a goal to deliver test suites to the open source community that validate the reliability, robustness, and stability of Linux. The Linux Test Project is a collection of tools for testing the Linux kernel and related features." +HOMEPAGE = "https://linux-test-project.github.io/" +SECTION = "console/utils" +LICENSE = "GPL-2.0-only & GPL-2.0-or-later & LGPL-2.0-or-later & LGPL-2.1-or-later & BSD-2-Clause" +LIC_FILES_CHKSUM = "\ + file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://testcases/open_posix_testsuite/COPYING;md5=48b1c5ec633e3e30ec2cf884ae699947 \ + file://testcases/network/can/filter-tests/COPYING;md5=5b155ea7d7f86eae8e8832955d8b70bc \ +" + +DEPENDS = "attr libaio libcap acl openssl zip-native" +DEPENDS:append:libc-musl = " fts " +EXTRA_OEMAKE:append:libc-musl = " LIBC=musl " +EXTRA_OECONF:append:libc-musl = " LIBS=-lfts " + +# since ltp contains x86-64 assembler which uses the frame-pointer register, +# set -fomit-frame-pointer x86-64 to handle cases where optimisation +# is set to -O0 or frame pointers have been enabled by -fno-omit-frame-pointer +# earlier in CFLAGS, etc. +CFLAGS:append:x86-64 = " -fomit-frame-pointer" +TUNE_CCARGS:remove:x86 = "-mfpmath=sse" +TUNE_CCARGS:remove:x86-64 = "-mfpmath=sse" + +CFLAGS:append:powerpc64 = " -D__SANE_USERSPACE_TYPES__" +CFLAGS:append:mipsarchn64 = " -D__SANE_USERSPACE_TYPES__" +SRCREV = "14331e1ecfcd63426c9d270d88b7bad9f60c6d64" + +SRC_URI = "git://github.com/linux-test-project/ltp.git;branch=master;protocol=https \ + file://0001-Remove-OOM-tests-from-runtest-mm.patch \ + file://0001-Add-__clear_cache-declaration-for-clang.patch \ + file://0001-syscalls-semctl08-Skip-semctl08-when-__USE_TIME64_RE.patch \ + " + +inherit autotools-brokensep pkgconfig + +# Version 20220527 added KVM test infrastructure which currently fails to build with lld due to +# SORT_NONE in linker script which isn't supported by gold: +# https://sourceware.org/bugzilla/show_bug.cgi?id=18097 +# https://github.com/linux-test-project/ltp/commit/3fce2064b54843218d085aae326c8f7ecf3a8c41#diff-39268f0855c634ca48c8993fcd2c95b12a65b79e8d9fa5ccd6b0f5a8785c0dd6R36 +LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', '-fuse-ld=bfd', '', d)}" + +# After 0002-kvm-use-LD-instead-of-hardcoding-ld.patch +# https://github.com/linux-test-project/ltp/commit/f94e0ef3b7280f886384703ef9019aaf2f2dfebb +# it fails with lld also a bit later when trying to use *-payload.bin +# http://errors.yoctoproject.org/Errors/Details/663094/ +# work around this by forcing .bfd linked in LD when ld-is-lld is in DISTRO_FEATURES +KVM_LD = "${@bb.utils.contains_any('DISTRO_FEATURES', 'ld-is-lld', '${HOST_PREFIX}ld.bfd${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}', '${LD}', d)}" + +TARGET_CC_ARCH += "${LDFLAGS}" + +export prefix = "/opt/${PN}" +export exec_prefix = "/opt/${PN}" + +PACKAGECONFIG[numa] = "--with-numa, --without-numa, numactl," +EXTRA_AUTORECONF += "-I ${S}/testcases/realtime/m4" +EXTRA_OECONF = " --with-realtime-testsuite --with-open-posix-testsuite " +# ltp network/rpc test cases ftbfs when libtirpc is found +EXTRA_OECONF += " --without-tirpc " + +do_compile() { + oe_runmake HOSTCC="${CC_FOR_BUILD}" HOST_CFLAGS="${CFLAGS_FOR_BUILD}" HOST_LDFLAGS="${LDFLAGS_FOR_BUILD}" KVM_LD="${KVM_LD}" +} + +do_install(){ + install -d ${D}${prefix}/ + oe_runmake DESTDIR=${D} SKIP_IDCHECK=1 install include-install + + # fixup not deploy STPfailure_report.pl to avoid confusing about it fails to run + # as it lacks dependency on some perl moudle such as LWP::Simple + # And this script previously works as a tool for analyzing failures from LTP + # runs on the OSDL's Scaleable Test Platform (STP) and it mainly accesses + # http://khack.osdl.org to retrieve ltp test results run on + # OSDL's Scaleable Test Platform, but now http://khack.osdl.org unaccessible + rm -rf ${D}${prefix}/bin/STPfailure_report.pl + + # The controllers memcg_stree test seems to cause us hangs and takes 900s + # (maybe we expect more regular output?), anyhow, skip it + sed -e '/^memcg_stress/d' -i ${D}${prefix}/runtest/controllers +} + +RDEPENDS:${PN} = "\ + attr \ + bash \ + bc \ + coreutils \ + cpio \ + cronie \ + curl \ + e2fsprogs \ + e2fsprogs-mke2fs \ + expect \ + file \ + findutils \ + gawk \ + gdb \ + gzip \ + iproute2 \ + ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'iputils-ping6', '', d)} \ + ldd \ + libaio \ + logrotate \ + net-tools \ + perl \ + python3-core \ + procps \ + quota \ + unzip \ + util-linux \ + which \ + tar \ +" + +RRECOMMENDS:${PN} += "kernel-module-loop" + +FILES:${PN} += "${prefix}/* ${prefix}/runtest/* ${prefix}/scenario_groups/* ${prefix}/testcases/bin/* ${prefix}/testcases/bin/*/bin/* ${prefix}/testscripts/* ${prefix}/testcases/open_posix_testsuite/* ${prefix}/testcases/open_posix_testsuite/conformance/* ${prefix}/testcases/open_posix_testsuite/Documentation/* ${prefix}/testcases/open_posix_testsuite/functional/* ${prefix}/testcases/open_posix_testsuite/include/* ${prefix}/testcases/open_posix_testsuite/scripts/* ${prefix}/testcases/open_posix_testsuite/stress/* ${prefix}/testcases/open_posix_testsuite/tools/* ${prefix}/testcases/data/nm01/lib.a ${prefix}/lib/libmem.a" + +# Avoid stripping some generated binaries otherwise some of the ltp tests such as ldd01 & nm01 fail +INHIBIT_PACKAGE_STRIP_FILES = "${prefix}/testcases/bin/nm01 ${prefix}/testcases/bin/ldd01" +INSANE_SKIP:${PN} += "already-stripped staticdev" + +CACHED_CONFIGUREVARS:libc-musl = "ac_cv_type_struct_mnt_id_req=no ac_cv_type_struct_statmount=no" + +remove_broken_musl_sources() { + [ "${TCLIBC}" = "musl" ] || return 0 + + cd ${S} + echo "WARNING: remove unsupported tests (until they're fixed)" + + # sync with upstream + # https://github.com/linux-test-project/ltp/blob/master/ci/alpine.sh#L33 + rm -rfv \ + testcases/kernel/syscalls/fmtmsg/fmtmsg01.c \ + testcases/kernel/syscalls/getcontext/getcontext01.c \ + testcases/kernel/syscalls/rt_tgsigqueueinfo/rt_tgsigqueueinfo01.c \ + testcases/kernel/syscalls/timer_create/timer_create01.c \ + testcases/kernel/syscalls/timer_create/timer_create03.c \ + testcases/kernel/syscalls/statmount/statmount02.c +} +do_patch[postfuncs] += "remove_broken_musl_sources" + +# Avoid file dependency scans, as LTP checks for things that may or may not +# exist on the running system. For instance it has specific checks for +# csh and ksh which are not typically part of OpenEmbedded systems (but +# can be added via additional layers.) +SKIP_FILEDEPS:${PN} = '1' -- cgit v1.2.3-54-g00ecf