Hello community,

here is the log from the commit of package strace for openSUSE:Factory checked 
in at 2018-01-29 14:56:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/strace (Old)
 and      /work/SRC/openSUSE:Factory/.strace.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "strace"

Mon Jan 29 14:56:22 2018 rev:64 rq:570361 version:4.20

Changes:
--------
--- /work/SRC/openSUSE:Factory/strace/strace.changes    2017-11-18 
00:19:23.107283400 +0100
+++ /work/SRC/openSUSE:Factory/.strace.new/strace.changes       2018-01-29 
14:56:37.036877617 +0100
@@ -1,0 +2,5 @@
+Thu Jan 25 15:04:49 UTC 2018 - jsl...@suse.com
+
+- add update-futex-test-in-accordance-with-kernel-s-v4.15-.patch
+
+-------------------------------------------------------------------

New:
----
  update-futex-test-in-accordance-with-kernel-s-v4.15-.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ strace.spec ++++++
--- /var/tmp/diff_new_pack.FFjHmX/_old  2018-01-29 14:56:37.884838000 +0100
+++ /var/tmp/diff_new_pack.FFjHmX/_new  2018-01-29 14:56:37.888837814 +0100
@@ -29,6 +29,7 @@
 Source2:        
http://downloads.sourceforge.net/strace/%{name}-%{version}.tar.xz.asc
 Source3:        %{name}.keyring
 Source4:        baselibs.conf
+Patch0:         update-futex-test-in-accordance-with-kernel-s-v4.15-.patch
 BuildRequires:  haveged
 BuildRequires:  libacl-devel
 BuildRequires:  libaio-devel
@@ -54,6 +55,7 @@
 
 %prep
 %setup -q
+%patch0 -p1
 
 %build
 %configure


++++++ update-futex-test-in-accordance-with-kernel-s-v4.15-.patch ++++++
From: Eugene Syromyatnikov <evg...@gmail.com>
Date: Wed, 24 Jan 2018 09:55:50 -0500
Subject: Update futex test in accordance with kernel's v4.15-rc7-202-gfbe0e83
Patch-mainline: yes
References: fix new kernels

* futex.c (VALP, VALP_PR, VAL2P, VAL2P_PR): New macro definitions.
(main): Allow EINVAL on *REQUEUE* checks with VAL/VAL2 with higher bit
being set, check that the existing behaviour preserved with VALP/VAL2P
where higher bit is unset.

Signed-off-by: Jiri Slaby <jsl...@suse.cz>
---
 tests/futex.c | 54 +++++++++++++++++++++++++++++++++++++++++++-----------
 1 file changed, 43 insertions(+), 11 deletions(-)

diff --git a/tests/futex.c b/tests/futex.c
index 41e9d1bf048e..833a20f9591c 100644
--- a/tests/futex.c
+++ b/tests/futex.c
@@ -152,14 +152,20 @@ void invalid_op(int *val, int op, uint32_t argmask, ...)
        } while (0)
 
 /* Value which differs from one stored in int *val */
-# define VAL     ((unsigned long) 0xbadda7a0facefeedLLU)
-# define VAL_PR  ((unsigned) VAL)
+# define VAL      ((unsigned long) 0xbadda7a0facefeedLLU)
+# define VAL_PR   ((unsigned) VAL)
 
-# define VAL2    ((unsigned long) 0xbadda7a0ca7b100dLLU)
-# define VAL2_PR ((unsigned) VAL2)
+# define VALP     ((unsigned long) 0xbadda7a01acefeedLLU)
+# define VALP_PR  ((unsigned) VALP)
 
-# define VAL3    ((unsigned long) 0xbadda7a09caffee1LLU)
-# define VAL3_PR ((unsigned) VAL3)
+# define VAL2     ((unsigned long) 0xbadda7a0ca7b100dLLU)
+# define VAL2_PR  ((unsigned) VAL2)
+
+# define VAL2P    ((unsigned long) 0xbadda7a07a7b100dLLU)
+# define VAL2P_PR ((unsigned) VAL2P)
+
+# define VAL3     ((unsigned long) 0xbadda7a09caffee1LLU)
+# define VAL3_PR  ((unsigned) VAL3)
 
 int
 main(int argc, char *argv[])
@@ -419,16 +425,26 @@ main(int argc, char *argv[])
 
        /* Trying to re-queue some processes but there's nothing to re-queue */
        CHECK_FUTEX(uaddr, FUTEX_REQUEUE, VAL, VAL2, uaddr2, VAL3,
-               (rc == 0));
+               (rc == 0) || ((rc == -1) && (errno == EINVAL)));
        printf("futex(%p, FUTEX_REQUEUE, %u, %u, %p) = %s\n",
                uaddr, VAL_PR, VAL2_PR, uaddr2, sprintrc(rc));
 
