commit: 0128e4c17480a6e8a3a478eeeb9304f97986bc63
parent 60af056f78b258b7b96f76673eb3c0d710f73e20
Author: Michael Forney <mforney@mforney.org>
Date: Fri, 10 Apr 2020 14:52:39 -0700
strace: Update to 5.6
Diffstat:
14 files changed, 224 insertions(+), 111 deletions(-)
diff --git a/pkg/strace/.gitignore b/pkg/strace/.gitignore
@@ -1,3 +1,3 @@
/src
-/strace-5.5.tar.xz
+/strace-5.6.tar.xz
/tools.ninja
diff --git a/pkg/strace/config.h b/pkg/strace/config.h
@@ -28,7 +28,10 @@
#define HAVE_DECL_CTL_S390DBF 1
#define HAVE_DECL_CTL_SUNRPC 1
#define HAVE_DECL_IFLA_AF_SPEC 1
+#define HAVE_DECL_IFLA_ALT_IFNAME 1
+#define HAVE_DECL_IFLA_PERM_ADDRESS 1
#define HAVE_DECL_IFLA_PORT_SELF 1
+#define HAVE_DECL_IFLA_PROP_LIST 1
#define HAVE_DECL_IFLA_PROTINFO 1
#define HAVE_DECL_IFLA_XDP 1
#define HAVE_DECL_KERN_ACPI_VIDEO_FLAGS 1
@@ -243,6 +246,7 @@
#define HAVE_LINUX_NETFILTER_NF_TABLES_H 1
#define HAVE_LINUX_NETFILTER_XT_OSF_H 1
#define HAVE_LINUX_NSFS_H 1
+#define HAVE_LINUX_OPENAT2_H 1
#define HAVE_LINUX_PERF_EVENT_H 1
#define HAVE_LINUX_QUOTA_H 1
#define HAVE_LINUX_RTNETLINK_H 1
@@ -251,6 +255,7 @@
#define HAVE_LINUX_SECUREBITS_H 1
#define HAVE_LINUX_USERFAULTFD_H 1
#define HAVE_LINUX_UTSNAME_H 1
+#define HAVE_LINUX_VIDEODEV2_H 1
/* #undef HAVE_M32_MPERS */
/* #undef HAVE_M32_STRUCT_STAT */
/* #undef HAVE_M32_STRUCT_STAT64 */
@@ -270,7 +275,6 @@
#define HAVE_OPEN64 1
#define HAVE_OPEN_MEMSTREAM 1
#define HAVE_PATHS_H 1
-#define HAVE_PRCTL 1
#define HAVE_PREADV 1
#define HAVE_PROCESS_VM_READV 1
#define HAVE_PROGRAM_INVOCATION_NAME 1
@@ -299,6 +303,7 @@
#define HAVE_STRUCT_BPF_MAP_INFO_BTF_ID 1
#define HAVE_STRUCT_BPF_MAP_INFO_BTF_KEY_TYPE_ID 1
#define HAVE_STRUCT_BPF_MAP_INFO_BTF_VALUE_TYPE_ID 1
+#define HAVE_STRUCT_BPF_MAP_INFO_BTF_VMLINUX_VALUE_TYPE_ID 1
#define HAVE_STRUCT_BPF_MAP_INFO_ID 1
#define HAVE_STRUCT_BPF_MAP_INFO_IFINDEX 1
#define HAVE_STRUCT_BPF_MAP_INFO_KEY_SIZE 1
@@ -398,7 +403,11 @@
#define HAVE_STRUCT_IO_URING_PARAMS_CQ_OFF 1
#define HAVE_STRUCT_IO_URING_PARAMS_FEATURES 1
#define HAVE_STRUCT_IO_URING_PARAMS_RESV 1
-/* #undef HAVE_STRUCT_IO_URING_PARAMS_WQ_FD */
+#define HAVE_STRUCT_IO_URING_PARAMS_WQ_FD 1
+#define HAVE_STRUCT_IO_URING_PROBE 1
+#define HAVE_STRUCT_IO_URING_PROBE_OP 1
+#define HAVE_STRUCT_IO_URING_PROBE_OPS 1
+#define HAVE_STRUCT_IO_URING_PROBE_OP_RESV2 1
#define HAVE_STRUCT_KCMP_EPOLL_SLOT 1
#define HAVE_STRUCT_KEYCTL_KDF_PARAMS 1
#define HAVE_STRUCT_KEYCTL_PKEY_PARAMS 1
@@ -414,6 +423,8 @@
#define HAVE_STRUCT_NDT_STATS 1
#define HAVE_STRUCT_NDT_STATS_NDTS_TABLE_FULLS 1
#define HAVE_STRUCT_NETCONFMSG 1
+#define HAVE_STRUCT_OPEN_HOW 1
+#define HAVE_STRUCT_OPEN_HOW_RESOLVE 1
#define HAVE_STRUCT_PERF_EVENT_ATTR_AUX_SAMPLE_SIZE 1
#define HAVE_STRUCT_PERF_EVENT_ATTR_AUX_WATERMARK 1
#define HAVE_STRUCT_PERF_EVENT_ATTR_BP_TYPE 1
@@ -449,6 +460,20 @@
#define HAVE_STRUCT_RTNL_LINK_STATS_RX_NOHANDLER 1
#define HAVE_STRUCT_RTVIA 1
#define HAVE_STRUCT_RTVIA_RTVIA_ADDR 1
+/* #undef HAVE_STRUCT_RUSAGE___RU_IDRSS_WORD */
+/* #undef HAVE_STRUCT_RUSAGE___RU_INBLOCK_WORD */
+/* #undef HAVE_STRUCT_RUSAGE___RU_ISRSS_WORD */
+/* #undef HAVE_STRUCT_RUSAGE___RU_IXRSS_WORD */
+/* #undef HAVE_STRUCT_RUSAGE___RU_MAJFLT_WORD */
+/* #undef HAVE_STRUCT_RUSAGE___RU_MAXRSS_WORD */
+/* #undef HAVE_STRUCT_RUSAGE___RU_MINFLT_WORD */
+/* #undef HAVE_STRUCT_RUSAGE___RU_MSGRCV_WORD */
+/* #undef HAVE_STRUCT_RUSAGE___RU_MSGSND_WORD */
+/* #undef HAVE_STRUCT_RUSAGE___RU_NIVCSW_WORD */
+/* #undef HAVE_STRUCT_RUSAGE___RU_NSIGNALS_WORD */
+/* #undef HAVE_STRUCT_RUSAGE___RU_NSWAP_WORD */
+/* #undef HAVE_STRUCT_RUSAGE___RU_NVCSW_WORD */
+/* #undef HAVE_STRUCT_RUSAGE___RU_OUBLOCK_WORD */
#define HAVE_STRUCT_SIGCONTEXT 1
/* #undef HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL */
/* #undef HAVE_STRUCT_SOCKADDR_L2_L2_BDADDR_TYPE */
@@ -471,12 +496,48 @@
#define HAVE_STRUCT_USER_DESC 1
#define HAVE_STRUCT_USER_DESC_LM 1
#define HAVE_STRUCT_UTSNAME_DOMAINNAME 1
+#define HAVE_STRUCT_V4L2_AREA 1
+#define HAVE_STRUCT_V4L2_AREA_HEIGHT 1
+#define HAVE_STRUCT_V4L2_CAPABILITY 1
#define HAVE_STRUCT_V4L2_CAPABILITY_DEVICE_CAPS 1
+#define HAVE_STRUCT_V4L2_CAPABILITY_RESERVED 1
+#define HAVE_STRUCT_V4L2_CLIP 1
+#define HAVE_STRUCT_V4L2_CLIP_NEXT 1
+#define HAVE_STRUCT_V4L2_CREATE_BUFFERS 1
+#define HAVE_STRUCT_V4L2_CREATE_BUFFERS_RESERVED 1
+#define HAVE_STRUCT_V4L2_EXT_CONTROLS 1
+#define HAVE_STRUCT_V4L2_EXT_CONTROLS_CONTROLS 1
#define HAVE_STRUCT_V4L2_EXT_CONTROL_STRING 1
+#define HAVE_STRUCT_V4L2_FORMAT 1
+#define HAVE_STRUCT_V4L2_FORMAT_FMT 1
#define HAVE_STRUCT_V4L2_FORMAT_FMT_PIX_MP 1
#define HAVE_STRUCT_V4L2_FORMAT_FMT_SDR 1
#define HAVE_STRUCT_V4L2_FORMAT_FMT_SLICED 1
+#define HAVE_STRUCT_V4L2_FRMIVALENUM 1
+#define HAVE_STRUCT_V4L2_FRMIVALENUM_RESERVED 1
+#define HAVE_STRUCT_V4L2_FRMIVAL_STEPWISE 1
+#define HAVE_STRUCT_V4L2_FRMIVAL_STEPWISE_STEP 1
+#define HAVE_STRUCT_V4L2_FRMSIZEENUM 1
+#define HAVE_STRUCT_V4L2_FRMSIZEENUM_RESERVED 1
+#define HAVE_STRUCT_V4L2_FRMSIZE_DISCRETE 1
+#define HAVE_STRUCT_V4L2_FRMSIZE_DISCRETE_HEIGHT 1
+#define HAVE_STRUCT_V4L2_FRMSIZE_STEPWISE 1
+#define HAVE_STRUCT_V4L2_FRMSIZE_STEPWISE_STEP_HEIGHT 1
+#define HAVE_STRUCT_V4L2_META_FORMAT 1
+#define HAVE_STRUCT_V4L2_PIX_FORMAT 1
+#define HAVE_STRUCT_V4L2_PIX_FORMAT_MPLANE 1
+#define HAVE_STRUCT_V4L2_PIX_FORMAT_XFER_FUNC 1
+#define HAVE_STRUCT_V4L2_PLANE_PIX_FORMAT 1
+#define HAVE_STRUCT_V4L2_PLANE_PIX_FORMAT_RESERVED 1
+#define HAVE_STRUCT_V4L2_SDR_FORMAT 1
#define HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE 1
+#define HAVE_STRUCT_V4L2_SLICED_VBI_CAP 1
+#define HAVE_STRUCT_V4L2_SLICED_VBI_CAP_RESERVED 1
+#define HAVE_STRUCT_V4L2_SLICED_VBI_FORMAT 1
+#define HAVE_STRUCT_V4L2_SLICED_VBI_FORMAT_RESERVED 1
+#define HAVE_STRUCT_V4L2_VBI_FORMAT 1
+#define HAVE_STRUCT_V4L2_VBI_FORMAT_RESERVED 1
+#define HAVE_STRUCT_V4L2_WINDOW 1
#define HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA 1
/* #undef HAVE_STRUCT___AIO_SIGSET */
/* #undef HAVE_STRUCT___KERNEL_FLOCK */
@@ -485,7 +546,7 @@
#define HAVE_STRUCT___KERNEL_SOCK_TIMEVAL 1
#define HAVE_STRUCT___KERNEL_TIMESPEC 1
#define HAVE_STRUCT___OLD_KERNEL_STAT 1
-/* #undef HAVE_STRUCT___PTRACE_SYSCALL_INFO */
+#define HAVE_STRUCT___PTRACE_SYSCALL_INFO 1
#define HAVE_SYNC_FILE_RANGE 1
/* #undef HAVE_SYS_CONF_H */
#define HAVE_SYS_EVENTFD_H 1
@@ -502,6 +563,14 @@
#define HAVE_UNION_BPF_ATTR_ATTACH_FLAGS 1
#define HAVE_UNION_BPF_ATTR_ATTACH_PROG_FD 1
#define HAVE_UNION_BPF_ATTR_ATTACH_TYPE 1
+#define HAVE_UNION_BPF_ATTR_BATCH_COUNT 1
+#define HAVE_UNION_BPF_ATTR_BATCH_ELEM_FLAGS 1
+#define HAVE_UNION_BPF_ATTR_BATCH_FLAGS 1
+#define HAVE_UNION_BPF_ATTR_BATCH_IN_BATCH 1
+#define HAVE_UNION_BPF_ATTR_BATCH_KEYS 1
+#define HAVE_UNION_BPF_ATTR_BATCH_MAP_FD 1
+#define HAVE_UNION_BPF_ATTR_BATCH_OUT_BATCH 1
+#define HAVE_UNION_BPF_ATTR_BATCH_VALUES 1
#define HAVE_UNION_BPF_ATTR_BPF_FD 1
#define HAVE_UNION_BPF_ATTR_BTF 1
#define HAVE_UNION_BPF_ATTR_BTF_FD 1
@@ -512,6 +581,7 @@
#define HAVE_UNION_BPF_ATTR_BTF_LOG_SIZE 1
#define HAVE_UNION_BPF_ATTR_BTF_SIZE 1
#define HAVE_UNION_BPF_ATTR_BTF_VALUE_TYPE_ID 1
+#define HAVE_UNION_BPF_ATTR_BTF_VMLINUX_VALUE_TYPE_ID 1
/* #undef HAVE_UNION_BPF_ATTR_DUMMY */
#define HAVE_UNION_BPF_ATTR_EXPECTED_ATTACH_TYPE 1
#define HAVE_UNION_BPF_ATTR_FILE_FLAGS 1
@@ -561,6 +631,7 @@
#define HAVE_UNION_BPF_ATTR_QUERY_TARGET_FD 1
#define HAVE_UNION_BPF_ATTR_RAW_TRACEPOINT_NAME 1
#define HAVE_UNION_BPF_ATTR_RAW_TRACEPOINT_PROG_FD 1
+#define HAVE_UNION_BPF_ATTR_REPLACE_BPF_FD 1
#define HAVE_UNION_BPF_ATTR_START_ID 1
#define HAVE_UNION_BPF_ATTR_TARGET_FD 1
#define HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_BUF 1
@@ -603,7 +674,7 @@
/* #undef M32_SIZEOF_LONG */
/* #undef M32_SIZEOF_STRUCT_MSQID64_DS */
/* #undef M68K */
-#define MANPAGE_DATE "2020-02-04"
+#define MANPAGE_DATE "2020-04-06"
/* #undef METAG */
/* #undef MICROBLAZE */
/* #undef MIPS */
@@ -615,10 +686,10 @@
#define PACKAGE "strace"
#define PACKAGE_BUGREPORT "strace-devel@lists.strace.io"
#define PACKAGE_NAME "strace"
-#define PACKAGE_STRING "strace 5.5"
+#define PACKAGE_STRING "strace 5.6"
#define PACKAGE_TARNAME "strace"
#define PACKAGE_URL "https://strace.io"
-#define PACKAGE_VERSION "5.5"
+#define PACKAGE_VERSION "5.6"
/* #undef POWERPC */
/* #undef POWERPC64 */
/* #undef POWERPC64LE */
@@ -656,7 +727,7 @@
# define __EXTENSIONS__ 1
#endif
/* #undef USE_UNWINDER */
-#define VERSION "5.5"
+#define VERSION "5.6"
#if defined AC_APPLE_UNIVERSAL_BUILD
# if defined __BIG_ENDIAN__
# define WORDS_BIGENDIAN 1
diff --git a/pkg/strace/gen.lua b/pkg/strace/gen.lua
@@ -222,6 +222,7 @@ local srcs = {
'perf.c',
'perf_ioctl.c',
'personality.c',
+ 'pidfd_getfd.c',
'pidfd_open.c',
'pkeys.c',
'poll.c',
diff --git a/pkg/strace/patch/0001-Don-t-return-expression-in-void-function.patch b/pkg/strace/patch/0001-Don-t-return-expression-in-void-function.patch
@@ -1,4 +1,4 @@
-From 29761222c4b0a5688c21a99ae4b8241bb0209ce5 Mon Sep 17 00:00:00 2001
+From 16cb24454fc4a2aa3971507c96a7c985fe39a041 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Fri, 5 Jul 2019 20:52:24 -0700
Subject: [PATCH] Don't return expression in void function
@@ -8,10 +8,10 @@ Subject: [PATCH] Don't return expression in void function
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/defs.h b/defs.h
-index 06bf1248..12c5b92f 100644
+index 0968bc35..961b84fe 100644
--- a/defs.h
+++ b/defs.h
-@@ -667,7 +667,7 @@ extern bool pathtrace_match_set(struct tcb *, struct path_set *);
+@@ -676,7 +676,7 @@ extern bool pathtrace_match_set(struct tcb *, struct path_set *);
static inline void
pathtrace_select(const char *path)
{
@@ -21,5 +21,5 @@ index 06bf1248..12c5b92f 100644
static inline bool
--
-2.23.0
+2.26.0
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,4 +1,4 @@
-From dc36e102eb17dfbcc9bcd52038da9d0076319c87 Mon Sep 17 00:00:00 2001
+From 964be74d11182e20b6fe60df1b9c8649314a1840 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
@@ -76,7 +76,7 @@ index 27ba4c82..d09bdce3 100644
tfetch_mem,
print_fiemap_extent, 0);
diff --git a/gcc_compat.h b/gcc_compat.h
-index 2d5d7f9e..3cbf5abe 100644
+index 0525b5e1..042c7961 100644
--- a/gcc_compat.h
+++ b/gcc_compat.h
@@ -44,7 +44,7 @@
@@ -89,7 +89,7 @@ index 2d5d7f9e..3cbf5abe 100644
/* &(a)[0] is a pointer and not an array, shouldn't be treated as the same */
# define MUST_BE_ARRAY(a) FAIL_BUILD_ON_ZERO(!SAME_TYPE((a), &(a)[0]))
diff --git a/list.h b/list.h
-index 98563e4d..7b44e4f8 100644
+index ddaf33ca..bf747a4b 100644
--- a/list.h
+++ b/list.h
@@ -158,7 +158,7 @@ list_is_empty(const struct list_item *l)
@@ -157,10 +157,10 @@ index b2125171..0b0242c8 100644
# define TYPEOF_FLOCK_OFF_T off_t
#endif
diff --git a/util.c b/util.c
-index 8d9e092b..3c630e9e 100644
+index 0d9de2f6..5874e86d 100644
--- a/util.c
+++ b/util.c
-@@ -982,8 +982,8 @@ dumpiov_upto(struct tcb *const tcp, const int len, const kernel_ulong_t addr,
+@@ -1116,8 +1116,8 @@ dumpiov_upto(struct tcb *const tcp, const int len, const kernel_ulong_t addr,
#define ILOG2_ITER_(val_, ret_, bit_) \
do { \
@@ -172,5 +172,5 @@ index 8d9e092b..3c630e9e 100644
(val_) >>= shift_; \
(ret_) |= shift_; \
--
-2.23.0
+2.26.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 9d1dae59f853865a5c1f00e4b6eacbef0a8b2476 Mon Sep 17 00:00:00 2001
+From 6785ecc1baea8f396b6a90a62cee94522a9744cc 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 b42cf29d..5befe454 100644
+index 0a47766e..a2bebb82 100644
--- a/bpf.c
+++ b/bpf.c
@@ -43,7 +43,7 @@ bpf_cmd_decoder(struct tcb *const tcp, \
@@ -55,18 +55,18 @@ index a58fa921..d5f2dc1d 100644
if (len > (int) sizeof(filter))
len = sizeof(filter);
diff --git a/sched.c b/sched.c
-index 417ff742..ab21fa67 100644
+index 788ef39b..2e5775d5 100644
--- a/sched.c
+++ b/sched.c
-@@ -92,7 +92,7 @@ static void
+@@ -94,7 +94,7 @@ static void
print_sched_attr(struct tcb *const tcp, const kernel_ulong_t addr,
unsigned int usize)
{
- struct sched_attr attr = {};
+ struct sched_attr attr = {0};
unsigned int size;
+ bool is_set = false;
- if (usize) {
diff --git a/signal.c b/signal.c
index 3cb54bb3..bc03dae8 100644
--- a/signal.c
@@ -81,10 +81,10 @@ index 3cb54bb3..bc03dae8 100644
return;
tprints(sprintsigmask_n("", mask, len));
diff --git a/strace.c b/strace.c
-index e8bbf0ed..8ef16338 100644
+index 19f25be5..f46b25d4 100644
--- a/strace.c
+++ b/strace.c
-@@ -2837,7 +2837,7 @@ trace_syscall(struct tcb *tcp, unsigned int *sig)
+@@ -3205,7 +3205,7 @@ trace_syscall(struct tcb *tcp, unsigned int *sig)
syscall_entering_finish(tcp, res);
return res;
} else {
@@ -134,10 +134,10 @@ index c94926d1..dedb8754 100644
ioctl(-1, BTRFS_IOC_SPACE_INFO, NULL);
printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
diff --git a/tests/clock_nanosleep.c b/tests/clock_nanosleep.c
-index d7ed269a..eed3e996 100644
+index 854fdb3f..0de48963 100644
--- a/tests/clock_nanosleep.c
+++ b/tests/clock_nanosleep.c
-@@ -36,7 +36,7 @@ main(void)
+@@ -39,7 +39,7 @@ main(void)
.ts = { .tv_sec = 0xc0de2, .tv_nsec = 0xc0de3 },
.pad = { 0xdeadbeef, 0xbadc0ded }
};
@@ -212,10 +212,10 @@ index 29b0cadd..89faf508 100644
assert(sigprocmask(SIG_BLOCK, &mask, NULL) == 0);
diff --git a/tests/waitid.c b/tests/waitid.c
-index 8c87b7c4..c37736b7 100644
+index f6738e18..d9ce1105 100644
--- a/tests/waitid.c
+++ b/tests/waitid.c
-@@ -130,7 +130,7 @@ do_waitid(const unsigned int idtype,
+@@ -202,7 +202,7 @@ do_waitid(const unsigned int idtype,
const unsigned int options,
const struct rusage *const rusage)
{
@@ -225,5 +225,5 @@ index 8c87b7c4..c37736b7 100644
assert(sigprocmask(SIG_BLOCK, &mask, NULL) == 0);
--
-2.25.0
+2.26.0
diff --git a/pkg/strace/patch/0007-Don-t-omit-second-operand-to-operator.patch b/pkg/strace/patch/0007-Don-t-omit-second-operand-to-operator.patch
@@ -1,18 +1,19 @@
-From 15b2616e6f1f03c10db8ac48371c63f1200e2390 Mon Sep 17 00:00:00 2001
+From 7ba3679ddf2c76b6ec0a86ee84e316d2ed06cf7b Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Sun, 7 Jul 2019 21:53:16 -0700
Subject: [PATCH] Don't omit second operand to '?' operator
---
- open.c | 5 +++--
- prctl.c | 2 +-
- 2 files changed, 4 insertions(+), 3 deletions(-)
+ open.c | 5 +++--
+ prctl.c | 2 +-
+ strace.c | 6 +++---
+ 3 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/open.c b/open.c
-index 8ac6de83..6b94453f 100644
+index 690453ed..1960ea1c 100644
--- a/open.c
+++ b/open.c
-@@ -72,8 +72,9 @@ sprint_open_modes(unsigned int flags)
+@@ -77,8 +77,9 @@ sprint_open_modes64(uint64_t flags)
}
*p = '\0';
@@ -23,9 +24,9 @@ index 8ac6de83..6b94453f 100644
+ return str ? str : outstr;
}
- void
+ const char *
diff --git a/prctl.c b/prctl.c
-index 2e918be8..67769ca9 100644
+index b904fa34..1366a89e 100644
--- a/prctl.c
+++ b/prctl.c
@@ -76,7 +76,7 @@ sprint_sve_val(kernel_ulong_t arg)
@@ -37,6 +38,32 @@ index 2e918be8..67769ca9 100644
return out;
}
+diff --git a/strace.c b/strace.c
+index f46b25d4..7b03bc27 100644
+--- a/strace.c
++++ b/strace.c
+@@ -2097,7 +2097,7 @@ init(int argc, char *argv[])
+ break;
+ case GETOPT_TS:
+ tflag_long_set = true;
+- if (parse_ts_arg(optarg ?: tflag_str))
++ if (parse_ts_arg(optarg ? optarg : tflag_str))
+ error_opt_arg(c, lopt, optarg);
+ break;
+ case 'T':
+@@ -2194,10 +2194,10 @@ init(int argc, char *argv[])
+ qualify_kvm(optarg);
+ break;
+ case GETOPT_QUAL_QUIET:
+- qualify_quiet(optarg ?: qflag_qual);
++ qualify_quiet(optarg ? optarg : qflag_qual);
+ break;
+ case GETOPT_QUAL_DECODE_FD:
+- qualify_decode_fd(optarg ?: yflag_qual);
++ qualify_decode_fd(optarg ? optarg : yflag_qual);
+ break;
+ default:
+ error_msg_and_help(NULL);
--
-2.25.0
+2.26.0
diff --git a/pkg/strace/patch/0008-Avoid-unnecessary-VLAs.patch b/pkg/strace/patch/0008-Avoid-unnecessary-VLAs.patch
@@ -1,15 +1,30 @@
-From b915ef95a47e0b85988e4091366001f8f3927912 Mon Sep 17 00:00:00 2001
+From 7ffe2fa8fa0a4d5dea1c0755a74d9cba5522a361 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Sun, 7 Jul 2019 21:58:46 -0700
Subject: [PATCH] Avoid unnecessary VLAs
---
+ count.c | 2 +-
desc.c | 7 ++++---
+ nlattr.c | 2 +-
socketutils.c | 4 ++--
syscall.c | 2 +-
util.c | 5 ++---
- 4 files changed, 9 insertions(+), 9 deletions(-)
+ 6 files changed, 11 insertions(+), 11 deletions(-)
+diff --git a/count.c b/count.c
+index a397eba2..89682ae9 100644
+--- a/count.c
++++ b/count.c
+@@ -414,7 +414,7 @@ call_summary_pers(FILE *outf)
+ fprintf(outf, column_fmts[i], (val_), cwidths[c]); \
+ break
+
+- const char *column_fmts[last_column + 1];
++ const char *column_fmts[ARRAY_SIZE(columns)];
+ for (size_t i = 0; i <= last_column; ++i) {
+ const size_t c = columns[i];
+
diff --git a/desc.c b/desc.c
index 92e6fe16..8f705d70 100644
--- a/desc.c
@@ -41,8 +56,21 @@ index 92e6fe16..8f705d70 100644
tprints("{");
/* NB: kernel requires data[1] == NSIG_BYTES */
print_sigset_addr_len(tcp, data[0], data[1]);
+diff --git a/nlattr.c b/nlattr.c
+index 7f13642c..247ba2d5 100644
+--- a/nlattr.c
++++ b/nlattr.c
+@@ -341,7 +341,7 @@ decode_nla_hwaddr(struct tcb *const tcp,
+ if (len > MAX_ADDR_LEN)
+ return false;
+
+- uint8_t buf[len];
++ uint8_t buf[MAX_ADDR_LEN];
+ const uintptr_t arphrd = (uintptr_t) opaque_data;
+
+ if (!umoven_or_printaddr(tcp, addr, len, buf)) {
diff --git a/socketutils.c b/socketutils.c
-index d6191187..6ce9bc30 100644
+index be459714..819abc92 100644
--- a/socketutils.c
+++ b/socketutils.c
@@ -144,7 +144,7 @@ inet_parse_response(const void *const data, const int data_len,
@@ -64,10 +92,10 @@ index d6191187..6ce9bc30 100644
if (!inet_ntop(diag_msg->idiag_family, diag_msg->id.idiag_dst,
dst_buf, text_size))
diff --git a/syscall.c b/syscall.c
-index fadd3b55..ea63216c 100644
+index fd7a3d84..d8a37a07 100644
--- a/syscall.c
+++ b/syscall.c
-@@ -293,7 +293,7 @@ decode_socket_subcall(struct tcb *tcp)
+@@ -295,7 +295,7 @@ decode_socket_subcall(struct tcb *tcp)
const kernel_ulong_t scno = SYS_socket_subcall + call;
const unsigned int nargs = sysent[scno].nargs;
@@ -77,10 +105,10 @@ index fadd3b55..ea63216c 100644
if (umoven(tcp, tcp->u_arg[1], nargs * current_wordsize, buf) < 0)
return;
diff --git a/util.c b/util.c
-index 3c630e9e..671a5c10 100644
+index 5874e86d..522e772e 100644
--- a/util.c
+++ b/util.c
-@@ -449,8 +449,7 @@ enum sock_proto
+@@ -481,8 +481,7 @@ enum sock_proto
getfdproto(struct tcb *tcp, int fd)
{
#ifdef HAVE_SYS_XATTR_H
@@ -90,7 +118,7 @@ index 3c630e9e..671a5c10 100644
ssize_t r;
char path[sizeof("/proc/%u/fd/%u") + 2 * sizeof(int)*3];
-@@ -458,7 +457,7 @@ getfdproto(struct tcb *tcp, int fd)
+@@ -490,7 +489,7 @@ getfdproto(struct tcb *tcp, int fd)
return SOCK_PROTO_UNKNOWN;
xsprintf(path, "/proc/%u/fd/%u", tcp->pid, fd);
@@ -100,5 +128,5 @@ index 3c630e9e..671a5c10 100644
return SOCK_PROTO_UNKNOWN;
else {
--
-2.23.0
+2.26.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 7b74b40431f95aeb4b6d6d75e7e3bcd84f04dd54 Mon Sep 17 00:00:00 2001
+From 81f20af07b260c251a55f95d39da1b2acdc6e21d 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
@@ -19,10 +19,10 @@ Subject: [PATCH] Avoid index ranges and empty initializer lists in syscallent
linux/s390x/syscallent.h | 78 +++++++++++++++++-----------------
linux/sh/syscallent.h | 12 +++---
linux/sh64/syscallent.h | 22 ++++++----
- linux/sparc/syscallent.h | 6 +--
- linux/sparc64/syscallent.h | 38 ++++++++---------
+ linux/sparc/syscallent.h | 4 +-
+ linux/sparc64/syscallent.h | 36 ++++++++--------
linux/xtensa/syscallent.h | 32 +++++++-------
- 17 files changed, 175 insertions(+), 169 deletions(-)
+ 17 files changed, 173 insertions(+), 167 deletions(-)
diff --git a/linux/alpha/syscallent.h b/linux/alpha/syscallent.h
index ee8a8f9e..9e124d94 100644
@@ -273,7 +273,7 @@ index c934ffbe..fc42e467 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 690cc823..26faaabd 100644
+index 97d64500..dfd7e7ca 100644
--- a/linux/mips/syscallent-compat.h
+++ b/linux/mips/syscallent-compat.h
@@ -69,13 +69,13 @@
@@ -985,7 +985,7 @@ index 9a48cf0e..7607ceb7 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 6acce0c8..99513f92 100644
+index b5603041..83a53e06 100644
--- a/linux/sparc/syscallent.h
+++ b/linux/sparc/syscallent.h
@@ -57,7 +57,7 @@
@@ -1006,17 +1006,8 @@ index 6acce0c8..99513f92 100644
[165] = { 4, TF, SEN(quotactl), "quotactl" },
[166] = { 1, 0, SEN(set_tid_address), "set_tid_address" },
[167] = { 5, TF, SEN(mount), "mount" },
-@@ -272,7 +272,7 @@
- [264] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" },
- [265] = { 1, 0, SEN(timer_delete), "timer_delete" },
- [266] = { 3, 0, SEN(timer_create), "timer_create" },
--[267] = { },
-+/* [267] - unused */
- [268] = { 2, TM, SEN(io_setup), "io_setup" },
- [269] = { 1, TM, SEN(io_destroy), "io_destroy" },
- [270] = { 3, 0, SEN(io_submit), "io_submit" },
diff --git a/linux/sparc64/syscallent.h b/linux/sparc64/syscallent.h
-index e7f25646..e00b1098 100644
+index e498afeb..edc9384a 100644
--- a/linux/sparc64/syscallent.h
+++ b/linux/sparc64/syscallent.h
@@ -36,10 +36,10 @@
@@ -1126,15 +1117,6 @@ index e7f25646..e00b1098 100644
[232] = { 6, TD, SEN(splice), "splice" },
[233] = { 1, 0, SEN(stime), "stime" },
[234] = { 3, TF|TSF|TSFA, SEN(statfs64), "statfs64" },
-@@ -270,7 +270,7 @@
- [264] = { 1, 0, SEN(timer_getoverrun), "timer_getoverrun" },
- [265] = { 1, 0, SEN(timer_delete), "timer_delete" },
- [266] = { 3, 0, SEN(timer_create), "timer_create" },
--[267] = { },
-+/* [267] - unused */
- [268] = { 2, TM, SEN(io_setup), "io_setup" },
- [269] = { 1, TM, SEN(io_destroy), "io_destroy" },
- [270] = { 3, 0, SEN(io_submit), "io_submit" },
diff --git a/linux/xtensa/syscallent.h b/linux/xtensa/syscallent.h
index d4823484..571dd0eb 100644
--- a/linux/xtensa/syscallent.h
@@ -1261,5 +1243,5 @@ index d4823484..571dd0eb 100644
[321] = { 6, TD|TF, SEN(fanotify_mark), "fanotify_mark" },
[322] = { 6, 0, SEN(process_vm_readv), "process_vm_readv" },
--
-2.25.0
+2.26.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 bdcfe1c3c72cd0d31d6c6505287cb551738241e3 Mon Sep 17 00:00:00 2001
+From 72af628108986893f2212f17f081ecc475764e9c 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
@@ -11,19 +11,19 @@ ignore this for now.
2 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/print_mac.c b/print_mac.c
-index e851f307..435b1510 100644
+index c5d5f5c4..a7c54b3e 100644
--- a/print_mac.c
+++ b/print_mac.c
@@ -17,8 +17,6 @@
DIAG_PUSH_IGNORE_OVERRIDE_INIT
static uint8_t hwaddr_sizes[] = {
-- [0 ... ARPHRD_IEEE802_TR] = 255,
+- [0 ... ARPHRD_VSOCKMON] = 255,
-
[ARPHRD_NETROM] = 7 /* AX25_ADDR_LEN */,
[ARPHRD_ETHER] = 6 /* ETH_ALEN */,
/* ARPHRD_EETHER - no actual devices in Linux */
-@@ -126,7 +124,7 @@ print_mac_addr(const char *prefix, const uint8_t addr[], size_t size)
+@@ -128,7 +126,7 @@ print_mac_addr(const char *prefix, const uint8_t addr[], size_t size)
const char *
sprint_hwaddr(const uint8_t hwaddr[], size_t size, uint32_t devtype)
{
@@ -33,10 +33,10 @@ index e851f307..435b1510 100644
return sprint_mac_addr(hwaddr, MIN(size, sz));
diff --git a/util.c b/util.c
-index 55bce30a..23a1f5da 100644
+index 522e772e..295b2bb9 100644
--- a/util.c
+++ b/util.c
-@@ -1105,16 +1105,16 @@ dumpstr(struct tcb *const tcp, const kernel_ulong_t addr,
+@@ -1241,16 +1241,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 55bce30a..23a1f5da 100644
/* Fetching data from tracee. */
--
-2.25.0
+2.26.0
diff --git a/pkg/strace/patch/1001-Prevent-zero-sized-arrays.patch b/pkg/strace/patch/1001-Prevent-zero-sized-arrays.patch
@@ -1,7 +1,8 @@
diff --git a/xlat/btrfs_features_compat.h b/xlat/btrfs_features_compat.h
---- a/xlat/btrfs_features_compat.h Thu Nov 28 14:53:27 2019
-+++ b/xlat/btrfs_features_compat.h Thu Jan 30 21:12:47 2020
-@@ -13,13 +13,14 @@
+index d74af3154..70331b1d7 100644
+--- a/xlat/btrfs_features_compat.h
++++ b/xlat/btrfs_features_compat.h
+@@ -13,13 +13,14 @@ extern const struct xlat btrfs_features_compat[];
# else
static const struct xlat_data btrfs_features_compat_xdata[] = {
@@ -15,16 +16,17 @@ diff --git a/xlat/btrfs_features_compat.h b/xlat/btrfs_features_compat.h
- .size = ARRAY_SIZE(btrfs_features_compat_xdata),
+ .size = ARRAY_SIZE(btrfs_features_compat_xdata) - 1,
.type = XT_NORMAL,
- } };
-
+ .flags_mask = 0
+ ,
diff --git a/xlat/mq_attr_flags.h b/xlat/mq_attr_flags.h
---- a/xlat/mq_attr_flags.h Thu Nov 28 14:53:27 2019
-+++ b/xlat/mq_attr_flags.h Thu Jan 30 21:03:53 2020
-@@ -16,13 +16,14 @@
- #if defined(O_NONBLOCK) || (defined(HAVE_DECL_O_NONBLOCK) && HAVE_DECL_O_NONBLOCK)
- XLAT(O_NONBLOCK),
+index 9dfbe94d8..84ec9cd3c 100644
+--- a/xlat/mq_attr_flags.h
++++ b/xlat/mq_attr_flags.h
+@@ -18,13 +18,14 @@ static const struct xlat_data mq_attr_flags_xdata[] = {
+ #define XLAT_VAL_0 ((unsigned) (O_NONBLOCK))
+ #define XLAT_STR_0 STRINGIFY(O_NONBLOCK)
#endif
-+ {0}
++ {0},
};
# if !(defined HAVE_M32_MPERS || defined HAVE_MX32_MPERS)
static
@@ -34,14 +36,15 @@ diff --git a/xlat/mq_attr_flags.h b/xlat/mq_attr_flags.h
- .size = ARRAY_SIZE(mq_attr_flags_xdata),
+ .size = ARRAY_SIZE(mq_attr_flags_xdata) - 1,
.type = XT_NORMAL,
- } };
-
+ .flags_mask = 0
+ # ifdef XLAT_VAL_0
diff --git a/xlat/sigprof_codes.h b/xlat/sigprof_codes.h
---- a/xlat/sigprof_codes.h Thu Nov 28 14:53:27 2019
-+++ b/xlat/sigprof_codes.h Thu Jan 30 21:04:28 2020
-@@ -16,13 +16,14 @@
- #if defined(PROF_SIG) || (defined(HAVE_DECL_PROF_SIG) && HAVE_DECL_PROF_SIG)
- XLAT(PROF_SIG),
+index 65614dc28..a173d59b7 100644
+--- a/xlat/sigprof_codes.h
++++ b/xlat/sigprof_codes.h
+@@ -18,13 +18,14 @@ static const struct xlat_data sigprof_codes_xdata[] = {
+ #define XLAT_VAL_0 ((unsigned) (PROF_SIG))
+ #define XLAT_STR_0 STRINGIFY(PROF_SIG)
#endif
+ {0}
};
@@ -53,14 +56,15 @@ diff --git a/xlat/sigprof_codes.h b/xlat/sigprof_codes.h
- .size = ARRAY_SIZE(sigprof_codes_xdata),
+ .size = ARRAY_SIZE(sigprof_codes_xdata) - 1,
.type = XT_NORMAL,
- } };
-
+ .flags_mask = 0
+ # ifdef XLAT_VAL_0
diff --git a/xlat/sock_ipx_options.h b/xlat/sock_ipx_options.h
---- a/xlat/sock_ipx_options.h Thu Nov 28 14:53:27 2019
-+++ b/xlat/sock_ipx_options.h Thu Jan 30 20:29:04 2020
-@@ -16,11 +16,12 @@
- #if defined(IPX_TYPE) || (defined(HAVE_DECL_IPX_TYPE) && HAVE_DECL_IPX_TYPE)
- XLAT(IPX_TYPE),
+index 166d010dc..527089bc0 100644
+--- a/xlat/sock_ipx_options.h
++++ b/xlat/sock_ipx_options.h
+@@ -18,11 +18,12 @@ static const struct xlat_data sock_ipx_options_xdata[] = {
+ #define XLAT_VAL_0 ((unsigned) (IPX_TYPE))
+ #define XLAT_STR_0 STRINGIFY(IPX_TYPE)
#endif
+ {0}
};
@@ -70,5 +74,5 @@ diff --git a/xlat/sock_ipx_options.h b/xlat/sock_ipx_options.h
- .size = ARRAY_SIZE(sock_ipx_options_xdata),
+ .size = ARRAY_SIZE(sock_ipx_options_xdata) - 1,
.type = XT_NORMAL,
- } };
-
+ .flags_mask = 0
+ # ifdef XLAT_VAL_0
diff --git a/pkg/strace/sha256 b/pkg/strace/sha256
@@ -1 +1 @@
-9f58958c8e59ea62293d907d10572e352b582bd7948ed21aa28ebb47e5bf30ff strace-5.5.tar.xz
+189968eeae06ed9e20166ec55a830943c84374676a457c9fe010edc7541f1b01 strace-5.6.tar.xz
diff --git a/pkg/strace/url b/pkg/strace/url
@@ -1 +1 @@
-url = "https://github.com/strace/strace/releases/download/v5.5/strace-5.5.tar.xz"
+url = "https://github.com/strace/strace/releases/download/v5.6/strace-5.6.tar.xz"
diff --git a/pkg/strace/ver b/pkg/strace/ver
@@ -1 +1 @@
-5.5 r0
+5.6 r0