Browse Source

strace package update

Signed-off-by: basebuilder_pel7ppc64bebuilder0 <basebuilder@powerel.org>
master
basebuilder_pel7ppc64bebuilder0 7 years ago
parent
commit
63332ce77a
  1. 30
      SOURCES/strace-4.12-chown.patch
  2. 59
      SOURCES/strace-4.12-vhangup.patch
  3. 98
      SOURCES/strace-no-net-tests.patch
  4. 262
      SOURCES/strace-no-setgid-rhel6.patch
  5. 66
      SOURCES/strace-no-uio-tests.patch
  6. 58
      SOURCES/strace-rh1377847.patch
  7. 64
      SOURCES/strace-rh1449935.patch
  8. 63
      SOURCES/strace-rh1466535.patch
  9. 51
      SOURCES/strace-rh1540954-1.patch
  10. 60
      SOURCES/strace-rh1540954-2.patch
  11. 241
      SOURCES/strace-rh851457.patch
  12. 46
      SOURCES/strace-rh948577.patch
  13. 28
      SOURCES/strace-rpmbuild-m64.patch
  14. 24
      SOURCES/strace-strict-aliasing.patch
  15. 600
      SPECS/strace.spec

30
SOURCES/strace-4.12-chown.patch

@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
commit 58d0ee2ea5499cf532a03bed39187b1934b06a07
Author: Dmitry V. Levin <ldv@altlinux.org>
Date: Tue Jul 26 09:58:37 2016 +0000

tests: fix chown.test
* tests/chown.test: Fix the value specified for strace -a parameter.
Reported-by: Yun-Chih Chen <b03902074@ntu.edu.tw>

diff --git a/tests/chown.test b/tests/chown.test
index 1a94c32..eb356ce 100755
--- a/tests/chown.test
+++ b/tests/chown.test
@@ -3,4 +3,4 @@
# Check chown syscall decoding.
. "${srcdir=.}/init.sh"
-run_strace_match_diff -a29
+run_strace_match_diff -a28
diff --git a/tests/chown.test b/tests/chown.test
index 1a94c32..eb356ce 100755
--- a/tests-m32/chown.test
+++ b/tests-m32/chown.test
@@ -3,4 +3,4 @@
# Check chown syscall decoding.
. "${srcdir=.}/init.sh"
-run_strace_match_diff -a29
+run_strace_match_diff -a28

59
SOURCES/strace-4.12-vhangup.patch

@ -0,0 +1,59 @@ @@ -0,0 +1,59 @@
commit cb44289ee3fd1482d3b8551d2e3b4568eb57e114
Author: Dmitry V. Levin <ldv@altlinux.org>
Date: Tue Jul 26 10:20:24 2016 +0000

tests: fix vhangup.test
* tests/vhangup.c (main): Fix expected output for the case when
the calling process has CAP_SYS_TTY_CONFIG capability.
Reported-by: Yun-Chih Chen <b03902074@ntu.edu.tw>

diff --git a/tests/vhangup.c b/tests/vhangup.c
index ba90319..468f334 100644
--- a/tests/vhangup.c
+++ b/tests/vhangup.c
@@ -13,7 +13,18 @@ main(void)
perror_msg_and_skip("setsid");
long rc = syscall(__NR_vhangup);
- printf("vhangup() = %ld %s (%m)\n", rc, errno2name());
+
+ /*
+ * On setsid() success, the new session has no controlling terminal,
+ * therefore a subsequent vhangup() has nothing to hangup.
+ *
+ * The system call, however, returns 0 iff the calling process
+ * has CAP_SYS_TTY_CONFIG capability.
+ */
+ if (rc)
+ printf("vhangup() = %ld %s (%m)\n", rc, errno2name());
+ else
+ puts("vhangup() = 0");
puts("+++ exited with 0 +++");
return 0;
diff --git a/tests/vhangup.c b/tests/vhangup.c
index ba90319..468f334 100644
--- a/tests-m32/vhangup.c
+++ b/tests-m32/vhangup.c
@@ -13,7 +13,18 @@ main(void)
perror_msg_and_skip("setsid");
long rc = syscall(__NR_vhangup);
- printf("vhangup() = %ld %s (%m)\n", rc, errno2name());
+
+ /*
+ * On setsid() success, the new session has no controlling terminal,
+ * therefore a subsequent vhangup() has nothing to hangup.
+ *
+ * The system call, however, returns 0 iff the calling process
+ * has CAP_SYS_TTY_CONFIG capability.
+ */
+ if (rc)
+ printf("vhangup() = %ld %s (%m)\n", rc, errno2name());
+ else
+ puts("vhangup() = 0");
puts("+++ exited with 0 +++");
return 0;

98
SOURCES/strace-no-net-tests.patch

@ -0,0 +1,98 @@ @@ -0,0 +1,98 @@
Only in b: count.c.orig
Only in b: count.c.rej
diff -rup a/tests/Makefile.am b/tests/Makefile.am
--- a/tests/Makefile.am 2016-05-28 15:31:50.000000000 -0400
+++ b/tests/Makefile.am 2016-07-22 17:03:00.957064111 -0400
@@ -492,12 +492,6 @@ DECODER_TESTS = \
mq.test \
munlockall.test \
nanosleep.test \
- net-icmp_filter.test \
- net-y-unix.test \
- net-yy-inet.test \
- net-yy-netlink.test \
- net-yy-unix.test \
- net.test \
newfstatat.test \
nsyscalls.test \
old_mmap.test \
diff -rup a/tests/Makefile.in b/tests/Makefile.in
--- a/tests/Makefile.in 2016-05-31 07:35:59.000000000 -0400
+++ b/tests/Makefile.in 2016-07-22 17:03:05.215079250 -0400
@@ -2001,12 +2001,6 @@ DECODER_TESTS = \
mq.test \
munlockall.test \
nanosleep.test \
- net-icmp_filter.test \
- net-y-unix.test \
- net-yy-inet.test \
- net-yy-netlink.test \
- net-yy-unix.test \
- net.test \
newfstatat.test \
nsyscalls.test \
old_mmap.test \
diff -rup a/tests-m32/Makefile.am b/tests-m32/Makefile.am
--- a/tests-m32/Makefile.am 2016-05-31 07:35:28.000000000 -0400
+++ b/tests-m32/Makefile.am 2016-07-22 17:02:36.756977946 -0400
@@ -492,12 +492,6 @@ DECODER_TESTS = \
mq.test \
munlockall.test \
nanosleep.test \
- net-icmp_filter.test \
- net-y-unix.test \
- net-yy-inet.test \
- net-yy-netlink.test \
- net-yy-unix.test \
- net.test \
newfstatat.test \
nsyscalls.test \
old_mmap.test \
diff -rup a/tests-m32/Makefile.in b/tests-m32/Makefile.in
--- a/tests-m32/Makefile.in 2016-05-31 07:35:58.000000000 -0400
+++ b/tests-m32/Makefile.in 2016-07-22 17:02:44.747006419 -0400
@@ -2001,12 +2001,6 @@ DECODER_TESTS = \
mq.test \
munlockall.test \
nanosleep.test \
- net-icmp_filter.test \
- net-y-unix.test \
- net-yy-inet.test \
- net-yy-netlink.test \
- net-yy-unix.test \
- net.test \
newfstatat.test \
nsyscalls.test \
old_mmap.test \
diff -rup a/tests-mx32/Makefile.am b/tests-mx32/Makefile.am
--- a/tests-mx32/Makefile.am 2016-05-31 07:35:29.000000000 -0400
+++ b/tests-mx32/Makefile.am 2016-07-22 17:02:50.878028251 -0400
@@ -492,12 +492,6 @@ DECODER_TESTS = \
mq.test \
munlockall.test \
nanosleep.test \
- net-icmp_filter.test \
- net-y-unix.test \
- net-yy-inet.test \
- net-yy-netlink.test \
- net-yy-unix.test \
- net.test \
newfstatat.test \
nsyscalls.test \
old_mmap.test \
diff -rup a/tests-mx32/Makefile.in b/tests-mx32/Makefile.in
--- a/tests-mx32/Makefile.in 2016-05-31 07:35:58.000000000 -0400
+++ b/tests-mx32/Makefile.in 2016-07-22 17:02:56.451048084 -0400
@@ -2001,12 +2001,6 @@ DECODER_TESTS = \
mq.test \
munlockall.test \
nanosleep.test \
- net-icmp_filter.test \
- net-y-unix.test \
- net-yy-inet.test \
- net-yy-netlink.test \
- net-yy-unix.test \
- net.test \
newfstatat.test \
nsyscalls.test \
old_mmap.test \

262
SOURCES/strace-no-setgid-rhel6.patch