+       CHECK_FUTEX(uaddr, FUTEX_REQUEUE, VALP, VAL2P, uaddr2, VAL3,
+               (rc == 0));
+       printf("futex(%p, FUTEX_REQUEUE, %u, %u, %p) = %s\n",
+               uaddr, VALP_PR, VAL2P_PR, uaddr2, sprintrc(rc));
+
        /* Trying to re-queue some processes but there's nothing to re-queue */
        CHECK_FUTEX_ENOSYS(uaddr, FUTEX_PRIVATE_FLAG | FUTEX_REQUEUE, VAL, VAL2,
-               uaddr2, VAL3, (rc == 0));
+               uaddr2, VAL3, (rc == 0) || ((rc == -1) && (errno == EINVAL)));
        printf("futex(%p, FUTEX_REQUEUE_PRIVATE, %u, %u, %p) = %s\n",
                uaddr, VAL_PR, VAL2_PR, uaddr2, sprintrc(rc));
 
+       CHECK_FUTEX_ENOSYS(uaddr, FUTEX_PRIVATE_FLAG | FUTEX_REQUEUE, VALP,
+               VAL2P, uaddr2, VAL3, (rc == 0));
+       printf("futex(%p, FUTEX_REQUEUE_PRIVATE, %u, %u, %p) = %s\n",
+               uaddr, VALP_PR, VAL2P_PR, uaddr2, sprintrc(rc));
+
        CHECK_INVALID_CLOCKRT(FUTEX_REQUEUE, ARG3 | ARG4 | ARG5, "%u", "%u",
                "%#lx");
 
@@ -445,22 +461,38 @@ main(int argc, char *argv[])
 
        /* Comparison re-queue with wrong val value */
        CHECK_FUTEX(uaddr, FUTEX_CMP_REQUEUE, VAL, VAL2, uaddr2, VAL3,
-               (rc == -1) && (errno == EAGAIN));
+               (rc == -1) && (errno == EAGAIN || errno == EINVAL));
        printf("futex(%p, FUTEX_CMP_REQUEUE, %u, %u, %p, %u) = %s\n",
                uaddr, VAL_PR, VAL2_PR, uaddr2, VAL3_PR, sprintrc(rc));
 
+       CHECK_FUTEX(uaddr, FUTEX_CMP_REQUEUE, VALP, VAL2P, uaddr2, VAL3,
+               (rc == -1) && (errno == EAGAIN));
+       printf("futex(%p, FUTEX_CMP_REQUEUE, %u, %u, %p, %u) = %s\n",
+               uaddr, VALP_PR, VAL2P_PR, uaddr2, VAL3_PR, sprintrc(rc));
+
        /* Successful comparison re-queue */
        CHECK_FUTEX(uaddr, FUTEX_CMP_REQUEUE, VAL, VAL2, uaddr2, *uaddr,
-               (rc == 0));
+               (rc == 0) || ((rc == -1) && (errno == EINVAL)));
        printf("futex(%p, FUTEX_CMP_REQUEUE, %u, %u, %p, %u) = %s\n",
                uaddr, VAL_PR, VAL2_PR, uaddr2, *uaddr, sprintrc(rc));
 
+       CHECK_FUTEX(uaddr, FUTEX_CMP_REQUEUE, VALP, VAL2P, uaddr2, *uaddr,
+               (rc == 0));
+       printf("futex(%p, FUTEX_CMP_REQUEUE, %u, %u, %p, %u) = %s\n",
+               uaddr, VALP_PR, VAL2P_PR, uaddr2, *uaddr, sprintrc(rc));
+
        /* Successful comparison re-queue */
        CHECK_FUTEX_ENOSYS(uaddr, FUTEX_PRIVATE_FLAG | FUTEX_CMP_REQUEUE, VAL,
-               VAL2, uaddr2, *uaddr, (rc == 0));
+               VAL2, uaddr2, *uaddr,
+               (rc == 0) || ((rc == -1) && (errno == EINVAL)));
        printf("futex(%p, FUTEX_CMP_REQUEUE_PRIVATE, %u, %u, %p, %u) = %s\n",
                uaddr, VAL_PR, VAL2_PR, uaddr2, *uaddr, sprintrc(rc));
 
+       CHECK_FUTEX_ENOSYS(uaddr, FUTEX_PRIVATE_FLAG | FUTEX_CMP_REQUEUE, VALP,
+               VAL2P, uaddr2, *uaddr, (rc == 0));
+       printf("futex(%p, FUTEX_CMP_REQUEUE_PRIVATE, %u, %u, %p, %u) = %s\n",
+               uaddr, VALP_PR, VAL2P_PR, uaddr2, *uaddr, sprintrc(rc));
+
        CHECK_INVALID_CLOCKRT(FUTEX_CMP_REQUEUE, ARG3 | ARG4 | ARG5 | ARG6,
                "%u", "%u", "%#lx", "%u");
 
-- 
2.16.1


Reply via email to