[OE-core] [PATCH V2 1/1] ltp: upgrade to upstream latest commit on 20170804

Burton, Ross ross.burton at intel.com
Wed Aug 9 20:47:19 UTC 2017


Breaks with musl:

http://errors.yoctoproject.org/Errors/Details/150199/

Ross

On 4 August 2017 at 11:00, Dengke Du <dengke.du at windriver.com> wrote:

> drop 4 patches because the upstream already contains them:
>
>     0001-dirtyc0w-Include-stdint.h.patch
>     0006-fix-PATH_MAX-undeclared-when-building-with-musl.patch
>     0037-faccessat-and-fchmodat-Fix-build-warnings.patch
>     0038-syscalls-add_key02-update-to-test-fix-for-nonempty-N.patch
>
> drop the do_compile_prepend function, because the upstream already fix
> the parallel make race, we can check it here:
>
>     https://github.com/linux-test-project/ltp/commit/
> 3f385652efe811fe7491474f8513baf44cf0a12d
>
> Signed-off-by: Dengke Du <dengke.du at windriver.com>
> ---
>  .../ltp/ltp/0001-dirtyc0w-Include-stdint.h.patch   |  34 ------
>  ...TH_MAX-undeclared-when-building-with-musl.patch |  31 -----
>  ...faccessat-and-fchmodat-Fix-build-warnings.patch |  68 -----------
>  ...d_key02-update-to-test-fix-for-nonempty-N.patch | 136
> ---------------------
>  meta/recipes-extended/ltp/ltp_20170516.bb          |  14 +--
>  5 files changed, 1 insertion(+), 282 deletions(-)
>  delete mode 100644 meta/recipes-extended/ltp/ltp/
> 0001-dirtyc0w-Include-stdint.h.patch
>  delete mode 100644 meta/recipes-extended/ltp/ltp/
> 0006-fix-PATH_MAX-undeclared-when-building-with-musl.patch
>  delete mode 100644 meta/recipes-extended/ltp/ltp/
> 0037-faccessat-and-fchmodat-Fix-build-warnings.patch
>  delete mode 100644 meta/recipes-extended/ltp/ltp/0038-syscalls-add_key02-
> update-to-test-fix-for-nonempty-N.patch
>
> diff --git a/meta/recipes-extended/ltp/ltp/0001-dirtyc0w-Include-stdint.h.patch
> b/meta/recipes-extended/ltp/ltp/0001-dirtyc0w-Include-stdint.h.patch
> deleted file mode 100644
> index 5c73be4..0000000
> --- a/meta/recipes-extended/ltp/ltp/0001-dirtyc0w-Include-stdint.h.patch
> +++ /dev/null
> @@ -1,34 +0,0 @@
> -From 1b30d8dac1a37dc0abbb3b545db2824d6489e23f Mon Sep 17 00:00:00 2001
> -From: Khem Raj <raj.khem at gmail.com>
> -Date: Fri, 9 Jun 2017 09:32:13 -0700
> -Subject: [PATCH] dirtyc0w: Include stdint.h
> -
> -uintptr_t is defined in stdint.h
> -
> -Fixes
> -| dirtyc0w_child.c:76:15: error: 'uintptr_t' undeclared (first use in
> this function); did you mean 'intptr_t'?
> -|    lseek(mfd, (uintptr_t) map, SEEK_SET);
> -|                ^~~~~~~~~
> -
> -Signed-off-by: Khem Raj <raj.khem at gmail.com>
> ----
> -Upstream-Status: Submitted
> -
> - testcases/kernel/security/dirtyc0w/dirtyc0w_child.c | 1 +
> - 1 file changed, 1 insertion(+)
> -
> -diff --git a/testcases/kernel/security/dirtyc0w/dirtyc0w_child.c
> b/testcases/kernel/security/dirtyc0w/dirtyc0w_child.c
> -index 5328a9bc4..49abdd6ba 100644
> ---- a/testcases/kernel/security/dirtyc0w/dirtyc0w_child.c
> -+++ b/testcases/kernel/security/dirtyc0w/dirtyc0w_child.c
> -@@ -23,6 +23,7 @@
> - #include <sys/stat.h>
> - #include <string.h>
> - #include <stdlib.h>
> -+#include <stdint.h>
> - #include <pwd.h>
> -
> - #include "tst_safe_pthread.h"
> ---
> -2.13.1
> -
> diff --git a/meta/recipes-extended/ltp/ltp/0006-fix-PATH_MAX-
> undeclared-when-building-with-musl.patch b/meta/recipes-extended/ltp/
> ltp/0006-fix-PATH_MAX-undeclared-when-building-with-musl.patch
> deleted file mode 100644
> index 020ddfe..0000000
> --- a/meta/recipes-extended/ltp/ltp/0006-fix-PATH_MAX-
> undeclared-when-building-with-musl.patch
> +++ /dev/null
> @@ -1,31 +0,0 @@
> -From b906ec2fe4711a727e198cd9259287c042eef8e2 Mon Sep 17 00:00:00 2001
> -From: Dengke Du <dengke.du at windriver.com>
> -Date: Thu, 9 Feb 2017 16:41:12 +0800
> -Subject: [PATCH] fix PATH_MAX undeclared when building with musl
> -
> -fix PATH_MAX undeclared when building with musl.
> -
> -Upstream-Status: Submitted [https://github.com/linux-
> test-project/ltp/pull/176]
> -
> -Signed-off-by: Dengke Du <dengke.du at windriver.com>
> ----
> - include/tst_test.h | 3 +++
> - 1 file changed, 3 insertions(+)
> -
> -diff --git a/include/tst_test.h b/include/tst_test.h
> -index 335c82684..4dfa1511b 100644
> ---- a/include/tst_test.h
> -+++ b/include/tst_test.h
> -@@ -23,6 +23,9 @@
> - #endif /* __TEST_H__ */
> -
> - #include <unistd.h>
> -+#ifndef __GLIBC__
> -+#include <limits.h>
> -+#endif
> -
> - #include "tst_common.h"
> - #include "tst_res_flags.h"
> ---
> -2.11.0
> -
> diff --git a/meta/recipes-extended/ltp/ltp/0037-faccessat-and-
> fchmodat-Fix-build-warnings.patch b/meta/recipes-extended/ltp/
> ltp/0037-faccessat-and-fchmodat-Fix-build-warnings.patch
> deleted file mode 100644
> index 99497d6..0000000
> --- a/meta/recipes-extended/ltp/ltp/0037-faccessat-and-
> fchmodat-Fix-build-warnings.patch
> +++ /dev/null
> @@ -1,68 +0,0 @@
> -From 4141bdb441f7576a2e73abeb2a0fb1c7b8bd8647 Mon Sep 17 00:00:00 2001
> -From: Naresh Kamboju <naresh.kamboju at linaro.org>
> -Date: Mon, 19 Jun 2017 19:01:21 +0530
> -Subject: [PATCH 1/7] faccessat and fchmodat: Fix build warnings
> -MIME-Version: 1.0
> -Content-Type: text/plain; charset=UTF-8
> -Content-Transfer-Encoding: 8bit
> -
> -Fixing below build warnings.
> -
> -ltp-full-20170516/testcases/kernel/syscalls/faccessat$ make
> -In file included from ../../../../include/old/test.h:51:0,
> -                 from faccessat01.c:44:
> -faccessat01.c: In function ‘setup’:
> -../../../../include/old/old_safe_file_ops.h:55:27:
> -warning: format not a string literal and no format arguments
> [-Wformat-security]
> -                   (path), (fmt), ## __VA_ARGS__)
> -                           ^
> -faccessat01.c:132:2: note: in expansion of macro ‘SAFE_FILE_PRINTF’
> -  SAFE_FILE_PRINTF(cleanup, testfile, testfile);
> -  ^
> -../../../../include/old/old_safe_file_ops.h:55:27:
> -warning: format not a string literal and no format arguments
> [-Wformat-security]
> -                   (path), (fmt), ## __VA_ARGS__)
> -                           ^
> -faccessat01.c:133:2: note: in expansion of macro ‘SAFE_FILE_PRINTF’
> -  SAFE_FILE_PRINTF(cleanup, testfile2, testfile2);
> -
> -Signed-off-by: Naresh Kamboju <naresh.kamboju at linaro.org>
> -Upstream-Status: Accepted [https://github.com/linux-
> test-project/ltp/commit/4141bdb441f7576a2e73abeb2a0fb1c7b8bd8647]
> ----
> - testcases/kernel/syscalls/faccessat/faccessat01.c | 4 ++--
> - testcases/kernel/syscalls/fchmodat/fchmodat01.c   | 4 ++--
> - 2 files changed, 4 insertions(+), 4 deletions(-)
> -
> -diff --git a/testcases/kernel/syscalls/faccessat/faccessat01.c
> b/testcases/kernel/syscalls/faccessat/faccessat01.c
> -index 622dfd3b0..def7fa755 100644
> ---- a/testcases/kernel/syscalls/faccessat/faccessat01.c
> -+++ b/testcases/kernel/syscalls/faccessat/faccessat01.c
> -@@ -129,8 +129,8 @@ void setup(void)
> -       fds[0] = SAFE_OPEN(cleanup, pathname, O_DIRECTORY);
> -       fds[1] = fds[4] = fds[0];
> -
> --      SAFE_FILE_PRINTF(cleanup, testfile, testfile);
> --      SAFE_FILE_PRINTF(cleanup, testfile2, testfile2);
> -+      SAFE_FILE_PRINTF(cleanup, testfile, "%s", testfile);
> -+      SAFE_FILE_PRINTF(cleanup, testfile2, "%s", testfile2);
> -
> -       fds[2] = SAFE_OPEN(cleanup, testfile3, O_CREAT | O_RDWR, 0600);
> -
> -diff --git a/testcases/kernel/syscalls/fchmodat/fchmodat01.c
> b/testcases/kernel/syscalls/fchmodat/fchmodat01.c
> -index 6bf66d8b8..7856ed3fa 100644
> ---- a/testcases/kernel/syscalls/fchmodat/fchmodat01.c
> -+++ b/testcases/kernel/syscalls/fchmodat/fchmodat01.c
> -@@ -127,8 +127,8 @@ void setup(void)
> -       fds[0] = SAFE_OPEN(cleanup, pathname, O_DIRECTORY);
> -       fds[1] = fds[4] = fds[0];
> -
> --      SAFE_FILE_PRINTF(cleanup, testfile, testfile);
> --      SAFE_FILE_PRINTF(cleanup, testfile2, testfile2);
> -+      SAFE_FILE_PRINTF(cleanup, testfile, "%s", testfile);
> -+      SAFE_FILE_PRINTF(cleanup, testfile2, "%s", testfile2);
> -
> -       fds[2] = SAFE_OPEN(cleanup, testfile3, O_CREAT | O_RDWR, 0600);
> -       fds[3] = 100;
> ---
> -2.13.0
> -
> diff --git a/meta/recipes-extended/ltp/ltp/0038-syscalls-add_key02-
> update-to-test-fix-for-nonempty-N.patch b/meta/recipes-extended/ltp/
> ltp/0038-syscalls-add_key02-update-to-test-fix-for-nonempty-N.patch
> deleted file mode 100644
> index 3759e1f..0000000
> --- a/meta/recipes-extended/ltp/ltp/0038-syscalls-add_key02-
> update-to-test-fix-for-nonempty-N.patch
> +++ /dev/null
> @@ -1,136 +0,0 @@
> -From 25045624e941ee76a13febd36187e23c6c435507 Mon Sep 17 00:00:00 2001
> -From: Eric Biggers <ebiggers at google.com>
> -Date: Mon, 12 Jun 2017 11:55:21 -0700
> -Subject: [PATCH 01/39] syscalls/add_key02: update to test fix for nonempty
> - NULL payload
> -
> -add_key02 was supposed to be a "Basic test for the add_key() syscall",
> -but it actually happened to test the obscure case of passing a NULL
> -payload with nonzero length.  This case was mishandled by the kernel,
> -which either returned EINVAL or crashed with a NULL pointer dereference,
> -depending on the key type.  (The former applied to the test, as it used
> -the "user" key type.)  The expected behavior in this case is that the
> -syscall fail with EFAULT.
> -
> -Update the test to expect the fixed behavior from v4.12-rc5, and make
> -the test more thorough by testing additional key types, including ones
> -that caused a NULL pointer dereference in unfixed kernels.
> -
> -Signed-off-by: Eric Biggers <ebiggers at google.com>
> -Upstream-Status: Accepted [https://github.com/linux-
> test-project/ltp/commit/25045624e941ee76a13febd36187e23c6c435507]
> ----
> - testcases/kernel/syscalls/add_key/add_key02.c | 69
> ++++++++++++++++++++-------
> - 1 file changed, 51 insertions(+), 18 deletions(-)
> -
> -diff --git a/testcases/kernel/syscalls/add_key/add_key02.c
> b/testcases/kernel/syscalls/add_key/add_key02.c
> -index 866800d6f..2e3308dcd 100644
> ---- a/testcases/kernel/syscalls/add_key/add_key02.c
> -+++ b/testcases/kernel/syscalls/add_key/add_key02.c
> -@@ -1,5 +1,6 @@
> - /***********************************************************
> *******************
> -  * Copyright (c) Crackerjack Project., 2007
>    *
> -+ * Copyright (c) 2017 Google, Inc.
>       *
> -  *
>     *
> -  * This program is free software;  you can redistribute it and/or
> modify      *
> -  * it under the terms of the GNU General Public License as published by
>      *
> -@@ -18,10 +19,17 @@
> -  ************************************************************
> ******************/
> -
> - /*
> -- * Basic test for the add_key() syscall.
> -+ * Test that the add_key() syscall correctly handles a NULL payload with
> nonzero
> -+ * length.  Specifically, it should fail with EFAULT rather than oopsing
> the
> -+ * kernel with a NULL pointer dereference or failing with EINVAL, as it
> did
> -+ * before (depending on the key type).  This is a regression test for
> commit
> -+ * 5649645d725c ("KEYS: fix dereferencing NULL payload with nonzero
> length").
> -  *
> -- * History:   Porting from Crackerjack to LTP is done by
> -- *          Manas Kumar Nayak maknayak at in.ibm.com>
> -+ * Note that none of the key types that exhibited the NULL pointer
> dereference
> -+ * are guaranteed to be built into the kernel, so we just test as many
> as we
> -+ * can, in the hope of catching one.  We also test with the "user" key
> type for
> -+ * good measure, although it was one of the types that failed with
> EINVAL rather
> -+ * than dereferencing NULL.
> -  */
> -
> - #include "config.h"
> -@@ -33,36 +41,61 @@
> -
> - #ifdef HAVE_LINUX_KEYCTL_H
> - struct tcase {
> --      char *type;
> --      char *desc;
> --      void *payload;
> --      int plen;
> --      int exp_errno;
> -+      const char *type;
> -+      size_t plen;
> - } tcases[] = {
> --      {"user", "firstkey", NULL, 1, EINVAL}
> -+      /*
> -+       * The payload length we test for each key type needs to pass
> initial
> -+       * validation but is otherwise arbitrary.  Note: the "rxrpc_s" key
> type
> -+       * requires a payload of exactly 8 bytes.
> -+       */
> -+      { "asymmetric",         64 },
> -+      { "cifs.idmap",         64 },
> -+      { "cifs.spnego",        64 },
> -+      { "pkcs7_test",         64 },
> -+      { "rxrpc",              64 },
> -+      { "rxrpc_s",             8 },
> -+      { "user",               64 },
> - };
> - #endif /* HAVE_LINUX_KEYCTL_H */
> -
> - static void verify_add_key(unsigned int i)
> - {
> - #ifdef HAVE_LINUX_KEYCTL_H
> --      TEST(tst_syscall(__NR_add_key, tcases[i].type, tcases[i].desc,
> --                       tcases[i].payload, tcases[i].plen,
> --                       KEY_SPEC_USER_KEYRING));
> -+      TEST(tst_syscall(__NR_add_key, tcases[i].type, "abc:def",
> -+                       NULL, tcases[i].plen, KEY_SPEC_PROCESS_KEYRING));
> -
> -       if (TEST_RETURN != -1) {
> --              tst_res(TFAIL, "add_key() passed unexpectedly");
> -+              tst_res(TFAIL,
> -+                      "add_key() with key type '%s' unexpectedly
> succeeded",
> -+                      tcases[i].type);
> -               return;
> -       }
> -
> --      if (TEST_ERRNO == tcases[i].exp_errno) {
> --              tst_res(TPASS | TTERRNO, "add_key() failed expectedly");
> -+      if (TEST_ERRNO == EFAULT) {
> -+              tst_res(TPASS, "received expected EFAULT with key type
> '%s'",
> -+                      tcases[i].type);
> -               return;
> -       }
> -
> --      tst_res(TFAIL | TTERRNO,
> --              "add_key() failed unexpectedly, expected %s",
> --              tst_strerrno(tcases[i].exp_errno));
> -+      if (TEST_ERRNO == ENODEV) {
> -+              tst_res(TCONF, "kernel doesn't support key type '%s'",
> -+                      tcases[i].type);
> -+              return;
> -+      }
> -+
> -+      /*
> -+       * It's possible for the "asymmetric" key type to be supported,
> but with
> -+       * no asymmetric key parsers registered.  In that case, attempting
> to
> -+       * add a key of type asymmetric will fail with EBADMSG.
> -+       */
> -+      if (TEST_ERRNO == EBADMSG && !strcmp(tcases[i].type,
> "asymmetric")) {
> -+              tst_res(TCONF, "no asymmetric key parsers are registered");
> -+              return;
> -+      }
> -+
> -+      tst_res(TFAIL | TTERRNO, "unexpected error with key type '%s'",
> -+              tcases[i].type);
> - #else
> -       tst_brk(TCONF, "linux/keyctl.h was missing upon compilation.");
> - #endif /* HAVE_LINUX_KEYCTL_H */
> ---
> -2.13.0
> -
> diff --git a/meta/recipes-extended/ltp/ltp_20170516.bb
> b/meta/recipes-extended/ltp/ltp_20170516.bb
> index 86b8012..46c9741 100644
> --- a/meta/recipes-extended/ltp/ltp_20170516.bb
> +++ b/meta/recipes-extended/ltp/ltp_20170516.bb
> @@ -21,7 +21,7 @@ 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 = "6c6c6ca40afb3611e52486f670085762ff451e91"
> +SRCREV = "18916a2e6d8c997b7b29dcfa9550d5a15b22ed22"
>
>  SRC_URI = "git://github.com/linux-test-project/ltp.git \
>             file://0001-add-_GNU_SOURCE-to-pec_listener.c.patch \
> @@ -29,7 +29,6 @@ SRC_URI = "git://github.com/linux-test-project/ltp.git \
>             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://0006-fix-PATH_MAX-undeclared-when-building-with-musl.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
> \
> @@ -49,9 +48,6 @@ SRC_URI = "git://github.com/linux-test-project/ltp.git \
>             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://0001-dirtyc0w-Include-stdint.h.patch \
> -           file://0037-faccessat-and-fchmodat-Fix-build-warnings.patch \
> -           file://0038-syscalls-add_key02-update-to-test-fix-for-nonempty-N.patch
> \
>             "
>
>  S = "${WORKDIR}/git"
> @@ -69,14 +65,6 @@ EXTRA_OECONF = " --with-power-management-testsuite
> --with-realtime-testsuite "
>  # ltp network/rpc test cases ftbfs when libtirpc is found
>  EXTRA_OECONF += " --without-tirpc "
>
> -# The makefiles make excessive use of make -C and several include
> testcases.mk
> -# which triggers a build of the syscall header. To reproduce, build ltp,
> -# then delete the header, then "make -j XX" and watch regen.sh run
> multiple
> -# times. Its easier to generate this once here instead.
> -do_compile_prepend () {
> -       ( make -C ${B}/testcases/kernel include/linux_syscall_numbers.h )
> -}
> -
>  do_install(){
>      install -d ${D}/opt/ltp/
>      oe_runmake DESTDIR=${D} SKIP_IDCHECK=1 install
> --
> 2.7.4
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20170809/5debc359/attachment-0002.html>


More information about the Openembedded-core mailing list