@ -0,0 +1,262 @@ @@ -0,0 +1,262 @@
diff -rup a/tests/Makefile.am b/tests/Makefile.am
--- a/tests/Makefile.am 2017-02-16 20:50:25.000000000 -0500
+++ b/tests/Makefile.am 2017-02-17 18:15:56.441584430 -0500
@@ -239,7 +239,6 @@ check_PROGRAMS = \
rt_sigqueueinfo \
rt_sigsuspend \
rt_sigtimedwait \
- rt_tgsigqueueinfo \
sched_get_priority_mxx \
sched_rr_get_interval \
sched_xetaffinity \
@@ -267,7 +266,6 @@ check_PROGRAMS = \
setgroups \
setgroups32 \
sethostname \
- setregid \
setregid32 \
setresgid \
setresgid32 \
@@ -379,11 +377,9 @@ DECODER_TESTS = \
btrfs-vw.test \
caps.test \
chmod.test \
- chown.test \
chown32.test \
chroot.test \
clock_adjtime.test \
- clock_nanosleep.test \
clock_xettime.test \
copy_file_range.test \
creat.test \
@@ -405,7 +401,6 @@ DECODER_TESTS = \
fchdir.test \
fchmod.test \
fchmodat.test \
- fchown.test \
fchown32.test \
fchownat.test \
fcntl.test \
@@ -464,7 +459,6 @@ DECODER_TESTS = \
ipc_sem.test \
ipc_shm.test \
kill.test \
- lchown.test \
lchown32.test \
link.test \
linkat.test \
@@ -486,19 +480,16 @@ DECODER_TESTS = \
mlockall.test \
mmap.test \
mmap64.test \
- mmsg.test \
mount.test \
move_pages.test \
mq.test \
munlockall.test \
- nanosleep.test \
newfstatat.test \
nsyscalls.test \
old_mmap.test \
oldselect.test \
open.test \
openat.test \
- pause.test \
personality.test \
pipe.test \
poll.test \
@@ -509,7 +500,6 @@ DECODER_TESTS = \
preadv-pwritev.test \
preadv2-pwritev2.test \
preadv.test \
- pselect6.test \
ptrace.test \
pwritev.test \
read-write.test \
@@ -527,9 +517,7 @@ DECODER_TESTS = \
rt_sigpending.test \
rt_sigprocmask.test \
rt_sigqueueinfo.test \
- rt_sigsuspend.test \
rt_sigtimedwait.test \
- rt_tgsigqueueinfo.test \
sched_get_priority_mxx.test \
sched_rr_get_interval.test \
sched_xetaffinity.test \
@@ -543,28 +531,19 @@ DECODER_TESTS = \
seccomp-strict.test \
select.test \
semop.test \
- sendfile.test \
- sendfile64.test \
set_mempolicy.test \
setdomainname.test \
setfsgid.test \
setfsgid32.test \
setfsuid.test \
setfsuid32.test \
- setgid.test \
setgid32.test \
- setgroups.test \
setgroups32.test \
sethostname.test \
- setregid.test \
setregid32.test \
- setresgid.test \
setresgid32.test \
- setresuid.test \
setresuid32.test \
- setreuid.test \
setreuid32.test \
- setuid.test \
setuid32.test \
shmxt.test \
sigaction.test \
@@ -580,7 +559,6 @@ DECODER_TESTS = \
swap.test \
symlink.test \
symlinkat.test \
- sync.test \
sync_file_range.test \
sync_file_range2.test \
sysinfo.test \
@@ -635,16 +613,11 @@ MISC_TESTS = \
pc.test \
qual_syscall.test \
redirect.test \
- restart_syscall.test \
strace-S.test \
strace-T.test \
strace-V.test \
strace-f.test \
strace-ff.test \
- strace-r.test \
- strace-t.test \
- strace-tt.test \
- strace-ttt.test \
vfork-f.test \
# end of MISC_TESTS
diff -rup a/tests/Makefile.in b/tests/Makefile.in
--- a/tests/Makefile.in 2017-02-16 20:50:25.000000000 -0500
+++ b/tests/Makefile.in 2017-02-17 18:15:49.968555043 -0500
@@ -1888,11 +1888,9 @@ DECODER_TESTS = \
btrfs-vw.test \
caps.test \
chmod.test \
- chown.test \
chown32.test \
chroot.test \
clock_adjtime.test \
- clock_nanosleep.test \
clock_xettime.test \
copy_file_range.test \
creat.test \
@@ -1914,7 +1912,6 @@ DECODER_TESTS = \
fchdir.test \
fchmod.test \
fchmodat.test \
- fchown.test \
fchown32.test \
fchownat.test \
fcntl.test \
@@ -1973,7 +1970,6 @@ DECODER_TESTS = \
ipc_sem.test \
ipc_shm.test \
kill.test \
- lchown.test \
lchown32.test \
link.test \
linkat.test \
@@ -1995,19 +1991,16 @@ DECODER_TESTS = \
mlockall.test \
mmap.test \
mmap64.test \
- mmsg.test \
mount.test \
move_pages.test \
mq.test \
munlockall.test \
- nanosleep.test \
newfstatat.test \
nsyscalls.test \
old_mmap.test \
oldselect.test \
open.test \
openat.test \
- pause.test \
personality.test \
pipe.test \
poll.test \
@@ -2018,7 +2011,6 @@ DECODER_TESTS = \
preadv-pwritev.test \
preadv2-pwritev2.test \
preadv.test \
- pselect6.test \
ptrace.test \
pwritev.test \
read-write.test \
@@ -2036,9 +2028,7 @@ DECODER_TESTS = \
rt_sigpending.test \
rt_sigprocmask.test \
rt_sigqueueinfo.test \
- rt_sigsuspend.test \
rt_sigtimedwait.test \
- rt_tgsigqueueinfo.test \
sched_get_priority_mxx.test \
sched_rr_get_interval.test \
sched_xetaffinity.test \
@@ -2052,28 +2042,19 @@ DECODER_TESTS = \
seccomp-strict.test \
select.test \
semop.test \
- sendfile.test \
- sendfile64.test \
set_mempolicy.test \
setdomainname.test \
setfsgid.test \
setfsgid32.test \
setfsuid.test \
setfsuid32.test \
- setgid.test \
setgid32.test \
- setgroups.test \
setgroups32.test \
sethostname.test \
- setregid.test \
setregid32.test \
- setresgid.test \
setresgid32.test \
- setresuid.test \
setresuid32.test \
- setreuid.test \
setreuid32.test \
- setuid.test \
setuid32.test \
shmxt.test \
sigaction.test \
@@ -2089,7 +2070,6 @@ DECODER_TESTS = \
swap.test \
symlink.test \
symlinkat.test \
- sync.test \
sync_file_range.test \
sync_file_range2.test \
sysinfo.test \
@@ -2144,16 +2124,11 @@ MISC_TESTS = \
pc.test \
qual_syscall.test \
redirect.test \
- restart_syscall.test \
strace-S.test \
strace-T.test \
strace-V.test \
strace-f.test \
strace-ff.test \
- strace-r.test \
- strace-t.test \
- strace-tt.test \
- strace-ttt.test \
vfork-f.test \
# end of MISC_TESTS

66
SOURCES/strace-no-uio-tests.patch

@ -0,0 +1,66 @@ @@ -0,0 +1,66 @@
diff -rup a/tests/Makefile.am b/tests/Makefile.am
--- a/tests/Makefile.am 2016-07-22 17:03:00.000000000 -0400
+++ b/tests/Makefile.am 2016-07-22 17:12:48.577093495 -0400
@@ -594,7 +594,6 @@ DECODER_TESTS = \
times.test \
truncate.test \
truncate64.test \
- uio.test \
umask.test \
umount.test \
umount2.test \
diff -rup a/tests/Makefile.in b/tests/Makefile.in
--- a/tests/Makefile.in 2016-07-22 17:03:05.000000000 -0400
+++ b/tests/Makefile.in 2016-07-22 17:12:57.945124915 -0400
@@ -2103,7 +2103,6 @@ DECODER_TESTS = \
times.test \
truncate.test \
truncate64.test \
- uio.test \
umask.test \
umount.test \
umount2.test \
diff -rup a/tests-m32/Makefile.am b/tests-m32/Makefile.am
--- a/tests-m32/Makefile.am 2016-07-22 17:02:36.000000000 -0400
+++ b/tests-m32/Makefile.am 2016-07-22 17:12:09.252961282 -0400
@@ -594,7 +594,6 @@ DECODER_TESTS = \
times.test \
truncate.test \
truncate64.test \
- uio.test \
umask.test \
umount.test \
umount2.test \
diff -rup a/tests-m32/Makefile.in b/tests-m32/Makefile.in
--- a/tests-m32/Makefile.in 2016-07-22 17:02:44.000000000 -0400
+++ b/tests-m32/Makefile.in 2016-07-22 17:12:22.068004420 -0400
@@ -2103,7 +2103,6 @@ DECODER_TESTS = \
times.test \
truncate.test \
truncate64.test \
- uio.test \
umask.test \
umount.test \
umount2.test \
diff -rup a/tests-mx32/Makefile.am b/tests-mx32/Makefile.am
--- a/tests-mx32/Makefile.am 2016-07-22 17:02:50.000000000 -0400
+++ b/tests-mx32/Makefile.am 2016-07-22 17:12:31.110034827 -0400
@@ -594,7 +594,6 @@ DECODER_TESTS = \
times.test \
truncate.test \
truncate64.test \
- uio.test \
umask.test \
umount.test \
umount2.test \
diff -rup a/tests-mx32/Makefile.in b/tests-mx32/Makefile.in
--- a/tests-mx32/Makefile.in 2016-07-22 17:02:56.000000000 -0400
+++ b/tests-mx32/Makefile.in 2016-07-22 17:12:38.169058548 -0400
@@ -2103,7 +2103,6 @@ DECODER_TESTS = \
times.test \
truncate.test \
truncate64.test \
- uio.test \
umask.test \
umount.test \
umount2.test \

