opkg

statically linked package installer
git clone anongit@rnpnr.xyz:opkg.git
Log | Files | Refs | Feed | Submodules | README | LICENSE

Commit: 4bcd0af05882b2d18759448783b748bb2aa57ec8
Parent: c77555a78cc961c2a2a2919303778e584481ef20
Author: Michael Forney
Date:   Wed,  1 Apr 2026 23:14:48 -0700

strace: Update to 6.19

Diffstat:
Mpkg/devel/strace/.gitignore | 2+-
Mpkg/devel/strace/config.h | 74+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------
Mpkg/devel/strace/gen.lua | 13++++++++++---
Mpkg/devel/strace/patch/0001-Don-t-return-expression-in-void-function.patch | 8++++----
Apkg/devel/strace/patch/0002-Avoid-pointer-arithmetic-on-void.patch | 161+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dpkg/devel/strace/patch/0002-Make-tcp_sysent-a-static-inline-function.patch | 33---------------------------------
Rpkg/devel/strace/patch/0004-Avoid-empty-struct-definition.patch -> pkg/devel/strace/patch/0003-Avoid-empty-struct-definition.patch | 0
Dpkg/devel/strace/patch/0003-Avoid-pointer-arithmetic-on-void.patch | 152-------------------------------------------------------------------------------
Apkg/devel/strace/patch/0004-Don-t-omit-second-operand-to-operator.patch | 161+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Rpkg/devel/strace/patch/0006-Avoid-unnecessary-VLAs.patch -> pkg/devel/strace/patch/0005-Avoid-unnecessary-VLAs.patch | 0
Dpkg/devel/strace/patch/0005-Don-t-omit-second-operand-to-operator.patch | 134-------------------------------------------------------------------------------
Rpkg/devel/strace/patch/0007-Avoid-index-ranges-and-empty-initializer-lists-in-sy.patch -> pkg/devel/strace/patch/0006-Avoid-index-ranges-and-empty-initializer-lists-in-sy.patch | 0
Rpkg/devel/strace/patch/0008-Use-alloca-when-VLAs-aren-t-available.patch -> pkg/devel/strace/patch/0007-Use-alloca-when-VLAs-aren-t-available.patch | 0
Rpkg/devel/strace/patch/0009-Avoid-index-ranges.patch -> pkg/devel/strace/patch/0008-Avoid-index-ranges.patch | 0
Apkg/devel/strace/patch/0009-Use-ISO-C-alignment-and-attribute-syntax.patch | 85+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mpkg/devel/strace/sha256 | 2+-
Mpkg/devel/strace/url | 2+-
Mpkg/devel/strace/ver | 2+-
18 files changed, 488 insertions(+), 341 deletions(-)

