commit: f936cfb15b1657e4e256b712170953fc6b1ab6c6
parent e36dab4af887d3be3abd8d09d5857ef300dff75a
Author: Michael Forney <mforney@mforney.org>
Date: Thu, 13 Aug 2020 02:05:36 -0700
strace: Update to 5.8
Diffstat:
13 files changed, 94 insertions(+), 343 deletions(-)
diff --git a/pkg/strace/.gitignore b/pkg/strace/.gitignore
@@ -1,3 +1,3 @@
/src
-/strace-5.7.tar.xz
+/strace-5.8.tar.xz
/tools.ninja
diff --git a/pkg/strace/config.h b/pkg/strace/config.h
@@ -531,6 +531,7 @@
#define HAVE_LINUX_IP_VS_H 1
#define HAVE_LINUX_KCMP_H 1
#define HAVE_LINUX_KVM_H 1
+#define HAVE_LINUX_LOOP_H 1
#define HAVE_LINUX_MEMFD_H 1
#define HAVE_LINUX_MMTIMER_H 1
#define HAVE_LINUX_MOUNT_H 1
@@ -657,8 +658,8 @@
#define HAVE_STRUCT_BTRFS_IOCTL_DEFRAG_RANGE_ARGS_START 1
#define HAVE_STRUCT_BTRFS_IOCTL_FEATURE_FLAGS_COMPAT_FLAGS 1
#define HAVE_STRUCT_BTRFS_IOCTL_FS_INFO_ARGS_NODESIZE 1
-#define HAVE_STRUCT_BTRFS_IOCTL_LOGICAL_INO_ARGS_FLAGS 1
-#define HAVE_STRUCT_BTRFS_IOCTL_SEARCH_ARGS_V2_BUF_SIZE 1
+#define HAVE_STRUCT_BTRFS_IOCTL_LOGICAL_INO_ARGS 1
+#define HAVE_STRUCT_BTRFS_IOCTL_LOGICAL_INO_ARGS_INODES 1
#define HAVE_STRUCT_CLONE_ARGS_CGROUP 1
#define HAVE_STRUCT_CRYPTO_REPORT_AEAD 1
#define HAVE_STRUCT_CRYPTO_REPORT_AEAD_IVSIZE 1
@@ -698,8 +699,8 @@
#define HAVE_STRUCT_IOCB_AIO_FLAGS 1
#define HAVE_STRUCT_IOCB_AIO_RW_FLAGS 1
#define HAVE_STRUCT_IO_CQRING_OFFSETS 1
+#define HAVE_STRUCT_IO_CQRING_OFFSETS_CQES 1
#define HAVE_STRUCT_IO_CQRING_OFFSETS_FLAGS 1
-/* #undef HAVE_STRUCT_IO_CQRING_OFFSETS_RESV */
#define HAVE_STRUCT_IO_SQRING_OFFSETS 1
#define HAVE_STRUCT_IO_SQRING_OFFSETS_RESV2 1
#define HAVE_STRUCT_IO_URING_FILES_UPDATE 1
@@ -721,6 +722,8 @@
#define HAVE_STRUCT_KVM_REGS 1
#define HAVE_STRUCT_KVM_SREGS 1
#define HAVE_STRUCT_KVM_USERSPACE_MEMORY_REGION 1
+#define HAVE_STRUCT_LOOP_CONFIG 1
+#define HAVE_STRUCT_LOOP_CONFIG___RESERVED 1
#define HAVE_STRUCT_MMSGHDR 1
#define HAVE_STRUCT_MTD_WRITE_REQ 1
#define HAVE_STRUCT_NDT_CONFIG 1
@@ -971,7 +974,7 @@
/* #undef M32_SIZEOF_LONG */
/* #undef M32_SIZEOF_STRUCT_MSQID64_DS */
/* #undef M68K */
-#define MANPAGE_DATE "2020-04-24"
+#define MANPAGE_DATE "2020-06-16"
/* #undef METAG */
/* #undef MICROBLAZE */
/* #undef MIPS */
@@ -983,10 +986,10 @@
#define PACKAGE "strace"
#define PACKAGE_BUGREPORT "strace-devel@lists.strace.io"
#define PACKAGE_NAME "strace"
-#define PACKAGE_STRING "strace 5.7"
+#define PACKAGE_STRING "strace 5.8"
#define PACKAGE_TARNAME "strace"
#define PACKAGE_URL "https://strace.io"
-#define PACKAGE_VERSION "5.7"
+#define PACKAGE_VERSION "5.8"
/* #undef POWERPC */
/* #undef POWERPC64 */
/* #undef POWERPC64LE */
@@ -1024,7 +1027,7 @@
# define __EXTENSIONS__ 1
#endif
/* #undef USE_UNWINDER */
-#define VERSION "5.7"
+#define VERSION "5.8"
#if defined AC_APPLE_UNIVERSAL_BUILD
# if defined __BIG_ENDIAN__
# define WORDS_BIGENDIAN 1
diff --git a/pkg/strace/patch/0002-Use-__typeof__-spelling-of-typeof.patch b/pkg/strace/patch/0002-Use-__typeof__-spelling-of-typeof.patch
@@ -1,23 +1,23 @@
-From 0e52d3415b494f37166d31c523ce0609880c4825 Mon Sep 17 00:00:00 2001
+From f0030f1c023963e1d58f91026ab6f1d714a7af06 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Sat, 6 Jul 2019 01:33:01 -0700
Subject: [PATCH] Use __typeof__ spelling of typeof
---
btrfs.c | 8 ++++----
+ defs.h | 4 ++--
file_ioctl.c | 4 ++--
gcc_compat.h | 2 +-
list.h | 10 +++++-----
tests/btrfs.c | 2 +-
tests/fcntl-common.c | 2 +-
- util.c | 4 ++--
7 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/btrfs.c b/btrfs.c
-index dc5eff1a..693b1b7d 100644
+index 77ce151f..6e6cb721 100644
--- a/btrfs.c
+++ b/btrfs.c
-@@ -247,7 +247,7 @@ btrfs_print_logical_ino_container(struct tcb *tcp,
+@@ -248,7 +248,7 @@ btrfs_print_logical_ino_container(struct tcb *tcp,
tprints(", ...");
} else {
const uint64_t val_addr =
@@ -26,7 +26,7 @@ index dc5eff1a..693b1b7d 100644
uint64_t record[3];
tprints(", val=");
print_array(tcp, val_addr, container.elem_cnt / 3,
-@@ -286,7 +286,7 @@ btrfs_print_ino_path_container(struct tcb *tcp,
+@@ -287,7 +287,7 @@ btrfs_print_ino_path_container(struct tcb *tcp,
tprints(", ...");
} else {
uint64_t val_addr =
@@ -35,7 +35,7 @@ index dc5eff1a..693b1b7d 100644
uint64_t offset;
tprints(", val=");
print_array(tcp, val_addr, container.elem_cnt,
-@@ -319,7 +319,7 @@ btrfs_print_qgroup_inherit(struct tcb *const tcp, const kernel_ulong_t qgi_addr)
+@@ -320,7 +320,7 @@ btrfs_print_qgroup_inherit(struct tcb *const tcp, const kernel_ulong_t qgi_addr)
} else {
uint64_t record;
tprints(", qgroups=");
@@ -44,7 +44,7 @@ index dc5eff1a..693b1b7d 100644
inherit.num_qgroups, &record, sizeof(record),
tfetch_mem, print_uint64_array_member, 0);
}
-@@ -1149,7 +1149,7 @@ MPERS_PRINTER_DECL(int, btrfs_ioctl,
+@@ -1139,7 +1139,7 @@ MPERS_PRINTER_DECL(int, btrfs_ioctl,
} else {
struct btrfs_ioctl_space_info info;
tprints(", spaces=");
@@ -53,11 +53,26 @@ index dc5eff1a..693b1b7d 100644
args.total_spaces,
&info, sizeof(info), tfetch_mem,
print_btrfs_ioctl_space_info, 0);
+diff --git a/defs.h b/defs.h
+index 3fd8cba1..08e85fed 100644
+--- a/defs.h
++++ b/defs.h
+@@ -1699,8 +1699,8 @@ scno_is_valid(kernel_ulong_t scno)
+
+ #define ILOG2_ITER_(val_, ret_, bit_) \
+ do { \
+- typeof(ret_) shift_ = \
+- ((val_) > ((((typeof(val_)) 1) \
++ __typeof__(ret_) shift_ = \
++ ((val_) > ((((__typeof__(val_)) 1) \
+ << (1 << (bit_))) - 1)) << (bit_); \
+ (val_) >>= shift_; \
+ (ret_) |= shift_; \
diff --git a/file_ioctl.c b/file_ioctl.c
-index 94cb71f8..eed79727 100644
+index d9a07ab0..63c2bcb3 100644
--- a/file_ioctl.c
+++ b/file_ioctl.c
-@@ -164,7 +164,7 @@ file_ioctl(struct tcb *const tcp, const unsigned int code,
+@@ -157,7 +157,7 @@ file_ioctl(struct tcb *const tcp, const unsigned int code,
if (abbrev(tcp) && args.dest_count > count)
limit = &count;
@@ -66,7 +81,7 @@ index 94cb71f8..eed79727 100644
args.dest_count, &info, sizeof(info),
tfetch_mem,
print_file_dedupe_range_info, limit);
-@@ -212,7 +212,7 @@ file_ioctl(struct tcb *const tcp, const unsigned int code,
+@@ -202,7 +202,7 @@ file_ioctl(struct tcb *const tcp, const unsigned int code,
struct fiemap_extent fe;
tprints(", fm_extents=");
print_array(tcp,
@@ -156,21 +171,6 @@ index 27694326..46667e4e 100644
#else
# define TYPEOF_FLOCK_OFF_T off_t
#endif
-diff --git a/util.c b/util.c
-index 59696b58..6eda524d 100644
---- a/util.c
-+++ b/util.c
-@@ -1122,8 +1122,8 @@ dumpiov_upto(struct tcb *const tcp, const int len, const kernel_ulong_t addr,
-
- #define ILOG2_ITER_(val_, ret_, bit_) \
- do { \
-- typeof(ret_) shift_ = \
-- ((val_) > ((((typeof(val_)) 1) \
-+ __typeof__(ret_) shift_ = \
-+ ((val_) > ((((__typeof__(val_)) 1) \
- << (1 << (bit_))) - 1)) << (bit_); \
- (val_) >>= shift_; \
- (ret_) |= shift_; \
--
-2.26.2
+2.28.0
diff --git a/pkg/strace/patch/0004-Avoid-empty-initializer-lists.patch b/pkg/strace/patch/0004-Avoid-empty-initializer-lists.patch
@@ -1,4 +1,4 @@
-From 21b9f7852ec9daf1a356c3b588b8053bed5b8383 Mon Sep 17 00:00:00 2001
+From 6b445913b3178e5056b13e73ab03cc05d2b47bc4 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Sat, 6 Jul 2019 01:54:05 -0700
Subject: [PATCH] Avoid empty initializer lists
@@ -20,7 +20,7 @@ Subject: [PATCH] Avoid empty initializer lists
13 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/bpf.c b/bpf.c
-index 469f809a..cad5ab05 100644
+index af830053..6b77f17f 100644
--- a/bpf.c
+++ b/bpf.c
@@ -43,7 +43,7 @@ bpf_cmd_decoder(struct tcb *const tcp, \
@@ -42,10 +42,10 @@ index 469f809a..cad5ab05 100644
print_array(tcp, addr, len, &insn, sizeof(insn),
diff --git a/net.c b/net.c
-index a58fa921..d5f2dc1d 100644
+index fa4638e7..7b049211 100644
--- a/net.c
+++ b/net.c
-@@ -729,7 +729,7 @@ print_tpacket_stats(struct tcb *const tcp, const kernel_ulong_t addr,
+@@ -655,7 +655,7 @@ print_tpacket_stats(struct tcb *const tcp, const kernel_ulong_t addr,
static void
print_icmp_filter(struct tcb *const tcp, const kernel_ulong_t addr, int len)
{
@@ -68,7 +68,7 @@ index 788ef39b..2e5775d5 100644
bool is_set = false;
diff --git a/signal.c b/signal.c
-index 3cb54bb3..bc03dae8 100644
+index d5d59105..d20317ca 100644
--- a/signal.c
+++ b/signal.c
@@ -246,7 +246,7 @@ print_sigset_addr_len_limit(struct tcb *const tcp, const kernel_ulong_t addr,
@@ -81,7 +81,7 @@ index 3cb54bb3..bc03dae8 100644
return;
tprints(sprintsigmask_n("", mask, len));
diff --git a/strace.c b/strace.c
-index 311e4d62..2a4e6001 100644
+index 4c96a98b..fed04fc9 100644
--- a/strace.c
+++ b/strace.c
@@ -3359,7 +3359,7 @@ trace_syscall(struct tcb *tcp, unsigned int *sig)
@@ -199,12 +199,12 @@ index 2c4dae19..59bc2dd0 100644
.sigev_notify = 0xdefaced,
.sigev_signo = 0xfacefeed,
diff --git a/tests/wait4.c b/tests/wait4.c
-index ea40577a..d25bd87a 100644
+index 048e6225..b7bf7c8a 100644
--- a/tests/wait4.c
+++ b/tests/wait4.c
-@@ -72,7 +72,7 @@ sprint_rusage(const struct rusage *const ru)
+@@ -89,7 +89,7 @@ k_wait4(const unsigned int pid, void const *wstatus,
static pid_t
- do_wait4(pid_t pid, int *wstatus, int options, struct rusage *ru)
+ do_wait4(pid_t pid, int *wstatus, int options, kernel_rusage_t *ru)
{
- sigset_t mask = {};
+ sigset_t mask = {0};
@@ -212,7 +212,7 @@ index ea40577a..d25bd87a 100644
assert(sigprocmask(SIG_BLOCK, &mask, NULL) == 0);
diff --git a/tests/waitid.c b/tests/waitid.c
-index c58df5e2..730c58d7 100644
+index 8716fa08..4ec091f4 100644
--- a/tests/waitid.c
+++ b/tests/waitid.c
@@ -130,7 +130,7 @@ do_waitid(const unsigned int idtype,
@@ -225,5 +225,5 @@ index c58df5e2..730c58d7 100644
assert(sigprocmask(SIG_BLOCK, &mask, NULL) == 0);
--
-2.26.2
+2.28.0
diff --git a/pkg/strace/patch/0005-Avoid-pointer-arithmetic-on-void.patch b/pkg/strace/patch/0005-Avoid-pointer-arithmetic-on-void.patch
@@ -1,4 +1,4 @@
-From 1626ee384c34018d4d0f2c887cfdca05bccec2ff Mon Sep 17 00:00:00 2001
+From a5642a0735182fca95b8a1191df91233f88393a0 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Sun, 7 Jul 2019 21:25:13 -0700
Subject: [PATCH] Avoid pointer arithmetic on `void *`
@@ -59,10 +59,10 @@ index 0f0e296d..4449f857 100644
tprints("]");
diff --git a/sockaddr.c b/sockaddr.c
-index b6b9aa7d..948fa517 100644
+index b0046331..35e36392 100644
--- a/sockaddr.c
+++ b/sockaddr.c
-@@ -475,7 +475,7 @@ print_sockaddr_data_ll(const void *const buf, const int addrlen)
+@@ -481,7 +481,7 @@ print_sockaddr_data_ll(struct tcb *tcp, const void *const buf,
static void
print_sockaddr_data_raw(const void *const buf, const int addrlen)
{
@@ -107,5 +107,5 @@ index 59af8641..3ff59781 100644
len -= m;
}
--
-2.27.0
+2.28.0
diff --git a/pkg/strace/patch/0009-Avoid-index-ranges-and-empty-initializer-lists-in-sy.patch b/pkg/strace/patch/0009-Avoid-index-ranges-and-empty-initializer-lists-in-sy.patch
@@ -1,4 +1,4 @@
-From 0c68c7de0bfd8a1ebab376b0952f5a1a2c47643a Mon Sep 17 00:00:00 2001
+From 80d9bfb16cb9318f33521ea92a1c194e206cc479 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Sun, 7 Jul 2019 22:29:34 -0700
Subject: [PATCH] Avoid index ranges and empty initializer lists in syscallent
@@ -25,7 +25,7 @@ Subject: [PATCH] Avoid index ranges and empty initializer lists in syscallent
17 files changed, 173 insertions(+), 167 deletions(-)
diff --git a/linux/alpha/syscallent.h b/linux/alpha/syscallent.h
-index b0d680b6..54a03ddc 100644
+index fa86c9ae..21280054 100644
--- a/linux/alpha/syscallent.h
+++ b/linux/alpha/syscallent.h
@@ -60,7 +60,7 @@
@@ -137,7 +137,7 @@ index b0d680b6..54a03ddc 100644
[379] = { 3, TD, SEN(readahead), "readahead" },
-[380] = { },
+/* [380] - unused */
- [381] = { 2, TS, SEN(kill), "tkill" },
+ [381] = { 2, TS|TP, SEN(tkill), "tkill" },
[382] = { 5, TF, SEN(setxattr), "setxattr" },
[383] = { 5, TF, SEN(setxattr), "lsetxattr" },
@@ -347,7 +347,7 @@
@@ -150,7 +150,7 @@ index b0d680b6..54a03ddc 100644
[406] = { 3, 0, SEN(lookup_dcookie), "lookup_dcookie" },
[407] = { 1, TD, SEN(epoll_create), "epoll_create" },
diff --git a/linux/arm/syscallent.h b/linux/arm/syscallent.h
-index e9eee9f8..57612683 100644
+index b744074e..a4a1dd41 100644
--- a/linux/arm/syscallent.h
+++ b/linux/arm/syscallent.h
@@ -433,7 +433,7 @@
@@ -163,13 +163,13 @@ index e9eee9f8..57612683 100644
[ARM_FIRST_SHUFFLED_SYSCALL+1+2] = { 3, TM, SEN(printargs), "cacheflush" },
[ARM_FIRST_SHUFFLED_SYSCALL+1+3] = { 0, 0, SEN(printargs), "usr26" },
diff --git a/linux/avr32/syscallent.h b/linux/avr32/syscallent.h
-index 0b24353a..15a97080 100644
+index 491ff8e9..3338de47 100644
--- a/linux/avr32/syscallent.h
+++ b/linux/avr32/syscallent.h
@@ -228,7 +228,7 @@
[219] = { 3, TF|TSF|TSFA, SEN(statfs64), "statfs64" },
[220] = { 3, TD|TFSF|TSFA, SEN(fstatfs64), "fstatfs64" },
- [221] = { 3, TS, SEN(tgkill), "tgkill" },
+ [221] = { 3, TS|TP, SEN(tgkill), "tgkill" },
-[222] = { },
+/* [222] - unused */
[223] = { 2, TF, SEN(utimes), "utimes" },
@@ -185,7 +185,7 @@ index 0b24353a..15a97080 100644
[284] = { 5, TD, SEN(pread), "pread64" },
[285] = { 5, TD, SEN(pwrite), "pwrite64" },
diff --git a/linux/bfin/syscallent.h b/linux/bfin/syscallent.h
-index 4deafe0b..398efac3 100644
+index 53d5c235..df2a8003 100644
--- a/linux/bfin/syscallent.h
+++ b/linux/bfin/syscallent.h
@@ -229,7 +229,7 @@
@@ -198,7 +198,7 @@ index 4deafe0b..398efac3 100644
[225] = { 4, TD, SEN(readahead), "readahead" },
[226] = { 5, TF, SEN(setxattr), "setxattr" },
diff --git a/linux/i386/syscallent.h b/linux/i386/syscallent.h
-index 04278701..93321dd4 100644
+index c6e9cd9b..2ee607aa 100644
--- a/linux/i386/syscallent.h
+++ b/linux/i386/syscallent.h
@@ -229,7 +229,7 @@
@@ -229,7 +229,7 @@ index 04278701..93321dd4 100644
[287] = { 4, 0, SEN(request_key), "request_key" },
[288] = { 5, 0, SEN(keyctl), "keyctl" },
diff --git a/linux/m68k/syscallent.h b/linux/m68k/syscallent.h
-index 315dbb6c..d3084ca5 100644
+index e5ebefe1..742a951d 100644
--- a/linux/m68k/syscallent.h
+++ b/linux/m68k/syscallent.h
@@ -225,7 +225,7 @@
@@ -240,9 +240,9 @@ index 315dbb6c..d3084ca5 100644
+/* [218 ... 219] - unused */
[220] = { 3, TD, SEN(getdents64), "getdents64" },
[221] = { 0, PU|NF, SEN(gettid), "gettid" },
- [222] = { 2, TS, SEN(kill), "tkill" },
+ [222] = { 2, TS|TP, SEN(tkill), "tkill" },
diff --git a/linux/microblaze/syscallent.h b/linux/microblaze/syscallent.h
-index c17aad12..a75ecafa 100644
+index 1c816318..001308d6 100644
--- a/linux/microblaze/syscallent.h
+++ b/linux/microblaze/syscallent.h
@@ -229,7 +229,7 @@
@@ -273,7 +273,7 @@ index c17aad12..a75ecafa 100644
[287] = { 4, 0, SEN(request_key), "request_key" },
[288] = { 5, 0, SEN(keyctl), "keyctl" },
diff --git a/linux/mips/syscallent-compat.h b/linux/mips/syscallent-compat.h
-index 918f1107..2c0e8143 100644
+index 61ccfe4e..9444e4c4 100644
--- a/linux/mips/syscallent-compat.h
+++ b/linux/mips/syscallent-compat.h
@@ -69,13 +69,13 @@
@@ -437,7 +437,7 @@ index 918f1107..2c0e8143 100644
[3261] = { 0, 0, SEN(printargs), "posix_netunboot" },
[3262] = { 0, 0, SEN(printargs), "posix_rdump" },
diff --git a/linux/powerpc/syscallent.h b/linux/powerpc/syscallent.h
-index 6958edae..8330a2dc 100644
+index db4dd2b5..b6508a9b 100644
--- a/linux/powerpc/syscallent.h
+++ b/linux/powerpc/syscallent.h
@@ -231,7 +231,7 @@
@@ -450,7 +450,7 @@ index 6958edae..8330a2dc 100644
[226] = { 4, TD|TN, SEN(sendfile64), "sendfile64" },
[227] = { 2, TM, SEN(io_setup), "io_setup" },
diff --git a/linux/powerpc64/syscallent.h b/linux/powerpc64/syscallent.h
-index 608caedf..b86cb12a 100644
+index 9c306d28..53c0096b 100644
--- a/linux/powerpc64/syscallent.h
+++ b/linux/powerpc64/syscallent.h
@@ -199,14 +199,14 @@
@@ -492,7 +492,7 @@ index 608caedf..b86cb12a 100644
[256] = { 5, 0, SEN(printargs), "sys_debug_setcontext" },
[257] = { 5, 0, SEN(vserver), "vserver" },
diff --git a/linux/s390/syscallent.h b/linux/s390/syscallent.h
-index c61ad77b..3ae6e1e7 100644
+index 7af96b5c..97fe42e2 100644
--- a/linux/s390/syscallent.h
+++ b/linux/s390/syscallent.h
@@ -26,8 +26,8 @@
@@ -523,7 +523,7 @@ index c61ad77b..3ae6e1e7 100644
-[ 35] = { },
+/* [ 35] - unused */
[ 36] = { 0, 0, SEN(sync), "sync" },
- [ 37] = { 2, TS, SEN(kill), "kill" },
+ [ 37] = { 2, TS|TP, SEN(kill), "kill" },
[ 38] = { 2, TF, SEN(rename), "rename" },
@@ -53,7 +53,7 @@
[ 41] = { 1, TD, SEN(dup), "dup" },
@@ -619,14 +619,14 @@ index c61ad77b..3ae6e1e7 100644
@@ -251,7 +251,7 @@
[239] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" },
[240] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" },
- [241] = { 3, TS, SEN(tgkill), "tgkill" },
+ [241] = { 3, TS|TP, SEN(tgkill), "tgkill" },
-[242] = { },
+/* [242] - unused */
[243] = { 2, TM, SEN(io_setup), "io_setup" },
[244] = { 1, TM, SEN(io_destroy), "io_destroy" },
[245] = { 5, 0, SEN(io_getevents_time32), "io_getevents" },
diff --git a/linux/s390x/syscallent.h b/linux/s390x/syscallent.h
-index c4937579..8ce485fa 100644
+index 6daa310e..8542e839 100644
--- a/linux/s390x/syscallent.h
+++ b/linux/s390x/syscallent.h
@@ -21,29 +21,29 @@
@@ -668,7 +668,7 @@ index c4937579..8ce485fa 100644
-[ 35] = { },
+/* [ 35] - unused */
[ 36] = { 0, 0, SEN(sync), "sync" },
- [ 37] = { 2, TS, SEN(kill), "kill" },
+ [ 37] = { 2, TS|TP, SEN(kill), "kill" },
[ 38] = { 2, TF, SEN(rename), "rename" },
@@ -52,22 +52,22 @@
[ 41] = { 1, TD, SEN(dup), "dup" },
@@ -821,7 +821,7 @@ index c4937579..8ce485fa 100644
@@ -235,7 +235,7 @@
[239] = { 3, 0, SEN(sched_setaffinity), "sched_setaffinity" },
[240] = { 3, 0, SEN(sched_getaffinity), "sched_getaffinity" },
- [241] = { 3, TS, SEN(tgkill), "tgkill" },
+ [241] = { 3, TS|TP, SEN(tgkill), "tgkill" },
-[242] = { },
+/* [242] - unused */
[243] = { 2, TM, SEN(io_setup), "io_setup" },
@@ -837,7 +837,7 @@ index c4937579..8ce485fa 100644
[266] = { 3, TD|TFSF|TSFA, SEN(fstatfs64), "fstatfs64" },
[267] = { 5, TM|SI, SEN(remap_file_pages), "remap_file_pages" },
diff --git a/linux/sh/syscallent.h b/linux/sh/syscallent.h
-index 61eb7283..6dc45919 100644
+index 5349f720..48d65c5e 100644
--- a/linux/sh/syscallent.h
+++ b/linux/sh/syscallent.h
@@ -197,7 +197,7 @@
@@ -876,7 +876,7 @@ index 61eb7283..6dc45919 100644
[253] = { 4, 0, SEN(lookup_dcookie), "lookup_dcookie" },
[254] = { 1, TD, SEN(epoll_create), "epoll_create" },
@@ -279,7 +279,7 @@
- [270] = { 3, TS, SEN(tgkill), "tgkill" },
+ [270] = { 3, TS|TP, SEN(tgkill), "tgkill" },
[271] = { 2, TF, SEN(utimes), "utimes" },
[272] = { 6, TD, SEN(fadvise64_64), "fadvise64_64" },
-[273] = { },
@@ -894,7 +894,7 @@ index 61eb7283..6dc45919 100644
[295] = { 4, TD|TF, SEN(openat), "openat" },
[296] = { 3, TD|TF, SEN(mkdirat), "mkdirat" },
diff --git a/linux/sh64/syscallent.h b/linux/sh64/syscallent.h
-index f681635c..d19dafa8 100644
+index 4ec35d31..b9040a15 100644
--- a/linux/sh64/syscallent.h
+++ b/linux/sh64/syscallent.h
@@ -89,7 +89,7 @@
@@ -967,7 +967,7 @@ index f681635c..d19dafa8 100644
[281] = { 3, 0, SEN(lookup_dcookie), "lookup_dcookie" },
[282] = { 1, TD, SEN(epoll_create), "epoll_create" },
@@ -305,7 +311,7 @@
- [298] = { 3, TS, SEN(tgkill), "tgkill" },
+ [298] = { 3, TS|TP, SEN(tgkill), "tgkill" },
[299] = { 2, TF, SEN(utimes), "utimes" },
[300] = { 4, TD, SEN(fadvise64_64), "fadvise64_64" },
-[301] = { },
@@ -985,7 +985,7 @@ index f681635c..d19dafa8 100644
[323] = { 4, TD|TF, SEN(openat), "openat" },
[324] = { 3, TD|TF, SEN(mkdirat), "mkdirat" },
diff --git a/linux/sparc/syscallent.h b/linux/sparc/syscallent.h
-index 3417e7fc..5e89f4e4 100644
+index a385368a..acdbff6e 100644
--- a/linux/sparc/syscallent.h
+++ b/linux/sparc/syscallent.h
@@ -57,7 +57,7 @@
@@ -1007,7 +1007,7 @@ index 3417e7fc..5e89f4e4 100644
[166] = { 1, 0, SEN(set_tid_address), "set_tid_address" },
[167] = { 5, TF, SEN(mount), "mount" },
diff --git a/linux/sparc64/syscallent.h b/linux/sparc64/syscallent.h
-index dd77685c..732dca82 100644
+index 5faa721c..eec17849 100644
--- a/linux/sparc64/syscallent.h
+++ b/linux/sparc64/syscallent.h
@@ -36,10 +36,10 @@
@@ -1021,7 +1021,7 @@ index dd77685c..732dca82 100644
-[ 35] = { },
+/* [ 35] - unused */
[ 36] = { 0, 0, SEN(sync), "sync" },
- [ 37] = { 2, TS, SEN(kill), "kill" },
+ [ 37] = { 2, TS|TP, SEN(kill), "kill" },
[ 38] = { 2, TF|TST|TSTA, SEN(stat), "stat" },
@@ -48,7 +48,7 @@
[ 41] = { 1, TD, SEN(dup), "dup" },
@@ -1118,7 +1118,7 @@ index dd77685c..732dca82 100644
[233] = { 1, 0, SEN(stime), "stime" },
[234] = { 3, TF|TSF|TSFA, SEN(statfs64), "statfs64" },
diff --git a/linux/xtensa/syscallent.h b/linux/xtensa/syscallent.h
-index 385630a9..7653c940 100644
+index a94fd93d..eb189ffc 100644
--- a/linux/xtensa/syscallent.h
+++ b/linux/xtensa/syscallent.h
@@ -7,7 +7,7 @@
@@ -1243,5 +1243,5 @@ index 385630a9..7653c940 100644
[321] = { 6, TD|TF, SEN(fanotify_mark), "fanotify_mark" },
[322] = { 6, 0, SEN(process_vm_readv), "process_vm_readv" },
--
-2.26.2
+2.28.0
diff --git a/pkg/strace/patch/0010-Use-alloca-when-VLAs-aren-t-available.patch b/pkg/strace/patch/0010-Use-alloca-when-VLAs-aren-t-available.patch
@@ -1,4 +1,4 @@
-From d611486eb337e97b15886059a1b55319bd02d3e1 Mon Sep 17 00:00:00 2001
+From 0ad7047e306f4aef8f4a6346e9dfff8079b1c571 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Thu, 30 Jan 2020 21:57:34 -0800
Subject: [PATCH] Use alloca when VLAs aren't available
@@ -8,10 +8,10 @@ Subject: [PATCH] Use alloca when VLAs aren't available
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/evdev.c b/evdev.c
-index 573f18f4..27eb8a38 100644
+index 1d4e9aef..58e705ae 100644
--- a/evdev.c
+++ b/evdev.c
-@@ -198,9 +198,13 @@ decode_bitset(struct tcb *const tcp, const kernel_ulong_t arg,
+@@ -181,9 +181,13 @@ decode_bitset(struct tcb *const tcp, const kernel_ulong_t arg,
return RVAL_IOCTL_DECODED;
}
@@ -26,7 +26,7 @@ index 573f18f4..27eb8a38 100644
return RVAL_IOCTL_DECODED;
if (xlat_verbose(xlat_verbosity) != XLAT_STYLE_RAW) {
-@@ -255,9 +259,13 @@ mtslots_ioctl(struct tcb *const tcp, const unsigned int code,
+@@ -238,9 +242,13 @@ mtslots_ioctl(struct tcb *const tcp, const unsigned int code,
return RVAL_IOCTL_DECODED;
}
@@ -41,7 +41,7 @@ index 573f18f4..27eb8a38 100644
return RVAL_IOCTL_DECODED;
tprints("{code=");
-@@ -266,7 +274,7 @@ mtslots_ioctl(struct tcb *const tcp, const unsigned int code,
+@@ -249,7 +257,7 @@ mtslots_ioctl(struct tcb *const tcp, const unsigned int code,
tprints(", values=[");
unsigned int i;
@@ -51,5 +51,5 @@ index 573f18f4..27eb8a38 100644
tprints("]}");
--
-2.25.0
+2.28.0
diff --git a/pkg/strace/patch/0011-Avoid-index-ranges.patch b/pkg/strace/patch/0011-Avoid-index-ranges.patch
@@ -1,4 +1,4 @@
-From db02e7c4bbee683d647235294fc9ba7110dfa798 Mon Sep 17 00:00:00 2001
+From 82bc9666c33984b6655fce1c142a8e8773dbb398 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Thu, 30 Jan 2020 22:32:50 -0800
Subject: [PATCH] Avoid index ranges
@@ -33,10 +33,10 @@ index c5d5f5c4..a7c54b3e 100644
return sprint_mac_addr(hwaddr, MIN(size, sz));
diff --git a/util.c b/util.c
-index c15e6514..f61d82b6 100644
+index 0e1ea8df..c831e2ec 100644
--- a/util.c
+++ b/util.c
-@@ -1247,16 +1247,16 @@ dumpstr(struct tcb *const tcp, const kernel_ulong_t addr,
+@@ -1185,16 +1185,16 @@ dumpstr(struct tcb *const tcp, const kernel_ulong_t addr,
? 1 + ilog2_klong(len - 1) / HEX_BIT : DUMPSTR_OFFS_MIN_CHARS;
kernel_ulong_t i = 0;
const unsigned char *src;
@@ -58,5 +58,5 @@ index c15e6514..f61d82b6 100644
/* Fetching data from tracee. */
--
-2.26.2
+2.28.0
diff --git a/pkg/strace/patch/0012-io_uring-Remove-struct-io_cqring_offsets-compile-tim.patch b/pkg/strace/patch/0012-io_uring-Remove-struct-io_cqring_offsets-compile-tim.patch
@@ -1,44 +0,0 @@
-From 8ba630f69445285a84daa356fc9bdb0dd059be40 Mon Sep 17 00:00:00 2001
-From: Chris Packham <chris.packham@alliedtelesis.co.nz>
-Date: Mon, 15 Jun 2020 22:01:25 +1200
-Subject: [PATCH] io_uring: Remove struct io_cqring_offsets compile time
- asserts
-
-The generated types/check-io_uring.c already checks the kernel's struct
-io_cqring_offsets for compatibility with the strace definition so
-there's no need for manual checks.
-
-* io_uring.c [HAVE_STRUCT_IO_CQRING_OFFSETS]: Remove static_asserts.
----
- io_uring.c | 15 ---------------
- 1 file changed, 15 deletions(-)
-
-diff --git a/io_uring.c b/io_uring.c
-index cd183457..cfeea82b 100644
---- a/io_uring.c
-+++ b/io_uring.c
-@@ -18,21 +18,6 @@
- #include "xlat/uring_enter_flags.h"
- #include "xlat/uring_register_opcodes.h"
-
--#ifdef HAVE_STRUCT_IO_CQRING_OFFSETS
--# ifdef HAVE_STRUCT_IO_CQRING_OFFSETS_RESV
--static_assert(offsetof(struct_io_cqring_offsets, resv)
-- >= offsetof(struct io_cqring_offsets, resv),
-- "struct io_cqring_offsets.resv offset mismatch"
-- ", please update the decoder");
--static_assert(sizeof_field(struct_io_cqring_offsets, resv)
-- <= sizeof_field(struct io_cqring_offsets, resv),
-- "struct io_cqring_offsets.resv size mismatch"
-- ", please update the decoder");
--# else /* !HAVE_STRUCT_IO_CQRING_OFFSETS_RESV */
--static_assert(0, "struct io_cqring_offsets.resv is missing"
-- ", please update the decoder");
--# endif
--#endif /* HAVE_STRUCT_IO_CQRING_OFFSETS */
- #ifdef HAVE_STRUCT_IO_URING_PARAMS
- # ifdef HAVE_STRUCT_IO_URING_PARAMS_RESV
- static_assert(offsetof(struct_io_uring_params, resv)
---
-2.28.0
-
diff --git a/pkg/strace/patch/0013-io_uring-Add-io_cqring_offset-flags.patch b/pkg/strace/patch/0013-io_uring-Add-io_cqring_offset-flags.patch
@@ -1,208 +0,0 @@
-From 7be4c3c00f7b7568b4c7602e8430e90d2df91e3b Mon Sep 17 00:00:00 2001
-From: Chris Packham <chris.packham@alliedtelesis.co.nz>
-Date: Mon, 15 Jun 2020 22:01:26 +1200
-Subject: [PATCH] io_uring: Add io_cqring_offset flags
-
-Add support for displaying struct io_cqring_offsets.flags introduced
-by Linux kernel commits v5.8-rc1~190^2~22 and v5.8-rc1~190^2~21.
-
-* types/io_uring.h (struct_io_cqring_offsets): Replace resv array
-with flags, resv1, and resv2 fields.
-* xlat/uring_cqring_flags.in: New file.
-* configure.ac (AC_CHECK_MEMBERS): Check struct io_cqring_offsets.flags.
-* io_uring.c: Include "xlat/uring_cqring_flags.h".
-(SYS_FUNC(io_uring_setup)): Replace printing of the resv array
-of struct io_cqring_offsets with flags, resv1, and resv2 fields.
-* tests/io_uring_setup.c: Check it.
-
-Co-authored-by: Dmitry V. Levin <ldv@altlinux.org>
-Resolves: https://github.com/strace/strace/issues/138
----
- configure.ac | 1 +
- io_uring.c | 11 +++++----
- tests/io_uring_setup.c | 31 ++++++++++++++++++++----
- types/io_uring.h | 4 +++-
- xlat/uring_cqring_flags.h | 48 ++++++++++++++++++++++++++++++++++++++
- xlat/uring_cqring_flags.in | 1 +
- 6 files changed, 86 insertions(+), 10 deletions(-)
- create mode 100644 xlat/uring_cqring_flags.h
- create mode 100644 xlat/uring_cqring_flags.in
-
-diff --git a/configure.ac b/configure.ac
-index d0fd51ff..91c2249e 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -481,6 +481,7 @@ AC_CHECK_HEADERS([linux/bpf.h], [
-
- AC_CHECK_HEADERS([linux/io_uring.h], [
- AC_CHECK_MEMBERS(m4_normalize([
-+ struct io_cqring_offsets.flags,
- struct io_uring_params.features,
- struct io_uring_params.wq_fd,
- struct io_uring_params.resv
-diff --git a/io_uring.c b/io_uring.c
-index cfeea82b..2ffe163e 100644
---- a/io_uring.c
-+++ b/io_uring.c
-@@ -17,6 +17,7 @@
- #include "xlat/uring_setup_flags.h"
- #include "xlat/uring_enter_flags.h"
- #include "xlat/uring_register_opcodes.h"
-+#include "xlat/uring_cqring_flags.h"
-
- #ifdef HAVE_STRUCT_IO_URING_PARAMS
- # ifdef HAVE_STRUCT_IO_URING_PARAMS_RESV
-@@ -88,10 +89,12 @@ SYS_FUNC(io_uring_setup)
- PRINT_FIELD_U(", ", params.cq_off, ring_entries);
- PRINT_FIELD_U(", ", params.cq_off, overflow);
- PRINT_FIELD_U(", ", params.cq_off, cqes);
-- if (!IS_ARRAY_ZERO(params.cq_off.resv)) {
-- PRINT_FIELD_ARRAY(", ", params.cq_off, resv, tcp,
-- print_xint64_array_member);
-- }
-+ PRINT_FIELD_FLAGS(", ", params.cq_off, flags,
-+ uring_cqring_flags, "IORING_CQ_???");
-+ if (params.cq_off.resv1)
-+ PRINT_FIELD_X(", ", params.cq_off, resv1);
-+ if (params.cq_off.resv2)
-+ PRINT_FIELD_X(", ", params.cq_off, resv2);
- tprints("}");
- }
- tprints("}");
-diff --git a/tests/io_uring_setup.c b/tests/io_uring_setup.c
-index 317b0d7a..a59e4a1a 100644
---- a/tests/io_uring_setup.c
-+++ b/tests/io_uring_setup.c
-@@ -27,6 +27,7 @@
- # include "xlat.h"
-
- # include "xlat/uring_setup_features.h"
-+# include "xlat/uring_cqring_flags.h"
-
- # ifdef HAVE_STRUCT_IO_URING_PARAMS_FEATURES
- # ifdef HAVE_STRUCT_IO_URING_PARAMS_WQ_FD
-@@ -144,20 +145,40 @@ main(void)
- params->sq_off.resv2);
-
- printf("}, cq_off={head=%u, tail=%u, ring_mask=%u"
-- ", ring_entries=%u, overflow=%u, cqes=%u",
-+ ", ring_entries=%u, overflow=%u, cqes=%u, flags=",
- params->cq_off.head,
- params->cq_off.tail,
- params->cq_off.ring_mask,
- params->cq_off.ring_entries,
- params->cq_off.overflow,
- params->cq_off.cqes);
-- if (params->cq_off.resv[0] || params->cq_off.resv[1]) {
-- printf(", resv=[%#llx, %#llx]",
-+#ifdef HAVE_STRUCT_IO_CQRING_OFFSETS_FLAGS
-+ printflags(uring_cqring_flags,
-+ params->cq_off.flags,
-+ "IORING_CQ_???");
-+ if (params->cq_off.resv1)
-+ printf(", resv1=%#x", params->cq_off.resv1);
-+ if (params->cq_off.resv2)
-+ printf(", resv2=%#llx",
- (unsigned long long)
-- params->cq_off.resv[0],
-+ params->cq_off.resv2);
-+#else
-+ union {
-+ struct {
-+ uint32_t flags;
-+ uint32_t resv1;
-+ } s;
-+ uint64_t v;
-+ } u = { .v = params->cq_off.resv[0] };
-+ printflags(uring_cqring_flags, u.s.flags,
-+ "IORING_CQ_???");
-+ if (u.s.resv1)
-+ printf(", resv1=%#x", u.s.resv1);
-+ if (params->cq_off.resv[1])
-+ printf(", resv2=%#llx",
- (unsigned long long)
- params->cq_off.resv[1]);
-- }
-+#endif
-
- printf("}}) = %ld<anon_inode:[io_uring]>\n", rc);
- }
-diff --git a/types/io_uring.h b/types/io_uring.h
-index 76f432c3..2fe1c13a 100644
---- a/types/io_uring.h
-+++ b/types/io_uring.h
-@@ -31,7 +31,9 @@ typedef struct {
- uint32_t ring_entries;
- uint32_t overflow;
- uint32_t cqes;
-- uint64_t resv[2];
-+ /** Added by v5.8-rc1~190^2~22 */ uint32_t flags;
-+ /** Added by v5.8-rc1~190^2~22 */ uint32_t resv1;
-+ /** Added by v5.8-rc1~190^2~22 */ uint64_t resv2;
- } struct_io_cqring_offsets;
-
- typedef struct {
-diff --git a/xlat/uring_cqring_flags.h b/xlat/uring_cqring_flags.h
-new file mode 100644
-index 00000000..7c06c35c
---- /dev/null
-+++ b/xlat/uring_cqring_flags.h
-@@ -0,0 +1,48 @@
-+/* Generated by ./gen.sh from ./uring_cqring_flags.in; do not edit. */
-+
-+#include "gcc_compat.h"
-+#include "static_assert.h"
-+
-+#if defined(IORING_CQ_EVENTFD_DISABLED) || (defined(HAVE_DECL_IORING_CQ_EVENTFD_DISABLED) && HAVE_DECL_IORING_CQ_EVENTFD_DISABLED)
-+DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
-+static_assert((IORING_CQ_EVENTFD_DISABLED) == (1U), "IORING_CQ_EVENTFD_DISABLED != 1U");
-+DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
-+#else
-+# define IORING_CQ_EVENTFD_DISABLED 1U
-+#endif
-+
-+#ifndef XLAT_MACROS_ONLY
-+
-+# ifdef IN_MPERS
-+
-+# error static const struct xlat uring_cqring_flags in mpers mode
-+
-+# else
-+
-+static const struct xlat_data uring_cqring_flags_xdata[] = {
-+ XLAT(IORING_CQ_EVENTFD_DISABLED),
-+ #define XLAT_VAL_0 ((unsigned) (IORING_CQ_EVENTFD_DISABLED))
-+ #define XLAT_STR_0 STRINGIFY(IORING_CQ_EVENTFD_DISABLED)
-+};
-+static
-+const struct xlat uring_cqring_flags[1] = { {
-+ .data = uring_cqring_flags_xdata,
-+ .size = ARRAY_SIZE(uring_cqring_flags_xdata),
-+ .type = XT_NORMAL,
-+ .flags_mask = 0
-+# ifdef XLAT_VAL_0
-+ | XLAT_VAL_0
-+# endif
-+ ,
-+ .flags_strsz = 0
-+# ifdef XLAT_STR_0
-+ + sizeof(XLAT_STR_0)
-+# endif
-+ ,
-+} };
-+
-+# undef XLAT_STR_0
-+# undef XLAT_VAL_0
-+# endif /* !IN_MPERS */
-+
-+#endif /* !XLAT_MACROS_ONLY */
-diff --git a/xlat/uring_cqring_flags.in b/xlat/uring_cqring_flags.in
-new file mode 100644
-index 00000000..c81fbc20
---- /dev/null
-+++ b/xlat/uring_cqring_flags.in
-@@ -0,0 +1 @@
-+IORING_CQ_EVENTFD_DISABLED 1U
---
-2.28.0
-
diff --git a/pkg/strace/sha256 b/pkg/strace/sha256
@@ -1 +1 @@
-b284b59f9bcd95b9728cea5bd5c0edc5ebe360af73dc76fbf6334f11c777ccd8 strace-5.7.tar.xz
+df4a669f7fff9cc302784085bd4b72fab216a426a3f72c892b28a537b71e7aa9 strace-5.8.tar.xz
diff --git a/pkg/strace/url b/pkg/strace/url
@@ -1 +1 @@
-url = "https://github.com/strace/strace/releases/download/v5.7/strace-5.7.tar.xz"
+url = "https://github.com/strace/strace/releases/download/v5.8/strace-5.8.tar.xz"
diff --git a/pkg/strace/ver b/pkg/strace/ver
@@ -1 +1 @@
-5.7 r1
+5.8 r0