2025-01-23  Dmitry V. Levin  <ldv@strace.io>

	Prepare for 6.13 release.
	* NEWS: Update for 6.13 release.

2025-01-22  Dmitry V. Levin  <ldv@strace.io>

	Update .mailmap.
	* .mailmap: Add both email addresses of dependabot to avoid duplication
	in CREDITS file.

	Update copyright headers.
	Headers updated automatically using maint/update_copyright_years.sh
	script.

2025-01-22  Dmitry V. Levin  <ldv@strace.io>

	Fix preprocessor indentation.
	Indent the C preprocessor directives to reflect their nesting
	using the following script:

	$ for f in tests/k_sockopt.[hc]; do
		cppi < "$f" > "$f".cppi; mv "$f".cppi "$f"
	done

2025-01-22  Dmitry V. Levin  <ldv@strace.io>

	Update copyright year number range.
	* COPYING: Update copyright year number range.
	* tests/COPYING: Likewise.
	* debian/copyright: Likewise.

	Fix a few typos found using codespell tool.
	* src/s390.c: Replace "valud" with "valid".
	* src/secontext.c: Replace "wihch" with "which".
	* tests/kill_child.c: Replace "unitialised" with "uninitialised".
	* tests/strace--tips.test: Replace "accross" with "across".

	tests: check decoding of removexattrat syscall.
	* tests/removexattrat.c: New file.
	* tests/removexattrat-P.c: Likewise.
	* tests/removexattrat-y.c: Likewise.
	* tests/removexattrat-yy.c: Likewise.
	* tests/pure_executables.list: Add removexattrat, removexattrat-P,
	removexattrat-y, and removexattrat-yy.
	* tests/.gitignore: Likewise.
	* tests/gen_tests.in (removexattrat, removexattrat-P, removexattrat-y,
	removexattrat-yy): New tests.

2025-01-22  Dmitry V. Levin  <ldv@strace.io>

	Implement decoding of removexattrat syscall.
	This new syscall was introduced by Linux kernel commit v6.13-rc1~217.

	* src/linux/generic/syscallent-common.h [BASE_NR + 466]: Wire up
	removexattrat.
	* src/xattr.c (SYS_FUNC(removexattrat)): New function.
	* src/pathtrace.c (pathtrace_match_set): Handle SEN_removexattrat.
	* NEWS: Mention this change.

2025-01-22  Dmitry V. Levin  <ldv@strace.io>

	tests: check decoding of listxattrat syscall.
	* tests/listxattrat.c: New file.
	* tests/listxattrat-P.c: Likewise.
	* tests/listxattrat-y.c: Likewise.
	* tests/listxattrat-yy.c: Likewise.
	* tests/pure_executables.list: Add listxattrat, listxattrat-P,
	listxattrat-y, and listxattrat-yy.
	* tests/.gitignore: Likewise.
	* tests/gen_tests.in (listxattrat, listxattrat-P, listxattrat-y,
	listxattrat-yy): New tests.

2025-01-22  Dmitry V. Levin  <ldv@strace.io>

	Implement decoding of listxattrat syscall.
	This new syscall was introduced by Linux kernel commit v6.13-rc1~217.

	* src/linux/generic/syscallent-common.h [BASE_NR + 465]: Wire up
	listxattrat.
	* src/xattr.c (SYS_FUNC(listxattrat)): New function.
	* src/pathtrace.c (pathtrace_match_set): Handle SEN_listxattrat.
	* NEWS: Mention this change.

2025-01-22  Dmitry V. Levin  <ldv@strace.io>

	tests: check decoding of getxattrat syscall.
	* tests/getxattrat.c: New file.
	* tests/getxattrat-P.c: Likewise.
	* tests/getxattrat-y.c: Likewise.
	* tests/getxattrat-yy.c: Likewise.
	* tests/pure_executables.set: Add getxattrat, getxattrat-P,
	getxattrat-y, and getxattrat-yy.
	* tests/.gitignore: Likewise.
	* tests/gen_tests.in (getxattrat, getxattrat-P, getxattrat-y,
	getxattrat-yy): New tests.

2025-01-22  Dmitry V. Levin  <ldv@strace.io>

	Implement decoding of getxattrat syscall.
	This new syscall was introduced by Linux kernel commit v6.13-rc1~217.

	* src/linux/generic/syscallent-common.h [BASE_NR + 464]: Wire up
	getxattrat.
	* src/xattr.c (SYS_FUNC(getxattrat)): New function.
	* src/pathtrace.c (pathtrace_match_set): Handle SEN_getxattrat.
	* NEWS: Mention this change.

2025-01-22  Dmitry V. Levin  <ldv@strace.io>

	tests: check decoding of setxattrat syscall.
	* tests/setxattrat.c: New file.
	* tests/setxattrat-P.c: Likewise.
	* tests/setxattrat-y.c: Likewise.
	* tests/setxattrat-yy.c: Likewise.
	* tests/pure_executables.set: Add setxattrat, setxattrat-P,
	setxattrat-y, and setxattrat-yy.
	* tests/.gitignore: Likewise.
	* tests/gen_tests.in (setxattrat, setxattrat-P, setxattrat-y,
	setxattrat-yy): New tests.

2025-01-22  Dmitry V. Levin  <ldv@strace.io>

	Implement decoding of setxattrat syscall.
	This new syscall was introduced by Linux kernel commit v6.13-rc1~217.

	* src/linux/generic/syscallent-common.h [BASE_NR + 463]: Wire up
	setxattrat.
	* src/xlat/xattrat_flags.in: New file.
	* src/xattr.c: Include <linux/fcntl.h> and "xlat/xattrat_flags.h".
	(decode_dirfd_pathname_flags, decode_dirfd_pathname_flags_name,
	umove_xattr_args_or_printaddr, print_xattr_args, SYS_FUNC(setxattrat)):
	New functions.
	* src/pathtrace.c (pathtrace_match_set): Handle SEN_setxattrat.
	* NEWS: Mention this change.

2025-01-22  Dmitry V. Levin  <ldv@strace.io>

	xattr: fix decoding of getxattr with zero size argument.
	* src/xattr.c (decode_getxattr_without_path): When the size argument is
	zero, do not print xattr value and decode the whole syscall on entering.
	* tests/xattr.c (main): Check it.

	xattr: refactor decoders for better code re-use.
	* src/xattr.c (print_xattr_val): Remove "insize" argument,
	do not print it.
	(decode_setxattr_without_path): New function.
	(SYS_FUNC(setxattr), SYS_FUNC(fsetxattr)): Use it.
	(decode_getxattr_without_path): New function.
	(SYS_FUNC(getxattr), SYS_FUNC(fgetxattr)): Use it.

2025-01-22  Dmitry V. Levin  <ldv@strace.io>

	xattr: Use <linux/xattr.h> instead of <sys/xattr.h>
	Now that linux/xattr.h is bundled, use it instead of potentially missing
	sys/xattr.h.

	* src/xattr.c: Include <linux/xattr.h> instead of <sys/xattr.h>
	* src/xlat/xattrflags.in: Add #unconditional, remove fallback
	definitions.

