| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
The test suite already handles alignment requirements on POWER and
Sparc, add ARM to the list as well. Not all ARM environments raise
SIGBUS on unaligned access, but some do.
* tests/perf_event_open.c (ATTR_REC) [ARM]: Use aligned access.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
glibc-2.31.9000-312-g600f00b747ff42eb0aa778536d3ef602e8bcd550 introduced
a change in its wait4 implementation that makes it unsuitable for the
wait4 test.
* tests/wait4.c: Include "kernel_rusage.h" instead of <sys/resource.h>.
(sprint_rusage): Replace struct rusage with kernel_rusage_t,
cast member values from kernel_long_t to unsigned long long
using zero_extend_signed_to_ull, update format strings.
(k_wait4): New function.
(do_wait4, main): Use it instead of wait4.
|
|
|
|
|
|
| |
* NEWS: Add a header line for the next release.
* debian/changelog.in: Add a changelog entry for 5.7-1.
* strace.spec.in: Likewise.
|
|
|
|
| |
* NEWS: Update for 5.7 release.
|
| |
|
|
|
|
|
| |
Headers updated automatically using maint/update_copyright_years.sh
script.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* linux/32/ioctls_inc_align16.h: Update from linux v5.7
using ioctls_gen.sh.
* linux/32/ioctls_inc_align32.h: Likewise.
* linux/32/ioctls_inc_align64.h: Likewise.
* linux/64/ioctls_inc.h: Likewise.
* linux/s390/ioctls_arch0.h: Likewise.
* linux/s390x/ioctls_arch0.h: Likewise.
* linux/x32/ioctls_inc0.h: Likewise.
* NEWS: Mention this.
|
|
|
|
|
| |
* tests/init.sh (TIMEOUT_DURATION): Increase from 600 to 1500.
* .travis.yml (matrix): Remove TIMEOUT_DURATION.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some linux headers used to require other headers to be included
beforehand. While these linux headers are no longer insufficient
nowadays, configure checks need to handle old headers properly.
* configure.ac (AC_CHECK_TYPES): Include <sys/socket.h> before
<linux/fib_rules.h>.
(AC_CHECK_HEADERS): Include <sys/socket.h> and <linux/types.h>
before linux/if_addr.h, linux/if_link.h, linux/neighbour.h.
Include <linux/types.h> before other linux headers.
|
|
|
|
|
|
|
|
|
|
| |
<linux/fiemap.h> and <linux/hiddev.h> used to require <linux/types.h>
to be included beforehand.
* file_ioctl.c [HAVE_LINUX_FIEMAP_H]: Include <linux/types.h>
before <linux/fiemap.h>.
* tests/file_ioctl.c: Likewise.
* tests/ioctl.c: Include <linux/types.h> before <linux/hiddev.h>.
|
|
|
|
|
| |
* debian/rules (build-udeb/Makefile): Rename --without-stacktrace
to --disable-stacktrace.
|
|
|
|
|
|
|
| |
* defs.h (printfd): Copy here from util.c, turn into an inline wrapper.
(getfdpath): Copy here from pathtrace.c, turn into an inline wrapper.
* pathtrace.c (getfdpath): Remove.
* util.c (printfd): Remove.
|
|
|
|
|
|
|
|
|
| |
* tests/pidfd_getfd.c (k_pidfd_getfd): Rename pid argument to pidfd.
(main): Test decoding of targetfd.
* tests/gen_tests.in: Add "-e signal=none" argument to pidfd_getfd
tests.
Signed-off-by: Uzonyi Ákos <uzonyi.akos@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The decoder incorrectly assumed the first argument being a pid,
but actually it is a pidfd.
The patch also makes the decoder be able to decode the targetfd
(-y and -yy options).
* pidfd_getfd.c: Include "number_set.h".
(SYS_FUNC(pidfd_getfd)): Rewrite using pidfd_get_pid.
Fixes: v5.6~46 "Implement pidfd_getfd syscall decoding"
Signed-off-by: Ákos Uzonyi <uzonyi.akos@gmail.com>
|
|
|
|
|
|
|
|
|
| |
* defs.h (pidfd_get_pid): New function declaration.
* utils.c (pidfd_get_pid): New function, returns the pid of a pidfd.
(printpidfd): Rewrite using pidfd_get_pid.
(printfd_pid): Change printpidfd arguments.
Signed-off-by: Ákos Uzonyi <uzonyi.akos@gmail.com>
|
|
|
|
|
|
|
|
|
| |
To avoid confusion with the new printfd_pid fucntion.
defs.h (print_pid_fd): Rename to printfd_pid_tracee_ns.
util.c: Likewise. All users updated.
Signed-off-by: Uzonyi Ákos <uzonyi.akos@gmail.com>
|
|
|
|
|
|
|
|
| |
defs.h (printfd_pid): New function definition.
util.c (printfd_pid): New function printing the fd of an other process.
(printfd): Rewritten using printfd_pid.
Signed-off-by: Uzonyi Ákos <uzonyi.akos@gmail.com>
|
|
|
|
|
|
|
|
|
| |
* defs.h (getfdpath_pid): New function definition.
* pathtrace.c (getfdpath_pid): New function, returns the path
associated with fd of the process with pid.
(getfdpath): Rewrite using getfdpath_pid.
Signed-off-by: Uzonyi Ákos <uzonyi.akos@gmail.com>
|
|
|
|
|
|
| |
* xlat/btrfs_compress_types.in: Add #enum, #include <stdio.h>,
and #include <linux/btrfs.h>
* configure.ac (AC_CHECK_DECL(BTRFS_COMPRESS_*)): Remove.
|
|
|
|
|
|
|
|
|
|
|
|
| |
And use proper checks in tests/nlattr_ifla_xdp.c.
* xlat/rtnl_ifla_xdp_attached_mode.in: Add #enum, #include <netinet/in.h>,
and #include <linux/rtnetlink.h> annotations.
* tests/nlattr_ifla_xdp.c [!XDP_ATTACHED_NONE] (XDP_ATTACHED_NONE):
Remove.
[!XDP_ATTACHED_MULTI] (XDP_ATTACHED_MULTI): Remove.
[!HAVE_DECL_XDP_ATTACHED_NONE] (XDP_ATTACHED_NONE): New enum definition.
[!HAVE_DECL_XDP_ATTACHED_MULTI] (XDP_ATTACHED_MULTI): Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduced by Linux commit v5.7-rc1~146^2~10^2~13^2~3.
* xlat/rtnl_ifla_xdp_attrs.in: Add #enum, #include <netlink/in.h>,
and #include <linux/rtnetlink.h> annotations.
(IFLA_XDP_EXPECTED_FD): New constant.
* rtnl_link.c (ifla_xdp_nla_decoders): Add [IFLA_XDP_EXPECTED_FD], set
value to decode_nla_fd.
* tests/nlattr_ifla_xdp-y.c: New file.
* tests/.gitignore: Add nlattr_ifla_xdp-y.
* tests/Makefile.am (check_PROGRAMS): Likewise.
* tests/gen_tests.in: Add nlattr_ifla_xdp-y test.
* tests/nlattr_ifla_xdp.c: Include "xlat/rtnl_ifla_xdp_attrs.h" under
XLAT_MACROS_ONLY definition.
(IFLA_XDP_FD, IFLA_XDP_ATTACHED, IFLA_XDP_PROG_ID, IFLA_XDP_DRV_PROG_ID,
IFLA_XDP_SKB_PROG_ID, IFLA_XDP_HW_PROG_ID): Remove.
[!FD9_PATH] (FD9_PATH): New macro, define to empty string.
(main): Add checks for IFLA_XDP_EXPECTED_FD.
|
|
|
|
|
|
| |
* tests/test_nlattr.h [!PRINT_SOCK] (PRINT_SOCK): New macro, define to 0.
(print_sockfd): New function.
(TEST_NLATTR_EX_): Call print_sockfd for sock fd printing.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* xlat/rtnl_tca_act_hw_stats.in: New file.
* rtnl_tc_action.c: Include "xlat/rtnl_tca_act_hw_stats.h".
(decode_tca_act_hw_stats): New function.
(tcamsg_nla_decoders): Add [TCA_ACT_HW_STATS]
and [TCA_ACT_USED_HW_STATS], set them to decode_tca_act_hw_stats.
* tests/nlattr_tcamsg.c: Add checks, update expected output.
* xlat/rtnl_tc_action_attrs.in (TCA_ACT_HW_STATS): New constant,
introduced by Linux commit v5.7-rc1~146^2~230^2 and renamed in Linux
commit v5.7-rc1~146^2~101.
(TCA_ACT_USED_HW_STATS): New constant, introduced by Linux commit
v5.7-rc1~146^2~25^2.
|
|
|
|
|
|
| |
* xlat/rtnl_tca_stab_attrs.in: Add #enum, #include <linux/types.h>,
#include <linux/pkt_sched.h>.
* configure.ac (AC_CHECK_DECLS(TCA_STAB_DATA)): Remove.
|
|
|
|
|
| |
* xlat/rtnl_tca_stats_attrs.in: Add #enum, #include <linux/gen_stats.h>.
* configure.ac (AC_CHECK_DECL(TCA_STATS_PKT64)): Remove.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* xlat/v4l2_buf_types.in: Add #enum, #include <sys/time.h>, #include
<linux/ioctl.h>, #include <linux/types.h>, and #include
<linux/videodev2.h>.
* xlat/v4l2_colorspaces.in: Likewise.
* xlat/v4l2_control_types.in: Likewise.
* xlat/v4l2_fields.in: Likewise.
* xlat/v4l2_framesize_types.in: Likewise.
* xlat/v4l2_memories.in: Likewise.
* xlat/v4l2_tuner_types.in: Likewise.
* configure.ac (AC_CHECK_DECL(V4L2_*)): Remove.
|
|
|
|
|
|
| |
* xlat/rtnl_link_attrs.in: Add #enum, #include <sys/socket.h>, #include
<linux/rtnetlink.h>.
* configure.ac (AC_CHECK_DECL(IFLA_*)): Remove.
|
|
|
|
|
| |
* xlat/rtnl_tc_action_attrs.in: Add #enum, #include <linux/pkt_cls.h>
* configure.ac (AC_CHECK_DECL(TCA_ACT_*)): Remove.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* configure.ac (AC_CHECK_DECL(CTL_* KERN_* NET_* VM_*)): Remove.
* xlat/sysctl_kern.in: Add #enum, #include <sys/types.h>, #include
<linux/sysctl.h> descriptors.
* xlat/sysctl_net.in: Likewise.
* xlat/sysctl_net_core.in: Likewise.
* xlat/sysctl_net_ipv4.in: Likewise.
* xlat/sysctl_net_ipv4_conf.in: Likewise.
* xlat/sysctl_net_ipv4_route.in: Likewise.
* xlat/sysctl_net_ipv6.in: Likewise.
* xlat/sysctl_net_ipv6_route.in: Likewise.
* xlat/sysctl_net_unix.in: Likewise.
* xlat/sysctl_root.in: Likewise.
* xlat/sysctl_vm.in: Likewise.
|
|
|
|
|
|
|
|
|
|
|
| |
This also syncs up the configure checks with the actual list of xlat
values.
* xlat/waitid_types.in: Add #enum, #include <sys/types.h>, and #include
<sys/wait.h>.
* configure.ac (AC_CHECK_DECL(P_*)): Remove.
Complements: v5.4~82 "xlat: update waitid_types"
|
|
|
|
|
|
| |
* xlat/loop_flags_options.in: Add #enum and #include <linux/loop.h>
descriptors.
* configure.ac (AC_CHECK_DECLS(LO_FLAGS_*)): Remove.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* xlat/gen.sh (print_m4_record, gen_m4_entry): New functions.
(print_xlat_pair): Accept macro name in the third argument.
(print_xlat, print_xlat_pair): Call print_m4_record.
(cond_xlat): Pass $m to print_xlat_pair call. Set first_enum to 0.
(gen_header, gen_make, gen_git): Output the "generating ..." line
to stderr.
(gen_header): Get output_m4 as the fourth parameter, redirect fd 3
to stdout, set enum to 1 if #enum is present and $output_m4 is set,
append #include argument to includes, generate $output_m4 is $enum
is set to 1, pass macro name to print_xlat_pair call, close fd 3.
(gen_git): Add st_check_enums.m4 and "/*.m4".
(main): Allow passing $output_m4 as the third argument, pass m4 file
name as the fourth argument to gen_header calls, pipe gen_header output
to gen_m4_entry in case of no-argument invocation, redirect gen_header
output to /dev/null in case of single-file invocation.
* Makefile.am (ACLOCAL_AMFLAGS): Add "-I xlat".
* configure.ac: Add st_CHECK_ENUMS.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Those unused configure.ac checks were found with the following commands:
$ ./bootstrap
$ ./configure
$ grep '^#undef HAVE' config.h.in | cut -d' ' -f2 | sort >in_configure
$ find -iname '*.[ch]' -exec ifnames \{\} + | grep ^HAVE | \
cut -d' ' -f1 | sort >in_source
$ comm -23 in_configure in_source | grep -vE '^HAVE_(UNION|STRUCT)'
* configure.ac (AC_CHECK_FUNCS): Remove utimensat, the last user was
removed by commit 589cff6. Remove strsignal, the last user was
removed by commit 2c4fb90.
(AC_CHECK_HEADERS): Remove sys/conf.h, the last user was removed by
commit 811bda6. Remove inttypes.h, the last user was removed by commit
a6d91de. Remove stropts.h, the last user was removed by commit a56a81c.
(AC_CHECK_DECLS): remove P_PPID, P_PGID, P_SID, P_CID, P_UID, P_GID,
P_ALL, and P_LWPID, the last user was removed by commit 7da9d19.
Signed-off-by: Pierre Marsais <pierre.marsais@lse.epita.fr>
|
|
|
|
|
|
|
|
| |
Starting with commit v5.7-rc4~13^2~2^2~7, linux/dma-buf.h defines
DMA_BUF_SET_NAME_A and DMA_BUF_SET_NAME_B constants, and
DMA_BUF_SET_NAME equals to one of them.
* maint/ioctls_sym.sh: Edit linux/dma-buf.h to omit DMA_BUF_SET_NAME.
|
|
|
|
|
|
|
|
|
|
| |
Starting with commit v5.6-rc1~93^2~103, linux/videodev2.h provides either
time32 or time64 based definitions depending on the flavour provided by
libc headers. While media/v4l2-ioctl.h already provides time32 based
definitions, linux/videodev2.h has to be twisted to force time64 based
definitions.
* maint/ioctls_sym.sh: Edit linux/videodev2.h to force time64 based API.
|
|
|
|
|
| |
* xlat/uffd_register_ioctl_flags.in (1<<_UFFDIO_WRITEPROTECT): New
constant introduced by Linux kernel commit v5.7-rc1~58^2~113.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since the definition of struct v4l2_event provided by the kernel depends
on the flavour of struct timespec provided by libc, we cannot use the
definition provided by the kernel, neither in the decoder nor in tests.
* kernel_v4l2_types.h: Include "kernel_timespec.h".
(kernel_v4l2_event_t): New type.
* linux/32/ioctls_inc_align16.h (VIDIOC_DQEVENT): Update.
* linux/32/ioctls_inc_align32.h: Likewise.
* linux/32/ioctls_inc_align64.h: Likewise.
* xlat/v4l2_ioctl_cmds.in (VIDIOC_DQEVENT): Redefine.
* v4l2.c (kernel_v4l2_event_t): Mpersify.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* kernel_v4l2_types.h: Include "types/v4l2.h".
* v4l2.c (VIDIOC_QUERYBUF, VIDIOC_QBUF, VIDIOC_DQBUF,
VIDIOC_PREPARE_BUF): Move redefinitions ...
* xlat/v4l2_ioctl_cmds.in: ... here.
* tests/ioctl_v4l2.c: Include "xlat/v4l2_ioctl_cmds.h"
in XLAT_MACROS_ONLY mode.
(VIDIOC_QUERYBUF, VIDIOC_QBUF, VIDIOC_DQBUF, VIDIOC_PREPARE_BUF): Remove.
(main): Check for HAVE_STRUCT_V4L2_FRMSIZEENUM,
HAVE_STRUCT_V4L2_FRMIVALENUM, and HAVE_STRUCT_V4L2_CREATE_BUFFERS
instead of VIDIOC_ENUM_FRAMESIZES, VIDIOC_ENUM_FRAMEINTERVALS, and
VIDIOC_CREATE_BUFS as the latter are always defined now.
* tests/ioctl_v4l2-success.c: Likewise.
|
| |
|
|
|
|
|
|
|
|
|
| |
* tests/print_ppid_tracerpid.c: New file.
* tests/.gitignore: Add print_ppid_tracerpid.
* tests/Makefile.am (check_PROGRAMS): Likewise.
* tests/strace-D.test: Use print_ppid_tracerpid instead of
"sed -r -n '/^(P|Tracer)Pid:/p' /proc/self/status" to avoid
unrelated issues caused by potential personality mismatch.
|
|
|
|
|
|
| |
* tests/pc.test: Pass --quiet=attach,personality option to strace
to suppress some unrelated diagnostics that can confuse scripts
that parse strace output.
|
|
|
|
|
|
|
|
|
| |
There should be no issues with v5.7-rc7.
This reverts commit dc6a196f3a83103e8ba21b6809246d37356ffd3d.
* .github/workflows/ci.yml (env): Remove KBRANCH.
* .gitlab-ci.yml (variables): Likewise.
* .travis.yml (env:global): Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* configure.ac (AC_CHECK_MEMBERS): Check for struct clone_args.cgroup
instead of struct clone_args.set_tid_size.
* clone.c (struct strace_clone_args): Add cgroup field.
(SYS_FUNC(clone3)): Decode cgroup field of struct clone_args introduced
by Linux kernel commit v5.7-rc1~107^2~9.
* NEWS: Mention this change.
* tests/clone3.c: Check HAVE_STRUCT_CLONE_ARGS_CGROUP instead of
HAVE_STRUCT_CLONE_ARGS_SET_TID_SIZE.
(struct test_clone_args): Add cgroup field.
(main): Check decoding of cgroup field.
|
|
|
|
|
|
|
| |
* xlat/clone3_flags.in (CLONE_INTO_CGROUP): New constant, introduced
by Linux kernel commit v5.7-rc1~107^2~9.
* NEWS: Mention this.
* tests/clone3.c (main): Update the expected output.
|
|
|
|
|
|
|
| |
* ptrace_syscall_info.c (test_ptrace_get_syscall_info)
[SIZEOF_KERNEL_LONG_T > SIZEOF_LONG]: Cast elements of info.entry.args
array to (unsigned long).
* tests/ptrace_syscall_info.c (test_entry): Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Silence the following compilation warnings produced by fresh gcc+glibc:
In file included from pc.c:9:
pc.c: In function 'main':
pc.c:30:9: warning: argument 2 is null but the corresponding size argument 3 value is 16 [-Wnonnull]
30 | assert(write(-1, NULL, 2 * sizeof(void *)) < 0);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from pc.c:12:
/usr/include/unistd.h:367:16: note: in a call to function 'write' declared with attribute 'read_only (2, 3)'
367 | extern ssize_t write (int __fd, const void *__buf, size_t __n) __wur
| ^~~~~
* tests/pc.c (main): Use 8UL instead of NULL as a marker.
* tests/pc.test: Update expected output.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Starting with Linux kernel commit v5.6-rc1~93^2~102, the definition
of struct v4l2_buffer provided by the kernel depends on the flavour
of struct timeval provided by libc. This effectively means that we
cannot use the definition provided by the kernel, neither in the decoder
nor in tests.
* kernel_v4l2_types.h: New file.
* Makefile.am (libstrace_a_SOURCES): Add it.
* types/v4l2.h (struct_v4l2_buffer): Remove.
* v4l2.c: Include "kernel_v4l2_types.h".
Replace struct_v4l2_buffer with kernel_v4l2_buffer_t.
(VIDIOC_QUERYBUF, VIDIOC_QBUF, VIDIOC_DQBUF, VIDIOC_PREPARE_BUF):
Redefine.
(print_v4l2_buffer): Use print_timeval64_data_size to print timestamp
field.
* linux/32/ioctls_inc_align16.h (VIDIOC_QUERYBUF, VIDIOC_QBUF,
VIDIOC_DQBUF, VIDIOC_PREPARE_BUF): Update.
* linux/32/ioctls_inc_align32.h: Likewise.
* linux/32/ioctls_inc_align64.h: Likewise.
* xlat/v4l2_ioctl_cmds.in (VIDIOC_QUERYBUF, VIDIOC_QBUF,
VIDIOC_DQBUF, VIDIOC_PREPARE_BUF): Comment out.
* tests/ioctl_v4l2.c: Include "kernel_v4l2_types.h".
(main): Replace struct_v4l2_buffer with kernel_v4l2_buffer_t.
(VIDIOC_QUERYBUF, VIDIOC_QBUF, VIDIOC_DQBUF, VIDIOC_PREPARE_BUF):
Redefine.
* tests/ioctl_v4l2-success.c: Likewise.
Resolves: https://github.com/strace/strace/issues/133
|
|
|
|
|
|
|
|
|
| |
This fixes the following autoreconf warning:
configure.ac:41: warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS
* configure.ac: Move AM_PROG_AR after AC_USE_SYSTEM_EXTENSIONS.
Fixes: v5.6-65-g81e11a9b8 "configure: check AR variable for 'ar' tool"
|
|
|
|
|
|
| |
Without this, automake always hardcodes 'AR = ar' in Makefile.in
Bug: https://bugs.gentoo.org/720712
|
|
|
|
|
|
|
|
| |
The last user of this check was removed by commit v4.7~160.
* configure.ac (AC_PATH_PROG): Remove perl.
Complements: v4.7~160 "Manual removal of non-Linux source, documentation, etc."
|