diff options
author | Dave Cobbley <david.j.cobbley@linux.intel.com> | 2018-08-14 20:05:37 +0300 |
---|---|---|
committer | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2018-08-23 04:26:31 +0300 |
commit | eb8dc40360f0cfef56fb6947cc817a547d6d9bc6 (patch) | |
tree | de291a73dc37168da6370e2cf16c347d1eba9df8 /poky/meta/recipes-extended/ltp | |
parent | 9c3cf826d853102535ead04cebc2d6023eff3032 (diff) | |
download | openbmc-eb8dc40360f0cfef56fb6947cc817a547d6d9bc6.tar.xz |
[Subtree] Removing import-layers directory
As part of the move to subtrees, need to bring all the import layers
content to the top level.
Change-Id: I4a163d10898cbc6e11c27f776f60e1a470049d8f
Signed-off-by: Dave Cobbley <david.j.cobbley@linux.intel.com>
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'poky/meta/recipes-extended/ltp')
22 files changed, 1632 insertions, 0 deletions
diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-configure-Fix-default-value-of-without-numa-switch-i.patch b/poky/meta/recipes-extended/ltp/ltp/0001-configure-Fix-default-value-of-without-numa-switch-i.patch new file mode 100644 index 000000000..da62687d5 --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0001-configure-Fix-default-value-of-without-numa-switch-i.patch @@ -0,0 +1,31 @@ +From 4ace68a6ba501907a0741dba5f5f155e06a74c35 Mon Sep 17 00:00:00 2001 +From: Petr Vorel <pvorel@suse.cz> +Date: Wed, 7 Feb 2018 11:09:49 +0100 +Subject: [PATCH] configure: Fix default value of --without-numa switch in help + +The default value is no. + +Fixes: 39a85a1f1 ("configure: add knob to control numa support") + +Signed-off-by: Petr Vorel <pvorel@suse.cz> +Upstream-Status: Accepted +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index b39a31d..d66ea00 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -86,7 +86,7 @@ fi + # Numa + AC_ARG_WITH([numa], + AC_HELP_STRING([--without-numa], +- [without numa support (default=yes)]), ++ [without numa support (default=no)]), + [with_numa=no], + [with_numa=yes] + ) +-- +2.7.4 + diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-configure-add-knob-to-control-numa-support.patch b/poky/meta/recipes-extended/ltp/ltp/0001-configure-add-knob-to-control-numa-support.patch new file mode 100644 index 000000000..8aaa287b7 --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0001-configure-add-knob-to-control-numa-support.patch @@ -0,0 +1,50 @@ +From 39a85a1f1e6624f554215ba4b6843d3689a8415e Mon Sep 17 00:00:00 2001 +From: Anders Roxell <anders.roxell@linaro.org> +Date: Mon, 5 Feb 2018 11:56:04 +0100 +Subject: [PATCH] configure: add knob to control numa support + +Allow to disable numa from the top level. + +Based on patch: +http://cgit.openembedded.org/openembedded-core/commit/meta/recipes-extended/ltp?id=4c7873552e13dfdba96afca7562c398d2966ca71 + +Reported-by: Roy Li <rongqing.li@windriver.com> +Signed-off-by: Anders Roxell <anders.roxell@linaro.org> +Signed-off-by: Petr Vorel <pvorel@suse.cz> +Upstream-Status: Accepted +--- + configure.ac | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 5c8d4ea..b39a31d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -83,6 +83,14 @@ else + AC_SUBST([WITH_EXPECT],["no"]) + fi + ++# Numa ++AC_ARG_WITH([numa], ++ AC_HELP_STRING([--without-numa], ++ [without numa support (default=yes)]), ++ [with_numa=no], ++ [with_numa=yes] ++) ++ + # Perl + AC_ARG_WITH([perl], + [AC_HELP_STRING([--with-perl], +@@ -157,7 +165,9 @@ LTP_CHECK_SELINUX + LTP_CHECK_SIGNAL + LTP_CHECK_SYSCALL_EVENTFD + LTP_CHECK_SYSCALL_MODIFY_LDT ++if test "x$with_numa" = xyes; then + LTP_CHECK_SYSCALL_NUMA ++fi + LTP_CHECK_SYSCALL_QUOTACTL + LTP_CHECK_SYSCALL_SIGNALFD + LTP_CHECK_SYSCALL_UNSHARE +-- +2.7.4 + diff --git a/poky/meta/recipes-extended/ltp/ltp/0003-Add-knob-to-control-tirpc-support.patch b/poky/meta/recipes-extended/ltp/ltp/0003-Add-knob-to-control-tirpc-support.patch new file mode 100644 index 000000000..5cf1e05f7 --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0003-Add-knob-to-control-tirpc-support.patch @@ -0,0 +1,46 @@ +From b193011da301b3d944e8fddcf4817513c31c5b88 Mon Sep 17 00:00:00 2001 +From: Fathi Boudra <fathi.boudra@linaro.org> +Date: Thu, 7 Jan 2016 17:36:19 +0000 +Subject: [PATCH 03/32] Add knob to control tirpc support + +allow to disable tirpc. Helps to disable it at top level for eg. musl it +does not yet work. + +Signed-off-by: Fathi Boudra <fathi.boudra@linaro.org> +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Upstream-Status: Pending +--- + configure.ac | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/configure.ac b/configure.ac +index cc50397..9e2936b 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -98,6 +98,13 @@ if test "x$with_python" = xyes; then + else + AC_SUBST([WITH_PYTHON],["no"]) + fi ++ ++# TI RPC ++AC_ARG_WITH([tirpc], ++ AC_HELP_STRING([--without-tirpc], ++ [without libtirpc support]), ++ [],[with_tirpc=yes], ++) + # END tools knobs + + # Testsuites knobs +@@ -169,7 +176,9 @@ LTP_CHECK_RENAMEAT2 + LTP_CHECK_FALLOCATE + LTP_CHECK_SYSCALL_FCNTL + LTP_CHECK_SYSCALL_PERF_EVENT_OPEN ++if test "x$with_tirpc" = xyes; then + LTP_CHECK_TIRPC ++fi + LTP_CHECK_TEE + LTP_CHECK_SPLICE + LTP_CHECK_VMSPLICE +-- +2.7.0 + diff --git a/poky/meta/recipes-extended/ltp/ltp/0004-build-Add-option-to-select-libc-implementation.patch b/poky/meta/recipes-extended/ltp/ltp/0004-build-Add-option-to-select-libc-implementation.patch new file mode 100644 index 000000000..84ab37ea3 --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0004-build-Add-option-to-select-libc-implementation.patch @@ -0,0 +1,146 @@ +From 53acddddf1b324e06af886ee4639b774e5c8c8bc Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 7 Jan 2016 18:19:03 +0000 +Subject: [PATCH 04/32] build: Add option to select libc implementation + +There are more than glibc for C library implementation available on +linux now a days, uclibc cloaked like glibc but musl e.g. is very +different and does not implement all GNU extentions + +Disable tests specifically not building _yet_ on musl based systems + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Upstream-Status: Pending +--- + Makefile | 5 +++++ + testcases/kernel/Makefile | 5 ++++- + testcases/kernel/sched/Makefile | 4 +++- + testcases/kernel/syscalls/Makefile | 5 +++++ + testcases/network/nfsv4/acl/Makefile | 4 ++++ + testcases/network/rpc/basic_tests/Makefile | 5 +++++ + testcases/realtime/func/pi-tests/Makefile | 4 ++++ + testcases/realtime/stress/pi-tests/Makefile | 5 +++++ + 8 files changed, 35 insertions(+), 2 deletions(-) + +Index: git/Makefile +=================================================================== +--- git.orig/Makefile ++++ git/Makefile +@@ -49,6 +49,11 @@ SKIP_IDCHECK ?= 0 + UCLINUX ?= 0 + export UCLINUX + ++# System C library implementation (glibc,uclibc,musl etc.) ++# default to glibc if not set ++LIBC ?= glibc ++export LIBC ++ + # CLEAN_TARGETS: Targets which exist solely in clean. + # COMMON_TARGETS: Targets which exist in all, clean, and install. + # INSTALL_TARGETS: Targets which exist in clean and install (contains +Index: git/testcases/kernel/Makefile +=================================================================== +--- git.orig/testcases/kernel/Makefile ++++ git/testcases/kernel/Makefile +@@ -48,13 +48,16 @@ SUBDIRS += connectors \ + logging \ + mem \ + numa \ +- pty \ + sched \ + security \ + timers \ + tracing \ + module \ + ++ifneq ($(LIBC),musl) ++SUBDIRS += pty ++endif ++ + ifeq ($(WITH_POWER_MANAGEMENT_TESTSUITE),yes) + SUBDIRS += power_management + endif +Index: git/testcases/kernel/sched/Makefile +=================================================================== +--- git.orig/testcases/kernel/sched/Makefile ++++ git/testcases/kernel/sched/Makefile +@@ -23,5 +23,7 @@ + top_srcdir ?= ../../.. + + include $(top_srcdir)/include/mk/env_pre.mk +- ++ifeq ($(LIBC),musl) ++ FILTER_OUT_DIRS += process_stress ++endif + include $(top_srcdir)/include/mk/generic_trunk_target.mk +Index: git/testcases/kernel/syscalls/Makefile +=================================================================== +--- git.orig/testcases/kernel/syscalls/Makefile ++++ git/testcases/kernel/syscalls/Makefile +@@ -28,6 +28,11 @@ ifeq ($(UCLINUX),1) + FILTER_OUT_DIRS += capget capset chmod chown clone fork getcontext llseek \ + mincore mprotect nftw profil remap_file_pages sbrk + endif ++ifeq ($(LIBC),musl) ++FILTER_OUT_DIRS += confstr fmtmsg getcontext ioctl mallopt profil \ ++ rt_sigsuspend setdomainname sethostname sigsuspend \ ++ ustat ++endif + + ifeq ($(UCLIBC),1) + FILTER_OUT_DIRS += profil +Index: git/testcases/network/nfsv4/acl/Makefile +=================================================================== +--- git.orig/testcases/network/nfsv4/acl/Makefile ++++ git/testcases/network/nfsv4/acl/Makefile +@@ -26,4 +26,8 @@ include $(top_srcdir)/include/mk/env_pre + + LDLIBS += $(ACL_LIBS) + ++ifeq ($(LIBC),musl) ++FILTER_OUT_MAKE_TARGETS := acl1 ++endif ++ + include $(top_srcdir)/include/mk/generic_leaf_target.mk +Index: git/testcases/network/rpc/basic_tests/Makefile +=================================================================== +--- git.orig/testcases/network/rpc/basic_tests/Makefile ++++ git/testcases/network/rpc/basic_tests/Makefile +@@ -23,4 +23,9 @@ + top_srcdir ?= ../../../.. + + include $(top_srcdir)/include/mk/env_pre.mk ++ ++ifeq ($(LIBC),musl) ++FILTER_OUT_DIRS += rpc01 ++endif ++ + include $(top_srcdir)/include/mk/generic_trunk_target.mk +Index: git/testcases/realtime/func/pi-tests/Makefile +=================================================================== +--- git.orig/testcases/realtime/func/pi-tests/Makefile ++++ git/testcases/realtime/func/pi-tests/Makefile +@@ -27,5 +27,9 @@ include $(top_srcdir)/include/mk/env_pre + include $(abs_srcdir)/../../config.mk + + MAKE_TARGETS := testpi-0 testpi-1 testpi-2 testpi-4 testpi-5 testpi-6 testpi-7 sbrk_mutex ++ifeq ($(LIBC),musl) ++FILTER_OUT_MAKE_TARGETS := testpi-5 testpi-6 sbrk_mutex ++endif ++ + + include $(top_srcdir)/include/mk/generic_leaf_target.mk +Index: git/testcases/realtime/stress/pi-tests/Makefile +=================================================================== +--- git.orig/testcases/realtime/stress/pi-tests/Makefile ++++ git/testcases/realtime/stress/pi-tests/Makefile +@@ -24,4 +24,9 @@ top_srcdir ?= ../../../.. + + include $(top_srcdir)/include/mk/env_pre.mk + include $(abs_srcdir)/../../config.mk ++ ++ifeq ($(LIBC),musl) ++FILTER_OUT_MAKE_TARGETS := testpi-3 ++endif ++ + include $(top_srcdir)/include/mk/generic_leaf_target.mk diff --git a/poky/meta/recipes-extended/ltp/ltp/0005-kernel-controllers-Link-with-libfts-explicitly-on-mu.patch b/poky/meta/recipes-extended/ltp/ltp/0005-kernel-controllers-Link-with-libfts-explicitly-on-mu.patch new file mode 100644 index 000000000..b9390e2c8 --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0005-kernel-controllers-Link-with-libfts-explicitly-on-mu.patch @@ -0,0 +1,46 @@ +From 6e3058521b50d91d4b0569c4d491c5af5ff798b2 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 7 Jan 2016 18:22:38 +0000 +Subject: [PATCH 05/32] kernel/controllers: Link with libfts explicitly on musl + +musl does not implement fts like glibc and therefore it depends on +external implementation for all fts APIs + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Upstream-Status: Pending +--- + testcases/kernel/controllers/Makefile.inc | 3 +++ + testcases/kernel/controllers/cpuset/Makefile.inc | 3 +++ + 2 files changed, 6 insertions(+) + +diff --git a/testcases/kernel/controllers/Makefile.inc b/testcases/kernel/controllers/Makefile.inc +index b106283..ef5fc0c 100644 +--- a/testcases/kernel/controllers/Makefile.inc ++++ b/testcases/kernel/controllers/Makefile.inc +@@ -36,6 +36,9 @@ MAKE_DEPS := $(LIB) + CPPFLAGS += -I$(abs_srcdir)/../$(LIBDIR) + + LDFLAGS += -L$(abs_builddir)/../$(LIBDIR) ++ifeq ($(LIBC),musl) ++LDLIBS += -lfts ++endif + + INSTALL_TARGETS ?= *.sh + +diff --git a/testcases/kernel/controllers/cpuset/Makefile.inc b/testcases/kernel/controllers/cpuset/Makefile.inc +index 9e002f4..e0fcb9c 100644 +--- a/testcases/kernel/controllers/cpuset/Makefile.inc ++++ b/testcases/kernel/controllers/cpuset/Makefile.inc +@@ -42,6 +42,9 @@ MAKE_DEPS := $(LIBCONTROLLERS) $(LIBCPUSET) + LDFLAGS += -L$(abs_builddir)/$(LIBCPUSET_DIR) -L$(abs_builddir)/$(LIBCONTROLLERS_DIR) + + LDLIBS += -lcpu_set -lcontrollers -lltp ++ifeq ($(LIBC),musl) ++LDLIBS += -lfts ++endif + + INSTALL_TARGETS ?= *.sh + +-- +2.7.0 + diff --git a/poky/meta/recipes-extended/ltp/ltp/0007-fix-__WORDSIZE-undeclared-when-building-with-musl.patch b/poky/meta/recipes-extended/ltp/ltp/0007-fix-__WORDSIZE-undeclared-when-building-with-musl.patch new file mode 100644 index 000000000..2f4ca6375 --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0007-fix-__WORDSIZE-undeclared-when-building-with-musl.patch @@ -0,0 +1,31 @@ +From d1a27570457fb6e1d6bafe81bfa0f3507b137e32 Mon Sep 17 00:00:00 2001 +From: Dengke Du <dengke.du@windriver.com> +Date: Thu, 9 Feb 2017 18:20:58 +0800 +Subject: [PATCH] fix __WORDSIZE undeclared when building with musl + +fix __WORDSIZE undeclared when building with musl. + +Upstream-Status: Submitted [https://github.com/linux-test-project/ltp/pull/177] + +Signed-off-by: Dengke Du <dengke.du@windriver.com> +--- + include/old/test.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/include/old/test.h b/include/old/test.h +index b36764d83..cc6f1b551 100644 +--- a/include/old/test.h ++++ b/include/old/test.h +@@ -44,6 +44,9 @@ + #include <string.h> + #include <stdlib.h> + #include <stdint.h> ++#ifndef __GLIBC__ ++#include <bits/reg.h> ++#endif + + #include "usctest.h" + +-- +2.11.0 + diff --git a/poky/meta/recipes-extended/ltp/ltp/0008-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch b/poky/meta/recipes-extended/ltp/ltp/0008-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch new file mode 100644 index 000000000..e325ce4e4 --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0008-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch @@ -0,0 +1,283 @@ +From a3cbee31daae2466bc8dcac36b33a01352693346 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 7 Jan 2016 19:40:08 +0000 +Subject: [PATCH 01/26] Check if __GLIBC_PREREQ is defined before using it + +__GLIBC_PREREQ is specific to glibc so it should be checked if it is +defined or not. + +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +Upstream-Status: Pending +--- + testcases/kernel/syscalls/accept4/accept4_01.c | 9 ++++- + testcases/kernel/syscalls/getcpu/getcpu01.c | 40 +++++++++++++++++++++- + .../sched_getaffinity/sched_getaffinity01.c | 26 ++++++++++++++ + 3 files changed, 73 insertions(+), 2 deletions(-) + +diff --git a/testcases/kernel/syscalls/accept4/accept4_01.c b/testcases/kernel/syscalls/accept4/accept4_01.c +index 6072bfa..2b090cb 100644 +--- a/testcases/kernel/syscalls/accept4/accept4_01.c ++++ b/testcases/kernel/syscalls/accept4/accept4_01.c +@@ -64,6 +64,7 @@ static void cleanup(void) + tst_rmdir(); + } + ++#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) + #if !(__GLIBC_PREREQ(2, 10)) + static int + accept4_01(int fd, struct sockaddr *sockaddr, socklen_t *addrlen, int flags) +@@ -82,7 +83,6 @@ accept4_01(int fd, struct sockaddr *sockaddr, socklen_t *addrlen, int flags) + } + tst_resm(TINFO, "\n"); + #endif +- + #if USE_SOCKETCALL + long args[6]; + +@@ -97,6 +97,7 @@ accept4_01(int fd, struct sockaddr *sockaddr, socklen_t *addrlen, int flags) + #endif + } + #endif ++#endif + + static void + do_test(int lfd, struct sockaddr_in *conn_addr, +@@ -119,9 +120,15 @@ do_test(int lfd, struct sockaddr_in *conn_addr, + die("Connect Error"); + + addrlen = sizeof(struct sockaddr_in); ++#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) + #if !(__GLIBC_PREREQ(2, 10)) + acceptfd = accept4_01(lfd, (struct sockaddr *)&claddr, &addrlen, + closeonexec_flag | nonblock_flag); ++ ++#else ++ acceptfd = accept4(lfd, (struct sockaddr *)&claddr, &addrlen, ++ closeonexec_flag | nonblock_flag); ++#endif + #else + acceptfd = accept4(lfd, (struct sockaddr *)&claddr, &addrlen, + closeonexec_flag | nonblock_flag); +diff --git a/testcases/kernel/syscalls/getcpu/getcpu01.c b/testcases/kernel/syscalls/getcpu/getcpu01.c +index c927512..921b107 100644 +--- a/testcases/kernel/syscalls/getcpu/getcpu01.c ++++ b/testcases/kernel/syscalls/getcpu/getcpu01.c +@@ -62,6 +62,7 @@ + #include <dirent.h> + + #if defined(__i386__) || defined(__x86_64__) ++#if defined(__GLIBC__) + #if __GLIBC_PREREQ(2,6) + #if defined(__x86_64__) + #include <utmpx.h> +@@ -75,10 +76,17 @@ int sys_support = 0; + #else + int sys_support = 0; + #endif ++#else ++int sys_support = 0; ++#endif + ++#if defined(__GLIBC__) + #if !(__GLIBC_PREREQ(2, 7)) + #define CPU_FREE(ptr) free(ptr) + #endif ++#else ++#define CPU_FREE(ptr) free(ptr) ++#endif + + void cleanup(void); + void setup(void); +@@ -164,7 +172,11 @@ static inline int getcpu(unsigned *cpu_id, unsigned *node_id, + { + #if defined(__i386__) + return syscall(318, cpu_id, node_id, cache_struct); +-#elif __GLIBC_PREREQ(2,6) ++#elif defined(__GLIBC__) ++#if __GLIBC_PREREQ(2,6) ++ *cpu_id = sched_getcpu(); ++#endif ++#else + *cpu_id = sched_getcpu(); + #endif + return 0; +@@ -191,15 +204,20 @@ unsigned int set_cpu_affinity(void) + cpu_set_t *set; + size_t size; + int nrcpus = 1024; ++#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) + #if __GLIBC_PREREQ(2, 7) + realloc: + set = CPU_ALLOC(nrcpus); + #else + set = malloc(sizeof(cpu_set_t)); + #endif ++#else ++ set = malloc(sizeof(cpu_set_t)); ++#endif + if (set == NULL) { + tst_brkm(TFAIL, NULL, "CPU_ALLOC:errno:%d", errno); + } ++#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) + #if __GLIBC_PREREQ(2, 7) + size = CPU_ALLOC_SIZE(nrcpus); + CPU_ZERO_S(size, set); +@@ -207,8 +225,13 @@ realloc: + size = sizeof(cpu_set_t); + CPU_ZERO(set); + #endif ++#else ++ size = sizeof(cpu_set_t); ++ CPU_ZERO(set); ++#endif + if (sched_getaffinity(0, size, set) < 0) { + CPU_FREE(set); ++#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) + #if __GLIBC_PREREQ(2, 7) + if (errno == EINVAL && nrcpus < (1024 << 8)) { + nrcpus = nrcpus << 2; +@@ -220,10 +243,17 @@ realloc: + "NR_CPUS of the kernel is more than 1024, so we'd better use a newer glibc(>= 2.7)"); + else + #endif ++#else ++ if (errno == EINVAL) ++ tst_resm(TFAIL, ++ "NR_CPUS of the kernel is more than 1024, so we'd better use a newer glibc(>= 2.7)"); ++ else ++#endif + tst_resm(TFAIL, "sched_getaffinity:errno:%d", errno); + tst_exit(); + } + cpu_max = max_cpuid(size, set); ++#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) + #if __GLIBC_PREREQ(2, 7) + CPU_ZERO_S(size, set); + CPU_SET_S(cpu_max, size, set); +@@ -231,6 +261,10 @@ realloc: + CPU_ZERO(set); + CPU_SET(cpu_max, set); + #endif ++#else ++ CPU_ZERO(set); ++ CPU_SET(cpu_max, set); ++#endif + if (sched_setaffinity(0, size, set) < 0) { + CPU_FREE(set); + tst_brkm(TFAIL, NULL, "sched_setaffinity:errno:%d", errno); +@@ -247,11 +281,15 @@ unsigned int max_cpuid(size_t size, cpu_set_t * set) + { + unsigned int index, max = 0; + for (index = 0; index < size * BITS_PER_BYTE; index++) ++#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) + #if __GLIBC_PREREQ(2, 7) + if (CPU_ISSET_S(index, size, set)) + #else + if (CPU_ISSET(index, set)) + #endif ++#else ++ if (CPU_ISSET(index, set)) ++#endif + max = index; + return max; + } +diff --git a/testcases/kernel/syscalls/sched_getaffinity/sched_getaffinity01.c b/testcases/kernel/syscalls/sched_getaffinity/sched_getaffinity01.c +index 9d6a81a..4ed13b2 100644 +--- a/testcases/kernel/syscalls/sched_getaffinity/sched_getaffinity01.c ++++ b/testcases/kernel/syscalls/sched_getaffinity/sched_getaffinity01.c +@@ -66,9 +66,11 @@ do { \ + tst_resm((TEST_RETURN == -1 ? TPASS : TFAIL) | TTERRNO, #t); \ + } while (0) + ++#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) + #if !(__GLIBC_PREREQ(2, 7)) + #define CPU_FREE(ptr) free(ptr) + #endif ++#endif + + int main(int ac, char **av) + { +@@ -95,14 +97,19 @@ static void do_test(void) + pid_t unused_pid; + unsigned len; + ++#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) + #if __GLIBC_PREREQ(2, 7) + realloc: + mask = CPU_ALLOC(nrcpus); + #else + mask = malloc(sizeof(cpu_set_t)); + #endif ++#else ++ mask = malloc(sizeof(cpu_set_t)); ++#endif + if (mask == NULL) + tst_brkm(TFAIL | TTERRNO, cleanup, "fail to get enough memory"); ++#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) + #if __GLIBC_PREREQ(2, 7) + len = CPU_ALLOC_SIZE(nrcpus); + CPU_ZERO_S(len, mask); +@@ -110,10 +117,15 @@ realloc: + len = sizeof(cpu_set_t); + CPU_ZERO(mask); + #endif ++#else ++ len = sizeof(cpu_set_t); ++ CPU_ZERO(mask); ++#endif + /* positive test */ + TEST(sched_getaffinity(0, len, mask)); + if (TEST_RETURN == -1) { + CPU_FREE(mask); ++#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) + #if __GLIBC_PREREQ(2, 7) + if (errno == EINVAL && nrcpus < (1024 << 8)) { + nrcpus = nrcpus << 2; +@@ -125,17 +137,27 @@ realloc: + "newer glibc(>= 2.7)"); + else + #endif ++#else ++ if (errno == EINVAL) ++ tst_resm(TFAIL, "NR_CPUS > 1024, we'd better use a " ++ "newer glibc(>= 2.7)"); ++ else ++#endif + tst_resm(TFAIL | TTERRNO, "fail to get cpu affinity"); + cleanup(); + } else { + tst_resm(TINFO, "cpusetsize is %d", len); + tst_resm(TINFO, "mask.__bits[0] = %lu ", mask->__bits[0]); + for (i = 0; i < num; i++) { ++#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) + #if __GLIBC_PREREQ(2, 7) + TEST(CPU_ISSET_S(i, len, mask)); + #else + TEST(CPU_ISSET(i, mask)); + #endif ++#else ++ TEST(CPU_ISSET(i, mask)); ++#endif + if (TEST_RETURN != -1) + tst_resm(TPASS, "sched_getaffinity() succeed, " + "this process %d is running " +@@ -143,11 +165,15 @@ realloc: + } + } + ++#if defined(__GLIBC__) && defined(__GLIBC_PREREQ) + #if __GLIBC_PREREQ(2, 7) + CPU_ZERO_S(len, mask); + #else + CPU_ZERO(mask); + #endif ++#else ++ CPU_ZERO(mask); ++#endif + /* negative tests */ + QUICK_TEST(sched_getaffinity(0, len, (cpu_set_t *) - 1)); + QUICK_TEST(sched_getaffinity(0, 0, mask)); +-- +1.9.1 + diff --git a/poky/meta/recipes-extended/ltp/ltp/0009-fix-redefinition-of-struct-msgbuf-error-building-wit.patch b/poky/meta/recipes-extended/ltp/ltp/0009-fix-redefinition-of-struct-msgbuf-error-building-wit.patch new file mode 100644 index 000000000..dd7d28319 --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0009-fix-redefinition-of-struct-msgbuf-error-building-wit.patch @@ -0,0 +1,36 @@ +From bf5dd2932200e0199a38f3028d3bef2253f32e38 Mon Sep 17 00:00:00 2001 +From: Dengke Du <dengke.du@windriver.com> +Date: Thu, 9 Feb 2017 17:17:37 +0800 +Subject: [PATCH] fix redefinition of 'struct msgbuf' error building with musl + +When building with musl the file "sys/msg.h" already contain 'struct msgbuf' + +Upstream-Status: Submitted [https://github.com/linux-test-project/ltp/pull/177] + +Signed-off-by: Dengke Du <dengke.du@windriver.com> +--- + testcases/kernel/syscalls/ipc/msgrcv/msgrcv08.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/testcases/kernel/syscalls/ipc/msgrcv/msgrcv08.c b/testcases/kernel/syscalls/ipc/msgrcv/msgrcv08.c +index a757c0d18..e023114d2 100644 +--- a/testcases/kernel/syscalls/ipc/msgrcv/msgrcv08.c ++++ b/testcases/kernel/syscalls/ipc/msgrcv/msgrcv08.c +@@ -47,11 +47,13 @@ const char *TCID = "msgrcv08"; + const int TST_TOTAL = 1; + + #if __WORDSIZE == 32 +- ++#ifdef __GLIBC__ + struct msgbuf { + long mtype; /* message type, must be > 0 */ + char mtext[16]; /* message data */ + }; ++#else ++#endif + + static void msr(int msqid) + { +-- +2.11.0 + diff --git a/poky/meta/recipes-extended/ltp/ltp/0010-replace-__BEGIN_DECLS-and-__END_DECLS.patch b/poky/meta/recipes-extended/ltp/ltp/0010-replace-__BEGIN_DECLS-and-__END_DECLS.patch new file mode 100644 index 000000000..b9fce880f --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0010-replace-__BEGIN_DECLS-and-__END_DECLS.patch @@ -0,0 +1,75 @@ +From 0130f4146ced320aadb01b22e36b13d269a8ebba Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 7 Jan 2016 19:48:14 +0000 +Subject: [PATCH 10/32] replace __BEGIN_DECLS and __END_DECLS + +They are not portable across libc implementations +therefore replace them with expanded macros + +Include <asm-generic/types.h> to get __s32 definitions +its not a generally available typedef + +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +Upstream-Status: Pending +--- + testcases/kernel/syscalls/epoll2/include/epoll.h | 8 ++++++-- + utils/sctp/include/netinet/sctp.h | 9 +++++++-- + 2 files changed, 13 insertions(+), 4 deletions(-) + +diff --git a/testcases/kernel/syscalls/epoll2/include/epoll.h b/testcases/kernel/syscalls/epoll2/include/epoll.h +index be599c7..8cc5e7e 100644 +--- a/testcases/kernel/syscalls/epoll2/include/epoll.h ++++ b/testcases/kernel/syscalls/epoll2/include/epoll.h +@@ -85,7 +85,9 @@ struct epoll_event + } EPOLL_PACKED; + + +-__BEGIN_DECLS ++#ifdef __cplusplus ++extern "C" { ++#endif + + /* Creates an epoll instance. Returns an fd for the new instance. + The "size" parameter is a hint specifying the number of file +@@ -114,6 +116,8 @@ extern int epoll_ctl (int __epfd, int __op, int __fd, + extern int epoll_wait (int __epfd, struct epoll_event *__events, + int __maxevents, int __timeout) __THROW; + +-__END_DECLS ++#ifdef __cplusplus ++} ++#endif + + #endif /* sys/epoll.h */ +diff --git a/utils/sctp/include/netinet/sctp.h b/utils/sctp/include/netinet/sctp.h +index 51f5bfb..c61aef3 100644 +--- a/utils/sctp/include/netinet/sctp.h ++++ b/utils/sctp/include/netinet/sctp.h +@@ -35,9 +35,12 @@ + + #include <stdint.h> + #include <linux/types.h> ++#include <asm-generic/types.h> + #include <sys/socket.h> + +-__BEGIN_DECLS ++#ifdef __cplusplus ++extern "C" { ++#endif + + typedef __s32 sctp_assoc_t; + +@@ -862,6 +865,8 @@ int sctp_recvmsg(int s, void *msg, size_t len, struct sockaddr *from, + /* Return the address length for an address family. */ + int sctp_getaddrlen(sa_family_t family); + +-__END_DECLS ++#ifdef __cplusplus ++} ++#endif + + #endif /* __linux_sctp_h__ */ +-- +2.7.0 + diff --git a/poky/meta/recipes-extended/ltp/ltp/0018-guard-mallocopt-with-__GLIBC__.patch b/poky/meta/recipes-extended/ltp/ltp/0018-guard-mallocopt-with-__GLIBC__.patch new file mode 100644 index 000000000..a79763d00 --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0018-guard-mallocopt-with-__GLIBC__.patch @@ -0,0 +1,33 @@ +From f42b060e80c9f40627c712d4d56d45221bd7d9fa Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 8 Jan 2016 06:51:20 +0000 +Subject: [PATCH 18/32] guard mallocopt() with __GLIBC__ + +mallocopt is not available on non glibc implementations + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Upstream-Status: Pending +--- + utils/benchmark/ebizzy-0.3/ebizzy.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/utils/benchmark/ebizzy-0.3/ebizzy.c b/utils/benchmark/ebizzy-0.3/ebizzy.c +index 5bb8eff..934d951 100644 +--- a/utils/benchmark/ebizzy-0.3/ebizzy.c ++++ b/utils/benchmark/ebizzy-0.3/ebizzy.c +@@ -215,10 +215,10 @@ static void read_options(int argc, char *argv[]) + "\"never mmap\" option specified\n"); + usage(); + } +- ++#ifdef __GLIBC__ + if (never_mmap) + mallopt(M_MMAP_MAX, 0); +- ++#endif + if (chunk_size < record_size) { + fprintf(stderr, "Chunk size %u smaller than record size %u\n", + chunk_size, record_size); +-- +2.7.0 + diff --git a/poky/meta/recipes-extended/ltp/ltp/0020-getdents-define-getdents-getdents64-only-for-glibc.patch b/poky/meta/recipes-extended/ltp/ltp/0020-getdents-define-getdents-getdents64-only-for-glibc.patch new file mode 100644 index 000000000..7060a64b1 --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0020-getdents-define-getdents-getdents64-only-for-glibc.patch @@ -0,0 +1,50 @@ +From aa3568e6ac28f377e75ce16b11e3c7738a373e53 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 8 Jan 2016 06:57:04 +0000 +Subject: [PATCH 20/32] getdents: define getdents/getdents64 only for glibc + +getdents/getdents64 are implemented in musl and when we define static +functions with same name, it errors out. + +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +Upstream-Status: Pending +--- + testcases/kernel/syscalls/getdents/getdents.h | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/testcases/kernel/syscalls/getdents/getdents.h b/testcases/kernel/syscalls/getdents/getdents.h +index abea655..db63d89 100644 +--- a/testcases/kernel/syscalls/getdents/getdents.h ++++ b/testcases/kernel/syscalls/getdents/getdents.h +@@ -34,12 +34,13 @@ struct linux_dirent { + char d_name[]; + }; + ++#ifdef __GLIBC__ + static inline int + getdents(unsigned int fd, struct linux_dirent *dirp, unsigned int size) + { + return ltp_syscall(__NR_getdents, fd, dirp, size); + } +- ++#endif + struct linux_dirent64 { + uint64_t d_ino; + int64_t d_off; +@@ -48,10 +49,11 @@ struct linux_dirent64 { + char d_name[]; + }; + ++#ifdef __GLIBC__ + static inline int + getdents64(unsigned int fd, struct linux_dirent64 *dirp64, unsigned int size) + { + return ltp_syscall(__NR_getdents64, fd, dirp64, size); + } +- ++#endif + #endif /* GETDENTS_H */ +-- +2.7.0 + diff --git a/poky/meta/recipes-extended/ltp/ltp/0021-Define-_GNU_SOURCE-for-MREMAP_MAYMOVE-definition.patch b/poky/meta/recipes-extended/ltp/ltp/0021-Define-_GNU_SOURCE-for-MREMAP_MAYMOVE-definition.patch new file mode 100644 index 000000000..462976da4 --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0021-Define-_GNU_SOURCE-for-MREMAP_MAYMOVE-definition.patch @@ -0,0 +1,70 @@ +From b216435bb362df10c45f544b78d8c884eaa901fd Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 8 Jan 2016 07:01:02 +0000 +Subject: [PATCH 21/32] Define _GNU_SOURCE for MREMAP_MAYMOVE definition + +musl guards MREMAP_MAYMOVE with _GNU_SOURCE unlike glibc which uses +__USE_GNU + +Fixes errors like +error: 'MREMAP_MAYMOVE' undeclared (first use in this function) + +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +Upstream-Status: Pending +--- + testcases/kernel/syscalls/mremap/mremap01.c | 4 +++- + testcases/kernel/syscalls/mremap/mremap02.c | 2 ++ + testcases/kernel/syscalls/mremap/mremap03.c | 2 ++ + 3 files changed, 7 insertions(+), 1 deletion(-) + +Index: git/testcases/kernel/syscalls/mremap/mremap01.c +=================================================================== +--- git.orig/testcases/kernel/syscalls/mremap/mremap01.c ++++ git/testcases/kernel/syscalls/mremap/mremap01.c +@@ -76,10 +76,12 @@ + */ + #include <unistd.h> + #include <errno.h> ++#include <fcntl.h> ++#define _GNU_SOURCE + #define __USE_GNU + #include <sys/mman.h> + #undef __USE_GNU +-#include <fcntl.h> ++#undef _GNU_SOURCE + + #include "test.h" + #include "safe_macros.h" +Index: git/testcases/kernel/syscalls/mremap/mremap02.c +=================================================================== +--- git.orig/testcases/kernel/syscalls/mremap/mremap02.c ++++ git/testcases/kernel/syscalls/mremap/mremap02.c +@@ -75,9 +75,11 @@ + #include <errno.h> + #include <unistd.h> + #include <fcntl.h> ++#define _GNU_SOURCE + #define __USE_GNU + #include <sys/mman.h> + #undef __USE_GNU ++#undef _GNU_SOURCE + + #include "test.h" + +Index: git/testcases/kernel/syscalls/mremap/mremap03.c +=================================================================== +--- git.orig/testcases/kernel/syscalls/mremap/mremap03.c ++++ git/testcases/kernel/syscalls/mremap/mremap03.c +@@ -76,9 +76,11 @@ + #include <errno.h> + #include <unistd.h> + #include <fcntl.h> ++#define _GNU_SOURCE + #define __USE_GNU + #include <sys/mman.h> + #undef __USE_GNU ++#undef _GNU_SOURCE + + #include "test.h" + diff --git a/poky/meta/recipes-extended/ltp/ltp/0023-ptrace-Use-int-instead-of-enum-__ptrace_request.patch b/poky/meta/recipes-extended/ltp/ltp/0023-ptrace-Use-int-instead-of-enum-__ptrace_request.patch new file mode 100644 index 000000000..529f4ed30 --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0023-ptrace-Use-int-instead-of-enum-__ptrace_request.patch @@ -0,0 +1,50 @@ +From 560347f77236616a635b4a997a0596b8da4d0799 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 8 Jan 2016 07:08:25 +0000 +Subject: [PATCH 23/32] ptrace: Use int instead of enum __ptrace_request + +__ptrace_request is only available with glibc + +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +Upstream-Status: Pending +--- + testcases/kernel/syscalls/ptrace/ptrace03.c | 4 ++++ + testcases/kernel/syscalls/ptrace/spawn_ptrace_child.h | 4 ++++ + 2 files changed, 8 insertions(+) + +diff --git a/testcases/kernel/syscalls/ptrace/ptrace03.c b/testcases/kernel/syscalls/ptrace/ptrace03.c +index a4028fc..f1880cd 100644 +--- a/testcases/kernel/syscalls/ptrace/ptrace03.c ++++ b/testcases/kernel/syscalls/ptrace/ptrace03.c +@@ -102,7 +102,11 @@ static pid_t unused_pid; + static pid_t zero_pid; + + struct test_case_t { ++#ifdef __GLIBC__ + enum __ptrace_request request; ++#else ++ int request; ++#endif + pid_t *pid; + int exp_errno; + } test_cases[] = { +diff --git a/testcases/kernel/syscalls/ptrace/spawn_ptrace_child.h b/testcases/kernel/syscalls/ptrace/spawn_ptrace_child.h +index ae538e9..85aa89d 100644 +--- a/testcases/kernel/syscalls/ptrace/spawn_ptrace_child.h ++++ b/testcases/kernel/syscalls/ptrace/spawn_ptrace_child.h +@@ -130,7 +130,11 @@ static char *strings[] = { + SPT(KILL) + SPT(SINGLESTEP) + }; ++#ifdef __GLIBC__ + static inline char *strptrace(enum __ptrace_request request) ++#else ++static inline char *strptrace(int request) ++#endif + { + return strings[request]; + } +-- +2.7.0 + diff --git a/poky/meta/recipes-extended/ltp/ltp/0024-rt_sigaction-rt_sigprocmark-Define-_GNU_SOURCE.patch b/poky/meta/recipes-extended/ltp/ltp/0024-rt_sigaction-rt_sigprocmark-Define-_GNU_SOURCE.patch new file mode 100644 index 000000000..03aa45df8 --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0024-rt_sigaction-rt_sigprocmark-Define-_GNU_SOURCE.patch @@ -0,0 +1,70 @@ +From e01e9862c248dc90a8ec6f2d06f8469d7a50cd8e Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 8 Jan 2016 07:14:58 +0000 +Subject: [PATCH 24/32] rt_sigaction/rt_sigprocmark: Define _GNU_SOURCE + +Fixes musl build failure e.g. +error: 'SA_NOMASK' undeclared here (not in a function) + +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +Upstream-Status: Pending +--- + testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c | 1 + + testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c | 2 +- + testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c | 1 + + testcases/kernel/syscalls/rt_sigprocmask/rt_sigprocmask01.c | 1 + + 4 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c +index 5cf89cc..bdcb91a 100644 +--- a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c ++++ b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c +@@ -28,6 +28,7 @@ + /* sigset_t type. */ + /******************************************************************************/ + ++#define _GNU_SOURCE + #include <stdio.h> + #include <stdlib.h> + #include <unistd.h> +diff --git a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c +index a1da743..8a27a0f 100644 +--- a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c ++++ b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction02.c +@@ -23,7 +23,7 @@ + /* Description: This tests the rt_sigaction() syscall */ + /* rt_sigaction Expected EFAULT error check */ + /******************************************************************************/ +- ++#define _GNU_SOURCE + #include <stdio.h> + #include <stdlib.h> + #include <unistd.h> +diff --git a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c +index 175d220..e7627cd 100644 +--- a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c ++++ b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction03.c +@@ -24,6 +24,7 @@ + /* rt_sigaction Expected EINVAL error check */ + /******************************************************************************/ + ++#define _GNU_SOURCE + #include <stdio.h> + #include <stdlib.h> + #include <unistd.h> +diff --git a/testcases/kernel/syscalls/rt_sigprocmask/rt_sigprocmask01.c b/testcases/kernel/syscalls/rt_sigprocmask/rt_sigprocmask01.c +index 74e5a61..75c57fc 100644 +--- a/testcases/kernel/syscalls/rt_sigprocmask/rt_sigprocmask01.c ++++ b/testcases/kernel/syscalls/rt_sigprocmask/rt_sigprocmask01.c +@@ -39,6 +39,7 @@ + /* sigsetsize should indicate the size of a sigset_t type. */ + /******************************************************************************/ + ++#define _GNU_SOURCE + #include <stdio.h> + #include <signal.h> + #include <errno.h> +-- +2.7.0 + diff --git a/poky/meta/recipes-extended/ltp/ltp/0026-crash01-Define-_GNU_SOURCE.patch b/poky/meta/recipes-extended/ltp/ltp/0026-crash01-Define-_GNU_SOURCE.patch new file mode 100644 index 000000000..f65fad12d --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0026-crash01-Define-_GNU_SOURCE.patch @@ -0,0 +1,31 @@ +From 0133a2b29d6f48d8e2bba6a3be581cdfa91311a6 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 8 Jan 2016 07:21:05 +0000 +Subject: [PATCH 26/32] crash01: Define _GNU_SOURCE + +Fixes musl build errors like +error: 'SA_NOMASK' undeclared (first use in this function) + +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +Upstream-Status: Pending +--- + testcases/misc/crash/crash01.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/testcases/misc/crash/crash01.c b/testcases/misc/crash/crash01.c +index 0574521..08a02e7 100644 +--- a/testcases/misc/crash/crash01.c ++++ b/testcases/misc/crash/crash01.c +@@ -49,7 +49,7 @@ stress test at the same time you run other tests, like a multi-user + benchmark. + + */ +- ++#define _GNU_SOURCE + #include <stdio.h> + #include <stdlib.h> + #include <string.h> +-- +2.7.0 + diff --git a/poky/meta/recipes-extended/ltp/ltp/0028-rt_sigaction.h-Use-sighandler_t-instead-of-__sighand.patch b/poky/meta/recipes-extended/ltp/ltp/0028-rt_sigaction.h-Use-sighandler_t-instead-of-__sighand.patch new file mode 100644 index 000000000..c730d46e6 --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0028-rt_sigaction.h-Use-sighandler_t-instead-of-__sighand.patch @@ -0,0 +1,48 @@ +From 94557fb7e1293c61145c959b8c5ffecf4a2b1069 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 8 Jan 2016 07:24:44 +0000 +Subject: [PATCH 28/32] rt_sigaction.h: Use sighandler_t instead of + __sighandler_t + +When _GNU_SOURCE is used then both typedefs are same and using +sighandler_t makes it work on musl too + +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +Upstream-Status: Pending +--- + include/lapi/rt_sigaction.h | 2 +- + testcases/kernel/syscalls/rt_sigsuspend/Makefile | 3 +++ + 2 files changed, 4 insertions(+), 1 deletion(-) + +Index: git/include/lapi/rt_sigaction.h +=================================================================== +--- git.orig/include/lapi/rt_sigaction.h ++++ git/include/lapi/rt_sigaction.h +@@ -36,12 +36,12 @@ + #if defined(__mips__) + struct kernel_sigaction { + unsigned int sa_flags; +- __sighandler_t k_sa_handler; ++ sighandler_t k_sa_handler; + sigset_t sa_mask; + }; + #else + struct kernel_sigaction { +- __sighandler_t k_sa_handler; ++ sighandler_t k_sa_handler; + unsigned long sa_flags; + void (*sa_restorer) (void); + sigset_t sa_mask; +Index: git/testcases/kernel/syscalls/rt_sigsuspend/Makefile +=================================================================== +--- git.orig/testcases/kernel/syscalls/rt_sigsuspend/Makefile ++++ git/testcases/kernel/syscalls/rt_sigsuspend/Makefile +@@ -19,4 +19,7 @@ + top_srcdir ?= ../../../.. + + include $(top_srcdir)/include/mk/testcases.mk ++ ++CFLAGS += -D_GNU_SOURCE ++ + include $(top_srcdir)/include/mk/generic_leaf_target.mk diff --git a/poky/meta/recipes-extended/ltp/ltp/0034-periodic_output.patch b/poky/meta/recipes-extended/ltp/ltp/0034-periodic_output.patch new file mode 100644 index 000000000..c2ef899cc --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0034-periodic_output.patch @@ -0,0 +1,55 @@ +From 5a77e2bdc083f4f842a8ba7c2db1a7ac6e5f0664 Mon Sep 17 00:00:00 2001 +From: Dengke Du <dengke.du@windriver.com> +Date: Wed, 31 May 2017 21:26:05 -0400 +Subject: [PATCH] Add periodic output for long time test. + +This is needed in context of having scripts running ltp tests and +waiting with a timeout for the output of the tests. + +Signed-off-by: Tudor Florea <tudor.florea@enea.com> +Upstream-Status: Pending + +Signed-off-by: Dengke Du <dengke.du@windriver.com> +--- + .../kernel/controllers/memcg/stress/memcg_stress_test.sh | 11 ++++++++--- + 1 file changed, 8 insertions(+), 3 deletions(-) + +diff --git a/testcases/kernel/controllers/memcg/stress/memcg_stress_test.sh b/testcases/kernel/controllers/memcg/stress/memcg_stress_test.sh +index af1a708..084e628 100755 +--- a/testcases/kernel/controllers/memcg/stress/memcg_stress_test.sh ++++ b/testcases/kernel/controllers/memcg/stress/memcg_stress_test.sh +@@ -37,7 +37,8 @@ if [ "x$(grep -w memory /proc/cgroups | cut -f4)" != "x1" ]; then + exit 0 + fi + +-RUN_TIME=$(( 15 * 60 )) ++ONE_MINUTE=60 ++RUN_TIME=15 + + cleanup() + { +@@ -62,7 +63,7 @@ do_mount() + # $1 - Number of cgroups + # $2 - Allocated how much memory in one process? in MB + # $3 - The interval to touch memory in a process +-# $4 - How long does this test run ? in second ++# $4 - How long does this test run ? in minutes + run_stress() + { + do_mount; +@@ -81,7 +82,11 @@ run_stress() + eval /bin/kill -s SIGUSR1 \$pid$i 2> /dev/null + done + +- sleep $4 ++ for i in $(seq 0 $(($4-1))) ++ do ++ eval echo "Started $i min ago. Still alive... " ++ sleep $ONE_MINUTE ++ done + + for i in $(seq 0 $(($1-1))) + do +-- +2.8.1 + diff --git a/poky/meta/recipes-extended/ltp/ltp/0035-fix-test_proc_kill-hang.patch b/poky/meta/recipes-extended/ltp/ltp/0035-fix-test_proc_kill-hang.patch new file mode 100644 index 000000000..71e32a5e5 --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0035-fix-test_proc_kill-hang.patch @@ -0,0 +1,32 @@ +From f7c602b639db0d118e07d3fa7b6deead0be0c72b Mon Sep 17 00:00:00 2001 +From: Dengke Du <dengke.du@windriver.com> +Date: Wed, 8 Feb 2017 16:17:17 +0800 +Subject: [PATCH 3/5] Fix test_proc_kill hanging + +Sometimes the signal is delivered to memcg_process before the framework took +into consideration its pid entered in the tasks. Fixed by delaying the signal +send command. + +Signed-off-by: George Nita <george.nita@enea.com> +Signed-off-by: Dengke Du <dengke.du@windriver.com> + +Upstream-Status: Pending +--- + testcases/kernel/controllers/memcg/functional/memcg_lib.sh | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/testcases/kernel/controllers/memcg/functional/memcg_lib.sh b/testcases/kernel/controllers/memcg/functional/memcg_lib.sh +index b785fe3..2918cc5 100755 +--- a/testcases/kernel/controllers/memcg/functional/memcg_lib.sh ++++ b/testcases/kernel/controllers/memcg/functional/memcg_lib.sh +@@ -283,6 +283,7 @@ test_proc_kill() + pid=$! + TST_CHECKPOINT_WAIT 0 + echo $pid > tasks ++ sleep 1 + + signal_memcg_process $pid $3 + +-- +2.7.4 + diff --git a/poky/meta/recipes-extended/ltp/ltp/0036-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch b/poky/meta/recipes-extended/ltp/ltp/0036-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch new file mode 100644 index 000000000..04532be79 --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0036-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch @@ -0,0 +1,41 @@ +From 672a56be14426eae44864673c6c2afca0ab89d46 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linux.intel.com> +Date: Fri, 13 May 2016 11:11:28 -0500 +Subject: [PATCH] testcases/network/nfsv4/acl/acl1.c: Security fix on string + printf +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Fixes: + +acl1.c: In function 'test_acl_default': +acl1.c:317:2: error: format not a string literal and no format arguments +[-Werror=format-security] + printf(cmd); + +[YOCTO #9548] + +Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> + +Upstream-Status: Pending +--- + testcases/network/nfsv4/acl/acl1.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/testcases/network/nfsv4/acl/acl1.c b/testcases/network/nfsv4/acl/acl1.c +index b8b67b4..7c7c506 100644 +--- a/testcases/network/nfsv4/acl/acl1.c ++++ b/testcases/network/nfsv4/acl/acl1.c +@@ -314,7 +314,7 @@ void test_acl_default(char *dir, acl_t acl) + char *cmd = malloc(256); + + strcpy(cmd, "chmod 7777 "); +- printf(cmd); ++ printf(cmd, NULL); + strcat(cmd, dir); + system(cmd); + acl2 = acl_get_file(path, ACL_TYPE_ACCESS); +-- +2.1.4 + diff --git a/poky/meta/recipes-extended/ltp/ltp/0039-commands-ar01-Fix-for-test-in-deterministic-mode.patch b/poky/meta/recipes-extended/ltp/ltp/0039-commands-ar01-Fix-for-test-in-deterministic-mode.patch new file mode 100644 index 000000000..e7c927e11 --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0039-commands-ar01-Fix-for-test-in-deterministic-mode.patch @@ -0,0 +1,252 @@ +From 04da9478887e705ea38e4f097492da20e651686c Mon Sep 17 00:00:00 2001 +From: Guangwen Feng <fenggw-fnst@cn.fujitsu.com> +Date: Wed, 13 Sep 2017 15:48:42 +0800 +Subject: [PATCH] commands/ar01: Fix for test in deterministic mode + +If binutils was configured with --enable-deterministic-archives, +ar will run in deterministic mode by default, and use zero for +timestamps and uids/gids, which makes the test case abnormal. + +Fix this by add the "U" modifier when deterministic mode is default. + +Signed-off-by: Guangwen Feng <fenggw-fnst@cn.fujitsu.com> +Signed-off-by: Fei Jie <feij.fnst@cn.fujitsu.com> + +Upstream-Status: Backport +[http://lists.linux.it/pipermail/ltp/2017-September/005668.html] + +Signed-off-by: Yi Zhao <yi.zhao@windriver.com> +--- + testcases/commands/ar/ar01 | 92 ++++++++++++++++++++++++++-------------------- + 1 file changed, 52 insertions(+), 40 deletions(-) + +diff --git a/testcases/commands/ar/ar01 b/testcases/commands/ar/ar01 +index ddab2e0..d688f76 100644 +--- a/testcases/commands/ar/ar01 ++++ b/testcases/commands/ar/ar01 +@@ -23,14 +23,26 @@ + # This is a basic ar command test. + # + TST_CNT=17 ++TST_SETUP=setup + TST_TESTFUNC=test + TST_NEEDS_TMPDIR=1 + . tst_test.sh + ++setup() ++{ ++ ar --help | grep "use zero for timestamps and uids/gids (default)" \ ++ >/dev/null ++ if [ $? -eq 0 ]; then ++ MOD="U" ++ else ++ MOD="" ++ fi ++} ++ + test1() + { +- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in +- ROD ar -ra file1.in lib.a $TST_DATAROOT/file2.in ++ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in ++ ROD ar -ra"$MOD" file1.in lib.a $TST_DATAROOT/file2.in + ROD ar -t lib.a \> ar.out + + printf "file1.in\nfile2.in\nfile3.in\n" > ar.exp +@@ -47,9 +59,9 @@ test1() + + test2() + { +- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ +- $TST_DATAROOT/file3.in $TST_DATAROOT/file4.in +- ROD ar -ma file1.in lib.a file4.in ++ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ ++ $TST_DATAROOT/file3.in $TST_DATAROOT/file4.in ++ ROD ar -ma"$MOD" file1.in lib.a file4.in + ROD ar -t lib.a \> ar.out + + printf "file1.in\nfile4.in\nfile2.in\nfile3.in\n" > ar.exp +@@ -66,8 +78,8 @@ test2() + + test3() + { +- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in +- ROD ar -rb file3.in lib.a $TST_DATAROOT/file2.in ++ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in ++ ROD ar -rb"$MOD" file3.in lib.a $TST_DATAROOT/file2.in + ROD ar -t lib.a \> ar.out + + printf "file1.in\nfile2.in\nfile3.in\n" > ar.exp +@@ -84,9 +96,9 @@ test3() + + test4() + { +- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in \ +- $TST_DATAROOT/file2.in +- ROD ar -mb file3.in lib.a file2.in ++ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in \ ++ $TST_DATAROOT/file2.in ++ ROD ar -mb"$MOD" file3.in lib.a file2.in + ROD ar -t lib.a \> ar.out + + printf "file1.in\nfile2.in\nfile3.in\n" > ar.exp +@@ -103,7 +115,7 @@ test4() + + test5() + { +- ROD ar -cr lib.a $TST_DATAROOT/file1.in \> ar.out ++ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in \> ar.out + + if [ -s ar.out ]; then + tst_res TFAIL "ar produced output unexpectedly (-c)" +@@ -117,7 +129,7 @@ test5() + + test6() + { +- ROD ar -qc lib.a $TST_DATAROOT/file1.in \> ar.out ++ ROD ar -qc"$MOD" lib.a $TST_DATAROOT/file1.in \> ar.out + + if [ -s ar.out ]; then + tst_res TFAIL "ar produced output unexpectedly (-qc)" +@@ -131,9 +143,9 @@ test6() + + test7() + { +- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ +- $TST_DATAROOT/file3.in +- ROD ar -d lib.a file1.in file2.in ++ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ ++ $TST_DATAROOT/file3.in ++ ROD ar -d"$MOD" lib.a file1.in file2.in + ROD ar -t lib.a \> ar.out + + printf "file3.in\n" > ar.exp +@@ -150,9 +162,9 @@ test7() + + test8() + { +- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ +- $TST_DATAROOT/file3.in +- ROD ar -d lib.a ++ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ ++ $TST_DATAROOT/file3.in ++ ROD ar -d"$MOD" lib.a + ROD ar -t lib.a \> ar.out + + printf "file1.in\nfile2.in\nfile3.in\n" > ar.exp +@@ -169,8 +181,8 @@ test8() + + test9() + { +- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in +- ROD ar -ri file3.in lib.a $TST_DATAROOT/file2.in ++ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in ++ ROD ar -ri"$MOD" file3.in lib.a $TST_DATAROOT/file2.in + ROD ar -t lib.a \> ar.out + + printf "file1.in\nfile2.in\nfile3.in\n" > ar.exp +@@ -187,9 +199,9 @@ test9() + + test10() + { +- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in \ +- $TST_DATAROOT/file2.in +- ROD ar -mi file3.in lib.a file2.in ++ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in \ ++ $TST_DATAROOT/file2.in ++ ROD ar -mi"$MOD" file3.in lib.a file2.in + ROD ar -t lib.a \> ar.out + + printf "file1.in\nfile2.in\nfile3.in\n" > ar.exp +@@ -206,9 +218,9 @@ test10() + + test11() + { +- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in \ +- $TST_DATAROOT/file2.in +- ROD ar -m lib.a file3.in ++ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file3.in \ ++ $TST_DATAROOT/file2.in ++ ROD ar -m"$MOD" lib.a file3.in + ROD ar -t lib.a \> ar.out + + printf "file1.in\nfile2.in\nfile3.in\n" > ar.exp +@@ -225,9 +237,9 @@ test11() + + test12() + { +- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ +- $TST_DATAROOT/file3.in +- ROD ar -p lib.a \> ar.out ++ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ ++ $TST_DATAROOT/file3.in ++ ROD ar -p"$MOD" lib.a \> ar.out + + printf "This is file one\nThis is file two\nThis is file three\n" > ar.exp + +@@ -244,9 +256,9 @@ test12() + test13() + { + +- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ +- $TST_DATAROOT/file3.in +- ROD ar -q lib.a $TST_DATAROOT/file4.in ++ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ ++ $TST_DATAROOT/file3.in ++ ROD ar -q"$MOD" lib.a $TST_DATAROOT/file4.in + ROD ar -t lib.a \> ar.out + + printf "file1.in\nfile2.in\nfile3.in\nfile4.in\n" > ar.exp +@@ -264,14 +276,14 @@ test13() + test14() + { + ROD touch file0.in +- ROD ar -cr lib.a file0.in $TST_DATAROOT/file1.in ++ ROD ar -cr"$MOD" lib.a file0.in $TST_DATAROOT/file1.in + + file0_mtime1=$(ar -tv lib.a | grep file0.in) + file1_mtime1=$(ar -tv lib.a | grep file1.in) + + touch -c -t $(date --date='next day' +"%Y%m%d%H%M") file0.in + +- ROD ar -ru lib.a file0.in $TST_DATAROOT/file1.in ++ ROD ar -ru"$MOD" lib.a file0.in $TST_DATAROOT/file1.in + + file0_mtime2=$(ar -tv lib.a | grep file0.in) + file1_mtime2=$(ar -tv lib.a | grep file1.in) +@@ -293,7 +305,7 @@ test14() + + test15() + { +- ROD ar -cr lib.a $TST_DATAROOT/file1.in ++ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in + ROD ar -tv lib.a \> ar.out + + if grep -q '[rwx-]\{9\} [0-9].*/[0-9].*\s*[0-9].*.*file1.in' ar.out; then +@@ -308,9 +320,9 @@ test15() + + test16() + { +- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ +- $TST_DATAROOT/file3.in +- ROD ar -xv lib.a \> ar.out ++ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in \ ++ $TST_DATAROOT/file3.in ++ ROD ar -xv"$MOD" lib.a \> ar.out + + printf "x - file1.in\nx - file2.in\nx - file3.in\n" > ar.exp + +@@ -332,8 +344,8 @@ test16() + + test17() + { +- ROD ar -cr lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in +- ROD ar -xv lib.a file2.in \> ar.out ++ ROD ar -cr"$MOD" lib.a $TST_DATAROOT/file1.in $TST_DATAROOT/file2.in ++ ROD ar -xv"$MOD" lib.a file2.in \> ar.out + + printf "x - file2.in\n" > ar.exp + +-- +2.7.4 + diff --git a/poky/meta/recipes-extended/ltp/ltp/0040-safe_macros-make-is_fuse-return-zero-if-fs_type-is-N.patch b/poky/meta/recipes-extended/ltp/ltp/0040-safe_macros-make-is_fuse-return-zero-if-fs_type-is-N.patch new file mode 100644 index 000000000..5096a85c1 --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp/0040-safe_macros-make-is_fuse-return-zero-if-fs_type-is-N.patch @@ -0,0 +1,40 @@ +From 67af7dbe8bdf29f9ed980d8d29feeae32a0a7a1d Mon Sep 17 00:00:00 2001 +From: Li Wang <liwang@redhat.com> +Date: Tue, 23 Jan 2018 17:46:35 +0800 +Subject: [PATCH] safe_macros: make is_fuse() return zero if fs_type is NULL + +This commmit 28507e514c(safe_mount: Do not try mount() syscall for FUSE fs) +involves FUSE fs check in safe_mount(), but we'd better guarantee the "fs_type" +is legal to check in is_fuse() function otherwise system will kill the program. + + cmdline="fanotify06" + contacts="" + analysis=exit + <<<test_output>>> + tst_test.c:980: INFO: Timeout per run is 0h 10m 00s + tst_test.c:1025: BROK: Test killed by SIGSEGV! + +Signed-off-by: Li Wang <liwang@redhat.com> +Acked-by: Jan Stancek <jstancek@redhat.com> +Upstream-Status: Accepted [https://github.com/linux-test-project/ltp/commit/67af7dbe8bdf29f9ed980d8d29feeae32a0a7a1d] +--- + lib/safe_macros.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/lib/safe_macros.c b/lib/safe_macros.c +index c48e436dc..abdeca013 100644 +--- a/lib/safe_macros.c ++++ b/lib/safe_macros.c +@@ -708,6 +708,9 @@ static int is_fuse(const char *fs_type) + { + unsigned int i; + ++ if (!fs_type) ++ return 0; ++ + for (i = 0; i < ARRAY_SIZE(fuse_fs_types); i++) { + if (!strcmp(fuse_fs_types[i], fs_type)) + return 1; +-- +2.11.0 + diff --git a/poky/meta/recipes-extended/ltp/ltp_20180118.bb b/poky/meta/recipes-extended/ltp/ltp_20180118.bb new file mode 100644 index 000000000..14fb41b3b --- /dev/null +++ b/poky/meta/recipes-extended/ltp/ltp_20180118.bb @@ -0,0 +1,116 @@ +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 = "http://ltp.sourceforge.net" +SECTION = "console/utils" +LICENSE = "GPLv2 & GPLv2+ & LGPLv2+ & LGPLv2.1+ & BSD-2-Clause" +LIC_FILES_CHKSUM = "\ + file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://testcases/kernel/controllers/freezer/COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ + file://testcases/kernel/controllers/freezer/run_freezer.sh;beginline=5;endline=17;md5=86a61d2c042d59836ffb353a21456498 \ + file://testcases/kernel/hotplug/memory_hotplug/COPYING;md5=e04a2e542b2b8629bf9cd2ba29b0fe41 \ + file://testcases/kernel/hotplug/cpu_hotplug/COPYING;md5=e04a2e542b2b8629bf9cd2ba29b0fe41 \ + file://testcases/open_posix_testsuite/COPYING;md5=48b1c5ec633e3e30ec2cf884ae699947 \ + file://testcases/realtime/COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \ + file://tools/pounder21/COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://utils/benchmark/kernbench-0.42/COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ + file://utils/ffsb-6.0-rc2/COPYING;md5=c46082167a314d785d012a244748d803 \ +" + +DEPENDS = "attr libaio libcap acl openssl zip-native" +DEPENDS_append_libc-musl = " fts " +EXTRA_OEMAKE_append_libc-musl = " LIBC=musl " +CFLAGS_append_powerpc64 = " -D__SANE_USERSPACE_TYPES__" +CFLAGS_append_mipsarchn64 = " -D__SANE_USERSPACE_TYPES__" +SRCREV = "731cd34e682d297b207668be8b1d15320a9ac1b1" + +SRC_URI = "git://github.com/linux-test-project/ltp.git \ + file://0001-configure-add-knob-to-control-numa-support.patch \ + file://0001-configure-Fix-default-value-of-without-numa-switch-i.patch \ + file://0003-Add-knob-to-control-tirpc-support.patch \ + file://0004-build-Add-option-to-select-libc-implementation.patch \ + file://0005-kernel-controllers-Link-with-libfts-explicitly-on-mu.patch \ + file://0007-fix-__WORDSIZE-undeclared-when-building-with-musl.patch \ + file://0008-Check-if-__GLIBC_PREREQ-is-defined-before-using-it.patch \ + file://0009-fix-redefinition-of-struct-msgbuf-error-building-wit.patch \ + file://0010-replace-__BEGIN_DECLS-and-__END_DECLS.patch \ + file://0018-guard-mallocopt-with-__GLIBC__.patch \ + file://0020-getdents-define-getdents-getdents64-only-for-glibc.patch \ + file://0021-Define-_GNU_SOURCE-for-MREMAP_MAYMOVE-definition.patch \ + file://0023-ptrace-Use-int-instead-of-enum-__ptrace_request.patch \ + file://0024-rt_sigaction-rt_sigprocmark-Define-_GNU_SOURCE.patch \ + file://0026-crash01-Define-_GNU_SOURCE.patch \ + file://0028-rt_sigaction.h-Use-sighandler_t-instead-of-__sighand.patch \ + file://0034-periodic_output.patch \ + file://0035-fix-test_proc_kill-hang.patch \ + file://0036-testcases-network-nfsv4-acl-acl1.c-Security-fix-on-s.patch \ + file://0039-commands-ar01-Fix-for-test-in-deterministic-mode.patch \ + file://0040-safe_macros-make-is_fuse-return-zero-if-fs_type-is-N.patch \ + " + +S = "${WORKDIR}/git" + +inherit autotools-brokensep + +TARGET_CC_ARCH += "${LDFLAGS}" + +export prefix = "/opt/ltp" +export exec_prefix = "/opt/ltp" + +PACKAGECONFIG[numa] = "--with-numa, --without-numa, numactl," +EXTRA_AUTORECONF += "-I ${S}/testcases/realtime/m4" +EXTRA_OECONF = " --with-power-management-testsuite --with-realtime-testsuite " +# ltp network/rpc test cases ftbfs when libtirpc is found +EXTRA_OECONF += " --without-tirpc " + +do_install(){ + install -d ${D}/opt/ltp/ + oe_runmake DESTDIR=${D} SKIP_IDCHECK=1 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}/opt/ltp/bin/STPfailure_report.pl + + # Copy POSIX test suite into ${D}/opt/ltp/testcases by manual + cp -r testcases/open_posix_testsuite ${D}/opt/ltp/testcases +} + +RDEPENDS_${PN} = "\ + acl \ + at \ + attr \ + bash \ + cpio \ + cronie \ + curl \ + e2fsprogs-mke2fs \ + expect \ + gawk \ + gzip \ + iproute2 \ + ldd \ + libaio \ + logrotate \ + perl \ + python-core \ + procps \ + unzip \ + util-linux \ + which \ + tar \ +" + +FILES_${PN} += "/opt/ltp/* /opt/ltp/runtest/* /opt/ltp/scenario_groups/* /opt/ltp/testcases/bin/* /opt/ltp/testcases/bin/*/bin/* /opt/ltp/testscripts/* /opt/ltp/testcases/open_posix_testsuite/* /opt/ltp/testcases/open_posix_testsuite/conformance/* /opt/ltp/testcases/open_posix_testsuite/Documentation/* /opt/ltp/testcases/open_posix_testsuite/functional/* /opt/ltp/testcases/open_posix_testsuite/include/* /opt/ltp/testcases/open_posix_testsuite/scripts/* /opt/ltp/testcases/open_posix_testsuite/stress/* /opt/ltp/testcases/open_posix_testsuite/tools/* /opt/ltp/testcases/data/nm01/lib.a /opt/ltp/lib/libmem.a" + +# Avoid stripping some generated binaries otherwise some of the ltp tests such as ldd01 & nm01 fail +INHIBIT_PACKAGE_STRIP_FILES = "/opt/ltp/testcases/bin/nm01 /opt/ltp/testcases/bin/ldd01" +INSANE_SKIP_${PN} += "already-stripped staticdev" + +# 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' |