58
SOURCES/strace-rh1377847.patch

@ -0,0 +1,58 @@ @@ -0,0 +1,58 @@
diff -rup a/open.c b/open.c
--- a/open.c 2017-03-27 13:09:44.077819446 -0400
+++ b/open.c 2017-03-27 13:10:05.300586883 -0400
@@ -36,6 +36,10 @@
#include <fcntl.h>
+#ifndef O_TMPFILE
+#define O_TMPFILE 020000000
+#endif
+
#ifdef O_LARGEFILE
# if O_LARGEFILE == 0 /* biarch platforms in 64-bit mode */
# undef O_LARGEFILE
@@ -115,6 +119,13 @@ tprint_open_modes(unsigned int flags)
tprints(sprint_open_modes(flags) + sizeof("flags"));
}
+#ifdef O_TMPFILE
+/* The kernel & C libraries often inline O_DIRECTORY. */
+# define STRACE_O_TMPFILE (O_TMPFILE & ~O_DIRECTORY)
+#else /* !O_TMPFILE */
+# define STRACE_O_TMPFILE 0
+#endif
+
static int
decode_open(struct tcb *tcp, int offset)
{
@@ -122,7 +133,7 @@ decode_open(struct tcb *tcp, int offset)
tprints(", ");
/* flags */
tprint_open_modes(tcp->u_arg[offset + 1]);
- if (tcp->u_arg[offset + 1] & O_CREAT) {
+ if (tcp->u_arg[offset + 1] & (O_CREAT | STRACE_O_TMPFILE)) {
/* mode */
tprintf(", %#lo", tcp->u_arg[offset + 2]);
}
diff -rup a/tests/open.c b/tests/open.c
--- a/tests/open.c 2017-03-27 13:09:44.078819435 -0400
+++ b/tests/open.c 2017-03-27 13:31:55.843649714 -0400
@@ -59,6 +59,17 @@ main(void)
" = %d %s (%m)\n", sample, fd, errno2name());
}
+#ifdef O_TMPFILE
+# if O_TMPFILE == (O_TMPFILE & ~O_DIRECTORY)
+# define STR_O_TMPFILE "O_TMPFILE"
+# else
+# define STR_O_TMPFILE "O_DIRECTORY|O_TMPFILE"
+# endif
+ fd = syscall(__NR_open, sample, O_WRONLY|O_TMPFILE, 0600);
+ printf("open(\"%s\", O_WRONLY|%s, 0600) = %d %s (%m)\n",
+ sample, STR_O_TMPFILE, fd, errno2name());
+#endif /* O_TMPFILE */
+
puts("+++ exited with 0 +++");
return 0;
}

64
SOURCES/strace-rh1449935.patch

