Changelog for strace: 7.1 -> 7.2 Source: ChangeLog 2026-08-18 Dmitry V. Levin Prepare for 7.2 release. * NEWS: Update for 7.2 release. Update copyright headers. Headers updated automatically using maint/update_copyright_years.sh script. 2026-08-18 Dmitry V. Levin tests: fix futex test expectations for FUTEX_UNLOCK_*_LIST* on linux v7.2 * tests/futex.c (main): Change FUTEX_UNLOCK_WAKE_LIST64, FUTEX_UNLOCK_WAKE_LIST64_PRIVATE, FUTEX_UNLOCK_WAKE_LIST32, FUTEX_UNLOCK_WAKE_LIST32_PRIVATE, FUTEX_UNLOCK_BITSET_LIST64, FUTEX_UNLOCK_BITSET_LIST64_PRIVATE, FUTEX_UNLOCK_BITSET_LIST32, and FUTEX_UNLOCK_BITSET_LIST32_PRIVATE checks to expect EFAULT instead of success. These operations require a valid robust list pending op pointer in uaddr2. When uaddr2 is NULL, Linux v7.2 returns EFAULT. On older kernels that don't implement these operations, ENOSYS is still accepted via CHECK_FUTEX_ENOSYS. Fixes: v7.1-52-g07c1c3f00b02 "tests: check decoding of FUTEX_UNLOCK_*_LIST* constants" Assisted-by: Claude:claude-sonnet-4-5 2026-08-17 Gleb Fotengauer-Malinovskiy Update ioctl entries from linux v7.2. * src/linux/32/ioctls_inc_align16.h: Update from linux v7.2 using ioctls_gen.sh. * src/linux/32/ioctls_inc_align32.h: Likewise. * src/linux/32/ioctls_inc_align64.h: Likewise. * src/linux/64/ioctls_inc.h: Likewise. * src/linux/x32/ioctls_inc0.h: Likewise. * NEWS: Mention this change. 2026-08-17 Dmitry V. Levin bundled: update linux UAPI headers to v7.2. Headers updated automatically using update-bundled-headers.sh script. * bundled/linux/include/uapi/linux/btrfs.h: Update to headers_install'ed Linux kernel v7.2. * bundled/linux/include/uapi/linux/ip_vs.h: Likewise. 2026-08-16 Dmitry V. Levin io_uring: rename notif to event. Between Linux v7.2-rc1 and v7.2-rc7, the io_uring zero-copy RX interface underwent a systematic rename replacing "notif"/"notification" terminology with "event". * bundled/linux/include/uapi/linux/io_uring/query.h: Update to headers_install'ed Linux kernel v7.2-rc7 using update-bundled-headers.sh script. * bundled/linux/include/uapi/linux/io_uring/zcrx.h: Likewise. * src/xlat/uring_zcrx_notif_types.in: Rename to src/xlat/uring_zcrx_event_types.in and update constant names: ZCRX_NOTIF_NO_BUFFERS becomes ZCRX_EVENT_ALLOC_FAIL, ZCRX_NOTIF_COPY becomes ZCRX_EVENT_COPY. * src/xlat/uring_zcrx_ctrl_ops.in (ZCRX_CTRL_ARM_NOTIFICATION): Rename to ZCRX_CTRL_ARM_EVENT. * src/xlat/uring_query_ops.in (IO_URING_QUERY_ZCRX_NOTIF): Rename to IO_URING_QUERY_ZCRX_EVENT. * src/io_uring.c: Update to match kernel UAPI changes. (print_io_uring_zcrx_ifq_reg): notif_desc -> event_desc field. (print_zcrx_ctrl_arm_notif): Rename function to print_zcrx_ctrl_arm_event, update struct type and field names. (print_io_uring_zcrx_ctrl): Update case and union member references. (print_io_uring_query_zcrx_notif): Rename function to print_io_uring_query_zcrx_event, update struct type and all field names (notif_flags -> event_flags, notif_stats_size -> stats_size, notif_stats_off_alignment -> stats_off_alignment). (print_io_uring_query_list): Update case and function call. * tests/io_uring_register.c: Update all test cases and expected output strings to match renamed constants, structs, and fields. Kernel commits: * af78c0020480 "io_uring/zcrx: drop 'notif' from stats struct names" * 201e30810223 "io_uring/zcrx: rename ZCRX_NOTIF_NO_BUFFERS" * e366c15e1610 "io_uring/zcrx: rename notif to event" Assisted-by: Claude:claude-opus-4-6 2026-08-01 dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> build(deps): bump actions/checkout from 7.0.0 to 7.0.1. Bumps [actions/checkout](https://github.com/actions/checkout) from 7.0.0 to 7.0.1. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0...3d3c42e5aac5ba805825da76410c181273ba90b1) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: 7.0.1 dependency-type: direct:production update-type: version-update:semver-patch ... 2026-07-15 Dmitry V. Levin openat2: decode OPENAT2_REGULAR flag. * NEWS: Mention OPENAT2_REGULAR decoding. * src/xlat/openat2_flags.in: New file. * src/open.c: Include "xlat/openat2_flags.h". (tprint_open_how_flags): New function that calls sprint_open_mode_flags with both open_mode_flags and openat2_flags. (print_open_how): Use tprint_open_how_flags to decode the flags field, to handle OPENAT2_REGULAR flag introduced by Linux kernel commit v7.2-rc1~228^2~3^2~1. * tests/openat2.c (main): Check it. Assisted-by: Claude:claude-opus-4-6 2026-07-15 Dmitry V. Levin open: refactor sprint_open_modes64 to support multiple xlat tables. Introduce sprintflags_exv, a va_list version of sprintflags_ex that iterates multiple NULL-terminated xlat tables before formatting unknown bits. Turn sprintflags_ex into a thin wrapper around a new sprintflags_exl static variadic trampoline that forwards to sprintflags_exv. Rename sprint_open_modes64 to sprint_open_mode_flags, make it variadic, and forward its xlat arguments to sprintflags_exv. Re-create sprint_open_modes64 as a thin wrapper that passes open_mode_flags. * src/xlat.c (sprintflags_exv): New function. (sprintflags_exl): New static variadic trampoline for sprintflags_exv. (sprintflags_ex): Turn into a thin wrapper around sprintflags_exl. * src/defs.h (sprintflags_exv): New declaration. * src/open.c (sprint_open_mode_flags): Rename from sprint_open_modes64, make variadic, and forward xlat arguments to sprintflags_exv. (sprint_open_modes64): Re-create as a thin wrapper around sprint_open_mode_flags. Assisted-by: Claude:claude-opus-4-6 2026-07-14 Dmitry V. Levin io_uring: add missing CHECK_TYPE_SIZE, use consistent style. Add missing CHECK_TYPE_SIZE for whole structs and their array members. Use variable-based CHECK_TYPE_SIZE consistently, place all size checks right after variable declarations. * src/io_uring.c (io_uring_setup): Add CHECK_TYPE_SIZE for params.resv. (print_io_uring_getevents_arg): Use variable-based CHECK_TYPE_SIZE. (print_io_uring_probe): Add CHECK_TYPE_SIZE for *probe and probe->resv2. (print_io_uring_sync_cancel_reg): Add CHECK_TYPE_SIZE for arg, arg.pad, and arg.pad2. (print_io_uring_buf_status): Add CHECK_TYPE_SIZE for arg and arg.resv. (print_io_uring_napi): Add CHECK_TYPE_SIZE for arg and arg.pad. (print_io_uring_attr_pi): Use variable-based CHECK_TYPE_SIZE. (print_io_uring_sqe): Use variable-based CHECK_TYPE_SIZE, move before umove. (print_io_uring_zcrx_offsets): Add CHECK_TYPE_SIZE for *offsets and offsets->__resv. (print_io_uring_zcrx_ifq_reg): Move CHECK_TYPE_SIZE right after declaration. (print_zcrx_ctrl_flush_rq): Add CHECK_TYPE_SIZE for *flush and flush->__resv. (print_zcrx_ctrl_export): Add CHECK_TYPE_SIZE for *export and export->__resv1. (print_zcrx_ctrl_arm_notif): Add CHECK_TYPE_SIZE for *arm and arm->__resv. (print_io_uring_zcrx_ctrl): Use variable-based CHECK_TYPE_SIZE, add CHECK_TYPE_SIZE for arg.__resv. (print_io_uring_params_input): Use variable-based CHECK_TYPE_SIZE, move before umove, add CHECK_TYPE_SIZE for params.resv. (print_io_uring_mem_region_reg): Use variable-based CHECK_TYPE_SIZE, add CHECK_TYPE_SIZE for arg.__resv. (print_io_uring_query_opcode): Use variable-based CHECK_TYPE_SIZE, move before umove. (print_io_uring_query_zcrx): Use variable-based CHECK_TYPE_SIZE, move before umove. (print_io_uring_query_zcrx_notif): Use variable-based CHECK_TYPE_SIZE, move before umove, add CHECK_TYPE_SIZE for notif.__resv2. (print_io_uring_query_scq): Use variable-based CHECK_TYPE_SIZE, move before umove. (print_io_uring_query_list): Add CHECK_TYPE_SIZE for hdr.__resv. Assisted-by: Claude:claude-opus-4-6 2026-07-13 Dmitry V. Levin io_uring: decode IO_URING_QUERY_ZCRX_NOTIF query operation. * src/io_uring.c (print_io_uring_query_zcrx_notif): New function. (print_io_uring_query_list): Handle IO_URING_QUERY_ZCRX_NOTIF case introduced by Linux kernel commit v7.2-rc1~152^2~17. * tests/io_uring_register.c (test_IORING_REGISTER_QUERY): Add tests for IO_URING_QUERY_ZCRX_NOTIF with and without non-zero reserved fields. * NEWS: Mention this change. Assisted-by: Claude:claude-opus-4-6 2026-07-13 Dmitry V. Levin io_uring: decode ZCRX_CTRL_ARM_NOTIFICATION ctrl operation. * src/xlat/uring_zcrx_ctrl_ops.in (ZCRX_CTRL_ARM_NOTIFICATION): New constant introduced by Linux kernel commit v7.2-rc1~152^2~19. * src/xlat/uring_zcrx_notif_types.in: New file. * src/io_uring.c: Include "xlat/uring_zcrx_notif_types.h". (print_zcrx_ctrl_arm_notif): New function. (print_io_uring_zcrx_ctrl): Add ZCRX_CTRL_ARM_NOTIFICATION case. * tests/io_uring_register.c (test_IORING_REGISTER_ZCRX_CTRL): Add tests for ZCRX_CTRL_ARM_NOTIFICATION with different notification types and non-zero reserved fields. * NEWS: Mention this change. Assisted-by: Claude:claude-opus-4-6 2026-07-13 Dmitry V. Levin xlat: update IO_URING_QUERY_* constants. * src/xlat/uring_query_ops.in (IO_URING_QUERY_ZCRX_NOTIF): New constant introduced by Linux kernel commit v7.2-rc1~152^2~17. * NEWS: Mention this change. Assisted-by: Claude:claude-opus-4-6 2026-07-12 Dmitry V. Levin landlock: decode landlock_add_rule flags. * src/xlat/landlock_add_rule_flags.in: New file. * src/landlock.c: Include "xlat/landlock_add_rule_flags.h". (SYS_FUNC(landlock_add_rule)): Use printflags with landlock_add_rule_flags xlat instead of PRINT_VAL_X for the flags argument, to decode LANDLOCK_ADD_RULE_QUIET flag introduced by Linux kernel commit v7.2-rc1~91^2~7. * tests/landlock_add_rule.c (main): Update expected output to use symbolic flag names. * NEWS: Mention this change. Assisted-by: Claude:claude-opus-4-6 2026-07-09 Dmitry V. Levin landlock: decode quiet fields of landlock_ruleset_attr. Decode quiet_access_fs, quiet_access_net, and quiet_scoped fields of struct landlock_ruleset_attr, introduced by Linux kernel commit v7.2-rc1~91^2~7. * src/landlock.c (print_landlock_ruleset_attr): Update max_attr_size to include quiet_scoped. Decode quiet_access_fs, quiet_access_net, and quiet_scoped fields. * tests/landlock_create_ruleset.c (main): Extend local struct attr with quiet fields. Add test cases for quiet_access_fs, quiet_access_net, and quiet_scoped fields. * NEWS: Mention this change. Assisted-by: Claude:claude-opus-4-6 2026-07-08 Dmitry V. Levin bpf: decode path_fd field of BPF_LINK_CREATE uprobe_multi. * src/bpf_attr.h (BPF_LINK_CREATE_struct.uprobe_multi.path_fd): New field, introduced by Linux kernel commit v7.2-rc1~142^2~7^2~4. (BPF_LINK_CREATE_struct_size, expected_BPF_LINK_CREATE_struct_size): Update. * src/bpf.c (BEGIN_BPF_CMD_DECODER(BPF_LINK_CREATE)): Decode path_fd in uprobe_multi sub-struct. * tests/bpf.c (BPF_LINK_CREATE_checks): Update uprobe_multi test entries to include path_fd. * NEWS: Mention this change. Assisted-by: Claude:claude-opus-4-6 2026-07-07 Dmitry V. Levin bpf: decode BPF_LINK_CREATE tracing_multi sub-struct. * src/bpf_attr.h (struct BPF_LINK_CREATE_struct.tracing_multi): New union member with ids, cookies, and cnt fields, introduced by Linux kernel commit v7.2-rc1~142^2~29^2~16. * src/bpf.c (BPF_LINK_CREATE): Add cases for BPF_TRACE_FENTRY_MULTI, BPF_TRACE_FEXIT_MULTI, and BPF_TRACE_FSESSION_MULTI attach types, decode tracing_multi.ids as u32 array, tracing_multi.cookies as u64 array, and tracing_multi.cnt. * tests/bpf.c (special_attach_types): Add BPF_TRACE_FENTRY_MULTI, BPF_TRACE_FEXIT_MULTI, BPF_TRACE_FSESSION_MULTI. (init_BPF_LINK_CREATE_tracing_multi, print_BPF_LINK_CREATE_tracing_multi): New functions. (BPF_LINK_CREATE_checks): Add checks for tracing_multi decoding including cnt=0 static checks and array printing dynamic check. * NEWS: Mention this change. Assisted-by: Claude:claude-opus-4-6 2026-07-06 Dmitry V. Levin tests: check decoding of FUTEX_UNLOCK_*_LIST* constants. * tests/futex.c (main): Check FUTEX_UNLOCK_PI_LIST64, FUTEX_UNLOCK_PI_LIST64_PRIVATE, FUTEX_UNLOCK_PI_LIST32, FUTEX_UNLOCK_PI_LIST32_PRIVATE, FUTEX_UNLOCK_WAKE_LIST64, FUTEX_UNLOCK_WAKE_LIST64_PRIVATE, FUTEX_UNLOCK_WAKE_LIST32, FUTEX_UNLOCK_WAKE_LIST32_PRIVATE, FUTEX_UNLOCK_BITSET_LIST64, FUTEX_UNLOCK_BITSET_LIST64_PRIVATE, FUTEX_UNLOCK_BITSET_LIST32, and FUTEX_UNLOCK_BITSET_LIST32_PRIVATE decoding. Assisted-by: Claude:claude-opus-4-6 2026-07-06 Dmitry V. Levin xlat: update FUTEX_* constants. * src/xlat/futexops.in (FUTEX_UNLOCK_PI_LIST64, FUTEX_UNLOCK_PI_LIST64_PRIVATE, FUTEX_UNLOCK_PI_LIST32, FUTEX_UNLOCK_PI_LIST32_PRIVATE, FUTEX_UNLOCK_WAKE_LIST64, FUTEX_UNLOCK_WAKE_LIST64_PRIVATE, FUTEX_UNLOCK_WAKE_LIST32, FUTEX_UNLOCK_WAKE_LIST32_PRIVATE, FUTEX_UNLOCK_BITSET_LIST64, FUTEX_UNLOCK_BITSET_LIST64_PRIVATE, FUTEX_UNLOCK_BITSET_LIST32, FUTEX_UNLOCK_BITSET_LIST32_PRIVATE): New constants introduced by Linux kernel commit v7.2-rc1~196^2~13. * src/futex.c (FUTEX_ROBUST_UNLOCK, FUTEX_ROBUST_LIST32): Add fallback definitions. * tests/futex.c: Likewise. * NEWS: Mention this change. Assisted-by: Claude:claude-opus-4-6 2026-07-05 Dmitry V. Levin rtnl_link: decode IFLA_BRPORT_NEIGH_FORWARD_GRAT attribute. * src/rtnl_link.c (ifla_brport_nla_decoders): Add IFLA_BRPORT_NEIGH_FORWARD_GRAT decoder entry. * tests/nlattr_ifla_brport.c (main): Update expected output. * tests/nlattr_ifla_linkinfo.c (main): Likewise. * NEWS: Mention this change. Assisted-by: Claude:claude-opus-4-6 2026-07-05 Dmitry V. Levin xlat: update IFLA_BRPORT_* constants. * src/xlat/rtnl_ifla_brport_attrs.in (IFLA_BRPORT_NEIGH_FORWARD_GRAT): New constant introduced by Linux kernel commit v7.2-rc1~143^2~320^2~5. * tests/nlattr_ifla_brport.c (main): Update expected output. * tests/nlattr_ifla_linkinfo.c (main): Likewise. * NEWS: Mention this change. Assisted-by: Claude:claude-opus-4-6 2026-07-02 Dmitry V. Levin xlat: update RTEXT_FILTER_* constants. * src/xlat/rtnl_ifla_ext_filter_flags.in (RTEXT_FILTER_MST): New constant introduced by Linux kernel commit v5.18-rc1~136^2~50^2~12. (RTEXT_FILTER_NAME_ONLY): New constant introduced by Linux kernel commit v7.2-rc1~143^2~331. * tests/nlattr_ifinfomsg.c (main): Update expected output. * NEWS: Mention this change. Assisted-by: Claude:claude-opus-4-6 2026-07-02 Dmitry V. Levin xlat: update XFRM_MSG_* constants. * src/xlat/nl_xfrm_types.in (XFRM_MSG_MIGRATE_STATE): New constant introduced by Linux kernel commit v7.2-rc1~143^2~45^2^2~2. * NEWS: Mention this change. Assisted-by: Claude:claude-opus-4-6 2026-07-02 Dmitry V. Levin xlat: update V4L2_CID_* constants. * src/xlat/v4l2_control_ids.in (V4L2_CID_MPEG_VIDEO_BACKGROUND_DETECTION): New constant introduced by Linux kernel commit v7.2-rc1~101^2~387. * NEWS: Mention this change. Assisted-by: Claude:claude-opus-4-6 2026-07-02 Dmitry V. Levin xlat: update KVM_CAP_* constants. * src/xlat/kvm_cap.in (KVM_CAP_S390_HPAGE_2G): New constant introduced by Linux kernel commit v7.2-rc1~95^2~4^2~10. * NEWS: Mention this change. Assisted-by: Claude:claude-opus-4-6 2026-07-02 Dmitry V. Levin xlat: update NL80211_CMD_* constants. * src/xlat/genl_nl80211_cmd.in (NL80211_CMD_START_PD, NL80211_CMD_STOP_PD): New constants introduced by Linux kernel commit v7.2-rc1~143^2~368^2~48. * tests/netlink_nlctrl.c (test_nla_ops_family): Check it. * NEWS: Mention this change. Assisted-by: Claude:claude-opus-4-6 2026-07-02 Dmitry V. Levin xlat: update ETH_P_* constants. * src/xlat/ethernet_protocols.in (ETH_P_GRE_OSI, ETH_P_8021AC, ETH_P_NXP_NETC): New constants introduced by Linux kernel commit v7.2-rc1~143^2~119. * NEWS: Mention this change. Assisted-by: Claude:claude-opus-4-6 2026-07-02 Dmitry V. Levin xlat: update LANDLOCK_ACCESS_NET_* constants. * src/xlat/landlock_ruleset_access_net.in (LANDLOCK_ACCESS_NET_BIND_UDP): New constant introduced by Linux kernel commit v7.2-rc1~91^2~14. (LANDLOCK_ACCESS_NET_CONNECT_SEND_UDP): New constant introduced by Linux kernel commit v7.2-rc1~91^2~13. * tests/landlock_add_rule.c (main): Update expected output. * tests/landlock_create_ruleset.c (main): Likewise. * NEWS: Mention this change. Assisted-by: Claude:claude-opus-4-6 2026-07-02 Dmitry V. Levin xlat: update FS_XFLAG_* constants. * src/xlat/fs_xflags.in (FS_XFLAG_CASEFOLD, FS_XFLAG_CASENONPRESERVING): New constants introduced by Linux kernel commit v7.2-rc1~231^2~1^2~13. * tests/test_fs_xflags.h: Update expected output. * NEWS: Mention this change. Assisted-by: Claude:claude-opus-4-6 2026-07-02 Dmitry V. Levin xlat: update O_* constants. * src/xlat/open_mode_flags.in (O_EMPTYPATH): New constant introduced by Linux kernel commit v7.2-rc1~228^2~4^2~1. * tests/openat.c (main): Add O_EMPTYPATH to the flags[] array. * NEWS: Mention this change. Assisted-by: Claude:claude-opus-4-6 2026-07-02 Dmitry V. Levin xlat: update BPF_* constants. * src/xlat/bpf_map_types.in (BPF_MAP_TYPE_RHASH): New constant introduced by Linux kernel commit v7.2-rc1~142^2~50^2~8. * src/xlat/bpf_attach_type.in (BPF_TRACE_FENTRY_MULTI, BPF_TRACE_FEXIT_MULTI, BPF_TRACE_FSESSION_MULTI): New constants introduced by Linux kernel commit v7.2-rc1~142^2~29^2~19. * src/xlat/bpf_link_create_uprobe_multi_flags.in (BPF_F_UPROBE_MULTI_PATH_FD): New constant introduced by Linux kernel commit v7.2-rc1~142^2~7^2~4. * tests/bpf.c: Update expected output. * NEWS: Mention this change. Assisted-by: Claude:claude-opus-4-6 2026-07-01 Dmitry V. Levin doc/HOWTO_UPDATE_XLAT_AFTER_UAPI.md: document xlat vs decoder commit separation * doc/HOWTO_UPDATE_XLAT_AFTER_UAPI.md: Add guidance on reading kernel commits for netlink attribute data types, separating decoder updates from xlat updates into follow-up commits, and placing test entries in the correct array based on decoder state. Assisted-by: Claude:claude-opus-4-6 2026-07-01 Dmitry V. Levin doc/HOWTO_UPDATE_XLAT_AFTER_UAPI.md: document xlat-to-test lookup. * doc/HOWTO_UPDATE_XLAT_AFTER_UAPI.md: Document how to find the test file with the densest coverage of a given xlat by grepping for all constant names. Assisted-by: Claude:claude-opus-4-6 2026-07-01 Dmitry V. Levin doc/HOWTO_UPDATE_XLAT_AFTER_UAPI.md: document boundary-value test pitfall * doc/HOWTO_UPDATE_XLAT_AFTER_UAPI.md: Add pitfall about boundary-value test entries that pair a "last known" constant with a "first unknown" value: when adding new xlat constants, shift both the numeric data values and expected strings instead of just updating the expected output. Assisted-by: Claude:claude-opus-4-6 2026-07-01 dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> build(deps): bump actions/checkout from 6.0.3 to 7.0.0. Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.3 to 7.0.0. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/df4cb1c069e1874edd31b4311f1884172cec0e10...9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: 7.0.0 dependency-type: direct:production update-type: version-update:semver-major ... 2026-06-30 Dmitry V. Levin tests: fix build of io_uring_register test on ppc64le. * tests/io_uring_register.c (test_IORING_REGISTER_ZCRX_IFQ): Consistently cast struct io_uring_zcrx_ifq_reg.notif_desc to unsigned long long. Resolves: https://github.com/strace/strace/issues/410 Fixes: v7.1-33-g78255b25d "io_uring: update decoding of struct io_uring_zcrx_ifq_reg" 2026-06-29 Dmitry V. Levin io_uring: update decoding of struct io_uring_zcrx_ifq_reg. * bundled/linux/include/uapi/linux/io_uring/zcrx.h: Update to headers_install'ed Linux kernel v7.2-rc1. * src/io_uring.c (print_io_uring_zcrx_ifq_reg): Decode struct io_uring_zcrx_ifq_reg.notif_desc introduced by Linux kernel commit v7.2-rc1~152^2~19. * tests/io_uring_register.c (main): Check it. 2026-06-29 Dmitry V. Levin bundled: update linux UAPI headers to v7.2-rc1. The update of linux/io_uring/zcrx.h is delayed because the change in struct io_uring_zcrx_ifq_reg requires a synchronous update of the header, the parser and the test. * bundled/linux/include/uapi/asm-generic/fcntl.h: Update to headers_install'ed Linux kernel v7.2-rc1. * bundled/linux/include/uapi/linux/btrfs.h: Likewise. * bundled/linux/include/uapi/linux/devlink.h: Likewise. * bundled/linux/include/uapi/linux/ethtool.h: Likewise. * bundled/linux/include/uapi/linux/fs.h: Likewise. * bundled/linux/include/uapi/linux/futex.h: Likewise. * bundled/linux/include/uapi/linux/if_bridge.h: Likewise. * bundled/linux/include/uapi/linux/if_ether.h: Likewise. * bundled/linux/include/uapi/linux/if_link.h: Likewise. * bundled/linux/include/uapi/linux/io_uring/query.h: Likewise. * bundled/linux/include/uapi/linux/landlock.h: Likewise. * bundled/linux/include/uapi/linux/netdev.h: Likewise. * bundled/linux/include/uapi/linux/nl80211.h: Likewise. * bundled/linux/include/uapi/linux/openat2.h: Likewise. * bundled/linux/include/uapi/linux/pkt_sched.h: Likewise. * bundled/linux/include/uapi/linux/rtnetlink.h: Likewise. * bundled/linux/include/uapi/linux/tls.h: Likewise. * bundled/linux/include/uapi/linux/v4l2-controls.h: Likewise. * bundled/linux/include/uapi/linux/version.h: Likewise. * bundled/linux/include/uapi/rdma/ib_user_verbs.h: Likewise. * bundled/linux/arch/alpha/include/uapi/asm/fcntl.h: Likewise. * bundled/linux/arch/arm/include/uapi/asm/fcntl.h: Likewise. * bundled/linux/arch/arm64/include/uapi/asm/fcntl.h: Likewise. * bundled/linux/arch/m68k/include/uapi/asm/fcntl.h: Likewise. * bundled/linux/arch/mips/include/uapi/asm/fcntl.h: Likewise. * bundled/linux/arch/parisc/include/uapi/asm/fcntl.h: Likewise. * bundled/linux/arch/powerpc/include/uapi/asm/fcntl.h: Likewise. * bundled/linux/arch/sparc/include/uapi/asm/fcntl.h: Likewise. 2026-06-27 Dmitry V. Levin doc/README-bundled.md, bundled/README.md: reverse symlink direction. * doc/README-bundled.md: Move from bundled/README.md (was real file, now symlink target). Consolidates reference documentation in doc/. * doc/GLOSSARY.md (bundled headers): Change bundled/README.md to doc/README-bundled.md. * doc/README.md (Subsystem Documentation): Likewise. * bundled/README.md: Change to symlink pointing to ../doc/README-bundled.md. Provides convenient access for developers working in bundled/ directory. Assisted-by: Claude:claude-opus-4-6 2026-06-26 Dmitry V. Levin bundled: update linux UAPI headers to v7.1. Headers updated automatically using update-bundled-headers.sh script. * bundled/linux/include/uapi/linux/bsg.h: Update to headers_install'ed Linux kernel v7.1. * bundled/linux/include/uapi/linux/fs.h: Likewise. * bundled/linux/include/uapi/linux/netfilter/nf_tables.h: Likewise. * bundled/linux/include/uapi/linux/netlink.h: Likewise. * bundled/linux/include/uapi/linux/nsfs.h: Likewise. * bundled/linux/include/uapi/linux/pidfd.h: Likewise. * bundled/linux/include/uapi/linux/pkt_sched.h: Likewise. * bundled/linux/include/uapi/linux/stddef.h: Likewise. * bundled/linux/include/uapi/linux/typelimits.h: Likewise. * bundled/linux/arch/mips/include/uapi/asm/fcntl.h: Likewise. 2026-06-26 Dmitry V. Levin maint: add scripts for updating bundled Linux UAPI headers. * maint/fix-whitespace.sh: New file, a helper script that fixes git whitespace issues (trailing whitespace, space before tab in indent, trailing blank lines at EOF) in the specified files. * maint/update-bundled-headers.sh: New file, a script that automates updating bundled UAPI headers from a checked-out Linux kernel tree by running make headers_install and copying sanitized headers to the bundled/ directory. Assisted-by: Claude:claude-opus-4-6 2026-06-25 Dmitry V. Levin doc: update documentation for print_fields refactoring. * doc/INTERNALS.md (Key Files): Update print_fields.h description, add print_fields.c. * doc/DECODER_API.md (Function-Call Delimiters): Document tprints_fn_begin, tprint_fn_next, and tprint_fn_end printers for call-style decoder output, clarify distinction from tprints_arg_begin and tprint_arg_end. (See Also): Update print_fields.h description, add print_fields.c. Assisted-by: Claude:claude-opus-4-6 2026-06-25 Gabi Falk Colorize call-style decoder output separately from syscall names. * src/color.h (enum color_kind_t): Add COLOR_CALL. * src/color.c (color_keys): Add CALL. (color_seq_table_default): Add CALL entry, matching the default SYSCALL color so the default appearance is unchanged. * src/print_fields.h (COLOR_CALL) [!IN_STRACE]: New macro. * src/print_fields.c (tprints_call_begin): Use COLOR_CALL instead of COLOR_SYSCALL. * doc/strace.1.in: Document the call color key. * NEWS: Mention this change. Assisted-by: Claude:claude-fable-5 2026-06-25 Gabi Falk Introduce separate printers for call-style decoder output. Call-style decoder output like htons(...) or _IOC(...) shares the tprint_arg_* printers with the syscall argument framing, but the upcoming structured output mode treats the two differently. Give it its own tprints_fn_begin, tprint_fn_next, and tprint_fn_end printers, changing only the decoders that emit such output and leaving the syscall argument framing on tprint_arg_*. No change in output. * src/print_fields.c (tprints_fn_begin, tprint_fn_next, tprint_fn_end): New functions. * src/print_fields.h (tprints_fn_begin, tprint_fn_next, tprint_fn_end): Declare. (PRINT_FIELD_NET_PORT): Use tprints_fn_begin and tprint_fn_end instead of tprints_arg_begin and tprint_arg_end. * src/bpf_filter.c (print_bpf_filter_stmt, print_bpf_filter_jump): Use tprints_fn_begin, tprint_fn_next, and tprint_fn_end instead of tprints_arg_begin, tprint_arg_next, and tprint_arg_end. * src/ioctl.c (ioctl_print_code, evdev_decode_number, hiddev_decode_number, ioctl_decode_command_number): Likewise. * src/kd_ioctl.c (kd_kbd_entry): Likewise. * src/net.c (SYS_FUNC(socket)): Likewise. * src/netlink_kobject_uevent.c (PRINT_FIELD_HTONL_X): Likewise. * src/netlink_netfilter.c (decode_netlink_netfilter): Likewise. * src/nlattr.c (decode_nla_xval, decode_nla_flags, decode_nla_be16, decode_nla_be32, decode_nla_be64): Likewise. * src/print_dev_t.c (print_dev_t): Likewise. * src/print_kernel_version.c (print_kernel_version): Likewise. * src/quota.c (print_qcmd): Likewise. * src/rtnl_link.c (decode_ifla_vf_vlan_info): Likewise. * src/rtnl_mdb.c (decode_mdba_mdb_entry_info): Likewise. * src/sockaddr.c (print_inet_addr, print_sockaddr_data_in6, print_sockaddr_data_ipx, print_sll_protocol, print_bluetooth_l2_psm, print_bluetooth_l2_cid, print_sockaddr_data_bt): Likewise. * src/time.c (printclockname): Likewise. * src/v4l2.c (print_pixelformat): Likewise. Assisted-by: Claude:claude-opus-4-8 2026-06-25 Gabi Falk Stop inlining non-trivial print_fields.h printers. Since commit v7.0~32 "Implement optional colorized trace output" these static inline printers expand several copies of tprint_color_seq at each of their thousands of call sites, which grew the .text section of the strace executable (x86_64, gcc -O2) from 1794099 to 2930036 bytes. Move their bodies into the new print_fields.c and only declare them in the header, so they are emitted once; .text shrinks to 1661164 bytes. The tests, which cannot link against strace, get plain colorless copies of the few printers they use in tests/print_fields.c. * src/print_fields.c: New file. (tprint_struct_begin, tprint_struct_next, tprint_struct_end, tprint_union_begin, tprint_union_next, tprint_union_end, tprint_array_begin, tprint_array_next, tprint_array_end, tprint_array_index_begin, tprint_array_index_equal, tprints_arg_begin, tprint_arg_next, tprint_arg_end, tprints_arg_name_unconditionally, tprints_arg_next_name_unconditionally, tprints_arg_name, tprints_arg_next_name, tprint_bitset_begin, tprint_bitset_next, tprint_bitset_end, tprint_comment_begin, tprint_comment_end, tprint_indirect_begin, tprint_indirect_end, tprint_attribute_begin, tprint_attribute_end, tprint_associated_info_begin, tprint_associated_info_end, tprint_more_data_follows, tprint_value_changed, tprint_alternative_value, tprint_unavailable, tprint_flags_or, tprint_newline, tprints_field_name, tprint_sysret_begin, tprints_sysret_next, tprints_sysret_string, tprint_sysret_end): Move here from print_fields.h, with external linkage. * src/print_fields.h: Declare the moved printers instead of defining them. * src/Makefile.am (libstrace_a_SOURCES): Add print_fields.c. * tests/print_fields.c: New file. (tprints_field_name, tprint_array_begin, tprint_array_next, tprint_array_end): New colorless copies for the tests. * tests/Makefile.am (libtests_a_SOURCES): Add print_fields.c. Assisted-by: Claude:claude-fable-5 2026-06-24 Dmitry V. Levin Add AGENTS.md. * AGENTS.md: New file — guidance for AI agents. * CLAUDE.md: New symlink to AGENTS.md. Assisted-by: Claude:claude-opus-4-6 2026-06-24 Dmitry V. Levin doc/GLOSSARY.md: add INTERNALS.md references. * doc/GLOSSARY.md (tcb, sysent): Add INTERNALS.md reference. CONTRIBUTING.md: add a note about AI-assisted contributions. * CONTRIBUTING.md (AI-assisted Contributions): New section. 2026-06-23 Dmitry V. Levin Add bundled/README.md. * bundled/README.md: New file — documentation for bundled Linux UAPI headers. * doc/README.md: Add bundled/README.md entry. * doc/GLOSSARY.md (bundled headers): Add reference to bundled/README.md. Assisted-by: Claude:claude-opus-4-6 2026-06-23 Dmitry V. Levin Add doc/HOWTO_ADD_NETLINK.md. * doc/HOWTO_ADD_NETLINK.md: New file — comprehensive guide to adding netlink protocol family decoders. * doc/README.md: Add HOWTO_ADD_NETLINK.md entry. * doc/INTERNALS.md: Add HOWTO_ADD_NETLINK.md reference. Assisted-by: Claude:claude-opus-4-6 2026-06-23 Dmitry V. Levin Add doc/HOWTO_ADD_IOCTL.md. * doc/HOWTO_ADD_IOCTL.md: New file — comprehensive guide to adding ioctl decoders for device-specific ioctl commands. * doc/README.md: Add HOWTO_ADD_IOCTL.md entry. * doc/DECODER_API.md: Add HOWTO_ADD_IOCTL.md references. * doc/GLOSSARY.md: Add HOWTO_ADD_IOCTL.md reference. * doc/INTERNALS.md: Likewise. * doc/HOWTO_TEST.md: Likewise. Assisted-by: Claude:claude-opus-4-6 2026-06-22 Dmitry V. Levin README-hacking: update. * README-hacking: Expanded section headers, clarified workflows, added cross-references to developer documentation, and reorganized content for better discoverability. Assisted-by: Claude:claude-opus-4-6 2026-06-22 Dmitry V. Levin Add doc/HOWTO_TEST.md. * doc/HOWTO_TEST.md: New file — comprehensive guide to writing, running, and debugging tests in strace. * doc/README.md: Add HOWTO_TEST.md entry. * CONTRIBUTING.md (Testing): Add reference to doc/HOWTO_TEST.md. Assisted-by: Claude:claude-opus-4-6 2026-06-22 Dmitry V. Levin Add doc/INTERNALS.md. * doc/INTERNALS.md: New file — architectural overview of how strace works internally (ptrace, event loop, decoders, syscall dispatch). * doc/README.md: Add INTERNALS.md entry. * doc/DECODER_API.md: Add INTERNALS.md reference. * doc/GLOSSARY.md: Add INTERNALS.md reference. Assisted-by: Claude:claude-opus-4-6 2026-06-21 Dmitry V. Levin Add doc/GLOSSARY.md. * doc/GLOSSARY.md: New file — comprehensive glossary of strace terminology. * doc/README.md: Add GLOSSARY.md entry. * doc/DECODER_API.md: Add GLOSSARY.md references. Assisted-by: Claude:claude-opus-4-6 2026-06-21 Dmitry V. Levin Add doc/DECODER_API.md. * doc/DECODER_API.md: New file — comprehensive API reference for syscall and ioctl decoder writers. * doc/README.md: Add DECODER_API.md entry. Assisted-by: Claude:claude-opus-4-6 2026-06-21 Dmitry V. Levin Add doc/README.md. * doc/README.md: New file — comprehensive developer documentation index. * README.md (Documentation): Add a reference to doc/README.md. * CONTRIBUTING.md (Documentation): Add a reference to doc/README.md. Assisted-by: Claude:claude-opus-4-6 2026-06-18 Dmitry V. Levin Add SECURITY.md. * SECURITY.md: New file. * README.md (Documentation): Refer to it. Assisted-by: Claude:claude-sonnet-4-6 2026-06-18 Dmitry V. Levin Add CONTRIBUTING.md. * CONTRIBUTING.md: New file based on the information downloaded from https://strace.io/wiki/NewContributorGuide page. * README.md (Documentation): Refer to CONTRIBUTING.md instead of the wiki page. Assisted-by: Claude:claude-sonnet-4-6 2026-06-18 Dmitry V. Levin README.md: add a reference to the manual page. * README.md (Documentation): New section. Assisted-by: Claude:claude-sonnet-4-6 2026-06-18 Dmitry V. Levin doc/README-mpers.md: add macro reference and fix inconsistencies. * doc/README-mpers.md (Macro Reference): New section documenting MPERS macros (DEF_MPERS_TYPE, MPERS_DEFS, MPERS_PRINTER_DECL, MPERS_FUNC_NAME). Provide technical details about what each macro expands to in different build contexts. (How to Write MPERS-Aware Code): Reorder steps to match the actual example code: DEF_MPERS_TYPE before header includes and typedef. Add explicit step 1 for including defs.h. Simplify step 6 about calling MPERS functions. Assisted-by: Claude:claude-sonnet-4-6 2026-06-17 Dmitry V. Levin doc/README-xlat.md, src/xlat/README.md: reverse symlink direction. * doc/README-xlat.md: Move from src/xlat/README.md (was symlink, now real file). Consolidates reference documentation in doc/. * doc/COMMIT-MESSAGES.md (Related Documentation): Change src/xlat/README.md to doc/README-xlat.md. * doc/gen_xlat_defs.sh.1 (SEE ALSO): Change src/xlat/README.md to doc/README-xlat.md. * src/xlat/README.md: Change to symlink pointing to ../../doc/README-xlat.md. Provides convenient access for developers working in src/xlat/ directory. Assisted-by: Claude:claude-sonnet-4-6 2026-06-17 Dmitry V. Levin INSTALL-git.md: update. * INSTALL-git.md (Prerequisites): New section documenting bootstrap requirements with package installation commands for Debian/Ubuntu and Fedora/RHEL. (Running bootstrap): New section. (Next Steps): New section with quick-start example and pointers to detailed build information. Assisted-by: Claude:claude-sonnet-4-6 2026-06-17 Dmitry V. Levin dist/INSTALL: update. * dist/INSTALL (BUILD REQUIREMENTS): Add minimal build requirements section. (Stack unwinding): Add --with-libdw option. Add Library requirements. (SELinux context support, Bluetooth ioctl decoder): New sections. (TESTING): Document optional test dependencies and environment variables. (Distribution tarball): Document packaging requirements. Assisted-by: Claude:claude-sonnet-4-6 2026-06-17 Dmitry V. Levin doc/README-mpers: rename and expand. Rename doc/README-mpers to doc/README-mpers.md and convert to markdown format. * doc/README-mpers: Rename to ... * doc/README-mpers.md: ... this file. (What Is MPERS): New section explaining multi-personality support concept and providing x86_64 as concrete example. (Which Architectures Use MPERS): New section with architecture table and SUPPORTED_PERSONALITIES detection instructions. (Build Pipeline): New section documenting mpers.sh, mpers.awk, and the multi-stage build process. (Which Files Need MPERS): New section listing structure types that vary between personalities. (How to Write MPERS-Aware Code): Expanded from original content with worked example. (Example: print_timespec.c): New section. Assisted-by: Claude:claude-sonnet-4-6 2026-06-17 Baruch Siach macros: fix assert message typo. * src/macros.h (CHECK_TYPE_SIZE, CHECK_IOCTL_SIZE): Fix typo --enabled-bundled -> --enable-bundled. 2026-06-16 Dmitry V. Levin README: reflect GitHub as primary development platform. * README.md: Update to reflect that development primarily takes place on GitHub with issues and pull requests, with the mailing list as an alternative for discussions and patch submissions. * dist/README: Likewise. CREDITS.in: add current maintainers section. * CREDITS.in: Add "Current maintainers of strace" section at the beginning, making it easier to find current maintainer contact information. Post-release administrivia. * NEWS: Add a header line for the next release. * debian/changelog.in: Add a changelog entry for 7.1-1. * strace.spec.in: Likewise.