diff --git a/pkg/devel/strace/.gitignore b/pkg/devel/strace/.gitignore @@ -1,3 +1,3 @@ /src -/strace-6.12.tar.xz +/strace-6.19.tar.xz /tools.ninja diff --git a/pkg/devel/strace/config.h b/pkg/devel/strace/config.h @@ -7,7 +7,7 @@ #define ASM_SIGRTMIN 32 /* #undef AVR32 */ /* #undef BFIN */ -#define COPYRIGHT_YEAR "2024" +#define COPYRIGHT_YEAR "2026" /* #undef CSKY */ #define ENABLE_ARM_OABI 0 /* #undef ENABLE_SECONTEXT */ @@ -172,7 +172,10 @@ #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_ID 1 #define HAVE_STRUCT_BPF_MAP_INFO_BTF_VMLINUX_VALUE_TYPE_ID 1 +/* #undef HAVE_STRUCT_BPF_MAP_INFO_HASH */ +/* #undef HAVE_STRUCT_BPF_MAP_INFO_HASH_SIZE */ #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 @@ -180,10 +183,11 @@ #define HAVE_STRUCT_BPF_MAP_INFO_MAP_FLAGS 1 #define HAVE_STRUCT_BPF_MAP_INFO_MAX_ENTRIES 1 #define HAVE_STRUCT_BPF_MAP_INFO_NAME 1 -/* #undef HAVE_STRUCT_BPF_MAP_INFO_PAD */ #define HAVE_STRUCT_BPF_MAP_INFO_TYPE 1 #define HAVE_STRUCT_BPF_MAP_INFO_VALUE_SIZE 1 #define HAVE_STRUCT_BPF_PROG_INFO 1 +#define HAVE_STRUCT_BPF_PROG_INFO_ATTACH_BTF_ID 1 +#define HAVE_STRUCT_BPF_PROG_INFO_ATTACH_BTF_OBJ_ID 1 #define HAVE_STRUCT_BPF_PROG_INFO_BTF_ID 1 #define HAVE_STRUCT_BPF_PROG_INFO_CREATED_BY_UID 1 #define HAVE_STRUCT_BPF_PROG_INFO_FUNC_INFO 1 @@ -224,11 +228,12 @@ #define HAVE_STRUCT_KBDIACRUC 1 #define HAVE_STRUCT_KVM_CPUID2 1 #define HAVE_STRUCT_KVM_REGS 1 +#define HAVE_STRUCT_KVM_RUN_FLAGS 1 +#define HAVE_STRUCT_KVM_RUN_IMMEDIATE_EXIT 1 #define HAVE_STRUCT_KVM_SREGS 1 #define HAVE_STRUCT_KVM_USERSPACE_MEMORY_REGION 1 #define HAVE_STRUCT_MMSGHDR 1 /* #undef HAVE_STRUCT_PTRACE_PEEKSIGINFO_ARGS */ -#define HAVE_STRUCT_PTRACE_SYSCALL_INFO 1 /* #undef HAVE_STRUCT_PT_ALL_USER_REGS */ #define HAVE_STRUCT_SIGCONTEXT 1 #define HAVE_STRUCT_SOCKADDR_ALG_NEW 1 @@ -265,7 +270,6 @@ #define HAVE_STRUCT___KERNEL_SOCK_TIMEVAL 1 #define HAVE_STRUCT___KERNEL_TIMESPEC 1 #define HAVE_STRUCT___OLD_KERNEL_STAT 1 -#define HAVE_STRUCT___PTRACE_SYSCALL_INFO 1 #define HAVE_SYNC_FILE_RANGE 1 #define HAVE_SYS_EVENTFD_H 1 #define HAVE_SYS_FANOTIFY_H 1 @@ -292,18 +296,29 @@ #define HAVE_UNION_BPF_ATTR_BPF_FD 1 #define HAVE_UNION_BPF_ATTR_BTF 1 #define HAVE_UNION_BPF_ATTR_BTF_FD 1 +#define HAVE_UNION_BPF_ATTR_BTF_FLAGS 1 #define HAVE_UNION_BPF_ATTR_BTF_ID 1 #define HAVE_UNION_BPF_ATTR_BTF_KEY_TYPE_ID 1 #define HAVE_UNION_BPF_ATTR_BTF_LOG_BUF 1 #define HAVE_UNION_BPF_ATTR_BTF_LOG_LEVEL 1 #define HAVE_UNION_BPF_ATTR_BTF_LOG_SIZE 1 +#define HAVE_UNION_BPF_ATTR_BTF_LOG_TRUE_SIZE 1 #define HAVE_UNION_BPF_ATTR_BTF_SIZE 1 +#define HAVE_UNION_BPF_ATTR_BTF_TOKEN_FD 1 #define HAVE_UNION_BPF_ATTR_BTF_VALUE_TYPE_ID 1 #define HAVE_UNION_BPF_ATTR_BTF_VMLINUX_VALUE_TYPE_ID 1 +#define HAVE_UNION_BPF_ATTR_CORE_RELOS 1 +#define HAVE_UNION_BPF_ATTR_CORE_RELO_CNT 1 +#define HAVE_UNION_BPF_ATTR_CORE_RELO_REC_SIZE 1 /* #undef HAVE_UNION_BPF_ATTR_DUMMY */ #define HAVE_UNION_BPF_ATTR_ENABLE_STATS_TYPE 1 +/* #undef HAVE_UNION_BPF_ATTR_EXCL_PROG_HASH */ +/* #undef HAVE_UNION_BPF_ATTR_EXCL_PROG_HASH_SIZE */ #define HAVE_UNION_BPF_ATTR_EXPECTED_ATTACH_TYPE 1 +#define HAVE_UNION_BPF_ATTR_EXPECTED_REVISION 1 #define HAVE_UNION_BPF_ATTR_FD_ARRAY 1 +/* #undef HAVE_UNION_BPF_ATTR_FD_ARRAY_CNT */ +/* #undef HAVE_UNION_BPF_ATTR_FD_BY_ID_TOKEN_FD */ #define HAVE_UNION_BPF_ATTR_FILE_FLAGS 1 #define HAVE_UNION_BPF_ATTR_FLAGS 1 #define HAVE_UNION_BPF_ATTR_FUNC_INFO 1 @@ -319,6 +334,7 @@ #define HAVE_UNION_BPF_ATTR_ITER_CREATE_LINK_FD 1 #define HAVE_UNION_BPF_ATTR_KERN_VERSION 1 #define HAVE_UNION_BPF_ATTR_KEY 1 +/* #undef HAVE_UNION_BPF_ATTR_KEYRING_ID */ #define HAVE_UNION_BPF_ATTR_KEY_SIZE 1 #define HAVE_UNION_BPF_ATTR_LICENSE 1 #define HAVE_UNION_BPF_ATTR_LINE_INFO 1 @@ -329,15 +345,28 @@ /* #undef HAVE_UNION_BPF_ATTR_LINK_CREATE_BPF_COOKIE */ /* #undef HAVE_UNION_BPF_ATTR_LINK_CREATE_CNT */ /* #undef HAVE_UNION_BPF_ATTR_LINK_CREATE_COOKIES */ +/* #undef HAVE_UNION_BPF_ATTR_LINK_CREATE_EXPECTED_REVISION */ #define HAVE_UNION_BPF_ATTR_LINK_CREATE_FLAGS 1 +/* #undef HAVE_UNION_BPF_ATTR_LINK_CREATE_HOOKNUM */ #define HAVE_UNION_BPF_ATTR_LINK_CREATE_ITER_INFO 1 #define HAVE_UNION_BPF_ATTR_LINK_CREATE_ITER_INFO_LEN 1 #define HAVE_UNION_BPF_ATTR_LINK_CREATE_KPROBE_MULTI 1 +#define HAVE_UNION_BPF_ATTR_LINK_CREATE_NETFILTER 1 +/* #undef HAVE_UNION_BPF_ATTR_LINK_CREATE_OFFSETS */ +/* #undef HAVE_UNION_BPF_ATTR_LINK_CREATE_PATH */ #define HAVE_UNION_BPF_ATTR_LINK_CREATE_PERF_EVENT 1 +/* #undef HAVE_UNION_BPF_ATTR_LINK_CREATE_PF */ +/* #undef HAVE_UNION_BPF_ATTR_LINK_CREATE_PID */ +/* #undef HAVE_UNION_BPF_ATTR_LINK_CREATE_PRIORITY */ #define HAVE_UNION_BPF_ATTR_LINK_CREATE_PROG_FD 1 +/* #undef HAVE_UNION_BPF_ATTR_LINK_CREATE_REF_CTR_OFFSETS */ +/* #undef HAVE_UNION_BPF_ATTR_LINK_CREATE_RELATIVE_FD */ +/* #undef HAVE_UNION_BPF_ATTR_LINK_CREATE_RELATIVE_ID */ /* #undef HAVE_UNION_BPF_ATTR_LINK_CREATE_SYMS */ #define HAVE_UNION_BPF_ATTR_LINK_CREATE_TARGET_BTF_ID 1 #define HAVE_UNION_BPF_ATTR_LINK_CREATE_TARGET_FD 1 +#define HAVE_UNION_BPF_ATTR_LINK_CREATE_TARGET_IFINDEX 1 +#define HAVE_UNION_BPF_ATTR_LINK_CREATE_UPROBE_MULTI 1 #define HAVE_UNION_BPF_ATTR_LINK_DETACH_LINK_FD 1 #define HAVE_UNION_BPF_ATTR_LINK_ID 1 #define HAVE_UNION_BPF_ATTR_LINK_UPDATE_FLAGS 1 @@ -347,19 +376,20 @@ #define HAVE_UNION_BPF_ATTR_LOG_BUF 1 #define HAVE_UNION_BPF_ATTR_LOG_LEVEL 1 #define HAVE_UNION_BPF_ATTR_LOG_SIZE 1 +#define HAVE_UNION_BPF_ATTR_LOG_TRUE_SIZE 1 #define HAVE_UNION_BPF_ATTR_MAP_EXTRA 1 #define HAVE_UNION_BPF_ATTR_MAP_FD 1 #define HAVE_UNION_BPF_ATTR_MAP_FLAGS 1 #define HAVE_UNION_BPF_ATTR_MAP_ID 1 #define HAVE_UNION_BPF_ATTR_MAP_IFINDEX 1 #define HAVE_UNION_BPF_ATTR_MAP_NAME 1 +#define HAVE_UNION_BPF_ATTR_MAP_TOKEN_FD 1 #define HAVE_UNION_BPF_ATTR_MAP_TYPE 1 #define HAVE_UNION_BPF_ATTR_MAX_ENTRIES 1 #define HAVE_UNION_BPF_ATTR_NEXT_ID 1 #define HAVE_UNION_BPF_ATTR_NEXT_KEY 1 #define HAVE_UNION_BPF_ATTR_NUMA_NODE 1 #define HAVE_UNION_BPF_ATTR_OPEN_FLAGS 1 -/* #undef HAVE_UNION_BPF_ATTR_PAD */ #define HAVE_UNION_BPF_ATTR_PATHNAME 1 #define HAVE_UNION_BPF_ATTR_PATH_FD 1 #define HAVE_UNION_BPF_ATTR_PROG_BIND_MAP_FLAGS 1 @@ -370,20 +400,36 @@ #define HAVE_UNION_BPF_ATTR_PROG_ID 1 #define HAVE_UNION_BPF_ATTR_PROG_IFINDEX 1 #define HAVE_UNION_BPF_ATTR_PROG_NAME 1 +/* #undef HAVE_UNION_BPF_ATTR_PROG_STREAM_READ_PROG_FD */ +/* #undef HAVE_UNION_BPF_ATTR_PROG_STREAM_READ_STREAM_BUF */ +/* #undef HAVE_UNION_BPF_ATTR_PROG_STREAM_READ_STREAM_BUF_LEN */ +/* #undef HAVE_UNION_BPF_ATTR_PROG_STREAM_READ_STREAM_ID */ +#define HAVE_UNION_BPF_ATTR_PROG_TOKEN_FD 1 #define HAVE_UNION_BPF_ATTR_PROG_TYPE 1 #define HAVE_UNION_BPF_ATTR_QUERY_ATTACH_FLAGS 1 #define HAVE_UNION_BPF_ATTR_QUERY_ATTACH_TYPE 1 +/* #undef HAVE_UNION_BPF_ATTR_QUERY_DUMMY */ +#define HAVE_UNION_BPF_ATTR_QUERY_LINK_ATTACH_FLAGS 1 +#define HAVE_UNION_BPF_ATTR_QUERY_LINK_IDS 1 +#define HAVE_UNION_BPF_ATTR_QUERY_PROG_ATTACH_FLAGS 1 #define HAVE_UNION_BPF_ATTR_QUERY_PROG_CNT 1 #define HAVE_UNION_BPF_ATTR_QUERY_PROG_IDS 1 #define HAVE_UNION_BPF_ATTR_QUERY_QUERY_FLAGS 1 +#define HAVE_UNION_BPF_ATTR_QUERY_REVISION 1 #define HAVE_UNION_BPF_ATTR_QUERY_TARGET_FD 1 +#define HAVE_UNION_BPF_ATTR_QUERY_TARGET_IFINDEX 1 #define HAVE_UNION_BPF_ATTR_RAW_TRACEPOINT_COOKIE 1 /* #undef HAVE_UNION_BPF_ATTR_RAW_TRACEPOINT_DUMMY */ #define HAVE_UNION_BPF_ATTR_RAW_TRACEPOINT_NAME 1 #define HAVE_UNION_BPF_ATTR_RAW_TRACEPOINT_PROG_FD 1 +#define HAVE_UNION_BPF_ATTR_RELATIVE_FD 1 +#define HAVE_UNION_BPF_ATTR_RELATIVE_ID 1 #define HAVE_UNION_BPF_ATTR_REPLACE_BPF_FD 1 +/* #undef HAVE_UNION_BPF_ATTR_SIGNATURE */ +/* #undef HAVE_UNION_BPF_ATTR_SIGNATURE_SIZE */ #define HAVE_UNION_BPF_ATTR_START_ID 1 #define HAVE_UNION_BPF_ATTR_TARGET_FD 1 +#define HAVE_UNION_BPF_ATTR_TARGET_IFINDEX 1 #define HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_BUF 1 #define HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_BUF_LEN 1 #define HAVE_UNION_BPF_ATTR_TASK_FD_QUERY_FD 1 @@ -412,6 +458,7 @@ #define HAVE_UNION_BPF_ATTR_TOKEN_CREATE_FLAGS 1 #define HAVE_UNION_BPF_ATTR_VALUE 1 #define HAVE_UNION_BPF_ATTR_VALUE_SIZE 1 +#define HAVE_UNION_BPF_ATTR_VALUE_TYPE_BTF_OBJ_FD 1 #define HAVE_UNISTD_H 1 /* #undef HAVE_USTAT_H */ #define HAVE_WCHAR_H 1 @@ -441,10 +488,10 @@ #define PACKAGE "strace" #define PACKAGE_BUGREPORT "strace-devel@lists.strace.io" #define PACKAGE_NAME "strace" -#define PACKAGE_STRING "strace 6.12" +#define PACKAGE_STRING "strace 6.19" #define PACKAGE_TARNAME "strace" #define PACKAGE_URL "https://strace.io" -#define PACKAGE_VERSION "6.12" +#define PACKAGE_VERSION "6.19" /* #undef POWERPC */ /* #undef POWERPC64 */ /* #undef POWERPC64LE */ @@ -459,11 +506,11 @@ #define SIZEOF_OFF_T 8 #define SIZEOF_STRUCT_I64_I32 16 #define SIZEOF_STRUCT_MSQID64_DS 120 -#define SLM_MANPAGE_DATE "2022-01-01" +#define SLM_MANPAGE_DATE "2025-07-02" /* #undef SPARC */ /* #undef SPARC64 */ #define STDC_HEADERS 1 -#define STRACE_MANPAGE_DATE "2024-06-30" +#define STRACE_MANPAGE_DATE "2025-11-13" /* #undef TILE */ /* #undef USE_DEMANGLE */ /* #undef USE_LIBDW */ @@ -510,6 +557,9 @@ #ifndef __STDC_WANT_IEC_60559_DFP_EXT__ # define __STDC_WANT_IEC_60559_DFP_EXT__ 1 #endif +#ifndef __STDC_WANT_IEC_60559_EXT__ +# define __STDC_WANT_IEC_60559_EXT__ 1 +#endif #ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__ # define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1 #endif @@ -529,7 +579,7 @@ /* # undef _XOPEN_SOURCE */ #endif /* #undef USE_UNWINDER */ -#define VERSION "6.12" +#define VERSION "6.19" #if defined AC_APPLE_UNIVERSAL_BUILD # if defined __BIG_ENDIAN__ # define WORDS_BIGENDIAN 1 @@ -540,7 +590,9 @@ # endif #endif /* #undef X32 */ -#define X86_64 1 +#ifdef __x86_64__ +# define X86_64 1 +#endif /* #undef XTENSA */ /* #undef gid_t */ /* #undef typeof */ diff --git a/pkg/devel/strace/gen.lua b/pkg/devel/strace/gen.lua @@ -86,6 +86,7 @@ local srcs = paths[[src/( access.c affinity.c aio.c + alarm.c alpha.c basic_filters.c bind.c @@ -121,6 +122,7 @@ local srcs = paths[[src/( evdev_mpers.c eventfd.c execve.c + exit.c exitkill.c fadvise.c fallocate.c @@ -138,10 +140,12 @@ local srcs = paths[[src/( fetch_struct_stat64.c fetch_struct_statfs.c fetch_struct_xfs_quotastat.c + file_attr.c file_handle.c filter_qualify.c filter_seccomp.c flock.c + fs_0x15_ioctl.c fs_0x94_ioctl.c fs_f_ioctl.c fs_x_ioctl.c @@ -170,6 +174,7 @@ local srcs = paths[[src/( io_uring.c ioctl.c ioperm.c + iopl.c ioprio.c ipc.c ipc_msg.c @@ -190,6 +195,7 @@ local srcs = paths[[src/( lirc_ioctl.c listen.c listmount.c + listns.c lookup_dcookie.c loop.c lseek.c @@ -225,13 +231,13 @@ local srcs = paths[[src/( netlink_smc_diag.c netlink_sock_diag.c netlink_unix_diag.c + nice.c nlattr.c nsfs.c numa.c number_set.c oldstat.c open.c - open_tree.c or1k_atomic.c pathtrace.c perf.c @@ -306,6 +312,7 @@ local srcs = paths[[src/( seccomp.c seccomp_ioctl.c sendfile.c + set_tid_address.c sg_io_v3.c sg_io_v4.c shutdown.c @@ -390,8 +397,8 @@ file('bin/strace', '755', '$outdir/strace') build('sed', '$outdir/strace.1', '$srcdir/doc/strace.1.in', { expr={ - [[-e 's,@STRACE_MANPAGE_DATE@,2024-06-30,']], - [[-e 's,@VERSION@,6.12,']], + [[-e 's,@STRACE_MANPAGE_DATE@,2025-11-13,']], + [[-e 's,@VERSION@,6.19,']], [[-e 's,@ENABLE_STACKTRACE_TRUE@,#,']], [[-e 's,@ENABLE_STACKTRACE_FALSE@,,']], [[-e 's,@ENABLE_SECONTEXT_TRUE@,#,']], diff --git a/pkg/devel/strace/patch/0001-Don-t-return-expression-in-void-function.patch b/pkg/devel/strace/patch/0001-Don-t-return-expression-in-void-function.patch @@ -1,4 +1,4 @@ -From 79aac49a3d3953b6e62b477bd488c3b7237a5aee Mon Sep 17 00:00:00 2001 +From 31ffe0d9dfed05dd5524a91a6f0125c87f3d626c 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/src/defs.h b/src/defs.h -index 89ec13fc5..465d58139 100644 +index a22f1c99a..47e1c71f6 100644 --- a/src/defs.h +++ b/src/defs.h -@@ -824,7 +824,7 @@ extern bool pathtrace_match_set(struct tcb *, struct path_set *, +@@ -838,7 +838,7 @@ extern bool pathtrace_match_set(struct tcb *, struct path_set *, static inline void pathtrace_select(const char *path) { @@ -21,5 +21,5 @@ index 89ec13fc5..465d58139 100644 static inline bool -- -2.44.0 +2.49.0 diff --git a/pkg/devel/strace/patch/0002-Avoid-pointer-arithmetic-on-void.patch b/pkg/devel/strace/patch/0002-Avoid-pointer-arithmetic-on-void.patch @@ -0,0 +1,161 @@ +From 1bd3c3baab04866e76014412c839e3f954485207 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 *` + +--- + src/netlink_smc_diag.c | 4 ++-- + src/print_timespec.h | 6 ++++-- + src/sockaddr.c | 6 +++--- + src/tee.c | 2 +- + src/ucopy.c | 12 ++++++------ + 5 files changed, 16 insertions(+), 14 deletions(-) + +diff --git a/src/netlink_smc_diag.c b/src/netlink_smc_diag.c +index 74e78b966..c3a28a839 100644 +--- a/src/netlink_smc_diag.c ++++ b/src/netlink_smc_diag.c +@@ -42,7 +42,7 @@ DECL_NETLINK_DIAG_DECODER(decode_smc_diag_req) + if (len >= sizeof(req)) { + if (!umoven_or_printaddr(tcp, addr + offset, + sizeof(req) - offset, +- (void *) &req + offset)) { ++ (char *) &req + offset)) { + PRINT_FIELD_FLAGS(req, diag_ext, + smc_diag_extended_flags, + "1<<SMC_DIAG_\?\?\?-1"); +@@ -261,7 +261,7 @@ DECL_NETLINK_DIAG_DECODER(decode_smc_diag_msg) + if (len >= sizeof(msg)) { + if (!umoven_or_printaddr(tcp, addr + offset, + sizeof(msg) - offset, +- (void *) &msg + offset)) { ++ (char *) &msg + offset)) { + PRINT_FIELD_XVAL(msg, diag_state, + smc_states, "SMC_???"); + tprint_struct_next(); +diff --git a/src/print_timespec.h b/src/print_timespec.h +index dc5f9d10c..87f7ff973 100644 +--- a/src/print_timespec.h ++++ b/src/print_timespec.h +@@ -66,6 +66,8 @@ bool + PRINT_TIMESPEC_ARRAY_DATA_SIZE(const void *arg, const unsigned int nmemb, + const size_t size) + { ++ const char *ts = arg; ++ + if (nmemb > size / sizeof(TIMESPEC_T)) { + tprint_unavailable(); + return false; +@@ -73,10 +75,10 @@ PRINT_TIMESPEC_ARRAY_DATA_SIZE(const void *arg, const unsigned int nmemb, + + tprint_array_begin(); + +- for (unsigned int i = 0; i < nmemb; i++, arg += sizeof(TIMESPEC_T)) { ++ for (unsigned int i = 0; i < nmemb; i++, ts += sizeof(TIMESPEC_T)) { + if (i) + tprint_array_next(); +- print_unaligned_timespec_t(arg); ++ print_unaligned_timespec_t(ts); + } + + tprint_array_end(); +diff --git a/src/sockaddr.c b/src/sockaddr.c +index 874821c60..98220288d 100644 +--- a/src/sockaddr.c ++++ b/src/sockaddr.c +@@ -605,7 +605,7 @@ print_sockaddr_data_tipc(struct tcb *tcp, const void *const buf, + tprint_struct_next(); + tprints_field_name("addr"); + +- const void *const addr_buf = buf + offsetof(struct sockaddr_tipc, addr); ++ const void *const addr_buf = (char *)buf + offsetof(struct sockaddr_tipc, addr); + const int addr_len = sizeof(struct sockaddr_tipc) - offsetof(struct sockaddr_tipc, addr); + + switch (sa->addrtype) { +@@ -657,7 +657,7 @@ print_sockaddr_data_tipc(struct tcb *tcp, const void *const buf, + static void + print_sockaddr_data_raw(const void *const buf, const int addrlen) + { +- const char *const data = buf + SIZEOF_SA_FAMILY; ++ const char *const data = (const char *)buf + SIZEOF_SA_FAMILY; + const int datalen = addrlen - SIZEOF_SA_FAMILY; + + tprints_field_name("sa_data"); +@@ -854,7 +854,7 @@ print_sockaddr_data_rxrpc(struct tcb *tcp, const void *const buf, + tprints_field_name("transport"); + tprint_struct_begin(); + +- const void *const transport_buf = (void *) &sa->transport ++ const void *const transport_buf = (char *) &sa->transport + + sizeof(sa->transport.family); + const int transport_len = MIN(sa->transport_len, + len - offsetof(struct sockaddr_rxrpc, +diff --git a/src/tee.c b/src/tee.c +index 08754212a..dca390adb 100644 +--- a/src/tee.c ++++ b/src/tee.c +@@ -56,7 +56,7 @@ tee_fetch_buf_data(struct tcb *const tcp, + tee_print_buf(buf); + return RVAL_IOCTL_DECODED; + } +- uint32_t *num_params = (uint32_t *) (arg_struct + num_params_offs); ++ uint32_t *num_params = (uint32_t *) ((char *)arg_struct + num_params_offs); + if (entering(tcp) && + (arg_size + TEE_IOCTL_PARAM_SIZE(*num_params) != buf->buf_len)) { + /* +diff --git a/src/ucopy.c b/src/ucopy.c +index b4e746b0b..007b5373e 100644 +--- a/src/ucopy.c ++++ b/src/ucopy.c +@@ -186,7 +186,7 @@ vm_read_mem(const pid_t pid, void *laddr, + break; + + len = next_len; +- laddr += copy_len; ++ laddr = (char *)laddr + copy_len; + page_start += page_size; + taddr = page_start; + } +@@ -282,7 +282,7 @@ umoven_peekdata(const int pid, kernel_ulong_t addr, unsigned int len, + memcpy(laddr, &u.data[residue], m); + residue = 0; + addr += sizeof(long); +- laddr += m; ++ laddr = (char *)laddr + m; + nread += m; + len -= m; + } +@@ -378,10 +378,10 @@ umovestr_peekdata(const int pid, kernel_ulong_t addr, unsigned int len, + memcpy(laddr, &u.data[residue], m); + while (residue < sizeof(long)) + if (u.data[residue++] == '\0') +- return (laddr - orig_addr) + residue; ++ return nread + residue; + residue = 0; + addr += sizeof(long); +- laddr += m; ++ laddr = (char *)laddr + m; + nread += m; + len -= m; + } +@@ -502,7 +502,7 @@ upoken_pokedata(const int pid, kernel_ulong_t addr, unsigned int len, + + addr += sizeof(long); + nwritten += npoke; +- our_addr += npoke; ++ our_addr = (char *)our_addr + npoke; + len -= npoke; + } + +@@ -515,7 +515,7 @@ upoken_pokedata(const int pid, kernel_ulong_t addr, unsigned int len, + + addr += sizeof(long); + nwritten += sizeof(long); +- our_addr += sizeof(long); ++ our_addr = (char *)our_addr + sizeof(long); + len -= sizeof(long); + } + +-- +2.49.0 + diff --git a/pkg/devel/strace/patch/0002-Make-tcp_sysent-a-static-inline-function.patch b/pkg/devel/strace/patch/0002-Make-tcp_sysent-a-static-inline-function.patch @@ -1,33 +0,0 @@ -From 75a23af067ff5390a47df1e877f68834241009b9 Mon Sep 17 00:00:00 2001 -From: Michael Forney <mforney@mforney.org> -Date: Sat, 6 Jul 2019 01:40:36 -0700 -Subject: [PATCH] Make tcp_sysent a static inline function - -This way we can include the second operand to the conditional -operator without evaluating the macro argument multiple times. ---- - src/defs.h | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/src/defs.h b/src/defs.h -index ae1d1d1dc..bbd8f6748 100644 ---- a/src/defs.h -+++ b/src/defs.h -@@ -402,8 +402,12 @@ struct tcb { - # define syscall_tampered_nofail(tcp) ((tcp)->flags & TCB_TAMPERED_NO_FAIL) - # define has_seccomp_filter(tcp) ((tcp)->flags & TCB_SECCOMP_FILTER) - --extern const struct_sysent stub_sysent; --# define tcp_sysent(tcp) (tcp->s_ent ?: &stub_sysent) -+static inline const struct_sysent * -+tcp_sysent(struct tcb *tcp) -+{ -+ extern const struct_sysent stub_sysent; -+ return tcp->s_ent ? tcp->s_ent : &stub_sysent; -+} - # define n_args(tcp) (tcp_sysent(tcp)->nargs) - - # include "xlat.h" --- -2.44.0 - diff --git a/pkg/devel/strace/patch/0004-Avoid-empty-struct-definition.patch b/pkg/devel/strace/patch/0003-Avoid-empty-struct-definition.patch diff --git a/pkg/devel/strace/patch/0003-Avoid-pointer-arithmetic-on-void.patch b/pkg/devel/strace/patch/0003-Avoid-pointer-arithmetic-on-void.patch @@ -1,152 +0,0 @@ -From c154f9dfaaccabc52af12ccabc86e9d0c6c18ada 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 *` - ---- - src/netlink_smc_diag.c | 4 ++-- - src/print_timespec.h | 6 ++++-- - src/sockaddr.c | 4 ++-- - src/tee.c | 2 +- - src/ucopy.c | 12 ++++++------ - 5 files changed, 15 insertions(+), 13 deletions(-) - -diff --git a/src/netlink_smc_diag.c b/src/netlink_smc_diag.c -index 74e78b966..c3a28a839 100644 ---- a/src/netlink_smc_diag.c -+++ b/src/netlink_smc_diag.c -@@ -42,7 +42,7 @@ DECL_NETLINK_DIAG_DECODER(decode_smc_diag_req) - if (len >= sizeof(req)) { - if (!umoven_or_printaddr(tcp, addr + offset, - sizeof(req) - offset, -- (void *) &req + offset)) { -+ (char *) &req + offset)) { - PRINT_FIELD_FLAGS(req, diag_ext, - smc_diag_extended_flags, - "1<<SMC_DIAG_\?\?\?-1"); -@@ -261,7 +261,7 @@ DECL_NETLINK_DIAG_DECODER(decode_smc_diag_msg) - if (len >= sizeof(msg)) { - if (!umoven_or_printaddr(tcp, addr + offset, - sizeof(msg) - offset, -- (void *) &msg + offset)) { -+ (char *) &msg + offset)) { - PRINT_FIELD_XVAL(msg, diag_state, - smc_states, "SMC_???"); - tprint_struct_next(); -diff --git a/src/print_timespec.h b/src/print_timespec.h -index dc5f9d10c..87f7ff973 100644 ---- a/src/print_timespec.h -+++ b/src/print_timespec.h -@@ -66,6 +66,8 @@ bool - PRINT_TIMESPEC_ARRAY_DATA_SIZE(const void *arg, const unsigned int nmemb, - const size_t size) - { -+ const char *ts = arg; -+ - if (nmemb > size / sizeof(TIMESPEC_T)) { - tprint_unavailable(); - return false; -@@ -73,10 +75,10 @@ PRINT_TIMESPEC_ARRAY_DATA_SIZE(const void *arg, const unsigned int nmemb, - - tprint_array_begin(); - -- for (unsigned int i = 0; i < nmemb; i++, arg += sizeof(TIMESPEC_T)) { -+ for (unsigned int i = 0; i < nmemb; i++, ts += sizeof(TIMESPEC_T)) { - if (i) - tprint_array_next(); -- print_unaligned_timespec_t(arg); -+ print_unaligned_timespec_t(ts); - } - - tprint_array_end(); -diff --git a/src/sockaddr.c b/src/sockaddr.c -index ee1ce8828..c1f9b1740 100644 ---- a/src/sockaddr.c -+++ b/src/sockaddr.c -@@ -583,7 +583,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) - { -- const char *const data = buf + SIZEOF_SA_FAMILY; -+ const char *const data = (const char *)buf + SIZEOF_SA_FAMILY; - const int datalen = addrlen - SIZEOF_SA_FAMILY; - - tprints_field_name("sa_data"); -@@ -780,7 +780,7 @@ print_sockaddr_data_rxrpc(struct tcb *tcp, const void *const buf, - tprints_field_name("transport"); - tprint_struct_begin(); - -- const void *const transport_buf = (void *) &sa->transport -+ const void *const transport_buf = (char *) &sa->transport - + sizeof(sa->transport.family); - const int transport_len = MIN(sa->transport_len, - len - offsetof(struct sockaddr_rxrpc, -diff --git a/src/tee.c b/src/tee.c -index c62566800..1596a5095 100644 ---- a/src/tee.c -+++ b/src/tee.c -@@ -69,7 +69,7 @@ tee_fetch_buf_data(struct tcb *const tcp, - tee_print_buf(buf); - return RVAL_IOCTL_DECODED; - } -- uint32_t *num_params = (uint32_t *) (arg_struct + num_params_offs); -+ uint32_t *num_params = (uint32_t *) ((char *)arg_struct + num_params_offs); - if (entering(tcp) && - (arg_size + TEE_IOCTL_PARAM_SIZE(*num_params) != buf->buf_len)) { - /* -diff --git a/src/ucopy.c b/src/ucopy.c -index b4e746b0b..007b5373e 100644 ---- a/src/ucopy.c -+++ b/src/ucopy.c -@@ -186,7 +186,7 @@ vm_read_mem(const pid_t pid, void *laddr, - break; - - len = next_len; -- laddr += copy_len; -+ laddr = (char *)laddr + copy_len; - page_start += page_size; - taddr = page_start; - } -@@ -282,7 +282,7 @@ umoven_peekdata(const int pid, kernel_ulong_t addr, unsigned int len, - memcpy(laddr, &u.data[residue], m); - residue = 0; - addr += sizeof(long); -- laddr += m; -+ laddr = (char *)laddr + m; - nread += m; - len -= m; - } -@@ -378,10 +378,10 @@ umovestr_peekdata(const int pid, kernel_ulong_t addr, unsigned int len, - memcpy(laddr, &u.data[residue], m); - while (residue < sizeof(long)) - if (u.data[residue++] == '\0') -- return (laddr - orig_addr) + residue; -+ return nread + residue; - residue = 0; - addr += sizeof(long); -- laddr += m; -+ laddr = (char *)laddr + m; - nread += m; - len -= m; - } -@@ -502,7 +502,7 @@ upoken_pokedata(const int pid, kernel_ulong_t addr, unsigned int len, - - addr += sizeof(long); - nwritten += npoke; -- our_addr += npoke; -+ our_addr = (char *)our_addr + npoke; - len -= npoke; - } - -@@ -515,7 +515,7 @@ upoken_pokedata(const int pid, kernel_ulong_t addr, unsigned int len, - - addr += sizeof(long); - nwritten += sizeof(long); -- our_addr += sizeof(long); -+ our_addr = (char *)our_addr + sizeof(long); - len -= sizeof(long); - } - --- -2.44.0 - diff --git a/pkg/devel/strace/patch/0004-Don-t-omit-second-operand-to-operator.patch b/pkg/devel/strace/patch/0004-Don-t-omit-second-operand-to-operator.patch @@ -0,0 +1,161 @@ +From 2a87525db61778ad915273dea37a17ae88e7a1f1 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 + +--- + src/defs.h | 2 +- + src/open.c | 5 +++-- + src/prctl.c | 8 ++++---- + src/strace.c | 10 +++++----- + src/strauss.c | 4 +++- + src/util.c | 4 ++-- + 6 files changed, 18 insertions(+), 15 deletions(-) + +diff --git a/src/defs.h b/src/defs.h +index 47e1c71f6..cd63f9d35 100644 +--- a/src/defs.h ++++ b/src/defs.h +@@ -404,7 +404,7 @@ struct tcb { + # define has_seccomp_filter(tcp) ((tcp)->flags & TCB_SECCOMP_FILTER) + + extern const struct_sysent stub_sysent; +-# define tcp_sysent(tcp) (tcp->s_ent ?: &stub_sysent) ++# define tcp_sysent(tcp) (tcp->s_ent ? tcp->s_ent : &stub_sysent) + # define n_args(tcp) MIN(tcp_sysent(tcp)->nargs, MAX_ARGS) + + # include "xlat.h" +diff --git a/src/open.c b/src/open.c +index 00bb697d0..77e6b2d9a 100644 +--- a/src/open.c ++++ b/src/open.c +@@ -88,8 +88,9 @@ sprint_open_modes64(uint64_t flags) + } + *p = '\0'; + +- return sprintflags_ex(outstr, open_mode_flags, flags, sep, +- XLAT_STYLE_ABBREV) ?: outstr; ++ str = sprintflags_ex(outstr, open_mode_flags, flags, sep, ++ XLAT_STYLE_ABBREV); ++ return str ? str : outstr; + } + + const char * +diff --git a/src/prctl.c b/src/prctl.c +index e4d6de888..89101e5cd 100644 +--- a/src/prctl.c ++++ b/src/prctl.c +@@ -99,10 +99,10 @@ sprint_sve_val(kernel_ulong_t arg, bool aux) + if (!aux && flags && xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE) + { + xsprintf(out, "%#" PRI_klx " /* %s%s%#" PRI_klx " */", +- arg, flags_str ?: "", flags_str ? "|" : "", vl); ++ arg, flags_str ? flags_str : "", flags_str ? "|" : "", vl); + } else { + xsprintf(out, "%s%s%#" PRI_klx, +- flags_str ?: "", flags_str ? "|" : "", vl); ++ flags_str ? flags_str : "", flags_str ? "|" : "", vl); + } + + return out; +@@ -135,10 +135,10 @@ sprint_sme_val(kernel_ulong_t arg, bool aux) + if (!aux && flags && xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE) + { + xsprintf(out, "%#" PRI_klx " /* %s%s%#" PRI_klx " */", +- arg, flags_str ?: "", flags_str ? "|" : "", vl); ++ arg, flags_str ? flags_str : "", flags_str ? "|" : "", vl); + } else { + xsprintf(out, "%s%s%#" PRI_klx, +- flags_str ?: "", flags_str ? "|" : "", vl); ++ flags_str ? flags_str : "", flags_str ? "|" : "", vl); + } + + return out; +diff --git a/src/strace.c b/src/strace.c +index ee80de0bc..74a09dc7a 100644 +--- a/src/strace.c ++++ b/src/strace.c +@@ -2636,7 +2636,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': +@@ -2710,7 +2710,7 @@ init(int argc, char *argv[]) + error_opt_arg(c, lopt, optarg); + break; + case GETOPT_TIPS: +- if (parse_tips_arg(optarg ?: "")) ++ if (parse_tips_arg(optarg ? optarg : "")) + error_opt_arg(c, lopt, optarg); + break; + case GETOPT_ARGV0: +@@ -2759,13 +2759,13 @@ init(int argc, char *argv[]) + qualify_kvm(optarg); + break; + case GETOPT_QUAL_NAMESPACE: +- qualify_namespace(optarg ?: namespace_qual); ++ qualify_namespace(optarg ? optarg : namespace_qual); + 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; + case GETOPT_QUAL_DECODE_PID: + qualify_decode_pid(optarg); +diff --git a/src/strauss.c b/src/strauss.c +index bec85021b..5d49f950a 100644 +--- a/src/strauss.c ++++ b/src/strauss.c +@@ -367,6 +367,7 @@ print_totd(void) + struct timeval tv; + size_t id; + size_t i; ++ const char *tip; + + if (printed || show_tips == TIPS_NONE) + return; +@@ -386,9 +387,10 @@ print_totd(void) + for (i = 0; (i < MAX_TIP_LINES) && (tips_tricks_tweaks[id][i] || + (i < (ARRAY_SIZE(tip_right) - 1))); + i++) { ++ tip = tips_tricks_tweaks[id][i]; + fprintf(stderr, "%s%-*s%s%s\n", + tip_left[MIN(i + 1, ARRAY_SIZE(tip_left) - 1)], +- w, tips_tricks_tweaks[id][i] ?: "", ++ w, tip ? tip : "", + tip_right[MIN(i + 1, ARRAY_SIZE(tip_right) - 1)], + strauss[MIN(3 + i, strauss_lines - 1)]); + } +diff --git a/src/util.c b/src/util.c +index 0d6d7da45..e6d6ee667 100644 +--- a/src/util.c ++++ b/src/util.c +@@ -640,7 +640,7 @@ printsocket(struct tcb *tcp, int fd, const char *path) + return false; + + const char *details = get_sockaddr_by_inode(tcp, fd, inode); +- print_string_in_angle_brackets(details ?: path); ++ print_string_in_angle_brackets(details ? details : path); + + return true; + } +@@ -1394,7 +1394,7 @@ printpathn(struct tcb *const tcp, const kernel_ulong_t addr, unsigned int n) + if (nul_seen < 0) + printaddr(addr); + else { +- print_quoted_cstring(path, (unsigned int) nul_seen ?: n); ++ print_quoted_cstring(path, nul_seen ? (unsigned int) nul_seen : n); + + if (nul_seen) + selinux_printfilecon(tcp, path); +-- +2.49.0 + diff --git a/pkg/devel/strace/patch/0006-Avoid-unnecessary-VLAs.patch b/pkg/devel/strace/patch/0005-Avoid-unnecessary-VLAs.patch diff --git a/pkg/devel/strace/patch/0005-Don-t-omit-second-operand-to-operator.patch b/pkg/devel/strace/patch/0005-Don-t-omit-second-operand-to-operator.patch @@ -1,134 +0,0 @@ -From e245f2d71d44d2a858517321a01d3ca71147042f 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 - ---- - src/open.c | 5 +++-- - src/prctl.c | 8 ++++---- - src/strace.c | 8 ++++---- - src/strauss.c | 4 +++- - src/util.c | 2 +- - 5 files changed, 15 insertions(+), 12 deletions(-) - -diff --git a/src/open.c b/src/open.c -index 6356c5831..df59ea999 100644 ---- a/src/open.c -+++ b/src/open.c -@@ -88,8 +88,9 @@ sprint_open_modes64(uint64_t flags) - } - *p = '\0'; - -- return sprintflags_ex(outstr, open_mode_flags, flags, sep, -- XLAT_STYLE_ABBREV) ?: outstr; -+ str = sprintflags_ex(outstr, open_mode_flags, flags, sep, -+ XLAT_STYLE_ABBREV); -+ return str ? str : outstr; - } - - const char * -diff --git a/src/prctl.c b/src/prctl.c -index dbabb3a18..712715b98 100644 ---- a/src/prctl.c -+++ b/src/prctl.c -@@ -98,10 +98,10 @@ sprint_sve_val(kernel_ulong_t arg, bool aux) - if (!aux && flags && xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE) - { - xsprintf(out, "%#" PRI_klx " /* %s%s%#" PRI_klx " */", -- arg, flags_str ?: "", flags_str ? "|" : "", vl); -+ arg, flags_str ? flags_str : "", flags_str ? "|" : "", vl); - } else { - xsprintf(out, "%s%s%#" PRI_klx, -- flags_str ?: "", flags_str ? "|" : "", vl); -+ flags_str ? flags_str : "", flags_str ? "|" : "", vl); - } - - return out; -@@ -134,10 +134,10 @@ sprint_sme_val(kernel_ulong_t arg, bool aux) - if (!aux && flags && xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE) - { - xsprintf(out, "%#" PRI_klx " /* %s%s%#" PRI_klx " */", -- arg, flags_str ?: "", flags_str ? "|" : "", vl); -+ arg, flags_str ? flags_str : "", flags_str ? "|" : "", vl); - } else { - xsprintf(out, "%s%s%#" PRI_klx, -- flags_str ?: "", flags_str ? "|" : "", vl); -+ flags_str ? flags_str : "", flags_str ? "|" : "", vl); - } - - return out; -diff --git a/src/strace.c b/src/strace.c -index 1a9d53bc8..9ac16c8c3 100644 ---- a/src/strace.c -+++ b/src/strace.c -@@ -2649,7 +2649,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': -@@ -2723,7 +2723,7 @@ init(int argc, char *argv[]) - error_opt_arg(c, lopt, optarg); - break; - case GETOPT_TIPS: -- if (parse_tips_arg(optarg ?: "")) -+ if (parse_tips_arg(optarg ? optarg : "")) - error_opt_arg(c, lopt, optarg); - break; - case GETOPT_ARGV0: -@@ -2772,10 +2772,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; - case GETOPT_QUAL_DECODE_PID: - qualify_decode_pid(optarg); -diff --git a/src/strauss.c b/src/strauss.c -index bec85021b..5d49f950a 100644 ---- a/src/strauss.c -+++ b/src/strauss.c -@@ -367,6 +367,7 @@ print_totd(void) - struct timeval tv; - size_t id; - size_t i; -+ const char *tip; - - if (printed || show_tips == TIPS_NONE) - return; -@@ -386,9 +387,10 @@ print_totd(void) - for (i = 0; (i < MAX_TIP_LINES) && (tips_tricks_tweaks[id][i] || - (i < (ARRAY_SIZE(tip_right) - 1))); - i++) { -+ tip = tips_tricks_tweaks[id][i]; - fprintf(stderr, "%s%-*s%s%s\n", - tip_left[MIN(i + 1, ARRAY_SIZE(tip_left) - 1)], -- w, tips_tricks_tweaks[id][i] ?: "", -+ w, tip ? tip : "", - tip_right[MIN(i + 1, ARRAY_SIZE(tip_right) - 1)], - strauss[MIN(3 + i, strauss_lines - 1)]); - } -diff --git a/src/util.c b/src/util.c -index ada3ba76a..a88dd008d 100644 ---- a/src/util.c -+++ b/src/util.c -@@ -640,7 +640,7 @@ printsocket(struct tcb *tcp, int fd, const char *path) - return false; - - const char *details = get_sockaddr_by_inode(tcp, fd, inode); -- print_string_in_angle_brackets(details ?: path); -+ print_string_in_angle_brackets(details ? details : path); - - return true; - } --- -2.44.0 - diff --git a/pkg/devel/strace/patch/0007-Avoid-index-ranges-and-empty-initializer-lists-in-sy.patch b/pkg/devel/strace/patch/0006-Avoid-index-ranges-and-empty-initializer-lists-in-sy.patch diff --git a/pkg/devel/strace/patch/0008-Use-alloca-when-VLAs-aren-t-available.patch b/pkg/devel/strace/patch/0007-Use-alloca-when-VLAs-aren-t-available.patch diff --git a/pkg/devel/strace/patch/0009-Avoid-index-ranges.patch b/pkg/devel/strace/patch/0008-Avoid-index-ranges.patch diff --git a/pkg/devel/strace/patch/0009-Use-ISO-C-alignment-and-attribute-syntax.patch b/pkg/devel/strace/patch/0009-Use-ISO-C-alignment-and-attribute-syntax.patch @@ -0,0 +1,85 @@ +From 8fbfd70d38e4dbff3c4ec6c9362ad7c765e5089f Mon Sep 17 00:00:00 2001 +From: Michael Forney <mforney@mforney.org> +Date: Wed, 1 Apr 2026 23:28:49 -0700 +Subject: [PATCH] Use ISO C alignment and attribute syntax + +--- + src/gcc_compat.h | 4 ++-- + src/quota.c | 4 ++-- + src/rtnl_link.c | 4 ++-- + src/sockaddr.c | 4 ++-- + 4 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/src/gcc_compat.h b/src/gcc_compat.h +index 35291b747..7e576d35c 100644 +--- a/src/gcc_compat.h ++++ b/src/gcc_compat.h +@@ -54,8 +54,8 @@ + # define ATTRIBUTE_PACKED __attribute__((__packed__)) + # else + # define ATTRIBUTE_FORMAT(args) /* empty */ +-# define ATTRIBUTE_ALIGNED(arg) /* empty */ +-# define ATTRIBUTE_PACKED /* empty */ ++# define ATTRIBUTE_ALIGNED(arg) _Alignas(arg) ++# define ATTRIBUTE_PACKED [[gnu::packed]] + # endif + + /* +diff --git a/src/quota.c b/src/quota.c +index c3aeda229..bf6ca186c 100644 +--- a/src/quota.c ++++ b/src/quota.c +@@ -36,7 +36,7 @@ + * leads to problems when it is used on 32-bit tracee which does not have such + * padding. + */ +-struct if_dqblk { ++struct ATTRIBUTE_PACKED if_dqblk { + uint64_t dqb_bhardlimit; + uint64_t dqb_bsoftlimit; + uint64_t dqb_curspace; +@@ -46,7 +46,7 @@ struct if_dqblk { + uint64_t dqb_btime; + uint64_t dqb_itime; + uint32_t dqb_valid; +-} ATTRIBUTE_PACKED; ++}; + + struct if_nextdqblk { + uint64_t dqb_bhardlimit; +diff --git a/src/rtnl_link.c b/src/rtnl_link.c +index acc244560..e345e87d3 100644 +--- a/src/rtnl_link.c ++++ b/src/rtnl_link.c +@@ -926,10 +926,10 @@ decode_ifla_vf_guid(struct tcb *const tcp, + * aligned; trying to handle both possible attribute sizes. + */ + union { +- struct { ++ struct ATTRIBUTE_PACKED { + uint32_t vf; + uint64_t guid; +- } ATTRIBUTE_PACKED ivg_32; ++ } ivg_32; + struct { + uint32_t vf; + uint64_t ATTRIBUTE_ALIGNED(8) guid; +diff --git a/src/sockaddr.c b/src/sockaddr.c +index 98220288d..afa2fd6a8 100644 +--- a/src/sockaddr.c ++++ b/src/sockaddr.c +@@ -757,9 +757,9 @@ print_sockaddr_data_bt(struct tcb *tcp, const void *const buf, + uint16_t hci_channel; + }; + +- struct bdaddr { ++ struct ATTRIBUTE_PACKED bdaddr { + uint8_t b[6]; +- } ATTRIBUTE_PACKED; ++ }; + + struct sockaddr_sco { + /* sa_family_t */ uint16_t sco_family; +-- +2.49.0 + diff --git a/pkg/devel/strace/sha256 b/pkg/devel/strace/sha256 @@ -1 +1 @@ -c47da93be45b6055f4dc741d7f20efaf50ca10160a5b100c109b294fd9c0bdfe strace-6.12.tar.xz +e076c851eec0972486ec842164fdc54547f9d17abd3d1449de8b120f5d299143 strace-6.19.tar.xz diff --git a/pkg/devel/strace/url b/pkg/devel/strace/url @@ -1 +1 @@ -url = "https://github.com/strace/strace/releases/download/v6.12/strace-6.12.tar.xz" +url = "https://github.com/strace/strace/releases/download/v6.19/strace-6.19.tar.xz" diff --git a/pkg/devel/strace/ver b/pkg/devel/strace/ver @@ -1 +1 @@ -6.12 r0 +6.19