@ -0,0 +1,64 @@ @@ -0,0 +1,64 @@
Only in b: autom4te.cache
diff -rup a/config.h.in b/config.h.in
--- a/config.h.in 2016-05-31 07:35:56.000000000 -0400
+++ b/config.h.in 2017-05-12 17:32:49.134113672 -0400
@@ -1782,9 +1782,13 @@
/* Define to 1 if the system has the type `struct blk_user_trace_setup'. */
#undef HAVE_STRUCT_BLK_USER_TRACE_SETUP
-/* Define to 1 if `start struct btrfs_ioctl_search_args_v2.buf_size' is a
- member of `struct btrfs_ioctl_defrag_range_args'. */
-#undef HAVE_STRUCT_BTRFS_IOCTL_DEFRAG_RANGE_ARGS_START_STRUCT_BTRFS_IOCTL_SEARCH_ARGS_V2_BUF_SIZE
+/* Define to 1 if `start' is a member of `struct
+ btrfs_ioctl_defrag_range_args'. */
+#undef HAVE_STRUCT_BTRFS_IOCTL_DEFRAG_RANGE_ARGS_START
+
+/* Define to 1 if `buf_size' is a member of `struct
+ btrfs_ioctl_search_args_v2'. */
+#undef HAVE_STRUCT_BTRFS_IOCTL_SEARCH_ARGS_V2_BUF_SIZE
/* Define to 1 if `compat_flags' is a member of `struct
btrfs_ioctl_feature_flags'. */
diff -rup a/configure b/configure
--- a/configure 2017-05-12 16:59:22.000000000 -0400
+++ b/configure 2017-05-12 17:15:19.843076820 -0400
@@ -8454,13 +8454,24 @@ _ACEOF
fi
-ac_fn_c_check_member "$LINENO" "struct btrfs_ioctl_defrag_range_args" "start struct btrfs_ioctl_search_args_v2.buf_size" "ac_cv_member_struct_btrfs_ioctl_defrag_range_args_start_struct_btrfs_ioctl_search_args_v2_buf_size" " #include <stdio.h>
+ac_fn_c_check_member "$LINENO" "struct btrfs_ioctl_defrag_range_args" "start" "ac_cv_member_struct_btrfs_ioctl_defrag_range_args_start" " #include <stdio.h>
#include <linux/btrfs.h>
"
-if test "x$ac_cv_member_struct_btrfs_ioctl_defrag_range_args_start_struct_btrfs_ioctl_search_args_v2_buf_size" = xyes; then :
+if test "x$ac_cv_member_struct_btrfs_ioctl_defrag_range_args_start" = xyes; then :
cat >>confdefs.h <<_ACEOF
-#define HAVE_STRUCT_BTRFS_IOCTL_DEFRAG_RANGE_ARGS_START_STRUCT_BTRFS_IOCTL_SEARCH_ARGS_V2_BUF_SIZE 1
+#define HAVE_STRUCT_BTRFS_IOCTL_DEFRAG_RANGE_ARGS_START 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct btrfs_ioctl_search_args_v2" "buf_size" "ac_cv_member_struct_btrfs_ioctl_search_args_v2_buf_size" " #include <stdio.h>
+#include <linux/btrfs.h>
+"
+if test "x$ac_cv_member_struct_btrfs_ioctl_search_args_v2_buf_size" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_BTRFS_IOCTL_SEARCH_ARGS_V2_BUF_SIZE 1
_ACEOF
diff -rup a/configure.ac b/configure.ac
--- a/configure.ac 2017-05-12 16:59:22.000000000 -0400
+++ b/configure.ac 2017-05-12 17:15:13.077083844 -0400
@@ -464,7 +464,7 @@ AC_CHECK_HEADERS([linux/btrfs.h], [
AC_CHECK_MEMBERS(m4_normalize([
struct btrfs_ioctl_feature_flags.compat_flags,
struct btrfs_ioctl_fs_info_args.nodesize,
- struct btrfs_ioctl_defrag_range_args.start
+ struct btrfs_ioctl_defrag_range_args.start,
struct btrfs_ioctl_search_args_v2.buf_size
]),,, [ #include <stdio.h>
#include <linux/btrfs.h>])

63
SOURCES/strace-rh1466535.patch

@ -0,0 +1,63 @@ @@ -0,0 +1,63 @@
commit 1b93f4032a246e0aa43c2f424921e0aace57b994
Author: Eugene Syromyatnikov <evgsyr@gmail.com>
Date: Fri Aug 4 11:33:04 2017 +0200

Improve handling of unexpected tracees
When receiving a ptrace stop of an unexpected child, handle it
in the most transparent way possible:
- detach it instead of PTRACE_CONT'ing;
- send it the signal with which it has been stopped.
This should hopefully help to deal with processes that have been created
with misused CLONE_PTRACE flag set.
* strace.c (maybe_allocate_tcb) <WIFSTOPPED(status) && !followfork>:
Calculate the signal similarly to the way next_event does,
forward it to the unexpected tracee, and detach the tracee.

commit 7a35b711df127664e7430b2644ae92c75f3d5f67
Author: Dmitry V. Levin <ldv@altlinux.org>
Date: Sun Aug 6 13:27:07 2017 +0000

Fix handling of unexpected tracees when PTRACE_SEIZE is not in use
* strace.c (maybe_allocate_tcb) <WIFSTOPPED(status) && !followfork>:
The expected ptrace stop signal in case of !use seize is not
syscall_trap_sig but SIGSTOP. An idea of using PTRACE_GETSIGINFO to
distinguish signal stops that should be re-injected from other kinds
of stops didn't work out due to kernel implementation peculiarities
of initial ptrace-stop.

commit 330f4633d5103938982602b6f21f761570e3482c
Author: Dmitry V. Levin <ldv@altlinux.org>
Date: Sun Aug 6 15:10:56 2017 +0000

Simplify handling of unexpected tracees
* strace.c (maybe_allocate_tcb) <WIFSTOPPED(status) && !followfork>:
Remove the dance around possible re-injection of WSTOPSIG(status)
as the only observable stop here is the initial ptrace-stop.

diff -rup a/strace.c b/strace.c
--- a/strace.c 2017-08-31 14:04:21.000000000 -0400
+++ b/strace.c 2017-08-31 14:51:32.523134570 -0400
@@ -1958,11 +1958,15 @@ maybe_allocate_tcb(const int pid, int st
error_msg("Process %d attached", pid);
return tcp;
} else {
- /* This can happen if a clone call used
- * CLONE_PTRACE itself.
+ /*
+ * This can happen if a clone call misused CLONE_PTRACE itself.
+ *
+ * There used to be a dance around possible re-injection of
+ * WSTOPSIG(status), but it was later removed as the only
+ * observable stop here is the initial ptrace-stop.
*/
- ptrace(PTRACE_CONT, pid, (char *) 0, 0);
- error_msg("Stop of unknown pid %u seen, PTRACE_CONTed it", pid);
+ ptrace(PTRACE_DETACH, pid, NULL, 0L);
+ error_msg("Detached unknown pid %d", pid);
return NULL;
}
}

51
SOURCES/strace-rh1540954-1.patch

@ -0,0 +1,51 @@ @@ -0,0 +1,51 @@
commit 52231be034160c786735c6ae2f51ac7723c2e1fd
Author: Dmitry V. Levin <ldv@altlinux.org>
Date: Fri Sep 15 16:06:14 2017 +0000

Update MEMBARRIER_CMD_* constants
* xlat/membarrier_cmds.in: Add MEMBARRIER_CMD_PRIVATE_EXPEDITED
introduced by kernel commit v4.14-rc1~174^2^2^4.
* NEWS: Mention this.
* tests/membarrier.c (main): Update expected output.

diff -rup a/tests/membarrier.c b/tests/membarrier.c
--- a/tests/membarrier.c 2016-04-21 14:16:50.000000000 -0400
+++ b/tests/membarrier.c 2018-02-05 19:24:07.016341127 -0500
@@ -42,10 +42,23 @@ main(void)
printf("membarrier(0x3 /* MEMBARRIER_CMD_??? */, 255) = -1 %s (%m)\n",
errno2name());
if (errno != ENOSYS) {
- /* the test needs to be updated? */
- assert(syscall(__NR_membarrier, 0, 0) == 1);
- puts("membarrier(MEMBARRIER_CMD_QUERY, 0)"
- " = 0x1 (MEMBARRIER_CMD_SHARED)");
+ const char *text;
+ int rc = syscall(__NR_membarrier, 0, 0);
+
+ switch (rc) {
+ case 1:
+ text = "MEMBARRIER_CMD_SHARED";
+ break;
+ case 1|8:
+ text = "MEMBARRIER_CMD_SHARED|"
+ "MEMBARRIER_CMD_PRIVATE_EXPEDITED";
+ break;
+ default:
+ error_msg_and_fail("membarrier returned %#x, does"
+ " the test have to be updated?", rc);
+ }
+ printf("membarrier(MEMBARRIER_CMD_QUERY, 0) = %#x (%s)\n",
+ rc, text);
}
puts("+++ exited with 0 +++");
return 0;
diff -rup a/xlat/membarrier_cmds.in b/xlat/membarrier_cmds.in
--- a/xlat/membarrier_cmds.in 2015-11-16 19:40:22.000000000 -0500
+++ b/xlat/membarrier_cmds.in 2018-02-05 19:23:39.097820501 -0500
@@ -1,2 +1,3 @@
-MEMBARRIER_CMD_QUERY 0
-MEMBARRIER_CMD_SHARED 1
+MEMBARRIER_CMD_QUERY 0
+MEMBARRIER_CMD_SHARED 1
+MEMBARRIER_CMD_PRIVATE_EXPEDITED 8

60
SOURCES/strace-rh1540954-2.patch

@ -0,0 +1,60 @@ @@ -0,0 +1,60 @@
commit 73354cff1aae409d6ef7d8a539a2a0a09c2480f9
Author: Dmitry V. Levin <ldv@altlinux.org>
Date: Wed Nov 1 00:20:44 2017 +0000

Update MEMBARRIER_CMD_* constants
* xlat/membarrier_cmds.in: Add MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED
introduced by kernel commit v4.14-rc6~26.
* tests/membarrier.c (main): Update expected output.

diff --git a/tests/membarrier.c b/tests/membarrier.c
index 7d79724..75a8469 100644
--- a/tests/membarrier.c
+++ b/tests/membarrier.c
@@ -55,6 +55,11 @@ main(void)
text = "MEMBARRIER_CMD_SHARED|"
"MEMBARRIER_CMD_PRIVATE_EXPEDITED";
break;
+ case 1|8|16:
+ text = "MEMBARRIER_CMD_SHARED|"
+ "MEMBARRIER_CMD_PRIVATE_EXPEDITED|"
+ "MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED";
+ break;
default:
error_msg_and_fail("membarrier returned %#x, does"
" the test have to be updated?", rc);
diff --git a/xlat/membarrier_cmds.in b/xlat/membarrier_cmds.in
index 3baef17..e4fe06a 100644
--- a/xlat/membarrier_cmds.in
+++ b/xlat/membarrier_cmds.in
@@ -1,3 +1,4 @@
MEMBARRIER_CMD_QUERY 0
MEMBARRIER_CMD_SHARED 1
MEMBARRIER_CMD_PRIVATE_EXPEDITED 8
+MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED 16
diff -rup a/xlat/membarrier_cmds.h b/xlat/membarrier_cmds.h
--- a/xlat/membarrier_cmds.h 2016-05-31 07:35:42.000000000 -0400
+++ b/xlat/membarrier_cmds.h 2018-02-05 19:44:34.045234830 -0500
@@ -5,6 +5,12 @@
#if !(defined(MEMBARRIER_CMD_SHARED) || (defined(HAVE_DECL_MEMBARRIER_CMD_SHARED) && HAVE_DECL_MEMBARRIER_CMD_SHARED))
# define MEMBARRIER_CMD_SHARED 1
#endif
+#if !(defined(MEMBARRIER_CMD_PRIVATE_EXPEDITED) || (defined(HAVE_DECL_MEMBARRIER_CMD_PRIVATE_EXPEDITED) && HAVE_DECL_MEMBARRIER_CMD_PRIVATE_EXPEDITED))
+# define MEMBARRIER_CMD_PRIVATE_EXPEDITED 8
+#endif
+#if !(defined(MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED) || (defined(HAVE_DECL_MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED) && HAVE_DECL_MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED))
+# define MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED 16
+#endif
#ifdef IN_MPERS
@@ -16,6 +22,8 @@ static
const struct xlat membarrier_cmds[] = {
XLAT(MEMBARRIER_CMD_QUERY),
XLAT(MEMBARRIER_CMD_SHARED),
+ XLAT(MEMBARRIER_CMD_PRIVATE_EXPEDITED),
+ XLAT(MEMBARRIER_CMD_REGISTER_PRIVATE_EXPEDITED),
XLAT_END
};

241
SOURCES/strace-rh851457.patch

@ -0,0 +1,241 @@ @@ -0,0 +1,241 @@
diff -Nrup a/defs.h b/defs.h
--- a/defs.h 2016-05-29 20:29:14.000000000 -0400
+++ b/defs.h 2016-07-22 16:52:17.891092163 -0400
@@ -294,6 +294,9 @@ struct tcb {
int pid; /* If 0, this tcb is free */
int qual_flg; /* qual_flags[scno] or DEFAULT_QUAL_FLAGS + RAW */
int u_error; /* Error code */
+ int wait_status; /* Status from last wait() */
+ struct tcb *next_need_service;
+ /* Linked list of tracees found by wait()s */
long scno; /* System call number */
long u_arg[MAX_ARGS]; /* System call arguments */
#if defined(LINUX_MIPSN32) || defined(X32)
diff -Nrup a/strace.c b/strace.c
--- a/strace.c 2016-05-26 11:34:28.000000000 -0400
+++ b/strace.c 2016-07-22 16:52:17.895092175 -0400
@@ -2095,17 +2095,40 @@ startup_tcb(struct tcb *tcp)
}
}
+static int remembered_pid;
+static int remembered_status;
+
/* Returns true iff the main trace loop has to continue. */
static bool
trace(void)
{
int pid;
+ struct tcb *tcp;
+ struct tcb *found_tcps;
+ struct tcb **nextp;
+ struct tcb *next;
+ int wnohang = 0;
+
+ if (remembered_pid) {
+ pid = remembered_pid;
+ remembered_pid = 0;
+ if (debug_flag)
+ fprintf(stderr, " [remembered wait(%#x) = %u]\n",
+ remembered_status, pid);
+ tcp = pid2tcb(pid); /* can't be NULL */
+ tcp->wait_status = remembered_status;
+ tcp->next_need_service = NULL;
+ found_tcps = tcp;
+ goto process_saved_tcbs;
+ }
+
+ nextp = &found_tcps;
+ found_tcps = NULL;
+
+ while (1) { /* RH 851457 - collect tcbs */
int wait_errno;
int status;
- bool stopped;
- unsigned int sig;
unsigned int event;
- struct tcb *tcp;
struct rusage ru;
if (interrupted)
@@ -2134,14 +2157,24 @@ trace(void)
if (interactive)
sigprocmask(SIG_SETMASK, &empty_set, NULL);
- pid = wait4(-1, &status, __WALL, (cflag ? &ru : NULL));
+ pid = wait4(-1, &status, __WALL | wnohang, (cflag ? &ru : NULL));
wait_errno = errno;
if (interactive)
sigprocmask(SIG_BLOCK, &blocked_set, NULL);
+ if (pid <= 0 && wnohang) {
+ /* We had at least one successful
+ * wait() before. We waited
+ * with WNOHANG second time.
+ * Stop collecting more tracees,
+ * process what we already have.
+ */
+ break; /* out of collect tcbs */
+ }
+
if (pid < 0) {
if (wait_errno == EINTR)
- return true;
+ break; /* out of collect tcbs */
if (nprocs == 0 && wait_errno == ECHILD)
return false;
/*
@@ -2155,7 +2188,7 @@ trace(void)
if (pid == popen_pid) {
if (!WIFSTOPPED(status))
popen_pid = 0;
- return true;
+ break; /* out of collect tcbs */
}
if (debug_flag)
@@ -2167,14 +2200,9 @@ trace(void)
if (!tcp) {
tcp = maybe_allocate_tcb(pid, status);
if (!tcp)
- return true;
+ break; /* out of collect tcbs */
}
- if (WIFSTOPPED(status))
- get_regs(pid);
- else
- clear_regs();
-
event = (unsigned int) status >> 16;
if (event == PTRACE_EVENT_EXEC) {
@@ -2198,29 +2226,86 @@ trace(void)
if (detach_on_execve && !skip_one_b_execve) {
detach(tcp); /* do "-b execve" thingy */
- return true;
+ break; /* out of collect tcbs */
}
skip_one_b_execve = 0;
}
- /* Set current output file */
- current_tcp = tcp;
-
if (cflag) {
tv_sub(&tcp->dtime, &ru.ru_stime, &tcp->stime);
tcp->stime = ru.ru_stime;
}
+ /* If we waited and got a stopped task notification,
+ * subsequent wait may return the same pid again, for example,
+ * with SIGKILL notification. SIGKILL kills even stopped tasks.
+ * We must not add it to the list
+ * (one task can't be inserted twice in the list).
+ */
+ {
+ struct tcb *f = found_tcps;
+ while (f) {
+ if (f == tcp) {
+ remembered_pid = pid;
+ remembered_status = status;
+ goto process_saved_tcbs;
+ }
+ f = f->next_need_service;
+ }
+ }
+ /* It is important to not invert the order of tasks
+ * to process. For one, alloc_tcb() above picks newly forked
+ * threads in some order, processing of them and their parent
+ * should be in the same order, otherwise bad things happen
+ * (misinterpreted SIGSTOPs and such).
+ */
+ tcp->wait_status = status;
+ *nextp = tcp;
+ nextp = &tcp->next_need_service;
+ *nextp = NULL;
+ wnohang = WNOHANG;
+
+ } /* RH 851457 - collect tcbs */
+
+process_saved_tcbs:
+
+ for (tcp = found_tcps;
+ tcp;
+ tcp = next) { /* RH 851457 - process tcbs */
+ int status;
+ bool stopped;
+ unsigned int sig;
+ unsigned int event;
+
+ /* If the child exits, the TCP will get dropped and
+ thus we can't use it to find the next TCP needing
+ service. So we save the next TCP needing service
+ and used the saved value when the loop iterates. */
+ next = tcp->next_need_service;
+
+ status = tcp->wait_status;
+ pid = tcp->pid;
+
+ event = ((unsigned)status >> 16);
+
+ if (WIFSTOPPED(status))
+ get_regs(pid);
+ else
+ clear_regs();
+
+ /* Set current output file */
+ current_tcp = tcp;
+
if (WIFSIGNALED(status)) {
print_signalled(tcp, pid, status);
droptcb(tcp);
- return true;
+ continue; /* processing tcbs */
}
if (WIFEXITED(status)) {
print_exited(tcp, pid, status);
droptcb(tcp);
- return true;
+ continue; /* processing tcbs */
}
if (!WIFSTOPPED(status)) {
@@ -2230,7 +2315,7 @@ trace(void)
*/
error_msg("pid %u not stopped!", pid);
droptcb(tcp);
- return true;
+ continue; /* processing tcbs */
}
/* Is this the very first time we see this tracee stopped? */
@@ -2308,7 +2393,7 @@ show_stopsig:
exit_code = 1;
return false;
}
- return true;
+ continue; /* processing tcbs */
}
/* We don't have PTRACE_LISTEN support... */
goto restart_tracee;
@@ -2334,7 +2419,7 @@ show_stopsig:
* we can let this process to report its death to us
* normally, via WIFEXITED or WIFSIGNALED wait status.
*/
- return true;
+ continue; /* processing tcbs */
}
restart_tracee_with_sig_0:
@@ -2347,6 +2432,8 @@ restart_tracee:
return false;
}
+ } /* RH 851457 - process tcbs */
+
return true;
}

