release-request-31f776a2-f093-4abe-9235-1702f8bafc9d-for-git_oc-dr1-release-4054002 snap-temp-L42500000069020014

Change-Id: I7763e909a3cd18892cf980dca0cc75bdfd7a0f2b
diff --git a/Android.mk b/Android.mk
index a372697..c348c1a 100644
--- a/Android.mk
+++ b/Android.mk
@@ -39,8 +39,8 @@
 
 include $(CLEAR_VARS)
 
-strace_version := $(shell grep strace $(LOCAL_PATH)/debian/changelog | \
-                          head -1 | cut -d " " -f 2)
+strace_version := "4.17"
+strace_year := "2017"
 
 LOCAL_SRC_FILES := \
     access.c \
@@ -120,6 +120,7 @@
     mtd.c \
     net.c \
     netlink.c \
+    nsfs.c \
     numa.c \
     oldstat.c \
     open.c \
@@ -133,6 +134,7 @@
     print_mq_attr.c \
     print_msgbuf.c \
     print_sigevent.c \
+    print_sg_req_info.c \
     print_statfs.c \
     print_struct_stat.c \
     print_time.c \
@@ -153,6 +155,8 @@
     renameat.c \
     resource.c \
     rtc.c \
+    rt_sigframe.c \
+    rt_sigreturn.c \
     sched.c \
     scsi.c \
     seccomp.c \
@@ -172,6 +176,7 @@
     stat64.c \
     statfs.c \
     statfs64.c \
+    statx.c \
     strace.c \
     swapon.c \
     sync_file_range.c \
@@ -247,6 +252,7 @@
     -DHAVE_POLL_H=1 \
     -DHAVE_PRCTL=1 \
     -DHAVE_PWRITEV=1 \
+    -DHAVE_SCSI_SG_H=1 \
     -DHAVE_SENDMSG=1 \
     -DHAVE_SIGACTION=1 \
     -DHAVE_SIG_ATOMIC_T=1 \
@@ -291,7 +297,8 @@
     -DMAJOR_IN_SYSMACROS \
     -DPACKAGE_NAME='"strace"' \
     -DPACKAGE_URL='"https://strace.io"' \
-    -DPACKAGE_VERSION='"$(strace_version)"' \
+    -DPACKAGE_VERSION='$(strace_version)' \
+    -DCOPYRIGHT_YEAR='$(strace_year)' \
     -DSIZEOF_KERNEL_LONG_T=SIZEOF_LONG \
     -DSIZEOF_OFF_T=SIZEOF_LONG \
     -DSIZEOF_LONG_LONG=8 \
diff --git a/CREDITS b/CREDITS
index 3bd4be9..d4fade1 100644
--- a/CREDITS
+++ b/CREDITS
@@ -13,6 +13,7 @@
 strace-devel@lists.sourceforge.net mailing list.
 
 	Aaron Ucko <ucko@vax1.rockhurst.edu>
+	Abhishek Tiwari <erabhishektiwarics@gmail.com>
 	Adrien Kunysz <adrien@kunysz.be>
 	Alexey Neyman <stilor@att.net>
 	Ali Polatel <alip@exherbo.org>
@@ -36,6 +37,7 @@
 	Chris Zankel <chris@zankel.net>
 	Christian Svensson <blue@cmd.nu>
 	D.J. Barrow <djbarrow@de.ibm.com>
+	Damien Profeta <damien.profeta@amadeus.com>
 	Damir Shayhutdinov <damir@altlinux.ru>
 	Daniel P. Berrange <berrange@redhat.com>
 	David Daney <ddaney@caviumnetworks.com>
@@ -48,6 +50,7 @@
 	Douglas Mencken <dougmencken@gmail.com>
 	Dr. David Alan Gilbert <dgilbert@redhat.com>
 	Edgar E. Iglesias <edgar.iglesias@gmail.com>
+	Edgar Kaziahmedov <edos@linux.com>
 	Elliott Hughes <enh@google.com>
 	Elvira Khabirova <lineprinter0@gmail.com>
 	Erik Johansson <erik@ejohansson.se>
@@ -126,6 +129,7 @@
 	Nate Eldredge <nate@cartsys.com>
 	Nate Sammons <nate@users.sourceforge.net>
 	Neil Campbell <lists@thebatcave.org.uk>
+	Nikolay Marchuk <marchuk.nikolay.a@gmail.com>
 	Paolo Bonzini <pbonzini@redhat.com>
 	Patrik Jakobsson <patrik.jakobsson@linux.intel.com>
 	Paul Mundt <lethal@linux-sh.org>
@@ -143,9 +147,11 @@
 	Richard Henderson <richard@twiddle.tamu.edu>
 	Richard Hirst <rhirst@linuxcare.com>
 	Richard W.M. Jones <rjones@redhat.com>
+	Rishi Bhatt <bhatt.rishi062@gmail.com>
 	Roland Borde <bo@uebemc.siemens.de>
 	Roland McGrath <roland@redhat.com>
 	Sami Farin <safari@u.safari.iki.fi>
+	Sandhya Bankar <bankarsandhya512@gmail.com>
 	Scott Tsai <scottt958@yahoo.com.tw>
 	Sean Stangl <sstangl@mozilla.com>
 	Sebastian Pipping <sebastian@pipping.org>
@@ -170,6 +176,7 @@
 	Topi Miettinen <Topi.Miettinen@nic.fi>
 	Ulrich Drepper <drepper@redhat.com>
 	Vicente Olivert Riera <vincent@gentoo.org>
+	Victor Krapivensky <krapivenskiy.va@phystech.edu>
 	Vineet Gupta <Vineet.Gupta1@synopsys.com>
 	Wang Chao <wang.chao@cn.fujitsu.com>
 	Wichert Akkerman <wichert@deephackmode.org>
diff --git a/ChangeLog b/ChangeLog
index d0bf7d5..01f6563 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,2972 @@
+2017-05-24  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Prepare for 4.17 release.
+	* NEWS: Update for 4.17 release.
+
+	powerpc64, sparc, sparc64: wire up statx syscall.
+	* linux/powerpc64/syscallent.h [383]: Add statx entry.
+	* linux/sparc/syscallent.h [360]: Likewise.
+	* linux/sparc64/syscallent.h [360]: Likewise.
+
+2017-05-23  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Fix compat personality support for sgetmask syscall.
+	* signal.c (SYS_FUNC(sgetmask)): Replace sprintsigmask_val
+	with sprint_old_sigmask_val.
+	* tests/sxetmask.c (main): Check decoding of signal mask containing
+	RT signals.
+
+2017-05-22  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Fix decoding of sgetmask and ssetmask syscalls.
+	Old ssetmask syscall takes an argument and returns a value of type int.
+	Old sgetmask syscall may return an error.
+
+	* signal.c (SYS_FUNC(ssetmask)): Explicitly convert the argument
+	and return value to unsigned int, print it using sprint_old_sigmask_val.
+	(SYS_FUNC(sgetmask)): Do not print the mask in case of syserror.
+	* tests/sxetmask.c: New file.
+	* tests/gen_tests.in (sxetmask): New entry.
+	* tests/pure_executables.list: Add sxetmask.
+	* tests/.gitignore: Likewise.
+	* NEWS: Mention this fix.
+
+2017-05-22  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	Add copyright headers.
+
+2017-05-22  Eugene Syromyatnikov  <evgsyr@gmail.com>
+	    Elvira Khabirova  <lineprinter0@gmail.com>
+
+	Add scripts for automating copyright notices update.
+	* maint/update_copyright_years.awk: New file.
+	* maint/update_copyright_years.sh: Likewise.
+
+2017-05-22  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	Fix typos in copyright notices.
+
+	unwind.c: remove non-ASCII character from comment.
+
+2017-05-21  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Rename sys_sig[gs]etmask to sys_s[gs]etmask to match syscall names.
+	* signal.c (SYS_FUNC(sigsetmask)): Rename to SYS_FUNC(ssetmask).
+	(SYS_FUNC(siggetmask)): Rename to SYS_FUNC(sgetmask).
+	* linux/arm/syscallent.h (sgetmask, ssetmask): Update sys_func.
+	* linux/bfin/syscallent.h: Likewise.
+	* linux/crisv10/syscallent.h: Likewise.
+	* linux/hppa/syscallent.h: Likewise.
+	* linux/i386/syscallent.h: Likewise.
+	* linux/m68k/syscallent.h: Likewise.
+	* linux/microblaze/syscallent.h: Likewise.
+	* linux/mips/syscallent-o32.h: Likewise.
+	* linux/powerpc/syscallent.h: Likewise.
+	* linux/powerpc64/syscallent.h: Likewise.
+	* linux/sh/syscallent.h: Likewise.
+	* linux/sh64/syscallent.h: Likewise.
+	* linux/sparc/syscallent.h: Likewise.
+	* linux/sparc64/syscallent.h: Likewise.
+
+	tests: enhance sigsuspend.test.
+	* tests/sigsuspend.c (sigtxt): New variable.
+	(main): Change signal masks to contain all signals except USR1 and USR2.
+
+2017-05-20  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Fix compat personality support for old sigsuspend syscall.
+	* signal.c (sprint_old_sigmask_val): New function.
+	(tprint_old_sigmask_val): New macro.
+	(SYS_FUNC(sigsuspend)): Use it.
+
+2017-05-16  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Move errnoent.sh, signalent.sh, and syscallent.sh to maint subdirectory.
+	Also do not include them into release tarballs.  These files are
+	intended for developers who are expected to use a git repository.
+
+	* errnoent.sh: Move to maint subdirectory.
+	* signalent.sh: Likewise.
+	* syscallent.sh: Likewise.
+	* HACKING-scripts: Update.
+	* Makefile.am (EXTRA_DIST): Remove errnoent.sh, signalent.sh,
+	and syscallent.sh.
+
+2017-05-16  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Do not include maint subdirectory into release tarballs.
+	These files are intended for developers who are expected to use
+	a git repository.
+
+	* Makefile.am (EXTRA_DIST): Remove maint/ioctls_gen.sh,
+	maint/ioctls_hex.sh, maint/ioctls_sym.sh, and maint/print_ioctlent.c.
+
+2017-05-01  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	linux/ia64/syscallent.h: remove tabulation, add spaces in file comment.
+
+	linux/mtd-abi.h: remove non-ASCII character from file comment.
+
+2017-05-01  Dmitry V. Levin  <ldv@altlinux.org>
+
+	alpha, cris, mips, ppc, sh, sparc: fix decoding of sigsuspend syscall.
+	On some architectures old sigsuspend syscall takes the signal mask from
+	the 3rd argument, on some from the 1st.  And, if it wasn't peculiar
+	enough, the signal mask is passed by value on all architectures except
+	mips where it's passed by reference.
+
+	* signal.c (SYS_FUNC(sigsuspend)): Take the signal mask from the last
+	argument.
+	* linux/alpha/syscallent.h (sigsuspend): Set nargs to 1.
+	* linux/crisv10/syscallent.h: Likewise.
+	* linux/mips/syscallent-o32.h: Likewise.
+	* linux/powerpc/syscallent.h: Likewise.
+	* linux/powerpc64/syscallent.h: Likewise.
+	* linux/sh/syscallent.h: Likewise.
+	* linux/sh64/syscallent.h: Likewise.
+	* linux/sparc/syscallent.h: Likewise.
+	* linux/sparc64/syscallent.h: Likewise.
+	* tests/sigsuspend.c: New file.
+	* tests/gen_tests.in (sigsuspend): New entry.
+	* tests/pure_executables.list: Add sigsuspend.
+	* tests/.gitignore: Likewise.
+	* NEWS: Mention this fix.
+
+2017-05-01  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: raise default timeout for individual tests.
+	Recently added tests based on pure_executables.list are quite slow
+	by their nature, the one minute default timeout is no longer enough
+	for some of not so fast architectures.
+
+	* tests/init.sh (TIMEOUT_DURATION): Raise from 60 to 120.
+
+2017-05-01  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	Update NEWS.
+
+2017-04-29  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Update TCP_* constants.
+	* xlat/socktcpoptions.in: Add TCP_FASTOPEN_CONNECT introduced
+	by linux kernel commit v4.11-rc1~124^2~321^2.
+
+2017-04-28  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Update AF_* constants.
+	* xlat/addrfams.in: Add AF_SMC introduced by linux kernel
+	commit v4.11-rc1~94^2~43^2~13.
+
+2017-04-27  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: enhance madvise decoder check.
+	* tests/mmap.c (main): Remove madvise check.
+	* tests/madvise.c: New file.
+	* tests/gen_tests.in (madvise): New entry.
+	* tests/.gitignore: Add madvise.
+	* tests/pure_executables.list: Likewise.
+
+2017-04-25  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	tests: add -etrace=?... test.
+	Check for some architecture-specific syscalls which are not present
+	on most architectures.
+
+	* gen_tests.in: Add trace_question test.
+	* tests/trace_question.in: New file.
+	* tests/Makefile.am (EXTRA_DIST): Add it.
+
+2017-04-25  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	tests: add more information to generated header comments.
+	* tests/gen_tests.sh: Update header comment with the source string
+	used for test generation.
+
+	tests: move generated common header comment into a variable.
+	* tests/gen_tests.sh: Move generated file header comment
+	into a variable, use it in all cases.
+
+2017-04-25  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: use TAIL_ALLOC_OBJECT_CONST_PTR in v4l2 test.
+	* tests/ioctl_v4l2.c (main): Use TAIL_ALLOC_OBJECT_CONST_PTR.
+
+2017-04-25  Edgar Kaziahmedov  <edos@linux.com>
+
+	tests: Check decoding of VIDIOC_G/S_TUNER's arg.
+	* tests/ioctl_v4l2.c (main): Add checks for VIDIOC_G/S_TUNER's arg.
+
+	v4l2: Add decoding for VIDIOC_G/S_TUNER's arg.
+	* v4l2.c: Include "xlat/v4l2_tuner_types.h", "xlat/v4l2_tuner_capabilities.h",
+	"xlat/v4l2_tuner_rxsubchanses.h", and "xlat/v4l2_tuner_audmodes.h".
+	(print_v4l2_tuner): New function. Add decoding for VIDIOC_G/S_TUNER's arg.
+	(v4l2_ioctl): Add new cases for decoding VIDIOC_G/S_TUNER's arg.
+	* xlat/v4l2_tuner_types.in: Add V4L2_TUNER_RADIO and
+	V4L2_TUNER_ANALOG_TV introduced by linux kernel commit
+	2.5.46~39^2~23^2~4.
+	Add V4L2_TUNER_DIGITAL_TV introduced by linux kernel
+	commit v2.6.11-rc4~55^2~20.
+	Add V4L2_TUNER_ADC and V4L2_TUNER_RF introduced by linux kernel commit
+	v3.15-rc1~85^2~215.
+	Add V4L2_TUNER_SDR introduced by linux kernel commit v4.4-rc1~118^2~17
+	(as the replacement of V4L2_TUNER_ADC).
+	* xlat/v4l2_tuner_capabilities.in: Add V4L2_TUNER_CAP_LOW,
+	V4L2_TUNER_CAP_NORM, V4L2_TUNER_CAP_STEREO, V4L2_TUNER_CAP_LANG2,
+	V4L2_TUNER_CAP_SAP, and V4L2_TUNER_CAP_LANG1 introduced by linux kernel
+	commit 2.5.46~39^2~23^2~4.
+	Add V4L2_TUNER_CAP_HWSEEK_BOUNDED and V4L2_TUNER_CAP_HWSEEK_WRAP
+	introduced by linux kernel commit v3.6-rc1~28^2~306.
+	Add V4L2_TUNER_CAP_RDS introduced by linux commit v2.6.32-rc1~679^2~189.
+	Add V4L2_TUNER_CAP_RDS_BLOCK_IO and V4L2_TUNER_CAP_RDS_CONTROLS
+	introduced by linux kernel commit v2.6.37-rc1~64^2~110.
+	Add V4L2_TUNER_CAP_FREQ_BANDS introduced by linux kernel commit
+	v3.6-rc1~28^2~46.
+	Add V4L2_TUNER_CAP_HWSEEK_PROG_LIM introduced by linux kernel commit
+	v3.6-rc1~28^2~40.
+	Add V4L2_TUNER_CAP_1HZ introduced by linux kernel commit
+	v3.15-rc1~85^2~214.
+	* xlat/v4l2_tuner_audmodes.in: Add V4L2_TUNER_MODE_MONO,
+	V4L2_TUNER_MODE_STEREO, V4L2_TUNER_MODE_LANG2, V4L2_TUNER_MODE_SAP, and
+	V4L2_TUNER_MODE_LANG1 introduced by linux kernel commit
+	2.5.46~39^2~23^2~4.
+	Add V4L2_TUNER_MODE_LANG1_LANG2 introduced by linux kernel commit
+	v2.6.17-rc1~739^2~9.
+	* xlat/v4l2_tuner_rxsubchanses.in: Add V4L2_TUNER_SUB_MONO,
+	V4L2_TUNER_SUB_STEREO, V4L2_TUNER_SUB_LANG2, V4L2_TUNER_SUB_SAP, and
+	V4L2_TUNER_SUB_LANG1 introduced by linux kernel commit
+	2.5.46~39^2~23^2~4.
+	Add V4L2_TUNER_SUB_RDS introduced by linux kernel commit
+	v2.6.32-rc1~679^2~189.
+
+2017-04-24  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: check decoding of invalid tv_sec and tv_usec values.
+	* tests/futimesat.c (main): Check decoding of invalid tv_sec and tv_usec
+	values.
+	* tests/xetitimer.c (main): Likewise.
+	* tests/xettimeofday.c (main): Likewise.
+	* tests/xselect.c (main): Likewise.
+	* tests/xutimes.c (main): Likewise.
+
+	tests: check decoding of invalid tv_sec and tv_nsec values.
+	* tests/aio.c (main): Check decoding of invalid tv_sec and tv_nsec
+	values.
+	* tests/clock_nanosleep.c (main): Likewise.
+	* tests/clock_xettime.c (main): Likewise.
+	* tests/futex.c (main): Likewise.
+	* tests/nanosleep.c (main): Likewise.
+	* tests/ppoll.c (main): Likewise.
+	* tests/pselect6.c (main): Likewise.
+	* tests/recvmmsg-timeout.c (main): Likewise.
+	* tests/rt_sigtimedwait.c (main): Likewise.
+	* tests/semop.c (main): Likewise.
+	* tests/timer_xettime.c (main): Likewise.
+	* tests/timerfd_xettime.c (main): Likewise.
+	* tests/utimensat.c (main): Likewise.
+
+2017-04-24  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	Print time in ISO 8601 format in time syscall decoder.
+	* print_time.c (SYS_FUNC(time)): Print timestamp stringification
+	(via sprinttime) for the value stored in the argument and return value
+	(return RVAL_STR in the latter case).
+	* tests/time.c (main): Update expected output.
+
+2017-04-24  Eugene Syromyatnikov  <evgsyr@gmail.com>
+	    Dmitry V. Levin  <ldv@altlinux.org>
+
+	Print string representation of timestamps in parsers of *utime* syscalls
+	* print_timespec.c (print_timespec_t_utime): Use sprinttime_nsec
+	to format a string representation of time, use tprints_comment
+	to print it as a comment.
+	* print_timeval.c (print_timeval_t_utime): New function.
+	(print_timeval_utimes): Use it instead of print_timeval_t.
+	[ALPHA] (print_timeval32_t_utime): New function.
+	[ALPHA] (print_timeval32_utimes): Use it instead of print_timeval32_t.
+	* tests/futimesat.c (print_tv): Update expected output.
+	* tests/utimensat.c (print_ts): Likewise.
+	* tests/xutimes.c (print_tv): Likewise.
+
+2017-04-24  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	tests: add support for printing timestamp with microsecond precision.
+	It will be needed later.
+
+	* tests/tests.h (print_time_t_usec): New prototype.
+	* tests/print_time.c (print_time_t_usec): New function, a thin wrapper
+	around print_time_t_ex.
+
+2017-04-24  Eugene Syromyatnikov  <evgsyr@gmail.com>
+	    Dmitry V. Levin  <ldv@altlinux.org>
+
+	Print microseconds/nanoseconds as non-negative.
+	Negative micro/nanoseconds values are treated as invalid by kernel
+	anyway, and in one case (timespec_valid in include/linux/time.h)
+	it is even checked by conversion to unsigned long.
+
+	* print_timespec.c (timespec_fmt): Change tv_sec format to %lld and
+	tv_nsec format to %llu.
+	(print_timespec_t): Cast tv_sec to long long and process tv_nsec with
+	zero_extend_signed_to_ull.
+	(sprint_timespec): Likewise.
+	* print_timeval.c (timeval_fmt): Change tv_sec format to %lld and
+	tv_usec format to %llu.
+	(print_timeval_t): Cast tv_sec to long long and process tv_nsec with
+	zero_extend_signed_to_ull.
+	(sprint_timeval, print_timeval32_t, sprint_timeval32): Likewise.
+	* defs.h (TIMESPEC_TEXT_BUFSIZE): Update.
+	* tests/adjtimex.c (main): Change tv_sec printing format to %lld, cast
+	it to long long; change tv_usec printing format to %llu, process it with
+	zero_extend_signed_to_ull.
+	* tests/clock_nanosleep.c (main): Change tv_sec printing format to %lld,
+	cast it to long long; change tv_nsec printing format to %llu, process it
+	with zero_extend_signed_to_ull.
+	* tests/clock_xettime.c (main): Likewise.
+	* tests/futex.c (main): Likewise.
+	* tests/futimesat.c (print_tv): Likewise.
+	* tests/getrusage.c (invoke_print): Likewise.
+	* tests/mq_sendrecv.c (do_send, do_recv, main): Likewise.
+	* tests/nanosleep.c (main): Likewise.
+	* tests/pselect6.c (main): Likewise.
+	* tests/restart_syscall.c (main): Likewise.
+	* tests/rt_sigtimedwait.c (iterate, main): Likewise.
+	* tests/sched_rr_get_interval.c (main): Likewise.
+	* tests/semop.c (main): Likewise.
+	* tests/timer_xettime.c (main): Likewise.
+	* tests/timerfd_xettime.c (main): Likewise.
+	* tests/waitid.c (main): Likewise.
+	* tests/xetitimer.c (main): Likewise.
+	* tests/xettimeofday.c (main): Likewise.
+	* tests/xselect.c (main): Likewise.
+	* tests/xutimes.c (print_tv): Likewise.
+	* tests/wait4.c (sprint_rusage): Likewise.
+	* tests/waitid.c (sprint_rusage): Likewise.
+	* tests/utimensat.c (print_ts): Likewise.
+	(main): Add check for higher bits of tv_sec/tv_nsec.
+
+2017-04-24  Eugene Syromyatnikov  <evgsyr@gmail.com>
+	    Dmitry V. Levin  <ldv@altlinux.org>
+
+	Always print raw values of time data fields.
+	Refactor sprinttime: implement sprinttime_nsec and sprinttime_usec
+	that handle nanoseconds and microseconds, respectively.
+	Always print raw values of time data fields, format string
+	representations of time as comments.
+
+	* defs.h (sprinttime): Change argument type from time_t to long long.
+	(sprinttime_nsec, sprinttime_usec): New prototypes.
+	* util.c (sprinttime_ex, sprinttime_nsec, sprinttime_usec): New
+	functions.
+	(sprinttime): Turn into a thin wrapper around sprinttime_ex.
+	* stat.h (struct strace_stat): Add has_nsec field.
+	* fetch_struct_stat.c (HAVE_NSEC): New macro.
+	(fetch_struct_stat): Initialize has_nsec field with HAVE_NSEC.
+	* fetch_struct_stat64.c (HAVE_NSEC): New macro.
+	(fetch_struct_stat64): Initialize has_nsec field with HAVE_NSEC.
+	* print_struct_stat.c (print_struct_stat) <PRINT_ST_TIME>:
+	Print raw values of time fields, use sprinttime_nsec to format a string
+	representation of time, use tprints_comment to print it as a comment.
+	* statx.c (SYS_FUNC(statx)) <PRINT_FIELD_TIME>: Likewise.
+	* utime.c (SYS_FUNC(utime)): Print raw values of struct utimbuf.actime
+	and struct utimbuf.modtime fields, use sprinttime to format a string
+	representation of time, use tprints_comment to print it as a comment.
+	* tests/tests.h (print_time_t_nsec): Add int argument.
+	* tests/print_time.c (print_time_t_ex): New function.
+	(print_time_t_nsec): Add int argument, turn into a thin wrapper around
+	print_time_t_ex.
+	* tests/utime.c (main): Update expected output.
+	* tests/xstatx.c [!IS_STATX] (HAVE_NSEC): New macro.
+	[!IS_STATX] (PRINT_ST_TIME), [IS_STATX] (PRINT_FIELD_TIME): Update
+	expected output.
+	* NEWS: Mention this timestamps representation improvement.
+
+2017-04-24  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Introduce tprintf_comment and tprints_comment functions.
+	* defs.h (tprintf_comment, tprints_comment): New prototypes.
+	* strace.c (tvprintf): New function.
+	(tprintf): Use it.
+	(tprintf_comment, tprints_comment): New functions.
+	* aio.c (tprint_lio_opcode): Use tprints_comment.
+	* dm.c (dm_decode_dm_target_spec, dm_decode_dm_target_deps,
+	dm_decode_dm_name_list, dm_decode_dm_target_versions,
+	dm_decode_dm_target_msg, dm_decode_string, dm_known_ioctl): Likewise.
+	* futex.c (SYS_FUNC(futex)): Likewise.
+	* perf.c (print_perf_event_attr): Likewise.
+	* seccomp.c (decode_bpf_code): Likewise.
+	* util.c (printxvals, printxval_searchn, printflags64): Likewise.
+	* btrfs.c (print_u64, btrfs_print_key_type, btrfs_print_objectid,
+	print_key_value_internal): Likewise.
+	(btrfs_ioctl): Use tprints_comment and tprintf_comment.
+	* dirent.c (SYS_FUNC(getdents)): Likewise.
+	* dirent64.c (SYS_FUNC(getdents64)): Likewise.
+	* execve.c (printargc): Use tprintf_comment.
+	* tests/btrfs.c (btrfs_test_get_dev_stats_ioctl,
+	btrfs_test_features_ioctls): Update expected output.
+
+	Make output of execve/execveat syscall parsers more structured.
+	* execve.c (printargc): Always print the address, format the number
+	of variables as a comment.
+	* tests/execve.c: Update expected output.
+	* tests/execveat.c: Likewise.
+	* tests/qual_syscall.test: Likewise.
+	* tests/strace-r.expected: Likewise.
+	* tests/strace-t.test: Likewise.
+	* tests/strace-tt.test: Likewise.
+	* tests/strace-ttt.test: Likewise.
+	* tests/threads-execve.c: Likewise.
+	* tests/threads-execve.test: Likewise.
+
+	dm: fix diagnostics about misplaced parts of struct dm_ioctl.
+	* dm.c (dm_decode_dm_target_spec, dm_decode_dm_target_deps,
+	dm_decode_dm_name_list, dm_decode_dm_target_versions,
+	dm_decode_dm_target_msg, dm_decode_string, dm_known_ioctl): Fix
+	diagnostics about various misplaced parts of struct dm_ioctl.
+	* tests/ioctl_dm.c: Update expected output.
+
+	print_mq_attr: fix typo.
+	* print_mq_attr.c (printmqattr): Fix the last argument of printflags64.
+
+2017-04-23  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	tests: add faulty pointer check to time test.
+	* tests/time.c (main): Add check for an inaccessible pointer.
+
+2017-04-22  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: fix print_time_t_nsec usage in xstatx.c.
+	* tests/xstatx.c (print_stat): Pass tv_nsec field through
+	zero_extend_signed_to_ull before feeding it to print_time_t_nsec.
+
+2017-04-21  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: fix netlink_protocol on sparc.
+	* tests/netlink_protocol.c (test_nlmsgerr): Do not access fields of an
+	unaligned structure, this makes architectures like sparc very unhappy.
+
+2017-04-21  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	util: return pointer to string literal directly in sprinttime.
+	There is no sense to copy it to static buffer first.
+
+	* util.c (sprinttime): Just return "0", do not copy it to internal
+	buffer first.
+
+2017-04-21  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: remove stat.sample creation from gen_tests.in.
+	stat.sample is created by appropriate executables and never removed.
+
+	* tests/gen_tests.in (trace_fstat, trace_lstat, trace_stat,
+	trace_stat_like): Remove stat.sample creation.
+
+2017-04-21  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: tabulate fstat.test.
+	* tests/gen_tests.in (fstat): New entry.
+	(fstat64, oldfstat): Update.
+	* tests/fstat.test: Remove.
+	* tests/Makefile.am (DECODER_TESTS): Remove fstat.test.
+
+2017-04-21  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	Implement -e trace=%stat option.
+	linux/*/syscallent*.h part is updated automatically by:
+
+	    sed -i '/statx/! s/TF|TSTA,/TF|TST|TSTA,/' linux/*/syscallent*.h
+
+	* sysent.h (TRACE_STAT): New macro.
+	* syscall.c: Alias LST to TRACE_STAT around syscallent.h inclusion.
+	* qualify.c (lookup_class): Add TRACE_STAT for "%stat".
+	* strace.1 (.SS Filtering): Add information about %stat syscall class.
+	* NEWS: Mention this change.
+	* linux/aarch64/syscallent.h (stat): Add TST flag.
+	* linux/ia64/syscallent.h: Likewise.
+	* linux/mips/syscallent-n32.h: Likewise.
+	* linux/mips/syscallent-n64.h: Likewise.
+	* linux/s390x/syscallent.h: Likewise.
+	* linux/x32/syscallent.h: Likewise.
+	* linux/x86_64/syscallent.h: Likewise.
+	* linux/arm/syscallent.h (oldstat, stat, stat64): Likewise.
+	* linux/bfin/syscallent.h: Likewise.
+	* linux/crisv10/syscallent.h: Likewise.
+	* linux/i386/syscallent.h: Likewise.
+	* linux/m68k/syscallent.h: Likewise.
+	* linux/microblaze/syscallent.h: Likewise.
+	* linux/mips/syscallent-o32.h: Likewise.
+	* linux/powerpc/syscallent.h: Likewise.
+	* linux/sh64/syscallent.h: Likewise.
+	* linux/sh/syscallent.h: Likewise.
+	* linux/avr32/syscallent.h (stat, stat64): Likewise.
+	* linux/hppa/syscallent.h: Likewise.
+	* linux/s390/syscallent.h: Likewise.
+	* linux/sparc64/syscallent.h: Likewise.
+	* linux/sparc/syscallent.h: Likewise.
+	* linux/xtensa/syscallent.h: Likewise.
+	* linux/powerpc64/syscallent.h (oldstat, stat): Likewise.
+	* linux/alpha/syscallent.h (osf_old_stat, osf_stat, stat, stat64): Likewise.
+	* linux/mips/syscallent-compat.h (bsd43_oldstat, bsd43_stat, posix_stat,
+	svr4_stat, svr4_xstat, sysv_stat, sysv_xstat): Likewise.
+	* tests/gen_tests.in (trace_stat): New entry.
+	* tests/trace_stat.in: New file.
+	* tests/Makefile.am (EXTRA_DIST): Add it.
+	* tests/ksysent.c (TST): New macro, defined to 0.
+	* tests/nsyscalls.c: Likewise.
+
+2017-04-21  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	Implement -e trace=%lstat option.
+	linux/*/syscallent*.h part is updated automatically by:
+
+	    sed -i '/TSTA,.*lx\?stat/ s/TSTA,/TLST|&/' linux/*/syscallent*.h
+
+	* sysent.h (TRACE_LSTAT): New macro.
+	* syscall.c: Alias TLST to TRACE_LSTAT around syscallent.h inclusion.
+	* qualify.c (lookup_class): Add TRACE_LSTAT for "%lstat".
+	* strace.1 (.SS Filtering): Add information about %lstat syscall class.
+	* NEWS: Mention this change.
+	* linux/aarch64/syscallent.h (lstat): Likewise.
+	* linux/ia64/syscallent.h: Likewise.
+	* linux/mips/syscallent-n32.h: Likewise.
+	* linux/mips/syscallent-n64.h: Likewise.
+	* linux/s390x/syscallent.h: Likewise.
+	* linux/x32/syscallent.h: Likewise.
+	* linux/x86_64/syscallent.h: Likewise.
+	* linux/arm/syscallent.h (lstat, lstat64, oldlstat): Likewise.
+	* linux/bfin/syscallent.h: Likewise.
+	* linux/crisv10/syscallent.h: Likewise.
+	* linux/i386/syscallent.h: Likewise.
+	* linux/m68k/syscallent.h: Likewise.
+	* linux/microblaze/syscallent.h: Likewise.
+	* linux/mips/syscallent-o32.h: Likewise.
+	* linux/powerpc/syscallent.h: Likewise.
+	* linux/sh64/syscallent.h: Likewise.
+	* linux/sh/syscallent.h: Likewise.
+	* linux/sparc64/syscallent.h: Likewise.
+	* linux/sparc/syscallent.h: Likewise.
+	* linux/avr32/syscallent.h (lstat, lstat64): Likewise.
+	* linux/hppa/syscallent.h: Likewise.
+	* linux/powerpc64/syscallent.h: Likewise.
+	* linux/s390/syscallent.h: Likewise.
+	* linux/xtensa/syscallent.h: Likewise.
+	* linux/alpha/syscallent.h (lstat, lstat64, osf_lstat, osf_old_lstat): Likewise.
+	* linux/mips/syscallent-compat.h (bsd43_lstat, posix_lstat, svr4_lstat,
+	sysv_lstat): Likewise.
+	* tests/gen_tests.in (trace_lstat): New entry.
+	* tests/trace_lstat.in: New file.
+	* tests/Makefile.am (EXTRA_DIST): Add it.
+	* tests/ksysent.c (TLST): New macro, defined to 0.
+	* tests/nsyscalls.c: Likewise.
+
+2017-04-21  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	Implement -e trace=%fstat option.
+	linux/*/syscallent*.h part is updated automatically by:
+
+	    sed -i -e '/TSTA.*fx\?stat/ s/TSTA,/TFST|&/' \
+	           -e 's/\(TD|TF|TFST|TSTA,\)[[:space:]]/\1/' linux/*/syscallent*.h
+
+	* sysent.h (TRACE_FSTAT): New macro.
+	* syscall.c: Alias TFST to TRACE_FSTAT around syscallent.h inclusion.
+	* qualify.c (lookup_class): Add TRACE_FSTAT for "%fstat".
+	* strace.1 (.SS Filtering): Add information about %fstat syscall class.
+	* NEWS: Mention this change.
+	* linux/32/syscallent.h (fstat64, fstatat64): Add TFST flag.
+	* linux/64/syscallent.h (fstat, newfstatat): Likewise.
+	* linux/aarch64/syscallent.h: Likewise.
+	* linux/ia64/syscallent.h: Likewise.
+	* linux/mips/syscallent-n32.h: Likewise.
+	* linux/mips/syscallent-n64.h: Likewise.
+	* linux/s390x/syscallent.h: Likewise.
+	* linux/x32/syscallent.h: Likewise.
+	* linux/x86_64/syscallent.h: Likewise.
+	* linux/arm/syscallent.h (fstat, fstat64, fstatat64, oldfstat): Likewise.
+	* linux/bfin/syscallent.h: Likewise.
+	* linux/crisv10/syscallent.h: Likewise.
+	* linux/i386/syscallent.h: Likewise.
+	* linux/m68k/syscallent.h: Likewise.
+	* linux/microblaze/syscallent.h: Likewise.
+	* linux/mips/syscallent-o32.h: Likewise.
+	* linux/powerpc/syscallent.h: Likewise.
+	* linux/sh64/syscallent.h: Likewise.
+	* linux/sh/syscallent.h: Likewise.
+	* linux/avr32/syscallent.h (fstat, fstat64, fstatat64): Likewise.
+	* linux/hppa/syscallent.h: Likewise.
+	* linux/s390/syscallent.h: Likewise.
+	* linux/sparc64/syscallent.h: Likewise.
+	* linux/sparc/syscallent.h: Likewise.
+	* linux/xtensa/syscallent.h: Likewise.
+	* linux/alpha/syscallent.h (fstat, fstat64, fstatat64, osf_fstat,
+	osf_old_fstat): Likewise.
+	* linux/powerpc64/syscallent.h (fstat, newfstatat, oldfstat): Likewise.
+	* linux/mips/syscallent-compat.h (bsd43_fstat, bsd43_oldfstat, posix_fstat,
+	svr4_fstat, sysv_fstat): Likewise.
+	* tests/gen_tests.in (trace_fstat): New entry.
+	* tests/trace_fstat.in: New file.
+	* tests/Makefile.am (EXTRA_DIST): Add it.
+	* tests/ksysent.c (TFST): New macro, defined to 0.
+	* tests/nsyscalls.c: Likewise.
+
+2017-04-21  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	Implement -e trace=%%stat option.
+	linux/*/syscallent*.h part is updated automatically by:
+
+	    sed -i '/TSFA\|stat[iu]s/! s/,[[:space:]]\?\([[:space:]]*SEN(.*stat\)/|TSTA,\1/' \
+	        linux/*/syscallent*.h
+
+	* sysent.h (TRACE_STAT_LIKE): New macro.
+	* syscall.c: Alias TSTA to TRACE_STAT_LIKE around syscallent.h inclusion.
+	* qualify.c (lookup_class): Add TRACE_STAT_LIKE for "%%stat".
+	* strace.1 (.SS Filtering): Add information about %%stat syscall class.
+	* NEWS: Mention this change.
+	* linux/32/syscallent.h (fstat64, fstatat64, statx): Add TSTA flag.
+	* linux/64/syscallent.h (fstat, newfstatat, statx): Likewise.
+	* linux/aarch64/syscallent.h (fstat, lstat, newfstatat, stat): Likewise.
+	* linux/alpha/syscallent.h (fstat, fstat64, fstatat64, lstat, lstat64,
+	osf_fstat, osf_lstat, osf_old_fstat, osf_old_lstat, osf_old_stat, osf_stat,
+	stat, stat64): Likewise.
+	* linux/arm/syscallent.h (fstat, fstat64, fstatat64, lstat, lstat64, oldfstat,
+	oldlstat, oldstat, stat, stat64, statx): Likewise.
+	* linux/avr32/syscallent.h (fstat, fstat64, fstatat64, lstat, lstat64, stat,
+	stat64): Likewise.
+	* linux/bfin/syscallent.h (fstat, fstat64, fstatat64, lstat, lstat64,
+	oldfstat, oldlstat, oldstat, stat, stat64): Likewise.
+	* linux/crisv10/syscallent.h (fstat, fstat64, fstatat64, lstat, lstat64,
+	oldfstat, oldlstat, oldstat, stat, stat64): Likewise.
+	* linux/hppa/syscallent.h (fstat, fstat64, fstatat64, lstat, lstat64, stat,
+	stat64): Likewise.
+	* linux/i386/syscallent.h (fstat, fstat64, fstatat64, lstat, lstat64, oldfstat,
+	oldlstat, oldstat, stat, stat64, statx): Likewise.
+	* linux/ia64/syscallent.h (fstat, lstat, newfstatat, stat): Likewise.
+	* linux/m68k/syscallent.h (fstat, fstat64, fstatat64, lstat, lstat64, oldfstat,
+	oldlstat, oldstat, stat, stat64, statx): Likewise.
+	* linux/microblaze/syscallent.h (fstat, fstat64, fstatat64, lstat, lstat64,
+	oldfstat, oldlstat, oldstat, stat, stat64): Likewise.
+	* linux/mips/syscallent-compat.h (bsd43_fstat, bsd43_lstat, bsd43_oldfstat,
+	bsd43_oldstat, bsd43_stat, posix_fstat, posix_lstat, posix_stat, svr4_fstat,
+	svr4_fxstat, svr4_lstat, svr4_lxstat, svr4_stat, svr4_xstat, sysv_fstat,
+	sysv_fxstat, sysv_lstat, sysv_lxstat, sysv_stat, sysv_xstat): Likewise.
+	* linux/mips/syscallent-n32.h (fstat, lstat, newfstatat, stat, statx): Likewise.
+	* linux/mips/syscallent-n64.h (fstat, lstat, newfstatat, stat, statx): Likewise.
+	* linux/mips/syscallent-o32.h (fstat, fstat64, fstatat64, lstat, lstat64,
+	oldfstat, oldlstat, oldstat, stat, stat64, statx): Likewise.
+	* linux/powerpc64/syscallent.h (fstat, lstat, newfstatat, oldfstat, oldlstat,
+	oldstat, stat): Likewise.
+	* linux/powerpc/syscallent.h (fstat, fstat64, fstatat64, lstat, lstat64,
+	oldfstat, oldlstat, oldstat, stat, stat64, statx): Likewise.
+	* linux/s390/syscallent.h (fstat, fstat64, fstatat64, lstat, lstat64, stat,
+	stat64, statx): Likewise.
+	* linux/s390x/syscallent.h (fstat, lstat, newfstatat, stat, statx): Likewise.
+	* linux/sh64/syscallent.h (fstat, fstat64, fstatat64, lstat, lstat64, oldfstat,
+	oldlstat, oldstat, stat, stat64): Likewise.
+	* linux/sh/syscallent.h (fstat, fstat64, fstatat64, lstat, lstat64, oldfstat,
+	oldlstat, oldstat, stat, stat64): Likewise.
+	* linux/sparc64/syscallent.h (fstat, fstat64, fstatat64, lstat, lstat64,
+	oldlstat, stat, stat64): Likewise.
+	* linux/sparc/syscallent.h (fstat, fstat64, fstatat64, lstat, lstat64,
+	oldlstat, stat, stat64): Likewise.
+	* linux/x32/syscallent.h (fstat, lstat, newfstatat, stat, statx): Likewise.
+	* linux/x86_64/syscallent.h (fstat, lstat, newfstatat, stat, statx): Likewise.
+	* linux/xtensa/syscallent.h (fstat, fstat64, fstatat64, lstat, lstat64, stat,
+	stat64, statx): Likewise.
+	* tests/gen_tests.in (trace_stat_like): New entry.
+	* tests/trace_stat_like.in: New file.
+	* tests/Makefile.am (EXTRA_DIST): Add it.
+	* tests/ksysent.c (TSTA): New macro, defined to 0.
+	* tests/nsyscalls.c: Likewise.
+
+2017-04-21  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	qualify: add syntax for optional non-matching syscall qualification.
+	It may be useful in case syscall is not present on the target
+	architecture.
+
+	* qualify.c (qualify_syscall): Add ignore_fail flag, set it to true
+	in case syscall qualification is led by a question mark(s).
+	* strace.1 (.SS Filtering): Document ability to use question marks
+	in syscall qualification.
+
+2017-04-21  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	linux/alpha/syscallent.h: add TSFA flag to osf_getfsstat.
+	In accordance with [1].
+
+	[1] https://www.freebsd.org/cgi/man.cgi?query=getfsstat&sektion=2
+
+	* linux/alpha/syscallent.h (osf_getfsstat): Add TSFA flag.
+	* strace.1 (.SS Filtering) <%%statfs>: Update equivalent regexp.
+
+2017-04-21  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	linux/mips/syscallent-compat.h: add some TD/TF flags for *stat* variants
+	*xstat syscalls are, according to [1], like their *stat counterparts,
+	but with additional argument with fixed value.
+
+	[1] http://math-atlas.sourceforge.net/devel/assembly/mipsabi32.pdf
+
+	* linux/mips/syscallent-compat.h (*_xstat, *_lxstat, bsd43_oldstat):
+	Add TF flag.
+	(*_fxstat, bsd43_oldfstat): Add TD flag.
+
+2017-04-21  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	Implement -e trace=%%statfs option.
+	linux/*/syscallent*.h part is updated automatically by:
+
+	    sed -i 's/\(TSF\),[[:space:]]\?/\1|TSFA,/' linux/*/syscallent*.h
+	    sed -i 's/\(TFSF\),/\1|TSFA,/' linux/*/syscallent*.h
+	    sed -i 's/0\(,.*ustat\)/TSFA\1/' linux/*/syscallent*.h
+
+	* sysent.h (TRACE_STATFS_LIKE): New macro.
+	* syscall.c: Alias TSFA to TRACE_STATFS_LIKE around syscallent.h inclusion.
+	* qualify.c (lookup_class): Add SCHED_STATFS_LIKE for "%%statfs".
+	* strace.1 (.SS Filtering): Add information about %%statfs syscall class.
+	* NEWS: Mention this change.
+	* linux/32/syscallent.h (statfs64, fstatfs64): Add TSFA flag.
+	* linux/64/syscallent.h (statfs, fstatfs): Likewise.
+	* linux/aarch64/syscallent.h (statfs, fstatfs, ustat): Likewise.
+	* linux/mips/syscallent-n64.h: Likewise.
+	* linux/x32/syscallent.h: Likewise.
+	* linux/x86_64/syscallent.h: Likewise.
+	* linux/arm/syscallent.h (statfs, statfs64, fstatfs, fstatfs64, ustat):
+	Likewise.
+	* linux/avr32/syscallent.h: Likewise.
+	* linux/bfin/syscallent.h: Likewise.
+	* linux/crisv10/syscallent.h: Likewise.
+	* linux/hppa/syscallent.h: Likewise.
+	* linux/i386/syscallent.h: Likewise.
+	* linux/ia64/syscallent.h: Likewise.
+	* linux/m68k/syscallent.h: Likewise.
+	* linux/microblaze/syscallent.h: Likewise.
+	* linux/mips/syscallent-n32.h: Likewise.
+	* linux/mips/syscallent-o32.h: Likewise.
+	* linux/powerpc/syscallent.h: Likewise.
+	* linux/powerpc64/syscallent.h: Likewise.
+	* linux/s390/syscallent.h: Likewise.
+	* linux/s390x/syscallent.h: Likewise.
+	* linux/sh/syscallent.h: Likewise.
+	* linux/sh64/syscallent.h: Likewise.
+	* linux/sparc/syscallent.h: Likewise.
+	* linux/sparc64/syscallent.h: Likewise.
+	* linux/xtensa/syscallent.h: Likewise.
+	* linux/alpha/syscallent.h (osf_statfs, osf_statfs64, statfs,
+	ofs_fstatfs, osf_fstatfs64, ustat): Likewise.
+	* linux/mips/syscallent-compat.h (*_statfs, *_statvfs, *_fstatfs): Likewise.
+	* tests/gen_tests.in (trace_statfs_like): New entry.
+	* tests/trace_statfs_like.in: New file.
+	* tests/Makefile.am (EXTRA_DIST): Add it.
+	* tests/ksysent.c (TSFA): New macro, defined to 0.
+	* tests/nsyscalls.c: Likewise.
+
+2017-04-21  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	Implement -e trace=%fstatfs option.
+	linux/*/syscallent*.h part is updated automatically by:
+
+	    sed -i 's/TD,[[:space:]]\([[:space:]]*SEN.*[_"]fstatv\?fs\)/TD|TFSF,\1/' \
+	           linux/*/syscallent*.h
+
+	* sysent.h (TRACE_FSTATFS): New macro.
+	* syscall.c: Alias TFSF to TRACE_FSTATFS around syscallent.h inclusion.
+	* qualify.c (lookup_class): Add SCHED_FSTATFS for "%fstatfs".
+	* strace.1 (.SS Filtering): Add information about %fstatfs syscall class.
+	* NEWS: Mention this change.
+	* linux/32/syscallent.h (fstatfs64): Add TFSF flag.
+	* linux/64/syscallent.h (fstatfs): Likewise.
+	* linux/aarch64/syscallent.h: Likewise.
+	* linux/mips/syscallent-n64.h: Likewise.
+	* linux/x32/syscallent.h: Likewise.
+	* linux/x86_64/syscallent.h: Likewise.
+	* linux/arm/syscallent.h (fstatfs, fstatfs64):
+	Likewise.
+	* linux/avr32/syscallent.h: Likewise.
+	* linux/bfin/syscallent.h: Likewise.
+	* linux/crisv10/syscallent.h: Likewise.
+	* linux/hppa/syscallent.h: Likewise.
+	* linux/i386/syscallent.h: Likewise.
+	* linux/ia64/syscallent.h: Likewise.
+	* linux/m68k/syscallent.h: Likewise.
+	* linux/microblaze/syscallent.h: Likewise.
+	* linux/mips/syscallent-n32.h: Likewise.
+	* linux/mips/syscallent-o32.h: Likewise.
+	* linux/powerpc/syscallent.h: Likewise.
+	* linux/powerpc64/syscallent.h: Likewise.
+	* linux/s390/syscallent.h: Likewise.
+	* linux/s390x/syscallent.h: Likewise.
+	* linux/sh/syscallent.h: Likewise.
+	* linux/sh64/syscallent.h: Likewise.
+	* linux/sparc/syscallent.h: Likewise.
+	* linux/sparc64/syscallent.h: Likewise.
+	* linux/xtensa/syscallent.h: Likewise.
+	* linux/alpha/syscallent.h (ofs_fstatfs, osf_fstatfs64): Likewise.
+	* linux/mips/syscallent-compat.h (*_fstatfs, *_fstatvfs): Likewise.
+	* tests/gen_tests.in (trace_fstatfs): New entry.
+	* tests/trace_fstatfs.in: New file.
+	* tests/Makefile.am (EXTRA_DIST): Add it.
+	* tests/ksysent.c (TFSF): New macro, defined to 0.
+	* tests/nsyscalls.c: Likewise.
+
+2017-04-21  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	sysent.h: format syscall flag macros.
+	Add some tabulation and leading zeroes to the values.
+
+2017-04-21  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: tabulate sched.test.
+	Rewrite sched.test using test_trace_expr().
+
+	* tests/gen_tests.in (sched): New entry.
+	* tests/sched.in: New file, derived from a set of tests in sched.test.
+	* tests/sched.test: Remove.
+	* tests/Makefile.am (DECODER_TESTS): Remove sched.test.
+	(EXTRA_DIST): Add sched.in.
+
+2017-04-21  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: tabulate regex.test.
+	Rewrite regex.test using test_trace_expr().
+
+	* tests/gen_tests.in (regex): New entry.
+	* tests/regex.in: New file, derived from a set of tests in regex.test.
+	* tests/regex.test: Remove.
+	* tests/Makefile.am (DECODER_TESTS): Remove regex.test.
+	(EXTRA_DIST): Add regex.in.
+
+2017-04-21  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: tabulate clock.test.
+	Rewrite clock.test using test_trace_expr().
+
+	* tests/gen_tests.in (clock): New entry.
+	* tests/clock.in: New file, derived from a set of tests in clock.test.
+	* tests/clock.test: Remove.
+	* tests/Makefile.am (DECODER_TESTS): Remove clock.test.
+	(EXTRA_DIST): Add clock.in.
+
+2017-04-21  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	tests: tabulate trace_statfs.test.
+	Rewrite trace_statfs.test using test_trace_expr().
+
+	* tests/gen_tests.in (trace_statfs): New entry.
+	* tests/trace_statfs.in: New file, derived from a set of tests
+	in trace_statfs.test.
+	* tests/trace_statfs.test: Remove.
+	* tests/Makefile.am (DECODER_TESTS): Remove trace_statfs.test.
+	(EXTRA_DIST): Add trace_statfs.in.
+
+2017-04-21  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	tests/init.sh: add helpers for running set of programs.
+	This introduces three new helpers:
+	prog_set_subtract subtracts one program set from another,
+	test_pure_prog_set runs strace check on a set of programs,
+	test_trace_expr tests trace expressions.
+
+	* tests/init.sh (prog_set_subtract, test_pure_prog_set,
+	test_trace_expr): New functions.
+
+2017-04-20  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: extend gen_tests.sh further.
+	* tests/gen_tests.sh: Extend support of arbitrary rules.
+
+2017-04-20  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	tests/xstat.c: do not remove sample file after test.
+	As tests are executed in separate directories now, there is no need to
+	remove sample file.
+
+	* tests/xstat.c (main): Remove unlink calls.
+
+2017-04-20  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	tests: use fixed name for stat tests sample file.
+	As tests are now run in separate directories.
+
+	* tests/xstatx.c: Use fixed "stat.sample" name for sample file.
+	* tests/fstat.test: Use it as an argument for -P option.
+	* tests/gen_tests.in (fstat64, lstat, lstat64, newfstatat, oldlstat,
+	oldstat, stat, stat64, statx): Likewise.
+
+2017-04-19  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	Derive copyright year from the git commit date.
+	This solves problems like the need to update test suite on every
+	New Year's Eve.
+
+	* Makefile.am (dist-hook): Generate .year.
+	* copyright-year-gen: New file.
+	* configure.ac (copyright_year): New m4 variable, defined as the output
+	of copyright-year-gen script.
+	(AC_COPYRIGHT): Use it.
+	(COPYRIGHT_YEAR): New output variable and preprocessor macro.
+	* strace.c (print_version): Use COPYRIGHT_YEAR.
+	* strace.spec.in (%prep): Save the value of COPYRIGHT_YEAR autoconf
+	variable to .year file.
+	* tests/strace-V.test (config_year): New variable, derived from config.h.
+	Add sanity checks for $config_year and use it in expected output.
+
+	Reported-by: Andreas Schwab <schwab@suse.de>
+
+2017-04-19  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: move /proc/ checks from scripts to executables.
+	Move most of /proc/self/task/ and /proc/self/fd/ checks from scripts
+	to xecutables.
+
+	* tests/attach-f-p.test: Move /proc/self/task/ check ...
+	* tests/attach-f-p-cmd.c (main): ... here.
+	* tests/fstat.test: Move /proc/self/fd/ check ...
+	* tests/xstatx.c (main): ... here.
+	* tests/net-y-unix.test: Move /proc/self/fd/ check ...
+	* tests/net-y-unix.c (main): ... here.
+	* tests/net-yy-inet.test: Move /proc/self/fd/ check ...
+	* tests/net-yy-inet.c (main): ... here.
+	* tests/net-yy-netlink.test: Move /proc/self/fd/ check ...
+	* tests/net-yy-netlink.c (main): ... here.
+	* tests/net-yy-unix.test: Move /proc/self/fd/ check ...
+	* tests/net-yy-unix.c (main): ... here.
+
+2017-04-19  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: tabulate pread64-pwrite64.test.
+	* tests/gen_tests.in (pread64-pwrite64): New entry.
+	* tests/pread64-pwrite64.c: (main): Skip the test if /proc/self/fd/
+	is not available.
+	* tests/pread64-pwrite64.test: Remove.
+	* tests/Makefile.am (DECODER_TESTS): Remove pread64-pwrite64.test.
+
+	tests: tabulate read-write.test.
+	* tests/gen_tests.in (read-write): New entry.
+	* tests/read-write.c: (main): Skip the test if /proc/self/fd/
+	is not available.
+	* tests/read-write.test: Remove.
+	* tests/Makefile.am (DECODER_TESTS): Remove read-write.test.
+
+	tests: add skip_if_unavailable function to libtests.
+	* tests/skip_unavailable.c: New file.
+	* tests/tests.h (skip_if_unavailable): New prototype.
+	* tests/Makefile.am (libtests_a_SOURCES): Add skip_unavailable.c.
+
+	tests: tabulate netlink_protocol.test.
+	* tests/gen_tests.in (netlink_protocol): New entry.
+	* tests/netlink_protocol.test: Remove.
+	* tests/Makefile.am (DECODER_TESTS): Remove netlink_protocol.test.
+
+	tests: tabulate statfs.test.
+	* tests/gen_tests.in (statfs): New entry.
+	(fstatfs, fstatfs64, statfs64): Update.
+	* tests/statfs.test: Remove.
+	* tests/Makefile.am (DECODER_TESTS): Remove statfs.test.
+
+2017-04-18  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: skip statfs related tests if their sample files are not available
+	* tests/xstatfsx.c (print_statfs): Skip the test if open failed.
+
+	tests: extend gen_tests.sh to support arbitrary test_* rules.
+	* tests/gen_tests.sh: Add support of arbitrary test_* rules.
+
+	tests: change gen_tests.sh to read its input as raw input.
+	* tests/gen_tests.sh: Specify -r option to read.
+	* tests/gen_tests.in (shmxt): Update.
+
+2017-04-18  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	strace.1: s/regex expression/regular expression/
+
+2017-04-17  Dmitry V. Levin  <ldv@altlinux.org>
+
+	strace.1: enhance %statfs description.
+	* strace.1 (.SS Filtering) <%statfs>: Fix the list of syscalls,
+	add an equivalent regex expression.
+
+	netlink: decode NLMSG_ERROR messages.
+	* netlink.c (decode_nlmsgerr, decode_payload): New functions.
+	(decode_nlmsghdr_with_payload): Use decode_payload.
+	* tests/netlink_protocol.c (send_query): Check decoding
+	of NLMSG_ERROR messages.
+	* NEWS: Mention this change.
+
+	netlink: avoid using unaligned sizeof(struct nlmsghdr) unnecessarily.
+	* netlink.c (NLMSG_HDRLEN): Redefine.
+	(decode_nlmsghdr_with_payload, decode_netlink): Use it instead
+	of sizeof(struct nlmsghdr).
+
+	Fix the length argument passed from print_iovec to decode_netlink.
+	* io.c (print_iovec): Pass the actual length to decode_netlink
+	instead of the original length.
+	* NEWS: Mention this fix.
+
+	numa: fix printing of error values in move_pages status array.
+	* numa.c (print_status): Do not lose a minus sign when printing
+	a symbolic error code.
+	* tests/move_pages.c (print_status_array): Update expected output.
+
+	tests: generate pure_executables part of check_PROGRAMS automatically.
+	* tests/gen_pure_executables.sh: New file.
+	* bootstrap: Invoke it.
+	* tests/Makefile.am: Include pure_executables.am.
+	(check_PROGRAMS): Add $(PURE_EXECUTABLES).  Remove everything listed
+	in pure_executables.list.
+	(EXTRA_DIST): Add gen_pure_executables.sh.
+	* tests/.gitignore: Add pure_executables.am.
+
+	tests: make EXTRA_DIST sorted.
+	* tests/Makefile.am (EXTRA_DIST): Sort.
+
+	tests: check decoding of alpha specific osf_utimes syscall.
+	* tests/osf_utimes.c: New file.
+	* tests/gen_tests.in (osf_utimes): New entry.
+	* tests/Makefile.am (check_PROGRAMS): Add osf_utimes.
+	* tests/pure_executables.list: Likewise.
+	* tests/.gitignore: Likewise.
+
+	tests: parametrize utimes.c.
+	* tests/xutimes.c: New file, based on utimes.c.
+	* tests/utimes.c [__NR_utimes] (TEST_SYSCALL_NR, TEST_SYSCALL_STR,
+	TEST_STRUCT): New macros.
+	[__NR_utimes]: Replace all the rest with include "xutimes.c".
+	* tests/Makefile.am (EXTRA_DIST): Add xutimes.c.
+
+2017-04-16  Dmitry V. Levin  <ldv@altlinux.org>
+
+	alpha: fix tracing flags of osf_select and osf_utimes syscalls.
+	* linux/alpha/syscallent.h (osf_select): Add TD flag.
+	(osf_utimes): Add TF flag.
+	* NEWS: Mention alpha specific fixes.
+
+2017-04-16  Dmitry V. Levin  <ldv@altlinux.org>
+
+	alpha: rename print_timeval32_pair to print_timeval32_utimes.
+	This follows the rename of print_timeval_item to print_timeval_utimes.
+
+	* defs.h [ALPHA] (print_timeval32_pair): Rename
+	to print_timeval32_utimes.
+	* print_timeval.c [ALPHA] (print_timeval32_pair): Likewise.
+	* utimes.c [ALPHA] (SYS_FUNC(osf_utimes)): Replace print_timeval32_pair
+	with print_timeval32_utimes.
+
+2017-04-16  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: do more rigorous testing of utimes syscall parser.
+	* tests/utimes.c (errstr): New variable.
+	(print_ts, k_utimes): New functions.
+	(main): Use them to do more rigorous testing of utimes syscall parser.
+	* tests/gen_tests.in (utimes): Update -a option.
+
+	tests: do more rigorous testing of futimesat syscall parser.
+	* tests/futimesat.c (errstr): New variable.
+	(print_ts, k_futimesat): New functions.
+	(main): Use them to do more rigorous testing of futimesat syscall parser.
+
+2017-04-16  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Fix printing of inaccessible times argument of utimes and futimesat syscalls
+	When the whole pair of struct timeval structures cannot be fetched from
+	tracee's memory, print the address.  This behavior follows the kernel's
+	that uses copy_from_user for the whole pair, too.
+
+	* print_timeval.c (print_timeval_item): Remove.
+	(print_timeval_pair): Rename to print_timeval_utimes, all callers
+	updated.  Fetch the whole timeval_t array with a single
+	umove_or_printaddr call.
+	* tests/futimesat.c (main): Update expected output.
+	* tests/utimes.c (main): Likewise.
+
+2017-04-16  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: rewrite utimensat.test without relying on libc utimensat wrapper.
+	The new test also does more rigorous testing.
+
+	* tests/utimensat.c: Stop including <assert.h> and <errno.h>, include
+	<unistd.h> and <asm/unistd.h>, check __NR_utimensat instead
+	of HAVE_UTIMENSAT.
+	(errstr): New variable.
+	(k_utimensat): New function, a thin wrapper around
+	syscall(__NR_utimensat).
+	(main): Use them instead of utimensat.
+	* tests/gen_tests.in (utimensat): New entry.
+	* tests/utimensat.test: Remove.
+	* tests/Makefile.am (DECODER_TESTS): Remove it.
+
+2017-04-16  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: use fixed timestamps in utime related tests.
+	* tests/clock.test: Remove futimesat, utime, utimensat, and utimes tests
+	from the list of exceptions.
+	* tests/utime.c (main): Do not use time(), use fixed timestamp instead.
+	* tests/futimesat.c (main): Do not use gettimeofday(), use fixed
+	timestamps instead.
+	* tests/utimensat.c (main): Likewise.
+	* tests/utimes.c (main): Likewise.
+
+2017-04-15  Dmitry V. Levin  <ldv@altlinux.org>
+
+	xtensa: wire up new syscalls.
+	* linux/xtensa/syscallent.h [348..350]: New pkey_* entries.
+
+	Reported-by: Victor Krapivensky <krapivenskiy.va@phystech.edu>
+
+2017-04-15  Victor Krapivensky  <krapivenskiy.va@phystech.edu>
+
+	Update statx parser and syscall entries lists to the upstream.
+	* linux/32/syscallent.h [291]: Add statx entry.
+	* linux/64/syscallent.h [291]: Likewise.
+	* linux/arm/syscallent.h [397]: Likewise.
+	* linux/m68k/syscallent.h [379]: Likewise.
+	* linux/mips/syscallent-n32.h [6330]: Likewise.
+	* linux/mips/syscallent-n64.h [5326]: Likewise.
+	* linux/mips/syscallent-o32.h [4366]: Likewise.
+	* linux/powerpc/syscallent.h [383]: Likewise.
+	* linux/s390/syscallent.h [379]: Likewise.
+	* linux/s390x/syscallent.h [379]: Likewise.
+	* linux/xtensa/syscallent.h [351]: Likewise.
+	* statx.h (struct_statx): Update.
+	* statx.c (SYS_FUNC(statx)): Print struct_statx.stx_attributes_mask.
+	* tests/xstatx.c (print_stat, main): Update to test decoding
+	of struct_statx.stx_attributes_mask.
+
+2017-04-14  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: add more regex match checks.
+	* tests/qual_syscall.test: Add regex match checks.
+
+	tests: make mq_sendrecv* test executables reenterable.
+	* tests/mq_sendrecv.c (MQ_NAME): Remove.
+	(mq_name): New static variable.
+	(cleanup): Use it instead of MQ_NAME.
+	(main): Initialize it dynamically using the pid of process.  Use it
+	instead of MQ_NAME.
+
+	tests: make mq test executable reenterable.
+	* tests/mq.c (NAME): Remove.
+	(main): Replace the fixed message queue name with a dynamically
+	made name containing the pid of process.
+	* tests/gen_tests.in (mq): Update -a option.
+
+	tests: make net-yy-netlink test executable reenterable.
+	* tests/net-yy-netlink.c (main): Use getpid() instead of a fixed
+	magic number.
+
+	tests: tabulate shmxt.test.
+	* tests/gen_tests.in (shmxt): New entry.
+	* tests/shmxt.test: Remove.
+	* tests/Makefile.am (DECODER_TESTS): Remove shmxt.test.
+
+2017-04-14  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Revert "Implement -e trace=%sched option"
+	-e trace=%sched became redundant as -e trace=/sched does the same.
+
+	This reverts commit 811638e9c1805438a63c14f9704b8b00ac922623.
+
+	* syscall.c (TSC): Remove.
+	* sysent.h (TRACE_SCHED): Remove.
+	* qualify.c (lookup_class): Remove %sched.
+	* strace.1 (.SS Filtering): Likewise.
+	* NEWS: Likewise.
+	* linux/32/syscallent.h: Remove TSC flag from sched* syscalls.
+	* linux/64/syscallent.h: Likewise.
+	* linux/alpha/syscallent.h: Likewise.
+	* linux/arm/syscallent.h: Likewise.
+	* linux/avr32/syscallent.h: Likewise.
+	* linux/bfin/syscallent.h: Likewise.
+	* linux/crisv10/syscallent.h: Likewise.
+	* linux/hppa/syscallent.h: Likewise.
+	* linux/i386/syscallent.h: Likewise.
+	* linux/ia64/syscallent.h: Likewise.
+	* linux/m68k/syscallent.h: Likewise.
+	* linux/microblaze/syscallent.h: Likewise.
+	* linux/mips/syscallent-n32.h: Likewise.
+	* linux/mips/syscallent-n64.h: Likewise.
+	* linux/mips/syscallent-o32.h: Likewise.
+	* linux/powerpc/syscallent.h: Likewise.
+	* linux/powerpc64/syscallent.h: Likewise.
+	* linux/s390/syscallent.h: Likewise.
+	* linux/s390x/syscallent.h: Likewise.
+	* linux/sh/syscallent.h: Likewise.
+	* linux/sh64/syscallent.h: Likewise.
+	* linux/sparc/syscallent.h: Likewise.
+	* linux/sparc64/syscallent.h: Likewise.
+	* linux/x32/syscallent.h: Likewise.
+	* linux/x86_64/syscallent.h: Likewise.
+	* linux/xtensa/syscallent.h: Likewise.
+	* tests/sched.test: Replace trace=%sched with trace=/sched.
+	* tests/ksysent.c (TSC): Remove.
+	* tests/nsyscalls.c: Likewise.
+
+2017-04-14  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Revert "Implement -e trace=%clock option"
+	-e trace=%clock became redundant as -e trace=/clock does the same.
+
+	This reverts commit 0a13d2391c413e3847b71ec0c1d38f56e353b1b5.
+
+	* syscall.c (TCL): Remove.
+	* sysent.h (TRACE_CLOCK): Remove.
+	* qualify.c (lookup_class): Remove %clock.
+	* strace.1 (.SS Filtering): Likewise.
+	* NEWS: Likewise.
+	* linux/32/syscallent.h: Remove TCL flag from clock_* syscalls.
+	* linux/64/syscallent.h: Likewise.
+	* linux/alpha/syscallent.h: Likewise.
+	* linux/arm/syscallent.h: Likewise.
+	* linux/avr32/syscallent.h: Likewise.
+	* linux/bfin/syscallent.h: Likewise.
+	* linux/crisv10/syscallent.h: Likewise.
+	* linux/hppa/syscallent.h: Likewise.
+	* linux/i386/syscallent.h: Likewise.
+	* linux/ia64/syscallent.h: Likewise.
+	* linux/m68k/syscallent.h: Likewise.
+	* linux/microblaze/syscallent.h: Likewise.
+	* linux/mips/syscallent-n32.h: Likewise.
+	* linux/mips/syscallent-n64.h: Likewise.
+	* linux/mips/syscallent-o32.h: Likewise.
+	* linux/powerpc/syscallent.h: Likewise.
+	* linux/powerpc64/syscallent.h: Likewise.
+	* linux/s390/syscallent.h: Likewise.
+	* linux/s390x/syscallent.h: Likewise.
+	* linux/sh/syscallent.h: Likewise.
+	* linux/sh64/syscallent.h: Likewise.
+	* linux/sparc/syscallent.h: Likewise.
+	* linux/sparc64/syscallent.h: Likewise.
+	* linux/x32/syscallent.h: Likewise.
+	* linux/x86_64/syscallent.h: Likewise.
+	* linux/xtensa/syscallent.h: Likewise.
+	* tests/clock.test: Replace trace=%clock with trace=/clock.
+	* tests/ksysent.c (TCL): Remove.
+	* tests/nsyscalls.c: Likewise.
+
+2017-04-14  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: robustify regex.test.
+	* tests/regex.test: Use trace_statfs.test as a template instead
+	of clock.test and sched.test, not because of more interesting
+	regular expressions but to fix build on platforms where
+	clock.test and sched.test are not reenterable.
+
+2017-04-14  JingPiao Chen  <chenjingpiao@gmail.com>
+
+	Implement -e trace=/regex option.
+	* qualify.c: Include <regex.h>.
+	(qualify_syscall_regex): New function.
+	(qualify_syscall): Use it.
+	* strace.1: Document -e trace=/regex option.
+	* NEWS: Mention -e trace=/regex option.
+	* tests/regex.test: New test.
+	* tests/Makefile.am (DECODER_TESTS): Add it.
+	* tests/options-syntax.test: Add checks for invaild regexp
+	and for regexp that doesn't match a syscall.
+
+2017-04-14  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: fix ioctl_nsfs.test on hppa.
+	* tests/ioctl_nsfs.c (test_user_namespace): Specify an address
+	in the middle of a mapped page as child_stack address argument
+	of the clone call.
+	[IA64] (clone): Update.
+
+2017-04-14  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: fix ioctl_nsfs.test on ia64.
+	glibc on ia64 provides no clone() function, but there is a __clone2
+	function instead.  It is documented but no prototype is provided by
+	glibc.
+
+	* tests/ioctl_nsfs.c [IA64] (__clone2): New prototype.
+	[IA64] (clone): New macro wrapper around __clone2.
+
+2017-04-13  Edgar Kaziahmedov  <edos@linux.com>
+
+	tests: check decoding of the remaining V4L2_BUF_TYPE_* types.
+	* tests/ioctl_v4l2.c (init_v4l2_format, print_ioctl_v4l2): New functions
+	to avoid code duplication in VIDIOC_S_FMT and VIDIOC_TRY_FMT tests.
+	(main) <VIDIOC_G_FMT, VIDIOC_S_FMT, VIDIOC_TRY_FMT>: Use them.  Add
+	checks for remaining V4L2_BUF_TYPE_* types.
+
+	v4l2: Implement decoding of the remaining V4L2_BUF_TYPE_* types.
+	* v4l2.c: Include "xlat/v4l2_vbi_flags.h" and "xlat/v4l2_sliced_flags.h".
+	(struct_v4l2_clip): New typedef.  Mpersify it.
+	(print_v4l2_clip): New function.
+	(print_v4l2_format_fmt): Use it.  Add struct tcb argument.  Implement
+	decoding of the remaining V4L2_BUF_TYPE_* types.
+	* xlat/v4l2_vbi_flags.in: Add V4L2_VBI_UNSYNC and V4L2_VBI_INTERLACED
+	introduced by linux kernel commit v2.5.46~39^2~23^2~4.
+	Add V4L2_VBI_ITU_525_F1_START, V4L2_VBI_ITU_525_F2_START,
+	V4L2_VBI_ITU_625_F1_START, and V4L2_VBI_ITU_625_F2_START introduced by
+	linux kernel commit v3.17-rc1~112^2~217.
+	* xlat/v4l2_sliced_flags.in: Add V4L2_SLICED_TELETEXT_B, V4L2_SLICED_VPS,
+	V4L2_SLICED_CAPTION_525, V4L2_SLICED_WSS_625, V4L2_SLICED_VBI_525, and
+	V4L2_SLICED_VBI_625 introduced by linux kernel commit v2.6.14-rc2~64.
+	* configure.ac (AC_CHECK_DECLS): Add V4L2_BUF_TYPE_SDR_CAPTURE and
+	V4L2_BUF_TYPE_SDR_OUTPUT.
+	(AC_CHECK_MEMBERS): Add struct v4l2_window.global_alpha and
+	struct v4l2_sdr_format.buffersize.
+	* NEWS: Mention this change.
+
+2017-04-13  Dmitry V. Levin  <ldv@altlinux.org>
+
+	travis: use mainline kernel uapi headers for coverage.
+	* .travis.yml (matrix) <CHECK=coverage>: Add KHEADERS=torvalds/linux.
+	* travis-build.sh: Handle $KHEADERS.
+	* travis-install.sh: Likewise.
+
+	travis: switch from clang-3.6 to clang-3.8.
+	* .travis.yml (matrix): Change clang-3.6 to clang-3.8.
+
+2017-04-13  Nikolay Marchuk  <marchuk.nikolay.a@gmail.com>
+
+	Implement decoding of NS_* ioctl commands.
+	* configure.ac (AC_CHECK_HEADERS): Add linux/nsfs.h.
+	* defs.h (DECL_IOCTL(nsfs)): New prototype.
+	(setns_types): Make global.
+	* ioctl.c (ioctl_decode): Call nsfs_ioctl for 0xb7 code.
+	* nsfs.c: New file.
+	* nsfs.h: Likewise.
+	* Makefile.am (strace_SOURCES): Add them.
+	* tests/ioctl_nsfs.c: New file.
+	* tests/ioctl_nsfs.test: Likewise.
+	* tests/.gitignore: Add ioctl_nsfs.
+	* tests/Makefile.am (check_PROGRAMS): Likewise.
+	(DECODER_TESTS): Add ioctl_nsfs.test.
+	* NEWS: Mention this change.
+
+2017-04-13  Dmitry V. Levin  <ldv@altlinux.org>
+
+	travis: copy coverage test suite log to the travis log.
+	* travis-build.sh (coverage): Print tests*/test-suite.log
+	and tests*/ksysent.log.
+
+2017-04-12  Dmitry V. Levin  <ldv@altlinux.org>
+
+	travis: add gcc-6.
+	* .travis.yml (matrix): Add gcc-6 entries.
+	* travis-build.sh: Handle gcc*.
+	* travis-install.sh: Handle gcc-*.
+
+2017-04-11  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: robustify gen_tests.sh against in-tree builds.
+	* tests/gen_tests.sh: Use abs_srcdir instead of srcdir to construct
+	a path to gen_tests.sh in implicit make rules.
+
+2017-04-11  Dmitry V. Levin  <ldv@altlinux.org>
+
+	trace_syscall_exiting: do not call get_regs for filtered syscalls.
+	This saves up to 25% of ptrace syscalls in case of trace filtering.
+
+	* syscall.c (trace_syscall_exiting): Do not call gettimeofday
+	and get_regs for filtered syscalls.
+	* NEWS: Mention this change.
+	* tests/get_regs.test: New test.
+	* tests/Makefile.am (MISC_TESTS): Add it.
+
+2017-04-11  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Delay get_regs invocation.
+	strace used to call get_regs on every stop of a tracee, including cases
+	when the result is going to be discarded.  Prepare to change this lavish
+	practice by delaying get_regs invocation until its result is actually
+	needed.
+
+	* defs.h (get_regs): Remove.
+	* strace.c (trace): Do not call get_regs.
+	* syscall.c (get_regs): Add static qualifier.
+	(trace_syscall_exiting, print_pc, get_scno): Call get_regs.
+
+2017-04-11  Dmitry V. Levin  <ldv@altlinux.org>
+
+	startup_tcb: move get_scno invocation to a more convenient place.
+	* strace.c (trace): Move get_scno invocation ...
+	(startup_tcb): ... here.  This is a no-op change that slightly improves
+	readability.
+
+2017-04-11  Dmitry V. Levin  <ldv@altlinux.org>
+
+	get_regs: guard against subsequent invocations.
+	At this moment there is only one call to get_regs,
+	but there is going to be more of them, so a guard is needed.
+
+	This change also adds a clear_regs call before get_regs,
+	which essentially reverts commit v4.9-288-ge9bfff6.
+
+	* strace.c (trace): Call clear_regs before get_regs.
+	* syscall.c (get_regs): Skip if get_regs_error != -1.
+
+2017-04-11  Dmitry V. Levin  <ldv@altlinux.org>
+
+	syscall: move definitions of automatic variables closer to their use.
+	* syscall.c (trace_syscall_entering, trace_syscall_exiting): Move
+	definitions of automatic variables closer to their first use.  This
+	change slightly improves readability.
+
+	tests: check decoding of gettid syscall.
+	* tests/gettid.c: New file.
+	* tests/.gitignore: Add gettid.
+	* tests/Makefile.am (check_PROGRAMS): Likewise.
+	* tests/gen_tests.in (gettid): New entry.
+
+2017-04-11  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: fix build on alpha.
+	* tests/getpid.c: Skip if __NR_getpid is not defined.
+	* tests/getppid.c: Skip if __NR_getppid is not defined.
+
+	Fixes: fd1041f6 ("tests: add tests for getpid and getppid syscalls")
+
+2017-04-11  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Fix build with old linux/netlink.h.
+	* socketutils.c: Provide a fallback definition of NETLINK_SOCK_DIAG.
+
+	Fixes: 5c256356 ("Do not include xlat/netlink_protocols.h twice")
+
+2017-04-10  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Do not include xlat/netlink_protocols.h twice.
+	Make netlink_protocols a global xlat array defined in net.c file.
+
+	* defs.h (netlink_protocols): New prototype.
+	* socketutils.c: Stop including "xlat/netlink_protocols.h".
+
+2017-04-10  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Do not include xlat/clocknames.h twice.
+	Make clocknames a global xlat array defined in time.c file.
+
+	* defs.h (clocknames): New prototype.
+	* perf.c: Stop including "xlat/clocknames.h".
+
+2017-04-10  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Remove unused xlat/openmodessol.in.
+	* xlat/openmodessol.in: Remove file unused since commit
+	v4.10-45-gdf4dd8b.
+
+	Remove unused xlat/aclipc.in.
+	* xlat/aclipc.in: Remove file unused since commit v4.9-46-g681452b.
+
+2017-04-07  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: remove statfs.expected.
+	statfs.expected is unused since commit v4.11-515-g67c2f67.
+
+	* tests/statfs.expected: Remove.
+	* tests/Makefile.am (EXTRA_DIST): Remove it.
+
+2017-04-07  Sandhya Bankar  <bankarsandhya512@gmail.com>
+
+	tests: add tests for getpid and getppid syscalls.
+
+	[ldv: rewritten everything]
+
+	* tests/getpid.c: New file.
+	* tests/getppid.c: Likewise.
+	* tests/.gitignore: Add getpid and getppid.
+	* tests/pure_executables.list: Likewise.
+	* tests/Makefile.am (check_PROGRAMS): Likewise.
+	* tests/gen_tests.in (getpid, getppid): New entries.
+
+2017-04-07  Edgar Kaziahmedov  <edos@linux.com>
+
+	Update V4L2_* constants.
+	* xlat/v4l2_buf_flags.in: Add V4L2_BUF_FLAG_PREPARED,
+	V4L2_BUF_FLAG_NO_CACHE_INVALIDATE, and V4L2_BUF_FLAG_NO_CACHE_CLEAN
+	introduced by linux kernel commit v3.2-rc1~63^2~55.
+	Add V4L2_BUF_FLAG_TIMESTAMP_MASK, V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN,
+	and V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC introduced by linux kernel commit
+	v3.9-rc1~93^2~536.
+	Add V4L2_BUF_FLAG_TIMESTAMP_COPY introduced by linux kernel commit
+	v3.10-rc1~136^2~560.
+	Add V4L2_BUF_FLAG_TSTAMP_SRC_MASK, V4L2_BUF_FLAG_TSTAMP_SRC_EOF,
+	and V4L2_BUF_FLAG_TSTAMP_SRC_SOE introduced by linux kernel commit
+	v3.15-rc1~85^2~186.
+	Add V4L2_BUF_FLAG_LAST introduced by linux kernel commit
+	v4.2-rc1~107^2~389.
+	* xlat/v4l2_buf_types.in: Add V4L2_BUF_TYPE_SDR_CAPTURE
+	and V4L2_BUF_TYPE_SDR_OUTPUT introduced by linux kernel commits
+	v3.15-rc1~85^2~213 and v4.4-rc1~118^2~14, respectively.
+	* xlat/xlat/v4l2_colorspaces.in: Add V4L2_COLORSPACE_ADOBERGB
+	and V4L2_COLORSPACE_BT2020 introduced by linux kernel commit
+	v3.19-rc1~29^2~72.
+	Add V4L2_COLORSPACE_RAW and V4L2_COLORSPACE_DCI_P3 introduced by linux
+	kernel commits v4.2-rc1~107^2~182 and v4.4-rc1~118^2~120, respectively.
+	* xlat/v4l2_device_capabilities_flags.in: Add V4L2_CAP_SDR_CAPTURE,
+	V4L2_CAP_EXT_PIX_FORMAT, and V4L2_CAP_SDR_OUTPUT introduced by linux
+	kernel commits v3.15-rc1~85^2~210, v3.17-rc1~112^2~327,
+	and v4.4-rc1~118^2~14, respectively.
+	* xlat/v4l2_memories.in: Add V4L2_MEMORY_OVERLAY introduced
+	in linux 2.5.46.  Add V4L2_MEMORY_DMABUF introduced by linux kernel
+	commit v3.8-rc1~115^2^2~52.
+
+2017-04-07  Abhishek Tiwari  <erabhishektiwarics@gmail.com>
+
+	Implement -e trace=%statfs option.
+	linux/*/syscallent*.h part is modified automatically by:
+
+		sed -i 's/TF\(,[[:space:]]*SEN.*[_"]statv\?fs\)/TF|TSF\1/' \
+			linux/*/syscallent*.h
+
+	[ldv: rewritten trace_statfs.test using sched.test as a template]
+
+	* sysent.h (TRACE_STATFS): New macro.
+	* syscall.c: Alias TSF to TRACE_STATFS around syscallent.h inclusion.
+	* qualify.c (lookup_class): Add SCHED_STATFS for "%statfs".
+	* strace.1 (.SS Filtering): Add information about %statfs syscall class.
+	* NEWS: Mention this change.
+	* linux/64/syscallent.h (statfs): Add TSF flag.
+	* linux/aarch64/syscallent.h: Likewise.
+	* linux/x32/syscallent.h: Likewise.
+	* linux/x86_64/syscallent.h: Likewise.
+	* linux/mips/syscallent-n64.h: Likewise.
+	* linux/32/syscallent.h (statfs64): Likewise.
+	* linux/arm/syscallent.h (statfs, statfs64): Likewise.
+	* linux/avr32/syscallent.h: Likewise.
+	* linux/bfin/syscallent.h: Likewise.
+	* linux/crisv10/syscallent.h: Likewise.
+	* linux/hppa/syscallent.h: Likewise.
+	* linux/i386/syscallent.h: Likewise.
+	* linux/ia64/syscallent.h: Likewise.
+	* linux/m68k/syscallent.h: Likewise.
+	* linux/microblaze/syscallent.h: Likewise.
+	* linux/mips/syscallent-n32.h: Likewise.
+	* linux/mips/syscallent-o32.h: Likewise.
+	* linux/powerpc/syscallent.h: Likewise.
+	* linux/powerpc64/syscallent.h: Likewise.
+	* linux/s390/syscallent.h: Likewise.
+	* linux/s390x/syscallent.h: Likewise.
+	* linux/sh/syscallent.h: Likewise.
+	* linux/sh64/syscallent.h: Likewise.
+	* linux/sparc/syscallent.h: Likewise.
+	* linux/sparc64/syscallent.h: Likewise.
+	* linux/xtensa/syscallent.h: Likewise.
+	* linux/alpha/syscallent.h (osf_statfs, osf_statfs64, statfs): Likewise.
+	* linux/mips/syscallent-compat.h (*_statfs, *_statvfs): Likewise.
+	* tests/trace_statfs.test: New test.
+	* tests/Makefile.am (DECODER_TESTS): Add it.
+	* tests/ksysent.c (TSF): New macro, defined to 0.
+	* tests/nsyscalls.c: Likewise.
+
+2017-04-06  Rishi Bhatt  <bhatt.rishi062@gmail.com>
+
+	Implement -e trace=%clock option.
+	linux/*/syscallent.h part is modified automatically by
+	sed -i 's/0\(,[[:space:]]*SEN(clock_\)/TCL\1/' linux/*/syscallent*.h
+
+	[ldv: rewritten clock.test using sched.test as a template]
+
+	* sysent.h (TRACE_CLOCK): New macro.
+	* syscall.c: Alias TCL to TRACE_CLOCK around syscallent.h inclusion.
+	* qualify.c (lookup_class): Add TRACE_CLOCK for "%clock".
+	* strace.1 (.SS Filtering): Add information about %clock syscall class.
+	* NEWS: Mention this change.
+	* linux/32/syscallent.h: Add TCL flag for clock_* syscalls.
+	* linux/64/syscallent.h: Likewise.
+	* linux/alpha/syscallent.h: Likewise.
+	* linux/arm/syscallent.h: Likewise.
+	* linux/avr32/syscallent.h: Likewise.
+	* linux/bfin/syscallent.h: Likewise.
+	* linux/crisv10/syscallent.h: Likewise.
+	* linux/hppa/syscallent.h: Likewise.
+	* linux/i386/syscallent.h: Likewise.
+	* linux/ia64/syscallent.h: Likewise.
+	* linux/m68k/syscallent.h: Likewise.
+	* linux/microblaze/syscallent.h: Likewise.
+	* linux/mips/syscallent-n32.h: Likewise.
+	* linux/mips/syscallent-n64.h: Likewise.
+	* linux/mips/syscallent-o32.h: Likewise.
+	* linux/powerpc/syscallent.h: Likewise.
+	* linux/powerpc64/syscallent.h: Likewise.
+	* linux/s390/syscallent.h: Likewise.
+	* linux/s390x/syscallent.h: Likewise.
+	* linux/sh/syscallent.h: Likewise.
+	* linux/sh64/syscallent.h: Likewise.
+	* linux/sparc/syscallent.h: Likewise.
+	* linux/sparc64/syscallent.h: Likewise.
+	* linux/x32/syscallent.h: Likewise.
+	* linux/x86_64/syscallent.h: Likewise.
+	* linux/xtensa/syscallent.h: Likewise.
+	* tests/clock.test: New test.
+	* tests/Makefile.am (DECODER_TESTS): Add it.
+	* tests/ksysent.c (TCL): New macro, defined to 0.
+	* tests/nsyscalls.c: Likewise.
+
+2017-04-06  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: tabulate xattr.test.
+	* tests/gen_tests.in (xattr): New entry.
+	* tests/xattr.test: Remove.
+	* tests/Makefile.am (DECODER_TESTS): Remove xattr.test.
+
+2017-04-05  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: generalize scripts that check non-abbreviated decoding of ioctls.
+	* tests/ioctl-v.sh: New file.
+	* tests/Makefile.am (EXTRA_DIST): Add it.
+	(DECODER_TESTS): Remove ioctl_evdev-v.test, ioctl_loop-v.test,
+	and ioctl_rtc-v.test.
+	* tests/gen_tests.in (ioctl_evdev-v, ioctl_loop-v, ioctl_rtc-v):
+	New entries.
+	* tests/ioctl_evdev-v.test: Remove.
+	* tests/ioctl_loop-v.test: Ditto.
+	* tests/ioctl_rtc-v.test: Ditto.
+
+2017-04-05  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: tabulate stereotypical test scripts.
+	Convert test scripts that follow simple testing patterns to a table.
+	Generate all these scripts from gen_tests.in file using gen_tests.sh
+	script at bootstrap time.
+
+	The largest set of test scripts has been converted using
+	the following command:
+
+	grep -l ^run_strace_match_diff *.test |while read f; do
+		n="${f%.test}"
+		grep '^[^#]' "$f" |
+		grep -Evq '^(\. "\${srcdir=\.}/init\.sh"|run_strace_match_diff)' ||
+		sed -n 's/^run_strace_match_diff\(.*\)/'$n'\1/p' "$f"
+	done
+
+	The second largest set of test scripts has been converted using
+	the following command:
+
+	grep -l srcdir= *.test |while read f; do
+		n="${f%.test}"
+		grep '^[^#]' "$f" |
+		grep -Fvq srcdir= ||
+		sed -n 's/^. "\${srcdir=.}\/\([^"]\+\)".*/'$n'\t+\1/p' "$f"
+	done
+
+	* tests/gen_tests.in: New file.
+	* tests/gen_tests.sh: New file.
+	* bootstrap: Invoke it.
+	* tests/.gitignore: Add *.gen.test and gen_tests.am.
+	* tests/_newselect.test: Remove.
+	* tests/accept.test: Ditto.
+	* tests/accept4.test: Ditto.
+	* tests/access.test: Ditto.
+	* tests/acct.test: Ditto.
+	* tests/add_key.test: Ditto.
+	* tests/adjtimex.test: Ditto.
+	* tests/aio.test: Ditto.
+	* tests/alarm.test: Ditto.
+	* tests/bpf.test: Ditto.
+	* tests/btrfs.test: Ditto.
+	* tests/chmod.test: Ditto.
+	* tests/chown.test: Ditto.
+	* tests/chown32.test: Ditto.
+	* tests/chroot.test: Ditto.
+	* tests/clock_adjtime.test: Ditto.
+	* tests/clock_nanosleep.test: Ditto.
+	* tests/clock_xettime.test: Ditto.
+	* tests/copy_file_range.test: Ditto.
+	* tests/creat.test: Ditto.
+	* tests/delete_module.test: Ditto.
+	* tests/dup.test: Ditto.
+	* tests/dup2.test: Ditto.
+	* tests/dup3.test: Ditto.
+	* tests/epoll_create.test: Ditto.
+	* tests/epoll_create1.test: Ditto.
+	* tests/epoll_ctl.test: Ditto.
+	* tests/epoll_pwait.test: Ditto.
+	* tests/epoll_wait.test: Ditto.
+	* tests/erestartsys.test: Ditto.
+	* tests/execveat-v.test: Ditto.
+	* tests/execveat.test: Ditto.
+	* tests/faccessat.test: Ditto.
+	* tests/fadvise64_64.test: Ditto.
+	* tests/fallocate.test: Ditto.
+	* tests/fanotify_init.test: Ditto.
+	* tests/fanotify_mark.test: Ditto.
+	* tests/fchdir.test: Ditto.
+	* tests/fchmod.test: Ditto.
+	* tests/fchmodat.test: Ditto.
+	* tests/fchown.test: Ditto.
+	* tests/fchown32.test: Ditto.
+	* tests/fchownat.test: Ditto.
+	* tests/fcntl.test: Ditto.
+	* tests/fcntl64.test: Ditto.
+	* tests/fdatasync.test: Ditto.
+	* tests/file_handle.test: Ditto.
+	* tests/file_ioctl.test: Ditto.
+	* tests/finit_module.test: Ditto.
+	* tests/flock.test: Ditto.
+	* tests/fork-f.test: Ditto.
+	* tests/fstat64.test: Ditto.
+	* tests/fstatat64.test: Ditto.
+	* tests/fstatfs.test: Ditto.
+	* tests/fstatfs64.test: Ditto.
+	* tests/fsync.test: Ditto.
+	* tests/ftruncate.test: Ditto.
+	* tests/ftruncate64.test: Ditto.
+	* tests/futimesat.test: Ditto.
+	* tests/get_mempolicy.test: Ditto.
+	* tests/getcpu.test: Ditto.
+	* tests/getcwd.test: Ditto.
+	* tests/getdents.test: Ditto.
+	* tests/getdents64.test: Ditto.
+	* tests/getegid.test: Ditto.
+	* tests/getegid32.test: Ditto.
+	* tests/geteuid.test: Ditto.
+	* tests/geteuid32.test: Ditto.
+	* tests/getgid.test: Ditto.
+	* tests/getgid32.test: Ditto.
+	* tests/getgroups.test: Ditto.
+	* tests/getgroups32.test: Ditto.
+	* tests/getpeername.test: Ditto.
+	* tests/getpgrp.test: Ditto.
+	* tests/getrandom.test: Ditto.
+	* tests/getresgid.test: Ditto.
+	* tests/getresgid32.test: Ditto.
+	* tests/getresuid.test: Ditto.
+	* tests/getresuid32.test: Ditto.
+	* tests/getrlimit.test: Ditto.
+	* tests/getrusage.test: Ditto.
+	* tests/getsid.test: Ditto.
+	* tests/getsockname.test: Ditto.
+	* tests/getuid32.test: Ditto.
+	* tests/getxxid.test: Ditto.
+	* tests/inet-cmsg.test: Ditto.
+	* tests/init_module.test: Ditto.
+	* tests/inotify.test: Ditto.
+	* tests/inotify_init1.test: Ditto.
+	* tests/int_0x80.test: Ditto.
+	* tests/ioctl_block.test: Ditto.
+	* tests/ioctl_evdev.test: Ditto.
+	* tests/ioctl_loop.test: Ditto.
+	* tests/ioctl_mtd.test: Ditto.
+	* tests/ioctl_rtc.test: Ditto.
+	* tests/ioctl_scsi.test: Ditto.
+	* tests/ioctl_sg_io_v3.test: Ditto.
+	* tests/ioctl_sg_io_v4.test: Ditto.
+	* tests/ioctl_uffdio.test: Ditto.
+	* tests/ioctl_v4l2.test: Ditto.
+	* tests/ioperm.test: Ditto.
+	* tests/iopl.test: Ditto.
+	* tests/ioprio.test: Ditto.
+	* tests/ip_mreq.test: Ditto.
+	* tests/ipc.test: Ditto.
+	* tests/ipc_msg.test: Ditto.
+	* tests/ipc_sem.test: Ditto.
+	* tests/ipc_shm.test: Ditto.
+	* tests/kcmp.test: Ditto.
+	* tests/kexec_file_load.test: Ditto.
+	* tests/kexec_load.test: Ditto.
+	* tests/keyctl.test: Ditto.
+	* tests/kill.test: Ditto.
+	* tests/lchown.test: Ditto.
+	* tests/lchown32.test: Ditto.
+	* tests/link.test: Ditto.
+	* tests/linkat.test: Ditto.
+	* tests/lookup_dcookie.test: Ditto.
+	* tests/lstat.test: Ditto.
+	* tests/lstat64.test: Ditto.
+	* tests/mbind.test: Ditto.
+	* tests/membarrier.test: Ditto.
+	* tests/memfd_create.test: Ditto.
+	* tests/migrate_pages.test: Ditto.
+	* tests/mincore.test: Ditto.
+	* tests/mkdir.test: Ditto.
+	* tests/mkdirat.test: Ditto.
+	* tests/mknod.test: Ditto.
+	* tests/mknodat.test: Ditto.
+	* tests/mlock.test: Ditto.
+	* tests/mlock2.test: Ditto.
+	* tests/mlockall.test: Ditto.
+	* tests/mmap64.test: Ditto.
+	* tests/mmsg-silent.test: Ditto.
+	* tests/mmsg.test: Ditto.
+	* tests/mmsg_name-v.test: Ditto.
+	* tests/mmsg_name.test: Ditto.
+	* tests/mount.test: Ditto.
+	* tests/move_pages.test: Ditto.
+	* tests/mq.test: Ditto.
+	* tests/mq_sendrecv-read.test: Ditto.
+	* tests/mq_sendrecv-write.test: Ditto.
+	* tests/mq_sendrecv.test: Ditto.
+	* tests/msg_control-v.test: Ditto.
+	* tests/msg_control.test: Ditto.
+	* tests/msg_name.test: Ditto.
+	* tests/munlockall.test: Ditto.
+	* tests/nanosleep.test: Ditto.
+	* tests/net-icmp_filter.test: Ditto.
+	* tests/net-sockaddr.test: Ditto.
+	* tests/newfstatat.test: Ditto.
+	* tests/old_mmap.test: Ditto.
+	* tests/oldfstat.test: Ditto.
+	* tests/oldlstat.test: Ditto.
+	* tests/oldstat.test: Ditto.
+	* tests/open.test: Ditto.
+	* tests/openat.test: Ditto.
+	* tests/pause.test: Ditto.
+	* tests/perf_event_open.test: Ditto.
+	* tests/perf_event_open_nonverbose.test: Ditto.
+	* tests/perf_event_open_unabbrev.test: Ditto.
+	* tests/pipe2.test: Ditto.
+	* tests/pkey_alloc.test: Ditto.
+	* tests/pkey_free.test: Ditto.
+	* tests/pkey_mprotect.test: Ditto.
+	* tests/ppoll-v.test: Ditto.
+	* tests/ppoll.test: Ditto.
+	* tests/preadv-pwritev.test: Ditto.
+	* tests/preadv.test: Ditto.
+	* tests/preadv2-pwritev2.test: Ditto.
+	* tests/printstr.test: Ditto.
+	* tests/prlimit64.test: Ditto.
+	* tests/process_vm_readv.test: Ditto.
+	* tests/process_vm_writev.test: Ditto.
+	* tests/pselect6.test: Ditto.
+	* tests/ptrace.test: Ditto.
+	* tests/pwritev.test: Ditto.
+	* tests/quotactl-v.test: Ditto.
+	* tests/quotactl-xfs-v.test: Ditto.
+	* tests/quotactl-xfs.test: Ditto.
+	* tests/quotactl.test: Ditto.
+	* tests/readahead.test: Ditto.
+	* tests/readdir.test: Ditto.
+	* tests/readlink.test: Ditto.
+	* tests/readlinkat.test: Ditto.
+	* tests/reboot.test: Ditto.
+	* tests/recvfrom.test: Ditto.
+	* tests/recvmmsg-timeout.test: Ditto.
+	* tests/recvmsg.test: Ditto.
+	* tests/remap_file_pages.test: Ditto.
+	* tests/rename.test: Ditto.
+	* tests/renameat.test: Ditto.
+	* tests/renameat2.test: Ditto.
+	* tests/request_key.test: Ditto.
+	* tests/rmdir.test: Ditto.
+	* tests/rt_sigpending.test: Ditto.
+	* tests/rt_sigprocmask.test: Ditto.
+	* tests/rt_sigqueueinfo.test: Ditto.
+	* tests/rt_sigreturn.test: Ditto.
+	* tests/rt_sigsuspend.test: Ditto.
+	* tests/rt_sigtimedwait.test: Ditto.
+	* tests/rt_tgsigqueueinfo.test: Ditto.
+	* tests/sched_get_priority_mxx.test: Ditto.
+	* tests/sched_rr_get_interval.test: Ditto.
+	* tests/sched_xetaffinity.test: Ditto.
+	* tests/sched_xetattr.test: Ditto.
+	* tests/sched_xetparam.test: Ditto.
+	* tests/sched_xetscheduler.test: Ditto.
+	* tests/sched_yield.test: Ditto.
+	* tests/seccomp-filter-v.test: Ditto.
+	* tests/seccomp-filter.test: Ditto.
+	* tests/select.test: Ditto.
+	* tests/semop.test: Ditto.
+	* tests/sendfile.test: Ditto.
+	* tests/sendfile64.test: Ditto.
+	* tests/set_mempolicy.test: Ditto.
+	* tests/setdomainname.test: Ditto.
+	* tests/setfsgid.test: Ditto.
+	* tests/setfsgid32.test: Ditto.
+	* tests/setfsuid.test: Ditto.
+	* tests/setfsuid32.test: Ditto.
+	* tests/setgid.test: Ditto.
+	* tests/setgid32.test: Ditto.
+	* tests/setgroups.test: Ditto.
+	* tests/setgroups32.test: Ditto.
+	* tests/sethostname.test: Ditto.
+	* tests/setns.test: Ditto.
+	* tests/setregid.test: Ditto.
+	* tests/setregid32.test: Ditto.
+	* tests/setresgid.test: Ditto.
+	* tests/setresgid32.test: Ditto.
+	* tests/setresuid.test: Ditto.
+	* tests/setresuid32.test: Ditto.
+	* tests/setreuid.test: Ditto.
+	* tests/setreuid32.test: Ditto.
+	* tests/setrlimit.test: Ditto.
+	* tests/setuid.test: Ditto.
+	* tests/setuid32.test: Ditto.
+	* tests/shutdown.test: Ditto.
+	* tests/siginfo.test: Ditto.
+	* tests/signal_receive.test: Ditto.
+	* tests/signalfd4.test: Ditto.
+	* tests/sigreturn.test: Ditto.
+	* tests/socketcall.test: Ditto.
+	* tests/splice.test: Ditto.
+	* tests/stat.test: Ditto.
+	* tests/stat64.test: Ditto.
+	* tests/statfs64.test: Ditto.
+	* tests/statx.sh: Ditto.
+	* tests/statx.test: Ditto.
+	* tests/swap.test: Ditto.
+	* tests/symlink.test: Ditto.
+	* tests/symlinkat.test: Ditto.
+	* tests/sync.test: Ditto.
+	* tests/sync_file_range.test: Ditto.
+	* tests/sync_file_range2.test: Ditto.
+	* tests/sysinfo.test: Ditto.
+	* tests/syslog.test: Ditto.
+	* tests/tee.test: Ditto.
+	* tests/time.test: Ditto.
+	* tests/timer_create.test: Ditto.
+	* tests/timer_xettime.test: Ditto.
+	* tests/timerfd_xettime.test: Ditto.
+	* tests/times-fail.test: Ditto.
+	* tests/times.test: Ditto.
+	* tests/truncate.test: Ditto.
+	* tests/truncate64.test: Ditto.
+	* tests/ugetrlimit.test: Ditto.
+	* tests/umask.test: Ditto.
+	* tests/umoven-illptr.test: Ditto.
+	* tests/umovestr-illptr.test: Ditto.
+	* tests/umovestr3.test: Ditto.
+	* tests/unlink.test: Ditto.
+	* tests/unlinkat.test: Ditto.
+	* tests/unshare.test: Ditto.
+	* tests/userfaultfd.test: Ditto.
+	* tests/ustat.test: Ditto.
+	* tests/utime.test: Ditto.
+	* tests/utimes.test: Ditto.
+	* tests/vfork-f.test: Ditto.
+	* tests/vhangup.test: Ditto.
+	* tests/vmsplice.test: Ditto.
+	* tests/wait4-v.test: Ditto.
+	* tests/wait4.test: Ditto.
+	* tests/waitid-v.test: Ditto.
+	* tests/waitid.test: Ditto.
+	* tests/waitpid.test: Ditto.
+	* tests/xattr-strings.test: Ditto.
+	* tests/xet_robust_list.test: Ditto.
+	* tests/xetitimer.test: Ditto.
+	* tests/xetpgid.test: Ditto.
+	* tests/xetpriority.test: Ditto.
+	* tests/xettimeofday.test: Ditto.
+	* tests/Makefile.am (DECODER_TESTS, MISC_TESTS): Remove them.
+	Include gen_tests.am.
+	(TESTS): Add $(GEN_TESTS).
+	(XFAIL_TESTS_x86_64, XFAIL_TESTS_x32): Rename int_0x80.test
+	to int_0x80.gen.test.
+	(EXTRA_DIST): Add gen_tests.in and gen_tests.sh, remove statx.sh.
+	(clean-local-check): Remove $(GEN_TESTS:.gen.test=.dir).
+
+2017-04-04  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: handle test scripts with .gen.test suffix.
+	* tests/init.sh: If script name ends with .gen.test,
+	set NAME variable with .gen.test suffix stripped.
+
+2017-04-04  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	mpers.awk: add support for multidimensional arrays.
+	* mpers.awk (update_upper_bound): New function, which maintains new "count"
+	property for storing total element count and updates "upper_bound"
+	property which now contains string with array dimensions.
+	(/^DW_AT_upper_bound/, /^DW_AT_count/): Use it.
+	(what_is) <case "array_type">: Use "count" property in order to calculate
+	returned_size, do not embody returned string in square brackets.
+	* mpers_test.sh: Add checks for multidimensional arrays.
+
+2017-04-04  Dmitry V. Levin  <ldv@altlinux.org>
+
+	mpers.awk: prepare for adding support of multidimensional arrays.
+	* mpers.awk (what_is) <case "structure_type", case "union_type">:
+	Move formatting of array upper_bound ...
+	<case "array_type">: ... here.
+
+2017-04-03  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: cleanup temporary files removals.
+	As every test now runs in its own subdirectory, there is no need
+	to remove leftover files manually by each test.
+
+	* tests/init.sh (run_strace_match_diff): Do not remove $EXP.
+	* tests/brk.test: Likewise.
+	* tests/options-syntax.test: Likewise.
+	* tests/qual_inject-retval.test (check_injection): Likewise.
+	* tests/qual_signal.test (test_one_sig): Likewise.
+	* tests/sched.test: Likewise.
+	* tests/seccomp-strict.test: Likewise.
+	* tests/strace-V.test: Likewise.
+	* tests/strace-tt.test: Likewise.
+	* tests/strace-ttt.test: Likewise.
+	* tests/threads-execve.test: Likewise.
+	* tests/attach-f-p.test: Use $EXP instead of $OUT, do not remove it.
+	* tests/personality.test: Likewise.
+	* tests/poll.test: Likewise.
+	* tests/fstat.test: Likewise.
+	* tests/ipc.sh: Likewise.
+	* tests/restart_syscall.test: Likewise.
+	* tests/utimensat.test: Likewise.
+	* tests/attach-p-cmd.test: Likewise.  Do not remove
+	attach-p-cmd.test-lock.
+	* tests/detach-running.test: Do not remove $LOG.
+	* tests/detach-sleeping.test: Likewise.
+	* tests/detach-stopped.test: Likewise.
+	* tests/redirect.test: Do not remove $OUT.
+	* tests/strace-S.test: Likewise.
+	* tests/getdents.test: Do not remove $LOG.dir.
+	* tests/getdents64.test: Likewise.
+	* tests/readdir.test: Likewise.
+	* tests/btrfs-v.test: Do not remove $EXP and $OUT.
+	* tests/btrfs-vw.test: Likewise.
+	* tests/btrfs-w.test: Likewise.
+	* tests/execve-v.test: Likewise.
+	* tests/execve.test: Likewise.
+	* tests/fadvise64.test: Likewise.
+	* tests/getuid.test: Likewise.
+	* tests/ioctl.test: Likewise.
+	* tests/ioctl_dm-v.test: Likewise.
+	* tests/ioctl_dm.test: Likewise.
+	* tests/ioctl_evdev-v.test: Likewise.
+	* tests/ioctl_loop-nv.test: Likewise.
+	* tests/ioctl_loop-v.test: Likewise.
+	* tests/ioctl_loop.test: Likewise.
+	* tests/ioctl_rtc-v.test: Likewise.
+	* tests/ioctl_sock_gifconf.test: Likewise.
+	* tests/llseek.test: Likewise.
+	* tests/lseek.test: Likewise.
+	* tests/mmap.test: Likewise.
+	* tests/net-y-unix.test: Likewise.
+	* tests/net-yy-inet.test: Likewise.
+	* tests/net-yy-netlink.test: Likewise.
+	* tests/net-yy-unix.test: Likewise.
+	* tests/opipe.test: Likewise.
+	* tests/prctl-arg2-intptr.test: Likewise.
+	* tests/prctl-dumpable.test: Likewise.
+	* tests/prctl-name.test: Likewise.
+	* tests/prctl-no-args.test: Likewise.
+	* tests/prctl-pdeathsig.test: Likewise.
+	* tests/prctl-seccomp-filter-v.test: Likewise.
+	* tests/prctl-seccomp-strict.test: Likewise.
+	* tests/prctl-securebits.test: Likewise.
+	* tests/prctl-tid_address.test: Likewise.
+	* tests/prctl-tsc.test: Likewise.
+	* tests/umovestr2.test: Likewise.
+	* tests/uname.test: Likewise.
+	* tests/pread64-pwrite64.test: Do nore remove pread64-pwrite64-tmpfile.
+	* tests/read-write.test: Do nore remove read-write-tmpfile.
+	* tests/qual_fault.test (check_fault_injection): Do not remove $EXP,
+	$outexp, and $outgot.
+	* tests/redirect-fds.test (check_fd): Reorder removal of work files.
+	* tests/pc.test: Use $EXP instead of $EXPECTED, do not remove it.
+	* tests/strace-t.test: Likewise.
+	* tests/scm_rights-fd.test: Likewise.  Use dir instead of $LOG.dir,
+	do not remove it.
+	* tests/strace-ff.test: Do not remove $OUT and $LOG.* files.
+
+2017-04-03  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: enhance sched.test negative check.
+	* tests/sched.test: Test that trace=%sched doesn't match
+	anything besides sched_* syscalls by checking it against all test
+	executables without side effects listed in pure_executables.list
+	except sched_* and times.
+
+2017-04-03  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: add a list of executables without side effects.
+	These are executables that could be used by several different tests
+	simultaneously.
+
+	* tests/pure_executables.list: New file.
+	* tests/Makefile.am (EXTRA_DIST): Add it.
+
+2017-04-03  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: use fixed socket address in net-yy-unix.test.
+	This allows net-yy-unix invocation without arguments.
+
+	* tests/net-yy-unix.c (TEST_SOCKET): New macro.
+	(void): Use it instead of av[1].
+	* tests/net-yy-unix.test: Do not specify arguments for the test
+	executable.
+
+2017-04-03  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: use fixed socket address in net-y-unix.test.
+	This allows net-y-unix invocation without arguments.
+
+	* tests/net-y-unix.c (TEST_SOCKET): New macro.
+	(void): Use it instead of av[1].
+	* tests/net-y-unix.test: Do not specify arguments for the test
+	executable.
+
+2017-04-03  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: run every test except ksysent.test in its own subdirectory.
+	Many test executables create temporary files in the current work
+	directory for the duration of their execution.
+	This level of test isolation allows more test executables to be invoked
+	several times simultaneously.
+
+	* tests/.gitignore: Add *.dir, remove *.log.*, *.tmp, *.tmp-*,
+	and *.tmp.* patterns.
+	* tests/Makefile.am (clean-local, clean-local-check): New rules.
+	(.PHONY): Add clean-local-check.
+	(CLEANFILES): Remove all but ksysent.h.
+	* tests/init.sh: Strip test-specific prefix from LOG, OUT, and EXP
+	variables.  When invoked from a test, create a new test-specific
+	directory, chdir into it, and add more ../ prefix to STRACE variable.
+	(run_prog): Replace "./" with "../".
+	* tests/attach-f-p.test: Replace "./" with "../".
+	* tests/attach-p-cmd.test: Likewise.
+	* tests/bexecve.test: Likewise.
+	* tests/btrfs-v.test: Likewise.
+	* tests/btrfs-vw.test: Likewise.
+	* tests/btrfs-w.test: Likewise.
+	* tests/count.test: Likewise.
+	* tests/detach-running.test: Likewise.
+	* tests/detach-sleeping.test: Likewise.
+	* tests/detach-stopped.test: Likewise.
+	* tests/mmap.test: Likewise.
+	* tests/net-y-unix.test: Likewise.
+	* tests/net-yy-inet.test: Likewise.
+	* tests/net-yy-netlink.test: Likewise.
+	* tests/net-yy-unix.test: Likewise.
+	* tests/net.test: Likewise.
+	* tests/opipe.test: Likewise.
+	* tests/poll.test: Likewise.
+	* tests/prctl-seccomp-strict.test: Likewise.
+	* tests/qual_fault-exit_group.test: Likewise.
+	* tests/qual_fault.test: Likewise.
+	* tests/qual_inject-error-signal.test: Likewise.
+	* tests/qual_inject-retval.test: Likewise.
+	* tests/qual_inject-signal.test: Likewise.
+	* tests/qual_signal.test: Likewise.
+	* tests/qual_syscall.test: Likewise.
+	* tests/readv.test: Likewise.
+	* tests/redirect-fds.test: Likewise.
+	* tests/sched.test: Likewise.
+	* tests/scm_rights-fd.test: Likewise.
+	* tests/seccomp-strict.test: Likewise.
+	* tests/strace-C.test: Likewise.
+	* tests/strace-E.expected: Likewise.
+	* tests/strace-E.test: Likewise.
+	* tests/strace-S.test: Likewise.
+	* tests/strace-T.test: Likewise.
+	* tests/strace-V.test: Likewise.
+	* tests/strace-ff.test: Likewise.
+	* tests/strace-k.test: Likewise.
+	* tests/strace-r.expected: Likewise.
+	* tests/strace-r.test: Likewise.
+	* tests/strace-t.test: Likewise.
+	* tests/strace-tt.test: Likewise.
+	* tests/strace-ttt.test: Likewise.
+	* tests/sun_path.test: Likewise.
+	* tests/uname.test: Likewise.
+	* tests/unix-pair-send-recv.test: Likewise.
+	* tests/unix-pair-sendto-recvfrom.test: Likewise.
+
+2017-04-03  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: make test executables invocable outside current work directory.
+	Most of test executables were ready for the upcoming change,
+	this change prepares all the rest.
+
+	* tests/getdents.c (main): Use fixed name for the sample directory.
+	* tests/getdents64.c (main): Likewise.
+	* tests/readdir.c (main): Likewise.
+	* tests/mknod.c (sample): Change to a pointer.
+	(main): Use av[0] as a sample.
+	* tests/symlink.c (main): Use av[0] as a linkpath.
+	* tests/umode_t.c (sample): Change to a pointer.
+	(test_syscall): Fix expected output.
+	(main): Use av[0] as a sample.
+
+2017-03-31  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: cleanup access.test.
+	* tests/access.test: Use run_strace_match_diff.
+	* tests/access.c (main): Update expected output.
+
+2017-03-30  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: cleanup oldfstat.test.
+	* tests/oldfstat.test: Use fstat.test.
+
+2017-03-29  Dmitry V. Levin  <ldv@altlinux.org>
+
+	aarch64: workaround gcc+kernel bug.
+	Due to a subtle gcc bug that leads to miscompiled aarch64 kernels,
+	the 3rd argument of sched_getattr syscall is not quite 32-bit
+	on aarch64 as on other architectures.  For more details see
+	https://sourceforge.net/p/strace/mailman/message/35721703/
+
+	* defs.h (print_abnormal_hi): New prototype.
+	* util.c (print_abnormal_hi): New function.
+	* sched.c (SYS_FUNC(sched_getattr)) [AARCH64]: Use it.
+	* tests/sched_xetattr.c (main) [__arm64__ || __aarch64__]: Test it.
+
+2017-03-29  Abhishek Tiwari  <erabhishektiwarics@gmail.com>
+
+	alpha, mips: fix missing flags in stat related compatibility syscalls.
+	Following commands do the fix:
+
+	Add TF flag, fixed by:
+		git grep -Fl '_stat' linux/*/syscallent* | xargs sed -i \
+	  		's/0\(,[[:space:]]*SEN(.*_l\?stat[^i]\)/TF\1/'
+
+	Add TD flag, fixed by:
+		git grep -Fl '_stat' linux/*/syscallent* | xargs sed -i \
+		  's/0\(,[[:space:]]*SEN(.*_fstat\)/TD\1/'
+
+	* linux/alpha/syscallent.h: Add TF and TD flags to stat related
+	compat syscall entries.
+	* linux/mips/syscallent-compat.h: Likewise.
+
+2017-03-24  Dmitry V. Levin  <ldv@altlinux.org>
+
+	alpha: fix the number of arguments in alpha specific syscalls.
+	* linux/alpha/syscallent.h (getxgid, osf_stat, osf_lstat, osf_fstat,
+	osf_sysinfo, sethae): Set nargs according to arch/alpha/kernel/osf_sys.c
+	from linux v4.10.
+
+	alpha: update comments about not implemented syscalls.
+	* linux/alpha/syscallent.h: Sync "not implemented" comments
+	with arch/alpha/kernel/systbls.S from linux v4.10.
+
+2017-03-23  Quentin Monnet  <quentin.monnet@6wind.com>
+
+	Update BPF_MAP_TYPE_* constants.
+	* xlat/bpf_map_types.in: Add BPF_MAP_TYPE_ARRAY_OF_MAPS
+	and BPF_MAP_TYPE_HASH_OF_MAPS constants.
+
+2017-03-23  Gleb Fotengauer-Malinovskiy  <glebfm@altlinux.org>
+
+	Update ioctl entries from linux v4.11-rc3.
+	* linux/32/ioctls_inc_align16.h: Update from linux v4.11-rc3 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/x32/ioctls_inc0.h: Likewise.
+	* linux/arm/ioctls_arch0.h: Likewise.
+	* linux/i386/ioctls_arch0.h: Likewise.
+	* linux/powerpc/ioctls_arch0.h: Likewise.
+	* linux/s390/ioctls_arch0.h: Likewise.
+	* linux/s390x/ioctls_arch0.h: Likewise.
+	* linux/x86_64/ioctls_arch0.h: Likewise.
+	* NEWS: Mention this.
+
+	maint: update for linux 4.11.
+	* maint/ioctls_sym.sh (ppc_list): Add KVM_PPC_GET_RMMU_INFO
+	and KVM_PPC_CONFIGURE_V3_MMU.
+
+2017-03-19  Dmitry V. Levin  <ldv@altlinux.org>
+
+	test: rename README to README.md.
+	* test/README: Rename to README.md, turn ../tests reference into an URL.
+
+	test: update README.
+	* test/README: Tell the reader what this directory is actually for.
+
+	test: rewrite skodic.c demo.
+	* test/skodic.c: Rewrite this demo to simplify its use.
+
+2017-03-18  Victor Krapivensky  <krapivenskiy.va@phystech.edu>
+
+	Implement decoding of statx syscall.
+	* linux/i386/syscallent.h [383]: Add statx entry.
+	* linux/x32/syscallent.h [332]: Likewise.
+	* linux/x86_64/syscallent.h [332]: Likewise.
+	* pathtrace.c (pathtrace_match): Handle SEN_statx.
+	* statx.c: New file.
+	* statx.h: Likewise.
+	* Makefile.am (strace_SOURCES): Add them.
+	* tests/.gitignore: Add statx.
+	* tests/Makefile.am (check_PROGRAMS): Likewise.
+	(DECODER_TESTS): Add statx.test.
+	* tests/statx.c: New file.
+	* tests/statx.test: Likewise.
+	* tests/xstatx.c: Modify to support statx.
+	* xlat/at_statx_sync_types.in: New file.
+	* xlat/statx_attrs.in: Likewise.
+	* xlat/statx_masks.in: Likewise.
+	* NEWS: Mention this change.
+
+2017-03-17  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: check for out of bounds fetch in parsers of stat family syscalls.
+	* tests/xstatx.c (main): Create STRUCT_STAT object using
+	TAIL_ALLOC_OBJECT_CONST_PTR.
+
+	tests: check unexpected syscall errors returned by stat family syscalls.
+	* tests/xstatx.c (main) [!OLD_STAT]: Do not skip the test
+	in case of EOVERFLOW.
+	Treat errors other than ENOSYS and EOVERFLOW as fatal.
+
+2017-03-17  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	tests: move try_run_prog to init.sh.
+	Looks like try_run_prog may be of general use by other syscall class
+	tests.
+
+	* tests/sched.test (try_run_prog): Move it...
+	* tests/init: ... here.
+
+2017-03-17  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	tests/sched.test: rc should be a local variable in try_run_prog.
+	* tests/sched.test (try_run_prog): Add local rc.
+
+2017-03-16  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: check decoding of int 0x80 on x86_64, x32, and x86.
+	* tests/int_0x80.c: New file.
+	* tests/int_0x80.test: New test.
+	* tests/.gitignore: Add int_0x80.
+	* tests/Makefile.am (check_PROGRAMS): Likewise.
+	(MISC_TESTS, XFAIL_TESTS_x86_64, XFAIL_TESTS_x32): Add int_0x80.test.
+	(XFAIL_TESTS): Add $(XFAIL_TESTS_$(ARCH)).
+	(CLEANFILES): Add $(TESTS:=.tmp.out) and $(TESTS:=.tmp.exp).
+
+2017-03-16  Damien Profeta  <damien.profeta@amadeus.com>
+
+	strace-graph: handle pid looping.
+	* strace-graph: On long running process or heavily forking one (like
+	compilation), it can happen that a parent get 2 different children with
+	the same pid.  By tracking the currently runnig pid and adding the start
+	timestamp to the pid, the graph can now handle that case.
+
+	Closes: https://github.com/strace/strace/pull/7
+
+2017-03-16  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: use TAIL_ALLOC_OBJECT_CONST_PTR.
+	Automatically convert tests to use TAIL_ALLOC_OBJECT_CONST_PTR macro
+	with the following sed expression:
+
+	sed -ri \
+	's/^([[:space:]]*)(([^*]+[[:alnum:]_])( \*)?) *\*( *const )?([^ =]+) = tail_alloc\(sizeof\((\2|\*\6)\)\);/\1TAIL_ALLOC_OBJECT_CONST_PTR(\2, \6);/' \
+	tests/*.c
+
+2017-03-16  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: use TAIL_ALLOC_OBJECT_VAR_PTR.
+	Automatically convert tests to use TAIL_ALLOC_OBJECT_VAR_PTR macro
+	with the following sed expression:
+
+	sed -ri \
+	's/^([[:space:]]*)(([^*]+[[:alnum:]_])( \*)?) *\*([^ =]+) = tail_alloc\(sizeof\((\2|\*\5)\)\);/\1TAIL_ALLOC_OBJECT_VAR_PTR(\2, \5);/' \
+	tests/{move_pages,net-sockaddr,sendfile}.c
+
+2017-03-16  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: add TAIL_ALLOC_OBJECT_{CONST,VAR}_PTR to tests.h.
+	Introduce a new macros for the most widespread use of tail_alloc.
+
+	* tests/tests.h (TAIL_ALLOC_OBJECT_CONST_PTR,
+	TAIL_ALLOC_OBJECT_VAR_PTR): New macros.
+
+2017-03-16  Victor Krapivensky  <krapivenskiy.va@phystech.edu>
+
+	Decode RUSAGE_THREAD.
+	* xlat/usagewho.in: Add values for existing entities, add
+	RUSAGE_THREAD.
+	* tests/getrusage.c: Test decoding of RUSAGE_THREAD.
+
+2017-03-15  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	tests/sched.test: use heredoc in order to avoid spawning of subprocess.
+	Pipelined commands executed in subprocesses (some shells have special
+	provision for last command in the pipeline, but it is not guaranteed
+	and not POSIX), so exit codes of these subprocesses can be lost.
+	In order to avoid creating subprocesses, input for read commands
+	is better to supply via heredoc and not pipe.
+
+	* tests/sched.test: Move test cases to heredoc.
+
+2017-03-15  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: do not skip sched.test if one of its subtests skips.
+	* tests/sched.test (try_run_prog): New function.
+	Use it instead of run_prog.
+
+2017-03-15  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: do not check decoding of setitimer syscall outside xetitimer.test
+	xetitimer.test already implements a comprehensive test of setitimer
+	syscall parser, no need to duplicate its parts in other tests.
+
+	* tests/clock_nanosleep.c (main): Remove setitimer expected output.
+	* tests/nanosleep.c (main): Likewise.
+	* tests/clock_nanosleep.test: Remove setitimer from the trace set.
+	* tests/nanosleep.test: Likewise.
+
+2017-03-14  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: check decoding of getitimer and setitimer corner cases.
+	* tests/sched_xetattr.c: Include <unistd.h> and <asm/unistd.h>.
+	(main): Check that pointer and integer arguments of getitimer
+	and setitimer syscalls are decoded properly.
+	* tests/xetitimer.test: Add -a option.
+
+2017-03-13  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: rewrite sigreturn syscall decoding check from match_grep to match_diff
+	Unlike the former test that was based on match_grep,
+	the new one uses match_diff and does more rigorous testing.
+
+	* tests/sigreturn.c: Rewrite.
+	* tests/sigreturn.test: Likewise.
+
+2017-03-13  Dmitry V. Levin  <ldv@altlinux.org>
+
+	ia64, mips, x86_64: remove no longer used parsers of sigreturn syscalls.
+	As there is no sigreturn syscall on ia64, mips n32, mips n64, x32,
+	and x86_64, no longer used parsers could be safely removed.
+
+	* linux/ia64/arch_sigreturn.c: Remove.
+	* Makefile.am (EXTRA_DIST): Remove it.
+	* linux/mips/arch_sigreturn.c (arch_sigreturn): Remove [!LINUX_MIPSO32].
+	* linux/x86_64/arch_sigreturn.c (arch_sigreturn): Remove.
+
+2017-03-13  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Move sigreturn parser to libstrace.
+	All architectures have rt_sigreturn, but only old ones also have
+	sigreturn.  Since not all architectures need a parser of sigreturn
+	syscall, remove the warning and move the parser to libstrace.
+
+	* Makefile.am (strace_SOURCES): Move sigreturn.c ...
+	(libstrace_a_SOURCES): ... here.
+	* linux/arch_sigreturn.c: Remove warning.
+
+2017-03-13  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: check decoding of rt_sigreturn syscall.
+	* tests/rt_sigreturn.c: New file.
+	* tests/rt_sigreturn.test: New test.
+	* tests/.gitignore: Add rt_sigreturn.
+	* tests/Makefile.am (check_PROGRAMS): Likewise.
+	(DECODER_TESTS): Add rt_sigreturn.test.
+
+	Implement proper decoding of rt_sigreturn syscall.
+	* rt_sigreturn.c: New file.
+	* Makefile.am (strace_SOURCES): Add it.
+	* linux/dummy.h (sys_rt_sigreturn): Remove.
+	* linux/64/syscallent.h (rt_sigreturn): Change sys_func to rt_sigreturn.
+	* linux/hppa/syscallent.h (rt_sigreturn): Likewise.
+	* linux/ia64/syscallent.h (rt_sigreturn): Likewise.
+	* linux/s390/syscallent.h (rt_sigreturn): Likewise.
+	* linux/s390x/syscallent.h (rt_sigreturn): Likewise.
+	* linux/x86_64/syscallent.h (rt_sigreturn): Likewise.
+	* linux/x32/syscallent.h (rt_sigreturn, 64:rt_sigreturn): Likewise.
+	* NEWS: Mention this change.
+
+2017-03-13  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Introduce get_rt_sigframe_addr function.
+	Add get_rt_sigframe_addr function for all supported architectures.
+	It is going to be used in a parser of rt_sigreturn syscall.
+
+	* defs.h (get_rt_sigframe_addr): New function prototype.
+	* rt_sigframe.c: New file.
+	* Makefile.am (strace_SOURCES): Add it.
+	* linux/aarch64/arch_rt_sigframe.c: New file.
+	* linux/alpha/arch_rt_sigframe.c: Likewise.
+	* linux/arc/arch_rt_sigframe.c: Likewise.
+	* linux/arm/arch_rt_sigframe.c: Likewise.
+	* linux/avr32/arch_rt_sigframe.c: Likewise.
+	* linux/bfin/arch_rt_sigframe.c: Likewise.
+	* linux/crisv10/arch_rt_sigframe.c: Likewise.
+	* linux/crisv32/arch_rt_sigframe.c: Likewise.
+	* linux/hppa/arch_rt_sigframe.c: Likewise.
+	* linux/i386/arch_rt_sigframe.c: Likewise.
+	* linux/ia64/arch_rt_sigframe.c: Likewise.
+	* linux/m68k/arch_rt_sigframe.c: Likewise.
+	* linux/metag/arch_rt_sigframe.c: Likewise.
+	* linux/microblaze/arch_rt_sigframe.c: Likewise.
+	* linux/mips/arch_rt_sigframe.c: Likewise.
+	* linux/nios2/arch_rt_sigframe.c: Likewise.
+	* linux/or1k/arch_rt_sigframe.c: Likewise.
+	* linux/powerpc/arch_rt_sigframe.c: Likewise.
+	* linux/powerpc64/arch_rt_sigframe.c: Likewise.
+	* linux/riscv/arch_rt_sigframe.c: Likewise.
+	* linux/s390/arch_rt_sigframe.c: Likewise.
+	* linux/s390x/arch_rt_sigframe.c: Likewise.
+	* linux/sh/arch_rt_sigframe.c: Likewise.
+	* linux/sh64/arch_rt_sigframe.c: Likewise.
+	* linux/sparc/arch_rt_sigframe.c: Likewise.
+	* linux/sparc64/arch_rt_sigframe.c: Likewise.
+	* linux/tile/arch_rt_sigframe.c: Likewise.
+	* linux/x32/arch_rt_sigframe.c: Likewise.
+	* linux/x86_64/arch_rt_sigframe.c: Likewise.
+	* linux/xtensa/arch_rt_sigframe.c: Likewise.
+	* Makefile.am (EXTRA_DIST): Add them.
+
+2017-03-13  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Introduce struct_rt_sigframe type.
+	Add rt_sigframe.h files with definitions of struct_rt_sigframe type
+	for all supported architectures.
+	These definitions are going to be used in a parser of rt_sigreturn
+	syscall.
+
+	* linux/rt_sigframe.h: New file.
+	* linux/bfin/rt_sigframe.h: Likewise.
+	* linux/crisv10/rt_sigframe.h: Likewise.
+	* linux/crisv32/rt_sigframe.h: Likewise.
+	* linux/hppa/rt_sigframe.h: Likewise.
+	* linux/i386/rt_sigframe.h: Likewise.
+	* linux/ia64/rt_sigframe.h: Likewise.
+	* linux/m68k/rt_sigframe.h: Likewise.
+	* linux/mips/rt_sigframe.h: Likewise.
+	* linux/powerpc64/rt_sigframe.h: Likewise.
+	* linux/s390/rt_sigframe.h: Likewise.
+	* linux/s390x/rt_sigframe.h: Likewise.
+	* linux/sh64/rt_sigframe.h: Likewise.
+	* linux/sparc/rt_sigframe.h: Likewise.
+	* linux/sparc64/rt_sigframe.h: Likewise.
+	* linux/tile/rt_sigframe.h: Likewise.
+	* linux/x32/rt_sigframe.h: Likewise.
+	* linux/x86_64/rt_sigframe.h: Likewise.
+	* Makefile.am (EXTRA_DIST): Add them.
+
+2017-03-13  Victor Krapivensky  <krapivenskiy.va@phystech.edu>
+
+	unwind.c: fix a possible buffer overflow.
+	Linux does not prevent a user from creating a lot of nested directories
+	with length of the absolute path of the deepest one exceeding PATH_MAX,
+	then chdir'ing into it, creating a file there and mmap'ing it. Since the
+	length of the prefix preceding the pathname in /proc/[pid]/maps is not
+	necessary 80 (it's 73 on my machine), an overflow is possible.
+
+	* unwind.c (build_mmap_cache): Fix a possible buffer overflow.
+
+2017-03-13  Victor Krapivensky  <krapivenskiy.va@phystech.edu>
+
+	util.c: remove a wrong comment.
+	4924dbd6d750665cf383b20ab4fd67e48219ab91 modified the return type, but
+	not the comment.
+
+2017-03-10  Dmitry V. Levin  <ldv@altlinux.org>
+
+	riscv: export riscv_sp_ptr.
+	Export SP register for later use by get_rt_sigframe_addr.
+
+	* linux/riscv/arch_regs.h: New file.
+	* Makefile.am (EXTRA_DIST): Add it.
+	* linux/riscv/arch_regs.c (riscv_sp_ptr): New variable.
+
+2017-03-10  Dmitry V. Levin  <ldv@altlinux.org>
+
+	or1k: export or1k_sp_ptr.
+	Export SP register for later use by get_rt_sigframe_addr.
+
+	* linux/or1k/arch_regs.h: New file.
+	* Makefile.am (EXTRA_DIST): Add it.
+	* linux/or1k/arch_regs.c (or1k_sp_ptr): New variable.
+
+2017-03-10  Dmitry V. Levin  <ldv@altlinux.org>
+
+	nios2: export nios2_sp_ptr.
+	Export SP register for later use by get_rt_sigframe_addr.
+
+	* linux/nios2/arch_regs.h: New file.
+	* Makefile.am (EXTRA_DIST): Add it.
+	* linux/nios2/arch_regs.c (nios2_sp_ptr): New variable.
+
+2017-03-10  Dmitry V. Levin  <ldv@altlinux.org>
+
+	metag: export metag_sp_ptr.
+	Export SP register for later use by get_rt_sigframe_addr.
+
+	* linux/metag/arch_regs.h: New file.
+	* Makefile.am (EXTRA_DIST): Add it.
+	* linux/metag/arch_regs.c (metag_sp_ptr): New variable.
+
+2017-03-10  Dmitry V. Levin  <ldv@altlinux.org>
+
+	avr32: export avr32_sp_ptr.
+	Export SP register for later use by get_rt_sigframe_addr.
+
+	* linux/avr32/arch_regs.h: New file.
+	* Makefile.am (EXTRA_DIST): Add it.
+	* linux/avr32/arch_regs.c (avr32_sp_ptr): New variable.
+
+2017-03-10  Dmitry V. Levin  <ldv@altlinux.org>
+
+	arc: export arc_sp_ptr.
+	Export SP register for later use by get_rt_sigframe_addr.
+
+	* linux/arc/arch_regs.h: New file.
+	* Makefile.am (EXTRA_DIST): Add it.
+	* linux/arc/arch_regs.c (arc_sp_ptr): New variable.
+
+2017-03-09  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Introduce print_sigset_addr function.
+	As the definition of NSIG_BYTES is based on NSIG defined in <signal.h>,
+	NSIG_BYTES cannot be used in files that use kernel sigset_t.
+
+	Add another wrapper around print_sigset_addr_len_limit function that
+	takes one argument less than print_sigset_addr_len wrapper.  This new
+	wrapper is going to be used in cases when the length argument is equal
+	to NSIG_BYTES.
+
+	* defs.h (print_sigset_addr): New function prototype.
+	* signal.c (print_sigset_addr): New function.
+	* linux/alpha/arch_sigreturn.c (arch_sigreturn): Replace
+	print_sigset_addr_len with print_sigset_addr.
+	* linux/arm/arch_sigreturn.c (arch_sigreturn): Likewise.
+	* linux/crisv10/arch_sigreturn.c (arch_sigreturn): Likewise.
+	* linux/ia64/arch_sigreturn.c (arch_sigreturn): Likewise.
+	* linux/microblaze/arch_sigreturn.c (arch_sigreturn): Likewise.
+	* linux/mips/arch_sigreturn.c (arch_sigreturn): Likewise.
+	* linux/tile/arch_sigreturn.c (arch_sigreturn): Likewise.
+	* linux/x86_64/arch_sigreturn.c (arch_sigreturn): Likewise.
+
+2017-03-08  Dmitry V. Levin  <ldv@altlinux.org>
+
+	README.md: rework guidelines about sending bug reports.
+
+2017-03-08  Abhishek Tiwari  <erabhishektiwarics@gmail.com>
+
+	Update information on how to build strace from git repository.
+	* INSTALL-git.md: Describe how to build strace from git repository.
+	* README.md: Add reference to INSTALL-git.md.
+	* README-hacking: Likewise.
+
+2017-03-05  Dmitry V. Levin  <ldv@altlinux.org>
+
+	README.md: fix references to in-tree files.
+	* README.md: Change references to COPYING and NEWS files from absolute
+	to relative.
+
+2017-03-05  Dmitry V. Levin  <ldv@altlinux.org>
+
+	INSTALL: regenerate from install.texi.
+	Regenerate INSTALL from install.texi using the following command:
+	makeinfo --plaintext install.texi > INSTALL
+
+	* INSTALL: Regenerate from install.texi.
+
+2017-03-05  Dmitry V. Levin  <ldv@altlinux.org>
+
+	install.texi: remove irrelevant sections.
+	Remove "Multiple Architectures" and "Particular Systems" sections using
+	the following filter script:
+
+	awk '/^@node (Multiple Architectures|Particular Systems)/{skip=1;next}
+	/^@node/{skip=0} {if(!skip)print}'
+
+	* install.texi (Multiple Architectures, Particular Systems): Remove.
+
+2017-03-05  Dmitry V. Levin  <ldv@altlinux.org>
+
+	install.texi: import from GNU Autoconf.
+	install.texi from GNU Autoconf is the ultimate source of INSTALL file.
+	This edition of install.texi has been downloaded from
+	https://git.savannah.gnu.org/cgit/autoconf.git/plain/doc/install.texi?id=63f3c78cdb0ccc85751543e387ef2a7252d5f0a2
+
+	* install.texi: Import from GNU Autoconf.
+
+2017-03-05  Eugene Syromyatnikov  <evgsyr@gmail.com>
+	    Md Haris Iqbal  <haris.phnx@gmail.com>
+
+	Implement -e trace=%sched option for tracing sched_* syscalls.
+	Based on the patch by Md Haris Iqbal
+	(https://sourceforge.net/p/strace/mailman/message/35111320/)
+
+	linux/*/syscallent.h part is modified automatically by:
+
+	    git grep -Fl 'SEN(sched_' linux/ | xargs sed -i \
+	        's/0\(,[[:space:]]*SEN(sched_\)/TSC\1/'
+
+	* sysent.h (TRACE_SCHED): New definition.
+	* syscall.c: Alias TSC to TRACE_SCHED around syscallent.h inclusion.
+	* linux/32/syscallent.h: Add TSC flag for sched_* sycalls.
+	* linux/64/syscallent.h: Likewise.
+	* linux/alpha/syscallent.h: Likewise.
+	* linux/arm/syscallent.h: Likewise.
+	* linux/avr32/syscallent.h: Likewise.
+	* linux/bfin/syscallent.h: Likewise.
+	* linux/crisv10/syscallent.h: Likewise.
+	* linux/hppa/syscallent.h: Likewise.
+	* linux/i386/syscallent.h: Likewise.
+	* linux/ia64/syscallent.h: Likewise.
+	* linux/m68k/syscallent.h: Likewise.
+	* linux/microblaze/syscallent.h: Likewise.
+	* linux/mips/syscallent-n32.h: Likewise.
+	* linux/mips/syscallent-n64.h: Likewise.
+	* linux/mips/syscallent-o32.h: Likewise.
+	* linux/powerpc/syscallent.h: Likewise.
+	* linux/powerpc64/syscallent.h: Likewise.
+	* linux/s390/syscallent.h: Likewise.
+	* linux/s390x/syscallent.h: Likewise.
+	* linux/sh/syscallent.h: Likewise.
+	* linux/sh64/syscallent.h: Likewise.
+	* linux/sparc/syscallent.h: Likewise.
+	* linux/sparc64/syscallent.h: Likewise.
+	* linux/x32/syscallent.h: Likewise.
+	* linux/x86_64/syscallent.h: Likewise.
+	* linux/xtensa/syscallent.h: Likewise.
+	* qualify.c (lookup_class): Add TRACE_SCHED for "%sched".
+	* tests/ksysent.c: Define TSC to 0.
+	* tests/nsyscalls.c: Likewise.
+	* tests/sched.test: New test.
+	* tests/Makefile.am (DECODER_TESTS): Add sched.test.
+	* strace.1 (.SS Filtering): Add information about %sched syscall class.
+	* NEWS: Mention this change.
+
+2017-03-04  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	Add "%" prefix for syscall classes in qualify.
+	(as suggested in
+	https://www.mail-archive.com/strace-devel@lists.sourceforge.net/msg05147.html )
+
+	In order to move them to a different namespace than syscall names. This is
+	already a problem in case of ipc class which shadows ipc syscall.
+
+	Old behaviour is retained in order to preserve backwards compatibility.
+
+	* qualify.c (lookup_class) <syscall_class>: Add %-prefixed class definitions.
+	* strace.1 (.SS Filtering): Add information regarding %-prefixed class
+	syntax, declare legacy class syntax deprecated.
+	* tests/net.test: Update to use %-prefixed syscall class name.
+	* tests/netlink_protocol.test: Likewise.
+	* tests/qual_fault-exit_group.test: Likewise.
+	* tests/qual_syscall.test: Likewise.
+	* tests/scm_rights-fd.test: Likewise.
+	* tests/sigreturn.test: Likewise.
+	* tests/uio.test: Likewise.
+	* NEWS: Mention this change.
+
+2017-02-28  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: simplify print_time_t.
+	* tests/print_time.c (print_time_t): Treat localtime errors as fatal.
+
+2017-02-27  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Update homepage URL.
+	* README: Change homepage URL to https://strace.io
+	* debian/control: Likewise.
+	* strace.spec.in: Likewise.
+
+2017-02-26  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: transform print_time_t into print_time_t_nsec.
+	* tests/print_time.c (print_time_t): Rename to print_time_t_nsec,
+	take second argument and print it.
+	* tests/tests.h (print_time_t): Rename to print_time_t_nsec,
+	add second argument.
+	* tests/utime.c (main): Use print_time_t_nsec instead of print_time_t.
+	* tests/xstatx.c (print_stat): Likewise.  Pass nanoseconds
+	to print_time_t_nsec instead of printing them.
+
+	tests: use print_time_t in utime.test.
+	* tests/utime.c (print_tm): Remove.
+	(main): Use print_time_t instead of print_tm.
+
+2017-02-26  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: move print_time function to libtests.
+	Rename print_time function to print_time_t and move it to libtests.
+
+	* tests/print_time.c: New file.
+	* tests/Makefile.am (libtests_a_SOURCES): Add it.
+	* tests/tests.h (print_time_t): New prototype.
+	* tests/print_time.c (print_time): Remove.
+	(print_stat): Replace print_time with print_time_t.
+
+2017-02-26  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: macroize printing of atime, mtime, and ctime fields in xstatx.c.
+	Introduce a macro for printing similar time related fields.
+
+	* print_struct_stat.c (PRINT_ST_TIME): New macro.
+	(print_stat): Use it.
+
+2017-02-26  Dmitry V. Levin  <ldv@altlinux.org>
+
+	print_struct_stat.c: macroize printing of atime, mtime, and ctime fields
+	Introduce a macro for printing similar time related fields.
+
+	* print_struct_stat.c (PRINT_ST_TIME): New macro.
+	(print_struct_stat): Use it.
+
+2017-02-25  Dmitry V. Levin  <ldv@altlinux.org>
+
+	x32: fix decoding of flags argument of preadv2 and pwritev2 syscalls.
+	x32 is the only linux architecture where preadv2 and pwritev2 syscalls
+	take 5 arguments instead of 6.
+
+	* io.c (PREADV2_PWRITEV2_FLAGS_ARG_NO): New macro.
+	(SYS_FUNC(preadv2), SYS_FUNC(pwritev2)): Use it.
+	* linux/x32/syscallent.h (preadv2, pwritev2): Change nargs to 5.
+	* NEWS: Mention this fix.
+	* tests/preadv2-pwritev2.c (main): Fix invocation of preadv2
+	and pwritev2 syscalls on x32.
+
+2017-02-21  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: rewrite ppoll syscall decoding check from match_grep to match_diff
+	Unlike the former test that was based on match_grep,
+	the new one uses match_diff and does more rigorous testing.
+
+	* tests/ppoll-v.c: New file.
+	* tests/ppoll-v.test: New test.
+	* tests/ppoll.c: Rewrite.
+	* tests/ppoll.test: Likewise.
+	* tests/ppoll.expected: Remove.
+	* tests/ppoll-v.expected: Remove.
+	* tests/.gitignore: Add ppoll-v.
+	* tests/Makefile.am (check_PROGRAMS): Likewise.
+	(DECODER_TESTS): Add ppoll-v.test.
+	(EXTRA_DIST): Remove ppoll.expected and ppoll-v.expected.
+
+2017-02-20  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: move get_sigset_size function to libtests.
+	* tests/get_sigset_size.c: New file.
+	* tests/Makefile.am (libtests_a_SOURCES): Add it.
+	* tests/tests.h (get_sigset_size): New prototype.
+	* tests/ptrace.c: Do not check for __NR_rt_sigprocmask.
+	(main): Use get_sigset_size.
+	* tests/signalfd4.c: Do not check for __NR_rt_sigprocmask.
+	(get_sigset_size): Remove.
+
+2017-02-19  Dmitry V. Levin  <ldv@altlinux.org>
+
+	sched: enhance decoding of sched_setattr syscall.
+	Implement read/write semantics of struct sched_attr.size argument
+	of sched_setattr syscall.  Do not print members of struct sched_attr
+	besides sched_attr.size when the specified structure size is less than
+	the minimal size allowed by the kernel.
+
+	* sched.c (print_sched_attr): Fetch struct sched_attr.size and use it
+	as the structure size.  Print struct sched_attr.size only when the
+	structure size is less than SCHED_ATTR_MIN_SIZE.
+	(SYS_FUNC(sched_setattr)): Call print_sched_attr with zero size
+	argument.  Print struct sched_attr.size returned by the kernel
+	on exiting syscall in case of E2BIG. Print the last syscall argument
+	on exiting syscall.
+	(SYS_FUNC(sched_getattr)): Do not call print_sched_attr with zero size
+	argument.
+	* NEWS: Mention it.
+	* tests/sched_xetattr.c (main): Check it.
+
+2017-02-18  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: check decoding of sched_[gs]etattr corner cases.
+	* tests/sched_xetattr.c (main): Check that integer arguments
+	of sched_getattr and sched_setattr syscalls are decoded properly
+	by adding a few cases with filled higher 32 bits.
+	Check that pointer argument is decoded properly
+	on F8ILL_KULONG_SUPPORTED architectures.
+
+2017-02-18  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Move definition of struct sched_attr to a separate header file.
+	Avoid multiple defintions of struct sched_attr by creating a separate
+	header file with its definition and using it in other places.
+
+	* sched_attr.h: New file.
+	* Makefile.am (strace_SOURCES): Add it.
+	* sched.c: Include it.
+	(print_sched_attr): Use it.
+	* tests/sched_xetattr.c: Include it.
+	(main): Use it.
+
+2017-02-18  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: rewrite sched_xetattr.test from match_grep to match_diff.
+	Unlike the previous edition of the test that was based on match_grep,
+	the new one is match_diff based and does more rigorous testing.
+
+	* tests/adjtimex.c: Include "xlat.h" and "xlat/schedulers.h",
+	(sys_sched_getattr, sys_sched_setattr): New functions.
+	(main): Use them.  Update expected output.
+	* tests/adjtimex.test: Use run_strace_match_diff.
+
+2017-02-17  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Use tprints instead of tprintf in a few more places.
+	* bpf.c (bpf_obj_manage, bpf_prog_attach_detach): Replace tprintf
+	with tprints for printing strings without format specifiers.
+	* dm.c (dm_decode_dm_target_spec): Likewise.
+	* mq.c (SYS_FUNC(mq_timedreceive)): Likewise.
+	* perf.c (print_perf_event_attr): Likewise.
+	* syscall.c (trace_syscall_exiting): Likewise.
+
+2017-02-17  Dmitry V. Levin  <ldv@altlinux.org>
+
+	bpf: update BPF_PROG_ATTACH decoding.
+	Implement decoding of BPF_F_ALLOW_OVERRIDE flag of BPF_PROG_ATTACH
+	command introduced by linux kernel commit v4.10-rc7-174-g7f67763.
+
+	* configure.ac: Check for union bpf_attr.attach_flags
+	instead of union bpf_attr.attach_type.
+	* xlat/bpf_attach_flags.in: New file.
+	* bpf.c: Include "xlat/bpf_attach_flags.h".
+	(bpf_prog_attach_detach): Rename print_attach_bpf_fd argument
+	to print_attach.  Add attach_flags field to the structure,
+	print it in case of BPF_PROG_ATTACH.
+	* tests/bpf.c: Check for HAVE_UNION_BPF_ATTR_ATTACH_FLAGS
+	instead of HAVE_UNION_BPF_ATTR_ATTACH_TYPE.
+	(prog_cgroup): Initialize attach_flags field.
+	(main): Update expected output.
+
+2017-02-16  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: rewrite adjtimex.test from match_grep to match_diff.
+	Unlike the previous edition of the test that was based on match_grep,
+	the new one is match_diff based and does more rigorous testing.
+
+	* tests/adjtimex.c: Include "xlat.h", "xlat/adjtimex_state.h",
+	and "xlat/adjtimex_status.h".
+	(main): Update expected output.
+	* tests/adjtimex.test: Use run_strace_match_diff.
+
+2017-02-16  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: replace casts of 0xffffffff00000000ULL with F8ILL_KULONG_MASK.
+	* tests/init_delete_module.h (bogus_zero): Remove.
+	* tests/delete_module.c (main): Replace bogus_zero and
+	(kernel_ulong_t) 0xffffffff00000000ULL with F8ILL_KULONG_MASK.
+	* tests/finit_module.c (main): Replace bogus_zero
+	with F8ILL_KULONG_MASK.
+	* tests/init_module.c (main): Likewise.
+	* tests/pipe2.c (main): Likewise.
+	* tests/epoll_ctl.c (invoke_syscall): Replace
+	(unsigned long) 0xffffffff00000000ULL with F8ILL_KULONG_MASK.
+	* tests/rt_tgsigqueueinfo.c (k_tgsigqueueinfo): Likewise.
+	* tests/fanotify_init.c (main): Likewise.
+	* tests/xetpgid.c (main): Likewise.
+	* tests/xetpriority.c (main): Likewise.
+	(kernel_ulong_t) 0xffffffff00000000ULL with F8ILL_KULONG_MASK.
+	* tests/fanotify_mark.c (main): Likewise.
+	* tests/file_handle.c (main): Likewise.
+	* tests/kexec_load.c (main): Likewise.
+	* tests/setfsugid.c (main): Likewise.
+	* tests/getgroups.c (main): Replace (long) 0xffffffff00000000ULL
+	with F8ILL_KULONG_MASK.
+	* tests/setgroups.c (main): Replace (long) 0xffffffff00000000ULL
+	and (unsigned long) 0xffffffff00000000ULL with F8ILL_KULONG_MASK.
+
+2017-02-16  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: fill higher bits of integer arguments of fcntl* syscalls.
+	Check that integer arguments of fcntl and fcntl64 syscalls are decoded
+	properly by casting them to kernel_ulong_t and filling higher bits.
+
+	* tests/struct_flock.c (invoke_test_syscall): Cast "fd" and "cmd"
+	syscall arguments to kernel_ulong_t, fill their higher 32 bits.
+
+2017-02-16  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: use sprintrc in tests of fcntl and fcntl64 syscalls.
+	* tests/struct_flock.c (EINVAL_STR): Remove.
+	(test_flock_einval, test_flock): Use sprintrc instead of EINVAL_STR.
+	* tests/fcntl.c (test_flock64_einval): Likewise.
+	* tests/fcntl64.c (test_flock64_einval, test_flock64): Likewise.
+
+2017-02-15  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Post-release administrivia.
+	* NEWS: Add a header line for the next release.
+	* debian/changelog.in: Add a changelog entry for 4.16-1.
+	* strace.spec.in: Likewise.
+
 2017-02-14  Dmitry V. Levin  <ldv@altlinux.org>
 
 	Prepare for 4.16 release.
diff --git a/INSTALL b/INSTALL
index 0fad641..a713eb7 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,108 +1,107 @@
 Installation Instructions
 *************************
 
-Copyright (C) 1994-1996, 1999-2002, 2004-2012 Free Software Foundation,
+Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
 Inc.
 
-Copying and distribution of this file, with or without modification, are
-permitted in any medium without royalty provided the copyright notice
-and this notice are preserved.  This file is offered as-is, without
-warranty of any kind.
+   Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.  This file is offered as-is,
+without warranty of any kind.
 
 Basic Installation
 ==================
 
-Briefly, the shell commands `./configure; make; make install' should
-configure, build, and install this package.  The following
-more-detailed instructions are generic; see the `README' file for
-instructions specific to this package.  Some packages provide this
-`INSTALL' file but do not implement all of the features documented
-below.  The lack of an optional feature in a given package is not
-necessarily a bug.  More recommendations for GNU packages can be found
-in *note Makefile Conventions: (standards)Makefile Conventions.
+Briefly, the shell command './configure && make && make install' should
+configure, build, and install this package.  The following more-detailed
+instructions are generic; see the 'README' file for instructions
+specific to this package.  Some packages provide this 'INSTALL' file but
+do not implement all of the features documented below.  The lack of an
+optional feature in a given package is not necessarily a bug.  More
+recommendations for GNU packages can be found in *note Makefile
+Conventions: (standards)Makefile Conventions.
 
-   The `configure' shell script attempts to guess correct values for
+   The 'configure' shell script attempts to guess correct values for
 various system-dependent variables used during compilation.  It uses
-those values to create a `Makefile' in each directory of the package.
-It may also create one or more `.h' files containing system-dependent
-definitions.  Finally, it creates a shell script `config.status' that
+those values to create a 'Makefile' in each directory of the package.
+It may also create one or more '.h' files containing system-dependent
+definitions.  Finally, it creates a shell script 'config.status' that
 you can run in the future to recreate the current configuration, and a
-file `config.log' containing compiler output (useful mainly for
-debugging `configure').
+file 'config.log' containing compiler output (useful mainly for
+debugging 'configure').
 
-   It can also use an optional file (typically called `config.cache'
-and enabled with `--cache-file=config.cache' or simply `-C') that saves
-the results of its tests to speed up reconfiguring.  Caching is
-disabled by default to prevent problems with accidental use of stale
-cache files.
+   It can also use an optional file (typically called 'config.cache' and
+enabled with '--cache-file=config.cache' or simply '-C') that saves the
+results of its tests to speed up reconfiguring.  Caching is disabled by
+default to prevent problems with accidental use of stale cache files.
 
    If you need to do unusual things to compile the package, please try
-to figure out how `configure' could check whether to do them, and mail
-diffs or instructions to the address given in the `README' so they can
+to figure out how 'configure' could check whether to do them, and mail
+diffs or instructions to the address given in the 'README' so they can
 be considered for the next release.  If you are using the cache, and at
-some point `config.cache' contains results you don't want to keep, you
+some point 'config.cache' contains results you don't want to keep, you
 may remove or edit it.
 
-   The file `configure.ac' (or `configure.in') is used to create
-`configure' by a program called `autoconf'.  You need `configure.ac' if
-you want to change it or regenerate `configure' using a newer version
-of `autoconf'.
+   The file 'configure.ac' (or 'configure.in') is used to create
+'configure' by a program called 'autoconf'.  You need 'configure.ac' if
+you want to change it or regenerate 'configure' using a newer version of
+'autoconf'.
 
-The simplest way to compile this package is:
+   The simplest way to compile this package is:
 
-  1. `cd' to the directory containing the package's source code and type
-     `./configure' to configure the package for your system.
+  1. 'cd' to the directory containing the package's source code and type
+     './configure' to configure the package for your system.
 
-     Running `configure' might take a while.  While running, it prints
+     Running 'configure' might take a while.  While running, it prints
      some messages telling which features it is checking for.
 
-  2. Type `make' to compile the package.
+  2. Type 'make' to compile the package.
 
-  3. Optionally, type `make check' to run any self-tests that come with
+  3. Optionally, type 'make check' to run any self-tests that come with
      the package, generally using the just-built uninstalled binaries.
 
-  4. Type `make install' to install the programs and any data files and
+  4. Type 'make install' to install the programs and any data files and
      documentation.  When installing into a prefix owned by root, it is
      recommended that the package be configured and built as a regular
-     user, and only the `make install' phase executed with root
+     user, and only the 'make install' phase executed with root
      privileges.
 
-  5. Optionally, type `make installcheck' to repeat any self-tests, but
+  5. Optionally, type 'make installcheck' to repeat any self-tests, but
      this time using the binaries in their final installed location.
      This target does not install anything.  Running this target as a
-     regular user, particularly if the prior `make install' required
+     regular user, particularly if the prior 'make install' required
      root privileges, verifies that the installation completed
      correctly.
 
   6. You can remove the program binaries and object files from the
-     source code directory by typing `make clean'.  To also remove the
-     files that `configure' created (so you can compile the package for
-     a different kind of computer), type `make distclean'.  There is
-     also a `make maintainer-clean' target, but that is intended mainly
+     source code directory by typing 'make clean'.  To also remove the
+     files that 'configure' created (so you can compile the package for
+     a different kind of computer), type 'make distclean'.  There is
+     also a 'make maintainer-clean' target, but that is intended mainly
      for the package's developers.  If you use it, you may have to get
      all sorts of other programs in order to regenerate files that came
      with the distribution.
 
-  7. Often, you can also type `make uninstall' to remove the installed
+  7. Often, you can also type 'make uninstall' to remove the installed
      files again.  In practice, not all packages have tested that
      uninstallation works correctly, even though it is required by the
      GNU Coding Standards.
 
-  8. Some packages, particularly those that use Automake, provide `make
+  8. Some packages, particularly those that use Automake, provide 'make
      distcheck', which can by used by developers to test that all other
-     targets like `make install' and `make uninstall' work correctly.
+     targets like 'make install' and 'make uninstall' work correctly.
      This target is generally not run by end users.
 
 Compilers and Options
 =====================
 
 Some systems require unusual options for compilation or linking that the
-`configure' script does not know about.  Run `./configure --help' for
+'configure' script does not know about.  Run './configure --help' for
 details on some of the pertinent environment variables.
 
-   You can give `configure' initial values for configuration parameters
-by setting variables in the command line or in the environment.  Here
-is an example:
+   You can give 'configure' initial values for configuration parameters
+by setting variables in the command line or in the environment.  Here is
+an example:
 
      ./configure CC=c99 CFLAGS=-g LIBS=-lposix
 
@@ -111,90 +110,90 @@
 Installation Names
 ==================
 
-By default, `make install' installs the package's commands under
-`/usr/local/bin', include files under `/usr/local/include', etc.  You
-can specify an installation prefix other than `/usr/local' by giving
-`configure' the option `--prefix=PREFIX', where PREFIX must be an
+By default, 'make install' installs the package's commands under
+'/usr/local/bin', include files under '/usr/local/include', etc.  You
+can specify an installation prefix other than '/usr/local' by giving
+'configure' the option '--prefix=PREFIX', where PREFIX must be an
 absolute file name.
 
    You can specify separate installation prefixes for
 architecture-specific files and architecture-independent files.  If you
-pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+pass the option '--exec-prefix=PREFIX' to 'configure', the package uses
 PREFIX as the prefix for installing programs and libraries.
 Documentation and other data files still use the regular prefix.
 
    In addition, if you use an unusual directory layout you can give
-options like `--bindir=DIR' to specify different values for particular
-kinds of files.  Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them.  In general, the
-default for these options is expressed in terms of `${prefix}', so that
-specifying just `--prefix' will affect all of the other directory
+options like '--bindir=DIR' to specify different values for particular
+kinds of files.  Run 'configure --help' for a list of the directories
+you can set and what kinds of files go in them.  In general, the default
+for these options is expressed in terms of '${prefix}', so that
+specifying just '--prefix' will affect all of the other directory
 specifications that were not explicitly provided.
 
    The most portable way to affect installation locations is to pass the
-correct locations to `configure'; however, many packages provide one or
+correct locations to 'configure'; however, many packages provide one or
 both of the following shortcuts of passing variable assignments to the
-`make install' command line to change installation locations without
+'make install' command line to change installation locations without
 having to reconfigure or recompile.
 
    The first method involves providing an override variable for each
-affected directory.  For example, `make install
+affected directory.  For example, 'make install
 prefix=/alternate/directory' will choose an alternate location for all
 directory configuration variables that were expressed in terms of
-`${prefix}'.  Any directories that were specified during `configure',
-but not in terms of `${prefix}', must each be overridden at install
-time for the entire installation to be relocated.  The approach of
-makefile variable overrides for each directory variable is required by
-the GNU Coding Standards, and ideally causes no recompilation.
-However, some platforms have known limitations with the semantics of
-shared libraries that end up requiring recompilation when using this
-method, particularly noticeable in packages that use GNU Libtool.
+'${prefix}'.  Any directories that were specified during 'configure',
+but not in terms of '${prefix}', must each be overridden at install time
+for the entire installation to be relocated.  The approach of makefile
+variable overrides for each directory variable is required by the GNU
+Coding Standards, and ideally causes no recompilation.  However, some
+platforms have known limitations with the semantics of shared libraries
+that end up requiring recompilation when using this method, particularly
+noticeable in packages that use GNU Libtool.
 
-   The second method involves providing the `DESTDIR' variable.  For
-example, `make install DESTDIR=/alternate/directory' will prepend
-`/alternate/directory' before all installation names.  The approach of
-`DESTDIR' overrides is not required by the GNU Coding Standards, and
+   The second method involves providing the 'DESTDIR' variable.  For
+example, 'make install DESTDIR=/alternate/directory' will prepend
+'/alternate/directory' before all installation names.  The approach of
+'DESTDIR' overrides is not required by the GNU Coding Standards, and
 does not work on platforms that have drive letters.  On the other hand,
 it does better at avoiding recompilation issues, and works well even
-when some directory options were not specified in terms of `${prefix}'
-at `configure' time.
+when some directory options were not specified in terms of '${prefix}'
+at 'configure' time.
 
 Optional Features
 =================
 
 If the package supports it, you can cause programs to be installed with
-an extra prefix or suffix on their names by giving `configure' the
-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+an extra prefix or suffix on their names by giving 'configure' the
+option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'.
 
-   Some packages pay attention to `--enable-FEATURE' options to
-`configure', where FEATURE indicates an optional part of the package.
-They may also pay attention to `--with-PACKAGE' options, where PACKAGE
-is something like `gnu-as' or `x' (for the X Window System).  The
-`README' should mention any `--enable-' and `--with-' options that the
+   Some packages pay attention to '--enable-FEATURE' options to
+'configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to '--with-PACKAGE' options, where PACKAGE
+is something like 'gnu-as' or 'x' (for the X Window System).  The
+'README' should mention any '--enable-' and '--with-' options that the
 package recognizes.
 
-   For packages that use the X Window System, `configure' can usually
+   For packages that use the X Window System, 'configure' can usually
 find the X include and library files automatically, but if it doesn't,
-you can use the `configure' options `--x-includes=DIR' and
-`--x-libraries=DIR' to specify their locations.
+you can use the 'configure' options '--x-includes=DIR' and
+'--x-libraries=DIR' to specify their locations.
 
    Some packages offer the ability to configure how verbose the
-execution of `make' will be.  For these packages, running `./configure
+execution of 'make' will be.  For these packages, running './configure
 --enable-silent-rules' sets the default to minimal output, which can be
-overridden with `make V=1'; while running `./configure
+overridden with 'make V=1'; while running './configure
 --disable-silent-rules' sets the default to verbose, which can be
-overridden with `make V=0'.
+overridden with 'make V=0'.
 
 Specifying the System Type
 ==========================
 
-There may be some features `configure' cannot figure out automatically,
+There may be some features 'configure' cannot figure out automatically,
 but needs to determine by the type of machine the package will run on.
 Usually, assuming the package is built to be run on the _same_
-architectures, `configure' can figure that out, but if it prints a
+architectures, 'configure' can figure that out, but if it prints a
 message saying it cannot guess the machine type, give it the
-`--build=TYPE' option.  TYPE can either be a short name for the system
-type, such as `sun4', or a canonical name which has the form:
+'--build=TYPE' option.  TYPE can either be a short name for the system
+type, such as 'sun4', or a canonical name which has the form:
 
      CPU-COMPANY-SYSTEM
 
@@ -203,100 +202,100 @@
      OS
      KERNEL-OS
 
-See the file `config.sub' for the possible values of each field.  If
-`config.sub' isn't included in this package, then this package doesn't
+   See the file 'config.sub' for the possible values of each field.  If
+'config.sub' isn't included in this package, then this package doesn't
 need to know the machine type.
 
    If you are _building_ compiler tools for cross-compiling, you should
-use the option `--target=TYPE' to select the type of system they will
+use the option '--target=TYPE' to select the type of system they will
 produce code for.
 
    If you want to _use_ a cross compiler, that generates code for a
 platform different from the build platform, you should specify the
 "host" platform (i.e., that on which the generated programs will
-eventually be run) with `--host=TYPE'.
+eventually be run) with '--host=TYPE'.
 
 Sharing Defaults
 ================
 
-If you want to set default values for `configure' scripts to share, you
-can create a site shell script called `config.site' that gives default
-values for variables like `CC', `cache_file', and `prefix'.
-`configure' looks for `PREFIX/share/config.site' if it exists, then
-`PREFIX/etc/config.site' if it exists.  Or, you can set the
-`CONFIG_SITE' environment variable to the location of the site script.
-A warning: not all `configure' scripts look for a site script.
+If you want to set default values for 'configure' scripts to share, you
+can create a site shell script called 'config.site' that gives default
+values for variables like 'CC', 'cache_file', and 'prefix'.  'configure'
+looks for 'PREFIX/share/config.site' if it exists, then
+'PREFIX/etc/config.site' if it exists.  Or, you can set the
+'CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all 'configure' scripts look for a site script.
 
 Defining Variables
 ==================
 
 Variables not defined in a site shell script can be set in the
-environment passed to `configure'.  However, some packages may run
+environment passed to 'configure'.  However, some packages may run
 configure again during the build, and the customized values of these
 variables may be lost.  In order to avoid this problem, you should set
-them in the `configure' command line, using `VAR=value'.  For example:
+them in the 'configure' command line, using 'VAR=value'.  For example:
 
      ./configure CC=/usr/local2/bin/gcc
 
-causes the specified `gcc' to be used as the C compiler (unless it is
+causes the specified 'gcc' to be used as the C compiler (unless it is
 overridden in the site shell script).
 
-Unfortunately, this technique does not work for `CONFIG_SHELL' due to
-an Autoconf limitation.  Until the limitation is lifted, you can use
-this workaround:
+Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an
+Autoconf limitation.  Until the limitation is lifted, you can use this
+workaround:
 
      CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
 
-`configure' Invocation
+'configure' Invocation
 ======================
 
-`configure' recognizes the following options to control how it operates.
+'configure' recognizes the following options to control how it operates.
 
-`--help'
-`-h'
-     Print a summary of all of the options to `configure', and exit.
+'--help'
+'-h'
+     Print a summary of all of the options to 'configure', and exit.
 
-`--help=short'
-`--help=recursive'
+'--help=short'
+'--help=recursive'
      Print a summary of the options unique to this package's
-     `configure', and exit.  The `short' variant lists options used
-     only in the top level, while the `recursive' variant lists options
-     also present in any nested packages.
+     'configure', and exit.  The 'short' variant lists options used only
+     in the top level, while the 'recursive' variant lists options also
+     present in any nested packages.
 
-`--version'
-`-V'
-     Print the version of Autoconf used to generate the `configure'
+'--version'
+'-V'
+     Print the version of Autoconf used to generate the 'configure'
      script, and exit.
 
-`--cache-file=FILE'
+'--cache-file=FILE'
      Enable the cache: use and save the results of the tests in FILE,
-     traditionally `config.cache'.  FILE defaults to `/dev/null' to
+     traditionally 'config.cache'.  FILE defaults to '/dev/null' to
      disable caching.
 
-`--config-cache'
-`-C'
-     Alias for `--cache-file=config.cache'.
+'--config-cache'
+'-C'
+     Alias for '--cache-file=config.cache'.
 
-`--quiet'
-`--silent'
-`-q'
+'--quiet'
+'--silent'
+'-q'
      Do not print messages saying which checks are being made.  To
-     suppress all normal output, redirect it to `/dev/null' (any error
+     suppress all normal output, redirect it to '/dev/null' (any error
      messages will still be shown).
 
-`--srcdir=DIR'
+'--srcdir=DIR'
      Look for the package's source code in directory DIR.  Usually
-     `configure' can determine that directory automatically.
+     'configure' can determine that directory automatically.
 
-`--prefix=DIR'
-     Use DIR as the installation prefix.  *note Installation Names::
-     for more details, including other options available for fine-tuning
-     the installation locations.
+'--prefix=DIR'
+     Use DIR as the installation prefix.  *note Installation Names:: for
+     more details, including other options available for fine-tuning the
+     installation locations.
 
-`--no-create'
-`-n'
+'--no-create'
+'-n'
      Run the configure checks, but stop before creating any output
      files.
 
-`configure' also accepts some other, not widely useful, options.  Run
-`configure --help' for more details.
+'configure' also accepts some other, not widely useful, options.  Run
+'configure --help' for more details.
diff --git a/Makefile b/Makefile
index f24fc88..37b43af 100644
--- a/Makefile
+++ b/Makefile
@@ -20,6 +20,7 @@
 # Copyright (c) 2006-2016 Dmitry V. Levin <ldv@altlinux.org>
 # Copyright (c) 2008-2015 Mike Frysinger <vapier@gentoo.org>
 # Copyright (c) 2015 Elvira Khabirova <lineprinter0@gmail.com>
+# Copyright (c) 2002-2017 The strace developers.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -190,8 +191,9 @@
 	fetch_struct_statfs.c hdio.c ipc_msgctl.c ipc_shmctl.c loop.c \
 	mtd.c print_mq_attr.c print_msgbuf.c print_sg_req_info.c \
 	print_sigevent.c print_time.c print_timespec.c print_timeval.c \
-	print_timex.c printrusage.c printsiginfo.c rtc.c sg_io_v3.c \
-	sigaltstack.c sock.c sysinfo.c times.c ustat.c utime.c v4l2.c
+	print_timex.c printrusage.c printsiginfo.c rt_sigreturn.c \
+	rtc.c sg_io_v3.c sigaltstack.c sock.c sysinfo.c times.c \
+	ustat.c utime.c v4l2.c
 am__objects_1 = libmpers_m32_a-block.$(OBJEXT) \
 	libmpers_m32_a-btrfs.$(OBJEXT) libmpers_m32_a-dirent.$(OBJEXT) \
 	libmpers_m32_a-evdev.$(OBJEXT) \
@@ -216,6 +218,7 @@
 	libmpers_m32_a-print_timex.$(OBJEXT) \
 	libmpers_m32_a-printrusage.$(OBJEXT) \
 	libmpers_m32_a-printsiginfo.$(OBJEXT) \
+	libmpers_m32_a-rt_sigreturn.$(OBJEXT) \
 	libmpers_m32_a-rtc.$(OBJEXT) libmpers_m32_a-sg_io_v3.$(OBJEXT) \
 	libmpers_m32_a-sigaltstack.$(OBJEXT) \
 	libmpers_m32_a-sock.$(OBJEXT) libmpers_m32_a-sysinfo.$(OBJEXT) \
@@ -232,8 +235,9 @@
 	fetch_struct_statfs.c hdio.c ipc_msgctl.c ipc_shmctl.c loop.c \
 	mtd.c print_mq_attr.c print_msgbuf.c print_sg_req_info.c \
 	print_sigevent.c print_time.c print_timespec.c print_timeval.c \
-	print_timex.c printrusage.c printsiginfo.c rtc.c sg_io_v3.c \
-	sigaltstack.c sock.c sysinfo.c times.c ustat.c utime.c v4l2.c
+	print_timex.c printrusage.c printsiginfo.c rt_sigreturn.c \
+	rtc.c sg_io_v3.c sigaltstack.c sock.c sysinfo.c times.c \
+	ustat.c utime.c v4l2.c
 am__objects_2 = libmpers_mx32_a-block.$(OBJEXT) \
 	libmpers_mx32_a-btrfs.$(OBJEXT) \
 	libmpers_mx32_a-dirent.$(OBJEXT) \
@@ -259,6 +263,7 @@
 	libmpers_mx32_a-print_timex.$(OBJEXT) \
 	libmpers_mx32_a-printrusage.$(OBJEXT) \
 	libmpers_mx32_a-printsiginfo.$(OBJEXT) \
+	libmpers_mx32_a-rt_sigreturn.$(OBJEXT) \
 	libmpers_mx32_a-rtc.$(OBJEXT) \
 	libmpers_mx32_a-sg_io_v3.$(OBJEXT) \
 	libmpers_mx32_a-sigaltstack.$(OBJEXT) \
@@ -273,6 +278,7 @@
 libstrace_a_LIBADD =
 am_libstrace_a_OBJECTS = libstrace_a-fstatfs.$(OBJEXT) \
 	libstrace_a-fstatfs64.$(OBJEXT) libstrace_a-ipc.$(OBJEXT) \
+	libstrace_a-sigreturn.$(OBJEXT) \
 	libstrace_a-socketcall.$(OBJEXT) libstrace_a-statfs.$(OBJEXT) \
 	libstrace_a-statfs64.$(OBJEXT) \
 	libstrace_a-sync_file_range.$(OBJEXT) \
@@ -299,23 +305,25 @@
 	linux/x32/asm_stat.h linux/x86_64/asm_stat.h lookup_dcookie.c \
 	loop.c lseek.c mem.c membarrier.c memfd_create.c mknod.c \
 	mmsghdr.c mount.c mpers_type.h mq.c msghdr.c msghdr.h mtd.c \
-	native_defs.h net.c netlink.c nsig.h numa.c oldstat.c open.c \
-	or1k_atomic.c pathtrace.c perf.c perf_event_struct.h \
-	personality.c pkeys.c poll.c prctl.c print_dev_t.c \
-	print_mq_attr.c print_msgbuf.c print_sg_req_info.c \
-	print_sigevent.c print_statfs.c print_struct_stat.c \
-	print_time.c print_timespec.c print_timeval.c print_timex.c \
-	printmode.c printrusage.c printsiginfo.c printsiginfo.h \
-	process.c process_vm.c ptp.c ptrace.h qualify.c quota.c \
-	readahead.c readlink.c reboot.c regs.h renameat.c resource.c \
-	rtc.c sched.c scsi.c seccomp.c seccomp_fprog.h sendfile.c \
-	sg_io_v3.c sg_io_v4.c sigaltstack.c sigevent.h signal.c \
-	signalfd.c sigreturn.c sock.c sockaddr.c socketutils.c \
-	sram_alloc.c stat.c stat.h stat64.c statfs.c statfs.h strace.c \
-	swapon.c syscall.c sysctl.c sysent.h sysinfo.c syslog.c \
-	sysmips.c term.c time.c times.c truncate.c ubi.c uid.c uid16.c \
-	umask.c umount.c uname.c userfaultfd.c ustat.c util.c utime.c \
-	utimes.c v4l2.c wait.c xattr.c xlat.h xmalloc.c unwind.c
+	native_defs.h net.c netlink.c nsfs.c nsfs.h nsig.h numa.c \
+	oldstat.c open.c or1k_atomic.c pathtrace.c perf.c \
+	perf_event_struct.h personality.c pkeys.c poll.c prctl.c \
+	print_dev_t.c print_mq_attr.c print_msgbuf.c \
+	print_sg_req_info.c print_sigevent.c print_statfs.c \
+	print_struct_stat.c print_time.c print_timespec.c \
+	print_timeval.c print_timex.c printmode.c printrusage.c \
+	printsiginfo.c printsiginfo.h process.c process_vm.c ptp.c \
+	ptrace.h qualify.c quota.c readahead.c readlink.c reboot.c \
+	regs.h renameat.c resource.c rt_sigframe.c rt_sigreturn.c \
+	rtc.c sched.c sched_attr.h scsi.c seccomp.c seccomp_fprog.h \
+	sendfile.c sg_io_v3.c sg_io_v4.c sigaltstack.c sigevent.h \
+	signal.c signalfd.c sock.c sockaddr.c socketutils.c \
+	sram_alloc.c stat.c stat.h stat64.c statfs.c statfs.h statx.c \
+	statx.h strace.c swapon.c syscall.c sysctl.c sysent.h \
+	sysinfo.c syslog.c sysmips.c term.c time.c times.c truncate.c \
+	ubi.c uid.c uid16.c umask.c umount.c uname.c userfaultfd.c \
+	ustat.c util.c utime.c utimes.c v4l2.c wait.c xattr.c xlat.h \
+	xmalloc.c unwind.c
 #am__objects_3 = strace-unwind.$(OBJEXT)
 am_strace_OBJECTS = strace-access.$(OBJEXT) strace-affinity.$(OBJEXT) \
 	strace-aio.$(OBJEXT) strace-alpha.$(OBJEXT) \
@@ -358,13 +366,14 @@
 	strace-mmsghdr.$(OBJEXT) strace-mount.$(OBJEXT) \
 	strace-mq.$(OBJEXT) strace-msghdr.$(OBJEXT) \
 	strace-mtd.$(OBJEXT) strace-net.$(OBJEXT) \
-	strace-netlink.$(OBJEXT) strace-numa.$(OBJEXT) \
-	strace-oldstat.$(OBJEXT) strace-open.$(OBJEXT) \
-	strace-or1k_atomic.$(OBJEXT) strace-pathtrace.$(OBJEXT) \
-	strace-perf.$(OBJEXT) strace-personality.$(OBJEXT) \
-	strace-pkeys.$(OBJEXT) strace-poll.$(OBJEXT) \
-	strace-prctl.$(OBJEXT) strace-print_dev_t.$(OBJEXT) \
-	strace-print_mq_attr.$(OBJEXT) strace-print_msgbuf.$(OBJEXT) \
+	strace-netlink.$(OBJEXT) strace-nsfs.$(OBJEXT) \
+	strace-numa.$(OBJEXT) strace-oldstat.$(OBJEXT) \
+	strace-open.$(OBJEXT) strace-or1k_atomic.$(OBJEXT) \
+	strace-pathtrace.$(OBJEXT) strace-perf.$(OBJEXT) \
+	strace-personality.$(OBJEXT) strace-pkeys.$(OBJEXT) \
+	strace-poll.$(OBJEXT) strace-prctl.$(OBJEXT) \
+	strace-print_dev_t.$(OBJEXT) strace-print_mq_attr.$(OBJEXT) \
+	strace-print_msgbuf.$(OBJEXT) \
 	strace-print_sg_req_info.$(OBJEXT) \
 	strace-print_sigevent.$(OBJEXT) strace-print_statfs.$(OBJEXT) \
 	strace-print_struct_stat.$(OBJEXT) strace-print_time.$(OBJEXT) \
@@ -376,15 +385,16 @@
 	strace-quota.$(OBJEXT) strace-readahead.$(OBJEXT) \
 	strace-readlink.$(OBJEXT) strace-reboot.$(OBJEXT) \
 	strace-renameat.$(OBJEXT) strace-resource.$(OBJEXT) \
+	strace-rt_sigframe.$(OBJEXT) strace-rt_sigreturn.$(OBJEXT) \
 	strace-rtc.$(OBJEXT) strace-sched.$(OBJEXT) \
 	strace-scsi.$(OBJEXT) strace-seccomp.$(OBJEXT) \
 	strace-sendfile.$(OBJEXT) strace-sg_io_v3.$(OBJEXT) \
 	strace-sg_io_v4.$(OBJEXT) strace-sigaltstack.$(OBJEXT) \
 	strace-signal.$(OBJEXT) strace-signalfd.$(OBJEXT) \
-	strace-sigreturn.$(OBJEXT) strace-sock.$(OBJEXT) \
-	strace-sockaddr.$(OBJEXT) strace-socketutils.$(OBJEXT) \
-	strace-sram_alloc.$(OBJEXT) strace-stat.$(OBJEXT) \
-	strace-stat64.$(OBJEXT) strace-statfs.$(OBJEXT) \
+	strace-sock.$(OBJEXT) strace-sockaddr.$(OBJEXT) \
+	strace-socketutils.$(OBJEXT) strace-sram_alloc.$(OBJEXT) \
+	strace-stat.$(OBJEXT) strace-stat64.$(OBJEXT) \
+	strace-statfs.$(OBJEXT) strace-statx.$(OBJEXT) \
 	strace-strace.$(OBJEXT) strace-swapon.$(OBJEXT) \
 	strace-syscall.$(OBJEXT) strace-sysctl.$(OBJEXT) \
 	strace-sysinfo.$(OBJEXT) strace-syslog.$(OBJEXT) \
@@ -560,12 +570,12 @@
 am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
   | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
 distcleancheck_listfiles = find . -type f -print
-ACLOCAL = ${SHELL} /usr/local/google/home/enh/Downloads/strace-4.16/missing aclocal-1.14
+ACLOCAL = ${SHELL} /tmp/strace-4.17/missing aclocal-1.14
 AMTAR = $${TAR-tar}
 AM_DEFAULT_VERBOSITY = 1
-AUTOCONF = ${SHELL} /usr/local/google/home/enh/Downloads/strace-4.16/missing autoconf
-AUTOHEADER = ${SHELL} /usr/local/google/home/enh/Downloads/strace-4.16/missing autoheader
-AUTOMAKE = ${SHELL} /usr/local/google/home/enh/Downloads/strace-4.16/missing automake-1.14
+AUTOCONF = ${SHELL} /tmp/strace-4.17/missing autoconf
+AUTOHEADER = ${SHELL} /tmp/strace-4.17/missing autoheader
+AUTOMAKE = ${SHELL} /tmp/strace-4.17/missing automake-1.14
 AWK = gawk
 BUILD_EXEEXT = 
 BUILD_OBJEXT = 
@@ -579,12 +589,13 @@
 CODE_COVERAGE_CXXFLAGS = 
 CODE_COVERAGE_ENABLED = no
 CODE_COVERAGE_LDFLAGS = 
+COPYRIGHT_YEAR = 2017
 CPP = gcc -E
 CPPFLAGS = 
 CPPFLAGS_FOR_BUILD = 
 CPP_FOR_BUILD = gcc -E
 CYGPATH_W = echo
-DEB_CHANGELOGTIME = Wed, 15 Feb 2017 11:38:25 -0800
+DEB_CHANGELOGTIME = Thu, 25 May 2017 15:09:49 -0700
 DEFS = -DHAVE_CONFIG_H
 DEPDIR = .deps
 ECHO_C = 
@@ -611,34 +622,34 @@
 LIBS = 
 LTLIBOBJS = 
 MAINT = #
-MAKEINFO = ${SHELL} /usr/local/google/home/enh/Downloads/strace-4.16/missing makeinfo
+MAKEINFO = ${SHELL} /tmp/strace-4.17/missing makeinfo
 MIPS_ABI = 
 MKDIR_P = /bin/mkdir -p
 OBJEXT = o
 PACKAGE = strace
 PACKAGE_BUGREPORT = strace-devel@lists.sourceforge.net
 PACKAGE_NAME = strace
-PACKAGE_STRING = strace 4.16
+PACKAGE_STRING = strace 4.17
 PACKAGE_TARNAME = strace
 PACKAGE_URL = https://strace.io
-PACKAGE_VERSION = 4.16
+PACKAGE_VERSION = 4.17
 PATH_SEPARATOR = :
 PERL = /usr/bin/perl
 RANLIB = ranlib
-RPM_CHANGELOGTIME = Wed Feb 15 2017
+RPM_CHANGELOGTIME = Thu May 25 2017
 SED = /bin/sed
 SET_MAKE = 
 SHELL = /bin/sh
 STRIP = 
 VALGRIND = valgrind
 VALGRIND_ENABLED = yes
-VERSION = 4.16
+VERSION = 4.17
 WARN_CFLAGS =  -Wall -Wempty-body -Wformat-security -Wignored-qualifiers -Winit-self -Wlogical-op -Wmissing-parameter-type -Wnested-externs -Wold-style-declaration -Wold-style-definition -Wsign-compare -Wtype-limits -Wwrite-strings
 WARN_CFLAGS_FOR_BUILD =  -Wall -Wempty-body -Wformat-security -Wignored-qualifiers -Winit-self -Wlogical-op -Wmissing-parameter-type -Wnested-externs -Wold-style-declaration -Wold-style-definition -Wsign-compare -Wtype-limits -Wwrite-strings
-abs_builddir = /usr/local/google/home/enh/Downloads/strace-4.16
-abs_srcdir = /usr/local/google/home/enh/Downloads/strace-4.16
-abs_top_builddir = /usr/local/google/home/enh/Downloads/strace-4.16
-abs_top_srcdir = /usr/local/google/home/enh/Downloads/strace-4.16
+abs_builddir = /tmp/strace-4.17
+abs_srcdir = /tmp/strace-4.17
+abs_top_builddir = /tmp/strace-4.17
+abs_top_srcdir = /tmp/strace-4.17
 ac_ct_CC = gcc
 ac_ct_CC_FOR_BUILD = gcc
 am__include = include
@@ -670,7 +681,7 @@
 htmldir = ${docdir}
 includedir = ${prefix}/include
 infodir = ${datarootdir}/info
-install_sh = ${SHELL} /usr/local/google/home/enh/Downloads/strace-4.16/install-sh
+install_sh = ${SHELL} /tmp/strace-4.17/install-sh
 libdir = ${exec_prefix}/lib
 libexecdir = ${exec_prefix}/libexec
 libunwind_CPPFLAGS = 
@@ -714,14 +725,15 @@
 
 AM_CFLAGS_FOR_BUILD = $(WARN_CFLAGS_FOR_BUILD)
 AM_CPPFLAGS_FOR_BUILD = $(AM_CPPFLAGS)
-XLAT_INPUT_FILES = xlat/access_flags.in xlat/aclipc.in \
-	xlat/addrfams.in xlat/adjtimex_modes.in xlat/adjtimex_state.in \
+XLAT_INPUT_FILES = xlat/access_flags.in xlat/addrfams.in \
+	xlat/adjtimex_modes.in xlat/adjtimex_state.in \
 	xlat/adjtimex_status.in xlat/advise.in xlat/af_packet_types.in \
 	xlat/archvals.in xlat/arp_hardware_types.in xlat/at_flags.in \
-	xlat/atomic_ops.in xlat/audit_arch.in xlat/baud_options.in \
-	xlat/blkpg_ops.in xlat/bootflags1.in xlat/bootflags2.in \
-	xlat/bootflags3.in xlat/bpf_attach_type.in xlat/bpf_class.in \
-	xlat/bpf_commands.in xlat/bpf_map_types.in \
+	xlat/at_statx_sync_types.in xlat/atomic_ops.in \
+	xlat/audit_arch.in xlat/baud_options.in xlat/blkpg_ops.in \
+	xlat/bootflags1.in xlat/bootflags2.in xlat/bootflags3.in \
+	xlat/bpf_attach_flags.in xlat/bpf_attach_type.in \
+	xlat/bpf_class.in xlat/bpf_commands.in xlat/bpf_map_types.in \
 	xlat/bpf_map_update_elem_flags.in xlat/bpf_miscop.in \
 	xlat/bpf_mode.in xlat/bpf_op_alu.in xlat/bpf_op_jmp.in \
 	xlat/bpf_prog_types.in xlat/bpf_rval.in xlat/bpf_size.in \
@@ -790,9 +802,9 @@
 	xlat/netlink_protocols.in xlat/netlink_types.in \
 	xlat/notifyflags.in xlat/nt_descriptor_types.in \
 	xlat/open_access_modes.in xlat/open_mode_flags.in \
-	xlat/openmodessol.in xlat/packet_mreq_type.in \
-	xlat/perf_attr_size.in xlat/perf_branch_sample_type.in \
-	xlat/perf_event_open_flags.in xlat/perf_event_read_format.in \
+	xlat/packet_mreq_type.in xlat/perf_attr_size.in \
+	xlat/perf_branch_sample_type.in xlat/perf_event_open_flags.in \
+	xlat/perf_event_read_format.in \
 	xlat/perf_event_sample_format.in xlat/perf_hw_cache_id.in \
 	xlat/perf_hw_cache_op_id.in xlat/perf_hw_cache_op_result_id.in \
 	xlat/perf_hw_id.in xlat/perf_sw_ids.in xlat/perf_type_id.in \
@@ -832,8 +844,9 @@
 	xlat/sockrawoptions.in xlat/socksctpoptions.in \
 	xlat/socktcpoptions.in xlat/socktypes.in xlat/splice_flags.in \
 	xlat/sram_alloc_flags.in xlat/statfs_flags.in \
-	xlat/swap_flags.in xlat/sync_file_range_flags.in \
-	xlat/sysctl_kern.in xlat/sysctl_net.in xlat/sysctl_net_core.in \
+	xlat/statx_attrs.in xlat/statx_masks.in xlat/swap_flags.in \
+	xlat/sync_file_range_flags.in xlat/sysctl_kern.in \
+	xlat/sysctl_net.in xlat/sysctl_net_core.in \
 	xlat/sysctl_net_ipv4.in xlat/sysctl_net_ipv4_conf.in \
 	xlat/sysctl_net_ipv4_route.in xlat/sysctl_net_ipv6.in \
 	xlat/sysctl_net_ipv6_route.in xlat/sysctl_net_unix.in \
@@ -854,22 +867,25 @@
 	xlat/v4l2_format_description_flags.in \
 	xlat/v4l2_frameinterval_types.in xlat/v4l2_framesize_types.in \
 	xlat/v4l2_input_types.in xlat/v4l2_memories.in \
-	xlat/v4l2_streaming_capabilities.in xlat/wait4_options.in \
+	xlat/v4l2_sliced_flags.in xlat/v4l2_streaming_capabilities.in \
+	xlat/v4l2_tuner_audmodes.in xlat/v4l2_tuner_capabilities.in \
+	xlat/v4l2_tuner_rxsubchanses.in xlat/v4l2_tuner_types.in \
+	xlat/v4l2_vbi_flags.in xlat/wait4_options.in \
 	xlat/waitid_types.in xlat/whence_codes.in xlat/xattrflags.in \
 	xlat/xfs_dqblk_flags.in xlat/xfs_quota_flags.in
-XLAT_HEADER_FILES = xlat/access_flags.h xlat/aclipc.h xlat/addrfams.h \
+XLAT_HEADER_FILES = xlat/access_flags.h xlat/addrfams.h \
 	xlat/adjtimex_modes.h xlat/adjtimex_state.h \
 	xlat/adjtimex_status.h xlat/advise.h xlat/af_packet_types.h \
 	xlat/archvals.h xlat/arp_hardware_types.h xlat/at_flags.h \
-	xlat/atomic_ops.h xlat/audit_arch.h xlat/baud_options.h \
-	xlat/blkpg_ops.h xlat/bootflags1.h xlat/bootflags2.h \
-	xlat/bootflags3.h xlat/bpf_attach_type.h xlat/bpf_class.h \
-	xlat/bpf_commands.h xlat/bpf_map_types.h \
-	xlat/bpf_map_update_elem_flags.h xlat/bpf_miscop.h \
-	xlat/bpf_mode.h xlat/bpf_op_alu.h xlat/bpf_op_jmp.h \
-	xlat/bpf_prog_types.h xlat/bpf_rval.h xlat/bpf_size.h \
-	xlat/bpf_src.h xlat/bsg_flags.h xlat/bsg_protocol.h \
-	xlat/bsg_subprotocol.h xlat/bt_protocols.h \
+	xlat/at_statx_sync_types.h xlat/atomic_ops.h xlat/audit_arch.h \
+	xlat/baud_options.h xlat/blkpg_ops.h xlat/bootflags1.h \
+	xlat/bootflags2.h xlat/bootflags3.h xlat/bpf_attach_flags.h \
+	xlat/bpf_attach_type.h xlat/bpf_class.h xlat/bpf_commands.h \
+	xlat/bpf_map_types.h xlat/bpf_map_update_elem_flags.h \
+	xlat/bpf_miscop.h xlat/bpf_mode.h xlat/bpf_op_alu.h \
+	xlat/bpf_op_jmp.h xlat/bpf_prog_types.h xlat/bpf_rval.h \
+	xlat/bpf_size.h xlat/bpf_src.h xlat/bsg_flags.h \
+	xlat/bsg_protocol.h xlat/bsg_subprotocol.h xlat/bt_protocols.h \
 	xlat/btrfs_balance_args.h xlat/btrfs_balance_ctl_cmds.h \
 	xlat/btrfs_balance_flags.h xlat/btrfs_balance_state.h \
 	xlat/btrfs_compress_types.h xlat/btrfs_defrag_flags.h \
@@ -928,12 +944,12 @@
 	xlat/netlink_protocols.h xlat/netlink_types.h \
 	xlat/notifyflags.h xlat/nt_descriptor_types.h \
 	xlat/open_access_modes.h xlat/open_mode_flags.h \
-	xlat/openmodessol.h xlat/packet_mreq_type.h \
-	xlat/perf_attr_size.h xlat/perf_branch_sample_type.h \
-	xlat/perf_event_open_flags.h xlat/perf_event_read_format.h \
-	xlat/perf_event_sample_format.h xlat/perf_hw_cache_id.h \
-	xlat/perf_hw_cache_op_id.h xlat/perf_hw_cache_op_result_id.h \
-	xlat/perf_hw_id.h xlat/perf_sw_ids.h xlat/perf_type_id.h \
+	xlat/packet_mreq_type.h xlat/perf_attr_size.h \
+	xlat/perf_branch_sample_type.h xlat/perf_event_open_flags.h \
+	xlat/perf_event_read_format.h xlat/perf_event_sample_format.h \
+	xlat/perf_hw_cache_id.h xlat/perf_hw_cache_op_id.h \
+	xlat/perf_hw_cache_op_result_id.h xlat/perf_hw_id.h \
+	xlat/perf_sw_ids.h xlat/perf_type_id.h \
 	xlat/personality_flags.h xlat/personality_types.h \
 	xlat/pkey_access.h xlat/policies.h xlat/pollflags.h \
 	xlat/pr_cap_ambient.h xlat/pr_dumpable.h xlat/pr_fp_mode.h \
@@ -965,7 +981,8 @@
 	xlat/sockoptions.h xlat/sockpacketoptions.h \
 	xlat/sockrawoptions.h xlat/socksctpoptions.h \
 	xlat/socktcpoptions.h xlat/socktypes.h xlat/splice_flags.h \
-	xlat/sram_alloc_flags.h xlat/statfs_flags.h xlat/swap_flags.h \
+	xlat/sram_alloc_flags.h xlat/statfs_flags.h xlat/statx_attrs.h \
+	xlat/statx_masks.h xlat/swap_flags.h \
 	xlat/sync_file_range_flags.h xlat/sysctl_kern.h \
 	xlat/sysctl_net.h xlat/sysctl_net_core.h \
 	xlat/sysctl_net_ipv4.h xlat/sysctl_net_ipv4_conf.h \
@@ -987,9 +1004,12 @@
 	xlat/v4l2_format_description_flags.h \
 	xlat/v4l2_frameinterval_types.h xlat/v4l2_framesize_types.h \
 	xlat/v4l2_input_types.h xlat/v4l2_memories.h \
-	xlat/v4l2_streaming_capabilities.h xlat/wait4_options.h \
-	xlat/waitid_types.h xlat/whence_codes.h xlat/xattrflags.h \
-	xlat/xfs_dqblk_flags.h xlat/xfs_quota_flags.h
+	xlat/v4l2_sliced_flags.h xlat/v4l2_streaming_capabilities.h \
+	xlat/v4l2_tuner_audmodes.h xlat/v4l2_tuner_capabilities.h \
+	xlat/v4l2_tuner_rxsubchanses.h xlat/v4l2_tuner_types.h \
+	xlat/v4l2_vbi_flags.h xlat/wait4_options.h xlat/waitid_types.h \
+	xlat/whence_codes.h xlat/xattrflags.h xlat/xfs_dqblk_flags.h \
+	xlat/xfs_quota_flags.h
 strace_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_2) \
 	$(CODE_COVERAGE_CPPFLAGS)
 strace_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS)
@@ -1003,6 +1023,7 @@
 	fstatfs.c \
 	fstatfs64.c \
 	ipc.c \
+	sigreturn.c	\
 	socketcall.c \
 	statfs.c \
 	statfs64.c \
@@ -1029,24 +1050,25 @@
 	linux/x32/asm_stat.h linux/x86_64/asm_stat.h lookup_dcookie.c \
 	loop.c lseek.c mem.c membarrier.c memfd_create.c mknod.c \
 	mmsghdr.c mount.c mpers_type.h mq.c msghdr.c msghdr.h mtd.c \
-	native_defs.h net.c netlink.c nsig.h numa.c oldstat.c open.c \
-	or1k_atomic.c pathtrace.c perf.c perf_event_struct.h \
-	personality.c pkeys.c poll.c prctl.c print_dev_t.c \
-	print_mq_attr.c print_msgbuf.c print_sg_req_info.c \
-	print_sigevent.c print_statfs.c print_struct_stat.c \
-	print_time.c print_timespec.c print_timeval.c print_timex.c \
-	printmode.c printrusage.c printsiginfo.c printsiginfo.h \
-	process.c process_vm.c ptp.c ptrace.h qualify.c quota.c \
-	readahead.c readlink.c reboot.c regs.h renameat.c resource.c \
-	rtc.c sched.c scsi.c seccomp.c seccomp_fprog.h sendfile.c \
-	sg_io_v3.c sg_io_v4.c sigaltstack.c sigevent.h signal.c \
-	signalfd.c sigreturn.c sock.c sockaddr.c socketutils.c \
-	sram_alloc.c stat.c stat.h stat64.c statfs.c statfs.h strace.c \
-	swapon.c syscall.c sysctl.c sysent.h sysinfo.c syslog.c \
-	sysmips.c term.c time.c times.c truncate.c ubi.c uid.c uid16.c \
-	umask.c umount.c uname.c userfaultfd.c ustat.c util.c utime.c \
-	utimes.c v4l2.c wait.c xattr.c xlat.h xmalloc.c \
-	$(am__append_1)
+	native_defs.h net.c netlink.c nsfs.c nsfs.h nsig.h numa.c \
+	oldstat.c open.c or1k_atomic.c pathtrace.c perf.c \
+	perf_event_struct.h personality.c pkeys.c poll.c prctl.c \
+	print_dev_t.c print_mq_attr.c print_msgbuf.c \
+	print_sg_req_info.c print_sigevent.c print_statfs.c \
+	print_struct_stat.c print_time.c print_timespec.c \
+	print_timeval.c print_timex.c printmode.c printrusage.c \
+	printsiginfo.c printsiginfo.h process.c process_vm.c ptp.c \
+	ptrace.h qualify.c quota.c readahead.c readlink.c reboot.c \
+	regs.h renameat.c resource.c rt_sigframe.c rt_sigreturn.c \
+	rtc.c sched.c sched_attr.h scsi.c seccomp.c seccomp_fprog.h \
+	sendfile.c sg_io_v3.c sg_io_v4.c sigaltstack.c sigevent.h \
+	signal.c signalfd.c sock.c sockaddr.c socketutils.c \
+	sram_alloc.c stat.c stat.h stat64.c statfs.c statfs.h statx.c \
+	statx.h strace.c swapon.c syscall.c sysctl.c sysent.h \
+	sysinfo.c syslog.c sysmips.c term.c time.c times.c truncate.c \
+	ubi.c uid.c uid16.c umask.c umount.c uname.c userfaultfd.c \
+	ustat.c util.c utime.c utimes.c v4l2.c wait.c xattr.c xlat.h \
+	xmalloc.c $(am__append_1)
 CODE_COVERAGE_BRANCH_COVERAGE = 1
 CODE_COVERAGE_GENHTML_OPTIONS = $(CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT) \
 	--prefix $(shell cd $(abs_top_srcdir)/.. && pwd || echo .)
@@ -1077,7 +1099,6 @@
 	debian/strace64.install		\
 	debian/strace64.manpages	\
 	debian/watch			\
-	errnoent.sh			\
 	generate_sen.sh			\
 	ioctl_iocdef.c			\
 	ioctlsort.c			\
@@ -1090,6 +1111,7 @@
 	linux/64/syscallent.h		\
 	linux/aarch64/arch_regs.c	\
 	linux/aarch64/arch_regs.h	\
+	linux/aarch64/arch_rt_sigframe.c\
 	linux/aarch64/arch_sigreturn.c	\
 	linux/aarch64/errnoent1.h	\
 	linux/aarch64/get_error.c	\
@@ -1107,6 +1129,7 @@
 	linux/alpha/arch_getrval2.c	\
 	linux/alpha/arch_regs.c		\
 	linux/alpha/arch_regs.h		\
+	linux/alpha/arch_rt_sigframe.c	\
 	linux/alpha/arch_sigreturn.c	\
 	linux/alpha/errnoent.h		\
 	linux/alpha/get_error.c		\
@@ -1121,6 +1144,8 @@
 	linux/alpha/syscallent.h	\
 	linux/alpha/userent.h		\
 	linux/arc/arch_regs.c		\
+	linux/arc/arch_regs.h		\
+	linux/arc/arch_rt_sigframe.c	\
 	linux/arc/get_error.c		\
 	linux/arc/get_scno.c		\
 	linux/arc/get_syscall_args.c	\
@@ -1133,6 +1158,7 @@
 	linux/arch_sigreturn.c		\
 	linux/arm/arch_regs.c		\
 	linux/arm/arch_regs.h		\
+	linux/arm/arch_rt_sigframe.c	\
 	linux/arm/arch_sigreturn.c	\
 	linux/arm/get_error.c		\
 	linux/arm/get_scno.c		\
@@ -1144,6 +1170,8 @@
 	linux/arm/syscallent.h		\
 	linux/arm/userent.h		\
 	linux/avr32/arch_regs.c		\
+	linux/avr32/arch_regs.h		\
+	linux/avr32/arch_rt_sigframe.c	\
 	linux/avr32/get_error.c		\
 	linux/avr32/get_scno.c		\
 	linux/avr32/get_syscall_args.c	\
@@ -1154,32 +1182,38 @@
 	linux/avr32/syscallent.h	\
 	linux/avr32/userent.h		\
 	linux/bfin/arch_regs.c		\
+	linux/bfin/arch_rt_sigframe.c	\
 	linux/bfin/get_error.c		\
 	linux/bfin/get_scno.c		\
 	linux/bfin/get_syscall_args.c	\
 	linux/bfin/get_syscall_result.c	\
 	linux/bfin/ioctls_arch0.h	\
 	linux/bfin/ioctls_inc0.h	\
+	linux/bfin/rt_sigframe.h	\
 	linux/bfin/set_error.c		\
 	linux/bfin/set_scno.c		\
 	linux/bfin/syscallent.h		\
 	linux/bfin/userent.h		\
 	linux/crisv10/arch_regs.c	\
+	linux/crisv10/arch_rt_sigframe.c\
 	linux/crisv10/arch_sigreturn.c	\
 	linux/crisv10/get_error.c	\
 	linux/crisv10/get_scno.c	\
 	linux/crisv10/get_syscall_args.c	\
 	linux/crisv10/get_syscall_result.c	\
+	linux/crisv10/rt_sigframe.h	\
 	linux/crisv10/set_error.c	\
 	linux/crisv10/set_scno.c	\
 	linux/crisv10/syscallent.h	\
 	linux/crisv10/userent.h		\
 	linux/crisv32/arch_regs.c	\
+	linux/crisv32/arch_rt_sigframe.c\
 	linux/crisv32/arch_sigreturn.c	\
 	linux/crisv32/get_error.c	\
 	linux/crisv32/get_scno.c	\
 	linux/crisv32/get_syscall_args.c	\
 	linux/crisv32/get_syscall_result.c	\
+	linux/crisv32/rt_sigframe.h	\
 	linux/crisv32/set_error.c	\
 	linux/crisv32/set_scno.c	\
 	linux/crisv32/syscallent.h	\
@@ -1189,6 +1223,7 @@
 	linux/getregs_old.h		\
 	linux/hppa/arch_regs.c		\
 	linux/hppa/arch_regs.h		\
+	linux/hppa/arch_rt_sigframe.c	\
 	linux/hppa/errnoent.h		\
 	linux/hppa/get_error.c		\
 	linux/hppa/get_scno.c		\
@@ -1196,18 +1231,21 @@
 	linux/hppa/get_syscall_result.c	\
 	linux/hppa/ioctls_arch0.h	\
 	linux/hppa/ioctls_inc0.h	\
+	linux/hppa/rt_sigframe.h	\
 	linux/hppa/set_error.c		\
 	linux/hppa/set_scno.c		\
 	linux/hppa/signalent.h		\
 	linux/hppa/syscallent.h		\
 	linux/i386/arch_regs.c		\
 	linux/i386/arch_regs.h		\
+	linux/i386/arch_rt_sigframe.c	\
 	linux/i386/arch_sigreturn.c	\
 	linux/i386/get_error.c		\
 	linux/i386/get_scno.c		\
 	linux/i386/get_syscall_args.c	\
 	linux/i386/ioctls_arch0.h	\
 	linux/i386/ioctls_inc0.h	\
+	linux/i386/rt_sigframe.h	\
 	linux/i386/set_error.c		\
 	linux/i386/set_scno.c		\
 	linux/i386/syscallent.h		\
@@ -1216,12 +1254,13 @@
 	linux/ia64/arch_getrval2.c	\
 	linux/ia64/arch_regs.c		\
 	linux/ia64/arch_regs.h		\
-	linux/ia64/arch_sigreturn.c	\
+	linux/ia64/arch_rt_sigframe.c	\
 	linux/ia64/get_error.c		\
 	linux/ia64/get_scno.c		\
 	linux/ia64/get_syscall_args.c	\
 	linux/ia64/ioctls_arch0.h	\
 	linux/ia64/ioctls_inc0.h	\
+	linux/ia64/rt_sigframe.h	\
 	linux/ia64/set_error.c		\
 	linux/ia64/set_scno.c		\
 	linux/ia64/syscallent.h		\
@@ -1229,17 +1268,21 @@
 	linux/inet_diag.h		\
 	linux/m68k/arch_regs.c		\
 	linux/m68k/arch_regs.h		\
+	linux/m68k/arch_rt_sigframe.c	\
 	linux/m68k/arch_sigreturn.c	\
 	linux/m68k/get_error.c		\
 	linux/m68k/get_scno.c		\
 	linux/m68k/get_syscall_args.c	\
 	linux/m68k/ioctls_arch0.h	\
 	linux/m68k/ioctls_inc0.h	\
+	linux/m68k/rt_sigframe.h	\
 	linux/m68k/set_error.c		\
 	linux/m68k/set_scno.c		\
 	linux/m68k/syscallent.h		\
 	linux/m68k/userent.h		\
 	linux/metag/arch_regs.c		\
+	linux/metag/arch_regs.h		\
+	linux/metag/arch_rt_sigframe.c	\
 	linux/metag/get_error.c		\
 	linux/metag/get_scno.c		\
 	linux/metag/get_syscall_args.c	\
@@ -1249,6 +1292,7 @@
 	linux/metag/set_scno.c		\
 	linux/metag/syscallent.h	\
 	linux/microblaze/arch_regs.c	\
+	linux/microblaze/arch_rt_sigframe.c\
 	linux/microblaze/arch_sigreturn.c	\
 	linux/microblaze/get_error.c	\
 	linux/microblaze/get_scno.c	\
@@ -1263,6 +1307,7 @@
 	linux/mips/arch_getrval2.c	\
 	linux/mips/arch_regs.c		\
 	linux/mips/arch_regs.h		\
+	linux/mips/arch_rt_sigframe.c	\
 	linux/mips/arch_sigreturn.c	\
 	linux/mips/errnoent.h		\
 	linux/mips/genstub.sh		\
@@ -1271,6 +1316,7 @@
 	linux/mips/get_syscall_args.c	\
 	linux/mips/ioctls_arch0.h	\
 	linux/mips/ioctls_inc0.h	\
+	linux/mips/rt_sigframe.h	\
 	linux/mips/set_error.c		\
 	linux/mips/set_scno.c		\
 	linux/mips/signalent.h		\
@@ -1283,6 +1329,8 @@
 	linux/mtd-abi.h			\
 	linux/netlink_diag.h		\
 	linux/nios2/arch_regs.c		\
+	linux/nios2/arch_regs.h		\
+	linux/nios2/arch_rt_sigframe.c	\
 	linux/nios2/get_error.c		\
 	linux/nios2/get_scno.c		\
 	linux/nios2/get_syscall_args.c	\
@@ -1292,6 +1340,8 @@
 	linux/nios2/set_scno.c		\
 	linux/nios2/syscallent.h	\
 	linux/or1k/arch_regs.c		\
+	linux/or1k/arch_regs.h		\
+	linux/or1k/arch_rt_sigframe.c	\
 	linux/or1k/get_error.c		\
 	linux/or1k/get_scno.c		\
 	linux/or1k/get_syscall_args.c	\
@@ -1304,6 +1354,7 @@
 	linux/personality.h		\
 	linux/powerpc/arch_regs.c	\
 	linux/powerpc/arch_regs.h	\
+	linux/powerpc/arch_rt_sigframe.c\
 	linux/powerpc/arch_sigreturn.c	\
 	linux/powerpc/errnoent.h	\
 	linux/powerpc/get_error.c	\
@@ -1319,6 +1370,7 @@
 	linux/powerpc/userent.h		\
 	linux/powerpc64/arch_regs.c	\
 	linux/powerpc64/arch_regs.h	\
+	linux/powerpc64/arch_rt_sigframe.c\
 	linux/powerpc64/arch_sigreturn.c	\
 	linux/powerpc64/errnoent.h	\
 	linux/powerpc64/errnoent1.h	\
@@ -1331,6 +1383,7 @@
 	linux/powerpc64/ioctls_arch1.h	\
 	linux/powerpc64/ioctls_inc0.h	\
 	linux/powerpc64/ioctls_inc1.h	\
+	linux/powerpc64/rt_sigframe.h	\
 	linux/powerpc64/set_error.c	\
 	linux/powerpc64/set_scno.c	\
 	linux/powerpc64/signalent1.h	\
@@ -1339,6 +1392,8 @@
 	linux/powerpc64/userent.h	\
 	linux/ptp_clock.h		\
 	linux/riscv/arch_regs.c		\
+	linux/riscv/arch_regs.h		\
+	linux/riscv/arch_rt_sigframe.c	\
 	linux/riscv/errnoent1.h		\
 	linux/riscv/get_error.c		\
 	linux/riscv/get_scno.c		\
@@ -1352,14 +1407,17 @@
 	linux/riscv/signalent1.h	\
 	linux/riscv/syscallent.h	\
 	linux/riscv/syscallent1.h	\
+	linux/rt_sigframe.h		\
 	linux/s390/arch_regs.c		\
 	linux/s390/arch_regs.h		\
+	linux/s390/arch_rt_sigframe.c	\
 	linux/s390/arch_sigreturn.c	\
 	linux/s390/get_error.c		\
 	linux/s390/get_scno.c		\
 	linux/s390/get_syscall_args.c	\
 	linux/s390/ioctls_arch0.h	\
 	linux/s390/ioctls_inc0.h	\
+	linux/s390/rt_sigframe.h	\
 	linux/s390/set_error.c		\
 	linux/s390/set_scno.c		\
 	linux/s390/syscallent.h		\
@@ -1368,18 +1426,21 @@
 	linux/s390/userent1.h		\
 	linux/s390x/arch_regs.c		\
 	linux/s390x/arch_regs.h		\
+	linux/s390x/arch_rt_sigframe.c	\
 	linux/s390x/arch_sigreturn.c	\
 	linux/s390x/get_error.c		\
 	linux/s390x/get_scno.c		\
 	linux/s390x/get_syscall_args.c	\
 	linux/s390x/ioctls_arch0.h	\
 	linux/s390x/ioctls_inc0.h	\
+	linux/s390x/rt_sigframe.h	\
 	linux/s390x/set_error.c		\
 	linux/s390x/set_scno.c		\
 	linux/s390x/syscallent.h	\
 	linux/s390x/userent.h		\
 	linux/sh/arch_getrval2.c	\
 	linux/sh/arch_regs.c		\
+	linux/sh/arch_rt_sigframe.c	\
 	linux/sh/get_error.c		\
 	linux/sh/get_scno.c		\
 	linux/sh/get_syscall_args.c	\
@@ -1393,12 +1454,14 @@
 	linux/sh/userent0.h		\
 	linux/sh64/arch_regs.c		\
 	linux/sh64/arch_regs.h		\
+	linux/sh64/arch_rt_sigframe.c	\
 	linux/sh64/get_error.c		\
 	linux/sh64/get_scno.c		\
 	linux/sh64/get_syscall_args.c	\
 	linux/sh64/get_syscall_result.c	\
 	linux/sh64/ioctls_arch0.h	\
 	linux/sh64/ioctls_inc0.h	\
+	linux/sh64/rt_sigframe.h	\
 	linux/sh64/set_error.c		\
 	linux/sh64/set_scno.c		\
 	linux/sh64/syscallent.h		\
@@ -1408,6 +1471,7 @@
 	linux/sparc/arch_getrval2.c	\
 	linux/sparc/arch_regs.c		\
 	linux/sparc/arch_regs.h		\
+	linux/sparc/arch_rt_sigframe.c	\
 	linux/sparc/arch_sigreturn.c	\
 	linux/sparc/errnoent.h		\
 	linux/sparc/gen.pl		\
@@ -1416,6 +1480,7 @@
 	linux/sparc/get_syscall_args.c	\
 	linux/sparc/ioctls_arch0.h	\
 	linux/sparc/ioctls_inc0.h	\
+	linux/sparc/rt_sigframe.h	\
 	linux/sparc/set_error.c		\
 	linux/sparc/set_scno.c		\
 	linux/sparc/signalent.h		\
@@ -1424,6 +1489,7 @@
 	linux/sparc64/arch_getrval2.c	\
 	linux/sparc64/arch_regs.c	\
 	linux/sparc64/arch_regs.h	\
+	linux/sparc64/arch_rt_sigframe.c\
 	linux/sparc64/arch_sigreturn.c	\
 	linux/sparc64/errnoent.h	\
 	linux/sparc64/errnoent1.h	\
@@ -1434,6 +1500,7 @@
 	linux/sparc64/ioctls_arch1.h	\
 	linux/sparc64/ioctls_inc0.h	\
 	linux/sparc64/ioctls_inc1.h	\
+	linux/sparc64/rt_sigframe.h	\
 	linux/sparc64/set_error.c	\
 	linux/sparc64/set_scno.c	\
 	linux/sparc64/signalent.h	\
@@ -1445,6 +1512,7 @@
 	linux/syscall.h			\
 	linux/tile/arch_regs.c		\
 	linux/tile/arch_regs.h		\
+	linux/tile/arch_rt_sigframe.c	\
 	linux/tile/arch_sigreturn.c	\
 	linux/tile/errnoent1.h		\
 	linux/tile/get_error.c		\
@@ -1454,6 +1522,7 @@
 	linux/tile/ioctls_arch1.h	\
 	linux/tile/ioctls_inc0.h	\
 	linux/tile/ioctls_inc1.h	\
+	linux/tile/rt_sigframe.h	\
 	linux/tile/set_error.c		\
 	linux/tile/set_scno.c		\
 	linux/tile/signalent1.h		\
@@ -1466,6 +1535,7 @@
 	linux/userent0.h		\
 	linux/x32/arch_regs.c		\
 	linux/x32/arch_regs.h		\
+	linux/x32/arch_rt_sigframe.c	\
 	linux/x32/arch_sigreturn.c	\
 	linux/x32/errnoent1.h		\
 	linux/x32/get_error.c		\
@@ -1475,6 +1545,7 @@
 	linux/x32/ioctls_arch1.h	\
 	linux/x32/ioctls_inc0.h		\
 	linux/x32/ioctls_inc1.h		\
+	linux/x32/rt_sigframe.h		\
 	linux/x32/set_error.c		\
 	linux/x32/set_scno.c		\
 	linux/x32/signalent1.h		\
@@ -1483,6 +1554,7 @@
 	linux/x32/userent.h		\
 	linux/x86_64/arch_regs.c	\
 	linux/x86_64/arch_regs.h	\
+	linux/x86_64/arch_rt_sigframe.c	\
 	linux/x86_64/arch_sigreturn.c	\
 	linux/x86_64/errnoent1.h	\
 	linux/x86_64/errnoent2.h	\
@@ -1498,6 +1570,7 @@
 	linux/x86_64/ioctls_inc0.h	\
 	linux/x86_64/ioctls_inc1.h	\
 	linux/x86_64/ioctls_inc2.h	\
+	linux/x86_64/rt_sigframe.h	\
 	linux/x86_64/set_error.c	\
 	linux/x86_64/set_scno.c		\
 	linux/x86_64/signalent1.h	\
@@ -1507,6 +1580,7 @@
 	linux/x86_64/syscallent2.h	\
 	linux/x86_64/userent.h		\
 	linux/xtensa/arch_regs.c	\
+	linux/xtensa/arch_rt_sigframe.c	\
 	linux/xtensa/get_error.c	\
 	linux/xtensa/get_scno.c		\
 	linux/xtensa/get_syscall_args.c	\
@@ -1517,20 +1591,14 @@
 	linux/xtensa/set_scno.c		\
 	linux/xtensa/syscallent.h	\
 	linux/xtensa/userent.h		\
-	maint/ioctls_gen.sh		\
-	maint/ioctls_hex.sh		\
-	maint/ioctls_sym.sh		\
-	maint/print_ioctlent.c		\
 	mpers.awk			\
 	mpers.sh			\
 	mpers_test.sh			\
 	mpers_xlat.h			\
 	scno.head			\
-	signalent.sh			\
 	strace-graph			\
 	strace-log-merge		\
 	strace.spec			\
-	syscallent.sh			\
 	$(XLAT_INPUT_FILES)		\
 	$(XLAT_HEADER_FILES)		\
 	xlat/gen.sh			\
@@ -1572,7 +1640,7 @@
 SCNO_SED = /TRACE_INDIRECT_SUBCALL/d; s/^\[[[:space:]]*\($(digits)\)\][[:space:]]*=[[:space:]]*{[^,]*,[^,]*,[^,]*,[[:space:]]*"\($(al_nums)\)"[[:space:]]*},.*/\#ifndef __NR_\2\n\# define __NR_\2 (SYSCALL_BIT | \1)\n\#endif/p
 
 # Generated by ./generate_mpers_am.sh; do not edit.
-mpers_source_files = block.c btrfs.c dirent.c evdev.c fetch_seccomp_fprog.c fetch_struct_flock.c fetch_struct_mmsghdr.c fetch_struct_msghdr.c fetch_struct_stat.c fetch_struct_stat64.c fetch_struct_statfs.c hdio.c ipc_msgctl.c ipc_shmctl.c loop.c mtd.c print_mq_attr.c print_msgbuf.c print_sg_req_info.c print_sigevent.c print_time.c print_timespec.c print_timeval.c print_timex.c printrusage.c printsiginfo.c rtc.c sg_io_v3.c sigaltstack.c sock.c sysinfo.c times.c ustat.c utime.c v4l2.c 
+mpers_source_files = block.c btrfs.c dirent.c evdev.c fetch_seccomp_fprog.c fetch_struct_flock.c fetch_struct_mmsghdr.c fetch_struct_msghdr.c fetch_struct_stat.c fetch_struct_stat64.c fetch_struct_statfs.c hdio.c ipc_msgctl.c ipc_shmctl.c loop.c mtd.c print_mq_attr.c print_msgbuf.c print_sg_req_info.c print_sigevent.c print_time.c print_timespec.c print_timeval.c print_timex.c printrusage.c printsiginfo.c rt_sigreturn.c rtc.c sg_io_v3.c sigaltstack.c sock.c sysinfo.c times.c ustat.c utime.c v4l2.c 
 
 # defines mpers_source_files
 srcdir_mpers_source_files = $(patsubst %,$(srcdir)/%,$(mpers_source_files))
@@ -1786,6 +1854,7 @@
 include ./$(DEPDIR)/libmpers_m32_a-print_timex.Po
 include ./$(DEPDIR)/libmpers_m32_a-printrusage.Po
 include ./$(DEPDIR)/libmpers_m32_a-printsiginfo.Po
+include ./$(DEPDIR)/libmpers_m32_a-rt_sigreturn.Po
 include ./$(DEPDIR)/libmpers_m32_a-rtc.Po
 include ./$(DEPDIR)/libmpers_m32_a-sg_io_v3.Po
 include ./$(DEPDIR)/libmpers_m32_a-sigaltstack.Po
@@ -1821,6 +1890,7 @@
 include ./$(DEPDIR)/libmpers_mx32_a-print_timex.Po
 include ./$(DEPDIR)/libmpers_mx32_a-printrusage.Po
 include ./$(DEPDIR)/libmpers_mx32_a-printsiginfo.Po
+include ./$(DEPDIR)/libmpers_mx32_a-rt_sigreturn.Po
 include ./$(DEPDIR)/libmpers_mx32_a-rtc.Po
 include ./$(DEPDIR)/libmpers_mx32_a-sg_io_v3.Po
 include ./$(DEPDIR)/libmpers_mx32_a-sigaltstack.Po
@@ -1833,6 +1903,7 @@
 include ./$(DEPDIR)/libstrace_a-fstatfs.Po
 include ./$(DEPDIR)/libstrace_a-fstatfs64.Po
 include ./$(DEPDIR)/libstrace_a-ipc.Po
+include ./$(DEPDIR)/libstrace_a-sigreturn.Po
 include ./$(DEPDIR)/libstrace_a-socketcall.Po
 include ./$(DEPDIR)/libstrace_a-statfs.Po
 include ./$(DEPDIR)/libstrace_a-statfs64.Po
@@ -1916,6 +1987,7 @@
 include ./$(DEPDIR)/strace-mtd.Po
 include ./$(DEPDIR)/strace-net.Po
 include ./$(DEPDIR)/strace-netlink.Po
+include ./$(DEPDIR)/strace-nsfs.Po
 include ./$(DEPDIR)/strace-numa.Po
 include ./$(DEPDIR)/strace-oldstat.Po
 include ./$(DEPDIR)/strace-open.Po
@@ -1950,6 +2022,8 @@
 include ./$(DEPDIR)/strace-reboot.Po
 include ./$(DEPDIR)/strace-renameat.Po
 include ./$(DEPDIR)/strace-resource.Po
+include ./$(DEPDIR)/strace-rt_sigframe.Po
+include ./$(DEPDIR)/strace-rt_sigreturn.Po
 include ./$(DEPDIR)/strace-rtc.Po
 include ./$(DEPDIR)/strace-sched.Po
 include ./$(DEPDIR)/strace-scsi.Po
@@ -1960,7 +2034,6 @@
 include ./$(DEPDIR)/strace-sigaltstack.Po
 include ./$(DEPDIR)/strace-signal.Po
 include ./$(DEPDIR)/strace-signalfd.Po
-include ./$(DEPDIR)/strace-sigreturn.Po
 include ./$(DEPDIR)/strace-sock.Po
 include ./$(DEPDIR)/strace-sockaddr.Po
 include ./$(DEPDIR)/strace-socketutils.Po
@@ -1968,6 +2041,7 @@
 include ./$(DEPDIR)/strace-stat.Po
 include ./$(DEPDIR)/strace-stat64.Po
 include ./$(DEPDIR)/strace-statfs.Po
+include ./$(DEPDIR)/strace-statx.Po
 include ./$(DEPDIR)/strace-strace.Po
 include ./$(DEPDIR)/strace-swapon.Po
 include ./$(DEPDIR)/strace-syscall.Po
@@ -2374,6 +2448,20 @@
 #	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
 #	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -c -o libmpers_m32_a-printsiginfo.obj `if test -f 'printsiginfo.c'; then $(CYGPATH_W) 'printsiginfo.c'; else $(CYGPATH_W) '$(srcdir)/printsiginfo.c'; fi`
 
+libmpers_m32_a-rt_sigreturn.o: rt_sigreturn.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -MT libmpers_m32_a-rt_sigreturn.o -MD -MP -MF $(DEPDIR)/libmpers_m32_a-rt_sigreturn.Tpo -c -o libmpers_m32_a-rt_sigreturn.o `test -f 'rt_sigreturn.c' || echo '$(srcdir)/'`rt_sigreturn.c
+	$(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_m32_a-rt_sigreturn.Tpo $(DEPDIR)/libmpers_m32_a-rt_sigreturn.Po
+#	$(AM_V_CC)source='rt_sigreturn.c' object='libmpers_m32_a-rt_sigreturn.o' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -c -o libmpers_m32_a-rt_sigreturn.o `test -f 'rt_sigreturn.c' || echo '$(srcdir)/'`rt_sigreturn.c
+
+libmpers_m32_a-rt_sigreturn.obj: rt_sigreturn.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -MT libmpers_m32_a-rt_sigreturn.obj -MD -MP -MF $(DEPDIR)/libmpers_m32_a-rt_sigreturn.Tpo -c -o libmpers_m32_a-rt_sigreturn.obj `if test -f 'rt_sigreturn.c'; then $(CYGPATH_W) 'rt_sigreturn.c'; else $(CYGPATH_W) '$(srcdir)/rt_sigreturn.c'; fi`
+	$(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_m32_a-rt_sigreturn.Tpo $(DEPDIR)/libmpers_m32_a-rt_sigreturn.Po
+#	$(AM_V_CC)source='rt_sigreturn.c' object='libmpers_m32_a-rt_sigreturn.obj' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -c -o libmpers_m32_a-rt_sigreturn.obj `if test -f 'rt_sigreturn.c'; then $(CYGPATH_W) 'rt_sigreturn.c'; else $(CYGPATH_W) '$(srcdir)/rt_sigreturn.c'; fi`
+
 libmpers_m32_a-rtc.o: rtc.c
 	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -MT libmpers_m32_a-rtc.o -MD -MP -MF $(DEPDIR)/libmpers_m32_a-rtc.Tpo -c -o libmpers_m32_a-rtc.o `test -f 'rtc.c' || echo '$(srcdir)/'`rtc.c
 	$(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_m32_a-rtc.Tpo $(DEPDIR)/libmpers_m32_a-rtc.Po
@@ -2864,6 +2952,20 @@
 #	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
 #	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -c -o libmpers_mx32_a-printsiginfo.obj `if test -f 'printsiginfo.c'; then $(CYGPATH_W) 'printsiginfo.c'; else $(CYGPATH_W) '$(srcdir)/printsiginfo.c'; fi`
 
+libmpers_mx32_a-rt_sigreturn.o: rt_sigreturn.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -MT libmpers_mx32_a-rt_sigreturn.o -MD -MP -MF $(DEPDIR)/libmpers_mx32_a-rt_sigreturn.Tpo -c -o libmpers_mx32_a-rt_sigreturn.o `test -f 'rt_sigreturn.c' || echo '$(srcdir)/'`rt_sigreturn.c
+	$(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_mx32_a-rt_sigreturn.Tpo $(DEPDIR)/libmpers_mx32_a-rt_sigreturn.Po
+#	$(AM_V_CC)source='rt_sigreturn.c' object='libmpers_mx32_a-rt_sigreturn.o' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -c -o libmpers_mx32_a-rt_sigreturn.o `test -f 'rt_sigreturn.c' || echo '$(srcdir)/'`rt_sigreturn.c
+
+libmpers_mx32_a-rt_sigreturn.obj: rt_sigreturn.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -MT libmpers_mx32_a-rt_sigreturn.obj -MD -MP -MF $(DEPDIR)/libmpers_mx32_a-rt_sigreturn.Tpo -c -o libmpers_mx32_a-rt_sigreturn.obj `if test -f 'rt_sigreturn.c'; then $(CYGPATH_W) 'rt_sigreturn.c'; else $(CYGPATH_W) '$(srcdir)/rt_sigreturn.c'; fi`
+	$(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_mx32_a-rt_sigreturn.Tpo $(DEPDIR)/libmpers_mx32_a-rt_sigreturn.Po
+#	$(AM_V_CC)source='rt_sigreturn.c' object='libmpers_mx32_a-rt_sigreturn.obj' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -c -o libmpers_mx32_a-rt_sigreturn.obj `if test -f 'rt_sigreturn.c'; then $(CYGPATH_W) 'rt_sigreturn.c'; else $(CYGPATH_W) '$(srcdir)/rt_sigreturn.c'; fi`
+
 libmpers_mx32_a-rtc.o: rtc.c
 	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -MT libmpers_mx32_a-rtc.o -MD -MP -MF $(DEPDIR)/libmpers_mx32_a-rtc.Tpo -c -o libmpers_mx32_a-rtc.o `test -f 'rtc.c' || echo '$(srcdir)/'`rtc.c
 	$(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_mx32_a-rtc.Tpo $(DEPDIR)/libmpers_mx32_a-rtc.Po
@@ -3032,6 +3134,20 @@
 #	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
 #	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ipc.obj `if test -f 'ipc.c'; then $(CYGPATH_W) 'ipc.c'; else $(CYGPATH_W) '$(srcdir)/ipc.c'; fi`
 
+libstrace_a-sigreturn.o: sigreturn.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sigreturn.o -MD -MP -MF $(DEPDIR)/libstrace_a-sigreturn.Tpo -c -o libstrace_a-sigreturn.o `test -f 'sigreturn.c' || echo '$(srcdir)/'`sigreturn.c
+	$(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sigreturn.Tpo $(DEPDIR)/libstrace_a-sigreturn.Po
+#	$(AM_V_CC)source='sigreturn.c' object='libstrace_a-sigreturn.o' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sigreturn.o `test -f 'sigreturn.c' || echo '$(srcdir)/'`sigreturn.c
+
+libstrace_a-sigreturn.obj: sigreturn.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sigreturn.obj -MD -MP -MF $(DEPDIR)/libstrace_a-sigreturn.Tpo -c -o libstrace_a-sigreturn.obj `if test -f 'sigreturn.c'; then $(CYGPATH_W) 'sigreturn.c'; else $(CYGPATH_W) '$(srcdir)/sigreturn.c'; fi`
+	$(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sigreturn.Tpo $(DEPDIR)/libstrace_a-sigreturn.Po
+#	$(AM_V_CC)source='sigreturn.c' object='libstrace_a-sigreturn.obj' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sigreturn.obj `if test -f 'sigreturn.c'; then $(CYGPATH_W) 'sigreturn.c'; else $(CYGPATH_W) '$(srcdir)/sigreturn.c'; fi`
+
 libstrace_a-socketcall.o: socketcall.c
 	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-socketcall.o -MD -MP -MF $(DEPDIR)/libstrace_a-socketcall.Tpo -c -o libstrace_a-socketcall.o `test -f 'socketcall.c' || echo '$(srcdir)/'`socketcall.c
 	$(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-socketcall.Tpo $(DEPDIR)/libstrace_a-socketcall.Po
@@ -4194,6 +4310,20 @@
 #	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
 #	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-netlink.obj `if test -f 'netlink.c'; then $(CYGPATH_W) 'netlink.c'; else $(CYGPATH_W) '$(srcdir)/netlink.c'; fi`
 
+strace-nsfs.o: nsfs.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-nsfs.o -MD -MP -MF $(DEPDIR)/strace-nsfs.Tpo -c -o strace-nsfs.o `test -f 'nsfs.c' || echo '$(srcdir)/'`nsfs.c
+	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-nsfs.Tpo $(DEPDIR)/strace-nsfs.Po
+#	$(AM_V_CC)source='nsfs.c' object='strace-nsfs.o' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-nsfs.o `test -f 'nsfs.c' || echo '$(srcdir)/'`nsfs.c
+
+strace-nsfs.obj: nsfs.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-nsfs.obj -MD -MP -MF $(DEPDIR)/strace-nsfs.Tpo -c -o strace-nsfs.obj `if test -f 'nsfs.c'; then $(CYGPATH_W) 'nsfs.c'; else $(CYGPATH_W) '$(srcdir)/nsfs.c'; fi`
+	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-nsfs.Tpo $(DEPDIR)/strace-nsfs.Po
+#	$(AM_V_CC)source='nsfs.c' object='strace-nsfs.obj' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-nsfs.obj `if test -f 'nsfs.c'; then $(CYGPATH_W) 'nsfs.c'; else $(CYGPATH_W) '$(srcdir)/nsfs.c'; fi`
+
 strace-numa.o: numa.c
 	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-numa.o -MD -MP -MF $(DEPDIR)/strace-numa.Tpo -c -o strace-numa.o `test -f 'numa.c' || echo '$(srcdir)/'`numa.c
 	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-numa.Tpo $(DEPDIR)/strace-numa.Po
@@ -4670,6 +4800,34 @@
 #	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
 #	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-resource.obj `if test -f 'resource.c'; then $(CYGPATH_W) 'resource.c'; else $(CYGPATH_W) '$(srcdir)/resource.c'; fi`
 
+strace-rt_sigframe.o: rt_sigframe.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rt_sigframe.o -MD -MP -MF $(DEPDIR)/strace-rt_sigframe.Tpo -c -o strace-rt_sigframe.o `test -f 'rt_sigframe.c' || echo '$(srcdir)/'`rt_sigframe.c
+	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-rt_sigframe.Tpo $(DEPDIR)/strace-rt_sigframe.Po
+#	$(AM_V_CC)source='rt_sigframe.c' object='strace-rt_sigframe.o' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rt_sigframe.o `test -f 'rt_sigframe.c' || echo '$(srcdir)/'`rt_sigframe.c
+
+strace-rt_sigframe.obj: rt_sigframe.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rt_sigframe.obj -MD -MP -MF $(DEPDIR)/strace-rt_sigframe.Tpo -c -o strace-rt_sigframe.obj `if test -f 'rt_sigframe.c'; then $(CYGPATH_W) 'rt_sigframe.c'; else $(CYGPATH_W) '$(srcdir)/rt_sigframe.c'; fi`
+	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-rt_sigframe.Tpo $(DEPDIR)/strace-rt_sigframe.Po
+#	$(AM_V_CC)source='rt_sigframe.c' object='strace-rt_sigframe.obj' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rt_sigframe.obj `if test -f 'rt_sigframe.c'; then $(CYGPATH_W) 'rt_sigframe.c'; else $(CYGPATH_W) '$(srcdir)/rt_sigframe.c'; fi`
+
+strace-rt_sigreturn.o: rt_sigreturn.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rt_sigreturn.o -MD -MP -MF $(DEPDIR)/strace-rt_sigreturn.Tpo -c -o strace-rt_sigreturn.o `test -f 'rt_sigreturn.c' || echo '$(srcdir)/'`rt_sigreturn.c
+	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-rt_sigreturn.Tpo $(DEPDIR)/strace-rt_sigreturn.Po
+#	$(AM_V_CC)source='rt_sigreturn.c' object='strace-rt_sigreturn.o' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rt_sigreturn.o `test -f 'rt_sigreturn.c' || echo '$(srcdir)/'`rt_sigreturn.c
+
+strace-rt_sigreturn.obj: rt_sigreturn.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rt_sigreturn.obj -MD -MP -MF $(DEPDIR)/strace-rt_sigreturn.Tpo -c -o strace-rt_sigreturn.obj `if test -f 'rt_sigreturn.c'; then $(CYGPATH_W) 'rt_sigreturn.c'; else $(CYGPATH_W) '$(srcdir)/rt_sigreturn.c'; fi`
+	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-rt_sigreturn.Tpo $(DEPDIR)/strace-rt_sigreturn.Po
+#	$(AM_V_CC)source='rt_sigreturn.c' object='strace-rt_sigreturn.obj' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rt_sigreturn.obj `if test -f 'rt_sigreturn.c'; then $(CYGPATH_W) 'rt_sigreturn.c'; else $(CYGPATH_W) '$(srcdir)/rt_sigreturn.c'; fi`
+
 strace-rtc.o: rtc.c
 	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rtc.o -MD -MP -MF $(DEPDIR)/strace-rtc.Tpo -c -o strace-rtc.o `test -f 'rtc.c' || echo '$(srcdir)/'`rtc.c
 	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-rtc.Tpo $(DEPDIR)/strace-rtc.Po
@@ -4810,20 +4968,6 @@
 #	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
 #	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-signalfd.obj `if test -f 'signalfd.c'; then $(CYGPATH_W) 'signalfd.c'; else $(CYGPATH_W) '$(srcdir)/signalfd.c'; fi`
 
-strace-sigreturn.o: sigreturn.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-sigreturn.o -MD -MP -MF $(DEPDIR)/strace-sigreturn.Tpo -c -o strace-sigreturn.o `test -f 'sigreturn.c' || echo '$(srcdir)/'`sigreturn.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-sigreturn.Tpo $(DEPDIR)/strace-sigreturn.Po
-#	$(AM_V_CC)source='sigreturn.c' object='strace-sigreturn.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-sigreturn.o `test -f 'sigreturn.c' || echo '$(srcdir)/'`sigreturn.c
-
-strace-sigreturn.obj: sigreturn.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-sigreturn.obj -MD -MP -MF $(DEPDIR)/strace-sigreturn.Tpo -c -o strace-sigreturn.obj `if test -f 'sigreturn.c'; then $(CYGPATH_W) 'sigreturn.c'; else $(CYGPATH_W) '$(srcdir)/sigreturn.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-sigreturn.Tpo $(DEPDIR)/strace-sigreturn.Po
-#	$(AM_V_CC)source='sigreturn.c' object='strace-sigreturn.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-sigreturn.obj `if test -f 'sigreturn.c'; then $(CYGPATH_W) 'sigreturn.c'; else $(CYGPATH_W) '$(srcdir)/sigreturn.c'; fi`
-
 strace-sock.o: sock.c
 	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-sock.o -MD -MP -MF $(DEPDIR)/strace-sock.Tpo -c -o strace-sock.o `test -f 'sock.c' || echo '$(srcdir)/'`sock.c
 	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-sock.Tpo $(DEPDIR)/strace-sock.Po
@@ -4922,6 +5066,20 @@
 #	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
 #	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-statfs.obj `if test -f 'statfs.c'; then $(CYGPATH_W) 'statfs.c'; else $(CYGPATH_W) '$(srcdir)/statfs.c'; fi`
 
+strace-statx.o: statx.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-statx.o -MD -MP -MF $(DEPDIR)/strace-statx.Tpo -c -o strace-statx.o `test -f 'statx.c' || echo '$(srcdir)/'`statx.c
+	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-statx.Tpo $(DEPDIR)/strace-statx.Po
+#	$(AM_V_CC)source='statx.c' object='strace-statx.o' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-statx.o `test -f 'statx.c' || echo '$(srcdir)/'`statx.c
+
+strace-statx.obj: statx.c
+	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-statx.obj -MD -MP -MF $(DEPDIR)/strace-statx.Tpo -c -o strace-statx.obj `if test -f 'statx.c'; then $(CYGPATH_W) 'statx.c'; else $(CYGPATH_W) '$(srcdir)/statx.c'; fi`
+	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-statx.Tpo $(DEPDIR)/strace-statx.Po
+#	$(AM_V_CC)source='statx.c' object='strace-statx.obj' libtool=no \
+#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
+#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-statx.obj `if test -f 'statx.c'; then $(CYGPATH_W) 'statx.c'; else $(CYGPATH_W) '$(srcdir)/statx.c'; fi`
+
 strace-strace.o: strace.c
 	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-strace.o -MD -MP -MF $(DEPDIR)/strace-strace.Tpo -c -o strace-strace.o `test -f 'strace.c' || echo '$(srcdir)/'`strace.c
 	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-strace.Tpo $(DEPDIR)/strace-strace.Po
@@ -5788,8 +5946,6 @@
 
 $(top_srcdir)/xlat/access_flags.h: $(top_srcdir)/xlat/access_flags.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/aclipc.h: $(top_srcdir)/xlat/aclipc.in $(top_srcdir)/xlat/gen.sh
-	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/addrfams.h: $(top_srcdir)/xlat/addrfams.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/adjtimex_modes.h: $(top_srcdir)/xlat/adjtimex_modes.in $(top_srcdir)/xlat/gen.sh
@@ -5808,6 +5964,8 @@
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/at_flags.h: $(top_srcdir)/xlat/at_flags.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/at_statx_sync_types.h: $(top_srcdir)/xlat/at_statx_sync_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/atomic_ops.h: $(top_srcdir)/xlat/atomic_ops.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/audit_arch.h: $(top_srcdir)/xlat/audit_arch.in $(top_srcdir)/xlat/gen.sh
@@ -5822,6 +5980,8 @@
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/bootflags3.h: $(top_srcdir)/xlat/bootflags3.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bpf_attach_flags.h: $(top_srcdir)/xlat/bpf_attach_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/bpf_attach_type.h: $(top_srcdir)/xlat/bpf_attach_type.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/bpf_class.h: $(top_srcdir)/xlat/bpf_class.in $(top_srcdir)/xlat/gen.sh
@@ -6132,8 +6292,6 @@
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/open_mode_flags.h: $(top_srcdir)/xlat/open_mode_flags.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/openmodessol.h: $(top_srcdir)/xlat/openmodessol.in $(top_srcdir)/xlat/gen.sh
-	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/packet_mreq_type.h: $(top_srcdir)/xlat/packet_mreq_type.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/perf_attr_size.h: $(top_srcdir)/xlat/perf_attr_size.in $(top_srcdir)/xlat/gen.sh
@@ -6320,6 +6478,10 @@
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/statfs_flags.h: $(top_srcdir)/xlat/statfs_flags.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/statx_attrs.h: $(top_srcdir)/xlat/statx_attrs.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/statx_masks.h: $(top_srcdir)/xlat/statx_masks.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/swap_flags.h: $(top_srcdir)/xlat/swap_flags.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/sync_file_range_flags.h: $(top_srcdir)/xlat/sync_file_range_flags.in $(top_srcdir)/xlat/gen.sh
@@ -6408,8 +6570,20 @@
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/v4l2_memories.h: $(top_srcdir)/xlat/v4l2_memories.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/v4l2_sliced_flags.h: $(top_srcdir)/xlat/v4l2_sliced_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/v4l2_streaming_capabilities.h: $(top_srcdir)/xlat/v4l2_streaming_capabilities.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/v4l2_tuner_audmodes.h: $(top_srcdir)/xlat/v4l2_tuner_audmodes.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/v4l2_tuner_capabilities.h: $(top_srcdir)/xlat/v4l2_tuner_capabilities.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/v4l2_tuner_rxsubchanses.h: $(top_srcdir)/xlat/v4l2_tuner_rxsubchanses.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/v4l2_tuner_types.h: $(top_srcdir)/xlat/v4l2_tuner_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/v4l2_vbi_flags.h: $(top_srcdir)/xlat/v4l2_vbi_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/wait4_options.h: $(top_srcdir)/xlat/wait4_options.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/waitid_types.h: $(top_srcdir)/xlat/waitid_types.in $(top_srcdir)/xlat/gen.sh
@@ -6562,6 +6736,7 @@
 
 dist-hook:
 	$(AM_V_GEN)echo $(VERSION) > $(distdir)/.tarball-version
+	${AM_V_GEN}echo $(COPYRIGHT_YEAR) > $(distdir)/.year
 
 news-check: NEWS
 	$(AM_V_GEN)if head -1 $< |				\
diff --git a/Makefile.am b/Makefile.am
deleted file mode 100644
index 9b00481..0000000
--- a/Makefile.am
+++ /dev/null
@@ -1,999 +0,0 @@
-# Automake input for strace.
-#
-# Copyright (c) 2002-2009 Roland McGrath <roland@redhat.com>
-# Copyright (c) 2006-2016 Dmitry V. Levin <ldv@altlinux.org>
-# Copyright (c) 2008-2015 Mike Frysinger <vapier@gentoo.org>
-# Copyright (c) 2015 Elvira Khabirova <lineprinter0@gmail.com>
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-#    notice, this list of conditions and the following disclaimer in the
-#    documentation and/or other materials provided with the distribution.
-# 3. The name of the author may not be used to endorse or promote products
-#    derived from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-if HAVE_M32_RUNTIME
-TESTS_M32 = tests-m32
-endif
-if HAVE_MX32_RUNTIME
-TESTS_MX32 = tests-mx32
-endif
-SUBDIRS = tests $(TESTS_M32) $(TESTS_MX32)
-
-bin_PROGRAMS = strace
-man_MANS = strace.1
-bin_SCRIPTS = strace-graph strace-log-merge
-
-OS		= linux
-# ARCH is `i386', `m68k', `sparc', etc.
-ARCH		= @arch@
-
-ACLOCAL_AMFLAGS = -I m4
-AM_CFLAGS = $(WARN_CFLAGS)
-AM_CPPFLAGS = -I$(builddir)/$(OS)/$(ARCH) \
-	      -I$(srcdir)/$(OS)/$(ARCH) \
-	      -I$(builddir)/$(OS) \
-	      -I$(srcdir)/$(OS) \
-	      -I$(builddir) \
-	      -I$(srcdir)
-
-AM_CFLAGS_FOR_BUILD = $(WARN_CFLAGS_FOR_BUILD)
-AM_CPPFLAGS_FOR_BUILD = $(AM_CPPFLAGS)
-
-include xlat/Makemodule.am
-
-strace_CPPFLAGS = $(AM_CPPFLAGS)
-strace_CFLAGS = $(AM_CFLAGS)
-strace_LDFLAGS =
-strace_LDADD = libstrace.a
-noinst_LIBRARIES = libstrace.a
-
-libstrace_a_CPPFLAGS = $(strace_CPPFLAGS)
-libstrace_a_CFLAGS = $(strace_CFLAGS)
-libstrace_a_SOURCES =	\
-	fstatfs.c \
-	fstatfs64.c \
-	ipc.c \
-	socketcall.c \
-	statfs.c \
-	statfs64.c \
-	sync_file_range.c \
-	sync_file_range2.c \
-	upeek.c		\
-	upoke.c		\
-	# end of libstrace_a_SOURCES
-
-strace_SOURCES =	\
-	access.c	\
-	affinity.c	\
-	aio.c		\
-	alpha.c		\
-	bjm.c		\
-	block.c		\
-	bpf.c		\
-	btrfs.c		\
-	cacheflush.c	\
-	capability.c	\
-	caps0.h		\
-	caps1.h		\
-	chdir.c		\
-	chmod.c		\
-	clone.c		\
-	copy_file_range.c \
-	count.c		\
-	defs.h		\
-	desc.c		\
-	dirent.c	\
-	dirent64.c	\
-	dm.c		\
-	empty.h		\
-	epoll.c		\
-	evdev.c		\
-	eventfd.c	\
-	execve.c	\
-	fadvise.c	\
-	fallocate.c	\
-	fanotify.c	\
-	fchownat.c	\
-	fcntl.c		\
-	fetch_seccomp_fprog.c \
-	fetch_struct_flock.c \
-	fetch_struct_mmsghdr.c \
-	fetch_struct_msghdr.c \
-	fetch_struct_stat.c \
-	fetch_struct_stat64.c \
-	fetch_struct_statfs.c \
-	file_handle.c	\
-	file_ioctl.c	\
-	fs_x_ioctl.c	\
-	flock.c		\
-	flock.h		\
-	futex.c		\
-	gcc_compat.h	\
-	get_robust_list.c \
-	getcpu.c	\
-	getcwd.c	\
-	getrandom.c	\
-	hdio.c		\
-	hostname.c	\
-	inotify.c	\
-	io.c		\
-	ioctl.c		\
-	ioperm.c	\
-	iopl.c		\
-	ioprio.c	\
-	ipc_defs.h	\
-	ipc_msg.c	\
-	ipc_msgctl.c	\
-	ipc_sem.c	\
-	ipc_shm.c	\
-	ipc_shmctl.c	\
-	kcmp.c		\
-	kernel_types.h	\
-	kexec.c		\
-	keyctl.c	\
-	ldt.c		\
-	link.c		\
-	linux/asm_stat.h \
-	linux/x32/asm_stat.h \
-	linux/x86_64/asm_stat.h \
-	lookup_dcookie.c \
-	loop.c		\
-	lseek.c		\
-	mem.c		\
-	membarrier.c	\
-	memfd_create.c	\
-	mknod.c		\
-	mmsghdr.c	\
-	mount.c		\
-	mpers_type.h	\
-	mq.c		\
-	msghdr.c	\
-	msghdr.h	\
-	mtd.c		\
-	native_defs.h	\
-	net.c		\
-	netlink.c       \
-	nsig.h		\
-	numa.c		\
-	oldstat.c	\
-	open.c		\
-	or1k_atomic.c	\
-	pathtrace.c	\
-	perf.c		\
-	perf_event_struct.h \
-	personality.c	\
-	pkeys.c		\
-	poll.c		\
-	prctl.c		\
-	print_dev_t.c	\
-	print_mq_attr.c	\
-	print_msgbuf.c	\
-	print_sg_req_info.c \
-	print_sigevent.c \
-	print_statfs.c	\
-	print_struct_stat.c \
-	print_time.c	\
-	print_timespec.c \
-	print_timeval.c	\
-	print_timex.c	\
-	printmode.c	\
-	printrusage.c	\
-	printsiginfo.c	\
-	printsiginfo.h	\
-	process.c	\
-	process_vm.c	\
-	ptp.c		\
-	ptrace.h	\
-	qualify.c	\
-	quota.c		\
-	readahead.c	\
-	readlink.c	\
-	reboot.c	\
-	regs.h		\
-	renameat.c	\
-	resource.c	\
-	rtc.c		\
-	sched.c		\
-	scsi.c		\
-	seccomp.c	\
-	seccomp_fprog.h \
-	sendfile.c	\
-	sg_io_v3.c	\
-	sg_io_v4.c	\
-	sigaltstack.c	\
-	sigevent.h	\
-	signal.c	\
-	signalfd.c	\
-	sigreturn.c	\
-	sock.c		\
-	sockaddr.c	\
-	socketutils.c	\
-	sram_alloc.c	\
-	stat.c		\
-	stat.h		\
-	stat64.c	\
-	statfs.c	\
-	statfs.h	\
-	strace.c	\
-	swapon.c	\
-	syscall.c	\
-	sysctl.c	\
-	sysent.h	\
-	sysinfo.c	\
-	syslog.c	\
-	sysmips.c	\
-	term.c		\
-	time.c		\
-	times.c		\
-	truncate.c	\
-	ubi.c		\
-	uid.c		\
-	uid16.c		\
-	umask.c		\
-	umount.c	\
-	uname.c		\
-	userfaultfd.c	\
-	ustat.c		\
-	util.c		\
-	utime.c		\
-	utimes.c	\
-	v4l2.c		\
-	wait.c		\
-	xattr.c		\
-	xlat.h		\
-	xmalloc.c	\
-	# end of strace_SOURCES
-
-if USE_LIBUNWIND
-strace_SOURCES += unwind.c
-strace_CPPFLAGS += $(libunwind_CPPFLAGS)
-strace_LDFLAGS += $(libunwind_LDFLAGS)
-strace_LDADD += $(libunwind_LIBS)
-endif
-
-@CODE_COVERAGE_RULES@
-CODE_COVERAGE_BRANCH_COVERAGE = 1
-CODE_COVERAGE_GENHTML_OPTIONS = $(CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT) \
-	--prefix $(shell cd $(abs_top_srcdir)/.. && pwd || echo .)
-CODE_COVERAGE_IGNORE_PATTERN = '/usr/include/*'
-strace_CPPFLAGS += $(CODE_COVERAGE_CPPFLAGS)
-strace_CFLAGS += $(CODE_COVERAGE_CFLAGS)
-strace_LDADD += $(CODE_COVERAGE_LDFLAGS)
-
-# Enable this to get link map generated
-#strace_LDFLAGS += -Wl,-Map=strace.mapfile
-
-EXTRA_DIST =				\
-	$(man_MANS)			\
-	.version			\
-	COPYING				\
-	CREDITS				\
-	ChangeLog			\
-	ChangeLog-CVS			\
-	README-linux-ptrace		\
-	debian/changelog		\
-	debian/compat			\
-	debian/control			\
-	debian/copyright		\
-	debian/rules			\
-	debian/source/format		\
-	debian/strace-udeb.install	\
-	debian/strace.docs		\
-	debian/strace.examples		\
-	debian/strace.install		\
-	debian/strace.manpages		\
-	debian/strace64.install		\
-	debian/strace64.manpages	\
-	debian/watch			\
-	errnoent.sh			\
-	generate_sen.sh			\
-	ioctl_iocdef.c			\
-	ioctlsort.c			\
-	linux/32/ioctls_inc.h		\
-	linux/32/ioctls_inc_align16.h	\
-	linux/32/ioctls_inc_align32.h	\
-	linux/32/ioctls_inc_align64.h	\
-	linux/32/syscallent.h		\
-	linux/64/ioctls_inc.h		\
-	linux/64/syscallent.h		\
-	linux/aarch64/arch_regs.c	\
-	linux/aarch64/arch_regs.h	\
-	linux/aarch64/arch_sigreturn.c	\
-	linux/aarch64/errnoent1.h	\
-	linux/aarch64/get_error.c	\
-	linux/aarch64/get_scno.c	\
-	linux/aarch64/get_syscall_args.c\
-	linux/aarch64/ioctls_arch0.h	\
-	linux/aarch64/ioctls_arch1.h	\
-	linux/aarch64/ioctls_inc0.h	\
-	linux/aarch64/ioctls_inc1.h	\
-	linux/aarch64/set_error.c	\
-	linux/aarch64/set_scno.c	\
-	linux/aarch64/signalent1.h	\
-	linux/aarch64/syscallent.h	\
-	linux/aarch64/syscallent1.h	\
-	linux/alpha/arch_getrval2.c	\
-	linux/alpha/arch_regs.c		\
-	linux/alpha/arch_regs.h		\
-	linux/alpha/arch_sigreturn.c	\
-	linux/alpha/errnoent.h		\
-	linux/alpha/get_error.c		\
-	linux/alpha/get_scno.c		\
-	linux/alpha/get_syscall_args.c	\
-	linux/alpha/get_syscall_result.c\
-	linux/alpha/ioctls_arch0.h	\
-	linux/alpha/ioctls_inc0.h	\
-	linux/alpha/set_error.c		\
-	linux/alpha/set_scno.c		\
-	linux/alpha/signalent.h		\
-	linux/alpha/syscallent.h	\
-	linux/alpha/userent.h		\
-	linux/arc/arch_regs.c		\
-	linux/arc/get_error.c		\
-	linux/arc/get_scno.c		\
-	linux/arc/get_syscall_args.c	\
-	linux/arc/ioctls_arch0.h	\
-	linux/arc/ioctls_inc0.h		\
-	linux/arc/set_error.c		\
-	linux/arc/set_scno.c		\
-	linux/arc/syscallent.h		\
-	linux/arch_regs.h		\
-	linux/arch_sigreturn.c		\
-	linux/arm/arch_regs.c		\
-	linux/arm/arch_regs.h		\
-	linux/arm/arch_sigreturn.c	\
-	linux/arm/get_error.c		\
-	linux/arm/get_scno.c		\
-	linux/arm/get_syscall_args.c	\
-	linux/arm/ioctls_arch0.h	\
-	linux/arm/ioctls_inc0.h		\
-	linux/arm/set_error.c		\
-	linux/arm/set_scno.c		\
-	linux/arm/syscallent.h		\
-	linux/arm/userent.h		\
-	linux/avr32/arch_regs.c		\
-	linux/avr32/get_error.c		\
-	linux/avr32/get_scno.c		\
-	linux/avr32/get_syscall_args.c	\
-	linux/avr32/ioctls_arch0.h	\
-	linux/avr32/ioctls_inc0.h	\
-	linux/avr32/set_error.c		\
-	linux/avr32/set_scno.c		\
-	linux/avr32/syscallent.h	\
-	linux/avr32/userent.h		\
-	linux/bfin/arch_regs.c		\
-	linux/bfin/get_error.c		\
-	linux/bfin/get_scno.c		\
-	linux/bfin/get_syscall_args.c	\
-	linux/bfin/get_syscall_result.c	\
-	linux/bfin/ioctls_arch0.h	\
-	linux/bfin/ioctls_inc0.h	\
-	linux/bfin/set_error.c		\
-	linux/bfin/set_scno.c		\
-	linux/bfin/syscallent.h		\
-	linux/bfin/userent.h		\
-	linux/crisv10/arch_regs.c	\
-	linux/crisv10/arch_sigreturn.c	\
-	linux/crisv10/get_error.c	\
-	linux/crisv10/get_scno.c	\
-	linux/crisv10/get_syscall_args.c	\
-	linux/crisv10/get_syscall_result.c	\
-	linux/crisv10/set_error.c	\
-	linux/crisv10/set_scno.c	\
-	linux/crisv10/syscallent.h	\
-	linux/crisv10/userent.h		\
-	linux/crisv32/arch_regs.c	\
-	linux/crisv32/arch_sigreturn.c	\
-	linux/crisv32/get_error.c	\
-	linux/crisv32/get_scno.c	\
-	linux/crisv32/get_syscall_args.c	\
-	linux/crisv32/get_syscall_result.c	\
-	linux/crisv32/set_error.c	\
-	linux/crisv32/set_scno.c	\
-	linux/crisv32/syscallent.h	\
-	linux/crisv32/userent.h		\
-	linux/dummy.h			\
-	linux/errnoent.h		\
-	linux/getregs_old.h		\
-	linux/hppa/arch_regs.c		\
-	linux/hppa/arch_regs.h		\
-	linux/hppa/errnoent.h		\
-	linux/hppa/get_error.c		\
-	linux/hppa/get_scno.c		\
-	linux/hppa/get_syscall_args.c	\
-	linux/hppa/get_syscall_result.c	\
-	linux/hppa/ioctls_arch0.h	\
-	linux/hppa/ioctls_inc0.h	\
-	linux/hppa/set_error.c		\
-	linux/hppa/set_scno.c		\
-	linux/hppa/signalent.h		\
-	linux/hppa/syscallent.h		\
-	linux/i386/arch_regs.c		\
-	linux/i386/arch_regs.h		\
-	linux/i386/arch_sigreturn.c	\
-	linux/i386/get_error.c		\
-	linux/i386/get_scno.c		\
-	linux/i386/get_syscall_args.c	\
-	linux/i386/ioctls_arch0.h	\
-	linux/i386/ioctls_inc0.h	\
-	linux/i386/set_error.c		\
-	linux/i386/set_scno.c		\
-	linux/i386/syscallent.h		\
-	linux/i386/userent.h		\
-	linux/i386/userent0.h		\
-	linux/ia64/arch_getrval2.c	\
-	linux/ia64/arch_regs.c		\
-	linux/ia64/arch_regs.h		\
-	linux/ia64/arch_sigreturn.c	\
-	linux/ia64/get_error.c		\
-	linux/ia64/get_scno.c		\
-	linux/ia64/get_syscall_args.c	\
-	linux/ia64/ioctls_arch0.h	\
-	linux/ia64/ioctls_inc0.h	\
-	linux/ia64/set_error.c		\
-	linux/ia64/set_scno.c		\
-	linux/ia64/syscallent.h		\
-	linux/ia64/userent.h		\
-	linux/inet_diag.h		\
-	linux/m68k/arch_regs.c		\
-	linux/m68k/arch_regs.h		\
-	linux/m68k/arch_sigreturn.c	\
-	linux/m68k/get_error.c		\
-	linux/m68k/get_scno.c		\
-	linux/m68k/get_syscall_args.c	\
-	linux/m68k/ioctls_arch0.h	\
-	linux/m68k/ioctls_inc0.h	\
-	linux/m68k/set_error.c		\
-	linux/m68k/set_scno.c		\
-	linux/m68k/syscallent.h		\
-	linux/m68k/userent.h		\
-	linux/metag/arch_regs.c		\
-	linux/metag/get_error.c		\
-	linux/metag/get_scno.c		\
-	linux/metag/get_syscall_args.c	\
-	linux/metag/ioctls_arch0.h	\
-	linux/metag/ioctls_inc0.h	\
-	linux/metag/set_error.c		\
-	linux/metag/set_scno.c		\
-	linux/metag/syscallent.h	\
-	linux/microblaze/arch_regs.c	\
-	linux/microblaze/arch_sigreturn.c	\
-	linux/microblaze/get_error.c	\
-	linux/microblaze/get_scno.c	\
-	linux/microblaze/get_syscall_args.c	\
-	linux/microblaze/get_syscall_result.c	\
-	linux/microblaze/ioctls_arch0.h	\
-	linux/microblaze/ioctls_inc0.h	\
-	linux/microblaze/set_error.c	\
-	linux/microblaze/set_scno.c	\
-	linux/microblaze/syscallent.h	\
-	linux/microblaze/userent.h	\
-	linux/mips/arch_getrval2.c	\
-	linux/mips/arch_regs.c		\
-	linux/mips/arch_regs.h		\
-	linux/mips/arch_sigreturn.c	\
-	linux/mips/errnoent.h		\
-	linux/mips/genstub.sh		\
-	linux/mips/get_error.c		\
-	linux/mips/get_scno.c		\
-	linux/mips/get_syscall_args.c	\
-	linux/mips/ioctls_arch0.h	\
-	linux/mips/ioctls_inc0.h	\
-	linux/mips/set_error.c		\
-	linux/mips/set_scno.c		\
-	linux/mips/signalent.h		\
-	linux/mips/syscallent-compat.h	\
-	linux/mips/syscallent-n32.h	\
-	linux/mips/syscallent-n64.h	\
-	linux/mips/syscallent-o32.h	\
-	linux/mips/syscallent.h		\
-	linux/mips/userent.h		\
-	linux/mtd-abi.h			\
-	linux/netlink_diag.h		\
-	linux/nios2/arch_regs.c		\
-	linux/nios2/get_error.c		\
-	linux/nios2/get_scno.c		\
-	linux/nios2/get_syscall_args.c	\
-	linux/nios2/ioctls_arch0.h	\
-	linux/nios2/ioctls_inc0.h	\
-	linux/nios2/set_error.c		\
-	linux/nios2/set_scno.c		\
-	linux/nios2/syscallent.h	\
-	linux/or1k/arch_regs.c		\
-	linux/or1k/get_error.c		\
-	linux/or1k/get_scno.c		\
-	linux/or1k/get_syscall_args.c	\
-	linux/or1k/ioctls_arch0.h	\
-	linux/or1k/ioctls_inc0.h	\
-	linux/or1k/set_error.c		\
-	linux/or1k/set_scno.c		\
-	linux/or1k/syscallent.h		\
-	linux/or1k/userent.h		\
-	linux/personality.h		\
-	linux/powerpc/arch_regs.c	\
-	linux/powerpc/arch_regs.h	\
-	linux/powerpc/arch_sigreturn.c	\
-	linux/powerpc/errnoent.h	\
-	linux/powerpc/get_error.c	\
-	linux/powerpc/get_scno.c	\
-	linux/powerpc/get_syscall_args.c	\
-	linux/powerpc/getregs_old.c	\
-	linux/powerpc/getregs_old.h	\
-	linux/powerpc/ioctls_arch0.h	\
-	linux/powerpc/ioctls_inc0.h	\
-	linux/powerpc/set_error.c	\
-	linux/powerpc/set_scno.c	\
-	linux/powerpc/syscallent.h	\
-	linux/powerpc/userent.h		\
-	linux/powerpc64/arch_regs.c	\
-	linux/powerpc64/arch_regs.h	\
-	linux/powerpc64/arch_sigreturn.c	\
-	linux/powerpc64/errnoent.h	\
-	linux/powerpc64/errnoent1.h	\
-	linux/powerpc64/get_error.c	\
-	linux/powerpc64/get_scno.c	\
-	linux/powerpc64/get_syscall_args.c	\
-	linux/powerpc64/getregs_old.c	\
-	linux/powerpc64/getregs_old.h	\
-	linux/powerpc64/ioctls_arch0.h	\
-	linux/powerpc64/ioctls_arch1.h	\
-	linux/powerpc64/ioctls_inc0.h	\
-	linux/powerpc64/ioctls_inc1.h	\
-	linux/powerpc64/set_error.c	\
-	linux/powerpc64/set_scno.c	\
-	linux/powerpc64/signalent1.h	\
-	linux/powerpc64/syscallent.h	\
-	linux/powerpc64/syscallent1.h	\
-	linux/powerpc64/userent.h	\
-	linux/ptp_clock.h		\
-	linux/riscv/arch_regs.c		\
-	linux/riscv/errnoent1.h		\
-	linux/riscv/get_error.c		\
-	linux/riscv/get_scno.c		\
-	linux/riscv/get_syscall_args.c	\
-	linux/riscv/ioctls_arch0.h	\
-	linux/riscv/ioctls_arch1.h	\
-	linux/riscv/ioctls_inc0.h	\
-	linux/riscv/ioctls_inc1.h	\
-	linux/riscv/set_error.c		\
-	linux/riscv/set_scno.c		\
-	linux/riscv/signalent1.h	\
-	linux/riscv/syscallent.h	\
-	linux/riscv/syscallent1.h	\
-	linux/s390/arch_regs.c		\
-	linux/s390/arch_regs.h		\
-	linux/s390/arch_sigreturn.c	\
-	linux/s390/get_error.c		\
-	linux/s390/get_scno.c		\
-	linux/s390/get_syscall_args.c	\
-	linux/s390/ioctls_arch0.h	\
-	linux/s390/ioctls_inc0.h	\
-	linux/s390/set_error.c		\
-	linux/s390/set_scno.c		\
-	linux/s390/syscallent.h		\
-	linux/s390/userent.h		\
-	linux/s390/userent0.h		\
-	linux/s390/userent1.h		\
-	linux/s390x/arch_regs.c		\
-	linux/s390x/arch_regs.h		\
-	linux/s390x/arch_sigreturn.c	\
-	linux/s390x/get_error.c		\
-	linux/s390x/get_scno.c		\
-	linux/s390x/get_syscall_args.c	\
-	linux/s390x/ioctls_arch0.h	\
-	linux/s390x/ioctls_inc0.h	\
-	linux/s390x/set_error.c		\
-	linux/s390x/set_scno.c		\
-	linux/s390x/syscallent.h	\
-	linux/s390x/userent.h		\
-	linux/sh/arch_getrval2.c	\
-	linux/sh/arch_regs.c		\
-	linux/sh/get_error.c		\
-	linux/sh/get_scno.c		\
-	linux/sh/get_syscall_args.c	\
-	linux/sh/get_syscall_result.c	\
-	linux/sh/ioctls_arch0.h		\
-	linux/sh/ioctls_inc0.h		\
-	linux/sh/set_error.c		\
-	linux/sh/set_scno.c		\
-	linux/sh/syscallent.h		\
-	linux/sh/userent.h		\
-	linux/sh/userent0.h		\
-	linux/sh64/arch_regs.c		\
-	linux/sh64/arch_regs.h		\
-	linux/sh64/get_error.c		\
-	linux/sh64/get_scno.c		\
-	linux/sh64/get_syscall_args.c	\
-	linux/sh64/get_syscall_result.c	\
-	linux/sh64/ioctls_arch0.h	\
-	linux/sh64/ioctls_inc0.h	\
-	linux/sh64/set_error.c		\
-	linux/sh64/set_scno.c		\
-	linux/sh64/syscallent.h		\
-	linux/sh64/userent.h		\
-	linux/signalent.h		\
-	linux/sock_diag.h		\
-	linux/sparc/arch_getrval2.c	\
-	linux/sparc/arch_regs.c		\
-	linux/sparc/arch_regs.h		\
-	linux/sparc/arch_sigreturn.c	\
-	linux/sparc/errnoent.h		\
-	linux/sparc/gen.pl		\
-	linux/sparc/get_error.c		\
-	linux/sparc/get_scno.c		\
-	linux/sparc/get_syscall_args.c	\
-	linux/sparc/ioctls_arch0.h	\
-	linux/sparc/ioctls_inc0.h	\
-	linux/sparc/set_error.c		\
-	linux/sparc/set_scno.c		\
-	linux/sparc/signalent.h		\
-	linux/sparc/syscallent.h	\
-	linux/sparc/userent.h		\
-	linux/sparc64/arch_getrval2.c	\
-	linux/sparc64/arch_regs.c	\
-	linux/sparc64/arch_regs.h	\
-	linux/sparc64/arch_sigreturn.c	\
-	linux/sparc64/errnoent.h	\
-	linux/sparc64/errnoent1.h	\
-	linux/sparc64/get_error.c	\
-	linux/sparc64/get_scno.c	\
-	linux/sparc64/get_syscall_args.c\
-	linux/sparc64/ioctls_arch0.h	\
-	linux/sparc64/ioctls_arch1.h	\
-	linux/sparc64/ioctls_inc0.h	\
-	linux/sparc64/ioctls_inc1.h	\
-	linux/sparc64/set_error.c	\
-	linux/sparc64/set_scno.c	\
-	linux/sparc64/signalent.h	\
-	linux/sparc64/signalent1.h	\
-	linux/sparc64/syscallent.h	\
-	linux/sparc64/syscallent1.h	\
-	linux/sparc64/userent.h		\
-	linux/subcall.h			\
-	linux/syscall.h			\
-	linux/tile/arch_regs.c		\
-	linux/tile/arch_regs.h		\
-	linux/tile/arch_sigreturn.c	\
-	linux/tile/errnoent1.h		\
-	linux/tile/get_error.c		\
-	linux/tile/get_scno.c		\
-	linux/tile/get_syscall_args.c	\
-	linux/tile/ioctls_arch0.h	\
-	linux/tile/ioctls_arch1.h	\
-	linux/tile/ioctls_inc0.h	\
-	linux/tile/ioctls_inc1.h	\
-	linux/tile/set_error.c		\
-	linux/tile/set_scno.c		\
-	linux/tile/signalent1.h		\
-	linux/tile/syscallent.h		\
-	linux/tile/syscallent1.h	\
-	linux/tile/userent.h		\
-	linux/ubi-user.h		\
-	linux/unix_diag.h		\
-	linux/userent.h			\
-	linux/userent0.h		\
-	linux/x32/arch_regs.c		\
-	linux/x32/arch_regs.h		\
-	linux/x32/arch_sigreturn.c	\
-	linux/x32/errnoent1.h		\
-	linux/x32/get_error.c		\
-	linux/x32/get_scno.c		\
-	linux/x32/get_syscall_args.c	\
-	linux/x32/ioctls_arch0.h	\
-	linux/x32/ioctls_arch1.h	\
-	linux/x32/ioctls_inc0.h		\
-	linux/x32/ioctls_inc1.h		\
-	linux/x32/set_error.c		\
-	linux/x32/set_scno.c		\
-	linux/x32/signalent1.h		\
-	linux/x32/syscallent.h		\
-	linux/x32/syscallent1.h		\
-	linux/x32/userent.h		\
-	linux/x86_64/arch_regs.c	\
-	linux/x86_64/arch_regs.h	\
-	linux/x86_64/arch_sigreturn.c	\
-	linux/x86_64/errnoent1.h	\
-	linux/x86_64/errnoent2.h	\
-	linux/x86_64/gentab.pl		\
-	linux/x86_64/get_error.c	\
-	linux/x86_64/get_scno.c		\
-	linux/x86_64/get_syscall_args.c	\
-	linux/x86_64/getregs_old.c	\
-	linux/x86_64/getregs_old.h	\
-	linux/x86_64/ioctls_arch0.h	\
-	linux/x86_64/ioctls_arch1.h	\
-	linux/x86_64/ioctls_arch2.h	\
-	linux/x86_64/ioctls_inc0.h	\
-	linux/x86_64/ioctls_inc1.h	\
-	linux/x86_64/ioctls_inc2.h	\
-	linux/x86_64/set_error.c	\
-	linux/x86_64/set_scno.c		\
-	linux/x86_64/signalent1.h	\
-	linux/x86_64/signalent2.h	\
-	linux/x86_64/syscallent.h	\
-	linux/x86_64/syscallent1.h	\
-	linux/x86_64/syscallent2.h	\
-	linux/x86_64/userent.h		\
-	linux/xtensa/arch_regs.c	\
-	linux/xtensa/get_error.c	\
-	linux/xtensa/get_scno.c		\
-	linux/xtensa/get_syscall_args.c	\
-	linux/xtensa/get_syscall_result.c	\
-	linux/xtensa/ioctls_arch0.h	\
-	linux/xtensa/ioctls_inc0.h	\
-	linux/xtensa/set_error.c	\
-	linux/xtensa/set_scno.c		\
-	linux/xtensa/syscallent.h	\
-	linux/xtensa/userent.h		\
-	maint/ioctls_gen.sh		\
-	maint/ioctls_hex.sh		\
-	maint/ioctls_sym.sh		\
-	maint/print_ioctlent.c		\
-	mpers.awk			\
-	mpers.sh			\
-	mpers_test.sh			\
-	mpers_xlat.h			\
-	scno.head			\
-	signalent.sh			\
-	strace-graph			\
-	strace-log-merge		\
-	strace.spec			\
-	syscallent.sh			\
-	$(XLAT_INPUT_FILES)		\
-	$(XLAT_HEADER_FILES)		\
-	xlat/gen.sh			\
-	xlate.el
-
-.PHONY: check-valgrind-local
-check-valgrind-local:
-
-.PHONY: srpm
-srpm: dist-xz
-	rpmbuild --define '%_srcrpmdir .' -ts $(distdir).tar.xz
-
-$(srcdir)/.version:
-	$(AM_V_GEN)echo $(VERSION) > $@-t && mv $@-t $@
-
-strace_SOURCES_c = \
-	$(filter %.c,$(strace_SOURCES)) $(filter %.c,$(libstrace_a_SOURCES))
-
-sys_func.h: $(patsubst %,$(srcdir)/%,$(strace_SOURCES_c))
-	for f in $^; do \
-		sed -n 's/^SYS_FUNC(.*/extern &;/p' $$f; \
-	done | sort -u > $@
-
-syscallent_names = subcall.h syscallent.h syscallent1.h \
-		   syscallent-n32.h syscallent-n64.h syscallent-o32.h
-syscallent_patterns = $(patsubst %,\%/%,$(syscallent_names))
-syscallent_files = $(filter $(syscallent_patterns),$(EXTRA_DIST))
-
-sen.h: $(patsubst %,$(srcdir)/%,$(syscallent_files))
-	for f in $^; do cat -- $$f; done | \
-		$(srcdir)/generate_sen.sh > $@
-
-dist-hook:
-	$(AM_V_GEN)echo $(VERSION) > $(distdir)/.tarball-version
-
-today = $(shell date +%Y-%m-%d)
-version_regexp = $(subst .,\.,$(VERSION))
-news_check_regexp = 'Noteworthy changes in release $(version_regexp) ($(today))'
-
-news-check: NEWS
-	$(AM_V_GEN)if head -1 $< |				\
-	  grep -x $(news_check_regexp) >/dev/null; then		\
-		:;						\
-	else							\
-		echo >&2 '$<: check failed';			\
-		exit 1;						\
-	fi
-
-ioctlsort_CC = $(CC_FOR_BUILD)
-ioctlsort_DEFS = $(DEFS)
-ioctlsort_INCLUDES = $(DEFAULT_INCLUDES) $(INCLUDES)
-ioctlsort_CPPFLAGS = $(AM_CPPFLAGS_FOR_BUILD) $(CPPFLAGS_FOR_BUILD)
-ioctlsort_CFLAGS = $(AM_CFLAGS_FOR_BUILD) $(CFLAGS_FOR_BUILD)
-ioctlsort_LDFLAGS = $(AM_LDFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD)
-
-ioctls_inc_h = $(wildcard $(srcdir)/$(OS)/$(ARCH)/ioctls_inc*.h)
-ioctlent_h = $(patsubst $(srcdir)/$(OS)/$(ARCH)/ioctls_inc%,ioctlent%,$(ioctls_inc_h))
-ioctl_redefs_h = $(filter-out ioctl_redefs0.h,$(subst ioctlent,ioctl_redefs,$(ioctlent_h)))
-
-ioctl_redefs%.h: ioctlent%.h ioctlent0.h
-	sort $< > $<-t
-	sort ioctlent0.h | comm -23 $<-t - | \
-		sed -r -n 's/^\{ "([^"]+)", (0x[[:xdigit:]]+) \},$$/#ifdef \1\n# undef \1\n# define \1 \2\n#endif/p' \
-		> $@-t
-	rm -f $<-t
-	mv $@-t $@
-
-ioctlent%.h: ioctlsort%
-	./$< > $@
-
-# Need to pick up <linux/ioctl.h> definitions *for host* while compiling
-# ioctlsort *for build*, hence this magic.
-ioctl_iocdef.i: $(srcdir)/ioctl_iocdef.c
-	$(CPP) -P $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-		$(strace_CPPFLAGS) $(CPPFLAGS) $< -o $@
-
-ioctl_iocdef.h: ioctl_iocdef.i
-	sed -n 's/^DEFINE HOST/#define /p' $< > $@
-
-ioctlsort%$(BUILD_EXEEXT): ioctlsort%.o
-	$(ioctlsort_CC) $(ioctlsort_CFLAGS) $(ioctlsort_LDFLAGS) $< -o $@
-
-ioctlsort%.o: ioctls_all%.h ioctl_iocdef.h $(srcdir)/ioctlsort.c
-	$(ioctlsort_CC) $(ioctlsort_DEFS) $(ioctlsort_INCLUDES) $(ioctlsort_CPPFLAGS) $(ioctlsort_CFLAGS) -DIOCTLSORT_INC=\"$<\" -c -o $@ $(srcdir)/ioctlsort.c
-
-ioctls_all%.h: $(srcdir)/$(OS)/$(ARCH)/ioctls_inc%.h $(srcdir)/$(OS)/$(ARCH)/ioctls_arch%.h
-	cat $^ > $@
-
-BUILT_SOURCES = $(ioctl_redefs_h) $(ioctlent_h) \
-		native_printer_decls.h native_printer_defs.h printers.h sen.h sys_func.h .version
-CLEANFILES    = $(ioctl_redefs_h) $(ioctlent_h) $(mpers_preproc_files) \
-		ioctl_iocdef.h ioctl_iocdef.i \
-		native_printer_decls.h native_printer_defs.h printers.h sen.h sys_func.h
-DISTCLEANFILES = gnu/stubs-32.h gnu/stubs-x32.h
-
-include scno.am
-
-$(strace_OBJECTS): scno.h
-
-# defines mpers_source_files
-include mpers.am
-srcdir_mpers_source_files = $(patsubst %,$(srcdir)/%,$(mpers_source_files))
-mpers_preproc_files = $(mpers_source_files:.c=.c.mpers.i)
-
-mpers_NAME =
-mpers_PREFIX = $(mpers_NAME)_
-mpers_DEFS = $(DEFS)
-mpers_INCLUDES = $(DEFAULT_INCLUDES) $(INCLUDES)
-mpers_CPPFLAGS = $(strace_CPPFLAGS) $(CPPFLAGS)
-mpers_sh_opts = $(mpers_DEFS) $(mpers_INCLUDES) $(mpers_CPPFLAGS)
-libmpers_CPPFLAGS = $(strace_CPPFLAGS) -DIN_MPERS
-libmpers_CFLAGS = $(strace_CFLAGS)
-
-# mpers targets
-
-mpers-m%.stamp: $(srcdir_mpers_source_files) | printers.h
-	for f in $^; do \
-		CC="$(CC)" CFLAGS="$(mpers_sh_opts) -DMPERS_IS_$(mpers_NAME)" \
-		CPP="$(CPP)" CPPFLAGS="$(mpers_sh_opts) -DIN_MPERS -DMPERS_IS_$(mpers_NAME)" \
-		$(srcdir)/mpers.sh -$(mpers_NAME) $$f || exit; \
-	done
-	> $@
-
-m%_type_defs.h: $(srcdir_mpers_source_files)
-	for f in $^; do \
-		sed -r -n 's/^#[[:space:]]*include DEF_MPERS_TYPE\(([^)]+)\)/#ifdef MPERS_$(mpers_PREFIX)\1\n# define \1 MPERS_$(mpers_PREFIX)\1\n#endif/p' $$f || exit; \
-	done > $@-t
-	echo '#undef MPERS_PRINTER_NAME' >> $@-t
-	echo '#define MPERS_PRINTER_NAME(printer_name) printer_name' >> $@-t
-	echo '#include "$(mpers_PREFIX)printer_decls.h"' >> $@-t
-	echo '#include MPERS_$(mpers_PREFIX)IOCTL_MACROS' >> $@-t
-	mv $@-t $@
-
-m%_funcs.h: $(srcdir_mpers_source_files)
-	for f in $^; do \
-		sed -r -n 's/^SYS_FUNC\(([^)]+)\)/#undef sys_\1\n#define sys_\1 $(mpers_PREFIX)sys_\1/p' $$f || exit; \
-	done > $@-t && \
-	echo '#include "sys_func.h"' >> $@-t
-	mv $@-t $@
-
-# printers
-
-%.c.mpers.i: $(srcdir)/%.c
-	$(CPP) -P $(mpers_sh_opts) -DIN_MPERS_BOOTSTRAP $< -o $@
-
-mpers_printer_decl_pattern = ^MPERS_PRINTER_DECL\(([^,)]+),[[:space:]]*([^,)]+),[[:space:]]*([^)]+)\)$$
-
-printers.h: $(mpers_preproc_files)
-	echo '/* Generated by Makefile from $^; do not edit. */' > $@-t
-	echo 'typedef struct {' >> $@-t
-	for f in $^; do \
-		sed -r -n 's/$(mpers_printer_decl_pattern)/ \1 (*\2)(\3);\n#define \2 MPERS_PRINTER_NAME(\2)\n/p' $$f \
-		|| exit; \
-	done >> $@-t
-	echo '} struct_printers;' >> $@-t
-	echo 'extern const struct_printers *printers;' >> $@-t
-	echo '#define MPERS_PRINTER_NAME(printer_name) printers->printer_name' >> $@-t
-	mv $@-t $@
-
-%_printer_decls.h: $(mpers_preproc_files)
-	echo '/* Generated by Makefile from $^; do not edit. */' > $@-t
-	for f in $^; do \
-		sed -r -n 's/$(mpers_printer_decl_pattern)/extern \1 $(mpers_PREFIX)\2(\3);/p' $$f \
-		|| exit; \
-	done >> $@-t
-	mv $@-t $@
-
-%_printer_defs.h: $(mpers_preproc_files)
-	echo '/* Generated by Makefile from $^; do not edit. */' > $@-t
-	for f in $^; do \
-		sed -r -n 's/$(mpers_printer_decl_pattern)/.\2 = $(mpers_PREFIX)\2,/p' $$f \
-		|| exit; \
-	done >> $@-t
-	mv $@-t $@
-
-native_printer_decls.h native_printer_defs.h: mpers_PREFIX =
-
-if HAVE_M32_MPERS
-
-strace_LDADD += libmpers-m32.a
-noinst_LIBRARIES += libmpers-m32.a
-libmpers_m32_a_SOURCES = $(mpers_source_files)
-libmpers_m32_a_CPPFLAGS = $(libmpers_CPPFLAGS) -DMPERS_IS_m32 -I$(builddir)/mpers-m32
-libmpers_m32_a_CFLAGS = $(libmpers_CFLAGS)
-mpers_m32_targets = mpers-m32.stamp m32_type_defs.h m32_funcs.h m32_printer_decls.h m32_printer_defs.h
-
-BUILT_SOURCES += $(mpers_m32_targets)
-CLEANFILES    += $(mpers_m32_targets)
-
-$(mpers_m32_targets): mpers_NAME = m32
-
-endif # HAVE_M32_MPERS
-
-if HAVE_MX32_MPERS
-
-strace_LDADD += libmpers-mx32.a
-noinst_LIBRARIES += libmpers-mx32.a
-libmpers_mx32_a_SOURCES = $(mpers_source_files)
-libmpers_mx32_a_CPPFLAGS = $(libmpers_CPPFLAGS) -DMPERS_IS_mx32 -I$(builddir)/mpers-mx32
-libmpers_mx32_a_CFLAGS = $(libmpers_CFLAGS)
-mpers_mx32_targets = mpers-mx32.stamp mx32_type_defs.h mx32_funcs.h mx32_printer_decls.h mx32_printer_defs.h
-
-BUILT_SOURCES += $(mpers_mx32_targets)
-CLEANFILES    += $(mpers_mx32_targets)
-
-$(mpers_mx32_targets): mpers_NAME = mx32
-
-endif # HAVE_MX32_MPERS
-
-clean-local:
-	-rm -rf mpers-m32 mpers-mx32
-
-if MAINTAINER_MODE
-
-gen_changelog_start_date = 2009-07-08 20:00
-$(srcdir)/ChangeLog: $(srcdir)/gitlog-to-changelog $(srcdir)/Makefile.in \
-		     $(srcdir)/.version
-	@rm -f $@.new
-	(cd $(srcdir); \
-	 ./gitlog-to-changelog --append-dot \
-	   --since='$(gen_changelog_start_date)'; \
-	 echo; echo; echo 'See ChangeLog-CVS for older changes.' \
-	) > $@.new
-	chmod 444 $@.new
-	mv -f $@.new $@
-
-$(srcdir)/CREDITS: $(srcdir)/CREDITS.in $(srcdir)/.mailmap \
-		   $(srcdir)/Makefile.in $(srcdir)/.version
-	$(AM_V_GEN)							\
-	(								\
-	  cd $(srcdir);							\
-	  sed '/^##/,$$d' CREDITS.in;					\
-	  { sed -n '1,/^##>/d; s/   */\t/; s/^./&/p' CREDITS.in;	\
-	    git log --pretty=format:'%aN	%aE';			\
-	  } | LC_ALL=C sort -u						\
-	    | awk -F'\t' '{printf("\t%s <%s>\n",$$1,$$2)}';		\
-	) > $@-t && mv $@-t $@
-
-export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner --mode=go-w,go+rX
-
-endif
diff --git a/Makefile.in b/Makefile.in
index d0a31ad..ee3dbe3 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -20,6 +20,7 @@
 # Copyright (c) 2006-2016 Dmitry V. Levin <ldv@altlinux.org>
 # Copyright (c) 2008-2015 Mike Frysinger <vapier@gentoo.org>
 # Copyright (c) 2015 Elvira Khabirova <lineprinter0@gmail.com>
+# Copyright (c) 2002-2017 The strace developers.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -190,8 +191,9 @@
 	fetch_struct_statfs.c hdio.c ipc_msgctl.c ipc_shmctl.c loop.c \
 	mtd.c print_mq_attr.c print_msgbuf.c print_sg_req_info.c \
 	print_sigevent.c print_time.c print_timespec.c print_timeval.c \
-	print_timex.c printrusage.c printsiginfo.c rtc.c sg_io_v3.c \
-	sigaltstack.c sock.c sysinfo.c times.c ustat.c utime.c v4l2.c
+	print_timex.c printrusage.c printsiginfo.c rt_sigreturn.c \
+	rtc.c sg_io_v3.c sigaltstack.c sock.c sysinfo.c times.c \
+	ustat.c utime.c v4l2.c
 am__objects_1 = libmpers_m32_a-block.$(OBJEXT) \
 	libmpers_m32_a-btrfs.$(OBJEXT) libmpers_m32_a-dirent.$(OBJEXT) \
 	libmpers_m32_a-evdev.$(OBJEXT) \
@@ -216,6 +218,7 @@
 	libmpers_m32_a-print_timex.$(OBJEXT) \
 	libmpers_m32_a-printrusage.$(OBJEXT) \
 	libmpers_m32_a-printsiginfo.$(OBJEXT) \
+	libmpers_m32_a-rt_sigreturn.$(OBJEXT) \
 	libmpers_m32_a-rtc.$(OBJEXT) libmpers_m32_a-sg_io_v3.$(OBJEXT) \
 	libmpers_m32_a-sigaltstack.$(OBJEXT) \
 	libmpers_m32_a-sock.$(OBJEXT) libmpers_m32_a-sysinfo.$(OBJEXT) \
@@ -232,8 +235,9 @@
 	fetch_struct_statfs.c hdio.c ipc_msgctl.c ipc_shmctl.c loop.c \
 	mtd.c print_mq_attr.c print_msgbuf.c print_sg_req_info.c \
 	print_sigevent.c print_time.c print_timespec.c print_timeval.c \
-	print_timex.c printrusage.c printsiginfo.c rtc.c sg_io_v3.c \
-	sigaltstack.c sock.c sysinfo.c times.c ustat.c utime.c v4l2.c
+	print_timex.c printrusage.c printsiginfo.c rt_sigreturn.c \
+	rtc.c sg_io_v3.c sigaltstack.c sock.c sysinfo.c times.c \
+	ustat.c utime.c v4l2.c
 am__objects_2 = libmpers_mx32_a-block.$(OBJEXT) \
 	libmpers_mx32_a-btrfs.$(OBJEXT) \
 	libmpers_mx32_a-dirent.$(OBJEXT) \
@@ -259,6 +263,7 @@
 	libmpers_mx32_a-print_timex.$(OBJEXT) \
 	libmpers_mx32_a-printrusage.$(OBJEXT) \
 	libmpers_mx32_a-printsiginfo.$(OBJEXT) \
+	libmpers_mx32_a-rt_sigreturn.$(OBJEXT) \
 	libmpers_mx32_a-rtc.$(OBJEXT) \
 	libmpers_mx32_a-sg_io_v3.$(OBJEXT) \
 	libmpers_mx32_a-sigaltstack.$(OBJEXT) \
@@ -273,6 +278,7 @@
 libstrace_a_LIBADD =
 am_libstrace_a_OBJECTS = libstrace_a-fstatfs.$(OBJEXT) \
 	libstrace_a-fstatfs64.$(OBJEXT) libstrace_a-ipc.$(OBJEXT) \
+	libstrace_a-sigreturn.$(OBJEXT) \
 	libstrace_a-socketcall.$(OBJEXT) libstrace_a-statfs.$(OBJEXT) \
 	libstrace_a-statfs64.$(OBJEXT) \
 	libstrace_a-sync_file_range.$(OBJEXT) \
@@ -299,23 +305,25 @@
 	linux/x32/asm_stat.h linux/x86_64/asm_stat.h lookup_dcookie.c \
 	loop.c lseek.c mem.c membarrier.c memfd_create.c mknod.c \
 	mmsghdr.c mount.c mpers_type.h mq.c msghdr.c msghdr.h mtd.c \
-	native_defs.h net.c netlink.c nsig.h numa.c oldstat.c open.c \
-	or1k_atomic.c pathtrace.c perf.c perf_event_struct.h \
-	personality.c pkeys.c poll.c prctl.c print_dev_t.c \
-	print_mq_attr.c print_msgbuf.c print_sg_req_info.c \
-	print_sigevent.c print_statfs.c print_struct_stat.c \
-	print_time.c print_timespec.c print_timeval.c print_timex.c \
-	printmode.c printrusage.c printsiginfo.c printsiginfo.h \
-	process.c process_vm.c ptp.c ptrace.h qualify.c quota.c \
-	readahead.c readlink.c reboot.c regs.h renameat.c resource.c \
-	rtc.c sched.c scsi.c seccomp.c seccomp_fprog.h sendfile.c \
-	sg_io_v3.c sg_io_v4.c sigaltstack.c sigevent.h signal.c \
-	signalfd.c sigreturn.c sock.c sockaddr.c socketutils.c \
-	sram_alloc.c stat.c stat.h stat64.c statfs.c statfs.h strace.c \
-	swapon.c syscall.c sysctl.c sysent.h sysinfo.c syslog.c \
-	sysmips.c term.c time.c times.c truncate.c ubi.c uid.c uid16.c \
-	umask.c umount.c uname.c userfaultfd.c ustat.c util.c utime.c \
-	utimes.c v4l2.c wait.c xattr.c xlat.h xmalloc.c unwind.c
+	native_defs.h net.c netlink.c nsfs.c nsfs.h nsig.h numa.c \
+	oldstat.c open.c or1k_atomic.c pathtrace.c perf.c \
+	perf_event_struct.h personality.c pkeys.c poll.c prctl.c \
+	print_dev_t.c print_mq_attr.c print_msgbuf.c \
+	print_sg_req_info.c print_sigevent.c print_statfs.c \
+	print_struct_stat.c print_time.c print_timespec.c \
+	print_timeval.c print_timex.c printmode.c printrusage.c \
+	printsiginfo.c printsiginfo.h process.c process_vm.c ptp.c \
+	ptrace.h qualify.c quota.c readahead.c readlink.c reboot.c \
+	regs.h renameat.c resource.c rt_sigframe.c rt_sigreturn.c \
+	rtc.c sched.c sched_attr.h scsi.c seccomp.c seccomp_fprog.h \
+	sendfile.c sg_io_v3.c sg_io_v4.c sigaltstack.c sigevent.h \
+	signal.c signalfd.c sock.c sockaddr.c socketutils.c \
+	sram_alloc.c stat.c stat.h stat64.c statfs.c statfs.h statx.c \
+	statx.h strace.c swapon.c syscall.c sysctl.c sysent.h \
+	sysinfo.c syslog.c sysmips.c term.c time.c times.c truncate.c \
+	ubi.c uid.c uid16.c umask.c umount.c uname.c userfaultfd.c \
+	ustat.c util.c utime.c utimes.c v4l2.c wait.c xattr.c xlat.h \
+	xmalloc.c unwind.c
 @USE_LIBUNWIND_TRUE@am__objects_3 = strace-unwind.$(OBJEXT)
 am_strace_OBJECTS = strace-access.$(OBJEXT) strace-affinity.$(OBJEXT) \
 	strace-aio.$(OBJEXT) strace-alpha.$(OBJEXT) \
@@ -358,13 +366,14 @@
 	strace-mmsghdr.$(OBJEXT) strace-mount.$(OBJEXT) \
 	strace-mq.$(OBJEXT) strace-msghdr.$(OBJEXT) \
 	strace-mtd.$(OBJEXT) strace-net.$(OBJEXT) \
-	strace-netlink.$(OBJEXT) strace-numa.$(OBJEXT) \
-	strace-oldstat.$(OBJEXT) strace-open.$(OBJEXT) \
-	strace-or1k_atomic.$(OBJEXT) strace-pathtrace.$(OBJEXT) \
-	strace-perf.$(OBJEXT) strace-personality.$(OBJEXT) \
-	strace-pkeys.$(OBJEXT) strace-poll.$(OBJEXT) \
-	strace-prctl.$(OBJEXT) strace-print_dev_t.$(OBJEXT) \
-	strace-print_mq_attr.$(OBJEXT) strace-print_msgbuf.$(OBJEXT) \
+	strace-netlink.$(OBJEXT) strace-nsfs.$(OBJEXT) \
+	strace-numa.$(OBJEXT) strace-oldstat.$(OBJEXT) \
+	strace-open.$(OBJEXT) strace-or1k_atomic.$(OBJEXT) \
+	strace-pathtrace.$(OBJEXT) strace-perf.$(OBJEXT) \
+	strace-personality.$(OBJEXT) strace-pkeys.$(OBJEXT) \
+	strace-poll.$(OBJEXT) strace-prctl.$(OBJEXT) \
+	strace-print_dev_t.$(OBJEXT) strace-print_mq_attr.$(OBJEXT) \
+	strace-print_msgbuf.$(OBJEXT) \
 	strace-print_sg_req_info.$(OBJEXT) \
 	strace-print_sigevent.$(OBJEXT) strace-print_statfs.$(OBJEXT) \
 	strace-print_struct_stat.$(OBJEXT) strace-print_time.$(OBJEXT) \
@@ -376,15 +385,16 @@
 	strace-quota.$(OBJEXT) strace-readahead.$(OBJEXT) \
 	strace-readlink.$(OBJEXT) strace-reboot.$(OBJEXT) \
 	strace-renameat.$(OBJEXT) strace-resource.$(OBJEXT) \
+	strace-rt_sigframe.$(OBJEXT) strace-rt_sigreturn.$(OBJEXT) \
 	strace-rtc.$(OBJEXT) strace-sched.$(OBJEXT) \
 	strace-scsi.$(OBJEXT) strace-seccomp.$(OBJEXT) \
 	strace-sendfile.$(OBJEXT) strace-sg_io_v3.$(OBJEXT) \
 	strace-sg_io_v4.$(OBJEXT) strace-sigaltstack.$(OBJEXT) \
 	strace-signal.$(OBJEXT) strace-signalfd.$(OBJEXT) \
-	strace-sigreturn.$(OBJEXT) strace-sock.$(OBJEXT) \
-	strace-sockaddr.$(OBJEXT) strace-socketutils.$(OBJEXT) \
-	strace-sram_alloc.$(OBJEXT) strace-stat.$(OBJEXT) \
-	strace-stat64.$(OBJEXT) strace-statfs.$(OBJEXT) \
+	strace-sock.$(OBJEXT) strace-sockaddr.$(OBJEXT) \
+	strace-socketutils.$(OBJEXT) strace-sram_alloc.$(OBJEXT) \
+	strace-stat.$(OBJEXT) strace-stat64.$(OBJEXT) \
+	strace-statfs.$(OBJEXT) strace-statx.$(OBJEXT) \
 	strace-strace.$(OBJEXT) strace-swapon.$(OBJEXT) \
 	strace-syscall.$(OBJEXT) strace-sysctl.$(OBJEXT) \
 	strace-sysinfo.$(OBJEXT) strace-syslog.$(OBJEXT) \
@@ -579,6 +589,7 @@
 CODE_COVERAGE_CXXFLAGS = @CODE_COVERAGE_CXXFLAGS@
 CODE_COVERAGE_ENABLED = @CODE_COVERAGE_ENABLED@
 CODE_COVERAGE_LDFLAGS = @CODE_COVERAGE_LDFLAGS@
+COPYRIGHT_YEAR = @COPYRIGHT_YEAR@
 CPP = @CPP@
 CPPFLAGS = @CPPFLAGS@
 CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@
@@ -714,14 +725,15 @@
 
 AM_CFLAGS_FOR_BUILD = $(WARN_CFLAGS_FOR_BUILD)
 AM_CPPFLAGS_FOR_BUILD = $(AM_CPPFLAGS)
-XLAT_INPUT_FILES = xlat/access_flags.in xlat/aclipc.in \
-	xlat/addrfams.in xlat/adjtimex_modes.in xlat/adjtimex_state.in \
+XLAT_INPUT_FILES = xlat/access_flags.in xlat/addrfams.in \
+	xlat/adjtimex_modes.in xlat/adjtimex_state.in \
 	xlat/adjtimex_status.in xlat/advise.in xlat/af_packet_types.in \
 	xlat/archvals.in xlat/arp_hardware_types.in xlat/at_flags.in \
-	xlat/atomic_ops.in xlat/audit_arch.in xlat/baud_options.in \
-	xlat/blkpg_ops.in xlat/bootflags1.in xlat/bootflags2.in \
-	xlat/bootflags3.in xlat/bpf_attach_type.in xlat/bpf_class.in \
-	xlat/bpf_commands.in xlat/bpf_map_types.in \
+	xlat/at_statx_sync_types.in xlat/atomic_ops.in \
+	xlat/audit_arch.in xlat/baud_options.in xlat/blkpg_ops.in \
+	xlat/bootflags1.in xlat/bootflags2.in xlat/bootflags3.in \
+	xlat/bpf_attach_flags.in xlat/bpf_attach_type.in \
+	xlat/bpf_class.in xlat/bpf_commands.in xlat/bpf_map_types.in \
 	xlat/bpf_map_update_elem_flags.in xlat/bpf_miscop.in \
 	xlat/bpf_mode.in xlat/bpf_op_alu.in xlat/bpf_op_jmp.in \
 	xlat/bpf_prog_types.in xlat/bpf_rval.in xlat/bpf_size.in \
@@ -790,9 +802,9 @@
 	xlat/netlink_protocols.in xlat/netlink_types.in \
 	xlat/notifyflags.in xlat/nt_descriptor_types.in \
 	xlat/open_access_modes.in xlat/open_mode_flags.in \
-	xlat/openmodessol.in xlat/packet_mreq_type.in \
-	xlat/perf_attr_size.in xlat/perf_branch_sample_type.in \
-	xlat/perf_event_open_flags.in xlat/perf_event_read_format.in \
+	xlat/packet_mreq_type.in xlat/perf_attr_size.in \
+	xlat/perf_branch_sample_type.in xlat/perf_event_open_flags.in \
+	xlat/perf_event_read_format.in \
 	xlat/perf_event_sample_format.in xlat/perf_hw_cache_id.in \
 	xlat/perf_hw_cache_op_id.in xlat/perf_hw_cache_op_result_id.in \
 	xlat/perf_hw_id.in xlat/perf_sw_ids.in xlat/perf_type_id.in \
@@ -832,8 +844,9 @@
 	xlat/sockrawoptions.in xlat/socksctpoptions.in \
 	xlat/socktcpoptions.in xlat/socktypes.in xlat/splice_flags.in \
 	xlat/sram_alloc_flags.in xlat/statfs_flags.in \
-	xlat/swap_flags.in xlat/sync_file_range_flags.in \
-	xlat/sysctl_kern.in xlat/sysctl_net.in xlat/sysctl_net_core.in \
+	xlat/statx_attrs.in xlat/statx_masks.in xlat/swap_flags.in \
+	xlat/sync_file_range_flags.in xlat/sysctl_kern.in \
+	xlat/sysctl_net.in xlat/sysctl_net_core.in \
 	xlat/sysctl_net_ipv4.in xlat/sysctl_net_ipv4_conf.in \
 	xlat/sysctl_net_ipv4_route.in xlat/sysctl_net_ipv6.in \
 	xlat/sysctl_net_ipv6_route.in xlat/sysctl_net_unix.in \
@@ -854,22 +867,25 @@
 	xlat/v4l2_format_description_flags.in \
 	xlat/v4l2_frameinterval_types.in xlat/v4l2_framesize_types.in \
 	xlat/v4l2_input_types.in xlat/v4l2_memories.in \
-	xlat/v4l2_streaming_capabilities.in xlat/wait4_options.in \
+	xlat/v4l2_sliced_flags.in xlat/v4l2_streaming_capabilities.in \
+	xlat/v4l2_tuner_audmodes.in xlat/v4l2_tuner_capabilities.in \
+	xlat/v4l2_tuner_rxsubchanses.in xlat/v4l2_tuner_types.in \
+	xlat/v4l2_vbi_flags.in xlat/wait4_options.in \
 	xlat/waitid_types.in xlat/whence_codes.in xlat/xattrflags.in \
 	xlat/xfs_dqblk_flags.in xlat/xfs_quota_flags.in
-XLAT_HEADER_FILES = xlat/access_flags.h xlat/aclipc.h xlat/addrfams.h \
+XLAT_HEADER_FILES = xlat/access_flags.h xlat/addrfams.h \
 	xlat/adjtimex_modes.h xlat/adjtimex_state.h \
 	xlat/adjtimex_status.h xlat/advise.h xlat/af_packet_types.h \
 	xlat/archvals.h xlat/arp_hardware_types.h xlat/at_flags.h \
-	xlat/atomic_ops.h xlat/audit_arch.h xlat/baud_options.h \
-	xlat/blkpg_ops.h xlat/bootflags1.h xlat/bootflags2.h \
-	xlat/bootflags3.h xlat/bpf_attach_type.h xlat/bpf_class.h \
-	xlat/bpf_commands.h xlat/bpf_map_types.h \
-	xlat/bpf_map_update_elem_flags.h xlat/bpf_miscop.h \
-	xlat/bpf_mode.h xlat/bpf_op_alu.h xlat/bpf_op_jmp.h \
-	xlat/bpf_prog_types.h xlat/bpf_rval.h xlat/bpf_size.h \
-	xlat/bpf_src.h xlat/bsg_flags.h xlat/bsg_protocol.h \
-	xlat/bsg_subprotocol.h xlat/bt_protocols.h \
+	xlat/at_statx_sync_types.h xlat/atomic_ops.h xlat/audit_arch.h \
+	xlat/baud_options.h xlat/blkpg_ops.h xlat/bootflags1.h \
+	xlat/bootflags2.h xlat/bootflags3.h xlat/bpf_attach_flags.h \
+	xlat/bpf_attach_type.h xlat/bpf_class.h xlat/bpf_commands.h \
+	xlat/bpf_map_types.h xlat/bpf_map_update_elem_flags.h \
+	xlat/bpf_miscop.h xlat/bpf_mode.h xlat/bpf_op_alu.h \
+	xlat/bpf_op_jmp.h xlat/bpf_prog_types.h xlat/bpf_rval.h \
+	xlat/bpf_size.h xlat/bpf_src.h xlat/bsg_flags.h \
+	xlat/bsg_protocol.h xlat/bsg_subprotocol.h xlat/bt_protocols.h \
 	xlat/btrfs_balance_args.h xlat/btrfs_balance_ctl_cmds.h \
 	xlat/btrfs_balance_flags.h xlat/btrfs_balance_state.h \
 	xlat/btrfs_compress_types.h xlat/btrfs_defrag_flags.h \
@@ -928,12 +944,12 @@
 	xlat/netlink_protocols.h xlat/netlink_types.h \
 	xlat/notifyflags.h xlat/nt_descriptor_types.h \
 	xlat/open_access_modes.h xlat/open_mode_flags.h \
-	xlat/openmodessol.h xlat/packet_mreq_type.h \
-	xlat/perf_attr_size.h xlat/perf_branch_sample_type.h \
-	xlat/perf_event_open_flags.h xlat/perf_event_read_format.h \
-	xlat/perf_event_sample_format.h xlat/perf_hw_cache_id.h \
-	xlat/perf_hw_cache_op_id.h xlat/perf_hw_cache_op_result_id.h \
-	xlat/perf_hw_id.h xlat/perf_sw_ids.h xlat/perf_type_id.h \
+	xlat/packet_mreq_type.h xlat/perf_attr_size.h \
+	xlat/perf_branch_sample_type.h xlat/perf_event_open_flags.h \
+	xlat/perf_event_read_format.h xlat/perf_event_sample_format.h \
+	xlat/perf_hw_cache_id.h xlat/perf_hw_cache_op_id.h \
+	xlat/perf_hw_cache_op_result_id.h xlat/perf_hw_id.h \
+	xlat/perf_sw_ids.h xlat/perf_type_id.h \
 	xlat/personality_flags.h xlat/personality_types.h \
 	xlat/pkey_access.h xlat/policies.h xlat/pollflags.h \
 	xlat/pr_cap_ambient.h xlat/pr_dumpable.h xlat/pr_fp_mode.h \
@@ -965,7 +981,8 @@
 	xlat/sockoptions.h xlat/sockpacketoptions.h \
 	xlat/sockrawoptions.h xlat/socksctpoptions.h \
 	xlat/socktcpoptions.h xlat/socktypes.h xlat/splice_flags.h \
-	xlat/sram_alloc_flags.h xlat/statfs_flags.h xlat/swap_flags.h \
+	xlat/sram_alloc_flags.h xlat/statfs_flags.h xlat/statx_attrs.h \
+	xlat/statx_masks.h xlat/swap_flags.h \
 	xlat/sync_file_range_flags.h xlat/sysctl_kern.h \
 	xlat/sysctl_net.h xlat/sysctl_net_core.h \
 	xlat/sysctl_net_ipv4.h xlat/sysctl_net_ipv4_conf.h \
@@ -987,9 +1004,12 @@
 	xlat/v4l2_format_description_flags.h \
 	xlat/v4l2_frameinterval_types.h xlat/v4l2_framesize_types.h \
 	xlat/v4l2_input_types.h xlat/v4l2_memories.h \
-	xlat/v4l2_streaming_capabilities.h xlat/wait4_options.h \
-	xlat/waitid_types.h xlat/whence_codes.h xlat/xattrflags.h \
-	xlat/xfs_dqblk_flags.h xlat/xfs_quota_flags.h
+	xlat/v4l2_sliced_flags.h xlat/v4l2_streaming_capabilities.h \
+	xlat/v4l2_tuner_audmodes.h xlat/v4l2_tuner_capabilities.h \
+	xlat/v4l2_tuner_rxsubchanses.h xlat/v4l2_tuner_types.h \
+	xlat/v4l2_vbi_flags.h xlat/wait4_options.h xlat/waitid_types.h \
+	xlat/whence_codes.h xlat/xattrflags.h xlat/xfs_dqblk_flags.h \
+	xlat/xfs_quota_flags.h
 strace_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_2) \
 	$(CODE_COVERAGE_CPPFLAGS)
 strace_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS)
@@ -1003,6 +1023,7 @@
 	fstatfs.c \
 	fstatfs64.c \
 	ipc.c \
+	sigreturn.c	\
 	socketcall.c \
 	statfs.c \
 	statfs64.c \
@@ -1029,24 +1050,25 @@
 	linux/x32/asm_stat.h linux/x86_64/asm_stat.h lookup_dcookie.c \
 	loop.c lseek.c mem.c membarrier.c memfd_create.c mknod.c \
 	mmsghdr.c mount.c mpers_type.h mq.c msghdr.c msghdr.h mtd.c \
-	native_defs.h net.c netlink.c nsig.h numa.c oldstat.c open.c \
-	or1k_atomic.c pathtrace.c perf.c perf_event_struct.h \
-	personality.c pkeys.c poll.c prctl.c print_dev_t.c \
-	print_mq_attr.c print_msgbuf.c print_sg_req_info.c \
-	print_sigevent.c print_statfs.c print_struct_stat.c \
-	print_time.c print_timespec.c print_timeval.c print_timex.c \
-	printmode.c printrusage.c printsiginfo.c printsiginfo.h \
-	process.c process_vm.c ptp.c ptrace.h qualify.c quota.c \
-	readahead.c readlink.c reboot.c regs.h renameat.c resource.c \
-	rtc.c sched.c scsi.c seccomp.c seccomp_fprog.h sendfile.c \
-	sg_io_v3.c sg_io_v4.c sigaltstack.c sigevent.h signal.c \
-	signalfd.c sigreturn.c sock.c sockaddr.c socketutils.c \
-	sram_alloc.c stat.c stat.h stat64.c statfs.c statfs.h strace.c \
-	swapon.c syscall.c sysctl.c sysent.h sysinfo.c syslog.c \
-	sysmips.c term.c time.c times.c truncate.c ubi.c uid.c uid16.c \
-	umask.c umount.c uname.c userfaultfd.c ustat.c util.c utime.c \
-	utimes.c v4l2.c wait.c xattr.c xlat.h xmalloc.c \
-	$(am__append_1)
+	native_defs.h net.c netlink.c nsfs.c nsfs.h nsig.h numa.c \
+	oldstat.c open.c or1k_atomic.c pathtrace.c perf.c \
+	perf_event_struct.h personality.c pkeys.c poll.c prctl.c \
+	print_dev_t.c print_mq_attr.c print_msgbuf.c \
+	print_sg_req_info.c print_sigevent.c print_statfs.c \
+	print_struct_stat.c print_time.c print_timespec.c \
+	print_timeval.c print_timex.c printmode.c printrusage.c \
+	printsiginfo.c printsiginfo.h process.c process_vm.c ptp.c \
+	ptrace.h qualify.c quota.c readahead.c readlink.c reboot.c \
+	regs.h renameat.c resource.c rt_sigframe.c rt_sigreturn.c \
+	rtc.c sched.c sched_attr.h scsi.c seccomp.c seccomp_fprog.h \
+	sendfile.c sg_io_v3.c sg_io_v4.c sigaltstack.c sigevent.h \
+	signal.c signalfd.c sock.c sockaddr.c socketutils.c \
+	sram_alloc.c stat.c stat.h stat64.c statfs.c statfs.h statx.c \
+	statx.h strace.c swapon.c syscall.c sysctl.c sysent.h \
+	sysinfo.c syslog.c sysmips.c term.c time.c times.c truncate.c \
+	ubi.c uid.c uid16.c umask.c umount.c uname.c userfaultfd.c \
+	ustat.c util.c utime.c utimes.c v4l2.c wait.c xattr.c xlat.h \
+	xmalloc.c $(am__append_1)
 CODE_COVERAGE_BRANCH_COVERAGE = 1
 CODE_COVERAGE_GENHTML_OPTIONS = $(CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT) \
 	--prefix $(shell cd $(abs_top_srcdir)/.. && pwd || echo .)
@@ -1077,7 +1099,6 @@
 	debian/strace64.install		\
 	debian/strace64.manpages	\
 	debian/watch			\
-	errnoent.sh			\
 	generate_sen.sh			\
 	ioctl_iocdef.c			\
 	ioctlsort.c			\
@@ -1090,6 +1111,7 @@
 	linux/64/syscallent.h		\
 	linux/aarch64/arch_regs.c	\
 	linux/aarch64/arch_regs.h	\
+	linux/aarch64/arch_rt_sigframe.c\
 	linux/aarch64/arch_sigreturn.c	\
 	linux/aarch64/errnoent1.h	\
 	linux/aarch64/get_error.c	\
@@ -1107,6 +1129,7 @@
 	linux/alpha/arch_getrval2.c	\
 	linux/alpha/arch_regs.c		\
 	linux/alpha/arch_regs.h		\
+	linux/alpha/arch_rt_sigframe.c	\
 	linux/alpha/arch_sigreturn.c	\
 	linux/alpha/errnoent.h		\
 	linux/alpha/get_error.c		\
@@ -1121,6 +1144,8 @@
 	linux/alpha/syscallent.h	\
 	linux/alpha/userent.h		\
 	linux/arc/arch_regs.c		\
+	linux/arc/arch_regs.h		\
+	linux/arc/arch_rt_sigframe.c	\
 	linux/arc/get_error.c		\
 	linux/arc/get_scno.c		\
 	linux/arc/get_syscall_args.c	\
@@ -1133,6 +1158,7 @@
 	linux/arch_sigreturn.c		\
 	linux/arm/arch_regs.c		\
 	linux/arm/arch_regs.h		\
+	linux/arm/arch_rt_sigframe.c	\
 	linux/arm/arch_sigreturn.c	\
 	linux/arm/get_error.c		\
 	linux/arm/get_scno.c		\
@@ -1144,6 +1170,8 @@
 	linux/arm/syscallent.h		\
 	linux/arm/userent.h		\
 	linux/avr32/arch_regs.c		\
+	linux/avr32/arch_regs.h		\
+	linux/avr32/arch_rt_sigframe.c	\
 	linux/avr32/get_error.c		\
 	linux/avr32/get_scno.c		\
 	linux/avr32/get_syscall_args.c	\
@@ -1154,32 +1182,38 @@
 	linux/avr32/syscallent.h	\
 	linux/avr32/userent.h		\
 	linux/bfin/arch_regs.c		\
+	linux/bfin/arch_rt_sigframe.c	\
 	linux/bfin/get_error.c		\
 	linux/bfin/get_scno.c		\
 	linux/bfin/get_syscall_args.c	\
 	linux/bfin/get_syscall_result.c	\
 	linux/bfin/ioctls_arch0.h	\
 	linux/bfin/ioctls_inc0.h	\
+	linux/bfin/rt_sigframe.h	\
 	linux/bfin/set_error.c		\
 	linux/bfin/set_scno.c		\
 	linux/bfin/syscallent.h		\
 	linux/bfin/userent.h		\
 	linux/crisv10/arch_regs.c	\
+	linux/crisv10/arch_rt_sigframe.c\
 	linux/crisv10/arch_sigreturn.c	\
 	linux/crisv10/get_error.c	\
 	linux/crisv10/get_scno.c	\
 	linux/crisv10/get_syscall_args.c	\
 	linux/crisv10/get_syscall_result.c	\
+	linux/crisv10/rt_sigframe.h	\
 	linux/crisv10/set_error.c	\
 	linux/crisv10/set_scno.c	\
 	linux/crisv10/syscallent.h	\
 	linux/crisv10/userent.h		\
 	linux/crisv32/arch_regs.c	\
+	linux/crisv32/arch_rt_sigframe.c\
 	linux/crisv32/arch_sigreturn.c	\
 	linux/crisv32/get_error.c	\
 	linux/crisv32/get_scno.c	\
 	linux/crisv32/get_syscall_args.c	\
 	linux/crisv32/get_syscall_result.c	\
+	linux/crisv32/rt_sigframe.h	\
 	linux/crisv32/set_error.c	\
 	linux/crisv32/set_scno.c	\
 	linux/crisv32/syscallent.h	\
@@ -1189,6 +1223,7 @@
 	linux/getregs_old.h		\
 	linux/hppa/arch_regs.c		\
 	linux/hppa/arch_regs.h		\
+	linux/hppa/arch_rt_sigframe.c	\
 	linux/hppa/errnoent.h		\
 	linux/hppa/get_error.c		\
 	linux/hppa/get_scno.c		\
@@ -1196,18 +1231,21 @@
 	linux/hppa/get_syscall_result.c	\
 	linux/hppa/ioctls_arch0.h	\
 	linux/hppa/ioctls_inc0.h	\
+	linux/hppa/rt_sigframe.h	\
 	linux/hppa/set_error.c		\
 	linux/hppa/set_scno.c		\
 	linux/hppa/signalent.h		\
 	linux/hppa/syscallent.h		\
 	linux/i386/arch_regs.c		\
 	linux/i386/arch_regs.h		\
+	linux/i386/arch_rt_sigframe.c	\
 	linux/i386/arch_sigreturn.c	\
 	linux/i386/get_error.c		\
 	linux/i386/get_scno.c		\
 	linux/i386/get_syscall_args.c	\
 	linux/i386/ioctls_arch0.h	\
 	linux/i386/ioctls_inc0.h	\
+	linux/i386/rt_sigframe.h	\
 	linux/i386/set_error.c		\
 	linux/i386/set_scno.c		\
 	linux/i386/syscallent.h		\
@@ -1216,12 +1254,13 @@
 	linux/ia64/arch_getrval2.c	\
 	linux/ia64/arch_regs.c		\
 	linux/ia64/arch_regs.h		\
-	linux/ia64/arch_sigreturn.c	\
+	linux/ia64/arch_rt_sigframe.c	\
 	linux/ia64/get_error.c		\
 	linux/ia64/get_scno.c		\
 	linux/ia64/get_syscall_args.c	\
 	linux/ia64/ioctls_arch0.h	\
 	linux/ia64/ioctls_inc0.h	\
+	linux/ia64/rt_sigframe.h	\
 	linux/ia64/set_error.c		\
 	linux/ia64/set_scno.c		\
 	linux/ia64/syscallent.h		\
@@ -1229,17 +1268,21 @@
 	linux/inet_diag.h		\
 	linux/m68k/arch_regs.c		\
 	linux/m68k/arch_regs.h		\
+	linux/m68k/arch_rt_sigframe.c	\
 	linux/m68k/arch_sigreturn.c	\
 	linux/m68k/get_error.c		\
 	linux/m68k/get_scno.c		\
 	linux/m68k/get_syscall_args.c	\
 	linux/m68k/ioctls_arch0.h	\
 	linux/m68k/ioctls_inc0.h	\
+	linux/m68k/rt_sigframe.h	\
 	linux/m68k/set_error.c		\
 	linux/m68k/set_scno.c		\
 	linux/m68k/syscallent.h		\
 	linux/m68k/userent.h		\
 	linux/metag/arch_regs.c		\
+	linux/metag/arch_regs.h		\
+	linux/metag/arch_rt_sigframe.c	\
 	linux/metag/get_error.c		\
 	linux/metag/get_scno.c		\
 	linux/metag/get_syscall_args.c	\
@@ -1249,6 +1292,7 @@
 	linux/metag/set_scno.c		\
 	linux/metag/syscallent.h	\
 	linux/microblaze/arch_regs.c	\
+	linux/microblaze/arch_rt_sigframe.c\
 	linux/microblaze/arch_sigreturn.c	\
 	linux/microblaze/get_error.c	\
 	linux/microblaze/get_scno.c	\
@@ -1263,6 +1307,7 @@
 	linux/mips/arch_getrval2.c	\
 	linux/mips/arch_regs.c		\
 	linux/mips/arch_regs.h		\
+	linux/mips/arch_rt_sigframe.c	\
 	linux/mips/arch_sigreturn.c	\
 	linux/mips/errnoent.h		\
 	linux/mips/genstub.sh		\
@@ -1271,6 +1316,7 @@
 	linux/mips/get_syscall_args.c	\
 	linux/mips/ioctls_arch0.h	\
 	linux/mips/ioctls_inc0.h	\
+	linux/mips/rt_sigframe.h	\
 	linux/mips/set_error.c		\
 	linux/mips/set_scno.c		\
 	linux/mips/signalent.h		\
@@ -1283,6 +1329,8 @@
 	linux/mtd-abi.h			\
 	linux/netlink_diag.h		\
 	linux/nios2/arch_regs.c		\
+	linux/nios2/arch_regs.h		\
+	linux/nios2/arch_rt_sigframe.c	\
 	linux/nios2/get_error.c		\
 	linux/nios2/get_scno.c		\
 	linux/nios2/get_syscall_args.c	\
@@ -1292,6 +1340,8 @@
 	linux/nios2/set_scno.c		\
 	linux/nios2/syscallent.h	\
 	linux/or1k/arch_regs.c		\
+	linux/or1k/arch_regs.h		\
+	linux/or1k/arch_rt_sigframe.c	\
 	linux/or1k/get_error.c		\
 	linux/or1k/get_scno.c		\
 	linux/or1k/get_syscall_args.c	\
@@ -1304,6 +1354,7 @@
 	linux/personality.h		\
 	linux/powerpc/arch_regs.c	\
 	linux/powerpc/arch_regs.h	\
+	linux/powerpc/arch_rt_sigframe.c\
 	linux/powerpc/arch_sigreturn.c	\
 	linux/powerpc/errnoent.h	\
 	linux/powerpc/get_error.c	\
@@ -1319,6 +1370,7 @@
 	linux/powerpc/userent.h		\
 	linux/powerpc64/arch_regs.c	\
 	linux/powerpc64/arch_regs.h	\
+	linux/powerpc64/arch_rt_sigframe.c\
 	linux/powerpc64/arch_sigreturn.c	\
 	linux/powerpc64/errnoent.h	\
 	linux/powerpc64/errnoent1.h	\
@@ -1331,6 +1383,7 @@
 	linux/powerpc64/ioctls_arch1.h	\
 	linux/powerpc64/ioctls_inc0.h	\
 	linux/powerpc64/ioctls_inc1.h	\
+	linux/powerpc64/rt_sigframe.h	\
 	linux/powerpc64/set_error.c	\
 	linux/powerpc64/set_scno.c	\
 	linux/powerpc64/signalent1.h	\
@@ -1339,6 +1392,8 @@
 	linux/powerpc64/userent.h	\
 	linux/ptp_clock.h		\
 	linux/riscv/arch_regs.c		\
+	linux/riscv/arch_regs.h		\
+	linux/riscv/arch_rt_sigframe.c	\
 	linux/riscv/errnoent1.h		\
 	linux/riscv/get_error.c		\
 	linux/riscv/get_scno.c		\
@@ -1352,14 +1407,17 @@
 	linux/riscv/signalent1.h	\
 	linux/riscv/syscallent.h	\
 	linux/riscv/syscallent1.h	\
+	linux/rt_sigframe.h		\
 	linux/s390/arch_regs.c		\
 	linux/s390/arch_regs.h		\
+	linux/s390/arch_rt_sigframe.c	\
 	linux/s390/arch_sigreturn.c	\
 	linux/s390/get_error.c		\
 	linux/s390/get_scno.c		\
 	linux/s390/get_syscall_args.c	\
 	linux/s390/ioctls_arch0.h	\
 	linux/s390/ioctls_inc0.h	\
+	linux/s390/rt_sigframe.h	\
 	linux/s390/set_error.c		\
 	linux/s390/set_scno.c		\
 	linux/s390/syscallent.h		\
@@ -1368,18 +1426,21 @@
 	linux/s390/userent1.h		\
 	linux/s390x/arch_regs.c		\
 	linux/s390x/arch_regs.h		\
+	linux/s390x/arch_rt_sigframe.c	\
 	linux/s390x/arch_sigreturn.c	\
 	linux/s390x/get_error.c		\
 	linux/s390x/get_scno.c		\
 	linux/s390x/get_syscall_args.c	\
 	linux/s390x/ioctls_arch0.h	\
 	linux/s390x/ioctls_inc0.h	\
+	linux/s390x/rt_sigframe.h	\
 	linux/s390x/set_error.c		\
 	linux/s390x/set_scno.c		\
 	linux/s390x/syscallent.h	\
 	linux/s390x/userent.h		\
 	linux/sh/arch_getrval2.c	\
 	linux/sh/arch_regs.c		\
+	linux/sh/arch_rt_sigframe.c	\
 	linux/sh/get_error.c		\
 	linux/sh/get_scno.c		\
 	linux/sh/get_syscall_args.c	\
@@ -1393,12 +1454,14 @@
 	linux/sh/userent0.h		\
 	linux/sh64/arch_regs.c		\
 	linux/sh64/arch_regs.h		\
+	linux/sh64/arch_rt_sigframe.c	\
 	linux/sh64/get_error.c		\
 	linux/sh64/get_scno.c		\
 	linux/sh64/get_syscall_args.c	\
 	linux/sh64/get_syscall_result.c	\
 	linux/sh64/ioctls_arch0.h	\
 	linux/sh64/ioctls_inc0.h	\
+	linux/sh64/rt_sigframe.h	\
 	linux/sh64/set_error.c		\
 	linux/sh64/set_scno.c		\
 	linux/sh64/syscallent.h		\
@@ -1408,6 +1471,7 @@
 	linux/sparc/arch_getrval2.c	\
 	linux/sparc/arch_regs.c		\
 	linux/sparc/arch_regs.h		\
+	linux/sparc/arch_rt_sigframe.c	\
 	linux/sparc/arch_sigreturn.c	\
 	linux/sparc/errnoent.h		\
 	linux/sparc/gen.pl		\
@@ -1416,6 +1480,7 @@
 	linux/sparc/get_syscall_args.c	\
 	linux/sparc/ioctls_arch0.h	\
 	linux/sparc/ioctls_inc0.h	\
+	linux/sparc/rt_sigframe.h	\
 	linux/sparc/set_error.c		\
 	linux/sparc/set_scno.c		\
 	linux/sparc/signalent.h		\
@@ -1424,6 +1489,7 @@
 	linux/sparc64/arch_getrval2.c	\
 	linux/sparc64/arch_regs.c	\
 	linux/sparc64/arch_regs.h	\
+	linux/sparc64/arch_rt_sigframe.c\
 	linux/sparc64/arch_sigreturn.c	\
 	linux/sparc64/errnoent.h	\
 	linux/sparc64/errnoent1.h	\
@@ -1434,6 +1500,7 @@
 	linux/sparc64/ioctls_arch1.h	\
 	linux/sparc64/ioctls_inc0.h	\
 	linux/sparc64/ioctls_inc1.h	\
+	linux/sparc64/rt_sigframe.h	\
 	linux/sparc64/set_error.c	\
 	linux/sparc64/set_scno.c	\
 	linux/sparc64/signalent.h	\
@@ -1445,6 +1512,7 @@
 	linux/syscall.h			\
 	linux/tile/arch_regs.c		\
 	linux/tile/arch_regs.h		\
+	linux/tile/arch_rt_sigframe.c	\
 	linux/tile/arch_sigreturn.c	\
 	linux/tile/errnoent1.h		\
 	linux/tile/get_error.c		\
@@ -1454,6 +1522,7 @@
 	linux/tile/ioctls_arch1.h	\
 	linux/tile/ioctls_inc0.h	\
 	linux/tile/ioctls_inc1.h	\
+	linux/tile/rt_sigframe.h	\
 	linux/tile/set_error.c		\
 	linux/tile/set_scno.c		\
 	linux/tile/signalent1.h		\
@@ -1466,6 +1535,7 @@
 	linux/userent0.h		\
 	linux/x32/arch_regs.c		\
 	linux/x32/arch_regs.h		\
+	linux/x32/arch_rt_sigframe.c	\
 	linux/x32/arch_sigreturn.c	\
 	linux/x32/errnoent1.h		\
 	linux/x32/get_error.c		\
@@ -1475,6 +1545,7 @@
 	linux/x32/ioctls_arch1.h	\
 	linux/x32/ioctls_inc0.h		\
 	linux/x32/ioctls_inc1.h		\
+	linux/x32/rt_sigframe.h		\
 	linux/x32/set_error.c		\
 	linux/x32/set_scno.c		\
 	linux/x32/signalent1.h		\
@@ -1483,6 +1554,7 @@
 	linux/x32/userent.h		\
 	linux/x86_64/arch_regs.c	\
 	linux/x86_64/arch_regs.h	\
+	linux/x86_64/arch_rt_sigframe.c	\
 	linux/x86_64/arch_sigreturn.c	\
 	linux/x86_64/errnoent1.h	\
 	linux/x86_64/errnoent2.h	\
@@ -1498,6 +1570,7 @@
 	linux/x86_64/ioctls_inc0.h	\
 	linux/x86_64/ioctls_inc1.h	\
 	linux/x86_64/ioctls_inc2.h	\
+	linux/x86_64/rt_sigframe.h	\
 	linux/x86_64/set_error.c	\
 	linux/x86_64/set_scno.c		\
 	linux/x86_64/signalent1.h	\
@@ -1507,6 +1580,7 @@
 	linux/x86_64/syscallent2.h	\
 	linux/x86_64/userent.h		\
 	linux/xtensa/arch_regs.c	\
+	linux/xtensa/arch_rt_sigframe.c	\
 	linux/xtensa/get_error.c	\
 	linux/xtensa/get_scno.c		\
 	linux/xtensa/get_syscall_args.c	\
@@ -1517,20 +1591,14 @@
 	linux/xtensa/set_scno.c		\
 	linux/xtensa/syscallent.h	\
 	linux/xtensa/userent.h		\
-	maint/ioctls_gen.sh		\
-	maint/ioctls_hex.sh		\
-	maint/ioctls_sym.sh		\
-	maint/print_ioctlent.c		\
 	mpers.awk			\
 	mpers.sh			\
 	mpers_test.sh			\
 	mpers_xlat.h			\
 	scno.head			\
-	signalent.sh			\
 	strace-graph			\
 	strace-log-merge		\
 	strace.spec			\
-	syscallent.sh			\
 	$(XLAT_INPUT_FILES)		\
 	$(XLAT_HEADER_FILES)		\
 	xlat/gen.sh			\
@@ -1572,7 +1640,7 @@
 SCNO_SED = /TRACE_INDIRECT_SUBCALL/d; s/^\[[[:space:]]*\($(digits)\)\][[:space:]]*=[[:space:]]*{[^,]*,[^,]*,[^,]*,[[:space:]]*"\($(al_nums)\)"[[:space:]]*},.*/\#ifndef __NR_\2\n\# define __NR_\2 (SYSCALL_BIT | \1)\n\#endif/p
 
 # Generated by ./generate_mpers_am.sh; do not edit.
-mpers_source_files = block.c btrfs.c dirent.c evdev.c fetch_seccomp_fprog.c fetch_struct_flock.c fetch_struct_mmsghdr.c fetch_struct_msghdr.c fetch_struct_stat.c fetch_struct_stat64.c fetch_struct_statfs.c hdio.c ipc_msgctl.c ipc_shmctl.c loop.c mtd.c print_mq_attr.c print_msgbuf.c print_sg_req_info.c print_sigevent.c print_time.c print_timespec.c print_timeval.c print_timex.c printrusage.c printsiginfo.c rtc.c sg_io_v3.c sigaltstack.c sock.c sysinfo.c times.c ustat.c utime.c v4l2.c 
+mpers_source_files = block.c btrfs.c dirent.c evdev.c fetch_seccomp_fprog.c fetch_struct_flock.c fetch_struct_mmsghdr.c fetch_struct_msghdr.c fetch_struct_stat.c fetch_struct_stat64.c fetch_struct_statfs.c hdio.c ipc_msgctl.c ipc_shmctl.c loop.c mtd.c print_mq_attr.c print_msgbuf.c print_sg_req_info.c print_sigevent.c print_time.c print_timespec.c print_timeval.c print_timex.c printrusage.c printsiginfo.c rt_sigreturn.c rtc.c sg_io_v3.c sigaltstack.c sock.c sysinfo.c times.c ustat.c utime.c v4l2.c 
 
 # defines mpers_source_files
 srcdir_mpers_source_files = $(patsubst %,$(srcdir)/%,$(mpers_source_files))
@@ -1786,6 +1854,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_m32_a-print_timex.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_m32_a-printrusage.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_m32_a-printsiginfo.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_m32_a-rt_sigreturn.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_m32_a-rtc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_m32_a-sg_io_v3.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_m32_a-sigaltstack.Po@am__quote@
@@ -1821,6 +1890,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-print_timex.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-printrusage.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-printsiginfo.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-rt_sigreturn.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-rtc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-sg_io_v3.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libmpers_mx32_a-sigaltstack.Po@am__quote@
@@ -1833,6 +1903,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-fstatfs.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-fstatfs64.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-ipc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-sigreturn.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-socketcall.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-statfs.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-statfs64.Po@am__quote@
@@ -1916,6 +1987,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-mtd.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-net.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-netlink.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-nsfs.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-numa.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-oldstat.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-open.Po@am__quote@
@@ -1950,6 +2022,8 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-reboot.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-renameat.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-resource.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-rt_sigframe.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-rt_sigreturn.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-rtc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-sched.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-scsi.Po@am__quote@
@@ -1960,7 +2034,6 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-sigaltstack.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-signal.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-signalfd.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-sigreturn.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-sock.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-sockaddr.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-socketutils.Po@am__quote@
@@ -1968,6 +2041,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-stat.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-stat64.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-statfs.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-statx.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-strace.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-swapon.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-syscall.Po@am__quote@
@@ -2374,6 +2448,20 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -c -o libmpers_m32_a-printsiginfo.obj `if test -f 'printsiginfo.c'; then $(CYGPATH_W) 'printsiginfo.c'; else $(CYGPATH_W) '$(srcdir)/printsiginfo.c'; fi`
 
+libmpers_m32_a-rt_sigreturn.o: rt_sigreturn.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -MT libmpers_m32_a-rt_sigreturn.o -MD -MP -MF $(DEPDIR)/libmpers_m32_a-rt_sigreturn.Tpo -c -o libmpers_m32_a-rt_sigreturn.o `test -f 'rt_sigreturn.c' || echo '$(srcdir)/'`rt_sigreturn.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_m32_a-rt_sigreturn.Tpo $(DEPDIR)/libmpers_m32_a-rt_sigreturn.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='rt_sigreturn.c' object='libmpers_m32_a-rt_sigreturn.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -c -o libmpers_m32_a-rt_sigreturn.o `test -f 'rt_sigreturn.c' || echo '$(srcdir)/'`rt_sigreturn.c
+
+libmpers_m32_a-rt_sigreturn.obj: rt_sigreturn.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -MT libmpers_m32_a-rt_sigreturn.obj -MD -MP -MF $(DEPDIR)/libmpers_m32_a-rt_sigreturn.Tpo -c -o libmpers_m32_a-rt_sigreturn.obj `if test -f 'rt_sigreturn.c'; then $(CYGPATH_W) 'rt_sigreturn.c'; else $(CYGPATH_W) '$(srcdir)/rt_sigreturn.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_m32_a-rt_sigreturn.Tpo $(DEPDIR)/libmpers_m32_a-rt_sigreturn.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='rt_sigreturn.c' object='libmpers_m32_a-rt_sigreturn.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -c -o libmpers_m32_a-rt_sigreturn.obj `if test -f 'rt_sigreturn.c'; then $(CYGPATH_W) 'rt_sigreturn.c'; else $(CYGPATH_W) '$(srcdir)/rt_sigreturn.c'; fi`
+
 libmpers_m32_a-rtc.o: rtc.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_m32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_m32_a_CFLAGS) $(CFLAGS) -MT libmpers_m32_a-rtc.o -MD -MP -MF $(DEPDIR)/libmpers_m32_a-rtc.Tpo -c -o libmpers_m32_a-rtc.o `test -f 'rtc.c' || echo '$(srcdir)/'`rtc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_m32_a-rtc.Tpo $(DEPDIR)/libmpers_m32_a-rtc.Po
@@ -2864,6 +2952,20 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -c -o libmpers_mx32_a-printsiginfo.obj `if test -f 'printsiginfo.c'; then $(CYGPATH_W) 'printsiginfo.c'; else $(CYGPATH_W) '$(srcdir)/printsiginfo.c'; fi`
 
+libmpers_mx32_a-rt_sigreturn.o: rt_sigreturn.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -MT libmpers_mx32_a-rt_sigreturn.o -MD -MP -MF $(DEPDIR)/libmpers_mx32_a-rt_sigreturn.Tpo -c -o libmpers_mx32_a-rt_sigreturn.o `test -f 'rt_sigreturn.c' || echo '$(srcdir)/'`rt_sigreturn.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_mx32_a-rt_sigreturn.Tpo $(DEPDIR)/libmpers_mx32_a-rt_sigreturn.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='rt_sigreturn.c' object='libmpers_mx32_a-rt_sigreturn.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -c -o libmpers_mx32_a-rt_sigreturn.o `test -f 'rt_sigreturn.c' || echo '$(srcdir)/'`rt_sigreturn.c
+
+libmpers_mx32_a-rt_sigreturn.obj: rt_sigreturn.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -MT libmpers_mx32_a-rt_sigreturn.obj -MD -MP -MF $(DEPDIR)/libmpers_mx32_a-rt_sigreturn.Tpo -c -o libmpers_mx32_a-rt_sigreturn.obj `if test -f 'rt_sigreturn.c'; then $(CYGPATH_W) 'rt_sigreturn.c'; else $(CYGPATH_W) '$(srcdir)/rt_sigreturn.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_mx32_a-rt_sigreturn.Tpo $(DEPDIR)/libmpers_mx32_a-rt_sigreturn.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='rt_sigreturn.c' object='libmpers_mx32_a-rt_sigreturn.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -c -o libmpers_mx32_a-rt_sigreturn.obj `if test -f 'rt_sigreturn.c'; then $(CYGPATH_W) 'rt_sigreturn.c'; else $(CYGPATH_W) '$(srcdir)/rt_sigreturn.c'; fi`
+
 libmpers_mx32_a-rtc.o: rtc.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libmpers_mx32_a_CPPFLAGS) $(CPPFLAGS) $(libmpers_mx32_a_CFLAGS) $(CFLAGS) -MT libmpers_mx32_a-rtc.o -MD -MP -MF $(DEPDIR)/libmpers_mx32_a-rtc.Tpo -c -o libmpers_mx32_a-rtc.o `test -f 'rtc.c' || echo '$(srcdir)/'`rtc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libmpers_mx32_a-rtc.Tpo $(DEPDIR)/libmpers_mx32_a-rtc.Po
@@ -3032,6 +3134,20 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-ipc.obj `if test -f 'ipc.c'; then $(CYGPATH_W) 'ipc.c'; else $(CYGPATH_W) '$(srcdir)/ipc.c'; fi`
 
+libstrace_a-sigreturn.o: sigreturn.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sigreturn.o -MD -MP -MF $(DEPDIR)/libstrace_a-sigreturn.Tpo -c -o libstrace_a-sigreturn.o `test -f 'sigreturn.c' || echo '$(srcdir)/'`sigreturn.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sigreturn.Tpo $(DEPDIR)/libstrace_a-sigreturn.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='sigreturn.c' object='libstrace_a-sigreturn.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sigreturn.o `test -f 'sigreturn.c' || echo '$(srcdir)/'`sigreturn.c
+
+libstrace_a-sigreturn.obj: sigreturn.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-sigreturn.obj -MD -MP -MF $(DEPDIR)/libstrace_a-sigreturn.Tpo -c -o libstrace_a-sigreturn.obj `if test -f 'sigreturn.c'; then $(CYGPATH_W) 'sigreturn.c'; else $(CYGPATH_W) '$(srcdir)/sigreturn.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-sigreturn.Tpo $(DEPDIR)/libstrace_a-sigreturn.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='sigreturn.c' object='libstrace_a-sigreturn.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-sigreturn.obj `if test -f 'sigreturn.c'; then $(CYGPATH_W) 'sigreturn.c'; else $(CYGPATH_W) '$(srcdir)/sigreturn.c'; fi`
+
 libstrace_a-socketcall.o: socketcall.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-socketcall.o -MD -MP -MF $(DEPDIR)/libstrace_a-socketcall.Tpo -c -o libstrace_a-socketcall.o `test -f 'socketcall.c' || echo '$(srcdir)/'`socketcall.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-socketcall.Tpo $(DEPDIR)/libstrace_a-socketcall.Po
@@ -4194,6 +4310,20 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-netlink.obj `if test -f 'netlink.c'; then $(CYGPATH_W) 'netlink.c'; else $(CYGPATH_W) '$(srcdir)/netlink.c'; fi`
 
+strace-nsfs.o: nsfs.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-nsfs.o -MD -MP -MF $(DEPDIR)/strace-nsfs.Tpo -c -o strace-nsfs.o `test -f 'nsfs.c' || echo '$(srcdir)/'`nsfs.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-nsfs.Tpo $(DEPDIR)/strace-nsfs.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='nsfs.c' object='strace-nsfs.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-nsfs.o `test -f 'nsfs.c' || echo '$(srcdir)/'`nsfs.c
+
+strace-nsfs.obj: nsfs.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-nsfs.obj -MD -MP -MF $(DEPDIR)/strace-nsfs.Tpo -c -o strace-nsfs.obj `if test -f 'nsfs.c'; then $(CYGPATH_W) 'nsfs.c'; else $(CYGPATH_W) '$(srcdir)/nsfs.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-nsfs.Tpo $(DEPDIR)/strace-nsfs.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='nsfs.c' object='strace-nsfs.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-nsfs.obj `if test -f 'nsfs.c'; then $(CYGPATH_W) 'nsfs.c'; else $(CYGPATH_W) '$(srcdir)/nsfs.c'; fi`
+
 strace-numa.o: numa.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-numa.o -MD -MP -MF $(DEPDIR)/strace-numa.Tpo -c -o strace-numa.o `test -f 'numa.c' || echo '$(srcdir)/'`numa.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-numa.Tpo $(DEPDIR)/strace-numa.Po
@@ -4670,6 +4800,34 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-resource.obj `if test -f 'resource.c'; then $(CYGPATH_W) 'resource.c'; else $(CYGPATH_W) '$(srcdir)/resource.c'; fi`
 
+strace-rt_sigframe.o: rt_sigframe.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rt_sigframe.o -MD -MP -MF $(DEPDIR)/strace-rt_sigframe.Tpo -c -o strace-rt_sigframe.o `test -f 'rt_sigframe.c' || echo '$(srcdir)/'`rt_sigframe.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-rt_sigframe.Tpo $(DEPDIR)/strace-rt_sigframe.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='rt_sigframe.c' object='strace-rt_sigframe.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rt_sigframe.o `test -f 'rt_sigframe.c' || echo '$(srcdir)/'`rt_sigframe.c
+
+strace-rt_sigframe.obj: rt_sigframe.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rt_sigframe.obj -MD -MP -MF $(DEPDIR)/strace-rt_sigframe.Tpo -c -o strace-rt_sigframe.obj `if test -f 'rt_sigframe.c'; then $(CYGPATH_W) 'rt_sigframe.c'; else $(CYGPATH_W) '$(srcdir)/rt_sigframe.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-rt_sigframe.Tpo $(DEPDIR)/strace-rt_sigframe.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='rt_sigframe.c' object='strace-rt_sigframe.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rt_sigframe.obj `if test -f 'rt_sigframe.c'; then $(CYGPATH_W) 'rt_sigframe.c'; else $(CYGPATH_W) '$(srcdir)/rt_sigframe.c'; fi`
+
+strace-rt_sigreturn.o: rt_sigreturn.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rt_sigreturn.o -MD -MP -MF $(DEPDIR)/strace-rt_sigreturn.Tpo -c -o strace-rt_sigreturn.o `test -f 'rt_sigreturn.c' || echo '$(srcdir)/'`rt_sigreturn.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-rt_sigreturn.Tpo $(DEPDIR)/strace-rt_sigreturn.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='rt_sigreturn.c' object='strace-rt_sigreturn.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rt_sigreturn.o `test -f 'rt_sigreturn.c' || echo '$(srcdir)/'`rt_sigreturn.c
+
+strace-rt_sigreturn.obj: rt_sigreturn.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rt_sigreturn.obj -MD -MP -MF $(DEPDIR)/strace-rt_sigreturn.Tpo -c -o strace-rt_sigreturn.obj `if test -f 'rt_sigreturn.c'; then $(CYGPATH_W) 'rt_sigreturn.c'; else $(CYGPATH_W) '$(srcdir)/rt_sigreturn.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-rt_sigreturn.Tpo $(DEPDIR)/strace-rt_sigreturn.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='rt_sigreturn.c' object='strace-rt_sigreturn.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-rt_sigreturn.obj `if test -f 'rt_sigreturn.c'; then $(CYGPATH_W) 'rt_sigreturn.c'; else $(CYGPATH_W) '$(srcdir)/rt_sigreturn.c'; fi`
+
 strace-rtc.o: rtc.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-rtc.o -MD -MP -MF $(DEPDIR)/strace-rtc.Tpo -c -o strace-rtc.o `test -f 'rtc.c' || echo '$(srcdir)/'`rtc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-rtc.Tpo $(DEPDIR)/strace-rtc.Po
@@ -4810,20 +4968,6 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-signalfd.obj `if test -f 'signalfd.c'; then $(CYGPATH_W) 'signalfd.c'; else $(CYGPATH_W) '$(srcdir)/signalfd.c'; fi`
 
-strace-sigreturn.o: sigreturn.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-sigreturn.o -MD -MP -MF $(DEPDIR)/strace-sigreturn.Tpo -c -o strace-sigreturn.o `test -f 'sigreturn.c' || echo '$(srcdir)/'`sigreturn.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-sigreturn.Tpo $(DEPDIR)/strace-sigreturn.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='sigreturn.c' object='strace-sigreturn.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-sigreturn.o `test -f 'sigreturn.c' || echo '$(srcdir)/'`sigreturn.c
-
-strace-sigreturn.obj: sigreturn.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-sigreturn.obj -MD -MP -MF $(DEPDIR)/strace-sigreturn.Tpo -c -o strace-sigreturn.obj `if test -f 'sigreturn.c'; then $(CYGPATH_W) 'sigreturn.c'; else $(CYGPATH_W) '$(srcdir)/sigreturn.c'; fi`
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-sigreturn.Tpo $(DEPDIR)/strace-sigreturn.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='sigreturn.c' object='strace-sigreturn.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-sigreturn.obj `if test -f 'sigreturn.c'; then $(CYGPATH_W) 'sigreturn.c'; else $(CYGPATH_W) '$(srcdir)/sigreturn.c'; fi`
-
 strace-sock.o: sock.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-sock.o -MD -MP -MF $(DEPDIR)/strace-sock.Tpo -c -o strace-sock.o `test -f 'sock.c' || echo '$(srcdir)/'`sock.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-sock.Tpo $(DEPDIR)/strace-sock.Po
@@ -4922,6 +5066,20 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-statfs.obj `if test -f 'statfs.c'; then $(CYGPATH_W) 'statfs.c'; else $(CYGPATH_W) '$(srcdir)/statfs.c'; fi`
 
+strace-statx.o: statx.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-statx.o -MD -MP -MF $(DEPDIR)/strace-statx.Tpo -c -o strace-statx.o `test -f 'statx.c' || echo '$(srcdir)/'`statx.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-statx.Tpo $(DEPDIR)/strace-statx.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='statx.c' object='strace-statx.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-statx.o `test -f 'statx.c' || echo '$(srcdir)/'`statx.c
+
+strace-statx.obj: statx.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-statx.obj -MD -MP -MF $(DEPDIR)/strace-statx.Tpo -c -o strace-statx.obj `if test -f 'statx.c'; then $(CYGPATH_W) 'statx.c'; else $(CYGPATH_W) '$(srcdir)/statx.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-statx.Tpo $(DEPDIR)/strace-statx.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='statx.c' object='strace-statx.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -c -o strace-statx.obj `if test -f 'statx.c'; then $(CYGPATH_W) 'statx.c'; else $(CYGPATH_W) '$(srcdir)/statx.c'; fi`
+
 strace-strace.o: strace.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-strace.o -MD -MP -MF $(DEPDIR)/strace-strace.Tpo -c -o strace-strace.o `test -f 'strace.c' || echo '$(srcdir)/'`strace.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-strace.Tpo $(DEPDIR)/strace-strace.Po
@@ -5788,8 +5946,6 @@
 
 $(top_srcdir)/xlat/access_flags.h: $(top_srcdir)/xlat/access_flags.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/aclipc.h: $(top_srcdir)/xlat/aclipc.in $(top_srcdir)/xlat/gen.sh
-	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/addrfams.h: $(top_srcdir)/xlat/addrfams.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/adjtimex_modes.h: $(top_srcdir)/xlat/adjtimex_modes.in $(top_srcdir)/xlat/gen.sh
@@ -5808,6 +5964,8 @@
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/at_flags.h: $(top_srcdir)/xlat/at_flags.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/at_statx_sync_types.h: $(top_srcdir)/xlat/at_statx_sync_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/atomic_ops.h: $(top_srcdir)/xlat/atomic_ops.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/audit_arch.h: $(top_srcdir)/xlat/audit_arch.in $(top_srcdir)/xlat/gen.sh
@@ -5822,6 +5980,8 @@
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/bootflags3.h: $(top_srcdir)/xlat/bootflags3.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bpf_attach_flags.h: $(top_srcdir)/xlat/bpf_attach_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/bpf_attach_type.h: $(top_srcdir)/xlat/bpf_attach_type.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/bpf_class.h: $(top_srcdir)/xlat/bpf_class.in $(top_srcdir)/xlat/gen.sh
@@ -6132,8 +6292,6 @@
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/open_mode_flags.h: $(top_srcdir)/xlat/open_mode_flags.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
-$(top_srcdir)/xlat/openmodessol.h: $(top_srcdir)/xlat/openmodessol.in $(top_srcdir)/xlat/gen.sh
-	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/packet_mreq_type.h: $(top_srcdir)/xlat/packet_mreq_type.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/perf_attr_size.h: $(top_srcdir)/xlat/perf_attr_size.in $(top_srcdir)/xlat/gen.sh
@@ -6320,6 +6478,10 @@
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/statfs_flags.h: $(top_srcdir)/xlat/statfs_flags.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/statx_attrs.h: $(top_srcdir)/xlat/statx_attrs.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/statx_masks.h: $(top_srcdir)/xlat/statx_masks.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/swap_flags.h: $(top_srcdir)/xlat/swap_flags.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/sync_file_range_flags.h: $(top_srcdir)/xlat/sync_file_range_flags.in $(top_srcdir)/xlat/gen.sh
@@ -6408,8 +6570,20 @@
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/v4l2_memories.h: $(top_srcdir)/xlat/v4l2_memories.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/v4l2_sliced_flags.h: $(top_srcdir)/xlat/v4l2_sliced_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/v4l2_streaming_capabilities.h: $(top_srcdir)/xlat/v4l2_streaming_capabilities.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/v4l2_tuner_audmodes.h: $(top_srcdir)/xlat/v4l2_tuner_audmodes.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/v4l2_tuner_capabilities.h: $(top_srcdir)/xlat/v4l2_tuner_capabilities.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/v4l2_tuner_rxsubchanses.h: $(top_srcdir)/xlat/v4l2_tuner_rxsubchanses.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/v4l2_tuner_types.h: $(top_srcdir)/xlat/v4l2_tuner_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/v4l2_vbi_flags.h: $(top_srcdir)/xlat/v4l2_vbi_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/wait4_options.h: $(top_srcdir)/xlat/wait4_options.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/waitid_types.h: $(top_srcdir)/xlat/waitid_types.in $(top_srcdir)/xlat/gen.sh
@@ -6446,6 +6620,7 @@
 
 dist-hook:
 	$(AM_V_GEN)echo $(VERSION) > $(distdir)/.tarball-version
+	${AM_V_GEN}echo $(COPYRIGHT_YEAR) > $(distdir)/.year
 
 news-check: NEWS
 	$(AM_V_GEN)if head -1 $< |				\
diff --git a/NEWS b/NEWS
index e5d01a3..b8c88eb 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,58 @@
+Noteworthy changes in release 4.17 (2017-05-24)
+===============================================
+
+* Changes in command line syntax
+  * Syscall classes specified in -e trace= option now have % prefix (like
+    -e trace=%process).  Old style class names without leading % are still
+    supported, but considered deprecated now.
+
+* Improvements
+  * Optimized syscall filtering.
+  * Improved representation of timestamps.
+  * Enhanced decoding of sched_setattr syscall.
+  * Added -e trace=%stat option for tracing variants of stat syscall.
+  * Added -e trace=%lstat option for tracing variants of lstat syscall.
+  * Added -e trace=%fstat option for tracing variants of fstat and fstatat
+    syscalls.
+  * Added -e trace=%%stat option for tracing syscalls used for querying file
+    status information (stat, lstat, fstat, fstatat, statx, and their
+    variations).
+  * Added -e trace=%statfs option for tracing statfs, statfs64 and statvfs
+    syscalls.
+  * Added -e trace=%fstatfs option for tracing fstatfs, fstatfs64 and fstatvfs
+    syscalls.
+  * Added -e trace=%%statfs option for tracing syscalls used for querying file
+    system statistics information (statfs-like, fstatfs-like and ustat).
+  * Added -e trace=/regex option for filtering syscalls using regular
+    expressions.
+  * Added support for prepending of question mark before syscall qualification
+    in -e trace expressions in order to suppress error in case no syscalls
+    matched the provided qualification.
+  * Implemented decoding of signal mask in rt_sigreturn syscall on alpha, arc,
+    arm, avr32, bfin, cris, hppa, m68k, metag, microblaze, mips, nios2, or1k,
+    powerpc, powerpc64, riscv, sh, sh64, sparc, sparc64, tile, x86, and xtensa
+    architectures.
+  * Implemented decoding of statx syscall.
+  * Implemented decoding of NS_* ioctl commands.
+  * Implemented decoding of the remaining V4L2_BUF_TYPE_* types.
+  * Implemented decoding of VIDIOC_[SG]_TUNER ioctl commands.
+  * Implemented decoding of NLMSG_ERROR netlink messages.
+  * Improved decoding of BPF_PROG_ATTACH command of bpf syscall.
+  * Improved decoding of misplaced parts in DM_* ioctl commands.
+  * Updated lists of ioctl commands from Linux 4.11.
+
+* Bug fixes
+  * Fixed decoding of flags argument of preadv2 and pwritev2 syscalls on x32.
+  * Fixed the number of arguments and tracing flags of alpha specific syscalls.
+  * Fixed decoding of old sigsuspend syscall on alpha, cris, mips, powerpc,
+    powerpc64, sh, sh64, sparc, and sparc64.
+  * Fixed decoding of sgetmask and ssetmask syscalls on 64-bit architectures.
+  * Fixed decoding of netlink messages received within struct msghdr.
+  * Worked around a bug in miscompiled aarch64 kernels leading to the 3rd
+    argument of sched_getattr syscall being not quite 32-bit.
+  * Fixed corner cases of printing inaccessible times argument of utimes
+    and futimesat syscalls.
+
 Noteworthy changes in release 4.16 (2017-02-14)
 ===============================================
 
diff --git a/README b/README
index ae80800..bc70155 100644
--- a/README
+++ b/README
@@ -8,7 +8,7 @@
 See the file NEWS for information on what has changed in recent versions.
 
 The project's homepage is at
-	https://sourceforge.net/projects/strace/
+	https://strace.io
 
 strace has a mailing list:
 	strace-devel@lists.sourceforge.net.
diff --git a/aio.c b/aio.c
index e246b35..5565d0c 100644
--- a/aio.c
+++ b/aio.c
@@ -3,6 +3,7 @@
  * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
  * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
  * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
+ * Copyright (c) 1999-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -73,7 +74,8 @@
 		tprints(cmds[cmd].name);
 		return cmds[cmd].sub;
 	}
-	tprintf("%u /* SUB_??? */", cmd);
+	tprintf("%u", cmd);
+	tprints_comment("SUB_???");
 	return SUB_NONE;
 }
 
diff --git a/bjm.c b/bjm.c
index 926add3..a9a777f 100644
--- a/bjm.c
+++ b/bjm.c
@@ -3,6 +3,7 @@
  * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
  * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
  * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
+ * Copyright (c) 1999-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/bpf.c b/bpf.c
index 9941018..2c709e1 100644
--- a/bpf.c
+++ b/bpf.c
@@ -37,6 +37,7 @@
 #include "xlat/bpf_prog_types.h"
 #include "xlat/bpf_map_update_elem_flags.h"
 #include "xlat/bpf_attach_type.h"
+#include "xlat/bpf_attach_flags.h"
 
 static int
 bpf_map_create(struct tcb *const tcp, const kernel_ulong_t addr,
@@ -197,21 +198,21 @@
 	if (umoven_or_printaddr(tcp, addr, size, &attr))
 		return RVAL_DECODED | RVAL_FD;
 
-	tprintf("{pathname=");
+	tprints("{pathname=");
 	printpath(tcp, attr.pathname);
 	tprints(", bpf_fd=");
 	printfd(tcp, attr.bpf_fd);
-	tprintf("}");
+	tprints("}");
 
 	return RVAL_DECODED | RVAL_FD;
 }
 
 static int
 bpf_prog_attach_detach(struct tcb *const tcp, const kernel_ulong_t addr,
-		       unsigned int size, bool print_attach_bpf_fd)
+		       unsigned int size, bool print_attach)
 {
 	struct {
-		uint32_t target_fd, attach_bpf_fd, attach_type;
+		uint32_t target_fd, attach_bpf_fd, attach_type, attach_flags;
 	} attr = {};
 
 	if (!size) {
@@ -223,15 +224,19 @@
 	if (umoven_or_printaddr(tcp, addr, size, &attr))
 		return RVAL_DECODED;
 
-	tprintf("{target_fd=");
+	tprints("{target_fd=");
 	printfd(tcp, attr.target_fd);
-	if (print_attach_bpf_fd) {
-		tprintf(", attach_bpf_fd=");
+	if (print_attach) {
+		tprints(", attach_bpf_fd=");
 		printfd(tcp, attr.attach_bpf_fd);
 	}
-	tprintf(", attach_type=");
+	tprints(", attach_type=");
 	printxval(bpf_attach_type, attr.attach_type, "BPF_???");
-	tprintf("}");
+	if (print_attach) {
+		tprints(", attach_flags=");
+		printflags(bpf_attach_flags, attr.attach_flags, "BPF_F_???");
+	}
+	tprints("}");
 
 	return RVAL_DECODED;
 }
diff --git a/btrfs.c b/btrfs.c
index e007040..141cafa 100644
--- a/btrfs.c
+++ b/btrfs.c
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2016 Jeff Mahoney <jeffm@suse.com>
+ * Copyright (c) 2016-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -180,7 +181,7 @@
 {
 	tprintf(", %s=%" PRIu64, name, value);
 	if (value == UINT64_MAX)
-		tprints(" /* UINT64_MAX */");
+		tprints_comment("UINT64_MAX");
 }
 
 #define print_member_u64(obj, name) print_u64(#name, obj->name)
@@ -261,19 +262,15 @@
 static void
 btrfs_print_key_type(uint32_t type)
 {
-	const char *str = xlookup(btrfs_key_types, type);
 	tprintf("%u", type);
-	if (str)
-		tprintf(" /* %s */", str);
+	tprints_comment(xlookup(btrfs_key_types, type));
 }
 
 static void
 btrfs_print_objectid(uint64_t objectid)
 {
-	const char *str = xlookup(btrfs_tree_objectids, objectid);
 	tprintf("%" PRIu64, objectid);
-	if (str)
-		tprintf(" /* %s */", str);
+	tprints_comment(xlookup(btrfs_tree_objectids, objectid));
 }
 
 static void
@@ -412,7 +409,7 @@
 	if (value) {
 		tprintf(", %s=%" PRIu64, name, value);
 		if (value == UINT64_MAX)
-			tprints(" /* UINT64_MAX */");
+			tprints_comment("UINT64_MAX");
 	}
 }
 #define print_key_value(tcp, key, name)					\
@@ -610,7 +607,7 @@
 
 		tprintf("%" PRIu64, (uint64_t) args.len);
 		if (args.len == UINT64_MAX)
-			tprints(" /* UINT64_MAX */");
+			tprints_comment("UINT64_MAX");
 
 		tprints(", flags=");
 		printflags64(btrfs_defrag_flags, args.flags,
@@ -702,35 +699,27 @@
 		printxval64(btrfs_dev_replace_results, args.result,
 			    "BTRFS_IOCTL_DEV_REPLACE_RESULT_???");
 		if (args.cmd == BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS) {
-			char buf[sizeof("HH:MM:SS") + 1];
-			time_t time;
 			tprints(", ");
 			printxval64(btrfs_dev_replace_state,
 				   args.status.replace_state,
 				   "BTRFS_IOCTL_DEV_REPLACE_STATE_???");
-			tprintf(", progress_1000=%" PRIu64 " /* ",
+			tprintf(", progress_1000=%" PRIu64,
 				(uint64_t) args.status.progress_1000);
+
 			if (args.status.progress_1000 <= 1000)
-				tprintf("%" PRIu64 ".%.2" PRIu64 "%%",
-					(uint64_t) args.status.progress_1000 / 10,
-					(uint64_t) args.status.progress_1000 % 10);
-			else
-				tprints("???");
-			tprints(" */ ,");
+				tprintf_comment("%u.%u%%",
+					(unsigned) args.status.progress_1000 / 10,
+					(unsigned) args.status.progress_1000 % 10);
 
-			time = args.status.time_started;
-			strftime(buf, sizeof(buf), "%T",
-				 localtime(&time));
-			tprintf("time_started=%" PRIu64" /* %s */, ",
-				(uint64_t) args.status.time_started, buf);
+			tprintf(", time_started=%" PRIu64,
+				(uint64_t) args.status.time_started);
+			tprints_comment(sprinttime(args.status.time_started));
 
-			time = args.status.time_stopped;
-			strftime(buf, sizeof(buf), "%T",
-				 localtime(&time));
-			tprintf("time_stopped=%" PRIu64" /* %s */, ",
-				(uint64_t) args.status.time_stopped, buf);
+			tprintf(", time_stopped=%" PRIu64,
+				(uint64_t) args.status.time_stopped);
+			tprints_comment(sprinttime(args.status.time_stopped));
 
-			tprintf("num_write_errors=%" PRIu64
+			tprintf(", num_write_errors=%" PRIu64
 				", num_uncorrectable_read_errors=%" PRIu64,
 				(uint64_t) args.status.num_write_errors,
 				(uint64_t) args.status.num_uncorrectable_read_errors);
@@ -779,14 +768,17 @@
 		if (umove_or_printaddr(tcp, arg, &flarg))
 			break;
 
-		tprints("[ /* supported */ ");
+		tprints("[");
 		btrfs_print_features(&flarg[0]);
+		tprints_comment("supported");
 
-		tprints(", /* safe to set */ ");
+		tprints(", ");
 		btrfs_print_features(&flarg[1]);
+		tprints_comment("safe to set");
 
-		tprints(", /* safe to clear */ ");
+		tprints(", ");
 		btrfs_print_features(&flarg[2]);
+		tprints_comment("safe to clear");
 		tprints("]");
 
 		break;
@@ -869,10 +861,8 @@
 				tprints("...");
 				break;
 			}
-			const char *name = xlookup(btrfs_dev_stats_values, i);
-			if (name)
-				tprintf("/* %s */ ", name);
 			tprintf("%" PRI__u64, args.values[i]);
+			tprints_comment(xlookup(btrfs_dev_stats_values, i));
 		}
 		tprints("]}");
 		break;
@@ -1108,7 +1098,7 @@
 					args.start);
 				tprintf("%" PRI__u64, args.end);
 				if (args.end == UINT64_MAX)
-					tprints(" /* UINT64_MAX */");
+					tprints_comment("UINT64_MAX");
 				tprints(", flags=");
 				printflags64(btrfs_scrub_flags, args.flags,
 					     "BTRFS_SCRUB_???");
diff --git a/cacheflush.c b/cacheflush.c
index 8c2c05c..f9fc582 100644
--- a/cacheflush.c
+++ b/cacheflush.c
@@ -4,6 +4,7 @@
  * Copyright (c) 2010 Carmelo Amoroso <carmelo.amoroso@st.com>
  * Copyright (c) 2015 Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
  * Copyright (c) 2014-2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2014-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/capability.c b/capability.c
index a3f06ea..760bdda 100644
--- a/capability.c
+++ b/capability.c
@@ -2,6 +2,7 @@
  * Copyright (c) 2000 Wichert Akkerman <wakkerma@debian.org>
  * Copyright (c) 2011 Denys Vlasenko <dvlasenk@redhat.com>
  * Copyright (c) 2005-2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2014-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/clone.c b/clone.c
index 5c60fbe..a1c799a 100644
--- a/clone.c
+++ b/clone.c
@@ -4,6 +4,7 @@
  * Copyright (c) 2008 Jan Kratochvil <jan.kratochvil@redhat.com>
  * Copyright (c) 2009-2013 Denys Vlasenko <dvlasenk@redhat.com>
  * Copyright (c) 2006-2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2014-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/config.guess b/config.guess
index 3c022c5..69ed3e5 100755
--- a/config.guess
+++ b/config.guess
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright 1992-2015 Free Software Foundation, Inc.
+#   Copyright 1992-2017 Free Software Foundation, Inc.
 
-timestamp='2015-09-14'
+timestamp='2017-03-05'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -27,7 +27,7 @@
 # Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
 #
 # You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
 #
 # Please send patches to <config-patches@gnu.org>.
 
@@ -50,7 +50,7 @@
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright 1992-2015 Free Software Foundation, Inc.
+Copyright 1992-2017 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -186,9 +186,12 @@
 	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
 	esac
 	# The Operating System including object format, if it has switched
-	# to ELF recently, or will in the future.
+	# to ELF recently (or will in the future) and ABI.
 	case "${UNAME_MACHINE_ARCH}" in
-	    arm*|earm*|i386|m68k|ns32k|sh3*|sparc|vax)
+	    earm*)
+		os=netbsdelf
+		;;
+	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
 		eval $set_cc_for_build
 		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
 			| grep -q __ELF__
@@ -237,6 +240,10 @@
 	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
 	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
 	exit ;;
+    *:LibertyBSD:*:*)
+	UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
+	echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
+	exit ;;
     *:ekkoBSD:*:*)
 	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
 	exit ;;
@@ -268,42 +275,42 @@
 	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
 	case "$ALPHA_CPU_TYPE" in
 	    "EV4 (21064)")
-		UNAME_MACHINE="alpha" ;;
+		UNAME_MACHINE=alpha ;;
 	    "EV4.5 (21064)")
-		UNAME_MACHINE="alpha" ;;
+		UNAME_MACHINE=alpha ;;
 	    "LCA4 (21066/21068)")
-		UNAME_MACHINE="alpha" ;;
+		UNAME_MACHINE=alpha ;;
 	    "EV5 (21164)")
-		UNAME_MACHINE="alphaev5" ;;
+		UNAME_MACHINE=alphaev5 ;;
 	    "EV5.6 (21164A)")
-		UNAME_MACHINE="alphaev56" ;;
+		UNAME_MACHINE=alphaev56 ;;
 	    "EV5.6 (21164PC)")
-		UNAME_MACHINE="alphapca56" ;;
+		UNAME_MACHINE=alphapca56 ;;
 	    "EV5.7 (21164PC)")
-		UNAME_MACHINE="alphapca57" ;;
+		UNAME_MACHINE=alphapca57 ;;
 	    "EV6 (21264)")
-		UNAME_MACHINE="alphaev6" ;;
+		UNAME_MACHINE=alphaev6 ;;
 	    "EV6.7 (21264A)")
-		UNAME_MACHINE="alphaev67" ;;
+		UNAME_MACHINE=alphaev67 ;;
 	    "EV6.8CB (21264C)")
-		UNAME_MACHINE="alphaev68" ;;
+		UNAME_MACHINE=alphaev68 ;;
 	    "EV6.8AL (21264B)")
-		UNAME_MACHINE="alphaev68" ;;
+		UNAME_MACHINE=alphaev68 ;;
 	    "EV6.8CX (21264D)")
-		UNAME_MACHINE="alphaev68" ;;
+		UNAME_MACHINE=alphaev68 ;;
 	    "EV6.9A (21264/EV69A)")
-		UNAME_MACHINE="alphaev69" ;;
+		UNAME_MACHINE=alphaev69 ;;
 	    "EV7 (21364)")
-		UNAME_MACHINE="alphaev7" ;;
+		UNAME_MACHINE=alphaev7 ;;
 	    "EV7.9 (21364A)")
-		UNAME_MACHINE="alphaev79" ;;
+		UNAME_MACHINE=alphaev79 ;;
 	esac
 	# A Pn.n version is a patched version.
 	# A Vn.n version is a released version.
 	# A Tn.n version is a released field test version.
 	# A Xn.n version is an unreleased experimental baselevel.
 	# 1.2 uses "1.2" for uname -r.
-	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
 	# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
 	exitcode=$?
 	trap '' 0
@@ -376,16 +383,16 @@
 	exit ;;
     i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
 	eval $set_cc_for_build
-	SUN_ARCH="i386"
+	SUN_ARCH=i386
 	# If there is a compiler, see if it is configured for 64-bit objects.
 	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
 	# This test works for both compilers.
-	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+	if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
 	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
-		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
 		grep IS_64BIT_ARCH >/dev/null
 	    then
-		SUN_ARCH="x86_64"
+		SUN_ARCH=x86_64
 	    fi
 	fi
 	echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
@@ -410,7 +417,7 @@
 	exit ;;
     sun*:*:4.2BSD:*)
 	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
-	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+	test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3
 	case "`/bin/arch`" in
 	    sun3)
 		echo m68k-sun-sunos${UNAME_RELEASE}
@@ -635,13 +642,13 @@
 		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
 		    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
 		    case "${sc_cpu_version}" in
-		      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
-		      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+		      523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
+		      528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
 		      532)                      # CPU_PA_RISC2_0
 			case "${sc_kernel_bits}" in
-			  32) HP_ARCH="hppa2.0n" ;;
-			  64) HP_ARCH="hppa2.0w" ;;
-			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
+			  32) HP_ARCH=hppa2.0n ;;
+			  64) HP_ARCH=hppa2.0w ;;
+			  '') HP_ARCH=hppa2.0 ;;   # HP-UX 10.20
 			esac ;;
 		    esac
 		fi
@@ -680,11 +687,11 @@
 		    exit (0);
 		}
 EOF
-		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+		    (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
 		    test -z "$HP_ARCH" && HP_ARCH=hppa
 		fi ;;
 	esac
-	if [ ${HP_ARCH} = "hppa2.0w" ]
+	if [ ${HP_ARCH} = hppa2.0w ]
 	then
 	    eval $set_cc_for_build
 
@@ -697,12 +704,12 @@
 	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
 	    # => hppa64-hp-hpux11.23
 
-	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+	    if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
 		grep -q __LP64__
 	    then
-		HP_ARCH="hppa2.0w"
+		HP_ARCH=hppa2.0w
 	    else
-		HP_ARCH="hppa64"
+		HP_ARCH=hppa64
 	    fi
 	fi
 	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
@@ -807,14 +814,14 @@
 	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
 	exit ;;
     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
-	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+	FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
 	FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
 	echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
 	exit ;;
     5000:UNIX_System_V:4.*:*)
-	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-	FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
+	FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
 	echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
 	exit ;;
     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
@@ -830,10 +837,11 @@
 	UNAME_PROCESSOR=`/usr/bin/uname -p`
 	case ${UNAME_PROCESSOR} in
 	    amd64)
-		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
-	    *)
-		echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+		UNAME_PROCESSOR=x86_64 ;;
+	    i386)
+		UNAME_PROCESSOR=i586 ;;
 	esac
+	echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
 	exit ;;
     i*:CYGWIN*:*)
 	echo ${UNAME_MACHINE}-pc-cygwin
@@ -896,7 +904,7 @@
 	exit ;;
     *:GNU/*:*:*)
 	# other systems with GNU libc and userland
-	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
+	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
 	exit ;;
     i*86:Minix:*:*)
 	echo ${UNAME_MACHINE}-pc-minix
@@ -919,7 +927,7 @@
 	  EV68*) UNAME_MACHINE=alphaev68 ;;
 	esac
 	objdump --private-headers /bin/sh | grep -q ld.so.1
-	if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
+	if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
 	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     arc:Linux:*:* | arceb:Linux:*:*)
@@ -993,6 +1001,9 @@
 	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
 	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
 	;;
+    mips64el:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
     openrisc*:Linux:*:*)
 	echo or1k-unknown-linux-${LIBC}
 	exit ;;
@@ -1025,6 +1036,9 @@
     ppcle:Linux:*:*)
 	echo powerpcle-unknown-linux-${LIBC}
 	exit ;;
+    riscv32:Linux:*:* | riscv64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
 	echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
 	exit ;;
@@ -1123,7 +1137,7 @@
 	# uname -m prints for DJGPP always 'pc', but it prints nothing about
 	# the processor, so we play safe by assuming i586.
 	# Note: whatever this is, it MUST be the same as what config.sub
-	# prints for the "djgpp" host, or else GDB configury will decide that
+	# prints for the "djgpp" host, or else GDB configure will decide that
 	# this is a cross-build.
 	echo i586-pc-msdosdjgpp
 	exit ;;
@@ -1272,6 +1286,9 @@
     SX-8R:SUPER-UX:*:*)
 	echo sx8r-nec-superux${UNAME_RELEASE}
 	exit ;;
+    SX-ACE:SUPER-UX:*:*)
+	echo sxace-nec-superux${UNAME_RELEASE}
+	exit ;;
     Power*:Rhapsody:*:*)
 	echo powerpc-apple-rhapsody${UNAME_RELEASE}
 	exit ;;
@@ -1285,9 +1302,9 @@
 	    UNAME_PROCESSOR=powerpc
 	fi
 	if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
-	    if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+	    if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
 		if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
-		    (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		    (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
 		    grep IS_64BIT_ARCH >/dev/null
 		then
 		    case $UNAME_PROCESSOR in
@@ -1309,7 +1326,7 @@
 	exit ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
 	UNAME_PROCESSOR=`uname -p`
-	if test "$UNAME_PROCESSOR" = "x86"; then
+	if test "$UNAME_PROCESSOR" = x86; then
 		UNAME_PROCESSOR=i386
 		UNAME_MACHINE=pc
 	fi
@@ -1327,6 +1344,9 @@
     NSR-?:NONSTOP_KERNEL:*:*)
 	echo nsr-tandem-nsk${UNAME_RELEASE}
 	exit ;;
+    NSX-?:NONSTOP_KERNEL:*:*)
+	echo nsx-tandem-nsk${UNAME_RELEASE}
+	exit ;;
     *:NonStop-UX:*:*)
 	echo mips-compaq-nonstopux
 	exit ;;
@@ -1340,7 +1360,7 @@
 	# "uname -m" is not consistent, so use $cputype instead. 386
 	# is converted to i386 for consistency with other x86
 	# operating systems.
-	if test "$cputype" = "386"; then
+	if test "$cputype" = 386; then
 	    UNAME_MACHINE=i386
 	else
 	    UNAME_MACHINE="$cputype"
@@ -1382,7 +1402,7 @@
 	echo i386-pc-xenix
 	exit ;;
     i*86:skyos:*:*)
-	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'`
 	exit ;;
     i*86:rdos:*:*)
 	echo ${UNAME_MACHINE}-pc-rdos
@@ -1393,23 +1413,25 @@
     x86_64:VMkernel:*:*)
 	echo ${UNAME_MACHINE}-unknown-esx
 	exit ;;
+    amd64:Isilon\ OneFS:*:*)
+	echo x86_64-unknown-onefs
+	exit ;;
 esac
 
 cat >&2 <<EOF
 $0: unable to guess system type
 
-This script, last modified $timestamp, has failed to recognize
-the operating system you are using. It is advised that you
-download the most up to date version of the config scripts from
+This script (version $timestamp), has failed to recognize the
+operating system you are using. If your script is old, overwrite
+config.guess and config.sub with the latest versions from:
 
-  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
 and
-  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
 
-If the version you run ($0) is already up to date, please
-send the following data and any information you think might be
-pertinent to <config-patches@gnu.org> in order to provide the needed
-information to handle your system.
+If $0 has already been updated, send the following data and any
+information you think might be pertinent to config-patches@gnu.org to
+provide the necessary information to handle your system.
 
 config.guess timestamp = $timestamp
 
diff --git a/config.h.in b/config.h.in
index 8b335f8..54b9892 100644
--- a/config.h.in
+++ b/config.h.in
@@ -27,6 +27,9 @@
 /* Define for the Blackfin architecture. */
 #undef BFIN
 
+/* Current copyright year. */
+#undef COPYRIGHT_YEAR
+
 /* Define for the CRISv10 architecture. */
 #undef CRISV10
 
@@ -390,6 +393,14 @@
    don't. */
 #undef HAVE_DECL_SYS_ERRLIST
 
+/* Define to 1 if you have the declaration of `V4L2_BUF_TYPE_SDR_CAPTURE', and
+   to 0 if you don't. */
+#undef HAVE_DECL_V4L2_BUF_TYPE_SDR_CAPTURE
+
+/* Define to 1 if you have the declaration of `V4L2_BUF_TYPE_SDR_OUTPUT', and
+   to 0 if you don't. */
+#undef HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT
+
 /* Define to 1 if you have the declaration of
    `V4L2_BUF_TYPE_SLICED_VBI_CAPTURE', and to 0 if you don't. */
 #undef HAVE_DECL_V4L2_BUF_TYPE_SLICED_VBI_CAPTURE
@@ -743,6 +754,9 @@
    file. */
 #undef HAVE_LINUX_NETFILTER_IPV6_IP6_TABLES_H
 
+/* Define to 1 if you have the <linux/nsfs.h> header file. */
+#undef HAVE_LINUX_NSFS_H
+
 /* Define to 1 if you have the <linux/perf_event.h> header file. */
 #undef HAVE_LINUX_PERF_EVENT_H
 
@@ -1038,6 +1052,12 @@
 /* Define to 1 if `domainname' is a member of `struct utsname'. */
 #undef HAVE_STRUCT_UTSNAME_DOMAINNAME
 
+/* Define to 1 if `buffersize' is a member of `struct v4l2_sdr_format'. */
+#undef HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE
+
+/* Define to 1 if `global_alpha' is a member of `struct v4l2_window'. */
+#undef HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA
+
 /* Define to 1 if the system has the type `struct __kernel_flock'. */
 #undef HAVE_STRUCT___KERNEL_FLOCK
 
@@ -1092,8 +1112,8 @@
 /* Define to 1 if typeof works with your compiler. */
 #undef HAVE_TYPEOF
 
-/* Define to 1 if union bpf_attr.attach_type initialization works */
-#undef HAVE_UNION_BPF_ATTR_ATTACH_TYPE
+/* Define to 1 if union bpf_attr.attach_flags initialization works */
+#undef HAVE_UNION_BPF_ATTR_ATTACH_FLAGS
 
 /* Define to 1 if union bpf_attr.bpf_fd initialization works */
 #undef HAVE_UNION_BPF_ATTR_BPF_FD
diff --git a/config.status b/config.status
index e383585..da6c496 100755
--- a/config.status
+++ b/config.status
@@ -380,7 +380,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by strace $as_me 4.16, which was
+This file was extended by strace $as_me 4.17, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -430,7 +430,7 @@
 
 ac_cs_config=""
 ac_cs_version="\
-strace config.status 4.16
+strace config.status 4.17
 configured by ./configure, generated by GNU Autoconf 2.69,
   with options \"$ac_cs_config\"
 
@@ -438,7 +438,7 @@
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
 
-ac_pwd='/usr/local/google/home/enh/Downloads/strace-4.16'
+ac_pwd='/tmp/strace-4.17'
 srcdir='.'
 INSTALL='/usr/bin/install -c'
 MKDIR_P='/bin/mkdir -p'
@@ -736,6 +736,7 @@
 S["arch_mx32"]="x32"
 S["arch_m32"]="i386"
 S["arch"]="x86_64"
+S["COPYRIGHT_YEAR"]="2017"
 S["CODE_COVERAGE_RULES"]="\n"\
 "# Code coverage\n"\
 "#\n"\
@@ -903,8 +904,8 @@
 S["LDFLAGS"]=""
 S["CFLAGS"]="-g -O2"
 S["CC"]="gcc"
-S["DEB_CHANGELOGTIME"]="Wed, 15 Feb 2017 11:38:25 -0800"
-S["RPM_CHANGELOGTIME"]="Wed Feb 15 2017"
+S["DEB_CHANGELOGTIME"]="Thu, 25 May 2017 15:09:49 -0700"
+S["RPM_CHANGELOGTIME"]="Thu May 25 2017"
 S["host_os"]="linux-gnu"
 S["host_vendor"]="pc"
 S["host_cpu"]="x86_64"
@@ -930,13 +931,13 @@
 S["MKDIR_P"]="/bin/mkdir -p"
 S["INSTALL_STRIP_PROGRAM"]="$(install_sh) -c -s"
 S["STRIP"]=""
-S["install_sh"]="${SHELL} /usr/local/google/home/enh/Downloads/strace-4.16/install-sh"
-S["MAKEINFO"]="${SHELL} /usr/local/google/home/enh/Downloads/strace-4.16/missing makeinfo"
-S["AUTOHEADER"]="${SHELL} /usr/local/google/home/enh/Downloads/strace-4.16/missing autoheader"
-S["AUTOMAKE"]="${SHELL} /usr/local/google/home/enh/Downloads/strace-4.16/missing automake-1.14"
-S["AUTOCONF"]="${SHELL} /usr/local/google/home/enh/Downloads/strace-4.16/missing autoconf"
-S["ACLOCAL"]="${SHELL} /usr/local/google/home/enh/Downloads/strace-4.16/missing aclocal-1.14"
-S["VERSION"]="4.16"
+S["install_sh"]="${SHELL} /tmp/strace-4.17/install-sh"
+S["MAKEINFO"]="${SHELL} /tmp/strace-4.17/missing makeinfo"
+S["AUTOHEADER"]="${SHELL} /tmp/strace-4.17/missing autoheader"
+S["AUTOMAKE"]="${SHELL} /tmp/strace-4.17/missing automake-1.14"
+S["AUTOCONF"]="${SHELL} /tmp/strace-4.17/missing autoconf"
+S["ACLOCAL"]="${SHELL} /tmp/strace-4.17/missing aclocal-1.14"
+S["VERSION"]="4.17"
 S["PACKAGE"]="strace"
 S["CYGPATH_W"]="echo"
 S["am__isrc"]=""
@@ -975,8 +976,8 @@
 S["exec_prefix"]="${prefix}"
 S["PACKAGE_URL"]="https://strace.io"
 S["PACKAGE_BUGREPORT"]="strace-devel@lists.sourceforge.net"
-S["PACKAGE_STRING"]="strace 4.16"
-S["PACKAGE_VERSION"]="4.16"
+S["PACKAGE_STRING"]="strace 4.17"
+S["PACKAGE_VERSION"]="4.17"
 S["PACKAGE_TARNAME"]="strace"
 S["PACKAGE_NAME"]="strace"
 S["PATH_SEPARATOR"]=":"
@@ -1024,12 +1025,12 @@
 BEGIN {
 D["PACKAGE_NAME"]=" \"strace\""
 D["PACKAGE_TARNAME"]=" \"strace\""
-D["PACKAGE_VERSION"]=" \"4.16\""
-D["PACKAGE_STRING"]=" \"strace 4.16\""
+D["PACKAGE_VERSION"]=" \"4.17\""
+D["PACKAGE_STRING"]=" \"strace 4.17\""
 D["PACKAGE_BUGREPORT"]=" \"strace-devel@lists.sourceforge.net\""
 D["PACKAGE_URL"]=" \"https://strace.io\""
 D["PACKAGE"]=" \"strace\""
-D["VERSION"]=" \"4.16\""
+D["VERSION"]=" \"4.17\""
 D["STDC_HEADERS"]=" 1"
 D["HAVE_SYS_TYPES_H"]=" 1"
 D["HAVE_SYS_STAT_H"]=" 1"
@@ -1045,6 +1046,7 @@
 D["_GNU_SOURCE"]=" 1"
 D["_POSIX_PTHREAD_SEMANTICS"]=" 1"
 D["_TANDEM_SOURCE"]=" 1"
+D["COPYRIGHT_YEAR"]=" \"2017\""
 D["X86_64"]=" 1"
 D["ENABLE_ARM_OABI"]=" 0"
 D["HAVE_TYPEOF"]=" 1"
@@ -1263,6 +1265,8 @@
 D["HAVE_DECL_V4L2_BUF_TYPE_SLICED_VBI_CAPTURE"]=" 1"
 D["HAVE_DECL_V4L2_BUF_TYPE_SLICED_VBI_OUTPUT"]=" 1"
 D["HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY"]=" 1"
+D["HAVE_DECL_V4L2_BUF_TYPE_SDR_CAPTURE"]=" 0"
+D["HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT"]=" 0"
 D["HAVE_DECL_V4L2_TUNER_RADIO"]=" 1"
 D["HAVE_DECL_V4L2_TUNER_ANALOG_TV"]=" 1"
 D["HAVE_DECL_V4L2_TUNER_DIGITAL_TV"]=" 1"
@@ -1297,6 +1301,7 @@
 D["HAVE_DECL_V4L2_CTRL_TYPE_STRING"]=" 1"
 D["HAVE_DECL_V4L2_CTRL_TYPE_BITMASK"]=" 1"
 D["HAVE_DECL_V4L2_CTRL_TYPE_INTEGER_MENU"]=" 1"
+D["HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA"]=" 1"
 D["HAVE_BLKGETSIZE64"]=" 1"
 D["SIZEOF_LONG"]=" 8"
 D["SIZEOF_LONG_LONG"]=" 8"
diff --git a/config.sub b/config.sub
index 7a8ce3e..569b01e 100755
--- a/config.sub
+++ b/config.sub
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright 1992-2015 Free Software Foundation, Inc.
+#   Copyright 1992-2017 Free Software Foundation, Inc.
 
-timestamp='2015-08-20'
+timestamp='2017-03-21'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -33,7 +33,7 @@
 # Otherwise, we print the canonical config type on stdout and succeed.
 
 # You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
 
 # This file is supposed to be the same for all GNU packages
 # and recognize all the CPU types, system types and aliases
@@ -53,8 +53,7 @@
 me=`echo "$0" | sed -e 's,.*/,,'`
 
 usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
-       $0 [OPTION] ALIAS
+Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
 
 Canonicalize a configuration name.
 
@@ -68,7 +67,7 @@
 version="\
 GNU config.sub ($timestamp)
 
-Copyright 1992-2015 Free Software Foundation, Inc.
+Copyright 1992-2017 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -118,7 +117,7 @@
   nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
   linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
   knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
-  kopensolaris*-gnu* | \
+  kopensolaris*-gnu* | cloudabi*-eabi* | \
   storm-chaos* | os2-emx* | rtmk-nova*)
     os=-$maybe_os
     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
@@ -302,6 +301,7 @@
 	| open8 | or1k | or1knd | or32 \
 	| pdp10 | pdp11 | pj | pjl \
 	| powerpc | powerpc64 | powerpc64le | powerpcle \
+	| pru \
 	| pyramid \
 	| riscv32 | riscv64 \
 	| rl78 | rx \
@@ -315,6 +315,7 @@
 	| ubicom32 \
 	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
 	| visium \
+	| wasm32 \
 	| we32k \
 	| x86 | xc16x | xstormy16 | xtensa \
 	| z8k | z80)
@@ -429,6 +430,7 @@
 	| orion-* \
 	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
 	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
+	| pru-* \
 	| pyramid-* \
 	| riscv32-* | riscv64-* \
 	| rl78-* | romp-* | rs6000-* | rx-* \
@@ -445,6 +447,7 @@
 	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
 	| vax-* \
 	| visium-* \
+	| wasm32-* \
 	| we32k-* \
 	| x86-* | x86_64-* | xc16x-* | xps100-* \
 	| xstormy16-* | xtensa*-* \
@@ -521,7 +524,7 @@
 		basic_machine=i386-pc
 		os=-aros
 		;;
-        asmjs)
+	asmjs)
 		basic_machine=asmjs-unknown
 		;;
 	aux)
@@ -644,6 +647,14 @@
 		basic_machine=m68k-bull
 		os=-sysv3
 		;;
+	e500v[12])
+		basic_machine=powerpc-unknown
+		os=$os"spe"
+		;;
+	e500v[12]-*)
+		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=$os"spe"
+		;;
 	ebmon29k)
 		basic_machine=a29k-amd
 		os=-ebmon
@@ -939,6 +950,9 @@
 	nsr-tandem)
 		basic_machine=nsr-tandem
 		;;
+	nsx-tandem)
+		basic_machine=nsx-tandem
+		;;
 	op50n-* | op60c-*)
 		basic_machine=hppa1.1-oki
 		os=-proelf
@@ -1023,7 +1037,7 @@
 	ppc-* | ppcbe-*)
 		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
 		;;
-	ppcle | powerpclittle | ppc-le | powerpc-little)
+	ppcle | powerpclittle)
 		basic_machine=powerpcle-unknown
 		;;
 	ppcle-* | powerpclittle-*)
@@ -1033,7 +1047,7 @@
 		;;
 	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
 		;;
-	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+	ppc64le | powerpc64little)
 		basic_machine=powerpc64le-unknown
 		;;
 	ppc64le-* | powerpc64little-*)
@@ -1234,6 +1248,9 @@
 		basic_machine=a29k-wrs
 		os=-vxworks
 		;;
+	wasm32)
+		basic_machine=wasm32-unknown
+		;;
 	w65*)
 		basic_machine=w65-wdc
 		os=-none
@@ -1383,14 +1400,14 @@
 	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
 	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
 	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
-	      | -bitrig* | -openbsd* | -solidbsd* \
+	      | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
 	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
 	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
 	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
 	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-	      | -chorusos* | -chorusrdb* | -cegcc* \
+	      | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
 	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-	      | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+	      | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
 	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \
 	      | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
 	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
@@ -1399,7 +1416,8 @@
 	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
 	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
 	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
+	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
+	      | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*)
 	# Remember, each alternative MUST END IN *, to match a version number.
 		;;
 	-qnx*)
@@ -1531,6 +1549,8 @@
 		;;
 	-nacl*)
 		;;
+	-ios)
+		;;
 	-none)
 		;;
 	*)
@@ -1626,6 +1646,9 @@
 	sparc-* | *-sun)
 		os=-sunos4.1.1
 		;;
+	pru-*)
+		os=-elf
+		;;
 	*-be)
 		os=-beos
 		;;
diff --git a/configure b/configure
index 36905ea..9a1c087 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for strace 4.16.
+# Generated by GNU Autoconf 2.69 for strace 4.17.
 #
 # Report bugs to <strace-devel@lists.sourceforge.net>.
 #
@@ -582,8 +582,8 @@
 # Identity of this package.
 PACKAGE_NAME='strace'
 PACKAGE_TARNAME='strace'
-PACKAGE_VERSION='4.16'
-PACKAGE_STRING='strace 4.16'
+PACKAGE_VERSION='4.17'
+PACKAGE_STRING='strace 4.17'
 PACKAGE_BUGREPORT='strace-devel@lists.sourceforge.net'
 PACKAGE_URL='https://strace.io'
 
@@ -658,6 +658,7 @@
 arch_mx32
 arch_m32
 arch
+COPYRIGHT_YEAR
 CODE_COVERAGE_RULES
 CODE_COVERAGE_LDFLAGS
 CODE_COVERAGE_CXXFLAGS
@@ -1345,7 +1346,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures strace 4.16 to adapt to many kinds of systems.
+\`configure' configures strace 4.17 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1415,7 +1416,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of strace 4.16:";;
+     short | recursive ) echo "Configuration of strace 4.17:";;
    esac
   cat <<\_ACEOF
 
@@ -1527,7 +1528,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-strace configure 4.16
+strace configure 4.17
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2267,7 +2268,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by strace $as_me 4.16, which was
+It was created by strace $as_me 4.17, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2619,6 +2620,7 @@
 
 
 
+
 ac_aux_dir=
 for ac_dir in . "$srcdir"/.; do
   if test -f "$ac_dir/install-sh"; then
@@ -3136,7 +3138,7 @@
 
 # Define the identity of the package.
  PACKAGE='strace'
- VERSION='4.16'
+ VERSION='4.17'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -8529,6 +8531,12 @@
 
 
 
+
+$as_echo "#define COPYRIGHT_YEAR \"2017\"" >>confdefs.h
+
+COPYRIGHT_YEAR=2017
+
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for supported architecture" >&5
 $as_echo_n "checking for supported architecture... " >&6; }
 arch_m32=
@@ -9670,7 +9678,7 @@
 fi
 
 
-for ac_header in asm/cachectl.h asm/sysmips.h bluetooth/bluetooth.h elf.h inttypes.h linux/bsg.h linux/dm-ioctl.h linux/dqblk_xfs.h linux/falloc.h linux/fiemap.h linux/filter.h linux/hiddev.h linux/ip_vs.h linux/ipc.h linux/mmtimer.h linux/msg.h linux/perf_event.h linux/quota.h linux/seccomp.h linux/securebits.h linux/sem.h linux/shm.h linux/userfaultfd.h linux/utsname.h mqueue.h netinet/sctp.h netipx/ipx.h scsi/sg.h stropts.h sys/conf.h sys/eventfd.h sys/fanotify.h sys/ipc.h sys/msg.h sys/quota.h sys/reg.h sys/sem.h sys/shm.h sys/signalfd.h sys/xattr.h ustat.h
+for ac_header in asm/cachectl.h asm/sysmips.h bluetooth/bluetooth.h elf.h inttypes.h linux/bsg.h linux/dm-ioctl.h linux/dqblk_xfs.h linux/falloc.h linux/fiemap.h linux/filter.h linux/hiddev.h linux/ip_vs.h linux/ipc.h linux/mmtimer.h linux/msg.h linux/nsfs.h linux/perf_event.h linux/quota.h linux/seccomp.h linux/securebits.h linux/sem.h linux/shm.h linux/userfaultfd.h linux/utsname.h mqueue.h netinet/sctp.h netipx/ipx.h scsi/sg.h stropts.h sys/conf.h sys/eventfd.h sys/fanotify.h sys/ipc.h sys/msg.h sys/quota.h sys/reg.h sys/sem.h sys/shm.h sys/signalfd.h sys/xattr.h ustat.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
@@ -9836,9 +9844,9 @@
 $as_echo "#define HAVE_UNION_BPF_ATTR_BPF_FD 1" >>confdefs.h
 
 	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether union bpf_attr.attach_type initialization works" >&5
-$as_echo_n "checking whether union bpf_attr.attach_type initialization works... " >&6; }
-if ${st_cv_have_union_bpf_attr_attach_type+:} false; then :
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether union bpf_attr.attach_flags initialization works" >&5
+$as_echo_n "checking whether union bpf_attr.attach_flags initialization works... " >&6; }
+if ${st_cv_have_union_bpf_attr_attach_flags+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -9847,23 +9855,23 @@
 int
 main ()
 {
-union bpf_attr a = { .attach_type = 0 };
+union bpf_attr a = { .attach_flags = 0 };
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
-  st_cv_have_union_bpf_attr_attach_type=yes
+  st_cv_have_union_bpf_attr_attach_flags=yes
 else
-  st_cv_have_union_bpf_attr_attach_type=no
+  st_cv_have_union_bpf_attr_attach_flags=no
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $st_cv_have_union_bpf_attr_attach_type" >&5
-$as_echo "$st_cv_have_union_bpf_attr_attach_type" >&6; }
-	if test $st_cv_have_union_bpf_attr_attach_type = yes; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $st_cv_have_union_bpf_attr_attach_flags" >&5
+$as_echo "$st_cv_have_union_bpf_attr_attach_flags" >&6; }
+	if test $st_cv_have_union_bpf_attr_attach_flags = yes; then
 
-$as_echo "#define HAVE_UNION_BPF_ATTR_ATTACH_TYPE 1" >>confdefs.h
+$as_echo "#define HAVE_UNION_BPF_ATTR_ATTACH_FLAGS 1" >>confdefs.h
 
 	fi
 
@@ -11430,6 +11438,34 @@
 cat >>confdefs.h <<_ACEOF
 #define HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY $ac_have_decl
 _ACEOF
+ac_fn_c_check_decl "$LINENO" "V4L2_BUF_TYPE_SDR_CAPTURE" "ac_cv_have_decl_V4L2_BUF_TYPE_SDR_CAPTURE" "#include <sys/time.h>
+#include <linux/ioctl.h>
+#include <linux/types.h>
+#include <linux/videodev2.h>
+"
+if test "x$ac_cv_have_decl_V4L2_BUF_TYPE_SDR_CAPTURE" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_V4L2_BUF_TYPE_SDR_CAPTURE $ac_have_decl
+_ACEOF
+ac_fn_c_check_decl "$LINENO" "V4L2_BUF_TYPE_SDR_OUTPUT" "ac_cv_have_decl_V4L2_BUF_TYPE_SDR_OUTPUT" "#include <sys/time.h>
+#include <linux/ioctl.h>
+#include <linux/types.h>
+#include <linux/videodev2.h>
+"
+if test "x$ac_cv_have_decl_V4L2_BUF_TYPE_SDR_OUTPUT" = xyes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT $ac_have_decl
+_ACEOF
 ac_fn_c_check_decl "$LINENO" "V4L2_TUNER_RADIO" "ac_cv_have_decl_V4L2_TUNER_RADIO" "#include <sys/time.h>
 #include <linux/ioctl.h>
 #include <linux/types.h>
@@ -11908,6 +11944,34 @@
 _ACEOF
 
 
+ac_fn_c_check_member "$LINENO" "struct v4l2_window" "global_alpha" "ac_cv_member_struct_v4l2_window_global_alpha" "#include <sys/time.h>
+#include <linux/ioctl.h>
+#include <linux/types.h>
+#include <linux/videodev2.h>
+"
+if test "x$ac_cv_member_struct_v4l2_window_global_alpha" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA 1
+_ACEOF
+
+
+fi
+ac_fn_c_check_member "$LINENO" "struct v4l2_sdr_format" "buffersize" "ac_cv_member_struct_v4l2_sdr_format_buffersize" "#include <sys/time.h>
+#include <linux/ioctl.h>
+#include <linux/types.h>
+#include <linux/videodev2.h>
+"
+if test "x$ac_cv_member_struct_v4l2_sdr_format_buffersize" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE 1
+_ACEOF
+
+
+fi
+
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BLKGETSIZE64" >&5
 $as_echo_n "checking for BLKGETSIZE64... " >&6; }
 if ${ac_cv_have_blkgetsize64+:} false; then :
@@ -14134,7 +14198,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by strace $as_me 4.16, which was
+This file was extended by strace $as_me 4.17, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -14201,7 +14265,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-strace config.status 4.16
+strace config.status 4.17
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index 7004bd3..620a33b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5,6 +5,7 @@
 # Copyright (c) 2006-2016 Dmitry V. Levin <ldv@altlinux.org>
 # Copyright (c) 2008-2015 Mike Frysinger <vapier@gentoo.org>
 # Copyright (c) 2015 Elvira Khabirova <lineprinter0@gmail.com>
+# Copyright (c) 2002-2017 The strace developers.
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -35,7 +36,8 @@
 	[strace-devel@lists.sourceforge.net],
 	[strace],
 	[https://strace.io])
-AC_COPYRIGHT([Copyright (C) 1999-2017 The strace developers.])
+m4_define([copyright_year], m4_esyscmd([./copyright-year-gen .year]))
+AC_COPYRIGHT([Copyright (C) 1999-]copyright_year[ The strace developers.])
 AC_CONFIG_SRCDIR([strace.c])
 AC_CONFIG_AUX_DIR([.])
 AC_CONFIG_HEADERS([config.h])
@@ -59,6 +61,9 @@
 AC_USE_SYSTEM_EXTENSIONS
 AX_CODE_COVERAGE
 
+AC_DEFINE([COPYRIGHT_YEAR], "[copyright_year]", [Current copyright year.])
+AC_SUBST([COPYRIGHT_YEAR], [copyright_year])
+
 AC_MSG_CHECKING([for supported architecture])
 arch_m32=
 arch_mx32=
@@ -366,6 +371,7 @@
 	linux/ipc.h
 	linux/mmtimer.h
 	linux/msg.h
+	linux/nsfs.h
 	linux/perf_event.h
 	linux/quota.h
 	linux/seccomp.h
@@ -434,16 +440,16 @@
 		AC_DEFINE(HAVE_UNION_BPF_ATTR_BPF_FD, [1],
 			  [Define to 1 if union bpf_attr.bpf_fd initialization works])
 	fi
-	AC_CACHE_CHECK([whether union bpf_attr.attach_type initialization works],
-		       [st_cv_have_union_bpf_attr_attach_type],
+	AC_CACHE_CHECK([whether union bpf_attr.attach_flags initialization works],
+		       [st_cv_have_union_bpf_attr_attach_flags],
 		[AC_COMPILE_IFELSE(
 			[AC_LANG_PROGRAM([[#include <linux/bpf.h>]],
-					 [[union bpf_attr a = { .attach_type = 0 };]])],
-			[st_cv_have_union_bpf_attr_attach_type=yes],
-			[st_cv_have_union_bpf_attr_attach_type=no])])
-	if test $st_cv_have_union_bpf_attr_attach_type = yes; then
-		AC_DEFINE(HAVE_UNION_BPF_ATTR_ATTACH_TYPE, [1],
-			  [Define to 1 if union bpf_attr.attach_type initialization works])
+					 [[union bpf_attr a = { .attach_flags = 0 };]])],
+			[st_cv_have_union_bpf_attr_attach_flags=yes],
+			[st_cv_have_union_bpf_attr_attach_flags=no])])
+	if test $st_cv_have_union_bpf_attr_attach_flags = yes; then
+		AC_DEFINE(HAVE_UNION_BPF_ATTR_ATTACH_FLAGS, [1],
+			  [Define to 1 if union bpf_attr.attach_flags initialization works])
 	fi
 ])
 
@@ -608,6 +614,8 @@
 	V4L2_BUF_TYPE_SLICED_VBI_CAPTURE,
 	V4L2_BUF_TYPE_SLICED_VBI_OUTPUT,
 	V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY,
+	V4L2_BUF_TYPE_SDR_CAPTURE,
+	V4L2_BUF_TYPE_SDR_OUTPUT,
 	V4L2_TUNER_RADIO,
 	V4L2_TUNER_ANALOG_TV,
 	V4L2_TUNER_DIGITAL_TV,
@@ -647,6 +655,14 @@
 #include <linux/types.h>
 #include <linux/videodev2.h>])
 
+AC_CHECK_MEMBERS(m4_normalize([
+	struct v4l2_window.global_alpha,
+	struct v4l2_sdr_format.buffersize
+]),,, [#include <sys/time.h>
+#include <linux/ioctl.h>
+#include <linux/types.h>
+#include <linux/videodev2.h>])
+
 AC_CACHE_CHECK([for BLKGETSIZE64], [ac_cv_have_blkgetsize64],
 	[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
 #include <stdlib.h>
diff --git a/count.c b/count.c
index 4b333bf..1af9336 100644
--- a/count.c
+++ b/count.c
@@ -8,6 +8,7 @@
  *                    <barrow_dj@mail.yahoo.com,djbarrow@de.ibm.com>
  * Copyright (c) 2004 Roland McGrath <roland@redhat.com>
  * Copyright (c) 2006 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2006-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/debian/changelog b/debian/changelog
index c4a21b8..d891a6f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,14 +1,20 @@
-strace (4.16-1) experimental; urgency=low
+strace (4.17-1) experimental; urgency=low
 
-  * strace 4.16 snapshot.
+  * strace 4.17 snapshot.
 
- -- Strace <strace-devel@lists.sourceforge.net>  Wed, 15 Feb 2017 11:38:25 -0800
+ -- Strace <strace-devel@lists.sourceforge.net>  Thu, 25 May 2017 15:09:49 -0700
+
+strace (4.16-1) unstable; urgency=medium
+
+  * New upstream version.
+
+ -- Dmitry V. Levin <ldv@altlinux.org>  Tue, 14 Feb 2017 10:11:12 +0000
 
 strace (4.15-1) unstable; urgency=medium
 
   * New upstream version.
 
- -- Dmitry V. Levin <ldv@altlinux.org>  Tue, 14 Dec 2016 08:09:10 +0000
+ -- Dmitry V. Levin <ldv@altlinux.org>  Wed, 14 Dec 2016 08:09:10 +0000
 
 strace (4.14-1) unstable; urgency=medium
 
diff --git a/debian/changelog.in b/debian/changelog.in
index 288cef9..8aab9d9 100644
--- a/debian/changelog.in
+++ b/debian/changelog.in
@@ -4,11 +4,17 @@
 
  -- Strace <@PACKAGE_BUGREPORT@>  @DEB_CHANGELOGTIME@
 
+strace (4.16-1) unstable; urgency=medium
+
+  * New upstream version.
+
+ -- Dmitry V. Levin <ldv@altlinux.org>  Tue, 14 Feb 2017 10:11:12 +0000
+
 strace (4.15-1) unstable; urgency=medium
 
   * New upstream version.
 
- -- Dmitry V. Levin <ldv@altlinux.org>  Tue, 14 Dec 2016 08:09:10 +0000
+ -- Dmitry V. Levin <ldv@altlinux.org>  Wed, 14 Dec 2016 08:09:10 +0000
 
 strace (4.14-1) unstable; urgency=medium
 
diff --git a/debian/control b/debian/control
index 79773c3..2a7963f 100644
--- a/debian/control
+++ b/debian/control
@@ -4,7 +4,7 @@
 Priority: optional
 Build-Depends: libc6-dev (>= 2.2.2) [!alpha !ia64], libc6.1-dev (>= 2.2.2) [alpha ia64], gcc-multilib [amd64 i386 powerpc ppc64 s390 sparc sparc64 x32], debhelper (>= 7.0.0), gawk
 Standards-Version: 3.9.6
-Homepage: http://sourceforge.net/projects/strace/
+Homepage: https://strace.io
 Vcs-Git: https://anonscm.debian.org/git/collab-maint/strace.git
 Vcs-Browser: https://anonscm.debian.org/git/collab-maint/strace.git
 
diff --git a/defs.h b/defs.h
index b333a22..fb3a603 100644
--- a/defs.h
+++ b/defs.h
@@ -2,6 +2,7 @@
  * Copyright (c) 1991, 1992 Paul Kranenburg <pk@cs.few.eur.nl>
  * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
  * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
+ * Copyright (C) 2001-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -292,12 +293,15 @@
 
 extern const struct xlat addrfams[];
 extern const struct xlat at_flags[];
+extern const struct xlat clocknames[];
 extern const struct xlat dirent_types[];
 extern const struct xlat evdev_abs[];
 extern const struct xlat msg_flags[];
+extern const struct xlat netlink_protocols[];
 extern const struct xlat open_access_modes[];
 extern const struct xlat open_mode_flags[];
 extern const struct xlat resource_flags[];
+extern const struct xlat setns_types[];
 extern const struct xlat sg_io_info[];
 extern const struct xlat socketlayers[];
 extern const struct xlat whence_codes[];
@@ -409,8 +413,9 @@
 extern void call_summary(FILE *);
 
 extern void clear_regs(void);
-extern void get_regs(pid_t pid);
-extern int get_scno(struct tcb *tcp);
+extern int get_scno(struct tcb *);
+extern kernel_ulong_t get_rt_sigframe_addr(struct tcb *);
+
 /**
  * Convert syscall number to syscall name.
  *
@@ -542,11 +547,14 @@
 extern void addflags(const struct xlat *, uint64_t);
 extern int printflags64(const struct xlat *, uint64_t, const char *);
 extern const char *sprintflags(const char *, const struct xlat *, uint64_t);
-extern const char *sprinttime(time_t);
+extern const char *sprinttime(long long sec);
+extern const char *sprinttime_nsec(long long sec, unsigned long long nsec);
+extern const char *sprinttime_usec(long long sec, unsigned long long usec);
 extern void print_symbolic_mode_t(unsigned int);
 extern void print_numeric_umode_t(unsigned short);
 extern void print_numeric_long_umask(unsigned long);
 extern void print_dev_t(unsigned long long dev);
+extern void print_abnormal_hi(kernel_ulong_t);
 
 extern void
 dumpiov_in_msghdr(struct tcb *, kernel_ulong_t addr, kernel_ulong_t data_size);
@@ -571,7 +579,7 @@
 printpath(struct tcb *, kernel_ulong_t addr);
 
 #define TIMESPEC_TEXT_BUFSIZE \
-		(sizeof(intmax_t)*3 * 2 + sizeof("{tv_sec=%jd, tv_nsec=%jd}"))
+		(sizeof(long long) * 3 * 2 + sizeof("{tv_sec=-, tv_nsec=}"))
 extern void printfd(struct tcb *, int);
 extern void print_sockaddr(struct tcb *tcp, const void *, int);
 extern bool print_sockaddr_by_inode(const unsigned long, const enum sock_proto);
@@ -585,6 +593,8 @@
 
 extern void
 print_sigset_addr_len(struct tcb *, kernel_ulong_t addr, kernel_ulong_t len);
+extern void
+print_sigset_addr(struct tcb *, kernel_ulong_t addr);
 
 extern const char *sprintsigmask_n(const char *, const void *, unsigned int);
 #define tprintsigmask_addr(prefix, mask) \
@@ -635,6 +645,7 @@
 DECL_IOCTL(dm);
 DECL_IOCTL(file);
 DECL_IOCTL(fs_x);
+DECL_IOCTL(nsfs);
 DECL_IOCTL(ptp);
 DECL_IOCTL(scsi);
 DECL_IOCTL(term);
@@ -707,7 +718,7 @@
 extern void printrusage32(struct tcb *, kernel_ulong_t);
 extern const char *sprint_timeval32(struct tcb *tcp, kernel_ulong_t);
 extern void print_timeval32(struct tcb *tcp, kernel_ulong_t);
-extern void print_timeval32_pair(struct tcb *tcp, kernel_ulong_t);
+extern void print_timeval32_utimes(struct tcb *tcp, kernel_ulong_t);
 extern void print_itimerval32(struct tcb *tcp, kernel_ulong_t);
 #endif
 
@@ -738,6 +749,8 @@
 extern void tabto(void);
 extern void tprintf(const char *fmt, ...) ATTRIBUTE_FORMAT((printf, 1, 2));
 extern void tprints(const char *str);
+extern void tprintf_comment(const char *fmt, ...) ATTRIBUTE_FORMAT((printf, 1, 2));
+extern void tprints_comment(const char *str);
 
 #if SUPPORTED_PERSONALITIES > 1
 extern void set_personality(int personality);
diff --git a/desc.c b/desc.c
index 4882469..d52afc4 100644
--- a/desc.c
+++ b/desc.c
@@ -3,6 +3,7 @@
  * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
  * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
  * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
+ * Copyright (c) 1999-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/dirent.c b/dirent.c
index 2ba6fe7..d413ed6 100644
--- a/dirent.c
+++ b/dirent.c
@@ -4,6 +4,7 @@
  * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
  * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
  * Copyright (c) 2005-2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2014-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -78,13 +79,13 @@
 
 	if (entering(tcp)) {
 		printfd(tcp, tcp->u_arg[0]);
-		tprints(", ");
 		return 0;
 	}
 
 	const unsigned int count = tcp->u_arg[2];
 
 	if (syserror(tcp) || !verbose(tcp)) {
+		tprints(", ");
 		printaddr(tcp->u_arg[1]);
 		tprintf(", %u", count);
 		return 0;
@@ -101,6 +102,7 @@
 	if (len) {
 		buf = malloc(len);
 		if (!buf || umoven(tcp, tcp->u_arg[1], len, buf) < 0) {
+			tprints(", ");
 			printaddr(tcp->u_arg[1]);
 			tprintf(", %u", count);
 			free(buf);
@@ -110,8 +112,9 @@
 		buf = NULL;
 	}
 
+	tprints(",");
 	if (!abbrev(tcp))
-		tprints("[");
+		tprints(" [");
 	for (i = 0; len && i <= len - sizeof(kernel_dirent); ) {
 		kernel_dirent *d = (kernel_dirent *) &buf[i];
 
@@ -143,7 +146,7 @@
 		}
 		dents++;
 		if (d->d_reclen < sizeof(kernel_dirent)) {
-			tprints("/* d_reclen < sizeof(struct dirent) */");
+			tprints_comment("d_reclen < sizeof(struct dirent)");
 			break;
 		}
 		i += d->d_reclen;
@@ -151,7 +154,7 @@
 	if (!abbrev(tcp))
 		tprints("]");
 	else
-		tprintf("/* %u entries */", dents);
+		tprintf_comment("%u entries", dents);
 	tprintf(", %u", count);
 	free(buf);
 	return 0;
diff --git a/dirent64.c b/dirent64.c
index 448a2f1..e2a4253 100644
--- a/dirent64.c
+++ b/dirent64.c
@@ -4,6 +4,7 @@
  * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
  * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
  * Copyright (c) 2005-2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2015-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -46,13 +47,13 @@
 
 	if (entering(tcp)) {
 		printfd(tcp, tcp->u_arg[0]);
-		tprints(", ");
 		return 0;
 	}
 
 	const unsigned int count = tcp->u_arg[2];
 
 	if (syserror(tcp) || !verbose(tcp)) {
+		tprints(", ");
 		printaddr(tcp->u_arg[1]);
 		tprintf(", %u", count);
 		return 0;
@@ -69,6 +70,7 @@
 	if (len) {
 		buf = malloc(len);
 		if (!buf || umoven(tcp, tcp->u_arg[1], len, buf) < 0) {
+			tprints(", ");
 			printaddr(tcp->u_arg[1]);
 			tprintf(", %u", count);
 			free(buf);
@@ -78,8 +80,9 @@
 		buf = NULL;
 	}
 
+	tprints(",");
 	if (!abbrev(tcp))
-		tprints("[");
+		tprints(" [");
 	for (i = 0; len && i <= len - d_name_offset; ) {
 		struct dirent64 *d = (struct dirent64 *) &buf[i];
 		if (!abbrev(tcp)) {
@@ -110,7 +113,7 @@
 			tprints("}");
 		}
 		if (d->d_reclen < d_name_offset) {
-			tprints("/* d_reclen < offsetof(struct dirent64, d_name) */");
+			tprints_comment("d_reclen < offsetof(struct dirent64, d_name)");
 			break;
 		}
 		i += d->d_reclen;
@@ -119,7 +122,7 @@
 	if (!abbrev(tcp))
 		tprints("]");
 	else
-		tprintf("/* %u entries */", dents);
+		tprintf_comment("%u entries", dents);
 	tprintf(", %u", count);
 	free(buf);
 	return 0;
diff --git a/dm.c b/dm.c
index 7f85689..26dcb22 100644
--- a/dm.c
+++ b/dm.c
@@ -5,6 +5,7 @@
  * Copyright (c) 2016 Masatake Yamato <yamato@redhat.com>
  * Copyright (c) 2016 Dmitry V. Levin <ldv@altlinux.org>
  * Copyright (c) 2016 Eugene Syromyatnikov <evgsyr@gmail.com>
+ * Copyright (c) 2016-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -140,7 +141,7 @@
 		sizeof(struct dm_target_spec);
 	uint32_t i;
 	uint32_t offset = ioc->data_start;
-	uint32_t offset_end;
+	uint32_t offset_end = 0;
 
 	if (abbrev(tcp)) {
 		if (ioc->target_count)
@@ -150,20 +151,23 @@
 	}
 
 	for (i = 0; i < ioc->target_count; i++) {
-		struct dm_target_spec s;
+		tprints(", ");
+
+		if (i && offset <= offset_end)
+			goto misplaced;
 
 		offset_end = offset + target_spec_size;
 
 		if (offset_end <= offset || offset_end > ioc->data_size)
 			goto misplaced;
 
-		tprints(", ");
-
 		if (i >= max_strlen) {
 			tprints("...");
 			break;
 		}
 
+		struct dm_target_spec s;
+
 		if (umove_or_printaddr(tcp, addr + offset, &s))
 			break;
 
@@ -180,21 +184,19 @@
 		tprints(", string=");
 		printstr_ex(tcp, addr + offset_end, ioc->data_size - offset_end,
 			     QUOTE_0_TERMINATED);
-		tprintf("}");
+		tprints("}");
 
 		if (entering(tcp))
 			offset += s.next;
 		else
 			offset = ioc->data_start + s.next;
-
-		if (offset <= offset_end)
-			goto misplaced;
 	}
 
 	return;
 
 misplaced:
-	tprints(", /* misplaced struct dm_target_spec */ ...");
+	tprints("???");
+	tprints_comment("misplaced struct dm_target_spec");
 }
 
 bool
@@ -211,6 +213,16 @@
 dm_decode_dm_target_deps(struct tcb *const tcp, const kernel_ulong_t addr,
 			 const struct dm_ioctl *const ioc)
 {
+	if (ioc->data_start == ioc->data_size)
+		return;
+
+	tprints(", ");
+
+	if (abbrev(tcp)) {
+		tprints("...");
+		return;
+	}
+
 	static const uint32_t target_deps_dev_offs =
 		offsetof(struct dm_target_deps, dev);
 	uint64_t dev_buf;
@@ -219,13 +231,6 @@
 	uint32_t offset_end = offset + target_deps_dev_offs;
 	uint32_t space;
 
-	if (abbrev(tcp)) {
-		tprints(", ...");
-		return;
-	}
-
-	tprints(", ");
-
 	if (offset_end <= offset || offset_end > ioc->data_size)
 		goto misplaced;
 
@@ -247,7 +252,8 @@
 	return;
 
 misplaced:
-	tprints("/* misplaced struct dm_target_deps */ ...");
+	tprints("???");
+	tprints_comment("misplaced struct dm_target_deps");
 }
 
 static void
@@ -258,22 +264,28 @@
 		offsetof(struct dm_name_list, name);
 	struct dm_name_list s;
 	uint32_t offset = ioc->data_start;
-	uint32_t offset_end;
+	uint32_t offset_end = 0;
 	uint32_t count;
 
+	if (ioc->data_start == ioc->data_size)
+		return;
+
 	if (abbrev(tcp)) {
 		tprints(", ...");
 		return;
 	}
 
 	for (count = 0;; count++) {
+		tprints(", ");
+
+		if (count && offset <= offset_end)
+			goto misplaced;
+
 		offset_end = offset + name_list_name_offs;
 
 		if (offset_end <= offset || offset_end > ioc->data_size)
 			goto misplaced;
 
-		tprints(", ");
-
 		if (count >= max_strlen) {
 			tprints("...");
 			break;
@@ -281,10 +293,6 @@
 
 		if (umove_or_printaddr(tcp, addr + offset, &s))
 			break;
-		if (!count && !s.dev) {
-			tprints("/* no devices present */");
-			break;
-		}
 
 		tprints("{dev=");
 		print_dev_t(s.dev);
@@ -298,14 +306,13 @@
 			break;
 
 		offset += s.next;
-		if (offset <= offset_end)
-			goto misplaced;
 	}
 
 	return;
 
 misplaced:
-	tprints(", /* misplaced struct dm_name_list */ ...");
+	tprints("???");
+	tprints_comment("misplaced struct dm_name_list");
 }
 
 static void
@@ -316,22 +323,28 @@
 		offsetof(struct dm_target_versions, name);
 	struct dm_target_versions s;
 	uint32_t offset = ioc->data_start;
-	uint32_t offset_end;
+	uint32_t offset_end = 0;
 	uint32_t count;
 
+	if (ioc->data_start == ioc->data_size)
+		return;
+
 	if (abbrev(tcp)) {
 		tprints(", ...");
 		return;
 	}
 
 	for (count = 0;; count++) {
+		tprints(", ");
+
+		if (count && offset <= offset_end)
+			goto misplaced;
+
 		offset_end = offset + target_vers_name_offs;
 
 		if (offset_end <= offset || offset_end > ioc->data_size)
 			goto misplaced;
 
-		tprints(", ");
-
 		if (count >= max_strlen) {
 			tprints("...");
 			break;
@@ -350,35 +363,37 @@
 			break;
 
 		offset += s.next;
-		if (offset <= offset_end)
-			goto misplaced;
 	}
 
 	return;
 
 misplaced:
-	tprints(", /* misplaced struct dm_target_versions */ ...");
+	tprints("???");
+	tprints_comment("misplaced struct dm_target_versions");
 }
 
 static void
 dm_decode_dm_target_msg(struct tcb *const tcp, const kernel_ulong_t addr,
 		        const struct dm_ioctl *const ioc)
 {
+	if (ioc->data_start == ioc->data_size)
+		return;
+
+	tprints(", ");
+
+	if (abbrev(tcp)) {
+		tprints("...");
+		return;
+	}
+
 	static const uint32_t target_msg_message_offs =
 		offsetof(struct dm_target_msg, message);
 	uint32_t offset = ioc->data_start;
 	uint32_t offset_end = offset + target_msg_message_offs;
 
-	if (abbrev(tcp)) {
-		tprints(", ...");
-		return;
-	}
-
 	if (offset_end > offset && offset_end <= ioc->data_size) {
 		struct dm_target_msg s;
 
-		tprints(", ");
-
 		if (umove_or_printaddr(tcp, addr + offset, &s))
 			return;
 
@@ -387,7 +402,8 @@
 			    QUOTE_0_TERMINATED);
 		tprints("}");
 	} else {
-		tprints(", /* misplaced struct dm_target_msg */");
+		tprints("???");
+		tprints_comment("misplaced struct dm_target_msg");
 	}
 }
 
@@ -395,19 +411,22 @@
 dm_decode_string(struct tcb *const tcp, const kernel_ulong_t addr,
 		 const struct dm_ioctl *const ioc)
 {
-	uint32_t offset = ioc->data_start;
+	tprints(", ");
 
 	if (abbrev(tcp)) {
-		tprints(", ...");
+		tprints("...");
 		return;
 	}
 
-	if (offset < ioc->data_size) {
-		tprints(", string=");
+	uint32_t offset = ioc->data_start;
+
+	if (offset <= ioc->data_size) {
+		tprints("string=");
 		printstr_ex(tcp, addr + offset, ioc->data_size - offset,
 			    QUOTE_0_TERMINATED);
 	} else {
-		tprints(", /* misplaced string */");
+		tprints("???");
+		tprints_comment("misplaced string");
 	}
 }
 
@@ -485,20 +504,20 @@
 	 * ioctl fields
 	 */
 	if (ioc->version[0] != DM_VERSION_MAJOR) {
-		tprints(", /* Unsupported device mapper ABI version */ ...");
+		tprints_comment("unsupported device mapper ABI version");
 		goto skip;
 	}
 
 	tprintf(", data_size=%u", ioc->data_size);
 
-	if (dm_ioctl_has_params(code))
-		tprintf(", data_start=%u", ioc->data_start);
-
 	if (ioc->data_size < offsetof(struct dm_ioctl, data)) {
-		tprints(", /* Incorrect data_size */ ...");
+		tprints_comment("data_size too small");
 		goto skip;
 	}
 
+	if (dm_ioctl_has_params(code))
+		tprintf(", data_start=%u", ioc->data_start);
+
 	dm_decode_device(code, ioc);
 	dm_decode_values(tcp, code, ioc);
 	dm_decode_flags(ioc);
diff --git a/epoll.c b/epoll.c
index 8dc7ab0..d5f2f55 100644
--- a/epoll.c
+++ b/epoll.c
@@ -2,6 +2,7 @@
  * Copyright (c) 2004-2007 Ulrich Drepper <drepper@redhat.com>
  * Copyright (c) 2004 Roland McGrath <roland@redhat.com>
  * Copyright (c) 2005-2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2015-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/errnoent.sh b/errnoent.sh
deleted file mode 100755
index 0b1b06a..0000000
--- a/errnoent.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/sh
-# Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs@world.std.com>
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-#    notice, this list of conditions and the following disclaimer in the
-#    documentation and/or other materials provided with the distribution.
-# 3. The name of the author may not be used to endorse or promote products
-#    derived from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-awk '
-$1 == "#define" && $2 ~ /^E[A-Z0-9_]+$/ && $3 ~ /^[0-9]+$/ {
-	errno[$3] = $2
-	if ($3 > max)
-		max = $3
-}
-END {
-	for (i = 0; i <= max; i++)
-		if (errno[i])
-			printf("[%3d] = \"%s\",\n", i, errno[i])
-}
-' "$@"
diff --git a/execve.c b/execve.c
index 6e45b11..5455b15 100644
--- a/execve.c
+++ b/execve.c
@@ -6,6 +6,7 @@
  * Copyright (c) 2007 Roland McGrath <roland@redhat.com>
  * Copyright (c) 2011-2012 Denys Vlasenko <vda.linux@googlemail.com>
  * Copyright (c) 2010-2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2014-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -78,10 +79,10 @@
 static void
 printargc(struct tcb *const tcp, kernel_ulong_t addr)
 {
-	if (!addr || !verbose(tcp)) {
-		printaddr(addr);
+	printaddr(addr);
+
+	if (!addr || !verbose(tcp))
 		return;
-	}
 
 	bool unterminated = false;
 	unsigned int count = 0;
@@ -89,17 +90,16 @@
 
 	for (; addr; addr += current_wordsize, ++count) {
 		if (umoven(tcp, addr, current_wordsize, &cp)) {
-			if (count) {
-				unterminated = true;
-				break;
-			}
-			printaddr(addr);
-			return;
+			if (!count)
+				return;
+
+			unterminated = true;
+			break;
 		}
 		if (!cp)
 			break;
 	}
-	tprintf("[/* %u var%s%s */]",
+	tprintf_comment("%u var%s%s",
 		count, count == 1 ? "" : "s",
 		unterminated ? ", unterminated" : "");
 }
diff --git a/fadvise.c b/fadvise.c
index f0d057b..292a061 100644
--- a/fadvise.c
+++ b/fadvise.c
@@ -5,6 +5,7 @@
  * Copyright (c) 2009 Andreas Schwab <schwab@redhat.com>
  * Copyright (c) 2009 Kirill A. Shutemov <kirill@shutemov.name>
  * Copyright (c) 2011-2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2014-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/fanotify.c b/fanotify.c
index 203e9d2..a9ec0e9 100644
--- a/fanotify.c
+++ b/fanotify.c
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2014-2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2014-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/fcntl.c b/fcntl.c
index 74168c6..a42489b 100644
--- a/fcntl.c
+++ b/fcntl.c
@@ -3,6 +3,7 @@
  * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
  * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
  * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
+ * Copyright (c) 1999-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/fetch_seccomp_fprog.c b/fetch_seccomp_fprog.c
index e483e81..0aedb20 100644
--- a/fetch_seccomp_fprog.c
+++ b/fetch_seccomp_fprog.c
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2015-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/fetch_struct_flock.c b/fetch_struct_flock.c
index bb24876..1a57edf 100644
--- a/fetch_struct_flock.c
+++ b/fetch_struct_flock.c
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2015-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/fetch_struct_stat.c b/fetch_struct_stat.c
index 50d1028..317d381 100644
--- a/fetch_struct_stat.c
+++ b/fetch_struct_stat.c
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2014-2016 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2016-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -65,8 +66,10 @@
 
 #ifdef HAVE_STRUCT_STAT_ST_MTIME_NSEC
 # define TIME_NSEC(arg) zero_extend_signed_to_ull(arg)
+# define HAVE_NSEC true
 #else
 # define TIME_NSEC(arg) 0
+# define HAVE_NSEC false
 #endif
 
 MPERS_PRINTER_DECL(bool, fetch_struct_stat,
@@ -94,6 +97,7 @@
 	dst->atime_nsec = TIME_NSEC(buf.st_atime_nsec);
 	dst->ctime_nsec = TIME_NSEC(buf.st_ctime_nsec);
 	dst->mtime_nsec = TIME_NSEC(buf.st_mtime_nsec);
+	dst->has_nsec = HAVE_NSEC;
 	return true;
 #else /* !HAVE_STRUCT_STAT */
 	printaddr(addr);
diff --git a/fetch_struct_stat64.c b/fetch_struct_stat64.c
index b7e4805..3480c10 100644
--- a/fetch_struct_stat64.c
+++ b/fetch_struct_stat64.c
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2014-2016 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2016-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -63,8 +64,10 @@
 
 #ifdef HAVE_STRUCT_STAT64_ST_MTIME_NSEC
 # define TIME_NSEC(arg) zero_extend_signed_to_ull(arg)
+# define HAVE_NSEC true
 #else
 # define TIME_NSEC(arg) 0
+# define HAVE_NSEC false
 #endif
 
 MPERS_PRINTER_DECL(bool, fetch_struct_stat64,
@@ -92,6 +95,7 @@
 	dst->atime_nsec = TIME_NSEC(buf.st_atime_nsec);
 	dst->ctime_nsec = TIME_NSEC(buf.st_ctime_nsec);
 	dst->mtime_nsec = TIME_NSEC(buf.st_mtime_nsec);
+	dst->has_nsec = HAVE_NSEC;
 	return true;
 #else /* !HAVE_STRUCT_STAT64 */
 	printaddr(addr);
diff --git a/file_handle.c b/file_handle.c
index f2f0b22..46a61c5 100644
--- a/file_handle.c
+++ b/file_handle.c
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2015-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/flock.c b/flock.c
index 6ec43db..c714775 100644
--- a/flock.c
+++ b/flock.c
@@ -3,6 +3,7 @@
  * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
  * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
  * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
+ * Copyright (c) 1999-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/flock.h b/flock.h
index afa5148..00e4906 100644
--- a/flock.h
+++ b/flock.h
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2015-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/futex.c b/futex.c
index 5267dc4..16ccddb 100644
--- a/futex.c
+++ b/futex.c
@@ -3,6 +3,7 @@
  * Copyright (c) 2007-2008 Ulrich Drepper <drepper@redhat.com>
  * Copyright (c) 2009 Andreas Schwab <schwab@redhat.com>
  * Copyright (c) 2014-2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2014-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -51,6 +52,7 @@
 	const unsigned int val = tcp->u_arg[2];
 	const unsigned int val2 = tcp->u_arg[3];
 	const unsigned int val3 = tcp->u_arg[5];
+	const char *comment;
 
 	printaddr(uaddr);
 	tprints(", ");
@@ -94,15 +96,15 @@
 		tprints(", ");
 		if ((val3 >> 28) & 8)
 			tprints("FUTEX_OP_OPARG_SHIFT<<28|");
-		if (printxval(futexwakeops, (val3 >> 28) & 0x7, NULL))
-			tprints("<<28");
-		else
-			tprints("<<28 /* FUTEX_OP_??? */");
+		comment = printxval(futexwakeops, (val3 >> 28) & 0x7, NULL)
+			? NULL : "FUTEX_OP_???";
+		tprints("<<28");
+		tprints_comment(comment);
 		tprintf("|%#x<<12|", (val3 >> 12) & 0xfff);
-		if (printxval(futexwakecmps, (val3 >> 24) & 0xf, NULL))
-			tprints("<<24");
-		else
-			tprints("<<24 /* FUTEX_OP_CMP_??? */");
+		comment = printxval(futexwakecmps, (val3 >> 24) & 0xf, NULL)
+			? NULL : "FUTEX_OP_CMP_???";
+		tprints("<<24");
+		tprints_comment(comment);
 		tprintf("|%#x", val3 & 0xfff);
 		break;
 	case FUTEX_WAIT_REQUEUE_PI:
diff --git a/gcc_compat.h b/gcc_compat.h
index fe3f904..08e8117 100644
--- a/gcc_compat.h
+++ b/gcc_compat.h
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2015-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/io.c b/io.c
index c41b66f..acac455 100644
--- a/io.c
+++ b/io.c
@@ -3,6 +3,7 @@
  * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
  * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
  * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
+ * Copyright (c) 1999-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -94,7 +95,7 @@
 				len = c->data_size;
 			if (c->data_size != (kernel_ulong_t) -1)
 				c->data_size -= len;
-			decode_netlink(tcp, iov[0], iov[1]);
+			decode_netlink(tcp, iov[0], len);
 			break;
 		default:
 			printaddr(iov[0]);
@@ -224,11 +225,6 @@
 	return do_preadv(tcp, -1);
 }
 
-SYS_FUNC(preadv2)
-{
-	return do_preadv(tcp, 5);
-}
-
 static int
 do_pwritev(struct tcb *tcp, const int flags_arg)
 {
@@ -253,9 +249,29 @@
 	return do_pwritev(tcp, -1);
 }
 
+/*
+ * x32 is the only architecture where preadv2 takes 5 arguments
+ * instead of 6, see preadv64v2 in kernel sources.
+ * Likewise, x32 is the only architecture where pwritev2 takes 5 arguments
+ * instead of 6, see pwritev64v2 in kernel sources.
+ */
+
+#if defined X86_64
+# define PREADV2_PWRITEV2_FLAGS_ARG_NO (current_personality == 2 ? 4 : 5)
+#elif defined X32
+# define PREADV2_PWRITEV2_FLAGS_ARG_NO (current_personality == 0 ? 4 : 5)
+#else
+# define PREADV2_PWRITEV2_FLAGS_ARG_NO 5
+#endif
+
+SYS_FUNC(preadv2)
+{
+	return do_preadv(tcp, PREADV2_PWRITEV2_FLAGS_ARG_NO);
+}
+
 SYS_FUNC(pwritev2)
 {
-	return do_pwritev(tcp, 5);
+	return do_pwritev(tcp, PREADV2_PWRITEV2_FLAGS_ARG_NO);
 }
 
 #include "xlat/splice_flags.h"
diff --git a/ioctl.c b/ioctl.c
index aa1880f..264c7c0 100644
--- a/ioctl.c
+++ b/ioctl.c
@@ -3,6 +3,7 @@
  * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
  * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
  * Copyright (c) 1996-2001 Wichert Akkerman <wichert@cistron.nl>
+ * Copyright (c) 1999-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -280,6 +281,8 @@
 	case 0x94:
 		return btrfs_ioctl(tcp, code, arg);
 #endif
+	case 0xb7:
+		return nsfs_ioctl(tcp, code, arg);
 #ifdef HAVE_LINUX_DM_IOCTL_H
 	case 0xfd:
 		return dm_ioctl(tcp, code, arg);
diff --git a/ioctlent0.h b/ioctlent0.h
index e6ffddb..d075f3b 100644
--- a/ioctlent0.h
+++ b/ioctlent0.h
@@ -574,6 +574,8 @@
 { "HPET_IE_OFF", 0x00006802 },
 { "HPET_EPI", 0x00006804 },
 { "HPET_DPI", 0x00006805 },
+{ "I915_PERF_IOCTL_ENABLE", 0x00006900 },
+{ "I915_PERF_IOCTL_DISABLE", 0x00006901 },
 { "KYRO_IOCTL_OVERLAY_CREATE", 0x00006b00 },
 { "KYRO_IOCTL_OVERLAY_VIEWPORT_SET", 0x00006b01 },
 { "KYRO_IOCTL_SET_VIDEO_MODE", 0x00006b02 },
@@ -880,8 +882,11 @@
 { "VHOST_RESET_OWNER", 0x0000af02 },
 { "BT_BMC_IOCTL_SMS_ATN", 0x0000b100 },
 { "PPPOEIOCDFWD", 0x0000b101 },
+{ "RPMSG_DESTROY_EPT_IOCTL", 0x0000b502 },
 { "NS_GET_USERNS", 0x0000b701 },
 { "NS_GET_PARENT", 0x0000b702 },
+{ "NS_GET_NSTYPE", 0x0000b703 },
+{ "NS_GET_OWNER_UID", 0x0000b704 },
 { "IOCTL_EVTCHN_RESTRICT_DOMID", 0x00024506 },
 { "IOCTL_EVTCHN_BIND_VIRQ", 0x00044500 },
 { "IOCTL_EVTCHN_BIND_UNBOUND_PORT", 0x00044502 },
@@ -1436,6 +1441,7 @@
 { "DRM_IOCTL_SIS_FB_INIT", 0x40106456 },
 { "DRM_IOCTL_RADEON_SETPARAM", 0x40106459 },
 { "TUNER_SET_CONFIG", 0x4010645c },
+{ "DRM_IOCTL_I915_PERF_OPEN", 0x40106476 },
 { "FS_IOC_GET_ENCRYPTION_PWSALT", 0x40106614 },
 { "HSC_SET_TX", 0x40106b15 },
 { "HSC_GET_TX", 0x40106b16 },
@@ -1576,6 +1582,7 @@
 { "PHN_SETREGS", 0x40287008 },
 { "RTC_WKALM_SET", 0x4028700f },
 { "VHOST_SET_VRING_ADDR", 0x4028af11 },
+{ "RPMSG_CREATE_EPT_IOCTL", 0x4028b501 },
 { "NVM_DEV_INIT", 0x402c4c24 },
 { "SNDRV_SEQ_IOCTL_SET_QUEUE_TEMPO", 0x402c5342 },
 { "TCSETS2", 0x402c542b },
@@ -1635,6 +1642,8 @@
 { "SET_ARRAY_INFO", 0x40480923 },
 { "SNDRV_EMU10K1_IOCTL_PCM_POKE", 0x40484830 },
 { "SNDRV_TIMER_IOCTL_GPARAMS", 0x40485404 },
+{ "BC_TRANSACTION_SG", 0x40486311 },
+{ "BC_REPLY_SG", 0x40486312 },
 { "BTRFS_IOC_SEND", 0x40489426 },
 { "KVM_SET_GUEST_DEBUG", 0x4048ae9b },
 { "KVM_S390_IRQ", 0x4048aeb4 },
@@ -1678,11 +1687,23 @@
 { "ASHMEM_SET_NAME", 0x41007701 },
 { "BTRFS_IOC_SET_FSLABEL", 0x41009432 },
 { "USBDEVFS_GETDRIVER", 0x41045508 },
+{ "IOC_OPAL_TAKE_OWNERSHIP", 0x410870de },
+{ "IOC_OPAL_REVERT_TPR", 0x410870e2 },
 { "CA_SEND_MSG", 0x410c6f85 },
+{ "IOC_OPAL_ACTIVATE_USR", 0x411070e1 },
+{ "IOC_OPAL_ENABLE_DISABLE_MBR", 0x411070e5 },
+{ "IOC_OPAL_ERASE_LR", 0x411070e6 },
+{ "IOC_OPAL_SECURE_ERASE_LR", 0x411070e7 },
+{ "IOC_OPAL_SAVE", 0x411870dc },
+{ "IOC_OPAL_LOCK_UNLOCK", 0x411870dd },
+{ "IOC_OPAL_ACTIVATE_LSP", 0x411870df },
+{ "IOC_OPAL_ADD_USR_TO_LR", 0x411870e4 },
+{ "IOC_OPAL_LR_SETUP", 0x412870e3 },
 { "KVM_SET_SREGS", 0x4138ae84 },
 { "KVM_SET_XCRS", 0x4188aea7 },
 { "KVM_SET_FPU", 0x41a0ae8d },
 { "SNDRV_EMU10K1_IOCTL_CODE_POKE", 0x41b04811 },
+{ "IOC_OPAL_SET_PW", 0x422070e0 },
 { "PTP_SYS_OFFSET", 0x43403d05 },
 { "JSIOCSBTNMAP", 0x44006a33 },
 { "KVM_SET_LAPIC", 0x4400ae8f },
@@ -2059,6 +2080,8 @@
 { "GENWQE_READ_REG16", 0x8010a522 },
 { "UFFDIO_UNREGISTER", 0x8010aa01 },
 { "UFFDIO_WAKE", 0x8010aa02 },
+{ "KVM_PPC_RESIZE_HPT_PREPARE", 0x8010aead },
+{ "KVM_PPC_RESIZE_HPT_COMMIT", 0x8010aeae },
 { "FDGETMAXERRS", 0x8014020e },
 { "GET_DISK_INFO", 0x80140912 },
 { "SNDRV_COMPRESS_TSTAMP", 0x80144320 },
@@ -2680,6 +2703,7 @@
 { "GENWQE_SLU_READ", 0xc038a551 },
 { "PTP_SYS_OFFSET_PRECISE", 0xc0403d08 },
 { "CAPI_GET_PROFILE", 0xc0404309 },
+{ "NVME_NVM_IOCTL_SUBMIT_VIO", 0xc0404c42 },
 { "ND_IOCTL_CALL", 0xc0404e0a },
 { "SNDRV_CTL_IOCTL_ELEM_REMOVE", 0xc0405519 },
 { "VIDIOC_ENUM_FMT", 0xc0405602 },
@@ -2719,6 +2743,8 @@
 { "SNDRV_SEQ_IOCTL_GET_QUEUE_CLIENT", 0xc04c5349 },
 { "VIDIOC_OMAP3ISP_AF_CFG", 0xc04c56c5 },
 { "CEC_ADAP_G_CAPS", 0xc04c6100 },
+{ "NVME_NVM_IOCTL_ADMIN_VIO", 0xc0504c41 },
+{ "NVME_NVM_IOCTL_IO_VIO", 0xc0504c43 },
 { "SNDRV_SEQ_IOCTL_GET_SUBSCRIPTION", 0xc0505350 },
 { "SNDRV_TIMER_IOCTL_GSTATUS", 0xc0505405 },
 { "SNDRV_CTL_IOCTL_ELEM_LIST", 0xc0505510 },
diff --git a/ioctlent1.h b/ioctlent1.h
index 8e963ae..3bdb14f 100644
--- a/ioctlent1.h
+++ b/ioctlent1.h
@@ -574,6 +574,8 @@
 { "HPET_IE_OFF", 0x00006802 },
 { "HPET_EPI", 0x00006804 },
 { "HPET_DPI", 0x00006805 },
+{ "I915_PERF_IOCTL_ENABLE", 0x00006900 },
+{ "I915_PERF_IOCTL_DISABLE", 0x00006901 },
 { "KYRO_IOCTL_OVERLAY_CREATE", 0x00006b00 },
 { "KYRO_IOCTL_OVERLAY_VIEWPORT_SET", 0x00006b01 },
 { "KYRO_IOCTL_SET_VIDEO_MODE", 0x00006b02 },
@@ -880,8 +882,11 @@
 { "VHOST_RESET_OWNER", 0x0000af02 },
 { "BT_BMC_IOCTL_SMS_ATN", 0x0000b100 },
 { "PPPOEIOCDFWD", 0x0000b101 },
+{ "RPMSG_DESTROY_EPT_IOCTL", 0x0000b502 },
 { "NS_GET_USERNS", 0x0000b701 },
 { "NS_GET_PARENT", 0x0000b702 },
+{ "NS_GET_NSTYPE", 0x0000b703 },
+{ "NS_GET_OWNER_UID", 0x0000b704 },
 { "IOCTL_EVTCHN_RESTRICT_DOMID", 0x00024506 },
 { "IOCTL_EVTCHN_BIND_VIRQ", 0x00044500 },
 { "IOCTL_EVTCHN_BIND_UNBOUND_PORT", 0x00044502 },
@@ -1449,6 +1454,7 @@
 { "DRM_IOCTL_I915_HWS_ADDR", 0x40106451 },
 { "DRM_IOCTL_I915_GEM_INIT", 0x40106453 },
 { "DRM_IOCTL_SIS_AGP_FREE", 0x40106455 },
+{ "DRM_IOCTL_I915_PERF_OPEN", 0x40106476 },
 { "FS_IOC_GET_ENCRYPTION_PWSALT", 0x40106614 },
 { "HSC_SET_TX", 0x40106b15 },
 { "HSC_GET_TX", 0x40106b16 },
@@ -1577,6 +1583,7 @@
 { "PHN_SETREGS", 0x40287008 },
 { "RTC_WKALM_SET", 0x4028700f },
 { "VHOST_SET_VRING_ADDR", 0x4028af11 },
+{ "RPMSG_CREATE_EPT_IOCTL", 0x4028b501 },
 { "EVIOCSFF", 0x402c4580 },
 { "NVM_DEV_INIT", 0x402c4c24 },
 { "NVME_IOCTL_SUBMIT_IO", 0x402c4e42 },
@@ -1634,6 +1641,8 @@
 { "BTRFS_IOC_SEND", 0x40449426 },
 { "SET_ARRAY_INFO", 0x40480923 },
 { "SNDRV_EMU10K1_IOCTL_PCM_POKE", 0x40484830 },
+{ "BC_TRANSACTION_SG", 0x40486311 },
+{ "BC_REPLY_SG", 0x40486312 },
 { "KVM_SET_GUEST_DEBUG", 0x4048ae9b },
 { "KVM_S390_IRQ", 0x4048aeb4 },
 { "GSMIOC_SETCONF", 0x404c4701 },
@@ -1676,11 +1685,23 @@
 { "ASHMEM_SET_NAME", 0x41007701 },
 { "BTRFS_IOC_SET_FSLABEL", 0x41009432 },
 { "USBDEVFS_GETDRIVER", 0x41045508 },
+{ "IOC_OPAL_TAKE_OWNERSHIP", 0x410870de },
+{ "IOC_OPAL_REVERT_TPR", 0x410870e2 },
 { "CA_SEND_MSG", 0x410c6f85 },
+{ "IOC_OPAL_ACTIVATE_USR", 0x411070e1 },
+{ "IOC_OPAL_ENABLE_DISABLE_MBR", 0x411070e5 },
+{ "IOC_OPAL_ERASE_LR", 0x411070e6 },
+{ "IOC_OPAL_SECURE_ERASE_LR", 0x411070e7 },
+{ "IOC_OPAL_SAVE", 0x411870dc },
+{ "IOC_OPAL_LOCK_UNLOCK", 0x411870dd },
+{ "IOC_OPAL_ACTIVATE_LSP", 0x411870df },
+{ "IOC_OPAL_ADD_USR_TO_LR", 0x411870e4 },
+{ "IOC_OPAL_LR_SETUP", 0x412870e3 },
 { "KVM_SET_SREGS", 0x4138ae84 },
 { "KVM_SET_XCRS", 0x4188aea7 },
 { "SNDRV_EMU10K1_IOCTL_CODE_POKE", 0x418c4811 },
 { "KVM_SET_FPU", 0x41a0ae8d },
+{ "IOC_OPAL_SET_PW", 0x422070e0 },
 { "PTP_SYS_OFFSET", 0x43403d05 },
 { "JSIOCSBTNMAP", 0x44006a33 },
 { "KVM_SET_LAPIC", 0x4400ae8f },
@@ -2061,6 +2082,8 @@
 { "GENWQE_READ_REG16", 0x8010a522 },
 { "UFFDIO_UNREGISTER", 0x8010aa01 },
 { "UFFDIO_WAKE", 0x8010aa02 },
+{ "KVM_PPC_RESIZE_HPT_PREPARE", 0x8010aead },
+{ "KVM_PPC_RESIZE_HPT_COMMIT", 0x8010aeae },
 { "FDGETMAXERRS", 0x8014020e },
 { "GET_DISK_INFO", 0x80140912 },
 { "SNDRV_COMPRESS_TSTAMP", 0x80144320 },
@@ -2676,6 +2699,7 @@
 { "BLKTRACESETUP", 0xc0401273 },
 { "PTP_SYS_OFFSET_PRECISE", 0xc0403d08 },
 { "CAPI_GET_PROFILE", 0xc0404309 },
+{ "NVME_NVM_IOCTL_SUBMIT_VIO", 0xc0404c42 },
 { "ND_IOCTL_CALL", 0xc0404e0a },
 { "SNDRV_TIMER_IOCTL_GSTATUS", 0xc0405405 },
 { "SNDRV_CTL_IOCTL_ELEM_REMOVE", 0xc0405519 },
@@ -2720,6 +2744,8 @@
 { "VIDIOC_ENUMINPUT", 0xc04c561a },
 { "VIDIOC_OMAP3ISP_AF_CFG", 0xc04c56c5 },
 { "CEC_ADAP_G_CAPS", 0xc04c6100 },
+{ "NVME_NVM_IOCTL_ADMIN_VIO", 0xc0504c41 },
+{ "NVME_NVM_IOCTL_IO_VIO", 0xc0504c43 },
 { "SNDRV_SEQ_IOCTL_GET_SUBSCRIPTION", 0xc0505350 },
 { "CEC_DQEVENT", 0xc0506107 },
 { "DRM_IOCTL_EXYNOS_IPP_GET_PROPERTY", 0xc0506470 },
diff --git a/ioctlent2.h b/ioctlent2.h
index 6811dc2..5549d01 100644
--- a/ioctlent2.h
+++ b/ioctlent2.h
@@ -574,6 +574,8 @@
 { "HPET_IE_OFF", 0x00006802 },
 { "HPET_EPI", 0x00006804 },
 { "HPET_DPI", 0x00006805 },
+{ "I915_PERF_IOCTL_ENABLE", 0x00006900 },
+{ "I915_PERF_IOCTL_DISABLE", 0x00006901 },
 { "KYRO_IOCTL_OVERLAY_CREATE", 0x00006b00 },
 { "KYRO_IOCTL_OVERLAY_VIEWPORT_SET", 0x00006b01 },
 { "KYRO_IOCTL_SET_VIDEO_MODE", 0x00006b02 },
@@ -880,8 +882,11 @@
 { "VHOST_RESET_OWNER", 0x0000af02 },
 { "BT_BMC_IOCTL_SMS_ATN", 0x0000b100 },
 { "PPPOEIOCDFWD", 0x0000b101 },
+{ "RPMSG_DESTROY_EPT_IOCTL", 0x0000b502 },
 { "NS_GET_USERNS", 0x0000b701 },
 { "NS_GET_PARENT", 0x0000b702 },
+{ "NS_GET_NSTYPE", 0x0000b703 },
+{ "NS_GET_OWNER_UID", 0x0000b704 },
 { "IOCTL_EVTCHN_RESTRICT_DOMID", 0x00024506 },
 { "IOCTL_EVTCHN_BIND_VIRQ", 0x00044500 },
 { "IOCTL_EVTCHN_BIND_UNBOUND_PORT", 0x00044502 },
@@ -1447,6 +1452,7 @@
 { "DRM_IOCTL_I915_GEM_INIT", 0x40106453 },
 { "DRM_IOCTL_SIS_AGP_FREE", 0x40106455 },
 { "DRM_IOCTL_RADEON_SETPARAM", 0x40106459 },
+{ "DRM_IOCTL_I915_PERF_OPEN", 0x40106476 },
 { "FS_IOC_GET_ENCRYPTION_PWSALT", 0x40106614 },
 { "HSC_SET_TX", 0x40106b15 },
 { "HSC_GET_TX", 0x40106b16 },
@@ -1577,6 +1583,7 @@
 { "PHN_SETREGS", 0x40287008 },
 { "RTC_WKALM_SET", 0x4028700f },
 { "VHOST_SET_VRING_ADDR", 0x4028af11 },
+{ "RPMSG_CREATE_EPT_IOCTL", 0x4028b501 },
 { "EVIOCSFF", 0x402c4580 },
 { "NVM_DEV_INIT", 0x402c4c24 },
 { "SNDRV_SEQ_IOCTL_SET_QUEUE_TEMPO", 0x402c5342 },
@@ -1633,6 +1640,8 @@
 { "DRM_IOCTL_I915_INIT", 0x40446440 },
 { "SET_ARRAY_INFO", 0x40480923 },
 { "SNDRV_EMU10K1_IOCTL_PCM_POKE", 0x40484830 },
+{ "BC_TRANSACTION_SG", 0x40486311 },
+{ "BC_REPLY_SG", 0x40486312 },
 { "BTRFS_IOC_SEND", 0x40489426 },
 { "KVM_SET_GUEST_DEBUG", 0x4048ae9b },
 { "KVM_S390_IRQ", 0x4048aeb4 },
@@ -1676,11 +1685,23 @@
 { "ASHMEM_SET_NAME", 0x41007701 },
 { "BTRFS_IOC_SET_FSLABEL", 0x41009432 },
 { "USBDEVFS_GETDRIVER", 0x41045508 },
+{ "IOC_OPAL_TAKE_OWNERSHIP", 0x410870de },
+{ "IOC_OPAL_REVERT_TPR", 0x410870e2 },
 { "CA_SEND_MSG", 0x410c6f85 },
+{ "IOC_OPAL_ACTIVATE_USR", 0x411070e1 },
+{ "IOC_OPAL_ENABLE_DISABLE_MBR", 0x411070e5 },
+{ "IOC_OPAL_ERASE_LR", 0x411070e6 },
+{ "IOC_OPAL_SECURE_ERASE_LR", 0x411070e7 },
+{ "IOC_OPAL_SAVE", 0x411870dc },
+{ "IOC_OPAL_LOCK_UNLOCK", 0x411870dd },
+{ "IOC_OPAL_ACTIVATE_LSP", 0x411870df },
+{ "IOC_OPAL_ADD_USR_TO_LR", 0x411870e4 },
+{ "IOC_OPAL_LR_SETUP", 0x412870e3 },
 { "KVM_SET_SREGS", 0x4138ae84 },
 { "KVM_SET_XCRS", 0x4188aea7 },
 { "SNDRV_EMU10K1_IOCTL_CODE_POKE", 0x418c4811 },
 { "KVM_SET_FPU", 0x41a0ae8d },
+{ "IOC_OPAL_SET_PW", 0x422070e0 },
 { "PTP_SYS_OFFSET", 0x43403d05 },
 { "JSIOCSBTNMAP", 0x44006a33 },
 { "KVM_SET_LAPIC", 0x4400ae8f },
@@ -2060,6 +2081,8 @@
 { "GENWQE_READ_REG16", 0x8010a522 },
 { "UFFDIO_UNREGISTER", 0x8010aa01 },
 { "UFFDIO_WAKE", 0x8010aa02 },
+{ "KVM_PPC_RESIZE_HPT_PREPARE", 0x8010aead },
+{ "KVM_PPC_RESIZE_HPT_COMMIT", 0x8010aeae },
 { "FDGETMAXERRS", 0x8014020e },
 { "GET_DISK_INFO", 0x80140912 },
 { "SNDRV_COMPRESS_TSTAMP", 0x80144320 },
@@ -2675,6 +2698,7 @@
 { "VIDIOC_OMAP3ISP_PRV_CFG", 0xc03c56c2 },
 { "PTP_SYS_OFFSET_PRECISE", 0xc0403d08 },
 { "CAPI_GET_PROFILE", 0xc0404309 },
+{ "NVME_NVM_IOCTL_SUBMIT_VIO", 0xc0404c42 },
 { "ND_IOCTL_CALL", 0xc0404e0a },
 { "SNDRV_TIMER_IOCTL_GSTATUS", 0xc0405405 },
 { "SNDRV_CTL_IOCTL_ELEM_REMOVE", 0xc0405519 },
@@ -2715,6 +2739,8 @@
 { "SNDRV_SEQ_IOCTL_GET_QUEUE_CLIENT", 0xc04c5349 },
 { "VIDIOC_OMAP3ISP_AF_CFG", 0xc04c56c5 },
 { "CEC_ADAP_G_CAPS", 0xc04c6100 },
+{ "NVME_NVM_IOCTL_ADMIN_VIO", 0xc0504c41 },
+{ "NVME_NVM_IOCTL_IO_VIO", 0xc0504c43 },
 { "SNDRV_SEQ_IOCTL_GET_SUBSCRIPTION", 0xc0505350 },
 { "VIDIOC_QUERYBUF", 0xc0505609 },
 { "VIDIOC_QBUF", 0xc050560f },
diff --git a/ioctlsort.c b/ioctlsort.c
index 079f21e..9bab978 100644
--- a/ioctlsort.c
+++ b/ioctlsort.c
@@ -1,6 +1,7 @@
 /*
  * Copyright (c) 2001 Wichert Akkerman <wichert@cistron.nl>
  * Copyright (c) 2004-2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 1999-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/ioprio.c b/ioprio.c
index 0b83be7..682a7b3 100644
--- a/ioprio.c
+++ b/ioprio.c
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2014-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/ipc_defs.h b/ipc_defs.h
index e0043ce..fc5d88f 100644
--- a/ipc_defs.h
+++ b/ipc_defs.h
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2003 Roland McGrath <roland@redhat.com>
+ * Copyright (c) 2003-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/ipc_msg.c b/ipc_msg.c
index a5f9e83..dc898a8 100644
--- a/ipc_msg.c
+++ b/ipc_msg.c
@@ -5,6 +5,7 @@
  * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
  * Copyright (c) 2003-2006 Roland McGrath <roland@redhat.com>
  * Copyright (c) 2006-2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2015-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/ipc_msgctl.c b/ipc_msgctl.c
index f289c30..eb3641c 100644
--- a/ipc_msgctl.c
+++ b/ipc_msgctl.c
@@ -5,6 +5,7 @@
  * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
  * Copyright (c) 2003-2006 Roland McGrath <roland@redhat.com>
  * Copyright (c) 2006-2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2015-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/ipc_sem.c b/ipc_sem.c
index 4a70378..d5f4190 100644
--- a/ipc_sem.c
+++ b/ipc_sem.c
@@ -5,6 +5,7 @@
  * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
  * Copyright (c) 2003-2006 Roland McGrath <roland@redhat.com>
  * Copyright (c) 2006-2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2015-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/ipc_shm.c b/ipc_shm.c
index c4bdb87..7284b18 100644
--- a/ipc_shm.c
+++ b/ipc_shm.c
@@ -5,6 +5,7 @@
  * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
  * Copyright (c) 2003-2006 Roland McGrath <roland@redhat.com>
  * Copyright (c) 2006-2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2015-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/ipc_shmctl.c b/ipc_shmctl.c
index ff76af8..18b92b3 100644
--- a/ipc_shmctl.c
+++ b/ipc_shmctl.c
@@ -5,6 +5,7 @@
  * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
  * Copyright (c) 2003-2006 Roland McGrath <roland@redhat.com>
  * Copyright (c) 2006-2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2015-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/kcmp.c b/kcmp.c
index 97795e6..8c0994b 100644
--- a/kcmp.c
+++ b/kcmp.c
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2015-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/kernel_types.h b/kernel_types.h
index 5a27613..373a3e0 100644
--- a/kernel_types.h
+++ b/kernel_types.h
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2015-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/kexec.c b/kexec.c
index 44d5bd1..c11113d 100644
--- a/kexec.c
+++ b/kexec.c
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2014-2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2014-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/keyctl.c b/keyctl.c
index c270221..3165fcd 100644
--- a/keyctl.c
+++ b/keyctl.c
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2014-2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2014-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/ldt.c b/ldt.c
index 91bdf15..81bc8ae 100644
--- a/ldt.c
+++ b/ldt.c
@@ -6,6 +6,7 @@
  * Copyright (c) 2002-2004 Roland McGrath <roland@redhat.com>
  * Copyright (c) 2010 Andreas Schwab <schwab@linux-m68k.org>
  * Copyright (c) 2014-2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2014-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/linux/32/ioctls_inc_align16.h b/linux/32/ioctls_inc_align16.h
index 71c9d18..d509dc6 100644
--- a/linux/32/ioctls_inc_align16.h
+++ b/linux/32/ioctls_inc_align16.h
@@ -264,11 +264,14 @@
 { "drm/i915_drm.h", "DRM_IOCTL_I915_IRQ_WAIT", _IOC_WRITE, 0x6445, 0x04 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_OVERLAY_ATTRS", _IOC_READ|_IOC_WRITE, 0x6468, 0x2c },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_OVERLAY_PUT_IMAGE", _IOC_WRITE, 0x6467, 0x2c },
+{ "drm/i915_drm.h", "DRM_IOCTL_I915_PERF_OPEN", _IOC_WRITE, 0x6476, 0x10 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_REG_READ", _IOC_READ|_IOC_WRITE, 0x6471, 0x10 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_SETPARAM", _IOC_WRITE, 0x6447, 0x08 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_SET_SPRITE_COLORKEY", _IOC_READ|_IOC_WRITE, 0x646b, 0x14 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_SET_VBLANK_PIPE", _IOC_WRITE, 0x644d, 0x04 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_VBLANK_SWAP", _IOC_READ|_IOC_WRITE, 0x644f, 0x0c },
+{ "drm/i915_drm.h", "I915_PERF_IOCTL_DISABLE", _IOC_NONE, 0x6901, 0x00 },
+{ "drm/i915_drm.h", "I915_PERF_IOCTL_ENABLE", _IOC_NONE, 0x6900, 0x00 },
 { "drm/mga_drm.h", "DRM_IOCTL_MGA_BLIT", _IOC_WRITE, 0x6448, 0x34 },
 { "drm/mga_drm.h", "DRM_IOCTL_MGA_CLEAR", _IOC_WRITE, 0x6444, 0x14 },
 { "drm/mga_drm.h", "DRM_IOCTL_MGA_DMA_BOOTSTRAP", _IOC_READ|_IOC_WRITE, 0x644c, 0x1a },
@@ -451,8 +454,10 @@
 { "linux/android/binder.h", "BC_REGISTER_LOOPER", _IOC_NONE, 0x630b, 0x00 },
 { "linux/android/binder.h", "BC_RELEASE", _IOC_WRITE, 0x6306, 0x04 },
 { "linux/android/binder.h", "BC_REPLY", _IOC_WRITE, 0x6301, 0x40 },
+{ "linux/android/binder.h", "BC_REPLY_SG", _IOC_WRITE, 0x6312, 0x48 },
 { "linux/android/binder.h", "BC_REQUEST_DEATH_NOTIFICATION", _IOC_WRITE, 0x630e, 0x0c },
 { "linux/android/binder.h", "BC_TRANSACTION", _IOC_WRITE, 0x6300, 0x40 },
+{ "linux/android/binder.h", "BC_TRANSACTION_SG", _IOC_WRITE, 0x6311, 0x48 },
 { "linux/android/binder.h", "BINDER_SET_CONTEXT_MGR", _IOC_WRITE, 0x6207, 0x04 },
 { "linux/android/binder.h", "BINDER_SET_IDLE_PRIORITY", _IOC_WRITE, 0x6206, 0x04 },
 { "linux/android/binder.h", "BINDER_SET_IDLE_TIMEOUT", _IOC_WRITE, 0x6203, 0x08 },
@@ -1315,6 +1320,9 @@
 { "linux/kfd_ioctl.h", "AMDKFD_IOC_SET_MEMORY_POLICY", _IOC_WRITE, 0x4b04, 0x20 },
 { "linux/kfd_ioctl.h", "AMDKFD_IOC_UPDATE_QUEUE", _IOC_WRITE, 0x4b07, 0x18 },
 { "linux/kfd_ioctl.h", "AMDKFD_IOC_WAIT_EVENTS", _IOC_READ|_IOC_WRITE, 0x4b0c, 0x18 },
+{ "linux/lightnvm.h", "NVME_NVM_IOCTL_ADMIN_VIO", _IOC_READ|_IOC_WRITE, 0x4c41, 0x50 },
+{ "linux/lightnvm.h", "NVME_NVM_IOCTL_IO_VIO", _IOC_READ|_IOC_WRITE, 0x4c43, 0x50 },
+{ "linux/lightnvm.h", "NVME_NVM_IOCTL_SUBMIT_VIO", _IOC_READ|_IOC_WRITE, 0x4c42, 0x40 },
 { "linux/lightnvm.h", "NVM_DEV_CREATE", _IOC_WRITE, 0x4c22, 0x80 },
 { "linux/lightnvm.h", "NVM_DEV_FACTORY", _IOC_WRITE, 0x4c25, 0x24 },
 { "linux/lightnvm.h", "NVM_DEV_INIT", _IOC_WRITE, 0x4c24, 0x2c },
@@ -1455,6 +1463,8 @@
 { "linux/nilfs2_api.h", "NILFS_IOCTL_SET_ALLOC_RANGE", _IOC_WRITE, 0x6e8c, 0x10 },
 { "linux/nilfs2_api.h", "NILFS_IOCTL_SET_SUINFO", _IOC_WRITE, 0x6e8d, 0x18 },
 { "linux/nilfs2_api.h", "NILFS_IOCTL_SYNC", _IOC_READ, 0x6e8a, 0x08 },
+{ "linux/nsfs.h", "NS_GET_NSTYPE", _IOC_NONE, 0xb703, 0x00 },
+{ "linux/nsfs.h", "NS_GET_OWNER_UID", _IOC_NONE, 0xb704, 0x00 },
 { "linux/nsfs.h", "NS_GET_PARENT", _IOC_NONE, 0xb702, 0x00 },
 { "linux/nsfs.h", "NS_GET_USERNS", _IOC_NONE, 0xb701, 0x00 },
 { "linux/nvme_ioctl.h", "NVME_IOCTL_ADMIN_CMD", _IOC_READ|_IOC_WRITE, 0x4e41, 0x48 },
@@ -1665,6 +1675,8 @@
 { "linux/rio_mport_cdev.h", "RIO_UNMAP_INBOUND", _IOC_WRITE, 0x6d12, 0x08 },
 { "linux/rio_mport_cdev.h", "RIO_UNMAP_OUTBOUND", _IOC_WRITE, 0x6d10, 0x28 },
 { "linux/rio_mport_cdev.h", "RIO_WAIT_FOR_ASYNC", _IOC_WRITE, 0x6d16, 0x08 },
+{ "linux/rpmsg.h", "RPMSG_CREATE_EPT_IOCTL", _IOC_WRITE, 0xb501, 0x28 },
+{ "linux/rpmsg.h", "RPMSG_DESTROY_EPT_IOCTL", _IOC_NONE, 0xb502, 0x00 },
 { "linux/rtc.h", "RTC_AIE_OFF", _IOC_NONE, 0x7002, 0x00 },
 { "linux/rtc.h", "RTC_AIE_ON", _IOC_NONE, 0x7001, 0x00 },
 { "linux/rtc.h", "RTC_ALM_READ", _IOC_READ, 0x7008, 0x24 },
@@ -1704,6 +1716,18 @@
 { "linux/scif_ioctl.h", "SCIF_VREADFROM", _IOC_READ|_IOC_WRITE, 0x730c, 0x24 },
 { "linux/scif_ioctl.h", "SCIF_VWRITETO", _IOC_READ|_IOC_WRITE, 0x730d, 0x24 },
 { "linux/scif_ioctl.h", "SCIF_WRITETO", _IOC_READ|_IOC_WRITE, 0x730b, 0x24 },
+{ "linux/sed-opal.h", "IOC_OPAL_ACTIVATE_LSP", _IOC_WRITE, 0x70df, 0x118 },
+{ "linux/sed-opal.h", "IOC_OPAL_ACTIVATE_USR", _IOC_WRITE, 0x70e1, 0x110 },
+{ "linux/sed-opal.h", "IOC_OPAL_ADD_USR_TO_LR", _IOC_WRITE, 0x70e4, 0x118 },
+{ "linux/sed-opal.h", "IOC_OPAL_ENABLE_DISABLE_MBR", _IOC_WRITE, 0x70e5, 0x110 },
+{ "linux/sed-opal.h", "IOC_OPAL_ERASE_LR", _IOC_WRITE, 0x70e6, 0x110 },
+{ "linux/sed-opal.h", "IOC_OPAL_LOCK_UNLOCK", _IOC_WRITE, 0x70dd, 0x118 },
+{ "linux/sed-opal.h", "IOC_OPAL_LR_SETUP", _IOC_WRITE, 0x70e3, 0x128 },
+{ "linux/sed-opal.h", "IOC_OPAL_REVERT_TPR", _IOC_WRITE, 0x70e2, 0x108 },
+{ "linux/sed-opal.h", "IOC_OPAL_SAVE", _IOC_WRITE, 0x70dc, 0x118 },
+{ "linux/sed-opal.h", "IOC_OPAL_SECURE_ERASE_LR", _IOC_WRITE, 0x70e7, 0x110 },
+{ "linux/sed-opal.h", "IOC_OPAL_SET_PW", _IOC_WRITE, 0x70e0, 0x220 },
+{ "linux/sed-opal.h", "IOC_OPAL_TAKE_OWNERSHIP", _IOC_WRITE, 0x70de, 0x108 },
 { "linux/serio.h", "SPIOCSTYPE", _IOC_WRITE, 0x7101, 0x04 },
 { "linux/sockios.h", "SIOCADDDLCI", 0, 0x8980, 0 },
 { "linux/sockios.h", "SIOCADDMULTI", 0, 0x8931, 0 },
@@ -2418,23 +2442,23 @@
 { "net/bluetooth/rfcomm.h", "RFCOMMRELEASEDEV", _IOC_WRITE, 0x52c9, 0x04 },
 { "net/bluetooth/rfcomm.h", "RFCOMMSTEALDLC", _IOC_WRITE, 0x52dc, 0x04 },
 { "net/nfc/nci_core.h", "NCIUARTSETDRIVER", _IOC_WRITE, 0x5500, 0x04 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_ACK_EVENT", _IOC_WRITE, 0x1bea, 0x04 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_ASSIGN_CTXT", _IOC_READ|_IOC_WRITE, 0x1be1, 0x1c },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_CREDIT_UPD", _IOC_NONE, 0x1be6, 0x00 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_CTXT_INFO", _IOC_WRITE, 0x1be2, 0x26 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_CTXT_RESET", _IOC_NONE, 0x1bec, 0x00 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_GET_VERS", _IOC_READ, 0x1bee, 0x04 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_POLL_TYPE", _IOC_WRITE, 0x1be9, 0x04 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_RECV_CTRL", _IOC_WRITE, 0x1be8, 0x04 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_SET_PKEY", _IOC_WRITE, 0x1beb, 0x02 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_TID_FREE", _IOC_READ|_IOC_WRITE, 0x1be5, 0x18 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_TID_INVAL_READ", _IOC_READ|_IOC_WRITE, 0x1bed, 0x18 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_TID_UPDATE", _IOC_READ|_IOC_WRITE, 0x1be4, 0x18 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_USER_INFO", _IOC_WRITE, 0x1be3, 0x78 },
-{ "rdma/ib_user_mad.h", "IB_USER_MAD_ENABLE_PKEY", _IOC_NONE, 0x1b03, 0x00 },
-{ "rdma/ib_user_mad.h", "IB_USER_MAD_REGISTER_AGENT", _IOC_READ|_IOC_WRITE, 0x1b01, 0x1c },
-{ "rdma/ib_user_mad.h", "IB_USER_MAD_REGISTER_AGENT2", _IOC_READ|_IOC_WRITE, 0x1b04, 0x28 },
-{ "rdma/ib_user_mad.h", "IB_USER_MAD_UNREGISTER_AGENT", _IOC_WRITE, 0x1b02, 0x04 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_ACK_EVENT", _IOC_WRITE, 0x1bea, 0x04 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_ASSIGN_CTXT", _IOC_READ|_IOC_WRITE, 0x1be1, 0x1c },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_CREDIT_UPD", _IOC_NONE, 0x1be6, 0x00 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_CTXT_INFO", _IOC_WRITE, 0x1be2, 0x26 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_CTXT_RESET", _IOC_NONE, 0x1bec, 0x00 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_GET_VERS", _IOC_READ, 0x1bee, 0x04 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_POLL_TYPE", _IOC_WRITE, 0x1be9, 0x04 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_RECV_CTRL", _IOC_WRITE, 0x1be8, 0x04 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_SET_PKEY", _IOC_WRITE, 0x1beb, 0x02 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_TID_FREE", _IOC_READ|_IOC_WRITE, 0x1be5, 0x18 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_TID_INVAL_READ", _IOC_READ|_IOC_WRITE, 0x1bed, 0x18 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_TID_UPDATE", _IOC_READ|_IOC_WRITE, 0x1be4, 0x18 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_USER_INFO", _IOC_WRITE, 0x1be3, 0x78 },
+{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_ENABLE_PKEY", _IOC_NONE, 0x1b03, 0x00 },
+{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_REGISTER_AGENT", _IOC_READ|_IOC_WRITE, 0x1b01, 0x1c },
+{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_REGISTER_AGENT2", _IOC_READ|_IOC_WRITE, 0x1b04, 0x28 },
+{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_UNREGISTER_AGENT", _IOC_WRITE, 0x1b02, 0x04 },
 { "scsi/cxlflash_ioctl.h", "DK_CXLFLASH_ATTACH", _IOC_READ|_IOC_WRITE, 0xca80, 0x90 },
 { "scsi/cxlflash_ioctl.h", "DK_CXLFLASH_DETACH", _IOC_READ|_IOC_WRITE, 0xca83, 0x60 },
 { "scsi/cxlflash_ioctl.h", "DK_CXLFLASH_MANAGE_LUN", _IOC_READ|_IOC_WRITE, 0xca86, 0x68 },
diff --git a/linux/32/ioctls_inc_align32.h b/linux/32/ioctls_inc_align32.h
index 699eb90..b1b0339 100644
--- a/linux/32/ioctls_inc_align32.h
+++ b/linux/32/ioctls_inc_align32.h
@@ -264,11 +264,14 @@
 { "drm/i915_drm.h", "DRM_IOCTL_I915_IRQ_WAIT", _IOC_WRITE, 0x6445, 0x04 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_OVERLAY_ATTRS", _IOC_READ|_IOC_WRITE, 0x6468, 0x2c },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_OVERLAY_PUT_IMAGE", _IOC_WRITE, 0x6467, 0x2c },
+{ "drm/i915_drm.h", "DRM_IOCTL_I915_PERF_OPEN", _IOC_WRITE, 0x6476, 0x10 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_REG_READ", _IOC_READ|_IOC_WRITE, 0x6471, 0x10 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_SETPARAM", _IOC_WRITE, 0x6447, 0x08 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_SET_SPRITE_COLORKEY", _IOC_READ|_IOC_WRITE, 0x646b, 0x14 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_SET_VBLANK_PIPE", _IOC_WRITE, 0x644d, 0x04 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_VBLANK_SWAP", _IOC_READ|_IOC_WRITE, 0x644f, 0x0c },
+{ "drm/i915_drm.h", "I915_PERF_IOCTL_DISABLE", _IOC_NONE, 0x6901, 0x00 },
+{ "drm/i915_drm.h", "I915_PERF_IOCTL_ENABLE", _IOC_NONE, 0x6900, 0x00 },
 { "drm/mga_drm.h", "DRM_IOCTL_MGA_BLIT", _IOC_WRITE, 0x6448, 0x34 },
 { "drm/mga_drm.h", "DRM_IOCTL_MGA_CLEAR", _IOC_WRITE, 0x6444, 0x14 },
 { "drm/mga_drm.h", "DRM_IOCTL_MGA_DMA_BOOTSTRAP", _IOC_READ|_IOC_WRITE, 0x644c, 0x1c },
@@ -451,8 +454,10 @@
 { "linux/android/binder.h", "BC_REGISTER_LOOPER", _IOC_NONE, 0x630b, 0x00 },
 { "linux/android/binder.h", "BC_RELEASE", _IOC_WRITE, 0x6306, 0x04 },
 { "linux/android/binder.h", "BC_REPLY", _IOC_WRITE, 0x6301, 0x40 },
+{ "linux/android/binder.h", "BC_REPLY_SG", _IOC_WRITE, 0x6312, 0x48 },
 { "linux/android/binder.h", "BC_REQUEST_DEATH_NOTIFICATION", _IOC_WRITE, 0x630e, 0x0c },
 { "linux/android/binder.h", "BC_TRANSACTION", _IOC_WRITE, 0x6300, 0x40 },
+{ "linux/android/binder.h", "BC_TRANSACTION_SG", _IOC_WRITE, 0x6311, 0x48 },
 { "linux/android/binder.h", "BINDER_SET_CONTEXT_MGR", _IOC_WRITE, 0x6207, 0x04 },
 { "linux/android/binder.h", "BINDER_SET_IDLE_PRIORITY", _IOC_WRITE, 0x6206, 0x04 },
 { "linux/android/binder.h", "BINDER_SET_IDLE_TIMEOUT", _IOC_WRITE, 0x6203, 0x08 },
@@ -1315,6 +1320,9 @@
 { "linux/kfd_ioctl.h", "AMDKFD_IOC_SET_MEMORY_POLICY", _IOC_WRITE, 0x4b04, 0x20 },
 { "linux/kfd_ioctl.h", "AMDKFD_IOC_UPDATE_QUEUE", _IOC_WRITE, 0x4b07, 0x18 },
 { "linux/kfd_ioctl.h", "AMDKFD_IOC_WAIT_EVENTS", _IOC_READ|_IOC_WRITE, 0x4b0c, 0x18 },
+{ "linux/lightnvm.h", "NVME_NVM_IOCTL_ADMIN_VIO", _IOC_READ|_IOC_WRITE, 0x4c41, 0x50 },
+{ "linux/lightnvm.h", "NVME_NVM_IOCTL_IO_VIO", _IOC_READ|_IOC_WRITE, 0x4c43, 0x50 },
+{ "linux/lightnvm.h", "NVME_NVM_IOCTL_SUBMIT_VIO", _IOC_READ|_IOC_WRITE, 0x4c42, 0x40 },
 { "linux/lightnvm.h", "NVM_DEV_CREATE", _IOC_WRITE, 0x4c22, 0x80 },
 { "linux/lightnvm.h", "NVM_DEV_FACTORY", _IOC_WRITE, 0x4c25, 0x24 },
 { "linux/lightnvm.h", "NVM_DEV_INIT", _IOC_WRITE, 0x4c24, 0x2c },
@@ -1455,6 +1463,8 @@
 { "linux/nilfs2_api.h", "NILFS_IOCTL_SET_ALLOC_RANGE", _IOC_WRITE, 0x6e8c, 0x10 },
 { "linux/nilfs2_api.h", "NILFS_IOCTL_SET_SUINFO", _IOC_WRITE, 0x6e8d, 0x18 },
 { "linux/nilfs2_api.h", "NILFS_IOCTL_SYNC", _IOC_READ, 0x6e8a, 0x08 },
+{ "linux/nsfs.h", "NS_GET_NSTYPE", _IOC_NONE, 0xb703, 0x00 },
+{ "linux/nsfs.h", "NS_GET_OWNER_UID", _IOC_NONE, 0xb704, 0x00 },
 { "linux/nsfs.h", "NS_GET_PARENT", _IOC_NONE, 0xb702, 0x00 },
 { "linux/nsfs.h", "NS_GET_USERNS", _IOC_NONE, 0xb701, 0x00 },
 { "linux/nvme_ioctl.h", "NVME_IOCTL_ADMIN_CMD", _IOC_READ|_IOC_WRITE, 0x4e41, 0x48 },
@@ -1665,6 +1675,8 @@
 { "linux/rio_mport_cdev.h", "RIO_UNMAP_INBOUND", _IOC_WRITE, 0x6d12, 0x08 },
 { "linux/rio_mport_cdev.h", "RIO_UNMAP_OUTBOUND", _IOC_WRITE, 0x6d10, 0x28 },
 { "linux/rio_mport_cdev.h", "RIO_WAIT_FOR_ASYNC", _IOC_WRITE, 0x6d16, 0x08 },
+{ "linux/rpmsg.h", "RPMSG_CREATE_EPT_IOCTL", _IOC_WRITE, 0xb501, 0x28 },
+{ "linux/rpmsg.h", "RPMSG_DESTROY_EPT_IOCTL", _IOC_NONE, 0xb502, 0x00 },
 { "linux/rtc.h", "RTC_AIE_OFF", _IOC_NONE, 0x7002, 0x00 },
 { "linux/rtc.h", "RTC_AIE_ON", _IOC_NONE, 0x7001, 0x00 },
 { "linux/rtc.h", "RTC_ALM_READ", _IOC_READ, 0x7008, 0x24 },
@@ -1704,6 +1716,18 @@
 { "linux/scif_ioctl.h", "SCIF_VREADFROM", _IOC_READ|_IOC_WRITE, 0x730c, 0x24 },
 { "linux/scif_ioctl.h", "SCIF_VWRITETO", _IOC_READ|_IOC_WRITE, 0x730d, 0x24 },
 { "linux/scif_ioctl.h", "SCIF_WRITETO", _IOC_READ|_IOC_WRITE, 0x730b, 0x24 },
+{ "linux/sed-opal.h", "IOC_OPAL_ACTIVATE_LSP", _IOC_WRITE, 0x70df, 0x118 },
+{ "linux/sed-opal.h", "IOC_OPAL_ACTIVATE_USR", _IOC_WRITE, 0x70e1, 0x110 },
+{ "linux/sed-opal.h", "IOC_OPAL_ADD_USR_TO_LR", _IOC_WRITE, 0x70e4, 0x118 },
+{ "linux/sed-opal.h", "IOC_OPAL_ENABLE_DISABLE_MBR", _IOC_WRITE, 0x70e5, 0x110 },
+{ "linux/sed-opal.h", "IOC_OPAL_ERASE_LR", _IOC_WRITE, 0x70e6, 0x110 },
+{ "linux/sed-opal.h", "IOC_OPAL_LOCK_UNLOCK", _IOC_WRITE, 0x70dd, 0x118 },
+{ "linux/sed-opal.h", "IOC_OPAL_LR_SETUP", _IOC_WRITE, 0x70e3, 0x128 },
+{ "linux/sed-opal.h", "IOC_OPAL_REVERT_TPR", _IOC_WRITE, 0x70e2, 0x108 },
+{ "linux/sed-opal.h", "IOC_OPAL_SAVE", _IOC_WRITE, 0x70dc, 0x118 },
+{ "linux/sed-opal.h", "IOC_OPAL_SECURE_ERASE_LR", _IOC_WRITE, 0x70e7, 0x110 },
+{ "linux/sed-opal.h", "IOC_OPAL_SET_PW", _IOC_WRITE, 0x70e0, 0x220 },
+{ "linux/sed-opal.h", "IOC_OPAL_TAKE_OWNERSHIP", _IOC_WRITE, 0x70de, 0x108 },
 { "linux/serio.h", "SPIOCSTYPE", _IOC_WRITE, 0x7101, 0x04 },
 { "linux/sockios.h", "SIOCADDDLCI", 0, 0x8980, 0 },
 { "linux/sockios.h", "SIOCADDMULTI", 0, 0x8931, 0 },
@@ -2418,23 +2442,23 @@
 { "net/bluetooth/rfcomm.h", "RFCOMMRELEASEDEV", _IOC_WRITE, 0x52c9, 0x04 },
 { "net/bluetooth/rfcomm.h", "RFCOMMSTEALDLC", _IOC_WRITE, 0x52dc, 0x04 },
 { "net/nfc/nci_core.h", "NCIUARTSETDRIVER", _IOC_WRITE, 0x5500, 0x04 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_ACK_EVENT", _IOC_WRITE, 0x1bea, 0x04 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_ASSIGN_CTXT", _IOC_READ|_IOC_WRITE, 0x1be1, 0x1c },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_CREDIT_UPD", _IOC_NONE, 0x1be6, 0x00 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_CTXT_INFO", _IOC_WRITE, 0x1be2, 0x28 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_CTXT_RESET", _IOC_NONE, 0x1bec, 0x00 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_GET_VERS", _IOC_READ, 0x1bee, 0x04 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_POLL_TYPE", _IOC_WRITE, 0x1be9, 0x04 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_RECV_CTRL", _IOC_WRITE, 0x1be8, 0x04 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_SET_PKEY", _IOC_WRITE, 0x1beb, 0x02 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_TID_FREE", _IOC_READ|_IOC_WRITE, 0x1be5, 0x18 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_TID_INVAL_READ", _IOC_READ|_IOC_WRITE, 0x1bed, 0x18 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_TID_UPDATE", _IOC_READ|_IOC_WRITE, 0x1be4, 0x18 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_USER_INFO", _IOC_WRITE, 0x1be3, 0x78 },
-{ "rdma/ib_user_mad.h", "IB_USER_MAD_ENABLE_PKEY", _IOC_NONE, 0x1b03, 0x00 },
-{ "rdma/ib_user_mad.h", "IB_USER_MAD_REGISTER_AGENT", _IOC_READ|_IOC_WRITE, 0x1b01, 0x1c },
-{ "rdma/ib_user_mad.h", "IB_USER_MAD_REGISTER_AGENT2", _IOC_READ|_IOC_WRITE, 0x1b04, 0x28 },
-{ "rdma/ib_user_mad.h", "IB_USER_MAD_UNREGISTER_AGENT", _IOC_WRITE, 0x1b02, 0x04 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_ACK_EVENT", _IOC_WRITE, 0x1bea, 0x04 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_ASSIGN_CTXT", _IOC_READ|_IOC_WRITE, 0x1be1, 0x1c },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_CREDIT_UPD", _IOC_NONE, 0x1be6, 0x00 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_CTXT_INFO", _IOC_WRITE, 0x1be2, 0x28 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_CTXT_RESET", _IOC_NONE, 0x1bec, 0x00 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_GET_VERS", _IOC_READ, 0x1bee, 0x04 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_POLL_TYPE", _IOC_WRITE, 0x1be9, 0x04 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_RECV_CTRL", _IOC_WRITE, 0x1be8, 0x04 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_SET_PKEY", _IOC_WRITE, 0x1beb, 0x02 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_TID_FREE", _IOC_READ|_IOC_WRITE, 0x1be5, 0x18 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_TID_INVAL_READ", _IOC_READ|_IOC_WRITE, 0x1bed, 0x18 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_TID_UPDATE", _IOC_READ|_IOC_WRITE, 0x1be4, 0x18 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_USER_INFO", _IOC_WRITE, 0x1be3, 0x78 },
+{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_ENABLE_PKEY", _IOC_NONE, 0x1b03, 0x00 },
+{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_REGISTER_AGENT", _IOC_READ|_IOC_WRITE, 0x1b01, 0x1c },
+{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_REGISTER_AGENT2", _IOC_READ|_IOC_WRITE, 0x1b04, 0x28 },
+{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_UNREGISTER_AGENT", _IOC_WRITE, 0x1b02, 0x04 },
 { "scsi/cxlflash_ioctl.h", "DK_CXLFLASH_ATTACH", _IOC_READ|_IOC_WRITE, 0xca80, 0x90 },
 { "scsi/cxlflash_ioctl.h", "DK_CXLFLASH_DETACH", _IOC_READ|_IOC_WRITE, 0xca83, 0x60 },
 { "scsi/cxlflash_ioctl.h", "DK_CXLFLASH_MANAGE_LUN", _IOC_READ|_IOC_WRITE, 0xca86, 0x68 },
diff --git a/linux/32/ioctls_inc_align64.h b/linux/32/ioctls_inc_align64.h
index fcd9d8c..ac97f5f 100644
--- a/linux/32/ioctls_inc_align64.h
+++ b/linux/32/ioctls_inc_align64.h
@@ -264,11 +264,14 @@
 { "drm/i915_drm.h", "DRM_IOCTL_I915_IRQ_WAIT", _IOC_WRITE, 0x6445, 0x04 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_OVERLAY_ATTRS", _IOC_READ|_IOC_WRITE, 0x6468, 0x2c },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_OVERLAY_PUT_IMAGE", _IOC_WRITE, 0x6467, 0x2c },
+{ "drm/i915_drm.h", "DRM_IOCTL_I915_PERF_OPEN", _IOC_WRITE, 0x6476, 0x10 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_REG_READ", _IOC_READ|_IOC_WRITE, 0x6471, 0x10 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_SETPARAM", _IOC_WRITE, 0x6447, 0x08 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_SET_SPRITE_COLORKEY", _IOC_READ|_IOC_WRITE, 0x646b, 0x14 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_SET_VBLANK_PIPE", _IOC_WRITE, 0x644d, 0x04 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_VBLANK_SWAP", _IOC_READ|_IOC_WRITE, 0x644f, 0x0c },
+{ "drm/i915_drm.h", "I915_PERF_IOCTL_DISABLE", _IOC_NONE, 0x6901, 0x00 },
+{ "drm/i915_drm.h", "I915_PERF_IOCTL_ENABLE", _IOC_NONE, 0x6900, 0x00 },
 { "drm/mga_drm.h", "DRM_IOCTL_MGA_BLIT", _IOC_WRITE, 0x6448, 0x34 },
 { "drm/mga_drm.h", "DRM_IOCTL_MGA_CLEAR", _IOC_WRITE, 0x6444, 0x14 },
 { "drm/mga_drm.h", "DRM_IOCTL_MGA_DMA_BOOTSTRAP", _IOC_READ|_IOC_WRITE, 0x644c, 0x1c },
@@ -451,8 +454,10 @@
 { "linux/android/binder.h", "BC_REGISTER_LOOPER", _IOC_NONE, 0x630b, 0x00 },
 { "linux/android/binder.h", "BC_RELEASE", _IOC_WRITE, 0x6306, 0x04 },
 { "linux/android/binder.h", "BC_REPLY", _IOC_WRITE, 0x6301, 0x40 },
+{ "linux/android/binder.h", "BC_REPLY_SG", _IOC_WRITE, 0x6312, 0x48 },
 { "linux/android/binder.h", "BC_REQUEST_DEATH_NOTIFICATION", _IOC_WRITE, 0x630e, 0x0c },
 { "linux/android/binder.h", "BC_TRANSACTION", _IOC_WRITE, 0x6300, 0x40 },
+{ "linux/android/binder.h", "BC_TRANSACTION_SG", _IOC_WRITE, 0x6311, 0x48 },
 { "linux/android/binder.h", "BINDER_SET_CONTEXT_MGR", _IOC_WRITE, 0x6207, 0x04 },
 { "linux/android/binder.h", "BINDER_SET_IDLE_PRIORITY", _IOC_WRITE, 0x6206, 0x04 },
 { "linux/android/binder.h", "BINDER_SET_IDLE_TIMEOUT", _IOC_WRITE, 0x6203, 0x08 },
@@ -1315,6 +1320,9 @@
 { "linux/kfd_ioctl.h", "AMDKFD_IOC_SET_MEMORY_POLICY", _IOC_WRITE, 0x4b04, 0x20 },
 { "linux/kfd_ioctl.h", "AMDKFD_IOC_UPDATE_QUEUE", _IOC_WRITE, 0x4b07, 0x18 },
 { "linux/kfd_ioctl.h", "AMDKFD_IOC_WAIT_EVENTS", _IOC_READ|_IOC_WRITE, 0x4b0c, 0x18 },
+{ "linux/lightnvm.h", "NVME_NVM_IOCTL_ADMIN_VIO", _IOC_READ|_IOC_WRITE, 0x4c41, 0x50 },
+{ "linux/lightnvm.h", "NVME_NVM_IOCTL_IO_VIO", _IOC_READ|_IOC_WRITE, 0x4c43, 0x50 },
+{ "linux/lightnvm.h", "NVME_NVM_IOCTL_SUBMIT_VIO", _IOC_READ|_IOC_WRITE, 0x4c42, 0x40 },
 { "linux/lightnvm.h", "NVM_DEV_CREATE", _IOC_WRITE, 0x4c22, 0x80 },
 { "linux/lightnvm.h", "NVM_DEV_FACTORY", _IOC_WRITE, 0x4c25, 0x24 },
 { "linux/lightnvm.h", "NVM_DEV_INIT", _IOC_WRITE, 0x4c24, 0x2c },
@@ -1455,6 +1463,8 @@
 { "linux/nilfs2_api.h", "NILFS_IOCTL_SET_ALLOC_RANGE", _IOC_WRITE, 0x6e8c, 0x10 },
 { "linux/nilfs2_api.h", "NILFS_IOCTL_SET_SUINFO", _IOC_WRITE, 0x6e8d, 0x18 },
 { "linux/nilfs2_api.h", "NILFS_IOCTL_SYNC", _IOC_READ, 0x6e8a, 0x08 },
+{ "linux/nsfs.h", "NS_GET_NSTYPE", _IOC_NONE, 0xb703, 0x00 },
+{ "linux/nsfs.h", "NS_GET_OWNER_UID", _IOC_NONE, 0xb704, 0x00 },
 { "linux/nsfs.h", "NS_GET_PARENT", _IOC_NONE, 0xb702, 0x00 },
 { "linux/nsfs.h", "NS_GET_USERNS", _IOC_NONE, 0xb701, 0x00 },
 { "linux/nvme_ioctl.h", "NVME_IOCTL_ADMIN_CMD", _IOC_READ|_IOC_WRITE, 0x4e41, 0x48 },
@@ -1665,6 +1675,8 @@
 { "linux/rio_mport_cdev.h", "RIO_UNMAP_INBOUND", _IOC_WRITE, 0x6d12, 0x08 },
 { "linux/rio_mport_cdev.h", "RIO_UNMAP_OUTBOUND", _IOC_WRITE, 0x6d10, 0x28 },
 { "linux/rio_mport_cdev.h", "RIO_WAIT_FOR_ASYNC", _IOC_WRITE, 0x6d16, 0x08 },
+{ "linux/rpmsg.h", "RPMSG_CREATE_EPT_IOCTL", _IOC_WRITE, 0xb501, 0x28 },
+{ "linux/rpmsg.h", "RPMSG_DESTROY_EPT_IOCTL", _IOC_NONE, 0xb502, 0x00 },
 { "linux/rtc.h", "RTC_AIE_OFF", _IOC_NONE, 0x7002, 0x00 },
 { "linux/rtc.h", "RTC_AIE_ON", _IOC_NONE, 0x7001, 0x00 },
 { "linux/rtc.h", "RTC_ALM_READ", _IOC_READ, 0x7008, 0x24 },
@@ -1704,6 +1716,18 @@
 { "linux/scif_ioctl.h", "SCIF_VREADFROM", _IOC_READ|_IOC_WRITE, 0x730c, 0x28 },
 { "linux/scif_ioctl.h", "SCIF_VWRITETO", _IOC_READ|_IOC_WRITE, 0x730d, 0x28 },
 { "linux/scif_ioctl.h", "SCIF_WRITETO", _IOC_READ|_IOC_WRITE, 0x730b, 0x28 },
+{ "linux/sed-opal.h", "IOC_OPAL_ACTIVATE_LSP", _IOC_WRITE, 0x70df, 0x118 },
+{ "linux/sed-opal.h", "IOC_OPAL_ACTIVATE_USR", _IOC_WRITE, 0x70e1, 0x110 },
+{ "linux/sed-opal.h", "IOC_OPAL_ADD_USR_TO_LR", _IOC_WRITE, 0x70e4, 0x118 },
+{ "linux/sed-opal.h", "IOC_OPAL_ENABLE_DISABLE_MBR", _IOC_WRITE, 0x70e5, 0x110 },
+{ "linux/sed-opal.h", "IOC_OPAL_ERASE_LR", _IOC_WRITE, 0x70e6, 0x110 },
+{ "linux/sed-opal.h", "IOC_OPAL_LOCK_UNLOCK", _IOC_WRITE, 0x70dd, 0x118 },
+{ "linux/sed-opal.h", "IOC_OPAL_LR_SETUP", _IOC_WRITE, 0x70e3, 0x128 },
+{ "linux/sed-opal.h", "IOC_OPAL_REVERT_TPR", _IOC_WRITE, 0x70e2, 0x108 },
+{ "linux/sed-opal.h", "IOC_OPAL_SAVE", _IOC_WRITE, 0x70dc, 0x118 },
+{ "linux/sed-opal.h", "IOC_OPAL_SECURE_ERASE_LR", _IOC_WRITE, 0x70e7, 0x110 },
+{ "linux/sed-opal.h", "IOC_OPAL_SET_PW", _IOC_WRITE, 0x70e0, 0x220 },
+{ "linux/sed-opal.h", "IOC_OPAL_TAKE_OWNERSHIP", _IOC_WRITE, 0x70de, 0x108 },
 { "linux/serio.h", "SPIOCSTYPE", _IOC_WRITE, 0x7101, 0x04 },
 { "linux/sockios.h", "SIOCADDDLCI", 0, 0x8980, 0 },
 { "linux/sockios.h", "SIOCADDMULTI", 0, 0x8931, 0 },
@@ -2418,23 +2442,23 @@
 { "net/bluetooth/rfcomm.h", "RFCOMMRELEASEDEV", _IOC_WRITE, 0x52c9, 0x04 },
 { "net/bluetooth/rfcomm.h", "RFCOMMSTEALDLC", _IOC_WRITE, 0x52dc, 0x04 },
 { "net/nfc/nci_core.h", "NCIUARTSETDRIVER", _IOC_WRITE, 0x5500, 0x04 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_ACK_EVENT", _IOC_WRITE, 0x1bea, 0x04 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_ASSIGN_CTXT", _IOC_READ|_IOC_WRITE, 0x1be1, 0x1c },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_CREDIT_UPD", _IOC_NONE, 0x1be6, 0x00 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_CTXT_INFO", _IOC_WRITE, 0x1be2, 0x28 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_CTXT_RESET", _IOC_NONE, 0x1bec, 0x00 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_GET_VERS", _IOC_READ, 0x1bee, 0x04 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_POLL_TYPE", _IOC_WRITE, 0x1be9, 0x04 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_RECV_CTRL", _IOC_WRITE, 0x1be8, 0x04 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_SET_PKEY", _IOC_WRITE, 0x1beb, 0x02 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_TID_FREE", _IOC_READ|_IOC_WRITE, 0x1be5, 0x18 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_TID_INVAL_READ", _IOC_READ|_IOC_WRITE, 0x1bed, 0x18 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_TID_UPDATE", _IOC_READ|_IOC_WRITE, 0x1be4, 0x18 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_USER_INFO", _IOC_WRITE, 0x1be3, 0x78 },
-{ "rdma/ib_user_mad.h", "IB_USER_MAD_ENABLE_PKEY", _IOC_NONE, 0x1b03, 0x00 },
-{ "rdma/ib_user_mad.h", "IB_USER_MAD_REGISTER_AGENT", _IOC_READ|_IOC_WRITE, 0x1b01, 0x1c },
-{ "rdma/ib_user_mad.h", "IB_USER_MAD_REGISTER_AGENT2", _IOC_READ|_IOC_WRITE, 0x1b04, 0x28 },
-{ "rdma/ib_user_mad.h", "IB_USER_MAD_UNREGISTER_AGENT", _IOC_WRITE, 0x1b02, 0x04 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_ACK_EVENT", _IOC_WRITE, 0x1bea, 0x04 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_ASSIGN_CTXT", _IOC_READ|_IOC_WRITE, 0x1be1, 0x1c },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_CREDIT_UPD", _IOC_NONE, 0x1be6, 0x00 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_CTXT_INFO", _IOC_WRITE, 0x1be2, 0x28 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_CTXT_RESET", _IOC_NONE, 0x1bec, 0x00 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_GET_VERS", _IOC_READ, 0x1bee, 0x04 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_POLL_TYPE", _IOC_WRITE, 0x1be9, 0x04 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_RECV_CTRL", _IOC_WRITE, 0x1be8, 0x04 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_SET_PKEY", _IOC_WRITE, 0x1beb, 0x02 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_TID_FREE", _IOC_READ|_IOC_WRITE, 0x1be5, 0x18 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_TID_INVAL_READ", _IOC_READ|_IOC_WRITE, 0x1bed, 0x18 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_TID_UPDATE", _IOC_READ|_IOC_WRITE, 0x1be4, 0x18 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_USER_INFO", _IOC_WRITE, 0x1be3, 0x78 },
+{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_ENABLE_PKEY", _IOC_NONE, 0x1b03, 0x00 },
+{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_REGISTER_AGENT", _IOC_READ|_IOC_WRITE, 0x1b01, 0x1c },
+{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_REGISTER_AGENT2", _IOC_READ|_IOC_WRITE, 0x1b04, 0x28 },
+{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_UNREGISTER_AGENT", _IOC_WRITE, 0x1b02, 0x04 },
 { "scsi/cxlflash_ioctl.h", "DK_CXLFLASH_ATTACH", _IOC_READ|_IOC_WRITE, 0xca80, 0x90 },
 { "scsi/cxlflash_ioctl.h", "DK_CXLFLASH_DETACH", _IOC_READ|_IOC_WRITE, 0xca83, 0x60 },
 { "scsi/cxlflash_ioctl.h", "DK_CXLFLASH_MANAGE_LUN", _IOC_READ|_IOC_WRITE, 0xca86, 0x68 },
diff --git a/linux/32/syscallent.h b/linux/32/syscallent.h
index 6316235..44315e0 100644
--- a/linux/32/syscallent.h
+++ b/linux/32/syscallent.h
@@ -44,8 +44,8 @@
 [ 40] = { 5,	TF,		SEN(mount),			"mount"			},
 [ 41] = { 2,	TF,		SEN(pivotroot),			"pivot_root"		},
 [ 42] = { 3,	0,		SEN(nfsservctl),		"nfsservctl"		},
-[ 43] = { 3,	TF,		SEN(statfs64),			"statfs64"		},
-[ 44] = { 3,	TD,		SEN(fstatfs64),			"fstatfs64"		},
+[ 43] = { 3,	TF|TSF|TSFA,	SEN(statfs64),			"statfs64"		},
+[ 44] = { 3,	TD|TFSF|TSFA,	SEN(fstatfs64),			"fstatfs64"		},
 [ 45] = { 3,	TF,		SEN(truncate64),		"truncate64"		},
 [ 46] = { 3,	TD,		SEN(ftruncate64),		"ftruncate64"		},
 [ 47] = { 6,	TD,		SEN(fallocate),			"fallocate"		},
@@ -80,8 +80,8 @@
 [ 76] = { 6,	TD,		SEN(splice),			"splice"		},
 [ 77] = { 4,	TD,		SEN(tee),			"tee"			},
 [ 78] = { 4,	TD|TF,		SEN(readlinkat),		"readlinkat"		},
-[ 79] = { 4,	TD|TF,		SEN(fstatat64),			"fstatat64"		},
-[ 80] = { 2,	TD,		SEN(fstat64),			"fstat64"		},
+[ 79] = { 4,	TD|TF|TFST|TSTA,SEN(fstatat64),			"fstatat64"		},
+[ 80] = { 2,	TD|TFST|TSTA,	SEN(fstat64),			"fstat64"		},
 [ 81] = { 0,	0,		SEN(sync),			"sync"			},
 [ 82] = { 1,	TD,		SEN(fsync),			"fsync"			},
 [ 83] = { 1,	TD,		SEN(fdatasync),			"fdatasync"		},
@@ -281,6 +281,7 @@
 [288] = { 4,	TM|SI,		SEN(pkey_mprotect),		"pkey_mprotect"		},
 [289] = { 2,	0,		SEN(pkey_alloc),		"pkey_alloc"		},
 [290] = { 1,	0,		SEN(pkey_free),			"pkey_free"		},
+[291] = { 5,	TD|TF|TSTA,	SEN(statx),			"statx"			},
 
 #undef sys_ARCH_mmap
 #undef ARCH_WANT_SYNC_FILE_RANGE2
diff --git a/linux/64/ioctls_inc.h b/linux/64/ioctls_inc.h
index f59fe11..995c8ce 100644
--- a/linux/64/ioctls_inc.h
+++ b/linux/64/ioctls_inc.h
@@ -264,11 +264,14 @@
 { "drm/i915_drm.h", "DRM_IOCTL_I915_IRQ_WAIT", _IOC_WRITE, 0x6445, 0x04 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_OVERLAY_ATTRS", _IOC_READ|_IOC_WRITE, 0x6468, 0x2c },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_OVERLAY_PUT_IMAGE", _IOC_WRITE, 0x6467, 0x2c },
+{ "drm/i915_drm.h", "DRM_IOCTL_I915_PERF_OPEN", _IOC_WRITE, 0x6476, 0x10 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_REG_READ", _IOC_READ|_IOC_WRITE, 0x6471, 0x10 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_SETPARAM", _IOC_WRITE, 0x6447, 0x08 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_SET_SPRITE_COLORKEY", _IOC_READ|_IOC_WRITE, 0x646b, 0x14 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_SET_VBLANK_PIPE", _IOC_WRITE, 0x644d, 0x04 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_VBLANK_SWAP", _IOC_READ|_IOC_WRITE, 0x644f, 0x0c },
+{ "drm/i915_drm.h", "I915_PERF_IOCTL_DISABLE", _IOC_NONE, 0x6901, 0x00 },
+{ "drm/i915_drm.h", "I915_PERF_IOCTL_ENABLE", _IOC_NONE, 0x6900, 0x00 },
 { "drm/mga_drm.h", "DRM_IOCTL_MGA_BLIT", _IOC_WRITE, 0x6448, 0x34 },
 { "drm/mga_drm.h", "DRM_IOCTL_MGA_CLEAR", _IOC_WRITE, 0x6444, 0x14 },
 { "drm/mga_drm.h", "DRM_IOCTL_MGA_DMA_BOOTSTRAP", _IOC_READ|_IOC_WRITE, 0x644c, 0x20 },
@@ -451,8 +454,10 @@
 { "linux/android/binder.h", "BC_REGISTER_LOOPER", _IOC_NONE, 0x630b, 0x00 },
 { "linux/android/binder.h", "BC_RELEASE", _IOC_WRITE, 0x6306, 0x04 },
 { "linux/android/binder.h", "BC_REPLY", _IOC_WRITE, 0x6301, 0x40 },
+{ "linux/android/binder.h", "BC_REPLY_SG", _IOC_WRITE, 0x6312, 0x48 },
 { "linux/android/binder.h", "BC_REQUEST_DEATH_NOTIFICATION", _IOC_WRITE, 0x630e, 0x0c },
 { "linux/android/binder.h", "BC_TRANSACTION", _IOC_WRITE, 0x6300, 0x40 },
+{ "linux/android/binder.h", "BC_TRANSACTION_SG", _IOC_WRITE, 0x6311, 0x48 },
 { "linux/android/binder.h", "BINDER_SET_CONTEXT_MGR", _IOC_WRITE, 0x6207, 0x04 },
 { "linux/android/binder.h", "BINDER_SET_IDLE_PRIORITY", _IOC_WRITE, 0x6206, 0x04 },
 { "linux/android/binder.h", "BINDER_SET_IDLE_TIMEOUT", _IOC_WRITE, 0x6203, 0x08 },
@@ -1315,6 +1320,9 @@
 { "linux/kfd_ioctl.h", "AMDKFD_IOC_SET_MEMORY_POLICY", _IOC_WRITE, 0x4b04, 0x20 },
 { "linux/kfd_ioctl.h", "AMDKFD_IOC_UPDATE_QUEUE", _IOC_WRITE, 0x4b07, 0x18 },
 { "linux/kfd_ioctl.h", "AMDKFD_IOC_WAIT_EVENTS", _IOC_READ|_IOC_WRITE, 0x4b0c, 0x18 },
+{ "linux/lightnvm.h", "NVME_NVM_IOCTL_ADMIN_VIO", _IOC_READ|_IOC_WRITE, 0x4c41, 0x50 },
+{ "linux/lightnvm.h", "NVME_NVM_IOCTL_IO_VIO", _IOC_READ|_IOC_WRITE, 0x4c43, 0x50 },
+{ "linux/lightnvm.h", "NVME_NVM_IOCTL_SUBMIT_VIO", _IOC_READ|_IOC_WRITE, 0x4c42, 0x40 },
 { "linux/lightnvm.h", "NVM_DEV_CREATE", _IOC_WRITE, 0x4c22, 0x80 },
 { "linux/lightnvm.h", "NVM_DEV_FACTORY", _IOC_WRITE, 0x4c25, 0x24 },
 { "linux/lightnvm.h", "NVM_DEV_INIT", _IOC_WRITE, 0x4c24, 0x2c },
@@ -1455,6 +1463,8 @@
 { "linux/nilfs2_api.h", "NILFS_IOCTL_SET_ALLOC_RANGE", _IOC_WRITE, 0x6e8c, 0x10 },
 { "linux/nilfs2_api.h", "NILFS_IOCTL_SET_SUINFO", _IOC_WRITE, 0x6e8d, 0x18 },
 { "linux/nilfs2_api.h", "NILFS_IOCTL_SYNC", _IOC_READ, 0x6e8a, 0x08 },
+{ "linux/nsfs.h", "NS_GET_NSTYPE", _IOC_NONE, 0xb703, 0x00 },
+{ "linux/nsfs.h", "NS_GET_OWNER_UID", _IOC_NONE, 0xb704, 0x00 },
 { "linux/nsfs.h", "NS_GET_PARENT", _IOC_NONE, 0xb702, 0x00 },
 { "linux/nsfs.h", "NS_GET_USERNS", _IOC_NONE, 0xb701, 0x00 },
 { "linux/nvme_ioctl.h", "NVME_IOCTL_ADMIN_CMD", _IOC_READ|_IOC_WRITE, 0x4e41, 0x48 },
@@ -1665,6 +1675,8 @@
 { "linux/rio_mport_cdev.h", "RIO_UNMAP_INBOUND", _IOC_WRITE, 0x6d12, 0x08 },
 { "linux/rio_mport_cdev.h", "RIO_UNMAP_OUTBOUND", _IOC_WRITE, 0x6d10, 0x28 },
 { "linux/rio_mport_cdev.h", "RIO_WAIT_FOR_ASYNC", _IOC_WRITE, 0x6d16, 0x08 },
+{ "linux/rpmsg.h", "RPMSG_CREATE_EPT_IOCTL", _IOC_WRITE, 0xb501, 0x28 },
+{ "linux/rpmsg.h", "RPMSG_DESTROY_EPT_IOCTL", _IOC_NONE, 0xb502, 0x00 },
 { "linux/rtc.h", "RTC_AIE_OFF", _IOC_NONE, 0x7002, 0x00 },
 { "linux/rtc.h", "RTC_AIE_ON", _IOC_NONE, 0x7001, 0x00 },
 { "linux/rtc.h", "RTC_ALM_READ", _IOC_READ, 0x7008, 0x24 },
@@ -1704,6 +1716,18 @@
 { "linux/scif_ioctl.h", "SCIF_VREADFROM", _IOC_READ|_IOC_WRITE, 0x730c, 0x28 },
 { "linux/scif_ioctl.h", "SCIF_VWRITETO", _IOC_READ|_IOC_WRITE, 0x730d, 0x28 },
 { "linux/scif_ioctl.h", "SCIF_WRITETO", _IOC_READ|_IOC_WRITE, 0x730b, 0x28 },
+{ "linux/sed-opal.h", "IOC_OPAL_ACTIVATE_LSP", _IOC_WRITE, 0x70df, 0x118 },
+{ "linux/sed-opal.h", "IOC_OPAL_ACTIVATE_USR", _IOC_WRITE, 0x70e1, 0x110 },
+{ "linux/sed-opal.h", "IOC_OPAL_ADD_USR_TO_LR", _IOC_WRITE, 0x70e4, 0x118 },
+{ "linux/sed-opal.h", "IOC_OPAL_ENABLE_DISABLE_MBR", _IOC_WRITE, 0x70e5, 0x110 },
+{ "linux/sed-opal.h", "IOC_OPAL_ERASE_LR", _IOC_WRITE, 0x70e6, 0x110 },
+{ "linux/sed-opal.h", "IOC_OPAL_LOCK_UNLOCK", _IOC_WRITE, 0x70dd, 0x118 },
+{ "linux/sed-opal.h", "IOC_OPAL_LR_SETUP", _IOC_WRITE, 0x70e3, 0x128 },
+{ "linux/sed-opal.h", "IOC_OPAL_REVERT_TPR", _IOC_WRITE, 0x70e2, 0x108 },
+{ "linux/sed-opal.h", "IOC_OPAL_SAVE", _IOC_WRITE, 0x70dc, 0x118 },
+{ "linux/sed-opal.h", "IOC_OPAL_SECURE_ERASE_LR", _IOC_WRITE, 0x70e7, 0x110 },
+{ "linux/sed-opal.h", "IOC_OPAL_SET_PW", _IOC_WRITE, 0x70e0, 0x220 },
+{ "linux/sed-opal.h", "IOC_OPAL_TAKE_OWNERSHIP", _IOC_WRITE, 0x70de, 0x108 },
 { "linux/serio.h", "SPIOCSTYPE", _IOC_WRITE, 0x7101, 0x08 },
 { "linux/sockios.h", "SIOCADDDLCI", 0, 0x8980, 0 },
 { "linux/sockios.h", "SIOCADDMULTI", 0, 0x8931, 0 },
@@ -2418,23 +2442,23 @@
 { "net/bluetooth/rfcomm.h", "RFCOMMRELEASEDEV", _IOC_WRITE, 0x52c9, 0x04 },
 { "net/bluetooth/rfcomm.h", "RFCOMMSTEALDLC", _IOC_WRITE, 0x52dc, 0x04 },
 { "net/nfc/nci_core.h", "NCIUARTSETDRIVER", _IOC_WRITE, 0x5500, 0x08 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_ACK_EVENT", _IOC_WRITE, 0x1bea, 0x08 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_ASSIGN_CTXT", _IOC_READ|_IOC_WRITE, 0x1be1, 0x1c },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_CREDIT_UPD", _IOC_NONE, 0x1be6, 0x00 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_CTXT_INFO", _IOC_WRITE, 0x1be2, 0x28 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_CTXT_RESET", _IOC_NONE, 0x1bec, 0x00 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_GET_VERS", _IOC_READ, 0x1bee, 0x04 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_POLL_TYPE", _IOC_WRITE, 0x1be9, 0x04 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_RECV_CTRL", _IOC_WRITE, 0x1be8, 0x04 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_SET_PKEY", _IOC_WRITE, 0x1beb, 0x02 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_TID_FREE", _IOC_READ|_IOC_WRITE, 0x1be5, 0x18 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_TID_INVAL_READ", _IOC_READ|_IOC_WRITE, 0x1bed, 0x18 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_TID_UPDATE", _IOC_READ|_IOC_WRITE, 0x1be4, 0x18 },
-{ "rdma/hfi/hfi1_user.h", "HFI1_IOCTL_USER_INFO", _IOC_WRITE, 0x1be3, 0x78 },
-{ "rdma/ib_user_mad.h", "IB_USER_MAD_ENABLE_PKEY", _IOC_NONE, 0x1b03, 0x00 },
-{ "rdma/ib_user_mad.h", "IB_USER_MAD_REGISTER_AGENT", _IOC_READ|_IOC_WRITE, 0x1b01, 0x1c },
-{ "rdma/ib_user_mad.h", "IB_USER_MAD_REGISTER_AGENT2", _IOC_READ|_IOC_WRITE, 0x1b04, 0x28 },
-{ "rdma/ib_user_mad.h", "IB_USER_MAD_UNREGISTER_AGENT", _IOC_WRITE, 0x1b02, 0x04 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_ACK_EVENT", _IOC_WRITE, 0x1bea, 0x08 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_ASSIGN_CTXT", _IOC_READ|_IOC_WRITE, 0x1be1, 0x1c },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_CREDIT_UPD", _IOC_NONE, 0x1be6, 0x00 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_CTXT_INFO", _IOC_WRITE, 0x1be2, 0x28 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_CTXT_RESET", _IOC_NONE, 0x1bec, 0x00 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_GET_VERS", _IOC_READ, 0x1bee, 0x04 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_POLL_TYPE", _IOC_WRITE, 0x1be9, 0x04 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_RECV_CTRL", _IOC_WRITE, 0x1be8, 0x04 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_SET_PKEY", _IOC_WRITE, 0x1beb, 0x02 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_TID_FREE", _IOC_READ|_IOC_WRITE, 0x1be5, 0x18 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_TID_INVAL_READ", _IOC_READ|_IOC_WRITE, 0x1bed, 0x18 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_TID_UPDATE", _IOC_READ|_IOC_WRITE, 0x1be4, 0x18 },
+{ "rdma/rdma_user_ioctl.h", "HFI1_IOCTL_USER_INFO", _IOC_WRITE, 0x1be3, 0x78 },
+{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_ENABLE_PKEY", _IOC_NONE, 0x1b03, 0x00 },
+{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_REGISTER_AGENT", _IOC_READ|_IOC_WRITE, 0x1b01, 0x1c },
+{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_REGISTER_AGENT2", _IOC_READ|_IOC_WRITE, 0x1b04, 0x28 },
+{ "rdma/rdma_user_ioctl.h", "IB_USER_MAD_UNREGISTER_AGENT", _IOC_WRITE, 0x1b02, 0x04 },
 { "scsi/cxlflash_ioctl.h", "DK_CXLFLASH_ATTACH", _IOC_READ|_IOC_WRITE, 0xca80, 0x90 },
 { "scsi/cxlflash_ioctl.h", "DK_CXLFLASH_DETACH", _IOC_READ|_IOC_WRITE, 0xca83, 0x60 },
 { "scsi/cxlflash_ioctl.h", "DK_CXLFLASH_MANAGE_LUN", _IOC_READ|_IOC_WRITE, 0xca86, 0x68 },
diff --git a/linux/64/syscallent.h b/linux/64/syscallent.h
index 598d942..b5de226 100644
--- a/linux/64/syscallent.h
+++ b/linux/64/syscallent.h
@@ -41,8 +41,8 @@
 [ 40] = { 5,	TF,		SEN(mount),			"mount"			},
 [ 41] = { 2,	TF,		SEN(pivotroot),			"pivot_root"		},
 [ 42] = { 3,	0,		SEN(nfsservctl),		"nfsservctl"		},
-[ 43] = { 2,	TF,		SEN(statfs),			"statfs"		},
-[ 44] = { 2,	TD,		SEN(fstatfs),			"fstatfs"		},
+[ 43] = { 2,	TF|TSF|TSFA,	SEN(statfs),			"statfs"		},
+[ 44] = { 2,	TD|TFSF|TSFA,	SEN(fstatfs),			"fstatfs"		},
 [ 45] = { 2,	TF,		SEN(truncate),			"truncate"		},
 [ 46] = { 2,	TD,		SEN(ftruncate),			"ftruncate"		},
 [ 47] = { 4,	TD,		SEN(fallocate),			"fallocate"		},
@@ -77,8 +77,8 @@
 [ 76] = { 6,	TD,		SEN(splice),			"splice"		},
 [ 77] = { 4,	TD,		SEN(tee),			"tee"			},
 [ 78] = { 4,	TD|TF,		SEN(readlinkat),		"readlinkat"		},
-[ 79] = { 4,	TD|TF,		SEN(newfstatat),		"newfstatat"		},
-[ 80] = { 2,	TD,		SEN(fstat),			"fstat"			},
+[ 79] = { 4,	TD|TF|TFST|TSTA,SEN(newfstatat),		"newfstatat"		},
+[ 80] = { 2,	TD|TFST|TSTA,	SEN(fstat),			"fstat"			},
 [ 81] = { 0,	0,		SEN(sync),			"sync"			},
 [ 82] = { 1,	TD,		SEN(fsync),			"fsync"			},
 [ 83] = { 1,	TD,		SEN(fdatasync),			"fdatasync"		},
@@ -137,7 +137,7 @@
 [136] = { 2,	TS,		SEN(rt_sigpending),		"rt_sigpending"		},
 [137] = { 4,	TS,		SEN(rt_sigtimedwait),		"rt_sigtimedwait"	},
 [138] = { 3,	TS,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
-[139] = { 0,	TS,		SEN(sigreturn),			"rt_sigreturn"		},
+[139] = { 0,	TS,		SEN(rt_sigreturn),		"rt_sigreturn"		},
 [140] = { 3,	0,		SEN(setpriority),		"setpriority"		},
 [141] = { 2,	0,		SEN(getpriority),		"getpriority"		},
 [142] = { 4,	0,		SEN(reboot),			"reboot"		},
@@ -274,3 +274,4 @@
 [288] = { 4,	TM|SI,		SEN(pkey_mprotect),		"pkey_mprotect"		},
 [289] = { 2,	0,		SEN(pkey_alloc),		"pkey_alloc"		},
 [290] = { 1,	0,		SEN(pkey_free),			"pkey_free"		},
+[291] = { 5,	TD|TF|TSTA,	SEN(statx),			"statx"			},
diff --git a/linux/aarch64/arch_rt_sigframe.c b/linux/aarch64/arch_rt_sigframe.c
new file mode 100644
index 0000000..5400a52
--- /dev/null
+++ b/linux/aarch64/arch_rt_sigframe.c
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2017 Dmitry V. Levin <ldv@altlinux.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#undef FUNC_GET_RT_SIGFRAME_ADDR
+#define	FUNC_GET_RT_SIGFRAME_ADDR	\
+	static kernel_ulong_t arm_get_rt_sigframe_addr(struct tcb *tcp)
+
+#include "arm/arch_rt_sigframe.c"
+
+#undef FUNC_GET_RT_SIGFRAME_ADDR
+#define	FUNC_GET_RT_SIGFRAME_ADDR	DEF_FUNC_GET_RT_SIGFRAME_ADDR
+
+FUNC_GET_RT_SIGFRAME_ADDR
+{
+	return tcp->currpers == 1 ? arm_get_rt_sigframe_addr(tcp)
+				  : *aarch64_sp_ptr;
+}
diff --git a/linux/aarch64/syscallent.h b/linux/aarch64/syscallent.h
index 6b23f8c..4ff6118 100644
--- a/linux/aarch64/syscallent.h
+++ b/linux/aarch64/syscallent.h
@@ -27,8 +27,8 @@
 [1035] = { 3,	TF,		SEN(readlink),		"readlink"	},
 [1036] = { 2,	TF,		SEN(symlink),		"symlink"	},
 [1037] = { 2,	TF,		SEN(utimes),		"utimes"	},
-[1038] = { 2,	TF,		SEN(stat),		"stat"		},
-[1039] = { 2,	TF,		SEN(lstat),		"lstat"		},
+[1038] = { 2,	TF|TST|TSTA,	SEN(stat),		"stat"		},
+[1039] = { 2,	TF|TLST|TSTA,	SEN(lstat),		"lstat"		},
 [1040] = { 1,	TD,		SEN(pipe),		"pipe"		},
 [1041] = { 2,	TD,		SEN(dup2),		"dup2"		},
 [1042] = { 1,	TD,		SEN(epoll_create),	"epoll_create"	},
@@ -38,14 +38,14 @@
 [1046] = { 4,	TD|TN,		SEN(sendfile64),	"sendfile"	},
 [1047] = { 2,	TD,		SEN(ftruncate),		"ftruncate"	},
 [1048] = { 2,	TF,		SEN(truncate),		"truncate"	},
-[1049] = { 2,	TF,		SEN(stat),		"stat"		},
-[1050] = { 2,	TF,		SEN(lstat),		"lstat"		},
-[1051] = { 2,	TD,		SEN(fstat),		"fstat"		},
+[1049] = { 2,	TF|TST|TSTA,	SEN(stat),		"stat"		},
+[1050] = { 2,	TF|TLST|TSTA,	SEN(lstat),		"lstat"		},
+[1051] = { 2,	TD|TFST|TSTA,	SEN(fstat),		"fstat"		},
 [1052] = { 3,	TD,		SEN(fcntl),		"fcntl"		},
 [1053] = { 4,	TD,		SEN(fadvise64),		"fadvise64"	},
-[1054] = { 4,	TD|TF,		SEN(newfstatat),	"newfstatat"	},
-[1055] = { 2,	TD,		SEN(fstatfs),		"fstatfs"	},
-[1056] = { 2,	TF,		SEN(statfs),		"statfs"	},
+[1054] = { 4,	TD|TF|TFST|TSTA,SEN(newfstatat),	"newfstatat"	},
+[1055] = { 2,	TD|TFSF|TSFA,	SEN(fstatfs),		"fstatfs"	},
+[1056] = { 2,	TF|TSF|TSFA,	SEN(statfs),		"statfs"	},
 [1057] = { 3,	TD,		SEN(lseek),		"lseek"		},
 [1058] = { 6,	TD|TM|SI,	SEN(mmap),		"mmap"		},
 [1059] = { 1,	0,		SEN(alarm),		"alarm"		},
@@ -59,7 +59,7 @@
 [1067] = { 5,	TD,		SEN(select),		"select"	},
 [1068] = { 3,	TD,		SEN(poll),		"poll"		},
 [1069] = { 4,	TD,		SEN(epoll_wait),	"epoll_wait"	},
-[1070] = { 2,	0,		SEN(ustat),		"ustat"		},
+[1070] = { 2,	TSFA,		SEN(ustat),		"ustat"		},
 [1071] = { 0,	TP,		SEN(vfork),		"vfork"		},
 [1072] = { 4,	TP,		SEN(wait4),		"wait4"		},
 [1073] = { 4,	TN,		SEN(recv),		"recv"		},
diff --git a/linux/alpha/arch_rt_sigframe.c b/linux/alpha/arch_rt_sigframe.c
new file mode 100644
index 0000000..3343183
--- /dev/null
+++ b/linux/alpha/arch_rt_sigframe.c
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2017 Dmitry V. Levin <ldv@altlinux.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+FUNC_GET_RT_SIGFRAME_ADDR
+{
+	unsigned long addr;
+
+	return upeek(tcp->pid, REG_FP, &addr) ? 0 : addr;
+}
diff --git a/linux/alpha/arch_sigreturn.c b/linux/alpha/arch_sigreturn.c
index 3317a95..d5f19c5 100644
--- a/linux/alpha/arch_sigreturn.c
+++ b/linux/alpha/arch_sigreturn.c
@@ -8,6 +8,6 @@
 	addr += offsetof(struct sigcontext, sc_mask);
 
 	tprints("{mask=");
-	print_sigset_addr_len(tcp, addr, NSIG_BYTES);
+	print_sigset_addr(tcp, addr);
 	tprints("}");
 }
diff --git a/linux/alpha/syscallent.h b/linux/alpha/syscallent.h
index b55f23a..848c323 100644
--- a/linux/alpha/syscallent.h
+++ b/linux/alpha/syscallent.h
@@ -1,6 +1,7 @@
 /*
  * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
  * Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs@world.std.com>
+ * Copyright (c) 1995-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -26,100 +27,100 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-[  0] = { 6,	0,		SEN(printargs),			"osf_syscall"		}, /*not implemented */
+[  0] = { 6,	0,		SEN(printargs),			"osf_syscall"		}, /* not implemented */
 [  1] = { 1,	TP|SE,		SEN(exit),			"exit"			},
 [  2] = { 0,	TP,		SEN(fork),			"fork"			},
 [  3] = { 3,	TD,		SEN(read),			"read"			},
 [  4] = { 3,	TD,		SEN(write),			"write"			},
-[  5] = { 5,	0,		SEN(printargs),			"osf_old_open"		}, /*not implemented */
+[  5] = { 5,	0,		SEN(printargs),			"osf_old_open"		}, /* not implemented */
 [  6] = { 1,	TD,		SEN(close),			"close"			},
 [  7] = { 4,	TP,		SEN(osf_wait4),			"osf_wait4"		},
-[  8] = { 5,	0,		SEN(printargs),			"osf_old_creat"		}, /*not implemented */
+[  8] = { 5,	0,		SEN(printargs),			"osf_old_creat"		}, /* not implemented */
 [  9] = { 2,	TF,		SEN(link),			"link"			},
 [ 10] = { 1,	TF,		SEN(unlink),			"unlink"		},
-[ 11] = { 5,	0,		SEN(printargs),			"osf_execve"		}, /*not implemented */
+[ 11] = { 5,	0,		SEN(printargs),			"osf_execve"		}, /* not implemented */
 [ 12] = { 1,	TF,		SEN(chdir),			"chdir"			},
 [ 13] = { 1,	TD,		SEN(fchdir),			"fchdir"		},
 [ 14] = { 3,	TF,		SEN(mknod),			"mknod"			},
 [ 15] = { 2,	TF,		SEN(chmod),			"chmod"			},
 [ 16] = { 3,	TF,		SEN(chown),			"chown"			},
 [ 17] = { 1,	TM|SI,		SEN(brk),			"brk"			},
-[ 18] = { 5,	0,		SEN(printargs),			"osf_getfsstat"		}, /*not implemented */
+[ 18] = { 5,	TSFA,		SEN(printargs),			"osf_getfsstat"		}, /* not implemented */
 [ 19] = { 3,	TD,		SEN(lseek),			"lseek"			},
 [ 20] = { 0,	NF,		SEN(getxpid),			"getxpid"		},
 [ 21] = { 4,	0,		SEN(printargs),			"osf_mount"		},
 [ 22] = { 2,	TF,		SEN(umount2),			"umount"		},
 [ 23] = { 1,	0,		SEN(setuid),			"setuid"		},
 [ 24] = { 0,	NF,		SEN(getxuid),			"getxuid"		},
-[ 25] = { 5,	0,		SEN(printargs),			"exec_with_loader"	}, /*not implemented */
+[ 25] = { 5,	0,		SEN(printargs),			"exec_with_loader"	}, /* not implemented */
 [ 26] = { 4,	0,		SEN(ptrace),			"ptrace"		},
-[ 27] = { 5,	0,		SEN(printargs),			"osf_nrecvmsg"		}, /*not implemented */
-[ 28] = { 5,	0,		SEN(printargs),			"osf_nsendmsg"		}, /*not implemented */
-[ 29] = { 5,	0,		SEN(printargs),			"osf_nrecvfrom"		}, /*not implemented */
-[ 30] = { 5,	0,		SEN(printargs),			"osf_naccept"		}, /*not implemented */
-[ 31] = { 5,	0,		SEN(printargs),			"osf_ngetpeername"	}, /*not implemented */
-[ 32] = { 5,	0,		SEN(printargs),			"osf_ngetsockname"	}, /*not implemented */
+[ 27] = { 5,	0,		SEN(printargs),			"osf_nrecvmsg"		}, /* not implemented */
+[ 28] = { 5,	0,		SEN(printargs),			"osf_nsendmsg"		}, /* not implemented */
+[ 29] = { 5,	0,		SEN(printargs),			"osf_nrecvfrom"		}, /* not implemented */
+[ 30] = { 5,	0,		SEN(printargs),			"osf_naccept"		}, /* not implemented */
+[ 31] = { 5,	0,		SEN(printargs),			"osf_ngetpeername"	}, /* not implemented */
+[ 32] = { 5,	0,		SEN(printargs),			"osf_ngetsockname"	}, /* not implemented */
 [ 33] = { 2,	TF,		SEN(access),			"access"		},
-[ 34] = { 5,	0,		SEN(printargs),			"osf_chflags"		}, /*not implemented */
-[ 35] = { 5,	0,		SEN(printargs),			"osf_fchflags"		}, /*not implemented */
+[ 34] = { 5,	0,		SEN(printargs),			"osf_chflags"		}, /* not implemented */
+[ 35] = { 5,	0,		SEN(printargs),			"osf_fchflags"		}, /* not implemented */
 [ 36] = { 0,	0,		SEN(sync),			"sync"			},
 [ 37] = { 2,	TS,		SEN(kill),			"kill"			},
-[ 38] = { 5,	0,		SEN(printargs),			"osf_old_stat"		}, /*not implemented */
+[ 38] = { 5,	TF|TST|TSTA,	SEN(printargs),			"osf_old_stat"		}, /* not implemented */
 [ 39] = { 2,	0,		SEN(setpgid),			"setpgid"		},
-[ 40] = { 5,	0,		SEN(printargs),			"osf_old_lstat"		}, /*not implemented */
+[ 40] = { 5,	TF|TLST|TSTA,	SEN(printargs),			"osf_old_lstat"		}, /* not implemented */
 [ 41] = { 1,	TD,		SEN(dup),			"dup"			},
 [ 42] = { 0,	TD,		SEN(pipe),			"pipe"			},
 [ 43] = { 4,	0,		SEN(printargs),			"osf_set_program_attributes"	},
-[ 44] = { 5,	0,		SEN(printargs),			"osf_profil"		}, /*not implemented */
+[ 44] = { 5,	0,		SEN(printargs),			"osf_profil"		}, /* not implemented */
 [ 45] = { 3,	TD|TF,		SEN(open),			"open"			},
-[ 46] = { 5,	0,		SEN(printargs),			"osf_old_sigaction"	}, /*not implemented */
-[ 47] = { 1,	NF,		SEN(getxgid),			"getxgid"		},
+[ 46] = { 5,	0,		SEN(printargs),			"osf_old_sigaction"	}, /* not implemented */
+[ 47] = { 0,	NF,		SEN(getxgid),			"getxgid"		},
 [ 48] = { 2,	TS,		SEN(sigprocmask),		"osf_sigprocmask"	},
-[ 49] = { 5,	0,		SEN(printargs),			"osf_getlogin"		}, /*not implemented */
-[ 50] = { 5,	0,		SEN(printargs),			"osf_setlogin"		}, /*not implemented */
+[ 49] = { 5,	0,		SEN(printargs),			"osf_getlogin"		}, /* not implemented */
+[ 50] = { 5,	0,		SEN(printargs),			"osf_setlogin"		}, /* not implemented */
 [ 51] = { 1,	TF,		SEN(acct),			"acct"			},
 [ 52] = { 1,	TS,		SEN(sigpending),		"sigpending"		},
 [ 53] = { },
 [ 54] = { 3,	TD,		SEN(ioctl),			"ioctl"			},
-[ 55] = { 5,	0,		SEN(printargs),			"osf_reboot"		}, /*not implemented */
-[ 56] = { 5,	0,		SEN(printargs),			"osf_revoke"		}, /*not implemented */
+[ 55] = { 5,	0,		SEN(printargs),			"osf_reboot"		}, /* not implemented */
+[ 56] = { 5,	0,		SEN(printargs),			"osf_revoke"		}, /* not implemented */
 [ 57] = { 2,	TF,		SEN(symlink),			"symlink"		},
 [ 58] = { 3,	TF,		SEN(readlink),			"readlink"		},
 [ 59] = { 3,	TF|TP|SE|SI,	SEN(execve),			"execve"		},
 [ 60] = { 1,	NF,		SEN(umask),			"umask"			},
 [ 61] = { 1,	TF,		SEN(chroot),			"chroot"		},
-[ 62] = { 5,	0,		SEN(printargs),			"osf_old_fstat"		}, /*not implemented */
+[ 62] = { 5,	TD|TFST|TSTA,	SEN(printargs),			"osf_old_fstat"		}, /* not implemented */
 [ 63] = { 0,	0,		SEN(getpgrp),			"getpgrp"		},
 [ 64] = { 0,	0,		SEN(getpagesize),		"getpagesize"		},
-[ 65] = { 5,	TM,		SEN(printargs),			"osf_mremap"		}, /*not implemented */
+[ 65] = { 5,	TM,		SEN(printargs),			"osf_mremap"		}, /* not implemented */
 [ 66] = { 0,	TP,		SEN(vfork),			"vfork"			},
-[ 67] = { 2,	TF,		SEN(stat),			"stat"			},
-[ 68] = { 2,	TF,		SEN(lstat),			"lstat"			},
-[ 69] = { 5,	TM,		SEN(printargs),			"osf_sbrk"		}, /*not implemented */
-[ 70] = { 5,	0,		SEN(printargs),			"osf_sstk"		}, /*not implemented */
+[ 67] = { 2,	TF|TST|TSTA,	SEN(stat),			"stat"			},
+[ 68] = { 2,	TF|TLST|TSTA,	SEN(lstat),			"lstat"			},
+[ 69] = { 5,	TM,		SEN(printargs),			"osf_sbrk"		}, /* not implemented */
+[ 70] = { 5,	0,		SEN(printargs),			"osf_sstk"		}, /* not implemented */
 [ 71] = { 6,	TD|TM|SI,	SEN(mmap),			"mmap"			},
-[ 72] = { 5,	0,		SEN(printargs),			"osf_old_vadvise"	}, /*not implemented */
+[ 72] = { 5,	0,		SEN(printargs),			"osf_old_vadvise"	}, /* not implemented */
 [ 73] = { 2,	TM|SI,		SEN(munmap),			"munmap"		},
 [ 74] = { 3,	TM|SI,		SEN(mprotect),			"mprotect"		},
 [ 75] = { 3,	TM,		SEN(madvise),			"madvise"		},
 [ 76] = { 0,	0,		SEN(vhangup),			"vhangup"		},
-[ 77] = { 5,	0,		SEN(printargs),			"osf_kmodcall"		}, /*not implemented */
-[ 78] = { 5,	TM,		SEN(printargs),			"osf_mincore"		}, /*not implemented */
+[ 77] = { 5,	0,		SEN(printargs),			"osf_kmodcall"		}, /* not implemented */
+[ 78] = { 5,	TM,		SEN(printargs),			"osf_mincore"		}, /* not implemented */
 [ 79] = { 2,	0,		SEN(getgroups),			"getgroups"		},
 [ 80] = { 2,	0,		SEN(setgroups),			"setgroups"		},
-[ 81] = { 5,	0,		SEN(printargs),			"osf_old_getpgrp"	}, /*not implemented */
+[ 81] = { 5,	0,		SEN(printargs),			"osf_old_getpgrp"	}, /* not implemented */
 [ 82] = { 2,	0,		SEN(setpgrp),			"setpgrp"		},
 [ 83] = { 3,	0,		SEN(osf_setitimer),		"osf_setitimer"		},
-[ 84] = { 5,	0,		SEN(printargs),			"osf_old_wait"		}, /*not implemented */
-[ 85] = { 5,	0,		SEN(printargs),			"osf_table"		}, /*not implemented */
+[ 84] = { 5,	0,		SEN(printargs),			"osf_old_wait"		}, /* not implemented */
+[ 85] = { 5,	0,		SEN(printargs),			"osf_table"		}, /* not implemented */
 [ 86] = { 2,	0,		SEN(osf_getitimer),		"osf_getitimer"		},
 [ 87] = { 2,	0,		SEN(gethostname),		"gethostname"		},
 [ 88] = { 2,	0,		SEN(sethostname),		"sethostname"		},
 [ 89] = { 0,	0,		SEN(getdtablesize),		"getdtablesize"		},
 [ 90] = { 2,	TD,		SEN(dup2),			"dup2"			},
-[ 91] = { 2,	TD,		SEN(fstat),			"fstat"			},
+[ 91] = { 2,	TD|TFST|TSTA,	SEN(fstat),			"fstat"			},
 [ 92] = { 3,	TD,		SEN(fcntl),			"fcntl"			},
-[ 93] = { 5,	0,		SEN(osf_select),		"osf_select"		},
+[ 93] = { 5,	TD,		SEN(osf_select),		"osf_select"		},
 [ 94] = { 3,	TD,		SEN(poll),			"poll"			},
 [ 95] = { 1,	TD,		SEN(fsync),			"fsync"			},
 [ 96] = { 3,	0,		SEN(setpriority),		"setpriority"		},
@@ -133,15 +134,15 @@
 [104] = { 3,	TN,		SEN(bind),			"bind"			},
 [105] = { 5,	TN,		SEN(setsockopt),		"setsockopt"		},
 [106] = { 2,	TN,		SEN(listen),			"listen"		},
-[107] = { 5,	0,		SEN(printargs),			"osf_plock"		}, /*not implemented */
-[108] = { 5,	0,		SEN(printargs),			"osf_old_sigvec"	}, /*not implemented */
-[109] = { 5,	0,		SEN(printargs),			"osf_old_sigblock"	}, /*not implemented */
-[110] = { 5,	0,		SEN(printargs),			"osf_old_sigsetmask"	}, /*not implemented */
-[111] = { 3,	TS,		SEN(sigsuspend),		"sigsuspend"		},
+[107] = { 5,	0,		SEN(printargs),			"osf_plock"		}, /* not implemented */
+[108] = { 5,	0,		SEN(printargs),			"osf_old_sigvec"	}, /* not implemented */
+[109] = { 5,	0,		SEN(printargs),			"osf_old_sigblock"	}, /* not implemented */
+[110] = { 5,	0,		SEN(printargs),			"osf_old_sigsetmask"	}, /* not implemented */
+[111] = { 1,	TS,		SEN(sigsuspend),		"sigsuspend"		},
 [112] = { 2,	0,		SEN(printargs),			"osf_sigstack"		},
 [113] = { 3,	TN,		SEN(recvmsg),			"recvmsg"		},
 [114] = { 3,	TN,		SEN(sendmsg),			"sendmsg"		},
-[115] = { 5,	0,		SEN(printargs),			"osf_old_vtrace"	}, /*not implemented */
+[115] = { 5,	0,		SEN(printargs),			"osf_old_vtrace"	}, /* not implemented */
 [116] = { 2,	0,		SEN(osf_gettimeofday),		"osf_gettimeofday"	},
 [117] = { 2,	0,		SEN(osf_getrusage),		"osf_getrusage"		},
 [118] = { 5,	TN,		SEN(getsockopt),		"getsockopt"		},
@@ -164,43 +165,43 @@
 [135] = { 4,	TN,		SEN(socketpair),		"socketpair"		},
 [136] = { 2,	TF,		SEN(mkdir),			"mkdir"			},
 [137] = { 1,	TF,		SEN(rmdir),			"rmdir"			},
-[138] = { 2,	0,		SEN(osf_utimes),		"osf_utimes"		},
-[139] = { 5,	0,		SEN(printargs),			"osf_old_sigreturn"	},
-[140] = { 5,	0,		SEN(printargs),			"osf_adjtime"		}, /*not implemented */
+[138] = { 2,	TF,		SEN(osf_utimes),		"osf_utimes"		},
+[139] = { 5,	0,		SEN(printargs),			"osf_old_sigreturn"	}, /* not implemented */
+[140] = { 5,	0,		SEN(printargs),			"osf_adjtime"		}, /* not implemented */
 [141] = { 3,	TN,		SEN(getpeername),		"getpeername"		},
-[142] = { 5,	0,		SEN(printargs),			"osf_gethostid"		}, /*not implemented */
-[143] = { 5,	0,		SEN(printargs),			"osf_sethostid"		}, /*not implemented */
+[142] = { 5,	0,		SEN(printargs),			"osf_gethostid"		}, /* not implemented */
+[143] = { 5,	0,		SEN(printargs),			"osf_sethostid"		}, /* not implemented */
 [144] = { 2,	0,		SEN(getrlimit),			"getrlimit"		},
 [145] = { 2,	0,		SEN(setrlimit),			"setrlimit"		},
-[146] = { 5,	0,		SEN(printargs),			"osf_old_killpg"	}, /*not implemented */
+[146] = { 5,	0,		SEN(printargs),			"osf_old_killpg"	}, /* not implemented */
 [147] = { 0,	0,		SEN(setsid),			"setsid"		},
 [148] = { 4,	TF,		SEN(quotactl),			"quotactl"		},
-[149] = { 5,	0,		SEN(printargs),			"osf_oldquota"		}, /*not implemented */
+[149] = { 5,	0,		SEN(printargs),			"osf_oldquota"		}, /* not implemented */
 [150] = { 3,	TN,		SEN(getsockname),		"getsockname"		},
 [151 ... 152] = { },
-[153] = { 5,	0,		SEN(printargs),			"osf_pid_block"		}, /*not implemented */
-[154] = { 5,	0,		SEN(printargs),			"osf_pid_unblock"	}, /*not implemented */
+[153] = { 5,	0,		SEN(printargs),			"osf_pid_block"		}, /* not implemented */
+[154] = { 5,	0,		SEN(printargs),			"osf_pid_unblock"	}, /* not implemented */
 [155] = { },
 [156] = { 3,	TS,		SEN(sigaction),			"sigaction"		},
-[157] = { 5,	0,		SEN(printargs),			"osf_sigwaitprim"	}, /*not implemented */
-[158] = { 5,	0,		SEN(printargs),			"osf_nfssvc"		}, /*not implemented */
+[157] = { 5,	0,		SEN(printargs),			"osf_sigwaitprim"	}, /* not implemented */
+[158] = { 5,	0,		SEN(printargs),			"osf_nfssvc"		}, /* not implemented */
 [159] = { 4,	0,		SEN(printargs),			"osf_getdirentries"	},
-[160] = { 3,	0,		SEN(osf_statfs),		"osf_statfs"		},
-[161] = { 3,	0,		SEN(osf_fstatfs),		"osf_fstatfs"		},
+[160] = { 3,	TF|TSF|TSFA,	SEN(osf_statfs),		"osf_statfs"		},
+[161] = { 3,	TD|TFSF|TSFA,	SEN(osf_fstatfs),		"osf_fstatfs"		},
 [162] = { },
-[163] = { 5,	0,		SEN(printargs),			"osf_asynch_daemon"	}, /*not implemented */
-[164] = { 5,	0,		SEN(printargs),			"osf_getfh"		}, /*not implemented */
+[163] = { 5,	0,		SEN(printargs),			"osf_asynch_daemon"	}, /* not implemented */
+[164] = { 5,	0,		SEN(printargs),			"osf_getfh"		}, /* not implemented */
 [165] = { 2,	0,		SEN(printargs),			"osf_getdomainname"	},
 [166] = { 2,	0,		SEN(setdomainname),		"setdomainname"		},
 [167 ... 168] = { },
-[169] = { 5,	0,		SEN(printargs),			"osf_exportfs"		}, /*not implemented */
+[169] = { 5,	0,		SEN(printargs),			"osf_exportfs"		}, /* not implemented */
 [170 ... 180] = { },
-[181] = { 5,	0,		SEN(printargs),			"osf_alt_plock"		}, /*not implemented */
+[181] = { 5,	0,		SEN(printargs),			"osf_alt_plock"		}, /* not implemented */
 [182 ... 183] = { },
-[184] = { 5,	0,		SEN(printargs),			"osf_getmnt"		}, /*not implemented */
+[184] = { 5,	0,		SEN(printargs),			"osf_getmnt"		}, /* not implemented */
 [185 ... 186] = { },
-[187] = { 5,	0,		SEN(printargs),			"osf_alt_sigpending"	}, /*not implemented */
-[188] = { 5,	0,		SEN(printargs),			"osf_alt_setsid"	}, /*not implemented */
+[187] = { 5,	0,		SEN(printargs),			"osf_alt_sigpending"	}, /* not implemented */
+[188] = { 5,	0,		SEN(printargs),			"osf_alt_setsid"	}, /* not implemented */
 [189 ... 198] = { },
 [199] = { 4,	0,		SEN(printargs),			"osf_swapon"		},
 [200] = { 3,	TI,		SEN(msgctl),			"msgctl"		},
@@ -216,63 +217,63 @@
 [210] = { 3,	TI,		SEN(shmctl),			"shmctl"		},
 [211] = { 1,	TI|TM|SI,	SEN(shmdt),			"shmdt"			},
 [212] = { 3,	TI,		SEN(shmget),			"shmget"		},
-[213] = { 5,	0,		SEN(printargs),			"osf_mvalid"		}, /*not implemented */
-[214] = { 5,	0,		SEN(printargs),			"osf_getaddressconf"	}, /*not implemented */
-[215] = { 5,	0,		SEN(printargs),			"osf_msleep"		}, /*not implemented */
-[216] = { 5,	0,		SEN(printargs),			"osf_mwakeup"		}, /*not implemented */
+[213] = { 5,	0,		SEN(printargs),			"osf_mvalid"		}, /* not implemented */
+[214] = { 5,	0,		SEN(printargs),			"osf_getaddressconf"	}, /* not implemented */
+[215] = { 5,	0,		SEN(printargs),			"osf_msleep"		}, /* not implemented */
+[216] = { 5,	0,		SEN(printargs),			"osf_mwakeup"		}, /* not implemented */
 [217] = { 3,	TM,		SEN(msync),			"msync"			},
-[218] = { 5,	0,		SEN(printargs),			"osf_signal"		}, /*not implemented */
-[219] = { 5,	0,		SEN(printargs),			"osf_utc_gettime"	}, /*not implemented */
-[220] = { 5,	0,		SEN(printargs),			"osf_utc_adjtime"	}, /*not implemented */
+[218] = { 5,	0,		SEN(printargs),			"osf_signal"		}, /* not implemented */
+[219] = { 5,	0,		SEN(printargs),			"osf_utc_gettime"	}, /* not implemented */
+[220] = { 5,	0,		SEN(printargs),			"osf_utc_adjtime"	}, /* not implemented */
 [221] = { },
-[222] = { 5,	0,		SEN(printargs),			"osf_security"		}, /*not implemented */
-[223] = { 5,	0,		SEN(printargs),			"osf_kloadcall"		}, /*not implemented */
-[224] = { 5,	0,		SEN(printargs),			"osf_stat"		}, /*not implemented */
-[225] = { 5,	0,		SEN(printargs),			"osf_lstat"		}, /*not implemented */
-[226] = { 5,	0,		SEN(printargs),			"osf_fstat"		}, /*not implemented */
-[227] = { 3,	0,		SEN(osf_statfs),		"osf_statfs64"		}, /*not implemented */
-[228] = { 3,	0,		SEN(osf_fstatfs),		"osf_fstatfs64"		}, /*not implemented */
+[222] = { 5,	0,		SEN(printargs),			"osf_security"		}, /* not implemented */
+[223] = { 5,	0,		SEN(printargs),			"osf_kloadcall"		}, /* not implemented */
+[224] = { 2,	TF|TST|TSTA,	SEN(printargs),			"osf_stat"		},
+[225] = { 2,	TF|TLST|TSTA,	SEN(printargs),			"osf_lstat"		},
+[226] = { 2,	TD|TFST|TSTA,	SEN(printargs),			"osf_fstat"		},
+[227] = { 3,	TF|TSF|TSFA,	SEN(osf_statfs),		"osf_statfs64"		},
+[228] = { 3,	TD|TFSF|TSFA,	SEN(osf_fstatfs),		"osf_fstatfs64"		},
 [229 ... 232] = { },
 [233] = { 1,	0,		SEN(getpgid),			"getpgid"		},
 [234] = { 1,	0,		SEN(getsid),			"getsid"		},
 [235] = { 2,	TS,		SEN(sigaltstack),		"sigaltstack"		},
-[236] = { 5,	0,		SEN(printargs),			"osf_waitid"		}, /*not implemented */
-[237] = { 5,	0,		SEN(printargs),			"osf_priocntlset"	}, /*not implemented */
-[238] = { 5,	0,		SEN(printargs),			"osf_sigsendset"	}, /*not implemented */
-[239] = { 5,	0,		SEN(printargs),			"osf_set_speculative"	}, /*not implemented */
-[240] = { 5,	0,		SEN(printargs),			"osf_msfs_syscall"	}, /*not implemented */
-[241] = { 5,	0,		SEN(printargs),			"osf_sysinfo"		},
-[242] = { 5,	0,		SEN(printargs),			"osf_uadmin"		}, /*not implemented */
-[243] = { 5,	0,		SEN(printargs),			"osf_fuser"		}, /*not implemented */
+[236] = { 5,	0,		SEN(printargs),			"osf_waitid"		}, /* not implemented */
+[237] = { 5,	0,		SEN(printargs),			"osf_priocntlset"	}, /* not implemented */
+[238] = { 5,	0,		SEN(printargs),			"osf_sigsendset"	}, /* not implemented */
+[239] = { 5,	0,		SEN(printargs),			"osf_set_speculative"	}, /* not implemented */
+[240] = { 5,	0,		SEN(printargs),			"osf_msfs_syscall"	}, /* not implemented */
+[241] = { 3,	0,		SEN(printargs),			"osf_sysinfo"		},
+[242] = { 5,	0,		SEN(printargs),			"osf_uadmin"		}, /* not implemented */
+[243] = { 5,	0,		SEN(printargs),			"osf_fuser"		}, /* not implemented */
 [244] = { 2,	0,		SEN(printargs),			"osf_proplist_syscall"	},
-[245] = { 5,	0,		SEN(printargs),			"osf_ntp_adjtime"	}, /*not implemented */
-[246] = { 5,	0,		SEN(printargs),			"osf_ntp_gettime"	}, /*not implemented */
-[247] = { 5,	0,		SEN(printargs),			"osf_pathconf"		}, /*not implemented */
-[248] = { 5,	0,		SEN(printargs),			"osf_fpathconf"		}, /*not implemented */
+[245] = { 5,	0,		SEN(printargs),			"osf_ntp_adjtime"	}, /* not implemented */
+[246] = { 5,	0,		SEN(printargs),			"osf_ntp_gettime"	}, /* not implemented */
+[247] = { 5,	0,		SEN(printargs),			"osf_pathconf"		}, /* not implemented */
+[248] = { 5,	0,		SEN(printargs),			"osf_fpathconf"		}, /* not implemented */
 [249] = { },
-[250] = { 5,	0,		SEN(printargs),			"osf_uswitch"		}, /*not implemented */
+[250] = { 5,	0,		SEN(printargs),			"osf_uswitch"		}, /* not implemented */
 [251] = { 2,	0,		SEN(printargs),			"osf_usleep_thread"	},
-[252] = { 5,	0,		SEN(printargs),			"osf_audcntl"		}, /*not implemented */
-[253] = { 5,	0,		SEN(printargs),			"osf_audgen"		}, /*not implemented */
+[252] = { 5,	0,		SEN(printargs),			"osf_audcntl"		}, /* not implemented */
+[253] = { 5,	0,		SEN(printargs),			"osf_audgen"		}, /* not implemented */
 [254] = { 3,	0,		SEN(sysfs),			"sysfs"			},
-[255] = { 5,	0,		SEN(printargs),			"osf_subsys_info"	}, /*not implemented */
+[255] = { 5,	0,		SEN(printargs),			"osf_subsys_info"	}, /* not implemented */
 [256] = { 5,	0,		SEN(printargs),			"osf_getsysinfo"	},
 [257] = { 5,	0,		SEN(printargs),			"osf_setsysinfo"	},
-[258] = { 5,	0,		SEN(printargs),			"osf_afs_syscall"	}, /*not implemented */
-[259] = { 5,	0,		SEN(printargs),			"osf_swapctl"		}, /*not implemented */
-[260] = { 5,	0,		SEN(printargs),			"osf_memcntl"		}, /*not implemented */
-[261] = { 5,	0,		SEN(printargs),			"osf_fdatasync"		}, /*not implemented */
+[258] = { 5,	0,		SEN(printargs),			"osf_afs_syscall"	}, /* not implemented */
+[259] = { 5,	0,		SEN(printargs),			"osf_swapctl"		}, /* not implemented */
+[260] = { 5,	0,		SEN(printargs),			"osf_memcntl"		}, /* not implemented */
+[261] = { 5,	0,		SEN(printargs),			"osf_fdatasync"		}, /* not implemented */
 [262 ... 299] = { },
 [300] = { 2,	0,		SEN(bdflush),			"bdflush"		},
-[301] = { 3,	0,		SEN(printargs),			"sethae"		},
+[301] = { 1,	0,		SEN(printargs),			"sethae"		},
 [302] = { 5,	TF,		SEN(mount),			"mount"			},
 [303] = { 1,	0,		SEN(adjtimex),			"old_adjtimex"		},
 [304] = { 1,	TF,		SEN(swapoff),			"swapoff"		},
 [305] = { 3,	TD,		SEN(getdents),			"getdents"		},
-[306] = { 2,	0,		SEN(create_module),		"create_module"		},
+[306] = { 2,	0,		SEN(create_module),		"create_module"		}, /* not implemented */
 [307] = { 3,	0,		SEN(init_module),		"init_module"		},
 [308] = { 2,	0,		SEN(delete_module),		"delete_module"		},
-[309] = { 1,	0,		SEN(get_kernel_syms),		"get_kernel_syms"	},
+[309] = { 1,	0,		SEN(get_kernel_syms),		"get_kernel_syms"	}, /* not implemented */
 [310] = { 3,	0,		SEN(syslog),			"syslog"		},
 [311] = { 4,	0,		SEN(reboot),			"reboot"		},
 [312] = { 5,	TP,		SEN(clone),			"clone"			},
@@ -290,9 +291,9 @@
 [324] = { 1,	NF,		SEN(personality),		"personality"		},
 [325] = { 1,	NF,		SEN(setfsuid),			"setfsuid"		},
 [326] = { 1,	NF,		SEN(setfsgid),			"setfsgid"		},
-[327] = { 2,	0,		SEN(ustat),			"ustat"			},
-[328] = { 2,	TF,		SEN(statfs),			"statfs"		},
-[329] = { 2,	TD,		SEN(fstatfs),			"fstatfs"		},
+[327] = { 2,	TSFA,		SEN(ustat),			"ustat"			},
+[328] = { 2,	TF|TSF|TSFA,	SEN(statfs),			"statfs"		},
+[329] = { 2,	TD|TFSF|TSFA,	SEN(fstatfs),			"fstatfs"		},
 [330] = { 2,	0,		SEN(sched_setparam),		"sched_setparam"	},
 [331] = { 2,	0,		SEN(sched_getparam),		"sched_getparam"	},
 [332] = { 3,	0,		SEN(sched_setscheduler),	"sched_setscheduler"	},
@@ -301,16 +302,16 @@
 [335] = { 1,	0,		SEN(sched_get_priority_max),	"sched_get_priority_max"},
 [336] = { 1,	0,		SEN(sched_get_priority_min),	"sched_get_priority_min"},
 [337] = { 2,	0,		SEN(sched_rr_get_interval),	"sched_rr_get_interval"	},
-[338] = { 5,	0,		SEN(afs_syscall),		"afs_syscall"		},
+[338] = { 5,	0,		SEN(afs_syscall),		"afs_syscall"		}, /* not implemented */
 [339] = { 1,	0,		SEN(uname),			"uname"			},
 [340] = { 2,	0,		SEN(nanosleep),			"nanosleep"		},
 [341] = { 5,	TM|SI,		SEN(mremap),			"mremap"		},
-[342] = { 3,	0,		SEN(nfsservctl),		"nfsservctl"		},
+[342] = { 3,	0,		SEN(nfsservctl),		"nfsservctl"		}, /* not implemented */
 [343] = { 3,	0,		SEN(setresuid),			"setresuid"		},
 [344] = { 3,	0,		SEN(getresuid),			"getresuid"		},
 [345] = { 5,	0,		SEN(printargs),			"pciconfig_read"	},
 [346] = { 5,	0,		SEN(printargs),			"pciconfig_write"	},
-[347] = { 5,	0,		SEN(query_module),		"query_module"		},
+[347] = { 5,	0,		SEN(query_module),		"query_module"		}, /* not implemented */
 [348] = { 5,	0,		SEN(prctl),			"prctl"			},
 [349] = { 4,	TD,		SEN(pread),			"pread64"		},
 [350] = { 4,	TD,		SEN(pwrite),			"pwrite64"		},
@@ -336,7 +337,7 @@
 [370] = { 4,	TD|TN,		SEN(sendfile),			"sendfile"		},
 [371] = { 3,	0,		SEN(setresgid),			"setresgid"		},
 [372] = { 3,	0,		SEN(getresgid),			"getresgid"		},
-[373] = { 4,	0,		SEN(printargs),			"dipc"			}, /*not implemented */
+[373] = { 4,	0,		SEN(printargs),			"dipc"			}, /* not implemented */
 [374] = { 2,	TF,		SEN(pivotroot),			"pivot_root"		},
 [375] = { 3,	TM,		SEN(mincore),			"mincore"		},
 [376] = { 3,	0,		SEN(printargs),			"pciconfig_iobase"	},
@@ -360,7 +361,7 @@
 [394] = { 6,	0,		SEN(futex),			"futex"			},
 [395] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
 [396] = { 3,	0,		SEN(sched_getaffinity),		"sched_getaffinity"	},
-[397] = { 5,	0,		SEN(tuxcall),			"tuxcall"		},
+[397] = { 5,	0,		SEN(tuxcall),			"tuxcall"		}, /* not implemented */
 [398] = { 2,	TM,		SEN(io_setup),			"io_setup"		},
 [399] = { 1,	TM,		SEN(io_destroy),		"io_destroy"		},
 [400] = { 5,	0,		SEN(io_getevents),		"io_getevents"		},
@@ -387,13 +388,13 @@
 [422] = { 4,	0,		SEN(clock_nanosleep),		"clock_nanosleep"	},
 [423] = { 4,	TI,		SEN(semtimedop),		"semtimedop"		},
 [424] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
-[425] = { 2,	TF,		SEN(stat64),			"stat64"		},
-[426] = { 2,	TF,		SEN(lstat64),			"lstat64"		},
-[427] = { 2,	TD,		SEN(fstat64),			"fstat64"		},
-[428] = { 5,	0,		SEN(vserver),			"vserver"		},
-[429] = { 6,	TM,		SEN(mbind),			"mbind"			},
-[430] = { 5,	TM,		SEN(get_mempolicy),		"get_mempolicy"		},
-[431] = { 3,	TM,		SEN(set_mempolicy),		"set_mempolicy"		},
+[425] = { 2,	TF|TST|TSTA,	SEN(stat64),			"stat64"		},
+[426] = { 2,	TF|TLST|TSTA,	SEN(lstat64),			"lstat64"		},
+[427] = { 2,	TD|TFST|TSTA,	SEN(fstat64),			"fstat64"		},
+[428] = { 5,	0,		SEN(vserver),			"vserver"		}, /* not implemented */
+[429] = { 6,	TM,		SEN(mbind),			"mbind"			}, /* not implemented */
+[430] = { 5,	TM,		SEN(get_mempolicy),		"get_mempolicy"		}, /* not implemented */
+[431] = { 3,	TM,		SEN(set_mempolicy),		"set_mempolicy"		}, /* not implemented */
 [432] = { 4,	0,		SEN(mq_open),			"mq_open"		},
 [433] = { 1,	0,		SEN(mq_unlink),			"mq_unlink"		},
 [434] = { 5,	0,		SEN(mq_timedsend),		"mq_timedsend"		},
@@ -417,7 +418,7 @@
 [452] = { 4,	TD|TF,		SEN(mknodat),			"mknodat"		},
 [453] = { 5,	TD|TF,		SEN(fchownat),			"fchownat"		},
 [454] = { 3,	TD|TF,		SEN(futimesat),			"futimesat"		},
-[455] = { 4,	TD|TF,		SEN(fstatat64),			"fstatat64"		},
+[455] = { 4,	TD|TF|TFST|TSTA,SEN(fstatat64),			"fstatat64"		},
 [456] = { 3,	TD|TF,		SEN(unlinkat),			"unlinkat"		},
 [457] = { 4,	TD|TF,		SEN(renameat),			"renameat"		},
 [458] = { 5,	TD|TF,		SEN(linkat),			"linkat"		},
@@ -439,7 +440,7 @@
 [474] = { 6,	TD,		SEN(epoll_pwait),		"epoll_pwait"		},
 [475] = { 4,	TD|TF,		SEN(utimensat),			"utimensat"		},
 [476] = { 3,	TD|TS,		SEN(signalfd),			"signalfd"		},
-[477] = { 4,	TD,		SEN(timerfd),			"timerfd"		},
+[477] = { 4,	TD,		SEN(timerfd),			"timerfd"		}, /* not implemented */
 [478] = { 1,	TD,		SEN(eventfd),			"eventfd"		},
 [479] = { 5,	TN,		SEN(recvmmsg),			"recvmmsg"		},
 [480] = { 4,	TD,		SEN(fallocate),			"fallocate"		},
diff --git a/linux/arc/arch_regs.c b/linux/arc/arch_regs.c
index 1846008..9a5c2df 100644
--- a/linux/arc/arch_regs.c
+++ b/linux/arc/arch_regs.c
@@ -1,3 +1,4 @@
 static struct user_regs_struct arc_regs;
+unsigned long *const arc_sp_ptr = &arc_regs.sp;
 #define ARCH_REGS_FOR_GETREGSET arc_regs
 #define ARCH_PC_REG arc_regs.efa
diff --git a/linux/arc/arch_regs.h b/linux/arc/arch_regs.h
new file mode 100644
index 0000000..75c850a
--- /dev/null
+++ b/linux/arc/arch_regs.h
@@ -0,0 +1 @@
+extern unsigned long *const arc_sp_ptr;
diff --git a/linux/arc/arch_rt_sigframe.c b/linux/arc/arch_rt_sigframe.c
new file mode 100644
index 0000000..a735d04
--- /dev/null
+++ b/linux/arc/arch_rt_sigframe.c
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2017 Dmitry V. Levin <ldv@altlinux.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+FUNC_GET_RT_SIGFRAME_ADDR
+{
+	return *arc_sp_ptr;
+}
diff --git a/linux/arch_sigreturn.c b/linux/arch_sigreturn.c
index 73a2b10..8f101d8 100644
--- a/linux/arch_sigreturn.c
+++ b/linux/arch_sigreturn.c
@@ -1,5 +1,3 @@
-#warning sigreturn/rt_sigreturn signal mask decoding is not implemented for this architecture
-
 static void
 arch_sigreturn(struct tcb *tcp)
 {
diff --git a/linux/arm/arch_rt_sigframe.c b/linux/arm/arch_rt_sigframe.c
new file mode 100644
index 0000000..0282bd3
--- /dev/null
+++ b/linux/arm/arch_rt_sigframe.c
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2017 Dmitry V. Levin <ldv@altlinux.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+FUNC_GET_RT_SIGFRAME_ADDR
+{
+	return *arm_sp_ptr;
+}
diff --git a/linux/arm/arch_sigreturn.c b/linux/arm/arch_sigreturn.c
index 378ba67..b60dad8 100644
--- a/linux/arm/arch_sigreturn.c
+++ b/linux/arm/arch_sigreturn.c
@@ -14,6 +14,6 @@
 			(*arm_sp_ptr +
 			 OFFSETOF_STRUCT_UCONTEXT_UC_SIGMASK);
 	tprints("{mask=");
-	print_sigset_addr_len(tcp, addr, NSIG_BYTES);
+	print_sigset_addr(tcp, addr);
 	tprints("}");
 }
diff --git a/linux/arm/get_scno.c b/linux/arm/get_scno.c
index d2bc068..3440782 100644
--- a/linux/arm/get_scno.c
+++ b/linux/arm/get_scno.c
@@ -2,6 +2,7 @@
  * Copyright (c) 2003 Russell King <rmk@arm.linux.org.uk>
  * Copyright (c) 2011-2013 Denys Vlasenko <vda.linux@googlemail.com>
  * Copyright (c) 2011-2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2015-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/linux/arm/ioctls_arch0.h b/linux/arm/ioctls_arch0.h
index f44b4a3..c0a9128 100644
--- a/linux/arm/ioctls_arch0.h
+++ b/linux/arm/ioctls_arch0.h
@@ -44,6 +44,8 @@
 { "linux/kvm.h", "KVM_PPC_ALLOCATE_HTAB", _IOC_READ|_IOC_WRITE, 0xaea7, 0x04 },
 { "linux/kvm.h", "KVM_PPC_GET_PVINFO", _IOC_WRITE, 0xaea1, 0x80 },
 { "linux/kvm.h", "KVM_PPC_GET_SMMU_INFO", _IOC_READ, 0xaea6, 0x250 },
+{ "linux/kvm.h", "KVM_PPC_RESIZE_HPT_COMMIT", _IOC_READ, 0xaeae, 0x10 },
+{ "linux/kvm.h", "KVM_PPC_RESIZE_HPT_PREPARE", _IOC_READ, 0xaead, 0x10 },
 { "linux/kvm.h", "KVM_REGISTER_COALESCED_MMIO", _IOC_WRITE, 0xae67, 0x10 },
 { "linux/kvm.h", "KVM_REINJECT_CONTROL", _IOC_NONE, 0xae71, 0x00 },
 { "linux/kvm.h", "KVM_RUN", _IOC_NONE, 0xae80, 0x00 },
diff --git a/linux/arm/syscallent.h b/linux/arm/syscallent.h
index 23e57f6..a6fb470 100644
--- a/linux/arm/syscallent.h
+++ b/linux/arm/syscallent.h
@@ -1,6 +1,7 @@
 /*
  * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
  * Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs@world.std.com>
+ * Copyright (c) 1995-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -44,7 +45,7 @@
 [ 15] = { 2,	TF,		SEN(chmod),			"chmod"			},
 [ 16] = { 3,	TF,		SEN(chown16),			"lchown"		},
 [ 17] = { 0,	TM,		SEN(break),			"break"			},
-[ 18] = { 2,	TF,		SEN(oldstat),			"oldstat"		},
+[ 18] = { 2,	TF|TST|TSTA,	SEN(oldstat),			"oldstat"		},
 [ 19] = { 3,	TD,		SEN(lseek),			"lseek"			},
 [ 20] = { 0,	NF,		SEN(getpid),			"getpid"		},
 [ 21] = { 5,	TF,		SEN(mount),			"mount"			},
@@ -54,7 +55,7 @@
 [ 25] = { 1,	0,		SEN(stime),			"stime"			},
 [ 26] = { 4,	0,		SEN(ptrace),			"ptrace"		},
 [ 27] = { 1,	0,		SEN(alarm),			"alarm"			},
-[ 28] = { 2,	TD,		SEN(oldfstat),			"oldfstat"		},
+[ 28] = { 2,	TD|TFST|TSTA,	SEN(oldfstat),			"oldfstat"		},
 [ 29] = { 0,	TS,		SEN(pause),			"pause"			},
 [ 30] = { 2,	TF,		SEN(utime),			"utime"			},
 [ 31] = { 2,	0,		SEN(stty),			"stty"			},
@@ -88,14 +89,14 @@
 [ 59] = { 1,	0,		SEN(oldolduname),		"oldolduname"		},
 [ 60] = { 1,	NF,		SEN(umask),			"umask"			},
 [ 61] = { 1,	TF,		SEN(chroot),			"chroot"		},
-[ 62] = { 2,	0,		SEN(ustat),			"ustat"			},
+[ 62] = { 2,	TSFA,		SEN(ustat),			"ustat"			},
 [ 63] = { 2,	TD,		SEN(dup2),			"dup2"			},
 [ 64] = { 0,	NF,		SEN(getppid),			"getppid"		},
 [ 65] = { 0,	0,		SEN(getpgrp),			"getpgrp"		},
 [ 66] = { 0,	0,		SEN(setsid),			"setsid"		},
 [ 67] = { 3,	TS,		SEN(sigaction),			"sigaction"		},
-[ 68] = { 0,	TS,		SEN(siggetmask),		"sgetmask"		},
-[ 69] = { 1,	TS,		SEN(sigsetmask),		"ssetmask"		},
+[ 68] = { 0,	TS,		SEN(sgetmask),			"sgetmask"		},
+[ 69] = { 1,	TS,		SEN(ssetmask),			"ssetmask"		},
 [ 70] = { 2,	0,		SEN(setreuid16),		"setreuid"		},
 [ 71] = { 2,	0,		SEN(setregid16),		"setregid"		},
 [ 72] = { 3,	TS,		SEN(sigsuspend),		"sigsuspend"		},
@@ -110,7 +111,7 @@
 [ 81] = { 2,	0,		SEN(setgroups16),		"setgroups"		},
 [ 82] = { 1,	TD,		SEN(oldselect),			"select"		},
 [ 83] = { 2,	TF,		SEN(symlink),			"symlink"		},
-[ 84] = { 2,	TF,		SEN(oldlstat),			"oldlstat"		},
+[ 84] = { 2,	TF|TLST|TSTA,	SEN(oldlstat),			"oldlstat"		},
 [ 85] = { 3,	TF,		SEN(readlink),			"readlink"		},
 [ 86] = { 1,	TF,		SEN(uselib),			"uselib"		},
 [ 87] = { 2,	TF,		SEN(swapon),			"swapon"		},
@@ -125,16 +126,16 @@
 [ 96] = { 2,	0,		SEN(getpriority),		"getpriority"		},
 [ 97] = { 3,	0,		SEN(setpriority),		"setpriority"		},
 [ 98] = { 4,	0,		SEN(profil),			"profil"		},
-[ 99] = { 2,	TF,		SEN(statfs),			"statfs"		},
-[100] = { 2,	TD,		SEN(fstatfs),			"fstatfs"		},
+[ 99] = { 2,	TF|TSF|TSFA,	SEN(statfs),			"statfs"		},
+[100] = { 2,	TD|TFSF|TSFA,	SEN(fstatfs),			"fstatfs"		},
 [101] = { 3,	0,		SEN(ioperm),			"ioperm"		},
 [102] = { 2,	TD,		SEN(socketcall),		"socketcall"		},
 [103] = { 3,	0,		SEN(syslog),			"syslog"		},
 [104] = { 3,	0,		SEN(setitimer),			"setitimer"		},
 [105] = { 2,	0,		SEN(getitimer),			"getitimer"		},
-[106] = { 2,	TF,		SEN(stat),			"stat"			},
-[107] = { 2,	TF,		SEN(lstat),			"lstat"			},
-[108] = { 2,	TD,		SEN(fstat),			"fstat"			},
+[106] = { 2,	TF|TST|TSTA,	SEN(stat),			"stat"			},
+[107] = { 2,	TF|TLST|TSTA,	SEN(lstat),			"lstat"			},
+[108] = { 2,	TD|TFST|TSTA,	SEN(fstat),			"fstat"			},
 [109] = { 1,	0,		SEN(olduname),			"olduname"		},
 [110] = { 1,	0,		SEN(iopl),			"iopl"			},
 [111] = { 0,	0,		SEN(vhangup),			"vhangup"		},
@@ -221,9 +222,9 @@
 [192] = { 6,	TD|TM|SI,	SEN(mmap_4koff),		"mmap2"			},
 [193] = { 4,	TF,		SEN(truncate64),		"truncate64"		},
 [194] = { 4,	TD,		SEN(ftruncate64),		"ftruncate64"		},
-[195] = { 2,	TF,		SEN(stat64),			"stat64"		},
-[196] = { 2,	TF,		SEN(lstat64),			"lstat64"		},
-[197] = { 2,	TD,		SEN(fstat64),			"fstat64"		},
+[195] = { 2,	TF|TST|TSTA,	SEN(stat64),			"stat64"		},
+[196] = { 2,	TF|TLST|TSTA,	SEN(lstat64),			"lstat64"		},
+[197] = { 2,	TD|TFST|TSTA,	SEN(fstat64),			"fstat64"		},
 [198] = { 3,	TF,		SEN(chown),			"lchown32"		},
 [199] = { 0,	NF,		SEN(getuid),			"getuid32"		},
 [200] = { 0,	NF,		SEN(getgid),			"getgid32"		},
@@ -290,8 +291,8 @@
 [263] = { 2,	0,		SEN(clock_gettime),		"clock_gettime"		},
 [264] = { 2,	0,		SEN(clock_getres),		"clock_getres"		},
 [265] = { 4,	0,		SEN(clock_nanosleep),		"clock_nanosleep"	},
-[266] = { 3,	TF,		SEN(statfs64),			"statfs64"		},
-[267] = { 3,	TD,		SEN(fstatfs64),			"fstatfs64"		},
+[266] = { 3,	TF|TSF|TSFA,	SEN(statfs64),			"statfs64"		},
+[267] = { 3,	TD|TFSF|TSFA,	SEN(fstatfs64),			"fstatfs64"		},
 [268] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
 [269] = { 2,	TF,		SEN(utimes),			"utimes"		},
 [270] = { 6,	TD,		SEN(fadvise64_64),		"fadvise64_64"		},
@@ -351,7 +352,7 @@
 [324] = { 4,	TD|TF,		SEN(mknodat),			"mknodat"		},
 [325] = { 5,	TD|TF,		SEN(fchownat),			"fchownat"		},
 [326] = { 3,	TD|TF,		SEN(futimesat),			"futimesat"		},
-[327] = { 4,	TD|TF,		SEN(fstatat64),			"fstatat64"		},
+[327] = { 4,	TD|TF|TFST|TSTA,SEN(fstatat64),			"fstatat64"		},
 [328] = { 3,	TD|TF,		SEN(unlinkat),			"unlinkat"		},
 [329] = { 4,	TD|TF,		SEN(renameat),			"renameat"		},
 [330] = { 5,	TD|TF,		SEN(linkat),			"linkat"		},
@@ -421,6 +422,7 @@
 [394] = { 4,	TM|SI,		SEN(pkey_mprotect),		"pkey_mprotect"		},
 [395] = { 2,	0,		SEN(pkey_alloc),		"pkey_alloc"		},
 [396] = { 1,	0,		SEN(pkey_free),			"pkey_free"		},
+[397] = { 5,	TD|TF|TSTA,	SEN(statx),			"statx"			},
 
 #ifdef __ARM_EABI__
 # define ARM_FIRST_SHUFFLED_SYSCALL 400
diff --git a/linux/avr32/arch_regs.c b/linux/avr32/arch_regs.c
index 8b52a8d..2f88d8f 100644
--- a/linux/avr32/arch_regs.c
+++ b/linux/avr32/arch_regs.c
@@ -1,3 +1,4 @@
 static struct pt_regs avr32_regs;
+unsigned long *const avr32_sp_ptr = &avr32_regs.sp;
 #define ARCH_REGS_FOR_GETREGS avr32_regs
 #define ARCH_PC_REG avr32_regs.pc
diff --git a/linux/avr32/arch_regs.h b/linux/avr32/arch_regs.h
new file mode 100644
index 0000000..4ed62dd
--- /dev/null
+++ b/linux/avr32/arch_regs.h
@@ -0,0 +1 @@
+extern unsigned long *const avr32_sp_ptr;
diff --git a/linux/avr32/arch_rt_sigframe.c b/linux/avr32/arch_rt_sigframe.c
new file mode 100644
index 0000000..6650f8e
--- /dev/null
+++ b/linux/avr32/arch_rt_sigframe.c
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2017 Dmitry V. Levin <ldv@altlinux.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+FUNC_GET_RT_SIGFRAME_ADDR
+{
+	return *avr32_sp_ptr;
+}
diff --git a/linux/avr32/syscallent.h b/linux/avr32/syscallent.h
index d18902f..915aa8d 100644
--- a/linux/avr32/syscallent.h
+++ b/linux/avr32/syscallent.h
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2004-2009 Atmel Corporation
+ * Copyright (c) 2009-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -55,9 +56,9 @@
 [ 27] = { 1,	0,		SEN(alarm),			"alarm"			},
 [ 28] = { 0,	TS,		SEN(pause),			"pause"			},
 [ 29] = { 2,	TF,		SEN(utime),			"utime"			},
-[ 30] = { 2,	TF,		SEN(stat),			"stat"			},
-[ 31] = { 2,	TD,		SEN(fstat),			"fstat"			},
-[ 32] = { 2,	TF,		SEN(lstat),			"lstat"			},
+[ 30] = { 2,	TF|TST|TSTA,	SEN(stat),			"stat"			},
+[ 31] = { 2,	TD|TFST|TSTA,	SEN(fstat),			"fstat"			},
+[ 32] = { 2,	TF|TLST|TSTA,	SEN(lstat),			"lstat"			},
 [ 33] = { 2,	TF,		SEN(access),			"access"		},
 [ 34] = { 1,	TF,		SEN(chroot),			"chroot"		},
 [ 35] = { 0,	0,		SEN(sync),			"sync"			},
@@ -87,7 +88,7 @@
 [ 59] = { 3,	0,		SEN(getresuid),			"getresuid"		},
 [ 60] = { 2,	0,		SEN(setreuid),			"setreuid"		},
 [ 61] = { 2,	0,		SEN(setregid),			"setregid"		},
-[ 62] = { 2,	0,		SEN(ustat),			"ustat"			},
+[ 62] = { 2,	TSFA,		SEN(ustat),			"ustat"			},
 [ 63] = { 2,	TD,		SEN(dup2),			"dup2"			},
 [ 64] = { 0,	NF,		SEN(getppid),			"getppid"		},
 [ 65] = { 0,	0,		SEN(getpgrp),			"getpgrp"		},
@@ -124,8 +125,8 @@
 [ 96] = { 2,	0,		SEN(getpriority),		"getpriority"		},
 [ 97] = { 3,	0,		SEN(setpriority),		"setpriority"		},
 [ 98] = { 4,	TP,		SEN(wait4),			"wait4"			},
-[ 99] = { 2,	TF,		SEN(statfs),			"statfs"		},
-[100] = { 2,	TD,		SEN(fstatfs),			"fstatfs"		},
+[ 99] = { 2,	TF|TSF|TSFA,	SEN(statfs),			"statfs"		},
+[100] = { 2,	TD|TFSF|TSFA,	SEN(fstatfs),			"fstatfs"		},
 [101] = { 0,	0,		SEN(vhangup),			"vhangup"		},
 [102] = { 2,	TS,		SEN(sigaltstack),		"sigaltstack"		},
 [103] = { 3,	0,		SEN(syslog),			"syslog"		},
@@ -193,9 +194,9 @@
 [165] = { 3,	TN,		SEN(recvmsg),			"recvmsg"		},
 [166] = { 3,	TF,		SEN(truncate64),		"truncate64"		},
 [167] = { 3,	TD,		SEN(ftruncate64),		"ftruncate64"		},
-[168] = { 2,	TF,		SEN(stat64),			"stat64"		},
-[169] = { 2,	TF,		SEN(lstat64),			"lstat64"		},
-[170] = { 2,	TD,		SEN(fstat64),			"fstat64"		},
+[168] = { 2,	TF|TST|TSTA,	SEN(stat64),			"stat64"		},
+[169] = { 2,	TF|TLST|TSTA,	SEN(lstat64),			"lstat64"		},
+[170] = { 2,	TD|TFST|TSTA,	SEN(fstat64),			"fstat64"		},
 [171] = { 2,	TF,		SEN(pivotroot),			"pivot_root"		},
 [172] = { 3,	TM,		SEN(mincore),			"mincore"		},
 [173] = { 3,	TM,		SEN(madvise),			"madvise"		},
@@ -244,8 +245,8 @@
 [216] = { 2,	0,		SEN(clock_gettime),		"clock_gettime"		},
 [217] = { 2,	0,		SEN(clock_getres),		"clock_getres"		},
 [218] = { 4,	0,		SEN(clock_nanosleep),		"clock_nanosleep"	},
-[219] = { 3,	TF,		SEN(statfs64),			"statfs64"		},
-[220] = { 3,	TD,		SEN(fstatfs64),			"fstatfs64"		},
+[219] = { 3,	TF|TSF|TSFA,	SEN(statfs64),			"statfs64"		},
+[220] = { 3,	TD|TFSF|TSFA,	SEN(fstatfs64),			"fstatfs64"		},
 [221] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
 [222] = { },
 [223] = { 2,	TF,		SEN(utimes),			"utimes"		},
@@ -273,7 +274,7 @@
 [245] = { 4,	TD|TF,		SEN(mknodat),			"mknodat"		},
 [246] = { 5,	TD|TF,		SEN(fchownat),			"fchownat"		},
 [247] = { 3,	TD|TF,		SEN(futimesat),			"futimesat"		},
-[248] = { 4,	TD|TF,		SEN(fstatat64),			"fstatat64"		},
+[248] = { 4,	TD|TF|TFST|TSTA,SEN(fstatat64),			"fstatat64"		},
 [249] = { 3,	TD|TF,		SEN(unlinkat),			"unlinkat"		},
 [250] = { 4,	TD|TF,		SEN(renameat),			"renameat"		},
 [251] = { 5,	TD|TF,		SEN(linkat),			"linkat"		},
diff --git a/linux/bfin/arch_rt_sigframe.c b/linux/bfin/arch_rt_sigframe.c
new file mode 100644
index 0000000..d84b834
--- /dev/null
+++ b/linux/bfin/arch_rt_sigframe.c
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2017 Dmitry V. Levin <ldv@altlinux.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+FUNC_GET_RT_SIGFRAME_ADDR
+{
+	unsigned long addr;
+
+	return upeek(tcp->pid, PT_USP, &addr) ? 0 : addr;
+}
diff --git a/linux/bfin/rt_sigframe.h b/linux/bfin/rt_sigframe.h
new file mode 100644
index 0000000..7b63cb1
--- /dev/null
+++ b/linux/bfin/rt_sigframe.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2017 Dmitry V. Levin <ldv@altlinux.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef STRACE_RT_SIGFRAME_H
+#define STRACE_RT_SIGFRAME_H
+
+#include <signal.h>
+
+typedef struct {
+	int		sig;
+	siginfo_t	*pinfo;
+	void		*puc;
+	char		retcode[8];
+	siginfo_t	info;
+	ucontext_t	uc;
+} struct_rt_sigframe;
+
+#endif /* !STRACE_RT_SIGFRAME_H */
diff --git a/linux/bfin/syscallent.h b/linux/bfin/syscallent.h
index f4b8871..5cdb991 100644
--- a/linux/bfin/syscallent.h
+++ b/linux/bfin/syscallent.h
@@ -1,6 +1,7 @@
 /*
  * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
  * Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs@world.std.com>
+ * Copyright (c) 1995-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -44,7 +45,7 @@
 [ 15] = { 2,	TF,		SEN(chmod),			"chmod"			},
 [ 16] = { 3,	TF,		SEN(chown16),			"chown"			},
 [ 17] = { 0,	TM,		SEN(break),			"break"			},
-[ 18] = { 2,	TF,		SEN(oldstat),			"oldstat"		},
+[ 18] = { 2,	TF|TST|TSTA,	SEN(oldstat),			"oldstat"		},
 [ 19] = { 3,	TD,		SEN(lseek),			"lseek"			},
 [ 20] = { 0,	NF,		SEN(getpid),			"getpid"		},
 [ 21] = { 5,	TF,		SEN(mount),			"mount"			},
@@ -54,7 +55,7 @@
 [ 25] = { 1,	0,		SEN(stime),			"stime"			},
 [ 26] = { 4,	0,		SEN(ptrace),			"ptrace"		},
 [ 27] = { 1,	0,		SEN(alarm),			"alarm"			},
-[ 28] = { 2,	TD,		SEN(oldfstat),			"oldfstat"		},
+[ 28] = { 2,	TD|TFST|TSTA,	SEN(oldfstat),			"oldfstat"		},
 [ 29] = { 0,	TS,		SEN(pause),			"pause"			},
 [ 30] = { 2,	TF,		SEN(utime),			"utime"			},
 [ 31] = { 2,	0,		SEN(stty),			"stty"			},
@@ -88,14 +89,14 @@
 [ 59] = { 1,	0,		SEN(oldolduname),		"oldolduname"		},
 [ 60] = { 1,	NF,		SEN(umask),			"umask"			},
 [ 61] = { 1,	TF,		SEN(chroot),			"chroot"		},
-[ 62] = { 2,	0,		SEN(ustat),			"ustat"			},
+[ 62] = { 2,	TSFA,		SEN(ustat),			"ustat"			},
 [ 63] = { 2,	TD,		SEN(dup2),			"dup2"			},
 [ 64] = { 0,	NF,		SEN(getppid),			"getppid"		},
 [ 65] = { 0,	0,		SEN(getpgrp),			"getpgrp"		},
 [ 66] = { 0,	0,		SEN(setsid),			"setsid"		},
 [ 67] = { 3,	TS,		SEN(sigaction),			"sigaction"		},
-[ 68] = { 0,	TS,		SEN(siggetmask),		"sgetmask"		},
-[ 69] = { 1,	TS,		SEN(sigsetmask),		"ssetmask"		},
+[ 68] = { 0,	TS,		SEN(sgetmask),			"sgetmask"		},
+[ 69] = { 1,	TS,		SEN(ssetmask),			"ssetmask"		},
 [ 70] = { 2,	0,		SEN(setreuid16),		"setreuid"		},
 [ 71] = { 2,	0,		SEN(setregid16),		"setregid"		},
 [ 72] = { 3,	TS,		SEN(sigsuspend),		"sigsuspend"		},
@@ -110,7 +111,7 @@
 [ 81] = { 2,	0,		SEN(setgroups16),		"setgroups"		},
 [ 82] = { 1,	TD,		SEN(oldselect),			"select"		},
 [ 83] = { 2,	TF,		SEN(symlink),			"symlink"		},
-[ 84] = { 2,	TF,		SEN(oldlstat),			"oldlstat"		},
+[ 84] = { 2,	TF|TLST|TSTA,	SEN(oldlstat),			"oldlstat"		},
 [ 85] = { 3,	TF,		SEN(readlink),			"readlink"		},
 [ 86] = { 1,	TF,		SEN(uselib),			"uselib"		},
 [ 87] = { 2,	TF,		SEN(swapon),			"swapon"		},
@@ -125,16 +126,16 @@
 [ 96] = { 2,	0,		SEN(getpriority),		"getpriority"		},
 [ 97] = { 3,	0,		SEN(setpriority),		"setpriority"		},
 [ 98] = { 4,	0,		SEN(profil),			"profil"		},
-[ 99] = { 2,	TF,		SEN(statfs),			"statfs"		},
-[100] = { 2,	TD,		SEN(fstatfs),			"fstatfs"		},
+[ 99] = { 2,	TF|TSF|TSFA,	SEN(statfs),			"statfs"		},
+[100] = { 2,	TD|TFSF|TSFA,	SEN(fstatfs),			"fstatfs"		},
 [101] = { 3,	0,		SEN(ioperm),			"ioperm"		},
 [102] = { 2,	TD,		SEN(socketcall),		"socketcall"		},
 [103] = { 3,	0,		SEN(syslog),			"syslog"		},
 [104] = { 3,	0,		SEN(setitimer),			"setitimer"		},
 [105] = { 2,	0,		SEN(getitimer),			"getitimer"		},
-[106] = { 2,	TF,		SEN(stat),			"stat"			},
-[107] = { 2,	TF,		SEN(lstat),			"lstat"			},
-[108] = { 2,	TD,		SEN(fstat),			"fstat"			},
+[106] = { 2,	TF|TST|TSTA,	SEN(stat),			"stat"			},
+[107] = { 2,	TF|TLST|TSTA,	SEN(lstat),			"lstat"			},
+[108] = { 2,	TD|TFST|TSTA,	SEN(fstat),			"fstat"			},
 [109] = { 1,	0,		SEN(olduname),			"olduname"		},
 [110] = { 1,	0,		SEN(iopl),			"iopl"			},
 [111] = { 0,	0,		SEN(vhangup),			"vhangup"		},
@@ -221,9 +222,9 @@
 [192] = { 6,	TD|TM|SI,	SEN(mmap_pgoff),		"mmap2"			},
 [193] = { 3,	TF,		SEN(truncate64),		"truncate64"		},
 [194] = { 3,	TD,		SEN(ftruncate64),		"ftruncate64"		},
-[195] = { 2,	TF,		SEN(stat64),			"stat64"		},
-[196] = { 2,	TF,		SEN(lstat64),			"lstat64"		},
-[197] = { 2,	TD,		SEN(fstat64),			"fstat64"		},
+[195] = { 2,	TF|TST|TSTA,	SEN(stat64),			"stat64"		},
+[196] = { 2,	TF|TLST|TSTA,	SEN(lstat64),			"lstat64"		},
+[197] = { 2,	TD|TFST|TSTA,	SEN(fstat64),			"fstat64"		},
 [198] = { 3,	TF,		SEN(chown),			"chown32"		},
 [199] = { 0,	NF,		SEN(getuid),			"getuid32"		},
 [200] = { 0,	NF,		SEN(getgid),			"getgid32"		},
@@ -294,8 +295,8 @@
 [266] = { 2,	0,		SEN(clock_gettime),		"clock_gettime"		},
 [267] = { 2,	0,		SEN(clock_getres),		"clock_getres"		},
 [268] = { 4,	0,		SEN(clock_nanosleep),		"clock_nanosleep"	},
-[269] = { 3,	TF,		SEN(statfs64),			"statfs64"		},
-[270] = { 3,	TD,		SEN(fstatfs64),			"fstatfs64"		},
+[269] = { 3,	TF|TSF|TSFA,	SEN(statfs64),			"statfs64"		},
+[270] = { 3,	TD|TFSF|TSFA,	SEN(fstatfs64),			"fstatfs64"		},
 [271] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
 [272] = { 2,	TF,		SEN(utimes),			"utimes"		},
 [273] = { 6,	TD,		SEN(fadvise64_64),		"fadvise64_64"		},
@@ -325,7 +326,7 @@
 [297] = { 4,	TD|TF,		SEN(mknodat),			"mknodat"		},
 [298] = { 5,	TD|TF,		SEN(fchownat),			"fchownat"		},
 [299] = { 3,	TD|TF,		SEN(futimesat),			"futimesat"		},
-[300] = { 4,	TD|TF,		SEN(fstatat64),			"fstatat64"		},
+[300] = { 4,	TD|TF|TFST|TSTA,SEN(fstatat64),			"fstatat64"		},
 [301] = { 3,	TD|TF,		SEN(unlinkat),			"unlinkat"		},
 [302] = { 4,	TD|TF,		SEN(renameat),			"renameat"		},
 [303] = { 5,	TD|TF,		SEN(linkat),			"linkat"		},
diff --git a/linux/crisv10/arch_rt_sigframe.c b/linux/crisv10/arch_rt_sigframe.c
new file mode 100644
index 0000000..f3d5f10
--- /dev/null
+++ b/linux/crisv10/arch_rt_sigframe.c
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2017 Dmitry V. Levin <ldv@altlinux.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+FUNC_GET_RT_SIGFRAME_ADDR
+{
+	unsigned long addr;
+
+	return upeek(tcp->pid, 4 * PT_USP, &addr) ? 0 : addr;
+}
diff --git a/linux/crisv10/arch_sigreturn.c b/linux/crisv10/arch_sigreturn.c
index b449d41..0458c8e 100644
--- a/linux/crisv10/arch_sigreturn.c
+++ b/linux/crisv10/arch_sigreturn.c
@@ -11,6 +11,6 @@
 		regs[PT_USP] + offsetof(struct sigcontext, oldmask);
 
 	tprints("{mask=");
-	print_sigset_addr_len(tcp, addr, NSIG_BYTES);
+	print_sigset_addr(tcp, addr);
 	tprints("}");
 }
diff --git a/linux/crisv10/rt_sigframe.h b/linux/crisv10/rt_sigframe.h
new file mode 100644
index 0000000..6080bae
--- /dev/null
+++ b/linux/crisv10/rt_sigframe.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2017 Dmitry V. Levin <ldv@altlinux.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef STRACE_RT_SIGFRAME_H
+#define STRACE_RT_SIGFRAME_H
+
+#include <signal.h>
+
+typedef struct {
+	siginfo_t	*pinfo;
+	void		*puc;
+	siginfo_t	info;
+	ucontext_t	uc;
+	/* more data follows */
+} struct_rt_sigframe;
+
+#endif /* !STRACE_RT_SIGFRAME_H */
diff --git a/linux/crisv10/syscallent.h b/linux/crisv10/syscallent.h
index d411fe7..0e36774 100644
--- a/linux/crisv10/syscallent.h
+++ b/linux/crisv10/syscallent.h
@@ -16,7 +16,7 @@
 [ 15] = { 2,	TF,		SEN(chmod),			"chmod"			},
 [ 16] = { 3,	TF,		SEN(chown16),			"lchown"		},
 [ 17] = { 0,	TM,		SEN(break),			"break"			},
-[ 18] = { 2,	TF,		SEN(oldstat),			"oldstat"		},
+[ 18] = { 2,	TF|TST|TSTA,	SEN(oldstat),			"oldstat"		},
 [ 19] = { 3,	TD,		SEN(lseek),			"lseek"			},
 [ 20] = { 0,	NF,		SEN(getpid),			"getpid"		},
 [ 21] = { 5,	TF,		SEN(mount),			"mount"			},
@@ -26,7 +26,7 @@
 [ 25] = { 1,	0,		SEN(stime),			"stime"			},
 [ 26] = { 4,	0,		SEN(ptrace),			"ptrace"		},
 [ 27] = { 1,	0,		SEN(alarm),			"alarm"			},
-[ 28] = { 2,	TD,		SEN(oldfstat),			"oldfstat"		},
+[ 28] = { 2,	TD|TFST|TSTA,	SEN(oldfstat),			"oldfstat"		},
 [ 29] = { 0,	TS,		SEN(pause),			"pause"			},
 [ 30] = { 2,	TF,		SEN(utime),			"utime"			},
 [ 31] = { 2,	0,		SEN(stty),			"stty"			},
@@ -60,17 +60,17 @@
 [ 59] = { 1,	0,		SEN(oldolduname),		"oldolduname"		},
 [ 60] = { 1,	NF,		SEN(umask),			"umask"			},
 [ 61] = { 1,	TF,		SEN(chroot),			"chroot"		},
-[ 62] = { 2,	0,		SEN(ustat),			"ustat"			},
+[ 62] = { 2,	TSFA,		SEN(ustat),			"ustat"			},
 [ 63] = { 2,	TD,		SEN(dup2),			"dup2"			},
 [ 64] = { 0,	NF,		SEN(getppid),			"getppid"		},
 [ 65] = { 0,	0,		SEN(getpgrp),			"getpgrp"		},
 [ 66] = { 0,	0,		SEN(setsid),			"setsid"		},
 [ 67] = { 3,	TS,		SEN(sigaction),			"sigaction"		},
-[ 68] = { 0,	TS,		SEN(siggetmask),		"sgetmask"		},
-[ 69] = { 1,	TS,		SEN(sigsetmask),		"ssetmask"		},
+[ 68] = { 0,	TS,		SEN(sgetmask),			"sgetmask"		},
+[ 69] = { 1,	TS,		SEN(ssetmask),			"ssetmask"		},
 [ 70] = { 2,	0,		SEN(setreuid16),		"setreuid"		},
 [ 71] = { 2,	0,		SEN(setregid16),		"setregid"		},
-[ 72] = { 3,	TS,		SEN(sigsuspend),		"sigsuspend"		},
+[ 72] = { 1,	TS,		SEN(sigsuspend),		"sigsuspend"		},
 [ 73] = { 1,	TS,		SEN(sigpending),		"sigpending"		},
 [ 74] = { 2,	0,		SEN(sethostname),		"sethostname"		},
 [ 75] = { 2,	0,		SEN(setrlimit),			"setrlimit"		},
@@ -82,7 +82,7 @@
 [ 81] = { 2,	0,		SEN(setgroups16),		"setgroups"		},
 [ 82] = { 1,	TD,		SEN(oldselect),			"select"		},
 [ 83] = { 2,	TF,		SEN(symlink),			"symlink"		},
-[ 84] = { 2,	TF,		SEN(oldlstat),			"oldlstat"		},
+[ 84] = { 2,	TF|TLST|TSTA,	SEN(oldlstat),			"oldlstat"		},
 [ 85] = { 3,	TF,		SEN(readlink),			"readlink"		},
 [ 86] = { 1,	TF,		SEN(uselib),			"uselib"		},
 [ 87] = { 2,	TF,		SEN(swapon),			"swapon"		},
@@ -97,16 +97,16 @@
 [ 96] = { 2,	0,		SEN(getpriority),		"getpriority"		},
 [ 97] = { 3,	0,		SEN(setpriority),		"setpriority"		},
 [ 98] = { 4,	0,		SEN(profil),			"profil"		},
-[ 99] = { 2,	TF,		SEN(statfs),			"statfs"		},
-[100] = { 2,	TD,		SEN(fstatfs),			"fstatfs"		},
+[ 99] = { 2,	TF|TSF|TSFA,	SEN(statfs),			"statfs"		},
+[100] = { 2,	TD|TFSF|TSFA,	SEN(fstatfs),			"fstatfs"		},
 [101] = { 3,	0,		SEN(ioperm),			"ioperm"		},
 [102] = { 2,	TD,		SEN(socketcall),		"socketcall"		},
 [103] = { 3,	0,		SEN(syslog),			"syslog"		},
 [104] = { 3,	0,		SEN(setitimer),			"setitimer"		},
 [105] = { 2,	0,		SEN(getitimer),			"getitimer"		},
-[106] = { 2,	TF,		SEN(stat),			"stat"			},
-[107] = { 2,	TF,		SEN(lstat),			"lstat"			},
-[108] = { 2,	TD,		SEN(fstat),			"fstat"			},
+[106] = { 2,	TF|TST|TSTA,	SEN(stat),			"stat"			},
+[107] = { 2,	TF|TLST|TSTA,	SEN(lstat),			"lstat"			},
+[108] = { 2,	TD|TFST|TSTA,	SEN(fstat),			"fstat"			},
 [109] = { 1,	0,		SEN(olduname),			"olduname"		},
 [110] = { 1,	0,		SEN(iopl),			"iopl"			},
 [111] = { 0,	0,		SEN(vhangup),			"vhangup"		},
@@ -192,9 +192,9 @@
 [192] = { 6,	TD|TM|SI,	SEN(mmap_pgoff),		"mmap2"			},
 [193] = { 3,	TF,		SEN(truncate64),		"truncate64"		},
 [194] = { 3,	TD,		SEN(ftruncate64),		"ftruncate64"		},
-[195] = { 2,	TF,		SEN(stat64),			"stat64"		},
-[196] = { 2,	TF,		SEN(lstat64),			"lstat64"		},
-[197] = { 2,	TD,		SEN(fstat64),			"fstat64"		},
+[195] = { 2,	TF|TST|TSTA,	SEN(stat64),			"stat64"		},
+[196] = { 2,	TF|TLST|TSTA,	SEN(lstat64),			"lstat64"		},
+[197] = { 2,	TD|TFST|TSTA,	SEN(fstat64),			"fstat64"		},
 [198] = { 3,	TF,		SEN(chown),			"lchown32"		},
 [199] = { 0,	NF,		SEN(getuid),			"getuid32"		},
 [200] = { 0,	NF,		SEN(getgid),			"getgid32"		},
@@ -262,8 +262,8 @@
 [265] = { 2,	0,		SEN(clock_gettime),		"clock_gettime"		},
 [266] = { 2,	0,		SEN(clock_getres),		"clock_getres"		},
 [267] = { 4,	0,		SEN(clock_nanosleep),		"clock_nanosleep"	},
-[268] = { 3,	TF,		SEN(statfs64),			"statfs64"		},
-[269] = { 3,	TD,		SEN(fstatfs64),			"fstatfs64"		},
+[268] = { 3,	TF|TSF|TSFA,	SEN(statfs64),			"statfs64"		},
+[269] = { 3,	TD|TFSF|TSFA,	SEN(fstatfs64),			"fstatfs64"		},
 [270] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
 [271] = { 2,	TF,		SEN(utimes),			"utimes"		},
 [272] = { 6,	TD,		SEN(fadvise64_64),		"fadvise64_64"		},
@@ -293,7 +293,7 @@
 [297] = { 4,	TD|TF,		SEN(mknodat),			"mknodat"		},
 [298] = { 5,	TD|TF,		SEN(fchownat),			"fchownat"		},
 [299] = { 3,	TD|TF,		SEN(futimesat),			"futimesat"		},
-[300] = { 4,	TD|TF,		SEN(fstatat64),			"fstatat64"		},
+[300] = { 4,	TD|TF|TFST|TSTA,SEN(fstatat64),			"fstatat64"		},
 [301] = { 3,	TD|TF,		SEN(unlinkat),			"unlinkat"		},
 [302] = { 4,	TD|TF,		SEN(renameat),			"renameat"		},
 [303] = { 5,	TD|TF,		SEN(linkat),			"linkat"		},
diff --git a/linux/crisv32/arch_rt_sigframe.c b/linux/crisv32/arch_rt_sigframe.c
new file mode 100644
index 0000000..2f45746
--- /dev/null
+++ b/linux/crisv32/arch_rt_sigframe.c
@@ -0,0 +1 @@
+#include "crisv10/arch_rt_sigframe.c"
diff --git a/linux/crisv32/rt_sigframe.h b/linux/crisv32/rt_sigframe.h
new file mode 100644
index 0000000..bfe07d4
--- /dev/null
+++ b/linux/crisv32/rt_sigframe.h
@@ -0,0 +1 @@
+#include "crisv10/rt_sigframe.h"
diff --git a/linux/dummy.h b/linux/dummy.h
index 2758cfb..40c0726 100644
--- a/linux/dummy.h
+++ b/linux/dummy.h
@@ -1,6 +1,7 @@
 /*
  * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
  * Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs@world.std.com>
+ * Copyright (c) 1995-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -113,7 +114,6 @@
 #define	sys_munlockall		printargs
 #define	sys_pause		printargs
 #define	sys_printargs		printargs
-#define	sys_rt_sigreturn	printargs
 #define	sys_sched_yield		printargs
 #define	sys_setsid		printargs
 #define	sys_set_tid_address	printargs
diff --git a/linux/hppa/arch_rt_sigframe.c b/linux/hppa/arch_rt_sigframe.c
new file mode 100644
index 0000000..e3c62fa
--- /dev/null
+++ b/linux/hppa/arch_rt_sigframe.c
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2017 Dmitry V. Levin <ldv@altlinux.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "rt_sigframe.h"
+
+#define SIGFRAME		(sizeof(long) * 16)
+#define FUNCTIONCALLFRAME	(sizeof(long) * 12)
+#define RT_SIGFRAME_SIZE	\
+	(((sizeof(struct_rt_sigframe) + FUNCTIONCALLFRAME)) & -SIGFRAME)
+
+FUNC_GET_RT_SIGFRAME_ADDR
+{
+	unsigned long addr;
+
+	return upeek(tcp->pid, 4 * 30, &addr)
+		? 0 : (addr & ~1UL) - RT_SIGFRAME_SIZE;
+}
diff --git a/linux/hppa/rt_sigframe.h b/linux/hppa/rt_sigframe.h
new file mode 100644
index 0000000..56b3bdb
--- /dev/null
+++ b/linux/hppa/rt_sigframe.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2017 Dmitry V. Levin <ldv@altlinux.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef STRACE_RT_SIGFRAME_H
+#define STRACE_RT_SIGFRAME_H
+
+#include <signal.h>
+
+typedef struct {
+	unsigned int	tramp[9];
+	siginfo_t	info;
+	ucontext_t	uc;
+} struct_rt_sigframe;
+
+#endif /* !STRACE_RT_SIGFRAME_H */
diff --git a/linux/hppa/syscallent.h b/linux/hppa/syscallent.h
index 97e2a32..ef0e2d8 100644
--- a/linux/hppa/syscallent.h
+++ b/linux/hppa/syscallent.h
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2001 Hewlett-Packard, Matthew Wilcox
+ * Copyright (c) 2001-2017 The strace developers.
  */
 
 [  0] = { 0,	0,		SEN(restart_syscall),		"restart_syscall"	},
@@ -20,7 +21,7 @@
 [ 15] = { 2,	TF,		SEN(chmod),			"chmod"			},
 [ 16] = { 3,	TF,		SEN(chown),			"lchown"		},
 [ 17] = { 3,	TN,		SEN(socket),			"socket"		},
-[ 18] = { 2,	TF,		SEN(stat),			"stat"			},
+[ 18] = { 2,	TF|TST|TSTA,	SEN(stat),			"stat"			},
 [ 19] = { 3,	TD,		SEN(lseek),			"lseek"			},
 [ 20] = { 0,	NF,		SEN(getpid),			"getpid"		},
 [ 21] = { 5,	TF,		SEN(mount),			"mount"			},
@@ -30,7 +31,7 @@
 [ 25] = { 1,	0,		SEN(stime),			"stime"			},
 [ 26] = { 4,	0,		SEN(ptrace),			"ptrace"		},
 [ 27] = { 1,	0,		SEN(alarm),			"alarm"			},
-[ 28] = { 2,	TD,		SEN(fstat),			"fstat"			},
+[ 28] = { 2,	TD|TFST|TSTA,	SEN(fstat),			"fstat"			},
 [ 29] = { 0,	TS,		SEN(pause),			"pause"			},
 [ 30] = { 2,	TF,		SEN(utime),			"utime"			},
 [ 31] = { 3,	TN,		SEN(connect),			"connect"		},
@@ -64,14 +65,14 @@
 [ 59] = { 1,	0,		SEN(uname),			"uname"			},
 [ 60] = { 1,	NF,		SEN(umask),			"umask"			},
 [ 61] = { 1,	TF,		SEN(chroot),			"chroot"		},
-[ 62] = { 2,	0,		SEN(ustat),			"ustat"			},
+[ 62] = { 2,	TSFA,		SEN(ustat),			"ustat"			},
 [ 63] = { 2,	TD,		SEN(dup2),			"dup2"			},
 [ 64] = { 0,	NF,		SEN(getppid),			"getppid"		},
 [ 65] = { 0,	0,		SEN(getpgrp),			"getpgrp"		},
 [ 66] = { 0,	0,		SEN(setsid),			"setsid"		},
 [ 67] = { 2,	TF,		SEN(pivotroot),			"pivot_root"		},
-[ 68] = { 0,	TS,		SEN(siggetmask),		"sgetmask"		},
-[ 69] = { 1,	TS,		SEN(sigsetmask),		"ssetmask"		},
+[ 68] = { 0,	TS,		SEN(sgetmask),			"sgetmask"		},
+[ 69] = { 1,	TS,		SEN(ssetmask),			"ssetmask"		},
 [ 70] = { 2,	0,		SEN(setreuid),			"setreuid"		},
 [ 71] = { 2,	0,		SEN(setregid),			"setregid"		},
 [ 72] = { 3,	TM,		SEN(mincore),			"mincore"		},
@@ -86,7 +87,7 @@
 [ 81] = { 2,	0,		SEN(setgroups),			"setgroups"		},
 [ 82] = { 6,	TN,		SEN(sendto),			"sendto"		},
 [ 83] = { 2,	TF,		SEN(symlink),			"symlink"		},
-[ 84] = { 2,	TF,		SEN(lstat),			"lstat"			},
+[ 84] = { 2,	TF|TLST|TSTA,	SEN(lstat),			"lstat"			},
 [ 85] = { 3,	TF,		SEN(readlink),			"readlink"		},
 [ 86] = { 1,	TF,		SEN(uselib),			"uselib"		},
 [ 87] = { 2,	TF,		SEN(swapon),			"swapon"		},
@@ -101,9 +102,9 @@
 [ 96] = { 2,	0,		SEN(getpriority),		"getpriority"		},
 [ 97] = { 3,	0,		SEN(setpriority),		"setpriority"		},
 [ 98] = { 4,	TN,		SEN(recv),			"recv"			},
-[ 99] = { 2,	TF,		SEN(statfs),			"statfs"		},
-[100] = { 2,	TD,		SEN(fstatfs),			"fstatfs"		},
-[101] = { 2,	TF,		SEN(stat64),			"stat64"		},
+[ 99] = { 2,	TF|TSF|TSFA,	SEN(statfs),			"statfs"		},
+[100] = { 2,	TD|TFSF|TSFA,	SEN(fstatfs),			"fstatfs"		},
+[101] = { 2,	TF|TST|TSTA,	SEN(stat64),			"stat64"		},
 [102] = { },
 [103] = { 3,	0,		SEN(syslog),			"syslog"		},
 [104] = { 3,	0,		SEN(setitimer),			"setitimer"		},
@@ -114,7 +115,7 @@
 [109] = { 5,	TD,		SEN(pwrite),			"pwrite64"		},
 [110] = { 2,	TF,		SEN(getcwd),			"getcwd"		},
 [111] = { 0,	0,		SEN(vhangup),			"vhangup"		},
-[112] = { 2,	TD,		SEN(fstat64),			"fstat64"		},
+[112] = { 2,	TD|TFST|TSTA,	SEN(fstat64),			"fstat64"		},
 [113] = { 0,	TP,		SEN(vfork),			"vfork"			},
 [114] = { 4,	TP,		SEN(wait4),			"wait4"			},
 [115] = { 1,	TF,		SEN(swapoff),			"swapoff"		},
@@ -175,7 +176,7 @@
 [170] = { 3,	0,		SEN(setresgid),			"setresgid"		},
 [171] = { 3,	0,		SEN(getresgid),			"getresgid"		},
 [172] = { 5,	0,		SEN(prctl),			"prctl"			},
-[173] = { 0,	TS,		SEN(sigreturn),			"rt_sigreturn"		},
+[173] = { 0,	TS,		SEN(rt_sigreturn),		"rt_sigreturn"		},
 [174] = { 4,	TS,		SEN(rt_sigaction),		"rt_sigaction"		},
 [175] = { 4,	TS,		SEN(rt_sigprocmask),		"rt_sigprocmask"	},
 [176] = { 2,	TS,		SEN(rt_sigpending),		"rt_sigpending"		},
@@ -200,7 +201,7 @@
 [195] = { 3,	TI,		SEN(shmctl),			"shmctl"		},
 [196] = { 5,	TN,		SEN(getpmsg),			"getpmsg"		},
 [197] = { 5,	TN,		SEN(putpmsg),			"putpmsg"		},
-[198] = { 2,	TF,		SEN(lstat64),			"lstat64"		},
+[198] = { 2,	TF|TLST|TSTA,	SEN(lstat64),			"lstat64"		},
 [199] = { 3,	TF,		SEN(truncate64),		"truncate64"		},
 [200] = { 3,	TD,		SEN(ftruncate64),		"ftruncate64"		},
 [201] = { 3,	TD,		SEN(getdents64),		"getdents64"		},
@@ -282,7 +283,7 @@
 [277] = { 4,	TD|TF,		SEN(mknodat),			"mknodat"		},
 [278] = { 5,	TD|TF,		SEN(fchownat),			"fchownat"		},
 [279] = { 3,	TD|TF,		SEN(futimesat),			"futimesat"		},
-[280] = { 4,	TD|TF,		SEN(fstatat64),			"fstatat64"		},
+[280] = { 4,	TD|TF|TFST|TSTA,SEN(fstatat64),			"fstatat64"		},
 [281] = { 3,	TD|TF,		SEN(unlinkat),			"unlinkat"		},
 [282] = { 4,	TD|TF,		SEN(renameat),			"renameat"		},
 [283] = { 5,	TD|TF,		SEN(linkat),			"linkat"		},
@@ -300,8 +301,8 @@
 [295] = { 6,	TM,		SEN(move_pages),		"move_pages"		},
 [296] = { 3,	0,		SEN(getcpu),			"getcpu"		},
 [297] = { 6,	TD,		SEN(epoll_pwait),		"epoll_pwait"		},
-[298] = { 3,	TF,		SEN(statfs64),			"statfs64"		},
-[299] = { 3,	TD,		SEN(fstatfs64),			"fstatfs64"		},
+[298] = { 3,	TF|TSF|TSFA,	SEN(statfs64),			"statfs64"		},
+[299] = { 3,	TD|TFSF|TSFA,	SEN(fstatfs64),			"fstatfs64"		},
 [300] = { 4,	0,		SEN(kexec_load),		"kexec_load"		},
 [301] = { 4,	TD|TF,		SEN(utimensat),			"utimensat"		},
 [302] = { 3,	TD|TS,		SEN(signalfd),			"signalfd"		},
diff --git a/linux/i386/arch_rt_sigframe.c b/linux/i386/arch_rt_sigframe.c
new file mode 100644
index 0000000..b508408
--- /dev/null
+++ b/linux/i386/arch_rt_sigframe.c
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2017 Dmitry V. Levin <ldv@altlinux.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+FUNC_GET_RT_SIGFRAME_ADDR
+{
+	return *i386_esp_ptr - 4;
+}
diff --git a/linux/i386/ioctls_arch0.h b/linux/i386/ioctls_arch0.h
index e5b81a9..71690c4 100644
--- a/linux/i386/ioctls_arch0.h
+++ b/linux/i386/ioctls_arch0.h
@@ -68,6 +68,8 @@
 { "linux/kvm.h", "KVM_PPC_ALLOCATE_HTAB", _IOC_READ|_IOC_WRITE, 0xaea7, 0x04 },
 { "linux/kvm.h", "KVM_PPC_GET_PVINFO", _IOC_WRITE, 0xaea1, 0x80 },
 { "linux/kvm.h", "KVM_PPC_GET_SMMU_INFO", _IOC_READ, 0xaea6, 0x250 },
+{ "linux/kvm.h", "KVM_PPC_RESIZE_HPT_COMMIT", _IOC_READ, 0xaeae, 0x10 },
+{ "linux/kvm.h", "KVM_PPC_RESIZE_HPT_PREPARE", _IOC_READ, 0xaead, 0x10 },
 { "linux/kvm.h", "KVM_REGISTER_COALESCED_MMIO", _IOC_WRITE, 0xae67, 0x10 },
 { "linux/kvm.h", "KVM_REINJECT_CONTROL", _IOC_NONE, 0xae71, 0x00 },
 { "linux/kvm.h", "KVM_RUN", _IOC_NONE, 0xae80, 0x00 },
diff --git a/linux/i386/rt_sigframe.h b/linux/i386/rt_sigframe.h
new file mode 100644
index 0000000..9157ea4
--- /dev/null
+++ b/linux/i386/rt_sigframe.h
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2017 Dmitry V. Levin <ldv@altlinux.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef STRACE_RT_SIGFRAME_H
+#define STRACE_RT_SIGFRAME_H
+
+#include <signal.h>
+
+typedef struct {
+	uint32_t	pretcode;
+	int		sig;
+	uint32_t	pinfo;
+	uint32_t	puc;
+	siginfo_t	info;
+	ucontext_t	uc;
+	/* more data follows */
+} struct_rt_sigframe;
+
+#endif /* !STRACE_RT_SIGFRAME_H */
diff --git a/linux/i386/syscallent.h b/linux/i386/syscallent.h
index 31023c2..b0e9244 100644
--- a/linux/i386/syscallent.h
+++ b/linux/i386/syscallent.h
@@ -1,6 +1,7 @@
 /*
  * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
  * Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs@world.std.com>
+ * Copyright (c) 1995-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -44,7 +45,7 @@
 [ 15] = { 2,	TF,		SEN(chmod),			"chmod"			},
 [ 16] = { 3,	TF,		SEN(chown16),			"lchown"		},
 [ 17] = { 0,	TM,		SEN(break),			"break"			},
-[ 18] = { 2,	TF,		SEN(oldstat),			"oldstat"		},
+[ 18] = { 2,	TF|TST|TSTA,	SEN(oldstat),			"oldstat"		},
 [ 19] = { 3,	TD,		SEN(lseek),			"lseek"			},
 [ 20] = { 0,	NF,		SEN(getpid),			"getpid"		},
 [ 21] = { 5,	TF,		SEN(mount),			"mount"			},
@@ -54,7 +55,7 @@
 [ 25] = { 1,	0,		SEN(stime),			"stime"			},
 [ 26] = { 4,	0,		SEN(ptrace),			"ptrace"		},
 [ 27] = { 1,	0,		SEN(alarm),			"alarm"			},
-[ 28] = { 2,	TD,		SEN(oldfstat),			"oldfstat"		},
+[ 28] = { 2,	TD|TFST|TSTA,	SEN(oldfstat),			"oldfstat"		},
 [ 29] = { 0,	TS,		SEN(pause),			"pause"			},
 [ 30] = { 2,	TF,		SEN(utime),			"utime"			},
 [ 31] = { 2,	0,		SEN(stty),			"stty"			},
@@ -88,14 +89,14 @@
 [ 59] = { 1,	0,		SEN(oldolduname),		"oldolduname"		},
 [ 60] = { 1,	NF,		SEN(umask),			"umask"			},
 [ 61] = { 1,	TF,		SEN(chroot),			"chroot"		},
-[ 62] = { 2,	0,		SEN(ustat),			"ustat"			},
+[ 62] = { 2,	TSFA,		SEN(ustat),			"ustat"			},
 [ 63] = { 2,	TD,		SEN(dup2),			"dup2"			},
 [ 64] = { 0,	NF,		SEN(getppid),			"getppid"		},
 [ 65] = { 0,	0,		SEN(getpgrp),			"getpgrp"		},
 [ 66] = { 0,	0,		SEN(setsid),			"setsid"		},
 [ 67] = { 3,	TS,		SEN(sigaction),			"sigaction"		},
-[ 68] = { 0,	TS,		SEN(siggetmask),		"sgetmask"		},
-[ 69] = { 1,	TS,		SEN(sigsetmask),		"ssetmask"		},
+[ 68] = { 0,	TS,		SEN(sgetmask),			"sgetmask"		},
+[ 69] = { 1,	TS,		SEN(ssetmask),			"ssetmask"		},
 [ 70] = { 2,	0,		SEN(setreuid16),		"setreuid"		},
 [ 71] = { 2,	0,		SEN(setregid16),		"setregid"		},
 [ 72] = { 3,	TS,		SEN(sigsuspend),		"sigsuspend"		},
@@ -110,7 +111,7 @@
 [ 81] = { 2,	0,		SEN(setgroups16),		"setgroups"		},
 [ 82] = { 1,	TD,		SEN(oldselect),			"select"		},
 [ 83] = { 2,	TF,		SEN(symlink),			"symlink"		},
-[ 84] = { 2,	TF,		SEN(oldlstat),			"oldlstat"		},
+[ 84] = { 2,	TF|TLST|TSTA,	SEN(oldlstat),			"oldlstat"		},
 [ 85] = { 3,	TF,		SEN(readlink),			"readlink"		},
 [ 86] = { 1,	TF,		SEN(uselib),			"uselib"		},
 [ 87] = { 2,	TF,		SEN(swapon),			"swapon"		},
@@ -125,16 +126,16 @@
 [ 96] = { 2,	0,		SEN(getpriority),		"getpriority"		},
 [ 97] = { 3,	0,		SEN(setpriority),		"setpriority"		},
 [ 98] = { 4,	0,		SEN(profil),			"profil"		},
-[ 99] = { 2,	TF,		SEN(statfs),			"statfs"		},
-[100] = { 2,	TD,		SEN(fstatfs),			"fstatfs"		},
+[ 99] = { 2,	TF|TSF|TSFA,	SEN(statfs),			"statfs"		},
+[100] = { 2,	TD|TFSF|TSFA,	SEN(fstatfs),			"fstatfs"		},
 [101] = { 3,	0,		SEN(ioperm),			"ioperm"		},
 [102] = { 2,	TD,		SEN(socketcall),		"socketcall"		},
 [103] = { 3,	0,		SEN(syslog),			"syslog"		},
 [104] = { 3,	0,		SEN(setitimer),			"setitimer"		},
 [105] = { 2,	0,		SEN(getitimer),			"getitimer"		},
-[106] = { 2,	TF,		SEN(stat),			"stat"			},
-[107] = { 2,	TF,		SEN(lstat),			"lstat"			},
-[108] = { 2,	TD,		SEN(fstat),			"fstat"			},
+[106] = { 2,	TF|TST|TSTA,	SEN(stat),			"stat"			},
+[107] = { 2,	TF|TLST|TSTA,	SEN(lstat),			"lstat"			},
+[108] = { 2,	TD|TFST|TSTA,	SEN(fstat),			"fstat"			},
 [109] = { 1,	0,		SEN(olduname),			"olduname"		},
 [110] = { 1,	0,		SEN(iopl),			"iopl"			},
 [111] = { 0,	0,		SEN(vhangup),			"vhangup"		},
@@ -221,9 +222,9 @@
 [192] = { 6,	TD|TM|SI,	SEN(mmap_pgoff),		"mmap2"			},
 [193] = { 3,	TF,		SEN(truncate64),		"truncate64"		},
 [194] = { 3,	TD,		SEN(ftruncate64),		"ftruncate64"		},
-[195] = { 2,	TF,		SEN(stat64),			"stat64"		},
-[196] = { 2,	TF,		SEN(lstat64),			"lstat64"		},
-[197] = { 2,	TD,		SEN(fstat64),			"fstat64"		},
+[195] = { 2,	TF|TST|TSTA,	SEN(stat64),			"stat64"		},
+[196] = { 2,	TF|TLST|TSTA,	SEN(lstat64),			"lstat64"		},
+[197] = { 2,	TD|TFST|TSTA,	SEN(fstat64),			"fstat64"		},
 [198] = { 3,	TF,		SEN(chown),			"lchown32"		},
 [199] = { 0,	NF,		SEN(getuid),			"getuid32"		},
 [200] = { 0,	NF,		SEN(getgid),			"getgid32"		},
@@ -293,8 +294,8 @@
 [265] = { 2,	0,		SEN(clock_gettime),		"clock_gettime"		},
 [266] = { 2,	0,		SEN(clock_getres),		"clock_getres"		},
 [267] = { 4,	0,		SEN(clock_nanosleep),		"clock_nanosleep"	},
-[268] = { 3,	TF,		SEN(statfs64),			"statfs64"		},
-[269] = { 3,	TD,		SEN(fstatfs64),			"fstatfs64"		},
+[268] = { 3,	TF|TSF|TSFA,	SEN(statfs64),			"statfs64"		},
+[269] = { 3,	TD|TFSF|TSFA,	SEN(fstatfs64),			"fstatfs64"		},
 [270] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
 [271] = { 2,	TF,		SEN(utimes),			"utimes"		},
 [272] = { 6,	TD,		SEN(fadvise64_64),		"fadvise64_64"		},
@@ -325,7 +326,7 @@
 [297] = { 4,	TD|TF,		SEN(mknodat),			"mknodat"		},
 [298] = { 5,	TD|TF,		SEN(fchownat),			"fchownat"		},
 [299] = { 3,	TD|TF,		SEN(futimesat),			"futimesat"		},
-[300] = { 4,	TD|TF,		SEN(fstatat64),			"fstatat64"		},
+[300] = { 4,	TD|TF|TFST|TSTA,SEN(fstatat64),			"fstatat64"		},
 [301] = { 3,	TD|TF,		SEN(unlinkat),			"unlinkat"		},
 [302] = { 4,	TD|TF,		SEN(renameat),			"renameat"		},
 [303] = { 5,	TD|TF,		SEN(linkat),			"linkat"		},
@@ -408,6 +409,7 @@
 [380] = { 4,	TM|SI,		SEN(pkey_mprotect),		"pkey_mprotect"		},
 [381] = { 2,	0,		SEN(pkey_alloc),		"pkey_alloc"		},
 [382] = { 1,	0,		SEN(pkey_free),			"pkey_free"		},
+[383] = { 5,	TD|TF|TSTA,	SEN(statx),			"statx"			},
 
 #define SYS_socket_subcall	400
 #include "subcall.h"
diff --git a/linux/ia64/arch_rt_sigframe.c b/linux/ia64/arch_rt_sigframe.c
new file mode 100644
index 0000000..f6e660c
--- /dev/null
+++ b/linux/ia64/arch_rt_sigframe.c
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2017 Dmitry V. Levin <ldv@altlinux.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+FUNC_GET_RT_SIGFRAME_ADDR
+{
+	return *ia64_frame_ptr + 16;
+}
diff --git a/linux/ia64/arch_sigreturn.c b/linux/ia64/arch_sigreturn.c
deleted file mode 100644
index 0c0034f..0000000
--- a/linux/ia64/arch_sigreturn.c
+++ /dev/null
@@ -1,12 +0,0 @@
-static void
-arch_sigreturn(struct tcb *tcp)
-{
-	/* offsetof(struct sigframe, sc) */
-#define OFFSETOF_STRUCT_SIGFRAME_SC	0xA0
-	const unsigned long addr = *ia64_frame_ptr + 16 +
-				   OFFSETOF_STRUCT_SIGFRAME_SC +
-				   offsetof(struct sigcontext, sc_mask);
-	tprints("{mask=");
-	print_sigset_addr_len(tcp, addr, NSIG_BYTES);
-	tprints("}");
-}
diff --git a/linux/ia64/rt_sigframe.h b/linux/ia64/rt_sigframe.h
new file mode 100644
index 0000000..954237f
--- /dev/null
+++ b/linux/ia64/rt_sigframe.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2017 Dmitry V. Levin <ldv@altlinux.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef STRACE_RT_SIGFRAME_H
+#define STRACE_RT_SIGFRAME_H
+
+#include <signal.h>
+
+typedef struct {
+	unsigned long		arg0;
+	unsigned long		arg1;
+	unsigned long		arg2;
+	void			*handler;
+	siginfo_t		info;
+	struct sigcontext	sc;
+} struct_rt_sigframe;
+
+#define OFFSETOF_SIGMASK_IN_RT_SIGFRAME	\
+		offsetof(struct_rt_sigframe, sc.sc_mask)
+
+#endif /* !STRACE_RT_SIGFRAME_H */
diff --git a/linux/ia64/syscallent.h b/linux/ia64/syscallent.h
index 97ecab9..a44a4c1 100644
--- a/linux/ia64/syscallent.h
+++ b/linux/ia64/syscallent.h
@@ -1,6 +1,7 @@
 /*
  * Copyright (c) 1999, 2001 Hewlett-Packard Co
- *	David Mosberger-Tang <davidm@hpl.hp.com>
+ *                          David Mosberger-Tang <davidm@hpl.hp.com>
+ * Copyright (c) 2000-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -86,7 +87,7 @@
 [1066] = { 3,	TD,		SEN(fcntl),			"fcntl"			},
 [1067] = { 1,	NF,		SEN(umask),			"umask"			},
 [1068] = { 1,	TF,		SEN(chroot),			"chroot"		},
-[1069] = { 2,	0,		SEN(ustat),			"ustat"			},
+[1069] = { 2,	TSFA,		SEN(ustat),			"ustat"			},
 [1070] = { 2,	TD,		SEN(dup2),			"dup2"			},
 [1071] = { 2,	0,		SEN(setreuid),			"setreuid"		},
 [1072] = { 2,	0,		SEN(setregid),			"setregid"		},
@@ -120,8 +121,8 @@
 [1100] = { 3,	TD,		SEN(fchown),			"fchown"		},
 [1101] = { 2,	0,		SEN(getpriority),		"getpriority"		},
 [1102] = { 3,	0,		SEN(setpriority),		"setpriority"		},
-[1103] = { 2,	TF,		SEN(statfs),			"statfs"		},
-[1104] = { 2,	TD,		SEN(fstatfs),			"fstatfs"		},
+[1103] = { 2,	TF|TSF|TSFA,	SEN(statfs),			"statfs"		},
+[1104] = { 2,	TD|TFSF|TSFA,	SEN(fstatfs),			"fstatfs"		},
 [1105] = { 0,	NF,		SEN(gettid),			"gettid"		},
 [1106] = { 3,	TI,		SEN(semget),			"semget"		},
 [1107] = { 3,	TI,		SEN(semop),			"semop"			},
@@ -137,9 +138,9 @@
 [1117] = { 3,	0,		SEN(syslog),			"syslog"		},
 [1118] = { 3,	0,		SEN(setitimer),			"setitimer"		},
 [1119] = { 2,	0,		SEN(getitimer),			"getitimer"		},
-[1120] = { 2,	TF,		SEN(stat),			"stat"			},
-[1121] = { 2,	TF,		SEN(lstat),			"lstat"			},
-[1122] = { 2,	TD,		SEN(fstat),			"fstat"			},
+[1120] = { 2,	TF|TST|TSTA,	SEN(stat),			"stat"			},
+[1121] = { 2,	TF|TLST|TSTA,	SEN(lstat),			"lstat"			},
+[1122] = { 2,	TD|TFST|TSTA,	SEN(fstat),			"fstat"			},
 [1123] = { 0,	0,		SEN(vhangup),			"vhangup"		},
 [1124] = { 3,	TF,		SEN(chown),			"lchown"		},
 [1125] = { 5,	TM|SI,		SEN(remap_file_pages),		"remap_file_pages"	},
@@ -198,7 +199,7 @@
 [1178] = { 2,	TS,		SEN(rt_sigpending),		"rt_sigpending"		},
 [1179] = { 4,	TS,		SEN(rt_sigprocmask),		"rt_sigprocmask"	},
 [1180] = { 3,	TS,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
-[1181] = { 0,	TS,		SEN(sigreturn),			"rt_sigreturn"		},
+[1181] = { 0,	TS,		SEN(rt_sigreturn),		"rt_sigreturn"		},
 [1182] = { 2,	TS,		SEN(rt_sigsuspend),		"rt_sigsuspend"		},
 [1183] = { 4,	TS,		SEN(rt_sigtimedwait),		"rt_sigtimedwait"	},
 [1184] = { 2,	TF,		SEN(getcwd),			"getcwd"		},
@@ -227,9 +228,9 @@
 [1207] = { 2,	TF,		SEN(pivotroot),			"pivot_root"		},
 [1208] = { 3,	TM,		SEN(mincore),			"mincore"		},
 [1209] = { 3,	TM,		SEN(madvise),			"madvise"		},
-[1210] = { 2,	TF,		SEN(stat),			"stat"			},
-[1211] = { 2,	TF,		SEN(lstat),			"lstat"			},
-[1212] = { 2,	TD,		SEN(fstat),			"fstat"			},
+[1210] = { 2,	TF|TST|TSTA,	SEN(stat),			"stat"			},
+[1211] = { 2,	TF|TLST|TSTA,	SEN(lstat),			"lstat"			},
+[1212] = { 2,	TD|TFST|TSTA,	SEN(fstat),			"fstat"			},
 [1213] = { 6,	TP,		SEN(clone),			"clone2"		},
 [1214] = { 3,	TD,		SEN(getdents64),		"getdents64"		},
 [1215] = { 2,	0,		SEN(printargs),			"getunwind"		},
@@ -274,8 +275,8 @@
 [1254] = { 2,	0,		SEN(clock_gettime),		"clock_gettime"		},
 [1255] = { 2,	0,		SEN(clock_getres),		"clock_getres"		},
 [1256] = { 4,	0,		SEN(clock_nanosleep),		"clock_nanosleep"	},
-[1257] = { 3,	TD,		SEN(fstatfs64),			"fstatfs64"		},
-[1258] = { 3,	TF,		SEN(statfs64),			"statfs64"		},
+[1257] = { 3,	TD|TFSF|TSFA,	SEN(fstatfs64),			"fstatfs64"		},
+[1258] = { 3,	TF|TSF|TSFA,	SEN(statfs64),			"statfs64"		},
 [1259] = { 6,	TM,		SEN(mbind),			"mbind"			},
 [1260] = { 5,	TM,		SEN(get_mempolicy),		"get_mempolicy"		},
 [1261] = { 3,	TM,		SEN(set_mempolicy),		"set_mempolicy"		},
@@ -303,7 +304,7 @@
 [1283] = { 4,	TD|TF,		SEN(mknodat),			"mknodat"		},
 [1284] = { 5,	TD|TF,		SEN(fchownat),			"fchownat"		},
 [1285] = { 3,	TD|TF,		SEN(futimesat),			"futimesat"		},
-[1286] = { 4,	TD|TF,		SEN(newfstatat),		"newfstatat"		},
+[1286] = { 4,	TD|TF|TFST|TSTA,SEN(newfstatat),		"newfstatat"		},
 [1287] = { 3,	TD|TF,		SEN(unlinkat),			"unlinkat"		},
 [1288] = { 4,	TD|TF,		SEN(renameat),			"renameat"		},
 [1289] = { 5,	TD|TF,		SEN(linkat),			"linkat"		},
diff --git a/linux/m68k/arch_rt_sigframe.c b/linux/m68k/arch_rt_sigframe.c
new file mode 100644
index 0000000..9ba26e1
--- /dev/null
+++ b/linux/m68k/arch_rt_sigframe.c
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2017 Dmitry V. Levin <ldv@altlinux.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+FUNC_GET_RT_SIGFRAME_ADDR
+{
+	return *m68k_usp_ptr - 4;
+}
diff --git a/linux/m68k/rt_sigframe.h b/linux/m68k/rt_sigframe.h
new file mode 100644
index 0000000..6bb909c
--- /dev/null
+++ b/linux/m68k/rt_sigframe.h
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2017 Dmitry V. Levin <ldv@altlinux.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef STRACE_RT_SIGFRAME_H
+#define STRACE_RT_SIGFRAME_H
+
+#include <signal.h>
+
+typedef struct {
+	char		*pretcode;
+	int		sig;
+	siginfo_t	*pinfo;
+	void		*puc;
+	char		retcode[8];
+	siginfo_t	info;
+	ucontext_t	uc;
+} struct_rt_sigframe;
+
+#endif /* !STRACE_RT_SIGFRAME_H */
diff --git a/linux/m68k/syscallent.h b/linux/m68k/syscallent.h
index 1c33b09..73e6387 100644
--- a/linux/m68k/syscallent.h
+++ b/linux/m68k/syscallent.h
@@ -1,6 +1,7 @@
 /*
  * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
  * Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs@world.std.com>
+ * Copyright (c) 1995-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -44,7 +45,7 @@
 [ 15] = { 2,	TF,		SEN(chmod),			"chmod"			},
 [ 16] = { 3,	TF,		SEN(chown16),			"chown"			},
 [ 17] = { 0,	TM,		SEN(break),			"break"			},
-[ 18] = { 2,	TF,		SEN(oldstat),			"oldstat"		},
+[ 18] = { 2,	TF|TST|TSTA,	SEN(oldstat),			"oldstat"		},
 [ 19] = { 3,	TD,		SEN(lseek),			"lseek"			},
 [ 20] = { 0,	NF,		SEN(getpid),			"getpid"		},
 [ 21] = { 5,	TF,		SEN(mount),			"mount"			},
@@ -54,7 +55,7 @@
 [ 25] = { 1,	0,		SEN(stime),			"stime"			},
 [ 26] = { 4,	0,		SEN(ptrace),			"ptrace"		},
 [ 27] = { 1,	0,		SEN(alarm),			"alarm"			},
-[ 28] = { 2,	TD,		SEN(oldfstat),			"oldfstat"		},
+[ 28] = { 2,	TD|TFST|TSTA,	SEN(oldfstat),			"oldfstat"		},
 [ 29] = { 0,	TS,		SEN(pause),			"pause"			},
 [ 30] = { 2,	TF,		SEN(utime),			"utime"			},
 [ 31] = { 2,	0,		SEN(stty),			"stty"			},
@@ -88,14 +89,14 @@
 [ 59] = { 1,	0,		SEN(oldolduname),		"oldolduname"		},
 [ 60] = { 1,	NF,		SEN(umask),			"umask"			},
 [ 61] = { 1,	TF,		SEN(chroot),			"chroot"		},
-[ 62] = { 2,	0,		SEN(ustat),			"ustat"			},
+[ 62] = { 2,	TSFA,		SEN(ustat),			"ustat"			},
 [ 63] = { 2,	TD,		SEN(dup2),			"dup2"			},
 [ 64] = { 0,	NF,		SEN(getppid),			"getppid"		},
 [ 65] = { 0,	0,		SEN(getpgrp),			"getpgrp"		},
 [ 66] = { 0,	0,		SEN(setsid),			"setsid"		},
 [ 67] = { 3,	TS,		SEN(sigaction),			"sigaction"		},
-[ 68] = { 0,	TS,		SEN(siggetmask),		"sgetmask"		},
-[ 69] = { 1,	TS,		SEN(sigsetmask),		"ssetmask"		},
+[ 68] = { 0,	TS,		SEN(sgetmask),			"sgetmask"		},
+[ 69] = { 1,	TS,		SEN(ssetmask),			"ssetmask"		},
 [ 70] = { 2,	0,		SEN(setreuid16),		"setreuid"		},
 [ 71] = { 2,	0,		SEN(setregid16),		"setregid"		},
 [ 72] = { 3,	TS,		SEN(sigsuspend),		"sigsuspend"		},
@@ -110,7 +111,7 @@
 [ 81] = { 2,	0,		SEN(setgroups16),		"setgroups"		},
 [ 82] = { 1,	TD,		SEN(oldselect),			"select"		},
 [ 83] = { 2,	TF,		SEN(symlink),			"symlink"		},
-[ 84] = { 2,	TF,		SEN(oldlstat),			"oldlstat"		},
+[ 84] = { 2,	TF|TLST|TSTA,	SEN(oldlstat),			"oldlstat"		},
 [ 85] = { 3,	TF,		SEN(readlink),			"readlink"		},
 [ 86] = { 1,	TF,		SEN(uselib),			"uselib"		},
 [ 87] = { 2,	TF,		SEN(swapon),			"swapon"		},
@@ -125,16 +126,16 @@
 [ 96] = { 2,	0,		SEN(getpriority),		"getpriority"		},
 [ 97] = { 3,	0,		SEN(setpriority),		"setpriority"		},
 [ 98] = { 4,	0,		SEN(profil),			"profil"		},
-[ 99] = { 2,	TF,		SEN(statfs),			"statfs"		},
-[100] = { 2,	TD,		SEN(fstatfs),			"fstatfs"		},
+[ 99] = { 2,	TF|TSF|TSFA,	SEN(statfs),			"statfs"		},
+[100] = { 2,	TD|TFSF|TSFA,	SEN(fstatfs),			"fstatfs"		},
 [101] = { 3,	0,		SEN(ioperm),			"ioperm"		},
 [102] = { 2,	TD,		SEN(socketcall),		"socketcall"		},
 [103] = { 3,	0,		SEN(syslog),			"syslog"		},
 [104] = { 3,	0,		SEN(setitimer),			"setitimer"		},
 [105] = { 2,	0,		SEN(getitimer),			"getitimer"		},
-[106] = { 2,	TF,		SEN(stat),			"stat"			},
-[107] = { 2,	TF,		SEN(lstat),			"lstat"			},
-[108] = { 2,	TD,		SEN(fstat),			"fstat"			},
+[106] = { 2,	TF|TST|TSTA,	SEN(stat),			"stat"			},
+[107] = { 2,	TF|TLST|TSTA,	SEN(lstat),			"lstat"			},
+[108] = { 2,	TD|TFST|TSTA,	SEN(fstat),			"fstat"			},
 [109] = { 1,	0,		SEN(olduname),			"olduname"		},
 [110] = { 1,	0,		SEN(iopl),			"iopl"			},
 [111] = { 0,	0,		SEN(vhangup),			"vhangup"		},
@@ -221,9 +222,9 @@
 [192] = { 6,	TD|TM|SI,	SEN(mmap_pgoff),		"mmap2"			},
 [193] = { 3,	TF,		SEN(truncate64),		"truncate64"		},
 [194] = { 3,	TD,		SEN(ftruncate64),		"ftruncate64"		},
-[195] = { 2,	TF,		SEN(stat64),			"stat64"		},
-[196] = { 2,	TF,		SEN(lstat64),			"lstat64"		},
-[197] = { 2,	TD,		SEN(fstat64),			"fstat64"		},
+[195] = { 2,	TF|TST|TSTA,	SEN(stat64),			"stat64"		},
+[196] = { 2,	TF|TLST|TSTA,	SEN(lstat64),			"lstat64"		},
+[197] = { 2,	TD|TFST|TSTA,	SEN(fstat64),			"fstat64"		},
 [198] = { 3,	TF,		SEN(chown),			"chown32"		},
 [199] = { 0,	NF,		SEN(getuid),			"getuid32"		},
 [200] = { 0,	NF,		SEN(getgid),			"getgid32"		},
@@ -288,8 +289,8 @@
 [260] = { 2,	0,		SEN(clock_gettime),		"clock_gettime"		},
 [261] = { 2,	0,		SEN(clock_getres),		"clock_getres"		},
 [262] = { 4,	0,		SEN(clock_nanosleep),		"clock_nanosleep"	},
-[263] = { 3,	TF,		SEN(statfs64),			"statfs64"		},
-[264] = { 3,	TD,		SEN(fstatfs64),			"fstatfs64"		},
+[263] = { 3,	TF|TSF|TSFA,	SEN(statfs64),			"statfs64"		},
+[264] = { 3,	TD|TFSF|TSFA,	SEN(fstatfs64),			"fstatfs64"		},
 [265] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
 [266] = { 2,	TF,		SEN(utimes),			"utimes"		},
 [267] = { 6,	TD,		SEN(fadvise64_64),		"fadvise64_64"		},
@@ -318,7 +319,7 @@
 [290] = { 4,	TD|TF,		SEN(mknodat),			"mknodat"		},
 [291] = { 5,	TD|TF,		SEN(fchownat),			"fchownat"		},
 [292] = { 3,	TD|TF,		SEN(futimesat),			"futimesat"		},
-[293] = { 4,	TD|TF,		SEN(fstatat64),			"fstatat64"		},
+[293] = { 4,	TD|TF|TFST|TSTA,SEN(fstatat64),			"fstatat64"		},
 [294] = { 3,	TD|TF,		SEN(unlinkat),			"unlinkat"		},
 [295] = { 4,	TD|TF,		SEN(renameat),			"renameat"		},
 [296] = { 5,	TD|TF,		SEN(linkat),			"linkat"		},
@@ -404,6 +405,7 @@
 [376] = { 6,	TD,		SEN(copy_file_range),		"copy_file_range"	},
 [377] = { 6,	TD,		SEN(preadv2),			"preadv2"		},
 [378] = { 6,	TD,		SEN(pwritev2),			"pwritev2"		},
+[379] = { 5,	TD|TF|TSTA,	SEN(statx),			"statx"			},
 
 #define SYS_socket_subcall	400
 #include "subcall.h"
diff --git a/linux/metag/arch_regs.c b/linux/metag/arch_regs.c
index e9f0d78..5944723 100644
--- a/linux/metag/arch_regs.c
+++ b/linux/metag/arch_regs.c
@@ -1,3 +1,4 @@
 static struct user_gp_regs metag_regs;
+unsigned long *const metag_sp_ptr = &metag_regs.ax[0][0];
 #define ARCH_REGS_FOR_GETREGSET metag_regs
 #define ARCH_PC_REG metag_regs.pc
diff --git a/linux/metag/arch_regs.h b/linux/metag/arch_regs.h
new file mode 100644
index 0000000..3344c92
--- /dev/null
+++ b/linux/metag/arch_regs.h
@@ -0,0 +1 @@
+extern unsigned long *const metag_sp_ptr;
diff --git a/linux/metag/arch_rt_sigframe.c b/linux/metag/arch_rt_sigframe.c
new file mode 100644
index 0000000..898c5d2
--- /dev/null
+++ b/linux/metag/arch_rt_sigframe.c
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2017 Dmitry V. Levin <ldv@altlinux.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "rt_sigframe.h"
+
+FUNC_GET_RT_SIGFRAME_ADDR
+{
+	return *metag_sp_ptr - sizeof(struct_rt_sigframe);
+}
diff --git a/linux/microblaze/arch_rt_sigframe.c b/linux/microblaze/arch_rt_sigframe.c
new file mode 100644
index 0000000..10d03db
--- /dev/null
+++ b/linux/microblaze/arch_rt_sigframe.c
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2017 Dmitry V. Levin <ldv@altlinux.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+FUNC_GET_RT_SIGFRAME_ADDR
+{
+	unsigned long addr;
+
+	return upeek(tcp->pid, 4 * 1, &addr) ? 0 : addr;
+}
diff --git a/linux/microblaze/arch_sigreturn.c b/linux/microblaze/arch_sigreturn.c
index 6eb7cd8..6e4343a 100644
--- a/linux/microblaze/arch_sigreturn.c
+++ b/linux/microblaze/arch_sigreturn.c
@@ -11,6 +11,6 @@
 	addr += offsetof(struct sigcontext, oldmask);
 
 	tprints("{mask=");
-	print_sigset_addr_len(tcp, addr, NSIG_BYTES);
+	print_sigset_addr(tcp, addr);
 	tprints("}");
 }
diff --git a/linux/microblaze/syscallent.h b/linux/microblaze/syscallent.h
index d71e97a..4f6120f 100644
--- a/linux/microblaze/syscallent.h
+++ b/linux/microblaze/syscallent.h
@@ -1,6 +1,7 @@
 /*
  * Copyright (c) 1993 Branko Lankester <branko@hacktic.nl>
  * Copyright (c) 1993, 1994, 1995 Rick Sladkey <jrs@world.std.com>
+ * Copyright (c) 1995-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -44,7 +45,7 @@
 [ 15] = { 2,	TF,		SEN(chmod),			"chmod"			},
 [ 16] = { 3,	TF,		SEN(chown16),			"lchown"		},
 [ 17] = { 0,	TM,		SEN(break),			"break"			},
-[ 18] = { 2,	TF,		SEN(oldstat),			"oldstat"		},
+[ 18] = { 2,	TF|TST|TSTA,	SEN(oldstat),			"oldstat"		},
 [ 19] = { 3,	TD,		SEN(lseek),			"lseek"			},
 [ 20] = { 0,	NF,		SEN(getpid),			"getpid"		},
 [ 21] = { 5,	TF,		SEN(mount),			"mount"			},
@@ -54,7 +55,7 @@
 [ 25] = { 1,	0,		SEN(stime),			"stime"			},
 [ 26] = { 4,	0,		SEN(ptrace),			"ptrace"		},
 [ 27] = { 1,	0,		SEN(alarm),			"alarm"			},
-[ 28] = { 2,	TD,		SEN(oldfstat),			"oldfstat"		},
+[ 28] = { 2,	TD|TFST|TSTA,	SEN(oldfstat),			"oldfstat"		},
 [ 29] = { 0,	TS,		SEN(pause),			"pause"			},
 [ 30] = { 2,	TF,		SEN(utime),			"utime"			},
 [ 31] = { 2,	0,		SEN(stty),			"stty"			},
@@ -88,14 +89,14 @@
 [ 59] = { 1,	0,		SEN(oldolduname),		"oldolduname"		},
 [ 60] = { 1,	NF,		SEN(umask),			"umask"			},
 [ 61] = { 1,	TF,		SEN(chroot),			"chroot"		},
-[ 62] = { 2,	0,		SEN(ustat),			"ustat"			},
+[ 62] = { 2,	TSFA,		SEN(ustat),			"ustat"			},
 [ 63] = { 2,	TD,		SEN(dup2),			"dup2"			},
 [ 64] = { 0,	NF,		SEN(getppid),			"getppid"		},
 [ 65] = { 0,	0,		SEN(getpgrp),			"getpgrp"		},
 [ 66] = { 0,	0,		SEN(setsid),			"setsid"		},
 [ 67] = { 3,	TS,		SEN(sigaction),			"sigaction"		},
-[ 68] = { 0,	TS,		SEN(siggetmask),		"sgetmask"		},
-[ 69] = { 1,	TS,		SEN(sigsetmask),		"ssetmask"		},
+[ 68] = { 0,	TS,		SEN(sgetmask),			"sgetmask"		},
+[ 69] = { 1,	TS,		SEN(ssetmask),			"ssetmask"		},
 [ 70] = { 2,	0,		SEN(setreuid16),		"setreuid"		},
 [ 71] = { 2,	0,		SEN(setregid16),		"setregid"		},
 [ 72] = { 3,	TS,		SEN(sigsuspend),		"sigsuspend"		},
@@ -110,7 +111,7 @@
 [ 81] = { 2,	0,		SEN(setgroups16),		"setgroups"		},
 [ 82] = { 1,	TD,		SEN(oldselect),			"select"		},
 [ 83] = { 2,	TF,		SEN(symlink),			"symlink"		},
-[ 84] = { 2,	TF,		SEN(oldlstat),			"oldlstat"		},
+[ 84] = { 2,	TF|TLST|TSTA,	SEN(oldlstat),			"oldlstat"		},
 [ 85] = { 3,	TF,		SEN(readlink),			"readlink"		},
 [ 86] = { 1,	TF,		SEN(uselib),			"uselib"		},
 [ 87] = { 2,	TF,		SEN(swapon),			"swapon"		},
@@ -125,16 +126,16 @@
 [ 96] = { 2,	0,		SEN(getpriority),		"getpriority"		},
 [ 97] = { 3,	0,		SEN(setpriority),		"setpriority"		},
 [ 98] = { 4,	0,		SEN(profil),			"profil"		},
-[ 99] = { 2,	TF,		SEN(statfs),			"statfs"		},
-[100] = { 2,	TD,		SEN(fstatfs),			"fstatfs"		},
+[ 99] = { 2,	TF|TSF|TSFA,	SEN(statfs),			"statfs"		},
+[100] = { 2,	TD|TFSF|TSFA,	SEN(fstatfs),			"fstatfs"		},
 [101] = { 3,	0,		SEN(ioperm),			"ioperm"		},
 [102] = { 2,	TD,		SEN(socketcall),		"socketcall"		},
 [103] = { 3,	0,		SEN(syslog),			"syslog"		},
 [104] = { 3,	0,		SEN(setitimer),			"setitimer"		},
 [105] = { 2,	0,		SEN(getitimer),			"getitimer"		},
-[106] = { 2,	TF,		SEN(stat),			"stat"			},
-[107] = { 2,	TF,		SEN(lstat),			"lstat"			},
-[108] = { 2,	TD,		SEN(fstat),			"fstat"			},
+[106] = { 2,	TF|TST|TSTA,	SEN(stat),			"stat"			},
+[107] = { 2,	TF|TLST|TSTA,	SEN(lstat),			"lstat"			},
+[108] = { 2,	TD|TFST|TSTA,	SEN(fstat),			"fstat"			},
 [109] = { 1,	0,		SEN(olduname),			"olduname"		},
 [110] = { 1,	0,		SEN(iopl),			"iopl"			},
 [111] = { 0,	0,		SEN(vhangup),			"vhangup"		},
@@ -221,9 +222,9 @@
 [192] = { 6,	TD|TM|SI,	SEN(mmap_pgoff),		"mmap2"			},
 [193] = { 3,	TF,		SEN(truncate64),		"truncate64"		},
 [194] = { 3,	TD,		SEN(ftruncate64),		"ftruncate64"		},
-[195] = { 2,	TF,		SEN(stat64),			"stat64"		},
-[196] = { 2,	TF,		SEN(lstat64),			"lstat64"		},
-[197] = { 2,	TD,		SEN(fstat64),			"fstat64"		},
+[195] = { 2,	TF|TST|TSTA,	SEN(stat64),			"stat64"		},
+[196] = { 2,	TF|TLST|TSTA,	SEN(lstat64),			"lstat64"		},
+[197] = { 2,	TD|TFST|TSTA,	SEN(fstat64),			"fstat64"		},
 [198] = { 3,	TF,		SEN(chown),			"lchown32"		},
 [199] = { 0,	NF,		SEN(getuid),			"getuid32"		},
 [200] = { 0,	NF,		SEN(getgid),			"getgid32"		},
@@ -293,8 +294,8 @@
 [265] = { 2,	0,		SEN(clock_gettime),		"clock_gettime"		},
 [266] = { 2,	0,		SEN(clock_getres),		"clock_getres"		},
 [267] = { 4,	0,		SEN(clock_nanosleep),		"clock_nanosleep"	},
-[268] = { 3,	TF,		SEN(statfs64),			"statfs64"		},
-[269] = { 3,	TD,		SEN(fstatfs64),			"fstatfs64"		},
+[268] = { 3,	TF|TSF|TSFA,	SEN(statfs64),			"statfs64"		},
+[269] = { 3,	TD|TFSF|TSFA,	SEN(fstatfs64),			"fstatfs64"		},
 [270] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
 [271] = { 2,	TF,		SEN(utimes),			"utimes"		},
 [272] = { 6,	TD,		SEN(fadvise64_64),		"fadvise64_64"		},
@@ -325,7 +326,7 @@
 [297] = { 4,	TD|TF,		SEN(mknodat),			"mknodat"		},
 [298] = { 5,	TD|TF,		SEN(fchownat),			"fchownat"		},
 [299] = { 3,	TD|TF,		SEN(futimesat),			"futimesat"		},
-[300] = { 4,	TD|TF,		SEN(fstatat64),			"fstatat64"		},
+[300] = { 4,	TD|TF|TFST|TSTA,SEN(fstatat64),			"fstatat64"		},
 [301] = { 3,	TD|TF,		SEN(unlinkat),			"unlinkat"		},
 [302] = { 4,	TD|TF,		SEN(renameat),			"renameat"		},
 [303] = { 5,	TD|TF,		SEN(linkat),			"linkat"		},
diff --git a/linux/mips/arch_rt_sigframe.c b/linux/mips/arch_rt_sigframe.c
new file mode 100644
index 0000000..03acc73
--- /dev/null
+++ b/linux/mips/arch_rt_sigframe.c
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2017 Dmitry V. Levin <ldv@altlinux.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+FUNC_GET_RT_SIGFRAME_ADDR
+{
+	return mips_REG_SP;
+}
diff --git a/linux/mips/arch_sigreturn.c b/linux/mips/arch_sigreturn.c
index 72f7619..522b731 100644
--- a/linux/mips/arch_sigreturn.c
+++ b/linux/mips/arch_sigreturn.c
@@ -1,26 +1,17 @@
 static void
 arch_sigreturn(struct tcb *tcp)
 {
-#if defined LINUX_MIPSO32
+	/* 64-bit ABIs do not have old sigreturn. */
+#ifdef LINUX_MIPSO32
 	/*
 	 * offsetof(struct sigframe, sf_mask) ==
 	 * sizeof(sf_ass) + sizeof(sf_pad) + sizeof(struct sigcontext)
 	 */
 	const kernel_ulong_t addr = mips_REG_SP + 6 * 4 +
 				   sizeof(struct sigcontext);
-#else
-	/*
-	 * This decodes rt_sigreturn.
-	 * The 64-bit ABIs do not have sigreturn.
-	 *
-	 * offsetof(struct rt_sigframe, rs_uc) ==
-	 * sizeof(sf_ass) + sizeof(sf_pad) + sizeof(struct siginfo)
-	 */
-	const kernel_ulong_t addr = mips_REG_SP + 6 * 4 + 128 +
-				   offsetof(struct ucontext, uc_sigmask);
-#endif
 
 	tprints("{mask=");
-	print_sigset_addr_len(tcp, addr, NSIG_BYTES);
+	print_sigset_addr(tcp, addr);
 	tprints("}");
+#endif
 }
diff --git a/linux/mips/rt_sigframe.h b/linux/mips/rt_sigframe.h
new file mode 100644
index 0000000..e07bcd1
--- /dev/null
+++ b/linux/mips/rt_sigframe.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2017 Dmitry V. Levin <ldv@altlinux.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef STRACE_RT_SIGFRAME_H
+#define STRACE_RT_SIGFRAME_H
+
+#include <signal.h>
+
+typedef struct {
+	uint32_t	pad[6];
+	siginfo_t	info;
+	ucontext_t	uc;
+} struct_rt_sigframe;
+
+#endif /* !STRACE_RT_SIGFRAME_H */
diff --git a/linux/mips/syscallent-compat.h b/linux/mips/syscallent-compat.h
index 82a373b..d8b309d 100644
--- a/linux/mips/syscallent-compat.h
+++ b/linux/mips/syscallent-compat.h
@@ -16,7 +16,7 @@
 [  15] = { 0,	0,	SEN(printargs),		"svr4_chmod"	},
 [  16] = { 0,	0,	SEN(printargs),		"svr4_chown"	},
 [  17] = { 0,	TM,	SEN(printargs),		"svr4_sbreak"	},
-[  18] = { 0,	0,	SEN(printargs),		"svr4_stat"	},
+[  18] = { 0,	TF|TST|TSTA,SEN(printargs),		"svr4_stat"	},
 [  19] = { 0,	0,	SEN(printargs),		"svr4_lseek"	},
 [  20] = { 0,	0,	SEN(printargs),		"svr4_getpid"	},
 [  21] = { 0,	0,	SEN(printargs),		"svr4_mount"	},
@@ -26,17 +26,17 @@
 [  25] = { 0,	0,	SEN(printargs),		"svr4_stime"	},
 [  26] = { 0,	0,	SEN(printargs),		"svr4_ptrace"	},
 [  27] = { 0,	0,	SEN(printargs),		"svr4_alarm"	},
-[  28] = { 0,	0,	SEN(printargs),		"svr4_fstat"	},
+[  28] = { 0,	TD|TFST|TSTA,SEN(printargs),		"svr4_fstat"	},
 [  29] = { 0,	0,	SEN(printargs),		"svr4_pause"	},
 [  30] = { 0,	0,	SEN(printargs),		"svr4_utime"	},
 [  31] = { 0,	0,	SEN(printargs),		"svr4_stty"	},
 [  32] = { 0,	0,	SEN(printargs),		"svr4_gtty"	},
 [  33] = { 0,	0,	SEN(printargs),		"svr4_access"	},
 [  34] = { 0,	0,	SEN(printargs),		"svr4_nice"	},
-[  35] = { 0,	0,	SEN(printargs),		"svr4_statfs"	},
+[  35] = { 0,	TF|TSF|TSFA,SEN(printargs),		"svr4_statfs"	},
 [  36] = { 0,	0,	SEN(printargs),		"svr4_sync"	},
 [  37] = { 0,	0,	SEN(printargs),		"svr4_kill"	},
-[  38] = { 0,	0,	SEN(printargs),		"svr4_fstatfs"	},
+[  38] = { 0,	TD|TFSF|TSFA,SEN(printargs),		"svr4_fstatfs"	},
 [  39] = { 0,	0,	SEN(printargs),		"svr4_setpgrp"	},
 [  40] = { 0,	0,	SEN(printargs),		"svr4_cxenix"	},
 [  41] = { 0,	0,	SEN(printargs),		"svr4_dup"	},
@@ -81,7 +81,7 @@
 [  85] = { 0,	0,	SEN(printargs),		"svr4_getmsg"	},
 [  86] = { 0,	0,	SEN(printargs),		"svr4_putmsg"	},
 [  87] = { 0,	0,	SEN(printargs),		"svr4_poll"	},
-[  88] = { 0,	0,	SEN(printargs),		"svr4_lstat"	},
+[  88] = { 0,	TF|TLST|TSTA,SEN(printargs),		"svr4_lstat"	},
 [  89] = { 0,	0,	SEN(printargs),		"svr4_symlink"	},
 [  90] = { 0,	0,	SEN(printargs),		"svr4_readlink"	},
 [  91] = { 0,	0,	SEN(printargs),		"svr4_setgroups"	},
@@ -96,8 +96,8 @@
 [ 100] = { 0,	0,	SEN(printargs),		"svr4_setcontext"	},
 [ 101] = { 0,	0,	SEN(printargs),		"svr4_evsys"	},
 [ 102] = { 0,	0,	SEN(printargs),		"svr4_evtrapret"	},
-[ 103] = { 0,	0,	SEN(printargs),		"svr4_statvfs"	},
-[ 104] = { 0,	0,	SEN(printargs),		"svr4_fstatvfs"	},
+[ 103] = { 0,	TF|TSF|TSFA,SEN(printargs),		"svr4_statvfs"	},
+[ 104] = { 0,	TD|TFSF|TSFA,SEN(printargs),		"svr4_fstatvfs"	},
 [ 105] = { },
 [ 106] = { 0,	0,	SEN(printargs),		"svr4_nfssys"	},
 [ 107] = { 0,	0,	SEN(printargs),		"svr4_waitid"	},
@@ -116,9 +116,9 @@
 [ 120] = { 0,	0,	SEN(printargs),		"svr4_fchdir"	},
 [ 121] = { 0,	0,	SEN(printargs),		"svr4_readv"	},
 [ 122] = { 0,	0,	SEN(printargs),		"svr4_writev"	},
-[ 123] = { 0,	0,	SEN(printargs),		"svr4_xstat"	},
-[ 124] = { 0,	0,	SEN(printargs),		"svr4_lxstat"	},
-[ 125] = { 0,	0,	SEN(printargs),		"svr4_fxstat"	},
+[ 123] = { 0,	TF|TST|TSTA,SEN(printargs),		"svr4_xstat"	},
+[ 124] = { 0,	TF|TLST|TSTA,SEN(printargs),		"svr4_lxstat"	},
+[ 125] = { 0,	TD|TFST|TSTA,SEN(printargs),		"svr4_fxstat"	},
 [ 126] = { 0,	0,	SEN(printargs),		"svr4_xmknod"	},
 [ 127] = { 0,	0,	SEN(printargs),		"svr4_clocal"	},
 [ 128] = { 0,	0,	SEN(printargs),		"svr4_setrlimit"	},
@@ -167,7 +167,7 @@
 [1015] = { 0,	0,	SEN(printargs),		"sysv_chmod"	},
 [1016] = { 0,	0,	SEN(printargs),		"sysv_chown"	},
 [1017] = { 0,	TM|SI,	SEN(printargs),		"sysv_brk"	},
-[1018] = { 0,	0,	SEN(printargs),		"sysv_stat"	},
+[1018] = { 0,	TF|TST|TSTA,SEN(printargs),		"sysv_stat"	},
 [1019] = { 0,	0,	SEN(printargs),		"sysv_lseek"	},
 [1020] = { 0,	0,	SEN(printargs),		"sysv_getpid"	},
 [1021] = { 0,	0,	SEN(printargs),		"sysv_mount"	},
@@ -177,17 +177,17 @@
 [1025] = { 0,	0,	SEN(printargs),		"sysv_stime"	},
 [1026] = { 0,	0,	SEN(printargs),		"sysv_ptrace"	},
 [1027] = { 0,	0,	SEN(printargs),		"sysv_alarm"	},
-[1028] = { 0,	0,	SEN(printargs),		"sysv_fstat"	},
+[1028] = { 0,	TD|TFST|TSTA,SEN(printargs),		"sysv_fstat"	},
 [1029] = { 0,	0,	SEN(printargs),		"sysv_pause"	},
 [1030] = { 0,	0,	SEN(printargs),		"sysv_utime"	},
 [1031] = { 0,	0,	SEN(printargs),		"sysv_stty"	},
 [1032] = { 0,	0,	SEN(printargs),		"sysv_gtty"	},
 [1033] = { 0,	0,	SEN(printargs),		"sysv_access"	},
 [1034] = { 0,	0,	SEN(printargs),		"sysv_nice"	},
-[1035] = { 0,	0,	SEN(printargs),		"sysv_statfs"	},
+[1035] = { 0,	TF|TSF|TSFA,SEN(printargs),		"sysv_statfs"	},
 [1036] = { 0,	0,	SEN(printargs),		"sysv_sync"	},
 [1037] = { 0,	0,	SEN(printargs),		"sysv_kill"	},
-[1038] = { 0,	0,	SEN(printargs),		"sysv_fstatfs"	},
+[1038] = { 0,	TD|TFSF|TSFA,SEN(printargs),		"sysv_fstatfs"	},
 [1039] = { 0,	0,	SEN(printargs),		"sysv_setpgrp"	},
 [1040] = { 0,	0,	SEN(printargs),		"sysv_syssgi"	},
 [1041] = { 0,	0,	SEN(printargs),		"sysv_dup"	},
@@ -261,7 +261,7 @@
 [1114] = { 0,	0,	SEN(printargs),		"sysv_rename"	},
 [1115] = { 0,	0,	SEN(printargs),		"sysv_symlink"	},
 [1116] = { 0,	0,	SEN(printargs),		"sysv_readlink"	},
-[1117] = { 0,	0,	SEN(printargs),		"sysv_lstat"	},
+[1117] = { 0,	TF|TLST|TSTA,SEN(printargs),		"sysv_lstat"	},
 [1118] = { 0,	0,	SEN(printargs),		"sysv_nfsmount"	},
 [1119] = { 0,	0,	SEN(printargs),		"sysv_nfssvc"	},
 [1120] = { 0,	0,	SEN(printargs),		"sysv_getfh"	},
@@ -302,9 +302,9 @@
 [1155] = { 0,	0,	SEN(printargs),		"sysv_socketpair"	},
 [1156] = { 0,	0,	SEN(printargs),		"sysv_sysinfo"	},
 [1157] = { 0,	0,	SEN(printargs),		"sysv_nuname"	},
-[1158] = { 0,	0,	SEN(printargs),		"sysv_xstat"	},
-[1159] = { 0,	0,	SEN(printargs),		"sysv_lxstat"	},
-[1160] = { 0,	0,	SEN(printargs),		"sysv_fxstat"	},
+[1158] = { 0,	TF|TST|TSTA,SEN(printargs),		"sysv_xstat"	},
+[1159] = { 0,	TF|TLST|TSTA,SEN(printargs),		"sysv_lxstat"	},
+[1160] = { 0,	TD|TFST|TSTA,SEN(printargs),		"sysv_fxstat"	},
 [1161] = { 0,	0,	SEN(printargs),		"sysv_xmknod"	},
 [1162] = { 0,	0,	SEN(printargs),		"sysv_ksigaction"	},
 [1163] = { 0,	0,	SEN(printargs),		"sysv_sigpending"	},
@@ -318,8 +318,8 @@
 [1171] = { 0,	0,	SEN(printargs),		"sysv_sigstack"	},
 [1172] = { 0,	0,	SEN(printargs),		"sysv_sigaltstack"	},
 [1173] = { 0,	0,	SEN(printargs),		"sysv_sigsendset"	},
-[1174] = { 0,	0,	SEN(printargs),		"sysv_statvfs"	},
-[1175] = { 0,	0,	SEN(printargs),		"sysv_fstatvfs"	},
+[1174] = { 0,	TF|TSF|TSFA,SEN(printargs),		"sysv_statvfs"	},
+[1175] = { 0,	TD|TFSF|TSFA,SEN(printargs),		"sysv_fstatvfs"	},
 [1176] = { 0,	0,	SEN(printargs),		"sysv_getpmsg"	},
 [1177] = { 0,	0,	SEN(printargs),		"sysv_putpmsg"	},
 [1178] = { 0,	0,	SEN(printargs),		"sysv_lchown"	},
@@ -352,7 +352,7 @@
 [2015] = { 0,	0,	SEN(printargs),		"bsd43_chmod"	},
 [2016] = { 0,	0,	SEN(printargs),		"bsd43_chown"	},
 [2017] = { 0,	TM,	SEN(printargs),		"bsd43_sbreak"	},
-[2018] = { 0,	0,	SEN(printargs),		"bsd43_oldstat"	},
+[2018] = { 0,	TF|TST|TSTA,SEN(printargs),		"bsd43_oldstat"	},
 [2019] = { 0,	0,	SEN(printargs),		"bsd43_lseek"	},
 [2020] = { 0,	0,	SEN(printargs),		"bsd43_getpid"	},
 [2021] = { 0,	0,	SEN(printargs),		"bsd43_oldmount"	},
@@ -362,7 +362,7 @@
 [2025] = { 0,	0,	SEN(printargs),		"bsd43_stime"	},
 [2026] = { 0,	0,	SEN(printargs),		"bsd43_ptrace"	},
 [2027] = { 0,	0,	SEN(printargs),		"bsd43_alarm"	},
-[2028] = { 0,	0,	SEN(printargs),		"bsd43_oldfstat"	},
+[2028] = { 0,	TD|TFST|TSTA,SEN(printargs),		"bsd43_oldfstat"	},
 [2029] = { 0,	0,	SEN(printargs),		"bsd43_pause"	},
 [2030] = { 0,	0,	SEN(printargs),		"bsd43_utime"	},
 [2031] = { 0,	0,	SEN(printargs),		"bsd43_stty"	},
@@ -372,9 +372,9 @@
 [2035] = { 0,	0,	SEN(printargs),		"bsd43_ftime"	},
 [2036] = { 0,	0,	SEN(printargs),		"bsd43_sync"	},
 [2037] = { 0,	0,	SEN(printargs),		"bsd43_kill"	},
-[2038] = { 0,	0,	SEN(printargs),		"bsd43_stat"	},
+[2038] = { 0,	TF|TST|TSTA,SEN(printargs),		"bsd43_stat"	},
 [2039] = { 0,	0,	SEN(printargs),		"bsd43_oldsetpgrp"	},
-[2040] = { 0,	0,	SEN(printargs),		"bsd43_lstat"	},
+[2040] = { 0,	TF|TLST|TSTA,SEN(printargs),		"bsd43_lstat"	},
 [2041] = { 0,	0,	SEN(printargs),		"bsd43_dup"	},
 [2042] = { 0,	0,	SEN(printargs),		"bsd43_pipe"	},
 [2043] = { 0,	0,	SEN(printargs),		"bsd43_times"	},
@@ -396,7 +396,7 @@
 [2059] = { 0,	0,	SEN(printargs),		"bsd43_execve"	},
 [2060] = { 0,	0,	SEN(printargs),		"bsd43_umask"	},
 [2061] = { 0,	0,	SEN(printargs),		"bsd43_chroot"	},
-[2062] = { 0,	0,	SEN(printargs),		"bsd43_fstat"	},
+[2062] = { 0,	TD|TFST|TSTA,SEN(printargs),		"bsd43_fstat"	},
 [2063] = { },
 [2064] = { 0,	0,	SEN(printargs),		"bsd43_getpagesize"	},
 [2065] = { 0,	TM|SI,	SEN(printargs),		"bsd43_mremap"	},
@@ -494,8 +494,8 @@
 [2157] = { 0,	0,	SEN(printargs),		"bsd43_nfs_mount"	},
 [2158] = { 0,	0,	SEN(printargs),		"bsd43_nfs_svc"	},
 [2159] = { 0,	0,	SEN(printargs),		"bsd43_getdirentries"	},
-[2160] = { 0,	0,	SEN(printargs),		"bsd43_statfs"	},
-[2161] = { 0,	0,	SEN(printargs),		"bsd43_fstatfs"	},
+[2160] = { 0,	TF|TSF|TSFA,SEN(printargs),		"bsd43_statfs"	},
+[2161] = { 0,	TD|TFSF|TSFA,SEN(printargs),		"bsd43_fstatfs"	},
 [2162] = { 0,	0,	SEN(printargs),		"bsd43_unmount"	},
 [2163] = { 0,	0,	SEN(printargs),		"bsd43_async_daemon"	},
 [2164] = { 0,	0,	SEN(printargs),		"bsd43_nfs_getfh"	},
@@ -545,7 +545,7 @@
 [3015] = { 0,	0,	SEN(printargs),		"posix_chmod"	},
 [3016] = { 0,	0,	SEN(printargs),		"posix_chown"	},
 [3017] = { 0,	TM,	SEN(printargs),		"posix_sbreak"	},
-[3018] = { 0,	0,	SEN(printargs),		"posix_stat"	},
+[3018] = { 0,	TF|TST|TSTA,SEN(printargs),		"posix_stat"	},
 [3019] = { 0,	0,	SEN(printargs),		"posix_lseek"	},
 [3020] = { 0,	0,	SEN(printargs),		"posix_getpid"	},
 [3021] = { 0,	0,	SEN(printargs),		"posix_mount"	},
@@ -555,17 +555,17 @@
 [3025] = { 0,	0,	SEN(printargs),		"posix_stime"	},
 [3026] = { 0,	0,	SEN(printargs),		"posix_ptrace"	},
 [3027] = { 0,	0,	SEN(printargs),		"posix_alarm"	},
-[3028] = { 0,	0,	SEN(printargs),		"posix_fstat"	},
+[3028] = { 0,	TD|TFST|TSTA,SEN(printargs),		"posix_fstat"	},
 [3029] = { 0,	0,	SEN(printargs),		"posix_pause"	},
 [3030] = { 0,	0,	SEN(printargs),		"posix_utime"	},
 [3031] = { 0,	0,	SEN(printargs),		"posix_stty"	},
 [3032] = { 0,	0,	SEN(printargs),		"posix_gtty"	},
 [3033] = { 0,	0,	SEN(printargs),		"posix_access"	},
 [3034] = { 0,	0,	SEN(printargs),		"posix_nice"	},
-[3035] = { 0,	0,	SEN(printargs),		"posix_statfs"	},
+[3035] = { 0,	TF|TSF|TSFA,SEN(printargs),		"posix_statfs"	},
 [3036] = { 0,	0,	SEN(printargs),		"posix_sync"	},
 [3037] = { 0,	0,	SEN(printargs),		"posix_kill"	},
-[3038] = { 0,	0,	SEN(printargs),		"posix_fstatfs"	},
+[3038] = { 0,	TD|TFSF|TSFA,SEN(printargs),		"posix_fstatfs"	},
 [3039] = { 0,	0,	SEN(printargs),		"posix_getpgrp"	},
 [3040] = { 0,	0,	SEN(printargs),		"posix_syssgi"	},
 [3041] = { 0,	0,	SEN(printargs),		"posix_dup"	},
@@ -639,7 +639,7 @@
 [3114] = { 0,	0,	SEN(printargs),		"posix_rename"	},
 [3115] = { 0,	0,	SEN(printargs),		"posix_symlink"	},
 [3116] = { 0,	0,	SEN(printargs),		"posix_readlink"	},
-[3117] = { 0,	0,	SEN(printargs),		"posix_lstat"	},
+[3117] = { 0,	TF|TLST|TSTA,SEN(printargs),		"posix_lstat"	},
 [3118] = { 0,	0,	SEN(printargs),		"posix_nfs_mount"	},
 [3119] = { 0,	0,	SEN(printargs),		"posix_nfs_svc"	},
 [3120] = { 0,	0,	SEN(printargs),		"posix_nfs_getfh"	},
diff --git a/linux/mips/syscallent-n32-stub.h b/linux/mips/syscallent-n32-stub.h
index 00b6659..4cfa682 100644
--- a/linux/mips/syscallent-n32-stub.h
+++ b/linux/mips/syscallent-n32-stub.h
@@ -2,9 +2,9 @@
 [6001] = { 3,	TD,		SEN(printargs), "n32:write"			},
 [6002] = { 3,	TD|TF,		SEN(printargs), "n32:open"			},
 [6003] = { 1,	TD,		SEN(printargs), "n32:close"			},
-[6004] = { 2,	TF,		SEN(printargs), "n32:stat"			},
-[6005] = { 2,	TD,		SEN(printargs), "n32:fstat"			},
-[6006] = { 2,	TF,		SEN(printargs), "n32:lstat"			},
+[6004] = { 2,	TF|TST|TSTA,	SEN(printargs), "n32:stat"			},
+[6005] = { 2,	TD|TFST|TSTA,	SEN(printargs), "n32:fstat"			},
+[6006] = { 2,	TF|TLST|TSTA,	SEN(printargs), "n32:lstat"			},
 [6007] = { 3,	TD,		SEN(printargs), "n32:poll"			},
 [6008] = { 3,	TD,		SEN(printargs), "n32:lseek"			},
 [6009] = { 6,	TD|TM|SI,	SEN(printargs), "n32:mmap"			},
@@ -131,9 +131,9 @@
 [6130] = { 2,	TF,		SEN(printargs), "n32:utime"			},
 [6131] = { 3,	TF,		SEN(printargs), "n32:mknod"			},
 [6132] = { 1,	NF,		SEN(printargs), "n32:personality"		},
-[6133] = { 2,	0,		SEN(printargs), "n32:ustat"			},
-[6134] = { 2,	TF,		SEN(printargs), "n32:statfs"		},
-[6135] = { 2,	TD,		SEN(printargs), "n32:fstatfs"		},
+[6133] = { 2,	TSFA,		SEN(printargs), "n32:ustat"			},
+[6134] = { 2,	TF|TSF|TSFA,	SEN(printargs), "n32:statfs"		},
+[6135] = { 2,	TD|TFSF|TSFA,	SEN(printargs), "n32:fstatfs"		},
 [6136] = { 3,	0,		SEN(printargs), "n32:sysfs"			},
 [6137] = { 2,	0,		SEN(printargs), "n32:getpriority"		},
 [6138] = { 3,	0,		SEN(printargs), "n32:setpriority"		},
@@ -215,8 +215,8 @@
 [6214] = { 0,	0,		SEN(printargs), "n32:restart_syscall"	},
 [6215] = { 4,	TI,		SEN(printargs), "n32:semtimedop"		},
 [6216] = { 4,	TD,		SEN(printargs), "n32:fadvise64"		},
-[6217] = { 3,	TF,		SEN(printargs), "n32:statfs64"		},
-[6218] = { 3,	TD,		SEN(printargs), "n32:fstatfs64"		},
+[6217] = { 3,	TF|TSF|TSFA,	SEN(printargs), "n32:statfs64"		},
+[6218] = { 3,	TD|TFSF|TSFA,	SEN(printargs), "n32:fstatfs64"		},
 [6219] = { 4,	TD|TN,		SEN(printargs), "n32:sendfile64"		},
 [6220] = { 3,	0,		SEN(printargs), "n32:timer_create"		},
 [6221] = { 4,	0,		SEN(printargs), "n32:timer_settime"		},
@@ -254,7 +254,7 @@
 [6253] = { 4,	TD|TF,		SEN(printargs), "n32:mknodat"		},
 [6254] = { 5,	TD|TF,		SEN(printargs), "n32:fchownat"		},
 [6255] = { 3,	TD|TF,		SEN(printargs), "n32:futimesat"		},
-[6256] = { 4,	TD|TF,		SEN(printargs), "n32:newfstatat"		},
+[6256] = { 4,	TD|TF|TFST|TSTA,SEN(printargs), "n32:newfstatat"		},
 [6257] = { 3,	TD|TF,		SEN(printargs), "n32:unlinkat"		},
 [6258] = { 4,	TD|TF,		SEN(printargs), "n32:renameat"		},
 [6259] = { 5,	TD|TF,		SEN(printargs), "n32:linkat"		},
@@ -328,3 +328,4 @@
 [6327] = { 4,	TM|SI,		SEN(printargs), "n32:pkey_mprotect"		},
 [6328] = { 2,	0,		SEN(printargs), "n32:pkey_alloc"		},
 [6329] = { 1,	0,		SEN(printargs), "n32:pkey_free"		},
+[6330] = { 5,	TD|TF|TSTA,	SEN(printargs), "n32:statx"			},
diff --git a/linux/mips/syscallent-n32.h b/linux/mips/syscallent-n32.h
index c93c33b..73cbc9b 100644
--- a/linux/mips/syscallent-n32.h
+++ b/linux/mips/syscallent-n32.h
@@ -4,9 +4,9 @@
 [6001] = { 3,	TD,		SEN(write),			"write"			},
 [6002] = { 3,	TD|TF,		SEN(open),			"open"			},
 [6003] = { 1,	TD,		SEN(close),			"close"			},
-[6004] = { 2,	TF,		SEN(stat64),			"stat"			},
-[6005] = { 2,	TD,		SEN(fstat64),			"fstat"			},
-[6006] = { 2,	TF,		SEN(lstat64),			"lstat"			},
+[6004] = { 2,	TF|TST|TSTA,	SEN(stat64),			"stat"			},
+[6005] = { 2,	TD|TFST|TSTA,	SEN(fstat64),			"fstat"			},
+[6006] = { 2,	TF|TLST|TSTA,	SEN(lstat64),			"lstat"			},
 [6007] = { 3,	TD,		SEN(poll),			"poll"			},
 [6008] = { 3,	TD,		SEN(lseek),			"lseek"			},
 [6009] = { 6,	TD|TM|SI,	SEN(mmap),			"mmap"			},
@@ -133,9 +133,9 @@
 [6130] = { 2,	TF,		SEN(utime),			"utime"			},
 [6131] = { 3,	TF,		SEN(mknod),			"mknod"			},