Merged update from upstream sources
This is an automated DistroBaker update from upstream sources. If you do not know what this is about or would like to opt out, contact the OSCI team. Source: https://src.fedoraproject.org/rpms/strace.git#58f60c2782d6c1d056e2a0f33e97ad2712ac25dc
This commit is contained in:
parent
61d534c209
commit
f562844ff8
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
||||
/strace-5.9.tar.xz
|
||||
/strace-5.10.tar.xz
|
||||
|
@ -1,52 +0,0 @@
|
||||
Index: strace-5.9/tests/stack-fcall-0.c
|
||||
===================================================================
|
||||
--- strace-5.9.orig/tests/stack-fcall-0.c 2020-08-03 10:00:00.000000000 +0200
|
||||
+++ strace-5.9/tests/stack-fcall-0.c 2020-10-06 11:12:07.163673799 +0200
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
#include "stack-fcall.h"
|
||||
|
||||
-int
|
||||
+int __attribute__ ((noinline))
|
||||
f0(int i, unsigned long f)
|
||||
{
|
||||
f ^= (unsigned long) (void *) f0;
|
||||
Index: strace-5.9/tests/stack-fcall-1.c
|
||||
===================================================================
|
||||
--- strace-5.9.orig/tests/stack-fcall-1.c 2020-08-03 10:00:00.000000000 +0200
|
||||
+++ strace-5.9/tests/stack-fcall-1.c 2020-10-06 11:12:15.875605255 +0200
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
#include "stack-fcall.h"
|
||||
|
||||
-int
|
||||
+int __attribute__ ((noinline))
|
||||
f1(int i, unsigned long f)
|
||||
{
|
||||
f ^= (unsigned long) (void *) f1;
|
||||
Index: strace-5.9/tests/stack-fcall-2.c
|
||||
===================================================================
|
||||
--- strace-5.9.orig/tests/stack-fcall-2.c 2020-08-03 10:00:00.000000000 +0200
|
||||
+++ strace-5.9/tests/stack-fcall-2.c 2020-10-06 11:12:22.700551557 +0200
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
#include "stack-fcall.h"
|
||||
|
||||
-int
|
||||
+int __attribute__ ((noinline))
|
||||
f2(int i, unsigned long f)
|
||||
{
|
||||
f ^= (unsigned long) (void *) f2;
|
||||
Index: strace-5.9/tests/stack-fcall-3.c
|
||||
===================================================================
|
||||
--- strace-5.9.orig/tests/stack-fcall-3.c 2020-08-03 10:00:00.000000000 +0200
|
||||
+++ strace-5.9/tests/stack-fcall-3.c 2020-10-06 11:12:32.556474012 +0200
|
||||
@@ -8,7 +8,7 @@
|
||||
#include <signal.h>
|
||||
#include "stack-fcall.h"
|
||||
|
||||
-int
|
||||
+int __attribute__ ((noinline))
|
||||
f3(int i, unsigned long f)
|
||||
{
|
||||
f ^= (unsigned long) (void *) f3;
|
@ -1,147 +0,0 @@
|
||||
Index: strace-5.9/configure
|
||||
===================================================================
|
||||
--- strace-5.9.orig/configure 2020-09-24 11:18:58.000000000 +0200
|
||||
+++ strace-5.9/configure 2020-10-06 19:49:07.708680050 +0200
|
||||
@@ -678,6 +678,8 @@
|
||||
clock_LIBS
|
||||
timer_LIBS
|
||||
dl_LIBS
|
||||
+KERNEL_LONG_T_32_BIT_FALSE
|
||||
+KERNEL_LONG_T_32_BIT_TRUE
|
||||
SIZEOF_KERNEL_LONG_T
|
||||
SIZEOF_LONG
|
||||
ac_ct_AR
|
||||
@@ -21947,6 +21949,14 @@
|
||||
|
||||
SIZEOF_KERNEL_LONG_T="$ac_cv_sizeof_kernel_long_t"
|
||||
|
||||
+ if test x$SIZEOF_KERNEL_LONG_T == x4; then
|
||||
+ KERNEL_LONG_T_32_BIT_TRUE=
|
||||
+ KERNEL_LONG_T_32_BIT_FALSE='#'
|
||||
+else
|
||||
+ KERNEL_LONG_T_32_BIT_TRUE='#'
|
||||
+ KERNEL_LONG_T_32_BIT_FALSE=
|
||||
+fi
|
||||
+
|
||||
# The cast to long int works around a bug in the HP C Compiler
|
||||
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
|
||||
# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
|
||||
@@ -25039,6 +25049,10 @@
|
||||
as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
|
||||
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||
fi
|
||||
+if test -z "${KERNEL_LONG_T_32_BIT_TRUE}" && test -z "${KERNEL_LONG_T_32_BIT_FALSE}"; then
|
||||
+ as_fn_error $? "conditional \"KERNEL_LONG_T_32_BIT\" was never defined.
|
||||
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||
+fi
|
||||
if test -z "${ENABLE_STACKTRACE_TRUE}" && test -z "${ENABLE_STACKTRACE_FALSE}"; then
|
||||
as_fn_error $? "conditional \"ENABLE_STACKTRACE\" was never defined.
|
||||
Usually this means the macro was only invoked conditionally." "$LINENO" 5
|
||||
Index: strace-5.9/tests-m32/Makefile.in
|
||||
===================================================================
|
||||
--- strace-5.9.orig/tests-m32/Makefile.in 2020-10-06 09:48:41.416722064 +0200
|
||||
+++ strace-5.9/tests-m32/Makefile.in 2020-10-22 04:35:05.329982236 +0200
|
||||
@@ -6780,10 +6780,30 @@
|
||||
umovestr_cached.test \
|
||||
# end of MISC_TESTS
|
||||
|
||||
+
|
||||
+# A temporary workaround for glibc commits
|
||||
+# 9ebaabeaac1a96b0d91f52902ce1dbf4f5a562dd
|
||||
+# be9b0b9a012780a403a266c90878efffb9a5f3ca
|
||||
+# a16d2abd496bd974a88207d5599265aae5ae4880
|
||||
+TIME64_XFAIL = \
|
||||
+ ipc_msg.gen.test \
|
||||
+ ipc_msg-Xabbrev.gen.test \
|
||||
+ ipc_msg-Xraw.gen.test \
|
||||
+ ipc_msg-Xverbose.gen.test \
|
||||
+ ipc_sem.gen.test \
|
||||
+ ipc_sem-Xabbrev.gen.test \
|
||||
+ ipc_sem-Xraw.gen.test \
|
||||
+ ipc_sem-Xverbose.gen.test \
|
||||
+ ipc_shm.gen.test \
|
||||
+ ipc_shm-Xabbrev.gen.test \
|
||||
+ ipc_shm-Xraw.gen.test \
|
||||
+ ipc_shm-Xverbose.gen.test \
|
||||
+ # end of TIME64_XFAIL
|
||||
+
|
||||
XFAIL_TESTS_ =
|
||||
XFAIL_TESTS_m32 = $(STACKTRACE_TESTS)
|
||||
XFAIL_TESTS_mx32 = $(STACKTRACE_TESTS)
|
||||
-XFAIL_TESTS = $(XFAIL_TESTS_$(MPERS_NAME)) $(XFAIL_TESTS_$(ARCH))
|
||||
+XFAIL_TESTS = $(XFAIL_TESTS_$(MPERS_NAME)) $(XFAIL_TESTS_$(ARCH)) $(TIME64_XFAIL)
|
||||
TEST_LOG_COMPILER = env
|
||||
AM_TEST_LOG_FLAGS = STRACE_ARCH=$(ARCH) STRACE_NATIVE_ARCH=$(NATIVE_ARCH) \
|
||||
SIZEOF_KERNEL_LONG_T=$(SIZEOF_KERNEL_LONG_T) \
|
||||
Index: strace-5.9/tests-mx32/Makefile.in
|
||||
===================================================================
|
||||
--- strace-5.9.orig/tests-mx32/Makefile.in 2020-10-06 09:48:47.323672772 +0200
|
||||
+++ strace-5.9/tests-mx32/Makefile.in 2020-10-22 04:35:09.438944519 +0200
|
||||
@@ -6780,10 +6780,30 @@
|
||||
umovestr_cached.test \
|
||||
# end of MISC_TESTS
|
||||
|
||||
+
|
||||
+# A temporary workaround for glibc commits
|
||||
+# 9ebaabeaac1a96b0d91f52902ce1dbf4f5a562dd
|
||||
+# be9b0b9a012780a403a266c90878efffb9a5f3ca
|
||||
+# a16d2abd496bd974a88207d5599265aae5ae4880
|
||||
+TIME64_XFAIL = \
|
||||
+ ipc_msg.gen.test \
|
||||
+ ipc_msg-Xabbrev.gen.test \
|
||||
+ ipc_msg-Xraw.gen.test \
|
||||
+ ipc_msg-Xverbose.gen.test \
|
||||
+ ipc_sem.gen.test \
|
||||
+ ipc_sem-Xabbrev.gen.test \
|
||||
+ ipc_sem-Xraw.gen.test \
|
||||
+ ipc_sem-Xverbose.gen.test \
|
||||
+ ipc_shm.gen.test \
|
||||
+ ipc_shm-Xabbrev.gen.test \
|
||||
+ ipc_shm-Xraw.gen.test \
|
||||
+ ipc_shm-Xverbose.gen.test \
|
||||
+ # end of TIME64_XFAIL
|
||||
+
|
||||
XFAIL_TESTS_ =
|
||||
XFAIL_TESTS_m32 = $(STACKTRACE_TESTS)
|
||||
XFAIL_TESTS_mx32 = $(STACKTRACE_TESTS)
|
||||
-XFAIL_TESTS = $(XFAIL_TESTS_$(MPERS_NAME)) $(XFAIL_TESTS_$(ARCH))
|
||||
+XFAIL_TESTS = $(XFAIL_TESTS_$(MPERS_NAME)) $(XFAIL_TESTS_$(ARCH)) $(TIME64_XFAIL)
|
||||
TEST_LOG_COMPILER = env
|
||||
AM_TEST_LOG_FLAGS = STRACE_ARCH=$(ARCH) STRACE_NATIVE_ARCH=$(NATIVE_ARCH) \
|
||||
SIZEOF_KERNEL_LONG_T=$(SIZEOF_KERNEL_LONG_T) \
|
||||
Index: strace-5.9/tests/Makefile.in
|
||||
===================================================================
|
||||
--- strace-5.9.orig/tests/Makefile.in 2020-10-06 09:47:53.610143253 +0200
|
||||
+++ strace-5.9/tests/Makefile.in 2020-10-22 04:35:00.113030124 +0200
|
||||
@@ -6780,10 +6780,30 @@
|
||||
umovestr_cached.test \
|
||||
# end of MISC_TESTS
|
||||
|
||||
+
|
||||
+# A temporary workaround for glibc commits
|
||||
+# 9ebaabeaac1a96b0d91f52902ce1dbf4f5a562dd
|
||||
+# be9b0b9a012780a403a266c90878efffb9a5f3ca
|
||||
+# a16d2abd496bd974a88207d5599265aae5ae4880
|
||||
+TIME64_XFAIL = \
|
||||
+ ipc_msg.gen.test \
|
||||
+ ipc_msg-Xabbrev.gen.test \
|
||||
+ ipc_msg-Xraw.gen.test \
|
||||
+ ipc_msg-Xverbose.gen.test \
|
||||
+ ipc_sem.gen.test \
|
||||
+ ipc_sem-Xabbrev.gen.test \
|
||||
+ ipc_sem-Xraw.gen.test \
|
||||
+ ipc_sem-Xverbose.gen.test \
|
||||
+ ipc_shm.gen.test \
|
||||
+ ipc_shm-Xabbrev.gen.test \
|
||||
+ ipc_shm-Xraw.gen.test \
|
||||
+ ipc_shm-Xverbose.gen.test \
|
||||
+ # end of TIME64_XFAIL
|
||||
+
|
||||
XFAIL_TESTS_ =
|
||||
XFAIL_TESTS_m32 = $(STACKTRACE_TESTS)
|
||||
XFAIL_TESTS_mx32 = $(STACKTRACE_TESTS)
|
||||
-XFAIL_TESTS = $(XFAIL_TESTS_$(MPERS_NAME)) $(XFAIL_TESTS_$(ARCH))
|
||||
+XFAIL_TESTS = $(XFAIL_TESTS_$(MPERS_NAME)) $(XFAIL_TESTS_$(ARCH)) $(TIME64_XFAIL)
|
||||
TEST_LOG_COMPILER = env
|
||||
AM_TEST_LOG_FLAGS = STRACE_ARCH=$(ARCH) STRACE_NATIVE_ARCH=$(NATIVE_ARCH) \
|
||||
SIZEOF_KERNEL_LONG_T=$(SIZEOF_KERNEL_LONG_T) \
|
@ -1,447 +0,0 @@
|
||||
From 4f0128be251d56feadad25961d92032fd0ca1e35 Mon Sep 17 00:00:00 2001
|
||||
From: Eugene Syromyatnikov <evgsyr@gmail.com>
|
||||
Date: Wed, 21 Oct 2020 20:43:21 +0200
|
||||
Subject: [PATCH 3/4] tests: update semtimedop test
|
||||
|
||||
---
|
||||
tests/semtimedop.c | 60 +++++++++++++++++++++++++++++++++++++++---------------
|
||||
1 file changed, 44 insertions(+), 16 deletions(-)
|
||||
|
||||
Index: strace-5.9/tests/semtimedop.c
|
||||
===================================================================
|
||||
--- strace-5.9.orig/tests/semtimedop.c 2020-09-23 18:29:35.000000000 +0200
|
||||
+++ strace-5.9/tests/semtimedop.c 2020-10-22 04:36:35.871151141 +0200
|
||||
@@ -8,7 +8,7 @@
|
||||
#include "tests.h"
|
||||
#include "scno.h"
|
||||
|
||||
-#if defined __NR_semtimedop || defined __NR_socketcall
|
||||
+#if defined __NR_semtimedop || defined __NR_ipc
|
||||
|
||||
# include <sys/ipc.h>
|
||||
# include <sys/sem.h>
|
||||
@@ -21,6 +21,34 @@
|
||||
# include "xlat/semop_flags.h"
|
||||
# undef XLAT_MACROS_ONLY
|
||||
|
||||
+long
|
||||
+call_semtimedop(int semid, struct sembuf *semops, size_t nsops, struct timespec *timeout)
|
||||
+{
|
||||
+ static const kernel_ulong_t semid_fill = (kernel_ulong_t) -1 - (unsigned int) -1;
|
||||
+ static const kernel_ulong_t nsops_fill = (kernel_ulong_t) -1 - (size_t) -1;
|
||||
+
|
||||
+# ifdef __NR_semtimedop
|
||||
+ return syscall(__NR_semtimedop,
|
||||
+ semid_fill | (unsigned int) semid,
|
||||
+ f8ill_ptr_to_kulong(semops),
|
||||
+ nsops_fill | nsops,
|
||||
+ f8ill_ptr_to_kulong(timeout));
|
||||
+# elif defined __s390x__ || defined __s390__
|
||||
+ return syscall(__NR_ipc, 4 /* SEMTIMEDOP */,
|
||||
+ semid_fill | (unsigned int) semid,
|
||||
+ nsops_fill | nsops,
|
||||
+ f8ill_ptr_to_kulong(timeout),
|
||||
+ f8ill_ptr_to_kulong(semops));
|
||||
+# else
|
||||
+ return syscall(__NR_ipc, 4 /* SEMTIMEDOP */,
|
||||
+ semid_fill | (unsigned int) semid,
|
||||
+ nsops_fill | nsops,
|
||||
+ 0,
|
||||
+ f8ill_ptr_to_kulong(semops),
|
||||
+ f8ill_ptr_to_kulong(timeout));
|
||||
+# endif
|
||||
+}
|
||||
+
|
||||
union semun {
|
||||
int val;
|
||||
struct semid_ds *buf;
|
||||
@@ -59,11 +87,11 @@
|
||||
TAIL_ALLOC_OBJECT_CONST_PTR(struct sembuf, sem_b);
|
||||
TAIL_ALLOC_OBJECT_CONST_PTR(struct sembuf, sem_b2);
|
||||
|
||||
- rc = semtimedop(bogus_semid, NULL, bogus_nsops, NULL);
|
||||
+ rc = call_semtimedop(bogus_semid, NULL, bogus_nsops, NULL);
|
||||
printf("semtimedop(%d, NULL, %u, NULL) = %s\n",
|
||||
bogus_semid, (unsigned) bogus_nsops, sprintrc(rc));
|
||||
|
||||
- rc = semtimedop(bogus_semid, bogus_sops, 1, NULL);
|
||||
+ rc = call_semtimedop(bogus_semid, bogus_sops, 1, NULL);
|
||||
printf("semtimedop(%d, %p, %u, NULL) = %s\n",
|
||||
bogus_semid, bogus_sops, 1, sprintrc(rc));
|
||||
|
||||
@@ -75,7 +103,7 @@
|
||||
sem_b2->sem_op = 0xf00d;
|
||||
sem_b2->sem_flg = 0xbeef;
|
||||
|
||||
- rc = semtimedop(bogus_semid, sem_b2, 2, NULL);
|
||||
+ rc = call_semtimedop(bogus_semid, sem_b2, 2, NULL);
|
||||
printf("semtimedop(%d, [{%hu, %hd, %s%s%#hx}, ... /* %p */], %u"
|
||||
", NULL) = %s\n",
|
||||
bogus_semid, sem_b2->sem_num, sem_b2->sem_op,
|
||||
@@ -84,26 +112,26 @@
|
||||
(short) (sem_b2->sem_flg & ~(SEM_UNDO | IPC_NOWAIT)),
|
||||
sem_b2 + 1, 2, sprintrc(rc));
|
||||
|
||||
- if (semtimedop(id, sem_b, 1, NULL))
|
||||
- perror_msg_and_skip("semtimedop, 1");
|
||||
+ if (call_semtimedop(id, sem_b, 1, NULL))
|
||||
+ {} /*perror_msg_and_skip("semtimedop, 1");*/
|
||||
printf("semtimedop(%d, [{0, 1, SEM_UNDO}], 1, NULL) = 0\n", id);
|
||||
|
||||
sem_b->sem_op = -1;
|
||||
- if (semtimedop(id, sem_b, 1, NULL))
|
||||
- perror_msg_and_skip("semtimedop, -1");
|
||||
+ if (call_semtimedop(id, sem_b, 1, NULL))
|
||||
+ {} /*perror_msg_and_skip("semtimedop, -1");*/
|
||||
printf("semtimedop(%d, [{0, -1, SEM_UNDO}], 1, NULL) = 0\n", id);
|
||||
|
||||
- rc = semtimedop(bogus_semid, NULL, bogus_nsops, NULL);
|
||||
+ rc = call_semtimedop(bogus_semid, NULL, bogus_nsops, NULL);
|
||||
printf("semtimedop(%d, NULL, %u, NULL) = %s\n",
|
||||
bogus_semid, (unsigned) bogus_nsops, sprintrc(rc));
|
||||
|
||||
- rc = semtimedop(id, sem_b + 1, 1, ts + 1);
|
||||
+ rc = call_semtimedop(id, sem_b + 1, 1, ts + 1);
|
||||
printf("semtimedop(%d, %p, 1, %p) = %s\n",
|
||||
id, sem_b + 1, ts + 1, sprintrc(rc));
|
||||
|
||||
ts->tv_sec = 1;
|
||||
ts->tv_nsec = 123456789;
|
||||
- rc = semtimedop(bogus_semid, sem_b2, 2, ts);
|
||||
+ rc = call_semtimedop(bogus_semid, sem_b2, 2, ts);
|
||||
printf("semtimedop(%d, [{%hu, %hd, %s%s%#hx}, ... /* %p */], %u"
|
||||
", {tv_sec=%lld, tv_nsec=%llu}) = %s\n",
|
||||
bogus_semid, sem_b2->sem_num, sem_b2->sem_op,
|
||||
@@ -115,12 +143,12 @@
|
||||
sprintrc(rc));
|
||||
|
||||
sem_b->sem_op = 1;
|
||||
- if (semtimedop(id, sem_b, 1, NULL))
|
||||
+ if (call_semtimedop(id, sem_b, 1, NULL))
|
||||
perror_msg_and_skip("semtimedop, 1");
|
||||
printf("semtimedop(%d, [{0, 1, SEM_UNDO}], 1, NULL) = 0\n", id);
|
||||
|
||||
sem_b->sem_op = -1;
|
||||
- if (semtimedop(id, sem_b, 1, ts))
|
||||
+ if (call_semtimedop(id, sem_b, 1, ts))
|
||||
perror_msg_and_skip("semtimedop, -1");
|
||||
printf("semtimedop(%d, [{0, -1, SEM_UNDO}], 1"
|
||||
", {tv_sec=%lld, tv_nsec=%llu}) = 0\n", id,
|
||||
@@ -129,7 +157,7 @@
|
||||
sem_b->sem_op = 1;
|
||||
ts->tv_sec = 0xdeadbeefU;
|
||||
ts->tv_nsec = 0xfacefeedU;
|
||||
- rc = semtimedop(id, sem_b, 1, ts);
|
||||
+ rc = call_semtimedop(id, sem_b, 1, ts);
|
||||
printf("semtimedop(%d, [{0, 1, SEM_UNDO}], 1"
|
||||
", {tv_sec=%lld, tv_nsec=%llu}) = %s\n",
|
||||
id, (long long) ts->tv_sec,
|
||||
@@ -138,7 +166,7 @@
|
||||
sem_b->sem_op = -1;
|
||||
ts->tv_sec = (time_t) 0xcafef00ddeadbeefLL;
|
||||
ts->tv_nsec = (long) 0xbadc0dedfacefeedLL;
|
||||
- rc = semtimedop(id, sem_b, 1, ts);
|
||||
+ rc = call_semtimedop(id, sem_b, 1, ts);
|
||||
printf("semtimedop(%d, [{0, -1, SEM_UNDO}], 1"
|
||||
", {tv_sec=%lld, tv_nsec=%llu}) = %s\n",
|
||||
id, (long long) ts->tv_sec,
|
||||
@@ -150,6 +178,6 @@
|
||||
|
||||
#else
|
||||
|
||||
-SKIP_MAIN_UNDEFINED("__NR_semtimedop || __NR_socketcall")
|
||||
+SKIP_MAIN_UNDEFINED("__NR_call_semtimedop || __NR_ipc")
|
||||
|
||||
#endif
|
||||
Index: strace-5.9/tests-m32/semtimedop.c
|
||||
===================================================================
|
||||
--- strace-5.9.orig/tests-m32/semtimedop.c 2020-09-23 18:29:35.000000000 +0200
|
||||
+++ strace-5.9/tests-m32/semtimedop.c 2020-10-22 04:36:55.406971818 +0200
|
||||
@@ -8,7 +8,7 @@
|
||||
#include "tests.h"
|
||||
#include "scno.h"
|
||||
|
||||
-#if defined __NR_semtimedop || defined __NR_socketcall
|
||||
+#if defined __NR_semtimedop || defined __NR_ipc
|
||||
|
||||
# include <sys/ipc.h>
|
||||
# include <sys/sem.h>
|
||||
@@ -21,6 +21,34 @@
|
||||
# include "xlat/semop_flags.h"
|
||||
# undef XLAT_MACROS_ONLY
|
||||
|
||||
+long
|
||||
+call_semtimedop(int semid, struct sembuf *semops, size_t nsops, struct timespec *timeout)
|
||||
+{
|
||||
+ static const kernel_ulong_t semid_fill = (kernel_ulong_t) -1 - (unsigned int) -1;
|
||||
+ static const kernel_ulong_t nsops_fill = (kernel_ulong_t) -1 - (size_t) -1;
|
||||
+
|
||||
+# ifdef __NR_semtimedop
|
||||
+ return syscall(__NR_semtimedop,
|
||||
+ semid_fill | (unsigned int) semid,
|
||||
+ f8ill_ptr_to_kulong(semops),
|
||||
+ nsops_fill | nsops,
|
||||
+ f8ill_ptr_to_kulong(timeout));
|
||||
+# elif defined __s390x__ || defined __s390__
|
||||
+ return syscall(__NR_ipc, 4 /* SEMTIMEDOP */,
|
||||
+ semid_fill | (unsigned int) semid,
|
||||
+ nsops_fill | nsops,
|
||||
+ f8ill_ptr_to_kulong(timeout),
|
||||
+ f8ill_ptr_to_kulong(semops));
|
||||
+# else
|
||||
+ return syscall(__NR_ipc, 4 /* SEMTIMEDOP */,
|
||||
+ semid_fill | (unsigned int) semid,
|
||||
+ nsops_fill | nsops,
|
||||
+ 0,
|
||||
+ f8ill_ptr_to_kulong(semops),
|
||||
+ f8ill_ptr_to_kulong(timeout));
|
||||
+# endif
|
||||
+}
|
||||
+
|
||||
union semun {
|
||||
int val;
|
||||
struct semid_ds *buf;
|
||||
@@ -59,11 +87,11 @@
|
||||
TAIL_ALLOC_OBJECT_CONST_PTR(struct sembuf, sem_b);
|
||||
TAIL_ALLOC_OBJECT_CONST_PTR(struct sembuf, sem_b2);
|
||||
|
||||
- rc = semtimedop(bogus_semid, NULL, bogus_nsops, NULL);
|
||||
+ rc = call_semtimedop(bogus_semid, NULL, bogus_nsops, NULL);
|
||||
printf("semtimedop(%d, NULL, %u, NULL) = %s\n",
|
||||
bogus_semid, (unsigned) bogus_nsops, sprintrc(rc));
|
||||
|
||||
- rc = semtimedop(bogus_semid, bogus_sops, 1, NULL);
|
||||
+ rc = call_semtimedop(bogus_semid, bogus_sops, 1, NULL);
|
||||
printf("semtimedop(%d, %p, %u, NULL) = %s\n",
|
||||
bogus_semid, bogus_sops, 1, sprintrc(rc));
|
||||
|
||||
@@ -75,7 +103,7 @@
|
||||
sem_b2->sem_op = 0xf00d;
|
||||
sem_b2->sem_flg = 0xbeef;
|
||||
|
||||
- rc = semtimedop(bogus_semid, sem_b2, 2, NULL);
|
||||
+ rc = call_semtimedop(bogus_semid, sem_b2, 2, NULL);
|
||||
printf("semtimedop(%d, [{%hu, %hd, %s%s%#hx}, ... /* %p */], %u"
|
||||
", NULL) = %s\n",
|
||||
bogus_semid, sem_b2->sem_num, sem_b2->sem_op,
|
||||
@@ -84,26 +112,26 @@
|
||||
(short) (sem_b2->sem_flg & ~(SEM_UNDO | IPC_NOWAIT)),
|
||||
sem_b2 + 1, 2, sprintrc(rc));
|
||||
|
||||
- if (semtimedop(id, sem_b, 1, NULL))
|
||||
- perror_msg_and_skip("semtimedop, 1");
|
||||
+ if (call_semtimedop(id, sem_b, 1, NULL))
|
||||
+ {} /*perror_msg_and_skip("semtimedop, 1");*/
|
||||
printf("semtimedop(%d, [{0, 1, SEM_UNDO}], 1, NULL) = 0\n", id);
|
||||
|
||||
sem_b->sem_op = -1;
|
||||
- if (semtimedop(id, sem_b, 1, NULL))
|
||||
- perror_msg_and_skip("semtimedop, -1");
|
||||
+ if (call_semtimedop(id, sem_b, 1, NULL))
|
||||
+ {} /*perror_msg_and_skip("semtimedop, -1");*/
|
||||
printf("semtimedop(%d, [{0, -1, SEM_UNDO}], 1, NULL) = 0\n", id);
|
||||
|
||||
- rc = semtimedop(bogus_semid, NULL, bogus_nsops, NULL);
|
||||
+ rc = call_semtimedop(bogus_semid, NULL, bogus_nsops, NULL);
|
||||
printf("semtimedop(%d, NULL, %u, NULL) = %s\n",
|
||||
bogus_semid, (unsigned) bogus_nsops, sprintrc(rc));
|
||||
|
||||
- rc = semtimedop(id, sem_b + 1, 1, ts + 1);
|
||||
+ rc = call_semtimedop(id, sem_b + 1, 1, ts + 1);
|
||||
printf("semtimedop(%d, %p, 1, %p) = %s\n",
|
||||
id, sem_b + 1, ts + 1, sprintrc(rc));
|
||||
|
||||
ts->tv_sec = 1;
|
||||
ts->tv_nsec = 123456789;
|
||||
- rc = semtimedop(bogus_semid, sem_b2, 2, ts);
|
||||
+ rc = call_semtimedop(bogus_semid, sem_b2, 2, ts);
|
||||
printf("semtimedop(%d, [{%hu, %hd, %s%s%#hx}, ... /* %p */], %u"
|
||||
", {tv_sec=%lld, tv_nsec=%llu}) = %s\n",
|
||||
bogus_semid, sem_b2->sem_num, sem_b2->sem_op,
|
||||
@@ -115,12 +143,12 @@
|
||||
sprintrc(rc));
|
||||
|
||||
sem_b->sem_op = 1;
|
||||
- if (semtimedop(id, sem_b, 1, NULL))
|
||||
+ if (call_semtimedop(id, sem_b, 1, NULL))
|
||||
perror_msg_and_skip("semtimedop, 1");
|
||||
printf("semtimedop(%d, [{0, 1, SEM_UNDO}], 1, NULL) = 0\n", id);
|
||||
|
||||
sem_b->sem_op = -1;
|
||||
- if (semtimedop(id, sem_b, 1, ts))
|
||||
+ if (call_semtimedop(id, sem_b, 1, ts))
|
||||
perror_msg_and_skip("semtimedop, -1");
|
||||
printf("semtimedop(%d, [{0, -1, SEM_UNDO}], 1"
|
||||
", {tv_sec=%lld, tv_nsec=%llu}) = 0\n", id,
|
||||
@@ -129,7 +157,7 @@
|
||||
sem_b->sem_op = 1;
|
||||
ts->tv_sec = 0xdeadbeefU;
|
||||
ts->tv_nsec = 0xfacefeedU;
|
||||
- rc = semtimedop(id, sem_b, 1, ts);
|
||||
+ rc = call_semtimedop(id, sem_b, 1, ts);
|
||||
printf("semtimedop(%d, [{0, 1, SEM_UNDO}], 1"
|
||||
", {tv_sec=%lld, tv_nsec=%llu}) = %s\n",
|
||||
id, (long long) ts->tv_sec,
|
||||
@@ -138,7 +166,7 @@
|
||||
sem_b->sem_op = -1;
|
||||
ts->tv_sec = (time_t) 0xcafef00ddeadbeefLL;
|
||||
ts->tv_nsec = (long) 0xbadc0dedfacefeedLL;
|
||||
- rc = semtimedop(id, sem_b, 1, ts);
|
||||
+ rc = call_semtimedop(id, sem_b, 1, ts);
|
||||
printf("semtimedop(%d, [{0, -1, SEM_UNDO}], 1"
|
||||
", {tv_sec=%lld, tv_nsec=%llu}) = %s\n",
|
||||
id, (long long) ts->tv_sec,
|
||||
@@ -150,6 +178,6 @@
|
||||
|
||||
#else
|
||||
|
||||
-SKIP_MAIN_UNDEFINED("__NR_semtimedop || __NR_socketcall")
|
||||
+SKIP_MAIN_UNDEFINED("__NR_call_semtimedop || __NR_ipc")
|
||||
|
||||
#endif
|
||||
Index: strace-5.9/tests-mx32/semtimedop.c
|
||||
===================================================================
|
||||
--- strace-5.9.orig/tests-mx32/semtimedop.c 2020-09-23 18:29:35.000000000 +0200
|
||||
+++ strace-5.9/tests-mx32/semtimedop.c 2020-10-22 04:36:57.654951183 +0200
|
||||
@@ -8,7 +8,7 @@
|
||||
#include "tests.h"
|
||||
#include "scno.h"
|
||||
|
||||
-#if defined __NR_semtimedop || defined __NR_socketcall
|
||||
+#if defined __NR_semtimedop || defined __NR_ipc
|
||||
|
||||
# include <sys/ipc.h>
|
||||
# include <sys/sem.h>
|
||||
@@ -21,6 +21,34 @@
|
||||
# include "xlat/semop_flags.h"
|
||||
# undef XLAT_MACROS_ONLY
|
||||
|
||||
+long
|
||||
+call_semtimedop(int semid, struct sembuf *semops, size_t nsops, struct timespec *timeout)
|
||||
+{
|
||||
+ static const kernel_ulong_t semid_fill = (kernel_ulong_t) -1 - (unsigned int) -1;
|
||||
+ static const kernel_ulong_t nsops_fill = (kernel_ulong_t) -1 - (size_t) -1;
|
||||
+
|
||||
+# ifdef __NR_semtimedop
|
||||
+ return syscall(__NR_semtimedop,
|
||||
+ semid_fill | (unsigned int) semid,
|
||||
+ f8ill_ptr_to_kulong(semops),
|
||||
+ nsops_fill | nsops,
|
||||
+ f8ill_ptr_to_kulong(timeout));
|
||||
+# elif defined __s390x__ || defined __s390__
|
||||
+ return syscall(__NR_ipc, 4 /* SEMTIMEDOP */,
|
||||
+ semid_fill | (unsigned int) semid,
|
||||
+ nsops_fill | nsops,
|
||||
+ f8ill_ptr_to_kulong(timeout),
|
||||
+ f8ill_ptr_to_kulong(semops));
|
||||
+# else
|
||||
+ return syscall(__NR_ipc, 4 /* SEMTIMEDOP */,
|
||||
+ semid_fill | (unsigned int) semid,
|
||||
+ nsops_fill | nsops,
|
||||
+ 0,
|
||||
+ f8ill_ptr_to_kulong(semops),
|
||||
+ f8ill_ptr_to_kulong(timeout));
|
||||
+# endif
|
||||
+}
|
||||
+
|
||||
union semun {
|
||||
int val;
|
||||
struct semid_ds *buf;
|
||||
@@ -59,11 +87,11 @@
|
||||
TAIL_ALLOC_OBJECT_CONST_PTR(struct sembuf, sem_b);
|
||||
TAIL_ALLOC_OBJECT_CONST_PTR(struct sembuf, sem_b2);
|
||||
|
||||
- rc = semtimedop(bogus_semid, NULL, bogus_nsops, NULL);
|
||||
+ rc = call_semtimedop(bogus_semid, NULL, bogus_nsops, NULL);
|
||||
printf("semtimedop(%d, NULL, %u, NULL) = %s\n",
|
||||
bogus_semid, (unsigned) bogus_nsops, sprintrc(rc));
|
||||
|
||||
- rc = semtimedop(bogus_semid, bogus_sops, 1, NULL);
|
||||
+ rc = call_semtimedop(bogus_semid, bogus_sops, 1, NULL);
|
||||
printf("semtimedop(%d, %p, %u, NULL) = %s\n",
|
||||
bogus_semid, bogus_sops, 1, sprintrc(rc));
|
||||
|
||||
@@ -75,7 +103,7 @@
|
||||
sem_b2->sem_op = 0xf00d;
|
||||
sem_b2->sem_flg = 0xbeef;
|
||||
|
||||
- rc = semtimedop(bogus_semid, sem_b2, 2, NULL);
|
||||
+ rc = call_semtimedop(bogus_semid, sem_b2, 2, NULL);
|
||||
printf("semtimedop(%d, [{%hu, %hd, %s%s%#hx}, ... /* %p */], %u"
|
||||
", NULL) = %s\n",
|
||||
bogus_semid, sem_b2->sem_num, sem_b2->sem_op,
|
||||
@@ -84,26 +112,26 @@
|
||||
(short) (sem_b2->sem_flg & ~(SEM_UNDO | IPC_NOWAIT)),
|
||||
sem_b2 + 1, 2, sprintrc(rc));
|
||||
|
||||
- if (semtimedop(id, sem_b, 1, NULL))
|
||||
- perror_msg_and_skip("semtimedop, 1");
|
||||
+ if (call_semtimedop(id, sem_b, 1, NULL))
|
||||
+ {} /*perror_msg_and_skip("semtimedop, 1");*/
|
||||
printf("semtimedop(%d, [{0, 1, SEM_UNDO}], 1, NULL) = 0\n", id);
|
||||
|
||||
sem_b->sem_op = -1;
|
||||
- if (semtimedop(id, sem_b, 1, NULL))
|
||||
- perror_msg_and_skip("semtimedop, -1");
|
||||
+ if (call_semtimedop(id, sem_b, 1, NULL))
|
||||
+ {} /*perror_msg_and_skip("semtimedop, -1");*/
|
||||
printf("semtimedop(%d, [{0, -1, SEM_UNDO}], 1, NULL) = 0\n", id);
|
||||
|
||||
- rc = semtimedop(bogus_semid, NULL, bogus_nsops, NULL);
|
||||
+ rc = call_semtimedop(bogus_semid, NULL, bogus_nsops, NULL);
|
||||
printf("semtimedop(%d, NULL, %u, NULL) = %s\n",
|
||||
bogus_semid, (unsigned) bogus_nsops, sprintrc(rc));
|
||||
|
||||
- rc = semtimedop(id, sem_b + 1, 1, ts + 1);
|
||||
+ rc = call_semtimedop(id, sem_b + 1, 1, ts + 1);
|
||||
printf("semtimedop(%d, %p, 1, %p) = %s\n",
|
||||
id, sem_b + 1, ts + 1, sprintrc(rc));
|
||||
|
||||
ts->tv_sec = 1;
|
||||
ts->tv_nsec = 123456789;
|
||||
- rc = semtimedop(bogus_semid, sem_b2, 2, ts);
|
||||
+ rc = call_semtimedop(bogus_semid, sem_b2, 2, ts);
|
||||
printf("semtimedop(%d, [{%hu, %hd, %s%s%#hx}, ... /* %p */], %u"
|
||||
", {tv_sec=%lld, tv_nsec=%llu}) = %s\n",
|
||||
bogus_semid, sem_b2->sem_num, sem_b2->sem_op,
|
||||
@@ -115,12 +143,12 @@
|
||||
sprintrc(rc));
|
||||
|
||||
sem_b->sem_op = 1;
|
||||
- if (semtimedop(id, sem_b, 1, NULL))
|
||||
+ if (call_semtimedop(id, sem_b, 1, NULL))
|
||||
perror_msg_and_skip("semtimedop, 1");
|
||||
printf("semtimedop(%d, [{0, 1, SEM_UNDO}], 1, NULL) = 0\n", id);
|
||||
|
||||
sem_b->sem_op = -1;
|
||||
- if (semtimedop(id, sem_b, 1, ts))
|
||||
+ if (call_semtimedop(id, sem_b, 1, ts))
|
||||
perror_msg_and_skip("semtimedop, -1");
|
||||
printf("semtimedop(%d, [{0, -1, SEM_UNDO}], 1"
|
||||
", {tv_sec=%lld, tv_nsec=%llu}) = 0\n", id,
|
||||
@@ -129,7 +157,7 @@
|
||||
sem_b->sem_op = 1;
|
||||
ts->tv_sec = 0xdeadbeefU;
|
||||
ts->tv_nsec = 0xfacefeedU;
|
||||
- rc = semtimedop(id, sem_b, 1, ts);
|
||||
+ rc = call_semtimedop(id, sem_b, 1, ts);
|
||||
printf("semtimedop(%d, [{0, 1, SEM_UNDO}], 1"
|
||||
", {tv_sec=%lld, tv_nsec=%llu}) = %s\n",
|
||||
id, (long long) ts->tv_sec,
|
||||
@@ -138,7 +166,7 @@
|
||||
sem_b->sem_op = -1;
|
||||
ts->tv_sec = (time_t) 0xcafef00ddeadbeefLL;
|
||||
ts->tv_nsec = (long) 0xbadc0dedfacefeedLL;
|
||||
- rc = semtimedop(id, sem_b, 1, ts);
|
||||
+ rc = call_semtimedop(id, sem_b, 1, ts);
|
||||
printf("semtimedop(%d, [{0, -1, SEM_UNDO}], 1"
|
||||
", {tv_sec=%lld, tv_nsec=%llu}) = %s\n",
|
||||
id, (long long) ts->tv_sec,
|
||||
@@ -150,6 +178,6 @@
|
||||
|
||||
#else
|
||||
|
||||
-SKIP_MAIN_UNDEFINED("__NR_semtimedop || __NR_socketcall")
|
||||
+SKIP_MAIN_UNDEFINED("__NR_call_semtimedop || __NR_ipc")
|
||||
|
||||
#endif
|
@ -1,255 +0,0 @@
|
||||
From 5cefe1876579dc0669bbd5490eed26d00e281c18 Mon Sep 17 00:00:00 2001
|
||||
From: Eugene Syromyatnikov <evgsyr@gmail.com>
|
||||
Date: Thu, 22 Oct 2020 04:28:31 +0200
|
||||
Subject: [PATCH 4/4] tests: add own pselect6 syscall wrapper to the test
|
||||
|
||||
---
|
||||
tests/pselect6.c | 29 +++++++++++++++++++++++------
|
||||
1 file changed, 23 insertions(+), 6 deletions(-)
|
||||
|
||||
Index: strace-5.9/tests/pselect6.c
|
||||
===================================================================
|
||||
--- strace-5.9.orig/tests/pselect6.c 2019-09-25 03:02:03.000000000 +0200
|
||||
+++ strace-5.9/tests/pselect6.c 2020-10-22 04:37:09.583841685 +0200
|
||||
@@ -28,6 +28,23 @@
|
||||
{
|
||||
}
|
||||
|
||||
+static long
|
||||
+pselect6(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
|
||||
+ const struct timespec *timeout, const sigset_t *sigmask)
|
||||
+{
|
||||
+ struct {
|
||||
+ kernel_ulong_t ss;
|
||||
+ kernel_ulong_t ss_len;
|
||||
+ } data = { .ss = (uintptr_t) sigmask, .ss_len = NSIG_BYTES };
|
||||
+ struct timespec ts;
|
||||
+
|
||||
+ if (timeout)
|
||||
+ ts = *timeout;
|
||||
+
|
||||
+ return syscall(__NR_pselect6, nfds, readfds, writefds, exceptfds,
|
||||
+ timeout ? &ts : NULL, &data);
|
||||
+}
|
||||
+
|
||||
int main(int ac, char **av)
|
||||
{
|
||||
int fds[2];
|
||||
@@ -58,7 +75,7 @@
|
||||
FD_SET(fds[1], set[1]);
|
||||
FD_SET(1, set[2]);
|
||||
FD_SET(2, set[2]);
|
||||
- int rc = pselect(fds[1] + 1, set[0], set[1], set[2], NULL, NULL);
|
||||
+ int rc = pselect6(fds[1] + 1, set[0], set[1], set[2], NULL, NULL);
|
||||
if (rc < 0)
|
||||
perror_msg_and_skip("pselect");
|
||||
assert(rc == 1);
|
||||
@@ -90,7 +107,7 @@
|
||||
*/
|
||||
FD_ZERO(set[0]);
|
||||
FD_SET(fds[1], set[0]);
|
||||
- assert(pselect(-1, NULL, set[0], NULL, NULL, &mask) == -1);
|
||||
+ assert(pselect6(-1, NULL, set[0], NULL, NULL, &mask) == -1);
|
||||
printf("pselect6(-1, NULL, %p, NULL, NULL, {[HUP CHLD], %u}) "
|
||||
"= -1 EINVAL (%m)\n", set[0], NSIG_BYTES);
|
||||
|
||||
@@ -102,7 +119,7 @@
|
||||
FD_ZERO(set[1]);
|
||||
tm.ts.tv_sec = 0;
|
||||
tm.ts.tv_nsec = 123;
|
||||
- assert(pselect(FD_SETSIZE + 1, set[0], set[1], NULL, &tm.ts, &mask) == 0);
|
||||
+ assert(pselect6(FD_SETSIZE + 1, set[0], set[1], NULL, &tm.ts, &mask) == 0);
|
||||
printf("pselect6(%d, [%d], [], NULL, {tv_sec=0, tv_nsec=123}"
|
||||
", {[HUP CHLD], %u}) = 0 (Timeout)\n",
|
||||
FD_SETSIZE + 1, fds[0], NSIG_BYTES);
|
||||
@@ -112,7 +129,7 @@
|
||||
*/
|
||||
tm.ts.tv_sec = 0xdeadbeefU;
|
||||
tm.ts.tv_nsec = 0xfacefeedU;
|
||||
- assert(pselect(0, NULL, NULL, NULL, &tm.ts, NULL) == -1);
|
||||
+ assert(pselect6(0, NULL, NULL, NULL, &tm.ts, NULL) == -1);
|
||||
printf("pselect6(0, NULL, NULL, NULL"
|
||||
", {tv_sec=%lld, tv_nsec=%llu}, {NULL, %u}) = %s\n",
|
||||
(long long) tm.ts.tv_sec,
|
||||
@@ -121,7 +138,7 @@
|
||||
|
||||
tm.ts.tv_sec = (time_t) 0xcafef00ddeadbeefLL;
|
||||
tm.ts.tv_nsec = (long) 0xbadc0dedfacefeedLL;
|
||||
- assert(pselect(0, NULL, NULL, NULL, &tm.ts, NULL) == -1);
|
||||
+ assert(pselect6(0, NULL, NULL, NULL, &tm.ts, NULL) == -1);
|
||||
printf("pselect6(0, NULL, NULL, NULL"
|
||||
", {tv_sec=%lld, tv_nsec=%llu}, {NULL, %u}) = %s\n",
|
||||
(long long) tm.ts.tv_sec,
|
||||
@@ -133,7 +150,7 @@
|
||||
|
||||
tm.ts.tv_sec = 0;
|
||||
tm.ts.tv_nsec = 222222222;
|
||||
- assert(pselect(0, NULL, NULL, NULL, &tm.ts, &mask) == -1);
|
||||
+ assert(pselect6(0, NULL, NULL, NULL, &tm.ts, &mask) == -1);
|
||||
printf("pselect6(0, NULL, NULL, NULL, {tv_sec=0, tv_nsec=222222222}"
|
||||
", {[HUP CHLD], %u})"
|
||||
" = ? ERESTARTNOHAND (To be restarted if no handler)\n",
|
||||
Index: strace-5.9/tests-m32/pselect6.c
|
||||
===================================================================
|
||||
--- strace-5.9.orig/tests-m32/pselect6.c 2019-09-25 03:02:03.000000000 +0200
|
||||
+++ strace-5.9/tests-m32/pselect6.c 2020-10-22 04:37:31.789637854 +0200
|
||||
@@ -28,6 +28,23 @@
|
||||
{
|
||||
}
|
||||
|
||||
+static long
|
||||
+pselect6(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
|
||||
+ const struct timespec *timeout, const sigset_t *sigmask)
|
||||
+{
|
||||
+ struct {
|
||||
+ kernel_ulong_t ss;
|
||||
+ kernel_ulong_t ss_len;
|
||||
+ } data = { .ss = (uintptr_t) sigmask, .ss_len = NSIG_BYTES };
|
||||
+ struct timespec ts;
|
||||
+
|
||||
+ if (timeout)
|
||||
+ ts = *timeout;
|
||||
+
|
||||
+ return syscall(__NR_pselect6, nfds, readfds, writefds, exceptfds,
|
||||
+ timeout ? &ts : NULL, &data);
|
||||
+}
|
||||
+
|
||||
int main(int ac, char **av)
|
||||
{
|
||||
int fds[2];
|
||||
@@ -58,7 +75,7 @@
|
||||
FD_SET(fds[1], set[1]);
|
||||
FD_SET(1, set[2]);
|
||||
FD_SET(2, set[2]);
|
||||
- int rc = pselect(fds[1] + 1, set[0], set[1], set[2], NULL, NULL);
|
||||
+ int rc = pselect6(fds[1] + 1, set[0], set[1], set[2], NULL, NULL);
|
||||
if (rc < 0)
|
||||
perror_msg_and_skip("pselect");
|
||||
assert(rc == 1);
|
||||
@@ -90,7 +107,7 @@
|
||||
*/
|
||||
FD_ZERO(set[0]);
|
||||
FD_SET(fds[1], set[0]);
|
||||
- assert(pselect(-1, NULL, set[0], NULL, NULL, &mask) == -1);
|
||||
+ assert(pselect6(-1, NULL, set[0], NULL, NULL, &mask) == -1);
|
||||
printf("pselect6(-1, NULL, %p, NULL, NULL, {[HUP CHLD], %u}) "
|
||||
"= -1 EINVAL (%m)\n", set[0], NSIG_BYTES);
|
||||
|
||||
@@ -102,7 +119,7 @@
|
||||
FD_ZERO(set[1]);
|
||||
tm.ts.tv_sec = 0;
|
||||
tm.ts.tv_nsec = 123;
|
||||
- assert(pselect(FD_SETSIZE + 1, set[0], set[1], NULL, &tm.ts, &mask) == 0);
|
||||
+ assert(pselect6(FD_SETSIZE + 1, set[0], set[1], NULL, &tm.ts, &mask) == 0);
|
||||
printf("pselect6(%d, [%d], [], NULL, {tv_sec=0, tv_nsec=123}"
|
||||
", {[HUP CHLD], %u}) = 0 (Timeout)\n",
|
||||
FD_SETSIZE + 1, fds[0], NSIG_BYTES);
|
||||
@@ -112,7 +129,7 @@
|
||||
*/
|
||||
tm.ts.tv_sec = 0xdeadbeefU;
|
||||
tm.ts.tv_nsec = 0xfacefeedU;
|
||||
- assert(pselect(0, NULL, NULL, NULL, &tm.ts, NULL) == -1);
|
||||
+ assert(pselect6(0, NULL, NULL, NULL, &tm.ts, NULL) == -1);
|
||||
printf("pselect6(0, NULL, NULL, NULL"
|
||||
", {tv_sec=%lld, tv_nsec=%llu}, {NULL, %u}) = %s\n",
|
||||
(long long) tm.ts.tv_sec,
|
||||
@@ -121,7 +138,7 @@
|
||||
|
||||
tm.ts.tv_sec = (time_t) 0xcafef00ddeadbeefLL;
|
||||
tm.ts.tv_nsec = (long) 0xbadc0dedfacefeedLL;
|
||||
- assert(pselect(0, NULL, NULL, NULL, &tm.ts, NULL) == -1);
|
||||
+ assert(pselect6(0, NULL, NULL, NULL, &tm.ts, NULL) == -1);
|
||||
printf("pselect6(0, NULL, NULL, NULL"
|
||||
", {tv_sec=%lld, tv_nsec=%llu}, {NULL, %u}) = %s\n",
|
||||
(long long) tm.ts.tv_sec,
|
||||
@@ -133,7 +150,7 @@
|
||||
|
||||
tm.ts.tv_sec = 0;
|
||||
tm.ts.tv_nsec = 222222222;
|
||||
- assert(pselect(0, NULL, NULL, NULL, &tm.ts, &mask) == -1);
|
||||
+ assert(pselect6(0, NULL, NULL, NULL, &tm.ts, &mask) == -1);
|
||||
printf("pselect6(0, NULL, NULL, NULL, {tv_sec=0, tv_nsec=222222222}"
|
||||
", {[HUP CHLD], %u})"
|
||||
" = ? ERESTARTNOHAND (To be restarted if no handler)\n",
|
||||
Index: strace-5.9/tests-mx32/pselect6.c
|
||||
===================================================================
|
||||
--- strace-5.9.orig/tests-mx32/pselect6.c 2019-09-25 03:02:03.000000000 +0200
|
||||
+++ strace-5.9/tests-mx32/pselect6.c 2020-10-22 04:37:34.579612244 +0200
|
||||
@@ -28,6 +28,23 @@
|
||||
{
|
||||
}
|
||||
|
||||
+static long
|
||||
+pselect6(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
|
||||
+ const struct timespec *timeout, const sigset_t *sigmask)
|
||||
+{
|
||||
+ struct {
|
||||
+ kernel_ulong_t ss;
|
||||
+ kernel_ulong_t ss_len;
|
||||
+ } data = { .ss = (uintptr_t) sigmask, .ss_len = NSIG_BYTES };
|
||||
+ struct timespec ts;
|
||||
+
|
||||
+ if (timeout)
|
||||
+ ts = *timeout;
|
||||
+
|
||||
+ return syscall(__NR_pselect6, nfds, readfds, writefds, exceptfds,
|
||||
+ timeout ? &ts : NULL, &data);
|
||||
+}
|
||||
+
|
||||
int main(int ac, char **av)
|
||||
{
|
||||
int fds[2];
|
||||
@@ -58,7 +75,7 @@
|
||||
FD_SET(fds[1], set[1]);
|
||||
FD_SET(1, set[2]);
|
||||
FD_SET(2, set[2]);
|
||||
- int rc = pselect(fds[1] + 1, set[0], set[1], set[2], NULL, NULL);
|
||||
+ int rc = pselect6(fds[1] + 1, set[0], set[1], set[2], NULL, NULL);
|
||||
if (rc < 0)
|
||||
perror_msg_and_skip("pselect");
|
||||
assert(rc == 1);
|
||||
@@ -90,7 +107,7 @@
|
||||
*/
|
||||
FD_ZERO(set[0]);
|
||||
FD_SET(fds[1], set[0]);
|
||||
- assert(pselect(-1, NULL, set[0], NULL, NULL, &mask) == -1);
|
||||
+ assert(pselect6(-1, NULL, set[0], NULL, NULL, &mask) == -1);
|
||||
printf("pselect6(-1, NULL, %p, NULL, NULL, {[HUP CHLD], %u}) "
|
||||
"= -1 EINVAL (%m)\n", set[0], NSIG_BYTES);
|
||||
|
||||
@@ -102,7 +119,7 @@
|
||||
FD_ZERO(set[1]);
|
||||
tm.ts.tv_sec = 0;
|
||||
tm.ts.tv_nsec = 123;
|
||||
- assert(pselect(FD_SETSIZE + 1, set[0], set[1], NULL, &tm.ts, &mask) == 0);
|
||||
+ assert(pselect6(FD_SETSIZE + 1, set[0], set[1], NULL, &tm.ts, &mask) == 0);
|
||||
printf("pselect6(%d, [%d], [], NULL, {tv_sec=0, tv_nsec=123}"
|
||||
", {[HUP CHLD], %u}) = 0 (Timeout)\n",
|
||||
FD_SETSIZE + 1, fds[0], NSIG_BYTES);
|
||||
@@ -112,7 +129,7 @@
|
||||
*/
|
||||
tm.ts.tv_sec = 0xdeadbeefU;
|
||||
tm.ts.tv_nsec = 0xfacefeedU;
|
||||
- assert(pselect(0, NULL, NULL, NULL, &tm.ts, NULL) == -1);
|
||||
+ assert(pselect6(0, NULL, NULL, NULL, &tm.ts, NULL) == -1);
|
||||
printf("pselect6(0, NULL, NULL, NULL"
|
||||
", {tv_sec=%lld, tv_nsec=%llu}, {NULL, %u}) = %s\n",
|
||||
(long long) tm.ts.tv_sec,
|
||||
@@ -121,7 +138,7 @@
|
||||
|
||||
tm.ts.tv_sec = (time_t) 0xcafef00ddeadbeefLL;
|
||||
tm.ts.tv_nsec = (long) 0xbadc0dedfacefeedLL;
|
||||
- assert(pselect(0, NULL, NULL, NULL, &tm.ts, NULL) == -1);
|
||||
+ assert(pselect6(0, NULL, NULL, NULL, &tm.ts, NULL) == -1);
|
||||
printf("pselect6(0, NULL, NULL, NULL"
|
||||
", {tv_sec=%lld, tv_nsec=%llu}, {NULL, %u}) = %s\n",
|
||||
(long long) tm.ts.tv_sec,
|
||||
@@ -133,7 +150,7 @@
|
||||
|
||||
tm.ts.tv_sec = 0;
|
||||
tm.ts.tv_nsec = 222222222;
|
||||
- assert(pselect(0, NULL, NULL, NULL, &tm.ts, &mask) == -1);
|
||||
+ assert(pselect6(0, NULL, NULL, NULL, &tm.ts, &mask) == -1);
|
||||
printf("pselect6(0, NULL, NULL, NULL, {tv_sec=0, tv_nsec=222222222}"
|
||||
", {[HUP CHLD], %u})"
|
||||
" = ? ERESTARTNOHAND (To be restarted if no handler)\n",
|
21
gcc-11.patch
21
gcc-11.patch
@ -1,21 +0,0 @@
|
||||
diff --git a/tests/nlattr_tcamsg.c b/tests/nlattr_tcamsg.c
|
||||
index e25e32a..d23715c 100644
|
||||
--- a/tests/nlattr_tcamsg.c
|
||||
+++ b/tests/nlattr_tcamsg.c
|
||||
@@ -33,6 +33,8 @@ enum { TCA_ACT_USED_HW_STATS = 9 };
|
||||
static void
|
||||
init_tcamsg(struct nlmsghdr *const nlh, const unsigned int msg_len)
|
||||
{
|
||||
+#pragma GCC diagnostic push
|
||||
+#pragma GCC diagnostic ignored "-Wstringop-overflow"
|
||||
SET_STRUCT(struct nlmsghdr, nlh,
|
||||
.nlmsg_len = msg_len,
|
||||
.nlmsg_type = RTM_GETACTION,
|
||||
@@ -43,6 +45,7 @@ init_tcamsg(struct nlmsghdr *const nlh, const unsigned int msg_len)
|
||||
SET_STRUCT(struct tcamsg, msg,
|
||||
.tca_family = AF_INET
|
||||
);
|
||||
+#pragma GCC diagnostic pop
|
||||
}
|
||||
|
||||
static void
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (strace-5.9.tar.xz) = f28d5dcceccb44557b39ed6f295f3250662804dc3ad79959bfadffcecc9b736e532c7c90dc89ebf9d07eb3e02a5ace231605851148ca09d41c8c60dc1ff68206
|
||||
SHA512 (strace-5.10.tar.xz) = 1baa41b6d52f2e40e42a22850beee1ae278fafe712796694631898f06a7540d8f2c3fa70807e0062734f0976ebbd0824457c733ccda248f017c218387366ed48
|
||||
|
28
strace.spec
28
strace.spec
@ -1,7 +1,7 @@
|
||||
Summary: Tracks and displays system calls associated with a running process
|
||||
Name: strace
|
||||
Version: 5.9
|
||||
Release: 2%{?dist}
|
||||
Version: 5.10
|
||||
Release: 1%{?dist}
|
||||
# The test suite is GPLv2+, all the rest is LGPLv2.1+.
|
||||
License: LGPL-2.1+ and GPL-2.0+
|
||||
# Some distros require Group tag to be present,
|
||||
@ -14,11 +14,6 @@ Group: Development%{?suse_version:/Tools}/Debuggers
|
||||
URL: https://strace.io
|
||||
%if 0%{?fedora} >= 12 || 0%{?centos} >= 6 || 0%{?rhel} >= 6 || 0%{?suse_version} >= 1200
|
||||
Source: https://strace.io/files/%{version}/strace-%{version}.tar.xz
|
||||
Patch0: gcc-11.patch
|
||||
Patch1: 0001-noinline.patch
|
||||
Patch2: 0002-ipc-xfail.patch
|
||||
Patch3: 0003-tests-update-semtimedop-test.patch
|
||||
Patch4: 0004-tests-add-own-pselect6-syscall-wrapper-to-the-test.patch
|
||||
BuildRequires: xz
|
||||
%else
|
||||
Source: strace-%{version}.tar.gz
|
||||
@ -62,14 +57,9 @@ received by a process.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
echo -n %version-%release > .tarball-version
|
||||
echo -n 2020 > .year
|
||||
echo -n 2020-09-23 > .strace.1.in.date
|
||||
echo -n 2020-11-29 > .strace.1.in.date
|
||||
|
||||
%build
|
||||
echo 'BEGIN OF BUILD ENVIRONMENT INFORMATION'
|
||||
@ -116,15 +106,11 @@ echo 'END OF TEST SUITE INFORMATION'
|
||||
%{_mandir}/man1/*
|
||||
|
||||
%changelog
|
||||
* Wed Oct 21 2020 Eugene Syromyatnikov <esyr@redhat.com> - 5.9-2
|
||||
- Mark even more tests as XFAIL so the build succeedes
|
||||
(references: #1886468, #1886480).
|
||||
* Mon Dec 14 2020 Dmitry V. Levin <ldv@altlinux.org> - 5.10-1
|
||||
- v5.9 -> v5.10.
|
||||
|
||||
* Mon Oct 05 2020 Eugene Syromyatnikov <esyr@redhat.com> - 5.9-1
|
||||
- v5.8 -> v5.9 (resolves: #1035433).
|
||||
|
||||
* Wed Aug 19 2020 Jeff Law <law@redhat.com> - 5.8-2
|
||||
- Work around gcc-11 false positive diagnostic
|
||||
* Thu Sep 24 2020 Dmitry V. Levin <ldv@altlinux.org> - 5.9-1
|
||||
- v5.8 -> v5.9.
|
||||
|
||||
* Thu Aug 06 2020 Dmitry V. Levin <ldv@altlinux.org> - 5.8-1
|
||||
- v5.7 -> v5.8.
|
||||
|
Loading…
Reference in New Issue
Block a user