2025-01-22  Dmitry V. Levin  <ldv@strace.io>

	bundled: add uapi/linux/xattr.h.
	* bundled/linux/include/uapi/linux/xattr.h: New file, imported from
	headers_install'ed Linux kernel v6.13-rc1.
	* bundled/Makefile.am (EXTRA_DIST): Add
	linux/include/uapi/linux/xattr.h.

	tests: extend xattr check.
	* tests/xattr.c (main): Update to check with a real attribute name.

2025-01-21  Andrea Bolognani  <abologna@redhat.com>

	tests: Reduce expected precision for relative-timestamps tests.
	Currently we have a very small amount of tolerance around the
	expected 1.0s sleep time, specifically 0.1s in either direction.

	If the machine is not very fast (e.g. StarFive VisionFive 2, a
	very popular and reasonably performant riscv64 board that's now
	a couple of years old) and is heavily loaded (e.g. because other
	builds are running at the same time or the test suite has been
	executed with 'make -j check'), then the test might fail because
	of an additional delay that's as small as 0.1s.

	Since the test is really intended to ensure that the timestamps
	are displayed using the requested precision, reporting a failure
	in this case is not very useful. Instead, we should tolerate
	delays of up to 1.0s as long as the timestamps are printed out
	using the expected format.

2025-01-17  Dmitry V. Levin  <ldv@strace.io>

	tests: disable -Werror for useless warnings generated by gcc-15.
	Apparently, gcc-15 started to generate tons of useless warnings, some of
	them are also false positives.  For example, the warnings generated by
	-Wstringop-overflow are false positives, and the warnings generated by
	-Wunterminated-string-initialization are just useless:

	  msg_control.c: In function ‘test_sol_socket’:
	  msg_control.c:662:38: error: initializer-string for array of ‘char’ is too long [-Werror=unterminated-string-initialization]
	    662 |         static const char text[16] = "0123456789abcdef";
	        |                                      ^~~~~~~~~~~~~~~~~~
	  msg_control.c: In function ‘main’:
	  msg_control.c:380:9: error: writing 16 bytes into a region of size 4 [-Werror=stringop-overflow=]
	    380 |         memcpy(CMSG_DATA(cmsg), &tv, sizeof(tv));
	        |         ^
	  In file included from /usr/include/sys/socket.h:33,
	                   from msg_control.c:18:
	  /usr/include/bits/socket.h:290:9: note: destination object ‘cmsg_level’ of size 4
	    290 |     int cmsg_level;             /* Originating protocol.  */
	        |         ^~~~~~~~~~
	  msg_control.c:427:9: error: writing 16 bytes into a region of size 4 [-Werror=stringop-overflow=]
	    427 |         memcpy(CMSG_DATA(cmsg), &ts, sizeof(ts));
	        |         ^
	  /usr/include/bits/socket.h:290:9: note: destination object ‘cmsg_level’ of size 4
	    290 |     int cmsg_level;             /* Originating protocol.  */
	        |         ^~~~~~~~~~
	  net-sockaddr.c: In function ‘check_ipx’:
	  net-sockaddr.c:286:30: error: initializer-string for array of ‘unsigned char’ is too long [-Werror=unterminated-string-initialization]
	    286 |                 .sipx_node = "ABCDEF",
	        |                              ^~~~~~~~
	  net-sockaddr.c: In function ‘check_x25’:
	  net-sockaddr.c:464:32: error: initializer-string for array of ‘char’ is too long [-Werror=unterminated-string-initialization]
	    464 |                 .sx25_addr = { "0123456789abcdef" },
	        |                                ^~~~~~~~~~~~~~~~~~
	  net-sockaddr.c: In function ‘check_ll’:
	  net-sockaddr.c:547:29: error: initializer-string for array of ‘unsigned char’ is too long [-Werror=unterminated-string-initialization]
	    547 |                 .sll_addr = "abcdefgh"
	        |                             ^~~~~~~~~~
	  net-sockaddr.c: In function ‘check_sco’:
	  net-sockaddr.c:638:33: error: initializer-string for array of ‘unsigned char’ is too long [-Werror=unterminated-string-initialization]
	    638 |                 .sco_bdaddr.b = "abcdef"
	        |                                 ^~~~~~~~
	  net-sockaddr.c: In function ‘check_rc’:
	  net-sockaddr.c:658:32: error: initializer-string for array of ‘unsigned char’ is too long [-Werror=unterminated-string-initialization]
	    658 |                 .rc_bdaddr.b = "abcdef",
	        |                                ^~~~~~~~
	  net-sockaddr.c: In function ‘check_l2’:
	  net-sockaddr.c:682:32: error: initializer-string for array of ‘unsigned char’ is too long [-Werror=unterminated-string-initialization]
	    682 |                 .l2_bdaddr.b = "abcdef",
	        |                                ^~~~~~~~
	  netlink_protocol.c: In function ‘send_query’:
	  netlink_protocol.c:39:26: error: initializer-string for array of ‘char’ is too long [-Werror=unterminated-string-initialization]
	     39 |                 .magic = "abcd"
	        |                          ^~~~~~
	  nlattr_ifla_port.c: In function ‘main’:
	  nlattr_ifla_port.c:40:32: error: initializer-string for array of ‘unsigned char’ is too long [-Werror=unterminated-string-initialization]
	     40 |                 .vsi_type_id = "abc",
	        |                                ^~~~~
	  nlattr_ndmsg.c: In function ‘main’:
	  nlattr_ndmsg.c:123:39: error: initializer-string for array of ‘unsigned char’ is too long [-Werror=unterminated-string-initialization]
	    123 |         static const uint8_t mac[6] = "\xf8\xc2\x49\x13\x57\xbd";
	        |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
	  nlattr_inet_diag_msg.c:170:13: error: initializer-string for array of ‘unsigned char’ is too long [-Werror=unterminated-string-initialization]
	    170 |             "OH HAI THAR\0\1\2\3\4\5\6\7\3779876543210abcdefghijklmnopqrstuv"
	        |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	  pread64-pwrite64.c: In function ‘dump_str’:
	  pread64-pwrite64.c:21:38: error: initializer-string for array of ‘char’ is too long [-Werror=unterminated-string-initialization]
	     21 |         static const char dots[16] = "................";
	        |                                      ^~~~~~~~~~~~~~~~~~
	  recv-MSG_TRUNC.c: In function ‘main’:
	  recv-MSG_TRUNC.c:34:37: error: initializer-string for array of ‘char’ is too long [-Werror=unterminated-string-initialization]
	     34 |         static const char sbuf[2] = "AB";
	        |                                     ^~~~
	  read-write.c: In function ‘dump_str_ex’:
	  read-write.c:23:17: error: initializer-string for array of ‘char’ is too long [-Werror=unterminated-string-initialization]
	     23 |                 "................................"
	        |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	  recvfrom-MSG_TRUNC.c: In function ‘main’:
	  recvfrom-MSG_TRUNC.c:17:37: error: initializer-string for array of ‘char’ is too long [-Werror=unterminated-string-initialization]
	     17 |         static const char sbuf[2] = "AB";
	        |                                     ^~~~
	  sockaddr_xlat.c: In function ‘check_ll’:
	  sockaddr_xlat.c:199:29: error: initializer-string for array of ‘unsigned char’ is too long [-Werror=unterminated-string-initialization]
	    199 |                 .sll_addr = "abcdefgh"
	        |                             ^~~~~~~~~~
	  sockaddr_xlat.c: In function ‘check_sco’:
	  sockaddr_xlat.c:349:33: error: initializer-string for array of ‘unsigned char’ is too long [-Werror=unterminated-string-initialization]
	    349 |                 .sco_bdaddr.b = "abcdef"
	        |                                 ^~~~~~~~
	  sockaddr_xlat.c: In function ‘check_rc’:
	  sockaddr_xlat.c:387:32: error: initializer-string for array of ‘unsigned char’ is too long [-Werror=unterminated-string-initialization]
	    387 |                 .rc_bdaddr.b = "abcdef",
	        |                                ^~~~~~~~
	  sockaddr_xlat.c: In function ‘check_rxrpc’:
	  sockaddr_xlat.c:507:49: error: initializer-string for array of ‘unsigned char’ is too long [-Werror=unterminated-string-initialization]
	    507 |                                    { .s6_addr = "OH HAI THAR!\0\0\0\xf" } } } },
	        |                                                 ^~~~~~~~~~~~~~~~~~~~~~~
	  sockaddr_xlat.c:519:49: error: initializer-string for array of ‘unsigned char’ is too long [-Werror=unterminated-string-initialization]
	    519 |                                    { .s6_addr = "OH HAI THAR!\0\0\0\xf" } } } },
	        |                                                 ^~~~~~~~~~~~~~~~~~~~~~~
	  sockaddr_xlat.c: In function ‘check_ieee802154’:
	  sockaddr_xlat.c:626:33: error: initializer-string for array of ‘unsigned char’ is too long [-Werror=unterminated-string-initialization]
	    626 |                     { .hwaddr = "\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff" } } },
	        |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	  sockaddr_xlat.c: In function ‘check_alg’:
	  sockaddr_xlat.c:736:42: error: initializer-string for array of ‘unsigned char’ is too long [-Werror=unterminated-string-initialization]
	    736 |                 { { AF_ALG, .salg_type = "OH HAI\1\n\377\\\"\0\t\v",
	        |                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~

	Since nobody is going to waste their time before the release by
	silencing new useless warnings in the code, disable -Werror
	for these warnings until gcc is fixed.

	* m4/st_warn_cflags.m4 (st_WARN_CFLAGS): Add
	-Wno-error=unterminated-string-initialization and
	-Wno-error=stringop-overflow to TEST_WARN_CFLAGS.
	* m4/mpers.m4 (st_MPERS): Wrap TEST_WARN_CFLAGS using pushdef/popdef.
	* m4/ax_prog_cc_for_build.m4 (AC_PROG_CC_FOR_BUILD): Likewise.
	* tests/Makefile.am (AM_CFLAGS): $(TEST_WARN_CFLAGS).

2025-01-16  Dmitry V. Levin  <ldv@strace.io>

	ptrace_syscall_info: extend runtime test.
	On architectures that have 64-bit syscall arguments, check that the
	syscall arguments returned by PTRACE_GET_SYSCALL_INFO are not truncated
	in the kernel.

	At the same time, in PTRACE_GET_SYSCALL_INFO tests on architectures that
	have 32-bit syscall arguments, ignore extra bits in syscall arguments
	returned by PTRACE_GET_SYSCALL_INFO: there is no need to be more picky
	in the tests than in get_syscall_args() where these arguments are
	assigned to tcp->u_arg[] elements of type kernel_ulong_t.

	* src/ptrace_syscall_info.c (test_ptrace_get_syscall_info): Change the
	type of arguments passed to syscall() from unsigned long to
	kernel_ulong_t.  Change the constants used for this purpose
	to those that don't fit into 32-bit integers.  Cast info.entry.args[]
	elements to kernel_ulong_t in checks.
	* tests/ptrace_syscall_info.c: Likewise.

2025-01-16  Dmitry V. Levin  <ldv@strace.io>

	mips: fix compilation warning.
	Fix the following compilation warning observable in some mips
	environments:

	In file included from kern_features.c:13:
	../src/linux/mips/raw_syscall.h:15:6: warning: "__mips_isa_rev" is not defined, evaluates to 0 [-Wundef]
	   15 | # if __mips_isa_rev >= 6
	      |      ^~~~~~~~~~~~~~
	In file included from inject-nf.c:17:
	../src/linux/mips/raw_syscall.h:15:6: warning: "__mips_isa_rev" is not defined, evaluates to 0 [-Wundef]
	   15 | # if __mips_isa_rev >= 6
	      |      ^~~~~~~~~~~~~~

	* src/linux/mips/raw_syscall.h: Make sure __mips_isa_rev is defined
	before using it in comparisons.

2025-01-15  Dmitry V. Levin  <ldv@strace.io>

	mips n32: fix compilation warnings.
	Fix the following compilation warnings introduced as a side effect of the recent
	change of kernel_ulong_t type on mips n32:

	  linux/mips/get_scno.c:16:35: warning: format '%ld' expects argument of type 'long int', but argument 2 has type 'kernel_ulong_t' {aka 'long long unsigned int'} [-Wformat=]
	  ftruncate.c:24:36: warning: overflow in conversion from 'kernel_ulong_t' {aka 'long long unsigned int'} to '__off_t' {aka 'long int'} changes value from '1004211376030073054' to '195936478' [-Woverflow]
	  lseek.c:27:37: warning: overflow in conversion from 'kernel_ulong_t' {aka 'long long unsigned int'} to '__off_t' {aka 'long int'} changes value from '18072662652281011951' to '-559038737' [-Woverflow]
	  truncate.c:26:38: warning: overflow in conversion from 'kernel_ulong_t' {aka 'long long unsigned int'} to '__off_t' {aka 'long int'} changes value from '1004211376030073054' to '195936478' [-Woverflow]

	* src/linux/mips/get_scno.c (arch_get_scno): Print tcp->scno as
	an unsigned long long type.
	* tests/Makefile.am (ftruncate_CPPFLAGS, lseek_CPPFLAGS,
	truncate_CPPFLAGS): Add -D_FILE_OFFSET_BITS=64.

2025-01-15  Dmitry V. Levin  <ldv@strace.io>

	kernel_types.h: fix definitions for MIPS n32.
	MIPS n32 is the only ILP32 architecture supported by the kernel that
	has 64-bit syscall arguments and at the same time 32-bit definitions
	of __kernel_long_t and __kernel_ulong_t types.

	Fix that inconsistency by making sure our kernel_long_t and
	kernel_ulong_t are 64-bit types on MIPS n32.

	* src/kernel_types.h (kernel_long_t, kernel_ulong_t): Prioritize
	[LINUX_MIPSN32] over [HAVE___KERNEL_LONG_T && HAVE___KERNEL_ULONG_T].

2025-01-14  Gleb Fotengauer-Malinovskiy  <glebfm@altlinux.org>

	Update ioctl entries from linux v6.13.
	* src/linux/32/ioctls_inc_align16.h: Update from linux v6.13-rc7 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.
	* src/linux/s390/ioctls_arch0.h: Likewise.
	* src/linux/s390x/ioctls_arch0.h: Likewise.
	* NEWS: Mention this.

2024-12-15  Dmitry V. Levin  <ldv@strace.io>

	xlat: update IORING_* constants.
	* src/xlat/uring_clone_buffers_flags.in (IORING_REGISTER_DST_REPLACE):
	New constant introduced by Linux kernel commit v6.13-rc1~11^2~37.
	* src/xlat/uring_enter_flags.in (IORING_ENTER_EXT_ARG_REG):
	New constant introduced by Linux kernel commit v6.13-rc1~11^2~54.
	* src/xlat/uring_register_opcodes.in (IORING_REGISTER_SEND_MSG_RING):
	New constant introduced by Linux kernel commit v6.13-rc1~11^2~81.
	(IORING_REGISTER_RESIZE_RINGS): New constant introduced by Linux kernel
	commit v6.13-rc1~11^2~58.
	(IORING_REGISTER_MEM_REGION): New constant introduced by Linux kernel
	commit v6.13-rc1~11^2~12.
	* src/xlat/uring_setup_flags.in (IORING_SETUP_HYBRID_IOPOLL):
	New constant introduced by Linux kernel commit v6.13-rc1~11^2~36.
	* tests/io_uring_enter.c (main): Update expected output.
	* tests/io_uring_register.c (main): Likewise.
	* tests/io_uring_setup.c (main): Likewise.
	* NEWS: Mention this change.

2024-12-14  Dmitry V. Levin  <ldv@strace.io>

	rtnl_link: decode IFLA_MCTP_PHYS_BINDING attribute.
	* src/xlat/rtnl_ifla_af_spec_mctp_attrs.in (IFLA_MCTP_PHYS_BINDING): New
	constant introduced by Linux kernel commit v6.13-rc1~135^2~101.
	* src/rtnl_link.c (ifla_mctp_nla_decoders): Add IFLA_MCTP_PHYS_BINDING.
	* tests/nlattr_ifla_af_spec.c (main): Check it.
	* tests/test_nlattr.h (check_x8_nlattr): New function defined using
	DEF_NLATTR_INTEGER_CHECK_ macro.
	* NEWS: Mention this change.

2024-12-13  Dmitry V. Levin  <ldv@strace.io>

	xlat: update AT_* constants.
	* src/xlat/name_to_handle_at_flags.in (AT_HANDLE_MNT_ID_UNIQUE): New
	constant introduced by Linux kernel commit v6.12-rc1~215^2~3^2.
	(AT_HANDLE_CONNECTABLE): New constant introduced by Linux kernel
	commit v6.13-rc1~74^2^2~1.
	* tests/file_handle.c: Update expected output.
	* NEWS: Mention this change.

2024-12-12  Dmitry V. Levin  <ldv@strace.io>

	xlat: update FAN_* constants.
	* src/xlat/fan_init_flags.in (FAN_REPORT_FD_ERROR): New constant
	introduced by Linux kernel commit v6.13-rc1~130^2~2.
	* tests/fanotify_init.c (main): Update expected output.
	* NEWS: Mention this change.

2024-12-11  Dmitry V. Levin  <ldv@strace.io>

	xlat: update NT_* constants.
	* src/xlat/nt_descriptor_types.in (NT_ARM_GCS): New constant
	introduced by Linux kernel commit v6.13-rc1~15^2~5^2~16.
	(NT_RISCV_TAGGED_ADDR_CTRL): New constant introduced by Linux kernel
	commit v6.13-rc1~56^2~3^2~4.
	* NEWS: Mention this change.

2024-12-10  Dmitry V. Levin  <ldv@strace.io>

	netlink_crypto: decode CRYPTOCFGA_REPORT_SIG attribute.
	* src/xlat/crypto_nl_attrs.in (CRYPTOCFGA_REPORT_SIG): New constant
	introduced by Linux kernel commit v6.13-rc1~196^2~110.
	* src/netlink_crypto.c (crypto_user_alg_nla_decoders): Add
	CRYPTOCFGA_REPORT_SIG.
	* NEWS: Mention this change.

2024-12-09  Dmitry V. Levin  <ldv@strace.io>

	xlat: update BPF_* constants.
	* src/xlat/bpf_attach_type.in (BPF_TRACE_UPROBE_SESSION): New constant
	introduced by Linux kernel commit v6.13-rc1~136^2~23^2~10.
	* tests/bpf.c (BPF_PROG_QUERY_checks): Update expected output.
	* NEWS: Mention this change.

2024-12-08  Dmitry V. Levin  <ldv@strace.io>

	xlat: update SCM_* constants.
	* src/xlat/scmvals.in (SCM_TS_OPT_ID): New constant introduced
	by Linux kernel commit v6.13-rc1~135^2~421^2~2.
	* NEWS: Mention this change.

2024-12-07  Dmitry V. Levin  <ldv@strace.io>

	xlat: update MADV_* constants.
	* src/xlat/madvise_cmds.in (MADV_GUARD_INSTALL, MADV_GUARD_REMOVE): New
	constants introduced by Linux kernel commit v6.13-rc1~99^2~42.
	* tests/madvise.c (main): Update.
	* NEWS: Mention this change.

2024-12-04  Andrea Bolognani  <abologna@redhat.com>

	tests: Skip legacy_syscall_info on riscv64 with kernel 6.11+
	Kernel commit 61119394631f219e ("riscv: entry: always initialize
	regs->a0 to -ENOSYS") made the legacy API unusable for us, which
	means that the test always fails when using a recent kernel.

	Closes: https://github.com/strace/strace/issues/315

2024-12-02  Dmitry V. Levin  <ldv@strace.io>

	Update decoding of struct perf_event_attr.
	* bundled/linux/include/uapi/linux/perf_event.h: Update to
	headers_install'ed Linux kernel v6.13-rc1.
	* src/perf_event_struct.h (struct perf_event_attr): Add
	aux_start_paused, aux_pause, and aux_resume fields introduced
	by Linux kernel commit v6.13-rc1~179^2~9, update __reserved_3 field.
	* src/perf.c (print_perf_event_attr): Print them.
	* tests/perf_event_open.c (print_event_attr): Check it.
	* NEWS: Mention this change.

	Update decoding of struct io_uring_clone_buffers and struct io_uring_napi
	* bundled/linux/include/uapi/linux/io_uring.h: Update to
	headers_install'ed Linux kernel v6.13-rc1.
	* src/xlat/uring_napi_ops.in: New file.
	* src/xlat/uring_napi_tracking_strategies.in: Likewise.
	* src/io_uring.c: Include "xlat/uring_napi_ops.h" and
	"xlat/uring_napi_tracking_strategies.h".
	(print_io_uring_clone_buffers): Print src_off, dst_off, and nr members
	of struct io_uring_clone_buffers introduced by Linux kernel commit
	v6.13-rc1~11^2~38.
	(print_io_uring_napi): Print opcode and op_param members of
	struct io_uring_napi introduced by Linux kernel commit
	v6.13-rc1~11^2~24.
	* tests/io_uring_register.c (main): Check it.
	* NEWS: Mention this change.

2024-12-02  Dmitry V. Levin  <ldv@strace.io>

	bundled: update linux UAPI headers to v6.13-rc1.
	The update of linux/io_uring.h is delayed because it has to be updated
	along with decoders of struct io_uring_clone_buffers and
	struct io_uring_napi.

	The update of linux/perf_event.h is delayed because it has to be updated
	along with the decoder of struct perf_event_attr.

	* bundled/linux/include/uapi/linux/btrfs.h: Update to
	headers_install'ed Linux kernel v6.13-rc1.
	* bundled/linux/include/uapi/linux/cryptouser.h: Likewise.
	* bundled/linux/include/uapi/linux/ethtool.h: Likewise.
	* bundled/linux/include/uapi/linux/fcntl.h: Likewise.
	* bundled/linux/include/uapi/linux/if_link.h: Likewise.
	* bundled/linux/include/uapi/linux/mount.h: Likewise.
	* bundled/linux/include/uapi/linux/netdev.h: Likewise.
	* bundled/linux/include/uapi/linux/netfilter/nf_tables.h: Likewise.
	* bundled/linux/include/uapi/linux/nfc.h: Likewise.
	* bundled/linux/include/uapi/linux/nl80211.h: Likewise.
	* bundled/linux/include/uapi/linux/pkt_sched.h: Likewise.
	* bundled/linux/include/uapi/linux/prctl.h: Likewise.
	* bundled/linux/include/uapi/linux/rtnetlink.h: Likewise.
	* bundled/linux/include/uapi/linux/thermal.h: Likewise.
	* bundled/linux/include/uapi/linux/types.h: Likewise.
	* bundled/linux/include/uapi/linux/version.h: Likewise.
	* bundled/linux/include/uapi/linux/videodev2.h: Likewise.

2024-12-01  dependabot[bot]  <49699333+dependabot[bot]@users.noreply.github.com>

	build(deps): bump codecov/codecov-action from 4 to 5.
	Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4 to 5.
	- [Release notes](https://github.com/codecov/codecov-action/releases)
	- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
	- [Commits](https://github.com/codecov/codecov-action/compare/v4...v5)

	---
	updated-dependencies:
	- dependency-name: codecov/codecov-action
	  dependency-type: direct:production
	  update-type: version-update:semver-major
	...

2024-12-01  Dmitry V. Levin  <ldv@strace.io>

	.github: update codecov-action arguments.
	Starting with v5, codecov/codecov-action doesn't recognize "plugin"
	argument.

	* .github/workflows/ci.yml (coverage): Replace codecov/codecov-action
	"plugin" argument with "plugins".

2024-11-24  Dmitry V. Levin  <ldv@strace.io>

	epoll: do not print struct epoll_event.data as a union.
	epoll_data_t is a type provided by sys/epoll.h from libc headers,
	linux/eventpoll.h from linux UAPI just uses __u64 instead.

	Apparently, on Android sys/epoll.h does not define epoll_data_t, instead,
	it relies on a patched linux/eventpoll.h to provide the definition,
	so the whole thing breaks there when the bundled edition of
	linux/eventpoll.h is used.

	Workaround this issue by switching to use linux/eventpoll.h instead.

	* src/epoll.c: Include <linux/eventpoll.h> instead of <sys/epoll.h>.
	(print_epoll_data): Remove.
	(print_epoll_event): Print struct epoll_event.data as a hexadecimal number.
	* tests/epoll_pwait.c: Include <linux/eventpoll.h> instead of <sys/epoll.h>.
	* tests/epoll_pwait2.c: Likewise.
	* tests/epoll_wait.c: Likewise.
	* tests/epoll_ctl.c: Likewise.
	(main): Print struct epoll_event.data as a hexadecimal number.

	Resolves: https://github.com/strace/strace/issues/326

2024-11-20  Dmitry V. Levin  <ldv@strace.io>

	tests/epoll_pwait2: move opening of /dev/full to gen_tests.
	* tests/epoll_pwait2.c: Do not include <fcntl.h>.
	(FD9_PATH): Add fallback definition.
	(DECODE_FDS): Remove fallback definition.
	(main): Do not open /dev/full, use FD9_PATH and descriptor number 9.
	* tests/epoll_pwait2-y.c (FD9_PATH): New macro.
	(DECODE_FDS): Remove.
	* tests/gen_tests.in (epoll_pwait2, epoll_pwait2-P, epoll_pwait2-y):
	Redirect descriptor number 9 to /dev/full.

2024-11-19  Dmitry V. Levin  <ldv@strace.io>

	tests/init.sh: remove unused variable.
	* tests/init.sh (check_scno_tampering): Remove unused variable uname_r.

	Post-release administrivia.
	* NEWS: Add a header line for the next release.
	* debian/changelog.in: Add a changelog entry for 6.12-1.
	* strace.spec.in: Likewise.

2024-11-18  Dmitry V. Levin  <ldv@strace.io>

	Prepare for 6.12 release.
	* NEWS: Update for 6.12 release.

	Update .mailmap.
	* .mailmap: Add both email addresses of Sahil Siddiq to avoid
	duplication in CREDITS file.

	Update copyright headers.
	Headers updated automatically using maint/update_copyright_years.sh
	script.

2024-11-17  Dmitry V. Levin  <ldv@strace.io>

	nsfs: implement decoding of NS_MNT_GET_* ioctl commands.
	* src/nsfs.c (print_mnt_ns_info): New function.
	(nsfs_ioctl): Decode NS_MNT_GET_{INFO,NEXT,PREV} ioctl commands
	introduced by Linux kernel commit v6.12-rc1~210^2^2.
	* tests/ioctl_nsfs-ns_mnt_get.c: New file.
	* tests/pure_executables.list: Add ioctl_nsfs-ns_mnt_get.
	* tests/.gitignore: Likewise.
	* tests/gen_tests.in (ioctl_nsfs-ns_mnt_get): New entry.
	* NEWS: Mention this change.

2024-11-14  Dmitry V. Levin  <ldv@strace.io>

	xlat: update V4L2_* constants.
	* src/xlat/v4l2_device_capabilities_flags.in (V4L2_CAP_EDID): New
	constant introduced by Linux kernel commit v6.12-rc1~82^2~25.
	(V4L2_CAP_ASYNCIO): Remove constant deprecated by Linux kernel commit
	v6.1-rc1~130^2~49 because it had the same value as V4L2_CAP_EDID.
	* src/xlat/v4l2_meta_fmts.in (V4L2_META_FMT_RPI_BE_CFG): New constant
	introduced by Linux kernel commit v6.11-rc1~142^2~67.
	(V4L2_META_FMT_RK_ISP1_EXT_PARAMS): New constant introduced
	by Linux kernel commit v6.12-rc1~82^2~93^2~10.
	* src/xlat/v4l2_pix_fmts.in (V4L2_PIX_FMT_BGR48, V4L2_PIX_FMT_RGB48):
	New constants introduced by Linux kernel commit v6.11-rc1~142^2~69.
	(V4L2_PIX_FMT_PISP_COMP1_RGGB, V4L2_PIX_FMT_PISP_COMP1_GRBG,
	V4L2_PIX_FMT_PISP_COMP1_GBRG, V4L2_PIX_FMT_PISP_COMP1_BGGR,
	V4L2_PIX_FMT_PISP_COMP1_MONO, V4L2_PIX_FMT_PISP_COMP2_RGGB,
	V4L2_PIX_FMT_PISP_COMP2_GRBG, V4L2_PIX_FMT_PISP_COMP2_GBRG,
	V4L2_PIX_FMT_PISP_COMP2_BGGR, V4L2_PIX_FMT_PISP_COMP2_MONO): New
	constants introduced by Linux kernel commit v6.11-rc1~142^2~66.
	* tests/ioctl_v4l2-success.c (main): Update expected output.
	* NEWS: Mention this change.

2024-11-13  Dmitry V. Levin  <ldv@strace.io>

	xlat: update SCHED_* constants.
	* src/xlat/schedulers.in (SCHED_EXT): New constant introduced
	by Linux kernel commit v6.12-rc1~111^2~108.
	* tests/sched_xetscheduler.c (main): Update.
	* NEWS: Mention this change.

2024-11-12  Dmitry V. Levin  <ldv@strace.io>

	nsfs: implement decoding of NS_GET_{PID,TGID}_{FROM,IN}_PIDNS ioctl commands
	* src/nsfs.c (nsfs_ioctl): Decode NS_GET_{PID,TGID}_{FROM,IN}_PIDNS
	ioctl commands introduced by Linux kernel commit v6.11-rc1~235.
	* tests/ioctl_nsfs-ns_get_pid.c: New file.
	* tests/ioctl_nsfs-ns_get_pid--pidns-translation.c: Likewise.
	* tests/Makefile.am (check_PROGRAMS): Add ioctl_nsfs-ns_get_pid
	and ioctl_nsfs-ns_get_pid--pidns-translation.
	* tests/.gitignore: Likewise.
	* tests/gen_tests.in (ioctl_nsfs-ns_get_pid,
	ioctl_nsfs-ns_get_pid--pidns-translation): New entries.
	* NEWS: Mention this change.

2024-11-12  Dmitry V. Levin  <ldv@strace.io>

	nsfs: fix decoding of NS_GET_MNTNS_ID ioctl command.
	* src/nsfs.c (nsfs_ioctl): Fix format string.
	* tests/ioctl_nsfs.c: Likewise.

	Fixes: v6.11-46-g87388edf2 "nsfs: implement decoding of NS_GET_MNTNS_ID ioctl command"

2024-11-12  Dmitry V. Levin  <ldv@strace.io>

	tests: fix NS_GET_MNTNS_ID ioctl check.
	* tests/ioctl_nsfs.c: Use an appropriate file descriptor
	for NS_GET_MNTNS_ID command.

	Fixes: v6.11-46-g87388edf2 "nsfs: implement decoding of NS_GET_MNTNS_ID ioctl command"

2024-11-12  Gleb Fotengauer-Malinovskiy  <glebfm@altlinux.org>

	Update ioctl entries from linux v6.12.
	* src/linux/32/ioctls_inc_align16.h: Update from linux v6.12-rc7 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.

2024-11-11  Dmitry V. Levin  <ldv@strace.io>

	nsfs: implement decoding of NS_GET_MNTNS_ID ioctl command.
	* src/nsfs.c (nsfs_ioctl): Decode NS_GET_MNTNS_ID introduced
	by Linux kernel commits v6.11-rc1~236^2~6^2~1 and v6.11-rc4~40^2~9.
	* tests/ioctl_nsfs.c: Check it.
	* NEWS: Mention this change.

	xlat: update LSM_* constants.
	* src/xlat/lsm_ids.in (LSM_ID_IPE): New constant introduced
	by Linux kernel commit v6.12-rc1~81^2~31.
	* tests/lsm_list_modules.c (main): Update expected output.
	* tests/gen_tests.in (lsm_list_modules-success): Update.
	* NEWS: Mention this change.

	landlock: update decoding of struct landlock_ruleset_attr.
	* src/xlat/landlock_scope_flags.in: New file.
	* src/landlock.c: Include "xlat/landlock_scope_flags.h".
	(print_landlock_ruleset_attr): Decode landlock_ruleset_attr.scoped field
	introduced by Linux kernel commit v6.12-rc1~79^2~13.
	* tests/landlock_create_ruleset.c: Check it.
	* NEWS: Mention this change.

	io_uring: implement IORING_REGISTER_CLONE_BUFFERS decoding.
	* src/xlat/uring_clone_buffers_flags.in: New file.
	* src/xlat/uring_register_opcodes.in (IORING_REGISTER_CLONE_BUFFERS):
	New constant introduced by Linux kernel commit v6.12-rc1~74^2~9.
	* src/io_uring.c: Include "xlat/uring_clone_buffers_flags.h".
	(print_io_uring_clone_buffers, print_ioring_register_clone_buffers): New
	functions.
	(SYS_FUNC(io_uring_register)) <IORING_REGISTER_CLONE_BUFFERS>: Use
	print_ioring_register_clone_buffers.
	* tests/io_uring_register.c (main): Check it.
	* NEWS: Mention this change.

	io_uring: implement IORING_REGISTER_CLOCK decoding.
	* src/xlat/uring_register_opcodes.in (IORING_REGISTER_CLOCK):
	New constant introduced by Linux kernel commit v6.12-rc1~74^2~34.
	* src/io_uring.c (print_io_uring_clock_register,
	print_ioring_register_clock): New functions.
	(SYS_FUNC(io_uring_register)) <IORING_REGISTER_CLOCK>: Use
	print_ioring_register_clock.
	* tests/io_uring_register.c (main): Check it.
	* NEWS: Mention this change.

	xlat: update IORING_FEAT_* constants.
	* src/xlat/uring_setup_features.in (IORING_FEAT_MIN_TIMEOUT): New
	constant introduced by Linux kernel commit v6.12-rc1~74^2~29.

	xlat: update IORING_ENTER_* constants.
	* src/xlat/uring_enter_flags.in (IORING_ENTER_ABS_TIMER): New constant
	introduced by Linux kernel commit v6.12-rc1~74^2~35.
	* tests/io_uring_enter.c (main): Update expected output.
	* NEWS: Mention this change.

	Implement decoding of FRA_DSCP netlink attribute.
	* src/xlat/rtnl_rule_attrs.in (FRA_DSCP): New constant introduced
	by Linux kernel commit v6.12-rc1~232^2~13^2~5.
	* src/rtnl_rule.c (fib_rule_hdr_nla_decoders): Add it.
	* NEWS: Mention this change.

	xlat: update NT_* constants.
	* src/xlat/nt_descriptor_types.in (NT_X86_XSAVE_LAYOUT): New constant
	introduced by Linux kernel commit v6.12-rc1~180^2.
	(NT_ARM_POE): New constant introduced by Linux kernel commit
	v6.12-rc1~221^2~2^2~10.
	* NEWS: Mention this change.

	xlat: update AUDIT_* constants.
	* xlat/nl_audit_types.in (AUDIT_IPE_ACCESS, AUDIT_IPE_CONFIG_CHANGE,
	AUDIT_IPE_POLICY_LOAD): New constants introduced by Linux kernel
	commit v6.12-rc1~81^2~23.
	* NEWS: Mention this change.

2024-11-11  Eugene Syromyatnikov  <evgsyr@gmail.com>

	tests/looping_threads: do not loop as much.
	Current calculations of the test running time scales linearly with
	TIMEOUT_DURATION, which makes running tests unreasonably long times
	in environments where this value is increased to accommodate slower
	machines (and even the current default, 1500, makes it run for over
	90 seconds, which is way more that it is needed to be).  Change
	the scaling to a square root, so the test runs a half of the square
	root of the TIMEOUT_DURATION value (so, around 8 seconds with
	TIMEOUT_DURATION=75, around 20 seconds with the current default of
	TIMEOUT_DURATION=1500, around 30 seconds with TIMEOUT_DURATION=3600)

	* tests/init.sh (sq_root): New function.
	* tests/looping_threads.test: Override TIMEOUT_DURATION to 4
	if it is less than that;  change timeout_16 to timeout_4_sq and set
	it to $(sq_root "$((TIMEOUT_DURATION/4))").

2024-11-10  Eugene Syromyatnikov  <evgsyr@gmail.com>

	tests: introduce struct strival32 and use it.
	There are several tests that define their own struct type that holds
	a pair of integer value and its string definition;  provide one
	in tests.h and use it elsewhere.

	* tests/tests.h (struct strival32): New type definition.
	* tests/faccessat.c (main) <dirfds>: Change the type to struct
	strival32.
	* tests/faccessat2.c (main) <dirfds>: Likewise.
	* tests/landlock_add_rule.c (main) <parent_fd_vals>: Likewise.
	* tests/landlock_restrict_self.c (main) <flags_vals>: Likewise.
	* tests/sockopt-sol_netlink.c (main) <names>: Likise.
	* tests/perf_event_open.c (struct s32_val_str): Remove.
	(main) <clockids>: change the type to struct strival32.
	* tests/sockopt-sol_socket.c (struct intstr): Remove.
	(printoptval): Change the type of the vecs parameter to struct
	strival32*.
	(main) <int_vecs, txrehash_vecs>: Change the type to struct strival32.
	(main) <names>: Change the type of the vecs field to struct strival32.
	(main) <vecs>: Change the type to struct strival32 *const.

2024-11-10  Eugene Syromyatnikov  <evgsyr@gmail.com>

	tests: use strval8 where appropriate.
	There are several tests that define their own variant of a struct
	that holds a pair of an 8-bit integer and its string representation;
	replace those with struct strval8 usage, already provided by tests.h.

	* tests/nlattr_ifla_linkinfo.c (main) <tun_types>: Change the type
	to struct strval8.
	* tests/nlattr_ifla_proto_down_reason.c (main) <inv_attrs>: Likewise.
	* tests/nlattr_ifla_xdp.c (main) <attach_types>: Likewise.

2024-11-10  Eugene Syromyatnikov  <evgsyr@gmail.com>

	tests: use strval32/strval64 where appropriate.
	There are several tests that define their own variant of a struct
	that holds a pair of a 32/64-bit integer and its string representation;
	replace those with struct strval32/strval64 usage, already provided
	by tests.h.

	* tests/fsmount.c (main) <flags>: Change the type to struct strval32,
	add static and const qualifiers.
	* tests/io_uring_register.c (main) <op_flags>: Likewise.
	* tests/openat.c (main) <modes>: Likewise.
	* tests/seccomp_get_action_avail.c (main) <actions>: Likewise.
	* tests/userfaultfd.c (main) <flags>: Likewise.
	* tests/futex_requeue.c (main) <pair>: Change the type to struct
	strval32.
	* tests/ioctl_counter.c (main) <dirs>: Likewise.
	* tests/ioctl_epoll.c (main) <dirs>: Likewise.
	* tests/ioctl_seccomp.c (main) <dirs>: Likewise.
	* tests/memfd_secret.c (main) <flags_vals>: Likewise.
	* tests/nlattr_ifinfomsg.c (main) <ifla_events, attrs>: Likewise.
	* tests/nlattr_ifla_proto_down_reason.c (main) <attrs>: Likewise.
	* tests/nlattr_ifla_xdp.c (main) <attrs>: Likewise.
	* tests/nlattr_mdba_router_port.c (main) <pattrs>: Likewise.
	* tests/nlattr_tcamsg.c (main) <nla_default, tcaa_default>: Likewise.
	* tests/prctl-sched-core.c (main) <pidtypes>: Likewise.
	* tests/setns.c (main) <nstypes>: Likewise.
	* tests/landlock_add_rule.c (main) <fs_vals>: Change the type to struct
	strval64.
	* tests/landlock_create_ruleset.c (main) <fs_vals>: Likewise.
	* tests/landlock_restrict_self.c (main) <ruleset_fd_vals>: Likewise.
	* tests/nlattr_ifla_linkinfo.c (main) <struct val_name>: Remove.
	(main) <und_br_attrs, hwa_br_attrs, c_t_br_attrs, u32_br_attrs,
	u16_br_attrs, x16_br_attrs, u8_br_attrs, br_id_attrs, u8_tun_attrs,
	u32_tun_attrs, und_tun_attrs, uid_tun_attrs, und_brport_attrs,
	u8_brport_attrs, u16_brport_attrs, x16_brport_attrs, u32_brport_attrs,
	brport_id_attrs, c_t_brport_attrs, ifidx_brport_attrs>: Change the type
	to struct strval32.
	(main): Use the str field instead of name.
	* tests/perf_event_open.c (struct u32_val_str, struct u64_val_str):
	Remove.
	(main) <attr_types, attr_configs, sample_types, read_formats,
	branch_sample_types>: Change the type to struct strval64.
	(main) <bp_types>: Change the type to struct strval32.

2024-11-06  Eugene Syromyatnikov  <evgsyr@gmail.com>

	Implement decoding of EPIOC[GS]PARAMS ioctls.
	Introduced by Linux commit v6.9-rc1~159^2~258^2.

	* bundled/linux/include/uapi/linux/eventpoll.h: New file.
	* bundled/Makefile.am (EXTRA_DIST): Add it.
	* src/Makefile.am (libstrace_a_SOURCES): Add epoll_ioctl.c.
	* src/defs.h (DECL_IOCTL(epoll)): New declaration.
	* src/epoll_ioctl.c: New file.
	* src/ioctl.c (ioctl_decode) <case 0x8a>: Call epoll_ioctl.
	* tests/.gitignore: Add ioctl_epoll, ioctl_epoll-Xabbrev,
	ioctl_epoll-Xraw, ioctl_epoll-Xverbose, ioctl_epoll-success,
	ioctl_epoll-success-Xabbrev, ioctl_epoll-success-Xraw,
	and ioctl_epoll-success-Xverbose.
	* tests/Makefile.am (check_PROGRAMS): Add ioctl_epoll-success,
	ioctl_epoll-success-Xabbrev, ioctl_epoll-success-Xraw,
	and ioctl_epoll-success-Xverbose.
	* tests/gen_tests.in (ioctl_epoll, ioctl_epoll-Xabbrev, ioctl_epoll-Xraw,
	ioctl_epoll-Xverbose, ioctl_epoll-success, ioctl_epoll-success-Xabbrev,
	ioctl_epoll-success-Xraw, ioctl_epoll-success-Xverbose): New tests.
	* tests/ioctl_epoll-Xabbrev.c: New file.
	* tests/ioctl_epoll-Xraw.c: Likewise.
	* tests/ioctl_epoll-Xverbose.c: Likewise.
	* tests/ioctl_epoll-success-Xabbrev.c: Likewise.
	* tests/ioctl_epoll-success-Xraw.c: Likewise.
	* tests/ioctl_epoll-success-Xverbose.c: Likewise.
	* tests/ioctl_epoll-success.c: Likewise.
	* tests/ioctl_epoll.c: Likewise.
	* tests/pure_executables.list: Add ioctl_epoll, ioctl_epoll-Xabbrev,
	ioctl_epoll-Xraw, and ioctl_epoll-Xverbose.
	* NEWS: Mention it.

2024-11-03  Dmitry V. Levin  <ldv@strace.io>

	tests/pipe_maxfd: decrease the maximal pipe fd.
	Apparently, INT_MAX is too big, attempts to create such file descriptors
	usually fail with ENOMEM, this results to move_fd() looping too long in
	attempts to find a suitable pipe fd, leading to test timeouts.

	* tests/pipe_maxfd.c: (pipe_maxfd): Decrease the maximal pipe fd
	from INT_MAX to 0x10000.

	Resolves: https://github.com/strace/strace/issues/323

2024-11-02  Dmitry V. Levin  <ldv@strace.io>

	Use linux/sched/types.h instead of sched_attr.h.
	With the recent changes to sched_attr.h, it almost became a replica
	of linux/sched/types.h, so use the latter instead.

	* src/sched_attr.h: Remove.
	* src/Makefile.am (libstrace_a_SOURCES): Remove sched_attr.h.
	* src/sched.c: Include <linux/sched/types.h> instead of "sched_attr.h".
	(print_sched_attr): Replace SCHED_ATTR_MIN_SIZE with
	SCHED_ATTR_SIZE_VER0.
	* tests/sched_xetattr.c: Include <linux/sched/types.h> instead of
	"sched_attr.h".
	(main): Replace SCHED_ATTR_MIN_SIZE with SCHED_ATTR_SIZE_VER0.

2024-11-02  Dmitry V. Levin  <ldv@strace.io>

	bundled: add uapi/linux/sched/types.h.
	* bundled/linux/include/uapi/linux/sched/types.h: New file.
	* bundled/Makefile.am (EXTRA_DIST): Add
	linux/include/uapi/linux/sched/types.h.

2024-11-02  Eugene Syromyatnikov  <evgsyr@gmail.com>

	tests: limit the number of binaries for the negative check in test_trace_expr
	Part of the test in the test_trace_expr function is to check that only
	the provided list of binaries produces the expected output, which
	is implemented by checking for the absence of output against
	(the rest of) the binaries provided in pure_executables.list.
	As the number of tests implemented in the strace test suite grew
	over time, the execution time of such tests grew as well, which makes
	the test suite runs longer and tends to hit the (already extremely
	generous) test execution time limit more often on underpowered
	and/or heavily utilised machines.  Limit the test execution time
	by randomly sampling the binaries to test for the absence of output.
	This makes the check probabilistic, but the probability rather quickly
	approaches 100% with the number of test runs strace undergoes during
	each development cycle.

	* tests/init.sh (test_trace_expr): Filter the result of the program set
	subtraction through shuf -n before storing it in negative.list.
	(TRACE_TESTS_SAMPLE): New environment variable to control the sample
	size.

2024-11-01  Eugene Syromyatnikov  <evgsyr@gmail.com>

	tests/sockopt-timestamp.c: use k_getsockopt and k_setsockopt.
	Avoid using glibc wrappers as these performs additional actions
	that lead to the following issues:
	 - Test segfault on 32-bit compat when an attempt to use
	   SO_RCVTIMEO_NEW/SO_SNDTIMEO_NEW with opt pointing to unavailable
	   memory is made;
	 - Additional calls to SO_TIMESTAMP{,NS}_OLD when SO_TIMESTAMP{NS}_NEW
	   are called:

	   -getsockopt(3, SOL_SOCKET, SO_TIMESTAMP_NEW, [0], [4]) = 0
	   [...]
	   +getsockopt(3, SOL_SOCKET, SO_TIMESTAMP_NEW, 0xf7d3cffc, [4]) = -1 ENOPROTOOPT (Protocol not available)
	   +getsockopt(3, SOL_SOCKET, SO_TIMESTAMP_OLD, [0], [4]) = 0

	* tests/sockopt-sol_socket.c: Include "k_sockopt.h".
	{get_sockopt): Use k_getsockopt() instead of getsockopt().
	{set_sockopt): Use k_setsockopt() instead of setsockopt().

2024-11-01  Eugene Syromyatnikov  <evgsyr@gmail.com>

	tests: move k_setsockopt definition into a separate file.
	...and add k_getsockopt definition as well (for completeness's sake
	and because it will be utilised in the next patch).