46
SOURCES/strace-rh948577.patch

@ -0,0 +1,46 @@ @@ -0,0 +1,46 @@
diff -Nrup a/Makefile.am b/Makefile.am
--- a/Makefile.am 2016-07-22 16:46:33.000000000 -0400
+++ b/Makefile.am 2016-07-22 16:49:00.260462649 -0400
@@ -37,7 +37,7 @@ endif
SUBDIRS = tests $(TESTS_M32) $(TESTS_MX32)
bin_PROGRAMS = strace
-man_MANS = strace.1
+man_MANS = strace.1 strace-log-merge.1
bin_SCRIPTS = strace-graph strace-log-merge
OS = linux
diff -Nrup a/Makefile.in b/Makefile.in
--- a/Makefile.in 2016-07-22 16:46:33.000000000 -0400
+++ b/Makefile.in 2016-07-22 16:49:00.267462671 -0400
@@ -610,7 +610,7 @@ top_srcdir = @top_srcdir@
@HAVE_M32_RUNTIME_TRUE@TESTS_M32 = tests-m32
@HAVE_MX32_RUNTIME_TRUE@TESTS_MX32 = tests-mx32
SUBDIRS = tests $(TESTS_M32) $(TESTS_MX32)
-man_MANS = strace.1
+man_MANS = strace.1 strace-log-merge.1
bin_SCRIPTS = strace-graph strace-log-merge
OS = linux
# ARCH is `i386', `m68k', `sparc', etc.
diff -Nrup a/strace-log-merge.1 b/strace-log-merge.1
--- a/strace-log-merge.1 1969-12-31 19:00:00.000000000 -0500
+++ b/strace-log-merge.1 2016-07-22 16:49:00.268462674 -0400
@@ -0,0 +1,18 @@
+.TH strace-log-merge 1 "15 April 2013" ".1" "strace-log-merge"
+.SH NAME
+strace-log-merge
+.SH SYNOPSIS
+strace-log-merge STRACE_LOG
+.SH DESCRIPTION
+strace-log-merge finds all STRACE_LOG.PID files, adds PID prefix to every line,
+the combines and sorts them, and prints the result to standard output.
+
+It is assumed that STRACE_LOGs were produced by strace with the -tt[t]
+option which prints timestamps (otherwise worting won't do any good).
+
+.SH OPTIONS
+--help Show help
+
+.SH SEE ALSO
+.SH BUGS
+

28
SOURCES/strace-rpmbuild-m64.patch

@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
diff -rup a/configure b/configure
--- a/configure 2016-05-31 07:35:55.000000000 -0400
+++ b/configure 2016-08-25 18:50:02.732609963 -0400
@@ -2585,6 +2585,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
+CFLAGS=`echo "" "$CFLAGS" | sed 's/ -m64 / /g'`
+CXXFLAGS=`echo "" "$CXXFLAGS" | sed 's/ -m64 / /g'`
+
+
ac_aux_dir=
for ac_dir in . "$srcdir"/.; do
if test -f "$ac_dir/install-sh"; then
diff -rup a/configure.ac b/configure.ac
--- a/configure.ac 2016-05-26 10:44:13.000000000 -0400
+++ b/configure.ac 2016-08-25 18:49:37.072638055 -0400
@@ -33,6 +33,10 @@ AC_PREREQ(2.57)
AC_INIT([strace],
m4_esyscmd([./git-version-gen .tarball-version]),
[strace-devel@lists.sourceforge.net])
+
+CFLAGS=`echo "" "$CFLAGS" | sed 's/ -m64 / /g'`
+CXXFLAGS=`echo "" "$CXXFLAGS" | sed 's/ -m64 / /g'`
+
AC_CONFIG_SRCDIR([strace.c])
AC_CONFIG_AUX_DIR([.])
AC_CONFIG_HEADERS([config.h])

24
SOURCES/strace-strict-aliasing.patch

@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
diff -rup a/Makefile.am b/Makefile.am
--- a/Makefile.am 2016-05-28 06:29:30.000000000 -0400
+++ b/Makefile.am 2016-07-22 16:46:33.499983037 -0400
@@ -45,7 +45,7 @@ OS = linux
ARCH = @arch@
ACLOCAL_AMFLAGS = -I m4
-AM_CFLAGS = $(WARN_CFLAGS)
+AM_CFLAGS = $(WARN_CFLAGS) -fno-strict-aliasing
AM_CPPFLAGS = -I$(builddir)/$(OS)/$(ARCH) \
-I$(srcdir)/$(OS)/$(ARCH) \
-I$(builddir)/$(OS) \
diff -rup a/Makefile.in b/Makefile.in
--- a/Makefile.in 2016-05-31 07:35:57.000000000 -0400
+++ b/Makefile.in 2016-07-22 16:46:33.509983070 -0400
@@ -616,7 +616,7 @@ OS = linux
# ARCH is `i386', `m68k', `sparc', etc.
ARCH = @arch@
ACLOCAL_AMFLAGS = -I m4
-AM_CFLAGS = $(WARN_CFLAGS)
+AM_CFLAGS = $(WARN_CFLAGS) -fno-strict-aliasing
AM_CPPFLAGS = -I$(builddir)/$(OS)/$(ARCH) \
-I$(srcdir)/$(OS)/$(ARCH) \
-I$(builddir)/$(OS) \

600
SPECS/strace.spec

@ -0,0 +1,600 @@ @@ -0,0 +1,600 @@
Summary: Tracks and displays system calls associated with a running process
Name: strace
Version: 4.12
Release: 6%{?dist}
License: BSD
Group: Development/Debuggers
URL: http://sourceforge.net/projects/strace/
Source: http://downloads.sourceforge.net/strace/%{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildRequires: libacl-devel, time

Patch1000: strace-strict-aliasing.patch
Patch1001: strace-rh948577.patch
Patch1002: strace-rh851457.patch
Patch1005: strace-no-net-tests.patch
Patch1007: strace-no-uio-tests.patch

Patch2001: strace-4.12-vhangup.patch
Patch2002: strace-4.12-chown.patch
Patch2003: strace-rh1377847.patch

Patch3001: strace-rpmbuild-m64.patch
Patch3002: strace-no-setgid-rhel6.patch
Patch3003: strace-rh1449935.patch
Patch3004: strace-rh1466535.patch
Patch3005: strace-rh1540954-1.patch
Patch3006: strace-rh1540954-2.patch

# In the past we had a separate strace64 package, these days the
# stndard 64 bit build provides that functionality. For tracing
# 32 bit applications on ppc and s390 we still have strace32
Obsoletes: strace64

%define strace32_arches ppc s390

%description
The strace program intercepts and records the system calls called and
received by a running process. Strace can print a record of each
system call, its arguments and its return value. Strace is useful for
diagnosing problems and debugging, as well as for instructional
purposes.

Install strace if you need a tool to track the system calls made and
received by a process.

%ifarch %{strace32_arches}
%package -n strace32
Summary: Tracks and displays system calls associated with a running process.
Group: Development/Debuggers

%description -n strace32
The strace program intercepts and records the system calls called and
received by a running process. Strace can print a record of each
system call, its arguments and its return value. Strace is useful for
diagnosing problems and debugging, as well as for instructional
purposes.

Install strace if you need a tool to track the system calls made and
received by a process.

This package provides the `strace32' program to trace 32-bit processes on
64-bit IBM P and Z series platforms.
%endif

%prep
%setup -q
%patch1000 -p1
%patch1001 -p1
%patch1002 -p1
%patch1005 -p1
%patch1007 -p1

%patch2001 -p1
%patch2002 -p1
%patch2003 -p1

%patch3001 -p1
%patch3002 -p1
%patch3003 -p1
%patch3004 -p1
%patch3005 -p1
%patch3006 -p1

%build
%configure
make %{?_smp_mflags}

%install
rm -rf %{buildroot}
make DESTDIR=%{buildroot} install

# remove unpackaged files from the buildroot
rm -f %{buildroot}%{_bindir}/strace-graph

%define copy64 ln
%if 0%{?rhel}
%if 0%{?rhel} < 6
%endif
%define copy64 cp -p
%endif

%ifarch %{strace32_arches}
%{copy64} %{buildroot}%{_bindir}/strace %{buildroot}%{_bindir}/strace32
%endif

%check
# Temporary until we dig deeper into the failures
%ifnarch s390 s390x ppc64 ppc64le
make -k check
%endif

%clean
rm -rf %{buildroot}

%files
%defattr(-,root,root)
%doc CREDITS ChangeLog ChangeLog-CVS COPYING NEWS README
%{_bindir}/strace
%{_bindir}/strace-log-merge
%{_mandir}/man1/*

%ifarch %{strace32_arches}
%files -n strace32
%defattr(-,root,root)
%{_bindir}/strace32
%endif

%changelog
* Wed Feb 7 2018 DJ Delorie <dj@redhat.com> - 4.12-6
- Update membarrier constants. (#1540954)

* Thu Sep 14 2017 DJ Delorie <dj@redhat.com> - 4.12-5
- Handle unexpected CLONE_PTRACE events. (#1466535)
- Skip tests for s390/ppc64le as well as s390x/ppc64.

* Fri May 12 2017 DJ Delorie <dj@redhat.com> - 4.12-4
- Fix typo in btrfs detection logic. (#1449935)

* Thu Apr 13 2017 DJ Delorie <dj@redhat.com> - 4.12-3
- Remove unneeded debug stuff. (#1377847)

* Mon Apr 10 2017 DJ Delorie <dj@redhat.com> - 4.12-2
- Adjust O_TMPFILE patch to include support even if the
build-time headers don't have it. (#1377847)

* Tue Feb 21 2017 DJ Delorie <dj@redhat.com> - 4.12-1
- Rebase to strace 4.12, which fixes...
+ Support BLKPG_RESIZE_PARTITION (#1329673)
+ Support getrandom() (#1374268)
+ Fix endless loop in io_submit (#1165548)
- Merge upstream patches for vhangup and chown
- Skip some tests on older kernels (RHEL 6)
- Remove -m64 that rpm macros adds
- Show mode with O_TMPFILE (#1377847)

* Thu Jul 30 2015 Jeff Law <law@redhat.com> 4.8-11
- Fix race which caused follow-fork option to not always
work (#1235833)

* Tue May 12 2015 Peter Robinson <pbrobinson@redhat.com> 4.8-10
- rebuild

* Fri Aug 15 2014 Jeff Law <law@redhat.com> 4.8-9
- Fix prototype for ptrace (#1129572)

* Fri Aug 1 2014 Jeff Law <law@redhat.com> 4.8-8
- update for ppc64 -- Dan Horak's patch from Fedora (#1122390)

* Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 4.8-7
- Mass rebuild 2014-01-24

* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 4.8-6
- Mass rebuild 2013-12-27

* Wed Dec 18 2013 Jeff Law <law@redhat.com> 4.8-5
- Don't pass NULL pointers to strcmp when sorting by syscall
name (#1044044)

* Thu Oct 3 2013 Jeff Law <law@redhat.com> - 4.8-4
- Build strace32 on ppc/s390 which can be installed alongside of strace
on ppc64/s390x (#980229)

* Wed Jul 17 2013 Jeff Law <law@redhat.com> - 4.8-3
- Refetch registers in collect_stopped_tcbs (#971352)

* Wed Jun 12 2013 Jeff Law <ldv@altlinux.org> - 4.8-2
- Don't dereference dropped TCP (#971352). From
Jan Stancek. Merged into patch for 851457.
- Disable "net" test as it is highly timing dependent
Merge into patch 851457.
- Bring forward patches lost after resyncing with Fedora.
- Patch to avoid strict aliasing warnings
- Patch to add man page for strace-log-merge (#948577)
- Patch to improve scheduling fairness (#851457)

* Mon Jun 03 2013 Dmitry V. Levin <ldv@altlinux.org> - 4.8-1
- New upstream release:
+ fixed ERESTARTNOINTR leaking to userspace on ancient kernels (#659382);
+ fixed decoding of *xattr syscalls (#885233);
+ fixed handling of files with 64-bit inode numbers by 32-bit strace (#912790);
+ added aarch64 support (#969858).

* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.7-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild

* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.7-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild

* Wed May 02 2012 Dmitry V. Levin <ldv@altlinux.org> 4.7-1
- New upstream release.
+ implemented proper handling of real SIGTRAPs (#162774).

* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild

* Mon Mar 14 2011 Dmitry V. Levin <ldv@altlinux.org> - 4.6-1
- New upstream release.
+ fixed a corner case in waitpid handling (#663547).

* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.5.20-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

* Tue Apr 13 2010 Roland McGrath <roland@redhat.com> - 4.5.20-1
- New upstream release, work mostly by Andreas Schwab and Dmitry V. Levin.
+ fixed potential stack buffer overflow in select decoder (#556678);
+ fixed FTBFS (#539044).

* Wed Oct 21 2009 Roland McGrath <roland@redhat.com> - 4.5.19-1
- New upstream release, work mostly by Dmitry V. Levin <ldv@altlinux.org>
+ exit/kill strace with traced process exitcode/signal (#105371);
+ fixed build on ARM EABI (#507576);
+ fixed display of 32-bit argv array on 64-bit architectures (#519480);
+ fixed display of 32-bit fcntl(F_SETLK) on 64-bit architectures (#471169);
+ fixed several bugs in strings decoder, including potential heap
memory corruption (#470529, #478324, #511035).

* Thu Aug 28 2008 Roland McGrath <roland@redhat.com> - 4.5.18-1
- build fix for newer kernel headers (#457291)
- fix CLONE_VFORK handling (#455078)
- Support new Linux/PPC system call subpage_prot and PROT_SAO flag.
- In sigaction system call, display sa_flags value along with SIG_DFL/SIG_IGN.

* Mon Jul 21 2008 Roland McGrath <roland@redhat.com> - 4.5.17-1
- handle O_CLOEXEC, MSG_CMSG_CLOEXEC (#365781)
- fix biarch stat64 decoding (#222275)
- fix spurious "..." in printing of environment strings (#358241)
- improve prctl decoding (#364401)
- fix hang wait on exited child with exited child (#354261)
- fix biarch fork/vfork (-f) tracing (#447475)
- fix biarch printing of negative argument kill (#430585)
- fix biarch decoding of error return values (#447587)
- fix -f tracing of CLONE_VFORK (#455078)
- fix ia64 register clobberation in -f tracing (#453438)
- print SO_NODEFER, SA_RESETHAND instead of SA_NOMASK, SA_ONESHOT (#455821)
- fix futex argument decoding (#448628, #448629)

* Fri Aug 3 2007 Roland McGrath <roland@redhat.com> - 4.5.16-1
- fix multithread issues (#240962, #240961, #247907)
- fix spurious SIGSTOP on early interrupt (#240986)
- fix utime for biarch (#247185)
- fix -u error message (#247170)
- better futex syscall printing (##241467)
- fix argv/envp printing with small -s settings, and for biarch
- new syscalls: getcpu, eventfd, timerfd, signalfd, epoll_pwait,
move_pages, utimensat

* Tue Jan 16 2007 Roland McGrath <roland@redhat.com> - 4.5.15-1
- biarch fixes (#179740, #192193, #171626, #173050, #218433, #218043)
- fix -ff -o behavior (#204950, #218435, #193808, #219423)
- better quotactl printing (#118696)
- *at, inotify*, pselect6, ppoll and unshare syscalls (#178633, #191275)
- glibc-2.5 build fixes (#209856)
- memory corruption fixes (#200621
- fix race in child setup under -f (#180293)
- show ipc key values in hex (#198179, #192182)
- disallow -c with -ff (#187847)
- Resolves: RHBZ #179740, RHBZ #192193, RHBZ #204950, RHBZ #218435
- Resolves: RHBZ #193808, RHBZ #219423, RHBZ #171626, RHBZ #173050
- Resolves: RHBZ #218433, RHBZ #218043, RHBZ #118696, RHBZ #178633
- Resolves: RHBZ #191275, RHBZ #209856, RHBZ #200621, RHBZ #180293
- Resolves: RHBZ #198179, RHBZ #198182, RHBZ #187847

* Mon Nov 20 2006 Jakub Jelinek <jakub@redhat.com> - 4.5.14-4
- Fix ia64 syscall decoding (#206768)
- Fix build with glibc-2.4.90-33 and up on all arches but ia64
- Fix build against 2.6.18+ headers

* Tue Aug 22 2006 Roland McGrath <roland@redhat.com> - 4.5.14-3
- Fix bogus decoding of syscalls >= 300 (#201462, #202620).

* Fri Jul 14 2006 Jesse Keating <jkeating@redhat.com> - 4.5.14-2
- rebuild

* Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> - 4.5.14-1.2
- bump again for long double bug on ppc{,64}

* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 4.5.14-1.1
- rebuilt for new gcc4.1 snapshot and glibc changes

* Mon Jan 16 2006 Roland McGrath <roland@redhat.com> - 4.5.14-1
- Fix biarch decoding of socket syscalls (#174354).
- Fix biarch -e support (#173986).
- Accept numeric syscalls in -e (#174798).
- Fix ipc syscall decoding (#164755).
- Improve msgrcv printing (#164757).
- Man page updates (#165375).
- Improve mount syscall printing (#165377).
- Correct printing of restarting syscalls (#165469).

* Wed Aug 3 2005 Roland McGrath <roland@redhat.com> - 4.5.13-1
- Fix setsockopt decoding on 64-bit (#162449).
- Fix typos in socket option name strings (#161578).
- Display more IPV6 socket options by name (#162450).
- Don't display inappropriate syscalls for -e trace=file (#159340).
- New selector type -e trace=desc for file-descriptor using calls (#159400).
- Fix 32-bit old_mmap syscall decoding on x86-64 (#162467, #164215).
- Fix errors detaching from multithreaded process on interrupt (#161919).
- Note 4.5.12 fix for crash handling bad signal numbers (#162739).

* Wed Jun 8 2005 Roland McGrath <roland@redhat.com> - 4.5.12-1
- Fix known syscall recognition for IA32 processes on x86-64 (#158934).
- Fix bad output for ptrace on x86-64 (#159787).
- Fix potential buffer overruns (#151570, #159196).
- Make some diagnostics more consistent (#159308).
- Update PowerPC system calls.
- Better printing for Linux aio system calls.
- Don't truncate statfs64 fields to 32 bits in output (#158243).
- Cosmetic code cleanups (#159688).

* Tue Mar 22 2005 Roland McGrath <roland@redhat.com> - 4.5.11-1
- Build tweaks.
- Note 4.5.10 select fix (#151570).

* Mon Mar 14 2005 Roland McGrath <roland@redhat.com> - 4.5.10-1
- Fix select handling on nonstandard fd_set sizes.
- Don't print errors for null file name pointers.
- Fix initial execve output with -i (#143365).

* Fri Feb 4 2005 Roland McGrath <roland@redhat.com> - 4.5.9-2
- update ia64 syscall list (#146245)
- fix x86_64 syscall argument extraction for 32-bit processes (#146093)
- fix -e signal=NAME parsing (#143362)
- fix x86_64 exit_group syscall handling
- improve socket ioctl printing (#138223)
- code cleanups (#143369, #143370)
- improve mount flags printing (#141932)
- support symbolic printing of x86_64 arch_prctl parameters (#142667)
- fix potential crash in getxattr printing

* Tue Oct 19 2004 Roland McGrath <roland@redhat.com> - 4.5.8-1
- fix multithreaded exit handling (#132150, #135254)
- fix ioctl name matching (#129808)
- print RTC_* ioctl structure contents (#58606)
- grok epoll_* syscalls (#134463)
- grok new RLIMIT_* values (#133594)
- print struct cmsghdr contents for sendmsg (#131689)
- fix clock_* and timer_* argument output (#131420)

* Tue Aug 31 2004 Roland McGrath <roland@redhat.com> - 4.5.7-2
- new upstream version, misc fixes and updates (#128091, #129166, #128391, #129378, #130965, #131177)

* Mon Jul 12 2004 Roland McGrath <roland@redhat.com> 4.5.6-1
- new upstream version, updates ioctl lists (#127398), fixes quotactl (#127393), more ioctl decoding (#126917)

* Sun Jun 27 2004 Roland McGrath <roland@redhat.com> 4.5.5-1
- new upstream version, fixes x86-64 biarch support (#126547)

* Tue Jun 15 2004 Elliot Lee <sopwith@redhat.com> 4.5.4-2
- rebuilt

* Thu Jun 3 2004 Roland McGrath <roland@redhat.com> 4.5.4-0.FC1
- rebuilt for FC1 update

* Thu Jun 3 2004 Roland McGrath <roland@redhat.com> 4.5.4-1
- new upstream version, more ioctls (#122257), minor fixes

* Fri Apr 16 2004 Roland McGrath <roland@redhat.com> 4.5.3-1
- new upstream version, mq_* calls (#120701), -p vs NPTL (#120462), more fixes (#118694, #120541, #118685)

* Tue Mar 02 2004 Elliot Lee <sopwith@redhat.com> 4.5.2-1.1
- rebuilt

* Mon Mar 1 2004 Roland McGrath <roland@redhat.com> 4.5.2-1
- new upstream version, sched_* calls (#116990), show core flag (#112117)

* Fri Feb 13 2004 Elliot Lee <sopwith@redhat.com>
- rebuilt

* Thu Nov 13 2003 Roland McGrath <roland@redhat.com> 4.5.1-1
- new upstream version, more fixes (#108012, #105366, #105359, #105358)

* Tue Sep 30 2003 Roland McGrath <roland@redhat.com> 4.5-3
- revert bogus s390 fix

* Thu Sep 25 2003 Roland McGrath <roland@redhat.com> 4.5-1.2.1AS
- rebuilt for 2.1AS erratum

* Wed Sep 24 2003 Roland McGrath <roland@redhat.com> 4.5-2
- rebuilt

* Wed Sep 24 2003 Roland McGrath <roland@redhat.com> 4.5-1
- new upstream version, more fixes (#101499, #104365)

* Thu Jul 17 2003 Roland McGrath <roland@redhat.com> 4.4.99-2
- rebuilt

* Thu Jul 17 2003 Roland McGrath <roland@redhat.com> 4.4.99-1
- new upstream version, groks more new system calls, PF_INET6 sockets

* Tue Jun 10 2003 Roland McGrath <roland@redhat.com> 4.4.98-1
- new upstream version, more fixes (#90754, #91085)

* Wed Jun 04 2003 Elliot Lee <sopwith@redhat.com>
- rebuilt

* Sun Mar 30 2003 Roland McGrath <roland@redhat.com> 4.4.96-1
- new upstream version, handles yet more 2.5 syscalls, x86_64 & ia64 fixes

* Mon Feb 24 2003 Elliot Lee <sopwith@redhat.com> 4.4.95-2
- rebuilt

* Mon Feb 24 2003 Roland McGrath <roland@redhat.com> 4.4.95-1
- new upstream version, fixed getresuid/getresgid (#84959)

* Wed Feb 19 2003 Roland McGrath <roland@redhat.com> 4.4.94-1
- new upstream version, new option -E to set environment variables (#82392)

* Wed Jan 22 2003 Tim Powers <timp@redhat.com> 4.4.93-2
- rebuilt

* Tue Jan 21 2003 Roland McGrath <roland@redhat.com> 4.4.93-1
- new upstream version, fixes ppc and s390 bugs, adds missing ptrace requests

* Fri Jan 10 2003 Roland McGrath <roland@redhat.com> 4.4.91-1
- new upstream version, fixes -f on x86-64

* Fri Jan 10 2003 Roland McGrath <roland@redhat.com> 4.4.90-1
- new upstream version, fixes all known bugs modulo ia64 and s390 issues

* Fri Jan 03 2003 Florian La Roche <Florian.LaRoche@redhat.de> 4.4-11
- add further s390 patch from IBM

* Wed Nov 27 2002 Tim Powers <timp@redhat.com> 4.4-10
- remove unpackaged files from the buildroot

* Mon Oct 07 2002 Phil Knirsch <pknirsch@redhat.com> 4.4-9.1
- Added latest s390(x) patch.

* Fri Sep 06 2002 Karsten Hopp <karsten@redhat.de> 4.4-9
- preliminary x86_64 support with an ugly patch to help
debugging. Needs cleanup!

* Mon Sep 2 2002 Jakub Jelinek <jakub@redhat.com> 4.4-8
- newer version of the clone fixing patch (Roland McGrath)
- aio syscalls for i386/ia64/ppc (Ben LaHaise)

* Wed Aug 28 2002 Jakub Jelinek <jakub@redhat.com> 4.4-7
- fix strace -f (Roland McGrath, #68994)
- handle ?et_thread_area, SA_RESTORER (Ulrich Drepper)

* Fri Jun 21 2002 Jakub Jelinek <jakub@redhat.com> 4.4-6
- handle futexes, *xattr, sendfile64, etc. (Ulrich Drepper)
- handle modify_ldt (#66894)

* Thu May 23 2002 Tim Powers <timp@redhat.com>
- automated rebuild

* Tue Apr 16 2002 Jakub Jelinek <jakub@redhat.com> 4.4-4
- fix for the last patch by Jeff Law (#62591)

* Mon Mar 4 2002 Preston Brown <pbrown@redhat.com> 4.4-3
- integrate patch from Jeff Law to eliminate hang tracing threads

* Sat Feb 23 2002 Florian La Roche <Florian.LaRoche@redhat.de>
- minor update from debian tar-ball

* Wed Jan 02 2002 Florian La Roche <Florian.LaRoche@redhat.de>
- update to 4.4

* Sun Jul 22 2001 Florian La Roche <Florian.LaRoche@redhat.de>
- disable s390 patches, they are already included

* Wed Jul 18 2001 Preston Brown <pbrown@redhat.com> 4.3-1
- new upstream version. Seems to have integrated most new syscalls
- tracing threaded programs is now functional.

* Mon Jun 11 2001 Than Ngo <than@redhat.com>
- port s390 patches from IBM

* Wed May 16 2001 Nalin Dahyabhai <nalin@redhat.com>
- modify new syscall patch to allocate enough heap space in setgroups32()

* Wed Feb 14 2001 Jakub Jelinek <jakub@redhat.com>
- #include <time.h> in addition to <sys/time.h>

* Fri Jan 26 2001 Karsten Hopp <karsten@redhat.com>
- clean up conflicting patches. This happened only
when building on S390

* Fri Jan 19 2001 Bill Nottingham <notting@redhat.com>
- update to CVS, reintegrate ia64 support

* Fri Dec 8 2000 Bernhard Rosenkraenzer <bero@redhat.com>
- Get S/390 support into the normal package

* Sat Nov 18 2000 Florian La Roche <Florian.LaRoche@redhat.de>
- added S/390 patch from IBM, adapting it to not conflict with
IA64 patch

* Sat Aug 19 2000 Jakub Jelinek <jakub@redhat.com>
- doh, actually apply the 2.4 syscalls patch
- make it compile with 2.4.0-test7-pre4+ headers, add
getdents64 and fcntl64

* Thu Aug 3 2000 Jakub Jelinek <jakub@redhat.com>
- add a bunch of new 2.4 syscalls (#14036)

* Wed Jul 12 2000 Prospector <bugzilla@redhat.com>
- automatic rebuild
- excludearch ia64

* Fri Jun 2 2000 Matt Wilson <msw@redhat.com>
- use buildinstall for FHS

* Wed May 24 2000 Jakub Jelinek <jakub@redhat.com>
- make things compile on sparc
- fix sigreturn on sparc

* Fri Mar 31 2000 Bill Nottingham <notting@redhat.com>
- fix stat64 misdef (#10485)

* Tue Mar 21 2000 Michael K. Johnson <johnsonm@redhat.com>
- added ia64 patch

* Thu Feb 03 2000 Cristian Gafton <gafton@redhat.com>
- man pages are compressed
- version 4.2 (why are we keeping all these patches around?)

* Sat Nov 27 1999 Jeff Johnson <jbj@redhat.com>
- update to 4.1 (with sparc socketcall patch).

* Fri Nov 12 1999 Jakub Jelinek <jakub@redhat.com>
- fix socketcall on sparc.

* Thu Sep 02 1999 Cristian Gafton <gafton@redhat.com>
- fix KERN_SECURELVL compile problem

* Tue Aug 31 1999 Cristian Gafton <gafton@redhat.com>
- added alpha patch from HJLu to fix the osf_sigprocmask interpretation

* Sat Jun 12 1999 Jeff Johnson <jbj@redhat.com>
- update to 3.99.1.

* Wed Jun 2 1999 Jeff Johnson <jbj@redhat.com>
- add (the other :-) jj's sparc patch.

* Wed May 26 1999 Jeff Johnson <jbj@redhat.com>
- upgrade to 3.99 in order to
- add new 2.2.x open flags (#2955).
- add new 2.2.x syscalls (#2866).
- strace 3.1 patches carried along for now.

* Sun May 16 1999 Jeff Johnson <jbj@redhat.com>
- don't rely on (broken!) rpm %%patch (#2735)

* Tue Apr 06 1999 Preston Brown <pbrown@redhat.com>
- strip binary

* Sun Mar 21 1999 Cristian Gafton <gafton@redhat.com>
- auto rebuild in the new build environment (release 16)

* Tue Feb 9 1999 Jeff Johnson <jbj@redhat.com>
- vfork est arrive!

* Tue Feb 9 1999 Christopher Blizzard <blizzard@redhat.com>
- Add patch to follow clone() syscalls, too.

* Sun Jan 17 1999 Jeff Johnson <jbj@redhat.com>
- patch to build alpha/sparc with glibc 2.1.

* Thu Dec 03 1998 Cristian Gafton <gafton@redhat.com>
- patch to build on ARM

* Wed Sep 30 1998 Jeff Johnson <jbj@redhat.com>
- fix typo (printf, not tprintf).

* Sat Sep 19 1998 Jeff Johnson <jbj@redhat.com>
- fix compile problem on sparc.

* Tue Aug 18 1998 Cristian Gafton <gafton@redhat.com>
- buildroot

* Mon Jul 20 1998 Cristian Gafton <gafton@redhat.com>
- added the umoven patch from James Youngman <jay@gnu.org>
- fixed build problems on newer glibc releases

* Mon Jun 08 1998 Prospector System <bugs@redhat.com>
- translations modified for de, fr, tr

Loading…
Cancel
Save