diff --git a/Android.mk b/Android.mk
index c348c1a..b2a8fcf 100644
--- a/Android.mk
+++ b/Android.mk
@@ -16,32 +16,10 @@
 
 LOCAL_PATH := $(call my-dir)
 
-#
-# To update:
-#
-
-#  repo sync .
-#  repo start merge .
-#  git merge aosp/upstream-master --no-ff # resolve any conflicts
-#  ./configure && make
-#  mm -j32
-#  # (Make any necessary Android.mk changes and test the new strace.)
-#  # Beware the .gitignore files --- xlat especially.
-#  git commit -a --amend
-#
-
-# We don't currently have a good solution for the 'configure' side of things.
-# You can get a list of the HAVE_* variables in use and manually go through it:
-#
-#   find . -name "*.[ch]" | xargs grep HAVE_ | sed 's/.*\(HAVE_[A-Z0-9_]*\).*/\1/p' | grep -v HAVE_DECL_ | sort | uniq -d
-
-# -------------------------------------------------------------------------
+ifneq ($(strip $(TARGET_ARCH)),mips)
 
 include $(CLEAR_VARS)
 
-strace_version := "4.17"
-strace_year := "2017"
-
 LOCAL_SRC_FILES := \
     access.c \
     affinity.c \
@@ -60,6 +38,8 @@
     desc.c \
     dirent.c \
     dirent64.c \
+    dm.c \
+    dyxlat.c \
     epoll.c \
     evdev.c \
     eventfd.c \
@@ -120,6 +100,8 @@
     mtd.c \
     net.c \
     netlink.c \
+    netlink_sock_diag.c \
+    nlattr.c \
     nsfs.c \
     numa.c \
     oldstat.c \
@@ -206,112 +188,15 @@
     v4l2.c \
     wait.c \
     xattr.c \
+    xlat.c \
     xmalloc.c \
 
-LOCAL_CFLAGS := \
-    -DGETGROUPS_T=gid_t \
-    \
-    -UHAVE_ASM_CACHECTL_H \
-    -DHAVE_ASM_SIGCONTEXT_H=1 \
-    -DHAVE_BLKGETSIZE64=1 \
-    -UHAVE_BLUETOOTH_BLUETOOTH_H \
-    -DHAVE___BUILTIN_POPCOUNT=1 \
-    -DHAVE_DIRENT_H=1 \
-    -DHAVE_DLADDR=1 \
-    -DHAVE_ELF_H=1 \
-    -DHAVE_FOPEN64=1 \
-    -DHAVE_FORK=1 \
-    -DHAVE_FSTATAT=1 \
-    -DHAVE_FTRUNCATE=1 \
-    -DHAVE_FUTIMENS=1 \
-    -DHAVE_IF_INDEXTONAME=1 \
-    -DHAVE_INET_NTOP=1 \
-    -DHAVE_INET_PTON=1 \
-    -DHAVE_INTTYPES_H=1 \
-    -DHAVE_LINUX_BPF_H=1 \
-    -DHAVE_LINUX_BSG_H=1 \
-    -DHAVE_LINUX_BTRFS_H=1 \
-    -DHAVE_LINUX_FALLOC_H=1 \
-    -DHAVE_LINUX_FILTER_H=1 \
-    -DHAVE_LINUX_FUTEX_H=1 \
-    -DHAVE_LINUX_ICMP_H=1 \
-    -DHAVE_LINUX_IF_PACKET_H=1 \
-    -DHAVE_LINUX_INPUT_H=1 \
-    -DHAVE_LINUX_IN6_H=1 \
-    -DHAVE_LINUX_IPC_H=1 \
-    -DHAVE_LINUX_MQUEUE=1 \
-    -DHAVE_LINUX_MSG_H=1 \
-    -DHAVE_LINUX_NETLINK_H=1 \
-    -DHAVE_LINUX_PERF_EVENT_H=1 \
-    -DHAVE_LINUX_SEM_H=1 \
-    -DHAVE_LINUX_SHM_H=1 \
-    -DHAVE_LITTLE_ENDIAN_LONG_LONG=1 \
-    -DHAVE_LONG_LONG=1 \
-    -DHAVE_NETINET_TCP_H=1 \
-    -DHAVE_NETINET_UDP_H=1 \
-    -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 \
-    -DHAVE_SIGINFO_T=1 \
-    -DHAVE_SIGINFO_T_SI_OVERRUN=1 \
-    -DHAVE_SIGINFO_T_SI_SYSCALL=1 \
-    -DHAVE_SIGINFO_T_SI_TIMERID=1 \
-    -DHAVE_STATFS64=1 \
-    -DHAVE_STDBOOL_H=1 \
-    -DHAVE_STRERROR=1 \
-    -DHAVE_STRUCT_BTRFS_IOCTL_DEFRAG_RANGE_ARGS_START=1 \
-    -DHAVE_STRUCT_BTRFS_IOCTL_FEATURE_FLAGS_COMPAT_FLAGS=1 \
-    -DHAVE_STRUCT_FLOCK=1 \
-    -DHAVE_STRUCT_FLOCK64=1 \
-    -DHAVE_STRUCT_MMSGHDR=1 \
-    -DHAVE_STRUCT_MSGHDR_MSG_CONTROL=1 \
-    -DHAVE_STRUCT_SIGCONTEXT=1 \
-    -DHAVE_STRUCT_SIGEVENT__SIGEV_UN__PAD=1 \
-    -DHAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID=1 \
-    -DHAVE_STRUCT_STATFS64=1 \
-    -UHAVE_STRUCT_STAT_ST_ACLCNT \
-    -DHAVE_STRUCT_STAT_ST_BLKSIZE=1 \
-    -DHAVE_STRUCT_STAT_ST_BLOCKS=1 \
-    -UHAVE_STRUCT_STAT_ST_FLAGS \
-    -UHAVE_STRUCT_STAT_ST_FSTYPE \
-    -UHAVE_STRUCT_STAT_ST_GEN \
-    -UHAVE_STRUCT_STAT_ST_LEVEL \
-    -DHAVE_STRUCT_STAT_ST_RDEV=1 \
-    -DHAVE_STRUCT_SYSINFO_FREEHIGH=1 \
-    -DHAVE_STRUCT_SYSINFO_MEM_UNIT=1 \
-    -DHAVE_STRUCT_SYSINFO_TOTALHIGH=1 \
-    -DHAVE_STRUCT_UTSNAME_DOMAINNAME=1 \
-    -DHAVE_SYS_EPOLL_H=1 \
-    -DHAVE_SYS_IOCTL_H=1 \
-    -DHAVE_SYS_POLL_H=1 \
-    -DHAVE_SYS_REG_H=1 \
-    -DHAVE_SYS_VFS_H=1 \
-    -DHAVE_SYS_XATTR_H=1 \
-    -DHAVE_UNISTD_H=1 \
-    -DHAVE_UTIMENSAT=1 \
-    \
-    -DMAJOR_IN_SYSMACROS \
-    -DPACKAGE_NAME='"strace"' \
-    -DPACKAGE_URL='"https://strace.io"' \
-    -DPACKAGE_VERSION='$(strace_version)' \
-    -DCOPYRIGHT_YEAR='$(strace_year)' \
-    -DSIZEOF_KERNEL_LONG_T=SIZEOF_LONG \
-    -DSIZEOF_OFF_T=SIZEOF_LONG \
-    -DSIZEOF_LONG_LONG=8 \
-    -DSTDC_HEADERS=1 \
-    -DSTRACE_KNOWS_ONLY_EABI=1 \
-    -D_LFS64_LARGEFILE=1 \
-
-LOCAL_CFLAGS += -D_GNU_SOURCE=1 -D_POSIX_SOURCE=1
-
-LOCAL_CFLAGS += -fno-strict-aliasing
-
-LOCAL_CFLAGS_32 += -DSIZEOF_LONG=4 -DSIZEOF_RLIM_T=4 -DHAVE_STRUCT_STAT64=1
-LOCAL_CFLAGS_64 += -DSIZEOF_LONG=8 -DSIZEOF_RLIM_T=8
+# We have "config.h", but since we're using one file for both LP32 and LP64,
+# we need to set the hard-coded size #defines here instead.
+LOCAL_CFLAGS := -DHAVE_CONFIG_H
+LOCAL_CFLAGS_32 += -DSIZEOF_LONG_LONG=8 -DSIZEOF_LONG=4 -DSIZEOF_RLIM_T=4 -DHAVE_STRUCT_STAT64=1
+LOCAL_CFLAGS_64 += -DSIZEOF_LONG_LONG=8 -DSIZEOF_LONG=8 -DSIZEOF_RLIM_T=8
+LOCAL_CFLAGS += -DSIZEOF_KERNEL_LONG_T=SIZEOF_LONG -DSIZEOF_OFF_T=SIZEOF_LONG
 
 LOCAL_CFLAGS_arm += -DARM=1
 LOCAL_CFLAGS_arm += -DHAVE_STRUCT___OLD_KERNEL_STAT=1
@@ -331,12 +216,12 @@
 
 LOCAL_CFLAGS += \
     -Wall \
-    -Wwrite-strings \
-    -Wsign-compare \
+    -Werror \
     -Wno-missing-field-initializers \
     -Wno-pointer-arith \
     -Wno-unused-parameter \
     -Wno-sign-compare \
+    -fno-strict-aliasing \
 
 LOCAL_C_INCLUDES_arm := $(LOCAL_PATH)/linux/arm $(LOCAL_PATH)/linux
 LOCAL_C_INCLUDES_arm64 := $(LOCAL_PATH)/linux/aarch64 $(LOCAL_PATH)/linux
@@ -345,14 +230,12 @@
 LOCAL_C_INCLUDES_x86 := $(LOCAL_PATH)/linux/i386 $(LOCAL_PATH)/linux
 LOCAL_C_INCLUDES_x86_64 := $(LOCAL_PATH)/linux/x86_64 $(LOCAL_PATH)/linux
 
-LOCAL_CLANG := true
-
 LOCAL_MODULE := strace
 
 LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
 
 LOCAL_MODULE_TAGS := debug
 
-LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
-
 include $(BUILD_EXECUTABLE)
+
+endif
diff --git a/COPYING b/COPYING
index 168a715..a359208 100644
--- a/COPYING
+++ b/COPYING
@@ -3,8 +3,8 @@
 Copyright (c) 1993 Ulrich Pegelow <pegelow@moorea.uni-muenster.de>
 Copyright (c) 1995, 1996 Michael Elizabeth Chastain <mec@duracef.shout.net>
 Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
-Copyright (C) 1998-2001 Wichert Akkerman <wakkerma@deephackmode.org>
-Copyright (C) 2001-2017 The strace developers.
+Copyright (c) 1998-2001 Wichert Akkerman <wakkerma@deephackmode.org>
+Copyright (c) 2001-2017 The strace developers.
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
diff --git a/CREDITS b/CREDITS
index d4fade1..a59c8dd 100644
--- a/CREDITS
+++ b/CREDITS
@@ -56,6 +56,7 @@
 	Erik Johansson <erik@ejohansson.se>
 	Etienne Gemsa <etienne.gemsa@lse.epita.fr>
 	Eugene Syromyatnikov <evgsyr@gmail.com>
+	Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
 	Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
 	Fabien Siron <fabien.siron@epita.fr>
 	Fei Jie <feij.fnst@cn.fujitsu.com>
@@ -97,6 +98,7 @@
 	Katerina Koukiou <k.koukiou@googlemail.com>
 	Keith Owens <kaos.ocs@gmail.com>
 	Keith Thompson <kst@alsys.com>
+	Khem Raj <raj.khem@gmail.com>
 	Kirill A. Shutemov <kirill@shutemov.name>
 	Kyle McMartin <kyle@mcmartin.ca>
 	Lai JiangShan <laijs@cn.fujitsu.com>
@@ -123,6 +125,7 @@
 	Mike Frysinger <vapier@gentoo.org>
 	Mike Stroyan <mike.stroyan@hp.com>
 	Mikulas Patocka <mpatocka@redhat.com>
+	Miroslav Lichvar <mlichvar@redhat.com>
 	Muttley Meen <muttley.meen@gmail.com>
 	Nahim El Atmani <naam@lse.epita.fr>
 	Namhyung Kim <namhyung.kim@lge.com>
@@ -150,6 +153,7 @@
 	Rishi Bhatt <bhatt.rishi062@gmail.com>
 	Roland Borde <bo@uebemc.siemens.de>
 	Roland McGrath <roland@redhat.com>
+	Romain Naour <romain.naour@smile.fr>
 	Sami Farin <safari@u.safari.iki.fi>
 	Sandhya Bankar <bankarsandhya512@gmail.com>
 	Scott Tsai <scottt958@yahoo.com.tw>
diff --git a/ChangeLog b/ChangeLog
index 01f6563..fed0a30 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,1580 @@
+2017-07-05  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Prepare for 4.18 release.
+	* NEWS: Update for 4.18 release.
+
+2017-07-04  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: robustify create_nl_socket based tests against the race condition
+	There is a race condition between the moment a netlink socket is created
+	and the moment it is reported via SOCK_DIAG_BY_FAMILY interface.
+	Add one more operation on the socket created by create_nl_socket
+	to increase chances of winning the race.
+
+	* tests/create_nl_socket.c (create_nl_socket_ext): Add a getsockopt call
+	with the created socket.
+
+2017-07-04  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Update NEWS.
+
+2017-07-04  Romain Naour  <romain.naour@smile.fr>
+
+	nios2: fix wrong access to "SP" register in user_pt_regs.
+	Starting with linux commit v4.0-rc4~21^2, "SP" register
+	is available via regs[PTR_SP] member of struct user_pt_regs.
+
+	* linux/nios2/arch_regs.h (nios2_sp_ptr): Change type
+	to "unsigned int *".
+	* linux/nios2/arch_regs.c (nios2_sp_ptr): Likewise.
+	Replace .sp with .regs[PTR_SP].
+
+	Fixes: http://autobuild.buildroot.net/results/b9f/b9fc25b82f3280872fe1593ac252a8529ba83576
+	Fixes: v4.16-34-g6117728a ("nios2: export nios2_sp_ptr")
+
+2017-07-03  Eugene Syromyatnikov  <evgsyr@gmail.com>
+	    Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: add multi-process check to qual_fault.test.
+	Check that syscall counters used for tampering are per-tcb.
+
+	* tests/qual_fault.c: Include <fcntl.h> for open(),
+	<sys/param.h> for PATH_MAX, and <sys/wait.h> for wait().
+	(expfd): Rename to exp_fd, remove const qualifier and initialization.
+	(gotfd): Rename to got_fd, remove const qualifier and initialization.
+	(out_fd): New variable, for the expected strace output.
+	(open_file): New helper function.
+	(main): Remove st, add num_procs, proc, exp_prefix, got_prefix,
+	out_prefix, pid_prefix.  Remove stat asserts, update argc assert.
+	Add num_procs, exp_prefix, got_prefix, out_prefix, pid_prefix
+	initialization.  Add per-process loop, open expfd, gotfd, out_fd, pidfd
+	in each one, print process's pid to pidfd, print exit message to out_fd.
+	Add wait() call for each forked process.
+	* tests/qual_fault.test (N): increase to 100 in order to check
+	concurrent process execution.
+	(check_fault_injection): Take additional argument for the process
+	count, pass it to qual_fault, add filename variables for expected strace
+	output and pid file, pass them to qual_fault.
+	Specify -ff parameter to strace invocation.
+	Compare write and strace output for the each process.
+	Update all check_fault_injection invocation with process count argument,
+	add an invocation with 4 concurrent processes.
+	* tests/init.sh (TIMEOUT_DURATION): Raise from 120 to 300.
+
+2017-07-03  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: adjust TEST_NLATTR_OBJECT and TEST_NLATTR_ARRAY for large objects
+	* tests/test_nlattr.h (TEST_NLATTR_OBJECT, TEST_NLATTR_ARRAY): Add
+	support for objects larger than DEFAULT_STRLEN.
+	* tests/nlattr_inet_diag_msg.c (main): Change pattern size
+	from DEFAULT_STRLEN to 4096.
+	* tests/nlattr_netlink_diag_msg.c: Likewise.
+	* tests/nlattr_unix_diag_msg.c: Likewise.
+
+	Reported-by: JingPiao Chen <chenjingpiao@gmail.com>
+
+2017-07-03  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: move DEFAULT_STRLEN macro to tests.h.
+	* tests/tests.h [!DEFAULT_STRLEN] (DEFAULT_STRLEN): New macro.
+	* tests/mincore.c (DEFAULT_STRLEN): Remove.
+	* tests/mmsg_name.c: Likewise.
+	* tests/msg_control.c: Likewise.
+	* tests/netlink_protocol.c: Likewise.
+	* tests/nlattr.c: Likewise.
+	* tests/nlattr_inet_diag_msg.c: Likewise.
+	* tests/nlattr_netlink_diag_msg.c: Likewise.
+	* tests/nlattr_unix_diag_msg.c: Likewise.
+	* tests/printstr.c: Likewise.
+	* tests/xattr.c: Likewise.
+	* tests/execve.c: Likewise.
+	(main): Initialize str_a and str_b arrays at run time.
+	* tests/execveat.c: Likewise.
+
+	Suggested-by: JingPiao Chen <chenjingpiao@gmail.com>
+
+2017-07-03  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	tests: use unified diff in order to improve test log readability.
+	* tests/init.sh (match_diff): Add -u option to the diff invocation.
+
+2017-07-02  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Fix error diagnostics in case of zero argc.
+	* strace.c (init): Adjust argc along with argv,
+	check that adjusted argc is sane.
+	* tests/zeroargc.c: New file.
+	* tests/.gitignore: Add zeroargc.
+	* tests/Makefile.am (check_PROGRAMS): Likewise.
+	* tests/options-syntax.test: Check strace error diagnostics
+	in case of zero argc.
+
+2017-07-02  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Use program_invocation_name instead of a local progname variable.
+	Emulate program_invocation_name only if it is not provided by libc.
+
+	* configure.ac: Check for program_invocation_name variable.
+	* strace.c (progname): Remove.
+	[!HAVE_PROGRAM_INVOCATION_NAME] (program_invocation_name): New variable.
+	(verror_msg, error_msg_and_help): Use it instead of progname.
+	(init): Initialize program_invocation_name instead of progname.
+
+2017-07-02  Dmitry V. Levin  <ldv@altlinux.org>
+	    Victor Krapivensky  <krapivenskiy.va@phystech.edu>
+
+	Introduce generic STRINGIFY and STRINGIFY_VAL macros.
+	* macros.h (STRINGIFY, STRINGIFY_VAL): New macros.
+	* mpers_type.h: Include "macros.h".
+	[IN_MPERS] (STRINGIFY): Remove.
+	* tests/sockname.c (TEST_SYSCALL_STR__, TEST_SYSCALL_STR_): Remove.
+	(TEST_SYSCALL_STR): Use STRINGIFY_VAL.
+
+2017-07-02  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Introduce macros.h.
+	Introduce a separate header file for generic macros shared between
+	strace and its tests.  Start this unification with ARRAY_SIZE macro.
+
+	* defs.h: Include "macros.h".
+	(ARRAY_SIZE): Move ...
+	* macros.h: ... to new file.
+	* Makefile.am (strace_SOURCES): Add it.
+	* tests/tests.h: Include "macros.h".
+	(ARRAY_SIZE): Remove.  All callers updated.
+
+2017-07-01  Dmitry V. Levin  <ldv@altlinux.org>
+
+	quota: use PRINT_FIELD_FLAGS.
+	* quota.c (struct xfs_dqblk): Change d_flags field's type from int8_t
+	to uint8_t.
+	(decode_cmd_data): Use PRINT_FIELD_FLAGS.
+
+2017-07-01  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Unify different generic PRINT_FIELD_* implementations.
+	Create a new header print_fields.h and move generic PRINT_FIELD_*
+	macros there.
+
+	* print_fields.h: New file.
+	* Makefile.am (strace_SOURCES): Add it.
+	* netlink_sock_diag.c: Include "print_fields.h".
+	(PRINT_FIELD_U, PRINT_FIELD_X, PRINT_FIELD_COOKIE, PRINT_FIELD_FLAGS,
+	PRINT_FIELD_XVAL): Move to print_fields.h file.
+	* quota.c: Include "print_fields.h".
+	(PRINT_FIELD_D): Move to print_fields.h file.
+	(PRINT_FIELD_U, PRINT_FIELD_X): Remove.
+	* statx.c: Include "print_fields.h".
+	(PRINT_FIELD_U): Remove.
+	(SYS_FUNC(statx)): Update PRINT_FIELD_U callers.
+	* tests/quotactl.h: Include "print_fields.h".
+	* tests/quotactl-xfs.c: Update callers of PRINT_FIELD_* macros.
+	* tests/quotactl.c: Likewise.
+	(PRINT_FIELD_D, PRINT_FIELD_U, PRINT_FIELD_X): Remove.
+	* tests/test_nlattr.h: Include "print_fields.h".
+	(PRINT_FIELD_U, PRINT_FIELD_X): Remove.
+	* tests/xstatx.c: Include "print_fields.h".
+	(PRINT_FIELD_U): Remove.
+	(print_stat): Update PRINT_FIELD_U callers.
+	* tests/tests.h [!STRACE_PRINTF] (STRACE_PRINTF): Define to printf.
+
+2017-07-01  Eugeniy Paltsev  <Eugeniy.Paltsev@synopsys.com>
+
+	arc: fix wrong access to "sp" member in user_regs_struct.
+	"sp" register is a member of "scratch" structure (which is nested
+	in user_regs_struct)
+
+	* linux/arc/arch_regs.c: Replace .sp with .scratch.sp .
+
+	Fixes: v4.16-31-g134042a5 ("arc: export arc_sp_ptr")
+
+2017-07-01  Khem Raj  <raj.khem@gmail.com>
+
+	aarch64, tile: replace struct ucontext with ucontext_t.
+	glibc >= 2.26 has dropped the tag struct ucontext from ucontext_t type.
+
+	* linux/arm/arch_sigreturn.c (arch_sigreturn) [AARCH64]: Replace
+	struct ucontext with ucontext_t.
+	* linux/tile/arch_sigreturn.c (arch_sigreturn): Likewise.
+
+2017-07-01  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: enhance nlattr_unix_diag_msg test.
+	* tests/nlattr_unix_diag_msg.c: Include "test_nlattr.h".
+	(test_unix_diag_vfs, test_unix_diag_icons, test_unix_diag_rqlen):
+	Remove.
+	(init_unix_diag_msg): Add const qualifier to arguments and variables.
+	(print_unix_diag_msg, print_uint): New functions.
+	(main): Use them and macros from test_nlattr.h file.
+
+2017-07-01  JingPiao Chen  <chenjingpiao@gmail.com>
+
+	tests: check decoding of netlink unix_diag_msg attributes.
+	* tests/nlattr_unix_diag_msg.c: New file.
+	* tests/gen_tests.in (nlattr_unix_diag_msg): New entry.
+	* tests/pure_executables.list: Add nlattr_unix_diag_msg.
+	* tests/.gitignore: Likewise.
+
+2017-07-01  Dmitry V. Levin  <ldv@altlinux.org>
+
+	netlink_sock_diag: ensure that structure field names are printed properly
+	* netlink_sock_diag.c (decode_unix_diag_vfs, decode_unix_diag_rqlen):
+	Use PRINT_FIELD_U to print structure fields.
+
+2017-07-01  Dmitry V. Levin  <ldv@altlinux.org>
+
+	netlink_sock_diag: add const qualifiers.
+	Add const qualifiers to auto variables and function arguments.
+	This change does not affect the code generated by the compiler,
+	the purpose of these "const" qualifiers is to highlight the intent.
+
+	* netlink_sock_diag.c (decode_unix_diag_vfs, decode_unix_diag_inode,
+	decode_unix_diag_rqlen): Add const qualifier to tcp, addr, and len
+	arguments.
+
+2017-07-01  JingPiao Chen  <chenjingpiao@gmail.com>
+
+	netlink: decode AF_UNIX unix_diag_msg attributes.
+	* netlink_sock_diag.c (unix_diag_msg_nla_decoders): New array.
+	(decode_unix_diag_msg): Use it.
+	* linux/unix_diag.h (unix_diag_vfs, unix_diag_rqlen): New structures.
+
+2017-07-01  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: enhance nlattr_netlink_diag_msg test.
+	* tests/nlattr_netlink_diag_msg.c: Include "test_nlattr.h".
+	(test_netlink_diag_groups, test_netlink_diag_rx_ring,
+	test_netlink_diag_flags): Remove.
+	(init_netlink_diag_msg): Add const qualifier to arguments and variables.
+	(print_netlink_diag_msg, print_xlong): New functions.
+	(main): Use them and macros from test_nlattr.h file.
+
+2017-07-01  JingPiao Chen  <chenjingpiao@gmail.com>
+
+	tests: check decoding of netlink_diag_msg attributes.
+	* tests/nlattr_netlink_diag_msg.c: New file.
+	* tests/gen_tests.in (nlattr_netlink_diag_msg): New entry.
+	* tests/pure_executables.list: Add nlattr_netlink_diag_msg.
+	* tests/.gitignore: Likewise.
+
+2017-07-01  Dmitry V. Levin  <ldv@altlinux.org>
+
+	netlink_sock_diag: ensure that structure field names are printed properly
+	* netlink_sock_diag.c (decode_netlink_diag_ring): Use PRINT_FIELD_U
+	to print structure fields.
+
+2017-07-01  Dmitry V. Levin  <ldv@altlinux.org>
+
+	netlink_sock_diag: add const qualifiers.
+	Add const qualifiers to auto variables and function arguments.
+	This change does not affect the code generated by the compiler,
+	the purpose of these "const" qualifiers is to highlight the intent.
+
+	* netlink_sock_diag.c (print_group, decode_netlink_diag_groups,
+	decode_netlink_diag_ring, decode_netlink_diag_flags): Add const
+	qualifier to tcp, addr, and len arguments.
+
+2017-07-01  JingPiao Chen  <chenjingpiao@gmail.com>
+
+	netlink: decode AF_NETLINK netlink_diag_msg attributes.
+	* linux/netlink_diag.h (netlink_diag_ring): New structure.
+	(NDIAG_FLAG_*): New macros.
+	* netlink_sock_diag.c: Include "xlat/netlink_socket_flags.h".
+	(print_group, decode_netlink_diag_groups, decode_netlink_diag_ring,
+	decode_netlink_diag_flags): New functions.
+	(netlink_diag_msg_nla_decoders): New array.
+	(decode_netlink_diag_msg): Use it.
+	* xlat/netlink_socket_flags.in: New file.
+
+2017-07-01  Dmitry V. Levin  <ldv@altlinux.org>
+
+	netlink_sock_diag: print inet_diag_sockid.idiag_if as an interface index
+	* netlink_sock_diag.c (print_inet_diag_sockid): Print idiag_if field
+	using print_ifindex.
+	* tests/nlattr_inet_diag_msg.c: Include <net/if.h>.
+	(IFINDEX_LO): New macro.
+	(init_inet_diag_msg): Set inet_diag_sockid.idiag_if field.
+	(print_inet_diag_msg): Update expected output.
+
+2017-07-01  Dmitry V. Levin  <ldv@altlinux.org>
+	    JingPiao Chen  <chenjingpiao@gmail.com>
+
+	tests: check decoding of several standard netlink attributes.
+	* tests/nlattr_inet_diag_msg.c (main): Check decoding of uint32_t,
+	uint8_t, and zero-terminated string attributes.
+
+2017-06-30  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: enhance nlattr_inet_diag_msg test.
+	* tests/test_nlattr.h: New file.
+	* tests/Makefile.am (libtests_a_SOURCES): Add it.
+	* tests/nlattr_inet_diag_msg.c: Include "test_nlattr.h".
+	(test_inet_diag_meminfo, test_inet_diag_vegasinfo,
+	test_inet_diag_dctcpinfo, test_inet_diag_bbrinfo): Remove.
+	(address): New variable.
+	(init_inet_diag_msg): Remove "address" argument, add const qualifier
+	to all remaining arguments.
+	(print_inet_diag_msg, print_uint): New functions.
+	(main): Use macros from test_nlattr.h file.
+
+2017-06-30  JingPiao Chen  <chenjingpiao@gmail.com>
+
+	tests: check decoding of netlink inet_diag_msg attributes.
+	* tests/nlattr_inet_diag_msg.c: New file.
+	* tests/gen_tests.in (nlattr_inet_diag_msg): New entry.
+	* tests/pure_executables.list: Add nlattr_inet_diag_msg.
+	* tests/.gitignore: Likewise.
+
+2017-06-30  Dmitry V. Levin  <ldv@altlinux.org>
+
+	netlink_sock_diag: ensure that structure field names are printed properly
+	* netlink_sock_diag.c (PRINT_FIELD_X): New macro.
+	(decode_inet_diag_meminfo, decode_tcpvegas_info, decode_tcp_dctcp_info,
+	decode_tcp_bbr_info): Use it and PRINT_FIELD_U to print structure
+	fields.
+
+2017-06-30  Dmitry V. Levin  <ldv@altlinux.org>
+
+	netlink_sock_diag: add const qualifiers.
+	Add const qualifiers to auto variables and function arguments.
+	This change does not affect the code generated by the compiler,
+	the purpose of these "const" qualifiers is to highlight the intent.
+
+	* netlink_sock_diag.c (print_meminfo, decode_meminfo,
+	decode_inet_diag_meminfo, decode_tcpvegas_info, decode_tcp_dctcp_info,
+	decode_tcp_bbr_info): Add const qualifier to tcp, addr, and len
+	arguments.
+
+2017-06-30  JingPiao Chen  <chenjingpiao@gmail.com>
+
+	netlink: decode AF_INET inet_diag_msg attributes.
+	* linux/inet_diag.h (inet_diag_meminfo, tcpvegas_info,
+	tcp_dctcp_info, tcp_bbr_info): New structures.
+	* linux/sock_diag.h (SK_MEMINFO_VARS): New macro.
+	* netlink_sock_diag.c: Include  <linux/sock_diag.h>.
+	(print_meminfo, decode_meminfo, decode_inet_diag_meminfo,
+	decode_tcpvegas_info, decode_tcp_dctcp_info, decode_tcp_bbr_info):
+	New functions.
+	(inet_diag_msg_nla_decoders): New array.
+	(decode_inet_diag_msg): Use it.
+
+2017-06-30  Dmitry V. Levin  <ldv@altlinux.org>
+
+	nlattr: add const qualifiers to auto variables and function arguments.
+	This change does not affect the code generated by the compiler,
+	the purpose of these "const" qualifiers is to highlight the intent.
+
+	* nlattr.c (decode_nlattr_with_data, decode_nla_str, decode_nla_strn,
+	decode_nla_##name): Add const qualifier to tcp, addr, and len arguments.
+
+2017-06-30  JingPiao Chen  <chenjingpiao@gmail.com>
+	    Fabien Siron  <fabien.siron@epita.fr>
+
+	netlink: introduce nla_decoder_t to parse netlink attributes data.
+	* nlattr.h (nla_decoder_t): New typedef.
+	(DECL_NLA): New macro.
+	(decode_nlattr): Add decoders, size and opaque_data argument.
+	* nlattr.c: (decode_nlattr_with_data): Likewise.
+	(decode_nla_*): New functions.
+	* netlink_sock_diag.c (decode_inet_diag_req_compat)
+	(decode_inet_diag_req_v2, decode_inet_diag_msg)
+	(decode_netlink_diag_msg, (decode_packet_diag_msg)
+	(decode_smc_diag_msg, decode_unix_diag_msg): Add decoders,
+	size and opaque_data arguments. All callers updated.
+
+2017-06-30  JingPiao Chen  <chenjingpiao@gmail.com>
+
+	netlink: add a basic netlink attribute parser of AF_SMC diag.
+	* netlink_sock_diag.c: Include "xlat/smc_diag_attrs.h".
+	(decode_smc_diag_msg): Use decode_nlattr.
+	* xlat/smc_diag_attrs.in: New file.
+
+2017-06-30  JingPiao Chen  <chenjingpiao@gmail.com>
+	    Fabien Siron  <fabien.siron@epita.fr>
+
+	netlink: add a basic netlink attribute parser of AF_INET diag.
+	* linux/inet_diag.h (INET_DIAG_REQ_*): New enum.
+	* netlink_sock_diag.c: Include "xlat/inet_diag_attrs.h"
+	and "xlat/inet_diag_req_attrs.h".
+	(decode_inet_diag_req_compat, decode_inet_diag_req_v2,
+	 decode_inet_diag_msg): Use decode_nlattr.
+	* xlat/inet_diag_attrs.in: New file.
+	* xlat/inet_diag_req_attrs.in: Likewise.
+
+	netlink: add a basic netlink attribute parser of AF_PACKET diag.
+	* linux/packet_diag.h (PACKET_DIAG_*): New enum.
+	* netlink_sock_diag.c: Include "xlat/packet_diag_attrs.h".
+	(decode_packet_diag_msg): Use decode_nlattr.
+	* xlat/packet_diag_attrs.in: New file.
+
+	netlink: add a basic netlink attribute parser of AF_NETLINK diag.
+	* linux/netlink_diag.h (NETLINK_DIAG_*): New enum.
+	* netlink_sock_diag.c: Include "xlat/netlink_diag_attrs.h".
+	(decode_netlink_diag_msg): Use decode_nlattr.
+	* xlat/netlink_diag_attrs.in: New file.
+
+2017-06-29  Dmitry V. Levin  <ldv@altlinux.org>
+
+	netlink_sock_diag: ensure that structure field names are printed properly
+	* netlink_sock_diag.c (PRINT_FIELD_U, PRINT_FIELD_COOKIE,
+	PRINT_FIELD_FLAGS, PRINT_FIELD_XVAL): New macros.
+	(decode_unix_diag_req, decode_unix_diag_msg, decode_netlink_diag_req,
+	decode_netlink_diag_msg, decode_packet_diag_req, decode_packet_diag_msg,
+	print_inet_diag_sockid, decode_inet_diag_req_compat,
+	decode_inet_diag_req_v2, decode_inet_diag_msg, decode_smc_diag_req,
+	decode_smc_diag_msg): Use them to print structure fields.
+
+2017-06-29  Gleb Fotengauer-Malinovskiy  <glebfm@altlinux.org>
+
+	Update ioctl entries from linux v4.12-rc7.
+	* linux/32/ioctls_inc_align16.h: Update from linux v4.12-rc7
+	(with f7a320ff commit applied on top) 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.
+	* NEWS: Mention this.
+
+2017-06-29  Gleb Fotengauer-Malinovskiy  <glebfm@altlinux.org>
+
+	maint: fix ioctls_sym.sh premature termination.
+	When the list of headers do not fit into the command line, xargs splits
+	it into several lists and then passes them to grep.  If no headers from
+	a list match the grep pattern, grep exits with a non-zero status that
+	causes xargs to exit with a non-zero status, too.
+
+	* maint/ioctls_sym.sh: Use "find -exec +" instead of xargs,
+	ignore its exit status.
+
+2017-06-27  JingPiao Chen  <chenjingpiao@gmail.com>
+
+	tests: introduce NLMSG_ATTR macro.
+	* tests/tests.h (NLMSG_ATTR): New macro.
+	* tests/nlattr.c (test_nlattr, test_nla_type): Use it.
+
+2017-06-27  JingPiao Chen  <chenjingpiao@gmail.com>
+
+	netlink: pass NLMSG_DONE messages to family specific payload decoders.
+	While many NLMSG_DONE messages indeed have payload containing
+	just one integer, there are exceptions. Handle this by passing
+	payloads of NLMSG_DONE messages to family specific netlink
+	payload decoders.
+
+	* netlink.c (print_nlmsghdr): Do not skip family detection
+	for nlmsg_type == NLMSG_DONE.
+	(decode_nlmsg_type): Skip family specific type decoders
+	for type == NLMSG_DONE.
+	(decode_nlmsg_flags): Skip family specific decoding of flags
+	for type == NLMSG_DONE.
+	(decode_netlink_sock_diag): Skip for nlmsg_type == NLMSG_DONE.
+
+2017-06-26  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Unexport die_out_of_memory.
+	Print more specific error diagnostics than a generic "Out of memory"
+	when an error happens outside xmalloc.c.
+
+	* defs.h (die_out_of_memory): Remove prototype.
+	* strace.c (strace_popen, init): Call perror_msg_and_die instead
+	of die_out_of_memory.
+	* unwind.c (unwind_tcb_init): Likewise.
+	* xmalloc.c (die_out_of_memory): Add static qualifier.
+
+2017-06-26  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Check -s argument early.
+	* util.c (printstr_ex): Move the check that -s argument
+	does not exceed -1U / 4 ...
+	* strace.c (init): ... here.
+	* tests/options-syntax.test: Check it.
+
+2017-06-25  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Include "netlink.h" instead of <linux/netlink.h>
+	* net.c: Include "netlink.h" instead of <linux/netlink.h>.
+	* sockaddr.c: Likewise.
+	* tests/create_nl_socket.c: Likewise.
+	* tests/net-sockaddr.c: Likewise.
+	* tests/netlink_audit.c: Likewise.
+	* tests/netlink_generic.c: Likewise.
+	* tests/netlink_inet_diag.c: Likewise.
+	* tests/netlink_netfilter.c: Likewise.
+	* tests/netlink_route.c: Likewise.
+	* tests/netlink_selinux.c: Likewise.
+	* tests/netlink_xfrm.c: Likewise.
+	* tests/net-yy-netlink.c: Include "netlink.h" instead
+	of <linux/netlink.h>, remove fallback definition of NETLINK_SOCK_DIAG.
+	* tests/netlink_netlink_diag.c: Likewise.
+	* tests/netlink_protocol.c: Likewise.
+	* tests/netlink_sock_diag.c: Likewise.
+	* tests/netlink_unix_diag.c: Likewise.
+	* tests/nlattr.c: Likewise.
+
+2017-06-24  Dmitry V. Levin  <ldv@altlinux.org>
+
+	netlink: provide a fallback definition of NETLINK_SOCK_DIAG.
+	Add a fallback definition of NETLINK_SOCK_DIAG to netlink.h
+	instead of adding these fallback definitions to every file.
+
+	* netlink.h: Provide a fallback definition of NETLINK_SOCK_DIAG.
+	* socketutils.c: Include "netlink.h" instead of <linux/netlink.h>,
+	remove fallback definition of NETLINK_SOCK_DIAG.
+
+2017-06-23  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Update prctl ARCH_* constants.
+	* xlat/archvals.in: Add ARCH_GET_CPUID and ARCH_SET_CPUID
+	introduced by linux kernel commit v4.12-rc1~153^2~2.
+
+2017-06-22  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Update V4L2_* constants.
+	* xlat/v4l2_buf_types.in: Add V4L2_BUF_TYPE_META_CAPTURE introduced
+	by linux kernel commit v4.12-rc1~85^2~71.
+	* xlat/v4l2_device_capabilities_flags.in: Add V4L2_CAP_META_CAPTURE
+	introduced by the same commit.
+	* xlat/v4l2_control_flags.in: Add V4L2_CTRL_FLAG_HAS_PAYLOAD,
+	V4L2_CTRL_FLAG_EXECUTE_ON_WRITE, and V4L2_CTRL_FLAG_MODIFY_LAYOUT
+	introduced by linux kernel commits v3.17-rc1~112^2~363,
+	v4.1-rc1~59^2~1^2~63, and v4.12-rc1~85^2~62, respectively.
+	* xlat/v4l2_control_types.in: Add V4L2_CTRL_TYPE_U8, V4L2_CTRL_TYPE_U16,
+	and V4L2_CTRL_TYPE_U32 introduced by linux kernel commits
+	v3.17-rc1~112^2~343 and v3.17-rc1~112^2~112.
+
+	Update SCTP_* constants.
+	* xlat/socksctpoptions.in: Add SCTP_ENABLE_STREAM_RESET,
+	SCTP_RESET_STREAMS, SCTP_RESET_ASSOC, SCTP_ADD_STREAMS,
+	SCTP_RECONFIG_SUPPORTED, and SCTP_PR_STREAM_STATUS introduced
+	by linux kernel commits v4.11-rc1~124^2~387^2~1, v4.11-rc1~124^2~387^2,
+	v4.11-rc1~124^2~166^2~2, v4.11-rc1~124^2~166^2, v4.12-rc1~64^3~469^2,
+	and v4.12-rc1~64^3~276, respectively.
+
+	Update RTM_* constants.
+	* xlat/nl_route_types.in: Add RTM_DELNETCONF introduced
+	by linux kernel commit v4.12-rc1~64^3~312^2~6.
+
+	Update NDIAG_SHOW_* constants.
+	* linux/netlink_diag.h (NDIAG_SHOW_FLAGS): New constant introduced
+	by linux kernel commit v4.12-rc1~64^3~260.
+	* xlat/netlink_diag_show.in: Add it.
+
+	Update KEYCTL_* constants.
+	* xlat/keyctl_commands.in: Add KEYCTL_RESTRICT_KEYRING introduced
+	by linux kernel commit v4.12-rc1~123^2~7^2~2^2~3.
+
+	Update ARPHRD_* constants.
+	* xlat/arp_hardware_types.in: Add ARPHRD_VSOCKMON introduced
+	by linux kernel commit v4.12-rc1~129^2~118^2~2.
+
+	Update SO_* constants.
+	* xlat/sockoptions.in: Add SO_MEMINFO, SO_INCOMING_NAPI_ID,
+	and SO_COOKIE introduced by linux kernel commits v4.12-rc1~64^3~389,
+	v4.12-rc1~64^3~341^2, and v4.12-rc1~64^3~221^2~1, respectively.
+
+2017-06-21  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: check more corner cases of nlattr decoding.
+	* tests/nlattr.c (test_nlattr): Check decoding in case of invalid
+	struct nlattr.nla_len.
+
+2017-06-21  JingPiao Chen  <chenjingpiao@gmail.com>
+
+	tests: check decoding of netlink attribute.
+	* tests/nlattr.c: New file.
+	* tests/gen_tests.in (nlattr): New entry.
+	* tests/pure_executables.list: Add nlattr.
+	* tests/.gitignore: Likewise.
+
+2017-06-21  JingPiao Chen  <chenjingpiao@gmail.com>
+	    Fabien Siron  <fabien.siron@epita.fr>
+
+	netlink: introduce a basic netlink attributes parser.
+	* linux/unix_diag.h (UNIX_DIAG_*): New enum.
+	* nlattr.c: New file.
+	* nlattr.h: Likewise.
+	* Makefile.am (strace_SOURCES): Add them.
+	* netlink_sock_diag.c: Include "nlattr.h" and "xlat/unix_diag_attrs.h".
+	(decode_unix_diag_msg): Use decode_nlattr.
+	* xlat/unix_diag_attrs.in: New file.
+
+2017-06-21  JingPiao Chen  <chenjingpiao@gmail.com>
+
+	netlink: introduce netlink.h.
+	* netlink.h: New file.
+	* Makefile.am (strace_SOURCES): Add it.
+	* netlink_sock_diag.c: Include "netlink.h",
+	remove <sys/socket.h> and <linux/netlink.h>.
+	* netlink.c: Likewise.
+	(NLMSG_HDRLEN): Move to netlink.h.
+	* tests/netlink_protocol.c: Replace <linux/netlink.h> with "netlink.h".
+	* tests/netlink_sock_diag.c: Likewise.
+
+2017-06-20  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: add SET_STRUCT macro to tests.h.
+	* tests/netlink_sock_diag.c (INIT_STRUCT): Rename to SET_STRUCT,
+	all callers updated.  Move ...
+	* tests/tests.h: ... here.
+
+2017-06-19  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: fix potential unaligned access in netlink_sock_diag.test.
+	Despite our efforts made to avoid unaligned access, gcc appears to be
+	generating instructions that might cause unaligned access when copying
+	structures to unaligned addresses.
+
+	Fix this issue by replacing copying of structures to unaligned addresses
+	with memcpy calls.
+
+	* tests/netlink_sock_diag.c (INIT_STRUCT): New macro.
+	(test_odd_family_req, test_odd_family_msg, test_unix_diag_req,
+	test_unix_diag_msg, test_netlink_diag_req, test_netlink_diag_msg,
+	test_packet_diag_req, test_packet_diag_msg, test_inet_diag_sockid,
+	test_inet_diag_req, test_inet_diag_req_v2, test_inet_diag_msg,
+	test_smc_diag_req, test_smc_diag_msg): Use it to initialize potentially
+	unaligned struct nlmsghdr.  Do not access nlh->nlmsg_len.
+
+2017-06-19  Masatake YAMATO  <yamato@redhat.com>
+
+	tests: check decoding of NETLINK_GENERIC message types.
+	* tests/netlink_generic.c: New file.
+	* tests/gen_tests.in (netlink_generic): New entry.
+	* tests/pure_executables.list: Add netlink_generic.
+	* tests/.gitignore: Likewise.
+
+2017-06-19  Masatake YAMATO  <yamato@redhat.com>
+
+	netlink: add decoding of NETLINK_GENERIC protocol families.
+	NETLINK_GENERIC is a protocol stacked on netlink protocol.
+
+	When a NETLINK_GENERIC subsystem registers its "family" name in the
+	kernel at run time, an integer value associated with this name is
+	assigned by the kernel.  This integer value is specified in struct
+	nlmsghdr.nlmsg_type of subsequent communications with the
+	NETLINK_GENERIC subsystem.
+
+	This change implements decoding of NETLINK_GENERIC message types in
+	symbolic form, for example:
+
+	  $ ./strace -yy -e 'sendto' ip tcp_metrics > /dev/null
+	  sendto(4<NETLINK:[GENERIC:12345]>, {{len=20, type=tcp_metrics, ...
+	  +++ exited with 0 +++
+
+	Note that type= specifying the NETLINK_GENERIC protocol family
+	is decoded properly.
+
+	* netlink.c (decode_nlmsg_type_generic): New function.
+	(nlmsg_types): Add NETLINK_GENERIC entry.
+
+2017-06-19  Masatake YAMATO  <yamato@redhat.com>
+
+	socketutils: build a dynamic xlat table for NETLINK_GENERIC decoding.
+	* configure.ac (AC_CHECK_HEADERS): Add linux/genetlink.h.
+	* defs.h (genl_families_xlat): New prototype.
+	* socketutils.c [HAVE_LINUX_GENETLINK_H]: Include <linux/genetlink.h>.
+	[HAVE_LINUX_GENETLINK_H] (genl_send_dump_families,
+	genl_parse_families_response): New helper functions.
+	(genl_families_xlat): New function for building the xlat table
+	for NETLINK_GENERIC decoding.
+
+2017-06-19  Masatake YAMATO  <yamato@redhat.com>
+
+	dyxlat: new interface for building xlat tables dynamically.
+	xlat tables are usually generated at build time.
+
+	printxval is suitable for printing struct nlmsghdr.nlmsg_type for
+	NETLINK_GENERIC protocol.  However, the corresponding xlat table
+	cannot be defined at build time because the values are registered
+	by the kernel at run time.
+
+	This change introduces dyxlat functions for building xlat tables
+	dynamically.  The primary use case is decoding nlmsg_type but this
+	interface can be used for other purposes.
+
+	* defs.h (struct dyxlat): New opaque data type.
+	(dyxlat_alloc, dyxlat_free, dyxlat_add_pair): New function declarations.
+	* dyxlat.c: New file.
+	* Makefile.am (strace_SOURCES): Add it.
+
+2017-06-19  Masatake YAMATO  <yamato@redhat.com>
+
+	Introduce xstrndup function.
+	* configure.ac (AC_CHECK_FUNCS): Add strndup.
+	* defs.h (xstrndup): New prototype.
+	* xmalloc.c (xstrndup): New function.
+
+2017-06-18  Dmitry V. Levin  <ldv@altlinux.org>
+
+	netlink: do not print extra braces around payloadless nlmsghdr.
+	* netlink.c (decode_nlmsghdr_with_payload): Print braces before
+	print_nlmsghdr and after decode_payload iff decode_payload is invoked.
+	* tests/netlink_audit.c (test_nlmsg_type): Update expected output.
+	* tests/netlink_netfilter.c: Likewise.
+	* tests/netlink_selinux.c: Likewise.
+	* tests/netlink_protocol.c (send_query): Likewise.
+	* tests/netlink_route.c (test_nlmsg_type, test_nlmsg_flags): Likewise.
+	* tests/netlink_sock_diag.c: Likewise.
+	* tests/netlink_xfrm.c: Likewise.
+
+2017-06-17  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Strip argument name of type "struct tcb *" from function prototypes.
+	"struct tcb *" was used in most prototypes along with "struct tcb *tcp",
+	this change converts the latter form to the former for consistency.
+
+	Fix a few spacing style issues.
+	Reported by kernel's checkpatch.pl script.
+
+2017-06-17  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Strip redundant trailing semicolons.
+	Strip trailing semicolons from macro definitions.
+	Strip extra semicolons from statements terminations.
+
+	Reported by kernel's checkpatch.pl script.
+
+2017-06-17  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Fix macros encosure in a do/while loop.
+	Enclose macros with multiple statements and macros starting
+	with "if" statement in a do/while loop.
+	Do not enclose single statement macros in a do/while loop.
+
+	Reported by kernel's checkpatch.pl script.
+
+2017-06-17  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Use __func__ instead of gcc specific __FUNCTION__
+	Reported by kernel's checkpatch.pl script.
+
+2017-06-17  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Fix a few initialization style issues.
+	Do not initialise statics and globals to 0, NULL, or false.
+
+	Reported by kernel's checkpatch.pl script.
+
+2017-06-17  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Fix function prototypes with unspecified arguments.
+	Change functions declared as taking unspecified number of arguments
+	of unspecified type to functions that take no arguments.
+
+	Reported by kernel's checkpatch.pl script.
+
+2017-06-17  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Fix a few sizeof style issues.
+	Reported by kernel's checkpatch.pl script.
+
+	Fix a few misspellings in comments.
+	Reported by kernel's checkpatch.pl script.
+
+2017-06-16  Dmitry V. Levin  <ldv@altlinux.org>
+
+	print_mreq: remove superfluous print_quoted_string calls.
+	The string returned by inet_ntoa(3) has IPv4 dotted-decimal notation,
+	no need to quote it.
+
+	* net.c (print_mreq): Remove print_quoted_string calls.
+
+2017-06-15  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: check decoding of incomplete SCM_TIMESTAMP* control messages.
+	* tests/msg_control.c (test_scm_timestamp, test_scm_timestampns,
+	test_scm_timestamping): Check decoding of incomplete control messages.
+
+2017-06-15  Miroslav Lichvar  <mlichvar@redhat.com>
+
+	msghdr: print SCM_TIMESTAMP* control messages.
+	Add support for printing control messages containing software and/or
+	hardware timestamps, which are typically enabled by NTP and PTP
+	implementations.
+
+	* print_timeval.c (print_struct_timeval_data_size): New mpers printer.
+	* print_timespec.c (print_struct_timespec_data_size,
+	print_struct_timespec_array_data_size): Likewise.
+	* msghdr.c (print_scm_timestamp, print_scm_timestampns,
+	print_scm_timestamping): New functions.
+	(cmsg_socket_printers): Add them.
+	* NEWS: Mention this change.
+	* tests/msg_control.c: Include "xlat.h" and "xlat/scmvals.h".
+	(test_scm_timestamp, test_scm_timestampns, test_scm_timestamping):
+	New functions.
+	(test_sol_socket): Use them.
+
+2017-06-15  JingPiao Chen  <chenjingpiao@gmail.com>
+
+	tests: check decoding of NETLINK_SOCK_DIAG AF_SMC messages.
+	* tests/netlink_sock_diag.c: Include <linux/smc_diag.h>.
+	(SMC_ACTIVE): New macro.
+	(test_smc_diag_req, test_smc_diag_msg): New functions.
+	(main): Use them.
+
+	netlink: add a basic socket diag parser of AF_SMC messages.
+	* linux/smc_diag.h: New file.
+	* Makefile.am (EXTRA_DIST): Add it.
+	* netlink_sock_diag.c: Include <linux/smc_diag.h>,
+	"xlat/smc_diag_extended_flags.h" and "xlat/smc_states.h".
+	(decode_smc_diag_req, decode_smc_diag_msg): New functions.
+	(diag_decoders): Add AF_SMC.
+	* xlat/smc_diag_extended_flags.in: New file.
+	* xlat/smc_states.in: Likewise.
+
+2017-06-15  JingPiao Chen  <chenjingpiao@gmail.com>
+	    Fabien Siron  <fabien.siron@epita.fr>
+
+	tests: check decoding of NETLINK_SOCK_DIAG AF_INET messages.
+	* tests/netlink_sock_diag.c: Include <arpa/inet.h>
+	and <linux/inet_diag.h>.
+	(test_inet_diag_sockid, test_inet_diag_req, test_inet_diag_req_v2,
+	test_inet_diag_msg): New functions.
+	(mian): Use them.
+
+	netlink: add a basic socket diag parser of AF_INET and AF_INET6 messages
+	* defs.h (inet_protocols): New xlat prototype.
+	* linux/inet_diag.h (inet_diag_req): New structure.
+	(INET_DIAG_*): New enum.
+	* netlink_sock_diag.c: Include <arpa/inet.h>, <linux/inet_diag.h>
+	and "xlat/inet_diag_extended_flags.h".
+	(print_inet_diag_sockid, decode_inet_diag_req_compat)
+	(decode_inet_diag_req_v2, decode_inet_diag_req)
+	(decode_inet_diag_msg): New functions.
+	(diag_decoders): Add AF_INET and AF_INET6;
+	* xlat/inet_diag_extended_flags.in: New file.
+
+2017-06-15  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Introduce print_inet_addr.
+	* defs.h (print_inet_addr): New prototype.
+	* sockaddr.c (print_inet_addr): New function.
+	(print_sockaddr_data_in6): Use it.
+	* net.c (print_mreq6): Likewise.
+	* tests/ip_mreq.c (main): Update expected output.
+
+2017-06-15  JingPiao Chen  <chenjingpiao@gmail.com>
+	    Fabien Siron  <fabien.siron@epita.fr>
+
+	tests: check decoding of NETLINK_SOCK_DIAG AF_PACKET messages.
+	* tests/netlink_sock_diag.c: Include <linux/if_ether.h>
+	and <linux/packet_diag.h>.
+	(test_packet_diag_req, test_packet_diag_msg): New functions.
+	(main): Use them.
+
+	netlink: add a basic socket diag parser of AF_PACKET messages.
+	* linux/packet_diag.h: New file.
+	* Makefile.am (EXTRA_DIST): Add it.
+	* defs.h (ethernet_protocols): New xlat prototype.
+	* netlink_sock_diag.c: Include <linux/packet_diag.h>
+	and "xlat/packet_diag_show.h".
+	(decode_packet_diag_req, decode_packet_diag_msg): New functions.
+	(diag_decoders): Add AF_PACKET.
+	* xlat/packet_diag_show.in: New file.
+
+	tests: check decoding of NETLINK_SOCK_DIAG AF_NETLINK messages.
+	* tests/netlink_sock_diag.c: Include <linux/netlink_diag.h>.
+	(test_netlink_diag_req, test_netlink_diag_msg): New functions.
+	(main): Use them.
+
+	netlink: add a basic socket diag parser of AF_NETLINK messages.
+	* linux/netlink_diag.h (NDIAG_SHOW_GROUPS, NDIAG_SHOW_RING_CFG):
+	New macros.
+	* netlink_sock_diag.c: Include <linux/netlink_diag.h>,
+	"xlat/netlink_diag_show.h" and "xlat/netlink_states.h".
+	(decode_netlink_diag_req, decode_netlink_diag_msg): New functions.
+	(diag_decoders): Add AF_NETLINK.
+	* xlat/netlink_diag_show.in: New file.
+	* xlat/netlink_states.in: Likewise.
+
+2017-06-15  Dmitry V. Levin  <ldv@altlinux.org>
+	    Fabien Siron  <fabien.siron@epita.fr>
+	    JingPiao Chen  <chenjingpiao@gmail.com>
+
+	tests: check decoding of NETLINK_SOCK_DIAG AF_UNIX messages.
+	* tests/netlink_sock_diag.c: Include <netinet/tcp.h>
+	and <linux/unix_diag.h>.
+	(test_odd_family_req, test_odd_family_msg, test_unix_diag_req,
+	test_unix_diag_msg): New functions.
+	(main): Use them.
+
+	netlink: add a basic socket diag parser of AF_UNIX messages.
+	* defs.h (socktypes): New xlat prototype.
+	* linux/unix_diag.h (UDIAG_SHOW_VFS, UDIAG_SHOW_ICONS, UDIAG_SHOW_RQLEN,
+	UDIAG_SHOW_MEMINFO): New macros.
+	* netlink_sock_diag.c: Include <sys/socket.h>, <linux/netlink.h>,
+	<linux/unix_diag.h>, "xlat/tcp_states.h", "xlat/tcp_state_flags.h",
+	and "xlat/unix_diag_show.h".
+	(decode_unix_diag_req, decode_unix_diag_msg): New functions.
+	(netlink_diag_decoder_t): New typedef.
+	(diag_decoders): New array.
+	(decode_netlink_sock_diag): Use it.
+	* xlat/tcp_state_flags.in: New file.
+	* xlat/tcp_states.in: Likewise.
+	* xlat/unix_diag_show.in: Likewise.
+
+	netlink: introduce family specific payload decoders.
+	* defs.h (netlink_decoder_t): New typedef.
+	(DECL_NETLINK): New macro.
+	(decode_netlink_sock_diag): New prototype.
+	* netlink.c (netlink_decoders): New array.
+	(decode_payload): Use it to invoke netlink family specific decoders.
+	* netlink_sock_diag.c: New file.
+	* Makefile.am (strace_SOURCES): Add it.
+
+2017-06-15  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Update SCM_* constants.
+	* xlat/scmvals.in: Add SCM_TIMESTAMP, SCM_TIMESTAMPNS, SCM_TIMESTAMPING,
+	SCM_WIFI_STATUS, and SCM_TIMESTAMPING_OPT_STATS.
+
+2017-06-14  Dmitry V. Levin  <ldv@altlinux.org>
+
+	netlink: refactor decode_nlmsg_type.
+	* netlink.c (decode_nlmsg_type_default, decode_nlmsg_type_netfilter):
+	New functions.
+	(nlmsg_types_decoder_t): New typedef.
+	(nlmsg_types): Add decoder field.
+	(decode_nlmsg_type): Use it.
+
+2017-06-14  JingPiao Chen  <chenjingpiao@gmail.com>
+
+	tests: extend printstr test.
+	* tests/printstr.c (main): Add a case for short read.
+
+2017-06-13  Dmitry V. Levin  <ldv@altlinux.org>
+
+	v4l2: fix preprocessor checks.
+	Fix checks for struct v4l2_window.global_alpha and struct
+	v4l2_sdr_format.buffersize.
+
+	* v4l2.c (print_v4l2_format_fmt): Do not assume that
+	HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA and
+	HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE are defined.
+	* tests/ioctl_v4l2.c (init_v4l2_format, dprint_ioctl_v4l2): Likewise.
+
+2017-06-12  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Move xlat related functions to a separate file.
+	* util.c (xlookup, xlat_bsearch_compare, xlat_search, printxvals,
+	printxval_searchn, addflags, sprintflags, printflags_ex): Move ...
+	* xlat.c: ... to this new file.
+	* Makefile.am (strace_SOURCES): Add it.
+
+2017-06-12  Masatake YAMATO  <yamato@redhat.com>
+
+	socketeutils: extend receive_responses further.
+	This is the second patch in series of implementing NETLINK_GENERIC
+	protocol decoder.
+
+	This change allows passing of opaque user data to the callback function.
+
+	* socketutils.c (receive_responses): Change the type of proto_name
+	argument from "const char *" to "void *" to allow passing
+	of arbitrary data to the callback function.
+	Rename proto_name to opaque_data, make it the last argument.
+	Pass it to the callback function as the last argument.
+	(inet_parse_response, unix_parse_response, netlink_parse_response):
+	Change the type of proto_name argument from "const char *" to "void *",
+	rename it to opaque_data, make it the last argument.
+	Introduce a local variable proto_name to convert the type
+	of opaque_data argument from "void *" to "const char *".
+	(unix_get, inet_get, netlink_get): Cast the protocol name from
+	"const char *" to "void *" for passing to the callback function.
+
+2017-06-12  Masatake YAMATO  <yamato@redhat.com>
+
+	socketeutils: extend receive_responses to handle other netlink types.
+	This is the first patch in series of implementing NETLINK_GENERIC
+	protocol decoder.
+
+	receive_responses was written for decoding kernel responses of type
+	SOCK_DIAG_BY_FAMILY, other types were ignored.
+
+	This change makes the type of netlink response a parameter
+	so the function can be used for other types of communication.
+
+	* socketutils.c (receive_responses): add a new parameter
+	expected_msg_type to handle types other than SOCK_DIAG_BY_FAMILY.
+
+2017-06-12  JingPiao Chen  <chenjingpiao@gmail.com>
+
+	tests: fix typo.
+	* tests/dup3.c (SKIP_MAIN_UNDEFINED): Remove duplicated &&.
+
+2017-06-08  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Introduce printflags_ex function.
+	Add printflags_ex extension over printflags64 that, similar
+	to printxvals, takes a NULL-terminated sequence of xlat pointers.
+
+	* defs.h (printflags_ex): New prototype.
+	(printflags64): Turn into a thin wrapper around printflags_ex.
+	* netlink.c (decode_nlmsg_flags): Use printflags_ex.
+	* util.c (printflags_ex): New function.
+	(printflags64): Remove.
+	* xlat/netlink_get_flags.in: Remove entries listed
+	in xlat/netlink_flags.in file.
+	* xlat/netlink_new_flags.in: Likewise.
+
+2017-06-08  JingPiao Chen  <chenjingpiao@gmail.com>
+
+	tests: add check for decoding netlink get and new flags.
+	* tests/netlink_route.c (test_nlmsg_flags): New function, checks
+	decoding of NETLINK_ROUTE get and new flags.
+	(main): Use it.
+	* tests/netlink_sock_diag.c (test_nlmsg_flags): New function, checks
+	decoding of NETLINK_SOCK_DIAG get flags.
+	(main): Use it.
+	* tests/netlink_xfrm.c: (test_nlmsg_flags): New function, checks
+	decoding of NETLINK_XFRM get and new flags.
+	(main): Use it.
+
+2017-06-08  JingPiao Chen  <chenjingpiao@gmail.com>
+	    Fabien Siron  <fabien.siron@epita.fr>
+	    Dmitry V. Levin  <ldv@altlinux.org>
+
+	netlink: implement generic nlmsg_flags decoding.
+	* netlink.c: Include "xlat/netlink_get_flags.h"
+	and "xlat/netlink_new_flags.h".
+	(decode_nlmsg_flags): New function.
+	(print_nlmsghdr): Use it.
+	* xlat/netlink_get_flags.in: New file.
+	* xlat/netlink_new_flags.in: Likewise.
+
+2017-06-08  Dmitry V. Levin  <ldv@altlinux.org>
+
+	xlat: provide fallback definitions for XFRM_MSG_* constants.
+	Some of XFRM_MSG_* constants were introduced later than the header file
+	where they are defined.
+
+	* xlat/nl_xfrm_types.in: Add default values for constants.
+
+2017-06-05  Victor Krapivensky  <krapivenskiy.va@phystech.edu>
+
+	syscall.c: split trace_syscall() into 6 functions.
+	This change removes the trace_syscall function.  Now, the code that uses
+	syscall.c trace functions is expected to check whether it is a syscall
+	entry or exit (with entering(tcp)/exiting(tcp)) itself, and then make
+	an appropriate sequence of function calls.
+
+	* defs.h: Update comment on TCB_INSYSCALL.
+	(trace_syscall): Remove prototype.
+	(syscall_entering_decode, syscall_entering_trace,
+	syscall_entering_finish, syscall_exiting_decode, syscall_exiting_trace,
+	syscall_exiting_finish): New prototypes.
+	* strace.c (trace_syscall): New static replacement for old trace_syscall.
+	* syscall.c (trace_syscall): Remove.
+	(trace_syscall_entering): Split into ...
+	(syscall_entering_decode, syscall_entering_trace,
+	syscall_entering_finish): ... new functions.
+	(trace_syscall_exiting): Split into ...
+	(syscall_exiting_decode, syscall_exiting_trace,
+	syscall_exiting_finish): ... new functions.
+
+2017-06-05  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: guard against missing linux/netfilter/nfnetlink.h.
+	nfnetlink was introduced in linux by commit v2.6.14-rc1~1035^2~217,
+	add a guard for the case when system headers are not fresh enough.
+
+	* configure.ac (AC_CHECK_HEADERS): Add linux/netfilter/nfnetlink.h.
+	* tests/netlink_netfilter.c: Check for HAVE_LINUX_NETFILTER_NFNETLINK_H.
+
+2017-06-05  JingPiao Chen  <chenjingpiao@gmail.com>
+
+	tests: check decoding of NETLINK_XFRM message types.
+	* tests/netlink_xfrm.c: New file.
+	* tests/gen_tests.in (netlink_xfrm): New entry.
+	* tests/pure_executables.list: Add netlink_xfrm.
+	* tests/.gitignore: Likewise.
+
+	tests: check decoding of NETLINK_SELINUX message types.
+	* tests/netlink_selinux.c: New file.
+	* tests/gen_tests.in (netlink_selinux): New entry.
+	* tests/pure_executables.list: Add netlink_selinux.
+	* tests/.gitignore: Likewise.
+
+	tests: check decoding of NETLINK_NETFILTER message types.
+	* tests/netlink_netfilter.c: New file.
+	* tests/gen_tests.in (netlink_netfilter): New entry.
+	* tests/pure_executables.list: Add netlink_netfilter.
+	* tests/.gitignore: Likewise.
+
+	tests: check decoding of NETLINK_AUDIT message types.
+	* tests/netlink_audit.c: New file.
+	* tests/gen_tests.in (netlink_audit): New entry.
+	* tests/pure_executables.list: Add netlink_audit.
+	* tests/.gitignore: Likewise.
+
+	tests: check decoding of NETLINK_ROUTE message types.
+	* tests/netlink_route.c: New file.
+	* tests/gen_tests.in (netlink_route): New entry.
+	* tests/pure_executables.list: Add netlink_route.
+	* tests/.gitignore: Likewise.
+
+	tests: check decoding of NETLINK_SOCK_DIAG message types.
+	* tests/netlink_sock_diag.c: New file.
+	* tests/netlink_sock_diag.test: New test.
+	* tests/pure_executables.list: Add netlink_sock_diag.
+	* tests/.gitignore: Likewise.
+	* tests/Makefile.am (DECODER_TESTS): Add netlink_sock_diag.test.
+
+2017-06-05  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: use create_nl_socket in netlink_protocol.test.
+	* tests/netlink_protocol.c (main): Use create_nl_socket.
+
+	tests: change netlink_protocol.test to trace sendto syscalls only.
+	* tests/gen_tests.in (netlink_protocol): Replace %network with sendto.
+	* tests/netlink_protocol.c (main): Update expected output.
+
+	tests: enhance create_nl_socket diagnostics messages.
+	* tests/tests.h (create_nl_socket): Rename to create_nl_socket_ext,
+	add a string argument.
+	(create_nl_socket): New macro wrapper around create_nl_socket_ext.
+	* tests/create_nl_socket.c (create_nl_socket): Rename
+	to create_nl_socket_ext, add a string argument, include it
+	in diagnostic messages.
+
+	tests: use const and designated initializers in create_nl_socket.c.
+	* tests/create_nl_socket.c: Stop including <string.h>.
+	(create_nl_socket): Use const and designated initializers.
+
+2017-06-05  JingPiao Chen  <chenjingpiao@gmail.com>
+
+	tests: add create_nl_socket function to libtests.
+	* tests/create_nl_socket.c: New file.
+	* tests/tests.h (create_nl_socket): New prototype.
+	* tests/Makefile.am (libtests_a_SOURCES): Add create_nl_socket.c.
+
+2017-06-05  Dmitry V. Levin  <ldv@altlinux.org>
+	    Fabien Siron  <fabien.siron@epita.fr>
+
+	netlink: add decoding of NETLINK_NETFILTER message types.
+	* xlat/nl_netfilter_msg_types.in: New file.
+	* xlat/nl_netfilter_subsys_ids.in: Likewise.
+	* netlink.c: Include "xlat/nl_netfilter_msg_types.h"
+	and "xlat/nl_netfilter_subsys_ids.h".
+	(nlmsg_types): Add NETLINK_NETFILTER.
+	(decode_nlmsg_type): Handle NETLINK_NETFILTER.
+
+	netlink: add decoding of NETLINK_XFRM message types.
+	* xlat/nl_xfrm_types.in: New file.
+	* netlink.c: Include "xlat/nl_xfrm_types.h".
+	(nlmsg_types): Add NETLINK_XFRM.
+
+	netlink: add decoding of NETLINK_SELINUX message types.
+	* xlat/nl_selinux_types.in: New file.
+	* netlink.c: Include "xlat/nl_selinux_types.h".
+	(nlmsg_types): Add NETLINK_SELINUX.
+
+	netlink: add decoding of NETLINK_ROUTE message types.
+	* xlat/nl_route_types.in: New file.
+	* netlink.c: Include <linux/rtnetlink.h> and "xlat/nl_route_types.h".
+	(nlmsg_types): Add NETLINK_ROUTE.
+
+	netlink: add decoding of NETLINK_AUDIT message types.
+	* xlat/nl_audit_types.in: New file.
+	* netlink.c: Include <linux/audit.h> and "xlat/nl_audit_types.h".
+	(nlmsg_types): Add NETLINK_AUDIT.
+
+2017-06-05  Dmitry V. Levin  <ldv@altlinux.org>
+	    Fabien Siron  <fabien.siron@epita.fr>
+
+	netlink: implement generic nlmsg_type decoding.
+	Implement a pluggable mechanism of nlmsg_type decoding.
+	Add decoding of NETLINK_SOCK_DIAG types.
+
+	* linux/sock_diag.h (SOCK_DESTROY): New macro.
+	* xlat/nl_sock_diag_types.in: New file.
+	* netlink.c: Include xlat/nl_sock_diag_types.h.
+	(get_fd_nl_family, decode_nlmsg_type): New functions.
+	(print_nlmsghdr): Use them for nlmsg_type decoding.
+
+2017-06-05  Dmitry V. Levin  <ldv@altlinux.org>
+
+	netlink: add netlink family argument to printers and decoders.
+	* netlink.c (NL_FAMILY_ERROR, NL_FAMILY_DEFAULT): New constants.
+	(print_nlmsghdr): Add netlink family argument, change return type
+	to int, return family.
+	(decode_nlmsghdr_with_payload, decode_nlmsgerr, decode_payload): Add
+	netlink family argument.  All callers updated.
+
+2017-06-05  Fabien Siron  <fabien.siron@epita.fr>
+	    Dmitry V. Levin  <ldv@altlinux.org>
+
+	Add file descriptor argument to decode_netlink.
+	* defs.h (decode_netlink): Add file descriptor argument.
+	* io.c (print_iovec): Specify file descriptor to decode_netlink.
+	* net.c (decode_sockbuf): Likewise.
+	* netlink.c (print_nlmsghdr, decode_nlmsghdr_with_payload,
+	decode_nlmsgerr, decode_payload, decode_nlmsghdr_with_payload,
+	decode_netlink): Likewise.
+	All callers updated.
+
+	Introduce getfdinode to obtain inode from fd.
+	* defs.h (getfdinode): New prototype.
+	* utils.c (getfdinode): New function.
+
+2017-06-05  Fabien Siron  <fabien.siron@epita.fr>
+	    Dmitry V. Levin  <ldv@altlinux.org>
+
+	Introduce get_sockaddr_by_inode.
+	Add a way to get socket information without printing it.
+
+	* defs.h (get_sockaddr_by_inode): New prototype.
+	* socketutils.c (get_sockaddr_by_inode): New function.
+
+2017-06-05  Dmitry V. Levin  <ldv@altlinux.org>
+
+	socketutils.c: introduce get_sockaddr_by_inode_uncached.
+	* socketutils.c (get_sockaddr_by_inode_uncached): New function.
+	(print_sockaddr_by_inode_uncached): Use it.
+
+2017-06-05  Fabien Siron  <fabien.siron@epita.fr>
+	    Dmitry V. Levin  <ldv@altlinux.org>
+
+	socketutils.c: use get_sockaddr_by_inode_cached.
+	* socketutils.c (unix_print, inet_print, tcp_v4_print, tcp_v6_print,
+	udp_v4_print, udp_v6_print, netlink_print): Remove.
+	(unix_get, inet_get, tcp_v4_get, tcp_v6_get, udp_v4_get,
+	udp_v6_get, netlink_get): New functions.
+	(protocols): Update.
+
+2017-06-05  Dmitry V. Levin  <ldv@altlinux.org>
+
+	socketutils.c: move inet_print closer to its first use.
+	* socketutils.c (inet_print): Move right before tcp_v4_print.
+
+2017-06-05  Fabien Siron  <fabien.siron@epita.fr>
+	    Dmitry V. Levin  <ldv@altlinux.org>
+
+	socketutils.c: introduce cache_inode_details.
+	cache_inode_details gives a way to obtain cache information without
+	printing it.
+
+	* socketutils.c (cache_and_print_inode_details): Rename
+	to cache_inode_details.  Do not print cached information.
+	(inet_parse_response, unix_parse_response, netlink_parse_response):
+	Use cache_inode_details instead of cache_and_print_inode_details.
+	(inet_print, unix_print, netlink_print): Call
+	print_sockaddr_by_inode_cached.
+
+2017-06-05  Victor Krapivensky  <krapivenskiy.va@phystech.edu>
+
+	strace.c: move termination code to a separate function.
+	This will be needed for the pull-style API.
+
+	* strace.c (terminate): New function.
+	(main): Use it.
+
+2017-06-04  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: avoid hitting SO_SNDBUF limit in sendfile/sendfile64 tests.
+	Do not assume that an executable is small enough and SO_SNDBUF is large
+	enough so that the executable could be sendfile'ed into a socket pair.
+
+	* tests/sendfile.c (main): Create a regular file of the right size
+	to avoid hitting SO_SNDBUF limit.
+	* tests/sendfile64.c: Likewise.
+
+	Reported-by: Andreas Schwab <schwab@linux-m68k.org>
+
+2017-06-04  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Move netlink_protocols definition from net.c to netlink.c.
+	The side effect of #include "xlat/netlink_protocols.h" is
+	NETLINK_* constants properly defined in that header file.
+	While net.c does not use these constants itself, netlink.c
+	is going to need them soon.
+
+	* net.c: Move inclusion of "xlat/netlink_protocols.h" ...
+	* netlink.c: ... here.
+
+2017-06-04  Dmitry V. Levin  <ldv@altlinux.org>
+
+	travis: switch from gcc-6 to gcc-7.
+	* .travis.yml (matrix): Change gcc-6 to gcc-7.
+
+	tests: extend checking of NLMSG_DONE decoding.
+	* tests/netlink_protocol.c (test_nlmsg_done):  Use designated
+	initializers.  Check decoding of messages with non-integer payload.
+
+2017-06-04  JingPiao Chen  <chenjingpiao@gmail.com>
+
+	netlink: decode NLMSG_DONE messages.
+	* netlink.c (decode_payload): Decode NLMSG_DONE messages.
+	* tests/netlink_protocol.c (test_nlmsg_done): New function
+	for checking decoding of NLMSG_DONE messages.
+	(main): Use it.
+
+2017-06-04  Dmitry V. Levin  <ldv@altlinux.org>
+
+	socketutils.c: introduce get_sockaddr_by_inode_cached.
+	* socketutils.c (get_sockaddr_by_inode_cached): New function.
+	(print_sockaddr_by_inode_cached): Use it.
+
+2017-06-03  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Unexport print_sockaddr_by_inode_cached.
+	Change print_sockaddr_by_inode to be the only function exposed,
+	hide print_sockaddr_by_inode_cached as a part of implementation.
+
+	* defs.h (print_sockaddr_by_inode_cached): Remove prototype.
+	(print_sockaddr_by_inode): Add struct tcb * and descriptor arguments.
+	* socketutils.c (print_sockaddr_by_inode_cached): Make static.
+	(print_sockaddr_by_inode): Rename to print_sockaddr_by_inode_uncached,
+	make static.
+	(print_sockaddr_by_inode): New function.
+	* util.c (printfd): Update to use new print_sockaddr_by_inode.
+
+2017-06-03  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Introduce str_strip_prefix_len function and STR_STRIP_PREFIX macro.
+	Address proliferation of string prefix check implementations.
+
+	* defs.h (str_strip_prefix_len): New inline function.
+	(STR_STRIP_PREFIX): New macro.
+	* qualify.c (strip_prefix): Remove.
+	(parse_inject_token): Use STR_STRIP_PREFIX instead of strip_prefix.
+	(qualify): Use str_strip_prefix_len.
+	* socketutils.c (netlink_parse_response): Likewise.
+	* util.c (printfd): Likewise.
+
+2017-06-02  Dmitry V. Levin  <ldv@altlinux.org>
+
+	netlink: move NLMSG_ERROR payload length check to nlmsgerr decoder.
+	Move decoder specific check to the decoder.
+
+	* netlink.c (decode_payload): Move NLMSG_ERROR payload length check ...
+	(decode_nlmsgerr): ... here.
+
+2017-06-02  Dmitry V. Levin  <ldv@altlinux.org>
+
+	strace.c: handle PTRACE_EVENT_EXEC like other events.
+	There is nothing unusual about PTRACE_EVENT_EXEC that would require
+	a special treatment.
+
+	* strace.c (next_event): Move PTRACE_EVENT_EXEC handling to the main
+	switch statement.
+
+2017-06-02  Dmitry V. Levin  <ldv@altlinux.org>
+
+	strace.c: remove dead code.
+	As strace does not use WCONTINUED flag, there is no need to handle
+	WIFCONTINUED status.
+
+	* strace.c (print_debug_info) [WIFCONTINUED]: Remove.
+	(next_event): Remove redundant !WIFSTOPPED check.
+
+2017-06-02  Victor Krapivensky  <krapivenskiy.va@phystech.edu>
+
+	strace.c: refactor trace into two functions.
+	This change decouples waiting for next event from reacting to it.  This
+	makes the control flow easier to understand, and serves as a preparation
+	for implementing a pull-style API for LuaJIT.
+
+	* strace.c (enum trace_event): New enum.
+	(trace): Split into ...
+	(next_event, dispatch_event): ... new functions.
+	(main): Use them.
+
+2017-05-30  Dmitry V. Levin  <ldv@altlinux.org>
+
+	scno.am: include config.h before syscallent.h.
+	This fixes generation of syscallent.i and subsequent scno.h files
+	on mips where syscallent.h checks macros defined in config.h.
+
+	* scno.am (syscallent.i): Add $(top_builddir)/config.h
+	to prerequisites, include it.
+	* NEWS: Mention this fix.
+
+	Reported-by: David Robins <dbrobins@i4031.net>
+
+2017-05-28  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: check decoding of sigaction syscall.
+	* tests/sigaction.c: New file.
+	* tests/gen_tests.in (sigaction): New entry.
+	* tests/pure_executables.list: Add sigaction.
+	* tests/.gitignore: Likewise.
+
+	tests: rename sigaction.test to rt_sigaction.test.
+	* tests/sigaction.awk: Rename to rt_sigaction.awk.
+	* tests/sigaction.c: Rename to tests/rt_sigaction.c.
+	* tests/sigaction.test: Rename to tests/rt_sigaction.test.
+	* tests/.gitignore: Replace sigaction with rt_sigaction.
+	* tests/pure_executables.list: Likewise.
+	* tests/Makefile.am (DECODER_TESTS): Replace sigaction.test
+	with rt_sigaction.test.
+	(EXTRA_DIST): Replace sigaction.awk with rt_sigaction.awk.
+
+2017-05-28  Dmitry V. Levin  <ldv@altlinux.org>
+
+	sparc: enhance decoding of signal number argument of sigaction syscall.
+	On sparc, unlike all other architectures, old sigaction syscall takes
+	a negated signal number.
+
+	* signal.c (SYS_FUNC(sigaction)) [SPARC || SPARC64]: Enhance printing
+	of negative signal number argument.
+
+2017-05-28  Dmitry V. Levin  <ldv@altlinux.org>
+
+	signal: enhance printing of old_sigaction.mask.
+	* signal.c (decode_old_sigaction): Print old_sigaction.mask
+	using tprint_old_sigmask_val.
+
+	signal: limit scope of struct old_sigaction32 definition.
+	* signal.c (struct old_sigaction32): Define only if [!current_wordsize].
+
+2017-05-28  Dmitry V. Levin  <ldv@altlinux.org>
+
+	signal: fix decoding of struct old_sigaction on some architectures.
+	On alpha, struct old_sigaction.sa_flags has a 32-bit type.
+
+	On mips, only first word of old_sigaction.sa_mask is read.
+
+	On all architectures except alpha and mips that have old sigaction
+	syscall, struct old_sigaction has sa_restorer field that has to be
+	decoded.
+
+	* signal.c (struct old_sigaction) [ALPHA]: Change sa_flags type
+	to unsigned int, add ATTRIBUTE_PACKED.
+	[MIPS]: Dhrink sa_mask array to 1 element.
+	[!ALPHA && !MIPS]: Define sa_restorer field unconditionally.
+	(struct old_sigaction32): Likewise.
+	(decode_old_sigaction) [!current_wordsize]: Initialize sa_restorer field
+	from old_sigaction32.sa_restorer unconditionally.
+	[!ALPHA && !MIPS]: Print old_sigaction.sa_restorer if SA_RESTORER flag
+	is set.
+	* NEWS: Mention this change.
+
+2017-05-28  Dmitry V. Levin  <ldv@altlinux.org>
+
+	xlat: rename SA_STACK to SA_ONSTACK.
+	SA_ONSTACK is the standard name while its alias SA_STACK is not even
+	defined on many platforms.
+
+	* xlat/sigact_flags.in (SA_STACK): Rename to SA_ONSTACK.
+
+2017-05-28  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: check decoding of sigpending syscall.
+	* tests/sigpending.c: New file.
+	* tests/gen_tests.in (sigpending): New entry.
+	* tests/pure_executables.list: Add sigpending.
+	* tests/.gitignore: Likewise.
+
+	tests: check decoding of sigprocmask syscall.
+	* tests/sigprocmask.c: New file.
+	* tests/gen_tests.in (sigprocmask): New entry.
+	* tests/pure_executables.list: Add sigprocmask.
+	* tests/.gitignore: Likewise.
+
+2017-05-28  Dmitry V. Levin  <ldv@altlinux.org>
+
+	alpha: rename sys_sigprocmask to sys_osf_sigprocmask.
+	Parsers of sigprocmask and osf_sigprocmask syscalls are different
+	anyway, so rename the function to match the syscall name.
+
+	* signal.c [ALPHA] (SYS_FUNC(sigprocmask)): Rename
+	to SYS_FUNC(osf_sigprocmask).
+	* linux/alpha/syscallent.h: Update sys_func.
+
+2017-05-27  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Enable coverage when strace is self terminated by signal.
+	The data collected by -fprofile-arcs during program run is saved
+	on program exit.  When program is terminated by signal, the data
+	is not saved.  However, libgcov provides an interface to dump
+	the data at runtime.
+
+	* m4/ax_code_coverage.m4 (AX_CODE_COVERAGE): Add -DENABLE_COVERAGE_GCOV
+	to CODE_COVERAGE_CPPFLAGS.
+	* strace.c [ENABLE_COVERAGE_GCOV] (__gcov_flush): New prototype.
+	(main) [ENABLE_COVERAGE_GCOV]: Call __gcov_flush() before raise()
+	and sigprocmask() calls that might cause program termination.
+
+2017-05-27  Dmitry V. Levin  <ldv@altlinux.org>
+
+	tests: check termination signal forwarding.
+	* tests/run_expect_termsig.c: New file.
+	* tests/unblock_reset_raise.c: Likewise.
+	* tests/termsig.test: New test.
+	* tests/.gitignore: Add run_expect_termsig and unblock_reset_raise.
+	* tests/Makefile.am (check_PROGRAMS): Likewise.
+	(MISC_TESTS): Add termsig.test.
+
+2017-05-27  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Fix termination signal forwarding.
+	When traced command is terminated by a blocked signal, unblock
+	that signal to ensure strace termination with the same signal.
+
+	* strace.c (main): Unblock the signal raised for strace termination.
+	* NEWS: Mention this change.
+
+2017-05-27  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Do not reset SIGCHLD handler in tracees to SIG_DFL.
+	While strace resets SIGCHLD handler to the default action so that
+	waitpid definitely works without losing track of children, tracees
+	should not inherit this change.
+
+	* strace.c (struct exec_params): Add child_sa field.
+	(init): When setting SIGCHLD handler to SIG_DFL, save the old handler.
+	(exec_or_die): Restore SIGCHLD handler if it was different from SIG_DFL
+	at startup.
+	* NEWS: Mention this change.
+
+2017-05-27  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Refactor setting of signal handlers to reduce redundancy.
+	* strace.c (set_sigaction): New function.
+	(init): Use it instead of sigaction with sigaddset.
+
+	tests: check how signals are unblocked in interactive mode.
+	* tests/block_reset_raise_run.c: New file.
+	* tests/interactive_block.test: New test.
+	* tests/.gitignore: Add block_reset_raise_run.
+	* tests/Makefile.am (check_PROGRAMS): Likewise.
+	(MISC_TESTS): Add interactive_block.test.
+
+2017-05-27  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Fix unblocking of signals in interactive mode.
+	In interactive mode (-I2), those signals that were blocked at startup
+	will remain blocked for the whole period of strace execution.
+
+	* strace.c (empty_set): Rename to start_set.  All users changed.
+	(init): Initialize start_set and blocked_set to the set of currently
+	blocked signals.
+	(startup_attach, trace): Use SIG_SETMASK instead of SIG_BLOCK.
+	* NEWS: Mention this change.
+
+2017-05-26  Dmitry V. Levin  <ldv@altlinux.org>
+
+	Cleanup interactive check.
+	* strace.c (init): Check for INTR_WHILE_WAIT mode the same way
+	as in other places.
+
+	tests: check decoding of signal syscall.
+	* tests/signal.c: New file.
+	* tests/gen_tests.in (signal): New entry.
+	* tests/pure_executables.list: Add signal.
+	* tests/.gitignore: Likewise.
+
+2017-05-26  Eugene Syromyatnikov  <evgsyr@gmail.com>
+
+	Unify capitalisation of (c) in copyright notices.
+
+2017-05-25  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.17-1.
+	* strace.spec.in: Likewise.
+
 2017-05-24  Dmitry V. Levin  <ldv@altlinux.org>
 
 	Prepare for 4.17 release.
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..cb65021
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,1064 @@
+# 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>
+# Copyright (c) 2002-2017 The strace developers.
+# 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 \
+	sigreturn.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		\
+	dyxlat.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		\
+	macros.h	\
+	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       \
+	netlink.h	\
+	netlink_sock_diag.c \
+	nlattr.c	\
+	nlattr.h	\
+	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_fields.h	\
+	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.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			\
+	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_rt_sigframe.c\
+	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_rt_sigframe.c	\
+	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/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	\
+	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_rt_sigframe.c	\
+	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/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	\
+	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/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	\
+	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/arch_rt_sigframe.c	\
+	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/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		\
+	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_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		\
+	linux/ia64/userent.h		\
+	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	\
+	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_rt_sigframe.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_rt_sigframe.c	\
+	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/rt_sigframe.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/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	\
+	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/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	\
+	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/packet_diag.h		\
+	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	\
+	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_rt_sigframe.c\
+	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/rt_sigframe.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/arch_regs.h		\
+	linux/riscv/arch_rt_sigframe.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/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		\
+	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_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	\
+	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/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		\
+	linux/sh64/userent.h		\
+	linux/signalent.h		\
+	linux/smc_diag.h		\
+	linux/sock_diag.h		\
+	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		\
+	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/rt_sigframe.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_rt_sigframe.c\
+	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/rt_sigframe.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_rt_sigframe.c	\
+	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/rt_sigframe.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_rt_sigframe.c	\
+	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/rt_sigframe.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_rt_sigframe.c	\
+	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/rt_sigframe.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/arch_rt_sigframe.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		\
+	mpers.awk			\
+	mpers.sh			\
+	mpers_test.sh			\
+	mpers_xlat.h			\
+	scno.head			\
+	strace-graph			\
+	strace-log-merge		\
+	strace.spec			\
+	$(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
+	${AM_V_GEN}echo $(COPYRIGHT_YEAR) > $(distdir)/.year
+
+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 ee3dbe3..ab67ad0 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -291,24 +291,26 @@
 am__strace_SOURCES_DIST = 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 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 \
+	defs.h desc.c dirent.c dirent64.c dm.c dyxlat.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 \
+	macros.h 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 netlink.h netlink_sock_diag.c \
+	nlattr.c nlattr.h 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_fields.h 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 \
@@ -322,8 +324,8 @@
 	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
+	ustat.c util.c utime.c utimes.c v4l2.c wait.c xattr.c xlat.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) \
@@ -334,12 +336,12 @@
 	strace-clone.$(OBJEXT) strace-copy_file_range.$(OBJEXT) \
 	strace-count.$(OBJEXT) strace-desc.$(OBJEXT) \
 	strace-dirent.$(OBJEXT) strace-dirent64.$(OBJEXT) \
-	strace-dm.$(OBJEXT) strace-epoll.$(OBJEXT) \
-	strace-evdev.$(OBJEXT) strace-eventfd.$(OBJEXT) \
-	strace-execve.$(OBJEXT) strace-fadvise.$(OBJEXT) \
-	strace-fallocate.$(OBJEXT) strace-fanotify.$(OBJEXT) \
-	strace-fchownat.$(OBJEXT) strace-fcntl.$(OBJEXT) \
-	strace-fetch_seccomp_fprog.$(OBJEXT) \
+	strace-dm.$(OBJEXT) strace-dyxlat.$(OBJEXT) \
+	strace-epoll.$(OBJEXT) strace-evdev.$(OBJEXT) \
+	strace-eventfd.$(OBJEXT) strace-execve.$(OBJEXT) \
+	strace-fadvise.$(OBJEXT) strace-fallocate.$(OBJEXT) \
+	strace-fanotify.$(OBJEXT) strace-fchownat.$(OBJEXT) \
+	strace-fcntl.$(OBJEXT) strace-fetch_seccomp_fprog.$(OBJEXT) \
 	strace-fetch_struct_flock.$(OBJEXT) \
 	strace-fetch_struct_mmsghdr.$(OBJEXT) \
 	strace-fetch_struct_msghdr.$(OBJEXT) \
@@ -366,7 +368,8 @@
 	strace-mmsghdr.$(OBJEXT) strace-mount.$(OBJEXT) \
 	strace-mq.$(OBJEXT) strace-msghdr.$(OBJEXT) \
 	strace-mtd.$(OBJEXT) strace-net.$(OBJEXT) \
-	strace-netlink.$(OBJEXT) strace-nsfs.$(OBJEXT) \
+	strace-netlink.$(OBJEXT) strace-netlink_sock_diag.$(OBJEXT) \
+	strace-nlattr.$(OBJEXT) strace-nsfs.$(OBJEXT) \
 	strace-numa.$(OBJEXT) strace-oldstat.$(OBJEXT) \
 	strace-open.$(OBJEXT) strace-or1k_atomic.$(OBJEXT) \
 	strace-pathtrace.$(OBJEXT) strace-perf.$(OBJEXT) \
@@ -407,8 +410,8 @@
 	strace-ustat.$(OBJEXT) strace-util.$(OBJEXT) \
 	strace-utime.$(OBJEXT) strace-utimes.$(OBJEXT) \
 	strace-v4l2.$(OBJEXT) strace-wait.$(OBJEXT) \
-	strace-xattr.$(OBJEXT) strace-xmalloc.$(OBJEXT) \
-	$(am__objects_3)
+	strace-xattr.$(OBJEXT) strace-xlat.$(OBJEXT) \
+	strace-xmalloc.$(OBJEXT) $(am__objects_3)
 strace_OBJECTS = $(am_strace_OBJECTS)
 am__DEPENDENCIES_1 =
 @USE_LIBUNWIND_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
@@ -778,7 +781,9 @@
 	xlat/hw_breakpoint_len.in xlat/hw_breakpoint_type.in \
 	xlat/icmpfilterflags.in xlat/if_dqblk_valid.in \
 	xlat/if_dqinfo_flags.in xlat/if_dqinfo_valid.in \
-	xlat/iffflags.in xlat/inet_protocols.in xlat/inotify_flags.in \
+	xlat/iffflags.in xlat/inet_diag_attrs.in \
+	xlat/inet_diag_extended_flags.in xlat/inet_diag_req_attrs.in \
+	xlat/inet_protocols.in xlat/inotify_flags.in \
 	xlat/inotify_init_flags.in xlat/ioctl_dirs.in \
 	xlat/ioprio_class.in xlat/ioprio_who.in xlat/ip_cmsg_types.in \
 	xlat/ipc_msg_flags.in xlat/ipccalls.in xlat/itimer_which.in \
@@ -798,13 +803,20 @@
 	xlat/mtd_file_mode_options.in xlat/mtd_flags_options.in \
 	xlat/mtd_mode_options.in xlat/mtd_nandecc_options.in \
 	xlat/mtd_otp_options.in xlat/mtd_type_options.in \
-	xlat/name_to_handle_at_flags.in xlat/netlink_flags.in \
-	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/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/name_to_handle_at_flags.in xlat/netlink_diag_attrs.in \
+	xlat/netlink_diag_show.in xlat/netlink_flags.in \
+	xlat/netlink_get_flags.in xlat/netlink_new_flags.in \
+	xlat/netlink_protocols.in xlat/netlink_socket_flags.in \
+	xlat/netlink_states.in xlat/netlink_types.in \
+	xlat/nl_audit_types.in xlat/nl_netfilter_msg_types.in \
+	xlat/nl_netfilter_subsys_ids.in xlat/nl_route_types.in \
+	xlat/nl_selinux_types.in xlat/nl_sock_diag_types.in \
+	xlat/nl_xfrm_types.in xlat/notifyflags.in \
+	xlat/nt_descriptor_types.in xlat/open_access_modes.in \
+	xlat/open_mode_flags.in xlat/packet_diag_attrs.in \
+	xlat/packet_diag_show.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 \
@@ -837,7 +849,8 @@
 	xlat/sigpoll_codes.in xlat/sigprocmaskcmds.in \
 	xlat/sigprof_codes.in xlat/sigsegv_codes.in \
 	xlat/sigsys_codes.in xlat/sigtrap_codes.in \
-	xlat/sock_type_flags.in xlat/socketcalls.in \
+	xlat/smc_diag_attrs.in xlat/smc_diag_extended_flags.in \
+	xlat/smc_states.in xlat/sock_type_flags.in xlat/socketcalls.in \
 	xlat/socketlayers.in xlat/sockipoptions.in \
 	xlat/sockipv6options.in xlat/sockipxoptions.in \
 	xlat/sockoptions.in xlat/sockpacketoptions.in \
@@ -852,13 +865,14 @@
 	xlat/sysctl_net_ipv6_route.in xlat/sysctl_net_unix.in \
 	xlat/sysctl_root.in xlat/sysctl_vm.in \
 	xlat/syslog_action_type.in xlat/sysmips_operations.in \
-	xlat/tcflsh_options.in xlat/tcxonc_options.in \
-	xlat/timerfdflags.in xlat/ubi_volume_props.in \
-	xlat/ubi_volume_types.in xlat/uffd_api_flags.in \
-	xlat/uffd_copy_flags.in xlat/uffd_flags.in \
-	xlat/uffd_register_ioctl_flags.in \
+	xlat/tcflsh_options.in xlat/tcp_state_flags.in \
+	xlat/tcp_states.in xlat/tcxonc_options.in xlat/timerfdflags.in \
+	xlat/ubi_volume_props.in xlat/ubi_volume_types.in \
+	xlat/uffd_api_flags.in xlat/uffd_copy_flags.in \
+	xlat/uffd_flags.in xlat/uffd_register_ioctl_flags.in \
 	xlat/uffd_register_mode_flags.in xlat/uffd_zeropage_flags.in \
-	xlat/umount_flags.in xlat/unshare_flags.in xlat/usagewho.in \
+	xlat/umount_flags.in xlat/unix_diag_attrs.in \
+	xlat/unix_diag_show.in xlat/unshare_flags.in xlat/usagewho.in \
 	xlat/v4l2_buf_flags.in xlat/v4l2_buf_types.in \
 	xlat/v4l2_capture_modes.in xlat/v4l2_colorspaces.in \
 	xlat/v4l2_control_classes.in xlat/v4l2_control_flags.in \
@@ -921,11 +935,12 @@
 	xlat/hw_breakpoint_len.h xlat/hw_breakpoint_type.h \
 	xlat/icmpfilterflags.h xlat/if_dqblk_valid.h \
 	xlat/if_dqinfo_flags.h xlat/if_dqinfo_valid.h xlat/iffflags.h \
-	xlat/inet_protocols.h xlat/inotify_flags.h \
-	xlat/inotify_init_flags.h xlat/ioctl_dirs.h \
-	xlat/ioprio_class.h xlat/ioprio_who.h xlat/ip_cmsg_types.h \
-	xlat/ipc_msg_flags.h xlat/ipccalls.h xlat/itimer_which.h \
-	xlat/kcmp_types.h xlat/kexec_arch_values.h \
+	xlat/inet_diag_attrs.h xlat/inet_diag_extended_flags.h \
+	xlat/inet_diag_req_attrs.h xlat/inet_protocols.h \
+	xlat/inotify_flags.h xlat/inotify_init_flags.h \
+	xlat/ioctl_dirs.h xlat/ioprio_class.h xlat/ioprio_who.h \
+	xlat/ip_cmsg_types.h xlat/ipc_msg_flags.h xlat/ipccalls.h \
+	xlat/itimer_which.h xlat/kcmp_types.h xlat/kexec_arch_values.h \
 	xlat/kexec_file_load_flags.h xlat/kexec_load_flags.h \
 	xlat/key_perms.h xlat/key_reqkeys.h xlat/key_spec.h \
 	xlat/keyctl_commands.h xlat/lockfcmds.h xlat/loop_cmds.h \
@@ -940,16 +955,23 @@
 	xlat/mtd_file_mode_options.h xlat/mtd_flags_options.h \
 	xlat/mtd_mode_options.h xlat/mtd_nandecc_options.h \
 	xlat/mtd_otp_options.h xlat/mtd_type_options.h \
-	xlat/name_to_handle_at_flags.h xlat/netlink_flags.h \
-	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/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/name_to_handle_at_flags.h xlat/netlink_diag_attrs.h \
+	xlat/netlink_diag_show.h xlat/netlink_flags.h \
+	xlat/netlink_get_flags.h xlat/netlink_new_flags.h \
+	xlat/netlink_protocols.h xlat/netlink_socket_flags.h \
+	xlat/netlink_states.h xlat/netlink_types.h \
+	xlat/nl_audit_types.h xlat/nl_netfilter_msg_types.h \
+	xlat/nl_netfilter_subsys_ids.h xlat/nl_route_types.h \
+	xlat/nl_selinux_types.h xlat/nl_sock_diag_types.h \
+	xlat/nl_xfrm_types.h xlat/notifyflags.h \
+	xlat/nt_descriptor_types.h xlat/open_access_modes.h \
+	xlat/open_mode_flags.h xlat/packet_diag_attrs.h \
+	xlat/packet_diag_show.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 \
@@ -975,27 +997,30 @@
 	xlat/sigfpe_codes.h xlat/sigill_codes.h xlat/siginfo_codes.h \
 	xlat/sigpoll_codes.h xlat/sigprocmaskcmds.h \
 	xlat/sigprof_codes.h xlat/sigsegv_codes.h xlat/sigsys_codes.h \
-	xlat/sigtrap_codes.h xlat/sock_type_flags.h xlat/socketcalls.h \
-	xlat/socketlayers.h xlat/sockipoptions.h \
-	xlat/sockipv6options.h xlat/sockipxoptions.h \
-	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/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/sigtrap_codes.h xlat/smc_diag_attrs.h \
+	xlat/smc_diag_extended_flags.h xlat/smc_states.h \
+	xlat/sock_type_flags.h xlat/socketcalls.h xlat/socketlayers.h \
+	xlat/sockipoptions.h xlat/sockipv6options.h \
+	xlat/sockipxoptions.h 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/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 \
 	xlat/sysctl_net_ipv4_route.h xlat/sysctl_net_ipv6.h \
 	xlat/sysctl_net_ipv6_route.h xlat/sysctl_net_unix.h \
 	xlat/sysctl_root.h xlat/sysctl_vm.h xlat/syslog_action_type.h \
 	xlat/sysmips_operations.h xlat/tcflsh_options.h \
-	xlat/tcxonc_options.h xlat/timerfdflags.h \
-	xlat/ubi_volume_props.h xlat/ubi_volume_types.h \
-	xlat/uffd_api_flags.h xlat/uffd_copy_flags.h xlat/uffd_flags.h \
+	xlat/tcp_state_flags.h xlat/tcp_states.h xlat/tcxonc_options.h \
+	xlat/timerfdflags.h xlat/ubi_volume_props.h \
+	xlat/ubi_volume_types.h xlat/uffd_api_flags.h \
+	xlat/uffd_copy_flags.h xlat/uffd_flags.h \
 	xlat/uffd_register_ioctl_flags.h \
 	xlat/uffd_register_mode_flags.h xlat/uffd_zeropage_flags.h \
-	xlat/umount_flags.h xlat/unshare_flags.h xlat/usagewho.h \
+	xlat/umount_flags.h xlat/unix_diag_attrs.h \
+	xlat/unix_diag_show.h xlat/unshare_flags.h xlat/usagewho.h \
 	xlat/v4l2_buf_flags.h xlat/v4l2_buf_types.h \
 	xlat/v4l2_capture_modes.h xlat/v4l2_colorspaces.h \
 	xlat/v4l2_control_classes.h xlat/v4l2_control_flags.h \
@@ -1036,9 +1061,9 @@
 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 \
+	dirent.c dirent64.c dm.c dyxlat.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 \
@@ -1048,12 +1073,13 @@
 	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 nsfs.c nsfs.h nsig.h numa.c \
-	oldstat.c open.c or1k_atomic.c pathtrace.c perf.c \
+	loop.c lseek.c macros.h 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 netlink.h \
+	netlink_sock_diag.c nlattr.c nlattr.h 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_dev_t.c print_fields.h 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 \
@@ -1067,8 +1093,8 @@
 	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)
+	ustat.c util.c utime.c utimes.c v4l2.c wait.c xattr.c xlat.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 .)
@@ -1351,6 +1377,7 @@
 	linux/or1k/set_scno.c		\
 	linux/or1k/syscallent.h		\
 	linux/or1k/userent.h		\
+	linux/packet_diag.h		\
 	linux/personality.h		\
 	linux/powerpc/arch_regs.c	\
 	linux/powerpc/arch_regs.h	\
@@ -1467,6 +1494,7 @@
 	linux/sh64/syscallent.h		\
 	linux/sh64/userent.h		\
 	linux/signalent.h		\
+	linux/smc_diag.h		\
 	linux/sock_diag.h		\
 	linux/sparc/arch_getrval2.c	\
 	linux/sparc/arch_regs.c		\
@@ -1930,6 +1958,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-dirent.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-dirent64.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-dm.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-dyxlat.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-epoll.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-evdev.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-eventfd.Po@am__quote@
@@ -1987,6 +2016,8 @@
 @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-netlink_sock_diag.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-nlattr.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@
@@ -2068,6 +2099,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-v4l2.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-wait.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-xattr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-xlat.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strace-xmalloc.Po@am__quote@
 
 .c.o:
@@ -3512,6 +3544,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-dm.obj `if test -f 'dm.c'; then $(CYGPATH_W) 'dm.c'; else $(CYGPATH_W) '$(srcdir)/dm.c'; fi`
 
+strace-dyxlat.o: dyxlat.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-dyxlat.o -MD -MP -MF $(DEPDIR)/strace-dyxlat.Tpo -c -o strace-dyxlat.o `test -f 'dyxlat.c' || echo '$(srcdir)/'`dyxlat.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-dyxlat.Tpo $(DEPDIR)/strace-dyxlat.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='dyxlat.c' object='strace-dyxlat.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-dyxlat.o `test -f 'dyxlat.c' || echo '$(srcdir)/'`dyxlat.c
+
+strace-dyxlat.obj: dyxlat.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-dyxlat.obj -MD -MP -MF $(DEPDIR)/strace-dyxlat.Tpo -c -o strace-dyxlat.obj `if test -f 'dyxlat.c'; then $(CYGPATH_W) 'dyxlat.c'; else $(CYGPATH_W) '$(srcdir)/dyxlat.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-dyxlat.Tpo $(DEPDIR)/strace-dyxlat.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='dyxlat.c' object='strace-dyxlat.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-dyxlat.obj `if test -f 'dyxlat.c'; then $(CYGPATH_W) 'dyxlat.c'; else $(CYGPATH_W) '$(srcdir)/dyxlat.c'; fi`
+
 strace-epoll.o: epoll.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-epoll.o -MD -MP -MF $(DEPDIR)/strace-epoll.Tpo -c -o strace-epoll.o `test -f 'epoll.c' || echo '$(srcdir)/'`epoll.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-epoll.Tpo $(DEPDIR)/strace-epoll.Po
@@ -4310,6 +4356,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-netlink.obj `if test -f 'netlink.c'; then $(CYGPATH_W) 'netlink.c'; else $(CYGPATH_W) '$(srcdir)/netlink.c'; fi`
 
+strace-netlink_sock_diag.o: netlink_sock_diag.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-netlink_sock_diag.o -MD -MP -MF $(DEPDIR)/strace-netlink_sock_diag.Tpo -c -o strace-netlink_sock_diag.o `test -f 'netlink_sock_diag.c' || echo '$(srcdir)/'`netlink_sock_diag.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-netlink_sock_diag.Tpo $(DEPDIR)/strace-netlink_sock_diag.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='netlink_sock_diag.c' object='strace-netlink_sock_diag.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-netlink_sock_diag.o `test -f 'netlink_sock_diag.c' || echo '$(srcdir)/'`netlink_sock_diag.c
+
+strace-netlink_sock_diag.obj: netlink_sock_diag.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-netlink_sock_diag.obj -MD -MP -MF $(DEPDIR)/strace-netlink_sock_diag.Tpo -c -o strace-netlink_sock_diag.obj `if test -f 'netlink_sock_diag.c'; then $(CYGPATH_W) 'netlink_sock_diag.c'; else $(CYGPATH_W) '$(srcdir)/netlink_sock_diag.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-netlink_sock_diag.Tpo $(DEPDIR)/strace-netlink_sock_diag.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='netlink_sock_diag.c' object='strace-netlink_sock_diag.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-netlink_sock_diag.obj `if test -f 'netlink_sock_diag.c'; then $(CYGPATH_W) 'netlink_sock_diag.c'; else $(CYGPATH_W) '$(srcdir)/netlink_sock_diag.c'; fi`
+
+strace-nlattr.o: nlattr.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-nlattr.o -MD -MP -MF $(DEPDIR)/strace-nlattr.Tpo -c -o strace-nlattr.o `test -f 'nlattr.c' || echo '$(srcdir)/'`nlattr.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-nlattr.Tpo $(DEPDIR)/strace-nlattr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='nlattr.c' object='strace-nlattr.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-nlattr.o `test -f 'nlattr.c' || echo '$(srcdir)/'`nlattr.c
+
+strace-nlattr.obj: nlattr.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-nlattr.obj -MD -MP -MF $(DEPDIR)/strace-nlattr.Tpo -c -o strace-nlattr.obj `if test -f 'nlattr.c'; then $(CYGPATH_W) 'nlattr.c'; else $(CYGPATH_W) '$(srcdir)/nlattr.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-nlattr.Tpo $(DEPDIR)/strace-nlattr.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='nlattr.c' object='strace-nlattr.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-nlattr.obj `if test -f 'nlattr.c'; then $(CYGPATH_W) 'nlattr.c'; else $(CYGPATH_W) '$(srcdir)/nlattr.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
@@ -5430,6 +5504,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-xattr.obj `if test -f 'xattr.c'; then $(CYGPATH_W) 'xattr.c'; else $(CYGPATH_W) '$(srcdir)/xattr.c'; fi`
 
+strace-xlat.o: xlat.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-xlat.o -MD -MP -MF $(DEPDIR)/strace-xlat.Tpo -c -o strace-xlat.o `test -f 'xlat.c' || echo '$(srcdir)/'`xlat.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-xlat.Tpo $(DEPDIR)/strace-xlat.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='xlat.c' object='strace-xlat.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-xlat.o `test -f 'xlat.c' || echo '$(srcdir)/'`xlat.c
+
+strace-xlat.obj: xlat.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-xlat.obj -MD -MP -MF $(DEPDIR)/strace-xlat.Tpo -c -o strace-xlat.obj `if test -f 'xlat.c'; then $(CYGPATH_W) 'xlat.c'; else $(CYGPATH_W) '$(srcdir)/xlat.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-xlat.Tpo $(DEPDIR)/strace-xlat.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='xlat.c' object='strace-xlat.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-xlat.obj `if test -f 'xlat.c'; then $(CYGPATH_W) 'xlat.c'; else $(CYGPATH_W) '$(srcdir)/xlat.c'; fi`
+
 strace-xmalloc.o: xmalloc.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(strace_CPPFLAGS) $(CPPFLAGS) $(strace_CFLAGS) $(CFLAGS) -MT strace-xmalloc.o -MD -MP -MF $(DEPDIR)/strace-xmalloc.Tpo -c -o strace-xmalloc.o `test -f 'xmalloc.c' || echo '$(srcdir)/'`xmalloc.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/strace-xmalloc.Tpo $(DEPDIR)/strace-xmalloc.Po
@@ -6182,6 +6270,12 @@
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/iffflags.h: $(top_srcdir)/xlat/iffflags.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/inet_diag_attrs.h: $(top_srcdir)/xlat/inet_diag_attrs.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/inet_diag_extended_flags.h: $(top_srcdir)/xlat/inet_diag_extended_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/inet_diag_req_attrs.h: $(top_srcdir)/xlat/inet_diag_req_attrs.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/inet_protocols.h: $(top_srcdir)/xlat/inet_protocols.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/inotify_flags.h: $(top_srcdir)/xlat/inotify_flags.in $(top_srcdir)/xlat/gen.sh
@@ -6278,12 +6372,38 @@
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/name_to_handle_at_flags.h: $(top_srcdir)/xlat/name_to_handle_at_flags.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/netlink_diag_attrs.h: $(top_srcdir)/xlat/netlink_diag_attrs.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/netlink_diag_show.h: $(top_srcdir)/xlat/netlink_diag_show.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/netlink_flags.h: $(top_srcdir)/xlat/netlink_flags.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/netlink_get_flags.h: $(top_srcdir)/xlat/netlink_get_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/netlink_new_flags.h: $(top_srcdir)/xlat/netlink_new_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/netlink_protocols.h: $(top_srcdir)/xlat/netlink_protocols.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/netlink_socket_flags.h: $(top_srcdir)/xlat/netlink_socket_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/netlink_states.h: $(top_srcdir)/xlat/netlink_states.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/netlink_types.h: $(top_srcdir)/xlat/netlink_types.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/nl_audit_types.h: $(top_srcdir)/xlat/nl_audit_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/nl_netfilter_msg_types.h: $(top_srcdir)/xlat/nl_netfilter_msg_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/nl_netfilter_subsys_ids.h: $(top_srcdir)/xlat/nl_netfilter_subsys_ids.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/nl_route_types.h: $(top_srcdir)/xlat/nl_route_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/nl_selinux_types.h: $(top_srcdir)/xlat/nl_selinux_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/nl_sock_diag_types.h: $(top_srcdir)/xlat/nl_sock_diag_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/nl_xfrm_types.h: $(top_srcdir)/xlat/nl_xfrm_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/notifyflags.h: $(top_srcdir)/xlat/notifyflags.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/nt_descriptor_types.h: $(top_srcdir)/xlat/nt_descriptor_types.in $(top_srcdir)/xlat/gen.sh
@@ -6292,6 +6412,10 @@
 	$(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/packet_diag_attrs.h: $(top_srcdir)/xlat/packet_diag_attrs.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/packet_diag_show.h: $(top_srcdir)/xlat/packet_diag_show.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
@@ -6448,6 +6572,12 @@
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/sigtrap_codes.h: $(top_srcdir)/xlat/sigtrap_codes.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/smc_diag_attrs.h: $(top_srcdir)/xlat/smc_diag_attrs.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/smc_diag_extended_flags.h: $(top_srcdir)/xlat/smc_diag_extended_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/smc_states.h: $(top_srcdir)/xlat/smc_states.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/sock_type_flags.h: $(top_srcdir)/xlat/sock_type_flags.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/socketcalls.h: $(top_srcdir)/xlat/socketcalls.in $(top_srcdir)/xlat/gen.sh
@@ -6514,6 +6644,10 @@
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/tcflsh_options.h: $(top_srcdir)/xlat/tcflsh_options.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/tcp_state_flags.h: $(top_srcdir)/xlat/tcp_state_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/tcp_states.h: $(top_srcdir)/xlat/tcp_states.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/tcxonc_options.h: $(top_srcdir)/xlat/tcxonc_options.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/timerfdflags.h: $(top_srcdir)/xlat/timerfdflags.in $(top_srcdir)/xlat/gen.sh
@@ -6536,6 +6670,10 @@
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/umount_flags.h: $(top_srcdir)/xlat/umount_flags.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/unix_diag_attrs.h: $(top_srcdir)/xlat/unix_diag_attrs.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/unix_diag_show.h: $(top_srcdir)/xlat/unix_diag_show.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/unshare_flags.h: $(top_srcdir)/xlat/unshare_flags.in $(top_srcdir)/xlat/gen.sh
 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
 $(top_srcdir)/xlat/usagewho.h: $(top_srcdir)/xlat/usagewho.in $(top_srcdir)/xlat/gen.sh
@@ -6660,8 +6798,8 @@
 ioctls_all%.h: $(srcdir)/$(OS)/$(ARCH)/ioctls_inc%.h $(srcdir)/$(OS)/$(ARCH)/ioctls_arch%.h
 	cat $^ > $@
 
-syscallent.i: $(top_srcdir)/$(OS)/$(ARCH)/syscallent.h
-	$(CPP) -P $(SCNO_CPPFLAGS) $^ -o $@
+syscallent.i: $(top_builddir)/config.h $(top_srcdir)/$(OS)/$(ARCH)/syscallent.h
+	$(CPP) -P $(SCNO_CPPFLAGS) -include $^ -o $@
 
 scno.h: $(top_srcdir)/scno.head syscallent.i
 	echo '/* Generated by Makefile from $^; do not edit. */' > $@-t
diff --git a/NEWS b/NEWS
index b8c88eb..85806f9 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,35 @@
+Noteworthy changes in release 4.18 (2017-07-05)
+===============================================
+
+* Improvements
+  * Implemented decoding of SCM_TIMESTAMP* control messages.
+  * Implemented decoding of netlink NLMSG_DONE messages.
+  * Implemented decoding of netlink generic nlmsg_type and nlmsg_flags.
+  * Implemented decoding of NETLINK_AUDIT, NETLINK_NETFILTER, NETLINK_ROUTE,
+    NETLINK_SELINUX, NETLINK_SOCK_DIAG, and NETLINK_XFRM message types.
+  * Implemented decoding of NETLINK_GENERIC protocol families.
+  * Implemented basic protocol specific decoding of AF_INET, AF_INET6,
+    AF_NETLINK, AF_PACKET, AF_SMC, and AF_UNIX messages of NETLINK_SOCK_DIAG.
+  * Implemented basic decoding of netlink attributes.
+  * Implemented basic protocol specific decoding of AF_INET, AF_NETLINK,
+    AF_PACKET, AF_SMC, and AF_UNIX netlink attributes of NETLINK_SOCK_DIAG.
+  * Implemented decoding of inet_diag_msg, netlink_diag_msg, and unix_diag_msg
+    netlink attributes of NETLINK_SOCK_DIAG.
+  * Updated lists of ARPHRD_*, KEYCTL_*, NDIAG_SHOW_*, RTM_*, SCM_*, SCTP_*,
+    SO_*, V4L2_*, and prctl ARCH_* constants.
+  * Updated lists of ioctl commands from Linux 4.12.
+
+* Bug fixes
+  * In interactive mode (-I2), those signals that were blocked at startup
+    will remain blocked for the whole period of strace execution.
+  * strace no longer resets SIGCHLD handler in tracees to the default action.
+  * When traced command is terminated by a blocked signal, strace unblocks
+    that signal to ensure its own termination with the same signal.
+  * Fixed corner cases in decoding of old sigaction syscall.
+  * Fixed build with old kernel headers on mips.
+  * Fixed build on aarch64 and tile with glibc >= 2.26.
+  * Fixed build on arc and nios2.
+
 Noteworthy changes in release 4.17 (2017-05-24)
 ===============================================
 
@@ -832,7 +864,7 @@
 ==============
 * Fix Linux/ia64 support, looks like someone renamed a few things on us
 * Fix the ioctl setup for Linux, turned out it did not really work.
-  Improve the ioctl extracter as well so we decode some more ones.
+  Improve the ioctl extractor as well so we decode some more ones.
 
 Changes in 4.3.1
 ================
@@ -924,7 +956,7 @@
 ===========================
 
 * non-ascii strings can be optionally printed entirely in hex
-* the output format is readable when mutiple processes are generating output
+* the output format is readable when multiple processes are generating output
 * exit values are printed in an alignment column
 * is is possible to suppress messages about attaching and detaching
 * various tracing features can be enabled on a per syscall/signal/desc basis
diff --git a/aio.c b/aio.c
index 5565d0c..7adb20d 100644
--- a/aio.c
+++ b/aio.c
@@ -167,9 +167,9 @@
 	struct iocb cb;
 
 	if (elem_size < sizeof(kernel_ulong_t)) {
-		addr = * (unsigned int *) elem_buf;
+		addr = *(unsigned int *) elem_buf;
 	} else {
-		addr = * (kernel_ulong_t *) elem_buf;
+		addr = *(kernel_ulong_t *) elem_buf;
 	}
 
 	tprints("{");
diff --git a/block.c b/block.c
index 4d1a965..c77b92a 100644
--- a/block.c
+++ b/block.c
@@ -67,7 +67,7 @@
 #include MPERS_DEFS
 
 #ifndef BLKPG
-# define BLKPG      _IO(0x12,105)
+# define BLKPG      _IO(0x12, 105)
 #endif
 
 /*
@@ -80,40 +80,40 @@
 # define BLKTRACESETUP _IOWR(0x12, 115, struct_blk_user_trace_setup)
 #endif
 #ifndef BLKTRACESTART
-# define BLKTRACESTART _IO(0x12,116)
+# define BLKTRACESTART _IO(0x12, 116)
 #endif
 #ifndef BLKTRACESTOP
-# define BLKTRACESTOP _IO(0x12,117)
+# define BLKTRACESTOP _IO(0x12, 117)
 #endif
 #ifndef BLKTRACETEARDOWN
-# define BLKTRACETEARDOWN _IO(0x12,118)
+# define BLKTRACETEARDOWN _IO(0x12, 118)
 #endif
 #ifndef BLKDISCARD
-# define BLKDISCARD _IO(0x12,119)
+# define BLKDISCARD _IO(0x12, 119)
 #endif
 #ifndef BLKIOMIN
-# define BLKIOMIN _IO(0x12,120)
+# define BLKIOMIN _IO(0x12, 120)
 #endif
 #ifndef BLKIOOPT
-# define BLKIOOPT _IO(0x12,121)
+# define BLKIOOPT _IO(0x12, 121)
 #endif
 #ifndef BLKALIGNOFF
-# define BLKALIGNOFF _IO(0x12,122)
+# define BLKALIGNOFF _IO(0x12, 122)
 #endif
 #ifndef BLKPBSZGET
-# define BLKPBSZGET _IO(0x12,123)
+# define BLKPBSZGET _IO(0x12, 123)
 #endif
 #ifndef BLKDISCARDZEROES
-# define BLKDISCARDZEROES _IO(0x12,124)
+# define BLKDISCARDZEROES _IO(0x12, 124)
 #endif
 #ifndef BLKSECDISCARD
-# define BLKSECDISCARD _IO(0x12,125)
+# define BLKSECDISCARD _IO(0x12, 125)
 #endif
 #ifndef BLKROTATIONAL
-# define BLKROTATIONAL _IO(0x12,126)
+# define BLKROTATIONAL _IO(0x12, 126)
 #endif
 #ifndef BLKZEROOUT
-# define BLKZEROOUT _IO(0x12,127)
+# define BLKZEROOUT _IO(0x12, 127)
 #endif
 
 #include "xlat/blkpg_ops.h"
diff --git a/bpf.c b/bpf.c
index 2c709e1..de909d3 100644
--- a/bpf.c
+++ b/bpf.c
@@ -182,7 +182,7 @@
 
 static int
 bpf_obj_manage(struct tcb *const tcp, const kernel_ulong_t addr,
-               unsigned int size)
+	       unsigned int size)
 {
 	struct {
 		uint64_t ATTRIBUTE_ALIGNED(8) pathname;
@@ -243,14 +243,14 @@
 
 static int
 bpf_prog_attach(struct tcb *const tcp, const kernel_ulong_t addr,
-               unsigned int size)
+		unsigned int size)
 {
 	return bpf_prog_attach_detach(tcp, addr, size, true);
 }
 
 static int
 bpf_prog_detach(struct tcb *const tcp, const kernel_ulong_t addr,
-               unsigned int size)
+		unsigned int size)
 {
 	return bpf_prog_attach_detach(tcp, addr, size, false);
 }
diff --git a/btrfs.c b/btrfs.c
index 141cafa..e730c7a 100644
--- a/btrfs.c
+++ b/btrfs.c
@@ -367,7 +367,7 @@
 static bool
 print_uint64(struct tcb *tcp, void *elem_buf, size_t elem_size, void *data)
 {
-	tprintf("%" PRIu64, * (uint64_t *) elem_buf);
+	tprintf("%" PRIu64, *(uint64_t *) elem_buf);
 
 	return true;
 }
@@ -488,7 +488,7 @@
 print_objectid_callback(struct tcb *tcp, void *elem_buf,
 			size_t elem_size, void *data)
 {
-	btrfs_print_objectid(* (uint64_t *) elem_buf);
+	btrfs_print_objectid(*(uint64_t *) elem_buf);
 
 	return true;
 }
@@ -679,12 +679,12 @@
 				   (uint64_t) args.start.srcdevid,
 				   (uint64_t) args.start.cont_reading_from_srcdev_mode);
 
-				str = (const char*) args.start.srcdev_name;
+				str = (const char *) args.start.srcdev_name;
 				print_quoted_string(str,
 						sizeof(args.start.srcdev_name),
 						QUOTE_0_TERMINATED);
 				tprints(", tgtdev_name=");
-				str = (const char*) args.start.tgtdev_name;
+				str = (const char *) args.start.tgtdev_name;
 				print_quoted_string(str,
 						sizeof(args.start.tgtdev_name),
 						QUOTE_0_TERMINATED);
diff --git a/clone.c b/clone.c
index a1c799a..a5f2b24 100644
--- a/clone.c
+++ b/clone.c
@@ -109,7 +109,7 @@
 				tcp->u_arg[ARG_STACKSIZE]);
 #endif
 		tprints("flags=");
-		if (!printflags64(clone_flags, flags &~ CSIGNAL, NULL))
+		if (!printflags64(clone_flags, flags & ~CSIGNAL, NULL))
 			sep = "";
 		if ((flags & CSIGNAL) != 0)
 			tprintf("%s%s", sep, signame(flags & CSIGNAL));
diff --git a/config.h b/config.h
new file mode 100644
index 0000000..73ae7f6
--- /dev/null
+++ b/config.h
@@ -0,0 +1,1326 @@
+/* config.h.  Generated from config.h.in by configure.  */
+/* config.h.in.  Generated from configure.ac by autoheader.  */
+
+/* Define for the AArch64 architecture. */
+/* #undef AARCH64 */
+
+/* Define if building universal (internal helper macro) */
+/* #undef AC_APPLE_UNIVERSAL_BUILD */
+
+/* Define for the Alpha architecture. */
+/* #undef ALPHA */
+
+/* Define for the ARC architecture. */
+/* #undef ARC */
+
+/* Define for the ARM architecture. */
+/* #undef ARM */
+
+/* SA_RESTORER defined in <asm/signal.h> */
+/* #undef ASM_SA_RESTORER */
+
+/* SIGRTMIN defined in <asm/signal.h> */
+/* #undef ASM_SIGRTMIN */
+
+/* Define for the AVR32 architecture. */
+/* #undef AVR32 */
+
+/* Define for the Blackfin architecture. */
+/* #undef BFIN */
+
+/* Current copyright year. */
+#define COPYRIGHT_YEAR "2017"
+
+/* Define for the CRISv10 architecture. */
+/* #undef CRISV10 */
+
+/* Define for the CRISv32 architecture. */
+/* #undef CRISV32 */
+
+/* Define to 1 if you want OABI support on ARM EABI. */
+#define ENABLE_ARM_OABI 0
+
+/* Define to 1 if you have the `accept4' function. */
+#define HAVE_ACCEPT4 1
+
+/* Define to 1 if you have the <asm/cachectl.h> header file. */
+/* #undef HAVE_ASM_CACHECTL_H */
+
+/* Define to 1 if you have the <asm/sigcontext.h> header file. */
+#define HAVE_ASM_SIGCONTEXT_H 1
+
+/* Define to 1 if you have the <asm/sysmips.h> header file. */
+/* #undef HAVE_ASM_SYSMIPS_H */
+
+/* Define to 1 if you have BLKGETSIZE64. */
+#define HAVE_BLKGETSIZE64 1
+
+/* Define to 1 if you have the <bluetooth/bluetooth.h> header file. */
+/* #undef HAVE_BLUETOOTH_BLUETOOTH_H */
+
+/* Define to 1 if you have the declaration of `BTRFS_COMPRESS_LZO', and to 0
+   if you don't. */
+#define HAVE_DECL_BTRFS_COMPRESS_LZO 0
+
+/* Define to 1 if you have the declaration of `BTRFS_COMPRESS_NONE', and to 0
+   if you don't. */
+#define HAVE_DECL_BTRFS_COMPRESS_NONE 0
+
+/* Define to 1 if you have the declaration of `BTRFS_COMPRESS_ZLIB', and to 0
+   if you don't. */
+#define HAVE_DECL_BTRFS_COMPRESS_ZLIB 0
+
+/* Define to 1 if you have the declaration of `CTL_ARLAN', and to 0 if you
+   don't. */
+#define HAVE_DECL_CTL_ARLAN 1
+
+/* Define to 1 if you have the declaration of `CTL_FRV', and to 0 if you
+   don't. */
+#define HAVE_DECL_CTL_FRV 1
+
+/* Define to 1 if you have the declaration of `CTL_PM', and to 0 if you don't.
+   */
+#define HAVE_DECL_CTL_PM 1
+
+/* Define to 1 if you have the declaration of `CTL_PROC', and to 0 if you
+   don't. */
+#define HAVE_DECL_CTL_PROC 1
+
+/* Define to 1 if you have the declaration of `CTL_S390DBF', and to 0 if you
+   don't. */
+#define HAVE_DECL_CTL_S390DBF 1
+
+/* Define to 1 if you have the declaration of `CTL_SUNRPC', and to 0 if you
+   don't. */
+#define HAVE_DECL_CTL_SUNRPC 1
+
+/* Define to 1 if you have the declaration of `KERN_ACPI_VIDEO_FLAGS', and to
+   0 if you don't. */
+#define HAVE_DECL_KERN_ACPI_VIDEO_FLAGS 1
+
+/* Define to 1 if you have the declaration of `KERN_BOOTLOADER_TYPE', and to 0
+   if you don't. */
+#define HAVE_DECL_KERN_BOOTLOADER_TYPE 1
+
+/* Define to 1 if you have the declaration of `KERN_COMPAT_LOG', and to 0 if
+   you don't. */
+#define HAVE_DECL_KERN_COMPAT_LOG 1
+
+/* Define to 1 if you have the declaration of `KERN_HZ_TIMER', and to 0 if you
+   don't. */
+#define HAVE_DECL_KERN_HZ_TIMER 1
+
+/* Define to 1 if you have the declaration of `KERN_IA64_UNALIGNED', and to 0
+   if you don't. */
+#define HAVE_DECL_KERN_IA64_UNALIGNED 1
+
+/* Define to 1 if you have the declaration of `KERN_MAX_LOCK_DEPTH', and to 0
+   if you don't. */
+#define HAVE_DECL_KERN_MAX_LOCK_DEPTH 1
+
+/* Define to 1 if you have the declaration of `KERN_NGROUPS_MAX', and to 0 if
+   you don't. */
+#define HAVE_DECL_KERN_NGROUPS_MAX 1
+
+/* Define to 1 if you have the declaration of `KERN_NMI_WATCHDOG', and to 0 if
+   you don't. */
+#define HAVE_DECL_KERN_NMI_WATCHDOG 1
+
+/* Define to 1 if you have the declaration of `KERN_PANIC_ON_NMI', and to 0 if
+   you don't. */
+#define HAVE_DECL_KERN_PANIC_ON_NMI 1
+
+/* Define to 1 if you have the declaration of `KERN_PRINTK_RATELIMIT', and to
+   0 if you don't. */
+#define HAVE_DECL_KERN_PRINTK_RATELIMIT 1
+
+/* Define to 1 if you have the declaration of `KERN_PRINTK_RATELIMIT_BURST',
+   and to 0 if you don't. */
+#define HAVE_DECL_KERN_PRINTK_RATELIMIT_BURST 1
+
+/* Define to 1 if you have the declaration of `KERN_PTY', and to 0 if you
+   don't. */
+#define HAVE_DECL_KERN_PTY 1
+
+/* Define to 1 if you have the declaration of `KERN_RANDOMIZE', and to 0 if
+   you don't. */
+#define HAVE_DECL_KERN_RANDOMIZE 1
+
+/* Define to 1 if you have the declaration of `KERN_SETUID_DUMPABLE', and to 0
+   if you don't. */
+#define HAVE_DECL_KERN_SETUID_DUMPABLE 1
+
+/* Define to 1 if you have the declaration of `KERN_SPARC_SCONS_PWROFF', and
+   to 0 if you don't. */
+#define HAVE_DECL_KERN_SPARC_SCONS_PWROFF 1
+
+/* Define to 1 if you have the declaration of `KERN_SPIN_RETRY', and to 0 if
+   you don't. */
+#define HAVE_DECL_KERN_SPIN_RETRY 1
+
+/* Define to 1 if you have the declaration of `KERN_UNKNOWN_NMI_PANIC', and to
+   0 if you don't. */
+#define HAVE_DECL_KERN_UNKNOWN_NMI_PANIC 1
+
+/* Define to 1 if you have the declaration of `LO_FLAGS_AUTOCLEAR', and to 0
+   if you don't. */
+#define HAVE_DECL_LO_FLAGS_AUTOCLEAR 1
+
+/* Define to 1 if you have the declaration of `LO_FLAGS_DIRECT_IO', and to 0
+   if you don't. */
+#define HAVE_DECL_LO_FLAGS_DIRECT_IO 1
+
+/* Define to 1 if you have the declaration of `LO_FLAGS_PARTSCAN', and to 0 if
+   you don't. */
+#define HAVE_DECL_LO_FLAGS_PARTSCAN 1
+
+/* Define to 1 if you have the declaration of `LO_FLAGS_READ_ONLY', and to 0
+   if you don't. */
+#define HAVE_DECL_LO_FLAGS_READ_ONLY 1
+
+/* Define to 1 if you have the declaration of `LO_FLAGS_USE_AOPS', and to 0 if
+   you don't. */
+#define HAVE_DECL_LO_FLAGS_USE_AOPS 0
+
+/* Define to 1 if you have the declaration of `NET_CIPSOV4_CACHE_BUCKET_SIZE',
+   and to 0 if you don't. */
+#define HAVE_DECL_NET_CIPSOV4_CACHE_BUCKET_SIZE 1
+
+/* Define to 1 if you have the declaration of `NET_CIPSOV4_CACHE_ENABLE', and
+   to 0 if you don't. */
+#define HAVE_DECL_NET_CIPSOV4_CACHE_ENABLE 1
+
+/* Define to 1 if you have the declaration of `NET_CIPSOV4_RBM_OPTFMT', and to
+   0 if you don't. */
+#define HAVE_DECL_NET_CIPSOV4_RBM_OPTFMT 1
+
+/* Define to 1 if you have the declaration of `NET_CIPSOV4_RBM_STRICTVALID',
+   and to 0 if you don't. */
+#define HAVE_DECL_NET_CIPSOV4_RBM_STRICTVALID 1
+
+/* Define to 1 if you have the declaration of `NET_CORE_AEVENT_ETIME', and to
+   0 if you don't. */
+#define HAVE_DECL_NET_CORE_AEVENT_ETIME 1
+
+/* Define to 1 if you have the declaration of `NET_CORE_AEVENT_RSEQTH', and to
+   0 if you don't. */
+#define HAVE_DECL_NET_CORE_AEVENT_RSEQTH 1
+
+/* Define to 1 if you have the declaration of `NET_CORE_BUDGET', and to 0 if
+   you don't. */
+#define HAVE_DECL_NET_CORE_BUDGET 1
+
+/* Define to 1 if you have the declaration of `NET_CORE_DESTROY_DELAY', and to
+   0 if you don't. */
+#define HAVE_DECL_NET_CORE_DESTROY_DELAY 0
+
+/* Define to 1 if you have the declaration of `NET_CORE_WARNINGS', and to 0 if
+   you don't. */
+#define HAVE_DECL_NET_CORE_WARNINGS 1
+
+/* Define to 1 if you have the declaration of `NET_DCCP', and to 0 if you
+   don't. */
+#define HAVE_DECL_NET_DCCP 1
+
+/* Define to 1 if you have the declaration of `NET_IPV4_CONF_ARP_ACCEPT', and
+   to 0 if you don't. */
+#define HAVE_DECL_NET_IPV4_CONF_ARP_ACCEPT 1
+
+/* Define to 1 if you have the declaration of `NET_IPV4_CONF_ARP_ANNOUNCE',
+   and to 0 if you don't. */
+#define HAVE_DECL_NET_IPV4_CONF_ARP_ANNOUNCE 1
+
+/* Define to 1 if you have the declaration of `NET_IPV4_CONF_ARP_IGNORE', and
+   to 0 if you don't. */
+#define HAVE_DECL_NET_IPV4_CONF_ARP_IGNORE 1
+
+/* Define to 1 if you have the declaration of `NET_IPV4_CONF_ARP_NOTIFY', and
+   to 0 if you don't. */
+#define HAVE_DECL_NET_IPV4_CONF_ARP_NOTIFY 1
+
+/* Define to 1 if you have the declaration of
+   `NET_IPV4_CONF_FORCE_IGMP_VERSION', and to 0 if you don't. */
+#define HAVE_DECL_NET_IPV4_CONF_FORCE_IGMP_VERSION 1
+
+/* Define to 1 if you have the declaration of
+   `NET_IPV4_CONF_PROMOTE_SECONDARIES', and to 0 if you don't. */
+#define HAVE_DECL_NET_IPV4_CONF_PROMOTE_SECONDARIES 1
+
+/* Define to 1 if you have the declaration of
+   `NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR', and to 0 if you don't. */
+#define HAVE_DECL_NET_IPV4_ICMP_ERRORS_USE_INBOUND_IFADDR 1
+
+/* Define to 1 if you have the declaration of `NET_IPV4_IGMP_MAX_MSF', and to
+   0 if you don't. */
+#define HAVE_DECL_NET_IPV4_IGMP_MAX_MSF 1
+
+/* Define to 1 if you have the declaration of `NET_IPV4_IPFRAG_MAX_DIST', and
+   to 0 if you don't. */
+#define HAVE_DECL_NET_IPV4_IPFRAG_MAX_DIST 1
+
+/* Define to 1 if you have the declaration of
+   `NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS', and to 0 if you don't. */
+#define HAVE_DECL_NET_IPV4_ROUTE_GC_MIN_INTERVAL_MS 1
+
+/* Define to 1 if you have the declaration of
+   `NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS', and to 0 if you don't. */
+#define HAVE_DECL_NET_IPV4_TCP_WORKAROUND_SIGNED_WINDOWS 1
+
+/* Define to 1 if you have the declaration of `NET_IPV6_MLD_MAX_MSF', and to 0
+   if you don't. */
+#define HAVE_DECL_NET_IPV6_MLD_MAX_MSF 1
+
+/* Define to 1 if you have the declaration of
+   `NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS', and to 0 if you don't. */
+#define HAVE_DECL_NET_IPV6_ROUTE_GC_MIN_INTERVAL_MS 1
+
+/* Define to 1 if you have the declaration of `NET_IRDA', and to 0 if you
+   don't. */
+#define HAVE_DECL_NET_IRDA 1
+
+/* Define to 1 if you have the declaration of `NET_LLC', and to 0 if you
+   don't. */
+#define HAVE_DECL_NET_LLC 1
+
+/* Define to 1 if you have the declaration of `NET_NETFILTER', and to 0 if you
+   don't. */
+#define HAVE_DECL_NET_NETFILTER 1
+
+/* Define to 1 if you have the declaration of `NET_TCP_ABC', and to 0 if you
+   don't. */
+#define HAVE_DECL_NET_TCP_ABC 1
+
+/* Define to 1 if you have the declaration of `NET_TCP_ALLOWED_CONG_CONTROL',
+   and to 0 if you don't. */
+#define HAVE_DECL_NET_TCP_ALLOWED_CONG_CONTROL 1
+
+/* Define to 1 if you have the declaration of `NET_TCP_AVAIL_CONG_CONTROL',
+   and to 0 if you don't. */
+#define HAVE_DECL_NET_TCP_AVAIL_CONG_CONTROL 1
+
+/* Define to 1 if you have the declaration of `NET_TCP_BASE_MSS', and to 0 if
+   you don't. */
+#define HAVE_DECL_NET_TCP_BASE_MSS 1
+
+/* Define to 1 if you have the declaration of `NET_TCP_BIC_BETA', and to 0 if
+   you don't. */
+#define HAVE_DECL_NET_TCP_BIC_BETA 1
+
+/* Define to 1 if you have the declaration of `NET_TCP_CONG_CONTROL', and to 0
+   if you don't. */
+#define HAVE_DECL_NET_TCP_CONG_CONTROL 1
+
+/* Define to 1 if you have the declaration of `NET_TCP_DEFAULT_WIN_SCALE', and
+   to 0 if you don't. */
+#define HAVE_DECL_NET_TCP_DEFAULT_WIN_SCALE 1
+
+/* Define to 1 if you have the declaration of `NET_TCP_DMA_COPYBREAK', and to
+   0 if you don't. */
+#define HAVE_DECL_NET_TCP_DMA_COPYBREAK 1
+
+/* Define to 1 if you have the declaration of `NET_TCP_FRTO_RESPONSE', and to
+   0 if you don't. */
+#define HAVE_DECL_NET_TCP_FRTO_RESPONSE 1
+
+/* Define to 1 if you have the declaration of `NET_TCP_MAX_SSTHRESH', and to 0
+   if you don't. */
+#define HAVE_DECL_NET_TCP_MAX_SSTHRESH 1
+
+/* Define to 1 if you have the declaration of `NET_TCP_MODERATE_RCVBUF', and
+   to 0 if you don't. */
+#define HAVE_DECL_NET_TCP_MODERATE_RCVBUF 1
+
+/* Define to 1 if you have the declaration of `NET_TCP_MTU_PROBING', and to 0
+   if you don't. */
+#define HAVE_DECL_NET_TCP_MTU_PROBING 1
+
+/* Define to 1 if you have the declaration of `NET_TCP_NO_METRICS_SAVE', and
+   to 0 if you don't. */
+#define HAVE_DECL_NET_TCP_NO_METRICS_SAVE 1
+
+/* Define to 1 if you have the declaration of `NET_TCP_SLOW_START_AFTER_IDLE',
+   and to 0 if you don't. */
+#define HAVE_DECL_NET_TCP_SLOW_START_AFTER_IDLE 1
+
+/* Define to 1 if you have the declaration of `NET_TCP_TSO_WIN_DIVISOR', and
+   to 0 if you don't. */
+#define HAVE_DECL_NET_TCP_TSO_WIN_DIVISOR 1
+
+/* Define to 1 if you have the declaration of `PTRACE_PEEKUSER', and to 0 if
+   you don't. */
+#define HAVE_DECL_PTRACE_PEEKUSER 1
+
+/* Define to 1 if you have the declaration of `PTRACE_POKEUSER', and to 0 if
+   you don't. */
+#define HAVE_DECL_PTRACE_POKEUSER 1
+
+/* Define to 1 if you have the declaration of `P_ALL', and to 0 if you don't.
+   */
+#define HAVE_DECL_P_ALL 1
+
+/* Define to 1 if you have the declaration of `P_CID', and to 0 if you don't.
+   */
+#define HAVE_DECL_P_CID 0
+
+/* Define to 1 if you have the declaration of `P_GID', and to 0 if you don't.
+   */
+#define HAVE_DECL_P_GID 0
+
+/* Define to 1 if you have the declaration of `P_LWPID', and to 0 if you
+   don't. */
+#define HAVE_DECL_P_LWPID 0
+
+/* Define to 1 if you have the declaration of `P_PGID', and to 0 if you don't.
+   */
+#define HAVE_DECL_P_PGID 1
+
+/* Define to 1 if you have the declaration of `P_PID', and to 0 if you don't.
+   */
+#define HAVE_DECL_P_PID 1
+
+/* Define to 1 if you have the declaration of `P_PPID', and to 0 if you don't.
+   */
+#define HAVE_DECL_P_PPID 0
+
+/* Define to 1 if you have the declaration of `P_SID', and to 0 if you don't.
+   */
+#define HAVE_DECL_P_SID 0
+
+/* Define to 1 if you have the declaration of `P_UID', and to 0 if you don't.
+   */
+#define HAVE_DECL_P_UID 0
+
+/* Define to 1 if you have the declaration of `sys_errlist', and to 0 if you
+   don't. */
+#define HAVE_DECL_SYS_ERRLIST 0
+
+/* Define to 1 if you have the declaration of `V4L2_BUF_TYPE_SDR_CAPTURE', and
+   to 0 if you don't. */
+#define HAVE_DECL_V4L2_BUF_TYPE_SDR_CAPTURE 0
+
+/* Define to 1 if you have the declaration of `V4L2_BUF_TYPE_SDR_OUTPUT', and
+   to 0 if you don't. */
+#define HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT 0
+
+/* Define to 1 if you have the declaration of
+   `V4L2_BUF_TYPE_SLICED_VBI_CAPTURE', and to 0 if you don't. */
+#define HAVE_DECL_V4L2_BUF_TYPE_SLICED_VBI_CAPTURE 1
+
+/* Define to 1 if you have the declaration of
+   `V4L2_BUF_TYPE_SLICED_VBI_OUTPUT', and to 0 if you don't. */
+#define HAVE_DECL_V4L2_BUF_TYPE_SLICED_VBI_OUTPUT 1
+
+/* Define to 1 if you have the declaration of `V4L2_BUF_TYPE_VBI_CAPTURE', and
+   to 0 if you don't. */
+#define HAVE_DECL_V4L2_BUF_TYPE_VBI_CAPTURE 1
+
+/* Define to 1 if you have the declaration of `V4L2_BUF_TYPE_VBI_OUTPUT', and
+   to 0 if you don't. */
+#define HAVE_DECL_V4L2_BUF_TYPE_VBI_OUTPUT 1
+
+/* Define to 1 if you have the declaration of `V4L2_BUF_TYPE_VIDEO_CAPTURE',
+   and to 0 if you don't. */
+#define HAVE_DECL_V4L2_BUF_TYPE_VIDEO_CAPTURE 1
+
+/* Define to 1 if you have the declaration of
+   `V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE', and to 0 if you don't. */
+#define HAVE_DECL_V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE 1
+
+/* Define to 1 if you have the declaration of `V4L2_BUF_TYPE_VIDEO_OUTPUT',
+   and to 0 if you don't. */
+#define HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT 1
+
+/* Define to 1 if you have the declaration of
+   `V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE', and to 0 if you don't. */
+#define HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE 1
+
+/* Define to 1 if you have the declaration of
+   `V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY', and to 0 if you don't. */
+#define HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY 1
+
+/* Define to 1 if you have the declaration of `V4L2_BUF_TYPE_VIDEO_OVERLAY',
+   and to 0 if you don't. */
+#define HAVE_DECL_V4L2_BUF_TYPE_VIDEO_OVERLAY 1
+
+/* Define to 1 if you have the declaration of `V4L2_COLORSPACE_470_SYSTEM_BG',
+   and to 0 if you don't. */
+#define HAVE_DECL_V4L2_COLORSPACE_470_SYSTEM_BG 1
+
+/* Define to 1 if you have the declaration of `V4L2_COLORSPACE_470_SYSTEM_M',
+   and to 0 if you don't. */
+#define HAVE_DECL_V4L2_COLORSPACE_470_SYSTEM_M 1
+
+/* Define to 1 if you have the declaration of `V4L2_COLORSPACE_BT878', and to
+   0 if you don't. */
+#define HAVE_DECL_V4L2_COLORSPACE_BT878 1
+
+/* Define to 1 if you have the declaration of `V4L2_COLORSPACE_JPEG', and to 0
+   if you don't. */
+#define HAVE_DECL_V4L2_COLORSPACE_JPEG 1
+
+/* Define to 1 if you have the declaration of `V4L2_COLORSPACE_REC709', and to
+   0 if you don't. */
+#define HAVE_DECL_V4L2_COLORSPACE_REC709 1
+
+/* Define to 1 if you have the declaration of `V4L2_COLORSPACE_SMPTE170M', and
+   to 0 if you don't. */
+#define HAVE_DECL_V4L2_COLORSPACE_SMPTE170M 1
+
+/* Define to 1 if you have the declaration of `V4L2_COLORSPACE_SMPTE240M', and
+   to 0 if you don't. */
+#define HAVE_DECL_V4L2_COLORSPACE_SMPTE240M 1
+
+/* Define to 1 if you have the declaration of `V4L2_COLORSPACE_SRGB', and to 0
+   if you don't. */
+#define HAVE_DECL_V4L2_COLORSPACE_SRGB 1
+
+/* Define to 1 if you have the declaration of `V4L2_CTRL_TYPE_BITMASK', and to
+   0 if you don't. */
+#define HAVE_DECL_V4L2_CTRL_TYPE_BITMASK 1
+
+/* Define to 1 if you have the declaration of `V4L2_CTRL_TYPE_BOOLEAN', and to
+   0 if you don't. */
+#define HAVE_DECL_V4L2_CTRL_TYPE_BOOLEAN 1
+
+/* Define to 1 if you have the declaration of `V4L2_CTRL_TYPE_BUTTON', and to
+   0 if you don't. */
+#define HAVE_DECL_V4L2_CTRL_TYPE_BUTTON 1
+
+/* Define to 1 if you have the declaration of `V4L2_CTRL_TYPE_CTRL_CLASS', and
+   to 0 if you don't. */
+#define HAVE_DECL_V4L2_CTRL_TYPE_CTRL_CLASS 1
+
+/* Define to 1 if you have the declaration of `V4L2_CTRL_TYPE_INTEGER', and to
+   0 if you don't. */
+#define HAVE_DECL_V4L2_CTRL_TYPE_INTEGER 1
+
+/* Define to 1 if you have the declaration of `V4L2_CTRL_TYPE_INTEGER64', and
+   to 0 if you don't. */
+#define HAVE_DECL_V4L2_CTRL_TYPE_INTEGER64 1
+
+/* Define to 1 if you have the declaration of `V4L2_CTRL_TYPE_INTEGER_MENU',
+   and to 0 if you don't. */
+#define HAVE_DECL_V4L2_CTRL_TYPE_INTEGER_MENU 1
+
+/* Define to 1 if you have the declaration of `V4L2_CTRL_TYPE_MENU', and to 0
+   if you don't. */
+#define HAVE_DECL_V4L2_CTRL_TYPE_MENU 1
+
+/* Define to 1 if you have the declaration of `V4L2_CTRL_TYPE_STRING', and to
+   0 if you don't. */
+#define HAVE_DECL_V4L2_CTRL_TYPE_STRING 1
+
+/* Define to 1 if you have the declaration of `V4L2_FIELD_ALTERNATE', and to 0
+   if you don't. */
+#define HAVE_DECL_V4L2_FIELD_ALTERNATE 1
+
+/* Define to 1 if you have the declaration of `V4L2_FIELD_ANY', and to 0 if
+   you don't. */
+#define HAVE_DECL_V4L2_FIELD_ANY 1
+
+/* Define to 1 if you have the declaration of `V4L2_FIELD_BOTTOM', and to 0 if
+   you don't. */
+#define HAVE_DECL_V4L2_FIELD_BOTTOM 1
+
+/* Define to 1 if you have the declaration of `V4L2_FIELD_INTERLACED', and to
+   0 if you don't. */
+#define HAVE_DECL_V4L2_FIELD_INTERLACED 1
+
+/* Define to 1 if you have the declaration of `V4L2_FIELD_INTERLACED_BT', and
+   to 0 if you don't. */
+#define HAVE_DECL_V4L2_FIELD_INTERLACED_BT 1
+
+/* Define to 1 if you have the declaration of `V4L2_FIELD_INTERLACED_TB', and
+   to 0 if you don't. */
+#define HAVE_DECL_V4L2_FIELD_INTERLACED_TB 1
+
+/* Define to 1 if you have the declaration of `V4L2_FIELD_NONE', and to 0 if
+   you don't. */
+#define HAVE_DECL_V4L2_FIELD_NONE 1
+
+/* Define to 1 if you have the declaration of `V4L2_FIELD_SEQ_BT', and to 0 if
+   you don't. */
+#define HAVE_DECL_V4L2_FIELD_SEQ_BT 1
+
+/* Define to 1 if you have the declaration of `V4L2_FIELD_SEQ_TB', and to 0 if
+   you don't. */
+#define HAVE_DECL_V4L2_FIELD_SEQ_TB 1
+
+/* Define to 1 if you have the declaration of `V4L2_FIELD_TOP', and to 0 if
+   you don't. */
+#define HAVE_DECL_V4L2_FIELD_TOP 1
+
+/* Define to 1 if you have the declaration of `V4L2_FRMIVAL_TYPE_CONTINUOUS',
+   and to 0 if you don't. */
+#define HAVE_DECL_V4L2_FRMIVAL_TYPE_CONTINUOUS 1
+
+/* Define to 1 if you have the declaration of `V4L2_FRMIVAL_TYPE_DISCRETE',
+   and to 0 if you don't. */
+#define HAVE_DECL_V4L2_FRMIVAL_TYPE_DISCRETE 1
+
+/* Define to 1 if you have the declaration of `V4L2_FRMIVAL_TYPE_STEPWISE',
+   and to 0 if you don't. */
+#define HAVE_DECL_V4L2_FRMIVAL_TYPE_STEPWISE 1
+
+/* Define to 1 if you have the declaration of `V4L2_FRMSIZE_TYPE_CONTINUOUS',
+   and to 0 if you don't. */
+#define HAVE_DECL_V4L2_FRMSIZE_TYPE_CONTINUOUS 1
+
+/* Define to 1 if you have the declaration of `V4L2_FRMSIZE_TYPE_DISCRETE',
+   and to 0 if you don't. */
+#define HAVE_DECL_V4L2_FRMSIZE_TYPE_DISCRETE 1
+
+/* Define to 1 if you have the declaration of `V4L2_FRMSIZE_TYPE_STEPWISE',
+   and to 0 if you don't. */
+#define HAVE_DECL_V4L2_FRMSIZE_TYPE_STEPWISE 1
+
+/* Define to 1 if you have the declaration of `V4L2_MEMORY_DMABUF', and to 0
+   if you don't. */
+#define HAVE_DECL_V4L2_MEMORY_DMABUF 1
+
+/* Define to 1 if you have the declaration of `V4L2_MEMORY_MMAP', and to 0 if
+   you don't. */
+#define HAVE_DECL_V4L2_MEMORY_MMAP 1
+
+/* Define to 1 if you have the declaration of `V4L2_MEMORY_OVERLAY', and to 0
+   if you don't. */
+#define HAVE_DECL_V4L2_MEMORY_OVERLAY 1
+
+/* Define to 1 if you have the declaration of `V4L2_MEMORY_USERPTR', and to 0
+   if you don't. */
+#define HAVE_DECL_V4L2_MEMORY_USERPTR 1
+
+/* Define to 1 if you have the declaration of `V4L2_PRIORITY_BACKGROUND', and
+   to 0 if you don't. */
+#define HAVE_DECL_V4L2_PRIORITY_BACKGROUND 1
+
+/* Define to 1 if you have the declaration of `V4L2_PRIORITY_INTERACTIVE', and
+   to 0 if you don't. */
+#define HAVE_DECL_V4L2_PRIORITY_INTERACTIVE 1
+
+/* Define to 1 if you have the declaration of `V4L2_PRIORITY_RECORD', and to 0
+   if you don't. */
+#define HAVE_DECL_V4L2_PRIORITY_RECORD 1
+
+/* Define to 1 if you have the declaration of `V4L2_PRIORITY_UNSET', and to 0
+   if you don't. */
+#define HAVE_DECL_V4L2_PRIORITY_UNSET 1
+
+/* Define to 1 if you have the declaration of `V4L2_TUNER_ANALOG_TV', and to 0
+   if you don't. */
+#define HAVE_DECL_V4L2_TUNER_ANALOG_TV 1
+
+/* Define to 1 if you have the declaration of `V4L2_TUNER_DIGITAL_TV', and to
+   0 if you don't. */
+#define HAVE_DECL_V4L2_TUNER_DIGITAL_TV 1
+
+/* Define to 1 if you have the declaration of `V4L2_TUNER_RADIO', and to 0 if
+   you don't. */
+#define HAVE_DECL_V4L2_TUNER_RADIO 1
+
+/* Define to 1 if you have the declaration of `VM_BLOCK_DUMP', and to 0 if you
+   don't. */
+#define HAVE_DECL_VM_BLOCK_DUMP 1
+
+/* Define to 1 if you have the declaration of `VM_HUGETLB_GROUP', and to 0 if
+   you don't. */
+#define HAVE_DECL_VM_HUGETLB_GROUP 1
+
+/* Define to 1 if you have the declaration of `VM_LAPTOP_MODE', and to 0 if
+   you don't. */
+#define HAVE_DECL_VM_LAPTOP_MODE 1
+
+/* Define to 1 if you have the declaration of `VM_LEGACY_VA_LAYOUT', and to 0
+   if you don't. */
+#define HAVE_DECL_VM_LEGACY_VA_LAYOUT 1
+
+/* Define to 1 if you have the declaration of `VM_MAX_MAP_COUNT', and to 0 if
+   you don't. */
+#define HAVE_DECL_VM_MAX_MAP_COUNT 1
+
+/* Define to 1 if you have the declaration of `VM_SWAP_TOKEN_TIMEOUT', and to
+   0 if you don't. */
+#define HAVE_DECL_VM_SWAP_TOKEN_TIMEOUT 1
+
+/* Define to 1 if you have the declaration of `VM_VFS_CACHE_PRESSURE', and to
+   0 if you don't. */
+#define HAVE_DECL_VM_VFS_CACHE_PRESSURE 1
+
+/* Define to 1 if the system provides dladdr */
+#define HAVE_DLADDR 1
+
+/* Define to 1 if you have the <elf.h> header file. */
+#define HAVE_ELF_H 1
+
+/* Define to 1 if you have the `fallocate' function. */
+#define HAVE_FALLOCATE 1
+
+/* Define to 1 if you have the `fanotify_mark' function. */
+/* #undef HAVE_FANOTIFY_MARK */
+
+/* Define to 1 if you have the `fopen64' function. */
+#define HAVE_FOPEN64 1
+
+/* Define to 1 if you have the `fork' function. */
+#define HAVE_FORK 1
+
+/* Define to 1 if you have the `fputs_unlocked' function. */
+/* #undef HAVE_FPUTS_UNLOCKED */
+
+/* Define to 1 if you have the `fstatat' function. */
+#define HAVE_FSTATAT 1
+
+/* Define to 1 if you have the `ftruncate' function. */
+#define HAVE_FTRUNCATE 1
+
+/* Define to 1 if you have the `futimens' function. */
+#define HAVE_FUTIMENS 1
+
+/* Define to 1 if you have the <gnu_stubs> header file. */
+/* #undef HAVE_GNU_STUBS */
+
+/* Define to 1 if you have the <gnu/stubs-32.h> header file. */
+/* #undef HAVE_GNU_STUBS_32_H */
+
+/* Define to 1 if you have the <gnu/stubs-x32.h> header file. */
+/* #undef HAVE_GNU_STUBS_X32_H */
+
+/* Define to 1 if you have the `if_indextoname' function. */
+#define HAVE_IF_INDEXTONAME 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the <libunwind-ptrace.h> header file. */
+/* #undef HAVE_LIBUNWIND_PTRACE_H */
+
+/* Define to 1 if you have the <linux/bpf.h> header file. */
+#define HAVE_LINUX_BPF_H 1
+
+/* Define to 1 if you have the <linux/bsg.h> header file. */
+#define HAVE_LINUX_BSG_H 1
+
+/* Define to 1 if you have the <linux/btrfs.h> header file. */
+#define HAVE_LINUX_BTRFS_H 1
+
+/* Define to 1 if you have the <linux/dm-ioctl.h> header file. */
+#define HAVE_LINUX_DM_IOCTL_H 1
+
+/* Define to 1 if you have the <linux/dqblk_xfs.h> header file. */
+#define HAVE_LINUX_DQBLK_XFS_H 1
+
+/* Define to 1 if you have the <linux/falloc.h> header file. */
+#define HAVE_LINUX_FALLOC_H 1
+
+/* Define to 1 if you have the <linux/fiemap.h> header file. */
+#define HAVE_LINUX_FIEMAP_H 1
+
+/* Define to 1 if you have the <linux/filter.h> header file. */
+#define HAVE_LINUX_FILTER_H 1
+
+/* Define to 1 if you have the <linux/genetlink.h> header file. */
+#define HAVE_LINUX_GENETLINK_H 1
+
+/* Define to 1 if you have the <linux/hiddev.h> header file. */
+#define HAVE_LINUX_HIDDEV_H 1
+
+/* Define to 1 if you have the <linux/input.h> header file. */
+#define HAVE_LINUX_INPUT_H 1
+
+/* Define to 1 if you have the <linux/ipc.h> header file. */
+#define HAVE_LINUX_IPC_H 1
+
+/* Define to 1 if you have the <linux/ip_vs.h> header file. */
+#define HAVE_LINUX_IP_VS_H 1
+
+/* Define to 1 if you have the <linux/mmtimer.h> header file. */
+#define HAVE_LINUX_MMTIMER_H 1
+
+/* Define to 1 if you have the <linux/mqueue.h> header file. */
+#define HAVE_LINUX_MQUEUE_H 1
+
+/* Define to 1 if you have the <linux/msg.h> header file. */
+#define HAVE_LINUX_MSG_H 1
+
+/* Define to 1 if you have the <linux/netfilter_arp/arp_tables.h> header file.
+   */
+#define HAVE_LINUX_NETFILTER_ARP_ARP_TABLES_H 1
+
+/* Define to 1 if you have the <linux/netfilter_bridge/ebtables.h> header
+   file. */
+#define HAVE_LINUX_NETFILTER_BRIDGE_EBTABLES_H 1
+
+/* Define to 1 if you have the <linux/netfilter_ipv4/ip_tables.h> header file.
+   */
+#define HAVE_LINUX_NETFILTER_IPV4_IP_TABLES_H 1
+
+/* Define to 1 if you have the <linux/netfilter_ipv6/ip6_tables.h> header
+   file. */
+#define HAVE_LINUX_NETFILTER_IPV6_IP6_TABLES_H 1
+
+/* Define to 1 if you have the <linux/netfilter/nfnetlink.h> header file. */
+#define HAVE_LINUX_NETFILTER_NFNETLINK_H 1
+
+/* Define to 1 if you have the <linux/nsfs.h> header file. */
+#define HAVE_LINUX_NSFS_H 1
+
+/* Define to 1 if you have the <linux/perf_event.h> header file. */
+#define HAVE_LINUX_PERF_EVENT_H 1
+
+/* Define to 1 if you have the <linux/quota.h> header file. */
+#define HAVE_LINUX_QUOTA_H 1
+
+/* Define to 1 if you have the <linux/seccomp.h> header file. */
+#define HAVE_LINUX_SECCOMP_H 1
+
+/* Define to 1 if you have the <linux/securebits.h> header file. */
+#define HAVE_LINUX_SECUREBITS_H 1
+
+/* Define to 1 if you have the <linux/sem.h> header file. */
+#define HAVE_LINUX_SEM_H 1
+
+/* Define to 1 if you have the <linux/shm.h> header file. */
+#define HAVE_LINUX_SHM_H 1
+
+/* Define to 1 if you have the <linux/userfaultfd.h> header file. */
+#define HAVE_LINUX_USERFAULTFD_H 1
+
+/* Define to 1 if you have the <linux/utsname.h> header file. */
+#define HAVE_LINUX_UTSNAME_H 1
+
+/* Define to 1 if you have CFLAG mpers support */
+/* #undef HAVE_M32_MPERS */
+
+/* Define to 1 if MPERS_NAME has the type 'struct stat'. */
+/* #undef HAVE_M32_STRUCT_STAT */
+
+/* Define to 1 if MPERS_NAME has the type 'struct stat64'. */
+/* #undef HAVE_M32_STRUCT_STAT64 */
+
+/* Define to 1 if 'st_mtime_nsec' is a member of MPERS_NAME 'struct stat64'.
+   */
+/* #undef HAVE_M32_STRUCT_STAT64_ST_MTIME_NSEC */
+
+/* Define to 1 if 'st_mtime_nsec' is a member of MPERS_NAME 'struct stat'. */
+/* #undef HAVE_M32_STRUCT_STAT_ST_MTIME_NSEC */
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the <mqueue.h> header file. */
+/* #undef HAVE_MQUEUE_H */
+
+/* Define to 1 if you have CFLAG mpers support */
+/* #undef HAVE_MX32_MPERS */
+
+/* Define to 1 if MPERS_NAME has the type 'struct stat'. */
+/* #undef HAVE_MX32_STRUCT_STAT */
+
+/* Define to 1 if MPERS_NAME has the type 'struct stat64'. */
+/* #undef HAVE_MX32_STRUCT_STAT64 */
+
+/* Define to 1 if 'st_mtime_nsec' is a member of MPERS_NAME 'struct stat64'.
+   */
+/* #undef HAVE_MX32_STRUCT_STAT64_ST_MTIME_NSEC */
+
+/* Define to 1 if 'st_mtime_nsec' is a member of MPERS_NAME 'struct stat'. */
+/* #undef HAVE_MX32_STRUCT_STAT_ST_MTIME_NSEC */
+
+/* Define to 1 if you have the <netinet/sctp.h> header file. */
+/* #undef HAVE_NETINET_SCTP_H */
+
+/* Define to 1 if you have the <netinet/tcp.h> header file. */
+#define HAVE_NETINET_TCP_H 1
+
+/* Define to 1 if you have the <netinet/udp.h> header file. */
+#define HAVE_NETINET_UDP_H 1
+
+/* Define to 1 if you have the <netipx/ipx.h> header file. */
+/* #undef HAVE_NETIPX_IPX_H */
+
+/* Define to 1 if you have the `open64' function. */
+#define HAVE_OPEN64 1
+
+/* Define to 1 if you have the `prctl' function. */
+#define HAVE_PRCTL 1
+
+/* Define to 1 if you have the `preadv' function. */
+#define HAVE_PREADV 1
+
+/* Define to 1 if you have the `process_vm_readv' function. */
+#define HAVE_PROCESS_VM_READV 1
+
+/* Define to 1 if the system provides program_invocation_name variable */
+/* #undef HAVE_PROGRAM_INVOCATION_NAME */
+
+/* Define to 1 if you have the `pwritev' function. */
+#define HAVE_PWRITEV 1
+
+/* Define to 1 if you have the `readahead' function. */
+#define HAVE_READAHEAD 1
+
+/* Define to 1 if you have the <scsi/sg.h> header file. */
+#define HAVE_SCSI_SG_H 1
+
+/* Define to 1 if `si_overrun' is a member of `siginfo_t'. */
+#define HAVE_SIGINFO_T_SI_OVERRUN 1
+
+/* Define to 1 if `si_syscall' is a member of `siginfo_t'. */
+#define HAVE_SIGINFO_T_SI_SYSCALL 1
+
+/* Define to 1 if `si_timerid' is a member of `siginfo_t'. */
+#define HAVE_SIGINFO_T_SI_TIMERID 1
+
+/* Define to 1 if you have the `signalfd' function. */
+#define HAVE_SIGNALFD 1
+
+/* Define to 1 if the system has the type `sig_atomic_t'. */
+#define HAVE_SIG_ATOMIC_T 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the `stpcpy' function. */
+#define HAVE_STPCPY 1
+
+/* Define to 1 if you have the `strerror' function. */
+#define HAVE_STRERROR 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the `strndup' function. */
+#define HAVE_STRNDUP 1
+
+/* Define to 1 if you have the <stropts.h> header file. */
+/* #undef HAVE_STROPTS_H */
+
+/* Define to 1 if you have the `strsignal' function. */
+#define HAVE_STRSIGNAL 1
+
+/* Define to 1 if the system has the type `struct blk_user_trace_setup'. */
+#define HAVE_STRUCT_BLK_USER_TRACE_SETUP 1
+
+/* Define to 1 if `start' is a member of `struct
+   btrfs_ioctl_defrag_range_args'. */
+#define HAVE_STRUCT_BTRFS_IOCTL_DEFRAG_RANGE_ARGS_START 1
+
+/* Define to 1 if `compat_flags' is a member of `struct
+   btrfs_ioctl_feature_flags'. */
+#define HAVE_STRUCT_BTRFS_IOCTL_FEATURE_FLAGS_COMPAT_FLAGS 1
+
+/* Define to 1 if `nodesize' is a member of `struct btrfs_ioctl_fs_info_args'.
+   */
+#define HAVE_STRUCT_BTRFS_IOCTL_FS_INFO_ARGS_NODESIZE 1
+
+/* Define to 1 if `buf_size' is a member of `struct
+   btrfs_ioctl_search_args_v2'. */
+#define HAVE_STRUCT_BTRFS_IOCTL_SEARCH_ARGS_V2_BUF_SIZE 1
+
+/* Define to 1 if the system has the type `struct flock'. */
+#define HAVE_STRUCT_FLOCK 1
+
+/* Define to 1 if the system has the type `struct flock64'. */
+#define HAVE_STRUCT_FLOCK64 1
+
+/* Define to 1 if the system has the type `struct ia64_fpreg'. */
+/* #undef HAVE_STRUCT_IA64_FPREG */
+
+/* Define to 1 if `resolution' is a member of `struct input_absinfo'. */
+#define HAVE_STRUCT_INPUT_ABSINFO_RESOLUTION 1
+
+/* Define to 1 if the system has the type `struct mmsghdr'. */
+#define HAVE_STRUCT_MMSGHDR 1
+
+/* Define to 1 if `aux_watermark' is a member of `struct perf_event_attr'. */
+#define HAVE_STRUCT_PERF_EVENT_ATTR_AUX_WATERMARK 1
+
+/* Define to 1 if `bp_type' is a member of `struct perf_event_attr'. */
+#define HAVE_STRUCT_PERF_EVENT_ATTR_BP_TYPE 1
+
+/* Define to 1 if `branch_sample_type' is a member of `struct
+   perf_event_attr'. */
+#define HAVE_STRUCT_PERF_EVENT_ATTR_BRANCH_SAMPLE_TYPE 1
+
+/* Define to 1 if `comm_exec' is a member of `struct perf_event_attr'. */
+#define HAVE_STRUCT_PERF_EVENT_ATTR_COMM_EXEC 1
+
+/* Define to 1 if `config1' is a member of `struct perf_event_attr'. */
+#define HAVE_STRUCT_PERF_EVENT_ATTR_CONFIG1 1
+
+/* Define to 1 if `config2' is a member of `struct perf_event_attr'. */
+#define HAVE_STRUCT_PERF_EVENT_ATTR_CONFIG2 1
+
+/* Define to 1 if `context_switch' is a member of `struct perf_event_attr'. */
+#define HAVE_STRUCT_PERF_EVENT_ATTR_CONTEXT_SWITCH 1
+
+/* Define to 1 if `exclude_callchain_kernel' is a member of `struct
+   perf_event_attr'. */
+#define HAVE_STRUCT_PERF_EVENT_ATTR_EXCLUDE_CALLCHAIN_KERNEL 1
+
+/* Define to 1 if `exclude_callchain_user' is a member of `struct
+   perf_event_attr'. */
+#define HAVE_STRUCT_PERF_EVENT_ATTR_EXCLUDE_CALLCHAIN_USER 1
+
+/* Define to 1 if `exclude_guest' is a member of `struct perf_event_attr'. */
+#define HAVE_STRUCT_PERF_EVENT_ATTR_EXCLUDE_GUEST 1
+
+/* Define to 1 if `exclude_host' is a member of `struct perf_event_attr'. */
+#define HAVE_STRUCT_PERF_EVENT_ATTR_EXCLUDE_HOST 1
+
+/* Define to 1 if `mmap2' is a member of `struct perf_event_attr'. */
+#define HAVE_STRUCT_PERF_EVENT_ATTR_MMAP2 1
+
+/* Define to 1 if `mmap_data' is a member of `struct perf_event_attr'. */
+#define HAVE_STRUCT_PERF_EVENT_ATTR_MMAP_DATA 1
+
+/* Define to 1 if `precise_ip' is a member of `struct perf_event_attr'. */
+#define HAVE_STRUCT_PERF_EVENT_ATTR_PRECISE_IP 1
+
+/* Define to 1 if `sample_id_all' is a member of `struct perf_event_attr'. */
+#define HAVE_STRUCT_PERF_EVENT_ATTR_SAMPLE_ID_ALL 1
+
+/* Define to 1 if `sample_max_stack' is a member of `struct perf_event_attr'.
+   */
+#define HAVE_STRUCT_PERF_EVENT_ATTR_SAMPLE_MAX_STACK 1
+
+/* Define to 1 if `sample_regs_intr' is a member of `struct perf_event_attr'.
+   */
+#define HAVE_STRUCT_PERF_EVENT_ATTR_SAMPLE_REGS_INTR 1
+
+/* Define to 1 if `sample_regs_user' is a member of `struct perf_event_attr'.
+   */
+#define HAVE_STRUCT_PERF_EVENT_ATTR_SAMPLE_REGS_USER 1
+
+/* Define to 1 if `sample_stack_user' is a member of `struct perf_event_attr'.
+   */
+#define HAVE_STRUCT_PERF_EVENT_ATTR_SAMPLE_STACK_USER 1
+
+/* Define to 1 if `use_clockid' is a member of `struct perf_event_attr'. */
+#define HAVE_STRUCT_PERF_EVENT_ATTR_USE_CLOCKID 1
+
+/* Define to 1 if `write_backward' is a member of `struct perf_event_attr'. */
+#define HAVE_STRUCT_PERF_EVENT_ATTR_WRITE_BACKWARD 1
+
+/* Define to 1 if the system has the type `struct ptrace_peeksiginfo_args'. */
+#define HAVE_STRUCT_PTRACE_PEEKSIGINFO_ARGS 1
+
+/* Define to 1 if the system has the type `struct pt_all_user_regs'. */
+/* #undef HAVE_STRUCT_PT_ALL_USER_REGS */
+
+/* Define to 1 if the system has the type `struct sigcontext'. */
+#define HAVE_STRUCT_SIGCONTEXT 1
+
+/* Define to 1 if the system has the type `struct stat64'. */
+/* #undef HAVE_STRUCT_STAT64 */
+
+/* Define to 1 if `st_mtime_nsec' is a member of `struct stat64'. */
+/* #undef HAVE_STRUCT_STAT64_ST_MTIME_NSEC */
+
+/* Define to 1 if the system has the type `struct statfs'. */
+#define HAVE_STRUCT_STATFS 1
+
+/* Define to 1 if the system has the type `struct statfs64'. */
+#define HAVE_STRUCT_STATFS64 1
+
+/* Define to 1 if `f_flags' is a member of `struct statfs64'. */
+#define HAVE_STRUCT_STATFS64_F_FLAGS 1
+
+/* Define to 1 if `f_frsize' is a member of `struct statfs64'. */
+#define HAVE_STRUCT_STATFS64_F_FRSIZE 1
+
+/* Define to 1 if `f_fsid.val' is a member of `struct statfs64'. */
+#define HAVE_STRUCT_STATFS64_F_FSID_VAL 1
+
+/* Define to 1 if `f_fsid.__val' is a member of `struct statfs64'. */
+/* #undef HAVE_STRUCT_STATFS64_F_FSID___VAL */
+
+/* Define to 1 if `f_flags' is a member of `struct statfs'. */
+#define HAVE_STRUCT_STATFS_F_FLAGS 1
+
+/* Define to 1 if `f_frsize' is a member of `struct statfs'. */
+#define HAVE_STRUCT_STATFS_F_FRSIZE 1
+
+/* Define to 1 if `f_fsid.val' is a member of `struct statfs'. */
+#define HAVE_STRUCT_STATFS_F_FSID_VAL 1
+
+/* Define to 1 if `f_fsid.__val' is a member of `struct statfs'. */
+/* #undef HAVE_STRUCT_STATFS_F_FSID___VAL */
+
+/* Define to 1 if `st_mtime_nsec' is a member of `struct stat'. */
+#define HAVE_STRUCT_STAT_ST_MTIME_NSEC 1
+
+/* Define to 1 if `tai' is a member of `struct timex'. */
+#define HAVE_STRUCT_TIMEX_TAI 1
+
+/* Define to 1 if the system has the type `struct user_desc'. */
+/* #undef HAVE_STRUCT_USER_DESC */
+
+/* Define to 1 if `domainname' is a member of `struct utsname'. */
+#define HAVE_STRUCT_UTSNAME_DOMAINNAME 1
+
+/* Define to 1 if `buffersize' is a member of `struct v4l2_sdr_format'. */
+#define HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE 1
+
+/* Define to 1 if `global_alpha' is a member of `struct v4l2_window'. */
+#define HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA 1
+
+/* Define to 1 if the system has the type `struct __kernel_flock'. */
+/* #undef HAVE_STRUCT___KERNEL_FLOCK */
+
+/* Define to 1 if the system has the type `struct __kernel_flock64'. */
+/* #undef HAVE_STRUCT___KERNEL_FLOCK64 */
+
+/* Define to 1 if the system has the type `struct __old_kernel_stat'. */
+/* #undef HAVE_STRUCT___OLD_KERNEL_STAT */
+
+/* Define to 1 if you have the `sync_file_range' function. */
+#define HAVE_SYNC_FILE_RANGE 1
+
+/* Define to 1 if you have the <sys/conf.h> header file. */
+/* #undef HAVE_SYS_CONF_H */
+
+/* Define to 1 if you have the <sys/eventfd.h> header file. */
+#define HAVE_SYS_EVENTFD_H 1
+
+/* Define to 1 if you have the <sys/fanotify.h> header file. */
+/* #undef HAVE_SYS_FANOTIFY_H */
+
+/* Define to 1 if you have the <sys/ipc.h> header file. */
+#define HAVE_SYS_IPC_H 1
+
+/* Define to 1 if you have the <sys/msg.h> header file. */
+#define HAVE_SYS_MSG_H 1
+
+/* Define to 1 if you have the <sys/quota.h> header file. */
+#define HAVE_SYS_QUOTA_H 1
+
+/* Define to 1 if you have the <sys/reg.h> header file. */
+#define HAVE_SYS_REG_H 1
+
+/* Define to 1 if you have the <sys/sem.h> header file. */
+#define HAVE_SYS_SEM_H 1
+
+/* Define to 1 if you have the <sys/shm.h> header file. */
+#define HAVE_SYS_SHM_H 1
+
+/* Define to 1 if you have the <sys/signalfd.h> header file. */
+#define HAVE_SYS_SIGNALFD_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <sys/xattr.h> header file. */
+#define HAVE_SYS_XATTR_H 1
+
+/* Define to 1 if typeof works with your compiler. */
+#define HAVE_TYPEOF 1
+
+/* Define to 1 if union bpf_attr.attach_flags initialization works */
+#define HAVE_UNION_BPF_ATTR_ATTACH_FLAGS 1
+
+/* Define to 1 if union bpf_attr.bpf_fd initialization works */
+#define HAVE_UNION_BPF_ATTR_BPF_FD 1
+
+/* Define to 1 if union bpf_attr.log_buf initialization works */
+#define HAVE_UNION_BPF_ATTR_LOG_BUF 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to 1 if you have the <ustat.h> header file. */
+/* #undef HAVE_USTAT_H */
+
+/* Define to 1 if you have the `utimensat' function. */
+#define HAVE_UTIMENSAT 1
+
+/* Define to 1 if the system provides __builtin_popcount function */
+#define HAVE___BUILTIN_POPCOUNT 1
+
+/* Define to 1 if the system has the type `__kernel_long_t'. */
+#define HAVE___KERNEL_LONG_T 1
+
+/* Define to 1 if the system has the type `__kernel_ulong_t'. */
+#define HAVE___KERNEL_ULONG_T 1
+
+/* Define for the HPPA architecture. */
+/* #undef HPPA */
+
+/* Define for the i386 architecture. */
+/* #undef I386 */
+
+/* Define for the IA64 architecture. */
+/* #undef IA64 */
+
+/* Define for _ABIN32. */
+/* #undef LINUX_MIPSN32 */
+
+/* Define for _ABI64. */
+/* #undef LINUX_MIPSN64 */
+
+/* Define for _ABIO32. */
+/* #undef LINUX_MIPSO32 */
+
+/* Define for the m68k architecture. */
+/* #undef M68K */
+
+/* Define for the Meta architecture. */
+/* #undef METAG */
+
+/* Define for the MicroBlaze architecture. */
+/* #undef MICROBLAZE */
+
+/* Define for the MIPS architecture. */
+/* #undef MIPS */
+
+/* Define for the Nios-II architecture. */
+/* #undef NIOS2 */
+
+/* Define for the OpenRISC 1000 architecture. */
+/* #undef OR1K */
+
+/* Name of package */
+#define PACKAGE "strace"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "strace-devel@lists.sourceforge.net"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "strace"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "strace 4.18"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "strace"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL "https://strace.io"
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "4.18"
+
+/* Define for the PowerPC architecture. */
+/* #undef POWERPC */
+
+/* Define for the PowerPC64 architecture. */
+/* #undef POWERPC64 */
+
+/* Define for the RISC-V architecture */
+/* #undef RISCV */
+
+/* Define for the S390 architecture. */
+/* #undef S390 */
+
+/* Define for the S390x architecture. */
+/* #undef S390X */
+
+/* Define for the SH architecture. */
+/* #undef SH */
+
+/* Define for the SH64 architecture. */
+/* #undef SH64 */
+
+/* The size of `kernel_long_t', as computed by sizeof. */
+/* #undef SIZEOF_KERNEL_LONG_T */
+
+/* The size of `long', as computed by sizeof. */
+/* #undef SIZEOF_LONG */
+
+/* The size of `long long', as computed by sizeof. */
+/* #undef SIZEOF_LONG_LONG */
+
+/* The size of `off_t', as computed by sizeof. */
+/* #undef SIZEOF_OFF_T */
+
+/* The size of `struct i64_i32', as computed by sizeof. */
+#define SIZEOF_STRUCT_I64_I32 16
+
+/* Define for the SPARC architecture. */
+/* #undef SPARC */
+
+/* Define for the SPARC64 architecture. */
+/* #undef SPARC64 */
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define for the Tile architecture */
+/* #undef TILE */
+
+/* Compile stack tracing functionality */
+/* #undef USE_LIBUNWIND */
+
+/* Enable extensions on AIX 3, Interix.  */
+#ifndef _ALL_SOURCE
+# define _ALL_SOURCE 1
+#endif
+/* Enable GNU extensions on systems that have them.  */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+/* Enable threading extensions on Solaris.  */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# define _POSIX_PTHREAD_SEMANTICS 1
+#endif
+/* Enable extensions on HP NonStop.  */
+#ifndef _TANDEM_SOURCE
+# define _TANDEM_SOURCE 1
+#endif
+/* Enable general extensions on Solaris.  */
+#ifndef __EXTENSIONS__
+# define __EXTENSIONS__ 1
+#endif
+
+
+/* Version number of package */
+#define VERSION "4.18"
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+   significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+#  define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+/* #  undef WORDS_BIGENDIAN */
+# endif
+#endif
+
+/* Define for the 32bit AMD x86-64 architecture. */
+/* #undef X32 */
+
+/* Define for the 64bit AMD x86-64 architecture. */
+/* #undef X86_64 */
+
+/* Define for the Xtensa architecture */
+/* #undef XTENSA */
+
+/* Define to 1 if on MINIX. */
+/* #undef _MINIX */
+
+/* Define to 2 if the system does not provide POSIX.1 features except with
+   this defined. */
+/* #undef _POSIX_1_SOURCE */
+
+/* Define to 1 if you need to in order for `stat' and other things to work. */
+/* #undef _POSIX_SOURCE */
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* #undef gid_t */
+
+/* Define to __typeof__ if your compiler spells it that way. */
+/* #undef typeof */
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+/* #undef uid_t */
diff --git a/config.h.in b/config.h.in
index 54b9892..f639455 100644
--- a/config.h.in
+++ b/config.h.in
@@ -717,6 +717,9 @@
 /* Define to 1 if you have the <linux/filter.h> header file. */
 #undef HAVE_LINUX_FILTER_H
 
+/* Define to 1 if you have the <linux/genetlink.h> header file. */
+#undef HAVE_LINUX_GENETLINK_H
+
 /* Define to 1 if you have the <linux/hiddev.h> header file. */
 #undef HAVE_LINUX_HIDDEV_H
 
@@ -754,6 +757,9 @@
    file. */
 #undef HAVE_LINUX_NETFILTER_IPV6_IP6_TABLES_H
 
+/* Define to 1 if you have the <linux/netfilter/nfnetlink.h> header file. */
+#undef HAVE_LINUX_NETFILTER_NFNETLINK_H
+
 /* Define to 1 if you have the <linux/nsfs.h> header file. */
 #undef HAVE_LINUX_NSFS_H
 
@@ -843,6 +849,9 @@
 /* Define to 1 if you have the `process_vm_readv' function. */
 #undef HAVE_PROCESS_VM_READV
 
+/* Define to 1 if the system provides program_invocation_name variable */
+#undef HAVE_PROGRAM_INVOCATION_NAME
+
 /* Define to 1 if you have the `pwritev' function. */
 #undef HAVE_PWRITEV
 
@@ -885,6 +894,9 @@
 /* Define to 1 if you have the <string.h> header file. */
 #undef HAVE_STRING_H
 
+/* Define to 1 if you have the `strndup' function. */
+#undef HAVE_STRNDUP
+
 /* Define to 1 if you have the <stropts.h> header file. */
 #undef HAVE_STROPTS_H
 
diff --git a/configure b/configure
index 9a1c087..c85be08 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.17.
+# Generated by GNU Autoconf 2.69 for strace 4.18.
 #
 # Report bugs to <strace-devel@lists.sourceforge.net>.
 #
@@ -11,7 +11,7 @@
 # This configure script is free software; the Free Software Foundation
 # gives unlimited permission to copy, distribute and modify it.
 #
-# Copyright (C) 1999-2017 The strace developers.
+# Copyright (c) 1999-2017 The strace developers.
 ## -------------------- ##
 ## M4sh Initialization. ##
 ## -------------------- ##
@@ -582,8 +582,8 @@
 # Identity of this package.
 PACKAGE_NAME='strace'
 PACKAGE_TARNAME='strace'
-PACKAGE_VERSION='4.17'
-PACKAGE_STRING='strace 4.17'
+PACKAGE_VERSION='4.18'
+PACKAGE_STRING='strace 4.18'
 PACKAGE_BUGREPORT='strace-devel@lists.sourceforge.net'
 PACKAGE_URL='https://strace.io'
 
@@ -1346,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.17 to adapt to many kinds of systems.
+\`configure' configures strace 4.18 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1416,7 +1416,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of strace 4.17:";;
+     short | recursive ) echo "Configuration of strace 4.18:";;
    esac
   cat <<\_ACEOF
 
@@ -1528,14 +1528,14 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-strace configure 4.17
+strace configure 4.18
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 
-Copyright (C) 1999-2017 The strace developers.
+Copyright (c) 1999-2017 The strace developers.
 _ACEOF
   exit
 fi
@@ -2268,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.17, which was
+It was created by strace $as_me 4.18, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3138,7 +3138,7 @@
 
 # Define the identity of the package.
  PACKAGE='strace'
- VERSION='4.17'
+ VERSION='4.18'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -8397,7 +8397,7 @@
 
 fi
 
-				CODE_COVERAGE_CPPFLAGS="-DNDEBUG"
+				CODE_COVERAGE_CPPFLAGS="-DENABLE_COVERAGE_GCOV -DNDEBUG"
 		CODE_COVERAGE_CFLAGS="-O0 -g -fprofile-arcs -ftest-coverage"
 		CODE_COVERAGE_CXXFLAGS="-O0 -g -fprofile-arcs -ftest-coverage"
 		CODE_COVERAGE_LDFLAGS="-lgcov"
@@ -9203,7 +9203,7 @@
 fi
 
 
-for ac_func in accept4 fallocate fanotify_mark fopen64 fork fputs_unlocked fstatat ftruncate futimens if_indextoname open64 prctl preadv process_vm_readv pwritev readahead signalfd stpcpy strerror strsignal sync_file_range utimensat
+for ac_func in accept4 fallocate fanotify_mark fopen64 fork fputs_unlocked fstatat ftruncate futimens if_indextoname open64 prctl preadv process_vm_readv pwritev readahead signalfd stpcpy strerror strndup strsignal sync_file_range utimensat
 do :
   as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
 ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
@@ -9678,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/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
+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/genetlink.h linux/hiddev.h linux/ip_vs.h linux/ipc.h linux/mmtimer.h linux/msg.h linux/netfilter/nfnetlink.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"
@@ -10069,7 +10069,7 @@
 
 fi
 
-        ac_fn_c_check_decl "$LINENO" "BTRFS_COMPRESS_NONE" "ac_cv_have_decl_BTRFS_COMPRESS_NONE" " #include <stdio.h>
+	ac_fn_c_check_decl "$LINENO" "BTRFS_COMPRESS_NONE" "ac_cv_have_decl_BTRFS_COMPRESS_NONE" " #include <stdio.h>
 #include <linux/btrfs.h>
 "
 if test "x$ac_cv_have_decl_BTRFS_COMPRESS_NONE" = xyes; then :
@@ -12182,7 +12182,7 @@
   st_cv_SIGRTMIN="$(echo SIGRTMIN |
 			$CPP $CPPFLAGS -P -imacros asm/signal.h - |
 			grep '^[0-9]')"
-	         test -n "$st_cv_SIGRTMIN" || st_cv_SIGRTMIN=no
+		 test -n "$st_cv_SIGRTMIN" || st_cv_SIGRTMIN=no
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $st_cv_SIGRTMIN" >&5
 $as_echo "$st_cv_SIGRTMIN" >&6; }
@@ -12201,7 +12201,7 @@
   st_cv_SA_RESTORER="$(echo SA_RESTORER |
 			$CPP $CPPFLAGS -P -imacros asm/signal.h - |
 			grep ^0x)"
-	        test -n "$st_cv_SA_RESTORER" || st_cv_SA_RESTORER=no
+		test -n "$st_cv_SA_RESTORER" || st_cv_SA_RESTORER=no
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $st_cv_SA_RESTORER" >&5
 $as_echo "$st_cv_SA_RESTORER" >&6; }
@@ -12245,6 +12245,38 @@
 
 fi
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for program_invocation_name" >&5
+$as_echo_n "checking for program_invocation_name... " >&6; }
+if ${st_cv_have_program_invocation_name+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <errno.h>
+int
+main ()
+{
+return !*program_invocation_name
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  st_cv_have_program_invocation_name=yes
+else
+  st_cv_have_program_invocation_name=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $st_cv_have_program_invocation_name" >&5
+$as_echo "$st_cv_have_program_invocation_name" >&6; }
+if test "x$st_cv_have_program_invocation_name" = xyes; then
+
+$as_echo "#define HAVE_PROGRAM_INVOCATION_NAME 1" >>confdefs.h
+
+fi
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dladdr in -ldl" >&5
 $as_echo_n "checking for dladdr in -ldl... " >&6; }
 if ${ac_cv_lib_dl_dladdr+:} false; then :
@@ -12342,11 +12374,11 @@
 # Check whether --with-libunwind was given.
 if test "${with_libunwind+set}" = set; then :
   withval=$with_libunwind; case "${withval}" in
-             yes|no|check) ;;
-             *) with_libunwind=yes
-                libunwind_CPPFLAGS="-I${withval}/include"
-                libunwind_LDFLAGS="-L${withval}/lib" ;;
-             esac
+	     yes|no|check) ;;
+	     *) with_libunwind=yes
+		libunwind_CPPFLAGS="-I${withval}/include"
+		libunwind_LDFLAGS="-L${withval}/lib" ;;
+	     esac
 else
   with_libunwind=check
 
@@ -12366,16 +12398,16 @@
 #define HAVE_LIBUNWIND_PTRACE_H 1
 _ACEOF
  saved_LDFLAGS="$LDFLAGS"
-          LDFLAGS="$LDFLAGS $libunwind_LDFLAGS"
+	  LDFLAGS="$LDFLAGS $libunwind_LDFLAGS"
 
-          { $as_echo "$as_me:${as_lineno-$LINENO}: checking for backtrace in -lunwind" >&5
+	  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for backtrace in -lunwind" >&5
 $as_echo_n "checking for backtrace in -lunwind... " >&6; }
 if ${ac_cv_lib_unwind_backtrace+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lunwind $libunwind_LIBS
-           $LIBS"
+	   $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -12408,12 +12440,12 @@
 if test "x$ac_cv_lib_unwind_backtrace" = xyes; then :
   libunwind_LIBS="-lunwind $libunwind_LIBS"
 
-             { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unw_create_addr_space in libunwind-generic" >&5
+	     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unw_create_addr_space in libunwind-generic" >&5
 $as_echo_n "checking for unw_create_addr_space in libunwind-generic... " >&6; }
-             saved_LIBS="$LIBS"
-             LIBS="-lunwind-generic $libunwind_LIBS $LIBS"
+	     saved_LIBS="$LIBS"
+	     LIBS="-lunwind-generic $libunwind_LIBS $LIBS"
 
-             cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+	     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <libunwind-ptrace.h>
 int
@@ -12428,16 +12460,16 @@
 if ac_fn_c_try_link "$LINENO"; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-                libunwind_LIBS="-lunwind-generic $libunwind_LIBS"
+		libunwind_LIBS="-lunwind-generic $libunwind_LIBS"
 
-                { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _UPT_create in -lunwind-ptrace" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _UPT_create in -lunwind-ptrace" >&5
 $as_echo_n "checking for _UPT_create in -lunwind-ptrace... " >&6; }
 if ${ac_cv_lib_unwind_ptrace__UPT_create+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lunwind-ptrace $libunwind_LIBS
-                 $LIBS"
+		 $LIBS"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -12469,15 +12501,15 @@
 $as_echo "$ac_cv_lib_unwind_ptrace__UPT_create" >&6; }
 if test "x$ac_cv_lib_unwind_ptrace__UPT_create" = xyes; then :
   libunwind_LIBS="-lunwind-ptrace $libunwind_LIBS"
-                   use_libunwind=yes
+		   use_libunwind=yes
 
 else
   if test "x$with_libunwind" != xcheck; then
-                     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+		     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "failed to find _UPT_create in libunwind-ptrace
 See \`config.log' for more details" "$LINENO" 5; }
-                   fi
+		   fi
 
 fi
 
@@ -12485,40 +12517,40 @@
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
-                if test "x$with_libunwind" != xcheck; then
-                  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+		if test "x$with_libunwind" != xcheck; then
+		  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "failed to find unw_create_addr_space in libunwind-generic
 See \`config.log' for more details" "$LINENO" 5; }
-                fi
+		fi
 
 
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext conftest.$ac_ext
 
-             LIBS="$saved_LIBS"
+	     LIBS="$saved_LIBS"
 
 else
   if test "x$with_libunwind" != xcheck; then
-               { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+	       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "failed to find libunwind
 See \`config.log' for more details" "$LINENO" 5; }
-             fi
+	     fi
 
 fi
 
 
-          LDFLAGS="$saved_LDFLAGS"
+	  LDFLAGS="$saved_LDFLAGS"
 
 else
   if test "x$with_libunwind" != xcheck; then
-            { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+	    { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "failed to find libunwind-ptrace.h
 See \`config.log' for more details" "$LINENO" 5; }
-          fi
+	  fi
 
 
 fi
@@ -14198,7 +14230,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.17, which was
+This file was extended by strace $as_me 4.18, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -14265,7 +14297,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.17
+strace config.status 4.18
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index 620a33b..eb7b0e7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -37,7 +37,7 @@
 	[strace],
 	[https://strace.io])
 m4_define([copyright_year], m4_esyscmd([./copyright-year-gen .year]))
-AC_COPYRIGHT([Copyright (C) 1999-]copyright_year[ The strace developers.])
+AC_COPYRIGHT([Copyright (c) 1999-]copyright_year[ The strace developers.])
 AC_CONFIG_SRCDIR([strace.c])
 AC_CONFIG_AUX_DIR([.])
 AC_CONFIG_HEADERS([config.h])
@@ -283,6 +283,7 @@
 	signalfd
 	stpcpy
 	strerror
+	strndup
 	strsignal
 	sync_file_range
 	utimensat
@@ -366,11 +367,13 @@
 	linux/falloc.h
 	linux/fiemap.h
 	linux/filter.h
+	linux/genetlink.h
 	linux/hiddev.h
 	linux/ip_vs.h
 	linux/ipc.h
 	linux/mmtimer.h
 	linux/msg.h
+	linux/netfilter/nfnetlink.h
 	linux/nsfs.h
 	linux/perf_event.h
 	linux/quota.h
@@ -487,8 +490,8 @@
 		struct btrfs_ioctl_search_args_v2.buf_size
 		]),,, [ #include <stdio.h>
 #include <linux/btrfs.h>])
-        AC_CHECK_DECLS(m4_normalize([BTRFS_COMPRESS_NONE, BTRFS_COMPRESS_ZLIB,
-	                        BTRFS_COMPRESS_LZO]),,,[ #include <stdio.h>
+	AC_CHECK_DECLS(m4_normalize([BTRFS_COMPRESS_NONE, BTRFS_COMPRESS_ZLIB,
+				BTRFS_COMPRESS_LZO]),,,[ #include <stdio.h>
 #include <linux/btrfs.h>])])
 
 AC_CHECK_DECLS([sys_errlist])
@@ -682,7 +685,7 @@
 	       [[st_cv_SIGRTMIN="$(echo SIGRTMIN |
 			$CPP $CPPFLAGS -P -imacros asm/signal.h - |
 			grep '^[0-9]')"
-	         test -n "$st_cv_SIGRTMIN" || st_cv_SIGRTMIN=no]])
+		 test -n "$st_cv_SIGRTMIN" || st_cv_SIGRTMIN=no]])
 if test "x$st_cv_SIGRTMIN" != xno; then
 	AC_DEFINE_UNQUOTED([ASM_SIGRTMIN], [$st_cv_SIGRTMIN],
 			   [SIGRTMIN defined in <asm/signal.h>])
@@ -691,7 +694,7 @@
 	       [st_cv_SA_RESTORER="$(echo SA_RESTORER |
 			$CPP $CPPFLAGS -P -imacros asm/signal.h - |
 			grep ^0x)"
-	        test -n "$st_cv_SA_RESTORER" || st_cv_SA_RESTORER=no])
+		test -n "$st_cv_SA_RESTORER" || st_cv_SA_RESTORER=no])
 if test "x$st_cv_SA_RESTORER" != xno; then
 	AC_DEFINE_UNQUOTED([ASM_SA_RESTORER], [$st_cv_SA_RESTORER],
 			   [SA_RESTORER defined in <asm/signal.h>])
@@ -706,6 +709,16 @@
 		  [Define to 1 if the system provides __builtin_popcount function])
 fi
 
+AC_CACHE_CHECK([for program_invocation_name], [st_cv_have_program_invocation_name],
+	       [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <errno.h>]],
+						[[return !*program_invocation_name]])],
+			       [st_cv_have_program_invocation_name=yes],
+			       [st_cv_have_program_invocation_name=no])])
+if test "x$st_cv_have_program_invocation_name" = xyes; then
+	AC_DEFINE([HAVE_PROGRAM_INVOCATION_NAME], [1],
+		  [Define to 1 if the system provides program_invocation_name variable])
+fi
+
 AC_CHECK_LIB([dl], [dladdr], [dl_LIBS='-ldl'], [dl_LIBS=])
 if test "x$ac_cv_lib_dl_dladdr" = xyes; then
 	AC_DEFINE([HAVE_DLADDR], [1], [Define to 1 if the system provides dladdr])
@@ -719,15 +732,15 @@
 libunwind_LDFLAGS=
 libunwind_LIBS=
 AC_ARG_WITH([libunwind],
-            [AS_HELP_STRING([--with-libunwind],
-                            [use libunwind to implement stack tracing support])],
-            [case "${withval}" in
-             yes|no|check) ;;
-             *) with_libunwind=yes
-                libunwind_CPPFLAGS="-I${withval}/include"
-                libunwind_LDFLAGS="-L${withval}/lib" ;;
-             esac],
-            [with_libunwind=check]
+	    [AS_HELP_STRING([--with-libunwind],
+			    [use libunwind to implement stack tracing support])],
+	    [case "${withval}" in
+	     yes|no|check) ;;
+	     *) with_libunwind=yes
+		libunwind_CPPFLAGS="-I${withval}/include"
+		libunwind_LDFLAGS="-L${withval}/lib" ;;
+	     esac],
+	    [with_libunwind=check]
 )
 
 use_libunwind=no
@@ -736,56 +749,56 @@
        CPPFLAGS="$CPPFLAGS $libunwind_CPPFLAGS"
 
        AC_CHECK_HEADERS([libunwind-ptrace.h],
-         [saved_LDFLAGS="$LDFLAGS"
-          LDFLAGS="$LDFLAGS $libunwind_LDFLAGS"
+	 [saved_LDFLAGS="$LDFLAGS"
+	  LDFLAGS="$LDFLAGS $libunwind_LDFLAGS"
 
-          AC_CHECK_LIB([unwind], [backtrace],
-            [libunwind_LIBS="-lunwind $libunwind_LIBS"
+	  AC_CHECK_LIB([unwind], [backtrace],
+	    [libunwind_LIBS="-lunwind $libunwind_LIBS"
 
-             AC_MSG_CHECKING([for unw_create_addr_space in libunwind-generic])
-             saved_LIBS="$LIBS"
-             LIBS="-lunwind-generic $libunwind_LIBS $LIBS"
+	     AC_MSG_CHECKING([for unw_create_addr_space in libunwind-generic])
+	     saved_LIBS="$LIBS"
+	     LIBS="-lunwind-generic $libunwind_LIBS $LIBS"
 
-             AC_LINK_IFELSE(
-               [AC_LANG_PROGRAM([[#include <libunwind-ptrace.h>]],
-                                [[return !unw_create_addr_space(0, 0)]])
-               ],
-               [AC_MSG_RESULT([yes])
-                libunwind_LIBS="-lunwind-generic $libunwind_LIBS"
+	     AC_LINK_IFELSE(
+	       [AC_LANG_PROGRAM([[#include <libunwind-ptrace.h>]],
+				[[return !unw_create_addr_space(0, 0)]])
+	       ],
+	       [AC_MSG_RESULT([yes])
+		libunwind_LIBS="-lunwind-generic $libunwind_LIBS"
 
-                AC_CHECK_LIB([unwind-ptrace], [_UPT_create],
-                  [libunwind_LIBS="-lunwind-ptrace $libunwind_LIBS"
-                   use_libunwind=yes
-                  ],
-                  [if test "x$with_libunwind" != xcheck; then
-                     AC_MSG_FAILURE([failed to find _UPT_create in libunwind-ptrace])
-                   fi
-                  ],
-                  [$libunwind_LIBS]
-                )
-               ],
-               [AC_MSG_RESULT([no])
-                if test "x$with_libunwind" != xcheck; then
-                  AC_MSG_FAILURE([failed to find unw_create_addr_space in libunwind-generic])
-                fi
-               ]
-             )
+		AC_CHECK_LIB([unwind-ptrace], [_UPT_create],
+		  [libunwind_LIBS="-lunwind-ptrace $libunwind_LIBS"
+		   use_libunwind=yes
+		  ],
+		  [if test "x$with_libunwind" != xcheck; then
+		     AC_MSG_FAILURE([failed to find _UPT_create in libunwind-ptrace])
+		   fi
+		  ],
+		  [$libunwind_LIBS]
+		)
+	       ],
+	       [AC_MSG_RESULT([no])
+		if test "x$with_libunwind" != xcheck; then
+		  AC_MSG_FAILURE([failed to find unw_create_addr_space in libunwind-generic])
+		fi
+	       ]
+	     )
 
-             LIBS="$saved_LIBS"
-            ],
-            [if test "x$with_libunwind" != xcheck; then
-               AC_MSG_FAILURE([failed to find libunwind])
-             fi
-            ],
-            [$libunwind_LIBS]
-          )
+	     LIBS="$saved_LIBS"
+	    ],
+	    [if test "x$with_libunwind" != xcheck; then
+	       AC_MSG_FAILURE([failed to find libunwind])
+	     fi
+	    ],
+	    [$libunwind_LIBS]
+	  )
 
-          LDFLAGS="$saved_LDFLAGS"
-         ],
-         [if test "x$with_libunwind" != xcheck; then
-            AC_MSG_FAILURE([failed to find libunwind-ptrace.h])
-          fi
-         ]
+	  LDFLAGS="$saved_LDFLAGS"
+	 ],
+	 [if test "x$with_libunwind" != xcheck; then
+	    AC_MSG_FAILURE([failed to find libunwind-ptrace.h])
+	  fi
+	 ]
        )
 
        CPPFLAGS="$saved_CPPFLAGS"
diff --git a/count.c b/count.c
index 1af9336..f5e4f12 100644
--- a/count.c
+++ b/count.c
@@ -77,7 +77,7 @@
 			/* Initialize it.  */
 			struct itimerval it;
 
-			memset(&it, 0, sizeof it);
+			memset(&it, 0, sizeof(it));
 			it.it_interval.tv_usec = 1;
 			setitimer(ITIMER_REAL, &it, NULL);
 			getitimer(ITIMER_REAL, &it);
diff --git a/debian/changelog b/debian/changelog
index d891a6f..25dcc0f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,14 @@
-strace (4.17-1) experimental; urgency=low
+strace (4.18-1) experimental; urgency=low
 
-  * strace 4.17 snapshot.
+  * strace 4.18 snapshot.
 
- -- Strace <strace-devel@lists.sourceforge.net>  Thu, 25 May 2017 15:09:49 -0700
+ -- Strace <strace-devel@lists.sourceforge.net>  Wed, 05 Jul 2017 07:35:28 +0000
+
+strace (4.17-1) unstable; urgency=medium
+
+  * New upstream version.
+
+ -- Dmitry V. Levin <ldv@altlinux.org>  Wed, 24 May 2017 16:17:18 +0000
 
 strace (4.16-1) unstable; urgency=medium
 
diff --git a/debian/changelog.in b/debian/changelog.in
index 8aab9d9..1b28572 100644
--- a/debian/changelog.in
+++ b/debian/changelog.in
@@ -4,6 +4,12 @@
 
  -- Strace <@PACKAGE_BUGREPORT@>  @DEB_CHANGELOGTIME@
 
+strace (4.17-1) unstable; urgency=medium
+
+  * New upstream version.
+
+ -- Dmitry V. Levin <ldv@altlinux.org>  Wed, 24 May 2017 16:17:18 +0000
+
 strace (4.16-1) unstable; urgency=medium
 
   * New upstream version.
diff --git a/debian/copyright b/debian/copyright
index fd35507..e227efd 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -10,7 +10,7 @@
 Copyright (c) 1993 Ulrich Pegelow <pegelow@moorea.uni-muenster.de>
 Copyright (c) 1995, 1996 Michael Elizabeth Chastain <mec@duracef.shout.net>
 Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
-Copyright (C) 1998-2003 Wichert Akkerman <wakkerma@deephackmode.org>
+Copyright (c) 1998-2003 Wichert Akkerman <wakkerma@deephackmode.org>
 Copyright (c) 2002-2008 Roland McGrath  <roland@redhat.com>
 Copyright (c) 2003-2008 Dmitry V. Levin <ldv@altlinux.org>
 Copyright (c) 2007-2008 Jan Kratochvil  <jan.kratochvil@redhat.com>
diff --git a/defs.h b/defs.h
index fb3a603..b3a315f 100644
--- a/defs.h
+++ b/defs.h
@@ -2,7 +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.
+ * Copyright (c) 2001-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -54,8 +54,9 @@
 #include <sys/time.h>
 
 #include "kernel_types.h"
-#include "mpers_type.h"
 #include "gcc_compat.h"
+#include "macros.h"
+#include "mpers_type.h"
 #include "sysent.h"
 
 #ifndef HAVE_STRERROR
@@ -75,8 +76,6 @@
 	(offsetof(type, member) + sizeof(((type *)NULL)->member))
 #endif
 
-#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]) + MUST_BE_ARRAY(a))
-
 /* macros */
 #ifndef MAX
 # define MAX(a, b)		(((a) > (b)) ? (a) : (b))
@@ -106,7 +105,7 @@
  *
  * Make sure that all entries in all syscallent.h files have nargs <= MAX_ARGS!
  * linux/<ARCH>/syscallent*.h:
- * 	all have nargs <= 6 except mips o32 which has nargs <= 7.
+ *	all have nargs <= 6 except mips o32 which has nargs <= 7.
  */
 #ifndef MAX_ARGS
 # ifdef LINUX_MIPSO32
@@ -234,11 +233,11 @@
 	struct timeval etime;	/* Syscall entry time */
 
 #ifdef USE_LIBUNWIND
-	struct UPT_info* libunwind_ui;
-	struct mmap_cache_t* mmap_cache;
+	struct UPT_info *libunwind_ui;
+	struct mmap_cache_t *mmap_cache;
 	unsigned int mmap_cache_size;
 	unsigned int mmap_cache_generation;
-	struct queue_t* queue;
+	struct queue_t *queue;
 #endif
 };
 
@@ -249,17 +248,13 @@
 /*
  * Are we in system call entry or in syscall exit?
  *
- * This bit is set after all syscall entry processing is done.
- * Therefore, this bit will be set when next ptrace stop occurs,
- * which should be syscall exit stop. Other stops which are possible
- * directly after syscall entry (death, ptrace event stop)
- * are simpler and handled without calling trace_syscall(), therefore
- * the places where TCB_INSYSCALL can be set but we aren't in syscall stop
- * are limited to trace(), this condition is never observed in trace_syscall()
- * and below.
- * The bit is cleared after all syscall exit processing is done.
+ * This bit is set in syscall_entering_finish() and cleared in
+ * syscall_exiting_finish().
+ * Other stops which are possible directly after syscall entry (death, ptrace
+ * event stop) are handled without calling syscall_{entering,exiting}_*().
  *
- * Use entering(tcp) / exiting(tcp) to check this bit to make code more readable.
+ * Use entering(tcp) / exiting(tcp) to check this bit to make code more
+ * readable.
  */
 #define TCB_INSYSCALL	0x04
 #define TCB_ATTACHED	0x08	/* We attached to it already */
@@ -295,7 +290,9 @@
 extern const struct xlat at_flags[];
 extern const struct xlat clocknames[];
 extern const struct xlat dirent_types[];
+extern const struct xlat ethernet_protocols[];
 extern const struct xlat evdev_abs[];
+extern const struct xlat inet_protocols[];
 extern const struct xlat msg_flags[];
 extern const struct xlat netlink_protocols[];
 extern const struct xlat open_access_modes[];
@@ -304,6 +301,7 @@
 extern const struct xlat setns_types[];
 extern const struct xlat sg_io_info[];
 extern const struct xlat socketlayers[];
+extern const struct xlat socktypes[];
 extern const struct xlat whence_codes[];
 
 /* Format of syscall return values */
@@ -384,7 +382,7 @@
 extern unsigned max_strlen;
 extern unsigned os_release;
 #undef KERNEL_VERSION
-#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
+#define KERNEL_VERSION(a, b, c) (((a) << 16) + ((b) << 8) + (c))
 
 void error_msg(const char *fmt, ...) ATTRIBUTE_FORMAT((printf, 1, 2));
 void perror_msg(const char *fmt, ...) ATTRIBUTE_FORMAT((printf, 1, 2));
@@ -394,7 +392,6 @@
 	ATTRIBUTE_FORMAT((printf, 1, 2)) ATTRIBUTE_NORETURN;
 void perror_msg_and_die(const char *fmt, ...)
 	ATTRIBUTE_FORMAT((printf, 1, 2)) ATTRIBUTE_NORETURN;
-void die_out_of_memory(void) ATTRIBUTE_NORETURN;
 
 void *xmalloc(size_t size) ATTRIBUTE_MALLOC ATTRIBUTE_ALLOC_SIZE((1));
 void *xcalloc(size_t nmemb, size_t size)
@@ -402,13 +399,22 @@
 void *xreallocarray(void *ptr, size_t nmemb, size_t size)
 	ATTRIBUTE_ALLOC_SIZE((2, 3));
 char *xstrdup(const char *str) ATTRIBUTE_MALLOC;
+char *xstrndup(const char *str, size_t n) ATTRIBUTE_MALLOC;
 
 extern int read_int_from_file(const char *, int *);
 
 extern void set_sortby(const char *);
 extern void set_overhead(int);
 extern void print_pc(struct tcb *);
-extern int trace_syscall(struct tcb *, unsigned int *);
+
+extern int syscall_entering_decode(struct tcb *);
+extern int syscall_entering_trace(struct tcb *, unsigned int *);
+extern void syscall_entering_finish(struct tcb *, int);
+
+extern int syscall_exiting_decode(struct tcb *, struct timeval *);
+extern int syscall_exiting_trace(struct tcb *, struct timeval, int);
+extern void syscall_exiting_finish(struct tcb *);
+
 extern void count_syscall(struct tcb *, const struct timeval *);
 extern void call_summary(FILE *);
 
@@ -446,28 +452,28 @@
 }
 
 extern int
-umoven(struct tcb *tcp, kernel_ulong_t addr, unsigned int len, void *laddr);
+umoven(struct tcb *, kernel_ulong_t addr, unsigned int len, void *laddr);
 #define umove(pid, addr, objp)	\
 	umoven((pid), (addr), sizeof(*(objp)), (void *) (objp))
 
 extern int
-umoven_or_printaddr(struct tcb *tcp, kernel_ulong_t addr,
+umoven_or_printaddr(struct tcb *, kernel_ulong_t addr,
 		    unsigned int len, void *laddr);
 #define umove_or_printaddr(pid, addr, objp)	\
 	umoven_or_printaddr((pid), (addr), sizeof(*(objp)), (void *) (objp))
 
 extern int
-umoven_or_printaddr_ignore_syserror(struct tcb *tcp, kernel_ulong_t addr,
+umoven_or_printaddr_ignore_syserror(struct tcb *, kernel_ulong_t addr,
 				    unsigned int len, void *laddr);
 
 extern int
-umovestr(struct tcb *tcp, kernel_ulong_t addr, unsigned int len, char *laddr);
+umovestr(struct tcb *, kernel_ulong_t addr, unsigned int len, char *laddr);
 
 extern int upeek(int pid, unsigned long, kernel_ulong_t *);
 extern int upoke(int pid, unsigned long, kernel_ulong_t);
 
 extern bool
-print_array(struct tcb *tcp,
+print_array(struct tcb *,
 	    kernel_ulong_t start_addr,
 	    size_t nmemb,
 	    void *elem_buf,
@@ -494,11 +500,20 @@
 extern void pathtrace_select(const char *);
 extern int pathtrace_match(struct tcb *);
 extern int getfdpath(struct tcb *, int, char *, unsigned);
+extern unsigned long getfdinode(struct tcb *, int);
 extern enum sock_proto getfdproto(struct tcb *, int);
 
 extern const char *xlookup(const struct xlat *, const uint64_t);
 extern const char *xlat_search(const struct xlat *, const size_t, const uint64_t);
 
+struct dyxlat;
+struct dyxlat *dyxlat_alloc(size_t nmemb);
+void dyxlat_free(struct dyxlat *);
+const struct xlat *dyxlat_get(const struct dyxlat *);
+void dyxlat_add_pair(struct dyxlat *, uint64_t val, const char *str, size_t len);
+
+const struct xlat *genl_families_xlat(void);
+
 extern unsigned long get_pagesize(void);
 extern int
 string_to_uint_ex(const char *str, char **endptr,
@@ -511,10 +526,24 @@
 }
 extern int next_set_bit(const void *bit_array, unsigned cur_bit, unsigned size_bits);
 
-#define QUOTE_0_TERMINATED                      0x01
-#define QUOTE_OMIT_LEADING_TRAILING_QUOTES      0x02
-#define QUOTE_OMIT_TRAILING_0                   0x08
-#define QUOTE_FORCE_HEX                         0x10
+/*
+ * Returns STR if it does not start with PREFIX,
+ * or a pointer to the first char in STR after PREFIX.
+ * The length of PREFIX is specified by PREFIX_LEN.
+ */
+static inline const char *
+str_strip_prefix_len(const char *str, const char *prefix, size_t prefix_len)
+{
+	return strncmp(str, prefix, prefix_len) ? str : str + prefix_len;
+}
+
+#define STR_STRIP_PREFIX(str, prefix)	\
+	str_strip_prefix_len((str), (prefix), sizeof(prefix) - 1)
+
+#define QUOTE_0_TERMINATED			0x01
+#define QUOTE_OMIT_LEADING_TRAILING_QUOTES	0x02
+#define QUOTE_OMIT_TRAILING_0			0x08
+#define QUOTE_FORCE_HEX				0x10
 
 extern int string_quote(const char *, char *, unsigned int, unsigned int);
 extern int print_quoted_string(const char *, unsigned int, unsigned int);
@@ -523,10 +552,10 @@
  * b refers to the higher numbered u_arg
  */
 #ifdef WORDS_BIGENDIAN
-# define ULONG_LONG(a,b) \
+# define ULONG_LONG(a, b) \
 	((unsigned long long)(unsigned)(b) | ((unsigned long long)(a)<<32))
 #else
-# define ULONG_LONG(a,b) \
+# define ULONG_LONG(a, b) \
 	((unsigned long long)(unsigned)(a) | ((unsigned long long)(b)<<32))
 #endif
 extern int getllval(struct tcb *, unsigned long long *, int);
@@ -545,7 +574,8 @@
 extern int printargs_d(struct tcb *);
 
 extern void addflags(const struct xlat *, uint64_t);
-extern int printflags64(const struct xlat *, uint64_t, const char *);
+extern int printflags_ex(uint64_t, const char *, const struct xlat *, ...)
+	ATTRIBUTE_SENTINEL;
 extern const char *sprintflags(const char *, const struct xlat *, uint64_t);
 extern const char *sprinttime(long long sec);
 extern const char *sprinttime_nsec(long long sec, unsigned long long nsec);
@@ -581,9 +611,11 @@
 #define TIMESPEC_TEXT_BUFSIZE \
 		(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);
-extern bool print_sockaddr_by_inode_cached(const unsigned long);
+extern void print_sockaddr(struct tcb *, const void *sa, int len);
+extern bool
+print_inet_addr(int af, const void *addr, unsigned int len, const char *var_name);
+extern const char *get_sockaddr_by_inode(struct tcb *, int fd, unsigned long inode);
+extern bool print_sockaddr_by_inode(struct tcb *, int fd, unsigned long inode);
 extern void print_dirfd(struct tcb *, int);
 
 extern int
@@ -606,7 +638,7 @@
 		enum iov_decode, kernel_ulong_t data_size);
 
 extern void
-decode_netlink(struct tcb *, kernel_ulong_t addr, kernel_ulong_t len);
+decode_netlink(struct tcb *, int fd, kernel_ulong_t addr, kernel_ulong_t len);
 
 extern void tprint_open_modes(unsigned int);
 extern const char *sprint_open_modes(unsigned int);
@@ -618,7 +650,7 @@
 print_seccomp_fprog(struct tcb *, kernel_ulong_t addr, unsigned short len);
 
 struct strace_stat;
-extern void print_struct_stat(struct tcb *tcp, const struct strace_stat *const st);
+extern void print_struct_stat(struct tcb *, const struct strace_stat *const st);
 
 struct strace_statfs;
 
@@ -655,6 +687,17 @@
 
 extern int decode_sg_io_v4(struct tcb *, const kernel_ulong_t arg);
 
+struct nlmsghdr;
+
+typedef bool (*netlink_decoder_t)(struct tcb *, const struct nlmsghdr *,
+				  kernel_ulong_t addr, kernel_ulong_t len);
+
+#define DECL_NETLINK(name)						\
+extern bool								\
+decode_netlink_ ## name(struct tcb *, const struct nlmsghdr *,		\
+			kernel_ulong_t addr, kernel_ulong_t len)
+DECL_NETLINK(sock_diag);
+
 extern int tv_nz(const struct timeval *);
 extern int tv_cmp(const struct timeval *, const struct timeval *);
 extern double tv_float(const struct timeval *);
@@ -665,11 +708,11 @@
 
 #ifdef USE_LIBUNWIND
 extern void unwind_init(void);
-extern void unwind_tcb_init(struct tcb *tcp);
-extern void unwind_tcb_fin(struct tcb *tcp);
-extern void unwind_cache_invalidate(struct tcb* tcp);
-extern void unwind_print_stacktrace(struct tcb* tcp);
-extern void unwind_capture_stacktrace(struct tcb* tcp);
+extern void unwind_tcb_init(struct tcb *);
+extern void unwind_tcb_fin(struct tcb *);
+extern void unwind_cache_invalidate(struct tcb *);
+extern void unwind_print_stacktrace(struct tcb *);
+extern void unwind_capture_stacktrace(struct tcb *);
 #endif
 
 static inline void
@@ -685,6 +728,12 @@
 }
 
 static inline int
+printflags64(const struct xlat *x, uint64_t flags, const char *dflt)
+{
+	return printflags_ex(flags, dflt, x, NULL);
+}
+
+static inline int
 printflags(const struct xlat *x, unsigned int flags, const char *dflt)
 {
 	return printflags64(x, flags, dflt);
@@ -716,10 +765,10 @@
 
 extern void print_timeval32_t(const timeval32_t *);
 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_utimes(struct tcb *tcp, kernel_ulong_t);
-extern void print_itimerval32(struct tcb *tcp, kernel_ulong_t);
+extern const char *sprint_timeval32(struct tcb *, kernel_ulong_t addr);
+extern void print_timeval32(struct tcb *, kernel_ulong_t addr);
+extern void print_timeval32_utimes(struct tcb *, kernel_ulong_t addr);
+extern void print_itimerval32(struct tcb *, kernel_ulong_t addr);
 #endif
 
 #ifdef HAVE_STRUCT_USER_DESC
diff --git a/desc.c b/desc.c
index d52afc4..52e58c8 100644
--- a/desc.c
+++ b/desc.c
@@ -164,8 +164,7 @@
 						);
 						first = 0;
 						sep = ", ";
-					}
-					else {
+					} else {
 						outptr += sprintf(outptr, " %u", j);
 					}
 				}
diff --git a/dirent.c b/dirent.c
index d413ed6..71963ec 100644
--- a/dirent.c
+++ b/dirent.c
@@ -133,7 +133,7 @@
 				d->d_reclen);
 
 			if (print_quoted_string(d->d_name, d_name_len,
-					        QUOTE_0_TERMINATED) > 0) {
+						QUOTE_0_TERMINATED) > 0) {
 				tprints("...");
 			}
 
diff --git a/dirent64.c b/dirent64.c
index e2a4253..d54cb9e 100644
--- a/dirent64.c
+++ b/dirent64.c
@@ -106,7 +106,7 @@
 
 			tprints(", d_name=");
 			if (print_quoted_string(d->d_name, d_name_len,
-					        QUOTE_0_TERMINATED) > 0) {
+						QUOTE_0_TERMINATED) > 0) {
 				tprints("...");
 			}
 
diff --git a/dm.c b/dm.c
index 26dcb22..2413626 100644
--- a/dm.c
+++ b/dm.c
@@ -374,7 +374,7 @@
 
 static void
 dm_decode_dm_target_msg(struct tcb *const tcp, const kernel_ulong_t addr,
-		        const struct dm_ioctl *const ioc)
+			const struct dm_ioctl *const ioc)
 {
 	if (ioc->data_start == ioc->data_size)
 		return;
diff --git a/dyxlat.c b/dyxlat.c
new file mode 100644
index 0000000..ef6bef4
--- /dev/null
+++ b/dyxlat.c
@@ -0,0 +1,103 @@
+/*
+ * Copyright (c) 2017 The strace developers.
+ *
+ * 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 "defs.h"
+
+struct dyxlat {
+	size_t used;
+	size_t allocated;
+	struct xlat *xlat;
+};
+
+#define MARK_END(xlat)				\
+	do {					\
+		(xlat).val = 0;			\
+		(xlat).str = 0;			\
+	} while (0)
+
+struct dyxlat *
+dyxlat_alloc(const size_t nmemb)
+{
+	struct dyxlat *const dyxlat = xmalloc(sizeof(*dyxlat));
+
+	dyxlat->used = 1;
+	dyxlat->allocated = nmemb ? nmemb : 16;
+	dyxlat->xlat = xcalloc(dyxlat->allocated, sizeof(struct xlat));
+	MARK_END(dyxlat->xlat[0]);
+
+	return dyxlat;
+}
+
+void
+dyxlat_free(struct dyxlat *const dyxlat)
+{
+	size_t i;
+
+	for (i = 0; i < dyxlat->used - 1; ++i) {
+		free((void *) dyxlat->xlat[i].str);
+		dyxlat->xlat[i].str = NULL;
+	}
+
+	free(dyxlat->xlat);
+	dyxlat->xlat = NULL;
+	free(dyxlat);
+}
+
+const struct xlat *
+dyxlat_get(const struct dyxlat *const dyxlat)
+{
+	return dyxlat->xlat;
+}
+
+void
+dyxlat_add_pair(struct dyxlat *const dyxlat, const uint64_t val,
+		const char *const str, const size_t len)
+{
+	size_t i;
+
+	for (i = 0; i < dyxlat->used - 1; ++i) {
+		if (dyxlat->xlat[i].val == val) {
+			if (strncmp(dyxlat->xlat[i].str, str, len) == 0
+			    && dyxlat->xlat[i].str[len] == '\0')
+				return;
+
+			free((void *) dyxlat->xlat[i].str);
+			dyxlat->xlat[i].str = xstrndup(str, len);
+			return;
+		}
+	}
+
+	if (dyxlat->used >= dyxlat->allocated) {
+		dyxlat->allocated *= 2;
+		dyxlat->xlat = xreallocarray(dyxlat->xlat, dyxlat->allocated,
+					     sizeof(struct xlat));
+	}
+
+	dyxlat->xlat[dyxlat->used - 1].val = val;
+	dyxlat->xlat[dyxlat->used - 1].str = xstrndup(str, len);
+	MARK_END(dyxlat->xlat[dyxlat->used]);
+	dyxlat->used++;
+}
diff --git a/evdev.c b/evdev.c
index 6874551..983bf14 100644
--- a/evdev.c
+++ b/evdev.c
@@ -517,7 +517,7 @@
 MPERS_PRINTER_DECL(int, evdev_ioctl, struct tcb *const tcp,
 		   const unsigned int code, const kernel_ulong_t arg)
 {
-	switch(_IOC_DIR(code)) {
+	switch (_IOC_DIR(code)) {
 		case _IOC_READ:
 			if (entering(tcp))
 				return 0;
diff --git a/fetch_struct_statfs.c b/fetch_struct_statfs.c
index 454e5b4..4fba0f7 100644
--- a/fetch_struct_statfs.c
+++ b/fetch_struct_statfs.c
@@ -84,7 +84,7 @@
 {
 	struct_statfs64 b;
 
-        if (sizeof(b) != size
+	if (sizeof(b) != size
 #ifdef COMPAT_STATFS64_PADDED_SIZE
 	    && sizeof(b) != COMPAT_STATFS64_PADDED_SIZE
 #endif
diff --git a/file_ioctl.c b/file_ioctl.c
index fec2f69..cc2378f 100644
--- a/file_ioctl.c
+++ b/file_ioctl.c
@@ -36,11 +36,11 @@
 #endif
 
 #ifndef FICLONE
-# define FICLONE         _IOW(0x94, 9, int)
+# define FICLONE	_IOW(0x94, 9, int)
 #endif
 
 #ifndef FICLONERANGE
-# define FICLONERANGE    _IOW(0x94, 13, struct file_clone_range)
+# define FICLONERANGE	_IOW(0x94, 13, struct file_clone_range)
 struct file_clone_range {
 	int64_t src_fd;
 	uint64_t src_offset;
@@ -50,7 +50,7 @@
 #endif
 
 #ifndef FIDEDUPERANGE
-# define FIDEDUPERANGE   _IOWR(0x94, 54, struct file_dedupe_range)
+# define FIDEDUPERANGE	_IOWR(0x94, 54, struct file_dedupe_range)
 struct file_dedupe_range_info {
 	int64_t dest_fd;	/* in - destination file */
 	uint64_t dest_offset;	/* in - start of extent in destination */
diff --git a/gcc_compat.h b/gcc_compat.h
index 08e8117..956aff1 100644
--- a/gcc_compat.h
+++ b/gcc_compat.h
@@ -84,7 +84,7 @@
 #if GNUC_PREREQ(4, 1)
 # define ALIGNOF(t_)	__alignof__(t_)
 #else
-# define ALIGNOF(t_)	(sizeof(struct {char x_; t_ y_;}) - sizeof(t_))
+# define ALIGNOF(t_)	(sizeof(struct { char x_; t_ y_; }) - sizeof(t_))
 #endif
 
 #if GNUC_PREREQ(4, 3)
diff --git a/io.c b/io.c
index acac455..9ce1cf5 100644
--- a/io.c
+++ b/io.c
@@ -70,7 +70,7 @@
 	kernel_ulong_t iov_buf[2], len;
 	struct print_iovec_config *c = data;
 
-        if (elem_size < sizeof(iov_buf)) {
+	if (elem_size < sizeof(iov_buf)) {
 		iov_buf[0] = ((unsigned int *) elem_buf)[0];
 		iov_buf[1] = ((unsigned int *) elem_buf)[1];
 		iov = iov_buf;
@@ -95,7 +95,8 @@
 				len = c->data_size;
 			if (c->data_size != (kernel_ulong_t) -1)
 				c->data_size -= len;
-			decode_netlink(tcp, iov[0], len);
+			/* assume that the descriptor is 1st syscall argument */
+			decode_netlink(tcp, tcp->u_arg[0], iov[0], len);
 			break;
 		default:
 			printaddr(iov[0]);
@@ -117,8 +118,9 @@
 		const kernel_ulong_t data_size)
 {
 	kernel_ulong_t iov[2];
-	struct print_iovec_config config =
-		{ .decode_iov = decode_iov, .data_size = data_size };
+	struct print_iovec_config config = {
+		.decode_iov = decode_iov, .data_size = data_size
+	};
 
 	print_array(tcp, addr, len, iov, current_wordsize * 2,
 		    umoven_or_printaddr_ignore_syserror, print_iovec, &config);
diff --git a/ioctlsort.c b/ioctlsort.c
index 9bab978..932c667 100644
--- a/ioctlsort.c
+++ b/ioctlsort.c
@@ -56,7 +56,7 @@
 }
 
 static int
-compare_name_info(const void* a, const void* b)
+compare_name_info(const void *a, const void *b)
 {
 	int rc;
 
@@ -93,7 +93,7 @@
 }
 
 static int
-compare_code_name(const void* a, const void* b)
+compare_code_name(const void *a, const void *b)
 {
 	unsigned int code1 = code((struct ioctlent *) a);
 	unsigned int code2 = code((struct ioctlent *) b);
diff --git a/ipc_defs.h b/ipc_defs.h
index fc5d88f..740fd9d 100644
--- a/ipc_defs.h
+++ b/ipc_defs.h
@@ -41,8 +41,11 @@
 # define IPC_64 0x100
 #endif
 
-#define PRINTCTL(flagset, arg, dflt) \
-	if ((arg) & IPC_64) tprints("IPC_64|"); \
-	printxval((flagset), (arg) &~ IPC_64, dflt)
+#define PRINTCTL(flagset, arg, dflt)				\
+	do {							\
+		if ((arg) & IPC_64)				\
+			tprints("IPC_64|");			\
+		printxval((flagset), (arg) & ~IPC_64, dflt);	\
+	} while (0)
 
 #endif /* !STRACE_IPC_DEFS_H */
diff --git a/kcmp.c b/kcmp.c
index 8c0994b..962952b 100644
--- a/kcmp.c
+++ b/kcmp.c
@@ -40,7 +40,7 @@
 	tprintf("%d, %d, ", pid1, pid2);
 	printxval(kcmp_types, type, "KCMP_???");
 
-	switch(type) {
+	switch (type) {
 		case KCMP_FILE:
 			tprintf(", %u, %u", (unsigned) idx1, (unsigned) idx2);
 			break;
diff --git a/kexec.c b/kexec.c
index c11113d..8157cc9 100644
--- a/kexec.c
+++ b/kexec.c
@@ -44,7 +44,7 @@
 	const kernel_ulong_t *seg;
 	kernel_ulong_t seg_buf[4];
 
-        if (elem_size < sizeof(seg_buf)) {
+	if (elem_size < sizeof(seg_buf)) {
 		unsigned int i;
 
 		for (i = 0; i < ARRAY_SIZE(seg_buf); ++i)
diff --git a/linux/32/ioctls_inc_align16.h b/linux/32/ioctls_inc_align16.h
index d509dc6..c16d5a8 100644
--- a/linux/32/ioctls_inc_align16.h
+++ b/linux/32/ioctls_inc_align16.h
@@ -186,7 +186,7 @@
 { "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_CPU_PREP", _IOC_WRITE, 0x6444, 0x18 },
 { "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_INFO", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 },
 { "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_NEW", _IOC_READ|_IOC_WRITE, 0x6442, 0x10 },
-{ "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_SUBMIT", _IOC_READ|_IOC_WRITE, 0x6446, 0x30 },
+{ "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_SUBMIT", _IOC_READ|_IOC_WRITE, 0x6446, 0x38 },
 { "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_USERPTR", _IOC_READ|_IOC_WRITE, 0x6448, 0x18 },
 { "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_WAIT", _IOC_WRITE, 0x6449, 0x20 },
 { "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6440, 0x10 },
@@ -233,6 +233,7 @@
 { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_ENTERVT", _IOC_NONE, 0x6459, 0x00 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_EXECBUFFER", _IOC_WRITE, 0x6454, 0x28 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_EXECBUFFER2", _IOC_WRITE, 0x6469, 0x40 },
+{ "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_EXECBUFFER2_WR", _IOC_READ|_IOC_WRITE, 0x6469, 0x40 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_GET_APERTURE", _IOC_READ, 0x6463, 0x10 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_GET_CACHING", _IOC_READ|_IOC_WRITE, 0x6470, 0x08 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_GET_TILING", _IOC_READ|_IOC_WRITE, 0x6462, 0x10 },
@@ -487,6 +488,8 @@
 { "linux/apm_bios.h", "APM_IOC_SUSPEND", _IOC_NONE, 0x4102, 0x00 },
 { "linux/arcfb.h", "FBIO_GETCONTROL2", _IOC_READ, 0x4689, 0x04 },
 { "linux/arcfb.h", "FBIO_WAITEVENT", _IOC_NONE, 0x4688, 0x00 },
+{ "linux/aspeed-lpc-ctrl.h", "ASPEED_LPC_CTRL_IOCTL_GET_SIZE", _IOC_READ|_IOC_WRITE, 0xb200, 0x10 },
+{ "linux/aspeed-lpc-ctrl.h", "ASPEED_LPC_CTRL_IOCTL_MAP", _IOC_WRITE, 0xb201, 0x10 },
 { "linux/atm_eni.h", "ENI_MEMDUMP", _IOC_WRITE, 0x6160, 0x0c },
 { "linux/atm_eni.h", "ENI_SETMULT", _IOC_WRITE, 0x6167, 0x0c },
 { "linux/atm_he.h", "HE_GET_REG", _IOC_WRITE, 0x6160, 0x0c },
@@ -974,6 +977,7 @@
 { "linux/fsl_hypervisor.h", "FSL_HV_IOCTL_PARTITION_START", _IOC_READ|_IOC_WRITE, 0xaf03, 0x10 },
 { "linux/fsl_hypervisor.h", "FSL_HV_IOCTL_PARTITION_STOP", _IOC_READ|_IOC_WRITE, 0xaf04, 0x08 },
 { "linux/fsl_hypervisor.h", "FSL_HV_IOCTL_SETPROP", _IOC_READ|_IOC_WRITE, 0xaf08, 0x28 },
+{ "linux/fsmap.h", "FS_IOC_GETFSMAP", _IOC_READ|_IOC_WRITE, 0x583b, 0xc0 },
 { "linux/fuse.h", "FUSE_DEV_IOC_CLONE", _IOC_READ, 0xe500, 0x04 },
 { "linux/genwqe/genwqe_card.h", "GENWQE_EXECUTE_DDCB", _IOC_READ|_IOC_WRITE, 0xa532, 0xe8 },
 { "linux/genwqe/genwqe_card.h", "GENWQE_EXECUTE_RAW_DDCB", _IOC_READ|_IOC_WRITE, 0xa533, 0xe8 },
@@ -1506,6 +1510,12 @@
 { "linux/omapfb.h", "OMAPFB_VSYNC", _IOC_NONE, 0x4f26, 0x00 },
 { "linux/omapfb.h", "OMAPFB_WAITFORGO", _IOC_NONE, 0x4f3c, 0x00 },
 { "linux/omapfb.h", "OMAPFB_WAITFORVSYNC", _IOC_NONE, 0x4f39, 0x00 },
+{ "linux/pcitest.h", "PCITEST_BAR", _IOC_NONE, 0x5001, 0x00 },
+{ "linux/pcitest.h", "PCITEST_COPY", _IOC_WRITE, 0x5006, 0x04 },
+{ "linux/pcitest.h", "PCITEST_LEGACY_IRQ", _IOC_NONE, 0x5002, 0x00 },
+{ "linux/pcitest.h", "PCITEST_MSI", _IOC_WRITE, 0x5003, 0x04 },
+{ "linux/pcitest.h", "PCITEST_READ", _IOC_WRITE, 0x5005, 0x04 },
+{ "linux/pcitest.h", "PCITEST_WRITE", _IOC_WRITE, 0x5004, 0x04 },
 { "linux/perf_event.h", "PERF_EVENT_IOC_DISABLE", _IOC_NONE, 0x2401, 0x00 },
 { "linux/perf_event.h", "PERF_EVENT_IOC_ENABLE", _IOC_NONE, 0x2400, 0x00 },
 { "linux/perf_event.h", "PERF_EVENT_IOC_ID", _IOC_READ, 0x2407, 0x04 },
@@ -1940,6 +1950,12 @@
 { "linux/suspend_ioctls.h", "SNAPSHOT_S2RAM", _IOC_NONE, 0x330b, 0x00 },
 { "linux/suspend_ioctls.h", "SNAPSHOT_SET_SWAP_AREA", _IOC_WRITE, 0x330d, 0x0c },
 { "linux/suspend_ioctls.h", "SNAPSHOT_UNFREEZE", _IOC_NONE, 0x3302, 0x00 },
+{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_EVENT_CTL", _IOC_READ|_IOC_WRITE, 0x5743, 0x28 },
+{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_EVENT_SUMMARY", _IOC_READ, 0x5742, 0x198 },
+{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_FLASH_INFO", _IOC_READ, 0x5740, 0x10 },
+{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_FLASH_PART_INFO", _IOC_READ|_IOC_WRITE, 0x5741, 0x10 },
+{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_PFF_TO_PORT", _IOC_READ|_IOC_WRITE, 0x5744, 0x0c },
+{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_PORT_TO_PFF", _IOC_READ|_IOC_WRITE, 0x5745, 0x0c },
 { "linux/sync_file.h", "SYNC_IOC_FILE_INFO", _IOC_READ|_IOC_WRITE, 0x3e04, 0x38 },
 { "linux/sync_file.h", "SYNC_IOC_MERGE", _IOC_READ|_IOC_WRITE, 0x3e03, 0x30 },
 { "linux/synclink.h", "MGSL_IOCCLRMODCOUNT", _IOC_NONE, 0x6d0f, 0x00 },
@@ -1962,6 +1978,14 @@
 { "linux/synclink.h", "MGSL_IOCTXENABLE", _IOC_NONE, 0x6d04, 0x00 },
 { "linux/synclink.h", "MGSL_IOCWAITEVENT", _IOC_READ|_IOC_WRITE, 0x6d08, 0x04 },
 { "linux/synclink.h", "MGSL_IOCWAITGPIO", _IOC_READ|_IOC_WRITE, 0x6d12, 0x10 },
+{ "linux/tee.h", "TEE_IOC_CANCEL", _IOC_READ, 0xa404, 0x08 },
+{ "linux/tee.h", "TEE_IOC_CLOSE_SESSION", _IOC_READ, 0xa405, 0x04 },
+{ "linux/tee.h", "TEE_IOC_INVOKE", _IOC_READ, 0xa403, 0x10 },
+{ "linux/tee.h", "TEE_IOC_OPEN_SESSION", _IOC_READ, 0xa402, 0x10 },
+{ "linux/tee.h", "TEE_IOC_SHM_ALLOC", _IOC_READ|_IOC_WRITE, 0xa401, 0x10 },
+{ "linux/tee.h", "TEE_IOC_SUPPL_RECV", _IOC_READ, 0xa406, 0x10 },
+{ "linux/tee.h", "TEE_IOC_SUPPL_SEND", _IOC_READ, 0xa407, 0x10 },
+{ "linux/tee.h", "TEE_IOC_VERSION", _IOC_READ, 0xa400, 0x0c },
 { "linux/telephony.h", "OLD_PHONE_RING_START", _IOC_NONE, 0x7187, 0x00 },
 { "linux/telephony.h", "PHONE_BUSY", _IOC_NONE, 0x71a1, 0x00 },
 { "linux/telephony.h", "PHONE_CAPABILITIES", _IOC_NONE, 0x7180, 0x00 },
@@ -2690,17 +2714,8 @@
 { "staging/android/ashmem.h", "ASHMEM_SET_PROT_MASK", _IOC_WRITE, 0x7705, 0x04 },
 { "staging/android/ashmem.h", "ASHMEM_SET_SIZE", _IOC_WRITE, 0x7703, 0x04 },
 { "staging/android/ashmem.h", "ASHMEM_UNPIN", _IOC_WRITE, 0x7708, 0x08 },
-{ "staging/android/ion.h", "ION_IOC_ALLOC", _IOC_READ|_IOC_WRITE, 0x4900, 0x14 },
-{ "staging/android/ion.h", "ION_IOC_CUSTOM", _IOC_READ|_IOC_WRITE, 0x4906, 0x08 },
-{ "staging/android/ion.h", "ION_IOC_FREE", _IOC_READ|_IOC_WRITE, 0x4901, 0x04 },
+{ "staging/android/ion.h", "ION_IOC_ALLOC", _IOC_READ|_IOC_WRITE, 0x4900, 0x18 },
 { "staging/android/ion.h", "ION_IOC_HEAP_QUERY", _IOC_READ|_IOC_WRITE, 0x4908, 0x18 },
-{ "staging/android/ion.h", "ION_IOC_IMPORT", _IOC_READ|_IOC_WRITE, 0x4905, 0x08 },
-{ "staging/android/ion.h", "ION_IOC_MAP", _IOC_READ|_IOC_WRITE, 0x4902, 0x08 },
-{ "staging/android/ion.h", "ION_IOC_SHARE", _IOC_READ|_IOC_WRITE, 0x4904, 0x08 },
-{ "staging/android/ion.h", "ION_IOC_SYNC", _IOC_READ|_IOC_WRITE, 0x4907, 0x08 },
-{ "staging/android/ion_test.h", "ION_IOC_TEST_DMA_MAPPING", _IOC_WRITE, 0x49f1, 0x20 },
-{ "staging/android/ion_test.h", "ION_IOC_TEST_KERNEL_MAPPING", _IOC_WRITE, 0x49f2, 0x20 },
-{ "staging/android/ion_test.h", "ION_IOC_TEST_SET_FD", _IOC_NONE, 0x49f0, 0x00 },
 { "video/da8xx-fb.h", "FBIGET_BRIGHTNESS", _IOC_READ, 0x4603, 0x04 },
 { "video/da8xx-fb.h", "FBIGET_COLOR", _IOC_READ, 0x4605, 0x04 },
 { "video/da8xx-fb.h", "FBIOGET_CONTRAST", _IOC_READ, 0x4601, 0x04 },
diff --git a/linux/32/ioctls_inc_align32.h b/linux/32/ioctls_inc_align32.h
index b1b0339..7caf8e8 100644
--- a/linux/32/ioctls_inc_align32.h
+++ b/linux/32/ioctls_inc_align32.h
@@ -186,7 +186,7 @@
 { "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_CPU_PREP", _IOC_WRITE, 0x6444, 0x18 },
 { "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_INFO", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 },
 { "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_NEW", _IOC_READ|_IOC_WRITE, 0x6442, 0x10 },
-{ "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_SUBMIT", _IOC_READ|_IOC_WRITE, 0x6446, 0x30 },
+{ "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_SUBMIT", _IOC_READ|_IOC_WRITE, 0x6446, 0x38 },
 { "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_USERPTR", _IOC_READ|_IOC_WRITE, 0x6448, 0x18 },
 { "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_WAIT", _IOC_WRITE, 0x6449, 0x20 },
 { "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6440, 0x10 },
@@ -233,6 +233,7 @@
 { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_ENTERVT", _IOC_NONE, 0x6459, 0x00 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_EXECBUFFER", _IOC_WRITE, 0x6454, 0x28 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_EXECBUFFER2", _IOC_WRITE, 0x6469, 0x40 },
+{ "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_EXECBUFFER2_WR", _IOC_READ|_IOC_WRITE, 0x6469, 0x40 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_GET_APERTURE", _IOC_READ, 0x6463, 0x10 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_GET_CACHING", _IOC_READ|_IOC_WRITE, 0x6470, 0x08 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_GET_TILING", _IOC_READ|_IOC_WRITE, 0x6462, 0x10 },
@@ -487,6 +488,8 @@
 { "linux/apm_bios.h", "APM_IOC_SUSPEND", _IOC_NONE, 0x4102, 0x00 },
 { "linux/arcfb.h", "FBIO_GETCONTROL2", _IOC_READ, 0x4689, 0x04 },
 { "linux/arcfb.h", "FBIO_WAITEVENT", _IOC_NONE, 0x4688, 0x00 },
+{ "linux/aspeed-lpc-ctrl.h", "ASPEED_LPC_CTRL_IOCTL_GET_SIZE", _IOC_READ|_IOC_WRITE, 0xb200, 0x10 },
+{ "linux/aspeed-lpc-ctrl.h", "ASPEED_LPC_CTRL_IOCTL_MAP", _IOC_WRITE, 0xb201, 0x10 },
 { "linux/atm_eni.h", "ENI_MEMDUMP", _IOC_WRITE, 0x6160, 0x0c },
 { "linux/atm_eni.h", "ENI_SETMULT", _IOC_WRITE, 0x6167, 0x0c },
 { "linux/atm_he.h", "HE_GET_REG", _IOC_WRITE, 0x6160, 0x0c },
@@ -974,6 +977,7 @@
 { "linux/fsl_hypervisor.h", "FSL_HV_IOCTL_PARTITION_START", _IOC_READ|_IOC_WRITE, 0xaf03, 0x10 },
 { "linux/fsl_hypervisor.h", "FSL_HV_IOCTL_PARTITION_STOP", _IOC_READ|_IOC_WRITE, 0xaf04, 0x08 },
 { "linux/fsl_hypervisor.h", "FSL_HV_IOCTL_SETPROP", _IOC_READ|_IOC_WRITE, 0xaf08, 0x28 },
+{ "linux/fsmap.h", "FS_IOC_GETFSMAP", _IOC_READ|_IOC_WRITE, 0x583b, 0xc0 },
 { "linux/fuse.h", "FUSE_DEV_IOC_CLONE", _IOC_READ, 0xe500, 0x04 },
 { "linux/genwqe/genwqe_card.h", "GENWQE_EXECUTE_DDCB", _IOC_READ|_IOC_WRITE, 0xa532, 0xe8 },
 { "linux/genwqe/genwqe_card.h", "GENWQE_EXECUTE_RAW_DDCB", _IOC_READ|_IOC_WRITE, 0xa533, 0xe8 },
@@ -1506,6 +1510,12 @@
 { "linux/omapfb.h", "OMAPFB_VSYNC", _IOC_NONE, 0x4f26, 0x00 },
 { "linux/omapfb.h", "OMAPFB_WAITFORGO", _IOC_NONE, 0x4f3c, 0x00 },
 { "linux/omapfb.h", "OMAPFB_WAITFORVSYNC", _IOC_NONE, 0x4f39, 0x00 },
+{ "linux/pcitest.h", "PCITEST_BAR", _IOC_NONE, 0x5001, 0x00 },
+{ "linux/pcitest.h", "PCITEST_COPY", _IOC_WRITE, 0x5006, 0x04 },
+{ "linux/pcitest.h", "PCITEST_LEGACY_IRQ", _IOC_NONE, 0x5002, 0x00 },
+{ "linux/pcitest.h", "PCITEST_MSI", _IOC_WRITE, 0x5003, 0x04 },
+{ "linux/pcitest.h", "PCITEST_READ", _IOC_WRITE, 0x5005, 0x04 },
+{ "linux/pcitest.h", "PCITEST_WRITE", _IOC_WRITE, 0x5004, 0x04 },
 { "linux/perf_event.h", "PERF_EVENT_IOC_DISABLE", _IOC_NONE, 0x2401, 0x00 },
 { "linux/perf_event.h", "PERF_EVENT_IOC_ENABLE", _IOC_NONE, 0x2400, 0x00 },
 { "linux/perf_event.h", "PERF_EVENT_IOC_ID", _IOC_READ, 0x2407, 0x04 },
@@ -1940,6 +1950,12 @@
 { "linux/suspend_ioctls.h", "SNAPSHOT_S2RAM", _IOC_NONE, 0x330b, 0x00 },
 { "linux/suspend_ioctls.h", "SNAPSHOT_SET_SWAP_AREA", _IOC_WRITE, 0x330d, 0x0c },
 { "linux/suspend_ioctls.h", "SNAPSHOT_UNFREEZE", _IOC_NONE, 0x3302, 0x00 },
+{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_EVENT_CTL", _IOC_READ|_IOC_WRITE, 0x5743, 0x28 },
+{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_EVENT_SUMMARY", _IOC_READ, 0x5742, 0x198 },
+{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_FLASH_INFO", _IOC_READ, 0x5740, 0x10 },
+{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_FLASH_PART_INFO", _IOC_READ|_IOC_WRITE, 0x5741, 0x10 },
+{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_PFF_TO_PORT", _IOC_READ|_IOC_WRITE, 0x5744, 0x0c },
+{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_PORT_TO_PFF", _IOC_READ|_IOC_WRITE, 0x5745, 0x0c },
 { "linux/sync_file.h", "SYNC_IOC_FILE_INFO", _IOC_READ|_IOC_WRITE, 0x3e04, 0x38 },
 { "linux/sync_file.h", "SYNC_IOC_MERGE", _IOC_READ|_IOC_WRITE, 0x3e03, 0x30 },
 { "linux/synclink.h", "MGSL_IOCCLRMODCOUNT", _IOC_NONE, 0x6d0f, 0x00 },
@@ -1962,6 +1978,14 @@
 { "linux/synclink.h", "MGSL_IOCTXENABLE", _IOC_NONE, 0x6d04, 0x00 },
 { "linux/synclink.h", "MGSL_IOCWAITEVENT", _IOC_READ|_IOC_WRITE, 0x6d08, 0x04 },
 { "linux/synclink.h", "MGSL_IOCWAITGPIO", _IOC_READ|_IOC_WRITE, 0x6d12, 0x10 },
+{ "linux/tee.h", "TEE_IOC_CANCEL", _IOC_READ, 0xa404, 0x08 },
+{ "linux/tee.h", "TEE_IOC_CLOSE_SESSION", _IOC_READ, 0xa405, 0x04 },
+{ "linux/tee.h", "TEE_IOC_INVOKE", _IOC_READ, 0xa403, 0x10 },
+{ "linux/tee.h", "TEE_IOC_OPEN_SESSION", _IOC_READ, 0xa402, 0x10 },
+{ "linux/tee.h", "TEE_IOC_SHM_ALLOC", _IOC_READ|_IOC_WRITE, 0xa401, 0x10 },
+{ "linux/tee.h", "TEE_IOC_SUPPL_RECV", _IOC_READ, 0xa406, 0x10 },
+{ "linux/tee.h", "TEE_IOC_SUPPL_SEND", _IOC_READ, 0xa407, 0x10 },
+{ "linux/tee.h", "TEE_IOC_VERSION", _IOC_READ, 0xa400, 0x0c },
 { "linux/telephony.h", "OLD_PHONE_RING_START", _IOC_NONE, 0x7187, 0x00 },
 { "linux/telephony.h", "PHONE_BUSY", _IOC_NONE, 0x71a1, 0x00 },
 { "linux/telephony.h", "PHONE_CAPABILITIES", _IOC_NONE, 0x7180, 0x00 },
@@ -2690,17 +2714,8 @@
 { "staging/android/ashmem.h", "ASHMEM_SET_PROT_MASK", _IOC_WRITE, 0x7705, 0x04 },
 { "staging/android/ashmem.h", "ASHMEM_SET_SIZE", _IOC_WRITE, 0x7703, 0x04 },
 { "staging/android/ashmem.h", "ASHMEM_UNPIN", _IOC_WRITE, 0x7708, 0x08 },
-{ "staging/android/ion.h", "ION_IOC_ALLOC", _IOC_READ|_IOC_WRITE, 0x4900, 0x14 },
-{ "staging/android/ion.h", "ION_IOC_CUSTOM", _IOC_READ|_IOC_WRITE, 0x4906, 0x08 },
-{ "staging/android/ion.h", "ION_IOC_FREE", _IOC_READ|_IOC_WRITE, 0x4901, 0x04 },
+{ "staging/android/ion.h", "ION_IOC_ALLOC", _IOC_READ|_IOC_WRITE, 0x4900, 0x18 },
 { "staging/android/ion.h", "ION_IOC_HEAP_QUERY", _IOC_READ|_IOC_WRITE, 0x4908, 0x18 },
-{ "staging/android/ion.h", "ION_IOC_IMPORT", _IOC_READ|_IOC_WRITE, 0x4905, 0x08 },
-{ "staging/android/ion.h", "ION_IOC_MAP", _IOC_READ|_IOC_WRITE, 0x4902, 0x08 },
-{ "staging/android/ion.h", "ION_IOC_SHARE", _IOC_READ|_IOC_WRITE, 0x4904, 0x08 },
-{ "staging/android/ion.h", "ION_IOC_SYNC", _IOC_READ|_IOC_WRITE, 0x4907, 0x08 },
-{ "staging/android/ion_test.h", "ION_IOC_TEST_DMA_MAPPING", _IOC_WRITE, 0x49f1, 0x20 },
-{ "staging/android/ion_test.h", "ION_IOC_TEST_KERNEL_MAPPING", _IOC_WRITE, 0x49f2, 0x20 },
-{ "staging/android/ion_test.h", "ION_IOC_TEST_SET_FD", _IOC_NONE, 0x49f0, 0x00 },
 { "video/da8xx-fb.h", "FBIGET_BRIGHTNESS", _IOC_READ, 0x4603, 0x04 },
 { "video/da8xx-fb.h", "FBIGET_COLOR", _IOC_READ, 0x4605, 0x04 },
 { "video/da8xx-fb.h", "FBIOGET_CONTRAST", _IOC_READ, 0x4601, 0x04 },
diff --git a/linux/32/ioctls_inc_align64.h b/linux/32/ioctls_inc_align64.h
index ac97f5f..8f8c240 100644
--- a/linux/32/ioctls_inc_align64.h
+++ b/linux/32/ioctls_inc_align64.h
@@ -186,7 +186,7 @@
 { "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_CPU_PREP", _IOC_WRITE, 0x6444, 0x18 },
 { "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_INFO", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 },
 { "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_NEW", _IOC_READ|_IOC_WRITE, 0x6442, 0x10 },
-{ "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_SUBMIT", _IOC_READ|_IOC_WRITE, 0x6446, 0x30 },
+{ "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_SUBMIT", _IOC_READ|_IOC_WRITE, 0x6446, 0x38 },
 { "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_USERPTR", _IOC_READ|_IOC_WRITE, 0x6448, 0x18 },
 { "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_WAIT", _IOC_WRITE, 0x6449, 0x20 },
 { "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6440, 0x10 },
@@ -233,6 +233,7 @@
 { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_ENTERVT", _IOC_NONE, 0x6459, 0x00 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_EXECBUFFER", _IOC_WRITE, 0x6454, 0x28 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_EXECBUFFER2", _IOC_WRITE, 0x6469, 0x40 },
+{ "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_EXECBUFFER2_WR", _IOC_READ|_IOC_WRITE, 0x6469, 0x40 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_GET_APERTURE", _IOC_READ, 0x6463, 0x10 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_GET_CACHING", _IOC_READ|_IOC_WRITE, 0x6470, 0x08 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_GET_TILING", _IOC_READ|_IOC_WRITE, 0x6462, 0x10 },
@@ -487,6 +488,8 @@
 { "linux/apm_bios.h", "APM_IOC_SUSPEND", _IOC_NONE, 0x4102, 0x00 },
 { "linux/arcfb.h", "FBIO_GETCONTROL2", _IOC_READ, 0x4689, 0x04 },
 { "linux/arcfb.h", "FBIO_WAITEVENT", _IOC_NONE, 0x4688, 0x00 },
+{ "linux/aspeed-lpc-ctrl.h", "ASPEED_LPC_CTRL_IOCTL_GET_SIZE", _IOC_READ|_IOC_WRITE, 0xb200, 0x10 },
+{ "linux/aspeed-lpc-ctrl.h", "ASPEED_LPC_CTRL_IOCTL_MAP", _IOC_WRITE, 0xb201, 0x10 },
 { "linux/atm_eni.h", "ENI_MEMDUMP", _IOC_WRITE, 0x6160, 0x0c },
 { "linux/atm_eni.h", "ENI_SETMULT", _IOC_WRITE, 0x6167, 0x0c },
 { "linux/atm_he.h", "HE_GET_REG", _IOC_WRITE, 0x6160, 0x0c },
@@ -974,6 +977,7 @@
 { "linux/fsl_hypervisor.h", "FSL_HV_IOCTL_PARTITION_START", _IOC_READ|_IOC_WRITE, 0xaf03, 0x10 },
 { "linux/fsl_hypervisor.h", "FSL_HV_IOCTL_PARTITION_STOP", _IOC_READ|_IOC_WRITE, 0xaf04, 0x08 },
 { "linux/fsl_hypervisor.h", "FSL_HV_IOCTL_SETPROP", _IOC_READ|_IOC_WRITE, 0xaf08, 0x28 },
+{ "linux/fsmap.h", "FS_IOC_GETFSMAP", _IOC_READ|_IOC_WRITE, 0x583b, 0xc0 },
 { "linux/fuse.h", "FUSE_DEV_IOC_CLONE", _IOC_READ, 0xe500, 0x04 },
 { "linux/genwqe/genwqe_card.h", "GENWQE_EXECUTE_DDCB", _IOC_READ|_IOC_WRITE, 0xa532, 0xe8 },
 { "linux/genwqe/genwqe_card.h", "GENWQE_EXECUTE_RAW_DDCB", _IOC_READ|_IOC_WRITE, 0xa533, 0xe8 },
@@ -1506,6 +1510,12 @@
 { "linux/omapfb.h", "OMAPFB_VSYNC", _IOC_NONE, 0x4f26, 0x00 },
 { "linux/omapfb.h", "OMAPFB_WAITFORGO", _IOC_NONE, 0x4f3c, 0x00 },
 { "linux/omapfb.h", "OMAPFB_WAITFORVSYNC", _IOC_NONE, 0x4f39, 0x00 },
+{ "linux/pcitest.h", "PCITEST_BAR", _IOC_NONE, 0x5001, 0x00 },
+{ "linux/pcitest.h", "PCITEST_COPY", _IOC_WRITE, 0x5006, 0x04 },
+{ "linux/pcitest.h", "PCITEST_LEGACY_IRQ", _IOC_NONE, 0x5002, 0x00 },
+{ "linux/pcitest.h", "PCITEST_MSI", _IOC_WRITE, 0x5003, 0x04 },
+{ "linux/pcitest.h", "PCITEST_READ", _IOC_WRITE, 0x5005, 0x04 },
+{ "linux/pcitest.h", "PCITEST_WRITE", _IOC_WRITE, 0x5004, 0x04 },
 { "linux/perf_event.h", "PERF_EVENT_IOC_DISABLE", _IOC_NONE, 0x2401, 0x00 },
 { "linux/perf_event.h", "PERF_EVENT_IOC_ENABLE", _IOC_NONE, 0x2400, 0x00 },
 { "linux/perf_event.h", "PERF_EVENT_IOC_ID", _IOC_READ, 0x2407, 0x04 },
@@ -1940,6 +1950,12 @@
 { "linux/suspend_ioctls.h", "SNAPSHOT_S2RAM", _IOC_NONE, 0x330b, 0x00 },
 { "linux/suspend_ioctls.h", "SNAPSHOT_SET_SWAP_AREA", _IOC_WRITE, 0x330d, 0x0c },
 { "linux/suspend_ioctls.h", "SNAPSHOT_UNFREEZE", _IOC_NONE, 0x3302, 0x00 },
+{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_EVENT_CTL", _IOC_READ|_IOC_WRITE, 0x5743, 0x28 },
+{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_EVENT_SUMMARY", _IOC_READ, 0x5742, 0x198 },
+{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_FLASH_INFO", _IOC_READ, 0x5740, 0x10 },
+{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_FLASH_PART_INFO", _IOC_READ|_IOC_WRITE, 0x5741, 0x10 },
+{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_PFF_TO_PORT", _IOC_READ|_IOC_WRITE, 0x5744, 0x0c },
+{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_PORT_TO_PFF", _IOC_READ|_IOC_WRITE, 0x5745, 0x0c },
 { "linux/sync_file.h", "SYNC_IOC_FILE_INFO", _IOC_READ|_IOC_WRITE, 0x3e04, 0x38 },
 { "linux/sync_file.h", "SYNC_IOC_MERGE", _IOC_READ|_IOC_WRITE, 0x3e03, 0x30 },
 { "linux/synclink.h", "MGSL_IOCCLRMODCOUNT", _IOC_NONE, 0x6d0f, 0x00 },
@@ -1962,6 +1978,14 @@
 { "linux/synclink.h", "MGSL_IOCTXENABLE", _IOC_NONE, 0x6d04, 0x00 },
 { "linux/synclink.h", "MGSL_IOCWAITEVENT", _IOC_READ|_IOC_WRITE, 0x6d08, 0x04 },
 { "linux/synclink.h", "MGSL_IOCWAITGPIO", _IOC_READ|_IOC_WRITE, 0x6d12, 0x10 },
+{ "linux/tee.h", "TEE_IOC_CANCEL", _IOC_READ, 0xa404, 0x08 },
+{ "linux/tee.h", "TEE_IOC_CLOSE_SESSION", _IOC_READ, 0xa405, 0x04 },
+{ "linux/tee.h", "TEE_IOC_INVOKE", _IOC_READ, 0xa403, 0x10 },
+{ "linux/tee.h", "TEE_IOC_OPEN_SESSION", _IOC_READ, 0xa402, 0x10 },
+{ "linux/tee.h", "TEE_IOC_SHM_ALLOC", _IOC_READ|_IOC_WRITE, 0xa401, 0x10 },
+{ "linux/tee.h", "TEE_IOC_SUPPL_RECV", _IOC_READ, 0xa406, 0x10 },
+{ "linux/tee.h", "TEE_IOC_SUPPL_SEND", _IOC_READ, 0xa407, 0x10 },
+{ "linux/tee.h", "TEE_IOC_VERSION", _IOC_READ, 0xa400, 0x0c },
 { "linux/telephony.h", "OLD_PHONE_RING_START", _IOC_NONE, 0x7187, 0x00 },
 { "linux/telephony.h", "PHONE_BUSY", _IOC_NONE, 0x71a1, 0x00 },
 { "linux/telephony.h", "PHONE_CAPABILITIES", _IOC_NONE, 0x7180, 0x00 },
@@ -2690,17 +2714,8 @@
 { "staging/android/ashmem.h", "ASHMEM_SET_PROT_MASK", _IOC_WRITE, 0x7705, 0x04 },
 { "staging/android/ashmem.h", "ASHMEM_SET_SIZE", _IOC_WRITE, 0x7703, 0x04 },
 { "staging/android/ashmem.h", "ASHMEM_UNPIN", _IOC_WRITE, 0x7708, 0x08 },
-{ "staging/android/ion.h", "ION_IOC_ALLOC", _IOC_READ|_IOC_WRITE, 0x4900, 0x14 },
-{ "staging/android/ion.h", "ION_IOC_CUSTOM", _IOC_READ|_IOC_WRITE, 0x4906, 0x08 },
-{ "staging/android/ion.h", "ION_IOC_FREE", _IOC_READ|_IOC_WRITE, 0x4901, 0x04 },
+{ "staging/android/ion.h", "ION_IOC_ALLOC", _IOC_READ|_IOC_WRITE, 0x4900, 0x18 },
 { "staging/android/ion.h", "ION_IOC_HEAP_QUERY", _IOC_READ|_IOC_WRITE, 0x4908, 0x18 },
-{ "staging/android/ion.h", "ION_IOC_IMPORT", _IOC_READ|_IOC_WRITE, 0x4905, 0x08 },
-{ "staging/android/ion.h", "ION_IOC_MAP", _IOC_READ|_IOC_WRITE, 0x4902, 0x08 },
-{ "staging/android/ion.h", "ION_IOC_SHARE", _IOC_READ|_IOC_WRITE, 0x4904, 0x08 },
-{ "staging/android/ion.h", "ION_IOC_SYNC", _IOC_READ|_IOC_WRITE, 0x4907, 0x08 },
-{ "staging/android/ion_test.h", "ION_IOC_TEST_DMA_MAPPING", _IOC_WRITE, 0x49f1, 0x20 },
-{ "staging/android/ion_test.h", "ION_IOC_TEST_KERNEL_MAPPING", _IOC_WRITE, 0x49f2, 0x20 },
-{ "staging/android/ion_test.h", "ION_IOC_TEST_SET_FD", _IOC_NONE, 0x49f0, 0x00 },
 { "video/da8xx-fb.h", "FBIGET_BRIGHTNESS", _IOC_READ, 0x4603, 0x04 },
 { "video/da8xx-fb.h", "FBIGET_COLOR", _IOC_READ, 0x4605, 0x04 },
 { "video/da8xx-fb.h", "FBIOGET_CONTRAST", _IOC_READ, 0x4601, 0x04 },
diff --git a/linux/64/ioctls_inc.h b/linux/64/ioctls_inc.h
index 995c8ce..2e9e9ad 100644
--- a/linux/64/ioctls_inc.h
+++ b/linux/64/ioctls_inc.h
@@ -186,7 +186,7 @@
 { "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_CPU_PREP", _IOC_WRITE, 0x6444, 0x18 },
 { "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_INFO", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 },
 { "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_NEW", _IOC_READ|_IOC_WRITE, 0x6442, 0x10 },
-{ "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_SUBMIT", _IOC_READ|_IOC_WRITE, 0x6446, 0x30 },
+{ "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_SUBMIT", _IOC_READ|_IOC_WRITE, 0x6446, 0x38 },
 { "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_USERPTR", _IOC_READ|_IOC_WRITE, 0x6448, 0x18 },
 { "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_WAIT", _IOC_WRITE, 0x6449, 0x20 },
 { "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6440, 0x10 },
@@ -233,6 +233,7 @@
 { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_ENTERVT", _IOC_NONE, 0x6459, 0x00 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_EXECBUFFER", _IOC_WRITE, 0x6454, 0x28 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_EXECBUFFER2", _IOC_WRITE, 0x6469, 0x40 },
+{ "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_EXECBUFFER2_WR", _IOC_READ|_IOC_WRITE, 0x6469, 0x40 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_GET_APERTURE", _IOC_READ, 0x6463, 0x10 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_GET_CACHING", _IOC_READ|_IOC_WRITE, 0x6470, 0x08 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_GET_TILING", _IOC_READ|_IOC_WRITE, 0x6462, 0x10 },
@@ -487,6 +488,8 @@
 { "linux/apm_bios.h", "APM_IOC_SUSPEND", _IOC_NONE, 0x4102, 0x00 },
 { "linux/arcfb.h", "FBIO_GETCONTROL2", _IOC_READ, 0x4689, 0x08 },
 { "linux/arcfb.h", "FBIO_WAITEVENT", _IOC_NONE, 0x4688, 0x00 },
+{ "linux/aspeed-lpc-ctrl.h", "ASPEED_LPC_CTRL_IOCTL_GET_SIZE", _IOC_READ|_IOC_WRITE, 0xb200, 0x10 },
+{ "linux/aspeed-lpc-ctrl.h", "ASPEED_LPC_CTRL_IOCTL_MAP", _IOC_WRITE, 0xb201, 0x10 },
 { "linux/atm_eni.h", "ENI_MEMDUMP", _IOC_WRITE, 0x6160, 0x10 },
 { "linux/atm_eni.h", "ENI_SETMULT", _IOC_WRITE, 0x6167, 0x10 },
 { "linux/atm_he.h", "HE_GET_REG", _IOC_WRITE, 0x6160, 0x10 },
@@ -974,6 +977,7 @@
 { "linux/fsl_hypervisor.h", "FSL_HV_IOCTL_PARTITION_START", _IOC_READ|_IOC_WRITE, 0xaf03, 0x10 },
 { "linux/fsl_hypervisor.h", "FSL_HV_IOCTL_PARTITION_STOP", _IOC_READ|_IOC_WRITE, 0xaf04, 0x08 },
 { "linux/fsl_hypervisor.h", "FSL_HV_IOCTL_SETPROP", _IOC_READ|_IOC_WRITE, 0xaf08, 0x28 },
+{ "linux/fsmap.h", "FS_IOC_GETFSMAP", _IOC_READ|_IOC_WRITE, 0x583b, 0xc0 },
 { "linux/fuse.h", "FUSE_DEV_IOC_CLONE", _IOC_READ, 0xe500, 0x04 },
 { "linux/genwqe/genwqe_card.h", "GENWQE_EXECUTE_DDCB", _IOC_READ|_IOC_WRITE, 0xa532, 0xe8 },
 { "linux/genwqe/genwqe_card.h", "GENWQE_EXECUTE_RAW_DDCB", _IOC_READ|_IOC_WRITE, 0xa533, 0xe8 },
@@ -1506,6 +1510,12 @@
 { "linux/omapfb.h", "OMAPFB_VSYNC", _IOC_NONE, 0x4f26, 0x00 },
 { "linux/omapfb.h", "OMAPFB_WAITFORGO", _IOC_NONE, 0x4f3c, 0x00 },
 { "linux/omapfb.h", "OMAPFB_WAITFORVSYNC", _IOC_NONE, 0x4f39, 0x00 },
+{ "linux/pcitest.h", "PCITEST_BAR", _IOC_NONE, 0x5001, 0x00 },
+{ "linux/pcitest.h", "PCITEST_COPY", _IOC_WRITE, 0x5006, 0x08 },
+{ "linux/pcitest.h", "PCITEST_LEGACY_IRQ", _IOC_NONE, 0x5002, 0x00 },
+{ "linux/pcitest.h", "PCITEST_MSI", _IOC_WRITE, 0x5003, 0x04 },
+{ "linux/pcitest.h", "PCITEST_READ", _IOC_WRITE, 0x5005, 0x08 },
+{ "linux/pcitest.h", "PCITEST_WRITE", _IOC_WRITE, 0x5004, 0x08 },
 { "linux/perf_event.h", "PERF_EVENT_IOC_DISABLE", _IOC_NONE, 0x2401, 0x00 },
 { "linux/perf_event.h", "PERF_EVENT_IOC_ENABLE", _IOC_NONE, 0x2400, 0x00 },
 { "linux/perf_event.h", "PERF_EVENT_IOC_ID", _IOC_READ, 0x2407, 0x08 },
@@ -1940,6 +1950,12 @@
 { "linux/suspend_ioctls.h", "SNAPSHOT_S2RAM", _IOC_NONE, 0x330b, 0x00 },
 { "linux/suspend_ioctls.h", "SNAPSHOT_SET_SWAP_AREA", _IOC_WRITE, 0x330d, 0x0c },
 { "linux/suspend_ioctls.h", "SNAPSHOT_UNFREEZE", _IOC_NONE, 0x3302, 0x00 },
+{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_EVENT_CTL", _IOC_READ|_IOC_WRITE, 0x5743, 0x28 },
+{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_EVENT_SUMMARY", _IOC_READ, 0x5742, 0x198 },
+{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_FLASH_INFO", _IOC_READ, 0x5740, 0x10 },
+{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_FLASH_PART_INFO", _IOC_READ|_IOC_WRITE, 0x5741, 0x10 },
+{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_PFF_TO_PORT", _IOC_READ|_IOC_WRITE, 0x5744, 0x0c },
+{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_PORT_TO_PFF", _IOC_READ|_IOC_WRITE, 0x5745, 0x0c },
 { "linux/sync_file.h", "SYNC_IOC_FILE_INFO", _IOC_READ|_IOC_WRITE, 0x3e04, 0x38 },
 { "linux/sync_file.h", "SYNC_IOC_MERGE", _IOC_READ|_IOC_WRITE, 0x3e03, 0x30 },
 { "linux/synclink.h", "MGSL_IOCCLRMODCOUNT", _IOC_NONE, 0x6d0f, 0x00 },
@@ -1962,6 +1978,14 @@
 { "linux/synclink.h", "MGSL_IOCTXENABLE", _IOC_NONE, 0x6d04, 0x00 },
 { "linux/synclink.h", "MGSL_IOCWAITEVENT", _IOC_READ|_IOC_WRITE, 0x6d08, 0x04 },
 { "linux/synclink.h", "MGSL_IOCWAITGPIO", _IOC_READ|_IOC_WRITE, 0x6d12, 0x10 },
+{ "linux/tee.h", "TEE_IOC_CANCEL", _IOC_READ, 0xa404, 0x08 },
+{ "linux/tee.h", "TEE_IOC_CLOSE_SESSION", _IOC_READ, 0xa405, 0x04 },
+{ "linux/tee.h", "TEE_IOC_INVOKE", _IOC_READ, 0xa403, 0x10 },
+{ "linux/tee.h", "TEE_IOC_OPEN_SESSION", _IOC_READ, 0xa402, 0x10 },
+{ "linux/tee.h", "TEE_IOC_SHM_ALLOC", _IOC_READ|_IOC_WRITE, 0xa401, 0x10 },
+{ "linux/tee.h", "TEE_IOC_SUPPL_RECV", _IOC_READ, 0xa406, 0x10 },
+{ "linux/tee.h", "TEE_IOC_SUPPL_SEND", _IOC_READ, 0xa407, 0x10 },
+{ "linux/tee.h", "TEE_IOC_VERSION", _IOC_READ, 0xa400, 0x0c },
 { "linux/telephony.h", "OLD_PHONE_RING_START", _IOC_NONE, 0x7187, 0x00 },
 { "linux/telephony.h", "PHONE_BUSY", _IOC_NONE, 0x71a1, 0x00 },
 { "linux/telephony.h", "PHONE_CAPABILITIES", _IOC_NONE, 0x7180, 0x00 },
@@ -2690,17 +2714,8 @@
 { "staging/android/ashmem.h", "ASHMEM_SET_PROT_MASK", _IOC_WRITE, 0x7705, 0x08 },
 { "staging/android/ashmem.h", "ASHMEM_SET_SIZE", _IOC_WRITE, 0x7703, 0x08 },
 { "staging/android/ashmem.h", "ASHMEM_UNPIN", _IOC_WRITE, 0x7708, 0x08 },
-{ "staging/android/ion.h", "ION_IOC_ALLOC", _IOC_READ|_IOC_WRITE, 0x4900, 0x20 },
-{ "staging/android/ion.h", "ION_IOC_CUSTOM", _IOC_READ|_IOC_WRITE, 0x4906, 0x10 },
-{ "staging/android/ion.h", "ION_IOC_FREE", _IOC_READ|_IOC_WRITE, 0x4901, 0x04 },
+{ "staging/android/ion.h", "ION_IOC_ALLOC", _IOC_READ|_IOC_WRITE, 0x4900, 0x18 },
 { "staging/android/ion.h", "ION_IOC_HEAP_QUERY", _IOC_READ|_IOC_WRITE, 0x4908, 0x18 },
-{ "staging/android/ion.h", "ION_IOC_IMPORT", _IOC_READ|_IOC_WRITE, 0x4905, 0x08 },
-{ "staging/android/ion.h", "ION_IOC_MAP", _IOC_READ|_IOC_WRITE, 0x4902, 0x08 },
-{ "staging/android/ion.h", "ION_IOC_SHARE", _IOC_READ|_IOC_WRITE, 0x4904, 0x08 },
-{ "staging/android/ion.h", "ION_IOC_SYNC", _IOC_READ|_IOC_WRITE, 0x4907, 0x08 },
-{ "staging/android/ion_test.h", "ION_IOC_TEST_DMA_MAPPING", _IOC_WRITE, 0x49f1, 0x20 },
-{ "staging/android/ion_test.h", "ION_IOC_TEST_KERNEL_MAPPING", _IOC_WRITE, 0x49f2, 0x20 },
-{ "staging/android/ion_test.h", "ION_IOC_TEST_SET_FD", _IOC_NONE, 0x49f0, 0x00 },
 { "video/da8xx-fb.h", "FBIGET_BRIGHTNESS", _IOC_READ, 0x4603, 0x04 },
 { "video/da8xx-fb.h", "FBIGET_COLOR", _IOC_READ, 0x4605, 0x04 },
 { "video/da8xx-fb.h", "FBIOGET_CONTRAST", _IOC_READ, 0x4601, 0x04 },
diff --git a/linux/aarch64/arch_regs.c b/linux/aarch64/arch_regs.c
index 4ccb1f5..5d805fb 100644
--- a/linux/aarch64/arch_regs.c
+++ b/linux/aarch64/arch_regs.c
@@ -1,31 +1,31 @@
 struct arm_pt_regs {
-        uint32_t uregs[18];
+	uint32_t uregs[18];
 };
-#define ARM_cpsr       uregs[16]
-#define ARM_pc         uregs[15]
-#define ARM_lr         uregs[14]
-#define ARM_sp         uregs[13]
-#define ARM_ip         uregs[12]
-#define ARM_fp         uregs[11]
-#define ARM_r10        uregs[10]
-#define ARM_r9         uregs[9]
-#define ARM_r8         uregs[8]
-#define ARM_r7         uregs[7]
-#define ARM_r6         uregs[6]
-#define ARM_r5         uregs[5]
-#define ARM_r4         uregs[4]
-#define ARM_r3         uregs[3]
-#define ARM_r2         uregs[2]
-#define ARM_r1         uregs[1]
-#define ARM_r0         uregs[0]
-#define ARM_ORIG_r0    uregs[17]
+#define ARM_cpsr	uregs[16]
+#define ARM_pc		uregs[15]
+#define ARM_lr		uregs[14]
+#define ARM_sp		uregs[13]
+#define ARM_ip		uregs[12]
+#define ARM_fp		uregs[11]
+#define ARM_r10		uregs[10]
+#define ARM_r9		uregs[9]
+#define ARM_r8		uregs[8]
+#define ARM_r7		uregs[7]
+#define ARM_r6		uregs[6]
+#define ARM_r5		uregs[5]
+#define ARM_r4		uregs[4]
+#define ARM_r3		uregs[3]
+#define ARM_r2		uregs[2]
+#define ARM_r1		uregs[1]
+#define ARM_r0		uregs[0]
+#define ARM_ORIG_r0	uregs[17]
 
 static union {
 	struct user_pt_regs aarch64_r;
 	struct arm_pt_regs  arm_r;
 } arm_regs_union;
-#define aarch64_regs arm_regs_union.aarch64_r
-#define arm_regs     arm_regs_union.arm_r
+#define aarch64_regs	arm_regs_union.aarch64_r
+#define arm_regs	arm_regs_union.arm_r
 
 uint64_t *const aarch64_sp_ptr = (uint64_t *) &aarch64_regs.sp;
 uint32_t *const arm_sp_ptr = &arm_regs.ARM_sp;
diff --git a/linux/alpha/syscallent.h b/linux/alpha/syscallent.h
index 848c323..ae7821f 100644
--- a/linux/alpha/syscallent.h
+++ b/linux/alpha/syscallent.h
@@ -75,7 +75,7 @@
 [ 45] = { 3,	TD|TF,		SEN(open),			"open"			},
 [ 46] = { 5,	0,		SEN(printargs),			"osf_old_sigaction"	}, /* not implemented */
 [ 47] = { 0,	NF,		SEN(getxgid),			"getxgid"		},
-[ 48] = { 2,	TS,		SEN(sigprocmask),		"osf_sigprocmask"	},
+[ 48] = { 2,	TS,		SEN(osf_sigprocmask),		"osf_sigprocmask"	},
 [ 49] = { 5,	0,		SEN(printargs),			"osf_getlogin"		}, /* not implemented */
 [ 50] = { 5,	0,		SEN(printargs),			"osf_setlogin"		}, /* not implemented */
 [ 51] = { 1,	TF,		SEN(acct),			"acct"			},
diff --git a/linux/arc/arch_regs.c b/linux/arc/arch_regs.c
index 9a5c2df..88bb799 100644
--- a/linux/arc/arch_regs.c
+++ b/linux/arc/arch_regs.c
@@ -1,4 +1,4 @@
 static struct user_regs_struct arc_regs;
-unsigned long *const arc_sp_ptr = &arc_regs.sp;
+unsigned long *const arc_sp_ptr = &arc_regs.scratch.sp;
 #define ARCH_REGS_FOR_GETREGSET arc_regs
 #define ARCH_PC_REG arc_regs.efa
diff --git a/linux/arm/arch_sigreturn.c b/linux/arm/arch_sigreturn.c
index b60dad8..a2b7100 100644
--- a/linux/arm/arch_sigreturn.c
+++ b/linux/arm/arch_sigreturn.c
@@ -9,7 +9,7 @@
 #ifdef AARCH64
 		tcp->currpers == 0 ?
 			(*aarch64_sp_ptr + SIZEOF_STRUCT_SIGINFO +
-			 offsetof(struct ucontext, uc_sigmask)) :
+			 offsetof(ucontext_t, uc_sigmask)) :
 #endif
 			(*arm_sp_ptr +
 			 OFFSETOF_STRUCT_UCONTEXT_UC_SIGMASK);
diff --git a/linux/arm/get_scno.c b/linux/arm/get_scno.c
index 3440782..5f68069 100644
--- a/linux/arm/get_scno.c
+++ b/linux/arm/get_scno.c
@@ -58,7 +58,7 @@
 		/* Fixup the syscall number */
 		scno &= 0x000fffff;
 	} else {
-	scno_in_r7:
+scno_in_r7:
 		scno = arm_regs.ARM_r7;
 	}
 #else /* __ARM_EABI__ || !ENABLE_ARM_OABI */
diff --git a/linux/bfin/get_syscall_args.c b/linux/bfin/get_syscall_args.c
index 13d58bd..69613d4 100644
--- a/linux/bfin/get_syscall_args.c
+++ b/linux/bfin/get_syscall_args.c
@@ -2,8 +2,9 @@
 static int
 get_syscall_args(struct tcb *tcp)
 {
-	static const int argreg[MAX_ARGS] =
-		{ PT_R0, PT_R1, PT_R2, PT_R3, PT_R4, PT_R5 };
+	static const int argreg[MAX_ARGS] = {
+		PT_R0, PT_R1, PT_R2, PT_R3, PT_R4, PT_R5
+	};
 	unsigned int i;
 
 	for (i = 0; i < tcp->s_ent->nargs; ++i)
diff --git a/linux/inet_diag.h b/linux/inet_diag.h
index 69012af..24302db 100644
--- a/linux/inet_diag.h
+++ b/linux/inet_diag.h
@@ -14,7 +14,17 @@
 	uint32_t idiag_cookie[2];
 };
 
-/* Request structure */
+/* Request structures */
+struct inet_diag_req {
+	uint8_t idiag_family;
+	uint8_t idiag_src_len;
+	uint8_t idiag_dst_len;
+	uint8_t idiag_ext;
+	struct inet_diag_sockid id;
+	uint32_t idiag_states;
+	uint32_t idiag_dbs;
+};
+
 struct inet_diag_req_v2 {
 	uint8_t sdiag_family;
 	uint8_t sdiag_protocol;
@@ -24,6 +34,11 @@
 	struct inet_diag_sockid id;
 };
 
+enum {
+	INET_DIAG_REQ_NONE,
+	INET_DIAG_REQ_BYTECODE,
+};
+
 /* Info structure */
 struct inet_diag_msg {
 	uint8_t idiag_family;
@@ -40,4 +55,59 @@
 	uint32_t idiag_inode;
 };
 
+/* Extensions */
+enum {
+	INET_DIAG_NONE,
+	INET_DIAG_MEMINFO,
+	INET_DIAG_INFO,
+	INET_DIAG_VEGASINFO,
+	INET_DIAG_CONG,
+	INET_DIAG_TOS,
+	INET_DIAG_TCLASS,
+	INET_DIAG_SKMEMINFO,
+	INET_DIAG_SHUTDOWN,
+	INET_DIAG_DCTCPINFO,
+	INET_DIAG_PROTOCOL,  /* response attribute only */
+	INET_DIAG_SKV6ONLY,
+	INET_DIAG_LOCALS,
+	INET_DIAG_PEERS,
+	INET_DIAG_PAD,
+	INET_DIAG_MARK,
+	INET_DIAG_BBRINFO,
+};
+
+/* INET_DIAG_MEM */
+struct inet_diag_meminfo {
+	uint32_t idiag_rmem;
+	uint32_t idiag_wmem;
+	uint32_t idiag_fmem;
+	uint32_t idiag_tmem;
+};
+
+/* INET_DIAG_VEGASINFO */
+struct tcpvegas_info {
+	uint32_t tcpv_enabled;
+	uint32_t tcpv_rttcnt;
+	uint32_t tcpv_rtt;
+	uint32_t tcpv_minrtt;
+};
+
+/* INET_DIAG_DCTCPINFO */
+struct tcp_dctcp_info {
+	uint16_t dctcp_enabled;
+	uint16_t dctcp_ce_state;
+	uint32_t dctcp_alpha;
+	uint32_t dctcp_ab_ecn;
+	uint32_t dctcp_ab_tot;
+};
+
+/* INET_DIAG_BBRINFO */
+struct tcp_bbr_info {
+	uint32_t bbr_bw_lo;
+	uint32_t bbr_bw_hi;
+	uint32_t bbr_min_rtt;
+	uint32_t bbr_pacing_gain;
+	uint32_t bbr_cwnd_gain;
+};
+
 #endif /* !STRACE_LINUX_INET_DIAG_H */
diff --git a/linux/mips/syscallent-n32-stub.h b/linux/mips/syscallent-n32-stub.h
deleted file mode 100644
index 4cfa682..0000000
--- a/linux/mips/syscallent-n32-stub.h
+++ /dev/null
@@ -1,331 +0,0 @@
-[6000] = { 3,	TD,		SEN(printargs), "n32:read"			}, /* start of Linux N32 */
-[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|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"			},
-[6010] = { 3,	TM|SI,		SEN(printargs), "n32:mprotect"		},
-[6011] = { 2,	TM|SI,		SEN(printargs), "n32:munmap"		},
-[6012] = { 1,	TM|SI,		SEN(printargs), "n32:brk"			},
-[6013] = { 4,	TS,		SEN(printargs), "n32:rt_sigaction"		},
-[6014] = { 4,	TS,		SEN(printargs), "n32:rt_sigprocmask"	},
-[6015] = { 3,	TD,		SEN(printargs), "n32:ioctl"			},
-[6016] = { 4,	TD,		SEN(printargs), "n32:pread64"		},
-[6017] = { 4,	TD,		SEN(printargs), "n32:pwrite64"		},
-[6018] = { 3,	TD,		SEN(printargs), "n32:readv"			},
-[6019] = { 3,	TD,		SEN(printargs), "n32:writev"		},
-[6020] = { 2,	TF,		SEN(printargs), "n32:access"		},
-[6021] = { 0,	TD,		SEN(printargs), "n32:pipe"			},
-[6022] = { 5,	TD,		SEN(printargs), "n32:_newselect"		},
-[6023] = { 0,	0,		SEN(printargs), "n32:sched_yield"		},
-[6024] = { 5,	TM|SI,		SEN(printargs), "n32:mremap"		},
-[6025] = { 3,	TM,		SEN(printargs), "n32:msync"			},
-[6026] = { 3,	TM,		SEN(printargs), "n32:mincore"		},
-[6027] = { 3,	TM,		SEN(printargs), "n32:madvise"		},
-[6028] = { 3,	TI,		SEN(printargs), "n32:shmget"		},
-[6029] = { 3,	TI|TM|SI,	SEN(printargs), "n32:shmat"			},
-[6030] = { 3,	TI,		SEN(printargs), "n32:shmctl"		},
-[6031] = { 1,	TD,		SEN(printargs), "n32:dup"			},
-[6032] = { 2,	TD,		SEN(printargs), "n32:dup2"			},
-[6033] = { 0,	TS,		SEN(printargs), "n32:pause"			},
-[6034] = { 2,	0,		SEN(printargs), "n32:nanosleep"		},
-[6035] = { 2,	0,		SEN(printargs), "n32:getitimer"		},
-[6036] = { 3,	0,		SEN(printargs), "n32:setitimer"		},
-[6037] = { 1,	0,		SEN(printargs), "n32:alarm"			},
-[6038] = { 0,	NF,		SEN(printargs), "n32:getpid"		},
-[6039] = { 4,	TD|TN,		SEN(printargs), "n32:sendfile"		},
-[6040] = { 3,	TN,		SEN(printargs), "n32:socket"		},
-[6041] = { 3,	TN,		SEN(printargs), "n32:connect"		},
-[6042] = { 3,	TN,		SEN(printargs), "n32:accept"		},
-[6043] = { 6,	TN,		SEN(printargs), "n32:sendto"		},
-[6044] = { 6,	TN,		SEN(printargs), "n32:recvfrom"		},
-[6045] = { 3,	TN,		SEN(printargs), "n32:sendmsg"		},
-[6046] = { 3,	TN,		SEN(printargs), "n32:recvmsg"		},
-[6047] = { 2,	TN,		SEN(printargs), "n32:shutdown"		},
-[6048] = { 3,	TN,		SEN(printargs), "n32:bind"			},
-[6049] = { 2,	TN,		SEN(printargs), "n32:listen"		},
-[6050] = { 3,	TN,		SEN(printargs), "n32:getsockname"		},
-[6051] = { 3,	TN,		SEN(printargs), "n32:getpeername"		},
-[6052] = { 4,	TN,		SEN(printargs), "n32:socketpair"		},
-[6053] = { 5,	TN,		SEN(printargs), "n32:setsockopt"		},
-[6054] = { 5,	TN,		SEN(printargs), "n32:getsockopt"		},
-[6055] = { 5,	TP,		SEN(printargs), "n32:clone"			},
-[6056] = { 0,	TP,		SEN(printargs), "n32:fork"			},
-[6057] = { 3,	TF|TP|SE|SI,	SEN(printargs), "n32:execve"		},
-[6058] = { 1,	TP|SE,		SEN(printargs), "n32:exit"			},
-[6059] = { 4,	TP,		SEN(printargs), "n32:wait4"			},
-[6060] = { 2,	TS,		SEN(printargs), "n32:kill"			},
-[6061] = { 1,	0,		SEN(printargs), "n32:uname"			},
-[6062] = { 3,	TI,		SEN(printargs), "n32:semget"		},
-[6063] = { 3,	TI,		SEN(printargs), "n32:semop"			},
-[6064] = { 4,	TI,		SEN(printargs), "n32:semctl"		},
-[6065] = { 1,	TI|TM|SI,	SEN(printargs), "n32:shmdt"			},
-[6066] = { 2,	TI,		SEN(printargs), "n32:msgget"		},
-[6067] = { 4,	TI,		SEN(printargs), "n32:msgsnd"		},
-[6068] = { 5,	TI,		SEN(printargs), "n32:msgrcv"		},
-[6069] = { 3,	TI,		SEN(printargs), "n32:msgctl"		},
-[6070] = { 3,	TD,		SEN(printargs), "n32:fcntl"			},
-[6071] = { 2,	TD,		SEN(printargs), "n32:flock"			},
-[6072] = { 1,	TD,		SEN(printargs), "n32:fsync"			},
-[6073] = { 1,	TD,		SEN(printargs), "n32:fdatasync"		},
-[6074] = { 2,	TF,		SEN(printargs), "n32:truncate"		},
-[6075] = { 2,	TD,		SEN(printargs), "n32:ftruncate"		},
-[6076] = { 3,	TD,		SEN(printargs), "n32:getdents"		},
-[6077] = { 2,	TF,		SEN(printargs), "n32:getcwd"		},
-[6078] = { 1,	TF,		SEN(printargs), "n32:chdir"			},
-[6079] = { 1,	TD,		SEN(printargs), "n32:fchdir"		},
-[6080] = { 2,	TF,		SEN(printargs), "n32:rename"		},
-[6081] = { 2,	TF,		SEN(printargs), "n32:mkdir"			},
-[6082] = { 1,	TF,		SEN(printargs), "n32:rmdir"			},
-[6083] = { 2,	TD|TF,		SEN(printargs), "n32:creat"			},
-[6084] = { 2,	TF,		SEN(printargs), "n32:link"			},
-[6085] = { 1,	TF,		SEN(printargs), "n32:unlink"		},
-[6086] = { 2,	TF,		SEN(printargs), "n32:symlink"		},
-[6087] = { 3,	TF,		SEN(printargs), "n32:readlink"		},
-[6088] = { 2,	TF,		SEN(printargs), "n32:chmod"			},
-[6089] = { 2,	TD,		SEN(printargs), "n32:fchmod"		},
-[6090] = { 3,	TF,		SEN(printargs), "n32:chown"			},
-[6091] = { 3,	TD,		SEN(printargs), "n32:fchown"		},
-[6092] = { 3,	TF,		SEN(printargs), "n32:lchown"		},
-[6093] = { 1,	NF,		SEN(printargs), "n32:umask"			},
-[6094] = { 2,	0,		SEN(printargs), "n32:gettimeofday"		},
-[6095] = { 2,	0,		SEN(printargs), "n32:getrlimit"		},
-[6096] = { 2,	0,		SEN(printargs), "n32:getrusage"		},
-[6097] = { 1,	0,		SEN(printargs), "n32:sysinfo"		},
-[6098] = { 1,	0,		SEN(printargs), "n32:times"			},
-[6099] = { 4,	0,		SEN(printargs), "n32:ptrace"		},
-[6100] = { 0,	NF,		SEN(printargs), "n32:getuid"		},
-[6101] = { 3,	0,		SEN(printargs), "n32:syslog"		},
-[6102] = { 0,	NF,		SEN(printargs), "n32:getgid"		},
-[6103] = { 1,	0,		SEN(printargs), "n32:setuid"		},
-[6104] = { 1,	0,		SEN(printargs), "n32:setgid"		},
-[6105] = { 0,	NF,		SEN(printargs), "n32:geteuid"		},
-[6106] = { 0,	NF,		SEN(printargs), "n32:getegid"		},
-[6107] = { 2,	0,		SEN(printargs), "n32:setpgid"		},
-[6108] = { 0,	NF,		SEN(printargs), "n32:getppid"		},
-[6109] = { 0,	0,		SEN(printargs), "n32:getpgrp"		},
-[6110] = { 0,	0,		SEN(printargs), "n32:setsid"		},
-[6111] = { 2,	0,		SEN(printargs), "n32:setreuid"		},
-[6112] = { 2,	0,		SEN(printargs), "n32:setregid"		},
-[6113] = { 2,	0,		SEN(printargs), "n32:getgroups"		},
-[6114] = { 2,	0,		SEN(printargs), "n32:setgroups"		},
-[6115] = { 3,	0,		SEN(printargs), "n32:setresuid"		},
-[6116] = { 3,	0,		SEN(printargs), "n32:getresuid"		},
-[6117] = { 3,	0,		SEN(printargs), "n32:setresgid"		},
-[6118] = { 3,	0,		SEN(printargs), "n32:getresgid"		},
-[6119] = { 1,	0,		SEN(printargs), "n32:getpgid"		},
-[6120] = { 1,	NF,		SEN(printargs), "n32:setfsuid"		},
-[6121] = { 1,	NF,		SEN(printargs), "n32:setfsgid"		},
-[6122] = { 1,	0,		SEN(printargs), "n32:getsid"		},
-[6123] = { 2,	0,		SEN(printargs), "n32:capget"		},
-[6124] = { 2,	0,		SEN(printargs), "n32:capset"		},
-[6125] = { 2,	TS,		SEN(printargs), "n32:rt_sigpending"		},
-[6126] = { 4,	TS,		SEN(printargs), "n32:rt_sigtimedwait"	},
-[6127] = { 3,	TS,		SEN(printargs), "n32:rt_sigqueueinfo"	},
-[6128] = { 2,	TS,		SEN(printargs), "n32:rt_sigsuspend"		},
-[6129] = { 2,	TS,		SEN(printargs), "n32:sigaltstack"		},
-[6130] = { 2,	TF,		SEN(printargs), "n32:utime"			},
-[6131] = { 3,	TF,		SEN(printargs), "n32:mknod"			},
-[6132] = { 1,	NF,		SEN(printargs), "n32:personality"		},
-[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"		},
-[6139] = { 2,	0,		SEN(printargs), "n32:sched_setparam"	},
-[6140] = { 2,	0,		SEN(printargs), "n32:sched_getparam"	},
-[6141] = { 3,	0,		SEN(printargs), "n32:sched_setscheduler"	},
-[6142] = { 1,	0,		SEN(printargs), "n32:sched_getscheduler"	},
-[6143] = { 1,	0,		SEN(printargs), "n32:sched_get_priority_max"},
-[6144] = { 1,	0,		SEN(printargs), "n32:sched_get_priority_min"},
-[6145] = { 2,	0,		SEN(printargs), "n32:sched_rr_get_interval"	},
-[6146] = { 2,	TM,		SEN(printargs), "n32:mlock"			},
-[6147] = { 2,	TM,		SEN(printargs), "n32:munlock"		},
-[6148] = { 1,	TM,		SEN(printargs), "n32:mlockall"		},
-[6149] = { 0,	TM,		SEN(printargs), "n32:munlockall"		},
-[6150] = { 0,	0,		SEN(printargs), "n32:vhangup"		},
-[6151] = { 2,	TF,		SEN(printargs), "n32:pivot_root"		},
-[6152] = { 1,	0,		SEN(printargs), "n32:_sysctl"		},
-[6153] = { 5,	0,		SEN(printargs), "n32:prctl"			},
-[6154] = { 1,	0,		SEN(printargs), "n32:adjtimex"		},
-[6155] = { 2,	0,		SEN(printargs), "n32:setrlimit"		},
-[6156] = { 1,	TF,		SEN(printargs), "n32:chroot"		},
-[6157] = { 0,	0,		SEN(printargs), "n32:sync"			},
-[6158] = { 1,	TF,		SEN(printargs), "n32:acct"			},
-[6159] = { 2,	0,		SEN(printargs), "n32:settimeofday"		},
-[6160] = { 5,	TF,		SEN(printargs), "n32:mount"			},
-[6161] = { 2,	TF,		SEN(printargs), "n32:umount2"		},
-[6162] = { 2,	TF,		SEN(printargs), "n32:swapon"		},
-[6163] = { 1,	TF,		SEN(printargs), "n32:swapoff"		},
-[6164] = { 4,	0,		SEN(printargs), "n32:reboot"		},
-[6165] = { 2,	0,		SEN(printargs), "n32:sethostname"		},
-[6166] = { 2,	0,		SEN(printargs), "n32:setdomainname"		},
-[6167] = { 2,	0,		SEN(printargs), "n32:create_module"		},
-[6168] = { 3,	0,		SEN(printargs), "n32:init_module"		},
-[6169] = { 2,	0,		SEN(printargs), "n32:delete_module"		},
-[6170] = { 1,	0,		SEN(printargs), "n32:get_kernel_syms"	},
-[6171] = { 5,	0,		SEN(printargs), "n32:query_module"		},
-[6172] = { 4,	TF,		SEN(printargs), "n32:quotactl"		},
-[6173] = { 3,	0,		SEN(printargs), "n32:nfsservctl"		},
-[6174] = { 5,	TN,		SEN(printargs), "n32:getpmsg"		},
-[6175] = { 5,	TN,		SEN(printargs), "n32:putpmsg"		},
-[6176] = { 0,	0,		SEN(printargs), "n32:afs_syscall"		},
-[6177] = { 0,	0,		SEN(printargs), "n32:reserved177"		},
-[6178] = { 0,	NF,		SEN(printargs), "n32:gettid"		},
-[6179] = { 3,	TD,		SEN(printargs), "n32:readahead"		},
-[6180] = { 5,	TF,		SEN(printargs), "n32:setxattr"		},
-[6181] = { 5,	TF,		SEN(printargs), "n32:lsetxattr"		},
-[6182] = { 5,	TD,		SEN(printargs), "n32:fsetxattr"		},
-[6183] = { 4,	TF,		SEN(printargs), "n32:getxattr"		},
-[6184] = { 4,	TF,		SEN(printargs), "n32:lgetxattr"		},
-[6185] = { 4,	TD,		SEN(printargs), "n32:fgetxattr"		},
-[6186] = { 3,	TF,		SEN(printargs), "n32:listxattr"		},
-[6187] = { 3,	TF,		SEN(printargs), "n32:llistxattr"		},
-[6188] = { 3,	TD,		SEN(printargs), "n32:flistxattr"		},
-[6189] = { 2,	TF,		SEN(printargs), "n32:removexattr"		},
-[6190] = { 2,	TF,		SEN(printargs), "n32:lremovexattr"		},
-[6191] = { 2,	TD,		SEN(printargs), "n32:fremovexattr"		},
-[6192] = { 2,	TS,		SEN(printargs), "n32:tkill"			},
-[6193] = { 1,	0,		SEN(printargs), "n32:time"			},
-[6194] = { 6,	0,		SEN(printargs), "n32:futex"			},
-[6195] = { 3,	0,		SEN(printargs), "n32:sched_setaffinity"	},
-[6196] = { 3,	0,		SEN(printargs), "n32:sched_getaffinity"	},
-[6197] = { 3,	0,		SEN(printargs), "n32:cacheflush"		},
-[6198] = { 3,	0,		SEN(printargs), "n32:cachectl"		},
-[6199] = { 4,	0,		SEN(printargs), "n32:sysmips"		},
-[6200] = { 2,	TM,		SEN(printargs), "n32:io_setup"		},
-[6201] = { 1,	TM,		SEN(printargs), "n32:io_destroy"		},
-[6202] = { 5,	0,		SEN(printargs), "n32:io_getevents"		},
-[6203] = { 3,	0,		SEN(printargs), "n32:io_submit"		},
-[6204] = { 3,	0,		SEN(printargs), "n32:io_cancel"		},
-[6205] = { 1,	TP|SE,		SEN(printargs), "n32:exit_group"		},
-[6206] = { 3,	0,		SEN(printargs), "n32:lookup_dcookie"	},
-[6207] = { 1,	TD,		SEN(printargs), "n32:epoll_create"		},
-[6208] = { 4,	TD,		SEN(printargs), "n32:epoll_ctl"		},
-[6209] = { 4,	TD,		SEN(printargs), "n32:epoll_wait"		},
-[6210] = { 5,	TM|SI,		SEN(printargs), "n32:remap_file_pages"	},
-[6211] = { 0,	TS,		SEN(printargs), "n32:rt_sigreturn"		},
-[6212] = { 3,	TD,		SEN(printargs), "n32:fcntl64"		},
-[6213] = { 1,	0,		SEN(printargs), "n32:set_tid_address"	},
-[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|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"		},
-[6222] = { 2,	0,		SEN(printargs), "n32:timer_gettime"		},
-[6223] = { 1,	0,		SEN(printargs), "n32:timer_getoverrun"	},
-[6224] = { 1,	0,		SEN(printargs), "n32:timer_delete"		},
-[6225] = { 2,	0,		SEN(printargs), "n32:clock_settime"		},
-[6226] = { 2,	0,		SEN(printargs), "n32:clock_gettime"		},
-[6227] = { 2,	0,		SEN(printargs), "n32:clock_getres"		},
-[6228] = { 4,	0,		SEN(printargs), "n32:clock_nanosleep"	},
-[6229] = { 3,	TS,		SEN(printargs), "n32:tgkill"		},
-[6230] = { 2,	TF,		SEN(printargs), "n32:utimes"		},
-[6231] = { 6,	TM,		SEN(printargs), "n32:mbind"			},
-[6232] = { 5,	TM,		SEN(printargs), "n32:get_mempolicy"		},
-[6233] = { 3,	TM,		SEN(printargs), "n32:set_mempolicy"		},
-[6234] = { 4,	0,		SEN(printargs), "n32:mq_open"		},
-[6235] = { 1,	0,		SEN(printargs), "n32:mq_unlink"		},
-[6236] = { 5,	0,		SEN(printargs), "n32:mq_timedsend"		},
-[6237] = { 5,	0,		SEN(printargs), "n32:mq_timedreceive"	},
-[6238] = { 2,	0,		SEN(printargs), "n32:mq_notify"		},
-[6239] = { 3,	0,		SEN(printargs), "n32:mq_getsetattr"		},
-[6240] = { 5,	0,		SEN(printargs), "n32:vserver"		},
-[6241] = { 5,	TP,		SEN(printargs), "n32:waitid"		},
-[6242] = { },
-[6243] = { 5,	0,		SEN(printargs), "n32:add_key"		},
-[6244] = { 4,	0,		SEN(printargs), "n32:request_key"		},
-[6245] = { 5,	0,		SEN(printargs), "n32:keyctl"		},
-[6246] = { 1,	0,		SEN(printargs), "n32:set_thread_area"	},
-[6247] = { 0,	TD,		SEN(printargs), "n32:inotify_init"		},
-[6248] = { 3,	TD,		SEN(printargs), "n32:inotify_add_watch"	},
-[6249] = { 2,	TD,		SEN(printargs), "n32:inotify_rm_watch"	},
-[6250] = { 4,	TM,		SEN(printargs), "n32:migrate_pages"		},
-[6251] = { 4,	TD|TF,		SEN(printargs), "n32:openat"		},
-[6252] = { 3,	TD|TF,		SEN(printargs), "n32:mkdirat"		},
-[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|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"		},
-[6260] = { 3,	TD|TF,		SEN(printargs), "n32:symlinkat"		},
-[6261] = { 4,	TD|TF,		SEN(printargs), "n32:readlinkat"		},
-[6262] = { 3,	TD|TF,		SEN(printargs), "n32:fchmodat"		},
-[6263] = { 3,	TD|TF,		SEN(printargs), "n32:faccessat"		},
-[6264] = { 6,	TD,		SEN(printargs), "n32:pselect6"		},
-[6265] = { 5,	TD,		SEN(printargs), "n32:ppoll"			},
-[6266] = { 1,	TP,		SEN(printargs), "n32:unshare"		},
-[6267] = { 6,	TD,		SEN(printargs), "n32:splice"		},
-[6268] = { 4,	TD,		SEN(printargs), "n32:sync_file_range"	},
-[6269] = { 4,	TD,		SEN(printargs), "n32:tee"			},
-[6270] = { 4,	TD,		SEN(printargs), "n32:vmsplice"		},
-[6271] = { 6,	TM,		SEN(printargs), "n32:move_pages"		},
-[6272] = { 2,	0,		SEN(printargs), "n32:set_robust_list"	},
-[6273] = { 3,	0,		SEN(printargs), "n32:get_robust_list"	},
-[6274] = { 4,	0,		SEN(printargs), "n32:kexec_load"		},
-[6275] = { 3,	0,		SEN(printargs), "n32:getcpu"		},
-[6276] = { 6,	TD,		SEN(printargs), "n32:epoll_pwait"		},
-[6277] = { 3,	0,		SEN(printargs), "n32:ioprio_set"		},
-[6278] = { 2,	0,		SEN(printargs), "n32:ioprio_get"		},
-[6279] = { 4,	TD|TF,		SEN(printargs), "n32:utimensat"		},
-[6280] = { 3,	TD|TS,		SEN(printargs), "n32:signalfd"		},
-[6281] = { 4,	TD,		SEN(printargs), "n32:timerfd"		},
-[6282] = { 1,	TD,		SEN(printargs), "n32:eventfd"		},
-[6283] = { 4,	TD,		SEN(printargs), "n32:fallocate"		},
-[6284] = { 2,	TD,		SEN(printargs), "n32:timerfd_create"	},
-[6285] = { 2,	TD,		SEN(printargs), "n32:timerfd_gettime"	},
-[6286] = { 4,	TD,		SEN(printargs), "n32:timerfd_settime"	},
-[6287] = { 4,	TD|TS,		SEN(printargs), "n32:signalfd4"		},
-[6288] = { 2,	TD,		SEN(printargs), "n32:eventfd2"		},
-[6289] = { 1,	TD,		SEN(printargs), "n32:epoll_create1"		},
-[6290] = { 3,	TD,		SEN(printargs), "n32:dup3"			},
-[6291] = { 2,	TD,		SEN(printargs), "n32:pipe2"			},
-[6292] = { 1,	TD,		SEN(printargs), "n32:inotify_init1"		},
-[6293] = { 4,	TD,		SEN(printargs), "n32:preadv"		},
-[6294] = { 4,	TD,		SEN(printargs), "n32:pwritev"		},
-[6295] = { 4,	TP|TS,		SEN(printargs), "n32:rt_tgsigqueueinfo"	},
-[6296] = { 5,	TD,		SEN(printargs), "n32:perf_event_open"	},
-[6297] = { 4,	TN,		SEN(printargs), "n32:accept4"		},
-[6298] = { 5,	TN,		SEN(printargs), "n32:recvmmsg"		},
-[6299] = { 3,	TD,		SEN(printargs), "n32:getdents64"		},
-[6300] = { 2,	TD,		SEN(printargs), "n32:fanotify_init"		},
-[6301] = { 5,	TD|TF,		SEN(printargs), "n32:fanotify_mark"		},
-[6302] = { 4,	0,		SEN(printargs), "n32:prlimit64"		},
-[6303] = { 5,	TD|TF,		SEN(printargs), "n32:name_to_handle_at"	},
-[6304] = { 3,	TD,		SEN(printargs), "n32:open_by_handle_at"	},
-[6305] = { 2,	0,		SEN(printargs), "n32:clock_adjtime"		},
-[6306] = { 1,	TD,		SEN(printargs), "n32:syncfs"		},
-[6307] = { 4,	TN,		SEN(printargs), "n32:sendmmsg"		},
-[6308] = { 2,	TD,		SEN(printargs), "n32:setns"			},
-[6309] = { 6,	0,		SEN(printargs), "n32:process_vm_readv"	},
-[6310] = { 6,	0,		SEN(printargs), "n32:process_vm_writev"	},
-[6311] = { 5,	0,		SEN(printargs), "n32:kcmp"			},
-[6312] = { 3,	TD,		SEN(printargs), "n32:finit_module"		},
-[6313] = { 3,	0,		SEN(printargs), "n32:sched_setattr"		},
-[6314] = { 4,	0,		SEN(printargs), "n32:sched_getattr"		},
-[6315] = { 5,	TD|TF,		SEN(printargs), "n32:renameat2"		},
-[6316] = { 3,	0,		SEN(printargs), "n32:seccomp"		},
-[6317] = { 3,	0,		SEN(printargs), "n32:getrandom"		},
-[6318] = { 2,	TD,		SEN(printargs), "n32:memfd_create"		},
-[6319] = { 3,	TD,		SEN(printargs), "n32:bpf"			},
-[6320] = { 5,	TD|TF|TP|SE|SI,	SEN(printargs), "n32:execveat"		},
-[6321] = { 1,	TD,		SEN(printargs), "n32:userfaultfd"		},
-[6322] = { 2,	0,		SEN(printargs), "n32:membarrier"		},
-[6323] = { 3,	TM,		SEN(printargs), "n32:mlock2"		},
-[6324] = { 6,	TD,		SEN(printargs), "n32:copy_file_range"	},
-[6325] = { 6,	TD,		SEN(printargs), "n32:preadv2"		},
-[6326] = { 6,	TD,		SEN(printargs), "n32:pwritev2"		},
-[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-n64-stub.h b/linux/mips/syscallent-n64-stub.h
deleted file mode 100644
index 4853e8e..0000000
--- a/linux/mips/syscallent-n64-stub.h
+++ /dev/null
@@ -1,327 +0,0 @@
-[5000] = { 3,	TD,		SEN(printargs), "n64:read"			}, /* start of Linux N64 */
-[5001] = { 3,	TD,		SEN(printargs), "n64:write"			},
-[5002] = { 3,	TD|TF,		SEN(printargs), "n64:open"			},
-[5003] = { 1,	TD,		SEN(printargs), "n64:close"			},
-[5004] = { 2,	TF|TST|TSTA,	SEN(printargs), "n64:stat"			},
-[5005] = { 2,	TD|TFST|TSTA,	SEN(printargs), "n64:fstat"			},
-[5006] = { 2,	TF|TLST|TSTA,	SEN(printargs), "n64:lstat"			},
-[5007] = { 3,	TD,		SEN(printargs), "n64:poll"			},
-[5008] = { 3,	TD,		SEN(printargs), "n64:lseek"			},
-[5009] = { 6,	TD|TM|SI,	SEN(printargs), "n64:mmap"			},
-[5010] = { 3,	TM|SI,		SEN(printargs), "n64:mprotect"		},
-[5011] = { 2,	TM|SI,		SEN(printargs), "n64:munmap"		},
-[5012] = { 1,	TM|SI,		SEN(printargs), "n64:brk"			},
-[5013] = { 4,	TS,		SEN(printargs), "n64:rt_sigaction"		},
-[5014] = { 4,	TS,		SEN(printargs), "n64:rt_sigprocmask"	},
-[5015] = { 3,	TD,		SEN(printargs), "n64:ioctl"			},
-[5016] = { 4,	TD,		SEN(printargs), "n64:pread64"		},
-[5017] = { 4,	TD,		SEN(printargs), "n64:pwrite64"		},
-[5018] = { 3,	TD,		SEN(printargs), "n64:readv"			},
-[5019] = { 3,	TD,		SEN(printargs), "n64:writev"		},
-[5020] = { 2,	TF,		SEN(printargs), "n64:access"		},
-[5021] = { 0,	TD,		SEN(printargs), "n64:pipe"			},
-[5022] = { 5,	TD,		SEN(printargs), "n64:_newselect"		},
-[5023] = { 0,	0,		SEN(printargs), "n64:sched_yield"		},
-[5024] = { 5,	TM|SI,		SEN(printargs), "n64:mremap"		},
-[5025] = { 3,	TM,		SEN(printargs), "n64:msync"			},
-[5026] = { 3,	TM,		SEN(printargs), "n64:mincore"		},
-[5027] = { 3,	TM,		SEN(printargs), "n64:madvise"		},
-[5028] = { 3,	TI,		SEN(printargs), "n64:shmget"		},
-[5029] = { 3,	TI|TM|SI,	SEN(printargs), "n64:shmat"			},
-[5030] = { 3,	TI,		SEN(printargs), "n64:shmctl"		},
-[5031] = { 1,	TD,		SEN(printargs), "n64:dup"			},
-[5032] = { 2,	TD,		SEN(printargs), "n64:dup2"			},
-[5033] = { 0,	TS,		SEN(printargs), "n64:pause"			},
-[5034] = { 2,	0,		SEN(printargs), "n64:nanosleep"		},
-[5035] = { 2,	0,		SEN(printargs), "n64:getitimer"		},
-[5036] = { 3,	0,		SEN(printargs), "n64:setitimer"		},
-[5037] = { 1,	0,		SEN(printargs), "n64:alarm"			},
-[5038] = { 0,	NF,		SEN(printargs), "n64:getpid"		},
-[5039] = { 4,	TD|TN,		SEN(printargs), "n64:sendfile"		},
-[5040] = { 3,	TN,		SEN(printargs), "n64:socket"		},
-[5041] = { 3,	TN,		SEN(printargs), "n64:connect"		},
-[5042] = { 3,	TN,		SEN(printargs), "n64:accept"		},
-[5043] = { 6,	TN,		SEN(printargs), "n64:sendto"		},
-[5044] = { 6,	TN,		SEN(printargs), "n64:recvfrom"		},
-[5045] = { 3,	TN,		SEN(printargs), "n64:sendmsg"		},
-[5046] = { 3,	TN,		SEN(printargs), "n64:recvmsg"		},
-[5047] = { 2,	TN,		SEN(printargs), "n64:shutdown"		},
-[5048] = { 3,	TN,		SEN(printargs), "n64:bind"			},
-[5049] = { 2,	TN,		SEN(printargs), "n64:listen"		},
-[5050] = { 3,	TN,		SEN(printargs), "n64:getsockname"		},
-[5051] = { 3,	TN,		SEN(printargs), "n64:getpeername"		},
-[5052] = { 4,	TN,		SEN(printargs), "n64:socketpair"		},
-[5053] = { 5,	TN,		SEN(printargs), "n64:setsockopt"		},
-[5054] = { 5,	TN,		SEN(printargs), "n64:getsockopt"		},
-[5055] = { 5,	TP,		SEN(printargs), "n64:clone"			},
-[5056] = { 0,	TP,		SEN(printargs), "n64:fork"			},
-[5057] = { 3,	TF|TP|SE|SI,	SEN(printargs), "n64:execve"		},
-[5058] = { 1,	TP|SE,		SEN(printargs), "n64:exit"			},
-[5059] = { 4,	TP,		SEN(printargs), "n64:wait4"			},
-[5060] = { 2,	TS,		SEN(printargs), "n64:kill"			},
-[5061] = { 1,	0,		SEN(printargs), "n64:uname"			},
-[5062] = { 3,	TI,		SEN(printargs), "n64:semget"		},
-[5063] = { 3,	TI,		SEN(printargs), "n64:semop"			},
-[5064] = { 4,	TI,		SEN(printargs), "n64:semctl"		},
-[5065] = { 1,	TI|TM|SI,	SEN(printargs), "n64:shmdt"			},
-[5066] = { 2,	TI,		SEN(printargs), "n64:msgget"		},
-[5067] = { 4,	TI,		SEN(printargs), "n64:msgsnd"		},
-[5068] = { 5,	TI,		SEN(printargs), "n64:msgrcv"		},
-[5069] = { 3,	TI,		SEN(printargs), "n64:msgctl"		},
-[5070] = { 3,	TD,		SEN(printargs), "n64:fcntl"			},
-[5071] = { 2,	TD,		SEN(printargs), "n64:flock"			},
-[5072] = { 1,	TD,		SEN(printargs), "n64:fsync"			},
-[5073] = { 1,	TD,		SEN(printargs), "n64:fdatasync"		},
-[5074] = { 2,	TF,		SEN(printargs), "n64:truncate"		},
-[5075] = { 2,	TD,		SEN(printargs), "n64:ftruncate"		},
-[5076] = { 3,	TD,		SEN(printargs), "n64:getdents"		},
-[5077] = { 2,	TF,		SEN(printargs), "n64:getcwd"		},
-[5078] = { 1,	TF,		SEN(printargs), "n64:chdir"			},
-[5079] = { 1,	TD,		SEN(printargs), "n64:fchdir"		},
-[5080] = { 2,	TF,		SEN(printargs), "n64:rename"		},
-[5081] = { 2,	TF,		SEN(printargs), "n64:mkdir"			},
-[5082] = { 1,	TF,		SEN(printargs), "n64:rmdir"			},
-[5083] = { 2,	TD|TF,		SEN(printargs), "n64:creat"			},
-[5084] = { 2,	TF,		SEN(printargs), "n64:link"			},
-[5085] = { 1,	TF,		SEN(printargs), "n64:unlink"		},
-[5086] = { 2,	TF,		SEN(printargs), "n64:symlink"		},
-[5087] = { 3,	TF,		SEN(printargs), "n64:readlink"		},
-[5088] = { 2,	TF,		SEN(printargs), "n64:chmod"			},
-[5089] = { 2,	TD,		SEN(printargs), "n64:fchmod"		},
-[5090] = { 3,	TF,		SEN(printargs), "n64:chown"			},
-[5091] = { 3,	TD,		SEN(printargs), "n64:fchown"		},
-[5092] = { 3,	TF,		SEN(printargs), "n64:lchown"		},
-[5093] = { 1,	NF,		SEN(printargs), "n64:umask"			},
-[5094] = { 2,	0,		SEN(printargs), "n64:gettimeofday"		},
-[5095] = { 2,	0,		SEN(printargs), "n64:getrlimit"		},
-[5096] = { 2,	0,		SEN(printargs), "n64:getrusage"		},
-[5097] = { 1,	0,		SEN(printargs), "n64:sysinfo"		},
-[5098] = { 1,	0,		SEN(printargs), "n64:times"			},
-[5099] = { 4,	0,		SEN(printargs), "n64:ptrace"		},
-[5100] = { 0,	NF,		SEN(printargs), "n64:getuid"		},
-[5101] = { 3,	0,		SEN(printargs), "n64:syslog"		},
-[5102] = { 0,	NF,		SEN(printargs), "n64:getgid"		},
-[5103] = { 1,	0,		SEN(printargs), "n64:setuid"		},
-[5104] = { 1,	0,		SEN(printargs), "n64:setgid"		},
-[5105] = { 0,	NF,		SEN(printargs), "n64:geteuid"		},
-[5106] = { 0,	NF,		SEN(printargs), "n64:getegid"		},
-[5107] = { 2,	0,		SEN(printargs), "n64:setpgid"		},
-[5108] = { 0,	NF,		SEN(printargs), "n64:getppid"		},
-[5109] = { 0,	0,		SEN(printargs), "n64:getpgrp"		},
-[5110] = { 0,	0,		SEN(printargs), "n64:setsid"		},
-[5111] = { 2,	0,		SEN(printargs), "n64:setreuid"		},
-[5112] = { 2,	0,		SEN(printargs), "n64:setregid"		},
-[5113] = { 2,	0,		SEN(printargs), "n64:getgroups"		},
-[5114] = { 2,	0,		SEN(printargs), "n64:setgroups"		},
-[5115] = { 3,	0,		SEN(printargs), "n64:setresuid"		},
-[5116] = { 3,	0,		SEN(printargs), "n64:getresuid"		},
-[5117] = { 3,	0,		SEN(printargs), "n64:setresgid"		},
-[5118] = { 3,	0,		SEN(printargs), "n64:getresgid"		},
-[5119] = { 1,	0,		SEN(printargs), "n64:getpgid"		},
-[5120] = { 1,	NF,		SEN(printargs), "n64:setfsuid"		},
-[5121] = { 1,	NF,		SEN(printargs), "n64:setfsgid"		},
-[5122] = { 1,	0,		SEN(printargs), "n64:getsid"		},
-[5123] = { 2,	0,		SEN(printargs), "n64:capget"		},
-[5124] = { 2,	0,		SEN(printargs), "n64:capset"		},
-[5125] = { 2,	TS,		SEN(printargs), "n64:rt_sigpending"		},
-[5126] = { 4,	TS,		SEN(printargs), "n64:rt_sigtimedwait"	},
-[5127] = { 3,	TS,		SEN(printargs), "n64:rt_sigqueueinfo"	},
-[5128] = { 2,	TS,		SEN(printargs), "n64:rt_sigsuspend"		},
-[5129] = { 2,	TS,		SEN(printargs), "n64:sigaltstack"		},
-[5130] = { 2,	TF,		SEN(printargs), "n64:utime"			},
-[5131] = { 3,	TF,		SEN(printargs), "n64:mknod"			},
-[5132] = { 1,	NF,		SEN(printargs), "n64:personality"		},
-[5133] = { 2,	TSFA,		SEN(printargs), "n64:ustat"			},
-[5134] = { 2,	TF|TSF|TSFA,	SEN(printargs), "n64:statfs"		},
-[5135] = { 2,	TD|TFSF|TSFA,	SEN(printargs), "n64:fstatfs"		},
-[5136] = { 3,	0,		SEN(printargs), "n64:sysfs"			},
-[5137] = { 2,	0,		SEN(printargs), "n64:getpriority"		},
-[5138] = { 3,	0,		SEN(printargs), "n64:setpriority"		},
-[5139] = { 2,	0,		SEN(printargs), "n64:sched_setparam"	},
-[5140] = { 2,	0,		SEN(printargs), "n64:sched_getparam"	},
-[5141] = { 3,	0,		SEN(printargs), "n64:sched_setscheduler"	},
-[5142] = { 1,	0,		SEN(printargs), "n64:sched_getscheduler"	},
-[5143] = { 1,	0,		SEN(printargs), "n64:sched_get_priority_max"},
-[5144] = { 1,	0,		SEN(printargs), "n64:sched_get_priority_min"},
-[5145] = { 2,	0,		SEN(printargs), "n64:sched_rr_get_interval"	},
-[5146] = { 2,	TM,		SEN(printargs), "n64:mlock"			},
-[5147] = { 2,	TM,		SEN(printargs), "n64:munlock"		},
-[5148] = { 1,	TM,		SEN(printargs), "n64:mlockall"		},
-[5149] = { 0,	TM,		SEN(printargs), "n64:munlockall"		},
-[5150] = { 0,	0,		SEN(printargs), "n64:vhangup"		},
-[5151] = { 2,	TF,		SEN(printargs), "n64:pivot_root"		},
-[5152] = { 1,	0,		SEN(printargs), "n64:_sysctl"		},
-[5153] = { 5,	0,		SEN(printargs), "n64:prctl"			},
-[5154] = { 1,	0,		SEN(printargs), "n64:adjtimex"		},
-[5155] = { 2,	0,		SEN(printargs), "n64:setrlimit"		},
-[5156] = { 1,	TF,		SEN(printargs), "n64:chroot"		},
-[5157] = { 0,	0,		SEN(printargs), "n64:sync"			},
-[5158] = { 1,	TF,		SEN(printargs), "n64:acct"			},
-[5159] = { 2,	0,		SEN(printargs), "n64:settimeofday"		},
-[5160] = { 5,	TF,		SEN(printargs), "n64:mount"			},
-[5161] = { 2,	TF,		SEN(printargs), "n64:umount2"		},
-[5162] = { 2,	TF,		SEN(printargs), "n64:swapon"		},
-[5163] = { 1,	TF,		SEN(printargs), "n64:swapoff"		},
-[5164] = { 4,	0,		SEN(printargs), "n64:reboot"		},
-[5165] = { 2,	0,		SEN(printargs), "n64:sethostname"		},
-[5166] = { 2,	0,		SEN(printargs), "n64:setdomainname"		},
-[5167] = { 2,	0,		SEN(printargs), "n64:create_module"		},
-[5168] = { 3,	0,		SEN(printargs), "n64:init_module"		},
-[5169] = { 2,	0,		SEN(printargs), "n64:delete_module"		},
-[5170] = { 1,	0,		SEN(printargs), "n64:get_kernel_syms"	},
-[5171] = { 5,	0,		SEN(printargs), "n64:query_module"		},
-[5172] = { 4,	TF,		SEN(printargs), "n64:quotactl"		},
-[5173] = { 3,	0,		SEN(printargs), "n64:nfsservctl"		},
-[5174] = { 5,	TN,		SEN(printargs), "n64:getpmsg"		},
-[5175] = { 5,	TN,		SEN(printargs), "n64:putpmsg"		},
-[5176] = { 0,	0,		SEN(printargs), "n64:afs_syscall"		},
-[5177] = { 0,	0,		SEN(printargs), "n64:reserved177"		},
-[5178] = { 0,	NF,		SEN(printargs), "n64:gettid"		},
-[5179] = { 3,	TD,		SEN(printargs), "n64:readahead"		},
-[5180] = { 5,	TF,		SEN(printargs), "n64:setxattr"		},
-[5181] = { 5,	TF,		SEN(printargs), "n64:lsetxattr"		},
-[5182] = { 5,	TD,		SEN(printargs), "n64:fsetxattr"		},
-[5183] = { 4,	TF,		SEN(printargs), "n64:getxattr"		},
-[5184] = { 4,	TF,		SEN(printargs), "n64:lgetxattr"		},
-[5185] = { 4,	TD,		SEN(printargs), "n64:fgetxattr"		},
-[5186] = { 3,	TF,		SEN(printargs), "n64:listxattr"		},
-[5187] = { 3,	TF,		SEN(printargs), "n64:llistxattr"		},
-[5188] = { 3,	TD,		SEN(printargs), "n64:flistxattr"		},
-[5189] = { 2,	TF,		SEN(printargs), "n64:removexattr"		},
-[5190] = { 2,	TF,		SEN(printargs), "n64:lremovexattr"		},
-[5191] = { 2,	TD,		SEN(printargs), "n64:fremovexattr"		},
-[5192] = { 2,	TS,		SEN(printargs), "n64:tkill"			},
-[5193] = { 1,	0,		SEN(printargs), "n64:time"			},
-[5194] = { 6,	0,		SEN(printargs), "n64:futex"			},
-[5195] = { 3,	0,		SEN(printargs), "n64:sched_setaffinity"	},
-[5196] = { 3,	0,		SEN(printargs), "n64:sched_getaffinity"	},
-[5197] = { 3,	0,		SEN(printargs), "n64:cacheflush"		},
-[5198] = { 3,	0,		SEN(printargs), "n64:cachectl"		},
-[5199] = { 4,	0,		SEN(printargs), "n64:sysmips"		},
-[5200] = { 2,	TM,		SEN(printargs), "n64:io_setup"		},
-[5201] = { 1,	TM,		SEN(printargs), "n64:io_destroy"		},
-[5202] = { 5,	0,		SEN(printargs), "n64:io_getevents"		},
-[5203] = { 3,	0,		SEN(printargs), "n64:io_submit"		},
-[5204] = { 3,	0,		SEN(printargs), "n64:io_cancel"		},
-[5205] = { 1,	TP|SE,		SEN(printargs), "n64:exit_group"		},
-[5206] = { 3,	0,		SEN(printargs), "n64:lookup_dcookie"	},
-[5207] = { 1,	TD,		SEN(printargs), "n64:epoll_create"		},
-[5208] = { 4,	TD,		SEN(printargs), "n64:epoll_ctl"		},
-[5209] = { 4,	TD,		SEN(printargs), "n64:epoll_wait"		},
-[5210] = { 5,	TM|SI,		SEN(printargs), "n64:remap_file_pages"	},
-[5211] = { 0,	TS,		SEN(printargs), "n64:rt_sigreturn"		},
-[5212] = { 1,	0,		SEN(printargs), "n64:set_tid_address"	},
-[5213] = { 0,	0,		SEN(printargs), "n64:restart_syscall"	},
-[5214] = { 4,	TI,		SEN(printargs), "n64:semtimedop"		},
-[5215] = { 4,	TD,		SEN(printargs), "n64:fadvise64"		},
-[5216] = { 3,	0,		SEN(printargs), "n64:timer_create"		},
-[5217] = { 4,	0,		SEN(printargs), "n64:timer_settime"		},
-[5218] = { 2,	0,		SEN(printargs), "n64:timer_gettime"		},
-[5219] = { 1,	0,		SEN(printargs), "n64:timer_getoverrun"	},
-[5220] = { 1,	0,		SEN(printargs), "n64:timer_delete"		},
-[5221] = { 2,	0,		SEN(printargs), "n64:clock_settime"		},
-[5222] = { 2,	0,		SEN(printargs), "n64:clock_gettime"		},
-[5223] = { 2,	0,		SEN(printargs), "n64:clock_getres"		},
-[5224] = { 4,	0,		SEN(printargs), "n64:clock_nanosleep"	},
-[5225] = { 3,	TS,		SEN(printargs), "n64:tgkill"		},
-[5226] = { 2,	TF,		SEN(printargs), "n64:utimes"		},
-[5227] = { 6,	TM,		SEN(printargs), "n64:mbind"			},
-[5228] = { 5,	TM,		SEN(printargs), "n64:get_mempolicy"		},
-[5229] = { 3,	TM,		SEN(printargs), "n64:set_mempolicy"		},
-[5230] = { 4,	0,		SEN(printargs), "n64:mq_open"		},
-[5231] = { 1,	0,		SEN(printargs), "n64:mq_unlink"		},
-[5232] = { 5,	0,		SEN(printargs), "n64:mq_timedsend"		},
-[5233] = { 5,	0,		SEN(printargs), "n64:mq_timedreceive"	},
-[5234] = { 2,	0,		SEN(printargs), "n64:mq_notify"		},
-[5235] = { 3,	0,		SEN(printargs), "n64:mq_getsetattr"		},
-[5236] = { 5,	0,		SEN(printargs), "n64:vserver"		},
-[5237] = { 5,	TP,		SEN(printargs), "n64:waitid"		},
-[5238] = { },
-[5239] = { 5,	0,		SEN(printargs), "n64:add_key"		},
-[5240] = { 4,	0,		SEN(printargs), "n64:request_key"		},
-[5241] = { 5,	0,		SEN(printargs), "n64:keyctl"		},
-[5242] = { 1,	0,		SEN(printargs), "n64:set_thread_area"	},
-[5243] = { 0,	TD,		SEN(printargs), "n64:inotify_init"		},
-[5244] = { 3,	TD,		SEN(printargs), "n64:inotify_add_watch"	},
-[5245] = { 2,	TD,		SEN(printargs), "n64:inotify_rm_watch"	},
-[5246] = { 4,	TM,		SEN(printargs), "n64:migrate_pages"		},
-[5247] = { 4,	TD|TF,		SEN(printargs), "n64:openat"		},
-[5248] = { 3,	TD|TF,		SEN(printargs), "n64:mkdirat"		},
-[5249] = { 4,	TD|TF,		SEN(printargs), "n64:mknodat"		},
-[5250] = { 5,	TD|TF,		SEN(printargs), "n64:fchownat"		},
-[5251] = { 3,	TD|TF,		SEN(printargs), "n64:futimesat"		},
-[5252] = { 4,	TD|TF|TFST|TSTA,SEN(printargs), "n64:newfstatat"		},
-[5253] = { 3,	TD|TF,		SEN(printargs), "n64:unlinkat"		},
-[5254] = { 4,	TD|TF,		SEN(printargs), "n64:renameat"		},
-[5255] = { 5,	TD|TF,		SEN(printargs), "n64:linkat"		},
-[5256] = { 3,	TD|TF,		SEN(printargs), "n64:symlinkat"		},
-[5257] = { 4,	TD|TF,		SEN(printargs), "n64:readlinkat"		},
-[5258] = { 3,	TD|TF,		SEN(printargs), "n64:fchmodat"		},
-[5259] = { 3,	TD|TF,		SEN(printargs), "n64:faccessat"		},
-[5260] = { 6,	TD,		SEN(printargs), "n64:pselect6"		},
-[5261] = { 5,	TD,		SEN(printargs), "n64:ppoll"			},
-[5262] = { 1,	TP,		SEN(printargs), "n64:unshare"		},
-[5263] = { 6,	TD,		SEN(printargs), "n64:splice"		},
-[5264] = { 4,	TD,		SEN(printargs), "n64:sync_file_range"	},
-[5265] = { 4,	TD,		SEN(printargs), "n64:tee"			},
-[5266] = { 4,	TD,		SEN(printargs), "n64:vmsplice"		},
-[5267] = { 6,	TM,		SEN(printargs), "n64:move_pages"		},
-[5268] = { 2,	0,		SEN(printargs), "n64:set_robust_list"	},
-[5269] = { 3,	0,		SEN(printargs), "n64:get_robust_list"	},
-[5270] = { 4,	0,		SEN(printargs), "n64:kexec_load"		},
-[5271] = { 3,	0,		SEN(printargs), "n64:getcpu"		},
-[5272] = { 6,	TD,		SEN(printargs), "n64:epoll_pwait"		},
-[5273] = { 3,	0,		SEN(printargs), "n64:ioprio_set"		},
-[5274] = { 2,	0,		SEN(printargs), "n64:ioprio_get"		},
-[5275] = { 4,	TD|TF,		SEN(printargs), "n64:utimensat"		},
-[5276] = { 3,	TD|TS,		SEN(printargs), "n64:signalfd"		},
-[5277] = { 4,	TD,		SEN(printargs), "n64:timerfd"		},
-[5278] = { 1,	TD,		SEN(printargs), "n64:eventfd"		},
-[5279] = { 4,	TD,		SEN(printargs), "n64:fallocate"		},
-[5280] = { 2,	TD,		SEN(printargs), "n64:timerfd_create"	},
-[5281] = { 2,	TD,		SEN(printargs), "n64:timerfd_gettime"	},
-[5282] = { 4,	TD,		SEN(printargs), "n64:timerfd_settime"	},
-[5283] = { 4,	TD|TS,		SEN(printargs), "n64:signalfd4"		},
-[5284] = { 2,	TD,		SEN(printargs), "n64:eventfd2"		},
-[5285] = { 1,	TD,		SEN(printargs), "n64:epoll_create1"		},
-[5286] = { 3,	TD,		SEN(printargs), "n64:dup3"			},
-[5287] = { 2,	TD,		SEN(printargs), "n64:pipe2"			},
-[5288] = { 1,	TD,		SEN(printargs), "n64:inotify_init1"		},
-[5289] = { 4,	TD,		SEN(printargs), "n64:preadv"		},
-[5290] = { 4,	TD,		SEN(printargs), "n64:pwritev"		},
-[5291] = { 4,	TP|TS,		SEN(printargs), "n64:rt_tgsigqueueinfo"	},
-[5292] = { 5,	TD,		SEN(printargs), "n64:perf_event_open"	},
-[5293] = { 4,	TN,		SEN(printargs), "n64:accept4"		},
-[5294] = { 5,	TN,		SEN(printargs), "n64:recvmmsg"		},
-[5295] = { 2,	TD,		SEN(printargs), "n64:fanotify_init"		},
-[5296] = { 5,	TD|TF,		SEN(printargs), "n64:fanotify_mark"		},
-[5297] = { 4,	0,		SEN(printargs), "n64:prlimit64"		},
-[5298] = { 5,	TD|TF,		SEN(printargs), "n64:name_to_handle_at"	},
-[5299] = { 3,	TD,		SEN(printargs), "n64:open_by_handle_at"	},
-[5300] = { 2,	0,		SEN(printargs), "n64:clock_adjtime"		},
-[5301] = { 1,	TD,		SEN(printargs), "n64:syncfs"		},
-[5302] = { 4,	TN,		SEN(printargs), "n64:sendmmsg"		},
-[5303] = { 2,	TD,		SEN(printargs), "n64:setns"			},
-[5304] = { 6,	0,		SEN(printargs), "n64:process_vm_readv"	},
-[5305] = { 6,	0,		SEN(printargs), "n64:process_vm_writev"	},
-[5306] = { 5,	0,		SEN(printargs), "n64:kcmp"			},
-[5307] = { 3,	TD,		SEN(printargs), "n64:finit_module"		},
-[5308] = { 3,	TD,		SEN(printargs), "n64:getdents64"		},
-[5309] = { 3,	0,		SEN(printargs), "n64:sched_setattr"		},
-[5310] = { 4,	0,		SEN(printargs), "n64:sched_getattr"		},
-[5311] = { 5,	TD|TF,		SEN(printargs), "n64:renameat2"		},
-[5312] = { 3,	0,		SEN(printargs), "n64:seccomp"		},
-[5313] = { 3,	0,		SEN(printargs), "n64:getrandom"		},
-[5314] = { 2,	TD,		SEN(printargs), "n64:memfd_create"		},
-[5315] = { 3,	TD,		SEN(printargs), "n64:bpf"			},
-[5316] = { 5,	TD|TF|TP|SE|SI,	SEN(printargs), "n64:execveat"		},
-[5317] = { 1,	TD,		SEN(printargs), "n64:userfaultfd"		},
-[5318] = { 2,	0,		SEN(printargs), "n64:membarrier"		},
-[5319] = { 3,	TM,		SEN(printargs), "n64:mlock2"		},
-[5320] = { 6,	TD,		SEN(printargs), "n64:copy_file_range"	},
-[5321] = { 6,	TD,		SEN(printargs), "n64:preadv2"		},
-[5322] = { 6,	TD,		SEN(printargs), "n64:pwritev2"		},
-[5323] = { 4,	TM|SI,		SEN(printargs), "n64:pkey_mprotect"		},
-[5324] = { 2,	0,		SEN(printargs), "n64:pkey_alloc"		},
-[5325] = { 1,	0,		SEN(printargs), "n64:pkey_free"		},
-[5326] = { 5,	TD|TF|TSTA,	SEN(printargs), "n64:statx"			},
diff --git a/linux/mips/syscallent-o32-stub.h b/linux/mips/syscallent-o32-stub.h
deleted file mode 100644
index 04296fa..0000000
--- a/linux/mips/syscallent-o32-stub.h
+++ /dev/null
@@ -1,367 +0,0 @@
-[4000] = { MA,	0,		SEN(printargs), "o32:syscall"		}, /* start of Linux o32 */
-[4001] = { 1,	TP|SE,		SEN(printargs), "o32:exit"			},
-[4002] = { 0,	TP,		SEN(printargs), "o32:fork"			},
-[4003] = { 3,	TD,		SEN(printargs), "o32:read"			},
-[4004] = { 3,	TD,		SEN(printargs), "o32:write"			},
-[4005] = { 3,	TD|TF,		SEN(printargs), "o32:open"			},
-[4006] = { 1,	TD,		SEN(printargs), "o32:close"			},
-[4007] = { 3,	TP,		SEN(printargs), "o32:waitpid"		},
-[4008] = { 2,	TD|TF,		SEN(printargs), "o32:creat"			},
-[4009] = { 2,	TF,		SEN(printargs), "o32:link"			},
-[4010] = { 1,	TF,		SEN(printargs), "o32:unlink"		},
-[4011] = { 3,	TF|TP|SE|SI,	SEN(printargs), "o32:execve"		},
-[4012] = { 1,	TF,		SEN(printargs), "o32:chdir"			},
-[4013] = { 1,	0,		SEN(printargs), "o32:time"			},
-[4014] = { 3,	TF,		SEN(printargs), "o32:mknod"			},
-[4015] = { 2,	TF,		SEN(printargs), "o32:chmod"			},
-[4016] = { 3,	TF,		SEN(printargs), "o32:lchown"		},
-[4017] = { 0,	TM,		SEN(printargs), "o32:break"			},
-[4018] = { 2,	TF|TST|TSTA,	SEN(printargs), "o32:oldstat"		},
-[4019] = { 3,	TD,		SEN(printargs), "o32:lseek"			},
-[4020] = { 0,	NF,		SEN(printargs), "o32:getpid"		},
-[4021] = { 5,	TF,		SEN(printargs), "o32:mount"			},
-[4022] = { 1,	TF,		SEN(printargs), "o32:umount"		},
-[4023] = { 1,	0,		SEN(printargs), "o32:setuid"		},
-[4024] = { 0,	NF,		SEN(printargs), "o32:getuid"		},
-[4025] = { 1,	0,		SEN(printargs), "o32:stime"			},
-[4026] = { 4,	0,		SEN(printargs), "o32:ptrace"		},
-[4027] = { 1,	0,		SEN(printargs), "o32:alarm"			},
-[4028] = { 2,	TD|TFST|TSTA,	SEN(printargs), "o32:oldfstat"		},
-[4029] = { 0,	TS,		SEN(printargs), "o32:pause"			},
-[4030] = { 2,	TF,		SEN(printargs), "o32:utime"			},
-[4031] = { 0,	0,		SEN(printargs), "o32:stty"			},
-[4032] = { 0,	0,		SEN(printargs), "o32:gtty"			},
-[4033] = { 2,	TF,		SEN(printargs), "o32:access"		},
-[4034] = { 1,	0,		SEN(printargs), "o32:nice"			},
-[4035] = { 1,	0,		SEN(printargs), "o32:ftime"			},
-[4036] = { 0,	0,		SEN(printargs), "o32:sync"			},
-[4037] = { 2,	TS,		SEN(printargs), "o32:kill"			},
-[4038] = { 2,	TF,		SEN(printargs), "o32:rename"		},
-[4039] = { 2,	TF,		SEN(printargs), "o32:mkdir"			},
-[4040] = { 1,	TF,		SEN(printargs), "o32:rmdir"			},
-[4041] = { 1,	TD,		SEN(printargs), "o32:dup"			},
-[4042] = { 0,	TD,		SEN(printargs), "o32:pipe"			},
-[4043] = { 1,	0,		SEN(printargs), "o32:times"			},
-[4044] = { 0,	0,		SEN(printargs), "o32:prof"			},
-[4045] = { 1,	TM|SI,		SEN(printargs), "o32:brk"			},
-[4046] = { 1,	0,		SEN(printargs), "o32:setgid"		},
-[4047] = { 0,	NF,		SEN(printargs), "o32:getgid"		},
-[4048] = { 2,	TS,		SEN(printargs), "o32:signal"		},
-[4049] = { 0,	NF,		SEN(printargs), "o32:geteuid"		},
-[4050] = { 0,	NF,		SEN(printargs), "o32:getegid"		},
-[4051] = { 1,	TF,		SEN(printargs), "o32:acct"			},
-[4052] = { 2,	TF,		SEN(printargs), "o32:umount2"		},
-[4053] = { 0,	0,		SEN(printargs), "o32:lock"			},
-[4054] = { 3,	TD,		SEN(printargs), "o32:ioctl"			},
-[4055] = { 3,	TD,		SEN(printargs), "o32:fcntl"			},
-[4056] = { 0,	0,		SEN(printargs), "o32:mpx"			},
-[4057] = { 2,	0,		SEN(printargs), "o32:setpgid"		},
-[4058] = { 0,	0,		SEN(printargs), "o32:ulimit"		},
-[4059] = { 1,	0,		SEN(printargs), "o32:oldolduname"		},
-[4060] = { 1,	NF,		SEN(printargs), "o32:umask"			},
-[4061] = { 1,	TF,		SEN(printargs), "o32:chroot"		},
-[4062] = { 2,	TSFA,		SEN(printargs), "o32:ustat"			},
-[4063] = { 2,	TD,		SEN(printargs), "o32:dup2"			},
-[4064] = { 0,	NF,		SEN(printargs), "o32:getppid"		},
-[4065] = { 0,	0,		SEN(printargs), "o32:getpgrp"		},
-[4066] = { 0,	0,		SEN(printargs), "o32:setsid"		},
-[4067] = { 3,	TS,		SEN(printargs), "o32:sigaction"		},
-[4068] = { 0,	TS,		SEN(printargs), "o32:sgetmask"		},
-[4069] = { 1,	TS,		SEN(printargs), "o32:ssetmask"		},
-[4070] = { 2,	0,		SEN(printargs), "o32:setreuid"		},
-[4071] = { 2,	0,		SEN(printargs), "o32:setregid"		},
-[4072] = { 1,	TS,		SEN(printargs), "o32:sigsuspend"		},
-[4073] = { 1,	TS,		SEN(printargs), "o32:sigpending"		},
-[4074] = { 2,	0,		SEN(printargs), "o32:sethostname"		},
-[4075] = { 2,	0,		SEN(printargs), "o32:setrlimit"		},
-[4076] = { 2,	0,		SEN(printargs), "o32:getrlimit"		},
-[4077] = { 2,	0,		SEN(printargs), "o32:getrusage"		},
-[4078] = { 2,	0,		SEN(printargs), "o32:gettimeofday"		},
-[4079] = { 2,	0,		SEN(printargs), "o32:settimeofday"		},
-[4080] = { 2,	0,		SEN(printargs), "o32:getgroups"		},
-[4081] = { 2,	0,		SEN(printargs), "o32:setgroups"		},
-[4082] = { 0,	0,		SEN(printargs), "o32:reserved82"		},
-[4083] = { 2,	TF,		SEN(printargs), "o32:symlink"		},
-[4084] = { 2,	TF|TLST|TSTA,	SEN(printargs), "o32:oldlstat"		},
-[4085] = { 3,	TF,		SEN(printargs), "o32:readlink"		},
-[4086] = { 1,	TF,		SEN(printargs), "o32:uselib"		},
-[4087] = { 2,	TF,		SEN(printargs), "o32:swapon"		},
-[4088] = { 4,	0,		SEN(printargs), "o32:reboot"		},
-[4089] = { 3,	TD,		SEN(printargs), "o32:readdir"		},
-[4090] = { 6,	TD|TM|SI,	SEN(printargs), "o32:mmap"			},
-[4091] = { 2,	TM|SI,		SEN(printargs), "o32:munmap"		},
-[4092] = { 2,	TF,		SEN(printargs), "o32:truncate"		},
-[4093] = { 2,	TD,		SEN(printargs), "o32:ftruncate"		},
-[4094] = { 2,	TD,		SEN(printargs), "o32:fchmod"		},
-[4095] = { 3,	TD,		SEN(printargs), "o32:fchown"		},
-[4096] = { 2,	0,		SEN(printargs), "o32:getpriority"		},
-[4097] = { 3,	0,		SEN(printargs), "o32:setpriority"		},
-[4098] = { 0,	0,		SEN(printargs), "o32:profil"		},
-[4099] = { 2,	TF|TSF|TSFA,	SEN(printargs), "o32:statfs"		},
-[4100] = { 2,	TD|TFSF|TSFA,	SEN(printargs), "o32:fstatfs"		},
-[4101] = { 3,	0,		SEN(printargs), "o32:ioperm"		},
-[4102] = { 2,	TD,		SEN(printargs), "o32:socketcall"		},
-[4103] = { 3,	0,		SEN(printargs), "o32:syslog"		},
-[4104] = { 3,	0,		SEN(printargs), "o32:setitimer"		},
-[4105] = { 2,	0,		SEN(printargs), "o32:getitimer"		},
-[4106] = { 2,	TF|TST|TSTA,	SEN(printargs), "o32:stat"			},
-[4107] = { 2,	TF|TLST|TSTA,	SEN(printargs), "o32:lstat"			},
-[4108] = { 2,	TD|TFST|TSTA,	SEN(printargs), "o32:fstat"			},
-[4109] = { 1,	0,		SEN(printargs), "o32:olduname"		},
-[4110] = { 1,	0,		SEN(printargs), "o32:iopl"			},
-[4111] = { 0,	0,		SEN(printargs), "o32:vhangup"		},
-[4112] = { 0,	0,		SEN(printargs), "o32:idle"			},
-[4113] = { 5,	0,		SEN(printargs), "o32:vm86"			},
-[4114] = { 4,	TP,		SEN(printargs), "o32:wait4"			},
-[4115] = { 1,	TF,		SEN(printargs), "o32:swapoff"		},
-[4116] = { 1,	0,		SEN(printargs), "o32:sysinfo"		},
-[4117] = { 6,	TI,		SEN(printargs), "o32:ipc"			},
-[4118] = { 1,	TD,		SEN(printargs), "o32:fsync"			},
-[4119] = { 0,	TS,		SEN(printargs), "o32:sigreturn"		},
-[4120] = { 5,	TP,		SEN(printargs), "o32:clone"			},
-[4121] = { 2,	0,		SEN(printargs), "o32:setdomainname"		},
-[4122] = { 1,	0,		SEN(printargs), "o32:uname"			},
-[4123] = { 0,	0,		SEN(printargs), "o32:modify_ldt"		},
-[4124] = { 1,	0,		SEN(printargs), "o32:adjtimex"		},
-[4125] = { 3,	TM|SI,		SEN(printargs), "o32:mprotect"		},
-[4126] = { 3,	TS,		SEN(printargs), "o32:sigprocmask"		},
-[4127] = { 2,	0,		SEN(printargs), "o32:create_module"		},
-[4128] = { 3,	0,		SEN(printargs), "o32:init_module"		},
-[4129] = { 2,	0,		SEN(printargs), "o32:delete_module"		},
-[4130] = { 1,	0,		SEN(printargs), "o32:get_kernel_syms"	},
-[4131] = { 4,	TF,		SEN(printargs), "o32:quotactl"		},
-[4132] = { 1,	0,		SEN(printargs), "o32:getpgid"		},
-[4133] = { 1,	TD,		SEN(printargs), "o32:fchdir"		},
-[4134] = { 2,	0,		SEN(printargs), "o32:bdflush"		},
-[4135] = { 3,	0,		SEN(printargs), "o32:sysfs"			},
-[4136] = { 1,	NF,		SEN(printargs), "o32:personality"		},
-[4137] = { 0,	0,		SEN(printargs), "o32:afs_syscall"		},
-[4138] = { 1,	NF,		SEN(printargs), "o32:setfsuid"		},
-[4139] = { 1,	NF,		SEN(printargs), "o32:setfsgid"		},
-[4140] = { 5,	TD,		SEN(printargs), "o32:_llseek"		},
-[4141] = { 3,	TD,		SEN(printargs), "o32:getdents"		},
-[4142] = { 5,	TD,		SEN(printargs), "o32:_newselect"		},
-[4143] = { 2,	TD,		SEN(printargs), "o32:flock"			},
-[4144] = { 3,	TM,		SEN(printargs), "o32:msync"			},
-[4145] = { 3,	TD,		SEN(printargs), "o32:readv"			},
-[4146] = { 3,	TD,		SEN(printargs), "o32:writev"		},
-[4147] = { 3,	0,		SEN(printargs), "o32:cacheflush"		},
-[4148] = { 3,	0,		SEN(printargs), "o32:cachectl"		},
-[4149] = { 4,	0,		SEN(printargs), "o32:sysmips"		},
-[4150] = { 0,	0,		SEN(printargs), "o32:setup"			},
-[4151] = { 1,	0,		SEN(printargs), "o32:getsid"		},
-[4152] = { 1,	TD,		SEN(printargs), "o32:fdatasync"		},
-[4153] = { 1,	0,		SEN(printargs), "o32:_sysctl"		},
-[4154] = { 2,	TM,		SEN(printargs), "o32:mlock"			},
-[4155] = { 2,	TM,		SEN(printargs), "o32:munlock"		},
-[4156] = { 1,	TM,		SEN(printargs), "o32:mlockall"		},
-[4157] = { 0,	TM,		SEN(printargs), "o32:munlockall"		},
-[4158] = { 2,	0,		SEN(printargs), "o32:sched_setparam"	},
-[4159] = { 2,	0,		SEN(printargs), "o32:sched_getparam"	},
-[4160] = { 3,	0,		SEN(printargs), "o32:sched_setscheduler"	},
-[4161] = { 1,	0,		SEN(printargs), "o32:sched_getscheduler"	},
-[4162] = { 0,	0,		SEN(printargs), "o32:sched_yield"		},
-[4163] = { 1,	0,		SEN(printargs), "o32:sched_get_priority_max"},
-[4164] = { 1,	0,		SEN(printargs), "o32:sched_get_priority_min"},
-[4165] = { 2,	0,		SEN(printargs), "o32:sched_rr_get_interval"	},
-[4166] = { 2,	0,		SEN(printargs), "o32:nanosleep"		},
-[4167] = { 5,	TM|SI,		SEN(printargs), "o32:mremap"		},
-[4168] = { 3,	TN,		SEN(printargs), "o32:accept"		},
-[4169] = { 3,	TN,		SEN(printargs), "o32:bind"			},
-[4170] = { 3,	TN,		SEN(printargs), "o32:connect"		},
-[4171] = { 3,	TN,		SEN(printargs), "o32:getpeername"		},
-[4172] = { 3,	TN,		SEN(printargs), "o32:getsockname"		},
-[4173] = { 5,	TN,		SEN(printargs), "o32:getsockopt"		},
-[4174] = { 2,	TN,		SEN(printargs), "o32:listen"		},
-[4175] = { 4,	TN,		SEN(printargs), "o32:recv"			},
-[4176] = { 6,	TN,		SEN(printargs), "o32:recvfrom"		},
-[4177] = { 3,	TN,		SEN(printargs), "o32:recvmsg"		},
-[4178] = { 4,	TN,		SEN(printargs), "o32:send"			},
-[4179] = { 3,	TN,		SEN(printargs), "o32:sendmsg"		},
-[4180] = { 6,	TN,		SEN(printargs), "o32:sendto"		},
-[4181] = { 5,	TN,		SEN(printargs), "o32:setsockopt"		},
-[4182] = { 2,	TN,		SEN(printargs), "o32:shutdown"		},
-[4183] = { 3,	TN,		SEN(printargs), "o32:socket"		},
-[4184] = { 4,	TN,		SEN(printargs), "o32:socketpair"		},
-[4185] = { 3,	0,		SEN(printargs), "o32:setresuid"		},
-[4186] = { 3,	0,		SEN(printargs), "o32:getresuid"		},
-[4187] = { 5,	0,		SEN(printargs), "o32:query_module"		},
-[4188] = { 3,	TD,		SEN(printargs), "o32:poll"			},
-[4189] = { 3,	0,		SEN(printargs), "o32:nfsservctl"		},
-[4190] = { 3,	0,		SEN(printargs), "o32:setresgid"		},
-[4191] = { 3,	0,		SEN(printargs), "o32:getresgid"		},
-[4192] = { 5,	0,		SEN(printargs), "o32:prctl"			},
-[4193] = { 0,	TS,		SEN(printargs), "o32:rt_sigreturn"		},
-[4194] = { 4,	TS,		SEN(printargs), "o32:rt_sigaction"		},
-[4195] = { 4,	TS,		SEN(printargs), "o32:rt_sigprocmask"	},
-[4196] = { 2,	TS,		SEN(printargs), "o32:rt_sigpending"		},
-[4197] = { 4,	TS,		SEN(printargs), "o32:rt_sigtimedwait"	},
-[4198] = { 3,	TS,		SEN(printargs), "o32:rt_sigqueueinfo"	},
-[4199] = { 2,	TS,		SEN(printargs), "o32:rt_sigsuspend"		},
-[4200] = { 6,	TD,		SEN(printargs), "o32:pread64"		},
-[4201] = { 6,	TD,		SEN(printargs), "o32:pwrite64"		},
-[4202] = { 3,	TF,		SEN(printargs), "o32:chown"			},
-[4203] = { 2,	TF,		SEN(printargs), "o32:getcwd"		},
-[4204] = { 2,	0,		SEN(printargs), "o32:capget"		},
-[4205] = { 2,	0,		SEN(printargs), "o32:capset"		},
-[4206] = { 2,	TS,		SEN(printargs), "o32:sigaltstack"		},
-[4207] = { 4,	TD|TN,		SEN(printargs), "o32:sendfile"		},
-[4208] = { 5,	TN,		SEN(printargs), "o32:getpmsg"		},
-[4209] = { 5,	TN,		SEN(printargs), "o32:putpmsg"		},
-[4210] = { 6,	TD|TM|SI,	SEN(printargs), "o32:mmap2"			},
-[4211] = { 4,	TF,		SEN(printargs), "o32:truncate64"		},
-[4212] = { 4,	TD,		SEN(printargs), "o32:ftruncate64"		},
-[4213] = { 2,	TF|TST|TSTA,	SEN(printargs), "o32:stat64"		},
-[4214] = { 2,	TF|TLST|TSTA,	SEN(printargs), "o32:lstat64"		},
-[4215] = { 2,	TD|TFST|TSTA,	SEN(printargs), "o32:fstat64"		},
-[4216] = { 2,	TF,		SEN(printargs), "o32:pivot_root"		},
-[4217] = { 3,	TM,		SEN(printargs), "o32:mincore"		},
-[4218] = { 3,	TM,		SEN(printargs), "o32:madvise"		},
-[4219] = { 3,	TD,		SEN(printargs), "o32:getdents64"		},
-[4220] = { 3,	TD,		SEN(printargs), "o32:fcntl64"		},
-[4221] = { },
-[4222] = { 0,	NF,		SEN(printargs), "o32:gettid"		},
-[4223] = { 5,	TD,		SEN(printargs), "o32:readahead"		},
-[4224] = { 5,	TF,		SEN(printargs), "o32:setxattr"		},
-[4225] = { 5,	TF,		SEN(printargs), "o32:lsetxattr"		},
-[4226] = { 5,	TD,		SEN(printargs), "o32:fsetxattr"		},
-[4227] = { 4,	TF,		SEN(printargs), "o32:getxattr"		},
-[4228] = { 4,	TF,		SEN(printargs), "o32:lgetxattr"		},
-[4229] = { 4,	TD,		SEN(printargs), "o32:fgetxattr"		},
-[4230] = { 3,	TF,		SEN(printargs), "o32:listxattr"		},
-[4231] = { 3,	TF,		SEN(printargs), "o32:llistxattr"		},
-[4232] = { 3,	TD,		SEN(printargs), "o32:flistxattr"		},
-[4233] = { 2,	TF,		SEN(printargs), "o32:removexattr"		},
-[4234] = { 2,	TF,		SEN(printargs), "o32:lremovexattr"		},
-[4235] = { 2,	TD,		SEN(printargs), "o32:fremovexattr"		},
-[4236] = { 2,	TS,		SEN(printargs), "o32:tkill"			},
-[4237] = { 4,	TD|TN,		SEN(printargs), "o32:sendfile64"		},
-[4238] = { 6,	0,		SEN(printargs), "o32:futex"			},
-[4239] = { 3,	0,		SEN(printargs), "o32:sched_setaffinity"	},
-[4240] = { 3,	0,		SEN(printargs), "o32:sched_getaffinity"	},
-[4241] = { 2,	TM,		SEN(printargs), "o32:io_setup"		},
-[4242] = { 1,	TM,		SEN(printargs), "o32:io_destroy"		},
-[4243] = { 5,	0,		SEN(printargs), "o32:io_getevents"		},
-[4244] = { 3,	0,		SEN(printargs), "o32:io_submit"		},
-[4245] = { 3,	0,		SEN(printargs), "o32:io_cancel"		},
-[4246] = { 1,	TP|SE,		SEN(printargs), "o32:exit_group"		},
-[4247] = { 4,	0,		SEN(printargs), "o32:lookup_dcookie"	},
-[4248] = { 1,	TD,		SEN(printargs), "o32:epoll_create"		},
-[4249] = { 4,	TD,		SEN(printargs), "o32:epoll_ctl"		},
-[4250] = { 4,	TD,		SEN(printargs), "o32:epoll_wait"		},
-[4251] = { 5,	TM|SI,		SEN(printargs), "o32:remap_file_pages"	},
-[4252] = { 1,	0,		SEN(printargs), "o32:set_tid_address"	},
-[4253] = { 0,	0,		SEN(printargs), "o32:restart_syscall"	},
-[4254] = { 7,	TD,		SEN(printargs), "o32:fadvise64"		},
-[4255] = { 3,	TF|TSF|TSFA,	SEN(printargs), "o32:statfs64"		},
-[4256] = { 3,	TD|TFSF|TSFA,	SEN(printargs), "o32:fstatfs64"		},
-[4257] = { 3,	0,		SEN(printargs), "o32:timer_create"		},
-[4258] = { 4,	0,		SEN(printargs), "o32:timer_settime"		},
-[4259] = { 2,	0,		SEN(printargs), "o32:timer_gettime"		},
-[4260] = { 1,	0,		SEN(printargs), "o32:timer_getoverrun"	},
-[4261] = { 1,	0,		SEN(printargs), "o32:timer_delete"		},
-[4262] = { 2,	0,		SEN(printargs), "o32:clock_settime"		},
-[4263] = { 2,	0,		SEN(printargs), "o32:clock_gettime"		},
-[4264] = { 2,	0,		SEN(printargs), "o32:clock_getres"		},
-[4265] = { 4,	0,		SEN(printargs), "o32:clock_nanosleep"	},
-[4266] = { 3,	TS,		SEN(printargs), "o32:tgkill"		},
-[4267] = { 2,	TF,		SEN(printargs), "o32:utimes"		},
-[4268] = { 6,	TM,		SEN(printargs), "o32:mbind"			},
-[4269] = { 5,	TM,		SEN(printargs), "o32:get_mempolicy"		},
-[4270] = { 3,	TM,		SEN(printargs), "o32:set_mempolicy"		},
-[4271] = { 4,	0,		SEN(printargs), "o32:mq_open"		},
-[4272] = { 1,	0,		SEN(printargs), "o32:mq_unlink"		},
-[4273] = { 5,	0,		SEN(printargs), "o32:mq_timedsend"		},
-[4274] = { 5,	0,		SEN(printargs), "o32:mq_timedreceive"	},
-[4275] = { 2,	0,		SEN(printargs), "o32:mq_notify"		},
-[4276] = { 3,	0,		SEN(printargs), "o32:mq_getsetattr"		},
-[4277] = { 5,	0,		SEN(printargs), "o32:vserver"		},
-[4278] = { 5,	TP,		SEN(printargs), "o32:waitid"		},
-[4279] = { },
-[4280] = { 5,	0,		SEN(printargs), "o32:add_key"		},
-[4281] = { 4,	0,		SEN(printargs), "o32:request_key"		},
-[4282] = { 5,	0,		SEN(printargs), "o32:keyctl"		},
-[4283] = { 1,	0,		SEN(printargs), "o32:set_thread_area"	},
-[4284] = { 0,	TD,		SEN(printargs), "o32:inotify_init"		},
-[4285] = { 3,	TD,		SEN(printargs), "o32:inotify_add_watch"	},
-[4286] = { 2,	TD,		SEN(printargs), "o32:inotify_rm_watch"	},
-[4287] = { 4,	TM,		SEN(printargs), "o32:migrate_pages"		},
-[4288] = { 4,	TD|TF,		SEN(printargs), "o32:openat"		},
-[4289] = { 3,	TD|TF,		SEN(printargs), "o32:mkdirat"		},
-[4290] = { 4,	TD|TF,		SEN(printargs), "o32:mknodat"		},
-[4291] = { 5,	TD|TF,		SEN(printargs), "o32:fchownat"		},
-[4292] = { 3,	TD|TF,		SEN(printargs), "o32:futimesat"		},
-[4293] = { 4,	TD|TF|TFST|TSTA,SEN(printargs), "o32:fstatat64"		},
-[4294] = { 3,	TD|TF,		SEN(printargs), "o32:unlinkat"		},
-[4295] = { 4,	TD|TF,		SEN(printargs), "o32:renameat"		},
-[4296] = { 5,	TD|TF,		SEN(printargs), "o32:linkat"		},
-[4297] = { 3,	TD|TF,		SEN(printargs), "o32:symlinkat"		},
-[4298] = { 4,	TD|TF,		SEN(printargs), "o32:readlinkat"		},
-[4299] = { 3,	TD|TF,		SEN(printargs), "o32:fchmodat"		},
-[4300] = { 3,	TD|TF,		SEN(printargs), "o32:faccessat"		},
-[4301] = { 6,	TD,		SEN(printargs), "o32:pselect6"		},
-[4302] = { 5,	TD,		SEN(printargs), "o32:ppoll"			},
-[4303] = { 1,	TP,		SEN(printargs), "o32:unshare"		},
-[4304] = { 6,	TD,		SEN(printargs), "o32:splice"		},
-[4305] = { 7,	TD,		SEN(printargs), "o32:sync_file_range"	},
-[4306] = { 4,	TD,		SEN(printargs), "o32:tee"			},
-[4307] = { 4,	TD,		SEN(printargs), "o32:vmsplice"		},
-[4308] = { 6,	TM,		SEN(printargs), "o32:move_pages"		},
-[4309] = { 2,	0,		SEN(printargs), "o32:set_robust_list"	},
-[4310] = { 3,	0,		SEN(printargs), "o32:get_robust_list"	},
-[4311] = { 4,	0,		SEN(printargs), "o32:kexec_load"		},
-[4312] = { 3,	0,		SEN(printargs), "o32:getcpu"		},
-[4313] = { 6,	TD,		SEN(printargs), "o32:epoll_pwait"		},
-[4314] = { 3,	0,		SEN(printargs), "o32:ioprio_set"		},
-[4315] = { 2,	0,		SEN(printargs), "o32:ioprio_get"		},
-[4316] = { 4,	TD|TF,		SEN(printargs), "o32:utimensat"		},
-[4317] = { 3,	TD|TS,		SEN(printargs), "o32:signalfd"		},
-[4318] = { 4,	TD,		SEN(printargs), "o32:timerfd"		},
-[4319] = { 1,	TD,		SEN(printargs), "o32:eventfd"		},
-[4320] = { 6,	TD,		SEN(printargs), "o32:fallocate"		},
-[4321] = { 2,	TD,		SEN(printargs), "o32:timerfd_create"	},
-[4322] = { 2,	TD,		SEN(printargs), "o32:timerfd_gettime"	},
-[4323] = { 4,	TD,		SEN(printargs), "o32:timerfd_settime"	},
-[4324] = { 4,	TD|TS,		SEN(printargs), "o32:signalfd4"		},
-[4325] = { 2,	TD,		SEN(printargs), "o32:eventfd2"		},
-[4326] = { 1,	TD,		SEN(printargs), "o32:epoll_create1"		},
-[4327] = { 3,	TD,		SEN(printargs), "o32:dup3"			},
-[4328] = { 2,	TD,		SEN(printargs), "o32:pipe2"			},
-[4329] = { 1,	TD,		SEN(printargs), "o32:inotify_init1"		},
-[4330] = { 5,	TD,		SEN(printargs), "o32:preadv"		},
-[4331] = { 5,	TD,		SEN(printargs), "o32:pwritev"		},
-[4332] = { 4,	TP|TS,		SEN(printargs), "o32:rt_tgsigqueueinfo"	},
-[4333] = { 5,	TD,		SEN(printargs), "o32:perf_event_open"	},
-[4334] = { 4,	TN,		SEN(printargs), "o32:accept4"		},
-[4335] = { 5,	TN,		SEN(printargs), "o32:recvmmsg"		},
-[4336] = { 2,	TD,		SEN(printargs), "o32:fanotify_init"		},
-[4337] = { 6,	TD|TF,		SEN(printargs), "o32:fanotify_mark"		},
-[4338] = { 4,	0,		SEN(printargs), "o32:prlimit64"		},
-[4339] = { 5,	TD|TF,		SEN(printargs), "o32:name_to_handle_at"	},
-[4340] = { 3,	TD,		SEN(printargs), "o32:open_by_handle_at"	},
-[4341] = { 2,	0,		SEN(printargs), "o32:clock_adjtime"		},
-[4342] = { 1,	TD,		SEN(printargs), "o32:syncfs"		},
-[4343] = { 4,	TN,		SEN(printargs), "o32:sendmmsg"		},
-[4344] = { 2,	TD,		SEN(printargs), "o32:setns"			},
-[4345] = { 6,	0,		SEN(printargs), "o32:process_vm_readv"	},
-[4346] = { 6,	0,		SEN(printargs), "o32:process_vm_writev"	},
-[4347] = { 5,	0,		SEN(printargs), "o32:kcmp"			},
-[4348] = { 3,	TD,		SEN(printargs), "o32:finit_module"		},
-[4349] = { 3,	0,		SEN(printargs), "o32:sched_setattr"		},
-[4350] = { 4,	0,		SEN(printargs), "o32:sched_getattr"		},
-[4351] = { 5,	TD|TF,		SEN(printargs), "o32:renameat2"		},
-[4352] = { 3,	0,		SEN(printargs), "o32:seccomp"		},
-[4353] = { 3,	0,		SEN(printargs), "o32:getrandom"		},
-[4354] = { 2,	TD,		SEN(printargs), "o32:memfd_create"		},
-[4355] = { 3,	TD,		SEN(printargs), "o32:bpf"			},
-[4356] = { 5,	TD|TF|TP|SE|SI,	SEN(printargs), "o32:execveat"		},
-[4357] = { 1,	TD,		SEN(printargs), "o32:userfaultfd"		},
-[4358] = { 2,	0,		SEN(printargs), "o32:membarrier"		},
-[4359] = { 3,	TM,		SEN(printargs), "o32:mlock2"		},
-[4360] = { 6,	TD,		SEN(printargs), "o32:copy_file_range"	},
-[4361] = { 6,	TD,		SEN(printargs), "o32:preadv2"		},
-[4362] = { 6,	TD,		SEN(printargs), "o32:pwritev2"		},
-[4363] = { 4,	TM|SI,		SEN(printargs), "o32:pkey_mprotect"		},
-[4364] = { 2,	0,		SEN(printargs), "o32:pkey_alloc"		},
-[4365] = { 1,	0,		SEN(printargs), "o32:pkey_free"		},
-[4366] = { 5,	TD|TF|TSTA,	SEN(printargs), "o32:statx"			},
diff --git a/linux/netlink_diag.h b/linux/netlink_diag.h
index a52507c..88dde22 100644
--- a/linux/netlink_diag.h
+++ b/linux/netlink_diag.h
@@ -23,7 +23,33 @@
 	uint32_t ndiag_cookie[2];
 };
 
-#define NDIAG_SHOW_MEMINFO           0x00000001
-#define NDIAG_PROTO_ALL              ((uint8_t) ~0)
+struct netlink_diag_ring {
+	uint32_t ndr_block_size;
+	uint32_t ndr_block_nr;
+	uint32_t ndr_frame_size;
+	uint32_t ndr_frame_nr;
+};
+
+enum {
+	NETLINK_DIAG_MEMINFO,
+	NETLINK_DIAG_GROUPS,
+	NETLINK_DIAG_RX_RING,
+	NETLINK_DIAG_TX_RING,
+	NETLINK_DIAG_FLAGS,
+};
+
+#define NDIAG_SHOW_MEMINFO		0x00000001
+#define NDIAG_SHOW_GROUPS		0x00000002
+#define NDIAG_SHOW_RING_CFG		0x00000004 /* deprecated since 4.6 */
+#define NDIAG_SHOW_FLAGS		0x00000008
+#define NDIAG_PROTO_ALL			((uint8_t) ~0)
+
+/* flags */
+#define NDIAG_FLAG_CB_RUNNING		0x00000001
+#define NDIAG_FLAG_PKTINFO		0x00000002
+#define NDIAG_FLAG_BROADCAST_ERROR	0x00000004
+#define NDIAG_FLAG_NO_ENOBUFS		0x00000008
+#define NDIAG_FLAG_LISTEN_ALL_NSID	0x00000010
+#define NDIAG_FLAG_CAP_ACK		0x00000020
 
 #endif /* !STRACE_LINUX_NETLINK_DIAG_H */
diff --git a/linux/nios2/arch_regs.c b/linux/nios2/arch_regs.c
index 8a668bc..c18a3aa 100644
--- a/linux/nios2/arch_regs.c
+++ b/linux/nios2/arch_regs.c
@@ -1,4 +1,4 @@
 static struct user_pt_regs nios2_regs;
-unsigned long *const nios2_sp_ptr = &nios2_regs.sp;
+unsigned int *const nios2_sp_ptr = &nios2_regs.regs[PTR_SP];
 # define ARCH_REGS_FOR_GETREGSET nios2_regs
 #define ARCH_PC_REG nios2_regs.regs[PTR_EA]
diff --git a/linux/nios2/arch_regs.h b/linux/nios2/arch_regs.h
index 7f344b5..c4230ed 100644
--- a/linux/nios2/arch_regs.h
+++ b/linux/nios2/arch_regs.h
@@ -1 +1 @@
-extern unsigned long *const nios2_sp_ptr;
+extern unsigned int *const nios2_sp_ptr;
diff --git a/linux/packet_diag.h b/linux/packet_diag.h
new file mode 100644
index 0000000..3e8120b
--- /dev/null
+++ b/linux/packet_diag.h
@@ -0,0 +1,40 @@
+#ifndef STRACE_LINUX_PACKET_DIAG_H
+#define STRACE_LINUX_PACKET_DIAG_H
+
+struct packet_diag_req {
+	uint8_t sdiag_family;
+	uint8_t sdiag_protocol;
+	uint16_t pad;
+	uint32_t pdiag_ino;
+	uint32_t pdiag_show;
+	uint32_t pdiag_cookie[2];
+};
+
+#define PACKET_SHOW_INFO	0x00000001
+#define PACKET_SHOW_MCLIST	0x00000002
+#define PACKET_SHOW_RING_CFG	0x00000004
+#define PACKET_SHOW_FANOUT	0x00000008
+#define PACKET_SHOW_MEMINFO	0x00000010
+#define PACKET_SHOW_FILTER	0x00000020
+
+struct packet_diag_msg {
+	uint8_t pdiag_family;
+	uint8_t pdiag_type;
+	uint16_t pdiag_num;
+
+	uint32_t pdiag_ino;
+	uint32_t pdiag_cookie[2];
+};
+
+enum {
+	PACKET_DIAG_INFO,
+	PACKET_DIAG_MCLIST,
+	PACKET_DIAG_RX_RING,
+	PACKET_DIAG_TX_RING,
+	PACKET_DIAG_FANOUT,
+	PACKET_DIAG_UID,
+	PACKET_DIAG_MEMINFO,
+	PACKET_DIAG_FILTER,
+};
+
+#endif /* !STRACE_LINUX_PACKET_DIAG_H */
diff --git a/linux/personality.h b/linux/personality.h
index 9971703..09b35c6 100644
--- a/linux/personality.h
+++ b/linux/personality.h
@@ -8,8 +8,8 @@
  * These occupy the top three bytes.
  */
 enum {
-	UNAME26	=               0x0020000,
-	ADDR_NO_RANDOMIZE = 	0x0040000,	/* disable randomization of VA space */
+	UNAME26 =		0x0020000,
+	ADDR_NO_RANDOMIZE =	0x0040000,	/* disable randomization of VA space */
 	FDPIC_FUNCPTRS =	0x0080000,	/* userspace function ptrs point to descriptors
 						 * (signal handling)
 						 */
@@ -19,8 +19,8 @@
 	ADDR_LIMIT_32BIT =	0x0800000,
 	SHORT_INODE =		0x1000000,
 	WHOLE_SECONDS =		0x2000000,
-	STICKY_TIMEOUTS	=	0x4000000,
-	ADDR_LIMIT_3GB = 	0x8000000,
+	STICKY_TIMEOUTS =	0x4000000,
+	ADDR_LIMIT_3GB =	0x8000000,
 };
 
 /*
diff --git a/linux/ptp_clock.h b/linux/ptp_clock.h
index 2f92eb6..248f3ce 100644
--- a/linux/ptp_clock.h
+++ b/linux/ptp_clock.h
@@ -1,7 +1,7 @@
 /*
  * PTP 1588 clock support - user space interface
  *
- * Copyright (C) 2010 OMICRON electronics GmbH
+ * Copyright (c) 2010 OMICRON electronics GmbH
  * Copyright (c) 2010-2017 The strace developers.
  *
  *  This program is free software; you can redistribute it and/or modify
@@ -90,7 +90,7 @@
 #define PTP_SYS_OFFSET     _IOW(PTP_CLK_MAGIC, 5, struct ptp_sys_offset)
 
 struct ptp_extts_event {
-	struct ptp_clock_time t; /* Time event occured. */
+	struct ptp_clock_time t; /* Time event occurred. */
 	unsigned int index;      /* Which channel produced the event. */
 	unsigned int flags;      /* Reserved for future use. */
 	unsigned int rsv[2];     /* Reserved for future use. */
diff --git a/linux/sh64/arch_regs.h b/linux/sh64/arch_regs.h
index 7f64b49..670cdb6 100644
--- a/linux/sh64/arch_regs.h
+++ b/linux/sh64/arch_regs.h
@@ -1,15 +1,15 @@
 /* SH64 Linux - this code assumes the following kernel API for system calls:
-        PC           Offset 0
-        System Call  Offset 16 (actually, (syscall no.) | (0x1n << 16),
-                     where n = no. of parameters.
-        Other regs   Offset 24+
+	PC           Offset 0
+	System Call  Offset 16 (actually, (syscall no.) | (0x1n << 16),
+		     where n = no. of parameters.
+	Other regs   Offset 24+
 
-        On entry:    R2-7 = parameters 1-6 (as many as necessary)
-        On return:   R9   = result.
+	On entry:    R2-7 = parameters 1-6 (as many as necessary)
+	On return:   R9   = result.
 */
 
 /* Offset for peeks of registers */
-#define REG_OFFSET         (24)
-#define REG_GENERAL(x)     (8*(x)+REG_OFFSET)
-#define REG_PC             (0*8)
-#define REG_SYSCALL        (2*8)
+#define REG_OFFSET	(24)
+#define REG_GENERAL(x)	(8*(x)+REG_OFFSET)
+#define REG_PC		(0*8)
+#define REG_SYSCALL	(2*8)
diff --git a/linux/smc_diag.h b/linux/smc_diag.h
new file mode 100644
index 0000000..aea7d32
--- /dev/null
+++ b/linux/smc_diag.h
@@ -0,0 +1,33 @@
+#ifndef STRACE_LINUX_SMC_DIAG_H
+#define STRACE_LINUX_SMC_DIAG_H
+
+#include <linux/inet_diag.h>
+
+/* Request structure */
+struct smc_diag_req {
+	uint8_t diag_family;
+	uint8_t pad[2];
+	uint8_t diag_ext;		/* Query extended information */
+	struct inet_diag_sockid	id;
+};
+
+struct smc_diag_msg {
+	uint8_t diag_family;
+	uint8_t diag_state;
+	uint8_t diag_fallback;
+	uint8_t diag_shutdown;
+	struct inet_diag_sockid id;
+
+	uint32_t diag_uid;
+	uint64_t diag_inode;
+};
+
+/* Extensions */
+enum {
+	SMC_DIAG_NONE,
+	SMC_DIAG_CONNINFO,
+	SMC_DIAG_LGRINFO,
+	SMC_DIAG_SHUTDOWN,
+};
+
+#endif /* !STRACE_LINUX_SMC_DIAG_H */
diff --git a/linux/sock_diag.h b/linux/sock_diag.h
index ba0c114..f69c385 100644
--- a/linux/sock_diag.h
+++ b/linux/sock_diag.h
@@ -2,6 +2,9 @@
 #define STRACE_LINUX_SOCK_DIAG_H
 
 #define SOCK_DIAG_BY_FAMILY 20
+#define SOCK_DESTROY 21
+
+#define SK_MEMINFO_VARS		9
 
 struct sock_diag_req {
 	uint8_t	sdiag_family;
diff --git a/linux/tile/arch_sigreturn.c b/linux/tile/arch_sigreturn.c
index 1c687db..7042cfd 100644
--- a/linux/tile/arch_sigreturn.c
+++ b/linux/tile/arch_sigreturn.c
@@ -4,7 +4,7 @@
 	/* offset of ucontext in the kernel's sigframe structure */
 #define SIGFRAME_UC_OFFSET C_ABI_SAVE_AREA_SIZE + sizeof(siginfo_t)
 	const unsigned long addr = tile_regs.sp + SIGFRAME_UC_OFFSET +
-				   offsetof(struct ucontext, uc_sigmask);
+				   offsetof(ucontext_t, uc_sigmask);
 
 	tprints("{mask=");
 	print_sigset_addr(tcp, addr);
diff --git a/linux/ubi-user.h b/linux/ubi-user.h
index 7bae56e..0f5c775 100644
--- a/linux/ubi-user.h
+++ b/linux/ubi-user.h
@@ -1,5 +1,5 @@
 /*
- * Copyright © International Business Machines Corp., 2006
+ * Copyright (c) International Business Machines Corp., 2006
  * Copyright (c) 2006-2017 The strace developers.
  *
  * This program is free software; you can redistribute it and/or modify
diff --git a/linux/unix_diag.h b/linux/unix_diag.h
index 0c3da5b..f1a7fc0 100644
--- a/linux/unix_diag.h
+++ b/linux/unix_diag.h
@@ -12,7 +12,11 @@
 };
 
 #define UDIAG_SHOW_NAME		0x01
+#define UDIAG_SHOW_VFS		0x02
 #define UDIAG_SHOW_PEER		0x04
+#define UDIAG_SHOW_ICONS	0x08
+#define UDIAG_SHOW_RQLEN	0x10
+#define UDIAG_SHOW_MEMINFO	0x20
 
 struct unix_diag_msg {
 	uint8_t	 udiag_family;
@@ -23,7 +27,24 @@
 	uint32_t udiag_cookie[2];
 };
 
-#define UNIX_DIAG_NAME 0
-#define UNIX_DIAG_PEER 2
+enum {
+	UNIX_DIAG_NAME,
+	UNIX_DIAG_VFS,
+	UNIX_DIAG_PEER,
+	UNIX_DIAG_ICONS,
+	UNIX_DIAG_RQLEN,
+	UNIX_DIAG_MEMINFO,
+	UNIX_DIAG_SHUTDOWN,
+};
+
+struct unix_diag_vfs {
+	uint32_t udiag_vfs_ino;
+	uint32_t udiag_vfs_dev;
+};
+
+struct unix_diag_rqlen {
+	uint32_t udiag_rqueue;
+	uint32_t udiag_wqueue;
+};
 
 #endif /* !STRACE_LINUX_UNIX_DIAG_H */
diff --git a/linux/x32/ioctls_inc0.h b/linux/x32/ioctls_inc0.h
index 37d7076..9bdcb8b 100644
--- a/linux/x32/ioctls_inc0.h
+++ b/linux/x32/ioctls_inc0.h
@@ -186,7 +186,7 @@
 { "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_CPU_PREP", _IOC_WRITE, 0x6444, 0x18 },
 { "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_INFO", _IOC_READ|_IOC_WRITE, 0x6443, 0x10 },
 { "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_NEW", _IOC_READ|_IOC_WRITE, 0x6442, 0x10 },
-{ "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_SUBMIT", _IOC_READ|_IOC_WRITE, 0x6446, 0x30 },
+{ "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_SUBMIT", _IOC_READ|_IOC_WRITE, 0x6446, 0x38 },
 { "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_USERPTR", _IOC_READ|_IOC_WRITE, 0x6448, 0x18 },
 { "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GEM_WAIT", _IOC_WRITE, 0x6449, 0x20 },
 { "drm/etnaviv_drm.h", "DRM_IOCTL_ETNAVIV_GET_PARAM", _IOC_READ|_IOC_WRITE, 0x6440, 0x10 },
@@ -233,6 +233,7 @@
 { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_ENTERVT", _IOC_NONE, 0x6459, 0x00 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_EXECBUFFER", _IOC_WRITE, 0x6454, 0x28 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_EXECBUFFER2", _IOC_WRITE, 0x6469, 0x40 },
+{ "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_EXECBUFFER2_WR", _IOC_READ|_IOC_WRITE, 0x6469, 0x40 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_GET_APERTURE", _IOC_READ, 0x6463, 0x10 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_GET_CACHING", _IOC_READ|_IOC_WRITE, 0x6470, 0x08 },
 { "drm/i915_drm.h", "DRM_IOCTL_I915_GEM_GET_TILING", _IOC_READ|_IOC_WRITE, 0x6462, 0x10 },
@@ -487,6 +488,8 @@
 { "linux/apm_bios.h", "APM_IOC_SUSPEND", _IOC_NONE, 0x4102, 0x00 },
 { "linux/arcfb.h", "FBIO_GETCONTROL2", _IOC_READ, 0x4689, 0x04 },
 { "linux/arcfb.h", "FBIO_WAITEVENT", _IOC_NONE, 0x4688, 0x00 },
+{ "linux/aspeed-lpc-ctrl.h", "ASPEED_LPC_CTRL_IOCTL_GET_SIZE", _IOC_READ|_IOC_WRITE, 0xb200, 0x10 },
+{ "linux/aspeed-lpc-ctrl.h", "ASPEED_LPC_CTRL_IOCTL_MAP", _IOC_WRITE, 0xb201, 0x10 },
 { "linux/atm_eni.h", "ENI_MEMDUMP", _IOC_WRITE, 0x6160, 0x0c },
 { "linux/atm_eni.h", "ENI_SETMULT", _IOC_WRITE, 0x6167, 0x0c },
 { "linux/atm_he.h", "HE_GET_REG", _IOC_WRITE, 0x6160, 0x0c },
@@ -974,6 +977,7 @@
 { "linux/fsl_hypervisor.h", "FSL_HV_IOCTL_PARTITION_START", _IOC_READ|_IOC_WRITE, 0xaf03, 0x10 },
 { "linux/fsl_hypervisor.h", "FSL_HV_IOCTL_PARTITION_STOP", _IOC_READ|_IOC_WRITE, 0xaf04, 0x08 },
 { "linux/fsl_hypervisor.h", "FSL_HV_IOCTL_SETPROP", _IOC_READ|_IOC_WRITE, 0xaf08, 0x28 },
+{ "linux/fsmap.h", "FS_IOC_GETFSMAP", _IOC_READ|_IOC_WRITE, 0x583b, 0xc0 },
 { "linux/fuse.h", "FUSE_DEV_IOC_CLONE", _IOC_READ, 0xe500, 0x04 },
 { "linux/genwqe/genwqe_card.h", "GENWQE_EXECUTE_DDCB", _IOC_READ|_IOC_WRITE, 0xa532, 0xe8 },
 { "linux/genwqe/genwqe_card.h", "GENWQE_EXECUTE_RAW_DDCB", _IOC_READ|_IOC_WRITE, 0xa533, 0xe8 },
@@ -1506,6 +1510,12 @@
 { "linux/omapfb.h", "OMAPFB_VSYNC", _IOC_NONE, 0x4f26, 0x00 },
 { "linux/omapfb.h", "OMAPFB_WAITFORGO", _IOC_NONE, 0x4f3c, 0x00 },
 { "linux/omapfb.h", "OMAPFB_WAITFORVSYNC", _IOC_NONE, 0x4f39, 0x00 },
+{ "linux/pcitest.h", "PCITEST_BAR", _IOC_NONE, 0x5001, 0x00 },
+{ "linux/pcitest.h", "PCITEST_COPY", _IOC_WRITE, 0x5006, 0x04 },
+{ "linux/pcitest.h", "PCITEST_LEGACY_IRQ", _IOC_NONE, 0x5002, 0x00 },
+{ "linux/pcitest.h", "PCITEST_MSI", _IOC_WRITE, 0x5003, 0x04 },
+{ "linux/pcitest.h", "PCITEST_READ", _IOC_WRITE, 0x5005, 0x04 },
+{ "linux/pcitest.h", "PCITEST_WRITE", _IOC_WRITE, 0x5004, 0x04 },
 { "linux/perf_event.h", "PERF_EVENT_IOC_DISABLE", _IOC_NONE, 0x2401, 0x00 },
 { "linux/perf_event.h", "PERF_EVENT_IOC_ENABLE", _IOC_NONE, 0x2400, 0x00 },
 { "linux/perf_event.h", "PERF_EVENT_IOC_ID", _IOC_READ, 0x2407, 0x04 },
@@ -1940,6 +1950,12 @@
 { "linux/suspend_ioctls.h", "SNAPSHOT_S2RAM", _IOC_NONE, 0x330b, 0x00 },
 { "linux/suspend_ioctls.h", "SNAPSHOT_SET_SWAP_AREA", _IOC_WRITE, 0x330d, 0x0c },
 { "linux/suspend_ioctls.h", "SNAPSHOT_UNFREEZE", _IOC_NONE, 0x3302, 0x00 },
+{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_EVENT_CTL", _IOC_READ|_IOC_WRITE, 0x5743, 0x28 },
+{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_EVENT_SUMMARY", _IOC_READ, 0x5742, 0x198 },
+{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_FLASH_INFO", _IOC_READ, 0x5740, 0x10 },
+{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_FLASH_PART_INFO", _IOC_READ|_IOC_WRITE, 0x5741, 0x10 },
+{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_PFF_TO_PORT", _IOC_READ|_IOC_WRITE, 0x5744, 0x0c },
+{ "linux/switchtec_ioctl.h", "SWITCHTEC_IOCTL_PORT_TO_PFF", _IOC_READ|_IOC_WRITE, 0x5745, 0x0c },
 { "linux/sync_file.h", "SYNC_IOC_FILE_INFO", _IOC_READ|_IOC_WRITE, 0x3e04, 0x38 },
 { "linux/sync_file.h", "SYNC_IOC_MERGE", _IOC_READ|_IOC_WRITE, 0x3e03, 0x30 },
 { "linux/synclink.h", "MGSL_IOCCLRMODCOUNT", _IOC_NONE, 0x6d0f, 0x00 },
@@ -1962,6 +1978,14 @@
 { "linux/synclink.h", "MGSL_IOCTXENABLE", _IOC_NONE, 0x6d04, 0x00 },
 { "linux/synclink.h", "MGSL_IOCWAITEVENT", _IOC_READ|_IOC_WRITE, 0x6d08, 0x04 },
 { "linux/synclink.h", "MGSL_IOCWAITGPIO", _IOC_READ|_IOC_WRITE, 0x6d12, 0x10 },
+{ "linux/tee.h", "TEE_IOC_CANCEL", _IOC_READ, 0xa404, 0x08 },
+{ "linux/tee.h", "TEE_IOC_CLOSE_SESSION", _IOC_READ, 0xa405, 0x04 },
+{ "linux/tee.h", "TEE_IOC_INVOKE", _IOC_READ, 0xa403, 0x10 },
+{ "linux/tee.h", "TEE_IOC_OPEN_SESSION", _IOC_READ, 0xa402, 0x10 },
+{ "linux/tee.h", "TEE_IOC_SHM_ALLOC", _IOC_READ|_IOC_WRITE, 0xa401, 0x10 },
+{ "linux/tee.h", "TEE_IOC_SUPPL_RECV", _IOC_READ, 0xa406, 0x10 },
+{ "linux/tee.h", "TEE_IOC_SUPPL_SEND", _IOC_READ, 0xa407, 0x10 },
+{ "linux/tee.h", "TEE_IOC_VERSION", _IOC_READ, 0xa400, 0x0c },
 { "linux/telephony.h", "OLD_PHONE_RING_START", _IOC_NONE, 0x7187, 0x00 },
 { "linux/telephony.h", "PHONE_BUSY", _IOC_NONE, 0x71a1, 0x00 },
 { "linux/telephony.h", "PHONE_CAPABILITIES", _IOC_NONE, 0x7180, 0x00 },
@@ -2690,17 +2714,8 @@
 { "staging/android/ashmem.h", "ASHMEM_SET_PROT_MASK", _IOC_WRITE, 0x7705, 0x04 },
 { "staging/android/ashmem.h", "ASHMEM_SET_SIZE", _IOC_WRITE, 0x7703, 0x04 },
 { "staging/android/ashmem.h", "ASHMEM_UNPIN", _IOC_WRITE, 0x7708, 0x08 },
-{ "staging/android/ion.h", "ION_IOC_ALLOC", _IOC_READ|_IOC_WRITE, 0x4900, 0x14 },
-{ "staging/android/ion.h", "ION_IOC_CUSTOM", _IOC_READ|_IOC_WRITE, 0x4906, 0x08 },
-{ "staging/android/ion.h", "ION_IOC_FREE", _IOC_READ|_IOC_WRITE, 0x4901, 0x04 },
+{ "staging/android/ion.h", "ION_IOC_ALLOC", _IOC_READ|_IOC_WRITE, 0x4900, 0x18 },
 { "staging/android/ion.h", "ION_IOC_HEAP_QUERY", _IOC_READ|_IOC_WRITE, 0x4908, 0x18 },
-{ "staging/android/ion.h", "ION_IOC_IMPORT", _IOC_READ|_IOC_WRITE, 0x4905, 0x08 },
-{ "staging/android/ion.h", "ION_IOC_MAP", _IOC_READ|_IOC_WRITE, 0x4902, 0x08 },
-{ "staging/android/ion.h", "ION_IOC_SHARE", _IOC_READ|_IOC_WRITE, 0x4904, 0x08 },
-{ "staging/android/ion.h", "ION_IOC_SYNC", _IOC_READ|_IOC_WRITE, 0x4907, 0x08 },
-{ "staging/android/ion_test.h", "ION_IOC_TEST_DMA_MAPPING", _IOC_WRITE, 0x49f1, 0x20 },
-{ "staging/android/ion_test.h", "ION_IOC_TEST_KERNEL_MAPPING", _IOC_WRITE, 0x49f2, 0x20 },
-{ "staging/android/ion_test.h", "ION_IOC_TEST_SET_FD", _IOC_NONE, 0x49f0, 0x00 },
 { "video/da8xx-fb.h", "FBIGET_BRIGHTNESS", _IOC_READ, 0x4603, 0x04 },
 { "video/da8xx-fb.h", "FBIGET_COLOR", _IOC_READ, 0x4605, 0x04 },
 { "video/da8xx-fb.h", "FBIOGET_CONTRAST", _IOC_READ, 0x4601, 0x04 },
diff --git a/linux/x86_64/get_scno.c b/linux/x86_64/get_scno.c
index 2354fb2..687f843 100644
--- a/linux/x86_64/get_scno.c
+++ b/linux/x86_64/get_scno.c
@@ -57,7 +57,7 @@
 	 * solely by looking at __X32_SYSCALL_BIT:
 	 * arch/x86/include/asm/compat.h::is_x32_task():
 	 * if (task_pt_regs(current)->orig_ax & __X32_SYSCALL_BIT)
-	 *         return true;
+	 *	return true;
 	 */
 	if (x86_io.iov_len == sizeof(i386_regs)) {
 		scno = i386_regs.orig_eax;
@@ -93,7 +93,9 @@
 	 */
 	scno = x86_64_regs.orig_rax;
 	switch (x86_64_regs.cs) {
-		case 0x23: currpers = 1; break;
+		case 0x23:
+			currpers = 1;
+			break;
 		case 0x33:
 			if (x86_64_regs.ds == 0x2b) {
 				currpers = 2;
@@ -123,9 +125,13 @@
 		perror_msg("ptrace_peektext failed");
 	switch (call & 0xffff) {
 		/* x86-64: syscall = 0x0f 0x05 */
-		case 0x050f: currpers = 0; break;
+		case 0x050f:
+			currpers = 0;
+			break;
 		/* i386: int 0x80 = 0xcd 0x80 */
-		case 0x80cd: currpers = 1; break;
+		case 0x80cd:
+			currpers = 1;
+			break;
 		default:
 			currpers = current_personality;
 			error_msg("Unknown syscall opcode (0x%04X) while "
diff --git a/linux/x86_64/set_error.c b/linux/x86_64/set_error.c
index 123c895..6c31bd8 100644
--- a/linux/x86_64/set_error.c
+++ b/linux/x86_64/set_error.c
@@ -10,13 +10,13 @@
 arch_set_error(struct tcb *tcp)
 {
 #ifdef HAVE_GETREGS_OLD
-	x86_64_regs.rax = - (long long) tcp->u_error;
+	x86_64_regs.rax = -(long long) tcp->u_error;
 	return upoke(tcp->pid, 8 * RAX, x86_64_regs.rax);
 #else
 	if (x86_io.iov_len == sizeof(i386_regs))
 		return i386_set_error(tcp);
 
-	x86_64_regs.rax = - (long long) tcp->u_error;
+	x86_64_regs.rax = -(long long) tcp->u_error;
 	return set_regs(tcp->pid);
 #endif
 }
diff --git a/m4/ax_code_coverage.m4 b/m4/ax_code_coverage.m4
index 93dfce3..3d417f0 100644
--- a/m4/ax_code_coverage.m4
+++ b/m4/ax_code_coverage.m4
@@ -140,7 +140,7 @@
 		])
 
 		dnl Build the code coverage flags
-		CODE_COVERAGE_CPPFLAGS="-DNDEBUG"
+		CODE_COVERAGE_CPPFLAGS="-DENABLE_COVERAGE_GCOV -DNDEBUG"
 		CODE_COVERAGE_CFLAGS="-O0 -g -fprofile-arcs -ftest-coverage"
 		CODE_COVERAGE_CXXFLAGS="-O0 -g -fprofile-arcs -ftest-coverage"
 		CODE_COVERAGE_LDFLAGS="-lgcov"
diff --git a/macros.h b/macros.h
new file mode 100644
index 0000000..2913d60
--- /dev/null
+++ b/macros.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2001-2017 The strace developers.
+ * 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_MACROS_H
+#define STRACE_MACROS_H
+
+#include "gcc_compat.h"
+
+#define ARRAY_SIZE(a_)	(sizeof(a_) / sizeof((a_)[0]) + MUST_BE_ARRAY(a_))
+
+#define STRINGIFY(...)		#__VA_ARGS__
+#define STRINGIFY_VAL(...)	STRINGIFY(__VA_ARGS__)
+
+#endif /* !STRACE_MACROS_H */
diff --git a/mem.c b/mem.c
index fb29ec1..00f5610 100644
--- a/mem.c
+++ b/mem.c
@@ -331,7 +331,7 @@
 static bool
 print_protmap_entry(struct tcb *tcp, void *elem_buf, size_t elem_size, void *data)
 {
-	tprintf("%#08x", * (unsigned int *) elem_buf);
+	tprintf("%#08x", *(unsigned int *) elem_buf);
 
 	return true;
 }
diff --git a/mpers.am b/mpers.am
new file mode 100644
index 0000000..8771776
--- /dev/null
+++ b/mpers.am
@@ -0,0 +1,2 @@
+# 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 rt_sigreturn.c rtc.c sg_io_v3.c sigaltstack.c sock.c sysinfo.c times.c ustat.c utime.c v4l2.c 
diff --git a/mpers_type.h b/mpers_type.h
index ecb1efa..64201c7 100644
--- a/mpers_type.h
+++ b/mpers_type.h
@@ -30,8 +30,9 @@
 #ifndef STRACE_MPERS_TYPE_H
 #define STRACE_MPERS_TYPE_H
 
+#include "macros.h"
+
 #ifdef IN_MPERS
-# define STRINGIFY(a) #a
 # define DEF_MPERS_TYPE(args) STRINGIFY(args.h)
 # ifdef MPERS_IS_m32
 #  define MPERS_PREFIX m32_
diff --git a/msghdr.c b/msghdr.c
index 56ba549..d263866 100644
--- a/msghdr.c
+++ b/msghdr.c
@@ -96,6 +96,27 @@
 }
 
 static void
+print_scm_timestamp(struct tcb *tcp, const void *cmsg_data,
+		    const unsigned int data_len)
+{
+	print_struct_timeval_data_size(cmsg_data, data_len);
+}
+
+static void
+print_scm_timestampns(struct tcb *tcp, const void *cmsg_data,
+		      const unsigned int data_len)
+{
+	print_struct_timespec_data_size(cmsg_data, data_len);
+}
+
+static void
+print_scm_timestamping(struct tcb *tcp, const void *cmsg_data,
+		       const unsigned int data_len)
+{
+	print_struct_timespec_array_data_size(cmsg_data, 3, data_len);
+}
+
+static void
 print_cmsg_ip_pktinfo(struct tcb *tcp, const void *cmsg_data,
 		      const unsigned int data_len)
 {
@@ -191,7 +212,10 @@
 } cmsg_socket_printers[] = {
 	[SCM_RIGHTS] = { print_scm_rights, sizeof(int) },
 	[SCM_CREDENTIALS] = { print_scm_creds, sizeof(struct ucred) },
-	[SCM_SECURITY] = { print_scm_security, 1 }
+	[SCM_SECURITY] = { print_scm_security, 1 },
+	[SCM_TIMESTAMP] = { print_scm_timestamp, 1 },
+	[SCM_TIMESTAMPNS] = { print_scm_timestampns, 1 },
+	[SCM_TIMESTAMPING] = { print_scm_timestamping, 1 }
 }, cmsg_ip_printers[] = {
 	[IP_PKTINFO] = { print_cmsg_ip_pktinfo, sizeof(struct in_pktinfo) },
 	[IP_TTL] = { print_cmsg_uint, sizeof(unsigned int) },
@@ -305,7 +329,7 @@
 
 		print_cmsg_type_data(tcp, cmsg_level, cmsg_type,
 				     (const void *) (u.ptr + cmsg_size),
-				     len > cmsg_size ? len - cmsg_size: 0);
+				     len > cmsg_size ? len - cmsg_size : 0);
 		tprints("}");
 
 		if (len < cmsg_size) {
diff --git a/native_printer_decls.h b/native_printer_decls.h
index 7698834..19badf1 100644
--- a/native_printer_decls.h
+++ b/native_printer_decls.h
@@ -19,11 +19,14 @@
 extern void tprint_msgbuf(struct tcb *const tcp, const kernel_ulong_t addr, const kernel_ulong_t count);
 extern int decode_sg_req_info(struct tcb *const tcp, const kernel_ulong_t arg);
 extern void print_sigevent(struct tcb *const tcp, const kernel_ulong_t addr);
+extern _Bool print_struct_timespec_data_size(const void *arg, const size_t size);
+extern _Bool print_struct_timespec_array_data_size(const void *arg, const unsigned int nmemb, const size_t size);
 extern void print_timespec(struct tcb *const tcp, const kernel_ulong_t addr);
 extern const char * sprint_timespec(struct tcb *const tcp, const kernel_ulong_t addr);
 extern void print_timespec_utime_pair(struct tcb *const tcp, const kernel_ulong_t addr);
 extern void print_itimerspec(struct tcb *const tcp, const kernel_ulong_t addr);
 extern void print_struct_timeval(const void *arg);
+extern _Bool print_struct_timeval_data_size(const void *arg, const size_t size);
 extern void print_timeval(struct tcb *const tcp, const kernel_ulong_t addr);
 extern void print_timeval_utimes(struct tcb *const tcp, const kernel_ulong_t addr);
 extern const char * sprint_timeval(struct tcb *const tcp, const kernel_ulong_t addr);
diff --git a/native_printer_defs.h b/native_printer_defs.h
index 6377031..ef43c93 100644
--- a/native_printer_defs.h
+++ b/native_printer_defs.h
@@ -19,11 +19,14 @@
 .tprint_msgbuf = tprint_msgbuf,
 .decode_sg_req_info = decode_sg_req_info,
 .print_sigevent = print_sigevent,
+.print_struct_timespec_data_size = print_struct_timespec_data_size,
+.print_struct_timespec_array_data_size = print_struct_timespec_array_data_size,
 .print_timespec = print_timespec,
 .sprint_timespec = sprint_timespec,
 .print_timespec_utime_pair = print_timespec_utime_pair,
 .print_itimerspec = print_itimerspec,
 .print_struct_timeval = print_struct_timeval,
+.print_struct_timeval_data_size = print_struct_timeval_data_size,
 .print_timeval = print_timeval,
 .print_timeval_utimes = print_timeval_utimes,
 .sprint_timeval = sprint_timeval,
diff --git a/net.c b/net.c
index 01ab16b..8dc47fc 100644
--- a/net.c
+++ b/net.c
@@ -56,7 +56,7 @@
 #if defined(HAVE_LINUX_IP_VS_H)
 # include <linux/ip_vs.h>
 #endif
-#include <linux/netlink.h>
+#include "netlink.h"
 #if defined(HAVE_LINUX_NETFILTER_ARP_ARP_TABLES_H)
 # include <linux/netfilter_arp/arp_tables.h>
 #endif
@@ -81,7 +81,6 @@
 #include "xlat/socketlayers.h"
 
 #include "xlat/inet_protocols.h"
-#include "xlat/netlink_protocols.h"
 
 #ifdef HAVE_BLUETOOTH_BLUETOOTH_H
 # include <bluetooth/bluetooth.h>
@@ -111,7 +110,7 @@
 
 	switch (verbose(tcp) ? getfdproto(tcp, fd) : SOCK_PROTO_UNKNOWN) {
 	case SOCK_PROTO_NETLINK:
-		decode_netlink(tcp, addr, addrlen);
+		decode_netlink(tcp, fd, addr, addrlen);
 		break;
 	default:
 		printstrn(tcp, addr, addrlen);
@@ -649,13 +648,10 @@
 	if (umove_or_printaddr(tcp, addr, &mreq))
 		return;
 
-	tprints("{imr_multiaddr=inet_addr(");
-	print_quoted_string(inet_ntoa(mreq.imr_multiaddr),
-			    16, QUOTE_0_TERMINATED);
-	tprints("), imr_interface=inet_addr(");
-	print_quoted_string(inet_ntoa(mreq.imr_interface),
-			    16, QUOTE_0_TERMINATED);
-	tprints(")}");
+	tprintf("{imr_multiaddr=inet_addr(\"%s\")",
+		inet_ntoa(mreq.imr_multiaddr));
+	tprintf(", imr_interface=inet_addr(\"%s\")}",
+		inet_ntoa(mreq.imr_interface));
 }
 #endif /* IP_ADD_MEMBERSHIP */
 
@@ -666,27 +662,20 @@
 {
 	struct ipv6_mreq mreq;
 
-	if (len < sizeof(mreq))
-		goto fail;
-
+	if (len < sizeof(mreq)) {
+		printstrn(tcp, addr, len);
+		return;
+	}
 	if (umove_or_printaddr(tcp, addr, &mreq))
 		return;
 
-	const struct in6_addr *in6 = &mreq.ipv6mr_multiaddr;
-	char address[INET6_ADDRSTRLEN];
+	tprints("{");
+	print_inet_addr(AF_INET6, &mreq.ipv6mr_multiaddr,
+			sizeof(mreq.ipv6mr_multiaddr), "ipv6mr_multiaddr");
 
-	if (!inet_ntop(AF_INET6, in6, address, sizeof(address)))
-		goto fail;
-
-	tprints("{ipv6mr_multiaddr=inet_pton(");
-	print_quoted_string(address, sizeof(address), QUOTE_0_TERMINATED);
-	tprints("), ipv6mr_interface=");
+	tprints(", ipv6mr_interface=");
 	print_ifindex(mreq.ipv6mr_interface);
 	tprints("}");
-	return;
-
-fail:
-	printstrn(tcp, addr, len);
 }
 #endif /* IPV6_ADD_MEMBERSHIP */
 
diff --git a/netlink.c b/netlink.c
index 10ca82c..f74c3a0 100644
--- a/netlink.c
+++ b/netlink.c
@@ -28,13 +28,22 @@
  */
 
 #include "defs.h"
-#include <sys/socket.h>
-#include <linux/netlink.h>
+#include "netlink.h"
+#include <linux/audit.h>
+#include <linux/rtnetlink.h>
+#include <linux/xfrm.h>
 #include "xlat/netlink_flags.h"
+#include "xlat/netlink_get_flags.h"
+#include "xlat/netlink_new_flags.h"
+#include "xlat/netlink_protocols.h"
 #include "xlat/netlink_types.h"
-
-#undef NLMSG_HDRLEN
-#define NLMSG_HDRLEN NLMSG_ALIGN(sizeof(struct nlmsghdr))
+#include "xlat/nl_audit_types.h"
+#include "xlat/nl_netfilter_msg_types.h"
+#include "xlat/nl_netfilter_subsys_ids.h"
+#include "xlat/nl_route_types.h"
+#include "xlat/nl_selinux_types.h"
+#include "xlat/nl_sock_diag_types.h"
+#include "xlat/nl_xfrm_types.h"
 
 /*
  * Fetch a struct nlmsghdr from the given address.
@@ -54,35 +63,233 @@
 	return true;
 }
 
+enum {
+	NL_FAMILY_ERROR = -1,
+	NL_FAMILY_DEFAULT = -2
+};
+
+static int
+get_fd_nl_family(struct tcb *const tcp, const int fd)
+{
+	const unsigned long inode = getfdinode(tcp, fd);
+	if (!inode)
+		return NL_FAMILY_ERROR;
+
+	const char *const details = get_sockaddr_by_inode(tcp, fd, inode);
+	if (!details)
+		return NL_FAMILY_ERROR;
+
+	const char *const nl_details = STR_STRIP_PREFIX(details, "NETLINK:[");
+	if (nl_details == details)
+		return NL_FAMILY_ERROR;
+
+	const struct xlat *xlats = netlink_protocols;
+	for (; xlats->str; ++xlats) {
+		const char *name = STR_STRIP_PREFIX(xlats->str, "NETLINK_");
+		if (!strncmp(nl_details, name, strlen(name)))
+			return xlats->val;
+	}
+
+	if (*nl_details >= '0' && *nl_details <= '9')
+		return atoi(nl_details);
+
+	return NL_FAMILY_ERROR;
+}
+
 static void
-print_nlmsghdr(struct tcb *tcp, const struct nlmsghdr *const nlmsghdr)
+decode_nlmsg_type_default(const struct xlat *const xlat,
+			  const uint16_t type,
+			  const char *const dflt)
+{
+	printxval(xlat, type, dflt);
+}
+
+static void
+decode_nlmsg_type_generic(const struct xlat *const xlat,
+			  const uint16_t type,
+			  const char *const dflt)
+{
+	printxval(genl_families_xlat(), type, dflt);
+}
+
+static void
+decode_nlmsg_type_netfilter(const struct xlat *const xlat,
+			    const uint16_t type,
+			    const char *const dflt)
+{
+	/* Reserved control nfnetlink messages first. */
+	const char *const text = xlookup(nl_netfilter_msg_types, type);
+	if (text) {
+		tprints(text);
+		return;
+	}
+
+	/*
+	 * Other netfilter message types are split
+	 * in two pieces: 8 bits subsystem and 8 bits type.
+	 */
+	const uint8_t subsys_id = (uint8_t) (type >> 8);
+	const uint8_t msg_type = (uint8_t) type;
+
+	printxval(xlat, subsys_id, dflt);
+
+	/*
+	 * The type is subsystem specific,
+	 * print it in numeric format for now.
+	 */
+	tprintf("<<8|%#x", msg_type);
+}
+
+typedef void (*nlmsg_types_decoder_t)(const struct xlat *,
+				      uint16_t type,
+				      const char *dflt);
+
+static const struct {
+	const nlmsg_types_decoder_t decoder;
+	const struct xlat *const xlat;
+	const char *const dflt;
+} nlmsg_types[] = {
+	[NETLINK_AUDIT] = { NULL, nl_audit_types, "AUDIT_???" },
+	[NETLINK_GENERIC] = {
+		decode_nlmsg_type_generic,
+		NULL,
+		"GENERIC_FAMILY_???"
+	},
+	[NETLINK_NETFILTER] = {
+		decode_nlmsg_type_netfilter,
+		nl_netfilter_subsys_ids,
+		"NFNL_SUBSYS_???"
+	},
+	[NETLINK_ROUTE] = { NULL, nl_route_types, "RTM_???" },
+	[NETLINK_SELINUX] = { NULL, nl_selinux_types, "SELNL_MSG_???" },
+	[NETLINK_SOCK_DIAG] = { NULL, nl_sock_diag_types, "SOCK_DIAG_???" },
+	[NETLINK_XFRM] = { NULL, nl_xfrm_types, "XFRM_MSG_???" }
+};
+
+/*
+ * As all valid netlink families are positive integers, use unsigned int
+ * for family here to filter out NL_FAMILY_ERROR and NL_FAMILY_DEFAULT.
+ */
+static void
+decode_nlmsg_type(const uint16_t type, const unsigned int family)
+{
+	nlmsg_types_decoder_t decoder = decode_nlmsg_type_default;
+	const struct xlat *xlat = netlink_types;
+	const char *dflt = "NLMSG_???";
+
+	if (type != NLMSG_DONE && family < ARRAY_SIZE(nlmsg_types)) {
+		if (nlmsg_types[family].decoder)
+			decoder = nlmsg_types[family].decoder;
+		if (nlmsg_types[family].xlat)
+			xlat = nlmsg_types[family].xlat;
+		if (nlmsg_types[family].dflt)
+			dflt = nlmsg_types[family].dflt;
+	}
+
+	decoder(xlat, type, dflt);
+}
+
+static void
+decode_nlmsg_flags(const uint16_t flags, const uint16_t type, const int family)
+{
+	const struct xlat *table = NULL;
+
+	if (type == NLMSG_DONE)
+		goto end;
+
+	switch (family) {
+	case NETLINK_SOCK_DIAG:
+		table = netlink_get_flags;
+		break;
+	case NETLINK_ROUTE:
+		if (type == RTM_DELACTION) {
+			table = netlink_get_flags;
+			break;
+		}
+		switch (type & 3) {
+		case  0:
+			table = netlink_new_flags;
+			break;
+		case  2:
+			table = netlink_get_flags;
+			break;
+		}
+		break;
+	case NETLINK_XFRM:
+		switch (type) {
+		case XFRM_MSG_NEWSA:
+		case XFRM_MSG_NEWPOLICY:
+		case XFRM_MSG_NEWAE:
+		case XFRM_MSG_NEWSADINFO:
+		case XFRM_MSG_NEWSPDINFO:
+			table = netlink_new_flags;
+			break;
+
+		case XFRM_MSG_GETSA:
+		case XFRM_MSG_GETPOLICY:
+		case XFRM_MSG_GETAE:
+		case XFRM_MSG_GETSADINFO:
+		case XFRM_MSG_GETSPDINFO:
+			table = netlink_get_flags;
+			break;
+		}
+		break;
+	}
+
+end:
+	printflags_ex(flags, "NLM_F_???", netlink_flags, table, NULL);
+}
+
+static int
+print_nlmsghdr(struct tcb *tcp,
+	       const int fd,
+	       int family,
+	       const struct nlmsghdr *const nlmsghdr)
 {
 	/* print the whole structure regardless of its nlmsg_len */
 
 	tprintf("{len=%u, type=", nlmsghdr->nlmsg_len);
 
-	printxval(netlink_types, nlmsghdr->nlmsg_type, "NLMSG_???");
+	const int hdr_family = (nlmsghdr->nlmsg_type < NLMSG_MIN_TYPE
+				&& nlmsghdr->nlmsg_type != NLMSG_DONE)
+			       ? NL_FAMILY_DEFAULT
+			       : (family != NL_FAMILY_DEFAULT
+				  ? family : get_fd_nl_family(tcp, fd));
+
+	decode_nlmsg_type(nlmsghdr->nlmsg_type, hdr_family);
 
 	tprints(", flags=");
-	printflags(netlink_flags, nlmsghdr->nlmsg_flags, "NLM_F_???");
+	decode_nlmsg_flags(nlmsghdr->nlmsg_flags,
+			   nlmsghdr->nlmsg_type, hdr_family);
 
 	tprintf(", seq=%u, pid=%u}", nlmsghdr->nlmsg_seq,
 		nlmsghdr->nlmsg_pid);
+
+	return family != NL_FAMILY_DEFAULT ? family : hdr_family;
 }
 
 static void
 decode_nlmsghdr_with_payload(struct tcb *const tcp,
+			     const int fd,
+			     int family,
 			     const struct nlmsghdr *const nlmsghdr,
 			     const kernel_ulong_t addr,
 			     const kernel_ulong_t len);
 
 static void
 decode_nlmsgerr(struct tcb *const tcp,
-	       kernel_ulong_t addr,
-	       kernel_ulong_t len)
+		const int fd,
+		const int family,
+		kernel_ulong_t addr,
+		kernel_ulong_t len)
 {
 	struct nlmsgerr err;
 
+	if (len < sizeof(err.error)) {
+		printstrn(tcp, addr, len);
+		return;
+	}
+
 	if (umove_or_printaddr(tcp, addr, &err.error))
 		return;
 
@@ -99,49 +306,77 @@
 	if (len) {
 		tprints(", msg=");
 		if (fetch_nlmsghdr(tcp, &err.msg, addr, len)) {
-			decode_nlmsghdr_with_payload(tcp, &err.msg, addr, len);
+			decode_nlmsghdr_with_payload(tcp, fd, family,
+						     &err.msg, addr, len);
 		}
 	}
 
 	tprints("}");
 }
 
+static const netlink_decoder_t netlink_decoders[] = {
+	[NETLINK_SOCK_DIAG] = decode_netlink_sock_diag
+};
+
 static void
 decode_payload(struct tcb *const tcp,
+	       const int fd,
+	       const int family,
 	       const struct nlmsghdr *const nlmsghdr,
 	       const kernel_ulong_t addr,
 	       const kernel_ulong_t len)
 {
-	if (nlmsghdr->nlmsg_type == NLMSG_ERROR && len >= sizeof(int)) {
-		decode_nlmsgerr(tcp, addr, len);
-	} else {
-		printstrn(tcp, addr, len);
+	if (nlmsghdr->nlmsg_type == NLMSG_ERROR) {
+		decode_nlmsgerr(tcp, fd, family, addr, len);
+		return;
 	}
+
+	if ((unsigned int) family < ARRAY_SIZE(netlink_decoders)
+	    && netlink_decoders[family]
+	    && netlink_decoders[family](tcp, nlmsghdr, addr, len)) {
+		return;
+	}
+
+	if (nlmsghdr->nlmsg_type == NLMSG_DONE && len == sizeof(int)) {
+		int num;
+
+		if (!umove_or_printaddr(tcp, addr, &num))
+			tprintf("%d", num);
+		return;
+	}
+
+	printstrn(tcp, addr, len);
 }
 
 static void
 decode_nlmsghdr_with_payload(struct tcb *const tcp,
+			     const int fd,
+			     int family,
 			     const struct nlmsghdr *const nlmsghdr,
 			     const kernel_ulong_t addr,
 			     const kernel_ulong_t len)
 {
-	tprints("{");
-
-	print_nlmsghdr(tcp, nlmsghdr);
-
-	unsigned int nlmsg_len =
+	const unsigned int nlmsg_len =
 		nlmsghdr->nlmsg_len > len ? len : nlmsghdr->nlmsg_len;
+
+	if (nlmsg_len > NLMSG_HDRLEN)
+		tprints("{");
+
+	family = print_nlmsghdr(tcp, fd, family, nlmsghdr);
+
 	if (nlmsg_len > NLMSG_HDRLEN) {
 		tprints(", ");
-		decode_payload(tcp, nlmsghdr, addr + NLMSG_HDRLEN,
-					 nlmsg_len - NLMSG_HDRLEN);
+		decode_payload(tcp, fd, family, nlmsghdr, addr + NLMSG_HDRLEN,
+						     nlmsg_len - NLMSG_HDRLEN);
+		tprints("}");
 	}
-
-	tprints("}");
 }
 
 void
-decode_netlink(struct tcb *const tcp, kernel_ulong_t addr, kernel_ulong_t len)
+decode_netlink(struct tcb *const tcp,
+	       const int fd,
+	       kernel_ulong_t addr,
+	       kernel_ulong_t len)
 {
 	struct nlmsghdr nlmsghdr;
 	bool print_array = false;
@@ -169,7 +404,8 @@
 			print_array = true;
 		}
 
-		decode_nlmsghdr_with_payload(tcp, &nlmsghdr, addr, len);
+		decode_nlmsghdr_with_payload(tcp, fd, NL_FAMILY_DEFAULT,
+					     &nlmsghdr, addr, len);
 
 		if (!next_addr)
 			break;
diff --git a/netlink.h b/netlink.h
new file mode 100644
index 0000000..5943229
--- /dev/null
+++ b/netlink.h
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@gmail.com>
+ * Copyright (c) 2017 The strace developers.
+ * 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_NETLINK_H
+#define STRACE_NETLINK_H
+
+#include <sys/socket.h>
+#include <linux/netlink.h>
+
+#ifndef NETLINK_SOCK_DIAG
+# define NETLINK_SOCK_DIAG 4
+#endif
+
+#undef NLMSG_HDRLEN
+#define NLMSG_HDRLEN ((unsigned int) NLMSG_ALIGN(sizeof(struct nlmsghdr)))
+
+#ifndef NLMSG_MIN_TYPE
+# define NLMSG_MIN_TYPE		0x10
+#endif
+
+#ifndef NLA_ALIGN
+# define NLA_ALIGN(len) (((len) + 3) & ~3)
+#endif
+
+#undef NLA_HDRLEN
+#define NLA_HDRLEN ((unsigned int) NLA_ALIGN(sizeof(struct nlattr)))
+
+#ifndef NLA_TYPE_MASK
+# define NLA_F_NESTED		(1 << 15)
+# define NLA_F_NET_BYTEORDER	(1 << 14)
+# define NLA_TYPE_MASK		~(NLA_F_NESTED | NLA_F_NET_BYTEORDER)
+#endif
+
+#endif /* !STRACE_NETLINK_H */
diff --git a/netlink_sock_diag.c b/netlink_sock_diag.c
new file mode 100644
index 0000000..3888934
--- /dev/null
+++ b/netlink_sock_diag.c
@@ -0,0 +1,885 @@
+/*
+ * Copyright (c) 2016 Fabien Siron <fabien.siron@epita.fr>
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@gmail.com>
+ * Copyright (c) 2017 The strace developers.
+ * 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 "defs.h"
+#include "netlink.h"
+#include "nlattr.h"
+#include "print_fields.h"
+
+#include <arpa/inet.h>
+#include <linux/inet_diag.h>
+#include <linux/netlink_diag.h>
+#include <linux/packet_diag.h>
+#ifdef AF_SMC
+# include <linux/smc_diag.h>
+#endif
+#include <linux/sock_diag.h>
+#include <linux/unix_diag.h>
+
+#include "xlat/inet_diag_attrs.h"
+#include "xlat/inet_diag_extended_flags.h"
+#include "xlat/inet_diag_req_attrs.h"
+
+#include "xlat/tcp_states.h"
+#include "xlat/tcp_state_flags.h"
+
+#include "xlat/netlink_diag_attrs.h"
+#include "xlat/netlink_diag_show.h"
+#include "xlat/netlink_socket_flags.h"
+#include "xlat/netlink_states.h"
+
+#include "xlat/packet_diag_attrs.h"
+#include "xlat/packet_diag_show.h"
+
+#ifdef AF_SMC
+# include "xlat/smc_diag_attrs.h"
+# include "xlat/smc_diag_extended_flags.h"
+# include "xlat/smc_states.h"
+#endif
+
+#include "xlat/unix_diag_attrs.h"
+#include "xlat/unix_diag_show.h"
+
+static void
+decode_family(struct tcb *const tcp, const uint8_t family,
+	      const kernel_ulong_t addr, const kernel_ulong_t len)
+{
+	tprints("{family=");
+	printxval(addrfams, family, "AF_???");
+	if (len > sizeof(family)) {
+		tprints(", ");
+		printstrn(tcp, addr + sizeof(family),
+			  len - sizeof(family));
+	}
+	tprints("}");
+}
+
+static void
+decode_unix_diag_req(struct tcb *const tcp,
+		     const struct nlmsghdr *const nlmsghdr,
+		     const uint8_t family,
+		     const kernel_ulong_t addr,
+		     const kernel_ulong_t len)
+{
+	struct unix_diag_req req = { .sdiag_family = family };
+	const size_t offset = sizeof(req.sdiag_family);
+
+	PRINT_FIELD_XVAL("{", req, sdiag_family, addrfams, "AF_???");
+	tprints(", ");
+	if (len >= sizeof(req)) {
+		if (!umoven_or_printaddr(tcp, addr + offset,
+					 sizeof(req) - offset,
+					 (void *) &req + offset)) {
+			PRINT_FIELD_U("", req, sdiag_protocol);
+			PRINT_FIELD_FLAGS(", ", req, udiag_states,
+					  tcp_state_flags, "1<<TCP_???");
+			PRINT_FIELD_U(", ", req, udiag_ino);
+			PRINT_FIELD_FLAGS(", ", req, udiag_show,
+					  unix_diag_show, "UDIAG_SHOW_???");
+			PRINT_FIELD_COOKIE(", ", req, udiag_cookie);
+		}
+	} else
+		tprints("...");
+	tprints("}");
+}
+
+static bool
+print_meminfo(struct tcb *const tcp,
+	      void *const elem_buf,
+	      const size_t elem_size,
+	      void *const opaque_data)
+{
+	tprintf("%" PRIu32, *(uint32_t *) elem_buf);
+
+	return true;
+}
+
+static bool
+decode_meminfo(struct tcb *const tcp,
+	       const kernel_ulong_t addr,
+	       const kernel_ulong_t len,
+	       const void *const opaque_data)
+{
+	uint32_t mem;
+	size_t nmemb = len / sizeof(mem);
+
+	if (!nmemb)
+		return false;
+
+	if (nmemb > SK_MEMINFO_VARS)
+		nmemb = SK_MEMINFO_VARS;
+
+	print_array(tcp, addr, nmemb, &mem, sizeof(mem),
+		    umoven_or_printaddr, print_meminfo, 0);
+
+	return true;
+}
+
+static bool
+decode_unix_diag_vfs(struct tcb *const tcp,
+		     const kernel_ulong_t addr,
+		     const kernel_ulong_t len,
+		     const void *const opaque_data)
+{
+	struct unix_diag_vfs uv;
+
+	if (len < sizeof(uv))
+		return false;
+	if (umove_or_printaddr(tcp, addr, &uv))
+		return true;
+
+	tprints("{udiag_vfs_dev=");
+	print_dev_t(uv.udiag_vfs_dev);
+	PRINT_FIELD_U(", ", uv, udiag_vfs_ino);
+	tprints("}");
+
+	return true;
+}
+
+static bool
+print_inode(struct tcb *const tcp,
+	    void *const elem_buf,
+	    const size_t elem_size,
+	    void *const opaque_data)
+{
+	tprintf("%" PRIu32, *(uint32_t *) elem_buf);
+
+	return true;
+}
+
+static bool
+decode_unix_diag_inode(struct tcb *const tcp,
+		       const kernel_ulong_t addr,
+		       const kernel_ulong_t len,
+		       const void *const opaque_data)
+{
+	uint32_t inode;
+	const size_t nmemb = len / sizeof(inode);
+
+	if (!nmemb)
+		return false;
+
+	print_array(tcp, addr, nmemb, &inode, sizeof(inode),
+		    umoven_or_printaddr, print_inode, 0);
+
+	return true;
+}
+
+static bool
+decode_unix_diag_rqlen(struct tcb *const tcp,
+		       const kernel_ulong_t addr,
+		       const kernel_ulong_t len,
+		       const void *const opaque_data)
+{
+	struct unix_diag_rqlen rql;
+
+	if (len < sizeof(rql))
+		return false;
+	if (umove_or_printaddr(tcp, addr, &rql))
+		return true;
+
+	PRINT_FIELD_U("{", rql, udiag_rqueue);
+	PRINT_FIELD_U(", ", rql, udiag_wqueue);
+	tprints("}");
+
+	return true;
+}
+
+static const nla_decoder_t unix_diag_msg_nla_decoders[] = {
+	[UNIX_DIAG_NAME]	= decode_nla_str,
+	[UNIX_DIAG_VFS]		= decode_unix_diag_vfs,
+	[UNIX_DIAG_PEER]	= decode_nla_u32,
+	[UNIX_DIAG_ICONS]	= decode_unix_diag_inode,
+	[UNIX_DIAG_RQLEN]	= decode_unix_diag_rqlen,
+	[UNIX_DIAG_MEMINFO]	= decode_meminfo,
+	[UNIX_DIAG_SHUTDOWN]	= decode_nla_u8
+};
+
+static void
+decode_unix_diag_msg(struct tcb *const tcp,
+		     const struct nlmsghdr *const nlmsghdr,
+		     const uint8_t family,
+		     const kernel_ulong_t addr,
+		     const kernel_ulong_t len)
+{
+	struct unix_diag_msg msg = { .udiag_family = family };
+	size_t offset = sizeof(msg.udiag_family);
+	bool decode_nla = false;
+
+	PRINT_FIELD_XVAL("{", msg, udiag_family, addrfams, "AF_???");
+	tprints(", ");
+	if (len >= sizeof(msg)) {
+		if (!umoven_or_printaddr(tcp, addr + offset,
+					 sizeof(msg) - offset,
+					 (void *) &msg + offset)) {
+			PRINT_FIELD_XVAL("", msg, udiag_type,
+					 socktypes, "SOCK_???");
+			PRINT_FIELD_XVAL(", ", msg, udiag_state,
+					 tcp_states, "TCP_???");
+			PRINT_FIELD_U(", ", msg, udiag_ino);
+			PRINT_FIELD_COOKIE(", ", msg, udiag_cookie);
+			decode_nla = true;
+		}
+	} else
+		tprints("...");
+	tprints("}");
+
+	offset = NLMSG_ALIGN(sizeof(msg));
+	if (decode_nla && len > offset) {
+		tprints(", ");
+		decode_nlattr(tcp, addr + offset, len - offset,
+			      unix_diag_attrs, "UNIX_DIAG_???",
+			      unix_diag_msg_nla_decoders,
+			      ARRAY_SIZE(unix_diag_msg_nla_decoders), NULL);
+	}
+}
+
+static void
+decode_netlink_diag_req(struct tcb *const tcp,
+			const struct nlmsghdr *const nlmsghdr,
+			const uint8_t family,
+			const kernel_ulong_t addr,
+			const kernel_ulong_t len)
+{
+	struct netlink_diag_req req = { .sdiag_family = family };
+	const size_t offset = sizeof(req.sdiag_family);
+
+	PRINT_FIELD_XVAL("{", req, sdiag_family, addrfams, "AF_???");
+	tprints(", ");
+	if (len >= sizeof(req)) {
+		if (!umoven_or_printaddr(tcp, addr + offset,
+					 sizeof(req) - offset,
+					 (void *) &req + offset)) {
+			if (NDIAG_PROTO_ALL == req.sdiag_protocol)
+				tprintf("%s=%s",
+					"sdiag_protocol", "NDIAG_PROTO_ALL");
+			else
+				PRINT_FIELD_XVAL("", req, sdiag_protocol,
+						 netlink_protocols,
+						 "NETLINK_???");
+			PRINT_FIELD_U(", ", req, ndiag_ino);
+			PRINT_FIELD_FLAGS(", ", req, ndiag_show,
+					  netlink_diag_show, "NDIAG_SHOW_???");
+			PRINT_FIELD_COOKIE(", ", req, ndiag_cookie);
+		}
+	} else
+		tprints("...");
+	tprints("}");
+}
+
+static bool
+print_group(struct tcb *const tcp,
+	    void *const elem_buf,
+	    const size_t elem_size,
+	    void *const opaque_data)
+{
+	if (elem_size < sizeof(kernel_ulong_t))
+		tprintf("%#0*x", (int) elem_size * 2 + 2,
+			*(unsigned int *) elem_buf);
+	else
+		tprintf("%#0*" PRI_klx, (int) elem_size * 2 + 2,
+			*(kernel_ulong_t *) elem_buf);
+
+	return true;
+}
+
+static bool
+decode_netlink_diag_groups(struct tcb *const tcp,
+			   const kernel_ulong_t addr,
+			   const kernel_ulong_t len,
+			   const void *const opaque_data)
+{
+	kernel_ulong_t buf;
+	const size_t nmemb = len / current_wordsize;
+
+	if (!nmemb)
+		return false;
+
+	print_array(tcp, addr, nmemb, &buf, current_wordsize,
+		    umoven_or_printaddr, print_group, 0);
+
+	return true;
+}
+
+static bool
+decode_netlink_diag_ring(struct tcb *const tcp,
+			 const kernel_ulong_t addr,
+			 const kernel_ulong_t len,
+			 const void *const opaque_data)
+{
+	struct netlink_diag_ring ndr;
+
+	if (len < sizeof(ndr))
+		return false;
+	if (umove_or_printaddr(tcp, addr, &ndr))
+		return true;
+
+	PRINT_FIELD_U("{", ndr, ndr_block_size);
+	PRINT_FIELD_U(", ", ndr, ndr_block_nr);
+	PRINT_FIELD_U(", ", ndr, ndr_frame_size);
+	PRINT_FIELD_U(", ", ndr, ndr_frame_nr);
+	tprints("}");
+
+	return true;
+}
+
+static bool
+decode_netlink_diag_flags(struct tcb *const tcp,
+			  const kernel_ulong_t addr,
+			  const kernel_ulong_t len,
+			  const void *const opaque_data)
+{
+	uint32_t flags;
+
+	if (len < sizeof(flags))
+		return false;
+	if (umove_or_printaddr(tcp, addr, &flags))
+		return true;
+
+	printflags(netlink_socket_flags, flags, "NDIAG_FLAG_???");
+
+	return true;
+}
+
+static const nla_decoder_t netlink_diag_msg_nla_decoders[] = {
+	[NETLINK_DIAG_MEMINFO]	= decode_meminfo,
+	[NETLINK_DIAG_GROUPS]	= decode_netlink_diag_groups,
+	[NETLINK_DIAG_RX_RING]	= decode_netlink_diag_ring,
+	[NETLINK_DIAG_TX_RING]	= decode_netlink_diag_ring,
+	[NETLINK_DIAG_FLAGS]	= decode_netlink_diag_flags
+};
+
+static void
+decode_netlink_diag_msg(struct tcb *const tcp,
+			const struct nlmsghdr *const nlmsghdr,
+			const uint8_t family,
+			const kernel_ulong_t addr,
+			const kernel_ulong_t len)
+{
+	struct netlink_diag_msg msg = { .ndiag_family = family };
+	size_t offset = sizeof(msg.ndiag_family);
+	bool decode_nla = false;
+
+	PRINT_FIELD_XVAL("{", msg, ndiag_family, addrfams, "AF_???");
+	tprints(", ");
+	if (len >= sizeof(msg)) {
+		if (!umoven_or_printaddr(tcp, addr + offset,
+					 sizeof(msg) - offset,
+					 (void *) &msg + offset)) {
+			PRINT_FIELD_XVAL("", msg, ndiag_type,
+					 socktypes, "SOCK_???");
+			PRINT_FIELD_XVAL(", ", msg, ndiag_protocol,
+					 netlink_protocols, "NETLINK_???");
+			PRINT_FIELD_XVAL(", ", msg, ndiag_state,
+					 netlink_states, "NETLINK_???");
+			PRINT_FIELD_U(", ", msg, ndiag_portid);
+			PRINT_FIELD_U(", ", msg, ndiag_dst_portid);
+			PRINT_FIELD_U(", ", msg, ndiag_dst_group);
+			PRINT_FIELD_U(", ", msg, ndiag_ino);
+			PRINT_FIELD_COOKIE(", ", msg, ndiag_cookie);
+			decode_nla = true;
+		}
+	} else
+		tprints("...");
+	tprints("}");
+
+	offset = NLA_ALIGN(sizeof(msg));
+	if (decode_nla && len > offset) {
+		tprints(", ");
+		decode_nlattr(tcp, addr + offset, len - offset,
+			      netlink_diag_attrs, "NETLINK_DIAG_???",
+			      netlink_diag_msg_nla_decoders,
+			      ARRAY_SIZE(netlink_diag_msg_nla_decoders), NULL);
+	}
+}
+
+static void
+decode_packet_diag_req(struct tcb *const tcp,
+		       const struct nlmsghdr *const nlmsghdr,
+		       const uint8_t family,
+		       const kernel_ulong_t addr,
+		       const kernel_ulong_t len)
+{
+	struct packet_diag_req req = { .sdiag_family = family };
+	const size_t offset = sizeof(req.sdiag_family);
+
+	PRINT_FIELD_XVAL("{", req, sdiag_family, addrfams, "AF_???");
+	tprints(", ");
+	if (len >= sizeof(req)) {
+		if (!umoven_or_printaddr(tcp, addr + offset,
+					 sizeof(req) - offset,
+					 (void *) &req + offset)) {
+			PRINT_FIELD_XVAL("", req, sdiag_protocol,
+					 ethernet_protocols, "ETH_P_???");
+			PRINT_FIELD_U(", ", req, pdiag_ino);
+			PRINT_FIELD_FLAGS(", ", req, pdiag_show,
+					  packet_diag_show, "PACKET_SHOW_???");
+			PRINT_FIELD_COOKIE(", ", req, pdiag_cookie);
+		}
+	} else
+		tprints("...");
+	tprints("}");
+}
+
+static void
+decode_packet_diag_msg(struct tcb *const tcp,
+		       const struct nlmsghdr *const nlmsghdr,
+		       const uint8_t family,
+		       const kernel_ulong_t addr,
+		       const kernel_ulong_t len)
+{
+	struct packet_diag_msg msg = { .pdiag_family = family };
+	size_t offset = sizeof(msg.pdiag_family);
+	bool decode_nla = false;
+
+	PRINT_FIELD_XVAL("{", msg, pdiag_family, addrfams, "AF_???");
+	tprints(", ");
+	if (len >= sizeof(msg)) {
+		if (!umoven_or_printaddr(tcp, addr + offset,
+					 sizeof(msg) - offset,
+					 (void *) &msg + offset)) {
+			PRINT_FIELD_XVAL("", msg, pdiag_type,
+					 socktypes, "SOCK_???");
+			PRINT_FIELD_U(", ", msg, pdiag_num);
+			PRINT_FIELD_U(", ", msg, pdiag_ino);
+			PRINT_FIELD_COOKIE(", ", msg, pdiag_cookie);
+			decode_nla = true;
+		}
+	} else
+		tprints("...");
+	tprints("}");
+
+	offset = NLA_ALIGN(sizeof(msg));
+	if (decode_nla && len > offset) {
+		tprints(", ");
+		decode_nlattr(tcp, addr + offset, len - offset,
+			      packet_diag_attrs, "PACKET_DIAG_???",
+			      NULL, 0, NULL);
+	}
+}
+
+static void
+print_inet_diag_sockid(const struct inet_diag_sockid *id, const uint8_t family)
+{
+	tprintf("{idiag_sport=htons(%u), idiag_dport=htons(%u)",
+		ntohs(id->idiag_sport), ntohs(id->idiag_dport));
+
+	tprints(", ");
+	print_inet_addr(family, id->idiag_src,
+			sizeof(id->idiag_src), "idiag_src");
+	tprints(", ");
+	print_inet_addr(family, id->idiag_dst,
+			sizeof(id->idiag_dst), "idiag_dst");
+
+	tprints(", idiag_if=");
+	print_ifindex(id->idiag_if);
+
+	PRINT_FIELD_COOKIE(", ", *id, idiag_cookie);
+
+	tprints("}");
+}
+
+static void
+decode_inet_diag_req_compat(struct tcb *const tcp,
+			    const struct nlmsghdr *const nlmsghdr,
+			    const uint8_t family,
+			    const kernel_ulong_t addr,
+			    const kernel_ulong_t len)
+{
+	struct inet_diag_req req = { .idiag_family = family };
+	size_t offset = sizeof(req.idiag_family);
+	bool decode_nla = false;
+
+	PRINT_FIELD_XVAL("{", req, idiag_family, addrfams, "AF_???");
+	tprints(", ");
+	if (len >= sizeof(req)) {
+		if (!umoven_or_printaddr(tcp, addr + offset,
+					 sizeof(req) - offset,
+					 (void *) &req + offset)) {
+			PRINT_FIELD_U("", req, idiag_src_len);
+			PRINT_FIELD_U(", ", req, idiag_dst_len);
+			PRINT_FIELD_FLAGS(", ", req, idiag_ext,
+					  inet_diag_extended_flags,
+					  "1<<INET_DIAG_\?\?\?-1");
+			tprints(", id=");
+			print_inet_diag_sockid(&req.id, req.idiag_family);
+			PRINT_FIELD_FLAGS(", ", req, idiag_states,
+					  tcp_state_flags, "1<<TCP_???");
+			PRINT_FIELD_U(", ", req, idiag_dbs);
+			decode_nla = true;
+		}
+	} else
+		tprints("...");
+	tprints("}");
+
+	offset = NLA_ALIGN(sizeof(req));
+	if (decode_nla && len > offset) {
+		tprints(", ");
+		decode_nlattr(tcp, addr + offset, len - offset,
+			      inet_diag_req_attrs, "INET_DIAG_REQ_???",
+			      NULL, 0, NULL);
+	}
+}
+
+static void
+decode_inet_diag_req_v2(struct tcb *const tcp,
+			const struct nlmsghdr *const nlmsghdr,
+			const uint8_t family,
+			const kernel_ulong_t addr,
+			const kernel_ulong_t len)
+{
+	struct inet_diag_req_v2 req = { .sdiag_family = family };
+	size_t offset = sizeof(req.sdiag_family);
+	bool decode_nla = false;
+
+	PRINT_FIELD_XVAL("{", req, sdiag_family, addrfams, "AF_???");
+	tprints(", ");
+	if (len >= sizeof(req)) {
+		if (!umoven_or_printaddr(tcp, addr + offset,
+					 sizeof(req) - offset,
+					 (void *) &req + offset)) {
+			PRINT_FIELD_XVAL("", req, sdiag_protocol,
+					 inet_protocols, "IPPROTO_???");
+			PRINT_FIELD_FLAGS(", ", req, idiag_ext,
+					  inet_diag_extended_flags,
+					  "1<<INET_DIAG_\?\?\?-1");
+			PRINT_FIELD_FLAGS(", ", req, idiag_states,
+					  tcp_state_flags, "1<<TCP_???");
+			tprints(", id=");
+			print_inet_diag_sockid(&req.id, req.sdiag_family);
+			decode_nla = true;
+		}
+	} else
+		tprints("...");
+	tprints("}");
+
+	offset = NLA_ALIGN(sizeof(req));
+	if (decode_nla && len > offset) {
+		tprints(", ");
+		decode_nlattr(tcp, addr + offset, len - offset,
+			      inet_diag_req_attrs, "INET_DIAG_REQ_???",
+			      NULL, 0, NULL);
+	}
+}
+
+static void
+decode_inet_diag_req(struct tcb *const tcp,
+		     const struct nlmsghdr *const nlmsghdr,
+		     const uint8_t family,
+		     const kernel_ulong_t addr,
+		     const kernel_ulong_t len)
+{
+	if (nlmsghdr->nlmsg_type == TCPDIAG_GETSOCK
+	    || nlmsghdr->nlmsg_type == DCCPDIAG_GETSOCK)
+		return decode_inet_diag_req_compat(tcp, nlmsghdr,
+						   family, addr, len);
+	else
+		return decode_inet_diag_req_v2(tcp, nlmsghdr,
+					       family, addr, len);
+}
+
+static bool
+decode_inet_diag_meminfo(struct tcb *const tcp,
+			 const kernel_ulong_t addr,
+			 const kernel_ulong_t len,
+			 const void *const opaque_data)
+{
+	struct inet_diag_meminfo minfo;
+
+	if (len < sizeof(minfo))
+		return false;
+	if (umove_or_printaddr(tcp, addr, &minfo))
+		return true;
+
+	PRINT_FIELD_U("{", minfo, idiag_rmem);
+	PRINT_FIELD_U(", ", minfo, idiag_wmem);
+	PRINT_FIELD_U(", ", minfo, idiag_fmem);
+	PRINT_FIELD_U(", ", minfo, idiag_tmem);
+	tprints("}");
+
+	return true;
+}
+
+static bool
+decode_tcpvegas_info(struct tcb *const tcp,
+		     const kernel_ulong_t addr,
+		     const kernel_ulong_t len,
+		     const void *const opaque_data)
+{
+	struct tcpvegas_info vegas;
+
+	if (len < sizeof(vegas))
+		return false;
+	if (umove_or_printaddr(tcp, addr, &vegas))
+		return true;
+
+	PRINT_FIELD_U("{", vegas, tcpv_enabled);
+	PRINT_FIELD_U(", ", vegas, tcpv_rttcnt);
+	PRINT_FIELD_U(", ", vegas, tcpv_rtt);
+	PRINT_FIELD_U(", ", vegas, tcpv_minrtt);
+	tprints("}");
+
+	return true;
+}
+
+static bool
+decode_tcp_dctcp_info(struct tcb *const tcp,
+		      const kernel_ulong_t addr,
+		      const kernel_ulong_t len,
+		      const void *const opaque_data)
+{
+	struct tcp_dctcp_info dctcp;
+
+	if (len < sizeof(dctcp))
+		return false;
+	if (umove_or_printaddr(tcp, addr, &dctcp))
+		return true;
+
+	PRINT_FIELD_U("{", dctcp, dctcp_enabled);
+	PRINT_FIELD_U(", ", dctcp, dctcp_ce_state);
+	PRINT_FIELD_U(", ", dctcp, dctcp_alpha);
+	PRINT_FIELD_U(", ", dctcp, dctcp_ab_ecn);
+	PRINT_FIELD_U(", ", dctcp, dctcp_ab_tot);
+	tprints("}");
+
+	return true;
+}
+
+static bool
+decode_tcp_bbr_info(struct tcb *const tcp,
+		    const kernel_ulong_t addr,
+		    const kernel_ulong_t len,
+		    const void *const opaque_data)
+{
+	struct tcp_bbr_info bbr;
+
+	if (len < sizeof(bbr))
+		return false;
+	if (umove_or_printaddr(tcp, addr, &bbr))
+		return true;
+
+	PRINT_FIELD_X("{", bbr, bbr_bw_lo);
+	PRINT_FIELD_X(", ", bbr, bbr_bw_hi);
+	PRINT_FIELD_U(", ", bbr, bbr_min_rtt);
+	PRINT_FIELD_U(", ", bbr, bbr_pacing_gain);
+	PRINT_FIELD_U(", ", bbr, bbr_cwnd_gain);
+	tprints("}");
+
+	return true;
+}
+
+static const nla_decoder_t inet_diag_msg_nla_decoders[] = {
+	[INET_DIAG_MEMINFO]	= decode_inet_diag_meminfo,
+	[INET_DIAG_INFO]	= NULL,			/* unimplemented */
+	[INET_DIAG_VEGASINFO]	= decode_tcpvegas_info,
+	[INET_DIAG_CONG]	= decode_nla_str,
+	[INET_DIAG_TOS]		= decode_nla_u8,
+	[INET_DIAG_TCLASS]	= decode_nla_u8,
+	[INET_DIAG_SKMEMINFO]	= decode_meminfo,
+	[INET_DIAG_SHUTDOWN]	= decode_nla_u8,
+	[INET_DIAG_DCTCPINFO]	= decode_tcp_dctcp_info,
+	[INET_DIAG_PROTOCOL]	= decode_nla_u8,
+	[INET_DIAG_SKV6ONLY]	= decode_nla_u8,
+	[INET_DIAG_LOCALS]	= NULL,			/* unimplemented */
+	[INET_DIAG_PEERS]	= NULL,			/* unimplemented */
+	[INET_DIAG_PAD]		= NULL,
+	[INET_DIAG_MARK]	= decode_nla_u32,
+	[INET_DIAG_BBRINFO]	= decode_tcp_bbr_info
+};
+
+static void
+decode_inet_diag_msg(struct tcb *const tcp,
+		     const struct nlmsghdr *const nlmsghdr,
+		     const uint8_t family,
+		     const kernel_ulong_t addr,
+		     const kernel_ulong_t len)
+{
+	struct inet_diag_msg msg = { .idiag_family = family };
+	size_t offset = sizeof(msg.idiag_family);
+	bool decode_nla = false;
+
+	PRINT_FIELD_XVAL("{", msg, idiag_family, addrfams, "AF_???");
+	tprints(", ");
+	if (len >= sizeof(msg)) {
+		if (!umoven_or_printaddr(tcp, addr + offset,
+					 sizeof(msg) - offset,
+					 (void *) &msg + offset)) {
+			PRINT_FIELD_XVAL("", msg, idiag_state,
+					 tcp_states, "TCP_???");
+			PRINT_FIELD_U(", ", msg, idiag_timer);
+			PRINT_FIELD_U(", ", msg, idiag_retrans);
+			tprints(", id=");
+			print_inet_diag_sockid(&msg.id, msg.idiag_family);
+			PRINT_FIELD_U(", ", msg, idiag_expires);
+			PRINT_FIELD_U(", ", msg, idiag_rqueue);
+			PRINT_FIELD_U(", ", msg, idiag_wqueue);
+			PRINT_FIELD_U(", ", msg, idiag_uid);
+			PRINT_FIELD_U(", ", msg, idiag_inode);
+			decode_nla = true;
+		}
+	} else
+		tprints("...");
+	tprints("}");
+
+	offset = NLA_ALIGN(sizeof(msg));
+	if (decode_nla && len > offset) {
+		tprints(", ");
+		decode_nlattr(tcp, addr + offset, len - offset,
+			      inet_diag_attrs, "INET_DIAG_???",
+			      inet_diag_msg_nla_decoders,
+			      ARRAY_SIZE(inet_diag_msg_nla_decoders), NULL);
+	}
+}
+
+#ifdef AF_SMC
+static void
+decode_smc_diag_req(struct tcb *const tcp,
+		    const struct nlmsghdr *const nlmsghdr,
+		    const uint8_t family,
+		    const kernel_ulong_t addr,
+		    const kernel_ulong_t len)
+{
+	struct smc_diag_req req = { .diag_family = family };
+	const size_t offset = sizeof(req.diag_family);
+
+	PRINT_FIELD_XVAL("{", req, diag_family, addrfams, "AF_???");
+	tprints(", ");
+	if (len >= sizeof(req)) {
+		if (!umoven_or_printaddr(tcp, addr + offset,
+					 sizeof(req) - offset,
+					 (void *) &req + offset)) {
+			PRINT_FIELD_FLAGS("", req, diag_ext,
+					  smc_diag_extended_flags,
+					  "1<<SMC_DIAG_\?\?\?-1");
+			tprints(", id=");
+			/*
+			 * AF_SMC protocol family socket handler
+			 * keeping the AF_INET sock address.
+			 */
+			print_inet_diag_sockid(&req.id, AF_INET);
+		}
+	} else
+		tprints("...");
+	tprints("}");
+}
+
+static void
+decode_smc_diag_msg(struct tcb *const tcp,
+		    const struct nlmsghdr *const nlmsghdr,
+		    const uint8_t family,
+		    const kernel_ulong_t addr,
+		    const kernel_ulong_t len)
+{
+	struct smc_diag_msg msg = { .diag_family = family };
+	size_t offset = sizeof(msg.diag_family);
+	bool decode_nla = false;
+
+	PRINT_FIELD_XVAL("{", msg, diag_family, addrfams, "AF_???");
+	tprints(", ");
+	if (len >= sizeof(msg)) {
+		if (!umoven_or_printaddr(tcp, addr + offset,
+					 sizeof(msg) - offset,
+					 (void *) &msg + offset)) {
+			PRINT_FIELD_XVAL("", msg, diag_state,
+					 smc_states, "SMC_???");
+			PRINT_FIELD_U(", ", msg, diag_fallback);
+			PRINT_FIELD_U(", ", msg, diag_shutdown);
+			tprints(", id=");
+			/*
+			 * AF_SMC protocol family socket handler
+			 * keeping the AF_INET sock address.
+			 */
+			print_inet_diag_sockid(&msg.id, AF_INET);
+			PRINT_FIELD_U(", ", msg, diag_uid);
+			PRINT_FIELD_U(", ", msg, diag_inode);
+			decode_nla = true;
+		}
+	} else
+		tprints("...");
+	tprints("}");
+
+	offset = NLA_ALIGN(sizeof(msg));
+	if (decode_nla && len > offset) {
+		tprints(", ");
+		decode_nlattr(tcp, addr + offset, len - offset,
+			      smc_diag_attrs, "SMC_DIAG_???",
+			      NULL, 0, NULL);
+	}
+}
+#endif
+
+typedef void (*netlink_diag_decoder_t)(struct tcb *,
+				       const struct nlmsghdr *,
+				       uint8_t family,
+				       kernel_ulong_t addr,
+				       kernel_ulong_t len);
+
+static const struct {
+	const netlink_diag_decoder_t request, response;
+} diag_decoders[] = {
+	[AF_INET] = { decode_inet_diag_req, decode_inet_diag_msg },
+	[AF_INET6] = { decode_inet_diag_req, decode_inet_diag_msg },
+	[AF_NETLINK] = { decode_netlink_diag_req, decode_netlink_diag_msg },
+	[AF_PACKET] = { decode_packet_diag_req, decode_packet_diag_msg },
+#ifdef AF_SMC
+	[AF_SMC] = { decode_smc_diag_req, decode_smc_diag_msg },
+#endif
+	[AF_UNIX] = { decode_unix_diag_req, decode_unix_diag_msg }
+};
+
+bool
+decode_netlink_sock_diag(struct tcb *const tcp,
+			 const struct nlmsghdr *const nlmsghdr,
+			 const kernel_ulong_t addr,
+			 const kernel_ulong_t len)
+{
+	uint8_t family;
+
+	if (nlmsghdr->nlmsg_type == NLMSG_DONE)
+		return false;
+
+	if (!umove_or_printaddr(tcp, addr, &family)) {
+		if (family < ARRAY_SIZE(diag_decoders)
+		    && len > sizeof(family)) {
+			const netlink_diag_decoder_t decoder =
+				(nlmsghdr->nlmsg_flags & NLM_F_REQUEST)
+				? diag_decoders[family].request
+				: diag_decoders[family].response;
+
+			if (decoder) {
+				decoder(tcp, nlmsghdr, family, addr, len);
+				return true;
+			}
+		}
+
+		decode_family(tcp, family, addr, len);
+	}
+
+	return true;
+}
diff --git a/nlattr.c b/nlattr.c
new file mode 100644
index 0000000..ef3d762
--- /dev/null
+++ b/nlattr.c
@@ -0,0 +1,191 @@
+/*
+ * Copyright (c) 2016 Fabien Siron <fabien.siron@epita.fr>
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@gmail.com>
+ * Copyright (c) 2016-2017 The strace developers.
+ * 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 "defs.h"
+#include "netlink.h"
+#include "nlattr.h"
+
+static bool
+fetch_nlattr(struct tcb *const tcp, struct nlattr *const nlattr,
+	     const kernel_ulong_t addr, const kernel_ulong_t len)
+{
+	if (len < sizeof(struct nlattr)) {
+		printstrn(tcp, addr, len);
+		return false;
+	}
+
+	if (umove_or_printaddr(tcp, addr, nlattr))
+		return false;
+
+	return true;
+}
+
+static void
+print_nlattr(const struct nlattr *const nla,
+	     const struct xlat *const table,
+	     const char *const dflt)
+{
+	tprintf("{nla_len=%u, nla_type=", nla->nla_len);
+	if (nla->nla_type & NLA_F_NESTED)
+		tprints("NLA_F_NESTED|");
+	if (nla->nla_type & NLA_F_NET_BYTEORDER)
+		tprints("NLA_F_NET_BYTEORDER|");
+	printxval(table, nla->nla_type & NLA_TYPE_MASK, dflt);
+	tprints("}");
+}
+
+static void
+decode_nlattr_with_data(struct tcb *const tcp,
+			const struct nlattr *const nla,
+			const kernel_ulong_t addr,
+			const kernel_ulong_t len,
+			const struct xlat *const table,
+			const char *const dflt,
+			const nla_decoder_t *const decoders,
+			const unsigned int size,
+			const void *const opaque_data)
+{
+	const unsigned int nla_len = nla->nla_len > len ? len : nla->nla_len;
+
+	if (nla_len > NLA_HDRLEN)
+		tprints("{");
+
+	print_nlattr(nla, table, dflt);
+
+	if (nla_len > NLA_HDRLEN) {
+		tprints(", ");
+		if (!decoders
+		    || nla->nla_type >= size
+		    || !decoders[nla->nla_type]
+		    || !decoders[nla->nla_type](tcp, addr + NLA_HDRLEN,
+						nla_len - NLA_HDRLEN,
+						opaque_data))
+			printstrn(tcp, addr + NLA_HDRLEN, len - NLA_HDRLEN);
+		tprints("}");
+	}
+}
+
+void
+decode_nlattr(struct tcb *const tcp,
+	      kernel_ulong_t addr,
+	      kernel_ulong_t len,
+	      const struct xlat *const table,
+	      const char *const dflt,
+	      const nla_decoder_t *const decoders,
+	      const unsigned int size,
+	      const void *const opaque_data)
+{
+	struct nlattr nla;
+	bool print_array = false;
+	unsigned int elt;
+
+	for (elt = 0; fetch_nlattr(tcp, &nla, addr, len); elt++) {
+		if (abbrev(tcp) && elt == max_strlen) {
+			tprints("...");
+			break;
+		}
+
+		const unsigned long nla_len = NLA_ALIGN(nla.nla_len);
+		kernel_ulong_t next_addr = 0;
+		kernel_ulong_t next_len = 0;
+
+		if (nla.nla_len >= NLA_HDRLEN) {
+			next_len = (len >= nla_len) ? len - nla_len : 0;
+
+			if (next_len && addr + nla_len > addr)
+				next_addr = addr + nla_len;
+		}
+
+		if (!print_array && next_addr) {
+			tprints("[");
+			print_array = true;
+		}
+
+		decode_nlattr_with_data(tcp, &nla, addr, len, table, dflt,
+					decoders, size, opaque_data);
+
+		if (!next_addr)
+			break;
+
+		tprints(", ");
+		addr = next_addr;
+		len = next_len;
+	}
+
+	if (print_array) {
+		tprints("]");
+	}
+}
+
+bool
+decode_nla_str(struct tcb *const tcp,
+	       const kernel_ulong_t addr,
+	       const kernel_ulong_t len,
+	       const void *const opaque_data)
+{
+	printstr_ex(tcp, addr, len, QUOTE_0_TERMINATED);
+
+	return true;
+}
+
+bool
+decode_nla_strn(struct tcb *const tcp,
+		const kernel_ulong_t addr,
+		const kernel_ulong_t len,
+		const void *const opaque_data)
+{
+	printstrn(tcp, addr, len);
+
+	return true;
+}
+
+#define DECODE_NLA_INTEGER(name, type, fmt)		\
+bool							\
+decode_nla_ ## name(struct tcb *const tcp,		\
+		    const kernel_ulong_t addr,		\
+		    const kernel_ulong_t len,		\
+		    const void *const opaque_data)	\
+{							\
+	type num;					\
+							\
+	if (len < sizeof(num))				\
+		return false;				\
+	if (!umove_or_printaddr(tcp, addr, &num))	\
+		tprintf(fmt, num);			\
+	return true;					\
+}
+
+DECODE_NLA_INTEGER(u8, uint8_t, "%" PRIu8)
+DECODE_NLA_INTEGER(u16, uint16_t, "%" PRIu16)
+DECODE_NLA_INTEGER(u32, uint32_t, "%" PRIu32)
+DECODE_NLA_INTEGER(u64, uint64_t, "%" PRIu64)
+DECODE_NLA_INTEGER(s8, int8_t, "%" PRId8)
+DECODE_NLA_INTEGER(s16, int16_t, "%" PRId16)
+DECODE_NLA_INTEGER(s32, int32_t, "%" PRId32)
+DECODE_NLA_INTEGER(s64, int64_t, "%" PRId64)
diff --git a/nlattr.h b/nlattr.h
new file mode 100644
index 0000000..40a476f
--- /dev/null
+++ b/nlattr.h
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2016 Fabien Siron <fabien.siron@epita.fr>
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@gmail.com>
+ * Copyright (c) 2016-2017 The strace developers.
+ * 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_NLATTR_H
+#define STRACE_NLATTR_H
+
+typedef bool (*nla_decoder_t)(struct tcb *, kernel_ulong_t addr,
+			      kernel_ulong_t len, const void *opaque_data);
+extern void
+decode_nlattr(struct tcb *,
+	      kernel_ulong_t addr,
+	      kernel_ulong_t len,
+	      const struct xlat *,
+	      const char *dflt,
+	      const nla_decoder_t *,
+	      unsigned int size,
+	      const void *opaque_data);
+
+#define DECL_NLA(name)					\
+extern bool						\
+decode_nla_ ## name(struct tcb *, kernel_ulong_t addr,	\
+		    kernel_ulong_t len, const void *)
+DECL_NLA(u8);
+DECL_NLA(u16);
+DECL_NLA(u32);
+DECL_NLA(u64);
+DECL_NLA(s8);
+DECL_NLA(s16);
+DECL_NLA(s32);
+DECL_NLA(s64);
+DECL_NLA(str);
+DECL_NLA(strn);
+
+#endif /* !STRACE_NLATTR_H */
diff --git a/numa.c b/numa.c
index a4b28f4..7564d87 100644
--- a/numa.c
+++ b/numa.c
@@ -34,10 +34,10 @@
 {
 	if (elem_size < sizeof(kernel_ulong_t)) {
 		tprintf("%#0*x", (int) elem_size * 2 + 2,
-			* (unsigned int *) elem_buf);
+			*(unsigned int *) elem_buf);
 	} else {
 		tprintf("%#0*" PRI_klx, (int) elem_size * 2 + 2,
-			* (kernel_ulong_t *) elem_buf);
+			*(kernel_ulong_t *) elem_buf);
 	}
 
 	return true;
@@ -127,9 +127,9 @@
 	kernel_ulong_t addr;
 
 	if (elem_size < sizeof(addr)) {
-		addr = * (unsigned int *) elem_buf;
+		addr = *(unsigned int *) elem_buf;
 	} else {
-		addr = * (kernel_ulong_t *) elem_buf;
+		addr = *(kernel_ulong_t *) elem_buf;
 	}
 
 	printaddr(addr);
@@ -140,7 +140,7 @@
 static bool
 print_status(struct tcb *tcp, void *elem_buf, size_t elem_size, void *data)
 {
-	const int status = * (int *) elem_buf;
+	const int status = *(int *) elem_buf;
 
 	if (status < 0 && (unsigned) -status < nerrnos)
 		tprintf("-%s", errnoent[-status]);
@@ -153,7 +153,7 @@
 static bool
 print_int(struct tcb *tcp, void *elem_buf, size_t elem_size, void *data)
 {
-	tprintf("%d", * (int *) elem_buf);
+	tprintf("%d", *(int *) elem_buf);
 
 	return true;
 }
diff --git a/open.c b/open.c
index 222965b..2822266 100644
--- a/open.c
+++ b/open.c
@@ -42,7 +42,7 @@
 #define O_ACCMODE 03
 
 #ifdef O_LARGEFILE
-# if O_LARGEFILE == 0          /* biarch platforms in 64-bit mode */
+# if O_LARGEFILE == 0		/* biarch platforms in 64-bit mode */
 #  undef O_LARGEFILE
 #  ifdef SPARC64
 #   define O_LARGEFILE 0x40000
@@ -56,7 +56,7 @@
 #include "xlat/open_mode_flags.h"
 
 #ifndef AT_FDCWD
-# define AT_FDCWD                -100
+# define AT_FDCWD	-100
 #endif
 
 /* The fd is an "int", so when decoding x86 on x86_64, we need to force sign
diff --git a/or1k_atomic.c b/or1k_atomic.c
index fb6aff3..738cc2e 100644
--- a/or1k_atomic.c
+++ b/or1k_atomic.c
@@ -31,22 +31,22 @@
 
 #ifdef OR1K
 
-#define OR1K_ATOMIC_SWAP        1
-#define OR1K_ATOMIC_CMPXCHG     2
-#define OR1K_ATOMIC_XCHG        3
-#define OR1K_ATOMIC_ADD         4
-#define OR1K_ATOMIC_DECPOS      5
-#define OR1K_ATOMIC_AND         6
-#define OR1K_ATOMIC_OR          7
-#define OR1K_ATOMIC_UMAX        8
-#define OR1K_ATOMIC_UMIN        9
+#define OR1K_ATOMIC_SWAP	1
+#define OR1K_ATOMIC_CMPXCHG	2
+#define OR1K_ATOMIC_XCHG	3
+#define OR1K_ATOMIC_ADD		4
+#define OR1K_ATOMIC_DECPOS	5
+#define OR1K_ATOMIC_AND		6
+#define OR1K_ATOMIC_OR		7
+#define OR1K_ATOMIC_UMAX	8
+#define OR1K_ATOMIC_UMIN	9
 
 #include "xlat/atomic_ops.h"
 
 SYS_FUNC(or1k_atomic)
 {
 	printxval64(atomic_ops, tcp->u_arg[0], "???");
-	switch(tcp->u_arg[0]) {
+	switch (tcp->u_arg[0]) {
 	case OR1K_ATOMIC_SWAP:
 		tprintf(", 0x%lx, 0x%lx", tcp->u_arg[1], tcp->u_arg[2]);
 		break;
diff --git a/pathtrace.c b/pathtrace.c
index ea48825..9cb0ba7 100644
--- a/pathtrace.c
+++ b/pathtrace.c
@@ -33,8 +33,8 @@
 
 #include "syscall.h"
 
-const char **paths_selected = NULL;
-static unsigned num_selected = 0;
+const char **paths_selected;
+static unsigned int num_selected;
 
 /*
  * Return true if specified path matches one that we're tracing.
@@ -59,7 +59,7 @@
 {
 	char path[PATH_MAX + 1];
 
-	return umovestr(tcp, upath, sizeof path, path) > 0 &&
+	return umovestr(tcp, upath, sizeof(path), path) > 0 &&
 		pathmatch(path);
 }
 
diff --git a/perf.c b/perf.c
index 98f2ae1..6af0f42 100644
--- a/perf.c
+++ b/perf.c
@@ -168,7 +168,7 @@
 
 		if (use_new_size > 0)
 			printxval(perf_attr_size, new_size,
-			          "PERF_ATTR_SIZE_???");
+				  "PERF_ATTR_SIZE_???");
 		else
 			tprints("???");
 	}
@@ -176,17 +176,17 @@
 	switch (attr->type) {
 	case PERF_TYPE_HARDWARE:
 		PRINT_XLAT(", config=", perf_hw_id, attr->config,
-		           "PERF_COUNT_HW_???");
+			   "PERF_COUNT_HW_???");
 		break;
 	case PERF_TYPE_SOFTWARE:
 		PRINT_XLAT(", config=", perf_sw_ids, attr->config,
-		           "PERF_COUNT_SW_???");
+			   "PERF_COUNT_SW_???");
 		break;
 	case PERF_TYPE_TRACEPOINT:
 		/*
 		 * "The value to use in config can be obtained from under
-		 * debugfs tracing/events/../../id if ftrace is enabled in the
-                 * kernel."
+		 * debugfs tracing/events/../../id if ftrace is enabled
+		 * in the kernel."
 		 */
 		tprintf(", config=%" PRIu64, attr->config);
 		break;
@@ -196,9 +196,9 @@
 		 * (perf_hw_cache_op_result_id << 16)
 		 */
 		PRINT_XLAT(", config=", perf_hw_cache_id, attr->config & 0xFF,
-		           "PERF_COUNT_HW_CACHE_???");
+			   "PERF_COUNT_HW_CACHE_???");
 		PRINT_XLAT("|", perf_hw_cache_op_id, (attr->config >> 8) & 0xFF,
-		           "PERF_COUNT_HW_CACHE_OP_???");
+			   "PERF_COUNT_HW_CACHE_OP_???");
 		/*
 		 * Current code (see set_ext_hw_attr in arch/x86/events/core.c,
 		 * tile_map_cache_event in arch/tile/kernel/perf_event.c,
@@ -215,8 +215,8 @@
 		 * that cache result is 8 bits in size.
 		 */
 		PRINT_XLAT("<<8|", perf_hw_cache_op_result_id,
-		           (attr->config >> 16) & 0xFF,
-		           "PERF_COUNT_HW_CACHE_RESULT_???");
+			   (attr->config >> 16) & 0xFF,
+			   "PERF_COUNT_HW_CACHE_RESULT_???");
 		tprints("<<16");
 		if (attr->config >> 24) {
 			tprintf("|%#" PRIx64 "<<24", attr->config >> 24);
@@ -262,60 +262,60 @@
 		"PERF_FORMAT_???");
 
 	tprintf(", disabled=%u"
-	        ", inherit=%u"
-	        ", pinned=%u"
-	        ", exclusive=%u"
-	        ", exclusive_user=%u"
-	        ", exclude_kernel=%u"
-	        ", exclude_hv=%u"
-	        ", exclude_idle=%u"
-	        ", mmap=%u"
-	        ", comm=%u"
-	        ", freq=%u"
-	        ", inherit_stat=%u"
-	        ", enable_on_exec=%u"
-	        ", task=%u"
-	        ", watermark=%u"
-	        ", precise_ip=%u",
-	        attr->disabled,
-	        attr->inherit,
-	        attr->pinned,
-	        attr->exclusive,
-	        attr->exclude_user,
-	        attr->exclude_kernel,
-	        attr->exclude_hv,
-	        attr->exclude_idle,
-	        attr->mmap,
-	        attr->comm,
-	        attr->freq,
-	        attr->inherit_stat,
-	        attr->enable_on_exec,
-	        attr->task,
-	        attr->watermark,
-	        attr->precise_ip);
+		", inherit=%u"
+		", pinned=%u"
+		", exclusive=%u"
+		", exclusive_user=%u"
+		", exclude_kernel=%u"
+		", exclude_hv=%u"
+		", exclude_idle=%u"
+		", mmap=%u"
+		", comm=%u"
+		", freq=%u"
+		", inherit_stat=%u"
+		", enable_on_exec=%u"
+		", task=%u"
+		", watermark=%u"
+		", precise_ip=%u",
+		attr->disabled,
+		attr->inherit,
+		attr->pinned,
+		attr->exclusive,
+		attr->exclude_user,
+		attr->exclude_kernel,
+		attr->exclude_hv,
+		attr->exclude_idle,
+		attr->mmap,
+		attr->comm,
+		attr->freq,
+		attr->inherit_stat,
+		attr->enable_on_exec,
+		attr->task,
+		attr->watermark,
+		attr->precise_ip);
 	tprints_comment(precise_ip_desc[attr->precise_ip]);
 	tprintf(", mmap_data=%u"
-	        ", sample_id_all=%u"
-	        ", exclude_host=%u"
-	        ", exclude_guest=%u"
-	        ", exclude_callchain_kernel=%u"
-	        ", exclude_callchain_user=%u"
-	        ", mmap2=%u"
-	        ", comm_exec=%u"
-	        ", use_clockid=%u"
-	        ", context_switch=%u"
-	        ", write_backward=%u",
-	        attr->mmap_data,
-	        attr->sample_id_all,
-	        attr->exclude_host,
-	        attr->exclude_guest,
-	        attr->exclude_callchain_kernel,
-	        attr->exclude_callchain_user,
-	        attr->mmap2,
-	        attr->comm_exec,
-	        attr->use_clockid,
-	        attr->context_switch,
-	        attr->write_backward);
+		", sample_id_all=%u"
+		", exclude_host=%u"
+		", exclude_guest=%u"
+		", exclude_callchain_kernel=%u"
+		", exclude_callchain_user=%u"
+		", mmap2=%u"
+		", comm_exec=%u"
+		", use_clockid=%u"
+		", context_switch=%u"
+		", write_backward=%u",
+		attr->mmap_data,
+		attr->sample_id_all,
+		attr->exclude_host,
+		attr->exclude_guest,
+		attr->exclude_callchain_kernel,
+		attr->exclude_callchain_user,
+		attr->mmap2,
+		attr->comm_exec,
+		attr->use_clockid,
+		attr->context_switch,
+		attr->write_backward);
 
 	/*
 	 * Print it only in case it is non-zero, since it may contain flags we
@@ -323,7 +323,7 @@
 	 */
 	if (attr->__reserved_1) {
 		tprintf(", __reserved_1=%#" PRIx64,
-		        (uint64_t) attr->__reserved_1);
+			(uint64_t) attr->__reserved_1);
 		tprints_comment("Bits 63..28");
 	}
 
@@ -335,10 +335,10 @@
 	if (attr->type == PERF_TYPE_BREAKPOINT)
 		/* Any combination of R/W with X is deemed invalid */
 		PRINT_XLAT(", bp_type=", hw_breakpoint_type, attr->bp_type,
-		           (attr->bp_type <=
-		                   (HW_BREAKPOINT_X | HW_BREAKPOINT_RW)) ?
-		                           "HW_BREAKPOINT_INVALID" :
-		                           "HW_BREAKPOINT_???");
+			   (attr->bp_type <=
+				   (HW_BREAKPOINT_X | HW_BREAKPOINT_RW)) ?
+					   "HW_BREAKPOINT_INVALID" :
+					   "HW_BREAKPOINT_???");
 
 	if (attr->type == PERF_TYPE_BREAKPOINT)
 		tprintf(", bp_addr=%#" PRIx64, attr->bp_addr);
@@ -360,7 +360,7 @@
 	if (attr->sample_type & PERF_SAMPLE_BRANCH_STACK) {
 		tprints(", branch_sample_type=");
 		printflags64(perf_branch_sample_type, attr->branch_sample_type,
-		             "PERF_SAMPLE_BRANCH_???");
+			     "PERF_SAMPLE_BRANCH_???");
 	}
 
 	_PERF_CHECK_FIELD(sample_regs_user);
@@ -379,7 +379,7 @@
 	 */
 	if (attr->sample_type & PERF_SAMPLE_STACK_USER)
 		tprintf(", sample_stack_user=%#" PRIx32,
-		        attr->sample_stack_user);
+			attr->sample_stack_user);
 
 	if (attr->use_clockid) {
 		_PERF_CHECK_FIELD(clockid);
diff --git a/perf_event_struct.h b/perf_event_struct.h
index 161f638..b5a15bb 100644
--- a/perf_event_struct.h
+++ b/perf_event_struct.h
@@ -13,34 +13,34 @@
 	};
 	uint64_t sample_type;
 	uint64_t read_format;
-	uint64_t disabled                 :1,
-	         inherit                  :1,
-		 pinned                   :1,
-		 exclusive                :1,
-	         exclude_user             :1,
-	         exclude_kernel           :1,
-	         exclude_hv               :1,
-	         exclude_idle             :1,
-	         mmap                     :1,
-	         comm                     :1,
-	         freq                     :1,
-	         inherit_stat             :1,
-	         enable_on_exec           :1,
-	         task                     :1,
-	         watermark                :1,
-	         precise_ip               :2,
-	         mmap_data                :1,
-	         sample_id_all            :1,
-	         exclude_host             :1,
-	         exclude_guest            :1,
-	         exclude_callchain_kernel :1,
-	         exclude_callchain_user   :1,
-	         mmap2                    :1,
-	         comm_exec                :1,
-	         use_clockid              :1,
-	         context_switch           :1,
-	         write_backward           :1,
-	         __reserved_1             :36;
+	uint64_t disabled			:1,
+		 inherit			:1,
+		 pinned				:1,
+		 exclusive			:1,
+		 exclude_user			:1,
+		 exclude_kernel			:1,
+		 exclude_hv			:1,
+		 exclude_idle			:1,
+		 mmap				:1,
+		 comm				:1,
+		 freq				:1,
+		 inherit_stat			:1,
+		 enable_on_exec			:1,
+		 task				:1,
+		 watermark			:1,
+		 precise_ip			:2,
+		 mmap_data			:1,
+		 sample_id_all			:1,
+		 exclude_host			:1,
+		 exclude_guest			:1,
+		 exclude_callchain_kernel	:1,
+		 exclude_callchain_user		:1,
+		 mmap2				:1,
+		 comm_exec			:1,
+		 use_clockid			:1,
+		 context_switch			:1,
+		 write_backward			:1,
+		 __reserved_1			:36;
 	union {
 		uint32_t wakeup_events;
 		uint32_t wakeup_watermark;
diff --git a/print_fields.h b/print_fields.h
new file mode 100644
index 0000000..92b8a8a
--- /dev/null
+++ b/print_fields.h
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2016-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_PRINT_FIELDS_H
+#define STRACE_PRINT_FIELDS_H
+
+/*
+ * The printf-like function to use in header files
+ * shared between strace and its tests.
+ */
+#ifndef STRACE_PRINTF
+# define STRACE_PRINTF tprintf
+#endif
+
+#define PRINT_FIELD_D(prefix_, where_, field_)				\
+	STRACE_PRINTF("%s%s=%lld", (prefix_), #field_,			\
+		      sign_extend_unsigned_to_ll((where_).field_))
+
+#define PRINT_FIELD_U(prefix_, where_, field_)				\
+	STRACE_PRINTF("%s%s=%llu", (prefix_), #field_,			\
+		      zero_extend_signed_to_ull((where_).field_))
+
+#define PRINT_FIELD_X(prefix_, where_, field_)				\
+	STRACE_PRINTF("%s%s=%#llx", (prefix_), #field_,			\
+		      zero_extend_signed_to_ull((where_).field_))
+
+#define PRINT_FIELD_COOKIE(prefix_, where_, field_)			\
+	STRACE_PRINTF("%s%s=[%llu, %llu]", (prefix_), #field_,		\
+		      zero_extend_signed_to_ull((where_).field_[0]),	\
+		      zero_extend_signed_to_ull((where_).field_[1]))
+
+#define PRINT_FIELD_FLAGS(prefix_, where_, field_, xlat_, dflt_)	\
+	do {								\
+		STRACE_PRINTF("%s%s=", (prefix_), #field_);		\
+		printflags((xlat_), (where_).field_, (dflt_));		\
+	} while (0)
+
+#define PRINT_FIELD_XVAL(prefix_, where_, field_, xlat_, dflt_)		\
+	do {								\
+		STRACE_PRINTF("%s%s=", (prefix_), #field_);		\
+		printxval((xlat_), (where_).field_, (dflt_));		\
+	} while (0)
+
+#endif /* !STRACE_PRINT_FIELDS_H */
diff --git a/print_timespec.c b/print_timespec.c
index 1e99074..c8ab5b7 100644
--- a/print_timespec.c
+++ b/print_timespec.c
@@ -68,6 +68,42 @@
 	}
 }
 
+MPERS_PRINTER_DECL(bool, print_struct_timespec_data_size,
+		   const void *arg, const size_t size)
+{
+	if (size < sizeof(timespec_t)) {
+		tprints("?");
+		return false;
+	}
+
+	print_timespec_t(arg);
+	return true;
+}
+
+MPERS_PRINTER_DECL(bool, print_struct_timespec_array_data_size,
+		   const void *arg, const unsigned int nmemb,
+		   const size_t size)
+{
+	const timespec_t *ts = arg;
+	unsigned int i;
+
+	if (nmemb > size / sizeof(timespec_t)) {
+		tprints("?");
+		return false;
+	}
+
+	tprints("[");
+
+	for (i = 0; i < nmemb; i++) {
+		if (i)
+			tprints(", ");
+		print_timespec_t(&ts[i]);
+	}
+
+	tprints("]");
+	return true;
+}
+
 MPERS_PRINTER_DECL(void, print_timespec,
 		   struct tcb *const tcp, const kernel_ulong_t addr)
 {
diff --git a/print_timeval.c b/print_timeval.c
index 8d62554..8e0708f 100644
--- a/print_timeval.c
+++ b/print_timeval.c
@@ -55,6 +55,18 @@
 	print_timeval_t(arg);
 }
 
+MPERS_PRINTER_DECL(bool, print_struct_timeval_data_size,
+		   const void *arg, const size_t size)
+{
+	if (size < sizeof(timeval_t)) {
+		tprints("?");
+		return false;
+	}
+
+	print_timeval_t(arg);
+	return true;
+}
+
 MPERS_PRINTER_DECL(void, print_timeval,
 		   struct tcb *const tcp, const kernel_ulong_t addr)
 {
diff --git a/printers.h b/printers.h
index c775092..6bf0860 100644
--- a/printers.h
+++ b/printers.h
@@ -60,6 +60,12 @@
  void (*print_sigevent)(struct tcb *const tcp, const kernel_ulong_t addr);
 #define print_sigevent MPERS_PRINTER_NAME(print_sigevent)
 
+ _Bool (*print_struct_timespec_data_size)(const void *arg, const size_t size);
+#define print_struct_timespec_data_size MPERS_PRINTER_NAME(print_struct_timespec_data_size)
+
+ _Bool (*print_struct_timespec_array_data_size)(const void *arg, const unsigned int nmemb, const size_t size);
+#define print_struct_timespec_array_data_size MPERS_PRINTER_NAME(print_struct_timespec_array_data_size)
+
  void (*print_timespec)(struct tcb *const tcp, const kernel_ulong_t addr);
 #define print_timespec MPERS_PRINTER_NAME(print_timespec)
 
@@ -75,6 +81,9 @@
  void (*print_struct_timeval)(const void *arg);
 #define print_struct_timeval MPERS_PRINTER_NAME(print_struct_timeval)
 
+ _Bool (*print_struct_timeval_data_size)(const void *arg, const size_t size);
+#define print_struct_timeval_data_size MPERS_PRINTER_NAME(print_struct_timeval_data_size)
+
  void (*print_timeval)(struct tcb *const tcp, const kernel_ulong_t addr);
 #define print_timeval MPERS_PRINTER_NAME(print_timeval)
 
diff --git a/qualify.c b/qualify.c
index 30888e6..3df4805 100644
--- a/qualify.c
+++ b/qualify.c
@@ -414,18 +414,6 @@
 	}
 }
 
-/*
- * Returns NULL if STR does not start with PREFIX,
- * or a pointer to the first char in STR after PREFIX.
- */
-static const char *
-strip_prefix(const char *prefix, const char *str)
-{
-	size_t len = strlen(prefix);
-
-	return strncmp(prefix, str, len) ? NULL : str + len;
-}
-
 static int
 find_errno_by_name(const char *name)
 {
@@ -446,9 +434,9 @@
 	const char *val;
 	int intval;
 
-	if ((val = strip_prefix("when=", token))) {
+	if ((val = STR_STRIP_PREFIX(token, "when=")) != token) {
 		/*
-		 * 	== 1+1
+		 *	== 1+1
 		 * F	== F+0
 		 * F+	== F+1
 		 * F+S
@@ -476,7 +464,7 @@
 			/* F == F+0 */
 			fopts->step = 0;
 		}
-	} else if ((val = strip_prefix("error=", token))) {
+	} else if ((val = STR_STRIP_PREFIX(token, "error=")) != token) {
 		if (fopts->rval != INJECT_OPTS_RVAL_DEFAULT)
 			return false;
 		intval = string_to_uint_upto(val, MAX_ERRNO_VALUE);
@@ -485,14 +473,16 @@
 		if (intval < 1)
 			return false;
 		fopts->rval = -intval;
-	} else if (!fault_tokens_only && (val = strip_prefix("retval=", token))) {
+	} else if (!fault_tokens_only
+		   && (val = STR_STRIP_PREFIX(token, "retval=")) != token) {
 		if (fopts->rval != INJECT_OPTS_RVAL_DEFAULT)
 			return false;
 		intval = string_to_uint(val);
 		if (intval < 0)
 			return false;
 		fopts->rval = intval;
-	} else if (!fault_tokens_only && (val = strip_prefix("signal=", token))) {
+	} else if (!fault_tokens_only
+		   && (val = STR_STRIP_PREFIX(token, "signal=")) != token) {
 		intval = sigstr_to_uint(val);
 		if (intval < 1 || intval > NSIG_BYTES * 8)
 			return false;
@@ -677,14 +667,14 @@
 	unsigned int i;
 
 	for (i = 0; i < ARRAY_SIZE(qual_options); ++i) {
-		const char *p = qual_options[i].name;
-		unsigned int len = strlen(p);
+		const char *name = qual_options[i].name;
+		const size_t len = strlen(name);
+		const char *val = str_strip_prefix_len(str, name, len);
 
-		if (strncmp(str, p, len) || str[len] != '=')
+		if (val == str || *val != '=')
 			continue;
-
+		str = val + 1;
 		opt = &qual_options[i];
-		str += len + 1;
 		break;
 	}
 
diff --git a/quota.c b/quota.c
index 19f391f..7607ae0 100644
--- a/quota.c
+++ b/quota.c
@@ -30,6 +30,7 @@
  */
 
 #include "defs.h"
+#include "print_fields.h"
 
 #define SUBCMDMASK  0x00ff
 #define SUBCMDSHIFT 8
@@ -55,8 +56,7 @@
  * leads to problems when it is used on 32-bit tracee which does not have such
  * padding.
  */
-struct if_dqblk
-{
+struct if_dqblk {
 	uint64_t dqb_bhardlimit;
 	uint64_t dqb_bsoftlimit;
 	uint64_t dqb_curspace;
@@ -81,10 +81,9 @@
 	uint32_t dqb_id;
 };
 
-struct xfs_dqblk
-{
+struct xfs_dqblk {
 	int8_t  d_version;		/* version of this structure */
-	int8_t  d_flags;		/* XFS_{USER,PROJ,GROUP}_QUOTA */
+	uint8_t  d_flags;		/* XFS_{USER,PROJ,GROUP}_QUOTA */
 	uint16_t d_fieldmask;		/* field specifier */
 	uint32_t d_id;			/* user, project, or group ID */
 	uint64_t d_blk_hardlimit;	/* absolute limit on disk blks */
@@ -107,23 +106,20 @@
 	char    d_padding4[8];		/* yet more padding */
 };
 
-struct if_dqinfo
-{
+struct if_dqinfo {
 	uint64_t dqi_bgrace;
 	uint64_t dqi_igrace;
 	uint32_t dqi_flags;
 	uint32_t dqi_valid;
 };
 
-typedef struct fs_qfilestat
-{
+typedef struct fs_qfilestat {
 	uint64_t qfs_ino;	/* inode number */
 	uint64_t qfs_nblks;	/* number of BBs 512-byte-blks */
 	uint32_t qfs_nextents;	/* number of extents */
 } fs_qfilestat_t;
 
-struct xfs_dqstats
-{
+struct xfs_dqstats {
 	int8_t  qs_version;		/* version number for future changes */
 	uint16_t qs_flags;		/* XFS_QUOTA_{U,P,G}DQ_{ACCT,ENFD} */
 	int8_t  qs_pad;			/* unused */
@@ -158,18 +154,6 @@
 	uint64_t qs_pad2[8];
 };
 
-#define PRINT_FIELD_D(prefix, where, field)	\
-	tprintf("%s%s=%lld", (prefix), #field,	\
-		sign_extend_unsigned_to_ll((where).field))
-
-#define PRINT_FIELD_U(prefix, where, field)	\
-	tprintf("%s%s=%llu", (prefix), #field,	\
-		zero_extend_signed_to_ull((where).field))
-
-#define PRINT_FIELD_X(prefix, where, field)	\
-	tprintf("%s%s=%#llx", (prefix), #field,	\
-		zero_extend_signed_to_ull((where).field))
-
 static int
 decode_cmd_data(struct tcb *tcp, uint32_t id, uint32_t cmd, kernel_ulong_t data)
 {
@@ -213,9 +197,8 @@
 		if (!abbrev(tcp)) {
 			PRINT_FIELD_U(", ", dq, dqb_btime);
 			PRINT_FIELD_U(", ", dq, dqb_itime);
-			tprints(", dqb_valid=");
-			printflags(if_dqblk_valid,
-				   dq.dqb_valid, "QIF_???");
+			PRINT_FIELD_FLAGS(", ", dq, dqb_valid,
+					  if_dqblk_valid, "QIF_???");
 		} else {
 			tprints(", ...");
 		}
@@ -244,9 +227,8 @@
 		if (!abbrev(tcp)) {
 			PRINT_FIELD_U(", ", dq, dqb_btime);
 			PRINT_FIELD_U(", ", dq, dqb_itime);
-			tprints(", dqb_valid=");
-			printflags(if_dqblk_valid,
-				   dq.dqb_valid, "QIF_???");
+			PRINT_FIELD_FLAGS(", ", dq, dqb_valid,
+					  if_dqblk_valid, "QIF_???");
 			PRINT_FIELD_U(", ", dq, dqb_id);
 		} else {
 			PRINT_FIELD_U(", ", dq, dqb_id);
@@ -277,9 +259,8 @@
 		if (umove_or_printaddr(tcp, data, &dq))
 			break;
 		PRINT_FIELD_D("{", dq, d_version);
-		tprints(", d_flags=");
-		printflags(xfs_dqblk_flags,
-			   (uint8_t) dq.d_flags, "XFS_???_QUOTA");
+		PRINT_FIELD_FLAGS(", ", dq, d_flags,
+				  xfs_dqblk_flags, "XFS_???_QUOTA");
 		PRINT_FIELD_X(", ", dq, d_fieldmask);
 		PRINT_FIELD_U(", ", dq, d_id);
 		PRINT_FIELD_U(", ", dq, d_blk_hardlimit);
@@ -340,10 +321,8 @@
 			break;
 		PRINT_FIELD_U("{", dq, dqi_bgrace);
 		PRINT_FIELD_U(", ", dq, dqi_igrace);
-		tprints(", dqi_flags=");
-		printflags(if_dqinfo_flags, dq.dqi_flags, "DQF_???");
-		tprints(", dqi_valid=");
-		printflags(if_dqinfo_valid, dq.dqi_valid, "IIF_???");
+		PRINT_FIELD_FLAGS(", ", dq, dqi_flags, if_dqinfo_flags, "DQF_???");
+		PRINT_FIELD_FLAGS(", ", dq, dqi_valid, if_dqinfo_valid, "IIF_???");
 		tprints("}");
 		break;
 	}
@@ -361,9 +340,8 @@
 			break;
 		PRINT_FIELD_D("{", dq, qs_version);
 		if (!abbrev(tcp)) {
-			tprints(", qs_flags=");
-			printflags(xfs_quota_flags,
-				   dq.qs_flags, "XFS_QUOTA_???");
+			PRINT_FIELD_FLAGS(", ", dq, qs_flags,
+					  xfs_quota_flags, "XFS_QUOTA_???");
 			PRINT_FIELD_U(", ", dq, qs_incoredqs);
 			PRINT_FIELD_U(", qs_uquota={", dq.qs_uquota, qfs_ino);
 			PRINT_FIELD_U(", ", dq.qs_uquota, qfs_nblks);
@@ -396,9 +374,8 @@
 			break;
 		PRINT_FIELD_D("{", dq, qs_version);
 		if (!abbrev(tcp)) {
-			tprints(", qs_flags=");
-			printflags(xfs_quota_flags,
-				   dq.qs_flags, "XFS_QUOTA_???");
+			PRINT_FIELD_FLAGS(", ", dq, qs_flags,
+					  xfs_quota_flags, "XFS_QUOTA_???");
 			PRINT_FIELD_U(", ", dq, qs_incoredqs);
 			PRINT_FIELD_U(", qs_uquota={", dq.qs_uquota, qfs_ino);
 			PRINT_FIELD_U(", ", dq.qs_uquota, qfs_nblks);
diff --git a/resource.c b/resource.c
index ab36752..27d653e 100644
--- a/resource.c
+++ b/resource.c
@@ -120,8 +120,7 @@
 	if (entering(tcp)) {
 		printxval(resources, tcp->u_arg[0], "RLIMIT_???");
 		tprints(", ");
-	}
-	else {
+	} else {
 		decode_rlimit(tcp, tcp->u_arg[1]);
 	}
 	return 0;
@@ -157,8 +156,7 @@
 	if (entering(tcp)) {
 		printxval(usagewho, tcp->u_arg[0], "RUSAGE_???");
 		tprints(", ");
-	}
-	else
+	} else
 		printrusage(tcp, tcp->u_arg[1]);
 	return 0;
 }
@@ -169,8 +167,7 @@
 	if (entering(tcp)) {
 		printxval(usagewho, tcp->u_arg[0], "RUSAGE_???");
 		tprints(", ");
-	}
-	else
+	} else
 		printrusage32(tcp, tcp->u_arg[1]);
 	return 0;
 }
diff --git a/scno.am b/scno.am
new file mode 100644
index 0000000..ee3db59
--- /dev/null
+++ b/scno.am
@@ -0,0 +1,44 @@
+# scno.h make rules for strace.
+#
+# 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.
+
+SCNO_CPPFLAGS = $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+		$(ARCH_MFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS)
+
+syscallent.i: $(top_builddir)/config.h $(top_srcdir)/$(OS)/$(ARCH)/syscallent.h
+	$(CPP) -P $(SCNO_CPPFLAGS) -include $^ -o $@
+
+digits = [[:digit:]][[:digit:]]*
+al_nums = [[:alnum:]_][[:alnum:]_]*
+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
+
+scno.h: $(top_srcdir)/scno.head syscallent.i
+	echo '/* Generated by Makefile from $^; do not edit. */' > $@-t
+	cat $< >> $@-t
+	LC_ALL=C sed -n '$(SCNO_SED)' $(filter-out $<,$^) >> $@-t
+	mv $@-t $@
+
+CLEANFILES += syscallent.i scno.h
diff --git a/signal.c b/signal.c
index 2c21f90..b14124e 100644
--- a/signal.c
+++ b/signal.c
@@ -6,7 +6,7 @@
  * Copyright (c) 1999 IBM Deutschland Entwicklung GmbH, IBM Corporation
  *                     Linux for s390 port by D.J. Barrow
  *                    <barrow_dj@mail.yahoo.com,djbarrow@de.ibm.com>
- * Copyright (C) 2001-2017 The strace developers.
+ * Copyright (c) 2001-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -289,8 +289,7 @@
 {
 	if (entering(tcp)) {
 		tprint_old_sigmask_val("", (unsigned) tcp->u_arg[0]);
-	}
-	else if (!syserror(tcp)) {
+	} else if (!syserror(tcp)) {
 		tcp->auxstr = sprint_old_sigmask_val("old mask ",
 						     (unsigned) tcp->u_rval);
 		return RVAL_HEX | RVAL_STR;
@@ -300,30 +299,25 @@
 
 struct old_sigaction {
 	/* sa_handler may be a libc #define, need to use other name: */
-#ifdef MIPS
+#if defined MIPS
 	unsigned int sa_flags;
 	unsigned long sa_handler__;
-	/* Kernel treats sa_mask as an array of longs. */
-	unsigned long sa_mask[NSIG / sizeof(long)];
+	unsigned long sa_mask;
+#elif defined ALPHA
+	unsigned long sa_handler__;
+	unsigned long sa_mask;
+	unsigned int sa_flags;
 #else
 	unsigned long sa_handler__;
 	unsigned long sa_mask;
 	unsigned long sa_flags;
-#endif /* !MIPS */
-#if HAVE_SA_RESTORER
 	unsigned long sa_restorer;
 #endif
-};
-
-struct old_sigaction32 {
-	/* sa_handler may be a libc #define, need to use other name: */
-	uint32_t sa_handler__;
-	uint32_t sa_mask;
-	uint32_t sa_flags;
-#if HAVE_SA_RESTORER
-	uint32_t sa_restorer;
+}
+#ifdef ALPHA
+	ATTRIBUTE_PACKED
 #endif
-};
+;
 
 static void
 decode_old_sigaction(struct tcb *const tcp, const kernel_ulong_t addr)
@@ -332,7 +326,12 @@
 
 #ifndef current_wordsize
 	if (current_wordsize < sizeof(sa.sa_handler__)) {
-		struct old_sigaction32 sa32;
+		struct old_sigaction32 {
+			uint32_t sa_handler__;
+			uint32_t sa_mask;
+			uint32_t sa_flags;
+			uint32_t sa_restorer;
+		} sa32;
 
 		if (umove_or_printaddr(tcp, addr, &sa32))
 			return;
@@ -340,9 +339,7 @@
 		memset(&sa, 0, sizeof(sa));
 		sa.sa_handler__ = sa32.sa_handler__;
 		sa.sa_flags = sa32.sa_flags;
-#if HAVE_SA_RESTORER && defined SA_RESTORER
 		sa.sa_restorer = sa32.sa_restorer;
-#endif
 		sa.sa_mask = sa32.sa_mask;
 	} else
 #endif
@@ -352,15 +349,11 @@
 	tprints("{sa_handler=");
 	print_sa_handler(sa.sa_handler__);
 	tprints(", sa_mask=");
-#ifdef MIPS
-	tprintsigmask_addr("", sa.sa_mask);
-#else
-	tprintsigmask_val("", sa.sa_mask);
-#endif
+	tprint_old_sigmask_val("", sa.sa_mask);
 	tprints(", sa_flags=");
 	printflags(sigact_flags, sa.sa_flags, "SA_???");
-#if HAVE_SA_RESTORER && defined SA_RESTORER
-	if (sa.sa_flags & SA_RESTORER) {
+#if !(defined ALPHA || defined MIPS)
+	if (sa.sa_flags & 0x04000000U) {
 		tprints(", sa_restorer=");
 		printaddr(sa.sa_restorer);
 	}
@@ -371,7 +364,14 @@
 SYS_FUNC(sigaction)
 {
 	if (entering(tcp)) {
-		printsignal(tcp->u_arg[0]);
+		int signo = tcp->u_arg[0];
+#if defined SPARC || defined SPARC64
+		if (signo < 0) {
+			tprints("-");
+			signo = -signo;
+		}
+#endif
+		printsignal(signo);
 		tprints(", ");
 		decode_old_sigaction(tcp, tcp->u_arg[1]);
 		tprints(", ");
@@ -415,42 +415,46 @@
 	return RVAL_DECODED;
 }
 
-/* "Old" sigprocmask, which operates with word-sized signal masks */
-SYS_FUNC(sigprocmask)
+#ifdef ALPHA
+/*
+ * The OSF/1 sigprocmask is different: it doesn't pass in two pointers,
+ * but rather passes in the new bitmask as an argument and then returns
+ * the old bitmask.  This "works" because we only have 64 signals to worry
+ * about.  If you want more, use of the rt_sigprocmask syscall is required.
+ *
+ * Alpha:
+ *	old = osf_sigprocmask(how, new);
+ * Everyone else:
+ *	ret = sigprocmask(how, &new, &old, ...);
+ */
+SYS_FUNC(osf_sigprocmask)
 {
-# ifdef ALPHA
 	if (entering(tcp)) {
-		/*
-		 * Alpha/OSF is different: it doesn't pass in two pointers,
-		 * but rather passes in the new bitmask as an argument and
-		 * then returns the old bitmask.  This "works" because we
-		 * only have 64 signals to worry about.  If you want more,
-		 * use of the rt_sigprocmask syscall is required.
-		 * Alpha:
-		 *	old = osf_sigprocmask(how, new);
-		 * Everyone else:
-		 *	ret = sigprocmask(how, &new, &old, ...);
-		 */
 		printxval(sigprocmaskcmds, tcp->u_arg[0], "SIG_???");
 		tprintsigmask_val(", ", tcp->u_arg[1]);
-	}
-	else if (!syserror(tcp)) {
+	} else if (!syserror(tcp)) {
 		tcp->auxstr = sprintsigmask_val("old mask ", tcp->u_rval);
 		return RVAL_HEX | RVAL_STR;
 	}
-# else /* !ALPHA */
+	return 0;
+}
+
+#else /* !ALPHA */
+
+/* "Old" sigprocmask, which operates with word-sized signal masks */
+SYS_FUNC(sigprocmask)
+{
 	if (entering(tcp)) {
 		printxval(sigprocmaskcmds, tcp->u_arg[0], "SIG_???");
 		tprints(", ");
 		print_sigset_addr_len(tcp, tcp->u_arg[1], current_wordsize);
 		tprints(", ");
-	}
-	else {
+	} else {
 		print_sigset_addr_len(tcp, tcp->u_arg[2], current_wordsize);
 	}
-# endif /* !ALPHA */
 	return 0;
 }
+#endif /* !ALPHA */
 
 SYS_FUNC(kill)
 {
@@ -486,8 +490,7 @@
 		tprints(", ");
 		print_sigset_addr_len(tcp, tcp->u_arg[1], tcp->u_arg[3]);
 		tprints(", ");
-	}
-	else {
+	} else {
 		print_sigset_addr_len(tcp, tcp->u_arg[2], tcp->u_arg[3]);
 		tprintf(", %" PRI_klu, tcp->u_arg[3]);
 	}
@@ -495,8 +498,7 @@
 }
 
 /* Structure describing the action to be taken when a signal arrives.  */
-struct new_sigaction
-{
+struct new_sigaction {
 	/* sa_handler may be a libc #define, need to use other name: */
 #ifdef MIPS
 	unsigned int sa_flags;
@@ -512,8 +514,7 @@
 	unsigned long sa_mask[NSIG / sizeof(long)];
 };
 /* Same for i386-on-x86_64 and similar cases */
-struct new_sigaction32
-{
+struct new_sigaction32 {
 	uint32_t sa_handler__;
 	uint32_t sa_flags;
 #if HAVE_SA_RESTORER
diff --git a/sockaddr.c b/sockaddr.c
index 174108c..bfbe585 100644
--- a/sockaddr.c
+++ b/sockaddr.c
@@ -35,7 +35,7 @@
 #include <netinet/in.h>
 #include <arpa/inet.h>
 
-#include <linux/netlink.h>
+#include "netlink.h"
 #include <linux/if_packet.h>
 #include <linux/if_arp.h>
 #include <linux/if_ether.h>
@@ -81,6 +81,34 @@
 	}
 }
 
+bool
+print_inet_addr(const int af,
+		const void *const addr,
+		const unsigned int len,
+		const char *const var_name)
+{
+	const char *af_name = NULL;
+	char buf[INET6_ADDRSTRLEN];
+
+	switch (af) {
+	case AF_INET:
+		af_name = "AF_INET";
+		break;
+	case AF_INET6:
+		af_name = "AF_INET6";
+		break;
+	}
+
+	if (af_name && inet_ntop(af, addr, buf, sizeof(buf))) {
+		tprintf("inet_pton(%s, \"%s\", &%s)", af_name, buf, var_name);
+		return true;
+	} else {
+		tprintf("%s=", var_name);
+		print_quoted_string(addr, len, 0);
+		return false;
+	}
+}
+
 static void
 print_sockaddr_data_in(const void *const buf, const int addrlen)
 {
@@ -97,13 +125,10 @@
 {
 	const struct sockaddr_in6 *const sa_in6 = buf;
 
-	char string_addr[100];
-	inet_ntop(AF_INET6, &sa_in6->sin6_addr,
-		  string_addr, sizeof(string_addr));
-	tprintf("sin6_port=htons(%u), inet_pton(AF_INET6"
-		", \"%s\", &sin6_addr), sin6_flowinfo=htonl(%u)",
-		ntohs(sa_in6->sin6_port), string_addr,
-		ntohl(sa_in6->sin6_flowinfo));
+	tprintf("sin6_port=htons(%u), ", ntohs(sa_in6->sin6_port));
+	print_inet_addr(AF_INET6, &sa_in6->sin6_addr,
+			sizeof(sa_in6->sin6_addr), "sin6_addr");
+	tprintf(", sin6_flowinfo=htonl(%u)", ntohl(sa_in6->sin6_flowinfo));
 
 	if (addrlen <= (int) SIN6_MIN_LEN)
 		return;
diff --git a/socketutils.c b/socketutils.c
index ef8269c..ce4e524 100644
--- a/socketutils.c
+++ b/socketutils.c
@@ -31,22 +31,21 @@
 #include <netinet/in.h>
 #include <sys/socket.h>
 #include <arpa/inet.h>
-#include <linux/netlink.h>
+#include "netlink.h"
 #include <linux/sock_diag.h>
 #include <linux/inet_diag.h>
 #include <linux/unix_diag.h>
 #include <linux/netlink_diag.h>
 #include <linux/rtnetlink.h>
+#if HAVE_LINUX_GENETLINK_H
+#include <linux/genetlink.h>
+#endif
 
 #include <sys/un.h>
 #ifndef UNIX_PATH_MAX
 # define UNIX_PATH_MAX sizeof(((struct sockaddr_un *) 0)->sun_path)
 #endif
 
-#ifndef NETLINK_SOCK_DIAG
-# define NETLINK_SOCK_DIAG 4
-#endif
-
 typedef struct {
 	unsigned long inode;
 	char *details;
@@ -57,23 +56,29 @@
 #define CACHE_MASK (CACHE_SIZE - 1)
 
 static int
-cache_and_print_inode_details(const unsigned long inode, char *const details)
+cache_inode_details(const unsigned long inode, char *const details)
 {
 	cache_entry *e = &cache[inode & CACHE_MASK];
 	free(e->details);
 	e->inode = inode;
 	e->details = details;
 
-	tprints(details);
 	return 1;
 }
 
-bool
-print_sockaddr_by_inode_cached(const unsigned long inode)
+static const char *
+get_sockaddr_by_inode_cached(const unsigned long inode)
 {
 	const cache_entry *const e = &cache[inode & CACHE_MASK];
-	if (e && inode == e->inode) {
-		tprints(e->details);
+	return (e && inode == e->inode) ? e->details : NULL;
+}
+
+static bool
+print_sockaddr_by_inode_cached(const unsigned long inode)
+{
+	const char *const details = get_sockaddr_by_inode_cached(inode);
+	if (details) {
+		tprints(details);
 		return true;
 	}
 	return false;
@@ -128,9 +133,10 @@
 }
 
 static int
-inet_parse_response(const char *const proto_name, const void *const data,
-		    const int data_len, const unsigned long inode)
+inet_parse_response(const void *const data, const int data_len,
+		    const unsigned long inode, void *opaque_data)
 {
+	const char *const proto_name = opaque_data;
 	const struct inet_diag_msg *const diag_msg = data;
 	static const char zero_addr[sizeof(struct in6_addr)];
 	socklen_t addr_size, text_size;
@@ -140,7 +146,7 @@
 	if (diag_msg->idiag_inode != inode)
 		return 0;
 
-	switch(diag_msg->idiag_family) {
+	switch (diag_msg->idiag_family) {
 		case AF_INET:
 			addr_size = sizeof(struct in_addr);
 			text_size = INET_ADDRSTRLEN;
@@ -178,14 +184,15 @@
 			return false;
 	}
 
-	return cache_and_print_inode_details(inode, details);
+	return cache_inode_details(inode, details);
 }
 
 static bool
 receive_responses(const int fd, const unsigned long inode,
-		  const char *proto_name,
-		  int (* parser) (const char *, const void *,
-				  int, unsigned long))
+		  const unsigned long expected_msg_type,
+		  int (*parser)(const void *, int,
+				unsigned long, void *),
+		  void *opaque_data)
 {
 	static union {
 		struct nlmsghdr hdr;
@@ -220,10 +227,10 @@
 		if (!NLMSG_OK(h, ret))
 			return false;
 		for (; NLMSG_OK(h, ret); h = NLMSG_NEXT(h, ret)) {
-			if (h->nlmsg_type != SOCK_DIAG_BY_FAMILY)
+			if (h->nlmsg_type != expected_msg_type)
 				return false;
-			const int rc = parser(proto_name, NLMSG_DATA(h),
-					      h->nlmsg_len, inode);
+			const int rc = parser(NLMSG_DATA(h),
+					      h->nlmsg_len, inode, opaque_data);
 			if (rc > 0)
 				return true;
 			if (rc < 0)
@@ -234,14 +241,6 @@
 }
 
 static bool
-inet_print(const int fd, const int family, const int protocol,
-	   const unsigned long inode, const char *proto_name)
-{
-	return inet_send_query(fd, family, protocol)
-		&& receive_responses(fd, inode, proto_name, inet_parse_response);
-}
-
-static bool
 unix_send_query(const int fd, const unsigned long inode)
 {
 	struct {
@@ -264,9 +263,10 @@
 }
 
 static int
-unix_parse_response(const char *proto_name, const void *data,
-		    const int data_len, const unsigned long inode)
+unix_parse_response(const void *data, const int data_len,
+		    const unsigned long inode, void *opaque_data)
 {
+	const char *proto_name = opaque_data;
 	const struct unix_diag_msg *diag_msg = data;
 	struct rtattr *attr;
 	int rta_len = data_len - NLMSG_LENGTH(sizeof(*diag_msg));
@@ -337,7 +337,7 @@
 		     peer_str, path_str) < 0)
 		return -1;
 
-	return cache_and_print_inode_details(inode, details);
+	return cache_inode_details(inode, details);
 }
 
 static bool
@@ -362,9 +362,10 @@
 }
 
 static int
-netlink_parse_response(const char *proto_name, const void *data,
-		    const int data_len, const unsigned long inode)
+netlink_parse_response(const void *data, const int data_len,
+		       const unsigned long inode, void *opaque_data)
 {
+	const char *proto_name = opaque_data;
 	const struct netlink_diag_msg *const diag_msg = data;
 	const char *netlink_proto;
 	char *details;
@@ -381,12 +382,7 @@
 				diag_msg->ndiag_protocol);
 
 	if (netlink_proto) {
-		static const char netlink_prefix[] = "NETLINK_";
-		const size_t netlink_prefix_len =
-			sizeof(netlink_prefix) -1;
-		if (strncmp(netlink_proto, netlink_prefix,
-			    netlink_prefix_len) == 0)
-			netlink_proto += netlink_prefix_len;
+		netlink_proto = STR_STRIP_PREFIX(netlink_proto, "NETLINK_");
 		if (asprintf(&details, "%s:[%s:%u]", proto_name,
 			     netlink_proto, diag_msg->ndiag_portid) < 0)
 			return -1;
@@ -396,58 +392,71 @@
 			return -1;
 	}
 
-	return cache_and_print_inode_details(inode, details);
+	return cache_inode_details(inode, details);
 }
 
-static bool
-unix_print(const int fd, const unsigned long inode)
+static const char *
+unix_get(const int fd, const unsigned long inode)
 {
 	return unix_send_query(fd, inode)
-		&& receive_responses(fd, inode, "UNIX", unix_parse_response);
+		&& receive_responses(fd, inode, SOCK_DIAG_BY_FAMILY,
+				     unix_parse_response, (void *) "UNIX")
+		? get_sockaddr_by_inode_cached(inode) : NULL;
 }
 
-static bool
-tcp_v4_print(const int fd, const unsigned long inode)
+static const char *
+inet_get(const int fd, const int family, const int protocol,
+	 const unsigned long inode, const char *proto_name)
 {
-	return inet_print(fd, AF_INET, IPPROTO_TCP, inode, "TCP");
+	return inet_send_query(fd, family, protocol)
+		&& receive_responses(fd, inode, SOCK_DIAG_BY_FAMILY,
+				     inet_parse_response, (void *) proto_name)
+		? get_sockaddr_by_inode_cached(inode) : NULL;
 }
 
-static bool
-udp_v4_print(const int fd, const unsigned long inode)
+static const char *
+tcp_v4_get(const int fd, const unsigned long inode)
 {
-	return inet_print(fd, AF_INET, IPPROTO_UDP, inode, "UDP");
+	return inet_get(fd, AF_INET, IPPROTO_TCP, inode, "TCP");
 }
 
-static bool
-tcp_v6_print(const int fd, const unsigned long inode)
+static const char *
+udp_v4_get(const int fd, const unsigned long inode)
 {
-	return inet_print(fd, AF_INET6, IPPROTO_TCP, inode, "TCPv6");
+	return inet_get(fd, AF_INET, IPPROTO_UDP, inode, "UDP");
 }
 
-static bool
-udp_v6_print(const int fd, const unsigned long inode)
+static const char *
+tcp_v6_get(const int fd, const unsigned long inode)
 {
-	return inet_print(fd, AF_INET6, IPPROTO_UDP, inode, "UDPv6");
+	return inet_get(fd, AF_INET6, IPPROTO_TCP, inode, "TCPv6");
 }
 
-static bool
-netlink_print(const int fd, const unsigned long inode)
+static const char *
+udp_v6_get(const int fd, const unsigned long inode)
+{
+	return inet_get(fd, AF_INET6, IPPROTO_UDP, inode, "UDPv6");
+}
+
+static const char *
+netlink_get(const int fd, const unsigned long inode)
 {
 	return netlink_send_query(fd, inode)
-		&& receive_responses(fd, inode, "NETLINK",
-				     netlink_parse_response);
+		&& receive_responses(fd, inode, SOCK_DIAG_BY_FAMILY,
+				     netlink_parse_response, (void *) "NETLINK")
+		? get_sockaddr_by_inode_cached(inode) : NULL;
 }
 
 static const struct {
 	const char *const name;
-	bool (*const print)(int, unsigned long);
+	const char * (*const get)(int, unsigned long);
 } protocols[] = {
-	[SOCK_PROTO_UNIX] = { "UNIX", unix_print },
-	[SOCK_PROTO_TCP] = { "TCP", tcp_v4_print },
-	[SOCK_PROTO_UDP] = { "UDP", udp_v4_print },
-	[SOCK_PROTO_TCPv6] = { "TCPv6", tcp_v6_print },
-	[SOCK_PROTO_UDPv6] = { "UDPv6", udp_v6_print },
-	[SOCK_PROTO_NETLINK] = { "NETLINK", netlink_print }
+	[SOCK_PROTO_UNIX] = { "UNIX", unix_get },
+	[SOCK_PROTO_TCP] = { "TCP", tcp_v4_get },
+	[SOCK_PROTO_UDP] = { "UDP", udp_v4_get },
+	[SOCK_PROTO_TCPv6] = { "TCPv6", tcp_v6_get },
+	[SOCK_PROTO_UDPv6] = { "UDPv6", udp_v6_get },
+	[SOCK_PROTO_NETLINK] = { "NETLINK", netlink_get }
 };
 
 enum sock_proto
@@ -462,39 +471,179 @@
 	return SOCK_PROTO_UNKNOWN;
 }
 
-/* Given an inode number of a socket, print out the details
- * of the ip address and port. */
-
-bool
-print_sockaddr_by_inode(const unsigned long inode, const enum sock_proto proto)
+static const char *
+get_sockaddr_by_inode_uncached(const unsigned long inode,
+			       const enum sock_proto proto)
 {
 	if ((unsigned int) proto >= ARRAY_SIZE(protocols) ||
-	    (proto != SOCK_PROTO_UNKNOWN && !protocols[proto].print))
-		return false;
+	    (proto != SOCK_PROTO_UNKNOWN && !protocols[proto].get))
+		return NULL;
 
 	const int fd = socket(AF_NETLINK, SOCK_RAW, NETLINK_SOCK_DIAG);
 	if (fd < 0)
-		return false;
-	bool r = false;
+		return NULL;
+	const char *details = NULL;
 
 	if (proto != SOCK_PROTO_UNKNOWN) {
-		r = protocols[proto].print(fd, inode);
-		if (!r) {
-			tprintf("%s:[%lu]", protocols[proto].name, inode);
-			r = true;
-		}
+		details = protocols[proto].get(fd, inode);
 	} else {
 		unsigned int i;
 		for (i = (unsigned int) SOCK_PROTO_UNKNOWN + 1;
 		     i < ARRAY_SIZE(protocols); ++i) {
-			if (!protocols[i].print)
+			if (!protocols[i].get)
 				continue;
-			r = protocols[i].print(fd, inode);
-			if (r)
+			details = protocols[i].get(fd, inode);
+			if (details)
 				break;
 		}
 	}
 
 	close(fd);
-	return r;
+	return details;
 }
+
+static bool
+print_sockaddr_by_inode_uncached(const unsigned long inode,
+				 const enum sock_proto proto)
+{
+	const char *details = get_sockaddr_by_inode_uncached(inode, proto);
+
+	if (details) {
+		tprints(details);
+		return true;
+	}
+
+	if ((unsigned int) proto < ARRAY_SIZE(protocols) &&
+	    protocols[proto].name) {
+		tprintf("%s:[%lu]", protocols[proto].name, inode);
+		return true;
+	}
+
+	return false;
+}
+
+/* Given an inode number of a socket, return its protocol details.  */
+const char *
+get_sockaddr_by_inode(struct tcb *const tcp, const int fd,
+		      const unsigned long inode)
+{
+	const char *details = get_sockaddr_by_inode_cached(inode);
+	return details ? details :
+		get_sockaddr_by_inode_uncached(inode, getfdproto(tcp, fd));
+}
+
+/* Given an inode number of a socket, print out its protocol details.  */
+bool
+print_sockaddr_by_inode(struct tcb *const tcp, const int fd,
+			const unsigned long inode)
+{
+	return print_sockaddr_by_inode_cached(inode) ? true :
+		print_sockaddr_by_inode_uncached(inode, getfdproto(tcp, fd));
+}
+
+#ifdef HAVE_LINUX_GENETLINK_H
+/*
+ * Managing the cache for decoding communications of Netlink GENERIC protocol
+ *
+ * As name shown Netlink GENERIC protocol is generic protocol. The
+ * numbers of msg types used in the protocol are not defined
+ * statically. Kernel defines them on demand.  So the xlat converted
+ * from header files doesn't help for decoding the protocol. Following
+ * codes are building xlat(dyxlat) at runtime.
+ */
+static bool
+genl_send_dump_families(const int fd)
+{
+	struct {
+		const struct nlmsghdr nlh;
+		struct genlmsghdr gnlh;
+	} req = {
+		.nlh = {
+			.nlmsg_len = sizeof(req),
+			.nlmsg_type = GENL_ID_CTRL,
+			.nlmsg_flags = NLM_F_DUMP | NLM_F_REQUEST,
+		},
+		.gnlh = {
+			.cmd = CTRL_CMD_GETFAMILY,
+		}
+	};
+	return send_query(fd, &req, sizeof(req));
+}
+
+static int
+genl_parse_families_response(const void *const data,
+			     const int data_len, const unsigned long inode,
+			     void *opaque_data)
+{
+	struct dyxlat *const dyxlat = opaque_data;
+	const struct genlmsghdr *const gnlh = data;
+	struct rtattr *attr;
+	int rta_len = data_len - NLMSG_LENGTH(sizeof(*gnlh));
+
+	char *name = NULL;
+	unsigned int name_len = 0;
+	uint16_t *id = NULL;
+
+	if (rta_len < 0)
+		return -1;
+	if (gnlh->cmd != CTRL_CMD_NEWFAMILY)
+		return -1;
+	if (gnlh->version != 2)
+		return -1;
+
+	for (attr = (struct rtattr *) (gnlh + 1);
+	     RTA_OK(attr, rta_len);
+	     attr = RTA_NEXT(attr, rta_len)) {
+		switch (attr->rta_type) {
+		case CTRL_ATTR_FAMILY_NAME:
+			if (!name) {
+				name = RTA_DATA(attr);
+				name_len = RTA_PAYLOAD(attr);
+			}
+			break;
+		case CTRL_ATTR_FAMILY_ID:
+			if (!id && RTA_PAYLOAD(attr) == sizeof(*id))
+				id = RTA_DATA(attr);
+			break;
+		}
+
+		if (name && id) {
+			dyxlat_add_pair(dyxlat, *id, name, name_len);
+			name = NULL;
+			id = NULL;
+		}
+	}
+
+	return 0;
+}
+
+const struct xlat *
+genl_families_xlat(void)
+{
+	static struct dyxlat *dyxlat;
+
+	if (!dyxlat) {
+		dyxlat = dyxlat_alloc(32);
+
+		int fd = socket(AF_NETLINK, SOCK_RAW, NETLINK_GENERIC);
+		if (fd < 0)
+			goto out;
+
+		if (genl_send_dump_families(fd))
+			receive_responses(fd, 0, GENL_ID_CTRL,
+					  genl_parse_families_response, dyxlat);
+		close(fd);
+	}
+
+out:
+	return dyxlat_get(dyxlat);
+}
+
+#else /* !HAVE_LINUX_GENETLINK_H */
+
+const struct xlat *
+genl_families_xlat(void)
+{
+	return NULL;
+}
+#endif
diff --git a/statx.c b/statx.c
index 6e91387..c78b173 100644
--- a/statx.c
+++ b/statx.c
@@ -26,6 +26,7 @@
  */
 
 #include "defs.h"
+#include "print_fields.h"
 #include "statx.h"
 
 #include <sys/stat.h>
@@ -54,9 +55,6 @@
 		printflags(statx_masks, tcp->u_arg[3], "STATX_???");
 		tprints(", ");
 	} else {
-#define PRINT_FIELD_U(field) \
-	tprintf(", %s=%llu", #field, (unsigned long long) stx.field)
-
 #define PRINT_FIELD_TIME(field)						\
 	do {								\
 		tprintf(", " #field "={tv_sec=%" PRId64			\
@@ -74,13 +72,13 @@
 		printflags(statx_masks, stx.stx_mask, "STATX_???");
 
 		if (!abbrev(tcp))
-			PRINT_FIELD_U(stx_blksize);
+			PRINT_FIELD_U(", ", stx, stx_blksize);
 
 		tprints(", stx_attributes=");
 		printflags(statx_attrs, stx.stx_attributes, "STATX_ATTR_???");
 
 		if (!abbrev(tcp)) {
-			PRINT_FIELD_U(stx_nlink);
+			PRINT_FIELD_U(", ", stx, stx_nlink);
 			printuid(", stx_uid=", stx.stx_uid);
 			printuid(", stx_gid=", stx.stx_gid);
 		}
@@ -89,12 +87,12 @@
 		print_symbolic_mode_t(stx.stx_mode);
 
 		if (!abbrev(tcp))
-			PRINT_FIELD_U(stx_ino);
+			PRINT_FIELD_U(", ", stx, stx_ino);
 
-		PRINT_FIELD_U(stx_size);
+		PRINT_FIELD_U(", ", stx, stx_size);
 
 		if (!abbrev(tcp)) {
-			PRINT_FIELD_U(stx_blocks);
+			PRINT_FIELD_U(", ", stx, stx_blocks);
 
 			tprints(", stx_attributes_mask=");
 			printflags(statx_attrs, stx.stx_attributes_mask,
@@ -104,10 +102,10 @@
 			PRINT_FIELD_TIME(stx_btime);
 			PRINT_FIELD_TIME(stx_ctime);
 			PRINT_FIELD_TIME(stx_mtime);
-			PRINT_FIELD_U(stx_rdev_major);
-			PRINT_FIELD_U(stx_rdev_minor);
-			PRINT_FIELD_U(stx_dev_major);
-			PRINT_FIELD_U(stx_dev_minor);
+			PRINT_FIELD_U(", ", stx, stx_rdev_major);
+			PRINT_FIELD_U(", ", stx, stx_rdev_minor);
+			PRINT_FIELD_U(", ", stx, stx_dev_major);
+			PRINT_FIELD_U(", ", stx, stx_dev_minor);
 		} else {
 			tprints(", ...");
 		}
diff --git a/statx.h b/statx.h
index 2037287..bd5b047 100644
--- a/statx.h
+++ b/statx.h
@@ -40,7 +40,7 @@
 	uint32_t stx_mask; /* What results were written [uncond] */
 	uint32_t stx_blksize; /* Preferred general I/O size [uncond] */
 	uint64_t stx_attributes; /* Flags conveying information about the file
-	                            [uncond] */
+				    [uncond] */
 
 	uint32_t stx_nlink; /* Number of hard links */
 	uint32_t stx_uid; /* User ID of owner */
@@ -52,7 +52,7 @@
 	uint64_t stx_size; /* File size */
 	uint64_t stx_blocks; /* Number of 512-byte blocks allocated */
 	uint64_t stx_attributes_mask; /* Mask to show what's supported in
-	                                 stx_attributes */
+					 stx_attributes */
 
 	struct_statx_timestamp stx_atime; /* Last access time */
 	struct_statx_timestamp stx_btime; /* File creation time */
diff --git a/strace-graph b/strace-graph
index 9056dce..045f5e4 100755
--- a/strace-graph
+++ b/strace-graph
@@ -9,7 +9,8 @@
 # The script can also handle the output with strace -t, -tt, or -ttt.
 # It will add elapsed time for each process in that case.
 
-# This script is Copyright (C) 1998 by Richard Braakman <dark@xs4all.nl>.
+# Copyright (c) 1998 by Richard Braakman <dark@xs4all.nl>.
+# Copyright (c) 1998-2017 The strace developers.
 
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions
diff --git a/strace.c b/strace.c
index fc16551..955a1c9 100644
--- a/strace.c
+++ b/strace.c
@@ -57,7 +57,7 @@
 
 #ifdef USE_LIBUNWIND
 /* if this is true do the stack trace for every system call */
-bool stack_trace_enabled = false;
+bool stack_trace_enabled;
 #endif
 
 #define my_tkill(tid, sig) syscall(__NR_tkill, (tid), (sig))
@@ -74,27 +74,27 @@
 const unsigned int syscall_trap_sig = SIGTRAP | 0x80;
 
 cflag_t cflag = CFLAG_NONE;
-unsigned int followfork = 0;
+unsigned int followfork;
 unsigned int ptrace_setoptions = PTRACE_O_TRACESYSGOOD | PTRACE_O_TRACEEXEC
 				 | PTRACE_O_TRACEEXIT;
-unsigned int xflag = 0;
-bool debug_flag = 0;
-bool Tflag = 0;
-bool iflag = 0;
-bool count_wallclock = 0;
-unsigned int qflag = 0;
-static unsigned int tflag = 0;
-static bool rflag = 0;
-static bool print_pid_pfx = 0;
+unsigned int xflag;
+bool debug_flag;
+bool Tflag;
+bool iflag;
+bool count_wallclock;
+unsigned int qflag;
+static unsigned int tflag;
+static bool rflag;
+static bool print_pid_pfx;
 
 /* -I n */
 enum {
-    INTR_NOT_SET        = 0,
-    INTR_ANYWHERE       = 1, /* don't block/ignore any signals */
-    INTR_WHILE_WAIT     = 2, /* block fatal signals while decoding syscall. default */
-    INTR_NEVER          = 3, /* block fatal signals. default if '-o FILE PROG' */
-    INTR_BLOCK_TSTP_TOO = 4, /* block fatal signals and SIGTSTP (^Z) */
-    NUM_INTR_OPTS
+	INTR_NOT_SET        = 0,
+	INTR_ANYWHERE       = 1, /* don't block/ignore any signals */
+	INTR_WHILE_WAIT     = 2, /* block fatal signals while decoding syscall. default */
+	INTR_NEVER          = 3, /* block fatal signals. default if '-o FILE PROG' */
+	INTR_BLOCK_TSTP_TOO = 4, /* block fatal signals and SIGTSTP (^Z) */
+	NUM_INTR_OPTS
 };
 static int opt_intr;
 /* We play with signal mask only if this mode is active: */
@@ -112,7 +112,7 @@
  * wait() etc. Without -D, strace process gets lodged in between,
  * disrupting parent<->child link.
  */
-static bool daemonized_tracer = 0;
+static bool daemonized_tracer;
 
 #if USE_SEIZE
 static int post_attach_sigstop = TCB_IGNORE_ONE_SIGSTOP;
@@ -123,18 +123,18 @@
 #endif
 
 /* Sometimes we want to print only succeeding syscalls. */
-bool not_failing_only = 0;
+bool not_failing_only;
 
 /* Show path associated with fd arguments */
-unsigned int show_fd_path = 0;
+unsigned int show_fd_path;
 
-static bool detach_on_execve = 0;
+static bool detach_on_execve;
 
 static int exit_code;
-static int strace_child = 0;
-static int strace_tracer_pid = 0;
+static int strace_child;
+static int strace_tracer_pid;
 
-static char *username = NULL;
+static char *username;
 static uid_t run_uid;
 static gid_t run_gid;
 
@@ -142,23 +142,26 @@
 static int acolumn = DEFAULT_ACOLUMN;
 static char *acolumn_spaces;
 
-static char *outfname = NULL;
+static char *outfname;
 /* If -ff, points to stderr. Else, it's our common output log */
 static FILE *shared_log;
 
-struct tcb *printing_tcp = NULL;
+struct tcb *printing_tcp;
 static struct tcb *current_tcp;
 
 static struct tcb **tcbtab;
 static unsigned int nprocs, tcbtabsize;
-static const char *progname;
+
+#ifndef HAVE_PROGRAM_INVOCATION_NAME
+char *program_invocation_name;
+#endif
 
 unsigned os_release; /* generated from uname()'s u.release */
 
 static void detach(struct tcb *tcp);
 static void cleanup(void);
 static void interrupt(int sig);
-static sigset_t empty_set, blocked_set;
+static sigset_t start_set, blocked_set;
 
 #ifdef HAVE_SIG_ATOMIC_T
 static volatile sig_atomic_t interrupted;
@@ -191,7 +194,7 @@
 print_version(void)
 {
 	printf("%s -- version %s\n"
-	       "Copyright (C) 1991-%s The strace developers <%s>.\n"
+	       "Copyright (c) 1991-%s The strace developers <%s>.\n"
 	       "This is free software; see the source for copying conditions.  There is NO\n"
 	       "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n",
 	       PACKAGE_NAME, PACKAGE_VERSION, COPYRIGHT_YEAR, PACKAGE_URL);
@@ -298,13 +301,15 @@
 	msg = NULL;
 	if (vasprintf(&msg, fmt, p) >= 0) {
 		if (err_no)
-			fprintf(stderr, "%s: %s: %s\n", progname, msg, strerror(err_no));
+			fprintf(stderr, "%s: %s: %s\n",
+				program_invocation_name, msg, strerror(err_no));
 		else
-			fprintf(stderr, "%s: %s\n", progname, msg);
+			fprintf(stderr, "%s: %s\n",
+				program_invocation_name, msg);
 		free(msg);
 	} else {
 		/* malloc in vasprintf failed, try it without malloc */
-		fprintf(stderr, "%s: ", progname);
+		fprintf(stderr, "%s: ", program_invocation_name);
 		vfprintf(stderr, fmt, p);
 		if (err_no)
 			fprintf(stderr, ": %s\n", strerror(err_no));
@@ -339,7 +344,8 @@
 		va_start(p, fmt);
 		verror_msg(0, fmt, p);
 	}
-	fprintf(stderr, "Try '%s -h' for more information.\n", progname);
+	fprintf(stderr, "Try '%s -h' for more information.\n",
+		program_invocation_name);
 	die();
 }
 
@@ -520,7 +526,7 @@
 	return fp;
 }
 
-static int popen_pid = 0;
+static int popen_pid;
 
 #ifndef _PATH_BSHELL
 # define _PATH_BSHELL "/bin/sh"
@@ -566,7 +572,7 @@
 	swap_uid();
 	fp = fdopen(fds[1], "w");
 	if (!fp)
-		die_out_of_memory();
+		perror_msg_and_die("fdopen");
 	return fp;
 }
 
@@ -690,12 +696,10 @@
 			tprintf("%6ld.%06ld ",
 				(long) dtv.tv_sec, (long) dtv.tv_usec);
 			otv = tv;
-		}
-		else if (tflag > 2) {
+		} else if (tflag > 2) {
 			tprintf("%ld.%06ld ",
 				(long) tv.tv_sec, (long) tv.tv_usec);
-		}
-		else {
+		} else {
 			time_t local = tv.tv_sec;
 			strftime(str, sizeof(str), "%T", localtime(&local));
 			if (tflag > 1)
@@ -919,8 +923,7 @@
 			goto wait_loop;
 		if (errno != ESRCH)
 			perror_msg("detach: ptrace(PTRACE_INTERRUPT,%u)", tcp->pid);
-	}
-	else {
+	} else {
 		error = my_tkill(tcp->pid, SIGSTOP);
 		if (!error)
 			goto wait_loop;
@@ -1032,7 +1035,7 @@
 		 * pidof uses space as delim, pgrep uses newline. :(
 		 */
 		int pid;
-		char *delim = opt + strcspn(opt, ", \n\t");
+		char *delim = opt + strcspn(opt, "\n\t ,");
 		char c = *delim;
 
 		*delim = '\0';
@@ -1128,7 +1131,7 @@
 	 * We rely on cleanup() from this point on.
 	 */
 	if (interactive)
-		sigprocmask(SIG_BLOCK, &blocked_set, NULL);
+		sigprocmask(SIG_SETMASK, &blocked_set, NULL);
 
 	if (daemonized_tracer) {
 		pid_t pid = fork();
@@ -1170,10 +1173,10 @@
 		attach_tcb(tcp);
 
 		if (interactive) {
-			sigprocmask(SIG_SETMASK, &empty_set, NULL);
+			sigprocmask(SIG_SETMASK, &start_set, NULL);
 			if (interrupted)
 				goto ret;
-			sigprocmask(SIG_BLOCK, &blocked_set, NULL);
+			sigprocmask(SIG_SETMASK, &blocked_set, NULL);
 		}
 	} /* for each tcbtab[] */
 
@@ -1188,7 +1191,7 @@
 
  ret:
 	if (interactive)
-		sigprocmask(SIG_SETMASK, &empty_set, NULL);
+		sigprocmask(SIG_SETMASK, &start_set, NULL);
 }
 
 /* Stack-o-phobic exec helper, in the hope to work around
@@ -1200,6 +1203,7 @@
 	gid_t run_egid;
 	char **argv;
 	char *pathname;
+	struct sigaction child_sa;
 };
 static struct exec_params params_for_tracee;
 
@@ -1230,8 +1234,7 @@
 		if (setreuid(run_uid, params->run_euid) < 0) {
 			perror_msg_and_die("setreuid");
 		}
-	}
-	else if (geteuid() != 0)
+	} else if (geteuid() != 0)
 		if (setreuid(run_uid, run_uid) < 0) {
 			perror_msg_and_die("setreuid");
 		}
@@ -1254,6 +1257,9 @@
 		alarm(0);
 	}
 
+	if (params_for_tracee.child_sa.sa_handler != SIG_DFL)
+		sigaction(SIGCHLD, &params_for_tracee.child_sa, NULL);
+
 	execv(params->pathname, params->argv);
 	perror_msg_and_die("exec");
 }
@@ -1360,15 +1366,13 @@
 			if (colon) {
 				n = colon - path;
 				m = n + 1;
-			}
-			else
+			} else
 				m = n = strlen(path);
 			if (n == 0) {
 				if (!getcwd(pathname, PATH_MAX))
 					continue;
 				len = strlen(pathname);
-			}
-			else if (n > sizeof pathname - 1)
+			} else if (n > sizeof(pathname) - 1)
 				continue;
 			else {
 				strncpy(pathname, path, n);
@@ -1462,8 +1466,7 @@
 			    | TCB_SKIP_DETACH_ON_FIRST_EXEC
 			    | (NOMMU_SYSTEM ? 0 : (TCB_HIDE_LOG | post_attach_sigstop));
 		newoutf(tcp);
-	}
-	else {
+	} else {
 		/* With -D, we are *child* here, the tracee is our parent. */
 		strace_child = strace_tracer_pid;
 		strace_tracer_pid = getpid();
@@ -1578,12 +1581,12 @@
 			error_msg_and_die("Bad OS release string: '%s'", u.release);
 		/* Note: this open-codes KERNEL_VERSION(): */
 		rel = (rel << 8) | atoi(p);
-		if (rel >= KERNEL_VERSION(1,0,0))
+		if (rel >= KERNEL_VERSION(1, 0, 0))
 			break;
 		while (*p >= '0' && *p <= '9')
 			p++;
 		if (*p != '.') {
-			if (rel >= KERNEL_VERSION(0,1,0)) {
+			if (rel >= KERNEL_VERSION(0, 1, 0)) {
 				/* "X.Y-something" means "X.Y.0" */
 				rel <<= 8;
 				break;
@@ -1595,6 +1598,17 @@
 	return rel;
 }
 
+static void
+set_sigaction(int signo, void (*sighandler)(int), struct sigaction *oldact)
+{
+	/* if signal handler is a function, add the signal to blocked_set */
+	if (sighandler != SIG_IGN && sighandler != SIG_DFL)
+		sigaddset(&blocked_set, signo);
+
+	const struct sigaction sa = { .sa_handler = sighandler };
+	sigaction(signo, &sa, oldact);
+}
+
 /*
  * Initialization part of main() was eating much stack (~0.5k),
  * which was unused after init.
@@ -1608,16 +1622,12 @@
 {
 	int c, i;
 	int optF = 0;
-	struct sigaction sa;
 
-	progname = argv[0] ? argv[0] : "strace";
-
-	/* Make sure SIGCHLD has the default action so that waitpid
-	   definitely works without losing track of children.  The user
-	   should not have given us a bogus state to inherit, but he might
-	   have.  Arguably we should detect SIG_IGN here and pass it on
-	   to children, but probably noone really needs that.  */
-	signal(SIGCHLD, SIG_DFL);
+	if (!program_invocation_name || !*program_invocation_name) {
+		static char name[] = "strace";
+		program_invocation_name =
+			(argv[0] && *argv[0]) ? argv[0] : name;
+	}
 
 	strace_tracer_pid = getpid();
 
@@ -1733,7 +1743,7 @@
 			break;
 		case 's':
 			i = string_to_uint(optarg);
-			if (i < 0)
+			if (i < 0 || (unsigned int) i > -1U / 4)
 				error_opt_arg(c, optarg);
 			max_strlen = i;
 			break;
@@ -1750,7 +1760,7 @@
 #endif
 		case 'E':
 			if (putenv(optarg) < 0)
-				die_out_of_memory();
+				perror_msg_and_die("putenv");
 			break;
 		case 'I':
 			opt_intr = string_to_uint_upto(optarg, NUM_INTR_OPTS - 1);
@@ -1762,14 +1772,11 @@
 			break;
 		}
 	}
+
 	argv += optind;
-	/* argc -= optind; - no need, argc is not used below */
+	argc -= optind;
 
-	acolumn_spaces = xmalloc(acolumn + 1);
-	memset(acolumn_spaces, ' ', acolumn);
-	acolumn_spaces[acolumn] = '\0';
-
-	if (!argv[0] && !nprocs) {
+	if (argc < 0 || (!argv[0] && !nprocs)) {
 		error_msg_and_help("must have PROG [ARGS] or -p PID");
 	}
 
@@ -1811,6 +1818,15 @@
 		tflag = 1;
 	}
 
+	acolumn_spaces = xmalloc(acolumn + 1);
+	memset(acolumn_spaces, ' ', acolumn);
+	acolumn_spaces[acolumn] = '\0';
+
+	sigprocmask(SIG_SETMASK, NULL, &start_set);
+	memcpy(&blocked_set, &start_set, sizeof(blocked_set));
+
+	set_sigaction(SIGCHLD, SIG_DFL, &params_for_tracee.child_sa);
+
 #ifdef USE_LIBUNWIND
 	if (stack_trace_enabled) {
 		unsigned int tcbi;
@@ -1835,8 +1851,7 @@
 		}
 		run_uid = pent->pw_uid;
 		run_gid = pent->pw_gid;
-	}
-	else {
+	} else {
 		run_uid = getuid();
 		run_gid = getgid();
 	}
@@ -1873,8 +1888,7 @@
 			if (followfork >= 2)
 				error_msg_and_help("piping the output and -ff are mutually exclusive");
 			shared_log = strace_popen(outfname + 1);
-		}
-		else if (followfork < 2)
+		} else if (followfork < 2)
 			shared_log = strace_fopen(outfname);
 	} else {
 		/* -ff without -o FILE is the same as single -f */
@@ -1885,6 +1899,15 @@
 	if (!outfname || outfname[0] == '|' || outfname[0] == '!') {
 		setvbuf(shared_log, NULL, _IOLBF, 0);
 	}
+
+	/*
+	 * argv[0]	-pPID	-oFILE	Default interactive setting
+	 * yes		*	0	INTR_WHILE_WAIT
+	 * no		1	0	INTR_WHILE_WAIT
+	 * yes		*	1	INTR_NEVER
+	 * no		1	1	INTR_WHILE_WAIT
+	 */
+
 	if (outfname && argv[0]) {
 		if (!opt_intr)
 			opt_intr = INTR_NEVER;
@@ -1894,17 +1917,8 @@
 	if (!opt_intr)
 		opt_intr = INTR_WHILE_WAIT;
 
-	/* argv[0]	-pPID	-oFILE	Default interactive setting
-	 * yes		*	0	INTR_WHILE_WAIT
-	 * no		1	0	INTR_WHILE_WAIT
-	 * yes		*	1	INTR_NEVER
-	 * no		1	1	INTR_WHILE_WAIT
-	 */
-
-	sigemptyset(&empty_set);
-	sigemptyset(&blocked_set);
-
-	/* startup_child() must be called before the signal handlers get
+	/*
+	 * startup_child() must be called before the signal handlers get
 	 * installed below as they are inherited into the spawned process.
 	 * Also we do not need to be protected by them as during interruption
 	 * in the startup_child() mode we kill the spawned process anyway.
@@ -1913,35 +1927,24 @@
 		startup_child(argv);
 	}
 
-	sa.sa_handler = SIG_IGN;
-	sigemptyset(&sa.sa_mask);
-	sa.sa_flags = 0;
-	sigaction(SIGTTOU, &sa, NULL); /* SIG_IGN */
-	sigaction(SIGTTIN, &sa, NULL); /* SIG_IGN */
+	set_sigaction(SIGTTOU, SIG_IGN, NULL);
+	set_sigaction(SIGTTIN, SIG_IGN, NULL);
 	if (opt_intr != INTR_ANYWHERE) {
 		if (opt_intr == INTR_BLOCK_TSTP_TOO)
-			sigaction(SIGTSTP, &sa, NULL); /* SIG_IGN */
+			set_sigaction(SIGTSTP, SIG_IGN, NULL);
 		/*
 		 * In interactive mode (if no -o OUTFILE, or -p PID is used),
 		 * fatal signals are blocked while syscall stop is processed,
 		 * and acted on in between, when waiting for new syscall stops.
 		 * In non-interactive mode, signals are ignored.
 		 */
-		if (opt_intr == INTR_WHILE_WAIT) {
-			sigaddset(&blocked_set, SIGHUP);
-			sigaddset(&blocked_set, SIGINT);
-			sigaddset(&blocked_set, SIGQUIT);
-			sigaddset(&blocked_set, SIGPIPE);
-			sigaddset(&blocked_set, SIGTERM);
-			sa.sa_handler = interrupt;
-		}
-		/* SIG_IGN, or set handler for these */
-		sigaction(SIGHUP, &sa, NULL);
-		sigaction(SIGINT, &sa, NULL);
-		sigaction(SIGQUIT, &sa, NULL);
-		sigaction(SIGPIPE, &sa, NULL);
-		sigaction(SIGTERM, &sa, NULL);
+		set_sigaction(SIGHUP, interactive ? interrupt : SIG_IGN, NULL);
+		set_sigaction(SIGINT, interactive ? interrupt : SIG_IGN, NULL);
+		set_sigaction(SIGQUIT, interactive ? interrupt : SIG_IGN, NULL);
+		set_sigaction(SIGPIPE, interactive ? interrupt : SIG_IGN, NULL);
+		set_sigaction(SIGTERM, interactive ? interrupt : SIG_IGN, NULL);
 	}
+
 	if (nprocs != 0 || daemonized_tracer)
 		startup_attach();
 
@@ -2025,11 +2028,6 @@
 		sprintf(buf, "WIFEXITED,exitcode=%u", WEXITSTATUS(status));
 	if (WIFSTOPPED(status))
 		sprintf(buf, "WIFSTOPPED,sig=%s", signame(WSTOPSIG(status)));
-#ifdef WIFCONTINUED
-	/* Should never be seen */
-	if (WIFCONTINUED(status))
-		strcpy(buf, "WIFCONTINUED");
-#endif
 	evbuf[0] = '\0';
 	if (event != 0) {
 		static const char *const event_names[] = {
@@ -2251,25 +2249,79 @@
 	line_ended();
 }
 
-/* Returns true iff the main trace loop has to continue. */
-static bool
-trace(void)
+enum trace_event {
+	/* Break the main loop. */
+	TE_BREAK,
+
+	/* Call next_event() again. */
+	TE_NEXT,
+
+	/* Restart the tracee with signal 0 and call next_event() again. */
+	TE_RESTART,
+
+	/*
+	 * For all the events below, current_tcp is set to current tracee's
+	 * tcb.  All the suggested actions imply that you want to continue
+	 * tracing of the current tracee; alternatively, you can detach it.
+	 */
+
+	/*
+	 * Syscall entry or exit.
+	 * Restart the tracee with signal 0, or with an injected signal number.
+	 */
+	TE_SYSCALL_STOP,
+
+	/*
+	 * Tracee received signal with number WSTOPSIG(*pstatus); signal info
+	 * is written to *si.  Restart the tracee (with that signal number
+	 * if you want to deliver it).
+	 */
+	TE_SIGNAL_DELIVERY_STOP,
+
+	/*
+	 * Tracee was killed by a signal with number WTERMSIG(*pstatus).
+	 */
+	TE_SIGNALLED,
+
+	/*
+	 * Tracee was stopped by a signal with number WSTOPSIG(*pstatus).
+	 * Restart the tracee with that signal number.
+	 */
+	TE_GROUP_STOP,
+
+	/*
+	 * Tracee exited with status WEXITSTATUS(*pstatus).
+	 */
+	TE_EXITED,
+
+	/*
+	 * Tracee is going to perform execve().
+	 * Restart the tracee with signal 0.
+	 */
+	TE_STOP_BEFORE_EXECVE,
+
+	/*
+	 * Tracee is going to terminate.
+	 * Restart the tracee with signal 0.
+	 */
+	TE_STOP_BEFORE_EXIT,
+};
+
+static enum trace_event
+next_event(int *pstatus, siginfo_t *si)
 {
 	int pid;
 	int wait_errno;
 	int status;
-	bool stopped;
-	unsigned int sig;
-	unsigned int event;
 	struct tcb *tcp;
 	struct rusage ru;
 
 	if (interrupted)
-		return false;
+		return TE_BREAK;
 
 	/*
 	 * Used to exit simply when nprocs hits zero, but in this testcase:
-	 *  int main() { _exit(!!fork()); }
+	 *  int main(void) { _exit(!!fork()); }
 	 * under strace -f, parent sometimes (rarely) manages
 	 * to exit before we see the first stop of the child,
 	 * and we are losing track of it:
@@ -2285,21 +2337,21 @@
 		 * on exit. Oh well...
 		 */
 		if (nprocs == 0)
-			return false;
+			return TE_BREAK;
 	}
 
 	if (interactive)
-		sigprocmask(SIG_SETMASK, &empty_set, NULL);
-	pid = wait4(-1, &status, __WALL, (cflag ? &ru : NULL));
+		sigprocmask(SIG_SETMASK, &start_set, NULL);
+	pid = wait4(-1, pstatus, __WALL, (cflag ? &ru : NULL));
 	wait_errno = errno;
 	if (interactive)
-		sigprocmask(SIG_BLOCK, &blocked_set, NULL);
+		sigprocmask(SIG_SETMASK, &blocked_set, NULL);
 
 	if (pid < 0) {
 		if (wait_errno == EINTR)
-			return true;
+			return TE_NEXT;
 		if (nprocs == 0 && wait_errno == ECHILD)
-			return false;
+			return TE_BREAK;
 		/*
 		 * If nprocs > 0, ECHILD is not expected,
 		 * treat it as any other error here:
@@ -2308,10 +2360,12 @@
 		perror_msg_and_die("wait4(__WALL)");
 	}
 
+	status = *pstatus;
+
 	if (pid == popen_pid) {
 		if (!WIFSTOPPED(status))
 			popen_pid = 0;
-		return true;
+		return TE_NEXT;
 	}
 
 	if (debug_flag)
@@ -2323,14 +2377,179 @@
 	if (!tcp) {
 		tcp = maybe_allocate_tcb(pid, status);
 		if (!tcp)
-			return true;
+			return TE_NEXT;
 	}
 
 	clear_regs();
 
-	event = (unsigned int) status >> 16;
+	/* Set current output file */
+	current_tcp = tcp;
 
-	if (event == PTRACE_EVENT_EXEC) {
+	if (cflag) {
+		tv_sub(&tcp->dtime, &ru.ru_stime, &tcp->stime);
+		tcp->stime = ru.ru_stime;
+	}
+
+	if (WIFSIGNALED(status))
+		return TE_SIGNALLED;
+
+	if (WIFEXITED(status))
+		return TE_EXITED;
+
+	/*
+	 * As WCONTINUED flag has not been specified to wait4,
+	 * it cannot be WIFCONTINUED(status), so the only case
+	 * that remains is WIFSTOPPED(status).
+	 */
+
+	/* Is this the very first time we see this tracee stopped? */
+	if (tcp->flags & TCB_STARTUP)
+		startup_tcb(tcp);
+
+	const unsigned int sig = WSTOPSIG(status);
+	const unsigned int event = (unsigned int) status >> 16;
+
+	switch (event) {
+	case 0:
+		/*
+		 * Is this post-attach SIGSTOP?
+		 * Interestingly, the process may stop
+		 * with STOPSIG equal to some other signal
+		 * than SIGSTOP if we happened to attach
+		 * just before the process takes a signal.
+		 */
+		if (sig == SIGSTOP && (tcp->flags & TCB_IGNORE_ONE_SIGSTOP)) {
+			if (debug_flag)
+				error_msg("ignored SIGSTOP on pid %d", tcp->pid);
+			tcp->flags &= ~TCB_IGNORE_ONE_SIGSTOP;
+			return TE_RESTART;
+		} else if (sig == syscall_trap_sig) {
+			return TE_SYSCALL_STOP;
+		} else {
+			*si = (siginfo_t) {};
+			/*
+			 * True if tracee is stopped by signal
+			 * (as opposed to "tracee received signal").
+			 * TODO: shouldn't we check for errno == EINVAL too?
+			 * We can get ESRCH instead, you know...
+			 */
+			bool stopped = ptrace(PTRACE_GETSIGINFO, pid, 0, si) < 0;
+			return stopped ? TE_GROUP_STOP : TE_SIGNAL_DELIVERY_STOP;
+		}
+		break;
+#if USE_SEIZE
+	case PTRACE_EVENT_STOP:
+		/*
+		 * PTRACE_INTERRUPT-stop or group-stop.
+		 * PTRACE_INTERRUPT-stop has sig == SIGTRAP here.
+		 */
+		switch (sig) {
+		case SIGSTOP:
+		case SIGTSTP:
+		case SIGTTIN:
+		case SIGTTOU:
+			return TE_GROUP_STOP;
+		}
+		return TE_RESTART;
+#endif
+	case PTRACE_EVENT_EXEC:
+		return TE_STOP_BEFORE_EXECVE;
+	case PTRACE_EVENT_EXIT:
+		return TE_STOP_BEFORE_EXIT;
+	default:
+		return TE_RESTART;
+	}
+}
+
+static int
+trace_syscall(struct tcb *tcp, unsigned int *sig)
+{
+	if (entering(tcp)) {
+		int res = syscall_entering_decode(tcp);
+		switch (res) {
+		case 0:
+			return 0;
+		case 1:
+			res = syscall_entering_trace(tcp, sig);
+		}
+		syscall_entering_finish(tcp, res);
+		return res;
+	} else {
+		struct timeval tv = {};
+		int res = syscall_exiting_decode(tcp, &tv);
+		if (res != 0) {
+			res = syscall_exiting_trace(tcp, tv, res);
+		}
+		syscall_exiting_finish(tcp);
+		return res;
+	}
+}
+
+/* Returns true iff the main trace loop has to continue. */
+static bool
+dispatch_event(enum trace_event ret, int *pstatus, siginfo_t *si)
+{
+	unsigned int restart_op = PTRACE_SYSCALL;
+	unsigned int restart_sig = 0;
+
+	switch (ret) {
+	case TE_BREAK:
+		return false;
+
+	case TE_NEXT:
+		return true;
+
+	case TE_RESTART:
+		break;
+
+	case TE_SYSCALL_STOP:
+		if (trace_syscall(current_tcp, &restart_sig) < 0) {
+			/*
+			 * ptrace() failed in trace_syscall().
+			 * Likely a result of process disappearing mid-flight.
+			 * Observed case: exit_group() or SIGKILL terminating
+			 * all processes in thread group.
+			 * We assume that ptrace error was caused by process death.
+			 * We used to detach(current_tcp) here, but since we no
+			 * longer implement "detach before death" policy/hack,
+			 * we can let this process to report its death to us
+			 * normally, via WIFEXITED or WIFSIGNALED wait status.
+			 */
+			return true;
+		}
+		break;
+
+	case TE_SIGNAL_DELIVERY_STOP:
+		restart_sig = WSTOPSIG(*pstatus);
+		print_stopped(current_tcp, si, restart_sig);
+		break;
+
+	case TE_SIGNALLED:
+		print_signalled(current_tcp, current_tcp->pid, *pstatus);
+		droptcb(current_tcp);
+		return true;
+
+	case TE_GROUP_STOP:
+		restart_sig = WSTOPSIG(*pstatus);
+		print_stopped(current_tcp, NULL, restart_sig);
+		if (use_seize) {
+			/*
+			 * This ends ptrace-stop, but does *not* end group-stop.
+			 * This makes stopping signals work properly on straced
+			 * process (that is, process really stops. It used to
+			 * continue to run).
+			 */
+			restart_op = PTRACE_LISTEN;
+			restart_sig = 0;
+		}
+		break;
+
+	case TE_EXITED:
+		print_exited(current_tcp, current_tcp->pid, *pstatus);
+		droptcb(current_tcp);
+		return true;
+
+	case TE_STOP_BEFORE_EXECVE:
 		/*
 		 * Under Linux, execve changes pid to thread leader's pid,
 		 * and we see this changed pid on EVENT_EXEC and later,
@@ -2346,181 +2565,43 @@
 		 * PTRACE_GETEVENTMSG returns old pid starting from Linux 3.0.
 		 * On 2.6 and earlier, it can return garbage.
 		 */
-		if (os_release >= KERNEL_VERSION(3,0,0))
-			tcp = maybe_switch_tcbs(tcp, pid);
+		if (os_release >= KERNEL_VERSION(3, 0, 0))
+			current_tcp = maybe_switch_tcbs(current_tcp, current_tcp->pid);
 
 		if (detach_on_execve) {
-			if (tcp->flags & TCB_SKIP_DETACH_ON_FIRST_EXEC) {
-				tcp->flags &= ~TCB_SKIP_DETACH_ON_FIRST_EXEC;
+			if (current_tcp->flags & TCB_SKIP_DETACH_ON_FIRST_EXEC) {
+				current_tcp->flags &= ~TCB_SKIP_DETACH_ON_FIRST_EXEC;
 			} else {
-				detach(tcp); /* do "-b execve" thingy */
+				detach(current_tcp); /* do "-b execve" thingy */
 				return true;
 			}
 		}
-	}
+		break;
 
-	/* Set current output file */
-	current_tcp = tcp;
-
-	if (cflag) {
-		tv_sub(&tcp->dtime, &ru.ru_stime, &tcp->stime);
-		tcp->stime = ru.ru_stime;
-	}
-
-	if (WIFSIGNALED(status)) {
-		print_signalled(tcp, pid, status);
-		droptcb(tcp);
-		return true;
-	}
-
-	if (WIFEXITED(status)) {
-		print_exited(tcp, pid, status);
-		droptcb(tcp);
-		return true;
-	}
-
-	if (!WIFSTOPPED(status)) {
-		/*
-		 * Neither signalled, exited or stopped.
-		 * How could that be?
-		 */
-		error_msg("pid %u not stopped!", pid);
-		droptcb(tcp);
-		return true;
-	}
-
-	/* Is this the very first time we see this tracee stopped? */
-	if (tcp->flags & TCB_STARTUP) {
-		startup_tcb(tcp);
-	}
-
-	sig = WSTOPSIG(status);
-
-	switch (event) {
-		case 0:
-			break;
-		case PTRACE_EVENT_EXIT:
-			print_event_exit(tcp);
-			goto restart_tracee_with_sig_0;
-#if USE_SEIZE
-		case PTRACE_EVENT_STOP:
-			/*
-			 * PTRACE_INTERRUPT-stop or group-stop.
-			 * PTRACE_INTERRUPT-stop has sig == SIGTRAP here.
-			 */
-			switch (sig) {
-				case SIGSTOP:
-				case SIGTSTP:
-				case SIGTTIN:
-				case SIGTTOU:
-					stopped = true;
-					goto show_stopsig;
-			}
-			/* fall through */
-#endif
-		default:
-			goto restart_tracee_with_sig_0;
-	}
-
-	/*
-	 * Is this post-attach SIGSTOP?
-	 * Interestingly, the process may stop
-	 * with STOPSIG equal to some other signal
-	 * than SIGSTOP if we happend to attach
-	 * just before the process takes a signal.
-	 */
-	if (sig == SIGSTOP && (tcp->flags & TCB_IGNORE_ONE_SIGSTOP)) {
-		if (debug_flag)
-			error_msg("ignored SIGSTOP on pid %d", tcp->pid);
-		tcp->flags &= ~TCB_IGNORE_ONE_SIGSTOP;
-		goto restart_tracee_with_sig_0;
-	}
-
-	if (sig != syscall_trap_sig) {
-		siginfo_t si = {};
-
-		/*
-		 * True if tracee is stopped by signal
-		 * (as opposed to "tracee received signal").
-		 * TODO: shouldn't we check for errno == EINVAL too?
-		 * We can get ESRCH instead, you know...
-		 */
-		stopped = ptrace(PTRACE_GETSIGINFO, pid, 0, &si) < 0;
-#if USE_SEIZE
-show_stopsig:
-#endif
-		print_stopped(tcp, stopped ? NULL : &si, sig);
-
-		if (!stopped)
-			/* It's signal-delivery-stop. Inject the signal */
-			goto restart_tracee;
-
-		/* It's group-stop */
-		if (use_seize) {
-			/*
-			 * This ends ptrace-stop, but does *not* end group-stop.
-			 * This makes stopping signals work properly on straced process
-			 * (that is, process really stops. It used to continue to run).
-			 */
-			if (ptrace_restart(PTRACE_LISTEN, tcp, 0) < 0) {
-				/* Note: ptrace_restart emitted error message */
-				exit_code = 1;
-				return false;
-			}
-			return true;
-		}
-		/* We don't have PTRACE_LISTEN support... */
-		goto restart_tracee;
+	case TE_STOP_BEFORE_EXIT:
+		print_event_exit(current_tcp);
+		break;
 	}
 
 	/* We handled quick cases, we are permitted to interrupt now. */
 	if (interrupted)
 		return false;
 
-	/*
-	 * This should be syscall entry or exit.
-	 * Handle it.
-	 */
-	sig = 0;
-	if (trace_syscall(tcp, &sig) < 0) {
-		/*
-		 * ptrace() failed in trace_syscall().
-		 * Likely a result of process disappearing mid-flight.
-		 * Observed case: exit_group() or SIGKILL terminating
-		 * all processes in thread group.
-		 * We assume that ptrace error was caused by process death.
-		 * We used to detach(tcp) here, but since we no longer
-		 * implement "detach before death" policy/hack,
-		 * we can let this process to report its death to us
-		 * normally, via WIFEXITED or WIFSIGNALED wait status.
-		 */
-		return true;
-	}
-	goto restart_tracee;
-
-restart_tracee_with_sig_0:
-	sig = 0;
-
-restart_tracee:
-	if (ptrace_restart(PTRACE_SYSCALL, tcp, sig) < 0) {
+	if (ptrace_restart(restart_op, current_tcp, restart_sig) < 0) {
 		/* Note: ptrace_restart emitted error message */
 		exit_code = 1;
 		return false;
 	}
-
 	return true;
 }
 
-int
-main(int argc, char *argv[])
+#ifdef ENABLE_COVERAGE_GCOV
+extern void __gcov_flush(void);
+#endif
+
+static void ATTRIBUTE_NORETURN
+terminate(void)
 {
-	init(argc, argv);
-
-	exit_code = !nprocs;
-
-	while (trace())
-		;
-
 	cleanup();
 	fflush(NULL);
 	if (shared_log != stderr)
@@ -2537,11 +2618,37 @@
 		/* Child was killed by a signal, mimic that.  */
 		exit_code &= 0xff;
 		signal(exit_code, SIG_DFL);
+#ifdef ENABLE_COVERAGE_GCOV
+		__gcov_flush();
+#endif
 		raise(exit_code);
+
+		/* Unblock the signal.  */
+		sigset_t mask;
+		sigemptyset(&mask);
+		sigaddset(&mask, exit_code);
+#ifdef ENABLE_COVERAGE_GCOV
+		__gcov_flush();
+#endif
+		sigprocmask(SIG_UNBLOCK, &mask, NULL);
+
 		/* Paranoia - what if this signal is not fatal?
 		   Exit with 128 + signo then.  */
 		exit_code += 128;
 	}
+	exit(exit_code);
+}
 
-	return exit_code;
+int
+main(int argc, char *argv[])
+{
+	init(argc, argv);
+
+	exit_code = !nprocs;
+
+	int status;
+	siginfo_t si;
+	while (dispatch_event(next_event(&status, &si), &status, &si))
+		;
+	terminate();
 }
diff --git a/strace.spec b/strace.spec
index 1c27aa4..963b2f2 100644
--- a/strace.spec
+++ b/strace.spec
@@ -1,6 +1,6 @@
 Summary: Tracks and displays system calls associated with a running process
 Name: strace
-Version: 4.17
+Version: 4.18
 Release: 1%{?dist}
 License: BSD
 Group: Development/Debuggers
@@ -101,8 +101,11 @@
 %endif
 
 %changelog
-* Thu May 25 2017 strace-devel@lists.sourceforge.net - 4.17-1
-- strace 4.17 snapshot.
+* Wed Jul 05 2017 strace-devel@lists.sourceforge.net - 4.18-1
+- strace 4.18 snapshot.
+
+* Wed May 24 2017 Dmitry V. Levin <ldv@altlinux.org> - 4.17-1
+- v4.16 -> v4.17.
 
 * Tue Feb 14 2017 Dmitry V. Levin <ldv@altlinux.org> - 4.16-1
 - v4.15 -> v4.16.
diff --git a/strace.spec.in b/strace.spec.in
index 6fc2689..76f28bb 100644
--- a/strace.spec.in
+++ b/strace.spec.in
@@ -104,6 +104,9 @@
 * @RPM_CHANGELOGTIME@ @PACKAGE_BUGREPORT@ - @PACKAGE_VERSION@-1
 - @PACKAGE_STRING@ snapshot.
 
+* Wed May 24 2017 Dmitry V. Levin <ldv@altlinux.org> - 4.17-1
+- v4.16 -> v4.17.
+
 * Tue Feb 14 2017 Dmitry V. Levin <ldv@altlinux.org> - 4.16-1
 - v4.15 -> v4.16.
 
diff --git a/syscall.c b/syscall.c
index a34f640..02626c7 100644
--- a/syscall.c
+++ b/syscall.c
@@ -651,25 +651,29 @@
 	return 0;
 }
 
-static int
-trace_syscall_entering(struct tcb *tcp, unsigned int *sig)
+/*
+ * Returns:
+ * 0: "ignore this ptrace stop", bail out silently.
+ * 1: ok, decoded; call
+ *    syscall_entering_finish(tcp, syscall_entering_trace(tcp, ...)).
+ * other: error; call syscall_entering_finish(tcp, res), where res is the value
+ *    returned.
+ */
+int
+syscall_entering_decode(struct tcb *tcp)
 {
 	int res = get_scno(tcp);
 	if (res == 0)
 		return res;
-
 	int scno_good = res;
-	if (res == 1)
-		res = get_syscall_args(tcp);
-
-	if (res != 1) {
+	if (res != 1 || (res = get_syscall_args(tcp)) != 1) {
 		printleader(tcp);
 		tprintf("%s(", scno_good == 1 ? tcp->s_ent->sys_name : "????");
 		/*
 		 * " <unavailable>" will be added later by the code which
 		 * detects ptrace errors.
 		 */
-		goto ret;
+		return res;
 	}
 
 #ifdef LINUX_MIPSO32
@@ -692,6 +696,12 @@
 	}
 #endif
 
+	return 1;
+}
+
+int
+syscall_entering_trace(struct tcb *tcp, unsigned int *sig)
+{
 	/* Restrain from fault injection while the trace executes strace code. */
 	if (hide_log(tcp)) {
 		tcp->qual_flg &= ~QUAL_INJECT;
@@ -710,24 +720,21 @@
 	if (!(tcp->qual_flg & QUAL_TRACE)
 	 || (tracing_paths && !pathtrace_match(tcp))
 	) {
-		tcp->flags |= TCB_INSYSCALL | TCB_FILTERED;
-		tcp->sys_func_rval = 0;
+		tcp->flags |= TCB_FILTERED;
 		return 0;
 	}
 
 	tcp->flags &= ~TCB_FILTERED;
 
 	if (hide_log(tcp)) {
-		res = 0;
-		goto ret;
+		return 0;
 	}
 
 	if (tcp->qual_flg & QUAL_INJECT)
 		tamper_with_syscall_entering(tcp, sig);
 
 	if (cflag == CFLAG_ONLY_STATS) {
-		res = 0;
-		goto ret;
+		return 0;
 	}
 
 #ifdef USE_LIBUNWIND
@@ -739,19 +746,20 @@
 
 	printleader(tcp);
 	tprintf("%s(", tcp->s_ent->sys_name);
-	if (tcp->qual_flg & QUAL_RAW)
-		res = printargs(tcp);
-	else
-		res = tcp->s_ent->sys_func(tcp);
-
+	int res = (tcp->qual_flg & QUAL_RAW)
+		? printargs(tcp) : tcp->s_ent->sys_func(tcp);
 	fflush(tcp->outf);
- ret:
+	return res;
+}
+
+void
+syscall_entering_finish(struct tcb *tcp, int res)
+{
 	tcp->flags |= TCB_INSYSCALL;
 	tcp->sys_func_rval = res;
 	/* Measure the entrance time as late as possible to avoid errors. */
-	if (Tflag || cflag)
+	if ((Tflag || cflag) && !filtered(tcp))
 		gettimeofday(&tcp->etime, NULL);
-	return res;
 }
 
 static bool
@@ -760,14 +768,20 @@
 	return tcp->flags & TCB_TAMPERED;
 }
 
-static int
-trace_syscall_exiting(struct tcb *tcp)
+/* Returns:
+ * 0: "bail out".
+ * 1: ok.
+ * -1: error in one of ptrace ops.
+ *
+ * If not 0, call syscall_exiting_trace(tcp, res), where res is the return
+ *    value. Anyway, call syscall_exiting_finish(tcp) then.
+ */
+int
+syscall_exiting_decode(struct tcb *tcp, struct timeval *ptv)
 {
-	struct timeval tv;
-
 	/* Measure the exit time as early as possible to avoid errors. */
 	if ((Tflag || cflag) && !(filtered(tcp) || hide_log(tcp)))
-		gettimeofday(&tv, NULL);
+		gettimeofday(ptv, NULL);
 
 #ifdef USE_LIBUNWIND
 	if (stack_trace_enabled) {
@@ -777,21 +791,25 @@
 #endif
 
 	if (filtered(tcp) || hide_log(tcp))
-		goto ret;
+		return 0;
 
 	get_regs(tcp->pid);
 #if SUPPORTED_PERSONALITIES > 1
 	update_personality(tcp, tcp->currpers);
 #endif
-	int res = (get_regs_error ? -1 : get_syscall_result(tcp));
+	return get_regs_error ? -1 : get_syscall_result(tcp);
+}
 
+int
+syscall_exiting_trace(struct tcb *tcp, struct timeval tv, int res)
+{
 	if (syserror(tcp) && syscall_tampered(tcp))
 		tamper_with_syscall_exiting(tcp);
 
 	if (cflag) {
 		count_syscall(tcp, &tv);
 		if (cflag == CFLAG_ONLY_STATS) {
-			goto ret;
+			return 0;
 		}
 	}
 
@@ -818,9 +836,6 @@
 		tabto();
 		tprints("= ? <unavailable>\n");
 		line_ended();
-		tcp->flags &= ~(TCB_INSYSCALL | TCB_TAMPERED);
-		tcp->sys_func_rval = 0;
-		free_tcb_priv_data(tcp);
 		return res;
 	}
 	tcp->s_prev_ent = tcp->s_ent;
@@ -832,13 +847,13 @@
 	/* FIXME: not_failing_only (IOW, option -z) is broken:
 	 * failure of syscall is known only after syscall return.
 	 * Thus we end up with something like this on, say, ENOENT:
-	 *     open("doesnt_exist", O_RDONLY <unfinished ...>
+	 *     open("does_not_exist", O_RDONLY <unfinished ...>
 	 *     {next syscall decode}
 	 * whereas the intended result is that open(...) line
 	 * is not shown at all.
 	 */
 		if (not_failing_only && tcp->u_error)
-			goto ret;	/* ignore failed syscalls */
+			return 0;	/* ignore failed syscalls */
 		if (tcp->sys_func_rval & RVAL_DECODED)
 			sys_res = tcp->sys_func_rval;
 		else
@@ -857,8 +872,7 @@
 		}
 		if (syscall_tampered(tcp))
 			tprints(" (INJECTED)");
-	}
-	else if (!(sys_res & RVAL_NONE) && u_error) {
+	} else if (!(sys_res & RVAL_NONE) && u_error) {
 		const char *u_error_str;
 
 		switch (u_error) {
@@ -929,8 +943,7 @@
 			tprints(" (INJECTED)");
 		if ((sys_res & RVAL_STR) && tcp->auxstr)
 			tprintf(" (%s)", tcp->auxstr);
-	}
-	else {
+	} else {
 		if (sys_res & RVAL_NONE)
 			tprints("= ?");
 		else {
@@ -968,8 +981,7 @@
 				if (show_fd_path) {
 					tprints("= ");
 					printfd(tcp, tcp->u_rval);
-				}
-				else
+				} else
 					tprintf("= %" PRI_kld, tcp->u_rval);
 				break;
 			default:
@@ -995,19 +1007,15 @@
 	if (stack_trace_enabled)
 		unwind_print_stacktrace(tcp);
 #endif
-
- ret:
-	tcp->flags &= ~(TCB_INSYSCALL | TCB_TAMPERED);
-	tcp->sys_func_rval = 0;
-	free_tcb_priv_data(tcp);
 	return 0;
 }
 
-int
-trace_syscall(struct tcb *tcp, unsigned int *signo)
+void
+syscall_exiting_finish(struct tcb *tcp)
 {
-	return exiting(tcp) ?
-		trace_syscall_exiting(tcp) : trace_syscall_entering(tcp, signo);
+	tcp->flags &= ~(TCB_INSYSCALL | TCB_TAMPERED);
+	tcp->sys_func_rval = 0;
+	free_tcb_priv_data(tcp);
 }
 
 bool
@@ -1230,10 +1238,11 @@
 
 /*
  * Returns:
- * 0: "ignore this ptrace stop", bail out of trace_syscall_entering() silently.
- * 1: ok, continue in trace_syscall_entering().
- * other: error, trace_syscall_entering() should print error indicator
- *    ("????" etc) and bail out.
+ * 0: "ignore this ptrace stop", syscall_entering_decode() should return a "bail
+ *    out silently" code.
+ * 1: ok, continue in syscall_entering_decode().
+ * other: error, syscall_entering_decode() should print error indicator
+ *    ("????" etc) and return an appropriate code.
  */
 int
 get_scno(struct tcb *tcp)
@@ -1277,8 +1286,8 @@
 #endif
 
 /* Returns:
- * 1: ok, continue in trace_syscall_exiting().
- * -1: error, trace_syscall_exiting() should print error indicator
+ * 1: ok, continue in syscall_exiting_trace().
+ * -1: error, syscall_exiting_trace() should print error indicator
  *    ("????" etc) and bail out.
  */
 static int
@@ -1313,5 +1322,5 @@
 	if (current_personality == X32_PERSONALITY_NUMBER)
 		scno &= ~__X32_SYSCALL_BIT;
 #endif
-	return scno_is_valid(scno) ? sysent[scno].sys_name: NULL;
+	return scno_is_valid(scno) ? sysent[scno].sys_name : NULL;
 }
diff --git a/sysctl.c b/sysctl.c
index 6459415..176973a 100644
--- a/sysctl.c
+++ b/sysctl.c
@@ -155,7 +155,7 @@
 		default:
 			goto out;
 		}
-	out:
+out:
 		max_cnt = info.nlen;
 		if (abbrev(tcp) && max_cnt > max_strlen)
 			max_cnt = max_strlen;
diff --git a/tests-m32/Makefile b/tests-m32/Makefile
deleted file mode 100644
index 1bfab92..0000000
--- a/tests-m32/Makefile
+++ /dev/null
@@ -1,7114 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# tests-m32/Makefile.  Generated from Makefile.in by configure.
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-
-# Automake input for strace tests.
-#
-# Copyright (c) 2011-2016 Dmitry V. Levin <ldv@altlinux.org>
-# Copyright (c) 2011-2017 The strace developers.
-# 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.
-
-# scno.h make rules for strace.
-#
-# 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.
-
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/strace
-pkgincludedir = $(includedir)/strace
-pkglibdir = $(libdir)/strace
-pkglibexecdir = $(libexecdir)/strace
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = x86_64-pc-linux-gnu
-host_triplet = x86_64-pc-linux-gnu
-DIST_COMMON = $(srcdir)/pure_executables.am $(srcdir)/gen_tests.am \
-	$(srcdir)/../scno.am $(srcdir)/Makefile.in \
-	$(srcdir)/Makefile.am $(top_srcdir)/depcomp \
-	$(top_srcdir)/test-driver
-check_PROGRAMS = $(am__EXEEXT_1) answer$(EXEEXT) attach-f-p$(EXEEXT) \
-	attach-f-p-cmd$(EXEEXT) attach-p-cmd-cmd$(EXEEXT) \
-	attach-p-cmd-p$(EXEEXT) caps-abbrev$(EXEEXT) count-f$(EXEEXT) \
-	execve-v$(EXEEXT) execveat-v$(EXEEXT) \
-	filter-unavailable$(EXEEXT) fork-f$(EXEEXT) getpid$(EXEEXT) \
-	getppid$(EXEEXT) gettid$(EXEEXT) int_0x80$(EXEEXT) \
-	ioctl_dm-v$(EXEEXT) ioctl_evdev-v$(EXEEXT) \
-	ioctl_loop-nv$(EXEEXT) ioctl_loop-v$(EXEEXT) \
-	ioctl_nsfs$(EXEEXT) ioctl_rtc-v$(EXEEXT) ksysent$(EXEEXT) \
-	mmsg-silent$(EXEEXT) mmsg_name-v$(EXEEXT) \
-	msg_control-v$(EXEEXT) net-accept-connect$(EXEEXT) \
-	netlink_inet_diag$(EXEEXT) netlink_netlink_diag$(EXEEXT) \
-	netlink_unix_diag$(EXEEXT) nsyscalls$(EXEEXT) pc$(EXEEXT) \
-	perf_event_open_nonverbose$(EXEEXT) \
-	perf_event_open_unabbrev$(EXEEXT) ppoll-v$(EXEEXT) \
-	prctl-seccomp-filter-v$(EXEEXT) prctl-seccomp-strict$(EXEEXT) \
-	print_maxfd$(EXEEXT) qual_fault$(EXEEXT) \
-	qual_inject-error-signal$(EXEEXT) qual_inject-retval$(EXEEXT) \
-	qual_inject-signal$(EXEEXT) qual_signal$(EXEEXT) \
-	quotactl-v$(EXEEXT) quotactl-xfs-v$(EXEEXT) \
-	redirect-fds$(EXEEXT) restart_syscall$(EXEEXT) \
-	scm_rights$(EXEEXT) seccomp-filter-v$(EXEEXT) \
-	seccomp-strict$(EXEEXT) set_ptracer_any$(EXEEXT) \
-	signal_receive$(EXEEXT) sleep$(EXEEXT) stack-fcall$(EXEEXT) \
-	threads-execve$(EXEEXT) unix-pair-send-recv$(EXEEXT) \
-	unix-pair-sendto-recvfrom$(EXEEXT) vfork-f$(EXEEXT) \
-	wait4-v$(EXEEXT) waitid-v$(EXEEXT)
-TESTS = $(GEN_TESTS) $(DECODER_TESTS) $(MISC_TESTS) $(am__EXEEXT_2)
-subdir = tests-m32
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_code_coverage.m4 \
-	$(top_srcdir)/m4/ax_prog_cc_for_build.m4 \
-	$(top_srcdir)/m4/ax_valgrind_check.m4 \
-	$(top_srcdir)/m4/mpers.m4 \
-	$(top_srcdir)/m4/st_save_restore_var.m4 \
-	$(top_srcdir)/m4/st_warn_cflags.m4 \
-	$(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AR = ar
-ARFLAGS = cru
-AM_V_AR = $(am__v_AR_$(V))
-am__v_AR_ = $(am__v_AR_$(AM_DEFAULT_VERBOSITY))
-am__v_AR_0 = @echo "  AR      " $@;
-am__v_AR_1 = 
-libtests_a_AR = $(AR) $(ARFLAGS)
-libtests_a_LIBADD =
-am_libtests_a_OBJECTS = libtests_a-errno2name.$(OBJEXT) \
-	libtests_a-error_msg.$(OBJEXT) \
-	libtests_a-fill_memory.$(OBJEXT) \
-	libtests_a-get_page_size.$(OBJEXT) \
-	libtests_a-get_sigset_size.$(OBJEXT) \
-	libtests_a-hexdump_strdup.$(OBJEXT) \
-	libtests_a-hexquote_strndup.$(OBJEXT) \
-	libtests_a-inode_of_sockfd.$(OBJEXT) \
-	libtests_a-libmmsg.$(OBJEXT) \
-	libtests_a-libsocketcall.$(OBJEXT) \
-	libtests_a-overflowuid.$(OBJEXT) \
-	libtests_a-pipe_maxfd.$(OBJEXT) \
-	libtests_a-print_quoted_string.$(OBJEXT) \
-	libtests_a-print_time.$(OBJEXT) \
-	libtests_a-printflags.$(OBJEXT) libtests_a-printxval.$(OBJEXT) \
-	libtests_a-signal2name.$(OBJEXT) \
-	libtests_a-skip_unavailable.$(OBJEXT) \
-	libtests_a-sprintrc.$(OBJEXT) libtests_a-tail_alloc.$(OBJEXT) \
-	libtests_a-tprintf.$(OBJEXT)
-libtests_a_OBJECTS = $(am_libtests_a_OBJECTS)
-am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \
-	access$(EXEEXT) acct$(EXEEXT) add_key$(EXEEXT) \
-	adjtimex$(EXEEXT) aio$(EXEEXT) alarm$(EXEEXT) bpf$(EXEEXT) \
-	brk$(EXEEXT) btrfs$(EXEEXT) caps$(EXEEXT) chmod$(EXEEXT) \
-	chown$(EXEEXT) chown32$(EXEEXT) chroot$(EXEEXT) \
-	clock_adjtime$(EXEEXT) clock_nanosleep$(EXEEXT) \
-	clock_xettime$(EXEEXT) copy_file_range$(EXEEXT) creat$(EXEEXT) \
-	delete_module$(EXEEXT) dup$(EXEEXT) dup2$(EXEEXT) \
-	dup3$(EXEEXT) epoll_create$(EXEEXT) epoll_create1$(EXEEXT) \
-	epoll_ctl$(EXEEXT) epoll_pwait$(EXEEXT) epoll_wait$(EXEEXT) \
-	erestartsys$(EXEEXT) eventfd$(EXEEXT) execve$(EXEEXT) \
-	execveat$(EXEEXT) faccessat$(EXEEXT) fadvise64$(EXEEXT) \
-	fadvise64_64$(EXEEXT) fallocate$(EXEEXT) \
-	fanotify_init$(EXEEXT) fanotify_mark$(EXEEXT) fchdir$(EXEEXT) \
-	fchmod$(EXEEXT) fchmodat$(EXEEXT) fchown$(EXEEXT) \
-	fchown32$(EXEEXT) fchownat$(EXEEXT) fcntl$(EXEEXT) \
-	fcntl64$(EXEEXT) fdatasync$(EXEEXT) file_handle$(EXEEXT) \
-	file_ioctl$(EXEEXT) finit_module$(EXEEXT) flock$(EXEEXT) \
-	fstat$(EXEEXT) fstat64$(EXEEXT) fstatat64$(EXEEXT) \
-	fstatfs$(EXEEXT) fstatfs64$(EXEEXT) fsync$(EXEEXT) \
-	ftruncate$(EXEEXT) ftruncate64$(EXEEXT) futex$(EXEEXT) \
-	futimesat$(EXEEXT) get_mempolicy$(EXEEXT) getcpu$(EXEEXT) \
-	getcwd$(EXEEXT) getdents$(EXEEXT) getdents64$(EXEEXT) \
-	getegid$(EXEEXT) getegid32$(EXEEXT) geteuid$(EXEEXT) \
-	geteuid32$(EXEEXT) getgid$(EXEEXT) getgid32$(EXEEXT) \
-	getgroups$(EXEEXT) getgroups32$(EXEEXT) getpeername$(EXEEXT) \
-	getpgrp$(EXEEXT) getpid$(EXEEXT) getppid$(EXEEXT) \
-	getrandom$(EXEEXT) getresgid$(EXEEXT) getresgid32$(EXEEXT) \
-	getresuid$(EXEEXT) getresuid32$(EXEEXT) getrlimit$(EXEEXT) \
-	getrusage$(EXEEXT) getsid$(EXEEXT) getsockname$(EXEEXT) \
-	getuid$(EXEEXT) getuid32$(EXEEXT) getxxid$(EXEEXT) \
-	inet-cmsg$(EXEEXT) init_module$(EXEEXT) inotify$(EXEEXT) \
-	inotify_init1$(EXEEXT) ioctl$(EXEEXT) ioctl_block$(EXEEXT) \
-	ioctl_dm$(EXEEXT) ioctl_evdev$(EXEEXT) ioctl_loop$(EXEEXT) \
-	ioctl_mtd$(EXEEXT) ioctl_rtc$(EXEEXT) ioctl_scsi$(EXEEXT) \
-	ioctl_sg_io_v3$(EXEEXT) ioctl_sg_io_v4$(EXEEXT) \
-	ioctl_sock_gifconf$(EXEEXT) ioctl_uffdio$(EXEEXT) \
-	ioctl_v4l2$(EXEEXT) ioperm$(EXEEXT) iopl$(EXEEXT) \
-	ioprio$(EXEEXT) ip_mreq$(EXEEXT) ipc$(EXEEXT) ipc_msg$(EXEEXT) \
-	ipc_msgbuf$(EXEEXT) ipc_sem$(EXEEXT) ipc_shm$(EXEEXT) \
-	kcmp$(EXEEXT) kexec_file_load$(EXEEXT) kexec_load$(EXEEXT) \
-	keyctl$(EXEEXT) kill$(EXEEXT) lchown$(EXEEXT) \
-	lchown32$(EXEEXT) link$(EXEEXT) linkat$(EXEEXT) \
-	llseek$(EXEEXT) lookup_dcookie$(EXEEXT) lseek$(EXEEXT) \
-	lstat$(EXEEXT) lstat64$(EXEEXT) madvise$(EXEEXT) \
-	mbind$(EXEEXT) membarrier$(EXEEXT) memfd_create$(EXEEXT) \
-	migrate_pages$(EXEEXT) mincore$(EXEEXT) mkdir$(EXEEXT) \
-	mkdirat$(EXEEXT) mknod$(EXEEXT) mknodat$(EXEEXT) \
-	mlock$(EXEEXT) mlock2$(EXEEXT) mlockall$(EXEEXT) mmap$(EXEEXT) \
-	mmap64$(EXEEXT) mmsg$(EXEEXT) mmsg_name$(EXEEXT) \
-	mount$(EXEEXT) move_pages$(EXEEXT) mq$(EXEEXT) \
-	mq_sendrecv$(EXEEXT) mq_sendrecv-read$(EXEEXT) \
-	mq_sendrecv-write$(EXEEXT) msg_control$(EXEEXT) \
-	msg_name$(EXEEXT) munlockall$(EXEEXT) nanosleep$(EXEEXT) \
-	net-icmp_filter$(EXEEXT) net-sockaddr$(EXEEXT) \
-	net-y-unix$(EXEEXT) net-yy-inet$(EXEEXT) \
-	net-yy-netlink$(EXEEXT) net-yy-unix$(EXEEXT) \
-	netlink_protocol$(EXEEXT) newfstatat$(EXEEXT) \
-	old_mmap$(EXEEXT) oldfstat$(EXEEXT) oldlstat$(EXEEXT) \
-	oldselect$(EXEEXT) oldstat$(EXEEXT) open$(EXEEXT) \
-	openat$(EXEEXT) osf_utimes$(EXEEXT) pause$(EXEEXT) \
-	perf_event_open$(EXEEXT) personality$(EXEEXT) pipe$(EXEEXT) \
-	pipe2$(EXEEXT) pkey_alloc$(EXEEXT) pkey_free$(EXEEXT) \
-	pkey_mprotect$(EXEEXT) poll$(EXEEXT) ppoll$(EXEEXT) \
-	prctl-arg2-intptr$(EXEEXT) prctl-dumpable$(EXEEXT) \
-	prctl-name$(EXEEXT) prctl-no-args$(EXEEXT) \
-	prctl-pdeathsig$(EXEEXT) prctl-securebits$(EXEEXT) \
-	prctl-tid_address$(EXEEXT) prctl-tsc$(EXEEXT) \
-	pread64-pwrite64$(EXEEXT) preadv$(EXEEXT) \
-	preadv-pwritev$(EXEEXT) preadv2-pwritev2$(EXEEXT) \
-	printstr$(EXEEXT) prlimit64$(EXEEXT) process_vm_readv$(EXEEXT) \
-	process_vm_writev$(EXEEXT) pselect6$(EXEEXT) ptrace$(EXEEXT) \
-	pwritev$(EXEEXT) quotactl$(EXEEXT) quotactl-xfs$(EXEEXT) \
-	read-write$(EXEEXT) readahead$(EXEEXT) readdir$(EXEEXT) \
-	readlink$(EXEEXT) readlinkat$(EXEEXT) readv$(EXEEXT) \
-	reboot$(EXEEXT) recvfrom$(EXEEXT) recvmmsg-timeout$(EXEEXT) \
-	recvmsg$(EXEEXT) remap_file_pages$(EXEEXT) rename$(EXEEXT) \
-	renameat$(EXEEXT) renameat2$(EXEEXT) request_key$(EXEEXT) \
-	rmdir$(EXEEXT) rt_sigpending$(EXEEXT) rt_sigprocmask$(EXEEXT) \
-	rt_sigqueueinfo$(EXEEXT) rt_sigreturn$(EXEEXT) \
-	rt_sigsuspend$(EXEEXT) rt_sigtimedwait$(EXEEXT) \
-	rt_tgsigqueueinfo$(EXEEXT) sched_get_priority_mxx$(EXEEXT) \
-	sched_rr_get_interval$(EXEEXT) sched_xetaffinity$(EXEEXT) \
-	sched_xetattr$(EXEEXT) sched_xetparam$(EXEEXT) \
-	sched_xetscheduler$(EXEEXT) sched_yield$(EXEEXT) \
-	seccomp-filter$(EXEEXT) select$(EXEEXT) semop$(EXEEXT) \
-	sendfile$(EXEEXT) sendfile64$(EXEEXT) set_mempolicy$(EXEEXT) \
-	setdomainname$(EXEEXT) setfsgid$(EXEEXT) setfsgid32$(EXEEXT) \
-	setfsuid$(EXEEXT) setfsuid32$(EXEEXT) setgid$(EXEEXT) \
-	setgid32$(EXEEXT) setgroups$(EXEEXT) setgroups32$(EXEEXT) \
-	sethostname$(EXEEXT) setns$(EXEEXT) setregid$(EXEEXT) \
-	setregid32$(EXEEXT) setresgid$(EXEEXT) setresgid32$(EXEEXT) \
-	setresuid$(EXEEXT) setresuid32$(EXEEXT) setreuid$(EXEEXT) \
-	setreuid32$(EXEEXT) setrlimit$(EXEEXT) setuid$(EXEEXT) \
-	setuid32$(EXEEXT) shmxt$(EXEEXT) shutdown$(EXEEXT) \
-	sigaction$(EXEEXT) sigaltstack$(EXEEXT) siginfo$(EXEEXT) \
-	signalfd4$(EXEEXT) sigreturn$(EXEEXT) sigsuspend$(EXEEXT) \
-	socketcall$(EXEEXT) splice$(EXEEXT) stat$(EXEEXT) \
-	stat64$(EXEEXT) statfs$(EXEEXT) statfs64$(EXEEXT) \
-	statx$(EXEEXT) swap$(EXEEXT) sxetmask$(EXEEXT) \
-	symlink$(EXEEXT) symlinkat$(EXEEXT) sync$(EXEEXT) \
-	sync_file_range$(EXEEXT) sync_file_range2$(EXEEXT) \
-	sysinfo$(EXEEXT) syslog$(EXEEXT) tee$(EXEEXT) time$(EXEEXT) \
-	timer_create$(EXEEXT) timer_xettime$(EXEEXT) \
-	timerfd_xettime$(EXEEXT) times$(EXEEXT) times-fail$(EXEEXT) \
-	truncate$(EXEEXT) truncate64$(EXEEXT) ugetrlimit$(EXEEXT) \
-	uio$(EXEEXT) umask$(EXEEXT) umount$(EXEEXT) umount2$(EXEEXT) \
-	umoven-illptr$(EXEEXT) umovestr$(EXEEXT) \
-	umovestr-illptr$(EXEEXT) umovestr2$(EXEEXT) umovestr3$(EXEEXT) \
-	uname$(EXEEXT) unlink$(EXEEXT) unlinkat$(EXEEXT) \
-	unshare$(EXEEXT) userfaultfd$(EXEEXT) ustat$(EXEEXT) \
-	utime$(EXEEXT) utimensat$(EXEEXT) utimes$(EXEEXT) \
-	vhangup$(EXEEXT) vmsplice$(EXEEXT) wait4$(EXEEXT) \
-	waitid$(EXEEXT) waitpid$(EXEEXT) xattr$(EXEEXT) \
-	xattr-strings$(EXEEXT) xet_robust_list$(EXEEXT) \
-	xetitimer$(EXEEXT) xetpgid$(EXEEXT) xetpriority$(EXEEXT) \
-	xettimeofday$(EXEEXT)
-_newselect_SOURCES = _newselect.c
-_newselect_OBJECTS = _newselect.$(OBJEXT)
-_newselect_LDADD = $(LDADD)
-_newselect_DEPENDENCIES = libtests.a
-accept_SOURCES = accept.c
-accept_OBJECTS = accept.$(OBJEXT)
-accept_LDADD = $(LDADD)
-accept_DEPENDENCIES = libtests.a
-accept4_SOURCES = accept4.c
-accept4_OBJECTS = accept4.$(OBJEXT)
-accept4_LDADD = $(LDADD)
-accept4_DEPENDENCIES = libtests.a
-access_SOURCES = access.c
-access_OBJECTS = access.$(OBJEXT)
-access_LDADD = $(LDADD)
-access_DEPENDENCIES = libtests.a
-acct_SOURCES = acct.c
-acct_OBJECTS = acct.$(OBJEXT)
-acct_LDADD = $(LDADD)
-acct_DEPENDENCIES = libtests.a
-add_key_SOURCES = add_key.c
-add_key_OBJECTS = add_key.$(OBJEXT)
-add_key_LDADD = $(LDADD)
-add_key_DEPENDENCIES = libtests.a
-adjtimex_SOURCES = adjtimex.c
-adjtimex_OBJECTS = adjtimex.$(OBJEXT)
-adjtimex_LDADD = $(LDADD)
-adjtimex_DEPENDENCIES = libtests.a
-aio_SOURCES = aio.c
-aio_OBJECTS = aio.$(OBJEXT)
-aio_LDADD = $(LDADD)
-aio_DEPENDENCIES = libtests.a
-alarm_SOURCES = alarm.c
-alarm_OBJECTS = alarm.$(OBJEXT)
-alarm_LDADD = $(LDADD)
-alarm_DEPENDENCIES = libtests.a
-answer_SOURCES = answer.c
-answer_OBJECTS = answer.$(OBJEXT)
-answer_LDADD = $(LDADD)
-answer_DEPENDENCIES = libtests.a
-attach_f_p_SOURCES = attach-f-p.c
-attach_f_p_OBJECTS = attach-f-p.$(OBJEXT)
-attach_f_p_DEPENDENCIES = $(LDADD)
-attach_f_p_cmd_SOURCES = attach-f-p-cmd.c
-attach_f_p_cmd_OBJECTS = attach-f-p-cmd.$(OBJEXT)
-attach_f_p_cmd_LDADD = $(LDADD)
-attach_f_p_cmd_DEPENDENCIES = libtests.a
-attach_p_cmd_cmd_SOURCES = attach-p-cmd-cmd.c
-attach_p_cmd_cmd_OBJECTS = attach-p-cmd-cmd.$(OBJEXT)
-attach_p_cmd_cmd_LDADD = $(LDADD)
-attach_p_cmd_cmd_DEPENDENCIES = libtests.a
-attach_p_cmd_p_SOURCES = attach-p-cmd-p.c
-attach_p_cmd_p_OBJECTS = attach-p-cmd-p.$(OBJEXT)
-attach_p_cmd_p_LDADD = $(LDADD)
-attach_p_cmd_p_DEPENDENCIES = libtests.a
-bpf_SOURCES = bpf.c
-bpf_OBJECTS = bpf.$(OBJEXT)
-bpf_LDADD = $(LDADD)
-bpf_DEPENDENCIES = libtests.a
-brk_SOURCES = brk.c
-brk_OBJECTS = brk.$(OBJEXT)
-brk_LDADD = $(LDADD)
-brk_DEPENDENCIES = libtests.a
-btrfs_SOURCES = btrfs.c
-btrfs_OBJECTS = btrfs.$(OBJEXT)
-btrfs_LDADD = $(LDADD)
-btrfs_DEPENDENCIES = libtests.a
-caps_SOURCES = caps.c
-caps_OBJECTS = caps.$(OBJEXT)
-caps_LDADD = $(LDADD)
-caps_DEPENDENCIES = libtests.a
-caps_abbrev_SOURCES = caps-abbrev.c
-caps_abbrev_OBJECTS = caps-abbrev.$(OBJEXT)
-caps_abbrev_LDADD = $(LDADD)
-caps_abbrev_DEPENDENCIES = libtests.a
-chmod_SOURCES = chmod.c
-chmod_OBJECTS = chmod.$(OBJEXT)
-chmod_LDADD = $(LDADD)
-chmod_DEPENDENCIES = libtests.a
-chown_SOURCES = chown.c
-chown_OBJECTS = chown.$(OBJEXT)
-chown_LDADD = $(LDADD)
-chown_DEPENDENCIES = libtests.a
-chown32_SOURCES = chown32.c
-chown32_OBJECTS = chown32.$(OBJEXT)
-chown32_LDADD = $(LDADD)
-chown32_DEPENDENCIES = libtests.a
-chroot_SOURCES = chroot.c
-chroot_OBJECTS = chroot.$(OBJEXT)
-chroot_LDADD = $(LDADD)
-chroot_DEPENDENCIES = libtests.a
-clock_adjtime_SOURCES = clock_adjtime.c
-clock_adjtime_OBJECTS = clock_adjtime.$(OBJEXT)
-clock_adjtime_LDADD = $(LDADD)
-clock_adjtime_DEPENDENCIES = libtests.a
-clock_nanosleep_SOURCES = clock_nanosleep.c
-clock_nanosleep_OBJECTS = clock_nanosleep.$(OBJEXT)
-clock_nanosleep_LDADD = $(LDADD)
-clock_nanosleep_DEPENDENCIES = libtests.a
-clock_xettime_SOURCES = clock_xettime.c
-clock_xettime_OBJECTS = clock_xettime.$(OBJEXT)
-clock_xettime_DEPENDENCIES = $(LDADD)
-copy_file_range_SOURCES = copy_file_range.c
-copy_file_range_OBJECTS = copy_file_range.$(OBJEXT)
-copy_file_range_LDADD = $(LDADD)
-copy_file_range_DEPENDENCIES = libtests.a
-count_f_SOURCES = count-f.c
-count_f_OBJECTS = count-f.$(OBJEXT)
-count_f_DEPENDENCIES = $(LDADD)
-creat_SOURCES = creat.c
-creat_OBJECTS = creat.$(OBJEXT)
-creat_LDADD = $(LDADD)
-creat_DEPENDENCIES = libtests.a
-delete_module_SOURCES = delete_module.c
-delete_module_OBJECTS = delete_module.$(OBJEXT)
-delete_module_LDADD = $(LDADD)
-delete_module_DEPENDENCIES = libtests.a
-dup_SOURCES = dup.c
-dup_OBJECTS = dup.$(OBJEXT)
-dup_LDADD = $(LDADD)
-dup_DEPENDENCIES = libtests.a
-dup2_SOURCES = dup2.c
-dup2_OBJECTS = dup2.$(OBJEXT)
-dup2_LDADD = $(LDADD)
-dup2_DEPENDENCIES = libtests.a
-dup3_SOURCES = dup3.c
-dup3_OBJECTS = dup3.$(OBJEXT)
-dup3_LDADD = $(LDADD)
-dup3_DEPENDENCIES = libtests.a
-epoll_create_SOURCES = epoll_create.c
-epoll_create_OBJECTS = epoll_create.$(OBJEXT)
-epoll_create_LDADD = $(LDADD)
-epoll_create_DEPENDENCIES = libtests.a
-epoll_create1_SOURCES = epoll_create1.c
-epoll_create1_OBJECTS = epoll_create1.$(OBJEXT)
-epoll_create1_LDADD = $(LDADD)
-epoll_create1_DEPENDENCIES = libtests.a
-epoll_ctl_SOURCES = epoll_ctl.c
-epoll_ctl_OBJECTS = epoll_ctl.$(OBJEXT)
-epoll_ctl_LDADD = $(LDADD)
-epoll_ctl_DEPENDENCIES = libtests.a
-epoll_pwait_SOURCES = epoll_pwait.c
-epoll_pwait_OBJECTS = epoll_pwait.$(OBJEXT)
-epoll_pwait_LDADD = $(LDADD)
-epoll_pwait_DEPENDENCIES = libtests.a
-epoll_wait_SOURCES = epoll_wait.c
-epoll_wait_OBJECTS = epoll_wait.$(OBJEXT)
-epoll_wait_LDADD = $(LDADD)
-epoll_wait_DEPENDENCIES = libtests.a
-erestartsys_SOURCES = erestartsys.c
-erestartsys_OBJECTS = erestartsys.$(OBJEXT)
-erestartsys_LDADD = $(LDADD)
-erestartsys_DEPENDENCIES = libtests.a
-eventfd_SOURCES = eventfd.c
-eventfd_OBJECTS = eventfd.$(OBJEXT)
-eventfd_LDADD = $(LDADD)
-eventfd_DEPENDENCIES = libtests.a
-execve_SOURCES = execve.c
-execve_OBJECTS = execve.$(OBJEXT)
-execve_LDADD = $(LDADD)
-execve_DEPENDENCIES = libtests.a
-execve_v_SOURCES = execve-v.c
-execve_v_OBJECTS = execve-v.$(OBJEXT)
-execve_v_LDADD = $(LDADD)
-execve_v_DEPENDENCIES = libtests.a
-execveat_SOURCES = execveat.c
-execveat_OBJECTS = execveat.$(OBJEXT)
-execveat_LDADD = $(LDADD)
-execveat_DEPENDENCIES = libtests.a
-execveat_v_SOURCES = execveat-v.c
-execveat_v_OBJECTS = execveat-v.$(OBJEXT)
-execveat_v_LDADD = $(LDADD)
-execveat_v_DEPENDENCIES = libtests.a
-faccessat_SOURCES = faccessat.c
-faccessat_OBJECTS = faccessat.$(OBJEXT)
-faccessat_LDADD = $(LDADD)
-faccessat_DEPENDENCIES = libtests.a
-fadvise64_SOURCES = fadvise64.c
-fadvise64_OBJECTS = fadvise64.$(OBJEXT)
-fadvise64_LDADD = $(LDADD)
-fadvise64_DEPENDENCIES = libtests.a
-fadvise64_64_SOURCES = fadvise64_64.c
-fadvise64_64_OBJECTS = fadvise64_64.$(OBJEXT)
-fadvise64_64_LDADD = $(LDADD)
-fadvise64_64_DEPENDENCIES = libtests.a
-fallocate_SOURCES = fallocate.c
-fallocate_OBJECTS = fallocate.$(OBJEXT)
-fallocate_LDADD = $(LDADD)
-fallocate_DEPENDENCIES = libtests.a
-fanotify_init_SOURCES = fanotify_init.c
-fanotify_init_OBJECTS = fanotify_init.$(OBJEXT)
-fanotify_init_LDADD = $(LDADD)
-fanotify_init_DEPENDENCIES = libtests.a
-fanotify_mark_SOURCES = fanotify_mark.c
-fanotify_mark_OBJECTS = fanotify_mark.$(OBJEXT)
-fanotify_mark_LDADD = $(LDADD)
-fanotify_mark_DEPENDENCIES = libtests.a
-fchdir_SOURCES = fchdir.c
-fchdir_OBJECTS = fchdir.$(OBJEXT)
-fchdir_LDADD = $(LDADD)
-fchdir_DEPENDENCIES = libtests.a
-fchmod_SOURCES = fchmod.c
-fchmod_OBJECTS = fchmod.$(OBJEXT)
-fchmod_LDADD = $(LDADD)
-fchmod_DEPENDENCIES = libtests.a
-fchmodat_SOURCES = fchmodat.c
-fchmodat_OBJECTS = fchmodat.$(OBJEXT)
-fchmodat_LDADD = $(LDADD)
-fchmodat_DEPENDENCIES = libtests.a
-fchown_SOURCES = fchown.c
-fchown_OBJECTS = fchown.$(OBJEXT)
-fchown_LDADD = $(LDADD)
-fchown_DEPENDENCIES = libtests.a
-fchown32_SOURCES = fchown32.c
-fchown32_OBJECTS = fchown32.$(OBJEXT)
-fchown32_LDADD = $(LDADD)
-fchown32_DEPENDENCIES = libtests.a
-fchownat_SOURCES = fchownat.c
-fchownat_OBJECTS = fchownat.$(OBJEXT)
-fchownat_LDADD = $(LDADD)
-fchownat_DEPENDENCIES = libtests.a
-fcntl_SOURCES = fcntl.c
-fcntl_OBJECTS = fcntl.$(OBJEXT)
-fcntl_LDADD = $(LDADD)
-fcntl_DEPENDENCIES = libtests.a
-fcntl64_SOURCES = fcntl64.c
-fcntl64_OBJECTS = fcntl64.$(OBJEXT)
-fcntl64_LDADD = $(LDADD)
-fcntl64_DEPENDENCIES = libtests.a
-fdatasync_SOURCES = fdatasync.c
-fdatasync_OBJECTS = fdatasync.$(OBJEXT)
-fdatasync_LDADD = $(LDADD)
-fdatasync_DEPENDENCIES = libtests.a
-file_handle_SOURCES = file_handle.c
-file_handle_OBJECTS = file_handle.$(OBJEXT)
-file_handle_LDADD = $(LDADD)
-file_handle_DEPENDENCIES = libtests.a
-file_ioctl_SOURCES = file_ioctl.c
-file_ioctl_OBJECTS = file_ioctl.$(OBJEXT)
-file_ioctl_LDADD = $(LDADD)
-file_ioctl_DEPENDENCIES = libtests.a
-filter_unavailable_SOURCES = filter-unavailable.c
-filter_unavailable_OBJECTS = filter-unavailable.$(OBJEXT)
-filter_unavailable_DEPENDENCIES = $(LDADD)
-finit_module_SOURCES = finit_module.c
-finit_module_OBJECTS = finit_module.$(OBJEXT)
-finit_module_LDADD = $(LDADD)
-finit_module_DEPENDENCIES = libtests.a
-flock_SOURCES = flock.c
-flock_OBJECTS = flock.$(OBJEXT)
-flock_LDADD = $(LDADD)
-flock_DEPENDENCIES = libtests.a
-fork_f_SOURCES = fork-f.c
-fork_f_OBJECTS = fork-f.$(OBJEXT)
-fork_f_LDADD = $(LDADD)
-fork_f_DEPENDENCIES = libtests.a
-fstat_SOURCES = fstat.c
-fstat_OBJECTS = fstat.$(OBJEXT)
-fstat_LDADD = $(LDADD)
-fstat_DEPENDENCIES = libtests.a
-fstat64_SOURCES = fstat64.c
-fstat64_OBJECTS = fstat64-fstat64.$(OBJEXT)
-fstat64_LDADD = $(LDADD)
-fstat64_DEPENDENCIES = libtests.a
-fstatat64_SOURCES = fstatat64.c
-fstatat64_OBJECTS = fstatat64-fstatat64.$(OBJEXT)
-fstatat64_LDADD = $(LDADD)
-fstatat64_DEPENDENCIES = libtests.a
-fstatfs_SOURCES = fstatfs.c
-fstatfs_OBJECTS = fstatfs.$(OBJEXT)
-fstatfs_LDADD = $(LDADD)
-fstatfs_DEPENDENCIES = libtests.a
-fstatfs64_SOURCES = fstatfs64.c
-fstatfs64_OBJECTS = fstatfs64.$(OBJEXT)
-fstatfs64_LDADD = $(LDADD)
-fstatfs64_DEPENDENCIES = libtests.a
-fsync_SOURCES = fsync.c
-fsync_OBJECTS = fsync.$(OBJEXT)
-fsync_LDADD = $(LDADD)
-fsync_DEPENDENCIES = libtests.a
-ftruncate_SOURCES = ftruncate.c
-ftruncate_OBJECTS = ftruncate.$(OBJEXT)
-ftruncate_LDADD = $(LDADD)
-ftruncate_DEPENDENCIES = libtests.a
-ftruncate64_SOURCES = ftruncate64.c
-ftruncate64_OBJECTS = ftruncate64-ftruncate64.$(OBJEXT)
-ftruncate64_LDADD = $(LDADD)
-ftruncate64_DEPENDENCIES = libtests.a
-futex_SOURCES = futex.c
-futex_OBJECTS = futex.$(OBJEXT)
-futex_LDADD = $(LDADD)
-futex_DEPENDENCIES = libtests.a
-futimesat_SOURCES = futimesat.c
-futimesat_OBJECTS = futimesat.$(OBJEXT)
-futimesat_LDADD = $(LDADD)
-futimesat_DEPENDENCIES = libtests.a
-get_mempolicy_SOURCES = get_mempolicy.c
-get_mempolicy_OBJECTS = get_mempolicy.$(OBJEXT)
-get_mempolicy_LDADD = $(LDADD)
-get_mempolicy_DEPENDENCIES = libtests.a
-getcpu_SOURCES = getcpu.c
-getcpu_OBJECTS = getcpu.$(OBJEXT)
-getcpu_LDADD = $(LDADD)
-getcpu_DEPENDENCIES = libtests.a
-getcwd_SOURCES = getcwd.c
-getcwd_OBJECTS = getcwd.$(OBJEXT)
-getcwd_LDADD = $(LDADD)
-getcwd_DEPENDENCIES = libtests.a
-getdents_SOURCES = getdents.c
-getdents_OBJECTS = getdents.$(OBJEXT)
-getdents_LDADD = $(LDADD)
-getdents_DEPENDENCIES = libtests.a
-getdents64_SOURCES = getdents64.c
-getdents64_OBJECTS = getdents64.$(OBJEXT)
-getdents64_LDADD = $(LDADD)
-getdents64_DEPENDENCIES = libtests.a
-getegid_SOURCES = getegid.c
-getegid_OBJECTS = getegid.$(OBJEXT)
-getegid_LDADD = $(LDADD)
-getegid_DEPENDENCIES = libtests.a
-getegid32_SOURCES = getegid32.c
-getegid32_OBJECTS = getegid32.$(OBJEXT)
-getegid32_LDADD = $(LDADD)
-getegid32_DEPENDENCIES = libtests.a
-geteuid_SOURCES = geteuid.c
-geteuid_OBJECTS = geteuid.$(OBJEXT)
-geteuid_LDADD = $(LDADD)
-geteuid_DEPENDENCIES = libtests.a
-geteuid32_SOURCES = geteuid32.c
-geteuid32_OBJECTS = geteuid32.$(OBJEXT)
-geteuid32_LDADD = $(LDADD)
-geteuid32_DEPENDENCIES = libtests.a
-getgid_SOURCES = getgid.c
-getgid_OBJECTS = getgid.$(OBJEXT)
-getgid_LDADD = $(LDADD)
-getgid_DEPENDENCIES = libtests.a
-getgid32_SOURCES = getgid32.c
-getgid32_OBJECTS = getgid32.$(OBJEXT)
-getgid32_LDADD = $(LDADD)
-getgid32_DEPENDENCIES = libtests.a
-getgroups_SOURCES = getgroups.c
-getgroups_OBJECTS = getgroups.$(OBJEXT)
-getgroups_LDADD = $(LDADD)
-getgroups_DEPENDENCIES = libtests.a
-getgroups32_SOURCES = getgroups32.c
-getgroups32_OBJECTS = getgroups32.$(OBJEXT)
-getgroups32_LDADD = $(LDADD)
-getgroups32_DEPENDENCIES = libtests.a
-getpeername_SOURCES = getpeername.c
-getpeername_OBJECTS = getpeername.$(OBJEXT)
-getpeername_LDADD = $(LDADD)
-getpeername_DEPENDENCIES = libtests.a
-getpgrp_SOURCES = getpgrp.c
-getpgrp_OBJECTS = getpgrp.$(OBJEXT)
-getpgrp_LDADD = $(LDADD)
-getpgrp_DEPENDENCIES = libtests.a
-getpid_SOURCES = getpid.c
-getpid_OBJECTS = getpid.$(OBJEXT)
-getpid_LDADD = $(LDADD)
-getpid_DEPENDENCIES = libtests.a
-getppid_SOURCES = getppid.c
-getppid_OBJECTS = getppid.$(OBJEXT)
-getppid_LDADD = $(LDADD)
-getppid_DEPENDENCIES = libtests.a
-getrandom_SOURCES = getrandom.c
-getrandom_OBJECTS = getrandom.$(OBJEXT)
-getrandom_LDADD = $(LDADD)
-getrandom_DEPENDENCIES = libtests.a
-getresgid_SOURCES = getresgid.c
-getresgid_OBJECTS = getresgid.$(OBJEXT)
-getresgid_LDADD = $(LDADD)
-getresgid_DEPENDENCIES = libtests.a
-getresgid32_SOURCES = getresgid32.c
-getresgid32_OBJECTS = getresgid32.$(OBJEXT)
-getresgid32_LDADD = $(LDADD)
-getresgid32_DEPENDENCIES = libtests.a
-getresuid_SOURCES = getresuid.c
-getresuid_OBJECTS = getresuid.$(OBJEXT)
-getresuid_LDADD = $(LDADD)
-getresuid_DEPENDENCIES = libtests.a
-getresuid32_SOURCES = getresuid32.c
-getresuid32_OBJECTS = getresuid32.$(OBJEXT)
-getresuid32_LDADD = $(LDADD)
-getresuid32_DEPENDENCIES = libtests.a
-getrlimit_SOURCES = getrlimit.c
-getrlimit_OBJECTS = getrlimit.$(OBJEXT)
-getrlimit_LDADD = $(LDADD)
-getrlimit_DEPENDENCIES = libtests.a
-getrusage_SOURCES = getrusage.c
-getrusage_OBJECTS = getrusage.$(OBJEXT)
-getrusage_LDADD = $(LDADD)
-getrusage_DEPENDENCIES = libtests.a
-getsid_SOURCES = getsid.c
-getsid_OBJECTS = getsid.$(OBJEXT)
-getsid_LDADD = $(LDADD)
-getsid_DEPENDENCIES = libtests.a
-getsockname_SOURCES = getsockname.c
-getsockname_OBJECTS = getsockname.$(OBJEXT)
-getsockname_LDADD = $(LDADD)
-getsockname_DEPENDENCIES = libtests.a
-gettid_SOURCES = gettid.c
-gettid_OBJECTS = gettid.$(OBJEXT)
-gettid_LDADD = $(LDADD)
-gettid_DEPENDENCIES = libtests.a
-getuid_SOURCES = getuid.c
-getuid_OBJECTS = getuid.$(OBJEXT)
-getuid_LDADD = $(LDADD)
-getuid_DEPENDENCIES = libtests.a
-getuid32_SOURCES = getuid32.c
-getuid32_OBJECTS = getuid32.$(OBJEXT)
-getuid32_LDADD = $(LDADD)
-getuid32_DEPENDENCIES = libtests.a
-getxxid_SOURCES = getxxid.c
-getxxid_OBJECTS = getxxid.$(OBJEXT)
-getxxid_LDADD = $(LDADD)
-getxxid_DEPENDENCIES = libtests.a
-inet_cmsg_SOURCES = inet-cmsg.c
-inet_cmsg_OBJECTS = inet-cmsg.$(OBJEXT)
-inet_cmsg_LDADD = $(LDADD)
-inet_cmsg_DEPENDENCIES = libtests.a
-init_module_SOURCES = init_module.c
-init_module_OBJECTS = init_module.$(OBJEXT)
-init_module_LDADD = $(LDADD)
-init_module_DEPENDENCIES = libtests.a
-inotify_SOURCES = inotify.c
-inotify_OBJECTS = inotify.$(OBJEXT)
-inotify_LDADD = $(LDADD)
-inotify_DEPENDENCIES = libtests.a
-inotify_init1_SOURCES = inotify_init1.c
-inotify_init1_OBJECTS = inotify_init1.$(OBJEXT)
-inotify_init1_LDADD = $(LDADD)
-inotify_init1_DEPENDENCIES = libtests.a
-int_0x80_SOURCES = int_0x80.c
-int_0x80_OBJECTS = int_0x80.$(OBJEXT)
-int_0x80_LDADD = $(LDADD)
-int_0x80_DEPENDENCIES = libtests.a
-ioctl_SOURCES = ioctl.c
-ioctl_OBJECTS = ioctl.$(OBJEXT)
-ioctl_LDADD = $(LDADD)
-ioctl_DEPENDENCIES = libtests.a
-ioctl_block_SOURCES = ioctl_block.c
-ioctl_block_OBJECTS = ioctl_block.$(OBJEXT)
-ioctl_block_LDADD = $(LDADD)
-ioctl_block_DEPENDENCIES = libtests.a
-ioctl_dm_SOURCES = ioctl_dm.c
-ioctl_dm_OBJECTS = ioctl_dm.$(OBJEXT)
-ioctl_dm_LDADD = $(LDADD)
-ioctl_dm_DEPENDENCIES = libtests.a
-ioctl_dm_v_SOURCES = ioctl_dm-v.c
-ioctl_dm_v_OBJECTS = ioctl_dm-v.$(OBJEXT)
-ioctl_dm_v_LDADD = $(LDADD)
-ioctl_dm_v_DEPENDENCIES = libtests.a
-ioctl_evdev_SOURCES = ioctl_evdev.c
-ioctl_evdev_OBJECTS = ioctl_evdev.$(OBJEXT)
-ioctl_evdev_LDADD = $(LDADD)
-ioctl_evdev_DEPENDENCIES = libtests.a
-ioctl_evdev_v_SOURCES = ioctl_evdev-v.c
-ioctl_evdev_v_OBJECTS = ioctl_evdev-v.$(OBJEXT)
-ioctl_evdev_v_LDADD = $(LDADD)
-ioctl_evdev_v_DEPENDENCIES = libtests.a
-ioctl_loop_SOURCES = ioctl_loop.c
-ioctl_loop_OBJECTS = ioctl_loop.$(OBJEXT)
-ioctl_loop_LDADD = $(LDADD)
-ioctl_loop_DEPENDENCIES = libtests.a
-ioctl_loop_nv_SOURCES = ioctl_loop-nv.c
-ioctl_loop_nv_OBJECTS = ioctl_loop-nv.$(OBJEXT)
-ioctl_loop_nv_LDADD = $(LDADD)
-ioctl_loop_nv_DEPENDENCIES = libtests.a
-ioctl_loop_v_SOURCES = ioctl_loop-v.c
-ioctl_loop_v_OBJECTS = ioctl_loop-v.$(OBJEXT)
-ioctl_loop_v_LDADD = $(LDADD)
-ioctl_loop_v_DEPENDENCIES = libtests.a
-ioctl_mtd_SOURCES = ioctl_mtd.c
-ioctl_mtd_OBJECTS = ioctl_mtd.$(OBJEXT)
-ioctl_mtd_LDADD = $(LDADD)
-ioctl_mtd_DEPENDENCIES = libtests.a
-ioctl_nsfs_SOURCES = ioctl_nsfs.c
-ioctl_nsfs_OBJECTS = ioctl_nsfs.$(OBJEXT)
-ioctl_nsfs_LDADD = $(LDADD)
-ioctl_nsfs_DEPENDENCIES = libtests.a
-ioctl_rtc_SOURCES = ioctl_rtc.c
-ioctl_rtc_OBJECTS = ioctl_rtc.$(OBJEXT)
-ioctl_rtc_LDADD = $(LDADD)
-ioctl_rtc_DEPENDENCIES = libtests.a
-ioctl_rtc_v_SOURCES = ioctl_rtc-v.c
-ioctl_rtc_v_OBJECTS = ioctl_rtc-v.$(OBJEXT)
-ioctl_rtc_v_LDADD = $(LDADD)
-ioctl_rtc_v_DEPENDENCIES = libtests.a
-ioctl_scsi_SOURCES = ioctl_scsi.c
-ioctl_scsi_OBJECTS = ioctl_scsi.$(OBJEXT)
-ioctl_scsi_LDADD = $(LDADD)
-ioctl_scsi_DEPENDENCIES = libtests.a
-ioctl_sg_io_v3_SOURCES = ioctl_sg_io_v3.c
-ioctl_sg_io_v3_OBJECTS = ioctl_sg_io_v3.$(OBJEXT)
-ioctl_sg_io_v3_LDADD = $(LDADD)
-ioctl_sg_io_v3_DEPENDENCIES = libtests.a
-ioctl_sg_io_v4_SOURCES = ioctl_sg_io_v4.c
-ioctl_sg_io_v4_OBJECTS = ioctl_sg_io_v4.$(OBJEXT)
-ioctl_sg_io_v4_LDADD = $(LDADD)
-ioctl_sg_io_v4_DEPENDENCIES = libtests.a
-ioctl_sock_gifconf_SOURCES = ioctl_sock_gifconf.c
-ioctl_sock_gifconf_OBJECTS = ioctl_sock_gifconf.$(OBJEXT)
-ioctl_sock_gifconf_LDADD = $(LDADD)
-ioctl_sock_gifconf_DEPENDENCIES = libtests.a
-ioctl_uffdio_SOURCES = ioctl_uffdio.c
-ioctl_uffdio_OBJECTS = ioctl_uffdio.$(OBJEXT)
-ioctl_uffdio_LDADD = $(LDADD)
-ioctl_uffdio_DEPENDENCIES = libtests.a
-ioctl_v4l2_SOURCES = ioctl_v4l2.c
-ioctl_v4l2_OBJECTS = ioctl_v4l2.$(OBJEXT)
-ioctl_v4l2_LDADD = $(LDADD)
-ioctl_v4l2_DEPENDENCIES = libtests.a
-ioperm_SOURCES = ioperm.c
-ioperm_OBJECTS = ioperm.$(OBJEXT)
-ioperm_LDADD = $(LDADD)
-ioperm_DEPENDENCIES = libtests.a
-iopl_SOURCES = iopl.c
-iopl_OBJECTS = iopl.$(OBJEXT)
-iopl_LDADD = $(LDADD)
-iopl_DEPENDENCIES = libtests.a
-ioprio_SOURCES = ioprio.c
-ioprio_OBJECTS = ioprio.$(OBJEXT)
-ioprio_LDADD = $(LDADD)
-ioprio_DEPENDENCIES = libtests.a
-ip_mreq_SOURCES = ip_mreq.c
-ip_mreq_OBJECTS = ip_mreq.$(OBJEXT)
-ip_mreq_LDADD = $(LDADD)
-ip_mreq_DEPENDENCIES = libtests.a
-ipc_SOURCES = ipc.c
-ipc_OBJECTS = ipc.$(OBJEXT)
-ipc_LDADD = $(LDADD)
-ipc_DEPENDENCIES = libtests.a
-ipc_msg_SOURCES = ipc_msg.c
-ipc_msg_OBJECTS = ipc_msg.$(OBJEXT)
-ipc_msg_LDADD = $(LDADD)
-ipc_msg_DEPENDENCIES = libtests.a
-ipc_msgbuf_SOURCES = ipc_msgbuf.c
-ipc_msgbuf_OBJECTS = ipc_msgbuf.$(OBJEXT)
-ipc_msgbuf_LDADD = $(LDADD)
-ipc_msgbuf_DEPENDENCIES = libtests.a
-ipc_sem_SOURCES = ipc_sem.c
-ipc_sem_OBJECTS = ipc_sem.$(OBJEXT)
-ipc_sem_LDADD = $(LDADD)
-ipc_sem_DEPENDENCIES = libtests.a
-ipc_shm_SOURCES = ipc_shm.c
-ipc_shm_OBJECTS = ipc_shm.$(OBJEXT)
-ipc_shm_LDADD = $(LDADD)
-ipc_shm_DEPENDENCIES = libtests.a
-kcmp_SOURCES = kcmp.c
-kcmp_OBJECTS = kcmp.$(OBJEXT)
-kcmp_LDADD = $(LDADD)
-kcmp_DEPENDENCIES = libtests.a
-kexec_file_load_SOURCES = kexec_file_load.c
-kexec_file_load_OBJECTS = kexec_file_load.$(OBJEXT)
-kexec_file_load_LDADD = $(LDADD)
-kexec_file_load_DEPENDENCIES = libtests.a
-kexec_load_SOURCES = kexec_load.c
-kexec_load_OBJECTS = kexec_load.$(OBJEXT)
-kexec_load_LDADD = $(LDADD)
-kexec_load_DEPENDENCIES = libtests.a
-keyctl_SOURCES = keyctl.c
-keyctl_OBJECTS = keyctl.$(OBJEXT)
-keyctl_LDADD = $(LDADD)
-keyctl_DEPENDENCIES = libtests.a
-kill_SOURCES = kill.c
-kill_OBJECTS = kill.$(OBJEXT)
-kill_LDADD = $(LDADD)
-kill_DEPENDENCIES = libtests.a
-ksysent_SOURCES = ksysent.c
-ksysent_OBJECTS = ksysent.$(OBJEXT)
-ksysent_LDADD = $(LDADD)
-ksysent_DEPENDENCIES = libtests.a
-lchown_SOURCES = lchown.c
-lchown_OBJECTS = lchown.$(OBJEXT)
-lchown_LDADD = $(LDADD)
-lchown_DEPENDENCIES = libtests.a
-lchown32_SOURCES = lchown32.c
-lchown32_OBJECTS = lchown32.$(OBJEXT)
-lchown32_LDADD = $(LDADD)
-lchown32_DEPENDENCIES = libtests.a
-link_SOURCES = link.c
-link_OBJECTS = link.$(OBJEXT)
-link_LDADD = $(LDADD)
-link_DEPENDENCIES = libtests.a
-linkat_SOURCES = linkat.c
-linkat_OBJECTS = linkat.$(OBJEXT)
-linkat_LDADD = $(LDADD)
-linkat_DEPENDENCIES = libtests.a
-llseek_SOURCES = llseek.c
-llseek_OBJECTS = llseek.$(OBJEXT)
-llseek_LDADD = $(LDADD)
-llseek_DEPENDENCIES = libtests.a
-lookup_dcookie_SOURCES = lookup_dcookie.c
-lookup_dcookie_OBJECTS = lookup_dcookie.$(OBJEXT)
-lookup_dcookie_LDADD = $(LDADD)
-lookup_dcookie_DEPENDENCIES = libtests.a
-lseek_SOURCES = lseek.c
-lseek_OBJECTS = lseek.$(OBJEXT)
-lseek_LDADD = $(LDADD)
-lseek_DEPENDENCIES = libtests.a
-lstat_SOURCES = lstat.c
-lstat_OBJECTS = lstat.$(OBJEXT)
-lstat_LDADD = $(LDADD)
-lstat_DEPENDENCIES = libtests.a
-lstat64_SOURCES = lstat64.c
-lstat64_OBJECTS = lstat64-lstat64.$(OBJEXT)
-lstat64_LDADD = $(LDADD)
-lstat64_DEPENDENCIES = libtests.a
-madvise_SOURCES = madvise.c
-madvise_OBJECTS = madvise.$(OBJEXT)
-madvise_LDADD = $(LDADD)
-madvise_DEPENDENCIES = libtests.a
-mbind_SOURCES = mbind.c
-mbind_OBJECTS = mbind.$(OBJEXT)
-mbind_LDADD = $(LDADD)
-mbind_DEPENDENCIES = libtests.a
-membarrier_SOURCES = membarrier.c
-membarrier_OBJECTS = membarrier.$(OBJEXT)
-membarrier_LDADD = $(LDADD)
-membarrier_DEPENDENCIES = libtests.a
-memfd_create_SOURCES = memfd_create.c
-memfd_create_OBJECTS = memfd_create.$(OBJEXT)
-memfd_create_LDADD = $(LDADD)
-memfd_create_DEPENDENCIES = libtests.a
-migrate_pages_SOURCES = migrate_pages.c
-migrate_pages_OBJECTS = migrate_pages.$(OBJEXT)
-migrate_pages_LDADD = $(LDADD)
-migrate_pages_DEPENDENCIES = libtests.a
-mincore_SOURCES = mincore.c
-mincore_OBJECTS = mincore.$(OBJEXT)
-mincore_LDADD = $(LDADD)
-mincore_DEPENDENCIES = libtests.a
-mkdir_SOURCES = mkdir.c
-mkdir_OBJECTS = mkdir.$(OBJEXT)
-mkdir_LDADD = $(LDADD)
-mkdir_DEPENDENCIES = libtests.a
-mkdirat_SOURCES = mkdirat.c
-mkdirat_OBJECTS = mkdirat.$(OBJEXT)
-mkdirat_LDADD = $(LDADD)
-mkdirat_DEPENDENCIES = libtests.a
-mknod_SOURCES = mknod.c
-mknod_OBJECTS = mknod.$(OBJEXT)
-mknod_LDADD = $(LDADD)
-mknod_DEPENDENCIES = libtests.a
-mknodat_SOURCES = mknodat.c
-mknodat_OBJECTS = mknodat.$(OBJEXT)
-mknodat_LDADD = $(LDADD)
-mknodat_DEPENDENCIES = libtests.a
-mlock_SOURCES = mlock.c
-mlock_OBJECTS = mlock.$(OBJEXT)
-mlock_LDADD = $(LDADD)
-mlock_DEPENDENCIES = libtests.a
-mlock2_SOURCES = mlock2.c
-mlock2_OBJECTS = mlock2.$(OBJEXT)
-mlock2_LDADD = $(LDADD)
-mlock2_DEPENDENCIES = libtests.a
-mlockall_SOURCES = mlockall.c
-mlockall_OBJECTS = mlockall.$(OBJEXT)
-mlockall_LDADD = $(LDADD)
-mlockall_DEPENDENCIES = libtests.a
-mmap_SOURCES = mmap.c
-mmap_OBJECTS = mmap.$(OBJEXT)
-mmap_LDADD = $(LDADD)
-mmap_DEPENDENCIES = libtests.a
-mmap64_SOURCES = mmap64.c
-mmap64_OBJECTS = mmap64-mmap64.$(OBJEXT)
-mmap64_LDADD = $(LDADD)
-mmap64_DEPENDENCIES = libtests.a
-mmsg_SOURCES = mmsg.c
-mmsg_OBJECTS = mmsg.$(OBJEXT)
-mmsg_LDADD = $(LDADD)
-mmsg_DEPENDENCIES = libtests.a
-mmsg_silent_SOURCES = mmsg-silent.c
-mmsg_silent_OBJECTS = mmsg-silent.$(OBJEXT)
-mmsg_silent_LDADD = $(LDADD)
-mmsg_silent_DEPENDENCIES = libtests.a
-mmsg_name_SOURCES = mmsg_name.c
-mmsg_name_OBJECTS = mmsg_name.$(OBJEXT)
-mmsg_name_LDADD = $(LDADD)
-mmsg_name_DEPENDENCIES = libtests.a
-mmsg_name_v_SOURCES = mmsg_name-v.c
-mmsg_name_v_OBJECTS = mmsg_name-v.$(OBJEXT)
-mmsg_name_v_LDADD = $(LDADD)
-mmsg_name_v_DEPENDENCIES = libtests.a
-mount_SOURCES = mount.c
-mount_OBJECTS = mount.$(OBJEXT)
-mount_LDADD = $(LDADD)
-mount_DEPENDENCIES = libtests.a
-move_pages_SOURCES = move_pages.c
-move_pages_OBJECTS = move_pages.$(OBJEXT)
-move_pages_LDADD = $(LDADD)
-move_pages_DEPENDENCIES = libtests.a
-mq_SOURCES = mq.c
-mq_OBJECTS = mq.$(OBJEXT)
-mq_DEPENDENCIES = $(LDADD)
-mq_sendrecv_SOURCES = mq_sendrecv.c
-mq_sendrecv_OBJECTS = mq_sendrecv.$(OBJEXT)
-mq_sendrecv_DEPENDENCIES = $(LDADD)
-mq_sendrecv_read_SOURCES = mq_sendrecv-read.c
-mq_sendrecv_read_OBJECTS = mq_sendrecv-read.$(OBJEXT)
-mq_sendrecv_read_DEPENDENCIES = $(LDADD)
-mq_sendrecv_write_SOURCES = mq_sendrecv-write.c
-mq_sendrecv_write_OBJECTS = mq_sendrecv-write.$(OBJEXT)
-mq_sendrecv_write_DEPENDENCIES = $(LDADD)
-msg_control_SOURCES = msg_control.c
-msg_control_OBJECTS = msg_control.$(OBJEXT)
-msg_control_LDADD = $(LDADD)
-msg_control_DEPENDENCIES = libtests.a
-msg_control_v_SOURCES = msg_control-v.c
-msg_control_v_OBJECTS = msg_control-v.$(OBJEXT)
-msg_control_v_LDADD = $(LDADD)
-msg_control_v_DEPENDENCIES = libtests.a
-msg_name_SOURCES = msg_name.c
-msg_name_OBJECTS = msg_name.$(OBJEXT)
-msg_name_LDADD = $(LDADD)
-msg_name_DEPENDENCIES = libtests.a
-munlockall_SOURCES = munlockall.c
-munlockall_OBJECTS = munlockall.$(OBJEXT)
-munlockall_LDADD = $(LDADD)
-munlockall_DEPENDENCIES = libtests.a
-nanosleep_SOURCES = nanosleep.c
-nanosleep_OBJECTS = nanosleep.$(OBJEXT)
-nanosleep_LDADD = $(LDADD)
-nanosleep_DEPENDENCIES = libtests.a
-net_accept_connect_SOURCES = net-accept-connect.c
-net_accept_connect_OBJECTS = net-accept-connect.$(OBJEXT)
-net_accept_connect_LDADD = $(LDADD)
-net_accept_connect_DEPENDENCIES = libtests.a
-net_icmp_filter_SOURCES = net-icmp_filter.c
-net_icmp_filter_OBJECTS = net-icmp_filter.$(OBJEXT)
-net_icmp_filter_LDADD = $(LDADD)
-net_icmp_filter_DEPENDENCIES = libtests.a
-net_sockaddr_SOURCES = net-sockaddr.c
-net_sockaddr_OBJECTS = net-sockaddr.$(OBJEXT)
-net_sockaddr_LDADD = $(LDADD)
-net_sockaddr_DEPENDENCIES = libtests.a
-net_y_unix_SOURCES = net-y-unix.c
-net_y_unix_OBJECTS = net-y-unix.$(OBJEXT)
-net_y_unix_LDADD = $(LDADD)
-net_y_unix_DEPENDENCIES = libtests.a
-net_yy_inet_SOURCES = net-yy-inet.c
-net_yy_inet_OBJECTS = net-yy-inet.$(OBJEXT)
-net_yy_inet_LDADD = $(LDADD)
-net_yy_inet_DEPENDENCIES = libtests.a
-net_yy_netlink_SOURCES = net-yy-netlink.c
-net_yy_netlink_OBJECTS = net-yy-netlink.$(OBJEXT)
-net_yy_netlink_LDADD = $(LDADD)
-net_yy_netlink_DEPENDENCIES = libtests.a
-net_yy_unix_SOURCES = net-yy-unix.c
-net_yy_unix_OBJECTS = net-yy-unix.$(OBJEXT)
-net_yy_unix_LDADD = $(LDADD)
-net_yy_unix_DEPENDENCIES = libtests.a
-netlink_inet_diag_SOURCES = netlink_inet_diag.c
-netlink_inet_diag_OBJECTS = netlink_inet_diag.$(OBJEXT)
-netlink_inet_diag_LDADD = $(LDADD)
-netlink_inet_diag_DEPENDENCIES = libtests.a
-netlink_netlink_diag_SOURCES = netlink_netlink_diag.c
-netlink_netlink_diag_OBJECTS = netlink_netlink_diag.$(OBJEXT)
-netlink_netlink_diag_LDADD = $(LDADD)
-netlink_netlink_diag_DEPENDENCIES = libtests.a
-netlink_protocol_SOURCES = netlink_protocol.c
-netlink_protocol_OBJECTS = netlink_protocol.$(OBJEXT)
-netlink_protocol_LDADD = $(LDADD)
-netlink_protocol_DEPENDENCIES = libtests.a
-netlink_unix_diag_SOURCES = netlink_unix_diag.c
-netlink_unix_diag_OBJECTS = netlink_unix_diag.$(OBJEXT)
-netlink_unix_diag_LDADD = $(LDADD)
-netlink_unix_diag_DEPENDENCIES = libtests.a
-newfstatat_SOURCES = newfstatat.c
-newfstatat_OBJECTS = newfstatat-newfstatat.$(OBJEXT)
-newfstatat_LDADD = $(LDADD)
-newfstatat_DEPENDENCIES = libtests.a
-nsyscalls_SOURCES = nsyscalls.c
-nsyscalls_OBJECTS = nsyscalls.$(OBJEXT)
-nsyscalls_LDADD = $(LDADD)
-nsyscalls_DEPENDENCIES = libtests.a
-old_mmap_SOURCES = old_mmap.c
-old_mmap_OBJECTS = old_mmap.$(OBJEXT)
-old_mmap_LDADD = $(LDADD)
-old_mmap_DEPENDENCIES = libtests.a
-oldfstat_SOURCES = oldfstat.c
-oldfstat_OBJECTS = oldfstat.$(OBJEXT)
-oldfstat_LDADD = $(LDADD)
-oldfstat_DEPENDENCIES = libtests.a
-oldlstat_SOURCES = oldlstat.c
-oldlstat_OBJECTS = oldlstat.$(OBJEXT)
-oldlstat_LDADD = $(LDADD)
-oldlstat_DEPENDENCIES = libtests.a
-oldselect_SOURCES = oldselect.c
-oldselect_OBJECTS = oldselect.$(OBJEXT)
-oldselect_LDADD = $(LDADD)
-oldselect_DEPENDENCIES = libtests.a
-oldstat_SOURCES = oldstat.c
-oldstat_OBJECTS = oldstat.$(OBJEXT)
-oldstat_LDADD = $(LDADD)
-oldstat_DEPENDENCIES = libtests.a
-open_SOURCES = open.c
-open_OBJECTS = open.$(OBJEXT)
-open_LDADD = $(LDADD)
-open_DEPENDENCIES = libtests.a
-openat_SOURCES = openat.c
-openat_OBJECTS = openat.$(OBJEXT)
-openat_LDADD = $(LDADD)
-openat_DEPENDENCIES = libtests.a
-osf_utimes_SOURCES = osf_utimes.c
-osf_utimes_OBJECTS = osf_utimes.$(OBJEXT)
-osf_utimes_LDADD = $(LDADD)
-osf_utimes_DEPENDENCIES = libtests.a
-pause_SOURCES = pause.c
-pause_OBJECTS = pause.$(OBJEXT)
-pause_LDADD = $(LDADD)
-pause_DEPENDENCIES = libtests.a
-pc_SOURCES = pc.c
-pc_OBJECTS = pc.$(OBJEXT)
-am__DEPENDENCIES_1 =
-pc_DEPENDENCIES = $(am__DEPENDENCIES_1) $(LDADD)
-perf_event_open_SOURCES = perf_event_open.c
-perf_event_open_OBJECTS = perf_event_open.$(OBJEXT)
-perf_event_open_LDADD = $(LDADD)
-perf_event_open_DEPENDENCIES = libtests.a
-perf_event_open_nonverbose_SOURCES = perf_event_open_nonverbose.c
-perf_event_open_nonverbose_OBJECTS =  \
-	perf_event_open_nonverbose.$(OBJEXT)
-perf_event_open_nonverbose_LDADD = $(LDADD)
-perf_event_open_nonverbose_DEPENDENCIES = libtests.a
-perf_event_open_unabbrev_SOURCES = perf_event_open_unabbrev.c
-perf_event_open_unabbrev_OBJECTS = perf_event_open_unabbrev.$(OBJEXT)
-perf_event_open_unabbrev_LDADD = $(LDADD)
-perf_event_open_unabbrev_DEPENDENCIES = libtests.a
-personality_SOURCES = personality.c
-personality_OBJECTS = personality.$(OBJEXT)
-personality_LDADD = $(LDADD)
-personality_DEPENDENCIES = libtests.a
-pipe_SOURCES = pipe.c
-pipe_OBJECTS = pipe.$(OBJEXT)
-pipe_LDADD = $(LDADD)
-pipe_DEPENDENCIES = libtests.a
-pipe2_SOURCES = pipe2.c
-pipe2_OBJECTS = pipe2.$(OBJEXT)
-pipe2_LDADD = $(LDADD)
-pipe2_DEPENDENCIES = libtests.a
-pkey_alloc_SOURCES = pkey_alloc.c
-pkey_alloc_OBJECTS = pkey_alloc.$(OBJEXT)
-pkey_alloc_LDADD = $(LDADD)
-pkey_alloc_DEPENDENCIES = libtests.a
-pkey_free_SOURCES = pkey_free.c
-pkey_free_OBJECTS = pkey_free.$(OBJEXT)
-pkey_free_LDADD = $(LDADD)
-pkey_free_DEPENDENCIES = libtests.a
-pkey_mprotect_SOURCES = pkey_mprotect.c
-pkey_mprotect_OBJECTS = pkey_mprotect.$(OBJEXT)
-pkey_mprotect_LDADD = $(LDADD)
-pkey_mprotect_DEPENDENCIES = libtests.a
-poll_SOURCES = poll.c
-poll_OBJECTS = poll.$(OBJEXT)
-poll_LDADD = $(LDADD)
-poll_DEPENDENCIES = libtests.a
-ppoll_SOURCES = ppoll.c
-ppoll_OBJECTS = ppoll.$(OBJEXT)
-ppoll_LDADD = $(LDADD)
-ppoll_DEPENDENCIES = libtests.a
-ppoll_v_SOURCES = ppoll-v.c
-ppoll_v_OBJECTS = ppoll-v.$(OBJEXT)
-ppoll_v_LDADD = $(LDADD)
-ppoll_v_DEPENDENCIES = libtests.a
-prctl_arg2_intptr_SOURCES = prctl-arg2-intptr.c
-prctl_arg2_intptr_OBJECTS = prctl-arg2-intptr.$(OBJEXT)
-prctl_arg2_intptr_LDADD = $(LDADD)
-prctl_arg2_intptr_DEPENDENCIES = libtests.a
-prctl_dumpable_SOURCES = prctl-dumpable.c
-prctl_dumpable_OBJECTS = prctl-dumpable.$(OBJEXT)
-prctl_dumpable_LDADD = $(LDADD)
-prctl_dumpable_DEPENDENCIES = libtests.a
-prctl_name_SOURCES = prctl-name.c
-prctl_name_OBJECTS = prctl-name.$(OBJEXT)
-prctl_name_LDADD = $(LDADD)
-prctl_name_DEPENDENCIES = libtests.a
-prctl_no_args_SOURCES = prctl-no-args.c
-prctl_no_args_OBJECTS = prctl-no-args.$(OBJEXT)
-prctl_no_args_LDADD = $(LDADD)
-prctl_no_args_DEPENDENCIES = libtests.a
-prctl_pdeathsig_SOURCES = prctl-pdeathsig.c
-prctl_pdeathsig_OBJECTS = prctl-pdeathsig.$(OBJEXT)
-prctl_pdeathsig_LDADD = $(LDADD)
-prctl_pdeathsig_DEPENDENCIES = libtests.a
-prctl_seccomp_filter_v_SOURCES = prctl-seccomp-filter-v.c
-prctl_seccomp_filter_v_OBJECTS = prctl-seccomp-filter-v.$(OBJEXT)
-prctl_seccomp_filter_v_LDADD = $(LDADD)
-prctl_seccomp_filter_v_DEPENDENCIES = libtests.a
-prctl_seccomp_strict_SOURCES = prctl-seccomp-strict.c
-prctl_seccomp_strict_OBJECTS = prctl-seccomp-strict.$(OBJEXT)
-prctl_seccomp_strict_LDADD = $(LDADD)
-prctl_seccomp_strict_DEPENDENCIES = libtests.a
-prctl_securebits_SOURCES = prctl-securebits.c
-prctl_securebits_OBJECTS = prctl-securebits.$(OBJEXT)
-prctl_securebits_LDADD = $(LDADD)
-prctl_securebits_DEPENDENCIES = libtests.a
-prctl_tid_address_SOURCES = prctl-tid_address.c
-prctl_tid_address_OBJECTS = prctl-tid_address.$(OBJEXT)
-prctl_tid_address_LDADD = $(LDADD)
-prctl_tid_address_DEPENDENCIES = libtests.a
-prctl_tsc_SOURCES = prctl-tsc.c
-prctl_tsc_OBJECTS = prctl-tsc.$(OBJEXT)
-prctl_tsc_LDADD = $(LDADD)
-prctl_tsc_DEPENDENCIES = libtests.a
-pread64_pwrite64_SOURCES = pread64-pwrite64.c
-pread64_pwrite64_OBJECTS =  \
-	pread64_pwrite64-pread64-pwrite64.$(OBJEXT)
-pread64_pwrite64_LDADD = $(LDADD)
-pread64_pwrite64_DEPENDENCIES = libtests.a
-preadv_SOURCES = preadv.c
-preadv_OBJECTS = preadv-preadv.$(OBJEXT)
-preadv_LDADD = $(LDADD)
-preadv_DEPENDENCIES = libtests.a
-preadv_pwritev_SOURCES = preadv-pwritev.c
-preadv_pwritev_OBJECTS = preadv_pwritev-preadv-pwritev.$(OBJEXT)
-preadv_pwritev_LDADD = $(LDADD)
-preadv_pwritev_DEPENDENCIES = libtests.a
-preadv2_pwritev2_SOURCES = preadv2-pwritev2.c
-preadv2_pwritev2_OBJECTS = preadv2-pwritev2.$(OBJEXT)
-preadv2_pwritev2_LDADD = $(LDADD)
-preadv2_pwritev2_DEPENDENCIES = libtests.a
-print_maxfd_SOURCES = print_maxfd.c
-print_maxfd_OBJECTS = print_maxfd.$(OBJEXT)
-print_maxfd_LDADD = $(LDADD)
-print_maxfd_DEPENDENCIES = libtests.a
-printstr_SOURCES = printstr.c
-printstr_OBJECTS = printstr.$(OBJEXT)
-printstr_LDADD = $(LDADD)
-printstr_DEPENDENCIES = libtests.a
-prlimit64_SOURCES = prlimit64.c
-prlimit64_OBJECTS = prlimit64.$(OBJEXT)
-prlimit64_LDADD = $(LDADD)
-prlimit64_DEPENDENCIES = libtests.a
-process_vm_readv_SOURCES = process_vm_readv.c
-process_vm_readv_OBJECTS = process_vm_readv.$(OBJEXT)
-process_vm_readv_LDADD = $(LDADD)
-process_vm_readv_DEPENDENCIES = libtests.a
-process_vm_writev_SOURCES = process_vm_writev.c
-process_vm_writev_OBJECTS = process_vm_writev.$(OBJEXT)
-process_vm_writev_LDADD = $(LDADD)
-process_vm_writev_DEPENDENCIES = libtests.a
-pselect6_SOURCES = pselect6.c
-pselect6_OBJECTS = pselect6.$(OBJEXT)
-pselect6_LDADD = $(LDADD)
-pselect6_DEPENDENCIES = libtests.a
-ptrace_SOURCES = ptrace.c
-ptrace_OBJECTS = ptrace.$(OBJEXT)
-ptrace_LDADD = $(LDADD)
-ptrace_DEPENDENCIES = libtests.a
-pwritev_SOURCES = pwritev.c
-pwritev_OBJECTS = pwritev-pwritev.$(OBJEXT)
-pwritev_LDADD = $(LDADD)
-pwritev_DEPENDENCIES = libtests.a
-qual_fault_SOURCES = qual_fault.c
-qual_fault_OBJECTS = qual_fault.$(OBJEXT)
-qual_fault_LDADD = $(LDADD)
-qual_fault_DEPENDENCIES = libtests.a
-qual_inject_error_signal_SOURCES = qual_inject-error-signal.c
-qual_inject_error_signal_OBJECTS = qual_inject-error-signal.$(OBJEXT)
-qual_inject_error_signal_LDADD = $(LDADD)
-qual_inject_error_signal_DEPENDENCIES = libtests.a
-qual_inject_retval_SOURCES = qual_inject-retval.c
-qual_inject_retval_OBJECTS = qual_inject-retval.$(OBJEXT)
-qual_inject_retval_LDADD = $(LDADD)
-qual_inject_retval_DEPENDENCIES = libtests.a
-qual_inject_signal_SOURCES = qual_inject-signal.c
-qual_inject_signal_OBJECTS = qual_inject-signal.$(OBJEXT)
-qual_inject_signal_LDADD = $(LDADD)
-qual_inject_signal_DEPENDENCIES = libtests.a
-qual_signal_SOURCES = qual_signal.c
-qual_signal_OBJECTS = qual_signal.$(OBJEXT)
-qual_signal_LDADD = $(LDADD)
-qual_signal_DEPENDENCIES = libtests.a
-quotactl_SOURCES = quotactl.c
-quotactl_OBJECTS = quotactl.$(OBJEXT)
-quotactl_LDADD = $(LDADD)
-quotactl_DEPENDENCIES = libtests.a
-quotactl_v_SOURCES = quotactl-v.c
-quotactl_v_OBJECTS = quotactl-v.$(OBJEXT)
-quotactl_v_LDADD = $(LDADD)
-quotactl_v_DEPENDENCIES = libtests.a
-quotactl_xfs_SOURCES = quotactl-xfs.c
-quotactl_xfs_OBJECTS = quotactl-xfs.$(OBJEXT)
-quotactl_xfs_LDADD = $(LDADD)
-quotactl_xfs_DEPENDENCIES = libtests.a
-quotactl_xfs_v_SOURCES = quotactl-xfs-v.c
-quotactl_xfs_v_OBJECTS = quotactl-xfs-v.$(OBJEXT)
-quotactl_xfs_v_LDADD = $(LDADD)
-quotactl_xfs_v_DEPENDENCIES = libtests.a
-read_write_SOURCES = read-write.c
-read_write_OBJECTS = read-write.$(OBJEXT)
-read_write_LDADD = $(LDADD)
-read_write_DEPENDENCIES = libtests.a
-readahead_SOURCES = readahead.c
-readahead_OBJECTS = readahead.$(OBJEXT)
-readahead_LDADD = $(LDADD)
-readahead_DEPENDENCIES = libtests.a
-readdir_SOURCES = readdir.c
-readdir_OBJECTS = readdir.$(OBJEXT)
-readdir_LDADD = $(LDADD)
-readdir_DEPENDENCIES = libtests.a
-readlink_SOURCES = readlink.c
-readlink_OBJECTS = readlink.$(OBJEXT)
-readlink_LDADD = $(LDADD)
-readlink_DEPENDENCIES = libtests.a
-readlinkat_SOURCES = readlinkat.c
-readlinkat_OBJECTS = readlinkat.$(OBJEXT)
-readlinkat_LDADD = $(LDADD)
-readlinkat_DEPENDENCIES = libtests.a
-readv_SOURCES = readv.c
-readv_OBJECTS = readv.$(OBJEXT)
-readv_LDADD = $(LDADD)
-readv_DEPENDENCIES = libtests.a
-reboot_SOURCES = reboot.c
-reboot_OBJECTS = reboot.$(OBJEXT)
-reboot_LDADD = $(LDADD)
-reboot_DEPENDENCIES = libtests.a
-recvfrom_SOURCES = recvfrom.c
-recvfrom_OBJECTS = recvfrom.$(OBJEXT)
-recvfrom_LDADD = $(LDADD)
-recvfrom_DEPENDENCIES = libtests.a
-recvmmsg_timeout_SOURCES = recvmmsg-timeout.c
-recvmmsg_timeout_OBJECTS = recvmmsg-timeout.$(OBJEXT)
-recvmmsg_timeout_LDADD = $(LDADD)
-recvmmsg_timeout_DEPENDENCIES = libtests.a
-recvmsg_SOURCES = recvmsg.c
-recvmsg_OBJECTS = recvmsg.$(OBJEXT)
-recvmsg_LDADD = $(LDADD)
-recvmsg_DEPENDENCIES = libtests.a
-redirect_fds_SOURCES = redirect-fds.c
-redirect_fds_OBJECTS = redirect-fds.$(OBJEXT)
-redirect_fds_LDADD = $(LDADD)
-redirect_fds_DEPENDENCIES = libtests.a
-remap_file_pages_SOURCES = remap_file_pages.c
-remap_file_pages_OBJECTS = remap_file_pages.$(OBJEXT)
-remap_file_pages_LDADD = $(LDADD)
-remap_file_pages_DEPENDENCIES = libtests.a
-rename_SOURCES = rename.c
-rename_OBJECTS = rename.$(OBJEXT)
-rename_LDADD = $(LDADD)
-rename_DEPENDENCIES = libtests.a
-renameat_SOURCES = renameat.c
-renameat_OBJECTS = renameat.$(OBJEXT)
-renameat_LDADD = $(LDADD)
-renameat_DEPENDENCIES = libtests.a
-renameat2_SOURCES = renameat2.c
-renameat2_OBJECTS = renameat2.$(OBJEXT)
-renameat2_LDADD = $(LDADD)
-renameat2_DEPENDENCIES = libtests.a
-request_key_SOURCES = request_key.c
-request_key_OBJECTS = request_key.$(OBJEXT)
-request_key_LDADD = $(LDADD)
-request_key_DEPENDENCIES = libtests.a
-restart_syscall_SOURCES = restart_syscall.c
-restart_syscall_OBJECTS = restart_syscall.$(OBJEXT)
-restart_syscall_LDADD = $(LDADD)
-restart_syscall_DEPENDENCIES = libtests.a
-rmdir_SOURCES = rmdir.c
-rmdir_OBJECTS = rmdir.$(OBJEXT)
-rmdir_LDADD = $(LDADD)
-rmdir_DEPENDENCIES = libtests.a
-rt_sigpending_SOURCES = rt_sigpending.c
-rt_sigpending_OBJECTS = rt_sigpending.$(OBJEXT)
-rt_sigpending_LDADD = $(LDADD)
-rt_sigpending_DEPENDENCIES = libtests.a
-rt_sigprocmask_SOURCES = rt_sigprocmask.c
-rt_sigprocmask_OBJECTS = rt_sigprocmask.$(OBJEXT)
-rt_sigprocmask_LDADD = $(LDADD)
-rt_sigprocmask_DEPENDENCIES = libtests.a
-rt_sigqueueinfo_SOURCES = rt_sigqueueinfo.c
-rt_sigqueueinfo_OBJECTS = rt_sigqueueinfo.$(OBJEXT)
-rt_sigqueueinfo_LDADD = $(LDADD)
-rt_sigqueueinfo_DEPENDENCIES = libtests.a
-rt_sigreturn_SOURCES = rt_sigreturn.c
-rt_sigreturn_OBJECTS = rt_sigreturn.$(OBJEXT)
-rt_sigreturn_LDADD = $(LDADD)
-rt_sigreturn_DEPENDENCIES = libtests.a
-rt_sigsuspend_SOURCES = rt_sigsuspend.c
-rt_sigsuspend_OBJECTS = rt_sigsuspend.$(OBJEXT)
-rt_sigsuspend_LDADD = $(LDADD)
-rt_sigsuspend_DEPENDENCIES = libtests.a
-rt_sigtimedwait_SOURCES = rt_sigtimedwait.c
-rt_sigtimedwait_OBJECTS = rt_sigtimedwait.$(OBJEXT)
-rt_sigtimedwait_LDADD = $(LDADD)
-rt_sigtimedwait_DEPENDENCIES = libtests.a
-rt_tgsigqueueinfo_SOURCES = rt_tgsigqueueinfo.c
-rt_tgsigqueueinfo_OBJECTS = rt_tgsigqueueinfo.$(OBJEXT)
-rt_tgsigqueueinfo_LDADD = $(LDADD)
-rt_tgsigqueueinfo_DEPENDENCIES = libtests.a
-sched_get_priority_mxx_SOURCES = sched_get_priority_mxx.c
-sched_get_priority_mxx_OBJECTS = sched_get_priority_mxx.$(OBJEXT)
-sched_get_priority_mxx_LDADD = $(LDADD)
-sched_get_priority_mxx_DEPENDENCIES = libtests.a
-sched_rr_get_interval_SOURCES = sched_rr_get_interval.c
-sched_rr_get_interval_OBJECTS = sched_rr_get_interval.$(OBJEXT)
-sched_rr_get_interval_LDADD = $(LDADD)
-sched_rr_get_interval_DEPENDENCIES = libtests.a
-sched_xetaffinity_SOURCES = sched_xetaffinity.c
-sched_xetaffinity_OBJECTS = sched_xetaffinity.$(OBJEXT)
-sched_xetaffinity_LDADD = $(LDADD)
-sched_xetaffinity_DEPENDENCIES = libtests.a
-sched_xetattr_SOURCES = sched_xetattr.c
-sched_xetattr_OBJECTS = sched_xetattr.$(OBJEXT)
-sched_xetattr_LDADD = $(LDADD)
-sched_xetattr_DEPENDENCIES = libtests.a
-sched_xetparam_SOURCES = sched_xetparam.c
-sched_xetparam_OBJECTS = sched_xetparam.$(OBJEXT)
-sched_xetparam_LDADD = $(LDADD)
-sched_xetparam_DEPENDENCIES = libtests.a
-sched_xetscheduler_SOURCES = sched_xetscheduler.c
-sched_xetscheduler_OBJECTS = sched_xetscheduler.$(OBJEXT)
-sched_xetscheduler_LDADD = $(LDADD)
-sched_xetscheduler_DEPENDENCIES = libtests.a
-sched_yield_SOURCES = sched_yield.c
-sched_yield_OBJECTS = sched_yield.$(OBJEXT)
-sched_yield_LDADD = $(LDADD)
-sched_yield_DEPENDENCIES = libtests.a
-scm_rights_SOURCES = scm_rights.c
-scm_rights_OBJECTS = scm_rights.$(OBJEXT)
-scm_rights_LDADD = $(LDADD)
-scm_rights_DEPENDENCIES = libtests.a
-seccomp_filter_SOURCES = seccomp-filter.c
-seccomp_filter_OBJECTS = seccomp-filter.$(OBJEXT)
-seccomp_filter_LDADD = $(LDADD)
-seccomp_filter_DEPENDENCIES = libtests.a
-seccomp_filter_v_SOURCES = seccomp-filter-v.c
-seccomp_filter_v_OBJECTS = seccomp-filter-v.$(OBJEXT)
-seccomp_filter_v_LDADD = $(LDADD)
-seccomp_filter_v_DEPENDENCIES = libtests.a
-seccomp_strict_SOURCES = seccomp-strict.c
-seccomp_strict_OBJECTS = seccomp-strict.$(OBJEXT)
-seccomp_strict_LDADD = $(LDADD)
-seccomp_strict_DEPENDENCIES = libtests.a
-select_SOURCES = select.c
-select_OBJECTS = select.$(OBJEXT)
-select_LDADD = $(LDADD)
-select_DEPENDENCIES = libtests.a
-semop_SOURCES = semop.c
-semop_OBJECTS = semop.$(OBJEXT)
-semop_LDADD = $(LDADD)
-semop_DEPENDENCIES = libtests.a
-sendfile_SOURCES = sendfile.c
-sendfile_OBJECTS = sendfile.$(OBJEXT)
-sendfile_LDADD = $(LDADD)
-sendfile_DEPENDENCIES = libtests.a
-sendfile64_SOURCES = sendfile64.c
-sendfile64_OBJECTS = sendfile64.$(OBJEXT)
-sendfile64_LDADD = $(LDADD)
-sendfile64_DEPENDENCIES = libtests.a
-set_mempolicy_SOURCES = set_mempolicy.c
-set_mempolicy_OBJECTS = set_mempolicy.$(OBJEXT)
-set_mempolicy_LDADD = $(LDADD)
-set_mempolicy_DEPENDENCIES = libtests.a
-set_ptracer_any_SOURCES = set_ptracer_any.c
-set_ptracer_any_OBJECTS = set_ptracer_any.$(OBJEXT)
-set_ptracer_any_LDADD = $(LDADD)
-set_ptracer_any_DEPENDENCIES = libtests.a
-setdomainname_SOURCES = setdomainname.c
-setdomainname_OBJECTS = setdomainname.$(OBJEXT)
-setdomainname_LDADD = $(LDADD)
-setdomainname_DEPENDENCIES = libtests.a
-setfsgid_SOURCES = setfsgid.c
-setfsgid_OBJECTS = setfsgid.$(OBJEXT)
-setfsgid_LDADD = $(LDADD)
-setfsgid_DEPENDENCIES = libtests.a
-setfsgid32_SOURCES = setfsgid32.c
-setfsgid32_OBJECTS = setfsgid32.$(OBJEXT)
-setfsgid32_LDADD = $(LDADD)
-setfsgid32_DEPENDENCIES = libtests.a
-setfsuid_SOURCES = setfsuid.c
-setfsuid_OBJECTS = setfsuid.$(OBJEXT)
-setfsuid_LDADD = $(LDADD)
-setfsuid_DEPENDENCIES = libtests.a
-setfsuid32_SOURCES = setfsuid32.c
-setfsuid32_OBJECTS = setfsuid32.$(OBJEXT)
-setfsuid32_LDADD = $(LDADD)
-setfsuid32_DEPENDENCIES = libtests.a
-setgid_SOURCES = setgid.c
-setgid_OBJECTS = setgid.$(OBJEXT)
-setgid_LDADD = $(LDADD)
-setgid_DEPENDENCIES = libtests.a
-setgid32_SOURCES = setgid32.c
-setgid32_OBJECTS = setgid32.$(OBJEXT)
-setgid32_LDADD = $(LDADD)
-setgid32_DEPENDENCIES = libtests.a
-setgroups_SOURCES = setgroups.c
-setgroups_OBJECTS = setgroups.$(OBJEXT)
-setgroups_LDADD = $(LDADD)
-setgroups_DEPENDENCIES = libtests.a
-setgroups32_SOURCES = setgroups32.c
-setgroups32_OBJECTS = setgroups32.$(OBJEXT)
-setgroups32_LDADD = $(LDADD)
-setgroups32_DEPENDENCIES = libtests.a
-sethostname_SOURCES = sethostname.c
-sethostname_OBJECTS = sethostname.$(OBJEXT)
-sethostname_LDADD = $(LDADD)
-sethostname_DEPENDENCIES = libtests.a
-setns_SOURCES = setns.c
-setns_OBJECTS = setns.$(OBJEXT)
-setns_LDADD = $(LDADD)
-setns_DEPENDENCIES = libtests.a
-setregid_SOURCES = setregid.c
-setregid_OBJECTS = setregid.$(OBJEXT)
-setregid_LDADD = $(LDADD)
-setregid_DEPENDENCIES = libtests.a
-setregid32_SOURCES = setregid32.c
-setregid32_OBJECTS = setregid32.$(OBJEXT)
-setregid32_LDADD = $(LDADD)
-setregid32_DEPENDENCIES = libtests.a
-setresgid_SOURCES = setresgid.c
-setresgid_OBJECTS = setresgid.$(OBJEXT)
-setresgid_LDADD = $(LDADD)
-setresgid_DEPENDENCIES = libtests.a
-setresgid32_SOURCES = setresgid32.c
-setresgid32_OBJECTS = setresgid32.$(OBJEXT)
-setresgid32_LDADD = $(LDADD)
-setresgid32_DEPENDENCIES = libtests.a
-setresuid_SOURCES = setresuid.c
-setresuid_OBJECTS = setresuid.$(OBJEXT)
-setresuid_LDADD = $(LDADD)
-setresuid_DEPENDENCIES = libtests.a
-setresuid32_SOURCES = setresuid32.c
-setresuid32_OBJECTS = setresuid32.$(OBJEXT)
-setresuid32_LDADD = $(LDADD)
-setresuid32_DEPENDENCIES = libtests.a
-setreuid_SOURCES = setreuid.c
-setreuid_OBJECTS = setreuid.$(OBJEXT)
-setreuid_LDADD = $(LDADD)
-setreuid_DEPENDENCIES = libtests.a
-setreuid32_SOURCES = setreuid32.c
-setreuid32_OBJECTS = setreuid32.$(OBJEXT)
-setreuid32_LDADD = $(LDADD)
-setreuid32_DEPENDENCIES = libtests.a
-setrlimit_SOURCES = setrlimit.c
-setrlimit_OBJECTS = setrlimit.$(OBJEXT)
-setrlimit_LDADD = $(LDADD)
-setrlimit_DEPENDENCIES = libtests.a
-setuid_SOURCES = setuid.c
-setuid_OBJECTS = setuid.$(OBJEXT)
-setuid_LDADD = $(LDADD)
-setuid_DEPENDENCIES = libtests.a
-setuid32_SOURCES = setuid32.c
-setuid32_OBJECTS = setuid32.$(OBJEXT)
-setuid32_LDADD = $(LDADD)
-setuid32_DEPENDENCIES = libtests.a
-shmxt_SOURCES = shmxt.c
-shmxt_OBJECTS = shmxt.$(OBJEXT)
-shmxt_LDADD = $(LDADD)
-shmxt_DEPENDENCIES = libtests.a
-shutdown_SOURCES = shutdown.c
-shutdown_OBJECTS = shutdown.$(OBJEXT)
-shutdown_LDADD = $(LDADD)
-shutdown_DEPENDENCIES = libtests.a
-sigaction_SOURCES = sigaction.c
-sigaction_OBJECTS = sigaction.$(OBJEXT)
-sigaction_LDADD = $(LDADD)
-sigaction_DEPENDENCIES = libtests.a
-sigaltstack_SOURCES = sigaltstack.c
-sigaltstack_OBJECTS = sigaltstack.$(OBJEXT)
-sigaltstack_LDADD = $(LDADD)
-sigaltstack_DEPENDENCIES = libtests.a
-siginfo_SOURCES = siginfo.c
-siginfo_OBJECTS = siginfo.$(OBJEXT)
-siginfo_LDADD = $(LDADD)
-siginfo_DEPENDENCIES = libtests.a
-signal_receive_SOURCES = signal_receive.c
-signal_receive_OBJECTS = signal_receive.$(OBJEXT)
-signal_receive_LDADD = $(LDADD)
-signal_receive_DEPENDENCIES = libtests.a
-signalfd4_SOURCES = signalfd4.c
-signalfd4_OBJECTS = signalfd4.$(OBJEXT)
-signalfd4_LDADD = $(LDADD)
-signalfd4_DEPENDENCIES = libtests.a
-sigreturn_SOURCES = sigreturn.c
-sigreturn_OBJECTS = sigreturn.$(OBJEXT)
-sigreturn_LDADD = $(LDADD)
-sigreturn_DEPENDENCIES = libtests.a
-sigsuspend_SOURCES = sigsuspend.c
-sigsuspend_OBJECTS = sigsuspend.$(OBJEXT)
-sigsuspend_LDADD = $(LDADD)
-sigsuspend_DEPENDENCIES = libtests.a
-sleep_SOURCES = sleep.c
-sleep_OBJECTS = sleep.$(OBJEXT)
-sleep_LDADD = $(LDADD)
-sleep_DEPENDENCIES = libtests.a
-socketcall_SOURCES = socketcall.c
-socketcall_OBJECTS = socketcall.$(OBJEXT)
-socketcall_LDADD = $(LDADD)
-socketcall_DEPENDENCIES = libtests.a
-splice_SOURCES = splice.c
-splice_OBJECTS = splice.$(OBJEXT)
-splice_LDADD = $(LDADD)
-splice_DEPENDENCIES = libtests.a
-am_stack_fcall_OBJECTS = stack-fcall.$(OBJEXT) stack-fcall-0.$(OBJEXT) \
-	stack-fcall-1.$(OBJEXT) stack-fcall-2.$(OBJEXT) \
-	stack-fcall-3.$(OBJEXT)
-stack_fcall_OBJECTS = $(am_stack_fcall_OBJECTS)
-stack_fcall_LDADD = $(LDADD)
-stack_fcall_DEPENDENCIES = libtests.a
-stat_SOURCES = stat.c
-stat_OBJECTS = stat.$(OBJEXT)
-stat_LDADD = $(LDADD)
-stat_DEPENDENCIES = libtests.a
-stat64_SOURCES = stat64.c
-stat64_OBJECTS = stat64-stat64.$(OBJEXT)
-stat64_LDADD = $(LDADD)
-stat64_DEPENDENCIES = libtests.a
-statfs_SOURCES = statfs.c
-statfs_OBJECTS = statfs-statfs.$(OBJEXT)
-statfs_LDADD = $(LDADD)
-statfs_DEPENDENCIES = libtests.a
-statfs64_SOURCES = statfs64.c
-statfs64_OBJECTS = statfs64.$(OBJEXT)
-statfs64_LDADD = $(LDADD)
-statfs64_DEPENDENCIES = libtests.a
-statx_SOURCES = statx.c
-statx_OBJECTS = statx.$(OBJEXT)
-statx_LDADD = $(LDADD)
-statx_DEPENDENCIES = libtests.a
-swap_SOURCES = swap.c
-swap_OBJECTS = swap.$(OBJEXT)
-swap_LDADD = $(LDADD)
-swap_DEPENDENCIES = libtests.a
-sxetmask_SOURCES = sxetmask.c
-sxetmask_OBJECTS = sxetmask.$(OBJEXT)
-sxetmask_LDADD = $(LDADD)
-sxetmask_DEPENDENCIES = libtests.a
-symlink_SOURCES = symlink.c
-symlink_OBJECTS = symlink.$(OBJEXT)
-symlink_LDADD = $(LDADD)
-symlink_DEPENDENCIES = libtests.a
-symlinkat_SOURCES = symlinkat.c
-symlinkat_OBJECTS = symlinkat.$(OBJEXT)
-symlinkat_LDADD = $(LDADD)
-symlinkat_DEPENDENCIES = libtests.a
-sync_SOURCES = sync.c
-sync_OBJECTS = sync.$(OBJEXT)
-sync_LDADD = $(LDADD)
-sync_DEPENDENCIES = libtests.a
-sync_file_range_SOURCES = sync_file_range.c
-sync_file_range_OBJECTS = sync_file_range.$(OBJEXT)
-sync_file_range_LDADD = $(LDADD)
-sync_file_range_DEPENDENCIES = libtests.a
-sync_file_range2_SOURCES = sync_file_range2.c
-sync_file_range2_OBJECTS = sync_file_range2.$(OBJEXT)
-sync_file_range2_LDADD = $(LDADD)
-sync_file_range2_DEPENDENCIES = libtests.a
-sysinfo_SOURCES = sysinfo.c
-sysinfo_OBJECTS = sysinfo.$(OBJEXT)
-sysinfo_LDADD = $(LDADD)
-sysinfo_DEPENDENCIES = libtests.a
-syslog_SOURCES = syslog.c
-syslog_OBJECTS = syslog.$(OBJEXT)
-syslog_LDADD = $(LDADD)
-syslog_DEPENDENCIES = libtests.a
-tee_SOURCES = tee.c
-tee_OBJECTS = tee.$(OBJEXT)
-tee_LDADD = $(LDADD)
-tee_DEPENDENCIES = libtests.a
-threads_execve_SOURCES = threads-execve.c
-threads_execve_OBJECTS = threads-execve.$(OBJEXT)
-threads_execve_DEPENDENCIES = $(LDADD)
-time_SOURCES = time.c
-time_OBJECTS = time.$(OBJEXT)
-time_LDADD = $(LDADD)
-time_DEPENDENCIES = libtests.a
-timer_create_SOURCES = timer_create.c
-timer_create_OBJECTS = timer_create.$(OBJEXT)
-timer_create_LDADD = $(LDADD)
-timer_create_DEPENDENCIES = libtests.a
-timer_xettime_SOURCES = timer_xettime.c
-timer_xettime_OBJECTS = timer_xettime.$(OBJEXT)
-timer_xettime_LDADD = $(LDADD)
-timer_xettime_DEPENDENCIES = libtests.a
-timerfd_xettime_SOURCES = timerfd_xettime.c
-timerfd_xettime_OBJECTS = timerfd_xettime.$(OBJEXT)
-timerfd_xettime_LDADD = $(LDADD)
-timerfd_xettime_DEPENDENCIES = libtests.a
-times_SOURCES = times.c
-times_OBJECTS = times.$(OBJEXT)
-times_DEPENDENCIES = $(LDADD)
-times_fail_SOURCES = times-fail.c
-times_fail_OBJECTS = times-fail.$(OBJEXT)
-times_fail_LDADD = $(LDADD)
-times_fail_DEPENDENCIES = libtests.a
-truncate_SOURCES = truncate.c
-truncate_OBJECTS = truncate.$(OBJEXT)
-truncate_LDADD = $(LDADD)
-truncate_DEPENDENCIES = libtests.a
-truncate64_SOURCES = truncate64.c
-truncate64_OBJECTS = truncate64-truncate64.$(OBJEXT)
-truncate64_LDADD = $(LDADD)
-truncate64_DEPENDENCIES = libtests.a
-ugetrlimit_SOURCES = ugetrlimit.c
-ugetrlimit_OBJECTS = ugetrlimit.$(OBJEXT)
-ugetrlimit_LDADD = $(LDADD)
-ugetrlimit_DEPENDENCIES = libtests.a
-uio_SOURCES = uio.c
-uio_OBJECTS = uio-uio.$(OBJEXT)
-uio_LDADD = $(LDADD)
-uio_DEPENDENCIES = libtests.a
-umask_SOURCES = umask.c
-umask_OBJECTS = umask.$(OBJEXT)
-umask_LDADD = $(LDADD)
-umask_DEPENDENCIES = libtests.a
-umount_SOURCES = umount.c
-umount_OBJECTS = umount.$(OBJEXT)
-umount_LDADD = $(LDADD)
-umount_DEPENDENCIES = libtests.a
-umount2_SOURCES = umount2.c
-umount2_OBJECTS = umount2.$(OBJEXT)
-umount2_LDADD = $(LDADD)
-umount2_DEPENDENCIES = libtests.a
-umoven_illptr_SOURCES = umoven-illptr.c
-umoven_illptr_OBJECTS = umoven-illptr.$(OBJEXT)
-umoven_illptr_LDADD = $(LDADD)
-umoven_illptr_DEPENDENCIES = libtests.a
-umovestr_SOURCES = umovestr.c
-umovestr_OBJECTS = umovestr.$(OBJEXT)
-umovestr_LDADD = $(LDADD)
-umovestr_DEPENDENCIES = libtests.a
-umovestr_illptr_SOURCES = umovestr-illptr.c
-umovestr_illptr_OBJECTS = umovestr-illptr.$(OBJEXT)
-umovestr_illptr_LDADD = $(LDADD)
-umovestr_illptr_DEPENDENCIES = libtests.a
-umovestr2_SOURCES = umovestr2.c
-umovestr2_OBJECTS = umovestr2.$(OBJEXT)
-umovestr2_LDADD = $(LDADD)
-umovestr2_DEPENDENCIES = libtests.a
-umovestr3_SOURCES = umovestr3.c
-umovestr3_OBJECTS = umovestr3.$(OBJEXT)
-umovestr3_LDADD = $(LDADD)
-umovestr3_DEPENDENCIES = libtests.a
-uname_SOURCES = uname.c
-uname_OBJECTS = uname.$(OBJEXT)
-uname_LDADD = $(LDADD)
-uname_DEPENDENCIES = libtests.a
-unix_pair_send_recv_SOURCES = unix-pair-send-recv.c
-unix_pair_send_recv_OBJECTS = unix-pair-send-recv.$(OBJEXT)
-unix_pair_send_recv_LDADD = $(LDADD)
-unix_pair_send_recv_DEPENDENCIES = libtests.a
-unix_pair_sendto_recvfrom_SOURCES = unix-pair-sendto-recvfrom.c
-unix_pair_sendto_recvfrom_OBJECTS =  \
-	unix-pair-sendto-recvfrom.$(OBJEXT)
-unix_pair_sendto_recvfrom_LDADD = $(LDADD)
-unix_pair_sendto_recvfrom_DEPENDENCIES = libtests.a
-unlink_SOURCES = unlink.c
-unlink_OBJECTS = unlink.$(OBJEXT)
-unlink_LDADD = $(LDADD)
-unlink_DEPENDENCIES = libtests.a
-unlinkat_SOURCES = unlinkat.c
-unlinkat_OBJECTS = unlinkat.$(OBJEXT)
-unlinkat_LDADD = $(LDADD)
-unlinkat_DEPENDENCIES = libtests.a
-unshare_SOURCES = unshare.c
-unshare_OBJECTS = unshare.$(OBJEXT)
-unshare_LDADD = $(LDADD)
-unshare_DEPENDENCIES = libtests.a
-userfaultfd_SOURCES = userfaultfd.c
-userfaultfd_OBJECTS = userfaultfd.$(OBJEXT)
-userfaultfd_LDADD = $(LDADD)
-userfaultfd_DEPENDENCIES = libtests.a
-ustat_SOURCES = ustat.c
-ustat_OBJECTS = ustat.$(OBJEXT)
-ustat_LDADD = $(LDADD)
-ustat_DEPENDENCIES = libtests.a
-utime_SOURCES = utime.c
-utime_OBJECTS = utime.$(OBJEXT)
-utime_LDADD = $(LDADD)
-utime_DEPENDENCIES = libtests.a
-utimensat_SOURCES = utimensat.c
-utimensat_OBJECTS = utimensat.$(OBJEXT)
-utimensat_LDADD = $(LDADD)
-utimensat_DEPENDENCIES = libtests.a
-utimes_SOURCES = utimes.c
-utimes_OBJECTS = utimes.$(OBJEXT)
-utimes_LDADD = $(LDADD)
-utimes_DEPENDENCIES = libtests.a
-vfork_f_SOURCES = vfork-f.c
-vfork_f_OBJECTS = vfork-f.$(OBJEXT)
-vfork_f_LDADD = $(LDADD)
-vfork_f_DEPENDENCIES = libtests.a
-vhangup_SOURCES = vhangup.c
-vhangup_OBJECTS = vhangup.$(OBJEXT)
-vhangup_LDADD = $(LDADD)
-vhangup_DEPENDENCIES = libtests.a
-vmsplice_SOURCES = vmsplice.c
-vmsplice_OBJECTS = vmsplice.$(OBJEXT)
-vmsplice_LDADD = $(LDADD)
-vmsplice_DEPENDENCIES = libtests.a
-wait4_SOURCES = wait4.c
-wait4_OBJECTS = wait4.$(OBJEXT)
-wait4_LDADD = $(LDADD)
-wait4_DEPENDENCIES = libtests.a
-wait4_v_SOURCES = wait4-v.c
-wait4_v_OBJECTS = wait4-v.$(OBJEXT)
-wait4_v_LDADD = $(LDADD)
-wait4_v_DEPENDENCIES = libtests.a
-waitid_SOURCES = waitid.c
-waitid_OBJECTS = waitid.$(OBJEXT)
-waitid_LDADD = $(LDADD)
-waitid_DEPENDENCIES = libtests.a
-waitid_v_SOURCES = waitid-v.c
-waitid_v_OBJECTS = waitid-v.$(OBJEXT)
-waitid_v_LDADD = $(LDADD)
-waitid_v_DEPENDENCIES = libtests.a
-waitpid_SOURCES = waitpid.c
-waitpid_OBJECTS = waitpid.$(OBJEXT)
-waitpid_LDADD = $(LDADD)
-waitpid_DEPENDENCIES = libtests.a
-xattr_SOURCES = xattr.c
-xattr_OBJECTS = xattr.$(OBJEXT)
-xattr_LDADD = $(LDADD)
-xattr_DEPENDENCIES = libtests.a
-xattr_strings_SOURCES = xattr-strings.c
-xattr_strings_OBJECTS = xattr-strings.$(OBJEXT)
-xattr_strings_LDADD = $(LDADD)
-xattr_strings_DEPENDENCIES = libtests.a
-xet_robust_list_SOURCES = xet_robust_list.c
-xet_robust_list_OBJECTS = xet_robust_list.$(OBJEXT)
-xet_robust_list_LDADD = $(LDADD)
-xet_robust_list_DEPENDENCIES = libtests.a
-xetitimer_SOURCES = xetitimer.c
-xetitimer_OBJECTS = xetitimer.$(OBJEXT)
-xetitimer_LDADD = $(LDADD)
-xetitimer_DEPENDENCIES = libtests.a
-xetpgid_SOURCES = xetpgid.c
-xetpgid_OBJECTS = xetpgid.$(OBJEXT)
-xetpgid_LDADD = $(LDADD)
-xetpgid_DEPENDENCIES = libtests.a
-xetpriority_SOURCES = xetpriority.c
-xetpriority_OBJECTS = xetpriority.$(OBJEXT)
-xetpriority_LDADD = $(LDADD)
-xetpriority_DEPENDENCIES = libtests.a
-xettimeofday_SOURCES = xettimeofday.c
-xettimeofday_OBJECTS = xettimeofday.$(OBJEXT)
-xettimeofday_LDADD = $(LDADD)
-xettimeofday_DEPENDENCIES = libtests.a
-AM_V_P = $(am__v_P_$(V))
-am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
-am__v_at_0 = @
-am__v_at_1 = 
-DEFAULT_INCLUDES = 
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
-am__v_lt_0 = --silent
-am__v_lt_1 = 
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
-am__v_CC_0 = @echo "  CC      " $@;
-am__v_CC_1 = 
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
-am__v_CCLD_0 = @echo "  CCLD    " $@;
-am__v_CCLD_1 = 
-SOURCES = $(libtests_a_SOURCES) _newselect.c accept.c accept4.c \
-	access.c acct.c add_key.c adjtimex.c aio.c alarm.c answer.c \
-	attach-f-p.c attach-f-p-cmd.c attach-p-cmd-cmd.c \
-	attach-p-cmd-p.c bpf.c brk.c btrfs.c caps.c caps-abbrev.c \
-	chmod.c chown.c chown32.c chroot.c clock_adjtime.c \
-	clock_nanosleep.c clock_xettime.c copy_file_range.c count-f.c \
-	creat.c delete_module.c dup.c dup2.c dup3.c epoll_create.c \
-	epoll_create1.c epoll_ctl.c epoll_pwait.c epoll_wait.c \
-	erestartsys.c eventfd.c execve.c execve-v.c execveat.c \
-	execveat-v.c faccessat.c fadvise64.c fadvise64_64.c \
-	fallocate.c fanotify_init.c fanotify_mark.c fchdir.c fchmod.c \
-	fchmodat.c fchown.c fchown32.c fchownat.c fcntl.c fcntl64.c \
-	fdatasync.c file_handle.c file_ioctl.c filter-unavailable.c \
-	finit_module.c flock.c fork-f.c fstat.c fstat64.c fstatat64.c \
-	fstatfs.c fstatfs64.c fsync.c ftruncate.c ftruncate64.c \
-	futex.c futimesat.c get_mempolicy.c getcpu.c getcwd.c \
-	getdents.c getdents64.c getegid.c getegid32.c geteuid.c \
-	geteuid32.c getgid.c getgid32.c getgroups.c getgroups32.c \
-	getpeername.c getpgrp.c getpid.c getppid.c getrandom.c \
-	getresgid.c getresgid32.c getresuid.c getresuid32.c \
-	getrlimit.c getrusage.c getsid.c getsockname.c gettid.c \
-	getuid.c getuid32.c getxxid.c inet-cmsg.c init_module.c \
-	inotify.c inotify_init1.c int_0x80.c ioctl.c ioctl_block.c \
-	ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-v.c \
-	ioctl_loop.c ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c \
-	ioctl_nsfs.c ioctl_rtc.c ioctl_rtc-v.c ioctl_scsi.c \
-	ioctl_sg_io_v3.c ioctl_sg_io_v4.c ioctl_sock_gifconf.c \
-	ioctl_uffdio.c ioctl_v4l2.c ioperm.c iopl.c ioprio.c ip_mreq.c \
-	ipc.c ipc_msg.c ipc_msgbuf.c ipc_sem.c ipc_shm.c kcmp.c \
-	kexec_file_load.c kexec_load.c keyctl.c kill.c ksysent.c \
-	lchown.c lchown32.c link.c linkat.c llseek.c lookup_dcookie.c \
-	lseek.c lstat.c lstat64.c madvise.c mbind.c membarrier.c \
-	memfd_create.c migrate_pages.c mincore.c mkdir.c mkdirat.c \
-	mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c mmap64.c \
-	mmsg.c mmsg-silent.c mmsg_name.c mmsg_name-v.c mount.c \
-	move_pages.c mq.c mq_sendrecv.c mq_sendrecv-read.c \
-	mq_sendrecv-write.c msg_control.c msg_control-v.c msg_name.c \
-	munlockall.c nanosleep.c net-accept-connect.c \
-	net-icmp_filter.c net-sockaddr.c net-y-unix.c net-yy-inet.c \
-	net-yy-netlink.c net-yy-unix.c netlink_inet_diag.c \
-	netlink_netlink_diag.c netlink_protocol.c netlink_unix_diag.c \
-	newfstatat.c nsyscalls.c old_mmap.c oldfstat.c oldlstat.c \
-	oldselect.c oldstat.c open.c openat.c osf_utimes.c pause.c \
-	pc.c perf_event_open.c perf_event_open_nonverbose.c \
-	perf_event_open_unabbrev.c personality.c pipe.c pipe2.c \
-	pkey_alloc.c pkey_free.c pkey_mprotect.c poll.c ppoll.c \
-	ppoll-v.c prctl-arg2-intptr.c prctl-dumpable.c prctl-name.c \
-	prctl-no-args.c prctl-pdeathsig.c prctl-seccomp-filter-v.c \
-	prctl-seccomp-strict.c prctl-securebits.c prctl-tid_address.c \
-	prctl-tsc.c pread64-pwrite64.c preadv.c preadv-pwritev.c \
-	preadv2-pwritev2.c print_maxfd.c printstr.c prlimit64.c \
-	process_vm_readv.c process_vm_writev.c pselect6.c ptrace.c \
-	pwritev.c qual_fault.c qual_inject-error-signal.c \
-	qual_inject-retval.c qual_inject-signal.c qual_signal.c \
-	quotactl.c quotactl-v.c quotactl-xfs.c quotactl-xfs-v.c \
-	read-write.c readahead.c readdir.c readlink.c readlinkat.c \
-	readv.c reboot.c recvfrom.c recvmmsg-timeout.c recvmsg.c \
-	redirect-fds.c remap_file_pages.c rename.c renameat.c \
-	renameat2.c request_key.c restart_syscall.c rmdir.c \
-	rt_sigpending.c rt_sigprocmask.c rt_sigqueueinfo.c \
-	rt_sigreturn.c rt_sigsuspend.c rt_sigtimedwait.c \
-	rt_tgsigqueueinfo.c sched_get_priority_mxx.c \
-	sched_rr_get_interval.c sched_xetaffinity.c sched_xetattr.c \
-	sched_xetparam.c sched_xetscheduler.c sched_yield.c \
-	scm_rights.c seccomp-filter.c seccomp-filter-v.c \
-	seccomp-strict.c select.c semop.c sendfile.c sendfile64.c \
-	set_mempolicy.c set_ptracer_any.c setdomainname.c setfsgid.c \
-	setfsgid32.c setfsuid.c setfsuid32.c setgid.c setgid32.c \
-	setgroups.c setgroups32.c sethostname.c setns.c setregid.c \
-	setregid32.c setresgid.c setresgid32.c setresuid.c \
-	setresuid32.c setreuid.c setreuid32.c setrlimit.c setuid.c \
-	setuid32.c shmxt.c shutdown.c sigaction.c sigaltstack.c \
-	siginfo.c signal_receive.c signalfd4.c sigreturn.c \
-	sigsuspend.c sleep.c socketcall.c splice.c \
-	$(stack_fcall_SOURCES) stat.c stat64.c statfs.c statfs64.c \
-	statx.c swap.c sxetmask.c symlink.c symlinkat.c sync.c \
-	sync_file_range.c sync_file_range2.c sysinfo.c syslog.c tee.c \
-	threads-execve.c time.c timer_create.c timer_xettime.c \
-	timerfd_xettime.c times.c times-fail.c truncate.c truncate64.c \
-	ugetrlimit.c uio.c umask.c umount.c umount2.c umoven-illptr.c \
-	umovestr.c umovestr-illptr.c umovestr2.c umovestr3.c uname.c \
-	unix-pair-send-recv.c unix-pair-sendto-recvfrom.c unlink.c \
-	unlinkat.c unshare.c userfaultfd.c ustat.c utime.c utimensat.c \
-	utimes.c vfork-f.c vhangup.c vmsplice.c wait4.c wait4-v.c \
-	waitid.c waitid-v.c waitpid.c xattr.c xattr-strings.c \
-	xet_robust_list.c xetitimer.c xetpgid.c xetpriority.c \
-	xettimeofday.c
-DIST_SOURCES = $(libtests_a_SOURCES) _newselect.c accept.c accept4.c \
-	access.c acct.c add_key.c adjtimex.c aio.c alarm.c answer.c \
-	attach-f-p.c attach-f-p-cmd.c attach-p-cmd-cmd.c \
-	attach-p-cmd-p.c bpf.c brk.c btrfs.c caps.c caps-abbrev.c \
-	chmod.c chown.c chown32.c chroot.c clock_adjtime.c \
-	clock_nanosleep.c clock_xettime.c copy_file_range.c count-f.c \
-	creat.c delete_module.c dup.c dup2.c dup3.c epoll_create.c \
-	epoll_create1.c epoll_ctl.c epoll_pwait.c epoll_wait.c \
-	erestartsys.c eventfd.c execve.c execve-v.c execveat.c \
-	execveat-v.c faccessat.c fadvise64.c fadvise64_64.c \
-	fallocate.c fanotify_init.c fanotify_mark.c fchdir.c fchmod.c \
-	fchmodat.c fchown.c fchown32.c fchownat.c fcntl.c fcntl64.c \
-	fdatasync.c file_handle.c file_ioctl.c filter-unavailable.c \
-	finit_module.c flock.c fork-f.c fstat.c fstat64.c fstatat64.c \
-	fstatfs.c fstatfs64.c fsync.c ftruncate.c ftruncate64.c \
-	futex.c futimesat.c get_mempolicy.c getcpu.c getcwd.c \
-	getdents.c getdents64.c getegid.c getegid32.c geteuid.c \
-	geteuid32.c getgid.c getgid32.c getgroups.c getgroups32.c \
-	getpeername.c getpgrp.c getpid.c getppid.c getrandom.c \
-	getresgid.c getresgid32.c getresuid.c getresuid32.c \
-	getrlimit.c getrusage.c getsid.c getsockname.c gettid.c \
-	getuid.c getuid32.c getxxid.c inet-cmsg.c init_module.c \
-	inotify.c inotify_init1.c int_0x80.c ioctl.c ioctl_block.c \
-	ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-v.c \
-	ioctl_loop.c ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c \
-	ioctl_nsfs.c ioctl_rtc.c ioctl_rtc-v.c ioctl_scsi.c \
-	ioctl_sg_io_v3.c ioctl_sg_io_v4.c ioctl_sock_gifconf.c \
-	ioctl_uffdio.c ioctl_v4l2.c ioperm.c iopl.c ioprio.c ip_mreq.c \
-	ipc.c ipc_msg.c ipc_msgbuf.c ipc_sem.c ipc_shm.c kcmp.c \
-	kexec_file_load.c kexec_load.c keyctl.c kill.c ksysent.c \
-	lchown.c lchown32.c link.c linkat.c llseek.c lookup_dcookie.c \
-	lseek.c lstat.c lstat64.c madvise.c mbind.c membarrier.c \
-	memfd_create.c migrate_pages.c mincore.c mkdir.c mkdirat.c \
-	mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c mmap64.c \
-	mmsg.c mmsg-silent.c mmsg_name.c mmsg_name-v.c mount.c \
-	move_pages.c mq.c mq_sendrecv.c mq_sendrecv-read.c \
-	mq_sendrecv-write.c msg_control.c msg_control-v.c msg_name.c \
-	munlockall.c nanosleep.c net-accept-connect.c \
-	net-icmp_filter.c net-sockaddr.c net-y-unix.c net-yy-inet.c \
-	net-yy-netlink.c net-yy-unix.c netlink_inet_diag.c \
-	netlink_netlink_diag.c netlink_protocol.c netlink_unix_diag.c \
-	newfstatat.c nsyscalls.c old_mmap.c oldfstat.c oldlstat.c \
-	oldselect.c oldstat.c open.c openat.c osf_utimes.c pause.c \
-	pc.c perf_event_open.c perf_event_open_nonverbose.c \
-	perf_event_open_unabbrev.c personality.c pipe.c pipe2.c \
-	pkey_alloc.c pkey_free.c pkey_mprotect.c poll.c ppoll.c \
-	ppoll-v.c prctl-arg2-intptr.c prctl-dumpable.c prctl-name.c \
-	prctl-no-args.c prctl-pdeathsig.c prctl-seccomp-filter-v.c \
-	prctl-seccomp-strict.c prctl-securebits.c prctl-tid_address.c \
-	prctl-tsc.c pread64-pwrite64.c preadv.c preadv-pwritev.c \
-	preadv2-pwritev2.c print_maxfd.c printstr.c prlimit64.c \
-	process_vm_readv.c process_vm_writev.c pselect6.c ptrace.c \
-	pwritev.c qual_fault.c qual_inject-error-signal.c \
-	qual_inject-retval.c qual_inject-signal.c qual_signal.c \
-	quotactl.c quotactl-v.c quotactl-xfs.c quotactl-xfs-v.c \
-	read-write.c readahead.c readdir.c readlink.c readlinkat.c \
-	readv.c reboot.c recvfrom.c recvmmsg-timeout.c recvmsg.c \
-	redirect-fds.c remap_file_pages.c rename.c renameat.c \
-	renameat2.c request_key.c restart_syscall.c rmdir.c \
-	rt_sigpending.c rt_sigprocmask.c rt_sigqueueinfo.c \
-	rt_sigreturn.c rt_sigsuspend.c rt_sigtimedwait.c \
-	rt_tgsigqueueinfo.c sched_get_priority_mxx.c \
-	sched_rr_get_interval.c sched_xetaffinity.c sched_xetattr.c \
-	sched_xetparam.c sched_xetscheduler.c sched_yield.c \
-	scm_rights.c seccomp-filter.c seccomp-filter-v.c \
-	seccomp-strict.c select.c semop.c sendfile.c sendfile64.c \
-	set_mempolicy.c set_ptracer_any.c setdomainname.c setfsgid.c \
-	setfsgid32.c setfsuid.c setfsuid32.c setgid.c setgid32.c \
-	setgroups.c setgroups32.c sethostname.c setns.c setregid.c \
-	setregid32.c setresgid.c setresgid32.c setresuid.c \
-	setresuid32.c setreuid.c setreuid32.c setrlimit.c setuid.c \
-	setuid32.c shmxt.c shutdown.c sigaction.c sigaltstack.c \
-	siginfo.c signal_receive.c signalfd4.c sigreturn.c \
-	sigsuspend.c sleep.c socketcall.c splice.c \
-	$(stack_fcall_SOURCES) stat.c stat64.c statfs.c statfs64.c \
-	statx.c swap.c sxetmask.c symlink.c symlinkat.c sync.c \
-	sync_file_range.c sync_file_range2.c sysinfo.c syslog.c tee.c \
-	threads-execve.c time.c timer_create.c timer_xettime.c \
-	timerfd_xettime.c times.c times-fail.c truncate.c truncate64.c \
-	ugetrlimit.c uio.c umask.c umount.c umount2.c umoven-illptr.c \
-	umovestr.c umovestr-illptr.c umovestr2.c umovestr3.c uname.c \
-	unix-pair-send-recv.c unix-pair-sendto-recvfrom.c unlink.c \
-	unlinkat.c unshare.c userfaultfd.c ustat.c utime.c utimensat.c \
-	utimes.c vfork-f.c vhangup.c vmsplice.c wait4.c wait4-v.c \
-	waitid.c waitid-v.c waitpid.c xattr.c xattr-strings.c \
-	xet_robust_list.c xetitimer.c xetpgid.c xetpriority.c \
-	xettimeofday.c
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__extra_recursive_targets = check-valgrind-recursive
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-am__tty_colors_dummy = \
-  mgn= red= grn= lgn= blu= brg= std=; \
-  am__color_tests=no
-am__tty_colors = { \
-  $(am__tty_colors_dummy); \
-  if test "X$(AM_COLOR_TESTS)" = Xno; then \
-    am__color_tests=no; \
-  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
-    am__color_tests=yes; \
-  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
-    am__color_tests=yes; \
-  fi; \
-  if test $$am__color_tests = yes; then \
-    red='[0;31m'; \
-    grn='[0;32m'; \
-    lgn='[1;32m'; \
-    blu='[1;34m'; \
-    mgn='[0;35m'; \
-    brg='[1m'; \
-    std='[m'; \
-  fi; \
-}
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
-  }
-am__recheck_rx = ^[ 	]*:recheck:[ 	]*
-am__global_test_result_rx = ^[ 	]*:global-test-result:[ 	]*
-am__copy_in_global_log_rx = ^[ 	]*:copy-in-global-log:[ 	]*
-# A command that, given a newline-separated list of test names on the
-# standard input, print the name of the tests that are to be re-run
-# upon "make recheck".
-am__list_recheck_tests = $(AWK) '{ \
-  recheck = 1; \
-  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
-    { \
-      if (rc < 0) \
-        { \
-          if ((getline line2 < ($$0 ".log")) < 0) \
-	    recheck = 0; \
-          break; \
-        } \
-      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
-        { \
-          recheck = 0; \
-          break; \
-        } \
-      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
-        { \
-          break; \
-        } \
-    }; \
-  if (recheck) \
-    print $$0; \
-  close ($$0 ".trs"); \
-  close ($$0 ".log"); \
-}'
-# A command that, given a newline-separated list of test names on the
-# standard input, create the global log from their .trs and .log files.
-am__create_global_log = $(AWK) ' \
-function fatal(msg) \
-{ \
-  print "fatal: making $@: " msg | "cat >&2"; \
-  exit 1; \
-} \
-function rst_section(header) \
-{ \
-  print header; \
-  len = length(header); \
-  for (i = 1; i <= len; i = i + 1) \
-    printf "="; \
-  printf "\n\n"; \
-} \
-{ \
-  copy_in_global_log = 1; \
-  global_test_result = "RUN"; \
-  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
-    { \
-      if (rc < 0) \
-         fatal("failed to read from " $$0 ".trs"); \
-      if (line ~ /$(am__global_test_result_rx)/) \
-        { \
-          sub("$(am__global_test_result_rx)", "", line); \
-          sub("[ 	]*$$", "", line); \
-          global_test_result = line; \
-        } \
-      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
-        copy_in_global_log = 0; \
-    }; \
-  if (copy_in_global_log) \
-    { \
-      rst_section(global_test_result ": " $$0); \
-      while ((rc = (getline line < ($$0 ".log"))) != 0) \
-      { \
-        if (rc < 0) \
-          fatal("failed to read from " $$0 ".log"); \
-        print line; \
-      }; \
-      printf "\n"; \
-    }; \
-  close ($$0 ".trs"); \
-  close ($$0 ".log"); \
-}'
-# Restructured Text title.
-am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
-# Solaris 10 'make', and several other traditional 'make' implementations,
-# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
-# by disabling -e (using the XSI extension "set +e") if it's set.
-am__sh_e_setup = case $$- in *e*) set +e;; esac
-# Default flags passed to test drivers.
-am__common_driver_flags = \
-  --color-tests "$$am__color_tests" \
-  --enable-hard-errors "$$am__enable_hard_errors" \
-  --expect-failure "$$am__expect_failure"
-# To be inserted before the command running the test.  Creates the
-# directory for the log if needed.  Stores in $dir the directory
-# containing $f, in $tst the test, in $log the log.  Executes the
-# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
-# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
-# will run the test scripts (or their associated LOG_COMPILER, if
-# thy have one).
-am__check_pre = \
-$(am__sh_e_setup);					\
-$(am__vpath_adj_setup) $(am__vpath_adj)			\
-$(am__tty_colors);					\
-srcdir=$(srcdir); export srcdir;			\
-case "$@" in						\
-  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;	\
-    *) am__odir=.;; 					\
-esac;							\
-test "x$$am__odir" = x"." || test -d "$$am__odir" 	\
-  || $(MKDIR_P) "$$am__odir" || exit $$?;		\
-if test -f "./$$f"; then dir=./;			\
-elif test -f "$$f"; then dir=;				\
-else dir="$(srcdir)/"; fi;				\
-tst=$$dir$$f; log='$@'; 				\
-if test -n '$(DISABLE_HARD_ERRORS)'; then		\
-  am__enable_hard_errors=no; 				\
-else							\
-  am__enable_hard_errors=yes; 				\
-fi; 							\
-case " $(XFAIL_TESTS) " in				\
-  *[\ \	]$$f[\ \	]* | *[\ \	]$$dir$$f[\ \	]*) \
-    am__expect_failure=yes;;				\
-  *)							\
-    am__expect_failure=no;;				\
-esac; 							\
-$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
-# A shell command to get the names of the tests scripts with any registered
-# extension removed (i.e., equivalently, the names of the test logs, with
-# the '.log' extension removed).  The result is saved in the shell variable
-# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
-# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
-# since that might cause problem with VPATH rewrites for suffix-less tests.
-# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
-am__set_TESTS_bases = \
-  bases='$(TEST_LOGS)'; \
-  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
-  bases=`echo $$bases`
-RECHECK_LOGS = $(TEST_LOGS)
-AM_RECURSIVE_TARGETS = check recheck
-#am__EXEEXT_2 = strace-k.test
-TEST_SUITE_LOG = test-suite.log
-TEST_EXTENSIONS =  .test
-am__test_logs1 = $(TESTS:=.log)
-am__test_logs2 = $(am__test_logs1:.log=.log)
-TEST_LOGS = $(am__test_logs2:.test.log=.log)
-TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
-TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
-	$(TEST_LOG_FLAGS)
-am__set_b = \
-  case '$@' in \
-    */*) \
-      case '$*' in \
-        */*) b='$*';; \
-          *) b=`echo '$@' | sed 's/\.log$$//'`; \
-       esac;; \
-    *) \
-      b='$*';; \
-  esac
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = ${SHELL} /tmp/strace-4.17/missing aclocal-1.14
-AMTAR = $${TAR-tar}
-AM_DEFAULT_VERBOSITY = 1
-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 = 
-CC = gcc
-CCDEPMODE = depmode=gcc3
-CC_FOR_BUILD = gcc
-CFLAGS = -g -O2
-CFLAGS_FOR_BUILD = -g -O2
-CODE_COVERAGE_CFLAGS = 
-CODE_COVERAGE_CPPFLAGS = 
-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 = Thu, 25 May 2017 15:09:49 -0700
-DEFS = -DHAVE_CONFIG_H
-DEPDIR = .deps
-ECHO_C = 
-ECHO_N = -n
-ECHO_T = 
-EGREP = /bin/grep -E
-ENABLE_VALGRIND_drd = no
-ENABLE_VALGRIND_helgrind = no
-ENABLE_VALGRIND_memcheck = yes
-ENABLE_VALGRIND_sgcheck = 
-EXEEXT = 
-GCOV = 
-GENHTML = 
-GREP = /bin/grep
-INSTALL = /usr/bin/install -c
-INSTALL_DATA = ${INSTALL} -m 644
-INSTALL_PROGRAM = ${INSTALL}
-INSTALL_SCRIPT = ${INSTALL}
-INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
-LCOV = 
-LDFLAGS = 
-LDFLAGS_FOR_BUILD = 
-LIBOBJS = 
-LIBS = 
-LTLIBOBJS = 
-MAINT = #
-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.17
-PACKAGE_TARNAME = strace
-PACKAGE_URL = https://strace.io
-PACKAGE_VERSION = 4.17
-PATH_SEPARATOR = :
-PERL = /usr/bin/perl
-RANLIB = ranlib
-RPM_CHANGELOGTIME = Thu May 25 2017
-SED = /bin/sed
-SET_MAKE = 
-SHELL = /bin/sh
-STRIP = 
-VALGRIND = valgrind
-VALGRIND_ENABLED = yes
-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 = /tmp/strace-4.17/tests-m32
-abs_srcdir = /tmp/strace-4.17/tests-m32
-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
-am__leading_dot = .
-am__quote = 
-am__tar = $${TAR-tar} chof - "$$tardir"
-am__untar = $${TAR-tar} xf -
-arch = x86_64
-arch_m32 = i386
-arch_mx32 = x32
-bindir = ${exec_prefix}/bin
-build = x86_64-pc-linux-gnu
-build_alias = 
-build_cpu = x86_64
-build_os = linux-gnu
-build_vendor = pc
-builddir = .
-datadir = ${datarootdir}
-datarootdir = ${prefix}/share
-dl_LIBS = -ldl
-docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
-dvidir = ${docdir}
-exec_prefix = ${prefix}
-host = x86_64-pc-linux-gnu
-host_alias = 
-host_cpu = x86_64
-host_os = linux-gnu
-host_vendor = pc
-htmldir = ${docdir}
-includedir = ${prefix}/include
-infodir = ${datarootdir}/info
-install_sh = ${SHELL} /tmp/strace-4.17/install-sh
-libdir = ${exec_prefix}/lib
-libexecdir = ${exec_prefix}/libexec
-libunwind_CPPFLAGS = 
-libunwind_LDFLAGS = 
-libunwind_LIBS = 
-localedir = ${datarootdir}/locale
-localstatedir = ${prefix}/var
-mandir = ${datarootdir}/man
-mkdir_p = $(MKDIR_P)
-oldincludedir = /usr/include
-pdfdir = ${docdir}
-prefix = /usr/local
-program_transform_name = s,x,x,
-psdir = ${docdir}
-sbindir = ${exec_prefix}/sbin
-sharedstatedir = ${prefix}/com
-srcdir = .
-sysconfdir = ${prefix}/etc
-target_alias = 
-top_build_prefix = ../
-top_builddir = ..
-top_srcdir = ..
-valgrind_enabled_tools =  memcheck
-valgrind_tools = memcheck helgrind drd sgcheck
-OS = linux
-ARCH = i386
-MPERS_NAME = m32
-ARCH_MFLAGS = -DMPERS_IS_$(MPERS_NAME) -m32
-AM_CFLAGS = $(WARN_CFLAGS)
-AM_CPPFLAGS = $(ARCH_MFLAGS) \
-	      -I$(builddir) \
-	      -I$(top_builddir)/$(OS)/$(ARCH) \
-	      -I$(top_srcdir)/$(OS)/$(ARCH) \
-	      -I$(top_builddir)/$(OS) \
-	      -I$(top_srcdir)/$(OS) \
-	      -I$(top_builddir) \
-	      -I$(top_srcdir)
-
-AM_LDFLAGS = $(ARCH_MFLAGS)
-libtests_a_SOURCES = \
-	errno2name.c \
-	error_msg.c \
-	fill_memory.c \
-	get_page_size.c \
-	get_sigset_size.c \
-	hexdump_strdup.c \
-	hexquote_strndup.c \
-	inode_of_sockfd.c \
-	libmmsg.c \
-	libsocketcall.c \
-	overflowuid.c \
-	pipe_maxfd.c \
-	print_quoted_string.c \
-	print_time.c \
-	printflags.c \
-	printxval.c \
-	signal2name.c \
-	skip_unavailable.c \
-	sprintrc.c \
-	tail_alloc.c \
-	tests.h \
-	tprintf.c \
-	# end of libtests_a_SOURCES
-
-libtests_a_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-check_LIBRARIES = libtests.a
-LDADD = libtests.a
-
-# Generated by ./tests/gen_pure_executables.sh from ./tests/pure_executables.list; do not edit.
-PURE_EXECUTABLES = \
-  _newselect \
-  accept \
-  accept4 \
-  access \
-  acct \
-  add_key \
-  adjtimex \
-  aio \
-  alarm \
-  bpf \
-  brk \
-  btrfs \
-  caps \
-  chmod \
-  chown \
-  chown32 \
-  chroot \
-  clock_adjtime \
-  clock_nanosleep \
-  clock_xettime \
-  copy_file_range \
-  creat \
-  delete_module \
-  dup \
-  dup2 \
-  dup3 \
-  epoll_create \
-  epoll_create1 \
-  epoll_ctl \
-  epoll_pwait \
-  epoll_wait \
-  erestartsys \
-  eventfd \
-  execve \
-  execveat \
-  faccessat \
-  fadvise64 \
-  fadvise64_64 \
-  fallocate \
-  fanotify_init \
-  fanotify_mark \
-  fchdir \
-  fchmod \
-  fchmodat \
-  fchown \
-  fchown32 \
-  fchownat \
-  fcntl \
-  fcntl64 \
-  fdatasync \
-  file_handle \
-  file_ioctl \
-  finit_module \
-  flock \
-  fstat \
-  fstat64 \
-  fstatat64 \
-  fstatfs \
-  fstatfs64 \
-  fsync \
-  ftruncate \
-  ftruncate64 \
-  futex \
-  futimesat \
-  get_mempolicy \
-  getcpu \
-  getcwd \
-  getdents \
-  getdents64 \
-  getegid \
-  getegid32 \
-  geteuid \
-  geteuid32 \
-  getgid \
-  getgid32 \
-  getgroups \
-  getgroups32 \
-  getpeername \
-  getpgrp \
-  getpid \
-  getppid \
-  getrandom \
-  getresgid \
-  getresgid32 \
-  getresuid \
-  getresuid32 \
-  getrlimit \
-  getrusage \
-  getsid \
-  getsockname \
-  getuid \
-  getuid32 \
-  getxxid \
-  inet-cmsg \
-  init_module \
-  inotify \
-  inotify_init1 \
-  ioctl \
-  ioctl_block \
-  ioctl_dm \
-  ioctl_evdev \
-  ioctl_loop \
-  ioctl_mtd \
-  ioctl_rtc \
-  ioctl_scsi \
-  ioctl_sg_io_v3 \
-  ioctl_sg_io_v4 \
-  ioctl_sock_gifconf \
-  ioctl_uffdio \
-  ioctl_v4l2 \
-  ioperm \
-  iopl \
-  ioprio \
-  ip_mreq \
-  ipc \
-  ipc_msg \
-  ipc_msgbuf \
-  ipc_sem \
-  ipc_shm \
-  kcmp \
-  kexec_file_load \
-  kexec_load \
-  keyctl \
-  kill \
-  lchown \
-  lchown32 \
-  link \
-  linkat \
-  llseek \
-  lookup_dcookie \
-  lseek \
-  lstat \
-  lstat64 \
-  madvise \
-  mbind \
-  membarrier \
-  memfd_create \
-  migrate_pages \
-  mincore \
-  mkdir \
-  mkdirat \
-  mknod \
-  mknodat \
-  mlock \
-  mlock2 \
-  mlockall \
-  mmap \
-  mmap64 \
-  mmsg \
-  mmsg_name \
-  mount \
-  move_pages \
-  mq \
-  mq_sendrecv \
-  mq_sendrecv-read \
-  mq_sendrecv-write \
-  msg_control \
-  msg_name \
-  munlockall \
-  nanosleep \
-  net-icmp_filter \
-  net-sockaddr \
-  net-y-unix \
-  net-yy-inet \
-  net-yy-netlink \
-  net-yy-unix \
-  netlink_protocol \
-  newfstatat \
-  old_mmap \
-  oldfstat \
-  oldlstat \
-  oldselect \
-  oldstat \
-  open \
-  openat \
-  osf_utimes \
-  pause \
-  perf_event_open \
-  personality \
-  pipe \
-  pipe2 \
-  pkey_alloc \
-  pkey_free \
-  pkey_mprotect \
-  poll \
-  ppoll \
-  prctl-arg2-intptr \
-  prctl-dumpable \
-  prctl-name \
-  prctl-no-args \
-  prctl-pdeathsig \
-  prctl-securebits \
-  prctl-tid_address \
-  prctl-tsc \
-  pread64-pwrite64 \
-  preadv \
-  preadv-pwritev \
-  preadv2-pwritev2 \
-  printstr \
-  prlimit64 \
-  process_vm_readv \
-  process_vm_writev \
-  pselect6 \
-  ptrace \
-  pwritev \
-  quotactl \
-  quotactl-xfs \
-  read-write \
-  readahead \
-  readdir \
-  readlink \
-  readlinkat \
-  readv \
-  reboot \
-  recvfrom \
-  recvmmsg-timeout \
-  recvmsg \
-  remap_file_pages \
-  rename \
-  renameat \
-  renameat2 \
-  request_key \
-  rmdir \
-  rt_sigpending \
-  rt_sigprocmask \
-  rt_sigqueueinfo \
-  rt_sigreturn \
-  rt_sigsuspend \
-  rt_sigtimedwait \
-  rt_tgsigqueueinfo \
-  sched_get_priority_mxx \
-  sched_rr_get_interval \
-  sched_xetaffinity \
-  sched_xetattr \
-  sched_xetparam \
-  sched_xetscheduler \
-  sched_yield \
-  seccomp-filter \
-  select \
-  semop \
-  sendfile \
-  sendfile64 \
-  set_mempolicy \
-  setdomainname \
-  setfsgid \
-  setfsgid32 \
-  setfsuid \
-  setfsuid32 \
-  setgid \
-  setgid32 \
-  setgroups \
-  setgroups32 \
-  sethostname \
-  setns \
-  setregid \
-  setregid32 \
-  setresgid \
-  setresgid32 \
-  setresuid \
-  setresuid32 \
-  setreuid \
-  setreuid32 \
-  setrlimit \
-  setuid \
-  setuid32 \
-  shmxt \
-  shutdown \
-  sigaction \
-  sigaltstack \
-  siginfo \
-  signalfd4 \
-  sigreturn \
-  sigsuspend \
-  socketcall \
-  splice \
-  stat \
-  stat64 \
-  statfs \
-  statfs64 \
-  statx \
-  swap \
-  sxetmask \
-  symlink \
-  symlinkat \
-  sync \
-  sync_file_range \
-  sync_file_range2 \
-  sysinfo \
-  syslog \
-  tee \
-  time \
-  timer_create \
-  timer_xettime \
-  timerfd_xettime \
-  times \
-  times-fail \
-  truncate \
-  truncate64 \
-  ugetrlimit \
-  uio \
-  umask \
-  umount \
-  umount2 \
-  umoven-illptr \
-  umovestr \
-  umovestr-illptr \
-  umovestr2 \
-  umovestr3 \
-  uname \
-  unlink \
-  unlinkat \
-  unshare \
-  userfaultfd \
-  ustat \
-  utime \
-  utimensat \
-  utimes \
-  vhangup \
-  vmsplice \
-  wait4 \
-  waitid \
-  waitpid \
-  xattr \
-  xattr-strings \
-  xet_robust_list \
-  xetitimer \
-  xetpgid \
-  xetpriority \
-  xettimeofday \
-  #
-
-attach_f_p_LDADD = -lrt -lpthread $(LDADD)
-clock_xettime_LDADD = -lrt $(LDADD)
-count_f_LDADD = -lpthread $(LDADD)
-filter_unavailable_LDADD = -lpthread $(LDADD)
-fstat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-fstatat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-ftruncate64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-lstat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-mmap64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-mq_LDADD = -lrt $(LDADD)
-mq_sendrecv_LDADD = -lrt $(LDADD)
-mq_sendrecv_read_LDADD = -lrt $(LDADD)
-mq_sendrecv_write_LDADD = -lrt $(LDADD)
-newfstatat_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-pc_LDADD = $(dl_LIBS) $(LDADD)
-pread64_pwrite64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-preadv_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-preadv_pwritev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-pwritev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-stat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-statfs_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-threads_execve_LDADD = -lrt -lpthread $(LDADD)
-times_LDADD = -lrt $(LDADD)
-truncate64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-uio_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-stack_fcall_SOURCES = stack-fcall.c \
-	stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
-
-
-# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in; do not edit.
-GEN_TESTS = _newselect.gen.test accept.gen.test accept4.gen.test \
-	access.gen.test acct.gen.test add_key.gen.test \
-	adjtimex.gen.test aio.gen.test alarm.gen.test bpf.gen.test \
-	btrfs.gen.test chmod.gen.test chown.gen.test chown32.gen.test \
-	chroot.gen.test clock.gen.test clock_adjtime.gen.test \
-	clock_nanosleep.gen.test clock_xettime.gen.test \
-	copy_file_range.gen.test creat.gen.test delete_module.gen.test \
-	dup.gen.test dup2.gen.test dup3.gen.test epoll_create.gen.test \
-	epoll_create1.gen.test epoll_ctl.gen.test epoll_pwait.gen.test \
-	epoll_wait.gen.test erestartsys.gen.test execveat.gen.test \
-	execveat-v.gen.test faccessat.gen.test fadvise64_64.gen.test \
-	fallocate.gen.test fanotify_init.gen.test \
-	fanotify_mark.gen.test fchdir.gen.test fchmod.gen.test \
-	fchmodat.gen.test fchown.gen.test fchown32.gen.test \
-	fchownat.gen.test fcntl.gen.test fcntl64.gen.test \
-	fdatasync.gen.test file_handle.gen.test file_ioctl.gen.test \
-	finit_module.gen.test flock.gen.test fork-f.gen.test \
-	fstat.gen.test fstat64.gen.test fstatat64.gen.test \
-	fstatfs.gen.test fstatfs64.gen.test fsync.gen.test \
-	ftruncate.gen.test ftruncate64.gen.test futimesat.gen.test \
-	get_mempolicy.gen.test getcpu.gen.test getcwd.gen.test \
-	getdents.gen.test getdents64.gen.test getegid.gen.test \
-	getegid32.gen.test geteuid.gen.test geteuid32.gen.test \
-	getgid.gen.test getgid32.gen.test getgroups.gen.test \
-	getgroups32.gen.test getpeername.gen.test getpgrp.gen.test \
-	getpid.gen.test getppid.gen.test getrandom.gen.test \
-	getresgid.gen.test getresgid32.gen.test getresuid.gen.test \
-	getresuid32.gen.test getrlimit.gen.test getrusage.gen.test \
-	getsid.gen.test getsockname.gen.test gettid.gen.test \
-	getuid32.gen.test getxxid.gen.test inet-cmsg.gen.test \
-	init_module.gen.test inotify.gen.test inotify_init1.gen.test \
-	int_0x80.gen.test ioctl_block.gen.test ioctl_evdev.gen.test \
-	ioctl_evdev-v.gen.test ioctl_loop.gen.test \
-	ioctl_loop-v.gen.test ioctl_mtd.gen.test ioctl_rtc.gen.test \
-	ioctl_rtc-v.gen.test ioctl_scsi.gen.test \
-	ioctl_sg_io_v3.gen.test ioctl_sg_io_v4.gen.test \
-	ioctl_uffdio.gen.test ioctl_v4l2.gen.test ioperm.gen.test \
-	iopl.gen.test ioprio.gen.test ip_mreq.gen.test ipc.gen.test \
-	ipc_msg.gen.test ipc_sem.gen.test ipc_shm.gen.test \
-	kcmp.gen.test kexec_file_load.gen.test kexec_load.gen.test \
-	keyctl.gen.test kill.gen.test lchown.gen.test \
-	lchown32.gen.test link.gen.test linkat.gen.test \
-	lookup_dcookie.gen.test lstat.gen.test lstat64.gen.test \
-	madvise.gen.test mbind.gen.test membarrier.gen.test \
-	memfd_create.gen.test migrate_pages.gen.test mincore.gen.test \
-	mkdir.gen.test mkdirat.gen.test mknod.gen.test \
-	mknodat.gen.test mlock.gen.test mlock2.gen.test \
-	mlockall.gen.test mmap64.gen.test mmsg.gen.test \
-	mmsg-silent.gen.test mmsg_name.gen.test mmsg_name-v.gen.test \
-	mount.gen.test move_pages.gen.test mq.gen.test \
-	mq_sendrecv.gen.test mq_sendrecv-read.gen.test \
-	mq_sendrecv-write.gen.test msg_control.gen.test \
-	msg_control-v.gen.test msg_name.gen.test munlockall.gen.test \
-	nanosleep.gen.test net-icmp_filter.gen.test \
-	net-sockaddr.gen.test netlink_protocol.gen.test \
-	newfstatat.gen.test old_mmap.gen.test oldfstat.gen.test \
-	oldlstat.gen.test oldstat.gen.test open.gen.test \
-	openat.gen.test osf_utimes.gen.test pause.gen.test \
-	perf_event_open.gen.test perf_event_open_nonverbose.gen.test \
-	perf_event_open_unabbrev.gen.test pipe2.gen.test \
-	pkey_alloc.gen.test pkey_free.gen.test pkey_mprotect.gen.test \
-	ppoll.gen.test ppoll-v.gen.test pread64-pwrite64.gen.test \
-	preadv.gen.test preadv-pwritev.gen.test \
-	preadv2-pwritev2.gen.test printstr.gen.test prlimit64.gen.test \
-	process_vm_readv.gen.test process_vm_writev.gen.test \
-	pselect6.gen.test ptrace.gen.test pwritev.gen.test \
-	quotactl.gen.test quotactl-v.gen.test quotactl-xfs.gen.test \
-	quotactl-xfs-v.gen.test read-write.gen.test readahead.gen.test \
-	readdir.gen.test readlink.gen.test readlinkat.gen.test \
-	reboot.gen.test recvfrom.gen.test recvmmsg-timeout.gen.test \
-	recvmsg.gen.test regex.gen.test remap_file_pages.gen.test \
-	rename.gen.test renameat.gen.test renameat2.gen.test \
-	request_key.gen.test rmdir.gen.test rt_sigpending.gen.test \
-	rt_sigprocmask.gen.test rt_sigqueueinfo.gen.test \
-	rt_sigreturn.gen.test rt_sigsuspend.gen.test \
-	rt_sigtimedwait.gen.test rt_tgsigqueueinfo.gen.test \
-	sched.gen.test sched_get_priority_mxx.gen.test \
-	sched_rr_get_interval.gen.test sched_xetaffinity.gen.test \
-	sched_xetattr.gen.test sched_xetparam.gen.test \
-	sched_xetscheduler.gen.test sched_yield.gen.test \
-	seccomp-filter.gen.test seccomp-filter-v.gen.test \
-	select.gen.test semop.gen.test sendfile.gen.test \
-	sendfile64.gen.test set_mempolicy.gen.test \
-	setdomainname.gen.test setfsgid.gen.test setfsgid32.gen.test \
-	setfsuid.gen.test setfsuid32.gen.test setgid.gen.test \
-	setgid32.gen.test setgroups.gen.test setgroups32.gen.test \
-	sethostname.gen.test setns.gen.test setregid.gen.test \
-	setregid32.gen.test setresgid.gen.test setresgid32.gen.test \
-	setresuid.gen.test setresuid32.gen.test setreuid.gen.test \
-	setreuid32.gen.test setrlimit.gen.test setuid.gen.test \
-	setuid32.gen.test shmxt.gen.test shutdown.gen.test \
-	siginfo.gen.test signal_receive.gen.test signalfd4.gen.test \
-	sigreturn.gen.test sigsuspend.gen.test socketcall.gen.test \
-	splice.gen.test stat.gen.test stat64.gen.test statfs.gen.test \
-	statfs64.gen.test statx.gen.test swap.gen.test \
-	sxetmask.gen.test symlink.gen.test symlinkat.gen.test \
-	sync.gen.test sync_file_range.gen.test \
-	sync_file_range2.gen.test sysinfo.gen.test syslog.gen.test \
-	tee.gen.test time.gen.test timer_create.gen.test \
-	timer_xettime.gen.test timerfd_xettime.gen.test times.gen.test \
-	times-fail.gen.test trace_fstat.gen.test \
-	trace_fstatfs.gen.test trace_lstat.gen.test \
-	trace_question.gen.test trace_stat.gen.test \
-	trace_stat_like.gen.test trace_statfs.gen.test \
-	trace_statfs_like.gen.test truncate.gen.test \
-	truncate64.gen.test ugetrlimit.gen.test umask.gen.test \
-	umoven-illptr.gen.test umovestr-illptr.gen.test \
-	umovestr3.gen.test unlink.gen.test unlinkat.gen.test \
-	unshare.gen.test userfaultfd.gen.test ustat.gen.test \
-	utime.gen.test utimensat.gen.test utimes.gen.test \
-	vfork-f.gen.test vhangup.gen.test vmsplice.gen.test \
-	wait4.gen.test wait4-v.gen.test waitid.gen.test \
-	waitid-v.gen.test waitpid.gen.test xattr.gen.test \
-	xattr-strings.gen.test xet_robust_list.gen.test \
-	xetitimer.gen.test xetpgid.gen.test xetpriority.gen.test \
-	xettimeofday.gen.test
-LIBUNWIND_TESTS = 
-#LIBUNWIND_TESTS = strace-k.test
-DECODER_TESTS = \
-	brk.test \
-	btrfs-v.test \
-	btrfs-vw.test \
-	btrfs-w.test \
-	caps-abbrev.test \
-	caps.test \
-	eventfd.test \
-	execve-v.test \
-	execve.test \
-	fadvise64.test \
-	futex.test \
-	getuid.test \
-	ioctl.test \
-	ioctl_dm-v.test \
-	ioctl_dm.test \
-	ioctl_loop-nv.test \
-	ioctl_nsfs.test \
-	ioctl_sock_gifconf.test \
-	ipc_msgbuf.test \
-	llseek.test \
-	lseek.test \
-	mmap.test \
-	net-y-unix.test \
-	net-yy-inet.test \
-	net-yy-netlink.test \
-	net-yy-unix.test \
-	net.test \
-	nsyscalls.test \
-	oldselect.test \
-	personality.test \
-	pipe.test \
-	poll.test \
-	prctl-arg2-intptr.test \
-	prctl-dumpable.test \
-	prctl-name.test \
-	prctl-no-args.test \
-	prctl-pdeathsig.test \
-	prctl-seccomp-filter-v.test \
-	prctl-seccomp-strict.test \
-	prctl-securebits.test \
-	prctl-tid_address.test \
-	prctl-tsc.test \
-	qual_fault-exit_group.test \
-	readv.test \
-	scm_rights-fd.test \
-	seccomp-strict.test \
-	sigaction.test \
-	sigaltstack.test \
-	sun_path.test \
-	uio.test \
-	umount.test \
-	umount2.test \
-	umovestr.test \
-	umovestr2.test \
-	uname.test \
-	unix-pair-send-recv.test \
-	unix-pair-sendto-recvfrom.test \
-	# end of DECODER_TESTS
-
-MISC_TESTS = \
-	attach-f-p.test \
-	attach-p-cmd.test \
-	bexecve.test \
-	count-f.test \
-	count.test \
-	detach-running.test \
-	detach-sleeping.test \
-	detach-stopped.test \
-	filter-unavailable.test \
-	get_regs.test \
-	ksysent.test \
-	opipe.test \
-	options-syntax.test \
-	pc.test \
-	qual_fault-syntax.test \
-	qual_fault.test \
-	qual_inject-error-signal.test \
-	qual_inject-retval.test \
-	qual_inject-signal.test \
-	qual_inject-syntax.test \
-	qual_signal.test \
-	qual_syscall.test \
-	redirect-fds.test \
-	redirect.test \
-	restart_syscall.test \
-	strace-C.test \
-	strace-E.test \
-	strace-S.test \
-	strace-T.test \
-	strace-V.test \
-	strace-ff.test \
-	strace-r.test \
-	strace-t.test \
-	strace-tt.test \
-	strace-ttt.test \
-	threads-execve.test \
-	# end of MISC_TESTS
-
-XFAIL_TESTS_ = 
-XFAIL_TESTS_m32 = $(LIBUNWIND_TESTS)
-XFAIL_TESTS_mx32 = $(LIBUNWIND_TESTS)
-XFAIL_TESTS_x86_64 = int_0x80.gen.test
-XFAIL_TESTS_x32 = int_0x80.gen.test
-XFAIL_TESTS = $(XFAIL_TESTS_$(MPERS_NAME)) $(XFAIL_TESTS_$(ARCH))
-TEST_LOG_COMPILER = env
-AM_TEST_LOG_FLAGS = STRACE_ARCH=$(ARCH) MIPS_ABI=$(MIPS_ABI) $(srcdir)/run.sh
-VALGRIND_FLAGS = --quiet
-VALGRIND_SUPPRESSIONS_FILES = $(srcdir)/strace.supp
-EXTRA_DIST = \
-	caps-abbrev.awk \
-	caps.awk \
-	clock.in \
-	count-f.expected \
-	eventfd.expected \
-	fadvise.h \
-	filter-unavailable.expected \
-	fstatat.c \
-	fstatx.c \
-	gen_pure_executables.sh \
-	gen_tests.in \
-	gen_tests.sh \
-	getresugid.c \
-	init.sh \
-	init_delete_module.h \
-	ioctl-v.sh \
-	ipc.sh \
-	ipc_msgbuf.expected \
-	ksysent.sed \
-	lstatx.c \
-	match.awk \
-	net.expected \
-	oldselect.expected \
-	pipe.expected \
-	process_vm_readv_writev.c \
-	pure_executables.list \
-	qual_fault-exit_group.expected \
-	qual_inject-error-signal.expected \
-	qual_inject-signal.expected \
-	quotactl.h \
-	regex.in \
-	run.sh \
-	sched.in \
-	scno_tampering.sh \
-	setfsugid.c \
-	setresugid.c \
-	setreugid.c \
-	setugid.c \
-	sigaction.awk \
-	sigaltstack.expected \
-	sockname.c \
-	strace-C.expected \
-	strace-E.expected \
-	strace-T.expected \
-	strace-ff.expected \
-	strace-k.test \
-	strace-r.expected \
-	strace.supp \
-	struct_flock.c \
-	sun_path.expected \
-	trace_fstat.in \
-	trace_fstatfs.in \
-	trace_lstat.in \
-	trace_question.in \
-	trace_stat.in \
-	trace_stat_like.in \
-	trace_statfs.in \
-	trace_statfs_like.in \
-	uio.expected \
-	umode_t.c \
-	umovestr.expected \
-	unix-pair-send-recv.expected \
-	unix-pair-sendto-recvfrom.expected \
-	xchownx.c \
-	xgetrlimit.c \
-	xselect.c \
-	xstatfs.c \
-	xstatfs64.c \
-	xstatfsx.c \
-	xstatx.c \
-	xutimes.c \
-	$(TESTS)
-
-objects = $(filter %.$(OBJEXT),$(SOURCES:.c=.$(OBJEXT)))
-CLEANFILES = ksysent.h syscallent.i scno.h
-SCNO_CPPFLAGS = $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-		$(ARCH_MFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS)
-
-digits = [[:digit:]][[:digit:]]*
-al_nums = [[:alnum:]_][[:alnum:]_]*
-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
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .log .o .obj .test .test$(EXEEXT) .trs
-$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am $(srcdir)/pure_executables.am $(srcdir)/gen_tests.am $(srcdir)/../scno.am $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests-m32/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --foreign tests-m32/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-$(srcdir)/pure_executables.am $(srcdir)/gen_tests.am $(srcdir)/../scno.am:
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: # $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): # $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-clean-checkLIBRARIES:
-	-test -z "$(check_LIBRARIES)" || rm -f $(check_LIBRARIES)
-
-libtests.a: $(libtests_a_OBJECTS) $(libtests_a_DEPENDENCIES) $(EXTRA_libtests_a_DEPENDENCIES) 
-	$(AM_V_at)-rm -f libtests.a
-	$(AM_V_AR)$(libtests_a_AR) libtests.a $(libtests_a_OBJECTS) $(libtests_a_LIBADD)
-	$(AM_V_at)$(RANLIB) libtests.a
-
-clean-checkPROGRAMS:
-	-test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)
-
-_newselect$(EXEEXT): $(_newselect_OBJECTS) $(_newselect_DEPENDENCIES) $(EXTRA__newselect_DEPENDENCIES) 
-	@rm -f _newselect$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(_newselect_OBJECTS) $(_newselect_LDADD) $(LIBS)
-
-accept$(EXEEXT): $(accept_OBJECTS) $(accept_DEPENDENCIES) $(EXTRA_accept_DEPENDENCIES) 
-	@rm -f accept$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(accept_OBJECTS) $(accept_LDADD) $(LIBS)
-
-accept4$(EXEEXT): $(accept4_OBJECTS) $(accept4_DEPENDENCIES) $(EXTRA_accept4_DEPENDENCIES) 
-	@rm -f accept4$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(accept4_OBJECTS) $(accept4_LDADD) $(LIBS)
-
-access$(EXEEXT): $(access_OBJECTS) $(access_DEPENDENCIES) $(EXTRA_access_DEPENDENCIES) 
-	@rm -f access$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(access_OBJECTS) $(access_LDADD) $(LIBS)
-
-acct$(EXEEXT): $(acct_OBJECTS) $(acct_DEPENDENCIES) $(EXTRA_acct_DEPENDENCIES) 
-	@rm -f acct$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(acct_OBJECTS) $(acct_LDADD) $(LIBS)
-
-add_key$(EXEEXT): $(add_key_OBJECTS) $(add_key_DEPENDENCIES) $(EXTRA_add_key_DEPENDENCIES) 
-	@rm -f add_key$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(add_key_OBJECTS) $(add_key_LDADD) $(LIBS)
-
-adjtimex$(EXEEXT): $(adjtimex_OBJECTS) $(adjtimex_DEPENDENCIES) $(EXTRA_adjtimex_DEPENDENCIES) 
-	@rm -f adjtimex$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(adjtimex_OBJECTS) $(adjtimex_LDADD) $(LIBS)
-
-aio$(EXEEXT): $(aio_OBJECTS) $(aio_DEPENDENCIES) $(EXTRA_aio_DEPENDENCIES) 
-	@rm -f aio$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(aio_OBJECTS) $(aio_LDADD) $(LIBS)
-
-alarm$(EXEEXT): $(alarm_OBJECTS) $(alarm_DEPENDENCIES) $(EXTRA_alarm_DEPENDENCIES) 
-	@rm -f alarm$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(alarm_OBJECTS) $(alarm_LDADD) $(LIBS)
-
-answer$(EXEEXT): $(answer_OBJECTS) $(answer_DEPENDENCIES) $(EXTRA_answer_DEPENDENCIES) 
-	@rm -f answer$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(answer_OBJECTS) $(answer_LDADD) $(LIBS)
-
-attach-f-p$(EXEEXT): $(attach_f_p_OBJECTS) $(attach_f_p_DEPENDENCIES) $(EXTRA_attach_f_p_DEPENDENCIES) 
-	@rm -f attach-f-p$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(attach_f_p_OBJECTS) $(attach_f_p_LDADD) $(LIBS)
-
-attach-f-p-cmd$(EXEEXT): $(attach_f_p_cmd_OBJECTS) $(attach_f_p_cmd_DEPENDENCIES) $(EXTRA_attach_f_p_cmd_DEPENDENCIES) 
-	@rm -f attach-f-p-cmd$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(attach_f_p_cmd_OBJECTS) $(attach_f_p_cmd_LDADD) $(LIBS)
-
-attach-p-cmd-cmd$(EXEEXT): $(attach_p_cmd_cmd_OBJECTS) $(attach_p_cmd_cmd_DEPENDENCIES) $(EXTRA_attach_p_cmd_cmd_DEPENDENCIES) 
-	@rm -f attach-p-cmd-cmd$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(attach_p_cmd_cmd_OBJECTS) $(attach_p_cmd_cmd_LDADD) $(LIBS)
-
-attach-p-cmd-p$(EXEEXT): $(attach_p_cmd_p_OBJECTS) $(attach_p_cmd_p_DEPENDENCIES) $(EXTRA_attach_p_cmd_p_DEPENDENCIES) 
-	@rm -f attach-p-cmd-p$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(attach_p_cmd_p_OBJECTS) $(attach_p_cmd_p_LDADD) $(LIBS)
-
-bpf$(EXEEXT): $(bpf_OBJECTS) $(bpf_DEPENDENCIES) $(EXTRA_bpf_DEPENDENCIES) 
-	@rm -f bpf$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(bpf_OBJECTS) $(bpf_LDADD) $(LIBS)
-
-brk$(EXEEXT): $(brk_OBJECTS) $(brk_DEPENDENCIES) $(EXTRA_brk_DEPENDENCIES) 
-	@rm -f brk$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(brk_OBJECTS) $(brk_LDADD) $(LIBS)
-
-btrfs$(EXEEXT): $(btrfs_OBJECTS) $(btrfs_DEPENDENCIES) $(EXTRA_btrfs_DEPENDENCIES) 
-	@rm -f btrfs$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(btrfs_OBJECTS) $(btrfs_LDADD) $(LIBS)
-
-caps$(EXEEXT): $(caps_OBJECTS) $(caps_DEPENDENCIES) $(EXTRA_caps_DEPENDENCIES) 
-	@rm -f caps$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(caps_OBJECTS) $(caps_LDADD) $(LIBS)
-
-caps-abbrev$(EXEEXT): $(caps_abbrev_OBJECTS) $(caps_abbrev_DEPENDENCIES) $(EXTRA_caps_abbrev_DEPENDENCIES) 
-	@rm -f caps-abbrev$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(caps_abbrev_OBJECTS) $(caps_abbrev_LDADD) $(LIBS)
-
-chmod$(EXEEXT): $(chmod_OBJECTS) $(chmod_DEPENDENCIES) $(EXTRA_chmod_DEPENDENCIES) 
-	@rm -f chmod$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(chmod_OBJECTS) $(chmod_LDADD) $(LIBS)
-
-chown$(EXEEXT): $(chown_OBJECTS) $(chown_DEPENDENCIES) $(EXTRA_chown_DEPENDENCIES) 
-	@rm -f chown$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(chown_OBJECTS) $(chown_LDADD) $(LIBS)
-
-chown32$(EXEEXT): $(chown32_OBJECTS) $(chown32_DEPENDENCIES) $(EXTRA_chown32_DEPENDENCIES) 
-	@rm -f chown32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(chown32_OBJECTS) $(chown32_LDADD) $(LIBS)
-
-chroot$(EXEEXT): $(chroot_OBJECTS) $(chroot_DEPENDENCIES) $(EXTRA_chroot_DEPENDENCIES) 
-	@rm -f chroot$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(chroot_OBJECTS) $(chroot_LDADD) $(LIBS)
-
-clock_adjtime$(EXEEXT): $(clock_adjtime_OBJECTS) $(clock_adjtime_DEPENDENCIES) $(EXTRA_clock_adjtime_DEPENDENCIES) 
-	@rm -f clock_adjtime$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(clock_adjtime_OBJECTS) $(clock_adjtime_LDADD) $(LIBS)
-
-clock_nanosleep$(EXEEXT): $(clock_nanosleep_OBJECTS) $(clock_nanosleep_DEPENDENCIES) $(EXTRA_clock_nanosleep_DEPENDENCIES) 
-	@rm -f clock_nanosleep$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(clock_nanosleep_OBJECTS) $(clock_nanosleep_LDADD) $(LIBS)
-
-clock_xettime$(EXEEXT): $(clock_xettime_OBJECTS) $(clock_xettime_DEPENDENCIES) $(EXTRA_clock_xettime_DEPENDENCIES) 
-	@rm -f clock_xettime$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(clock_xettime_OBJECTS) $(clock_xettime_LDADD) $(LIBS)
-
-copy_file_range$(EXEEXT): $(copy_file_range_OBJECTS) $(copy_file_range_DEPENDENCIES) $(EXTRA_copy_file_range_DEPENDENCIES) 
-	@rm -f copy_file_range$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(copy_file_range_OBJECTS) $(copy_file_range_LDADD) $(LIBS)
-
-count-f$(EXEEXT): $(count_f_OBJECTS) $(count_f_DEPENDENCIES) $(EXTRA_count_f_DEPENDENCIES) 
-	@rm -f count-f$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(count_f_OBJECTS) $(count_f_LDADD) $(LIBS)
-
-creat$(EXEEXT): $(creat_OBJECTS) $(creat_DEPENDENCIES) $(EXTRA_creat_DEPENDENCIES) 
-	@rm -f creat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(creat_OBJECTS) $(creat_LDADD) $(LIBS)
-
-delete_module$(EXEEXT): $(delete_module_OBJECTS) $(delete_module_DEPENDENCIES) $(EXTRA_delete_module_DEPENDENCIES) 
-	@rm -f delete_module$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(delete_module_OBJECTS) $(delete_module_LDADD) $(LIBS)
-
-dup$(EXEEXT): $(dup_OBJECTS) $(dup_DEPENDENCIES) $(EXTRA_dup_DEPENDENCIES) 
-	@rm -f dup$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(dup_OBJECTS) $(dup_LDADD) $(LIBS)
-
-dup2$(EXEEXT): $(dup2_OBJECTS) $(dup2_DEPENDENCIES) $(EXTRA_dup2_DEPENDENCIES) 
-	@rm -f dup2$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(dup2_OBJECTS) $(dup2_LDADD) $(LIBS)
-
-dup3$(EXEEXT): $(dup3_OBJECTS) $(dup3_DEPENDENCIES) $(EXTRA_dup3_DEPENDENCIES) 
-	@rm -f dup3$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(dup3_OBJECTS) $(dup3_LDADD) $(LIBS)
-
-epoll_create$(EXEEXT): $(epoll_create_OBJECTS) $(epoll_create_DEPENDENCIES) $(EXTRA_epoll_create_DEPENDENCIES) 
-	@rm -f epoll_create$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(epoll_create_OBJECTS) $(epoll_create_LDADD) $(LIBS)
-
-epoll_create1$(EXEEXT): $(epoll_create1_OBJECTS) $(epoll_create1_DEPENDENCIES) $(EXTRA_epoll_create1_DEPENDENCIES) 
-	@rm -f epoll_create1$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(epoll_create1_OBJECTS) $(epoll_create1_LDADD) $(LIBS)
-
-epoll_ctl$(EXEEXT): $(epoll_ctl_OBJECTS) $(epoll_ctl_DEPENDENCIES) $(EXTRA_epoll_ctl_DEPENDENCIES) 
-	@rm -f epoll_ctl$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(epoll_ctl_OBJECTS) $(epoll_ctl_LDADD) $(LIBS)
-
-epoll_pwait$(EXEEXT): $(epoll_pwait_OBJECTS) $(epoll_pwait_DEPENDENCIES) $(EXTRA_epoll_pwait_DEPENDENCIES) 
-	@rm -f epoll_pwait$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(epoll_pwait_OBJECTS) $(epoll_pwait_LDADD) $(LIBS)
-
-epoll_wait$(EXEEXT): $(epoll_wait_OBJECTS) $(epoll_wait_DEPENDENCIES) $(EXTRA_epoll_wait_DEPENDENCIES) 
-	@rm -f epoll_wait$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(epoll_wait_OBJECTS) $(epoll_wait_LDADD) $(LIBS)
-
-erestartsys$(EXEEXT): $(erestartsys_OBJECTS) $(erestartsys_DEPENDENCIES) $(EXTRA_erestartsys_DEPENDENCIES) 
-	@rm -f erestartsys$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(erestartsys_OBJECTS) $(erestartsys_LDADD) $(LIBS)
-
-eventfd$(EXEEXT): $(eventfd_OBJECTS) $(eventfd_DEPENDENCIES) $(EXTRA_eventfd_DEPENDENCIES) 
-	@rm -f eventfd$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(eventfd_OBJECTS) $(eventfd_LDADD) $(LIBS)
-
-execve$(EXEEXT): $(execve_OBJECTS) $(execve_DEPENDENCIES) $(EXTRA_execve_DEPENDENCIES) 
-	@rm -f execve$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(execve_OBJECTS) $(execve_LDADD) $(LIBS)
-
-execve-v$(EXEEXT): $(execve_v_OBJECTS) $(execve_v_DEPENDENCIES) $(EXTRA_execve_v_DEPENDENCIES) 
-	@rm -f execve-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(execve_v_OBJECTS) $(execve_v_LDADD) $(LIBS)
-
-execveat$(EXEEXT): $(execveat_OBJECTS) $(execveat_DEPENDENCIES) $(EXTRA_execveat_DEPENDENCIES) 
-	@rm -f execveat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(execveat_OBJECTS) $(execveat_LDADD) $(LIBS)
-
-execveat-v$(EXEEXT): $(execveat_v_OBJECTS) $(execveat_v_DEPENDENCIES) $(EXTRA_execveat_v_DEPENDENCIES) 
-	@rm -f execveat-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(execveat_v_OBJECTS) $(execveat_v_LDADD) $(LIBS)
-
-faccessat$(EXEEXT): $(faccessat_OBJECTS) $(faccessat_DEPENDENCIES) $(EXTRA_faccessat_DEPENDENCIES) 
-	@rm -f faccessat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(faccessat_OBJECTS) $(faccessat_LDADD) $(LIBS)
-
-fadvise64$(EXEEXT): $(fadvise64_OBJECTS) $(fadvise64_DEPENDENCIES) $(EXTRA_fadvise64_DEPENDENCIES) 
-	@rm -f fadvise64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fadvise64_OBJECTS) $(fadvise64_LDADD) $(LIBS)
-
-fadvise64_64$(EXEEXT): $(fadvise64_64_OBJECTS) $(fadvise64_64_DEPENDENCIES) $(EXTRA_fadvise64_64_DEPENDENCIES) 
-	@rm -f fadvise64_64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fadvise64_64_OBJECTS) $(fadvise64_64_LDADD) $(LIBS)
-
-fallocate$(EXEEXT): $(fallocate_OBJECTS) $(fallocate_DEPENDENCIES) $(EXTRA_fallocate_DEPENDENCIES) 
-	@rm -f fallocate$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fallocate_OBJECTS) $(fallocate_LDADD) $(LIBS)
-
-fanotify_init$(EXEEXT): $(fanotify_init_OBJECTS) $(fanotify_init_DEPENDENCIES) $(EXTRA_fanotify_init_DEPENDENCIES) 
-	@rm -f fanotify_init$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fanotify_init_OBJECTS) $(fanotify_init_LDADD) $(LIBS)
-
-fanotify_mark$(EXEEXT): $(fanotify_mark_OBJECTS) $(fanotify_mark_DEPENDENCIES) $(EXTRA_fanotify_mark_DEPENDENCIES) 
-	@rm -f fanotify_mark$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fanotify_mark_OBJECTS) $(fanotify_mark_LDADD) $(LIBS)
-
-fchdir$(EXEEXT): $(fchdir_OBJECTS) $(fchdir_DEPENDENCIES) $(EXTRA_fchdir_DEPENDENCIES) 
-	@rm -f fchdir$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fchdir_OBJECTS) $(fchdir_LDADD) $(LIBS)
-
-fchmod$(EXEEXT): $(fchmod_OBJECTS) $(fchmod_DEPENDENCIES) $(EXTRA_fchmod_DEPENDENCIES) 
-	@rm -f fchmod$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fchmod_OBJECTS) $(fchmod_LDADD) $(LIBS)
-
-fchmodat$(EXEEXT): $(fchmodat_OBJECTS) $(fchmodat_DEPENDENCIES) $(EXTRA_fchmodat_DEPENDENCIES) 
-	@rm -f fchmodat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fchmodat_OBJECTS) $(fchmodat_LDADD) $(LIBS)
-
-fchown$(EXEEXT): $(fchown_OBJECTS) $(fchown_DEPENDENCIES) $(EXTRA_fchown_DEPENDENCIES) 
-	@rm -f fchown$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fchown_OBJECTS) $(fchown_LDADD) $(LIBS)
-
-fchown32$(EXEEXT): $(fchown32_OBJECTS) $(fchown32_DEPENDENCIES) $(EXTRA_fchown32_DEPENDENCIES) 
-	@rm -f fchown32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fchown32_OBJECTS) $(fchown32_LDADD) $(LIBS)
-
-fchownat$(EXEEXT): $(fchownat_OBJECTS) $(fchownat_DEPENDENCIES) $(EXTRA_fchownat_DEPENDENCIES) 
-	@rm -f fchownat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fchownat_OBJECTS) $(fchownat_LDADD) $(LIBS)
-
-fcntl$(EXEEXT): $(fcntl_OBJECTS) $(fcntl_DEPENDENCIES) $(EXTRA_fcntl_DEPENDENCIES) 
-	@rm -f fcntl$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fcntl_OBJECTS) $(fcntl_LDADD) $(LIBS)
-
-fcntl64$(EXEEXT): $(fcntl64_OBJECTS) $(fcntl64_DEPENDENCIES) $(EXTRA_fcntl64_DEPENDENCIES) 
-	@rm -f fcntl64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fcntl64_OBJECTS) $(fcntl64_LDADD) $(LIBS)
-
-fdatasync$(EXEEXT): $(fdatasync_OBJECTS) $(fdatasync_DEPENDENCIES) $(EXTRA_fdatasync_DEPENDENCIES) 
-	@rm -f fdatasync$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fdatasync_OBJECTS) $(fdatasync_LDADD) $(LIBS)
-
-file_handle$(EXEEXT): $(file_handle_OBJECTS) $(file_handle_DEPENDENCIES) $(EXTRA_file_handle_DEPENDENCIES) 
-	@rm -f file_handle$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(file_handle_OBJECTS) $(file_handle_LDADD) $(LIBS)
-
-file_ioctl$(EXEEXT): $(file_ioctl_OBJECTS) $(file_ioctl_DEPENDENCIES) $(EXTRA_file_ioctl_DEPENDENCIES) 
-	@rm -f file_ioctl$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(file_ioctl_OBJECTS) $(file_ioctl_LDADD) $(LIBS)
-
-filter-unavailable$(EXEEXT): $(filter_unavailable_OBJECTS) $(filter_unavailable_DEPENDENCIES) $(EXTRA_filter_unavailable_DEPENDENCIES) 
-	@rm -f filter-unavailable$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(filter_unavailable_OBJECTS) $(filter_unavailable_LDADD) $(LIBS)
-
-finit_module$(EXEEXT): $(finit_module_OBJECTS) $(finit_module_DEPENDENCIES) $(EXTRA_finit_module_DEPENDENCIES) 
-	@rm -f finit_module$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(finit_module_OBJECTS) $(finit_module_LDADD) $(LIBS)
-
-flock$(EXEEXT): $(flock_OBJECTS) $(flock_DEPENDENCIES) $(EXTRA_flock_DEPENDENCIES) 
-	@rm -f flock$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(flock_OBJECTS) $(flock_LDADD) $(LIBS)
-
-fork-f$(EXEEXT): $(fork_f_OBJECTS) $(fork_f_DEPENDENCIES) $(EXTRA_fork_f_DEPENDENCIES) 
-	@rm -f fork-f$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fork_f_OBJECTS) $(fork_f_LDADD) $(LIBS)
-
-fstat$(EXEEXT): $(fstat_OBJECTS) $(fstat_DEPENDENCIES) $(EXTRA_fstat_DEPENDENCIES) 
-	@rm -f fstat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fstat_OBJECTS) $(fstat_LDADD) $(LIBS)
-
-fstat64$(EXEEXT): $(fstat64_OBJECTS) $(fstat64_DEPENDENCIES) $(EXTRA_fstat64_DEPENDENCIES) 
-	@rm -f fstat64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fstat64_OBJECTS) $(fstat64_LDADD) $(LIBS)
-
-fstatat64$(EXEEXT): $(fstatat64_OBJECTS) $(fstatat64_DEPENDENCIES) $(EXTRA_fstatat64_DEPENDENCIES) 
-	@rm -f fstatat64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fstatat64_OBJECTS) $(fstatat64_LDADD) $(LIBS)
-
-fstatfs$(EXEEXT): $(fstatfs_OBJECTS) $(fstatfs_DEPENDENCIES) $(EXTRA_fstatfs_DEPENDENCIES) 
-	@rm -f fstatfs$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fstatfs_OBJECTS) $(fstatfs_LDADD) $(LIBS)
-
-fstatfs64$(EXEEXT): $(fstatfs64_OBJECTS) $(fstatfs64_DEPENDENCIES) $(EXTRA_fstatfs64_DEPENDENCIES) 
-	@rm -f fstatfs64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fstatfs64_OBJECTS) $(fstatfs64_LDADD) $(LIBS)
-
-fsync$(EXEEXT): $(fsync_OBJECTS) $(fsync_DEPENDENCIES) $(EXTRA_fsync_DEPENDENCIES) 
-	@rm -f fsync$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fsync_OBJECTS) $(fsync_LDADD) $(LIBS)
-
-ftruncate$(EXEEXT): $(ftruncate_OBJECTS) $(ftruncate_DEPENDENCIES) $(EXTRA_ftruncate_DEPENDENCIES) 
-	@rm -f ftruncate$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ftruncate_OBJECTS) $(ftruncate_LDADD) $(LIBS)
-
-ftruncate64$(EXEEXT): $(ftruncate64_OBJECTS) $(ftruncate64_DEPENDENCIES) $(EXTRA_ftruncate64_DEPENDENCIES) 
-	@rm -f ftruncate64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ftruncate64_OBJECTS) $(ftruncate64_LDADD) $(LIBS)
-
-futex$(EXEEXT): $(futex_OBJECTS) $(futex_DEPENDENCIES) $(EXTRA_futex_DEPENDENCIES) 
-	@rm -f futex$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(futex_OBJECTS) $(futex_LDADD) $(LIBS)
-
-futimesat$(EXEEXT): $(futimesat_OBJECTS) $(futimesat_DEPENDENCIES) $(EXTRA_futimesat_DEPENDENCIES) 
-	@rm -f futimesat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(futimesat_OBJECTS) $(futimesat_LDADD) $(LIBS)
-
-get_mempolicy$(EXEEXT): $(get_mempolicy_OBJECTS) $(get_mempolicy_DEPENDENCIES) $(EXTRA_get_mempolicy_DEPENDENCIES) 
-	@rm -f get_mempolicy$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(get_mempolicy_OBJECTS) $(get_mempolicy_LDADD) $(LIBS)
-
-getcpu$(EXEEXT): $(getcpu_OBJECTS) $(getcpu_DEPENDENCIES) $(EXTRA_getcpu_DEPENDENCIES) 
-	@rm -f getcpu$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getcpu_OBJECTS) $(getcpu_LDADD) $(LIBS)
-
-getcwd$(EXEEXT): $(getcwd_OBJECTS) $(getcwd_DEPENDENCIES) $(EXTRA_getcwd_DEPENDENCIES) 
-	@rm -f getcwd$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getcwd_OBJECTS) $(getcwd_LDADD) $(LIBS)
-
-getdents$(EXEEXT): $(getdents_OBJECTS) $(getdents_DEPENDENCIES) $(EXTRA_getdents_DEPENDENCIES) 
-	@rm -f getdents$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getdents_OBJECTS) $(getdents_LDADD) $(LIBS)
-
-getdents64$(EXEEXT): $(getdents64_OBJECTS) $(getdents64_DEPENDENCIES) $(EXTRA_getdents64_DEPENDENCIES) 
-	@rm -f getdents64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getdents64_OBJECTS) $(getdents64_LDADD) $(LIBS)
-
-getegid$(EXEEXT): $(getegid_OBJECTS) $(getegid_DEPENDENCIES) $(EXTRA_getegid_DEPENDENCIES) 
-	@rm -f getegid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getegid_OBJECTS) $(getegid_LDADD) $(LIBS)
-
-getegid32$(EXEEXT): $(getegid32_OBJECTS) $(getegid32_DEPENDENCIES) $(EXTRA_getegid32_DEPENDENCIES) 
-	@rm -f getegid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getegid32_OBJECTS) $(getegid32_LDADD) $(LIBS)
-
-geteuid$(EXEEXT): $(geteuid_OBJECTS) $(geteuid_DEPENDENCIES) $(EXTRA_geteuid_DEPENDENCIES) 
-	@rm -f geteuid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(geteuid_OBJECTS) $(geteuid_LDADD) $(LIBS)
-
-geteuid32$(EXEEXT): $(geteuid32_OBJECTS) $(geteuid32_DEPENDENCIES) $(EXTRA_geteuid32_DEPENDENCIES) 
-	@rm -f geteuid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(geteuid32_OBJECTS) $(geteuid32_LDADD) $(LIBS)
-
-getgid$(EXEEXT): $(getgid_OBJECTS) $(getgid_DEPENDENCIES) $(EXTRA_getgid_DEPENDENCIES) 
-	@rm -f getgid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getgid_OBJECTS) $(getgid_LDADD) $(LIBS)
-
-getgid32$(EXEEXT): $(getgid32_OBJECTS) $(getgid32_DEPENDENCIES) $(EXTRA_getgid32_DEPENDENCIES) 
-	@rm -f getgid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getgid32_OBJECTS) $(getgid32_LDADD) $(LIBS)
-
-getgroups$(EXEEXT): $(getgroups_OBJECTS) $(getgroups_DEPENDENCIES) $(EXTRA_getgroups_DEPENDENCIES) 
-	@rm -f getgroups$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getgroups_OBJECTS) $(getgroups_LDADD) $(LIBS)
-
-getgroups32$(EXEEXT): $(getgroups32_OBJECTS) $(getgroups32_DEPENDENCIES) $(EXTRA_getgroups32_DEPENDENCIES) 
-	@rm -f getgroups32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getgroups32_OBJECTS) $(getgroups32_LDADD) $(LIBS)
-
-getpeername$(EXEEXT): $(getpeername_OBJECTS) $(getpeername_DEPENDENCIES) $(EXTRA_getpeername_DEPENDENCIES) 
-	@rm -f getpeername$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getpeername_OBJECTS) $(getpeername_LDADD) $(LIBS)
-
-getpgrp$(EXEEXT): $(getpgrp_OBJECTS) $(getpgrp_DEPENDENCIES) $(EXTRA_getpgrp_DEPENDENCIES) 
-	@rm -f getpgrp$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getpgrp_OBJECTS) $(getpgrp_LDADD) $(LIBS)
-
-getpid$(EXEEXT): $(getpid_OBJECTS) $(getpid_DEPENDENCIES) $(EXTRA_getpid_DEPENDENCIES) 
-	@rm -f getpid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getpid_OBJECTS) $(getpid_LDADD) $(LIBS)
-
-getppid$(EXEEXT): $(getppid_OBJECTS) $(getppid_DEPENDENCIES) $(EXTRA_getppid_DEPENDENCIES) 
-	@rm -f getppid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getppid_OBJECTS) $(getppid_LDADD) $(LIBS)
-
-getrandom$(EXEEXT): $(getrandom_OBJECTS) $(getrandom_DEPENDENCIES) $(EXTRA_getrandom_DEPENDENCIES) 
-	@rm -f getrandom$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getrandom_OBJECTS) $(getrandom_LDADD) $(LIBS)
-
-getresgid$(EXEEXT): $(getresgid_OBJECTS) $(getresgid_DEPENDENCIES) $(EXTRA_getresgid_DEPENDENCIES) 
-	@rm -f getresgid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getresgid_OBJECTS) $(getresgid_LDADD) $(LIBS)
-
-getresgid32$(EXEEXT): $(getresgid32_OBJECTS) $(getresgid32_DEPENDENCIES) $(EXTRA_getresgid32_DEPENDENCIES) 
-	@rm -f getresgid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getresgid32_OBJECTS) $(getresgid32_LDADD) $(LIBS)
-
-getresuid$(EXEEXT): $(getresuid_OBJECTS) $(getresuid_DEPENDENCIES) $(EXTRA_getresuid_DEPENDENCIES) 
-	@rm -f getresuid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getresuid_OBJECTS) $(getresuid_LDADD) $(LIBS)
-
-getresuid32$(EXEEXT): $(getresuid32_OBJECTS) $(getresuid32_DEPENDENCIES) $(EXTRA_getresuid32_DEPENDENCIES) 
-	@rm -f getresuid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getresuid32_OBJECTS) $(getresuid32_LDADD) $(LIBS)
-
-getrlimit$(EXEEXT): $(getrlimit_OBJECTS) $(getrlimit_DEPENDENCIES) $(EXTRA_getrlimit_DEPENDENCIES) 
-	@rm -f getrlimit$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getrlimit_OBJECTS) $(getrlimit_LDADD) $(LIBS)
-
-getrusage$(EXEEXT): $(getrusage_OBJECTS) $(getrusage_DEPENDENCIES) $(EXTRA_getrusage_DEPENDENCIES) 
-	@rm -f getrusage$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getrusage_OBJECTS) $(getrusage_LDADD) $(LIBS)
-
-getsid$(EXEEXT): $(getsid_OBJECTS) $(getsid_DEPENDENCIES) $(EXTRA_getsid_DEPENDENCIES) 
-	@rm -f getsid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getsid_OBJECTS) $(getsid_LDADD) $(LIBS)
-
-getsockname$(EXEEXT): $(getsockname_OBJECTS) $(getsockname_DEPENDENCIES) $(EXTRA_getsockname_DEPENDENCIES) 
-	@rm -f getsockname$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getsockname_OBJECTS) $(getsockname_LDADD) $(LIBS)
-
-gettid$(EXEEXT): $(gettid_OBJECTS) $(gettid_DEPENDENCIES) $(EXTRA_gettid_DEPENDENCIES) 
-	@rm -f gettid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(gettid_OBJECTS) $(gettid_LDADD) $(LIBS)
-
-getuid$(EXEEXT): $(getuid_OBJECTS) $(getuid_DEPENDENCIES) $(EXTRA_getuid_DEPENDENCIES) 
-	@rm -f getuid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getuid_OBJECTS) $(getuid_LDADD) $(LIBS)
-
-getuid32$(EXEEXT): $(getuid32_OBJECTS) $(getuid32_DEPENDENCIES) $(EXTRA_getuid32_DEPENDENCIES) 
-	@rm -f getuid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getuid32_OBJECTS) $(getuid32_LDADD) $(LIBS)
-
-getxxid$(EXEEXT): $(getxxid_OBJECTS) $(getxxid_DEPENDENCIES) $(EXTRA_getxxid_DEPENDENCIES) 
-	@rm -f getxxid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getxxid_OBJECTS) $(getxxid_LDADD) $(LIBS)
-
-inet-cmsg$(EXEEXT): $(inet_cmsg_OBJECTS) $(inet_cmsg_DEPENDENCIES) $(EXTRA_inet_cmsg_DEPENDENCIES) 
-	@rm -f inet-cmsg$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(inet_cmsg_OBJECTS) $(inet_cmsg_LDADD) $(LIBS)
-
-init_module$(EXEEXT): $(init_module_OBJECTS) $(init_module_DEPENDENCIES) $(EXTRA_init_module_DEPENDENCIES) 
-	@rm -f init_module$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(init_module_OBJECTS) $(init_module_LDADD) $(LIBS)
-
-inotify$(EXEEXT): $(inotify_OBJECTS) $(inotify_DEPENDENCIES) $(EXTRA_inotify_DEPENDENCIES) 
-	@rm -f inotify$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(inotify_OBJECTS) $(inotify_LDADD) $(LIBS)
-
-inotify_init1$(EXEEXT): $(inotify_init1_OBJECTS) $(inotify_init1_DEPENDENCIES) $(EXTRA_inotify_init1_DEPENDENCIES) 
-	@rm -f inotify_init1$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(inotify_init1_OBJECTS) $(inotify_init1_LDADD) $(LIBS)
-
-int_0x80$(EXEEXT): $(int_0x80_OBJECTS) $(int_0x80_DEPENDENCIES) $(EXTRA_int_0x80_DEPENDENCIES) 
-	@rm -f int_0x80$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(int_0x80_OBJECTS) $(int_0x80_LDADD) $(LIBS)
-
-ioctl$(EXEEXT): $(ioctl_OBJECTS) $(ioctl_DEPENDENCIES) $(EXTRA_ioctl_DEPENDENCIES) 
-	@rm -f ioctl$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_OBJECTS) $(ioctl_LDADD) $(LIBS)
-
-ioctl_block$(EXEEXT): $(ioctl_block_OBJECTS) $(ioctl_block_DEPENDENCIES) $(EXTRA_ioctl_block_DEPENDENCIES) 
-	@rm -f ioctl_block$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_block_OBJECTS) $(ioctl_block_LDADD) $(LIBS)
-
-ioctl_dm$(EXEEXT): $(ioctl_dm_OBJECTS) $(ioctl_dm_DEPENDENCIES) $(EXTRA_ioctl_dm_DEPENDENCIES) 
-	@rm -f ioctl_dm$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_dm_OBJECTS) $(ioctl_dm_LDADD) $(LIBS)
-
-ioctl_dm-v$(EXEEXT): $(ioctl_dm_v_OBJECTS) $(ioctl_dm_v_DEPENDENCIES) $(EXTRA_ioctl_dm_v_DEPENDENCIES) 
-	@rm -f ioctl_dm-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_dm_v_OBJECTS) $(ioctl_dm_v_LDADD) $(LIBS)
-
-ioctl_evdev$(EXEEXT): $(ioctl_evdev_OBJECTS) $(ioctl_evdev_DEPENDENCIES) $(EXTRA_ioctl_evdev_DEPENDENCIES) 
-	@rm -f ioctl_evdev$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_evdev_OBJECTS) $(ioctl_evdev_LDADD) $(LIBS)
-
-ioctl_evdev-v$(EXEEXT): $(ioctl_evdev_v_OBJECTS) $(ioctl_evdev_v_DEPENDENCIES) $(EXTRA_ioctl_evdev_v_DEPENDENCIES) 
-	@rm -f ioctl_evdev-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_evdev_v_OBJECTS) $(ioctl_evdev_v_LDADD) $(LIBS)
-
-ioctl_loop$(EXEEXT): $(ioctl_loop_OBJECTS) $(ioctl_loop_DEPENDENCIES) $(EXTRA_ioctl_loop_DEPENDENCIES) 
-	@rm -f ioctl_loop$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_loop_OBJECTS) $(ioctl_loop_LDADD) $(LIBS)
-
-ioctl_loop-nv$(EXEEXT): $(ioctl_loop_nv_OBJECTS) $(ioctl_loop_nv_DEPENDENCIES) $(EXTRA_ioctl_loop_nv_DEPENDENCIES) 
-	@rm -f ioctl_loop-nv$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_loop_nv_OBJECTS) $(ioctl_loop_nv_LDADD) $(LIBS)
-
-ioctl_loop-v$(EXEEXT): $(ioctl_loop_v_OBJECTS) $(ioctl_loop_v_DEPENDENCIES) $(EXTRA_ioctl_loop_v_DEPENDENCIES) 
-	@rm -f ioctl_loop-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_loop_v_OBJECTS) $(ioctl_loop_v_LDADD) $(LIBS)
-
-ioctl_mtd$(EXEEXT): $(ioctl_mtd_OBJECTS) $(ioctl_mtd_DEPENDENCIES) $(EXTRA_ioctl_mtd_DEPENDENCIES) 
-	@rm -f ioctl_mtd$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_mtd_OBJECTS) $(ioctl_mtd_LDADD) $(LIBS)
-
-ioctl_nsfs$(EXEEXT): $(ioctl_nsfs_OBJECTS) $(ioctl_nsfs_DEPENDENCIES) $(EXTRA_ioctl_nsfs_DEPENDENCIES) 
-	@rm -f ioctl_nsfs$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_nsfs_OBJECTS) $(ioctl_nsfs_LDADD) $(LIBS)
-
-ioctl_rtc$(EXEEXT): $(ioctl_rtc_OBJECTS) $(ioctl_rtc_DEPENDENCIES) $(EXTRA_ioctl_rtc_DEPENDENCIES) 
-	@rm -f ioctl_rtc$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_rtc_OBJECTS) $(ioctl_rtc_LDADD) $(LIBS)
-
-ioctl_rtc-v$(EXEEXT): $(ioctl_rtc_v_OBJECTS) $(ioctl_rtc_v_DEPENDENCIES) $(EXTRA_ioctl_rtc_v_DEPENDENCIES) 
-	@rm -f ioctl_rtc-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_rtc_v_OBJECTS) $(ioctl_rtc_v_LDADD) $(LIBS)
-
-ioctl_scsi$(EXEEXT): $(ioctl_scsi_OBJECTS) $(ioctl_scsi_DEPENDENCIES) $(EXTRA_ioctl_scsi_DEPENDENCIES) 
-	@rm -f ioctl_scsi$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_scsi_OBJECTS) $(ioctl_scsi_LDADD) $(LIBS)
-
-ioctl_sg_io_v3$(EXEEXT): $(ioctl_sg_io_v3_OBJECTS) $(ioctl_sg_io_v3_DEPENDENCIES) $(EXTRA_ioctl_sg_io_v3_DEPENDENCIES) 
-	@rm -f ioctl_sg_io_v3$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_sg_io_v3_OBJECTS) $(ioctl_sg_io_v3_LDADD) $(LIBS)
-
-ioctl_sg_io_v4$(EXEEXT): $(ioctl_sg_io_v4_OBJECTS) $(ioctl_sg_io_v4_DEPENDENCIES) $(EXTRA_ioctl_sg_io_v4_DEPENDENCIES) 
-	@rm -f ioctl_sg_io_v4$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_sg_io_v4_OBJECTS) $(ioctl_sg_io_v4_LDADD) $(LIBS)
-
-ioctl_sock_gifconf$(EXEEXT): $(ioctl_sock_gifconf_OBJECTS) $(ioctl_sock_gifconf_DEPENDENCIES) $(EXTRA_ioctl_sock_gifconf_DEPENDENCIES) 
-	@rm -f ioctl_sock_gifconf$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_sock_gifconf_OBJECTS) $(ioctl_sock_gifconf_LDADD) $(LIBS)
-
-ioctl_uffdio$(EXEEXT): $(ioctl_uffdio_OBJECTS) $(ioctl_uffdio_DEPENDENCIES) $(EXTRA_ioctl_uffdio_DEPENDENCIES) 
-	@rm -f ioctl_uffdio$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_uffdio_OBJECTS) $(ioctl_uffdio_LDADD) $(LIBS)
-
-ioctl_v4l2$(EXEEXT): $(ioctl_v4l2_OBJECTS) $(ioctl_v4l2_DEPENDENCIES) $(EXTRA_ioctl_v4l2_DEPENDENCIES) 
-	@rm -f ioctl_v4l2$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_v4l2_OBJECTS) $(ioctl_v4l2_LDADD) $(LIBS)
-
-ioperm$(EXEEXT): $(ioperm_OBJECTS) $(ioperm_DEPENDENCIES) $(EXTRA_ioperm_DEPENDENCIES) 
-	@rm -f ioperm$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioperm_OBJECTS) $(ioperm_LDADD) $(LIBS)
-
-iopl$(EXEEXT): $(iopl_OBJECTS) $(iopl_DEPENDENCIES) $(EXTRA_iopl_DEPENDENCIES) 
-	@rm -f iopl$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(iopl_OBJECTS) $(iopl_LDADD) $(LIBS)
-
-ioprio$(EXEEXT): $(ioprio_OBJECTS) $(ioprio_DEPENDENCIES) $(EXTRA_ioprio_DEPENDENCIES) 
-	@rm -f ioprio$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioprio_OBJECTS) $(ioprio_LDADD) $(LIBS)
-
-ip_mreq$(EXEEXT): $(ip_mreq_OBJECTS) $(ip_mreq_DEPENDENCIES) $(EXTRA_ip_mreq_DEPENDENCIES) 
-	@rm -f ip_mreq$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ip_mreq_OBJECTS) $(ip_mreq_LDADD) $(LIBS)
-
-ipc$(EXEEXT): $(ipc_OBJECTS) $(ipc_DEPENDENCIES) $(EXTRA_ipc_DEPENDENCIES) 
-	@rm -f ipc$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ipc_OBJECTS) $(ipc_LDADD) $(LIBS)
-
-ipc_msg$(EXEEXT): $(ipc_msg_OBJECTS) $(ipc_msg_DEPENDENCIES) $(EXTRA_ipc_msg_DEPENDENCIES) 
-	@rm -f ipc_msg$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ipc_msg_OBJECTS) $(ipc_msg_LDADD) $(LIBS)
-
-ipc_msgbuf$(EXEEXT): $(ipc_msgbuf_OBJECTS) $(ipc_msgbuf_DEPENDENCIES) $(EXTRA_ipc_msgbuf_DEPENDENCIES) 
-	@rm -f ipc_msgbuf$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ipc_msgbuf_OBJECTS) $(ipc_msgbuf_LDADD) $(LIBS)
-
-ipc_sem$(EXEEXT): $(ipc_sem_OBJECTS) $(ipc_sem_DEPENDENCIES) $(EXTRA_ipc_sem_DEPENDENCIES) 
-	@rm -f ipc_sem$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ipc_sem_OBJECTS) $(ipc_sem_LDADD) $(LIBS)
-
-ipc_shm$(EXEEXT): $(ipc_shm_OBJECTS) $(ipc_shm_DEPENDENCIES) $(EXTRA_ipc_shm_DEPENDENCIES) 
-	@rm -f ipc_shm$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ipc_shm_OBJECTS) $(ipc_shm_LDADD) $(LIBS)
-
-kcmp$(EXEEXT): $(kcmp_OBJECTS) $(kcmp_DEPENDENCIES) $(EXTRA_kcmp_DEPENDENCIES) 
-	@rm -f kcmp$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(kcmp_OBJECTS) $(kcmp_LDADD) $(LIBS)
-
-kexec_file_load$(EXEEXT): $(kexec_file_load_OBJECTS) $(kexec_file_load_DEPENDENCIES) $(EXTRA_kexec_file_load_DEPENDENCIES) 
-	@rm -f kexec_file_load$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(kexec_file_load_OBJECTS) $(kexec_file_load_LDADD) $(LIBS)
-
-kexec_load$(EXEEXT): $(kexec_load_OBJECTS) $(kexec_load_DEPENDENCIES) $(EXTRA_kexec_load_DEPENDENCIES) 
-	@rm -f kexec_load$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(kexec_load_OBJECTS) $(kexec_load_LDADD) $(LIBS)
-
-keyctl$(EXEEXT): $(keyctl_OBJECTS) $(keyctl_DEPENDENCIES) $(EXTRA_keyctl_DEPENDENCIES) 
-	@rm -f keyctl$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(keyctl_OBJECTS) $(keyctl_LDADD) $(LIBS)
-
-kill$(EXEEXT): $(kill_OBJECTS) $(kill_DEPENDENCIES) $(EXTRA_kill_DEPENDENCIES) 
-	@rm -f kill$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(kill_OBJECTS) $(kill_LDADD) $(LIBS)
-
-ksysent$(EXEEXT): $(ksysent_OBJECTS) $(ksysent_DEPENDENCIES) $(EXTRA_ksysent_DEPENDENCIES) 
-	@rm -f ksysent$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ksysent_OBJECTS) $(ksysent_LDADD) $(LIBS)
-
-lchown$(EXEEXT): $(lchown_OBJECTS) $(lchown_DEPENDENCIES) $(EXTRA_lchown_DEPENDENCIES) 
-	@rm -f lchown$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(lchown_OBJECTS) $(lchown_LDADD) $(LIBS)
-
-lchown32$(EXEEXT): $(lchown32_OBJECTS) $(lchown32_DEPENDENCIES) $(EXTRA_lchown32_DEPENDENCIES) 
-	@rm -f lchown32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(lchown32_OBJECTS) $(lchown32_LDADD) $(LIBS)
-
-link$(EXEEXT): $(link_OBJECTS) $(link_DEPENDENCIES) $(EXTRA_link_DEPENDENCIES) 
-	@rm -f link$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(link_OBJECTS) $(link_LDADD) $(LIBS)
-
-linkat$(EXEEXT): $(linkat_OBJECTS) $(linkat_DEPENDENCIES) $(EXTRA_linkat_DEPENDENCIES) 
-	@rm -f linkat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(linkat_OBJECTS) $(linkat_LDADD) $(LIBS)
-
-llseek$(EXEEXT): $(llseek_OBJECTS) $(llseek_DEPENDENCIES) $(EXTRA_llseek_DEPENDENCIES) 
-	@rm -f llseek$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(llseek_OBJECTS) $(llseek_LDADD) $(LIBS)
-
-lookup_dcookie$(EXEEXT): $(lookup_dcookie_OBJECTS) $(lookup_dcookie_DEPENDENCIES) $(EXTRA_lookup_dcookie_DEPENDENCIES) 
-	@rm -f lookup_dcookie$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(lookup_dcookie_OBJECTS) $(lookup_dcookie_LDADD) $(LIBS)
-
-lseek$(EXEEXT): $(lseek_OBJECTS) $(lseek_DEPENDENCIES) $(EXTRA_lseek_DEPENDENCIES) 
-	@rm -f lseek$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(lseek_OBJECTS) $(lseek_LDADD) $(LIBS)
-
-lstat$(EXEEXT): $(lstat_OBJECTS) $(lstat_DEPENDENCIES) $(EXTRA_lstat_DEPENDENCIES) 
-	@rm -f lstat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(lstat_OBJECTS) $(lstat_LDADD) $(LIBS)
-
-lstat64$(EXEEXT): $(lstat64_OBJECTS) $(lstat64_DEPENDENCIES) $(EXTRA_lstat64_DEPENDENCIES) 
-	@rm -f lstat64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(lstat64_OBJECTS) $(lstat64_LDADD) $(LIBS)
-
-madvise$(EXEEXT): $(madvise_OBJECTS) $(madvise_DEPENDENCIES) $(EXTRA_madvise_DEPENDENCIES) 
-	@rm -f madvise$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(madvise_OBJECTS) $(madvise_LDADD) $(LIBS)
-
-mbind$(EXEEXT): $(mbind_OBJECTS) $(mbind_DEPENDENCIES) $(EXTRA_mbind_DEPENDENCIES) 
-	@rm -f mbind$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mbind_OBJECTS) $(mbind_LDADD) $(LIBS)
-
-membarrier$(EXEEXT): $(membarrier_OBJECTS) $(membarrier_DEPENDENCIES) $(EXTRA_membarrier_DEPENDENCIES) 
-	@rm -f membarrier$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(membarrier_OBJECTS) $(membarrier_LDADD) $(LIBS)
-
-memfd_create$(EXEEXT): $(memfd_create_OBJECTS) $(memfd_create_DEPENDENCIES) $(EXTRA_memfd_create_DEPENDENCIES) 
-	@rm -f memfd_create$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(memfd_create_OBJECTS) $(memfd_create_LDADD) $(LIBS)
-
-migrate_pages$(EXEEXT): $(migrate_pages_OBJECTS) $(migrate_pages_DEPENDENCIES) $(EXTRA_migrate_pages_DEPENDENCIES) 
-	@rm -f migrate_pages$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(migrate_pages_OBJECTS) $(migrate_pages_LDADD) $(LIBS)
-
-mincore$(EXEEXT): $(mincore_OBJECTS) $(mincore_DEPENDENCIES) $(EXTRA_mincore_DEPENDENCIES) 
-	@rm -f mincore$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mincore_OBJECTS) $(mincore_LDADD) $(LIBS)
-
-mkdir$(EXEEXT): $(mkdir_OBJECTS) $(mkdir_DEPENDENCIES) $(EXTRA_mkdir_DEPENDENCIES) 
-	@rm -f mkdir$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mkdir_OBJECTS) $(mkdir_LDADD) $(LIBS)
-
-mkdirat$(EXEEXT): $(mkdirat_OBJECTS) $(mkdirat_DEPENDENCIES) $(EXTRA_mkdirat_DEPENDENCIES) 
-	@rm -f mkdirat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mkdirat_OBJECTS) $(mkdirat_LDADD) $(LIBS)
-
-mknod$(EXEEXT): $(mknod_OBJECTS) $(mknod_DEPENDENCIES) $(EXTRA_mknod_DEPENDENCIES) 
-	@rm -f mknod$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mknod_OBJECTS) $(mknod_LDADD) $(LIBS)
-
-mknodat$(EXEEXT): $(mknodat_OBJECTS) $(mknodat_DEPENDENCIES) $(EXTRA_mknodat_DEPENDENCIES) 
-	@rm -f mknodat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mknodat_OBJECTS) $(mknodat_LDADD) $(LIBS)
-
-mlock$(EXEEXT): $(mlock_OBJECTS) $(mlock_DEPENDENCIES) $(EXTRA_mlock_DEPENDENCIES) 
-	@rm -f mlock$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mlock_OBJECTS) $(mlock_LDADD) $(LIBS)
-
-mlock2$(EXEEXT): $(mlock2_OBJECTS) $(mlock2_DEPENDENCIES) $(EXTRA_mlock2_DEPENDENCIES) 
-	@rm -f mlock2$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mlock2_OBJECTS) $(mlock2_LDADD) $(LIBS)
-
-mlockall$(EXEEXT): $(mlockall_OBJECTS) $(mlockall_DEPENDENCIES) $(EXTRA_mlockall_DEPENDENCIES) 
-	@rm -f mlockall$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mlockall_OBJECTS) $(mlockall_LDADD) $(LIBS)
-
-mmap$(EXEEXT): $(mmap_OBJECTS) $(mmap_DEPENDENCIES) $(EXTRA_mmap_DEPENDENCIES) 
-	@rm -f mmap$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mmap_OBJECTS) $(mmap_LDADD) $(LIBS)
-
-mmap64$(EXEEXT): $(mmap64_OBJECTS) $(mmap64_DEPENDENCIES) $(EXTRA_mmap64_DEPENDENCIES) 
-	@rm -f mmap64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mmap64_OBJECTS) $(mmap64_LDADD) $(LIBS)
-
-mmsg$(EXEEXT): $(mmsg_OBJECTS) $(mmsg_DEPENDENCIES) $(EXTRA_mmsg_DEPENDENCIES) 
-	@rm -f mmsg$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mmsg_OBJECTS) $(mmsg_LDADD) $(LIBS)
-
-mmsg-silent$(EXEEXT): $(mmsg_silent_OBJECTS) $(mmsg_silent_DEPENDENCIES) $(EXTRA_mmsg_silent_DEPENDENCIES) 
-	@rm -f mmsg-silent$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mmsg_silent_OBJECTS) $(mmsg_silent_LDADD) $(LIBS)
-
-mmsg_name$(EXEEXT): $(mmsg_name_OBJECTS) $(mmsg_name_DEPENDENCIES) $(EXTRA_mmsg_name_DEPENDENCIES) 
-	@rm -f mmsg_name$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mmsg_name_OBJECTS) $(mmsg_name_LDADD) $(LIBS)
-
-mmsg_name-v$(EXEEXT): $(mmsg_name_v_OBJECTS) $(mmsg_name_v_DEPENDENCIES) $(EXTRA_mmsg_name_v_DEPENDENCIES) 
-	@rm -f mmsg_name-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mmsg_name_v_OBJECTS) $(mmsg_name_v_LDADD) $(LIBS)
-
-mount$(EXEEXT): $(mount_OBJECTS) $(mount_DEPENDENCIES) $(EXTRA_mount_DEPENDENCIES) 
-	@rm -f mount$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mount_OBJECTS) $(mount_LDADD) $(LIBS)
-
-move_pages$(EXEEXT): $(move_pages_OBJECTS) $(move_pages_DEPENDENCIES) $(EXTRA_move_pages_DEPENDENCIES) 
-	@rm -f move_pages$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(move_pages_OBJECTS) $(move_pages_LDADD) $(LIBS)
-
-mq$(EXEEXT): $(mq_OBJECTS) $(mq_DEPENDENCIES) $(EXTRA_mq_DEPENDENCIES) 
-	@rm -f mq$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mq_OBJECTS) $(mq_LDADD) $(LIBS)
-
-mq_sendrecv$(EXEEXT): $(mq_sendrecv_OBJECTS) $(mq_sendrecv_DEPENDENCIES) $(EXTRA_mq_sendrecv_DEPENDENCIES) 
-	@rm -f mq_sendrecv$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mq_sendrecv_OBJECTS) $(mq_sendrecv_LDADD) $(LIBS)
-
-mq_sendrecv-read$(EXEEXT): $(mq_sendrecv_read_OBJECTS) $(mq_sendrecv_read_DEPENDENCIES) $(EXTRA_mq_sendrecv_read_DEPENDENCIES) 
-	@rm -f mq_sendrecv-read$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mq_sendrecv_read_OBJECTS) $(mq_sendrecv_read_LDADD) $(LIBS)
-
-mq_sendrecv-write$(EXEEXT): $(mq_sendrecv_write_OBJECTS) $(mq_sendrecv_write_DEPENDENCIES) $(EXTRA_mq_sendrecv_write_DEPENDENCIES) 
-	@rm -f mq_sendrecv-write$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mq_sendrecv_write_OBJECTS) $(mq_sendrecv_write_LDADD) $(LIBS)
-
-msg_control$(EXEEXT): $(msg_control_OBJECTS) $(msg_control_DEPENDENCIES) $(EXTRA_msg_control_DEPENDENCIES) 
-	@rm -f msg_control$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(msg_control_OBJECTS) $(msg_control_LDADD) $(LIBS)
-
-msg_control-v$(EXEEXT): $(msg_control_v_OBJECTS) $(msg_control_v_DEPENDENCIES) $(EXTRA_msg_control_v_DEPENDENCIES) 
-	@rm -f msg_control-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(msg_control_v_OBJECTS) $(msg_control_v_LDADD) $(LIBS)
-
-msg_name$(EXEEXT): $(msg_name_OBJECTS) $(msg_name_DEPENDENCIES) $(EXTRA_msg_name_DEPENDENCIES) 
-	@rm -f msg_name$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(msg_name_OBJECTS) $(msg_name_LDADD) $(LIBS)
-
-munlockall$(EXEEXT): $(munlockall_OBJECTS) $(munlockall_DEPENDENCIES) $(EXTRA_munlockall_DEPENDENCIES) 
-	@rm -f munlockall$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(munlockall_OBJECTS) $(munlockall_LDADD) $(LIBS)
-
-nanosleep$(EXEEXT): $(nanosleep_OBJECTS) $(nanosleep_DEPENDENCIES) $(EXTRA_nanosleep_DEPENDENCIES) 
-	@rm -f nanosleep$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(nanosleep_OBJECTS) $(nanosleep_LDADD) $(LIBS)
-
-net-accept-connect$(EXEEXT): $(net_accept_connect_OBJECTS) $(net_accept_connect_DEPENDENCIES) $(EXTRA_net_accept_connect_DEPENDENCIES) 
-	@rm -f net-accept-connect$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(net_accept_connect_OBJECTS) $(net_accept_connect_LDADD) $(LIBS)
-
-net-icmp_filter$(EXEEXT): $(net_icmp_filter_OBJECTS) $(net_icmp_filter_DEPENDENCIES) $(EXTRA_net_icmp_filter_DEPENDENCIES) 
-	@rm -f net-icmp_filter$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(net_icmp_filter_OBJECTS) $(net_icmp_filter_LDADD) $(LIBS)
-
-net-sockaddr$(EXEEXT): $(net_sockaddr_OBJECTS) $(net_sockaddr_DEPENDENCIES) $(EXTRA_net_sockaddr_DEPENDENCIES) 
-	@rm -f net-sockaddr$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(net_sockaddr_OBJECTS) $(net_sockaddr_LDADD) $(LIBS)
-
-net-y-unix$(EXEEXT): $(net_y_unix_OBJECTS) $(net_y_unix_DEPENDENCIES) $(EXTRA_net_y_unix_DEPENDENCIES) 
-	@rm -f net-y-unix$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(net_y_unix_OBJECTS) $(net_y_unix_LDADD) $(LIBS)
-
-net-yy-inet$(EXEEXT): $(net_yy_inet_OBJECTS) $(net_yy_inet_DEPENDENCIES) $(EXTRA_net_yy_inet_DEPENDENCIES) 
-	@rm -f net-yy-inet$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(net_yy_inet_OBJECTS) $(net_yy_inet_LDADD) $(LIBS)
-
-net-yy-netlink$(EXEEXT): $(net_yy_netlink_OBJECTS) $(net_yy_netlink_DEPENDENCIES) $(EXTRA_net_yy_netlink_DEPENDENCIES) 
-	@rm -f net-yy-netlink$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(net_yy_netlink_OBJECTS) $(net_yy_netlink_LDADD) $(LIBS)
-
-net-yy-unix$(EXEEXT): $(net_yy_unix_OBJECTS) $(net_yy_unix_DEPENDENCIES) $(EXTRA_net_yy_unix_DEPENDENCIES) 
-	@rm -f net-yy-unix$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(net_yy_unix_OBJECTS) $(net_yy_unix_LDADD) $(LIBS)
-
-netlink_inet_diag$(EXEEXT): $(netlink_inet_diag_OBJECTS) $(netlink_inet_diag_DEPENDENCIES) $(EXTRA_netlink_inet_diag_DEPENDENCIES) 
-	@rm -f netlink_inet_diag$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(netlink_inet_diag_OBJECTS) $(netlink_inet_diag_LDADD) $(LIBS)
-
-netlink_netlink_diag$(EXEEXT): $(netlink_netlink_diag_OBJECTS) $(netlink_netlink_diag_DEPENDENCIES) $(EXTRA_netlink_netlink_diag_DEPENDENCIES) 
-	@rm -f netlink_netlink_diag$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(netlink_netlink_diag_OBJECTS) $(netlink_netlink_diag_LDADD) $(LIBS)
-
-netlink_protocol$(EXEEXT): $(netlink_protocol_OBJECTS) $(netlink_protocol_DEPENDENCIES) $(EXTRA_netlink_protocol_DEPENDENCIES) 
-	@rm -f netlink_protocol$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(netlink_protocol_OBJECTS) $(netlink_protocol_LDADD) $(LIBS)
-
-netlink_unix_diag$(EXEEXT): $(netlink_unix_diag_OBJECTS) $(netlink_unix_diag_DEPENDENCIES) $(EXTRA_netlink_unix_diag_DEPENDENCIES) 
-	@rm -f netlink_unix_diag$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(netlink_unix_diag_OBJECTS) $(netlink_unix_diag_LDADD) $(LIBS)
-
-newfstatat$(EXEEXT): $(newfstatat_OBJECTS) $(newfstatat_DEPENDENCIES) $(EXTRA_newfstatat_DEPENDENCIES) 
-	@rm -f newfstatat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(newfstatat_OBJECTS) $(newfstatat_LDADD) $(LIBS)
-
-nsyscalls$(EXEEXT): $(nsyscalls_OBJECTS) $(nsyscalls_DEPENDENCIES) $(EXTRA_nsyscalls_DEPENDENCIES) 
-	@rm -f nsyscalls$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(nsyscalls_OBJECTS) $(nsyscalls_LDADD) $(LIBS)
-
-old_mmap$(EXEEXT): $(old_mmap_OBJECTS) $(old_mmap_DEPENDENCIES) $(EXTRA_old_mmap_DEPENDENCIES) 
-	@rm -f old_mmap$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(old_mmap_OBJECTS) $(old_mmap_LDADD) $(LIBS)
-
-oldfstat$(EXEEXT): $(oldfstat_OBJECTS) $(oldfstat_DEPENDENCIES) $(EXTRA_oldfstat_DEPENDENCIES) 
-	@rm -f oldfstat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(oldfstat_OBJECTS) $(oldfstat_LDADD) $(LIBS)
-
-oldlstat$(EXEEXT): $(oldlstat_OBJECTS) $(oldlstat_DEPENDENCIES) $(EXTRA_oldlstat_DEPENDENCIES) 
-	@rm -f oldlstat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(oldlstat_OBJECTS) $(oldlstat_LDADD) $(LIBS)
-
-oldselect$(EXEEXT): $(oldselect_OBJECTS) $(oldselect_DEPENDENCIES) $(EXTRA_oldselect_DEPENDENCIES) 
-	@rm -f oldselect$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(oldselect_OBJECTS) $(oldselect_LDADD) $(LIBS)
-
-oldstat$(EXEEXT): $(oldstat_OBJECTS) $(oldstat_DEPENDENCIES) $(EXTRA_oldstat_DEPENDENCIES) 
-	@rm -f oldstat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(oldstat_OBJECTS) $(oldstat_LDADD) $(LIBS)
-
-open$(EXEEXT): $(open_OBJECTS) $(open_DEPENDENCIES) $(EXTRA_open_DEPENDENCIES) 
-	@rm -f open$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(open_OBJECTS) $(open_LDADD) $(LIBS)
-
-openat$(EXEEXT): $(openat_OBJECTS) $(openat_DEPENDENCIES) $(EXTRA_openat_DEPENDENCIES) 
-	@rm -f openat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(openat_OBJECTS) $(openat_LDADD) $(LIBS)
-
-osf_utimes$(EXEEXT): $(osf_utimes_OBJECTS) $(osf_utimes_DEPENDENCIES) $(EXTRA_osf_utimes_DEPENDENCIES) 
-	@rm -f osf_utimes$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(osf_utimes_OBJECTS) $(osf_utimes_LDADD) $(LIBS)
-
-pause$(EXEEXT): $(pause_OBJECTS) $(pause_DEPENDENCIES) $(EXTRA_pause_DEPENDENCIES) 
-	@rm -f pause$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(pause_OBJECTS) $(pause_LDADD) $(LIBS)
-
-pc$(EXEEXT): $(pc_OBJECTS) $(pc_DEPENDENCIES) $(EXTRA_pc_DEPENDENCIES) 
-	@rm -f pc$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(pc_OBJECTS) $(pc_LDADD) $(LIBS)
-
-perf_event_open$(EXEEXT): $(perf_event_open_OBJECTS) $(perf_event_open_DEPENDENCIES) $(EXTRA_perf_event_open_DEPENDENCIES) 
-	@rm -f perf_event_open$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(perf_event_open_OBJECTS) $(perf_event_open_LDADD) $(LIBS)
-
-perf_event_open_nonverbose$(EXEEXT): $(perf_event_open_nonverbose_OBJECTS) $(perf_event_open_nonverbose_DEPENDENCIES) $(EXTRA_perf_event_open_nonverbose_DEPENDENCIES) 
-	@rm -f perf_event_open_nonverbose$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(perf_event_open_nonverbose_OBJECTS) $(perf_event_open_nonverbose_LDADD) $(LIBS)
-
-perf_event_open_unabbrev$(EXEEXT): $(perf_event_open_unabbrev_OBJECTS) $(perf_event_open_unabbrev_DEPENDENCIES) $(EXTRA_perf_event_open_unabbrev_DEPENDENCIES) 
-	@rm -f perf_event_open_unabbrev$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(perf_event_open_unabbrev_OBJECTS) $(perf_event_open_unabbrev_LDADD) $(LIBS)
-
-personality$(EXEEXT): $(personality_OBJECTS) $(personality_DEPENDENCIES) $(EXTRA_personality_DEPENDENCIES) 
-	@rm -f personality$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(personality_OBJECTS) $(personality_LDADD) $(LIBS)
-
-pipe$(EXEEXT): $(pipe_OBJECTS) $(pipe_DEPENDENCIES) $(EXTRA_pipe_DEPENDENCIES) 
-	@rm -f pipe$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(pipe_OBJECTS) $(pipe_LDADD) $(LIBS)
-
-pipe2$(EXEEXT): $(pipe2_OBJECTS) $(pipe2_DEPENDENCIES) $(EXTRA_pipe2_DEPENDENCIES) 
-	@rm -f pipe2$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(pipe2_OBJECTS) $(pipe2_LDADD) $(LIBS)
-
-pkey_alloc$(EXEEXT): $(pkey_alloc_OBJECTS) $(pkey_alloc_DEPENDENCIES) $(EXTRA_pkey_alloc_DEPENDENCIES) 
-	@rm -f pkey_alloc$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(pkey_alloc_OBJECTS) $(pkey_alloc_LDADD) $(LIBS)
-
-pkey_free$(EXEEXT): $(pkey_free_OBJECTS) $(pkey_free_DEPENDENCIES) $(EXTRA_pkey_free_DEPENDENCIES) 
-	@rm -f pkey_free$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(pkey_free_OBJECTS) $(pkey_free_LDADD) $(LIBS)
-
-pkey_mprotect$(EXEEXT): $(pkey_mprotect_OBJECTS) $(pkey_mprotect_DEPENDENCIES) $(EXTRA_pkey_mprotect_DEPENDENCIES) 
-	@rm -f pkey_mprotect$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(pkey_mprotect_OBJECTS) $(pkey_mprotect_LDADD) $(LIBS)
-
-poll$(EXEEXT): $(poll_OBJECTS) $(poll_DEPENDENCIES) $(EXTRA_poll_DEPENDENCIES) 
-	@rm -f poll$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(poll_OBJECTS) $(poll_LDADD) $(LIBS)
-
-ppoll$(EXEEXT): $(ppoll_OBJECTS) $(ppoll_DEPENDENCIES) $(EXTRA_ppoll_DEPENDENCIES) 
-	@rm -f ppoll$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ppoll_OBJECTS) $(ppoll_LDADD) $(LIBS)
-
-ppoll-v$(EXEEXT): $(ppoll_v_OBJECTS) $(ppoll_v_DEPENDENCIES) $(EXTRA_ppoll_v_DEPENDENCIES) 
-	@rm -f ppoll-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ppoll_v_OBJECTS) $(ppoll_v_LDADD) $(LIBS)
-
-prctl-arg2-intptr$(EXEEXT): $(prctl_arg2_intptr_OBJECTS) $(prctl_arg2_intptr_DEPENDENCIES) $(EXTRA_prctl_arg2_intptr_DEPENDENCIES) 
-	@rm -f prctl-arg2-intptr$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prctl_arg2_intptr_OBJECTS) $(prctl_arg2_intptr_LDADD) $(LIBS)
-
-prctl-dumpable$(EXEEXT): $(prctl_dumpable_OBJECTS) $(prctl_dumpable_DEPENDENCIES) $(EXTRA_prctl_dumpable_DEPENDENCIES) 
-	@rm -f prctl-dumpable$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prctl_dumpable_OBJECTS) $(prctl_dumpable_LDADD) $(LIBS)
-
-prctl-name$(EXEEXT): $(prctl_name_OBJECTS) $(prctl_name_DEPENDENCIES) $(EXTRA_prctl_name_DEPENDENCIES) 
-	@rm -f prctl-name$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prctl_name_OBJECTS) $(prctl_name_LDADD) $(LIBS)
-
-prctl-no-args$(EXEEXT): $(prctl_no_args_OBJECTS) $(prctl_no_args_DEPENDENCIES) $(EXTRA_prctl_no_args_DEPENDENCIES) 
-	@rm -f prctl-no-args$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prctl_no_args_OBJECTS) $(prctl_no_args_LDADD) $(LIBS)
-
-prctl-pdeathsig$(EXEEXT): $(prctl_pdeathsig_OBJECTS) $(prctl_pdeathsig_DEPENDENCIES) $(EXTRA_prctl_pdeathsig_DEPENDENCIES) 
-	@rm -f prctl-pdeathsig$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prctl_pdeathsig_OBJECTS) $(prctl_pdeathsig_LDADD) $(LIBS)
-
-prctl-seccomp-filter-v$(EXEEXT): $(prctl_seccomp_filter_v_OBJECTS) $(prctl_seccomp_filter_v_DEPENDENCIES) $(EXTRA_prctl_seccomp_filter_v_DEPENDENCIES) 
-	@rm -f prctl-seccomp-filter-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prctl_seccomp_filter_v_OBJECTS) $(prctl_seccomp_filter_v_LDADD) $(LIBS)
-
-prctl-seccomp-strict$(EXEEXT): $(prctl_seccomp_strict_OBJECTS) $(prctl_seccomp_strict_DEPENDENCIES) $(EXTRA_prctl_seccomp_strict_DEPENDENCIES) 
-	@rm -f prctl-seccomp-strict$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prctl_seccomp_strict_OBJECTS) $(prctl_seccomp_strict_LDADD) $(LIBS)
-
-prctl-securebits$(EXEEXT): $(prctl_securebits_OBJECTS) $(prctl_securebits_DEPENDENCIES) $(EXTRA_prctl_securebits_DEPENDENCIES) 
-	@rm -f prctl-securebits$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prctl_securebits_OBJECTS) $(prctl_securebits_LDADD) $(LIBS)
-
-prctl-tid_address$(EXEEXT): $(prctl_tid_address_OBJECTS) $(prctl_tid_address_DEPENDENCIES) $(EXTRA_prctl_tid_address_DEPENDENCIES) 
-	@rm -f prctl-tid_address$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prctl_tid_address_OBJECTS) $(prctl_tid_address_LDADD) $(LIBS)
-
-prctl-tsc$(EXEEXT): $(prctl_tsc_OBJECTS) $(prctl_tsc_DEPENDENCIES) $(EXTRA_prctl_tsc_DEPENDENCIES) 
-	@rm -f prctl-tsc$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prctl_tsc_OBJECTS) $(prctl_tsc_LDADD) $(LIBS)
-
-pread64-pwrite64$(EXEEXT): $(pread64_pwrite64_OBJECTS) $(pread64_pwrite64_DEPENDENCIES) $(EXTRA_pread64_pwrite64_DEPENDENCIES) 
-	@rm -f pread64-pwrite64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(pread64_pwrite64_OBJECTS) $(pread64_pwrite64_LDADD) $(LIBS)
-
-preadv$(EXEEXT): $(preadv_OBJECTS) $(preadv_DEPENDENCIES) $(EXTRA_preadv_DEPENDENCIES) 
-	@rm -f preadv$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(preadv_OBJECTS) $(preadv_LDADD) $(LIBS)
-
-preadv-pwritev$(EXEEXT): $(preadv_pwritev_OBJECTS) $(preadv_pwritev_DEPENDENCIES) $(EXTRA_preadv_pwritev_DEPENDENCIES) 
-	@rm -f preadv-pwritev$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(preadv_pwritev_OBJECTS) $(preadv_pwritev_LDADD) $(LIBS)
-
-preadv2-pwritev2$(EXEEXT): $(preadv2_pwritev2_OBJECTS) $(preadv2_pwritev2_DEPENDENCIES) $(EXTRA_preadv2_pwritev2_DEPENDENCIES) 
-	@rm -f preadv2-pwritev2$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(preadv2_pwritev2_OBJECTS) $(preadv2_pwritev2_LDADD) $(LIBS)
-
-print_maxfd$(EXEEXT): $(print_maxfd_OBJECTS) $(print_maxfd_DEPENDENCIES) $(EXTRA_print_maxfd_DEPENDENCIES) 
-	@rm -f print_maxfd$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(print_maxfd_OBJECTS) $(print_maxfd_LDADD) $(LIBS)
-
-printstr$(EXEEXT): $(printstr_OBJECTS) $(printstr_DEPENDENCIES) $(EXTRA_printstr_DEPENDENCIES) 
-	@rm -f printstr$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(printstr_OBJECTS) $(printstr_LDADD) $(LIBS)
-
-prlimit64$(EXEEXT): $(prlimit64_OBJECTS) $(prlimit64_DEPENDENCIES) $(EXTRA_prlimit64_DEPENDENCIES) 
-	@rm -f prlimit64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prlimit64_OBJECTS) $(prlimit64_LDADD) $(LIBS)
-
-process_vm_readv$(EXEEXT): $(process_vm_readv_OBJECTS) $(process_vm_readv_DEPENDENCIES) $(EXTRA_process_vm_readv_DEPENDENCIES) 
-	@rm -f process_vm_readv$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(process_vm_readv_OBJECTS) $(process_vm_readv_LDADD) $(LIBS)
-
-process_vm_writev$(EXEEXT): $(process_vm_writev_OBJECTS) $(process_vm_writev_DEPENDENCIES) $(EXTRA_process_vm_writev_DEPENDENCIES) 
-	@rm -f process_vm_writev$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(process_vm_writev_OBJECTS) $(process_vm_writev_LDADD) $(LIBS)
-
-pselect6$(EXEEXT): $(pselect6_OBJECTS) $(pselect6_DEPENDENCIES) $(EXTRA_pselect6_DEPENDENCIES) 
-	@rm -f pselect6$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(pselect6_OBJECTS) $(pselect6_LDADD) $(LIBS)
-
-ptrace$(EXEEXT): $(ptrace_OBJECTS) $(ptrace_DEPENDENCIES) $(EXTRA_ptrace_DEPENDENCIES) 
-	@rm -f ptrace$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ptrace_OBJECTS) $(ptrace_LDADD) $(LIBS)
-
-pwritev$(EXEEXT): $(pwritev_OBJECTS) $(pwritev_DEPENDENCIES) $(EXTRA_pwritev_DEPENDENCIES) 
-	@rm -f pwritev$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(pwritev_OBJECTS) $(pwritev_LDADD) $(LIBS)
-
-qual_fault$(EXEEXT): $(qual_fault_OBJECTS) $(qual_fault_DEPENDENCIES) $(EXTRA_qual_fault_DEPENDENCIES) 
-	@rm -f qual_fault$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(qual_fault_OBJECTS) $(qual_fault_LDADD) $(LIBS)
-
-qual_inject-error-signal$(EXEEXT): $(qual_inject_error_signal_OBJECTS) $(qual_inject_error_signal_DEPENDENCIES) $(EXTRA_qual_inject_error_signal_DEPENDENCIES) 
-	@rm -f qual_inject-error-signal$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(qual_inject_error_signal_OBJECTS) $(qual_inject_error_signal_LDADD) $(LIBS)
-
-qual_inject-retval$(EXEEXT): $(qual_inject_retval_OBJECTS) $(qual_inject_retval_DEPENDENCIES) $(EXTRA_qual_inject_retval_DEPENDENCIES) 
-	@rm -f qual_inject-retval$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(qual_inject_retval_OBJECTS) $(qual_inject_retval_LDADD) $(LIBS)
-
-qual_inject-signal$(EXEEXT): $(qual_inject_signal_OBJECTS) $(qual_inject_signal_DEPENDENCIES) $(EXTRA_qual_inject_signal_DEPENDENCIES) 
-	@rm -f qual_inject-signal$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(qual_inject_signal_OBJECTS) $(qual_inject_signal_LDADD) $(LIBS)
-
-qual_signal$(EXEEXT): $(qual_signal_OBJECTS) $(qual_signal_DEPENDENCIES) $(EXTRA_qual_signal_DEPENDENCIES) 
-	@rm -f qual_signal$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(qual_signal_OBJECTS) $(qual_signal_LDADD) $(LIBS)
-
-quotactl$(EXEEXT): $(quotactl_OBJECTS) $(quotactl_DEPENDENCIES) $(EXTRA_quotactl_DEPENDENCIES) 
-	@rm -f quotactl$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(quotactl_OBJECTS) $(quotactl_LDADD) $(LIBS)
-
-quotactl-v$(EXEEXT): $(quotactl_v_OBJECTS) $(quotactl_v_DEPENDENCIES) $(EXTRA_quotactl_v_DEPENDENCIES) 
-	@rm -f quotactl-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(quotactl_v_OBJECTS) $(quotactl_v_LDADD) $(LIBS)
-
-quotactl-xfs$(EXEEXT): $(quotactl_xfs_OBJECTS) $(quotactl_xfs_DEPENDENCIES) $(EXTRA_quotactl_xfs_DEPENDENCIES) 
-	@rm -f quotactl-xfs$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(quotactl_xfs_OBJECTS) $(quotactl_xfs_LDADD) $(LIBS)
-
-quotactl-xfs-v$(EXEEXT): $(quotactl_xfs_v_OBJECTS) $(quotactl_xfs_v_DEPENDENCIES) $(EXTRA_quotactl_xfs_v_DEPENDENCIES) 
-	@rm -f quotactl-xfs-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(quotactl_xfs_v_OBJECTS) $(quotactl_xfs_v_LDADD) $(LIBS)
-
-read-write$(EXEEXT): $(read_write_OBJECTS) $(read_write_DEPENDENCIES) $(EXTRA_read_write_DEPENDENCIES) 
-	@rm -f read-write$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(read_write_OBJECTS) $(read_write_LDADD) $(LIBS)
-
-readahead$(EXEEXT): $(readahead_OBJECTS) $(readahead_DEPENDENCIES) $(EXTRA_readahead_DEPENDENCIES) 
-	@rm -f readahead$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(readahead_OBJECTS) $(readahead_LDADD) $(LIBS)
-
-readdir$(EXEEXT): $(readdir_OBJECTS) $(readdir_DEPENDENCIES) $(EXTRA_readdir_DEPENDENCIES) 
-	@rm -f readdir$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(readdir_OBJECTS) $(readdir_LDADD) $(LIBS)
-
-readlink$(EXEEXT): $(readlink_OBJECTS) $(readlink_DEPENDENCIES) $(EXTRA_readlink_DEPENDENCIES) 
-	@rm -f readlink$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(readlink_OBJECTS) $(readlink_LDADD) $(LIBS)
-
-readlinkat$(EXEEXT): $(readlinkat_OBJECTS) $(readlinkat_DEPENDENCIES) $(EXTRA_readlinkat_DEPENDENCIES) 
-	@rm -f readlinkat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(readlinkat_OBJECTS) $(readlinkat_LDADD) $(LIBS)
-
-readv$(EXEEXT): $(readv_OBJECTS) $(readv_DEPENDENCIES) $(EXTRA_readv_DEPENDENCIES) 
-	@rm -f readv$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(readv_OBJECTS) $(readv_LDADD) $(LIBS)
-
-reboot$(EXEEXT): $(reboot_OBJECTS) $(reboot_DEPENDENCIES) $(EXTRA_reboot_DEPENDENCIES) 
-	@rm -f reboot$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(reboot_OBJECTS) $(reboot_LDADD) $(LIBS)
-
-recvfrom$(EXEEXT): $(recvfrom_OBJECTS) $(recvfrom_DEPENDENCIES) $(EXTRA_recvfrom_DEPENDENCIES) 
-	@rm -f recvfrom$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(recvfrom_OBJECTS) $(recvfrom_LDADD) $(LIBS)
-
-recvmmsg-timeout$(EXEEXT): $(recvmmsg_timeout_OBJECTS) $(recvmmsg_timeout_DEPENDENCIES) $(EXTRA_recvmmsg_timeout_DEPENDENCIES) 
-	@rm -f recvmmsg-timeout$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(recvmmsg_timeout_OBJECTS) $(recvmmsg_timeout_LDADD) $(LIBS)
-
-recvmsg$(EXEEXT): $(recvmsg_OBJECTS) $(recvmsg_DEPENDENCIES) $(EXTRA_recvmsg_DEPENDENCIES) 
-	@rm -f recvmsg$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(recvmsg_OBJECTS) $(recvmsg_LDADD) $(LIBS)
-
-redirect-fds$(EXEEXT): $(redirect_fds_OBJECTS) $(redirect_fds_DEPENDENCIES) $(EXTRA_redirect_fds_DEPENDENCIES) 
-	@rm -f redirect-fds$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(redirect_fds_OBJECTS) $(redirect_fds_LDADD) $(LIBS)
-
-remap_file_pages$(EXEEXT): $(remap_file_pages_OBJECTS) $(remap_file_pages_DEPENDENCIES) $(EXTRA_remap_file_pages_DEPENDENCIES) 
-	@rm -f remap_file_pages$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(remap_file_pages_OBJECTS) $(remap_file_pages_LDADD) $(LIBS)
-
-rename$(EXEEXT): $(rename_OBJECTS) $(rename_DEPENDENCIES) $(EXTRA_rename_DEPENDENCIES) 
-	@rm -f rename$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(rename_OBJECTS) $(rename_LDADD) $(LIBS)
-
-renameat$(EXEEXT): $(renameat_OBJECTS) $(renameat_DEPENDENCIES) $(EXTRA_renameat_DEPENDENCIES) 
-	@rm -f renameat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(renameat_OBJECTS) $(renameat_LDADD) $(LIBS)
-
-renameat2$(EXEEXT): $(renameat2_OBJECTS) $(renameat2_DEPENDENCIES) $(EXTRA_renameat2_DEPENDENCIES) 
-	@rm -f renameat2$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(renameat2_OBJECTS) $(renameat2_LDADD) $(LIBS)
-
-request_key$(EXEEXT): $(request_key_OBJECTS) $(request_key_DEPENDENCIES) $(EXTRA_request_key_DEPENDENCIES) 
-	@rm -f request_key$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(request_key_OBJECTS) $(request_key_LDADD) $(LIBS)
-
-restart_syscall$(EXEEXT): $(restart_syscall_OBJECTS) $(restart_syscall_DEPENDENCIES) $(EXTRA_restart_syscall_DEPENDENCIES) 
-	@rm -f restart_syscall$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(restart_syscall_OBJECTS) $(restart_syscall_LDADD) $(LIBS)
-
-rmdir$(EXEEXT): $(rmdir_OBJECTS) $(rmdir_DEPENDENCIES) $(EXTRA_rmdir_DEPENDENCIES) 
-	@rm -f rmdir$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(rmdir_OBJECTS) $(rmdir_LDADD) $(LIBS)
-
-rt_sigpending$(EXEEXT): $(rt_sigpending_OBJECTS) $(rt_sigpending_DEPENDENCIES) $(EXTRA_rt_sigpending_DEPENDENCIES) 
-	@rm -f rt_sigpending$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(rt_sigpending_OBJECTS) $(rt_sigpending_LDADD) $(LIBS)
-
-rt_sigprocmask$(EXEEXT): $(rt_sigprocmask_OBJECTS) $(rt_sigprocmask_DEPENDENCIES) $(EXTRA_rt_sigprocmask_DEPENDENCIES) 
-	@rm -f rt_sigprocmask$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(rt_sigprocmask_OBJECTS) $(rt_sigprocmask_LDADD) $(LIBS)
-
-rt_sigqueueinfo$(EXEEXT): $(rt_sigqueueinfo_OBJECTS) $(rt_sigqueueinfo_DEPENDENCIES) $(EXTRA_rt_sigqueueinfo_DEPENDENCIES) 
-	@rm -f rt_sigqueueinfo$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(rt_sigqueueinfo_OBJECTS) $(rt_sigqueueinfo_LDADD) $(LIBS)
-
-rt_sigreturn$(EXEEXT): $(rt_sigreturn_OBJECTS) $(rt_sigreturn_DEPENDENCIES) $(EXTRA_rt_sigreturn_DEPENDENCIES) 
-	@rm -f rt_sigreturn$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(rt_sigreturn_OBJECTS) $(rt_sigreturn_LDADD) $(LIBS)
-
-rt_sigsuspend$(EXEEXT): $(rt_sigsuspend_OBJECTS) $(rt_sigsuspend_DEPENDENCIES) $(EXTRA_rt_sigsuspend_DEPENDENCIES) 
-	@rm -f rt_sigsuspend$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(rt_sigsuspend_OBJECTS) $(rt_sigsuspend_LDADD) $(LIBS)
-
-rt_sigtimedwait$(EXEEXT): $(rt_sigtimedwait_OBJECTS) $(rt_sigtimedwait_DEPENDENCIES) $(EXTRA_rt_sigtimedwait_DEPENDENCIES) 
-	@rm -f rt_sigtimedwait$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(rt_sigtimedwait_OBJECTS) $(rt_sigtimedwait_LDADD) $(LIBS)
-
-rt_tgsigqueueinfo$(EXEEXT): $(rt_tgsigqueueinfo_OBJECTS) $(rt_tgsigqueueinfo_DEPENDENCIES) $(EXTRA_rt_tgsigqueueinfo_DEPENDENCIES) 
-	@rm -f rt_tgsigqueueinfo$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(rt_tgsigqueueinfo_OBJECTS) $(rt_tgsigqueueinfo_LDADD) $(LIBS)
-
-sched_get_priority_mxx$(EXEEXT): $(sched_get_priority_mxx_OBJECTS) $(sched_get_priority_mxx_DEPENDENCIES) $(EXTRA_sched_get_priority_mxx_DEPENDENCIES) 
-	@rm -f sched_get_priority_mxx$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sched_get_priority_mxx_OBJECTS) $(sched_get_priority_mxx_LDADD) $(LIBS)
-
-sched_rr_get_interval$(EXEEXT): $(sched_rr_get_interval_OBJECTS) $(sched_rr_get_interval_DEPENDENCIES) $(EXTRA_sched_rr_get_interval_DEPENDENCIES) 
-	@rm -f sched_rr_get_interval$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sched_rr_get_interval_OBJECTS) $(sched_rr_get_interval_LDADD) $(LIBS)
-
-sched_xetaffinity$(EXEEXT): $(sched_xetaffinity_OBJECTS) $(sched_xetaffinity_DEPENDENCIES) $(EXTRA_sched_xetaffinity_DEPENDENCIES) 
-	@rm -f sched_xetaffinity$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sched_xetaffinity_OBJECTS) $(sched_xetaffinity_LDADD) $(LIBS)
-
-sched_xetattr$(EXEEXT): $(sched_xetattr_OBJECTS) $(sched_xetattr_DEPENDENCIES) $(EXTRA_sched_xetattr_DEPENDENCIES) 
-	@rm -f sched_xetattr$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sched_xetattr_OBJECTS) $(sched_xetattr_LDADD) $(LIBS)
-
-sched_xetparam$(EXEEXT): $(sched_xetparam_OBJECTS) $(sched_xetparam_DEPENDENCIES) $(EXTRA_sched_xetparam_DEPENDENCIES) 
-	@rm -f sched_xetparam$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sched_xetparam_OBJECTS) $(sched_xetparam_LDADD) $(LIBS)
-
-sched_xetscheduler$(EXEEXT): $(sched_xetscheduler_OBJECTS) $(sched_xetscheduler_DEPENDENCIES) $(EXTRA_sched_xetscheduler_DEPENDENCIES) 
-	@rm -f sched_xetscheduler$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sched_xetscheduler_OBJECTS) $(sched_xetscheduler_LDADD) $(LIBS)
-
-sched_yield$(EXEEXT): $(sched_yield_OBJECTS) $(sched_yield_DEPENDENCIES) $(EXTRA_sched_yield_DEPENDENCIES) 
-	@rm -f sched_yield$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sched_yield_OBJECTS) $(sched_yield_LDADD) $(LIBS)
-
-scm_rights$(EXEEXT): $(scm_rights_OBJECTS) $(scm_rights_DEPENDENCIES) $(EXTRA_scm_rights_DEPENDENCIES) 
-	@rm -f scm_rights$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(scm_rights_OBJECTS) $(scm_rights_LDADD) $(LIBS)
-
-seccomp-filter$(EXEEXT): $(seccomp_filter_OBJECTS) $(seccomp_filter_DEPENDENCIES) $(EXTRA_seccomp_filter_DEPENDENCIES) 
-	@rm -f seccomp-filter$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(seccomp_filter_OBJECTS) $(seccomp_filter_LDADD) $(LIBS)
-
-seccomp-filter-v$(EXEEXT): $(seccomp_filter_v_OBJECTS) $(seccomp_filter_v_DEPENDENCIES) $(EXTRA_seccomp_filter_v_DEPENDENCIES) 
-	@rm -f seccomp-filter-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(seccomp_filter_v_OBJECTS) $(seccomp_filter_v_LDADD) $(LIBS)
-
-seccomp-strict$(EXEEXT): $(seccomp_strict_OBJECTS) $(seccomp_strict_DEPENDENCIES) $(EXTRA_seccomp_strict_DEPENDENCIES) 
-	@rm -f seccomp-strict$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(seccomp_strict_OBJECTS) $(seccomp_strict_LDADD) $(LIBS)
-
-select$(EXEEXT): $(select_OBJECTS) $(select_DEPENDENCIES) $(EXTRA_select_DEPENDENCIES) 
-	@rm -f select$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(select_OBJECTS) $(select_LDADD) $(LIBS)
-
-semop$(EXEEXT): $(semop_OBJECTS) $(semop_DEPENDENCIES) $(EXTRA_semop_DEPENDENCIES) 
-	@rm -f semop$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(semop_OBJECTS) $(semop_LDADD) $(LIBS)
-
-sendfile$(EXEEXT): $(sendfile_OBJECTS) $(sendfile_DEPENDENCIES) $(EXTRA_sendfile_DEPENDENCIES) 
-	@rm -f sendfile$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sendfile_OBJECTS) $(sendfile_LDADD) $(LIBS)
-
-sendfile64$(EXEEXT): $(sendfile64_OBJECTS) $(sendfile64_DEPENDENCIES) $(EXTRA_sendfile64_DEPENDENCIES) 
-	@rm -f sendfile64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sendfile64_OBJECTS) $(sendfile64_LDADD) $(LIBS)
-
-set_mempolicy$(EXEEXT): $(set_mempolicy_OBJECTS) $(set_mempolicy_DEPENDENCIES) $(EXTRA_set_mempolicy_DEPENDENCIES) 
-	@rm -f set_mempolicy$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(set_mempolicy_OBJECTS) $(set_mempolicy_LDADD) $(LIBS)
-
-set_ptracer_any$(EXEEXT): $(set_ptracer_any_OBJECTS) $(set_ptracer_any_DEPENDENCIES) $(EXTRA_set_ptracer_any_DEPENDENCIES) 
-	@rm -f set_ptracer_any$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(set_ptracer_any_OBJECTS) $(set_ptracer_any_LDADD) $(LIBS)
-
-setdomainname$(EXEEXT): $(setdomainname_OBJECTS) $(setdomainname_DEPENDENCIES) $(EXTRA_setdomainname_DEPENDENCIES) 
-	@rm -f setdomainname$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setdomainname_OBJECTS) $(setdomainname_LDADD) $(LIBS)
-
-setfsgid$(EXEEXT): $(setfsgid_OBJECTS) $(setfsgid_DEPENDENCIES) $(EXTRA_setfsgid_DEPENDENCIES) 
-	@rm -f setfsgid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setfsgid_OBJECTS) $(setfsgid_LDADD) $(LIBS)
-
-setfsgid32$(EXEEXT): $(setfsgid32_OBJECTS) $(setfsgid32_DEPENDENCIES) $(EXTRA_setfsgid32_DEPENDENCIES) 
-	@rm -f setfsgid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setfsgid32_OBJECTS) $(setfsgid32_LDADD) $(LIBS)
-
-setfsuid$(EXEEXT): $(setfsuid_OBJECTS) $(setfsuid_DEPENDENCIES) $(EXTRA_setfsuid_DEPENDENCIES) 
-	@rm -f setfsuid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setfsuid_OBJECTS) $(setfsuid_LDADD) $(LIBS)
-
-setfsuid32$(EXEEXT): $(setfsuid32_OBJECTS) $(setfsuid32_DEPENDENCIES) $(EXTRA_setfsuid32_DEPENDENCIES) 
-	@rm -f setfsuid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setfsuid32_OBJECTS) $(setfsuid32_LDADD) $(LIBS)
-
-setgid$(EXEEXT): $(setgid_OBJECTS) $(setgid_DEPENDENCIES) $(EXTRA_setgid_DEPENDENCIES) 
-	@rm -f setgid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setgid_OBJECTS) $(setgid_LDADD) $(LIBS)
-
-setgid32$(EXEEXT): $(setgid32_OBJECTS) $(setgid32_DEPENDENCIES) $(EXTRA_setgid32_DEPENDENCIES) 
-	@rm -f setgid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setgid32_OBJECTS) $(setgid32_LDADD) $(LIBS)
-
-setgroups$(EXEEXT): $(setgroups_OBJECTS) $(setgroups_DEPENDENCIES) $(EXTRA_setgroups_DEPENDENCIES) 
-	@rm -f setgroups$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setgroups_OBJECTS) $(setgroups_LDADD) $(LIBS)
-
-setgroups32$(EXEEXT): $(setgroups32_OBJECTS) $(setgroups32_DEPENDENCIES) $(EXTRA_setgroups32_DEPENDENCIES) 
-	@rm -f setgroups32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setgroups32_OBJECTS) $(setgroups32_LDADD) $(LIBS)
-
-sethostname$(EXEEXT): $(sethostname_OBJECTS) $(sethostname_DEPENDENCIES) $(EXTRA_sethostname_DEPENDENCIES) 
-	@rm -f sethostname$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sethostname_OBJECTS) $(sethostname_LDADD) $(LIBS)
-
-setns$(EXEEXT): $(setns_OBJECTS) $(setns_DEPENDENCIES) $(EXTRA_setns_DEPENDENCIES) 
-	@rm -f setns$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setns_OBJECTS) $(setns_LDADD) $(LIBS)
-
-setregid$(EXEEXT): $(setregid_OBJECTS) $(setregid_DEPENDENCIES) $(EXTRA_setregid_DEPENDENCIES) 
-	@rm -f setregid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setregid_OBJECTS) $(setregid_LDADD) $(LIBS)
-
-setregid32$(EXEEXT): $(setregid32_OBJECTS) $(setregid32_DEPENDENCIES) $(EXTRA_setregid32_DEPENDENCIES) 
-	@rm -f setregid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setregid32_OBJECTS) $(setregid32_LDADD) $(LIBS)
-
-setresgid$(EXEEXT): $(setresgid_OBJECTS) $(setresgid_DEPENDENCIES) $(EXTRA_setresgid_DEPENDENCIES) 
-	@rm -f setresgid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setresgid_OBJECTS) $(setresgid_LDADD) $(LIBS)
-
-setresgid32$(EXEEXT): $(setresgid32_OBJECTS) $(setresgid32_DEPENDENCIES) $(EXTRA_setresgid32_DEPENDENCIES) 
-	@rm -f setresgid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setresgid32_OBJECTS) $(setresgid32_LDADD) $(LIBS)
-
-setresuid$(EXEEXT): $(setresuid_OBJECTS) $(setresuid_DEPENDENCIES) $(EXTRA_setresuid_DEPENDENCIES) 
-	@rm -f setresuid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setresuid_OBJECTS) $(setresuid_LDADD) $(LIBS)
-
-setresuid32$(EXEEXT): $(setresuid32_OBJECTS) $(setresuid32_DEPENDENCIES) $(EXTRA_setresuid32_DEPENDENCIES) 
-	@rm -f setresuid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setresuid32_OBJECTS) $(setresuid32_LDADD) $(LIBS)
-
-setreuid$(EXEEXT): $(setreuid_OBJECTS) $(setreuid_DEPENDENCIES) $(EXTRA_setreuid_DEPENDENCIES) 
-	@rm -f setreuid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setreuid_OBJECTS) $(setreuid_LDADD) $(LIBS)
-
-setreuid32$(EXEEXT): $(setreuid32_OBJECTS) $(setreuid32_DEPENDENCIES) $(EXTRA_setreuid32_DEPENDENCIES) 
-	@rm -f setreuid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setreuid32_OBJECTS) $(setreuid32_LDADD) $(LIBS)
-
-setrlimit$(EXEEXT): $(setrlimit_OBJECTS) $(setrlimit_DEPENDENCIES) $(EXTRA_setrlimit_DEPENDENCIES) 
-	@rm -f setrlimit$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setrlimit_OBJECTS) $(setrlimit_LDADD) $(LIBS)
-
-setuid$(EXEEXT): $(setuid_OBJECTS) $(setuid_DEPENDENCIES) $(EXTRA_setuid_DEPENDENCIES) 
-	@rm -f setuid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setuid_OBJECTS) $(setuid_LDADD) $(LIBS)
-
-setuid32$(EXEEXT): $(setuid32_OBJECTS) $(setuid32_DEPENDENCIES) $(EXTRA_setuid32_DEPENDENCIES) 
-	@rm -f setuid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setuid32_OBJECTS) $(setuid32_LDADD) $(LIBS)
-
-shmxt$(EXEEXT): $(shmxt_OBJECTS) $(shmxt_DEPENDENCIES) $(EXTRA_shmxt_DEPENDENCIES) 
-	@rm -f shmxt$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(shmxt_OBJECTS) $(shmxt_LDADD) $(LIBS)
-
-shutdown$(EXEEXT): $(shutdown_OBJECTS) $(shutdown_DEPENDENCIES) $(EXTRA_shutdown_DEPENDENCIES) 
-	@rm -f shutdown$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(shutdown_OBJECTS) $(shutdown_LDADD) $(LIBS)
-
-sigaction$(EXEEXT): $(sigaction_OBJECTS) $(sigaction_DEPENDENCIES) $(EXTRA_sigaction_DEPENDENCIES) 
-	@rm -f sigaction$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sigaction_OBJECTS) $(sigaction_LDADD) $(LIBS)
-
-sigaltstack$(EXEEXT): $(sigaltstack_OBJECTS) $(sigaltstack_DEPENDENCIES) $(EXTRA_sigaltstack_DEPENDENCIES) 
-	@rm -f sigaltstack$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sigaltstack_OBJECTS) $(sigaltstack_LDADD) $(LIBS)
-
-siginfo$(EXEEXT): $(siginfo_OBJECTS) $(siginfo_DEPENDENCIES) $(EXTRA_siginfo_DEPENDENCIES) 
-	@rm -f siginfo$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(siginfo_OBJECTS) $(siginfo_LDADD) $(LIBS)
-
-signal_receive$(EXEEXT): $(signal_receive_OBJECTS) $(signal_receive_DEPENDENCIES) $(EXTRA_signal_receive_DEPENDENCIES) 
-	@rm -f signal_receive$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(signal_receive_OBJECTS) $(signal_receive_LDADD) $(LIBS)
-
-signalfd4$(EXEEXT): $(signalfd4_OBJECTS) $(signalfd4_DEPENDENCIES) $(EXTRA_signalfd4_DEPENDENCIES) 
-	@rm -f signalfd4$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(signalfd4_OBJECTS) $(signalfd4_LDADD) $(LIBS)
-
-sigreturn$(EXEEXT): $(sigreturn_OBJECTS) $(sigreturn_DEPENDENCIES) $(EXTRA_sigreturn_DEPENDENCIES) 
-	@rm -f sigreturn$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sigreturn_OBJECTS) $(sigreturn_LDADD) $(LIBS)
-
-sigsuspend$(EXEEXT): $(sigsuspend_OBJECTS) $(sigsuspend_DEPENDENCIES) $(EXTRA_sigsuspend_DEPENDENCIES) 
-	@rm -f sigsuspend$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sigsuspend_OBJECTS) $(sigsuspend_LDADD) $(LIBS)
-
-sleep$(EXEEXT): $(sleep_OBJECTS) $(sleep_DEPENDENCIES) $(EXTRA_sleep_DEPENDENCIES) 
-	@rm -f sleep$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sleep_OBJECTS) $(sleep_LDADD) $(LIBS)
-
-socketcall$(EXEEXT): $(socketcall_OBJECTS) $(socketcall_DEPENDENCIES) $(EXTRA_socketcall_DEPENDENCIES) 
-	@rm -f socketcall$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(socketcall_OBJECTS) $(socketcall_LDADD) $(LIBS)
-
-splice$(EXEEXT): $(splice_OBJECTS) $(splice_DEPENDENCIES) $(EXTRA_splice_DEPENDENCIES) 
-	@rm -f splice$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(splice_OBJECTS) $(splice_LDADD) $(LIBS)
-
-stack-fcall$(EXEEXT): $(stack_fcall_OBJECTS) $(stack_fcall_DEPENDENCIES) $(EXTRA_stack_fcall_DEPENDENCIES) 
-	@rm -f stack-fcall$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(stack_fcall_OBJECTS) $(stack_fcall_LDADD) $(LIBS)
-
-stat$(EXEEXT): $(stat_OBJECTS) $(stat_DEPENDENCIES) $(EXTRA_stat_DEPENDENCIES) 
-	@rm -f stat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(stat_OBJECTS) $(stat_LDADD) $(LIBS)
-
-stat64$(EXEEXT): $(stat64_OBJECTS) $(stat64_DEPENDENCIES) $(EXTRA_stat64_DEPENDENCIES) 
-	@rm -f stat64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(stat64_OBJECTS) $(stat64_LDADD) $(LIBS)
-
-statfs$(EXEEXT): $(statfs_OBJECTS) $(statfs_DEPENDENCIES) $(EXTRA_statfs_DEPENDENCIES) 
-	@rm -f statfs$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(statfs_OBJECTS) $(statfs_LDADD) $(LIBS)
-
-statfs64$(EXEEXT): $(statfs64_OBJECTS) $(statfs64_DEPENDENCIES) $(EXTRA_statfs64_DEPENDENCIES) 
-	@rm -f statfs64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(statfs64_OBJECTS) $(statfs64_LDADD) $(LIBS)
-
-statx$(EXEEXT): $(statx_OBJECTS) $(statx_DEPENDENCIES) $(EXTRA_statx_DEPENDENCIES) 
-	@rm -f statx$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(statx_OBJECTS) $(statx_LDADD) $(LIBS)
-
-swap$(EXEEXT): $(swap_OBJECTS) $(swap_DEPENDENCIES) $(EXTRA_swap_DEPENDENCIES) 
-	@rm -f swap$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(swap_OBJECTS) $(swap_LDADD) $(LIBS)
-
-sxetmask$(EXEEXT): $(sxetmask_OBJECTS) $(sxetmask_DEPENDENCIES) $(EXTRA_sxetmask_DEPENDENCIES) 
-	@rm -f sxetmask$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sxetmask_OBJECTS) $(sxetmask_LDADD) $(LIBS)
-
-symlink$(EXEEXT): $(symlink_OBJECTS) $(symlink_DEPENDENCIES) $(EXTRA_symlink_DEPENDENCIES) 
-	@rm -f symlink$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(symlink_OBJECTS) $(symlink_LDADD) $(LIBS)
-
-symlinkat$(EXEEXT): $(symlinkat_OBJECTS) $(symlinkat_DEPENDENCIES) $(EXTRA_symlinkat_DEPENDENCIES) 
-	@rm -f symlinkat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(symlinkat_OBJECTS) $(symlinkat_LDADD) $(LIBS)
-
-sync$(EXEEXT): $(sync_OBJECTS) $(sync_DEPENDENCIES) $(EXTRA_sync_DEPENDENCIES) 
-	@rm -f sync$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sync_OBJECTS) $(sync_LDADD) $(LIBS)
-
-sync_file_range$(EXEEXT): $(sync_file_range_OBJECTS) $(sync_file_range_DEPENDENCIES) $(EXTRA_sync_file_range_DEPENDENCIES) 
-	@rm -f sync_file_range$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sync_file_range_OBJECTS) $(sync_file_range_LDADD) $(LIBS)
-
-sync_file_range2$(EXEEXT): $(sync_file_range2_OBJECTS) $(sync_file_range2_DEPENDENCIES) $(EXTRA_sync_file_range2_DEPENDENCIES) 
-	@rm -f sync_file_range2$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sync_file_range2_OBJECTS) $(sync_file_range2_LDADD) $(LIBS)
-
-sysinfo$(EXEEXT): $(sysinfo_OBJECTS) $(sysinfo_DEPENDENCIES) $(EXTRA_sysinfo_DEPENDENCIES) 
-	@rm -f sysinfo$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sysinfo_OBJECTS) $(sysinfo_LDADD) $(LIBS)
-
-syslog$(EXEEXT): $(syslog_OBJECTS) $(syslog_DEPENDENCIES) $(EXTRA_syslog_DEPENDENCIES) 
-	@rm -f syslog$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(syslog_OBJECTS) $(syslog_LDADD) $(LIBS)
-
-tee$(EXEEXT): $(tee_OBJECTS) $(tee_DEPENDENCIES) $(EXTRA_tee_DEPENDENCIES) 
-	@rm -f tee$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(tee_OBJECTS) $(tee_LDADD) $(LIBS)
-
-threads-execve$(EXEEXT): $(threads_execve_OBJECTS) $(threads_execve_DEPENDENCIES) $(EXTRA_threads_execve_DEPENDENCIES) 
-	@rm -f threads-execve$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(threads_execve_OBJECTS) $(threads_execve_LDADD) $(LIBS)
-
-time$(EXEEXT): $(time_OBJECTS) $(time_DEPENDENCIES) $(EXTRA_time_DEPENDENCIES) 
-	@rm -f time$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(time_OBJECTS) $(time_LDADD) $(LIBS)
-
-timer_create$(EXEEXT): $(timer_create_OBJECTS) $(timer_create_DEPENDENCIES) $(EXTRA_timer_create_DEPENDENCIES) 
-	@rm -f timer_create$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(timer_create_OBJECTS) $(timer_create_LDADD) $(LIBS)
-
-timer_xettime$(EXEEXT): $(timer_xettime_OBJECTS) $(timer_xettime_DEPENDENCIES) $(EXTRA_timer_xettime_DEPENDENCIES) 
-	@rm -f timer_xettime$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(timer_xettime_OBJECTS) $(timer_xettime_LDADD) $(LIBS)
-
-timerfd_xettime$(EXEEXT): $(timerfd_xettime_OBJECTS) $(timerfd_xettime_DEPENDENCIES) $(EXTRA_timerfd_xettime_DEPENDENCIES) 
-	@rm -f timerfd_xettime$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(timerfd_xettime_OBJECTS) $(timerfd_xettime_LDADD) $(LIBS)
-
-times$(EXEEXT): $(times_OBJECTS) $(times_DEPENDENCIES) $(EXTRA_times_DEPENDENCIES) 
-	@rm -f times$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(times_OBJECTS) $(times_LDADD) $(LIBS)
-
-times-fail$(EXEEXT): $(times_fail_OBJECTS) $(times_fail_DEPENDENCIES) $(EXTRA_times_fail_DEPENDENCIES) 
-	@rm -f times-fail$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(times_fail_OBJECTS) $(times_fail_LDADD) $(LIBS)
-
-truncate$(EXEEXT): $(truncate_OBJECTS) $(truncate_DEPENDENCIES) $(EXTRA_truncate_DEPENDENCIES) 
-	@rm -f truncate$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(truncate_OBJECTS) $(truncate_LDADD) $(LIBS)
-
-truncate64$(EXEEXT): $(truncate64_OBJECTS) $(truncate64_DEPENDENCIES) $(EXTRA_truncate64_DEPENDENCIES) 
-	@rm -f truncate64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(truncate64_OBJECTS) $(truncate64_LDADD) $(LIBS)
-
-ugetrlimit$(EXEEXT): $(ugetrlimit_OBJECTS) $(ugetrlimit_DEPENDENCIES) $(EXTRA_ugetrlimit_DEPENDENCIES) 
-	@rm -f ugetrlimit$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ugetrlimit_OBJECTS) $(ugetrlimit_LDADD) $(LIBS)
-
-uio$(EXEEXT): $(uio_OBJECTS) $(uio_DEPENDENCIES) $(EXTRA_uio_DEPENDENCIES) 
-	@rm -f uio$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(uio_OBJECTS) $(uio_LDADD) $(LIBS)
-
-umask$(EXEEXT): $(umask_OBJECTS) $(umask_DEPENDENCIES) $(EXTRA_umask_DEPENDENCIES) 
-	@rm -f umask$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(umask_OBJECTS) $(umask_LDADD) $(LIBS)
-
-umount$(EXEEXT): $(umount_OBJECTS) $(umount_DEPENDENCIES) $(EXTRA_umount_DEPENDENCIES) 
-	@rm -f umount$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(umount_OBJECTS) $(umount_LDADD) $(LIBS)
-
-umount2$(EXEEXT): $(umount2_OBJECTS) $(umount2_DEPENDENCIES) $(EXTRA_umount2_DEPENDENCIES) 
-	@rm -f umount2$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(umount2_OBJECTS) $(umount2_LDADD) $(LIBS)
-
-umoven-illptr$(EXEEXT): $(umoven_illptr_OBJECTS) $(umoven_illptr_DEPENDENCIES) $(EXTRA_umoven_illptr_DEPENDENCIES) 
-	@rm -f umoven-illptr$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(umoven_illptr_OBJECTS) $(umoven_illptr_LDADD) $(LIBS)
-
-umovestr$(EXEEXT): $(umovestr_OBJECTS) $(umovestr_DEPENDENCIES) $(EXTRA_umovestr_DEPENDENCIES) 
-	@rm -f umovestr$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(umovestr_OBJECTS) $(umovestr_LDADD) $(LIBS)
-
-umovestr-illptr$(EXEEXT): $(umovestr_illptr_OBJECTS) $(umovestr_illptr_DEPENDENCIES) $(EXTRA_umovestr_illptr_DEPENDENCIES) 
-	@rm -f umovestr-illptr$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(umovestr_illptr_OBJECTS) $(umovestr_illptr_LDADD) $(LIBS)
-
-umovestr2$(EXEEXT): $(umovestr2_OBJECTS) $(umovestr2_DEPENDENCIES) $(EXTRA_umovestr2_DEPENDENCIES) 
-	@rm -f umovestr2$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(umovestr2_OBJECTS) $(umovestr2_LDADD) $(LIBS)
-
-umovestr3$(EXEEXT): $(umovestr3_OBJECTS) $(umovestr3_DEPENDENCIES) $(EXTRA_umovestr3_DEPENDENCIES) 
-	@rm -f umovestr3$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(umovestr3_OBJECTS) $(umovestr3_LDADD) $(LIBS)
-
-uname$(EXEEXT): $(uname_OBJECTS) $(uname_DEPENDENCIES) $(EXTRA_uname_DEPENDENCIES) 
-	@rm -f uname$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(uname_OBJECTS) $(uname_LDADD) $(LIBS)
-
-unix-pair-send-recv$(EXEEXT): $(unix_pair_send_recv_OBJECTS) $(unix_pair_send_recv_DEPENDENCIES) $(EXTRA_unix_pair_send_recv_DEPENDENCIES) 
-	@rm -f unix-pair-send-recv$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(unix_pair_send_recv_OBJECTS) $(unix_pair_send_recv_LDADD) $(LIBS)
-
-unix-pair-sendto-recvfrom$(EXEEXT): $(unix_pair_sendto_recvfrom_OBJECTS) $(unix_pair_sendto_recvfrom_DEPENDENCIES) $(EXTRA_unix_pair_sendto_recvfrom_DEPENDENCIES) 
-	@rm -f unix-pair-sendto-recvfrom$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(unix_pair_sendto_recvfrom_OBJECTS) $(unix_pair_sendto_recvfrom_LDADD) $(LIBS)
-
-unlink$(EXEEXT): $(unlink_OBJECTS) $(unlink_DEPENDENCIES) $(EXTRA_unlink_DEPENDENCIES) 
-	@rm -f unlink$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(unlink_OBJECTS) $(unlink_LDADD) $(LIBS)
-
-unlinkat$(EXEEXT): $(unlinkat_OBJECTS) $(unlinkat_DEPENDENCIES) $(EXTRA_unlinkat_DEPENDENCIES) 
-	@rm -f unlinkat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(unlinkat_OBJECTS) $(unlinkat_LDADD) $(LIBS)
-
-unshare$(EXEEXT): $(unshare_OBJECTS) $(unshare_DEPENDENCIES) $(EXTRA_unshare_DEPENDENCIES) 
-	@rm -f unshare$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(unshare_OBJECTS) $(unshare_LDADD) $(LIBS)
-
-userfaultfd$(EXEEXT): $(userfaultfd_OBJECTS) $(userfaultfd_DEPENDENCIES) $(EXTRA_userfaultfd_DEPENDENCIES) 
-	@rm -f userfaultfd$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(userfaultfd_OBJECTS) $(userfaultfd_LDADD) $(LIBS)
-
-ustat$(EXEEXT): $(ustat_OBJECTS) $(ustat_DEPENDENCIES) $(EXTRA_ustat_DEPENDENCIES) 
-	@rm -f ustat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ustat_OBJECTS) $(ustat_LDADD) $(LIBS)
-
-utime$(EXEEXT): $(utime_OBJECTS) $(utime_DEPENDENCIES) $(EXTRA_utime_DEPENDENCIES) 
-	@rm -f utime$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(utime_OBJECTS) $(utime_LDADD) $(LIBS)
-
-utimensat$(EXEEXT): $(utimensat_OBJECTS) $(utimensat_DEPENDENCIES) $(EXTRA_utimensat_DEPENDENCIES) 
-	@rm -f utimensat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(utimensat_OBJECTS) $(utimensat_LDADD) $(LIBS)
-
-utimes$(EXEEXT): $(utimes_OBJECTS) $(utimes_DEPENDENCIES) $(EXTRA_utimes_DEPENDENCIES) 
-	@rm -f utimes$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(utimes_OBJECTS) $(utimes_LDADD) $(LIBS)
-
-vfork-f$(EXEEXT): $(vfork_f_OBJECTS) $(vfork_f_DEPENDENCIES) $(EXTRA_vfork_f_DEPENDENCIES) 
-	@rm -f vfork-f$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(vfork_f_OBJECTS) $(vfork_f_LDADD) $(LIBS)
-
-vhangup$(EXEEXT): $(vhangup_OBJECTS) $(vhangup_DEPENDENCIES) $(EXTRA_vhangup_DEPENDENCIES) 
-	@rm -f vhangup$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(vhangup_OBJECTS) $(vhangup_LDADD) $(LIBS)
-
-vmsplice$(EXEEXT): $(vmsplice_OBJECTS) $(vmsplice_DEPENDENCIES) $(EXTRA_vmsplice_DEPENDENCIES) 
-	@rm -f vmsplice$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(vmsplice_OBJECTS) $(vmsplice_LDADD) $(LIBS)
-
-wait4$(EXEEXT): $(wait4_OBJECTS) $(wait4_DEPENDENCIES) $(EXTRA_wait4_DEPENDENCIES) 
-	@rm -f wait4$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(wait4_OBJECTS) $(wait4_LDADD) $(LIBS)
-
-wait4-v$(EXEEXT): $(wait4_v_OBJECTS) $(wait4_v_DEPENDENCIES) $(EXTRA_wait4_v_DEPENDENCIES) 
-	@rm -f wait4-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(wait4_v_OBJECTS) $(wait4_v_LDADD) $(LIBS)
-
-waitid$(EXEEXT): $(waitid_OBJECTS) $(waitid_DEPENDENCIES) $(EXTRA_waitid_DEPENDENCIES) 
-	@rm -f waitid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(waitid_OBJECTS) $(waitid_LDADD) $(LIBS)
-
-waitid-v$(EXEEXT): $(waitid_v_OBJECTS) $(waitid_v_DEPENDENCIES) $(EXTRA_waitid_v_DEPENDENCIES) 
-	@rm -f waitid-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(waitid_v_OBJECTS) $(waitid_v_LDADD) $(LIBS)
-
-waitpid$(EXEEXT): $(waitpid_OBJECTS) $(waitpid_DEPENDENCIES) $(EXTRA_waitpid_DEPENDENCIES) 
-	@rm -f waitpid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(waitpid_OBJECTS) $(waitpid_LDADD) $(LIBS)
-
-xattr$(EXEEXT): $(xattr_OBJECTS) $(xattr_DEPENDENCIES) $(EXTRA_xattr_DEPENDENCIES) 
-	@rm -f xattr$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(xattr_OBJECTS) $(xattr_LDADD) $(LIBS)
-
-xattr-strings$(EXEEXT): $(xattr_strings_OBJECTS) $(xattr_strings_DEPENDENCIES) $(EXTRA_xattr_strings_DEPENDENCIES) 
-	@rm -f xattr-strings$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(xattr_strings_OBJECTS) $(xattr_strings_LDADD) $(LIBS)
-
-xet_robust_list$(EXEEXT): $(xet_robust_list_OBJECTS) $(xet_robust_list_DEPENDENCIES) $(EXTRA_xet_robust_list_DEPENDENCIES) 
-	@rm -f xet_robust_list$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(xet_robust_list_OBJECTS) $(xet_robust_list_LDADD) $(LIBS)
-
-xetitimer$(EXEEXT): $(xetitimer_OBJECTS) $(xetitimer_DEPENDENCIES) $(EXTRA_xetitimer_DEPENDENCIES) 
-	@rm -f xetitimer$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(xetitimer_OBJECTS) $(xetitimer_LDADD) $(LIBS)
-
-xetpgid$(EXEEXT): $(xetpgid_OBJECTS) $(xetpgid_DEPENDENCIES) $(EXTRA_xetpgid_DEPENDENCIES) 
-	@rm -f xetpgid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(xetpgid_OBJECTS) $(xetpgid_LDADD) $(LIBS)
-
-xetpriority$(EXEEXT): $(xetpriority_OBJECTS) $(xetpriority_DEPENDENCIES) $(EXTRA_xetpriority_DEPENDENCIES) 
-	@rm -f xetpriority$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(xetpriority_OBJECTS) $(xetpriority_LDADD) $(LIBS)
-
-xettimeofday$(EXEEXT): $(xettimeofday_OBJECTS) $(xettimeofday_DEPENDENCIES) $(EXTRA_xettimeofday_DEPENDENCIES) 
-	@rm -f xettimeofday$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(xettimeofday_OBJECTS) $(xettimeofday_LDADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
-include ./$(DEPDIR)/_newselect.Po
-include ./$(DEPDIR)/accept.Po
-include ./$(DEPDIR)/accept4.Po
-include ./$(DEPDIR)/access.Po
-include ./$(DEPDIR)/acct.Po
-include ./$(DEPDIR)/add_key.Po
-include ./$(DEPDIR)/adjtimex.Po
-include ./$(DEPDIR)/aio.Po
-include ./$(DEPDIR)/alarm.Po
-include ./$(DEPDIR)/answer.Po
-include ./$(DEPDIR)/attach-f-p-cmd.Po
-include ./$(DEPDIR)/attach-f-p.Po
-include ./$(DEPDIR)/attach-p-cmd-cmd.Po
-include ./$(DEPDIR)/attach-p-cmd-p.Po
-include ./$(DEPDIR)/bpf.Po
-include ./$(DEPDIR)/brk.Po
-include ./$(DEPDIR)/btrfs.Po
-include ./$(DEPDIR)/caps-abbrev.Po
-include ./$(DEPDIR)/caps.Po
-include ./$(DEPDIR)/chmod.Po
-include ./$(DEPDIR)/chown.Po
-include ./$(DEPDIR)/chown32.Po
-include ./$(DEPDIR)/chroot.Po
-include ./$(DEPDIR)/clock_adjtime.Po
-include ./$(DEPDIR)/clock_nanosleep.Po
-include ./$(DEPDIR)/clock_xettime.Po
-include ./$(DEPDIR)/copy_file_range.Po
-include ./$(DEPDIR)/count-f.Po
-include ./$(DEPDIR)/creat.Po
-include ./$(DEPDIR)/delete_module.Po
-include ./$(DEPDIR)/dup.Po
-include ./$(DEPDIR)/dup2.Po
-include ./$(DEPDIR)/dup3.Po
-include ./$(DEPDIR)/epoll_create.Po
-include ./$(DEPDIR)/epoll_create1.Po
-include ./$(DEPDIR)/epoll_ctl.Po
-include ./$(DEPDIR)/epoll_pwait.Po
-include ./$(DEPDIR)/epoll_wait.Po
-include ./$(DEPDIR)/erestartsys.Po
-include ./$(DEPDIR)/eventfd.Po
-include ./$(DEPDIR)/execve-v.Po
-include ./$(DEPDIR)/execve.Po
-include ./$(DEPDIR)/execveat-v.Po
-include ./$(DEPDIR)/execveat.Po
-include ./$(DEPDIR)/faccessat.Po
-include ./$(DEPDIR)/fadvise64.Po
-include ./$(DEPDIR)/fadvise64_64.Po
-include ./$(DEPDIR)/fallocate.Po
-include ./$(DEPDIR)/fanotify_init.Po
-include ./$(DEPDIR)/fanotify_mark.Po
-include ./$(DEPDIR)/fchdir.Po
-include ./$(DEPDIR)/fchmod.Po
-include ./$(DEPDIR)/fchmodat.Po
-include ./$(DEPDIR)/fchown.Po
-include ./$(DEPDIR)/fchown32.Po
-include ./$(DEPDIR)/fchownat.Po
-include ./$(DEPDIR)/fcntl.Po
-include ./$(DEPDIR)/fcntl64.Po
-include ./$(DEPDIR)/fdatasync.Po
-include ./$(DEPDIR)/file_handle.Po
-include ./$(DEPDIR)/file_ioctl.Po
-include ./$(DEPDIR)/filter-unavailable.Po
-include ./$(DEPDIR)/finit_module.Po
-include ./$(DEPDIR)/flock.Po
-include ./$(DEPDIR)/fork-f.Po
-include ./$(DEPDIR)/fstat.Po
-include ./$(DEPDIR)/fstat64-fstat64.Po
-include ./$(DEPDIR)/fstatat64-fstatat64.Po
-include ./$(DEPDIR)/fstatfs.Po
-include ./$(DEPDIR)/fstatfs64.Po
-include ./$(DEPDIR)/fsync.Po
-include ./$(DEPDIR)/ftruncate.Po
-include ./$(DEPDIR)/ftruncate64-ftruncate64.Po
-include ./$(DEPDIR)/futex.Po
-include ./$(DEPDIR)/futimesat.Po
-include ./$(DEPDIR)/get_mempolicy.Po
-include ./$(DEPDIR)/getcpu.Po
-include ./$(DEPDIR)/getcwd.Po
-include ./$(DEPDIR)/getdents.Po
-include ./$(DEPDIR)/getdents64.Po
-include ./$(DEPDIR)/getegid.Po
-include ./$(DEPDIR)/getegid32.Po
-include ./$(DEPDIR)/geteuid.Po
-include ./$(DEPDIR)/geteuid32.Po
-include ./$(DEPDIR)/getgid.Po
-include ./$(DEPDIR)/getgid32.Po
-include ./$(DEPDIR)/getgroups.Po
-include ./$(DEPDIR)/getgroups32.Po
-include ./$(DEPDIR)/getpeername.Po
-include ./$(DEPDIR)/getpgrp.Po
-include ./$(DEPDIR)/getpid.Po
-include ./$(DEPDIR)/getppid.Po
-include ./$(DEPDIR)/getrandom.Po
-include ./$(DEPDIR)/getresgid.Po
-include ./$(DEPDIR)/getresgid32.Po
-include ./$(DEPDIR)/getresuid.Po
-include ./$(DEPDIR)/getresuid32.Po
-include ./$(DEPDIR)/getrlimit.Po
-include ./$(DEPDIR)/getrusage.Po
-include ./$(DEPDIR)/getsid.Po
-include ./$(DEPDIR)/getsockname.Po
-include ./$(DEPDIR)/gettid.Po
-include ./$(DEPDIR)/getuid.Po
-include ./$(DEPDIR)/getuid32.Po
-include ./$(DEPDIR)/getxxid.Po
-include ./$(DEPDIR)/inet-cmsg.Po
-include ./$(DEPDIR)/init_module.Po
-include ./$(DEPDIR)/inotify.Po
-include ./$(DEPDIR)/inotify_init1.Po
-include ./$(DEPDIR)/int_0x80.Po
-include ./$(DEPDIR)/ioctl.Po
-include ./$(DEPDIR)/ioctl_block.Po
-include ./$(DEPDIR)/ioctl_dm-v.Po
-include ./$(DEPDIR)/ioctl_dm.Po
-include ./$(DEPDIR)/ioctl_evdev-v.Po
-include ./$(DEPDIR)/ioctl_evdev.Po
-include ./$(DEPDIR)/ioctl_loop-nv.Po
-include ./$(DEPDIR)/ioctl_loop-v.Po
-include ./$(DEPDIR)/ioctl_loop.Po
-include ./$(DEPDIR)/ioctl_mtd.Po
-include ./$(DEPDIR)/ioctl_nsfs.Po
-include ./$(DEPDIR)/ioctl_rtc-v.Po
-include ./$(DEPDIR)/ioctl_rtc.Po
-include ./$(DEPDIR)/ioctl_scsi.Po
-include ./$(DEPDIR)/ioctl_sg_io_v3.Po
-include ./$(DEPDIR)/ioctl_sg_io_v4.Po
-include ./$(DEPDIR)/ioctl_sock_gifconf.Po
-include ./$(DEPDIR)/ioctl_uffdio.Po
-include ./$(DEPDIR)/ioctl_v4l2.Po
-include ./$(DEPDIR)/ioperm.Po
-include ./$(DEPDIR)/iopl.Po
-include ./$(DEPDIR)/ioprio.Po
-include ./$(DEPDIR)/ip_mreq.Po
-include ./$(DEPDIR)/ipc.Po
-include ./$(DEPDIR)/ipc_msg.Po
-include ./$(DEPDIR)/ipc_msgbuf.Po
-include ./$(DEPDIR)/ipc_sem.Po
-include ./$(DEPDIR)/ipc_shm.Po
-include ./$(DEPDIR)/kcmp.Po
-include ./$(DEPDIR)/kexec_file_load.Po
-include ./$(DEPDIR)/kexec_load.Po
-include ./$(DEPDIR)/keyctl.Po
-include ./$(DEPDIR)/kill.Po
-include ./$(DEPDIR)/ksysent.Po
-include ./$(DEPDIR)/lchown.Po
-include ./$(DEPDIR)/lchown32.Po
-include ./$(DEPDIR)/libtests_a-errno2name.Po
-include ./$(DEPDIR)/libtests_a-error_msg.Po
-include ./$(DEPDIR)/libtests_a-fill_memory.Po
-include ./$(DEPDIR)/libtests_a-get_page_size.Po
-include ./$(DEPDIR)/libtests_a-get_sigset_size.Po
-include ./$(DEPDIR)/libtests_a-hexdump_strdup.Po
-include ./$(DEPDIR)/libtests_a-hexquote_strndup.Po
-include ./$(DEPDIR)/libtests_a-inode_of_sockfd.Po
-include ./$(DEPDIR)/libtests_a-libmmsg.Po
-include ./$(DEPDIR)/libtests_a-libsocketcall.Po
-include ./$(DEPDIR)/libtests_a-overflowuid.Po
-include ./$(DEPDIR)/libtests_a-pipe_maxfd.Po
-include ./$(DEPDIR)/libtests_a-print_quoted_string.Po
-include ./$(DEPDIR)/libtests_a-print_time.Po
-include ./$(DEPDIR)/libtests_a-printflags.Po
-include ./$(DEPDIR)/libtests_a-printxval.Po
-include ./$(DEPDIR)/libtests_a-signal2name.Po
-include ./$(DEPDIR)/libtests_a-skip_unavailable.Po
-include ./$(DEPDIR)/libtests_a-sprintrc.Po
-include ./$(DEPDIR)/libtests_a-tail_alloc.Po
-include ./$(DEPDIR)/libtests_a-tprintf.Po
-include ./$(DEPDIR)/link.Po
-include ./$(DEPDIR)/linkat.Po
-include ./$(DEPDIR)/llseek.Po
-include ./$(DEPDIR)/lookup_dcookie.Po
-include ./$(DEPDIR)/lseek.Po
-include ./$(DEPDIR)/lstat.Po
-include ./$(DEPDIR)/lstat64-lstat64.Po
-include ./$(DEPDIR)/madvise.Po
-include ./$(DEPDIR)/mbind.Po
-include ./$(DEPDIR)/membarrier.Po
-include ./$(DEPDIR)/memfd_create.Po
-include ./$(DEPDIR)/migrate_pages.Po
-include ./$(DEPDIR)/mincore.Po
-include ./$(DEPDIR)/mkdir.Po
-include ./$(DEPDIR)/mkdirat.Po
-include ./$(DEPDIR)/mknod.Po
-include ./$(DEPDIR)/mknodat.Po
-include ./$(DEPDIR)/mlock.Po
-include ./$(DEPDIR)/mlock2.Po
-include ./$(DEPDIR)/mlockall.Po
-include ./$(DEPDIR)/mmap.Po
-include ./$(DEPDIR)/mmap64-mmap64.Po
-include ./$(DEPDIR)/mmsg-silent.Po
-include ./$(DEPDIR)/mmsg.Po
-include ./$(DEPDIR)/mmsg_name-v.Po
-include ./$(DEPDIR)/mmsg_name.Po
-include ./$(DEPDIR)/mount.Po
-include ./$(DEPDIR)/move_pages.Po
-include ./$(DEPDIR)/mq.Po
-include ./$(DEPDIR)/mq_sendrecv-read.Po
-include ./$(DEPDIR)/mq_sendrecv-write.Po
-include ./$(DEPDIR)/mq_sendrecv.Po
-include ./$(DEPDIR)/msg_control-v.Po
-include ./$(DEPDIR)/msg_control.Po
-include ./$(DEPDIR)/msg_name.Po
-include ./$(DEPDIR)/munlockall.Po
-include ./$(DEPDIR)/nanosleep.Po
-include ./$(DEPDIR)/net-accept-connect.Po
-include ./$(DEPDIR)/net-icmp_filter.Po
-include ./$(DEPDIR)/net-sockaddr.Po
-include ./$(DEPDIR)/net-y-unix.Po
-include ./$(DEPDIR)/net-yy-inet.Po
-include ./$(DEPDIR)/net-yy-netlink.Po
-include ./$(DEPDIR)/net-yy-unix.Po
-include ./$(DEPDIR)/netlink_inet_diag.Po
-include ./$(DEPDIR)/netlink_netlink_diag.Po
-include ./$(DEPDIR)/netlink_protocol.Po
-include ./$(DEPDIR)/netlink_unix_diag.Po
-include ./$(DEPDIR)/newfstatat-newfstatat.Po
-include ./$(DEPDIR)/nsyscalls.Po
-include ./$(DEPDIR)/old_mmap.Po
-include ./$(DEPDIR)/oldfstat.Po
-include ./$(DEPDIR)/oldlstat.Po
-include ./$(DEPDIR)/oldselect.Po
-include ./$(DEPDIR)/oldstat.Po
-include ./$(DEPDIR)/open.Po
-include ./$(DEPDIR)/openat.Po
-include ./$(DEPDIR)/osf_utimes.Po
-include ./$(DEPDIR)/pause.Po
-include ./$(DEPDIR)/pc.Po
-include ./$(DEPDIR)/perf_event_open.Po
-include ./$(DEPDIR)/perf_event_open_nonverbose.Po
-include ./$(DEPDIR)/perf_event_open_unabbrev.Po
-include ./$(DEPDIR)/personality.Po
-include ./$(DEPDIR)/pipe.Po
-include ./$(DEPDIR)/pipe2.Po
-include ./$(DEPDIR)/pkey_alloc.Po
-include ./$(DEPDIR)/pkey_free.Po
-include ./$(DEPDIR)/pkey_mprotect.Po
-include ./$(DEPDIR)/poll.Po
-include ./$(DEPDIR)/ppoll-v.Po
-include ./$(DEPDIR)/ppoll.Po
-include ./$(DEPDIR)/prctl-arg2-intptr.Po
-include ./$(DEPDIR)/prctl-dumpable.Po
-include ./$(DEPDIR)/prctl-name.Po
-include ./$(DEPDIR)/prctl-no-args.Po
-include ./$(DEPDIR)/prctl-pdeathsig.Po
-include ./$(DEPDIR)/prctl-seccomp-filter-v.Po
-include ./$(DEPDIR)/prctl-seccomp-strict.Po
-include ./$(DEPDIR)/prctl-securebits.Po
-include ./$(DEPDIR)/prctl-tid_address.Po
-include ./$(DEPDIR)/prctl-tsc.Po
-include ./$(DEPDIR)/pread64_pwrite64-pread64-pwrite64.Po
-include ./$(DEPDIR)/preadv-preadv.Po
-include ./$(DEPDIR)/preadv2-pwritev2.Po
-include ./$(DEPDIR)/preadv_pwritev-preadv-pwritev.Po
-include ./$(DEPDIR)/print_maxfd.Po
-include ./$(DEPDIR)/printstr.Po
-include ./$(DEPDIR)/prlimit64.Po
-include ./$(DEPDIR)/process_vm_readv.Po
-include ./$(DEPDIR)/process_vm_writev.Po
-include ./$(DEPDIR)/pselect6.Po
-include ./$(DEPDIR)/ptrace.Po
-include ./$(DEPDIR)/pwritev-pwritev.Po
-include ./$(DEPDIR)/qual_fault.Po
-include ./$(DEPDIR)/qual_inject-error-signal.Po
-include ./$(DEPDIR)/qual_inject-retval.Po
-include ./$(DEPDIR)/qual_inject-signal.Po
-include ./$(DEPDIR)/qual_signal.Po
-include ./$(DEPDIR)/quotactl-v.Po
-include ./$(DEPDIR)/quotactl-xfs-v.Po
-include ./$(DEPDIR)/quotactl-xfs.Po
-include ./$(DEPDIR)/quotactl.Po
-include ./$(DEPDIR)/read-write.Po
-include ./$(DEPDIR)/readahead.Po
-include ./$(DEPDIR)/readdir.Po
-include ./$(DEPDIR)/readlink.Po
-include ./$(DEPDIR)/readlinkat.Po
-include ./$(DEPDIR)/readv.Po
-include ./$(DEPDIR)/reboot.Po
-include ./$(DEPDIR)/recvfrom.Po
-include ./$(DEPDIR)/recvmmsg-timeout.Po
-include ./$(DEPDIR)/recvmsg.Po
-include ./$(DEPDIR)/redirect-fds.Po
-include ./$(DEPDIR)/remap_file_pages.Po
-include ./$(DEPDIR)/rename.Po
-include ./$(DEPDIR)/renameat.Po
-include ./$(DEPDIR)/renameat2.Po
-include ./$(DEPDIR)/request_key.Po
-include ./$(DEPDIR)/restart_syscall.Po
-include ./$(DEPDIR)/rmdir.Po
-include ./$(DEPDIR)/rt_sigpending.Po
-include ./$(DEPDIR)/rt_sigprocmask.Po
-include ./$(DEPDIR)/rt_sigqueueinfo.Po
-include ./$(DEPDIR)/rt_sigreturn.Po
-include ./$(DEPDIR)/rt_sigsuspend.Po
-include ./$(DEPDIR)/rt_sigtimedwait.Po
-include ./$(DEPDIR)/rt_tgsigqueueinfo.Po
-include ./$(DEPDIR)/sched_get_priority_mxx.Po
-include ./$(DEPDIR)/sched_rr_get_interval.Po
-include ./$(DEPDIR)/sched_xetaffinity.Po
-include ./$(DEPDIR)/sched_xetattr.Po
-include ./$(DEPDIR)/sched_xetparam.Po
-include ./$(DEPDIR)/sched_xetscheduler.Po
-include ./$(DEPDIR)/sched_yield.Po
-include ./$(DEPDIR)/scm_rights.Po
-include ./$(DEPDIR)/seccomp-filter-v.Po
-include ./$(DEPDIR)/seccomp-filter.Po
-include ./$(DEPDIR)/seccomp-strict.Po
-include ./$(DEPDIR)/select.Po
-include ./$(DEPDIR)/semop.Po
-include ./$(DEPDIR)/sendfile.Po
-include ./$(DEPDIR)/sendfile64.Po
-include ./$(DEPDIR)/set_mempolicy.Po
-include ./$(DEPDIR)/set_ptracer_any.Po
-include ./$(DEPDIR)/setdomainname.Po
-include ./$(DEPDIR)/setfsgid.Po
-include ./$(DEPDIR)/setfsgid32.Po
-include ./$(DEPDIR)/setfsuid.Po
-include ./$(DEPDIR)/setfsuid32.Po
-include ./$(DEPDIR)/setgid.Po
-include ./$(DEPDIR)/setgid32.Po
-include ./$(DEPDIR)/setgroups.Po
-include ./$(DEPDIR)/setgroups32.Po
-include ./$(DEPDIR)/sethostname.Po
-include ./$(DEPDIR)/setns.Po
-include ./$(DEPDIR)/setregid.Po
-include ./$(DEPDIR)/setregid32.Po
-include ./$(DEPDIR)/setresgid.Po
-include ./$(DEPDIR)/setresgid32.Po
-include ./$(DEPDIR)/setresuid.Po
-include ./$(DEPDIR)/setresuid32.Po
-include ./$(DEPDIR)/setreuid.Po
-include ./$(DEPDIR)/setreuid32.Po
-include ./$(DEPDIR)/setrlimit.Po
-include ./$(DEPDIR)/setuid.Po
-include ./$(DEPDIR)/setuid32.Po
-include ./$(DEPDIR)/shmxt.Po
-include ./$(DEPDIR)/shutdown.Po
-include ./$(DEPDIR)/sigaction.Po
-include ./$(DEPDIR)/sigaltstack.Po
-include ./$(DEPDIR)/siginfo.Po
-include ./$(DEPDIR)/signal_receive.Po
-include ./$(DEPDIR)/signalfd4.Po
-include ./$(DEPDIR)/sigreturn.Po
-include ./$(DEPDIR)/sigsuspend.Po
-include ./$(DEPDIR)/sleep.Po
-include ./$(DEPDIR)/socketcall.Po
-include ./$(DEPDIR)/splice.Po
-include ./$(DEPDIR)/stack-fcall-0.Po
-include ./$(DEPDIR)/stack-fcall-1.Po
-include ./$(DEPDIR)/stack-fcall-2.Po
-include ./$(DEPDIR)/stack-fcall-3.Po
-include ./$(DEPDIR)/stack-fcall.Po
-include ./$(DEPDIR)/stat.Po
-include ./$(DEPDIR)/stat64-stat64.Po
-include ./$(DEPDIR)/statfs-statfs.Po
-include ./$(DEPDIR)/statfs64.Po
-include ./$(DEPDIR)/statx.Po
-include ./$(DEPDIR)/swap.Po
-include ./$(DEPDIR)/sxetmask.Po
-include ./$(DEPDIR)/symlink.Po
-include ./$(DEPDIR)/symlinkat.Po
-include ./$(DEPDIR)/sync.Po
-include ./$(DEPDIR)/sync_file_range.Po
-include ./$(DEPDIR)/sync_file_range2.Po
-include ./$(DEPDIR)/sysinfo.Po
-include ./$(DEPDIR)/syslog.Po
-include ./$(DEPDIR)/tee.Po
-include ./$(DEPDIR)/threads-execve.Po
-include ./$(DEPDIR)/time.Po
-include ./$(DEPDIR)/timer_create.Po
-include ./$(DEPDIR)/timer_xettime.Po
-include ./$(DEPDIR)/timerfd_xettime.Po
-include ./$(DEPDIR)/times-fail.Po
-include ./$(DEPDIR)/times.Po
-include ./$(DEPDIR)/truncate.Po
-include ./$(DEPDIR)/truncate64-truncate64.Po
-include ./$(DEPDIR)/ugetrlimit.Po
-include ./$(DEPDIR)/uio-uio.Po
-include ./$(DEPDIR)/umask.Po
-include ./$(DEPDIR)/umount.Po
-include ./$(DEPDIR)/umount2.Po
-include ./$(DEPDIR)/umoven-illptr.Po
-include ./$(DEPDIR)/umovestr-illptr.Po
-include ./$(DEPDIR)/umovestr.Po
-include ./$(DEPDIR)/umovestr2.Po
-include ./$(DEPDIR)/umovestr3.Po
-include ./$(DEPDIR)/uname.Po
-include ./$(DEPDIR)/unix-pair-send-recv.Po
-include ./$(DEPDIR)/unix-pair-sendto-recvfrom.Po
-include ./$(DEPDIR)/unlink.Po
-include ./$(DEPDIR)/unlinkat.Po
-include ./$(DEPDIR)/unshare.Po
-include ./$(DEPDIR)/userfaultfd.Po
-include ./$(DEPDIR)/ustat.Po
-include ./$(DEPDIR)/utime.Po
-include ./$(DEPDIR)/utimensat.Po
-include ./$(DEPDIR)/utimes.Po
-include ./$(DEPDIR)/vfork-f.Po
-include ./$(DEPDIR)/vhangup.Po
-include ./$(DEPDIR)/vmsplice.Po
-include ./$(DEPDIR)/wait4-v.Po
-include ./$(DEPDIR)/wait4.Po
-include ./$(DEPDIR)/waitid-v.Po
-include ./$(DEPDIR)/waitid.Po
-include ./$(DEPDIR)/waitpid.Po
-include ./$(DEPDIR)/xattr-strings.Po
-include ./$(DEPDIR)/xattr.Po
-include ./$(DEPDIR)/xet_robust_list.Po
-include ./$(DEPDIR)/xetitimer.Po
-include ./$(DEPDIR)/xetpgid.Po
-include ./$(DEPDIR)/xetpriority.Po
-include ./$(DEPDIR)/xettimeofday.Po
-
-.c.o:
-	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-#	$(AM_V_CC)source='$<' object='$@' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(COMPILE) -c -o $@ $<
-
-.c.obj:
-	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-#	$(AM_V_CC)source='$<' object='$@' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-libtests_a-errno2name.o: errno2name.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-errno2name.o -MD -MP -MF $(DEPDIR)/libtests_a-errno2name.Tpo -c -o libtests_a-errno2name.o `test -f 'errno2name.c' || echo '$(srcdir)/'`errno2name.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-errno2name.Tpo $(DEPDIR)/libtests_a-errno2name.Po
-#	$(AM_V_CC)source='errno2name.c' object='libtests_a-errno2name.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-errno2name.o `test -f 'errno2name.c' || echo '$(srcdir)/'`errno2name.c
-
-libtests_a-errno2name.obj: errno2name.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-errno2name.obj -MD -MP -MF $(DEPDIR)/libtests_a-errno2name.Tpo -c -o libtests_a-errno2name.obj `if test -f 'errno2name.c'; then $(CYGPATH_W) 'errno2name.c'; else $(CYGPATH_W) '$(srcdir)/errno2name.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-errno2name.Tpo $(DEPDIR)/libtests_a-errno2name.Po
-#	$(AM_V_CC)source='errno2name.c' object='libtests_a-errno2name.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-errno2name.obj `if test -f 'errno2name.c'; then $(CYGPATH_W) 'errno2name.c'; else $(CYGPATH_W) '$(srcdir)/errno2name.c'; fi`
-
-libtests_a-error_msg.o: error_msg.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-error_msg.o -MD -MP -MF $(DEPDIR)/libtests_a-error_msg.Tpo -c -o libtests_a-error_msg.o `test -f 'error_msg.c' || echo '$(srcdir)/'`error_msg.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-error_msg.Tpo $(DEPDIR)/libtests_a-error_msg.Po
-#	$(AM_V_CC)source='error_msg.c' object='libtests_a-error_msg.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-error_msg.o `test -f 'error_msg.c' || echo '$(srcdir)/'`error_msg.c
-
-libtests_a-error_msg.obj: error_msg.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-error_msg.obj -MD -MP -MF $(DEPDIR)/libtests_a-error_msg.Tpo -c -o libtests_a-error_msg.obj `if test -f 'error_msg.c'; then $(CYGPATH_W) 'error_msg.c'; else $(CYGPATH_W) '$(srcdir)/error_msg.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-error_msg.Tpo $(DEPDIR)/libtests_a-error_msg.Po
-#	$(AM_V_CC)source='error_msg.c' object='libtests_a-error_msg.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-error_msg.obj `if test -f 'error_msg.c'; then $(CYGPATH_W) 'error_msg.c'; else $(CYGPATH_W) '$(srcdir)/error_msg.c'; fi`
-
-libtests_a-fill_memory.o: fill_memory.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-fill_memory.o -MD -MP -MF $(DEPDIR)/libtests_a-fill_memory.Tpo -c -o libtests_a-fill_memory.o `test -f 'fill_memory.c' || echo '$(srcdir)/'`fill_memory.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-fill_memory.Tpo $(DEPDIR)/libtests_a-fill_memory.Po
-#	$(AM_V_CC)source='fill_memory.c' object='libtests_a-fill_memory.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-fill_memory.o `test -f 'fill_memory.c' || echo '$(srcdir)/'`fill_memory.c
-
-libtests_a-fill_memory.obj: fill_memory.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-fill_memory.obj -MD -MP -MF $(DEPDIR)/libtests_a-fill_memory.Tpo -c -o libtests_a-fill_memory.obj `if test -f 'fill_memory.c'; then $(CYGPATH_W) 'fill_memory.c'; else $(CYGPATH_W) '$(srcdir)/fill_memory.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-fill_memory.Tpo $(DEPDIR)/libtests_a-fill_memory.Po
-#	$(AM_V_CC)source='fill_memory.c' object='libtests_a-fill_memory.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-fill_memory.obj `if test -f 'fill_memory.c'; then $(CYGPATH_W) 'fill_memory.c'; else $(CYGPATH_W) '$(srcdir)/fill_memory.c'; fi`
-
-libtests_a-get_page_size.o: get_page_size.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-get_page_size.o -MD -MP -MF $(DEPDIR)/libtests_a-get_page_size.Tpo -c -o libtests_a-get_page_size.o `test -f 'get_page_size.c' || echo '$(srcdir)/'`get_page_size.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-get_page_size.Tpo $(DEPDIR)/libtests_a-get_page_size.Po
-#	$(AM_V_CC)source='get_page_size.c' object='libtests_a-get_page_size.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-get_page_size.o `test -f 'get_page_size.c' || echo '$(srcdir)/'`get_page_size.c
-
-libtests_a-get_page_size.obj: get_page_size.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-get_page_size.obj -MD -MP -MF $(DEPDIR)/libtests_a-get_page_size.Tpo -c -o libtests_a-get_page_size.obj `if test -f 'get_page_size.c'; then $(CYGPATH_W) 'get_page_size.c'; else $(CYGPATH_W) '$(srcdir)/get_page_size.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-get_page_size.Tpo $(DEPDIR)/libtests_a-get_page_size.Po
-#	$(AM_V_CC)source='get_page_size.c' object='libtests_a-get_page_size.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-get_page_size.obj `if test -f 'get_page_size.c'; then $(CYGPATH_W) 'get_page_size.c'; else $(CYGPATH_W) '$(srcdir)/get_page_size.c'; fi`
-
-libtests_a-get_sigset_size.o: get_sigset_size.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-get_sigset_size.o -MD -MP -MF $(DEPDIR)/libtests_a-get_sigset_size.Tpo -c -o libtests_a-get_sigset_size.o `test -f 'get_sigset_size.c' || echo '$(srcdir)/'`get_sigset_size.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-get_sigset_size.Tpo $(DEPDIR)/libtests_a-get_sigset_size.Po
-#	$(AM_V_CC)source='get_sigset_size.c' object='libtests_a-get_sigset_size.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-get_sigset_size.o `test -f 'get_sigset_size.c' || echo '$(srcdir)/'`get_sigset_size.c
-
-libtests_a-get_sigset_size.obj: get_sigset_size.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-get_sigset_size.obj -MD -MP -MF $(DEPDIR)/libtests_a-get_sigset_size.Tpo -c -o libtests_a-get_sigset_size.obj `if test -f 'get_sigset_size.c'; then $(CYGPATH_W) 'get_sigset_size.c'; else $(CYGPATH_W) '$(srcdir)/get_sigset_size.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-get_sigset_size.Tpo $(DEPDIR)/libtests_a-get_sigset_size.Po
-#	$(AM_V_CC)source='get_sigset_size.c' object='libtests_a-get_sigset_size.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-get_sigset_size.obj `if test -f 'get_sigset_size.c'; then $(CYGPATH_W) 'get_sigset_size.c'; else $(CYGPATH_W) '$(srcdir)/get_sigset_size.c'; fi`
-
-libtests_a-hexdump_strdup.o: hexdump_strdup.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-hexdump_strdup.o -MD -MP -MF $(DEPDIR)/libtests_a-hexdump_strdup.Tpo -c -o libtests_a-hexdump_strdup.o `test -f 'hexdump_strdup.c' || echo '$(srcdir)/'`hexdump_strdup.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-hexdump_strdup.Tpo $(DEPDIR)/libtests_a-hexdump_strdup.Po
-#	$(AM_V_CC)source='hexdump_strdup.c' object='libtests_a-hexdump_strdup.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-hexdump_strdup.o `test -f 'hexdump_strdup.c' || echo '$(srcdir)/'`hexdump_strdup.c
-
-libtests_a-hexdump_strdup.obj: hexdump_strdup.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-hexdump_strdup.obj -MD -MP -MF $(DEPDIR)/libtests_a-hexdump_strdup.Tpo -c -o libtests_a-hexdump_strdup.obj `if test -f 'hexdump_strdup.c'; then $(CYGPATH_W) 'hexdump_strdup.c'; else $(CYGPATH_W) '$(srcdir)/hexdump_strdup.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-hexdump_strdup.Tpo $(DEPDIR)/libtests_a-hexdump_strdup.Po
-#	$(AM_V_CC)source='hexdump_strdup.c' object='libtests_a-hexdump_strdup.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-hexdump_strdup.obj `if test -f 'hexdump_strdup.c'; then $(CYGPATH_W) 'hexdump_strdup.c'; else $(CYGPATH_W) '$(srcdir)/hexdump_strdup.c'; fi`
-
-libtests_a-hexquote_strndup.o: hexquote_strndup.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-hexquote_strndup.o -MD -MP -MF $(DEPDIR)/libtests_a-hexquote_strndup.Tpo -c -o libtests_a-hexquote_strndup.o `test -f 'hexquote_strndup.c' || echo '$(srcdir)/'`hexquote_strndup.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-hexquote_strndup.Tpo $(DEPDIR)/libtests_a-hexquote_strndup.Po
-#	$(AM_V_CC)source='hexquote_strndup.c' object='libtests_a-hexquote_strndup.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-hexquote_strndup.o `test -f 'hexquote_strndup.c' || echo '$(srcdir)/'`hexquote_strndup.c
-
-libtests_a-hexquote_strndup.obj: hexquote_strndup.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-hexquote_strndup.obj -MD -MP -MF $(DEPDIR)/libtests_a-hexquote_strndup.Tpo -c -o libtests_a-hexquote_strndup.obj `if test -f 'hexquote_strndup.c'; then $(CYGPATH_W) 'hexquote_strndup.c'; else $(CYGPATH_W) '$(srcdir)/hexquote_strndup.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-hexquote_strndup.Tpo $(DEPDIR)/libtests_a-hexquote_strndup.Po
-#	$(AM_V_CC)source='hexquote_strndup.c' object='libtests_a-hexquote_strndup.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-hexquote_strndup.obj `if test -f 'hexquote_strndup.c'; then $(CYGPATH_W) 'hexquote_strndup.c'; else $(CYGPATH_W) '$(srcdir)/hexquote_strndup.c'; fi`
-
-libtests_a-inode_of_sockfd.o: inode_of_sockfd.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-inode_of_sockfd.o -MD -MP -MF $(DEPDIR)/libtests_a-inode_of_sockfd.Tpo -c -o libtests_a-inode_of_sockfd.o `test -f 'inode_of_sockfd.c' || echo '$(srcdir)/'`inode_of_sockfd.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-inode_of_sockfd.Tpo $(DEPDIR)/libtests_a-inode_of_sockfd.Po
-#	$(AM_V_CC)source='inode_of_sockfd.c' object='libtests_a-inode_of_sockfd.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-inode_of_sockfd.o `test -f 'inode_of_sockfd.c' || echo '$(srcdir)/'`inode_of_sockfd.c
-
-libtests_a-inode_of_sockfd.obj: inode_of_sockfd.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-inode_of_sockfd.obj -MD -MP -MF $(DEPDIR)/libtests_a-inode_of_sockfd.Tpo -c -o libtests_a-inode_of_sockfd.obj `if test -f 'inode_of_sockfd.c'; then $(CYGPATH_W) 'inode_of_sockfd.c'; else $(CYGPATH_W) '$(srcdir)/inode_of_sockfd.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-inode_of_sockfd.Tpo $(DEPDIR)/libtests_a-inode_of_sockfd.Po
-#	$(AM_V_CC)source='inode_of_sockfd.c' object='libtests_a-inode_of_sockfd.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-inode_of_sockfd.obj `if test -f 'inode_of_sockfd.c'; then $(CYGPATH_W) 'inode_of_sockfd.c'; else $(CYGPATH_W) '$(srcdir)/inode_of_sockfd.c'; fi`
-
-libtests_a-libmmsg.o: libmmsg.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-libmmsg.o -MD -MP -MF $(DEPDIR)/libtests_a-libmmsg.Tpo -c -o libtests_a-libmmsg.o `test -f 'libmmsg.c' || echo '$(srcdir)/'`libmmsg.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-libmmsg.Tpo $(DEPDIR)/libtests_a-libmmsg.Po
-#	$(AM_V_CC)source='libmmsg.c' object='libtests_a-libmmsg.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-libmmsg.o `test -f 'libmmsg.c' || echo '$(srcdir)/'`libmmsg.c
-
-libtests_a-libmmsg.obj: libmmsg.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-libmmsg.obj -MD -MP -MF $(DEPDIR)/libtests_a-libmmsg.Tpo -c -o libtests_a-libmmsg.obj `if test -f 'libmmsg.c'; then $(CYGPATH_W) 'libmmsg.c'; else $(CYGPATH_W) '$(srcdir)/libmmsg.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-libmmsg.Tpo $(DEPDIR)/libtests_a-libmmsg.Po
-#	$(AM_V_CC)source='libmmsg.c' object='libtests_a-libmmsg.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-libmmsg.obj `if test -f 'libmmsg.c'; then $(CYGPATH_W) 'libmmsg.c'; else $(CYGPATH_W) '$(srcdir)/libmmsg.c'; fi`
-
-libtests_a-libsocketcall.o: libsocketcall.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-libsocketcall.o -MD -MP -MF $(DEPDIR)/libtests_a-libsocketcall.Tpo -c -o libtests_a-libsocketcall.o `test -f 'libsocketcall.c' || echo '$(srcdir)/'`libsocketcall.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-libsocketcall.Tpo $(DEPDIR)/libtests_a-libsocketcall.Po
-#	$(AM_V_CC)source='libsocketcall.c' object='libtests_a-libsocketcall.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-libsocketcall.o `test -f 'libsocketcall.c' || echo '$(srcdir)/'`libsocketcall.c
-
-libtests_a-libsocketcall.obj: libsocketcall.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-libsocketcall.obj -MD -MP -MF $(DEPDIR)/libtests_a-libsocketcall.Tpo -c -o libtests_a-libsocketcall.obj `if test -f 'libsocketcall.c'; then $(CYGPATH_W) 'libsocketcall.c'; else $(CYGPATH_W) '$(srcdir)/libsocketcall.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-libsocketcall.Tpo $(DEPDIR)/libtests_a-libsocketcall.Po
-#	$(AM_V_CC)source='libsocketcall.c' object='libtests_a-libsocketcall.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-libsocketcall.obj `if test -f 'libsocketcall.c'; then $(CYGPATH_W) 'libsocketcall.c'; else $(CYGPATH_W) '$(srcdir)/libsocketcall.c'; fi`
-
-libtests_a-overflowuid.o: overflowuid.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-overflowuid.o -MD -MP -MF $(DEPDIR)/libtests_a-overflowuid.Tpo -c -o libtests_a-overflowuid.o `test -f 'overflowuid.c' || echo '$(srcdir)/'`overflowuid.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-overflowuid.Tpo $(DEPDIR)/libtests_a-overflowuid.Po
-#	$(AM_V_CC)source='overflowuid.c' object='libtests_a-overflowuid.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-overflowuid.o `test -f 'overflowuid.c' || echo '$(srcdir)/'`overflowuid.c
-
-libtests_a-overflowuid.obj: overflowuid.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-overflowuid.obj -MD -MP -MF $(DEPDIR)/libtests_a-overflowuid.Tpo -c -o libtests_a-overflowuid.obj `if test -f 'overflowuid.c'; then $(CYGPATH_W) 'overflowuid.c'; else $(CYGPATH_W) '$(srcdir)/overflowuid.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-overflowuid.Tpo $(DEPDIR)/libtests_a-overflowuid.Po
-#	$(AM_V_CC)source='overflowuid.c' object='libtests_a-overflowuid.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-overflowuid.obj `if test -f 'overflowuid.c'; then $(CYGPATH_W) 'overflowuid.c'; else $(CYGPATH_W) '$(srcdir)/overflowuid.c'; fi`
-
-libtests_a-pipe_maxfd.o: pipe_maxfd.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-pipe_maxfd.o -MD -MP -MF $(DEPDIR)/libtests_a-pipe_maxfd.Tpo -c -o libtests_a-pipe_maxfd.o `test -f 'pipe_maxfd.c' || echo '$(srcdir)/'`pipe_maxfd.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-pipe_maxfd.Tpo $(DEPDIR)/libtests_a-pipe_maxfd.Po
-#	$(AM_V_CC)source='pipe_maxfd.c' object='libtests_a-pipe_maxfd.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-pipe_maxfd.o `test -f 'pipe_maxfd.c' || echo '$(srcdir)/'`pipe_maxfd.c
-
-libtests_a-pipe_maxfd.obj: pipe_maxfd.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-pipe_maxfd.obj -MD -MP -MF $(DEPDIR)/libtests_a-pipe_maxfd.Tpo -c -o libtests_a-pipe_maxfd.obj `if test -f 'pipe_maxfd.c'; then $(CYGPATH_W) 'pipe_maxfd.c'; else $(CYGPATH_W) '$(srcdir)/pipe_maxfd.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-pipe_maxfd.Tpo $(DEPDIR)/libtests_a-pipe_maxfd.Po
-#	$(AM_V_CC)source='pipe_maxfd.c' object='libtests_a-pipe_maxfd.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-pipe_maxfd.obj `if test -f 'pipe_maxfd.c'; then $(CYGPATH_W) 'pipe_maxfd.c'; else $(CYGPATH_W) '$(srcdir)/pipe_maxfd.c'; fi`
-
-libtests_a-print_quoted_string.o: print_quoted_string.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-print_quoted_string.o -MD -MP -MF $(DEPDIR)/libtests_a-print_quoted_string.Tpo -c -o libtests_a-print_quoted_string.o `test -f 'print_quoted_string.c' || echo '$(srcdir)/'`print_quoted_string.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-print_quoted_string.Tpo $(DEPDIR)/libtests_a-print_quoted_string.Po
-#	$(AM_V_CC)source='print_quoted_string.c' object='libtests_a-print_quoted_string.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-print_quoted_string.o `test -f 'print_quoted_string.c' || echo '$(srcdir)/'`print_quoted_string.c
-
-libtests_a-print_quoted_string.obj: print_quoted_string.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-print_quoted_string.obj -MD -MP -MF $(DEPDIR)/libtests_a-print_quoted_string.Tpo -c -o libtests_a-print_quoted_string.obj `if test -f 'print_quoted_string.c'; then $(CYGPATH_W) 'print_quoted_string.c'; else $(CYGPATH_W) '$(srcdir)/print_quoted_string.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-print_quoted_string.Tpo $(DEPDIR)/libtests_a-print_quoted_string.Po
-#	$(AM_V_CC)source='print_quoted_string.c' object='libtests_a-print_quoted_string.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-print_quoted_string.obj `if test -f 'print_quoted_string.c'; then $(CYGPATH_W) 'print_quoted_string.c'; else $(CYGPATH_W) '$(srcdir)/print_quoted_string.c'; fi`
-
-libtests_a-print_time.o: print_time.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-print_time.o -MD -MP -MF $(DEPDIR)/libtests_a-print_time.Tpo -c -o libtests_a-print_time.o `test -f 'print_time.c' || echo '$(srcdir)/'`print_time.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-print_time.Tpo $(DEPDIR)/libtests_a-print_time.Po
-#	$(AM_V_CC)source='print_time.c' object='libtests_a-print_time.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-print_time.o `test -f 'print_time.c' || echo '$(srcdir)/'`print_time.c
-
-libtests_a-print_time.obj: print_time.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-print_time.obj -MD -MP -MF $(DEPDIR)/libtests_a-print_time.Tpo -c -o libtests_a-print_time.obj `if test -f 'print_time.c'; then $(CYGPATH_W) 'print_time.c'; else $(CYGPATH_W) '$(srcdir)/print_time.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-print_time.Tpo $(DEPDIR)/libtests_a-print_time.Po
-#	$(AM_V_CC)source='print_time.c' object='libtests_a-print_time.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-print_time.obj `if test -f 'print_time.c'; then $(CYGPATH_W) 'print_time.c'; else $(CYGPATH_W) '$(srcdir)/print_time.c'; fi`
-
-libtests_a-printflags.o: printflags.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printflags.o -MD -MP -MF $(DEPDIR)/libtests_a-printflags.Tpo -c -o libtests_a-printflags.o `test -f 'printflags.c' || echo '$(srcdir)/'`printflags.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printflags.Tpo $(DEPDIR)/libtests_a-printflags.Po
-#	$(AM_V_CC)source='printflags.c' object='libtests_a-printflags.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printflags.o `test -f 'printflags.c' || echo '$(srcdir)/'`printflags.c
-
-libtests_a-printflags.obj: printflags.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printflags.obj -MD -MP -MF $(DEPDIR)/libtests_a-printflags.Tpo -c -o libtests_a-printflags.obj `if test -f 'printflags.c'; then $(CYGPATH_W) 'printflags.c'; else $(CYGPATH_W) '$(srcdir)/printflags.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printflags.Tpo $(DEPDIR)/libtests_a-printflags.Po
-#	$(AM_V_CC)source='printflags.c' object='libtests_a-printflags.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printflags.obj `if test -f 'printflags.c'; then $(CYGPATH_W) 'printflags.c'; else $(CYGPATH_W) '$(srcdir)/printflags.c'; fi`
-
-libtests_a-printxval.o: printxval.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printxval.o -MD -MP -MF $(DEPDIR)/libtests_a-printxval.Tpo -c -o libtests_a-printxval.o `test -f 'printxval.c' || echo '$(srcdir)/'`printxval.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printxval.Tpo $(DEPDIR)/libtests_a-printxval.Po
-#	$(AM_V_CC)source='printxval.c' object='libtests_a-printxval.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printxval.o `test -f 'printxval.c' || echo '$(srcdir)/'`printxval.c
-
-libtests_a-printxval.obj: printxval.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printxval.obj -MD -MP -MF $(DEPDIR)/libtests_a-printxval.Tpo -c -o libtests_a-printxval.obj `if test -f 'printxval.c'; then $(CYGPATH_W) 'printxval.c'; else $(CYGPATH_W) '$(srcdir)/printxval.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printxval.Tpo $(DEPDIR)/libtests_a-printxval.Po
-#	$(AM_V_CC)source='printxval.c' object='libtests_a-printxval.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printxval.obj `if test -f 'printxval.c'; then $(CYGPATH_W) 'printxval.c'; else $(CYGPATH_W) '$(srcdir)/printxval.c'; fi`
-
-libtests_a-signal2name.o: signal2name.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-signal2name.o -MD -MP -MF $(DEPDIR)/libtests_a-signal2name.Tpo -c -o libtests_a-signal2name.o `test -f 'signal2name.c' || echo '$(srcdir)/'`signal2name.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-signal2name.Tpo $(DEPDIR)/libtests_a-signal2name.Po
-#	$(AM_V_CC)source='signal2name.c' object='libtests_a-signal2name.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-signal2name.o `test -f 'signal2name.c' || echo '$(srcdir)/'`signal2name.c
-
-libtests_a-signal2name.obj: signal2name.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-signal2name.obj -MD -MP -MF $(DEPDIR)/libtests_a-signal2name.Tpo -c -o libtests_a-signal2name.obj `if test -f 'signal2name.c'; then $(CYGPATH_W) 'signal2name.c'; else $(CYGPATH_W) '$(srcdir)/signal2name.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-signal2name.Tpo $(DEPDIR)/libtests_a-signal2name.Po
-#	$(AM_V_CC)source='signal2name.c' object='libtests_a-signal2name.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-signal2name.obj `if test -f 'signal2name.c'; then $(CYGPATH_W) 'signal2name.c'; else $(CYGPATH_W) '$(srcdir)/signal2name.c'; fi`
-
-libtests_a-skip_unavailable.o: skip_unavailable.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-skip_unavailable.o -MD -MP -MF $(DEPDIR)/libtests_a-skip_unavailable.Tpo -c -o libtests_a-skip_unavailable.o `test -f 'skip_unavailable.c' || echo '$(srcdir)/'`skip_unavailable.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-skip_unavailable.Tpo $(DEPDIR)/libtests_a-skip_unavailable.Po
-#	$(AM_V_CC)source='skip_unavailable.c' object='libtests_a-skip_unavailable.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-skip_unavailable.o `test -f 'skip_unavailable.c' || echo '$(srcdir)/'`skip_unavailable.c
-
-libtests_a-skip_unavailable.obj: skip_unavailable.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-skip_unavailable.obj -MD -MP -MF $(DEPDIR)/libtests_a-skip_unavailable.Tpo -c -o libtests_a-skip_unavailable.obj `if test -f 'skip_unavailable.c'; then $(CYGPATH_W) 'skip_unavailable.c'; else $(CYGPATH_W) '$(srcdir)/skip_unavailable.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-skip_unavailable.Tpo $(DEPDIR)/libtests_a-skip_unavailable.Po
-#	$(AM_V_CC)source='skip_unavailable.c' object='libtests_a-skip_unavailable.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-skip_unavailable.obj `if test -f 'skip_unavailable.c'; then $(CYGPATH_W) 'skip_unavailable.c'; else $(CYGPATH_W) '$(srcdir)/skip_unavailable.c'; fi`
-
-libtests_a-sprintrc.o: sprintrc.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-sprintrc.o -MD -MP -MF $(DEPDIR)/libtests_a-sprintrc.Tpo -c -o libtests_a-sprintrc.o `test -f 'sprintrc.c' || echo '$(srcdir)/'`sprintrc.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-sprintrc.Tpo $(DEPDIR)/libtests_a-sprintrc.Po
-#	$(AM_V_CC)source='sprintrc.c' object='libtests_a-sprintrc.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-sprintrc.o `test -f 'sprintrc.c' || echo '$(srcdir)/'`sprintrc.c
-
-libtests_a-sprintrc.obj: sprintrc.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-sprintrc.obj -MD -MP -MF $(DEPDIR)/libtests_a-sprintrc.Tpo -c -o libtests_a-sprintrc.obj `if test -f 'sprintrc.c'; then $(CYGPATH_W) 'sprintrc.c'; else $(CYGPATH_W) '$(srcdir)/sprintrc.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-sprintrc.Tpo $(DEPDIR)/libtests_a-sprintrc.Po
-#	$(AM_V_CC)source='sprintrc.c' object='libtests_a-sprintrc.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-sprintrc.obj `if test -f 'sprintrc.c'; then $(CYGPATH_W) 'sprintrc.c'; else $(CYGPATH_W) '$(srcdir)/sprintrc.c'; fi`
-
-libtests_a-tail_alloc.o: tail_alloc.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-tail_alloc.o -MD -MP -MF $(DEPDIR)/libtests_a-tail_alloc.Tpo -c -o libtests_a-tail_alloc.o `test -f 'tail_alloc.c' || echo '$(srcdir)/'`tail_alloc.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-tail_alloc.Tpo $(DEPDIR)/libtests_a-tail_alloc.Po
-#	$(AM_V_CC)source='tail_alloc.c' object='libtests_a-tail_alloc.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-tail_alloc.o `test -f 'tail_alloc.c' || echo '$(srcdir)/'`tail_alloc.c
-
-libtests_a-tail_alloc.obj: tail_alloc.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-tail_alloc.obj -MD -MP -MF $(DEPDIR)/libtests_a-tail_alloc.Tpo -c -o libtests_a-tail_alloc.obj `if test -f 'tail_alloc.c'; then $(CYGPATH_W) 'tail_alloc.c'; else $(CYGPATH_W) '$(srcdir)/tail_alloc.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-tail_alloc.Tpo $(DEPDIR)/libtests_a-tail_alloc.Po
-#	$(AM_V_CC)source='tail_alloc.c' object='libtests_a-tail_alloc.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-tail_alloc.obj `if test -f 'tail_alloc.c'; then $(CYGPATH_W) 'tail_alloc.c'; else $(CYGPATH_W) '$(srcdir)/tail_alloc.c'; fi`
-
-libtests_a-tprintf.o: tprintf.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-tprintf.o -MD -MP -MF $(DEPDIR)/libtests_a-tprintf.Tpo -c -o libtests_a-tprintf.o `test -f 'tprintf.c' || echo '$(srcdir)/'`tprintf.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-tprintf.Tpo $(DEPDIR)/libtests_a-tprintf.Po
-#	$(AM_V_CC)source='tprintf.c' object='libtests_a-tprintf.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-tprintf.o `test -f 'tprintf.c' || echo '$(srcdir)/'`tprintf.c
-
-libtests_a-tprintf.obj: tprintf.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-tprintf.obj -MD -MP -MF $(DEPDIR)/libtests_a-tprintf.Tpo -c -o libtests_a-tprintf.obj `if test -f 'tprintf.c'; then $(CYGPATH_W) 'tprintf.c'; else $(CYGPATH_W) '$(srcdir)/tprintf.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-tprintf.Tpo $(DEPDIR)/libtests_a-tprintf.Po
-#	$(AM_V_CC)source='tprintf.c' object='libtests_a-tprintf.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-tprintf.obj `if test -f 'tprintf.c'; then $(CYGPATH_W) 'tprintf.c'; else $(CYGPATH_W) '$(srcdir)/tprintf.c'; fi`
-
-fstat64-fstat64.o: fstat64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fstat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fstat64-fstat64.o -MD -MP -MF $(DEPDIR)/fstat64-fstat64.Tpo -c -o fstat64-fstat64.o `test -f 'fstat64.c' || echo '$(srcdir)/'`fstat64.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/fstat64-fstat64.Tpo $(DEPDIR)/fstat64-fstat64.Po
-#	$(AM_V_CC)source='fstat64.c' object='fstat64-fstat64.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fstat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fstat64-fstat64.o `test -f 'fstat64.c' || echo '$(srcdir)/'`fstat64.c
-
-fstat64-fstat64.obj: fstat64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fstat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fstat64-fstat64.obj -MD -MP -MF $(DEPDIR)/fstat64-fstat64.Tpo -c -o fstat64-fstat64.obj `if test -f 'fstat64.c'; then $(CYGPATH_W) 'fstat64.c'; else $(CYGPATH_W) '$(srcdir)/fstat64.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/fstat64-fstat64.Tpo $(DEPDIR)/fstat64-fstat64.Po
-#	$(AM_V_CC)source='fstat64.c' object='fstat64-fstat64.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fstat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fstat64-fstat64.obj `if test -f 'fstat64.c'; then $(CYGPATH_W) 'fstat64.c'; else $(CYGPATH_W) '$(srcdir)/fstat64.c'; fi`
-
-fstatat64-fstatat64.o: fstatat64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fstatat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fstatat64-fstatat64.o -MD -MP -MF $(DEPDIR)/fstatat64-fstatat64.Tpo -c -o fstatat64-fstatat64.o `test -f 'fstatat64.c' || echo '$(srcdir)/'`fstatat64.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/fstatat64-fstatat64.Tpo $(DEPDIR)/fstatat64-fstatat64.Po
-#	$(AM_V_CC)source='fstatat64.c' object='fstatat64-fstatat64.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fstatat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fstatat64-fstatat64.o `test -f 'fstatat64.c' || echo '$(srcdir)/'`fstatat64.c
-
-fstatat64-fstatat64.obj: fstatat64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fstatat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fstatat64-fstatat64.obj -MD -MP -MF $(DEPDIR)/fstatat64-fstatat64.Tpo -c -o fstatat64-fstatat64.obj `if test -f 'fstatat64.c'; then $(CYGPATH_W) 'fstatat64.c'; else $(CYGPATH_W) '$(srcdir)/fstatat64.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/fstatat64-fstatat64.Tpo $(DEPDIR)/fstatat64-fstatat64.Po
-#	$(AM_V_CC)source='fstatat64.c' object='fstatat64-fstatat64.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fstatat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fstatat64-fstatat64.obj `if test -f 'fstatat64.c'; then $(CYGPATH_W) 'fstatat64.c'; else $(CYGPATH_W) '$(srcdir)/fstatat64.c'; fi`
-
-ftruncate64-ftruncate64.o: ftruncate64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ftruncate64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ftruncate64-ftruncate64.o -MD -MP -MF $(DEPDIR)/ftruncate64-ftruncate64.Tpo -c -o ftruncate64-ftruncate64.o `test -f 'ftruncate64.c' || echo '$(srcdir)/'`ftruncate64.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/ftruncate64-ftruncate64.Tpo $(DEPDIR)/ftruncate64-ftruncate64.Po
-#	$(AM_V_CC)source='ftruncate64.c' object='ftruncate64-ftruncate64.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ftruncate64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ftruncate64-ftruncate64.o `test -f 'ftruncate64.c' || echo '$(srcdir)/'`ftruncate64.c
-
-ftruncate64-ftruncate64.obj: ftruncate64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ftruncate64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ftruncate64-ftruncate64.obj -MD -MP -MF $(DEPDIR)/ftruncate64-ftruncate64.Tpo -c -o ftruncate64-ftruncate64.obj `if test -f 'ftruncate64.c'; then $(CYGPATH_W) 'ftruncate64.c'; else $(CYGPATH_W) '$(srcdir)/ftruncate64.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/ftruncate64-ftruncate64.Tpo $(DEPDIR)/ftruncate64-ftruncate64.Po
-#	$(AM_V_CC)source='ftruncate64.c' object='ftruncate64-ftruncate64.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ftruncate64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ftruncate64-ftruncate64.obj `if test -f 'ftruncate64.c'; then $(CYGPATH_W) 'ftruncate64.c'; else $(CYGPATH_W) '$(srcdir)/ftruncate64.c'; fi`
-
-lstat64-lstat64.o: lstat64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lstat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lstat64-lstat64.o -MD -MP -MF $(DEPDIR)/lstat64-lstat64.Tpo -c -o lstat64-lstat64.o `test -f 'lstat64.c' || echo '$(srcdir)/'`lstat64.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/lstat64-lstat64.Tpo $(DEPDIR)/lstat64-lstat64.Po
-#	$(AM_V_CC)source='lstat64.c' object='lstat64-lstat64.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lstat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lstat64-lstat64.o `test -f 'lstat64.c' || echo '$(srcdir)/'`lstat64.c
-
-lstat64-lstat64.obj: lstat64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lstat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lstat64-lstat64.obj -MD -MP -MF $(DEPDIR)/lstat64-lstat64.Tpo -c -o lstat64-lstat64.obj `if test -f 'lstat64.c'; then $(CYGPATH_W) 'lstat64.c'; else $(CYGPATH_W) '$(srcdir)/lstat64.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/lstat64-lstat64.Tpo $(DEPDIR)/lstat64-lstat64.Po
-#	$(AM_V_CC)source='lstat64.c' object='lstat64-lstat64.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lstat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lstat64-lstat64.obj `if test -f 'lstat64.c'; then $(CYGPATH_W) 'lstat64.c'; else $(CYGPATH_W) '$(srcdir)/lstat64.c'; fi`
-
-mmap64-mmap64.o: mmap64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64-mmap64.o -MD -MP -MF $(DEPDIR)/mmap64-mmap64.Tpo -c -o mmap64-mmap64.o `test -f 'mmap64.c' || echo '$(srcdir)/'`mmap64.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/mmap64-mmap64.Tpo $(DEPDIR)/mmap64-mmap64.Po
-#	$(AM_V_CC)source='mmap64.c' object='mmap64-mmap64.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64-mmap64.o `test -f 'mmap64.c' || echo '$(srcdir)/'`mmap64.c
-
-mmap64-mmap64.obj: mmap64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64-mmap64.obj -MD -MP -MF $(DEPDIR)/mmap64-mmap64.Tpo -c -o mmap64-mmap64.obj `if test -f 'mmap64.c'; then $(CYGPATH_W) 'mmap64.c'; else $(CYGPATH_W) '$(srcdir)/mmap64.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/mmap64-mmap64.Tpo $(DEPDIR)/mmap64-mmap64.Po
-#	$(AM_V_CC)source='mmap64.c' object='mmap64-mmap64.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64-mmap64.obj `if test -f 'mmap64.c'; then $(CYGPATH_W) 'mmap64.c'; else $(CYGPATH_W) '$(srcdir)/mmap64.c'; fi`
-
-newfstatat-newfstatat.o: newfstatat.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(newfstatat_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT newfstatat-newfstatat.o -MD -MP -MF $(DEPDIR)/newfstatat-newfstatat.Tpo -c -o newfstatat-newfstatat.o `test -f 'newfstatat.c' || echo '$(srcdir)/'`newfstatat.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/newfstatat-newfstatat.Tpo $(DEPDIR)/newfstatat-newfstatat.Po
-#	$(AM_V_CC)source='newfstatat.c' object='newfstatat-newfstatat.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(newfstatat_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o newfstatat-newfstatat.o `test -f 'newfstatat.c' || echo '$(srcdir)/'`newfstatat.c
-
-newfstatat-newfstatat.obj: newfstatat.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(newfstatat_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT newfstatat-newfstatat.obj -MD -MP -MF $(DEPDIR)/newfstatat-newfstatat.Tpo -c -o newfstatat-newfstatat.obj `if test -f 'newfstatat.c'; then $(CYGPATH_W) 'newfstatat.c'; else $(CYGPATH_W) '$(srcdir)/newfstatat.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/newfstatat-newfstatat.Tpo $(DEPDIR)/newfstatat-newfstatat.Po
-#	$(AM_V_CC)source='newfstatat.c' object='newfstatat-newfstatat.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(newfstatat_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o newfstatat-newfstatat.obj `if test -f 'newfstatat.c'; then $(CYGPATH_W) 'newfstatat.c'; else $(CYGPATH_W) '$(srcdir)/newfstatat.c'; fi`
-
-pread64_pwrite64-pread64-pwrite64.o: pread64-pwrite64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pread64_pwrite64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pread64_pwrite64-pread64-pwrite64.o -MD -MP -MF $(DEPDIR)/pread64_pwrite64-pread64-pwrite64.Tpo -c -o pread64_pwrite64-pread64-pwrite64.o `test -f 'pread64-pwrite64.c' || echo '$(srcdir)/'`pread64-pwrite64.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/pread64_pwrite64-pread64-pwrite64.Tpo $(DEPDIR)/pread64_pwrite64-pread64-pwrite64.Po
-#	$(AM_V_CC)source='pread64-pwrite64.c' object='pread64_pwrite64-pread64-pwrite64.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pread64_pwrite64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pread64_pwrite64-pread64-pwrite64.o `test -f 'pread64-pwrite64.c' || echo '$(srcdir)/'`pread64-pwrite64.c
-
-pread64_pwrite64-pread64-pwrite64.obj: pread64-pwrite64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pread64_pwrite64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pread64_pwrite64-pread64-pwrite64.obj -MD -MP -MF $(DEPDIR)/pread64_pwrite64-pread64-pwrite64.Tpo -c -o pread64_pwrite64-pread64-pwrite64.obj `if test -f 'pread64-pwrite64.c'; then $(CYGPATH_W) 'pread64-pwrite64.c'; else $(CYGPATH_W) '$(srcdir)/pread64-pwrite64.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/pread64_pwrite64-pread64-pwrite64.Tpo $(DEPDIR)/pread64_pwrite64-pread64-pwrite64.Po
-#	$(AM_V_CC)source='pread64-pwrite64.c' object='pread64_pwrite64-pread64-pwrite64.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pread64_pwrite64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pread64_pwrite64-pread64-pwrite64.obj `if test -f 'pread64-pwrite64.c'; then $(CYGPATH_W) 'pread64-pwrite64.c'; else $(CYGPATH_W) '$(srcdir)/pread64-pwrite64.c'; fi`
-
-preadv-preadv.o: preadv.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(preadv_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT preadv-preadv.o -MD -MP -MF $(DEPDIR)/preadv-preadv.Tpo -c -o preadv-preadv.o `test -f 'preadv.c' || echo '$(srcdir)/'`preadv.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/preadv-preadv.Tpo $(DEPDIR)/preadv-preadv.Po
-#	$(AM_V_CC)source='preadv.c' object='preadv-preadv.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(preadv_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o preadv-preadv.o `test -f 'preadv.c' || echo '$(srcdir)/'`preadv.c
-
-preadv-preadv.obj: preadv.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(preadv_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT preadv-preadv.obj -MD -MP -MF $(DEPDIR)/preadv-preadv.Tpo -c -o preadv-preadv.obj `if test -f 'preadv.c'; then $(CYGPATH_W) 'preadv.c'; else $(CYGPATH_W) '$(srcdir)/preadv.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/preadv-preadv.Tpo $(DEPDIR)/preadv-preadv.Po
-#	$(AM_V_CC)source='preadv.c' object='preadv-preadv.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(preadv_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o preadv-preadv.obj `if test -f 'preadv.c'; then $(CYGPATH_W) 'preadv.c'; else $(CYGPATH_W) '$(srcdir)/preadv.c'; fi`
-
-preadv_pwritev-preadv-pwritev.o: preadv-pwritev.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(preadv_pwritev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT preadv_pwritev-preadv-pwritev.o -MD -MP -MF $(DEPDIR)/preadv_pwritev-preadv-pwritev.Tpo -c -o preadv_pwritev-preadv-pwritev.o `test -f 'preadv-pwritev.c' || echo '$(srcdir)/'`preadv-pwritev.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/preadv_pwritev-preadv-pwritev.Tpo $(DEPDIR)/preadv_pwritev-preadv-pwritev.Po
-#	$(AM_V_CC)source='preadv-pwritev.c' object='preadv_pwritev-preadv-pwritev.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(preadv_pwritev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o preadv_pwritev-preadv-pwritev.o `test -f 'preadv-pwritev.c' || echo '$(srcdir)/'`preadv-pwritev.c
-
-preadv_pwritev-preadv-pwritev.obj: preadv-pwritev.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(preadv_pwritev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT preadv_pwritev-preadv-pwritev.obj -MD -MP -MF $(DEPDIR)/preadv_pwritev-preadv-pwritev.Tpo -c -o preadv_pwritev-preadv-pwritev.obj `if test -f 'preadv-pwritev.c'; then $(CYGPATH_W) 'preadv-pwritev.c'; else $(CYGPATH_W) '$(srcdir)/preadv-pwritev.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/preadv_pwritev-preadv-pwritev.Tpo $(DEPDIR)/preadv_pwritev-preadv-pwritev.Po
-#	$(AM_V_CC)source='preadv-pwritev.c' object='preadv_pwritev-preadv-pwritev.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(preadv_pwritev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o preadv_pwritev-preadv-pwritev.obj `if test -f 'preadv-pwritev.c'; then $(CYGPATH_W) 'preadv-pwritev.c'; else $(CYGPATH_W) '$(srcdir)/preadv-pwritev.c'; fi`
-
-pwritev-pwritev.o: pwritev.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pwritev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pwritev-pwritev.o -MD -MP -MF $(DEPDIR)/pwritev-pwritev.Tpo -c -o pwritev-pwritev.o `test -f 'pwritev.c' || echo '$(srcdir)/'`pwritev.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/pwritev-pwritev.Tpo $(DEPDIR)/pwritev-pwritev.Po
-#	$(AM_V_CC)source='pwritev.c' object='pwritev-pwritev.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pwritev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pwritev-pwritev.o `test -f 'pwritev.c' || echo '$(srcdir)/'`pwritev.c
-
-pwritev-pwritev.obj: pwritev.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pwritev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pwritev-pwritev.obj -MD -MP -MF $(DEPDIR)/pwritev-pwritev.Tpo -c -o pwritev-pwritev.obj `if test -f 'pwritev.c'; then $(CYGPATH_W) 'pwritev.c'; else $(CYGPATH_W) '$(srcdir)/pwritev.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/pwritev-pwritev.Tpo $(DEPDIR)/pwritev-pwritev.Po
-#	$(AM_V_CC)source='pwritev.c' object='pwritev-pwritev.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pwritev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pwritev-pwritev.obj `if test -f 'pwritev.c'; then $(CYGPATH_W) 'pwritev.c'; else $(CYGPATH_W) '$(srcdir)/pwritev.c'; fi`
-
-stat64-stat64.o: stat64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT stat64-stat64.o -MD -MP -MF $(DEPDIR)/stat64-stat64.Tpo -c -o stat64-stat64.o `test -f 'stat64.c' || echo '$(srcdir)/'`stat64.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/stat64-stat64.Tpo $(DEPDIR)/stat64-stat64.Po
-#	$(AM_V_CC)source='stat64.c' object='stat64-stat64.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o stat64-stat64.o `test -f 'stat64.c' || echo '$(srcdir)/'`stat64.c
-
-stat64-stat64.obj: stat64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT stat64-stat64.obj -MD -MP -MF $(DEPDIR)/stat64-stat64.Tpo -c -o stat64-stat64.obj `if test -f 'stat64.c'; then $(CYGPATH_W) 'stat64.c'; else $(CYGPATH_W) '$(srcdir)/stat64.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/stat64-stat64.Tpo $(DEPDIR)/stat64-stat64.Po
-#	$(AM_V_CC)source='stat64.c' object='stat64-stat64.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o stat64-stat64.obj `if test -f 'stat64.c'; then $(CYGPATH_W) 'stat64.c'; else $(CYGPATH_W) '$(srcdir)/stat64.c'; fi`
-
-statfs-statfs.o: statfs.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(statfs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT statfs-statfs.o -MD -MP -MF $(DEPDIR)/statfs-statfs.Tpo -c -o statfs-statfs.o `test -f 'statfs.c' || echo '$(srcdir)/'`statfs.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/statfs-statfs.Tpo $(DEPDIR)/statfs-statfs.Po
-#	$(AM_V_CC)source='statfs.c' object='statfs-statfs.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(statfs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o statfs-statfs.o `test -f 'statfs.c' || echo '$(srcdir)/'`statfs.c
-
-statfs-statfs.obj: statfs.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(statfs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT statfs-statfs.obj -MD -MP -MF $(DEPDIR)/statfs-statfs.Tpo -c -o statfs-statfs.obj `if test -f 'statfs.c'; then $(CYGPATH_W) 'statfs.c'; else $(CYGPATH_W) '$(srcdir)/statfs.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/statfs-statfs.Tpo $(DEPDIR)/statfs-statfs.Po
-#	$(AM_V_CC)source='statfs.c' object='statfs-statfs.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(statfs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o statfs-statfs.obj `if test -f 'statfs.c'; then $(CYGPATH_W) 'statfs.c'; else $(CYGPATH_W) '$(srcdir)/statfs.c'; fi`
-
-truncate64-truncate64.o: truncate64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(truncate64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT truncate64-truncate64.o -MD -MP -MF $(DEPDIR)/truncate64-truncate64.Tpo -c -o truncate64-truncate64.o `test -f 'truncate64.c' || echo '$(srcdir)/'`truncate64.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/truncate64-truncate64.Tpo $(DEPDIR)/truncate64-truncate64.Po
-#	$(AM_V_CC)source='truncate64.c' object='truncate64-truncate64.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(truncate64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o truncate64-truncate64.o `test -f 'truncate64.c' || echo '$(srcdir)/'`truncate64.c
-
-truncate64-truncate64.obj: truncate64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(truncate64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT truncate64-truncate64.obj -MD -MP -MF $(DEPDIR)/truncate64-truncate64.Tpo -c -o truncate64-truncate64.obj `if test -f 'truncate64.c'; then $(CYGPATH_W) 'truncate64.c'; else $(CYGPATH_W) '$(srcdir)/truncate64.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/truncate64-truncate64.Tpo $(DEPDIR)/truncate64-truncate64.Po
-#	$(AM_V_CC)source='truncate64.c' object='truncate64-truncate64.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(truncate64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o truncate64-truncate64.obj `if test -f 'truncate64.c'; then $(CYGPATH_W) 'truncate64.c'; else $(CYGPATH_W) '$(srcdir)/truncate64.c'; fi`
-
-uio-uio.o: uio.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(uio_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uio-uio.o -MD -MP -MF $(DEPDIR)/uio-uio.Tpo -c -o uio-uio.o `test -f 'uio.c' || echo '$(srcdir)/'`uio.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/uio-uio.Tpo $(DEPDIR)/uio-uio.Po
-#	$(AM_V_CC)source='uio.c' object='uio-uio.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(uio_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uio-uio.o `test -f 'uio.c' || echo '$(srcdir)/'`uio.c
-
-uio-uio.obj: uio.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(uio_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uio-uio.obj -MD -MP -MF $(DEPDIR)/uio-uio.Tpo -c -o uio-uio.obj `if test -f 'uio.c'; then $(CYGPATH_W) 'uio.c'; else $(CYGPATH_W) '$(srcdir)/uio.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/uio-uio.Tpo $(DEPDIR)/uio-uio.Po
-#	$(AM_V_CC)source='uio.c' object='uio-uio.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(uio_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uio-uio.obj `if test -f 'uio.c'; then $(CYGPATH_W) 'uio.c'; else $(CYGPATH_W) '$(srcdir)/uio.c'; fi`
-check-valgrind-local: 
-
-ID: $(am__tagged_files)
-	$(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	set x; \
-	here=`pwd`; \
-	$(am__define_uniq_tagged_files); \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	$(am__define_uniq_tagged_files); \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
-	list='$(am__tagged_files)'; \
-	case "$(srcdir)" in \
-	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-	  *) sdir=$(subdir)/$(srcdir) ;; \
-	esac; \
-	for i in $$list; do \
-	  if test -f "$$i"; then \
-	    echo "$(subdir)/$$i"; \
-	  else \
-	    echo "$$sdir/$$i"; \
-	  fi; \
-	done >> $(top_builddir)/cscope.files
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-# Recover from deleted '.trs' file; this should ensure that
-# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
-# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
-# to avoid problems with "make -n".
-.log.trs:
-	rm -f $< $@
-	$(MAKE) $(AM_MAKEFLAGS) $<
-
-# Leading 'am--fnord' is there to ensure the list of targets does not
-# expand to empty, as could happen e.g. with make check TESTS=''.
-am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
-am--force-recheck:
-	@:
-
-$(TEST_SUITE_LOG): $(TEST_LOGS)
-	@$(am__set_TESTS_bases); \
-	am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
-	redo_bases=`for i in $$bases; do \
-	              am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
-	            done`; \
-	if test -n "$$redo_bases"; then \
-	  redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
-	  redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
-	  if $(am__make_dryrun); then :; else \
-	    rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
-	  fi; \
-	fi; \
-	if test -n "$$am__remaking_logs"; then \
-	  echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
-	       "recursion detected" >&2; \
-	else \
-	  am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
-	fi; \
-	if $(am__make_dryrun); then :; else \
-	  st=0;  \
-	  errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
-	  for i in $$redo_bases; do \
-	    test -f $$i.trs && test -r $$i.trs \
-	      || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
-	    test -f $$i.log && test -r $$i.log \
-	      || { echo "$$errmsg $$i.log" >&2; st=1; }; \
-	  done; \
-	  test $$st -eq 0 || exit 1; \
-	fi
-	@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
-	ws='[ 	]'; \
-	results=`for b in $$bases; do echo $$b.trs; done`; \
-	test -n "$$results" || results=/dev/null; \
-	all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
-	pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
-	fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
-	skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
-	xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
-	xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
-	error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
-	if test `expr $$fail + $$xpass + $$error` -eq 0; then \
-	  success=true; \
-	else \
-	  success=false; \
-	fi; \
-	br='==================='; br=$$br$$br$$br$$br; \
-	result_count () \
-	{ \
-	    if test x"$$1" = x"--maybe-color"; then \
-	      maybe_colorize=yes; \
-	    elif test x"$$1" = x"--no-color"; then \
-	      maybe_colorize=no; \
-	    else \
-	      echo "$@: invalid 'result_count' usage" >&2; exit 4; \
-	    fi; \
-	    shift; \
-	    desc=$$1 count=$$2; \
-	    if test $$maybe_colorize = yes && test $$count -gt 0; then \
-	      color_start=$$3 color_end=$$std; \
-	    else \
-	      color_start= color_end=; \
-	    fi; \
-	    echo "$${color_start}# $$desc $$count$${color_end}"; \
-	}; \
-	create_testsuite_report () \
-	{ \
-	  result_count $$1 "TOTAL:" $$all   "$$brg"; \
-	  result_count $$1 "PASS: " $$pass  "$$grn"; \
-	  result_count $$1 "SKIP: " $$skip  "$$blu"; \
-	  result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
-	  result_count $$1 "FAIL: " $$fail  "$$red"; \
-	  result_count $$1 "XPASS:" $$xpass "$$red"; \
-	  result_count $$1 "ERROR:" $$error "$$mgn"; \
-	}; \
-	{								\
-	  echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |	\
-	    $(am__rst_title);						\
-	  create_testsuite_report --no-color;				\
-	  echo;								\
-	  echo ".. contents:: :depth: 2";				\
-	  echo;								\
-	  for b in $$bases; do echo $$b; done				\
-	    | $(am__create_global_log);					\
-	} >$(TEST_SUITE_LOG).tmp || exit 1;				\
-	mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);			\
-	if $$success; then						\
-	  col="$$grn";							\
-	 else								\
-	  col="$$red";							\
-	  test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);		\
-	fi;								\
-	echo "$${col}$$br$${std}"; 					\
-	echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";	\
-	echo "$${col}$$br$${std}"; 					\
-	create_testsuite_report --maybe-color;				\
-	echo "$$col$$br$$std";						\
-	if $$success; then :; else					\
-	  echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";		\
-	  if test -n "$(PACKAGE_BUGREPORT)"; then			\
-	    echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}";	\
-	  fi;								\
-	  echo "$$col$$br$$std";					\
-	fi;								\
-	$$success || exit 1
-
-check-TESTS:
-	@list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
-	@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
-	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-	@set +e; $(am__set_TESTS_bases); \
-	log_list=`for i in $$bases; do echo $$i.log; done`; \
-	trs_list=`for i in $$bases; do echo $$i.trs; done`; \
-	log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
-	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
-	exit $$?;
-recheck: all $(check_LIBRARIES) $(check_PROGRAMS)
-	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-	@set +e; $(am__set_TESTS_bases); \
-	bases=`for i in $$bases; do echo $$i; done \
-	         | $(am__list_recheck_tests)` || exit 1; \
-	log_list=`for i in $$bases; do echo $$i.log; done`; \
-	log_list=`echo $$log_list`; \
-	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
-	        am__force_recheck=am--force-recheck \
-	        TEST_LOGS="$$log_list"; \
-	exit $$?
-.test.log:
-	@p='$<'; \
-	$(am__set_b); \
-	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-#.test$(EXEEXT).log:
-#	@p='$<'; \
-#	$(am__set_b); \
-#	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
-#	--log-file $$b.log --trs-file $$b.trs \
-#	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
-#	"$$tst" $(AM_TESTS_FD_REDIRECT)
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-	$(MAKE) $(AM_MAKEFLAGS) $(check_LIBRARIES) $(check_PROGRAMS)
-	$(MAKE) $(AM_MAKEFLAGS) check-TESTS
-check: check-am
-all-am: Makefile
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-	-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
-	-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
-	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-
-clean-generic:
-	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-check-valgrind: check-valgrind-am
-
-check-valgrind-am: check-valgrind-local
-
-clean: clean-am
-
-clean-am: clean-checkLIBRARIES clean-checkPROGRAMS clean-generic \
-	clean-local mostlyclean-am
-
-distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: check-am install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am \
-	check-valgrind-am check-valgrind-local clean \
-	clean-checkLIBRARIES clean-checkPROGRAMS clean-generic \
-	clean-local cscopelist-am ctags ctags-am distclean \
-	distclean-compile distclean-generic distclean-tags distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic pdf pdf-am ps ps-am recheck tags tags-am \
-	uninstall uninstall-am
-
-
-$(srcdir)/_newselect.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/accept.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/accept4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/access.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/acct.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/add_key.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/adjtimex.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/aio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/alarm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/bpf.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/btrfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/chmod.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/chown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/chown32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/chroot.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/clock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/clock_adjtime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/clock_nanosleep.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/clock_xettime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/copy_file_range.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/creat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/delete_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/dup.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/dup2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/dup3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/epoll_create.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/epoll_create1.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/epoll_ctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/epoll_pwait.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/epoll_wait.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/erestartsys.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/execveat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/execveat-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/faccessat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fadvise64_64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fallocate.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fanotify_init.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fanotify_mark.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fchdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fchmod.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fchmodat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fchown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fchown32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fchownat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fcntl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fcntl64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fdatasync.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/file_handle.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/file_ioctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/finit_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/flock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fork-f.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fstat64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fstatat64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fstatfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fstatfs64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fsync.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ftruncate.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ftruncate64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/futimesat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/get_mempolicy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getcpu.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getcwd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getdents.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getdents64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getegid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getegid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/geteuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/geteuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getgroups.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getgroups32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getpeername.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getpgrp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getpid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getppid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getrandom.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getresgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getresgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getresuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getresuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getrlimit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getrusage.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getsid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getsockname.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/gettid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getxxid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/inet-cmsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/init_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/inotify.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/inotify_init1.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/int_0x80.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_block.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_evdev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_evdev-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_loop.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_loop-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_mtd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_rtc.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_rtc-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_scsi.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_sg_io_v3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_sg_io_v4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_uffdio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_v4l2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioperm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/iopl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioprio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ip_mreq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ipc.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ipc_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ipc_sem.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ipc_shm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/kcmp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/kexec_file_load.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/kexec_load.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/keyctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/kill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/lchown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/lchown32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/link.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/linkat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/lookup_dcookie.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/lstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/lstat64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/madvise.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mbind.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/membarrier.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/memfd_create.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/migrate_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mincore.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mkdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mkdirat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mknod.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mknodat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mlock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mlock2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mlockall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mmap64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mmsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mmsg-silent.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mmsg_name.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mmsg_name-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mount.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/move_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mq_sendrecv.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mq_sendrecv-read.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mq_sendrecv-write.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/msg_control.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/msg_control-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/msg_name.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/munlockall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/nanosleep.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/net-icmp_filter.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/net-sockaddr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/netlink_protocol.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/newfstatat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/old_mmap.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/oldfstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/oldlstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/oldstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/open.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/openat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/osf_utimes.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/pause.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/perf_event_open.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/perf_event_open_nonverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/perf_event_open_unabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/pipe2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/pkey_alloc.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/pkey_free.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/pkey_mprotect.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ppoll.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ppoll-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/pread64-pwrite64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/preadv.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/preadv-pwritev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/preadv2-pwritev2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/printstr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/prlimit64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/process_vm_readv.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/process_vm_writev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/pselect6.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ptrace.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/pwritev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/quotactl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/quotactl-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/quotactl-xfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/quotactl-xfs-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/read-write.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/readahead.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/readdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/readlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/readlinkat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/reboot.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/recvfrom.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/recvmmsg-timeout.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/recvmsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/regex.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/remap_file_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/rename.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/renameat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/renameat2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/request_key.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/rmdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/rt_sigpending.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/rt_sigprocmask.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/rt_sigqueueinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/rt_sigreturn.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/rt_sigsuspend.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/rt_sigtimedwait.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/rt_tgsigqueueinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sched.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sched_get_priority_mxx.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sched_rr_get_interval.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sched_xetaffinity.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sched_xetattr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sched_xetparam.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sched_xetscheduler.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sched_yield.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/seccomp-filter.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/seccomp-filter-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/select.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/semop.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sendfile.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sendfile64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/set_mempolicy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setdomainname.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setfsgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setfsgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setfsuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setfsuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setgroups.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setgroups32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sethostname.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setregid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setregid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setresgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setresgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setresuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setresuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setreuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setreuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setrlimit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/shmxt.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/shutdown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/siginfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/signal_receive.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/signalfd4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sigreturn.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sigsuspend.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/socketcall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/splice.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/stat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/stat64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/statfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/statfs64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/statx.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/swap.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sxetmask.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/symlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/symlinkat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sync.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sync_file_range.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sync_file_range2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sysinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/syslog.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/tee.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/time.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/timer_create.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/timer_xettime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/timerfd_xettime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/times.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/times-fail.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/trace_fstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/trace_fstatfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/trace_lstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/trace_question.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/trace_stat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/trace_stat_like.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/trace_statfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/trace_statfs_like.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/truncate.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/truncate64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ugetrlimit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/umask.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/umoven-illptr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/umovestr-illptr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/umovestr3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/unlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/unlinkat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/unshare.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/userfaultfd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ustat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/utime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/utimensat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/utimes.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/vfork-f.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/vhangup.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/vmsplice.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/wait4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/wait4-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/waitid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/waitid-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/waitpid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/xattr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/xattr-strings.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/xet_robust_list.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/xetitimer.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/xetpgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/xetpriority.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/xettimeofday.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-
-# Valgrind check
-#
-# Optional:
-#  - VALGRIND_SUPPRESSIONS_FILES: Space-separated list of Valgrind suppressions
-#    files to load. (Default: empty)
-#  - VALGRIND_FLAGS: General flags to pass to all Valgrind tools.
-#    (Default: --num-callers=30)
-#  - VALGRIND_$toolname_FLAGS: Flags to pass to Valgrind $toolname (one of:
-#    memcheck, helgrind, drd, sgcheck). (Default: various)
-
-# Optional variables
-VALGRIND_SUPPRESSIONS ?= $(addprefix --suppressions=,$(VALGRIND_SUPPRESSIONS_FILES))
-VALGRIND_FLAGS ?= --num-callers=30
-VALGRIND_memcheck_FLAGS ?= --leak-check=full --show-reachable=no
-VALGRIND_helgrind_FLAGS ?= --history-level=approx
-VALGRIND_drd_FLAGS ?=
-VALGRIND_sgcheck_FLAGS ?=
-
-# Internal use
-valgrind_log_files = $(addprefix test-suite-,$(addsuffix .log,$(valgrind_tools)))
-
-valgrind_memcheck_flags = --tool=memcheck $(VALGRIND_memcheck_FLAGS)
-valgrind_helgrind_flags = --tool=helgrind $(VALGRIND_helgrind_FLAGS)
-valgrind_drd_flags = --tool=drd $(VALGRIND_drd_FLAGS)
-valgrind_sgcheck_flags = --tool=exp-sgcheck $(VALGRIND_sgcheck_FLAGS)
-
-valgrind_quiet = $(valgrind_quiet_$(V))
-valgrind_quiet_ = $(valgrind_quiet_$(AM_DEFAULT_VERBOSITY))
-valgrind_quiet_0 = --quiet
-valgrind_v_use   = $(valgrind_v_use_$(V))
-valgrind_v_use_  = $(valgrind_v_use_$(AM_DEFAULT_VERBOSITY))
-valgrind_v_use_0 = @echo "  USE   " $(patsubst check-valgrind-%,%,$@):;
-
-# Support running with and without libtool.
-ifneq ($(LIBTOOL),)
-valgrind_lt = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=execute
-else
-valgrind_lt =
-endif
-
-# Use recursive makes in order to ignore errors during check
-check-valgrind:
-ifeq ($(VALGRIND_ENABLED),yes)
-	-$(AM_V_at)$(foreach tool,$(valgrind_enabled_tools), \
-		$(MAKE) $(AM_MAKEFLAGS) -k check-valgrind-$(tool); \
-	)
-else
-	@echo "Need to reconfigure with --enable-valgrind"
-endif
-
-# Valgrind running
-VALGRIND_TESTS_ENVIRONMENT = \
-	$(TESTS_ENVIRONMENT) \
-	env VALGRIND=$(VALGRIND) \
-	G_SLICE=always-malloc,debug-blocks \
-	G_DEBUG=fatal-warnings,fatal-criticals,gc-friendly
-
-VALGRIND_LOG_COMPILER = \
-	$(valgrind_lt) \
-	$(VALGRIND) $(VALGRIND_SUPPRESSIONS) --error-exitcode=1 $(VALGRIND_FLAGS)
-
-define valgrind_tool_rule =
-check-valgrind-$(1): $$(BUILT_SOURCES)
-ifeq ($$(VALGRIND_ENABLED)-$$(ENABLE_VALGRIND_$(1)),yes-yes)
-	$$(valgrind_v_use)$$(MAKE) $$(AM_MAKEFLAGS) check-am \
-		TESTS_ENVIRONMENT="$$(VALGRIND_TESTS_ENVIRONMENT)" \
-		LOG_COMPILER="$$(VALGRIND_LOG_COMPILER)" \
-		LOG_FLAGS="$$(valgrind_$(1)_flags)" \
-		TEST_SUITE_LOG=test-suite-$(1).log
-else ifeq ($$(VALGRIND_ENABLED),yes)
-	@echo "Need to reconfigure with --enable-valgrind-$(1)"
-else
-	@echo "Need to reconfigure with --enable-valgrind"
-endif
-endef
-
-$(foreach tool,$(valgrind_tools),$(eval $(call valgrind_tool_rule,$(tool))))
-
-AM_DISTCHECK_CONFIGURE_FLAGS ?=
-AM_DISTCHECK_CONFIGURE_FLAGS += --disable-valgrind
-
-MOSTLYCLEANFILES ?=
-MOSTLYCLEANFILES += $(valgrind_log_files)
-
-.PHONY: check-valgrind $(add-prefix check-valgrind-,$(valgrind_tools))
-
-
-ksysent.h: $(srcdir)/ksysent.sed
-	echo '#include <asm/unistd.h>' | \
-		$(CPP) $(AM_CPPFLAGS) $(CPPFLAGS) -dM - > $@.t1
-	LC_COLLATE=C sed -r -n -f $(srcdir)/ksysent.sed < $@.t1 > $@.t2
-	mv -f $@.t2 $@
-	rm -f $@.t1
-
-ksysent.$(OBJEXT): ksysent.h
-$(objects): scno.h
-
-clean-local: clean-local-check
-.PHONY: clean-local-check
-clean-local-check:
-	-rm -rf -- $(TESTS:.test=.dir) $(GEN_TESTS:.gen.test=.dir)
-
-syscallent.i: $(top_srcdir)/$(OS)/$(ARCH)/syscallent.h
-	$(CPP) -P $(SCNO_CPPFLAGS) $^ -o $@
-
-scno.h: $(top_srcdir)/scno.head syscallent.i
-	echo '/* Generated by Makefile from $^; do not edit. */' > $@-t
-	cat $< >> $@-t
-	LC_ALL=C sed -n '$(SCNO_SED)' $(filter-out $<,$^) >> $@-t
-	mv $@-t $@
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/tests-m32/Makefile.am b/tests-m32/Makefile.am
new file mode 100644
index 0000000..c255fd6
--- /dev/null
+++ b/tests-m32/Makefile.am
@@ -0,0 +1,390 @@
+# Automake input for strace tests.
+#
+# Copyright (c) 2011-2016 Dmitry V. Levin <ldv@altlinux.org>
+# Copyright (c) 2011-2017 The strace developers.
+# 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.
+
+OS = linux
+ARCH = @arch_m32@
+MPERS_NAME = m32
+ARCH_MFLAGS = -DMPERS_IS_$(MPERS_NAME) -m32
+AM_CFLAGS = $(WARN_CFLAGS)
+AM_CPPFLAGS = $(ARCH_MFLAGS) \
+	      -I$(builddir) \
+	      -I$(top_builddir)/$(OS)/$(ARCH) \
+	      -I$(top_srcdir)/$(OS)/$(ARCH) \
+	      -I$(top_builddir)/$(OS) \
+	      -I$(top_srcdir)/$(OS) \
+	      -I$(top_builddir) \
+	      -I$(top_srcdir)
+AM_LDFLAGS = $(ARCH_MFLAGS)
+
+libtests_a_SOURCES = \
+	create_nl_socket.c \
+	errno2name.c \
+	error_msg.c \
+	fill_memory.c \
+	get_page_size.c \
+	get_sigset_size.c \
+	hexdump_strdup.c \
+	hexquote_strndup.c \
+	inode_of_sockfd.c \
+	libmmsg.c \
+	libsocketcall.c \
+	overflowuid.c \
+	pipe_maxfd.c \
+	print_quoted_string.c \
+	print_time.c \
+	printflags.c \
+	printxval.c \
+	signal2name.c \
+	skip_unavailable.c \
+	sprintrc.c \
+	tail_alloc.c \
+	test_nlattr.h \
+	tests.h \
+	tprintf.c \
+	# end of libtests_a_SOURCES
+libtests_a_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+check_LIBRARIES = libtests.a
+LDADD = libtests.a
+
+include pure_executables.am
+
+check_PROGRAMS = $(PURE_EXECUTABLES) \
+	answer \
+	attach-f-p \
+	attach-f-p-cmd \
+	attach-p-cmd-cmd \
+	attach-p-cmd-p \
+	block_reset_raise_run \
+	caps-abbrev \
+	count-f \
+	execve-v \
+	execveat-v \
+	filter-unavailable \
+	fork-f \
+	getpid	\
+	getppid	\
+	gettid \
+	int_0x80 \
+	ioctl_dm-v \
+	ioctl_evdev-v \
+	ioctl_loop-nv \
+	ioctl_loop-v \
+	ioctl_nsfs \
+	ioctl_rtc-v \
+	ksysent \
+	mmsg-silent \
+	mmsg_name-v \
+	msg_control-v \
+	net-accept-connect \
+	netlink_inet_diag \
+	netlink_netlink_diag \
+	netlink_unix_diag \
+	nsyscalls \
+	pc \
+	perf_event_open_nonverbose \
+	perf_event_open_unabbrev \
+	ppoll-v \
+	prctl-seccomp-filter-v \
+	prctl-seccomp-strict \
+	print_maxfd \
+	qual_fault \
+	qual_inject-error-signal \
+	qual_inject-retval \
+	qual_inject-signal \
+	qual_signal \
+	quotactl-v \
+	quotactl-xfs-v \
+	redirect-fds \
+	restart_syscall \
+	run_expect_termsig \
+	scm_rights \
+	seccomp-filter-v \
+	seccomp-strict \
+	set_ptracer_any \
+	signal_receive \
+	sleep \
+	stack-fcall \
+	threads-execve \
+	unblock_reset_raise \
+	unix-pair-send-recv \
+	unix-pair-sendto-recvfrom \
+	vfork-f \
+	wait4-v \
+	waitid-v \
+	zeroargc \
+	# end of check_PROGRAMS
+
+attach_f_p_LDADD = -lrt -lpthread $(LDADD)
+clock_xettime_LDADD = -lrt $(LDADD)
+count_f_LDADD = -lpthread $(LDADD)
+filter_unavailable_LDADD = -lpthread $(LDADD)
+fstat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+fstatat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+ftruncate64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+lstat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+mmap64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+mq_LDADD = -lrt $(LDADD)
+mq_sendrecv_LDADD = -lrt $(LDADD)
+mq_sendrecv_read_LDADD = -lrt $(LDADD)
+mq_sendrecv_write_LDADD = -lrt $(LDADD)
+newfstatat_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+pc_LDADD = $(dl_LIBS) $(LDADD)
+pread64_pwrite64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+preadv_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+preadv_pwritev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+pwritev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+stat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+statfs_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+threads_execve_LDADD = -lrt -lpthread $(LDADD)
+times_LDADD = -lrt $(LDADD)
+truncate64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+uio_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+
+stack_fcall_SOURCES = stack-fcall.c \
+	stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
+
+include gen_tests.am
+
+if USE_LIBUNWIND
+LIBUNWIND_TESTS = strace-k.test
+else
+LIBUNWIND_TESTS =
+endif
+
+DECODER_TESTS = \
+	brk.test \
+	btrfs-v.test \
+	btrfs-vw.test \
+	btrfs-w.test \
+	caps-abbrev.test \
+	caps.test \
+	eventfd.test \
+	execve-v.test \
+	execve.test \
+	fadvise64.test \
+	futex.test \
+	getuid.test \
+	ioctl.test \
+	ioctl_dm-v.test \
+	ioctl_dm.test \
+	ioctl_loop-nv.test \
+	ioctl_nsfs.test \
+	ioctl_sock_gifconf.test \
+	ipc_msgbuf.test \
+	llseek.test \
+	lseek.test \
+	mmap.test \
+	net-y-unix.test \
+	net-yy-inet.test \
+	net-yy-netlink.test \
+	net-yy-unix.test \
+	net.test \
+	netlink_sock_diag.test \
+	nsyscalls.test \
+	oldselect.test \
+	personality.test \
+	pipe.test \
+	poll.test \
+	prctl-arg2-intptr.test \
+	prctl-dumpable.test \
+	prctl-name.test \
+	prctl-no-args.test \
+	prctl-pdeathsig.test \
+	prctl-seccomp-filter-v.test \
+	prctl-seccomp-strict.test \
+	prctl-securebits.test \
+	prctl-tid_address.test \
+	prctl-tsc.test \
+	qual_fault-exit_group.test \
+	readv.test \
+	rt_sigaction.test \
+	scm_rights-fd.test \
+	seccomp-strict.test \
+	sigaltstack.test \
+	sun_path.test \
+	uio.test \
+	umount.test \
+	umount2.test \
+	umovestr.test \
+	umovestr2.test \
+	uname.test \
+	unix-pair-send-recv.test \
+	unix-pair-sendto-recvfrom.test \
+	# end of DECODER_TESTS
+
+MISC_TESTS = \
+	attach-f-p.test \
+	attach-p-cmd.test \
+	bexecve.test \
+	count-f.test \
+	count.test \
+	detach-running.test \
+	detach-sleeping.test \
+	detach-stopped.test \
+	filter-unavailable.test \
+	get_regs.test \
+	interactive_block.test \
+	ksysent.test \
+	opipe.test \
+	options-syntax.test \
+	pc.test \
+	qual_fault-syntax.test \
+	qual_fault.test \
+	qual_inject-error-signal.test \
+	qual_inject-retval.test \
+	qual_inject-signal.test \
+	qual_inject-syntax.test \
+	qual_signal.test \
+	qual_syscall.test \
+	redirect-fds.test \
+	redirect.test \
+	restart_syscall.test \
+	strace-C.test \
+	strace-E.test \
+	strace-S.test \
+	strace-T.test \
+	strace-V.test \
+	strace-ff.test \
+	strace-r.test \
+	strace-t.test \
+	strace-tt.test \
+	strace-ttt.test \
+	termsig.test \
+	threads-execve.test \
+	# end of MISC_TESTS
+
+TESTS = $(GEN_TESTS) $(DECODER_TESTS) $(MISC_TESTS) $(LIBUNWIND_TESTS)
+
+XFAIL_TESTS_ =
+XFAIL_TESTS_m32 = $(LIBUNWIND_TESTS)
+XFAIL_TESTS_mx32 = $(LIBUNWIND_TESTS)
+XFAIL_TESTS_x86_64 = int_0x80.gen.test
+XFAIL_TESTS_x32 = int_0x80.gen.test
+XFAIL_TESTS = $(XFAIL_TESTS_$(MPERS_NAME)) $(XFAIL_TESTS_$(ARCH))
+
+TEST_LOG_COMPILER = env
+AM_TEST_LOG_FLAGS = STRACE_ARCH=$(ARCH) MIPS_ABI=$(MIPS_ABI) $(srcdir)/run.sh
+
+@VALGRIND_CHECK_RULES@
+VALGRIND_FLAGS = --quiet
+VALGRIND_SUPPRESSIONS_FILES = $(srcdir)/strace.supp
+
+EXTRA_DIST = \
+	caps-abbrev.awk \
+	caps.awk \
+	clock.in \
+	count-f.expected \
+	eventfd.expected \
+	fadvise.h \
+	filter-unavailable.expected \
+	fstatat.c \
+	fstatx.c \
+	gen_pure_executables.sh \
+	gen_tests.in \
+	gen_tests.sh \
+	getresugid.c \
+	init.sh \
+	init_delete_module.h \
+	ioctl-v.sh \
+	ipc.sh \
+	ipc_msgbuf.expected \
+	ksysent.sed \
+	lstatx.c \
+	match.awk \
+	net.expected \
+	oldselect.expected \
+	pipe.expected \
+	process_vm_readv_writev.c \
+	pure_executables.list \
+	qual_fault-exit_group.expected \
+	qual_inject-error-signal.expected \
+	qual_inject-signal.expected \
+	quotactl.h \
+	regex.in \
+	rt_sigaction.awk \
+	run.sh \
+	sched.in \
+	scno_tampering.sh \
+	setfsugid.c \
+	setresugid.c \
+	setreugid.c \
+	setugid.c \
+	sigaltstack.expected \
+	sockname.c \
+	strace-C.expected \
+	strace-E.expected \
+	strace-T.expected \
+	strace-ff.expected \
+	strace-k.test \
+	strace-r.expected \
+	strace.supp \
+	struct_flock.c \
+	sun_path.expected \
+	trace_fstat.in \
+	trace_fstatfs.in \
+	trace_lstat.in \
+	trace_question.in \
+	trace_stat.in \
+	trace_stat_like.in \
+	trace_statfs.in \
+	trace_statfs_like.in \
+	uio.expected \
+	umode_t.c \
+	umovestr.expected \
+	unix-pair-send-recv.expected \
+	unix-pair-sendto-recvfrom.expected \
+	xchownx.c \
+	xgetrlimit.c \
+	xselect.c \
+	xstatfs.c \
+	xstatfs64.c \
+	xstatfsx.c \
+	xstatx.c \
+	xutimes.c \
+	$(TESTS)
+
+ksysent.h: $(srcdir)/ksysent.sed
+	echo '#include <asm/unistd.h>' | \
+		$(CPP) $(AM_CPPFLAGS) $(CPPFLAGS) -dM - > $@.t1
+	LC_COLLATE=C sed -r -n -f $(srcdir)/ksysent.sed < $@.t1 > $@.t2
+	mv -f $@.t2 $@
+	rm -f $@.t1
+
+ksysent.$(OBJEXT): ksysent.h
+
+objects = $(filter %.$(OBJEXT),$(SOURCES:.c=.$(OBJEXT)))
+$(objects): scno.h
+
+clean-local: clean-local-check
+.PHONY: clean-local-check
+clean-local-check:
+	-rm -rf -- $(TESTS:.test=.dir) $(GEN_TESTS:.gen.test=.dir)
+
+CLEANFILES = ksysent.h
+
+include ../scno.am
diff --git a/tests-m32/Makefile.in b/tests-m32/Makefile.in
index 3d7d2a5..0181934 100644
--- a/tests-m32/Makefile.in
+++ b/tests-m32/Makefile.in
@@ -138,14 +138,14 @@
 	$(top_srcdir)/test-driver
 check_PROGRAMS = $(am__EXEEXT_1) answer$(EXEEXT) attach-f-p$(EXEEXT) \
 	attach-f-p-cmd$(EXEEXT) attach-p-cmd-cmd$(EXEEXT) \
-	attach-p-cmd-p$(EXEEXT) caps-abbrev$(EXEEXT) count-f$(EXEEXT) \
-	execve-v$(EXEEXT) execveat-v$(EXEEXT) \
-	filter-unavailable$(EXEEXT) fork-f$(EXEEXT) getpid$(EXEEXT) \
-	getppid$(EXEEXT) gettid$(EXEEXT) int_0x80$(EXEEXT) \
-	ioctl_dm-v$(EXEEXT) ioctl_evdev-v$(EXEEXT) \
-	ioctl_loop-nv$(EXEEXT) ioctl_loop-v$(EXEEXT) \
-	ioctl_nsfs$(EXEEXT) ioctl_rtc-v$(EXEEXT) ksysent$(EXEEXT) \
-	mmsg-silent$(EXEEXT) mmsg_name-v$(EXEEXT) \
+	attach-p-cmd-p$(EXEEXT) block_reset_raise_run$(EXEEXT) \
+	caps-abbrev$(EXEEXT) count-f$(EXEEXT) execve-v$(EXEEXT) \
+	execveat-v$(EXEEXT) filter-unavailable$(EXEEXT) \
+	fork-f$(EXEEXT) getpid$(EXEEXT) getppid$(EXEEXT) \
+	gettid$(EXEEXT) int_0x80$(EXEEXT) ioctl_dm-v$(EXEEXT) \
+	ioctl_evdev-v$(EXEEXT) ioctl_loop-nv$(EXEEXT) \
+	ioctl_loop-v$(EXEEXT) ioctl_nsfs$(EXEEXT) ioctl_rtc-v$(EXEEXT) \
+	ksysent$(EXEEXT) mmsg-silent$(EXEEXT) mmsg_name-v$(EXEEXT) \
 	msg_control-v$(EXEEXT) net-accept-connect$(EXEEXT) \
 	netlink_inet_diag$(EXEEXT) netlink_netlink_diag$(EXEEXT) \
 	netlink_unix_diag$(EXEEXT) nsyscalls$(EXEEXT) pc$(EXEEXT) \
@@ -157,12 +157,13 @@
 	qual_inject-signal$(EXEEXT) qual_signal$(EXEEXT) \
 	quotactl-v$(EXEEXT) quotactl-xfs-v$(EXEEXT) \
 	redirect-fds$(EXEEXT) restart_syscall$(EXEEXT) \
-	scm_rights$(EXEEXT) seccomp-filter-v$(EXEEXT) \
-	seccomp-strict$(EXEEXT) set_ptracer_any$(EXEEXT) \
-	signal_receive$(EXEEXT) sleep$(EXEEXT) stack-fcall$(EXEEXT) \
-	threads-execve$(EXEEXT) unix-pair-send-recv$(EXEEXT) \
+	run_expect_termsig$(EXEEXT) scm_rights$(EXEEXT) \
+	seccomp-filter-v$(EXEEXT) seccomp-strict$(EXEEXT) \
+	set_ptracer_any$(EXEEXT) signal_receive$(EXEEXT) \
+	sleep$(EXEEXT) stack-fcall$(EXEEXT) threads-execve$(EXEEXT) \
+	unblock_reset_raise$(EXEEXT) unix-pair-send-recv$(EXEEXT) \
 	unix-pair-sendto-recvfrom$(EXEEXT) vfork-f$(EXEEXT) \
-	wait4-v$(EXEEXT) waitid-v$(EXEEXT)
+	wait4-v$(EXEEXT) waitid-v$(EXEEXT) zeroargc$(EXEEXT)
 TESTS = $(GEN_TESTS) $(DECODER_TESTS) $(MISC_TESTS) $(am__EXEEXT_2)
 subdir = tests-m32
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -187,8 +188,8 @@
 am__v_AR_1 = 
 libtests_a_AR = $(AR) $(ARFLAGS)
 libtests_a_LIBADD =
-am_libtests_a_OBJECTS = libtests_a-errno2name.$(OBJEXT) \
-	libtests_a-error_msg.$(OBJEXT) \
+am_libtests_a_OBJECTS = libtests_a-create_nl_socket.$(OBJEXT) \
+	libtests_a-errno2name.$(OBJEXT) libtests_a-error_msg.$(OBJEXT) \
 	libtests_a-fill_memory.$(OBJEXT) \
 	libtests_a-get_page_size.$(OBJEXT) \
 	libtests_a-get_sigset_size.$(OBJEXT) \
@@ -264,18 +265,23 @@
 	net-icmp_filter$(EXEEXT) net-sockaddr$(EXEEXT) \
 	net-y-unix$(EXEEXT) net-yy-inet$(EXEEXT) \
 	net-yy-netlink$(EXEEXT) net-yy-unix$(EXEEXT) \
-	netlink_protocol$(EXEEXT) newfstatat$(EXEEXT) \
-	old_mmap$(EXEEXT) oldfstat$(EXEEXT) oldlstat$(EXEEXT) \
-	oldselect$(EXEEXT) oldstat$(EXEEXT) open$(EXEEXT) \
-	openat$(EXEEXT) osf_utimes$(EXEEXT) pause$(EXEEXT) \
-	perf_event_open$(EXEEXT) personality$(EXEEXT) pipe$(EXEEXT) \
-	pipe2$(EXEEXT) pkey_alloc$(EXEEXT) pkey_free$(EXEEXT) \
-	pkey_mprotect$(EXEEXT) poll$(EXEEXT) ppoll$(EXEEXT) \
-	prctl-arg2-intptr$(EXEEXT) prctl-dumpable$(EXEEXT) \
-	prctl-name$(EXEEXT) prctl-no-args$(EXEEXT) \
-	prctl-pdeathsig$(EXEEXT) prctl-securebits$(EXEEXT) \
-	prctl-tid_address$(EXEEXT) prctl-tsc$(EXEEXT) \
-	pread64-pwrite64$(EXEEXT) preadv$(EXEEXT) \
+	netlink_audit$(EXEEXT) netlink_generic$(EXEEXT) \
+	netlink_netfilter$(EXEEXT) netlink_protocol$(EXEEXT) \
+	netlink_route$(EXEEXT) netlink_selinux$(EXEEXT) \
+	netlink_sock_diag$(EXEEXT) netlink_xfrm$(EXEEXT) \
+	newfstatat$(EXEEXT) nlattr$(EXEEXT) \
+	nlattr_inet_diag_msg$(EXEEXT) nlattr_netlink_diag_msg$(EXEEXT) \
+	nlattr_unix_diag_msg$(EXEEXT) old_mmap$(EXEEXT) \
+	oldfstat$(EXEEXT) oldlstat$(EXEEXT) oldselect$(EXEEXT) \
+	oldstat$(EXEEXT) open$(EXEEXT) openat$(EXEEXT) \
+	osf_utimes$(EXEEXT) pause$(EXEEXT) perf_event_open$(EXEEXT) \
+	personality$(EXEEXT) pipe$(EXEEXT) pipe2$(EXEEXT) \
+	pkey_alloc$(EXEEXT) pkey_free$(EXEEXT) pkey_mprotect$(EXEEXT) \
+	poll$(EXEEXT) ppoll$(EXEEXT) prctl-arg2-intptr$(EXEEXT) \
+	prctl-dumpable$(EXEEXT) prctl-name$(EXEEXT) \
+	prctl-no-args$(EXEEXT) prctl-pdeathsig$(EXEEXT) \
+	prctl-securebits$(EXEEXT) prctl-tid_address$(EXEEXT) \
+	prctl-tsc$(EXEEXT) pread64-pwrite64$(EXEEXT) preadv$(EXEEXT) \
 	preadv-pwritev$(EXEEXT) preadv2-pwritev2$(EXEEXT) \
 	printstr$(EXEEXT) prlimit64$(EXEEXT) process_vm_readv$(EXEEXT) \
 	process_vm_writev$(EXEEXT) pselect6$(EXEEXT) ptrace$(EXEEXT) \
@@ -285,42 +291,43 @@
 	reboot$(EXEEXT) recvfrom$(EXEEXT) recvmmsg-timeout$(EXEEXT) \
 	recvmsg$(EXEEXT) remap_file_pages$(EXEEXT) rename$(EXEEXT) \
 	renameat$(EXEEXT) renameat2$(EXEEXT) request_key$(EXEEXT) \
-	rmdir$(EXEEXT) rt_sigpending$(EXEEXT) rt_sigprocmask$(EXEEXT) \
-	rt_sigqueueinfo$(EXEEXT) rt_sigreturn$(EXEEXT) \
-	rt_sigsuspend$(EXEEXT) rt_sigtimedwait$(EXEEXT) \
-	rt_tgsigqueueinfo$(EXEEXT) sched_get_priority_mxx$(EXEEXT) \
-	sched_rr_get_interval$(EXEEXT) sched_xetaffinity$(EXEEXT) \
-	sched_xetattr$(EXEEXT) sched_xetparam$(EXEEXT) \
-	sched_xetscheduler$(EXEEXT) sched_yield$(EXEEXT) \
-	seccomp-filter$(EXEEXT) select$(EXEEXT) semop$(EXEEXT) \
-	sendfile$(EXEEXT) sendfile64$(EXEEXT) set_mempolicy$(EXEEXT) \
-	setdomainname$(EXEEXT) setfsgid$(EXEEXT) setfsgid32$(EXEEXT) \
-	setfsuid$(EXEEXT) setfsuid32$(EXEEXT) setgid$(EXEEXT) \
-	setgid32$(EXEEXT) setgroups$(EXEEXT) setgroups32$(EXEEXT) \
-	sethostname$(EXEEXT) setns$(EXEEXT) setregid$(EXEEXT) \
-	setregid32$(EXEEXT) setresgid$(EXEEXT) setresgid32$(EXEEXT) \
-	setresuid$(EXEEXT) setresuid32$(EXEEXT) setreuid$(EXEEXT) \
-	setreuid32$(EXEEXT) setrlimit$(EXEEXT) setuid$(EXEEXT) \
-	setuid32$(EXEEXT) shmxt$(EXEEXT) shutdown$(EXEEXT) \
-	sigaction$(EXEEXT) sigaltstack$(EXEEXT) siginfo$(EXEEXT) \
-	signalfd4$(EXEEXT) sigreturn$(EXEEXT) sigsuspend$(EXEEXT) \
-	socketcall$(EXEEXT) splice$(EXEEXT) stat$(EXEEXT) \
-	stat64$(EXEEXT) statfs$(EXEEXT) statfs64$(EXEEXT) \
-	statx$(EXEEXT) swap$(EXEEXT) sxetmask$(EXEEXT) \
-	symlink$(EXEEXT) symlinkat$(EXEEXT) sync$(EXEEXT) \
-	sync_file_range$(EXEEXT) sync_file_range2$(EXEEXT) \
-	sysinfo$(EXEEXT) syslog$(EXEEXT) tee$(EXEEXT) time$(EXEEXT) \
-	timer_create$(EXEEXT) timer_xettime$(EXEEXT) \
-	timerfd_xettime$(EXEEXT) times$(EXEEXT) times-fail$(EXEEXT) \
-	truncate$(EXEEXT) truncate64$(EXEEXT) ugetrlimit$(EXEEXT) \
-	uio$(EXEEXT) umask$(EXEEXT) umount$(EXEEXT) umount2$(EXEEXT) \
-	umoven-illptr$(EXEEXT) umovestr$(EXEEXT) \
-	umovestr-illptr$(EXEEXT) umovestr2$(EXEEXT) umovestr3$(EXEEXT) \
-	uname$(EXEEXT) unlink$(EXEEXT) unlinkat$(EXEEXT) \
-	unshare$(EXEEXT) userfaultfd$(EXEEXT) ustat$(EXEEXT) \
-	utime$(EXEEXT) utimensat$(EXEEXT) utimes$(EXEEXT) \
-	vhangup$(EXEEXT) vmsplice$(EXEEXT) wait4$(EXEEXT) \
-	waitid$(EXEEXT) waitpid$(EXEEXT) xattr$(EXEEXT) \
+	rmdir$(EXEEXT) rt_sigaction$(EXEEXT) rt_sigpending$(EXEEXT) \
+	rt_sigprocmask$(EXEEXT) rt_sigqueueinfo$(EXEEXT) \
+	rt_sigreturn$(EXEEXT) rt_sigsuspend$(EXEEXT) \
+	rt_sigtimedwait$(EXEEXT) rt_tgsigqueueinfo$(EXEEXT) \
+	sched_get_priority_mxx$(EXEEXT) sched_rr_get_interval$(EXEEXT) \
+	sched_xetaffinity$(EXEEXT) sched_xetattr$(EXEEXT) \
+	sched_xetparam$(EXEEXT) sched_xetscheduler$(EXEEXT) \
+	sched_yield$(EXEEXT) seccomp-filter$(EXEEXT) select$(EXEEXT) \
+	semop$(EXEEXT) sendfile$(EXEEXT) sendfile64$(EXEEXT) \
+	set_mempolicy$(EXEEXT) setdomainname$(EXEEXT) \
+	setfsgid$(EXEEXT) setfsgid32$(EXEEXT) setfsuid$(EXEEXT) \
+	setfsuid32$(EXEEXT) setgid$(EXEEXT) setgid32$(EXEEXT) \
+	setgroups$(EXEEXT) setgroups32$(EXEEXT) sethostname$(EXEEXT) \
+	setns$(EXEEXT) setregid$(EXEEXT) setregid32$(EXEEXT) \
+	setresgid$(EXEEXT) setresgid32$(EXEEXT) setresuid$(EXEEXT) \
+	setresuid32$(EXEEXT) setreuid$(EXEEXT) setreuid32$(EXEEXT) \
+	setrlimit$(EXEEXT) setuid$(EXEEXT) setuid32$(EXEEXT) \
+	shmxt$(EXEEXT) shutdown$(EXEEXT) sigaction$(EXEEXT) \
+	sigaltstack$(EXEEXT) siginfo$(EXEEXT) signal$(EXEEXT) \
+	signalfd4$(EXEEXT) sigpending$(EXEEXT) sigprocmask$(EXEEXT) \
+	sigreturn$(EXEEXT) sigsuspend$(EXEEXT) socketcall$(EXEEXT) \
+	splice$(EXEEXT) stat$(EXEEXT) stat64$(EXEEXT) statfs$(EXEEXT) \
+	statfs64$(EXEEXT) statx$(EXEEXT) swap$(EXEEXT) \
+	sxetmask$(EXEEXT) symlink$(EXEEXT) symlinkat$(EXEEXT) \
+	sync$(EXEEXT) sync_file_range$(EXEEXT) \
+	sync_file_range2$(EXEEXT) sysinfo$(EXEEXT) syslog$(EXEEXT) \
+	tee$(EXEEXT) time$(EXEEXT) timer_create$(EXEEXT) \
+	timer_xettime$(EXEEXT) timerfd_xettime$(EXEEXT) times$(EXEEXT) \
+	times-fail$(EXEEXT) truncate$(EXEEXT) truncate64$(EXEEXT) \
+	ugetrlimit$(EXEEXT) uio$(EXEEXT) umask$(EXEEXT) \
+	umount$(EXEEXT) umount2$(EXEEXT) umoven-illptr$(EXEEXT) \
+	umovestr$(EXEEXT) umovestr-illptr$(EXEEXT) umovestr2$(EXEEXT) \
+	umovestr3$(EXEEXT) uname$(EXEEXT) unlink$(EXEEXT) \
+	unlinkat$(EXEEXT) unshare$(EXEEXT) userfaultfd$(EXEEXT) \
+	ustat$(EXEEXT) utime$(EXEEXT) utimensat$(EXEEXT) \
+	utimes$(EXEEXT) vhangup$(EXEEXT) vmsplice$(EXEEXT) \
+	wait4$(EXEEXT) waitid$(EXEEXT) waitpid$(EXEEXT) xattr$(EXEEXT) \
 	xattr-strings$(EXEEXT) xet_robust_list$(EXEEXT) \
 	xetitimer$(EXEEXT) xetpgid$(EXEEXT) xetpriority$(EXEEXT) \
 	xettimeofday$(EXEEXT)
@@ -379,6 +386,10 @@
 attach_p_cmd_p_OBJECTS = attach-p-cmd-p.$(OBJEXT)
 attach_p_cmd_p_LDADD = $(LDADD)
 attach_p_cmd_p_DEPENDENCIES = libtests.a
+block_reset_raise_run_SOURCES = block_reset_raise_run.c
+block_reset_raise_run_OBJECTS = block_reset_raise_run.$(OBJEXT)
+block_reset_raise_run_LDADD = $(LDADD)
+block_reset_raise_run_DEPENDENCIES = libtests.a
 bpf_SOURCES = bpf.c
 bpf_OBJECTS = bpf.$(OBJEXT)
 bpf_LDADD = $(LDADD)
@@ -1076,10 +1087,22 @@
 net_yy_unix_OBJECTS = net-yy-unix.$(OBJEXT)
 net_yy_unix_LDADD = $(LDADD)
 net_yy_unix_DEPENDENCIES = libtests.a
+netlink_audit_SOURCES = netlink_audit.c
+netlink_audit_OBJECTS = netlink_audit.$(OBJEXT)
+netlink_audit_LDADD = $(LDADD)
+netlink_audit_DEPENDENCIES = libtests.a
+netlink_generic_SOURCES = netlink_generic.c
+netlink_generic_OBJECTS = netlink_generic.$(OBJEXT)
+netlink_generic_LDADD = $(LDADD)
+netlink_generic_DEPENDENCIES = libtests.a
 netlink_inet_diag_SOURCES = netlink_inet_diag.c
 netlink_inet_diag_OBJECTS = netlink_inet_diag.$(OBJEXT)
 netlink_inet_diag_LDADD = $(LDADD)
 netlink_inet_diag_DEPENDENCIES = libtests.a
+netlink_netfilter_SOURCES = netlink_netfilter.c
+netlink_netfilter_OBJECTS = netlink_netfilter.$(OBJEXT)
+netlink_netfilter_LDADD = $(LDADD)
+netlink_netfilter_DEPENDENCIES = libtests.a
 netlink_netlink_diag_SOURCES = netlink_netlink_diag.c
 netlink_netlink_diag_OBJECTS = netlink_netlink_diag.$(OBJEXT)
 netlink_netlink_diag_LDADD = $(LDADD)
@@ -1088,14 +1111,46 @@
 netlink_protocol_OBJECTS = netlink_protocol.$(OBJEXT)
 netlink_protocol_LDADD = $(LDADD)
 netlink_protocol_DEPENDENCIES = libtests.a
+netlink_route_SOURCES = netlink_route.c
+netlink_route_OBJECTS = netlink_route.$(OBJEXT)
+netlink_route_LDADD = $(LDADD)
+netlink_route_DEPENDENCIES = libtests.a
+netlink_selinux_SOURCES = netlink_selinux.c
+netlink_selinux_OBJECTS = netlink_selinux.$(OBJEXT)
+netlink_selinux_LDADD = $(LDADD)
+netlink_selinux_DEPENDENCIES = libtests.a
+netlink_sock_diag_SOURCES = netlink_sock_diag.c
+netlink_sock_diag_OBJECTS = netlink_sock_diag.$(OBJEXT)
+netlink_sock_diag_LDADD = $(LDADD)
+netlink_sock_diag_DEPENDENCIES = libtests.a
 netlink_unix_diag_SOURCES = netlink_unix_diag.c
 netlink_unix_diag_OBJECTS = netlink_unix_diag.$(OBJEXT)
 netlink_unix_diag_LDADD = $(LDADD)
 netlink_unix_diag_DEPENDENCIES = libtests.a
+netlink_xfrm_SOURCES = netlink_xfrm.c
+netlink_xfrm_OBJECTS = netlink_xfrm.$(OBJEXT)
+netlink_xfrm_LDADD = $(LDADD)
+netlink_xfrm_DEPENDENCIES = libtests.a
 newfstatat_SOURCES = newfstatat.c
 newfstatat_OBJECTS = newfstatat-newfstatat.$(OBJEXT)
 newfstatat_LDADD = $(LDADD)
 newfstatat_DEPENDENCIES = libtests.a
+nlattr_SOURCES = nlattr.c
+nlattr_OBJECTS = nlattr.$(OBJEXT)
+nlattr_LDADD = $(LDADD)
+nlattr_DEPENDENCIES = libtests.a
+nlattr_inet_diag_msg_SOURCES = nlattr_inet_diag_msg.c
+nlattr_inet_diag_msg_OBJECTS = nlattr_inet_diag_msg.$(OBJEXT)
+nlattr_inet_diag_msg_LDADD = $(LDADD)
+nlattr_inet_diag_msg_DEPENDENCIES = libtests.a
+nlattr_netlink_diag_msg_SOURCES = nlattr_netlink_diag_msg.c
+nlattr_netlink_diag_msg_OBJECTS = nlattr_netlink_diag_msg.$(OBJEXT)
+nlattr_netlink_diag_msg_LDADD = $(LDADD)
+nlattr_netlink_diag_msg_DEPENDENCIES = libtests.a
+nlattr_unix_diag_msg_SOURCES = nlattr_unix_diag_msg.c
+nlattr_unix_diag_msg_OBJECTS = nlattr_unix_diag_msg.$(OBJEXT)
+nlattr_unix_diag_msg_LDADD = $(LDADD)
+nlattr_unix_diag_msg_DEPENDENCIES = libtests.a
 nsyscalls_SOURCES = nsyscalls.c
 nsyscalls_OBJECTS = nsyscalls.$(OBJEXT)
 nsyscalls_LDADD = $(LDADD)
@@ -1386,6 +1441,10 @@
 rmdir_OBJECTS = rmdir.$(OBJEXT)
 rmdir_LDADD = $(LDADD)
 rmdir_DEPENDENCIES = libtests.a
+rt_sigaction_SOURCES = rt_sigaction.c
+rt_sigaction_OBJECTS = rt_sigaction.$(OBJEXT)
+rt_sigaction_LDADD = $(LDADD)
+rt_sigaction_DEPENDENCIES = libtests.a
 rt_sigpending_SOURCES = rt_sigpending.c
 rt_sigpending_OBJECTS = rt_sigpending.$(OBJEXT)
 rt_sigpending_LDADD = $(LDADD)
@@ -1414,6 +1473,10 @@
 rt_tgsigqueueinfo_OBJECTS = rt_tgsigqueueinfo.$(OBJEXT)
 rt_tgsigqueueinfo_LDADD = $(LDADD)
 rt_tgsigqueueinfo_DEPENDENCIES = libtests.a
+run_expect_termsig_SOURCES = run_expect_termsig.c
+run_expect_termsig_OBJECTS = run_expect_termsig.$(OBJEXT)
+run_expect_termsig_LDADD = $(LDADD)
+run_expect_termsig_DEPENDENCIES = libtests.a
 sched_get_priority_mxx_SOURCES = sched_get_priority_mxx.c
 sched_get_priority_mxx_OBJECTS = sched_get_priority_mxx.$(OBJEXT)
 sched_get_priority_mxx_LDADD = $(LDADD)
@@ -1590,6 +1653,10 @@
 siginfo_OBJECTS = siginfo.$(OBJEXT)
 siginfo_LDADD = $(LDADD)
 siginfo_DEPENDENCIES = libtests.a
+signal_SOURCES = signal.c
+signal_OBJECTS = signal.$(OBJEXT)
+signal_LDADD = $(LDADD)
+signal_DEPENDENCIES = libtests.a
 signal_receive_SOURCES = signal_receive.c
 signal_receive_OBJECTS = signal_receive.$(OBJEXT)
 signal_receive_LDADD = $(LDADD)
@@ -1598,6 +1665,14 @@
 signalfd4_OBJECTS = signalfd4.$(OBJEXT)
 signalfd4_LDADD = $(LDADD)
 signalfd4_DEPENDENCIES = libtests.a
+sigpending_SOURCES = sigpending.c
+sigpending_OBJECTS = sigpending.$(OBJEXT)
+sigpending_LDADD = $(LDADD)
+sigpending_DEPENDENCIES = libtests.a
+sigprocmask_SOURCES = sigprocmask.c
+sigprocmask_OBJECTS = sigprocmask.$(OBJEXT)
+sigprocmask_LDADD = $(LDADD)
+sigprocmask_DEPENDENCIES = libtests.a
 sigreturn_SOURCES = sigreturn.c
 sigreturn_OBJECTS = sigreturn.$(OBJEXT)
 sigreturn_LDADD = $(LDADD)
@@ -1762,6 +1837,10 @@
 uname_OBJECTS = uname.$(OBJEXT)
 uname_LDADD = $(LDADD)
 uname_DEPENDENCIES = libtests.a
+unblock_reset_raise_SOURCES = unblock_reset_raise.c
+unblock_reset_raise_OBJECTS = unblock_reset_raise.$(OBJEXT)
+unblock_reset_raise_LDADD = $(LDADD)
+unblock_reset_raise_DEPENDENCIES = libtests.a
 unix_pair_send_recv_SOURCES = unix-pair-send-recv.c
 unix_pair_send_recv_OBJECTS = unix-pair-send-recv.$(OBJEXT)
 unix_pair_send_recv_LDADD = $(LDADD)
@@ -1863,6 +1942,10 @@
 xettimeofday_OBJECTS = xettimeofday.$(OBJEXT)
 xettimeofday_LDADD = $(LDADD)
 xettimeofday_DEPENDENCIES = libtests.a
+zeroargc_SOURCES = zeroargc.c
+zeroargc_OBJECTS = zeroargc.$(OBJEXT)
+zeroargc_LDADD = $(LDADD)
+zeroargc_DEPENDENCIES = libtests.a
 AM_V_P = $(am__v_P_@AM_V@)
 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
 am__v_P_0 = false
@@ -1898,47 +1981,51 @@
 SOURCES = $(libtests_a_SOURCES) _newselect.c accept.c accept4.c \
 	access.c acct.c add_key.c adjtimex.c aio.c alarm.c answer.c \
 	attach-f-p.c attach-f-p-cmd.c attach-p-cmd-cmd.c \
-	attach-p-cmd-p.c bpf.c brk.c btrfs.c caps.c caps-abbrev.c \
-	chmod.c chown.c chown32.c chroot.c clock_adjtime.c \
-	clock_nanosleep.c clock_xettime.c copy_file_range.c count-f.c \
-	creat.c delete_module.c dup.c dup2.c dup3.c epoll_create.c \
-	epoll_create1.c epoll_ctl.c epoll_pwait.c epoll_wait.c \
-	erestartsys.c eventfd.c execve.c execve-v.c execveat.c \
-	execveat-v.c faccessat.c fadvise64.c fadvise64_64.c \
-	fallocate.c fanotify_init.c fanotify_mark.c fchdir.c fchmod.c \
-	fchmodat.c fchown.c fchown32.c fchownat.c fcntl.c fcntl64.c \
-	fdatasync.c file_handle.c file_ioctl.c filter-unavailable.c \
-	finit_module.c flock.c fork-f.c fstat.c fstat64.c fstatat64.c \
-	fstatfs.c fstatfs64.c fsync.c ftruncate.c ftruncate64.c \
-	futex.c futimesat.c get_mempolicy.c getcpu.c getcwd.c \
-	getdents.c getdents64.c getegid.c getegid32.c geteuid.c \
-	geteuid32.c getgid.c getgid32.c getgroups.c getgroups32.c \
-	getpeername.c getpgrp.c getpid.c getppid.c getrandom.c \
-	getresgid.c getresgid32.c getresuid.c getresuid32.c \
-	getrlimit.c getrusage.c getsid.c getsockname.c gettid.c \
-	getuid.c getuid32.c getxxid.c inet-cmsg.c init_module.c \
-	inotify.c inotify_init1.c int_0x80.c ioctl.c ioctl_block.c \
-	ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-v.c \
-	ioctl_loop.c ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c \
-	ioctl_nsfs.c ioctl_rtc.c ioctl_rtc-v.c ioctl_scsi.c \
-	ioctl_sg_io_v3.c ioctl_sg_io_v4.c ioctl_sock_gifconf.c \
-	ioctl_uffdio.c ioctl_v4l2.c ioperm.c iopl.c ioprio.c ip_mreq.c \
-	ipc.c ipc_msg.c ipc_msgbuf.c ipc_sem.c ipc_shm.c kcmp.c \
-	kexec_file_load.c kexec_load.c keyctl.c kill.c ksysent.c \
-	lchown.c lchown32.c link.c linkat.c llseek.c lookup_dcookie.c \
-	lseek.c lstat.c lstat64.c madvise.c mbind.c membarrier.c \
-	memfd_create.c migrate_pages.c mincore.c mkdir.c mkdirat.c \
-	mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c mmap64.c \
-	mmsg.c mmsg-silent.c mmsg_name.c mmsg_name-v.c mount.c \
-	move_pages.c mq.c mq_sendrecv.c mq_sendrecv-read.c \
-	mq_sendrecv-write.c msg_control.c msg_control-v.c msg_name.c \
-	munlockall.c nanosleep.c net-accept-connect.c \
-	net-icmp_filter.c net-sockaddr.c net-y-unix.c net-yy-inet.c \
-	net-yy-netlink.c net-yy-unix.c netlink_inet_diag.c \
-	netlink_netlink_diag.c netlink_protocol.c netlink_unix_diag.c \
-	newfstatat.c nsyscalls.c old_mmap.c oldfstat.c oldlstat.c \
-	oldselect.c oldstat.c open.c openat.c osf_utimes.c pause.c \
-	pc.c perf_event_open.c perf_event_open_nonverbose.c \
+	attach-p-cmd-p.c block_reset_raise_run.c bpf.c brk.c btrfs.c \
+	caps.c caps-abbrev.c chmod.c chown.c chown32.c chroot.c \
+	clock_adjtime.c clock_nanosleep.c clock_xettime.c \
+	copy_file_range.c count-f.c creat.c delete_module.c dup.c \
+	dup2.c dup3.c epoll_create.c epoll_create1.c epoll_ctl.c \
+	epoll_pwait.c epoll_wait.c erestartsys.c eventfd.c execve.c \
+	execve-v.c execveat.c execveat-v.c faccessat.c fadvise64.c \
+	fadvise64_64.c fallocate.c fanotify_init.c fanotify_mark.c \
+	fchdir.c fchmod.c fchmodat.c fchown.c fchown32.c fchownat.c \
+	fcntl.c fcntl64.c fdatasync.c file_handle.c file_ioctl.c \
+	filter-unavailable.c finit_module.c flock.c fork-f.c fstat.c \
+	fstat64.c fstatat64.c fstatfs.c fstatfs64.c fsync.c \
+	ftruncate.c ftruncate64.c futex.c futimesat.c get_mempolicy.c \
+	getcpu.c getcwd.c getdents.c getdents64.c getegid.c \
+	getegid32.c geteuid.c geteuid32.c getgid.c getgid32.c \
+	getgroups.c getgroups32.c getpeername.c getpgrp.c getpid.c \
+	getppid.c getrandom.c getresgid.c getresgid32.c getresuid.c \
+	getresuid32.c getrlimit.c getrusage.c getsid.c getsockname.c \
+	gettid.c getuid.c getuid32.c getxxid.c inet-cmsg.c \
+	init_module.c inotify.c inotify_init1.c int_0x80.c ioctl.c \
+	ioctl_block.c ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c \
+	ioctl_evdev-v.c ioctl_loop.c ioctl_loop-nv.c ioctl_loop-v.c \
+	ioctl_mtd.c ioctl_nsfs.c ioctl_rtc.c ioctl_rtc-v.c \
+	ioctl_scsi.c ioctl_sg_io_v3.c ioctl_sg_io_v4.c \
+	ioctl_sock_gifconf.c ioctl_uffdio.c ioctl_v4l2.c ioperm.c \
+	iopl.c ioprio.c ip_mreq.c ipc.c ipc_msg.c ipc_msgbuf.c \
+	ipc_sem.c ipc_shm.c kcmp.c kexec_file_load.c kexec_load.c \
+	keyctl.c kill.c ksysent.c lchown.c lchown32.c link.c linkat.c \
+	llseek.c lookup_dcookie.c lseek.c lstat.c lstat64.c madvise.c \
+	mbind.c membarrier.c memfd_create.c migrate_pages.c mincore.c \
+	mkdir.c mkdirat.c mknod.c mknodat.c mlock.c mlock2.c \
+	mlockall.c mmap.c mmap64.c mmsg.c mmsg-silent.c mmsg_name.c \
+	mmsg_name-v.c mount.c move_pages.c mq.c mq_sendrecv.c \
+	mq_sendrecv-read.c mq_sendrecv-write.c msg_control.c \
+	msg_control-v.c msg_name.c munlockall.c nanosleep.c \
+	net-accept-connect.c net-icmp_filter.c net-sockaddr.c \
+	net-y-unix.c net-yy-inet.c net-yy-netlink.c net-yy-unix.c \
+	netlink_audit.c netlink_generic.c netlink_inet_diag.c \
+	netlink_netfilter.c netlink_netlink_diag.c netlink_protocol.c \
+	netlink_route.c netlink_selinux.c netlink_sock_diag.c \
+	netlink_unix_diag.c netlink_xfrm.c newfstatat.c nlattr.c \
+	nlattr_inet_diag_msg.c nlattr_netlink_diag_msg.c \
+	nlattr_unix_diag_msg.c nsyscalls.c old_mmap.c oldfstat.c \
+	oldlstat.c oldselect.c oldstat.c open.c openat.c osf_utimes.c \
+	pause.c pc.c perf_event_open.c perf_event_open_nonverbose.c \
 	perf_event_open_unabbrev.c personality.c pipe.c pipe2.c \
 	pkey_alloc.c pkey_free.c pkey_mprotect.c poll.c ppoll.c \
 	ppoll-v.c prctl-arg2-intptr.c prctl-dumpable.c prctl-name.c \
@@ -1954,21 +2041,22 @@
 	readv.c reboot.c recvfrom.c recvmmsg-timeout.c recvmsg.c \
 	redirect-fds.c remap_file_pages.c rename.c renameat.c \
 	renameat2.c request_key.c restart_syscall.c rmdir.c \
-	rt_sigpending.c rt_sigprocmask.c rt_sigqueueinfo.c \
-	rt_sigreturn.c rt_sigsuspend.c rt_sigtimedwait.c \
-	rt_tgsigqueueinfo.c sched_get_priority_mxx.c \
-	sched_rr_get_interval.c sched_xetaffinity.c sched_xetattr.c \
-	sched_xetparam.c sched_xetscheduler.c sched_yield.c \
-	scm_rights.c seccomp-filter.c seccomp-filter-v.c \
-	seccomp-strict.c select.c semop.c sendfile.c sendfile64.c \
-	set_mempolicy.c set_ptracer_any.c setdomainname.c setfsgid.c \
-	setfsgid32.c setfsuid.c setfsuid32.c setgid.c setgid32.c \
-	setgroups.c setgroups32.c sethostname.c setns.c setregid.c \
-	setregid32.c setresgid.c setresgid32.c setresuid.c \
-	setresuid32.c setreuid.c setreuid32.c setrlimit.c setuid.c \
-	setuid32.c shmxt.c shutdown.c sigaction.c sigaltstack.c \
-	siginfo.c signal_receive.c signalfd4.c sigreturn.c \
-	sigsuspend.c sleep.c socketcall.c splice.c \
+	rt_sigaction.c rt_sigpending.c rt_sigprocmask.c \
+	rt_sigqueueinfo.c rt_sigreturn.c rt_sigsuspend.c \
+	rt_sigtimedwait.c rt_tgsigqueueinfo.c run_expect_termsig.c \
+	sched_get_priority_mxx.c sched_rr_get_interval.c \
+	sched_xetaffinity.c sched_xetattr.c sched_xetparam.c \
+	sched_xetscheduler.c sched_yield.c scm_rights.c \
+	seccomp-filter.c seccomp-filter-v.c seccomp-strict.c select.c \
+	semop.c sendfile.c sendfile64.c set_mempolicy.c \
+	set_ptracer_any.c setdomainname.c setfsgid.c setfsgid32.c \
+	setfsuid.c setfsuid32.c setgid.c setgid32.c setgroups.c \
+	setgroups32.c sethostname.c setns.c setregid.c setregid32.c \
+	setresgid.c setresgid32.c setresuid.c setresuid32.c setreuid.c \
+	setreuid32.c setrlimit.c setuid.c setuid32.c shmxt.c \
+	shutdown.c sigaction.c sigaltstack.c siginfo.c signal.c \
+	signal_receive.c signalfd4.c sigpending.c sigprocmask.c \
+	sigreturn.c sigsuspend.c sleep.c socketcall.c splice.c \
 	$(stack_fcall_SOURCES) stat.c stat64.c statfs.c statfs64.c \
 	statx.c swap.c sxetmask.c symlink.c symlinkat.c sync.c \
 	sync_file_range.c sync_file_range2.c sysinfo.c syslog.c tee.c \
@@ -1976,56 +2064,60 @@
 	timerfd_xettime.c times.c times-fail.c truncate.c truncate64.c \
 	ugetrlimit.c uio.c umask.c umount.c umount2.c umoven-illptr.c \
 	umovestr.c umovestr-illptr.c umovestr2.c umovestr3.c uname.c \
-	unix-pair-send-recv.c unix-pair-sendto-recvfrom.c unlink.c \
-	unlinkat.c unshare.c userfaultfd.c ustat.c utime.c utimensat.c \
-	utimes.c vfork-f.c vhangup.c vmsplice.c wait4.c wait4-v.c \
-	waitid.c waitid-v.c waitpid.c xattr.c xattr-strings.c \
-	xet_robust_list.c xetitimer.c xetpgid.c xetpriority.c \
-	xettimeofday.c
+	unblock_reset_raise.c unix-pair-send-recv.c \
+	unix-pair-sendto-recvfrom.c unlink.c unlinkat.c unshare.c \
+	userfaultfd.c ustat.c utime.c utimensat.c utimes.c vfork-f.c \
+	vhangup.c vmsplice.c wait4.c wait4-v.c waitid.c waitid-v.c \
+	waitpid.c xattr.c xattr-strings.c xet_robust_list.c \
+	xetitimer.c xetpgid.c xetpriority.c xettimeofday.c zeroargc.c
 DIST_SOURCES = $(libtests_a_SOURCES) _newselect.c accept.c accept4.c \
 	access.c acct.c add_key.c adjtimex.c aio.c alarm.c answer.c \
 	attach-f-p.c attach-f-p-cmd.c attach-p-cmd-cmd.c \
-	attach-p-cmd-p.c bpf.c brk.c btrfs.c caps.c caps-abbrev.c \
-	chmod.c chown.c chown32.c chroot.c clock_adjtime.c \
-	clock_nanosleep.c clock_xettime.c copy_file_range.c count-f.c \
-	creat.c delete_module.c dup.c dup2.c dup3.c epoll_create.c \
-	epoll_create1.c epoll_ctl.c epoll_pwait.c epoll_wait.c \
-	erestartsys.c eventfd.c execve.c execve-v.c execveat.c \
-	execveat-v.c faccessat.c fadvise64.c fadvise64_64.c \
-	fallocate.c fanotify_init.c fanotify_mark.c fchdir.c fchmod.c \
-	fchmodat.c fchown.c fchown32.c fchownat.c fcntl.c fcntl64.c \
-	fdatasync.c file_handle.c file_ioctl.c filter-unavailable.c \
-	finit_module.c flock.c fork-f.c fstat.c fstat64.c fstatat64.c \
-	fstatfs.c fstatfs64.c fsync.c ftruncate.c ftruncate64.c \
-	futex.c futimesat.c get_mempolicy.c getcpu.c getcwd.c \
-	getdents.c getdents64.c getegid.c getegid32.c geteuid.c \
-	geteuid32.c getgid.c getgid32.c getgroups.c getgroups32.c \
-	getpeername.c getpgrp.c getpid.c getppid.c getrandom.c \
-	getresgid.c getresgid32.c getresuid.c getresuid32.c \
-	getrlimit.c getrusage.c getsid.c getsockname.c gettid.c \
-	getuid.c getuid32.c getxxid.c inet-cmsg.c init_module.c \
-	inotify.c inotify_init1.c int_0x80.c ioctl.c ioctl_block.c \
-	ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-v.c \
-	ioctl_loop.c ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c \
-	ioctl_nsfs.c ioctl_rtc.c ioctl_rtc-v.c ioctl_scsi.c \
-	ioctl_sg_io_v3.c ioctl_sg_io_v4.c ioctl_sock_gifconf.c \
-	ioctl_uffdio.c ioctl_v4l2.c ioperm.c iopl.c ioprio.c ip_mreq.c \
-	ipc.c ipc_msg.c ipc_msgbuf.c ipc_sem.c ipc_shm.c kcmp.c \
-	kexec_file_load.c kexec_load.c keyctl.c kill.c ksysent.c \
-	lchown.c lchown32.c link.c linkat.c llseek.c lookup_dcookie.c \
-	lseek.c lstat.c lstat64.c madvise.c mbind.c membarrier.c \
-	memfd_create.c migrate_pages.c mincore.c mkdir.c mkdirat.c \
-	mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c mmap64.c \
-	mmsg.c mmsg-silent.c mmsg_name.c mmsg_name-v.c mount.c \
-	move_pages.c mq.c mq_sendrecv.c mq_sendrecv-read.c \
-	mq_sendrecv-write.c msg_control.c msg_control-v.c msg_name.c \
-	munlockall.c nanosleep.c net-accept-connect.c \
-	net-icmp_filter.c net-sockaddr.c net-y-unix.c net-yy-inet.c \
-	net-yy-netlink.c net-yy-unix.c netlink_inet_diag.c \
-	netlink_netlink_diag.c netlink_protocol.c netlink_unix_diag.c \
-	newfstatat.c nsyscalls.c old_mmap.c oldfstat.c oldlstat.c \
-	oldselect.c oldstat.c open.c openat.c osf_utimes.c pause.c \
-	pc.c perf_event_open.c perf_event_open_nonverbose.c \
+	attach-p-cmd-p.c block_reset_raise_run.c bpf.c brk.c btrfs.c \
+	caps.c caps-abbrev.c chmod.c chown.c chown32.c chroot.c \
+	clock_adjtime.c clock_nanosleep.c clock_xettime.c \
+	copy_file_range.c count-f.c creat.c delete_module.c dup.c \
+	dup2.c dup3.c epoll_create.c epoll_create1.c epoll_ctl.c \
+	epoll_pwait.c epoll_wait.c erestartsys.c eventfd.c execve.c \
+	execve-v.c execveat.c execveat-v.c faccessat.c fadvise64.c \
+	fadvise64_64.c fallocate.c fanotify_init.c fanotify_mark.c \
+	fchdir.c fchmod.c fchmodat.c fchown.c fchown32.c fchownat.c \
+	fcntl.c fcntl64.c fdatasync.c file_handle.c file_ioctl.c \
+	filter-unavailable.c finit_module.c flock.c fork-f.c fstat.c \
+	fstat64.c fstatat64.c fstatfs.c fstatfs64.c fsync.c \
+	ftruncate.c ftruncate64.c futex.c futimesat.c get_mempolicy.c \
+	getcpu.c getcwd.c getdents.c getdents64.c getegid.c \
+	getegid32.c geteuid.c geteuid32.c getgid.c getgid32.c \
+	getgroups.c getgroups32.c getpeername.c getpgrp.c getpid.c \
+	getppid.c getrandom.c getresgid.c getresgid32.c getresuid.c \
+	getresuid32.c getrlimit.c getrusage.c getsid.c getsockname.c \
+	gettid.c getuid.c getuid32.c getxxid.c inet-cmsg.c \
+	init_module.c inotify.c inotify_init1.c int_0x80.c ioctl.c \
+	ioctl_block.c ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c \
+	ioctl_evdev-v.c ioctl_loop.c ioctl_loop-nv.c ioctl_loop-v.c \
+	ioctl_mtd.c ioctl_nsfs.c ioctl_rtc.c ioctl_rtc-v.c \
+	ioctl_scsi.c ioctl_sg_io_v3.c ioctl_sg_io_v4.c \
+	ioctl_sock_gifconf.c ioctl_uffdio.c ioctl_v4l2.c ioperm.c \
+	iopl.c ioprio.c ip_mreq.c ipc.c ipc_msg.c ipc_msgbuf.c \
+	ipc_sem.c ipc_shm.c kcmp.c kexec_file_load.c kexec_load.c \
+	keyctl.c kill.c ksysent.c lchown.c lchown32.c link.c linkat.c \
+	llseek.c lookup_dcookie.c lseek.c lstat.c lstat64.c madvise.c \
+	mbind.c membarrier.c memfd_create.c migrate_pages.c mincore.c \
+	mkdir.c mkdirat.c mknod.c mknodat.c mlock.c mlock2.c \
+	mlockall.c mmap.c mmap64.c mmsg.c mmsg-silent.c mmsg_name.c \
+	mmsg_name-v.c mount.c move_pages.c mq.c mq_sendrecv.c \
+	mq_sendrecv-read.c mq_sendrecv-write.c msg_control.c \
+	msg_control-v.c msg_name.c munlockall.c nanosleep.c \
+	net-accept-connect.c net-icmp_filter.c net-sockaddr.c \
+	net-y-unix.c net-yy-inet.c net-yy-netlink.c net-yy-unix.c \
+	netlink_audit.c netlink_generic.c netlink_inet_diag.c \
+	netlink_netfilter.c netlink_netlink_diag.c netlink_protocol.c \
+	netlink_route.c netlink_selinux.c netlink_sock_diag.c \
+	netlink_unix_diag.c netlink_xfrm.c newfstatat.c nlattr.c \
+	nlattr_inet_diag_msg.c nlattr_netlink_diag_msg.c \
+	nlattr_unix_diag_msg.c nsyscalls.c old_mmap.c oldfstat.c \
+	oldlstat.c oldselect.c oldstat.c open.c openat.c osf_utimes.c \
+	pause.c pc.c perf_event_open.c perf_event_open_nonverbose.c \
 	perf_event_open_unabbrev.c personality.c pipe.c pipe2.c \
 	pkey_alloc.c pkey_free.c pkey_mprotect.c poll.c ppoll.c \
 	ppoll-v.c prctl-arg2-intptr.c prctl-dumpable.c prctl-name.c \
@@ -2041,21 +2133,22 @@
 	readv.c reboot.c recvfrom.c recvmmsg-timeout.c recvmsg.c \
 	redirect-fds.c remap_file_pages.c rename.c renameat.c \
 	renameat2.c request_key.c restart_syscall.c rmdir.c \
-	rt_sigpending.c rt_sigprocmask.c rt_sigqueueinfo.c \
-	rt_sigreturn.c rt_sigsuspend.c rt_sigtimedwait.c \
-	rt_tgsigqueueinfo.c sched_get_priority_mxx.c \
-	sched_rr_get_interval.c sched_xetaffinity.c sched_xetattr.c \
-	sched_xetparam.c sched_xetscheduler.c sched_yield.c \
-	scm_rights.c seccomp-filter.c seccomp-filter-v.c \
-	seccomp-strict.c select.c semop.c sendfile.c sendfile64.c \
-	set_mempolicy.c set_ptracer_any.c setdomainname.c setfsgid.c \
-	setfsgid32.c setfsuid.c setfsuid32.c setgid.c setgid32.c \
-	setgroups.c setgroups32.c sethostname.c setns.c setregid.c \
-	setregid32.c setresgid.c setresgid32.c setresuid.c \
-	setresuid32.c setreuid.c setreuid32.c setrlimit.c setuid.c \
-	setuid32.c shmxt.c shutdown.c sigaction.c sigaltstack.c \
-	siginfo.c signal_receive.c signalfd4.c sigreturn.c \
-	sigsuspend.c sleep.c socketcall.c splice.c \
+	rt_sigaction.c rt_sigpending.c rt_sigprocmask.c \
+	rt_sigqueueinfo.c rt_sigreturn.c rt_sigsuspend.c \
+	rt_sigtimedwait.c rt_tgsigqueueinfo.c run_expect_termsig.c \
+	sched_get_priority_mxx.c sched_rr_get_interval.c \
+	sched_xetaffinity.c sched_xetattr.c sched_xetparam.c \
+	sched_xetscheduler.c sched_yield.c scm_rights.c \
+	seccomp-filter.c seccomp-filter-v.c seccomp-strict.c select.c \
+	semop.c sendfile.c sendfile64.c set_mempolicy.c \
+	set_ptracer_any.c setdomainname.c setfsgid.c setfsgid32.c \
+	setfsuid.c setfsuid32.c setgid.c setgid32.c setgroups.c \
+	setgroups32.c sethostname.c setns.c setregid.c setregid32.c \
+	setresgid.c setresgid32.c setresuid.c setresuid32.c setreuid.c \
+	setreuid32.c setrlimit.c setuid.c setuid32.c shmxt.c \
+	shutdown.c sigaction.c sigaltstack.c siginfo.c signal.c \
+	signal_receive.c signalfd4.c sigpending.c sigprocmask.c \
+	sigreturn.c sigsuspend.c sleep.c socketcall.c splice.c \
 	$(stack_fcall_SOURCES) stat.c stat64.c statfs.c statfs64.c \
 	statx.c swap.c sxetmask.c symlink.c symlinkat.c sync.c \
 	sync_file_range.c sync_file_range2.c sysinfo.c syslog.c tee.c \
@@ -2063,12 +2156,12 @@
 	timerfd_xettime.c times.c times-fail.c truncate.c truncate64.c \
 	ugetrlimit.c uio.c umask.c umount.c umount2.c umoven-illptr.c \
 	umovestr.c umovestr-illptr.c umovestr2.c umovestr3.c uname.c \
-	unix-pair-send-recv.c unix-pair-sendto-recvfrom.c unlink.c \
-	unlinkat.c unshare.c userfaultfd.c ustat.c utime.c utimensat.c \
-	utimes.c vfork-f.c vhangup.c vmsplice.c wait4.c wait4-v.c \
-	waitid.c waitid-v.c waitpid.c xattr.c xattr-strings.c \
-	xet_robust_list.c xetitimer.c xetpgid.c xetpriority.c \
-	xettimeofday.c
+	unblock_reset_raise.c unix-pair-send-recv.c \
+	unix-pair-sendto-recvfrom.c unlink.c unlinkat.c unshare.c \
+	userfaultfd.c ustat.c utime.c utimensat.c utimes.c vfork-f.c \
+	vhangup.c vmsplice.c wait4.c wait4-v.c waitid.c waitid-v.c \
+	waitpid.c xattr.c xattr-strings.c xet_robust_list.c \
+	xetitimer.c xetpgid.c xetpriority.c xettimeofday.c zeroargc.c
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -2450,6 +2543,7 @@
 
 AM_LDFLAGS = $(ARCH_MFLAGS)
 libtests_a_SOURCES = \
+	create_nl_socket.c \
 	errno2name.c \
 	error_msg.c \
 	fill_memory.c \
@@ -2470,6 +2564,7 @@
 	skip_unavailable.c \
 	sprintrc.c \
 	tail_alloc.c \
+	test_nlattr.h \
 	tests.h \
 	tprintf.c \
 	# end of libtests_a_SOURCES
@@ -2646,8 +2741,19 @@
   net-yy-inet \
   net-yy-netlink \
   net-yy-unix \
+  netlink_audit \
+  netlink_generic \
+  netlink_netfilter \
   netlink_protocol \
+  netlink_route \
+  netlink_selinux \
+  netlink_sock_diag \
+  netlink_xfrm \
   newfstatat \
+  nlattr \
+  nlattr_inet_diag_msg \
+  nlattr_netlink_diag_msg \
+  nlattr_unix_diag_msg \
   old_mmap \
   oldfstat \
   oldlstat \
@@ -2703,6 +2809,7 @@
   renameat2 \
   request_key \
   rmdir \
+  rt_sigaction \
   rt_sigpending \
   rt_sigprocmask \
   rt_sigqueueinfo \
@@ -2750,7 +2857,10 @@
   sigaction \
   sigaltstack \
   siginfo \
+  signal \
   signalfd4 \
+  sigpending \
+  sigprocmask \
   sigreturn \
   sigsuspend \
   socketcall \
@@ -2895,11 +3005,17 @@
 	mq_sendrecv-write.gen.test msg_control.gen.test \
 	msg_control-v.gen.test msg_name.gen.test munlockall.gen.test \
 	nanosleep.gen.test net-icmp_filter.gen.test \
-	net-sockaddr.gen.test netlink_protocol.gen.test \
-	newfstatat.gen.test old_mmap.gen.test oldfstat.gen.test \
-	oldlstat.gen.test oldstat.gen.test open.gen.test \
-	openat.gen.test osf_utimes.gen.test pause.gen.test \
-	perf_event_open.gen.test perf_event_open_nonverbose.gen.test \
+	net-sockaddr.gen.test netlink_audit.gen.test \
+	netlink_generic.gen.test netlink_netfilter.gen.test \
+	netlink_protocol.gen.test netlink_route.gen.test \
+	netlink_selinux.gen.test netlink_xfrm.gen.test \
+	newfstatat.gen.test nlattr.gen.test \
+	nlattr_inet_diag_msg.gen.test nlattr_netlink_diag_msg.gen.test \
+	nlattr_unix_diag_msg.gen.test old_mmap.gen.test \
+	oldfstat.gen.test oldlstat.gen.test oldstat.gen.test \
+	open.gen.test openat.gen.test osf_utimes.gen.test \
+	pause.gen.test perf_event_open.gen.test \
+	perf_event_open_nonverbose.gen.test \
 	perf_event_open_unabbrev.gen.test pipe2.gen.test \
 	pkey_alloc.gen.test pkey_free.gen.test pkey_mprotect.gen.test \
 	ppoll.gen.test ppoll-v.gen.test pread64-pwrite64.gen.test \
@@ -2932,22 +3048,23 @@
 	setresuid.gen.test setresuid32.gen.test setreuid.gen.test \
 	setreuid32.gen.test setrlimit.gen.test setuid.gen.test \
 	setuid32.gen.test shmxt.gen.test shutdown.gen.test \
-	siginfo.gen.test signal_receive.gen.test signalfd4.gen.test \
-	sigreturn.gen.test sigsuspend.gen.test socketcall.gen.test \
-	splice.gen.test stat.gen.test stat64.gen.test statfs.gen.test \
-	statfs64.gen.test statx.gen.test swap.gen.test \
-	sxetmask.gen.test symlink.gen.test symlinkat.gen.test \
-	sync.gen.test sync_file_range.gen.test \
-	sync_file_range2.gen.test sysinfo.gen.test syslog.gen.test \
-	tee.gen.test time.gen.test timer_create.gen.test \
-	timer_xettime.gen.test timerfd_xettime.gen.test times.gen.test \
-	times-fail.gen.test trace_fstat.gen.test \
-	trace_fstatfs.gen.test trace_lstat.gen.test \
-	trace_question.gen.test trace_stat.gen.test \
-	trace_stat_like.gen.test trace_statfs.gen.test \
-	trace_statfs_like.gen.test truncate.gen.test \
-	truncate64.gen.test ugetrlimit.gen.test umask.gen.test \
-	umoven-illptr.gen.test umovestr-illptr.gen.test \
+	sigaction.gen.test siginfo.gen.test signal.gen.test \
+	signal_receive.gen.test signalfd4.gen.test sigpending.gen.test \
+	sigprocmask.gen.test sigreturn.gen.test sigsuspend.gen.test \
+	socketcall.gen.test splice.gen.test stat.gen.test \
+	stat64.gen.test statfs.gen.test statfs64.gen.test \
+	statx.gen.test swap.gen.test sxetmask.gen.test \
+	symlink.gen.test symlinkat.gen.test sync.gen.test \
+	sync_file_range.gen.test sync_file_range2.gen.test \
+	sysinfo.gen.test syslog.gen.test tee.gen.test time.gen.test \
+	timer_create.gen.test timer_xettime.gen.test \
+	timerfd_xettime.gen.test times.gen.test times-fail.gen.test \
+	trace_fstat.gen.test trace_fstatfs.gen.test \
+	trace_lstat.gen.test trace_question.gen.test \
+	trace_stat.gen.test trace_stat_like.gen.test \
+	trace_statfs.gen.test trace_statfs_like.gen.test \
+	truncate.gen.test truncate64.gen.test ugetrlimit.gen.test \
+	umask.gen.test umoven-illptr.gen.test umovestr-illptr.gen.test \
 	umovestr3.gen.test unlink.gen.test unlinkat.gen.test \
 	unshare.gen.test userfaultfd.gen.test ustat.gen.test \
 	utime.gen.test utimensat.gen.test utimes.gen.test \
@@ -2987,6 +3104,7 @@
 	net-yy-netlink.test \
 	net-yy-unix.test \
 	net.test \
+	netlink_sock_diag.test \
 	nsyscalls.test \
 	oldselect.test \
 	personality.test \
@@ -3004,9 +3122,9 @@
 	prctl-tsc.test \
 	qual_fault-exit_group.test \
 	readv.test \
+	rt_sigaction.test \
 	scm_rights-fd.test \
 	seccomp-strict.test \
-	sigaction.test \
 	sigaltstack.test \
 	sun_path.test \
 	uio.test \
@@ -3030,6 +3148,7 @@
 	detach-stopped.test \
 	filter-unavailable.test \
 	get_regs.test \
+	interactive_block.test \
 	ksysent.test \
 	opipe.test \
 	options-syntax.test \
@@ -3055,6 +3174,7 @@
 	strace-t.test \
 	strace-tt.test \
 	strace-ttt.test \
+	termsig.test \
 	threads-execve.test \
 	# end of MISC_TESTS
 
@@ -3100,6 +3220,7 @@
 	qual_inject-signal.expected \
 	quotactl.h \
 	regex.in \
+	rt_sigaction.awk \
 	run.sh \
 	sched.in \
 	scno_tampering.sh \
@@ -3107,7 +3228,6 @@
 	setresugid.c \
 	setreugid.c \
 	setugid.c \
-	sigaction.awk \
 	sigaltstack.expected \
 	sockname.c \
 	strace-C.expected \
@@ -3253,6 +3373,10 @@
 	@rm -f attach-p-cmd-p$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(attach_p_cmd_p_OBJECTS) $(attach_p_cmd_p_LDADD) $(LIBS)
 
+block_reset_raise_run$(EXEEXT): $(block_reset_raise_run_OBJECTS) $(block_reset_raise_run_DEPENDENCIES) $(EXTRA_block_reset_raise_run_DEPENDENCIES) 
+	@rm -f block_reset_raise_run$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(block_reset_raise_run_OBJECTS) $(block_reset_raise_run_LDADD) $(LIBS)
+
 bpf$(EXEEXT): $(bpf_OBJECTS) $(bpf_DEPENDENCIES) $(EXTRA_bpf_DEPENDENCIES) 
 	@rm -f bpf$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(bpf_OBJECTS) $(bpf_LDADD) $(LIBS)
@@ -3957,10 +4081,22 @@
 	@rm -f net-yy-unix$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(net_yy_unix_OBJECTS) $(net_yy_unix_LDADD) $(LIBS)
 
+netlink_audit$(EXEEXT): $(netlink_audit_OBJECTS) $(netlink_audit_DEPENDENCIES) $(EXTRA_netlink_audit_DEPENDENCIES) 
+	@rm -f netlink_audit$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(netlink_audit_OBJECTS) $(netlink_audit_LDADD) $(LIBS)
+
+netlink_generic$(EXEEXT): $(netlink_generic_OBJECTS) $(netlink_generic_DEPENDENCIES) $(EXTRA_netlink_generic_DEPENDENCIES) 
+	@rm -f netlink_generic$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(netlink_generic_OBJECTS) $(netlink_generic_LDADD) $(LIBS)
+
 netlink_inet_diag$(EXEEXT): $(netlink_inet_diag_OBJECTS) $(netlink_inet_diag_DEPENDENCIES) $(EXTRA_netlink_inet_diag_DEPENDENCIES) 
 	@rm -f netlink_inet_diag$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(netlink_inet_diag_OBJECTS) $(netlink_inet_diag_LDADD) $(LIBS)
 
+netlink_netfilter$(EXEEXT): $(netlink_netfilter_OBJECTS) $(netlink_netfilter_DEPENDENCIES) $(EXTRA_netlink_netfilter_DEPENDENCIES) 
+	@rm -f netlink_netfilter$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(netlink_netfilter_OBJECTS) $(netlink_netfilter_LDADD) $(LIBS)
+
 netlink_netlink_diag$(EXEEXT): $(netlink_netlink_diag_OBJECTS) $(netlink_netlink_diag_DEPENDENCIES) $(EXTRA_netlink_netlink_diag_DEPENDENCIES) 
 	@rm -f netlink_netlink_diag$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(netlink_netlink_diag_OBJECTS) $(netlink_netlink_diag_LDADD) $(LIBS)
@@ -3969,14 +4105,46 @@
 	@rm -f netlink_protocol$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(netlink_protocol_OBJECTS) $(netlink_protocol_LDADD) $(LIBS)
 
+netlink_route$(EXEEXT): $(netlink_route_OBJECTS) $(netlink_route_DEPENDENCIES) $(EXTRA_netlink_route_DEPENDENCIES) 
+	@rm -f netlink_route$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(netlink_route_OBJECTS) $(netlink_route_LDADD) $(LIBS)
+
+netlink_selinux$(EXEEXT): $(netlink_selinux_OBJECTS) $(netlink_selinux_DEPENDENCIES) $(EXTRA_netlink_selinux_DEPENDENCIES) 
+	@rm -f netlink_selinux$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(netlink_selinux_OBJECTS) $(netlink_selinux_LDADD) $(LIBS)
+
+netlink_sock_diag$(EXEEXT): $(netlink_sock_diag_OBJECTS) $(netlink_sock_diag_DEPENDENCIES) $(EXTRA_netlink_sock_diag_DEPENDENCIES) 
+	@rm -f netlink_sock_diag$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(netlink_sock_diag_OBJECTS) $(netlink_sock_diag_LDADD) $(LIBS)
+
 netlink_unix_diag$(EXEEXT): $(netlink_unix_diag_OBJECTS) $(netlink_unix_diag_DEPENDENCIES) $(EXTRA_netlink_unix_diag_DEPENDENCIES) 
 	@rm -f netlink_unix_diag$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(netlink_unix_diag_OBJECTS) $(netlink_unix_diag_LDADD) $(LIBS)
 
+netlink_xfrm$(EXEEXT): $(netlink_xfrm_OBJECTS) $(netlink_xfrm_DEPENDENCIES) $(EXTRA_netlink_xfrm_DEPENDENCIES) 
+	@rm -f netlink_xfrm$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(netlink_xfrm_OBJECTS) $(netlink_xfrm_LDADD) $(LIBS)
+
 newfstatat$(EXEEXT): $(newfstatat_OBJECTS) $(newfstatat_DEPENDENCIES) $(EXTRA_newfstatat_DEPENDENCIES) 
 	@rm -f newfstatat$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(newfstatat_OBJECTS) $(newfstatat_LDADD) $(LIBS)
 
+nlattr$(EXEEXT): $(nlattr_OBJECTS) $(nlattr_DEPENDENCIES) $(EXTRA_nlattr_DEPENDENCIES) 
+	@rm -f nlattr$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(nlattr_OBJECTS) $(nlattr_LDADD) $(LIBS)
+
+nlattr_inet_diag_msg$(EXEEXT): $(nlattr_inet_diag_msg_OBJECTS) $(nlattr_inet_diag_msg_DEPENDENCIES) $(EXTRA_nlattr_inet_diag_msg_DEPENDENCIES) 
+	@rm -f nlattr_inet_diag_msg$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(nlattr_inet_diag_msg_OBJECTS) $(nlattr_inet_diag_msg_LDADD) $(LIBS)
+
+nlattr_netlink_diag_msg$(EXEEXT): $(nlattr_netlink_diag_msg_OBJECTS) $(nlattr_netlink_diag_msg_DEPENDENCIES) $(EXTRA_nlattr_netlink_diag_msg_DEPENDENCIES) 
+	@rm -f nlattr_netlink_diag_msg$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(nlattr_netlink_diag_msg_OBJECTS) $(nlattr_netlink_diag_msg_LDADD) $(LIBS)
+
+nlattr_unix_diag_msg$(EXEEXT): $(nlattr_unix_diag_msg_OBJECTS) $(nlattr_unix_diag_msg_DEPENDENCIES) $(EXTRA_nlattr_unix_diag_msg_DEPENDENCIES) 
+	@rm -f nlattr_unix_diag_msg$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(nlattr_unix_diag_msg_OBJECTS) $(nlattr_unix_diag_msg_LDADD) $(LIBS)
+
 nsyscalls$(EXEEXT): $(nsyscalls_OBJECTS) $(nsyscalls_DEPENDENCIES) $(EXTRA_nsyscalls_DEPENDENCIES) 
 	@rm -f nsyscalls$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(nsyscalls_OBJECTS) $(nsyscalls_LDADD) $(LIBS)
@@ -4265,6 +4433,10 @@
 	@rm -f rmdir$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(rmdir_OBJECTS) $(rmdir_LDADD) $(LIBS)
 
+rt_sigaction$(EXEEXT): $(rt_sigaction_OBJECTS) $(rt_sigaction_DEPENDENCIES) $(EXTRA_rt_sigaction_DEPENDENCIES) 
+	@rm -f rt_sigaction$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(rt_sigaction_OBJECTS) $(rt_sigaction_LDADD) $(LIBS)
+
 rt_sigpending$(EXEEXT): $(rt_sigpending_OBJECTS) $(rt_sigpending_DEPENDENCIES) $(EXTRA_rt_sigpending_DEPENDENCIES) 
 	@rm -f rt_sigpending$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(rt_sigpending_OBJECTS) $(rt_sigpending_LDADD) $(LIBS)
@@ -4293,6 +4465,10 @@
 	@rm -f rt_tgsigqueueinfo$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(rt_tgsigqueueinfo_OBJECTS) $(rt_tgsigqueueinfo_LDADD) $(LIBS)
 
+run_expect_termsig$(EXEEXT): $(run_expect_termsig_OBJECTS) $(run_expect_termsig_DEPENDENCIES) $(EXTRA_run_expect_termsig_DEPENDENCIES) 
+	@rm -f run_expect_termsig$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(run_expect_termsig_OBJECTS) $(run_expect_termsig_LDADD) $(LIBS)
+
 sched_get_priority_mxx$(EXEEXT): $(sched_get_priority_mxx_OBJECTS) $(sched_get_priority_mxx_DEPENDENCIES) $(EXTRA_sched_get_priority_mxx_DEPENDENCIES) 
 	@rm -f sched_get_priority_mxx$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(sched_get_priority_mxx_OBJECTS) $(sched_get_priority_mxx_LDADD) $(LIBS)
@@ -4469,6 +4645,10 @@
 	@rm -f siginfo$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(siginfo_OBJECTS) $(siginfo_LDADD) $(LIBS)
 
+signal$(EXEEXT): $(signal_OBJECTS) $(signal_DEPENDENCIES) $(EXTRA_signal_DEPENDENCIES) 
+	@rm -f signal$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(signal_OBJECTS) $(signal_LDADD) $(LIBS)
+
 signal_receive$(EXEEXT): $(signal_receive_OBJECTS) $(signal_receive_DEPENDENCIES) $(EXTRA_signal_receive_DEPENDENCIES) 
 	@rm -f signal_receive$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(signal_receive_OBJECTS) $(signal_receive_LDADD) $(LIBS)
@@ -4477,6 +4657,14 @@
 	@rm -f signalfd4$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(signalfd4_OBJECTS) $(signalfd4_LDADD) $(LIBS)
 
+sigpending$(EXEEXT): $(sigpending_OBJECTS) $(sigpending_DEPENDENCIES) $(EXTRA_sigpending_DEPENDENCIES) 
+	@rm -f sigpending$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(sigpending_OBJECTS) $(sigpending_LDADD) $(LIBS)
+
+sigprocmask$(EXEEXT): $(sigprocmask_OBJECTS) $(sigprocmask_DEPENDENCIES) $(EXTRA_sigprocmask_DEPENDENCIES) 
+	@rm -f sigprocmask$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(sigprocmask_OBJECTS) $(sigprocmask_LDADD) $(LIBS)
+
 sigreturn$(EXEEXT): $(sigreturn_OBJECTS) $(sigreturn_DEPENDENCIES) $(EXTRA_sigreturn_DEPENDENCIES) 
 	@rm -f sigreturn$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(sigreturn_OBJECTS) $(sigreturn_LDADD) $(LIBS)
@@ -4641,6 +4829,10 @@
 	@rm -f uname$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(uname_OBJECTS) $(uname_LDADD) $(LIBS)
 
+unblock_reset_raise$(EXEEXT): $(unblock_reset_raise_OBJECTS) $(unblock_reset_raise_DEPENDENCIES) $(EXTRA_unblock_reset_raise_DEPENDENCIES) 
+	@rm -f unblock_reset_raise$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(unblock_reset_raise_OBJECTS) $(unblock_reset_raise_LDADD) $(LIBS)
+
 unix-pair-send-recv$(EXEEXT): $(unix_pair_send_recv_OBJECTS) $(unix_pair_send_recv_DEPENDENCIES) $(EXTRA_unix_pair_send_recv_DEPENDENCIES) 
 	@rm -f unix-pair-send-recv$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(unix_pair_send_recv_OBJECTS) $(unix_pair_send_recv_LDADD) $(LIBS)
@@ -4741,6 +4933,10 @@
 	@rm -f xettimeofday$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(xettimeofday_OBJECTS) $(xettimeofday_LDADD) $(LIBS)
 
+zeroargc$(EXEEXT): $(zeroargc_OBJECTS) $(zeroargc_DEPENDENCIES) $(EXTRA_zeroargc_DEPENDENCIES) 
+	@rm -f zeroargc$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(zeroargc_OBJECTS) $(zeroargc_LDADD) $(LIBS)
+
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
 
@@ -4761,6 +4957,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/attach-f-p.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/attach-p-cmd-cmd.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/attach-p-cmd-p.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/block_reset_raise_run.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/brk.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btrfs.Po@am__quote@
@@ -4893,6 +5090,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ksysent.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lchown.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lchown32.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-create_nl_socket.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-errno2name.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-error_msg.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-fill_memory.Po@am__quote@
@@ -4958,11 +5156,22 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-yy-inet.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-yy-netlink.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-yy-unix.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_audit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_generic.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_inet_diag.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_netfilter.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_netlink_diag.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_protocol.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_route.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_selinux.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_sock_diag.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_unix_diag.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_xfrm.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/newfstatat-newfstatat.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_inet_diag_msg.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_netlink_diag_msg.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_unix_diag_msg.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nsyscalls.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/old_mmap.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oldfstat.Po@am__quote@
@@ -5035,6 +5244,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/request_key.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/restart_syscall.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rmdir.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigaction.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigpending.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigprocmask.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigqueueinfo.Po@am__quote@
@@ -5042,6 +5252,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigsuspend.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigtimedwait.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_tgsigqueueinfo.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/run_expect_termsig.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_get_priority_mxx.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_rr_get_interval.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetaffinity.Po@am__quote@
@@ -5086,8 +5297,11 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigaction.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigaltstack.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/siginfo.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal_receive.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signalfd4.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigpending.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigprocmask.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigreturn.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigsuspend.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sleep.Po@am__quote@
@@ -5133,6 +5347,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umovestr2.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umovestr3.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uname.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unblock_reset_raise.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unix-pair-send-recv.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unix-pair-sendto-recvfrom.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unlink.Po@am__quote@
@@ -5158,6 +5373,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetpgid.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetpriority.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xettimeofday.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zeroargc.Po@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -5173,6 +5389,20 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
+libtests_a-create_nl_socket.o: create_nl_socket.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-create_nl_socket.o -MD -MP -MF $(DEPDIR)/libtests_a-create_nl_socket.Tpo -c -o libtests_a-create_nl_socket.o `test -f 'create_nl_socket.c' || echo '$(srcdir)/'`create_nl_socket.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-create_nl_socket.Tpo $(DEPDIR)/libtests_a-create_nl_socket.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='create_nl_socket.c' object='libtests_a-create_nl_socket.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) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-create_nl_socket.o `test -f 'create_nl_socket.c' || echo '$(srcdir)/'`create_nl_socket.c
+
+libtests_a-create_nl_socket.obj: create_nl_socket.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-create_nl_socket.obj -MD -MP -MF $(DEPDIR)/libtests_a-create_nl_socket.Tpo -c -o libtests_a-create_nl_socket.obj `if test -f 'create_nl_socket.c'; then $(CYGPATH_W) 'create_nl_socket.c'; else $(CYGPATH_W) '$(srcdir)/create_nl_socket.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-create_nl_socket.Tpo $(DEPDIR)/libtests_a-create_nl_socket.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='create_nl_socket.c' object='libtests_a-create_nl_socket.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) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-create_nl_socket.obj `if test -f 'create_nl_socket.c'; then $(CYGPATH_W) 'create_nl_socket.c'; else $(CYGPATH_W) '$(srcdir)/create_nl_socket.c'; fi`
+
 libtests_a-errno2name.o: errno2name.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-errno2name.o -MD -MP -MF $(DEPDIR)/libtests_a-errno2name.Tpo -c -o libtests_a-errno2name.o `test -f 'errno2name.c' || echo '$(srcdir)/'`errno2name.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-errno2name.Tpo $(DEPDIR)/libtests_a-errno2name.Po
@@ -6511,12 +6741,42 @@
 $(srcdir)/net-sockaddr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
 	$(AM_V_GEN) $^ $@
 
+$(srcdir)/netlink_audit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_generic.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_netfilter.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
 $(srcdir)/netlink_protocol.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
 	$(AM_V_GEN) $^ $@
 
+$(srcdir)/netlink_route.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_selinux.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_xfrm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
 $(srcdir)/newfstatat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
 	$(AM_V_GEN) $^ $@
 
+$(srcdir)/nlattr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/nlattr_inet_diag_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/nlattr_netlink_diag_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/nlattr_unix_diag_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
 $(srcdir)/old_mmap.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
 	$(AM_V_GEN) $^ $@
 
@@ -6799,15 +7059,27 @@
 $(srcdir)/shutdown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
 	$(AM_V_GEN) $^ $@
 
+$(srcdir)/sigaction.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
 $(srcdir)/siginfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
 	$(AM_V_GEN) $^ $@
 
+$(srcdir)/signal.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
 $(srcdir)/signal_receive.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
 	$(AM_V_GEN) $^ $@
 
 $(srcdir)/signalfd4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
 	$(AM_V_GEN) $^ $@
 
+$(srcdir)/sigpending.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sigprocmask.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
 $(srcdir)/sigreturn.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
 	$(AM_V_GEN) $^ $@
 
@@ -7014,8 +7286,8 @@
 clean-local-check:
 	-rm -rf -- $(TESTS:.test=.dir) $(GEN_TESTS:.gen.test=.dir)
 
-syscallent.i: $(top_srcdir)/$(OS)/$(ARCH)/syscallent.h
-	$(CPP) -P $(SCNO_CPPFLAGS) $^ -o $@
+syscallent.i: $(top_builddir)/config.h $(top_srcdir)/$(OS)/$(ARCH)/syscallent.h
+	$(CPP) -P $(SCNO_CPPFLAGS) -include $^ -o $@
 
 scno.h: $(top_srcdir)/scno.head syscallent.i
 	echo '/* Generated by Makefile from $^; do not edit. */' > $@-t
diff --git a/tests-m32/add_key.c b/tests-m32/add_key.c
index d2696f9..1de0cc3 100644
--- a/tests-m32/add_key.c
+++ b/tests-m32/add_key.c
@@ -70,8 +70,7 @@
 {
 	static const char unterminated1[] = { '\1', '\2', '\3', '\4', '\5' };
 	static const char unterminated2[] = { '\6', '\7', '\10', '\11', '\12' };
-	static const char unterminated3[] =
-		{ '\16', '\17', '\20', '\21', '\22' };
+	static const char unterminated3[] = { '\16', '\17', '\20', '\21', '\22' };
 
 	char *bogus_type = tail_memdup(unterminated1, sizeof(unterminated1));
 	char *bogus_desc = tail_memdup(unterminated2, sizeof(unterminated2));
diff --git a/tests-m32/aio.c b/tests-m32/aio.c
index 677a02b..77b6c05 100644
--- a/tests-m32/aio.c
+++ b/tests-m32/aio.c
@@ -240,9 +240,9 @@
 		perror_msg_and_skip("io_submit");
 	printf("io_submit(%#lx, %u, ["
 	       "{data=%#" PRI__x64 ", pread, reqprio=11, fildes=0, "
-	               "buf=%p, nbytes=%u, offset=%" PRI__d64 "}, "
+		"buf=%p, nbytes=%u, offset=%" PRI__d64 "}, "
 	       "{data=%#" PRI__x64 ", pread, reqprio=22, fildes=0, "
-	               "buf=%p, nbytes=%u, offset=%" PRI__d64 "}"
+		"buf=%p, nbytes=%u, offset=%" PRI__d64 "}"
 	       "]) = %s\n",
 	       *ctx, nr,
 	       cb[0].aio_data, data0, sizeof_data0, cb[0].aio_offset,
@@ -317,18 +317,18 @@
 	printf("io_submit(%#lx, %ld, ["
 	       "{data=%#" PRI__x64 ", key=%u, %hu /* SUB_??? */, fildes=%d}, "
 	       "{key=%u, pwrite, reqprio=%hd, fildes=%d, str=NULL"
-	               ", nbytes=%" PRI__u64 ", offset=%" PRI__d64
+		", nbytes=%" PRI__u64 ", offset=%" PRI__d64
 # ifdef IOCB_FLAG_RESFD
-	               ", resfd=%d, flags=%#x"
+		", resfd=%d, flags=%#x"
 # endif
-	               "}, "
+		"}, "
 	       "{key=%u, pwrite, reqprio=%hd, fildes=%d, buf=%#" PRI__x64
-	               ", nbytes=%" PRI__u64 ", offset=%" PRI__d64 "}, "
+		", nbytes=%" PRI__u64 ", offset=%" PRI__d64 "}, "
 	       "{key=%u, pwrite, reqprio=%hd, fildes=%d"
-	               ", str=\"\\0\\1\\2\\3%.28s\"..."
-	               ", nbytes=%" PRI__u64 ", offset=%" PRI__d64 "}, "
+		", str=\"\\0\\1\\2\\3%.28s\"..."
+		", nbytes=%" PRI__u64 ", offset=%" PRI__d64 "}, "
 	       "{key=%u, pwritev, reqprio=%hd, fildes=%d, buf=%#" PRI__x64
-	               ", nbytes=%" PRI__u64 ", offset=%" PRI__d64 "}"
+		", nbytes=%" PRI__u64 ", offset=%" PRI__d64 "}"
 	       ", {NULL}, {%#lx}, %p]) = %s\n",
 	       *ctx, 1057L,
 	       cbv2[0].aio_data, cbv2[0].aio_key,
@@ -351,11 +351,11 @@
 		perror_msg_and_skip("io_submit");
 	printf("io_submit(%#lx, %u, ["
 	       "{data=%#" PRI__x64 ", preadv, reqprio=%hd, fildes=0, "
-	               "iovec=[{iov_base=%p, iov_len=%u}"
-	               ", {iov_base=%p, iov_len=%u}], offset=%" PRI__d64 "}, "
+		"iovec=[{iov_base=%p, iov_len=%u}"
+		", {iov_base=%p, iov_len=%u}], offset=%" PRI__d64 "}, "
 	       "{data=%#" PRI__x64 ", preadv, reqprio=%hd, fildes=0, "
-	               "iovec=[{iov_base=%p, iov_len=%u}"
-	               ", {iov_base=%p, iov_len=%u}], offset=%" PRI__d64 "}"
+		"iovec=[{iov_base=%p, iov_len=%u}"
+		", {iov_base=%p, iov_len=%u}], offset=%" PRI__d64 "}"
 	       "]) = %s\n",
 	       *ctx, nr,
 	       cbv[0].aio_data, cbv[0].aio_reqprio,
diff --git a/tests-m32/block_reset_raise_run.c b/tests-m32/block_reset_raise_run.c
new file mode 100644
index 0000000..e2c5c99
--- /dev/null
+++ b/tests-m32/block_reset_raise_run.c
@@ -0,0 +1,55 @@
+/*
+ * Execute a command with blocked, reset, and raised signal.
+ *
+ * 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 "tests.h"
+#include <signal.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+int
+main(int ac, char **av)
+{
+	if (ac < 3)
+		error_msg_and_fail("usage: block_reset_raise_run signo path...");
+
+	sigset_t mask;
+	sigemptyset(&mask);
+	const int signo = atoi(av[1]);
+	if (sigaddset(&mask, signo))
+		perror_msg_and_fail("sigaddset: %s", av[1]);
+	if (sigprocmask(SIG_BLOCK, &mask, NULL))
+		perror_msg_and_fail("sigprocmask");
+	if (signal(signo, SIG_DFL) == SIG_ERR)
+		perror_msg_and_fail("signal: %s", av[1]);
+	if (raise(signo))
+		perror_msg_and_fail("raise: %s", av[1]);
+
+	execvp(av[2], av + 2);
+	perror_msg_and_fail("execvp: %s", av[2]);
+}
diff --git a/tests-m32/btrfs.c b/tests-m32/btrfs.c
index 7e5ccff..710d763 100644
--- a/tests-m32/btrfs.c
+++ b/tests-m32/btrfs.c
@@ -61,8 +61,8 @@
 
 static const char *btrfs_test_root;
 static int btrfs_test_dir_fd;
-static bool verbose = false;
-static bool write_ok = false;
+static bool verbose;
+static bool write_ok;
 
 const unsigned char uuid_reference[BTRFS_UUID_SIZE] = {
 	0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef,
@@ -75,10 +75,10 @@
 struct btrfs_ioctl_quota_rescan_args {
 	uint64_t flags, progress, reserved[6];
 };
-# define BTRFS_IOC_QUOTA_RESCAN _IOW(BTRFS_IOCTL_MAGIC, 44, \
-					struct btrfs_ioctl_quota_rescan_args)
-# define BTRFS_IOC_QUOTA_RESCAN_STATUS _IOR(BTRFS_IOCTL_MAGIC, 45, \
-					struct btrfs_ioctl_quota_rescan_args)
+# define BTRFS_IOC_QUOTA_RESCAN			\
+	_IOW(BTRFS_IOCTL_MAGIC, 44, struct btrfs_ioctl_quota_rescan_args)
+# define BTRFS_IOC_QUOTA_RESCAN_STATUS		\
+	_IOR(BTRFS_IOCTL_MAGIC, 45, struct btrfs_ioctl_quota_rescan_args)
 #endif
 
 #ifndef BTRFS_IOC_QUOTA_RESCAN_WAIT
@@ -86,30 +86,30 @@
 #endif
 
 #ifndef BTRFS_IOC_GET_FEATURES
-# define BTRFS_IOC_GET_FEATURES _IOR(BTRFS_IOCTL_MAGIC, 57, \
-                                   struct btrfs_ioctl_feature_flags)
-# define BTRFS_IOC_SET_FEATURES _IOW(BTRFS_IOCTL_MAGIC, 57, \
-                                   struct btrfs_ioctl_feature_flags[2])
-# define BTRFS_IOC_GET_SUPPORTED_FEATURES _IOR(BTRFS_IOCTL_MAGIC, 57, \
-                                   struct btrfs_ioctl_feature_flags[3])
+# define BTRFS_IOC_GET_FEATURES			\
+	_IOR(BTRFS_IOCTL_MAGIC, 57, struct btrfs_ioctl_feature_flags)
+# define BTRFS_IOC_SET_FEATURES			\
+	_IOW(BTRFS_IOCTL_MAGIC, 57, struct btrfs_ioctl_feature_flags[2])
+# define BTRFS_IOC_GET_SUPPORTED_FEATURES	\
+	_IOR(BTRFS_IOCTL_MAGIC, 57, struct btrfs_ioctl_feature_flags[3])
 #endif
 
 #ifndef HAVE_STRUCT_BTRFS_IOCTL_FEATURE_FLAGS_COMPAT_FLAGS
 struct btrfs_ioctl_feature_flags {
-        uint64_t compat_flags;
-        uint64_t compat_ro_flags;
-        uint64_t incompat_flags;
+	uint64_t compat_flags;
+	uint64_t compat_ro_flags;
+	uint64_t incompat_flags;
 };
 #endif
 
 #ifndef HAVE_STRUCT_BTRFS_IOCTL_DEFRAG_RANGE_ARGS_START
 struct btrfs_ioctl_defrag_range_args {
-        uint64_t start;
-        uint64_t len;
-        uint64_t flags;
-        uint32_t extent_thresh;
-        uint32_t compress_type;
-        uint32_t unused[4];
+	uint64_t start;
+	uint64_t len;
+	uint64_t flags;
+	uint32_t extent_thresh;
+	uint32_t compress_type;
+	uint32_t unused[4];
 };
 #endif
 
@@ -140,14 +140,14 @@
 #endif
 
 #ifndef BTRFS_IOC_TREE_SEARCH_V2
-# define BTRFS_IOC_TREE_SEARCH_V2 _IOWR(BTRFS_IOCTL_MAGIC, 17, \
-                                           struct btrfs_ioctl_search_args_v2)
+# define BTRFS_IOC_TREE_SEARCH_V2	\
+	_IOWR(BTRFS_IOCTL_MAGIC, 17, struct btrfs_ioctl_search_args_v2)
 struct btrfs_ioctl_search_args_v2 {
 	struct btrfs_ioctl_search_key key; /* in/out - search parameters */
 	uint64_t buf_size;		   /* in - size of buffer
 					    * out - on EOVERFLOW: needed size
 					    *       to store item */
-        uint64_t buf[0];		   /* out - found items */
+	uint64_t buf[0];		   /* out - found items */
 };
 #endif
 
diff --git a/tests-m32/create_nl_socket.c b/tests-m32/create_nl_socket.c
new file mode 100644
index 0000000..c2708d8
--- /dev/null
+++ b/tests-m32/create_nl_socket.c
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2015-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 "tests.h"
+#include <sys/socket.h>
+#include "netlink.h"
+
+int
+create_nl_socket_ext(const int proto, const char *const name)
+{
+	const int fd = socket(AF_NETLINK, SOCK_RAW, proto);
+	if (fd < 0)
+		perror_msg_and_skip("socket AF_NETLINK %s", name);
+
+	const struct sockaddr_nl addr = { .nl_family = AF_NETLINK };
+	socklen_t len = sizeof(addr);
+
+	if (bind(fd, (const struct sockaddr *) &addr, len))
+		perror_msg_and_skip("bind AF_NETLINK %s", name);
+
+	/* one more operation on this socket to win the race */
+	int listening;
+	len = sizeof(listening);
+	if (getsockopt(fd, SOL_SOCKET, SO_ACCEPTCONN, &listening, &len))
+		perror_msg_and_fail("getsockopt");
+
+	return fd;
+}
diff --git a/tests-m32/dup3.c b/tests-m32/dup3.c
index 252e846..7a65b61 100644
--- a/tests-m32/dup3.c
+++ b/tests-m32/dup3.c
@@ -23,6 +23,6 @@
 
 #else
 
-SKIP_MAIN_UNDEFINED("__NR_dup3 && && O_CLOEXEC")
+SKIP_MAIN_UNDEFINED("__NR_dup3 && O_CLOEXEC")
 
 #endif
diff --git a/tests-m32/errno2name.c b/tests-m32/errno2name.c
index 4a17699..d481e2e 100644
--- a/tests-m32/errno2name.c
+++ b/tests-m32/errno2name.c
@@ -476,6 +476,7 @@
 #ifdef EXFULL
 	CASE(EXFULL);
 #endif
-	default: perror_msg_and_fail("unknown errno %d", errno);
+	default:
+		perror_msg_and_fail("unknown errno %d", errno);
 	}
 }
diff --git a/tests-m32/execve.c b/tests-m32/execve.c
index c558dd3..da3bc52 100644
--- a/tests-m32/execve.c
+++ b/tests-m32/execve.c
@@ -127,9 +127,14 @@
 #endif
 	       );
 
-	char str_a[] = "012345678901234567890123456789012";
-	char str_b[] = "_abcdefghijklmnopqrstuvwxyz()[]{}";
-#define DEFAULT_STRLEN ((unsigned int) sizeof(str_a) - 2)
+	char *const str_a = tail_alloc(DEFAULT_STRLEN + 2);
+	fill_memory_ex(str_a, DEFAULT_STRLEN + 1, '0', 10);
+	str_a[DEFAULT_STRLEN + 1] = '\0';
+
+	char *const str_b = tail_alloc(DEFAULT_STRLEN + 2);
+	fill_memory_ex(str_b, DEFAULT_STRLEN + 1, '_', 32);
+	str_b[DEFAULT_STRLEN + 1] = '\0';
+
 	char **const a = tail_alloc(sizeof(*a) * (DEFAULT_STRLEN + 2));
 	char **const b = tail_alloc(sizeof(*b) * (DEFAULT_STRLEN + 2));
 	unsigned int i;
diff --git a/tests-m32/execveat.c b/tests-m32/execveat.c
index 8ffc4d5..566a59f 100644
--- a/tests-m32/execveat.c
+++ b/tests-m32/execveat.c
@@ -133,9 +133,14 @@
 #endif
 	       errno2name());
 
-	char str_a[] = "012345678901234567890123456789012";
-	char str_b[] = "_abcdefghijklmnopqrstuvwxyz()[]{}";
-#define DEFAULT_STRLEN ((unsigned int) sizeof(str_a) - 2)
+	char *const str_a = tail_alloc(DEFAULT_STRLEN + 2);
+	fill_memory_ex(str_a, DEFAULT_STRLEN + 1, '0', 10);
+	str_a[DEFAULT_STRLEN + 1] = '\0';
+
+	char *const str_b = tail_alloc(DEFAULT_STRLEN + 2);
+	fill_memory_ex(str_b, DEFAULT_STRLEN + 1, '_', 32);
+	str_b[DEFAULT_STRLEN + 1] = '\0';
+
 	char **const a = tail_alloc(sizeof(*a) * (DEFAULT_STRLEN + 2));
 	char **const b = tail_alloc(sizeof(*b) * (DEFAULT_STRLEN + 2));
 	unsigned int i;
diff --git a/tests-m32/futex.c b/tests-m32/futex.c
index 9a9ab66..b75ab33 100644
--- a/tests-m32/futex.c
+++ b/tests-m32/futex.c
@@ -254,7 +254,7 @@
 	       zero_extend_signed_to_ull(tmout->tv_nsec), sprintrc(rc));
 
 	CHECK_FUTEX_ENOSYS(uaddr,
-		FUTEX_CLOCK_REALTIME | FUTEX_PRIVATE_FLAG | FUTEX_WAIT ,
+		FUTEX_CLOCK_REALTIME | FUTEX_PRIVATE_FLAG | FUTEX_WAIT,
 		VAL, tmout, uaddr2, 0, (rc == -1) && (errno == EAGAIN));
 	printf("futex(%p, FUTEX_WAIT_PRIVATE|FUTEX_CLOCK_REALTIME, %u"
 	       ", {tv_sec=%lld, tv_nsec=%llu}) = %s\n",
@@ -612,7 +612,7 @@
 
 	CHECK_FUTEX_ENOSYS(uaddr + 1, FUTEX_PRIVATE_FLAG | FUTEX_UNLOCK_PI, VAL,
 		tmout, uaddr2 + 1, VAL3, (rc == -1) && (errno == EFAULT));
-	printf("futex(%p, FUTEX_UNLOCK_PI_PRIVATE) = %s\n", uaddr +1,
+	printf("futex(%p, FUTEX_UNLOCK_PI_PRIVATE) = %s\n", uaddr + 1,
 		sprintrc(rc));
 
 	CHECK_INVALID_CLOCKRT(FUTEX_UNLOCK_PI, 0);
diff --git a/tests-m32/gen_tests.am b/tests-m32/gen_tests.am
new file mode 100644
index 0000000..f1b34dd
--- /dev/null
+++ b/tests-m32/gen_tests.am
@@ -0,0 +1,1007 @@
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in; do not edit.
+GEN_TESTS = _newselect.gen.test accept.gen.test accept4.gen.test access.gen.test acct.gen.test add_key.gen.test adjtimex.gen.test aio.gen.test alarm.gen.test bpf.gen.test btrfs.gen.test chmod.gen.test chown.gen.test chown32.gen.test chroot.gen.test clock.gen.test clock_adjtime.gen.test clock_nanosleep.gen.test clock_xettime.gen.test copy_file_range.gen.test creat.gen.test delete_module.gen.test dup.gen.test dup2.gen.test dup3.gen.test epoll_create.gen.test epoll_create1.gen.test epoll_ctl.gen.test epoll_pwait.gen.test epoll_wait.gen.test erestartsys.gen.test execveat.gen.test execveat-v.gen.test faccessat.gen.test fadvise64_64.gen.test fallocate.gen.test fanotify_init.gen.test fanotify_mark.gen.test fchdir.gen.test fchmod.gen.test fchmodat.gen.test fchown.gen.test fchown32.gen.test fchownat.gen.test fcntl.gen.test fcntl64.gen.test fdatasync.gen.test file_handle.gen.test file_ioctl.gen.test finit_module.gen.test flock.gen.test fork-f.gen.test fstat.gen.test fstat64.gen.test fstatat64.gen.test fstatfs.gen.test fstatfs64.gen.test fsync.gen.test ftruncate.gen.test ftruncate64.gen.test futimesat.gen.test get_mempolicy.gen.test getcpu.gen.test getcwd.gen.test getdents.gen.test getdents64.gen.test getegid.gen.test getegid32.gen.test geteuid.gen.test geteuid32.gen.test getgid.gen.test getgid32.gen.test getgroups.gen.test getgroups32.gen.test getpeername.gen.test getpgrp.gen.test getpid.gen.test getppid.gen.test getrandom.gen.test getresgid.gen.test getresgid32.gen.test getresuid.gen.test getresuid32.gen.test getrlimit.gen.test getrusage.gen.test getsid.gen.test getsockname.gen.test gettid.gen.test getuid32.gen.test getxxid.gen.test inet-cmsg.gen.test init_module.gen.test inotify.gen.test inotify_init1.gen.test int_0x80.gen.test ioctl_block.gen.test ioctl_evdev.gen.test ioctl_evdev-v.gen.test ioctl_loop.gen.test ioctl_loop-v.gen.test ioctl_mtd.gen.test ioctl_rtc.gen.test ioctl_rtc-v.gen.test ioctl_scsi.gen.test ioctl_sg_io_v3.gen.test ioctl_sg_io_v4.gen.test ioctl_uffdio.gen.test ioctl_v4l2.gen.test ioperm.gen.test iopl.gen.test ioprio.gen.test ip_mreq.gen.test ipc.gen.test ipc_msg.gen.test ipc_sem.gen.test ipc_shm.gen.test kcmp.gen.test kexec_file_load.gen.test kexec_load.gen.test keyctl.gen.test kill.gen.test lchown.gen.test lchown32.gen.test link.gen.test linkat.gen.test lookup_dcookie.gen.test lstat.gen.test lstat64.gen.test madvise.gen.test mbind.gen.test membarrier.gen.test memfd_create.gen.test migrate_pages.gen.test mincore.gen.test mkdir.gen.test mkdirat.gen.test mknod.gen.test mknodat.gen.test mlock.gen.test mlock2.gen.test mlockall.gen.test mmap64.gen.test mmsg.gen.test mmsg-silent.gen.test mmsg_name.gen.test mmsg_name-v.gen.test mount.gen.test move_pages.gen.test mq.gen.test mq_sendrecv.gen.test mq_sendrecv-read.gen.test mq_sendrecv-write.gen.test msg_control.gen.test msg_control-v.gen.test msg_name.gen.test munlockall.gen.test nanosleep.gen.test net-icmp_filter.gen.test net-sockaddr.gen.test netlink_audit.gen.test netlink_generic.gen.test netlink_netfilter.gen.test netlink_protocol.gen.test netlink_route.gen.test netlink_selinux.gen.test netlink_xfrm.gen.test newfstatat.gen.test nlattr.gen.test nlattr_inet_diag_msg.gen.test nlattr_netlink_diag_msg.gen.test nlattr_unix_diag_msg.gen.test old_mmap.gen.test oldfstat.gen.test oldlstat.gen.test oldstat.gen.test open.gen.test openat.gen.test osf_utimes.gen.test pause.gen.test perf_event_open.gen.test perf_event_open_nonverbose.gen.test perf_event_open_unabbrev.gen.test pipe2.gen.test pkey_alloc.gen.test pkey_free.gen.test pkey_mprotect.gen.test ppoll.gen.test ppoll-v.gen.test pread64-pwrite64.gen.test preadv.gen.test preadv-pwritev.gen.test preadv2-pwritev2.gen.test printstr.gen.test prlimit64.gen.test process_vm_readv.gen.test process_vm_writev.gen.test pselect6.gen.test ptrace.gen.test pwritev.gen.test quotactl.gen.test quotactl-v.gen.test quotactl-xfs.gen.test quotactl-xfs-v.gen.test read-write.gen.test readahead.gen.test readdir.gen.test readlink.gen.test readlinkat.gen.test reboot.gen.test recvfrom.gen.test recvmmsg-timeout.gen.test recvmsg.gen.test regex.gen.test remap_file_pages.gen.test rename.gen.test renameat.gen.test renameat2.gen.test request_key.gen.test rmdir.gen.test rt_sigpending.gen.test rt_sigprocmask.gen.test rt_sigqueueinfo.gen.test rt_sigreturn.gen.test rt_sigsuspend.gen.test rt_sigtimedwait.gen.test rt_tgsigqueueinfo.gen.test sched.gen.test sched_get_priority_mxx.gen.test sched_rr_get_interval.gen.test sched_xetaffinity.gen.test sched_xetattr.gen.test sched_xetparam.gen.test sched_xetscheduler.gen.test sched_yield.gen.test seccomp-filter.gen.test seccomp-filter-v.gen.test select.gen.test semop.gen.test sendfile.gen.test sendfile64.gen.test set_mempolicy.gen.test setdomainname.gen.test setfsgid.gen.test setfsgid32.gen.test setfsuid.gen.test setfsuid32.gen.test setgid.gen.test setgid32.gen.test setgroups.gen.test setgroups32.gen.test sethostname.gen.test setns.gen.test setregid.gen.test setregid32.gen.test setresgid.gen.test setresgid32.gen.test setresuid.gen.test setresuid32.gen.test setreuid.gen.test setreuid32.gen.test setrlimit.gen.test setuid.gen.test setuid32.gen.test shmxt.gen.test shutdown.gen.test sigaction.gen.test siginfo.gen.test signal.gen.test signal_receive.gen.test signalfd4.gen.test sigpending.gen.test sigprocmask.gen.test sigreturn.gen.test sigsuspend.gen.test socketcall.gen.test splice.gen.test stat.gen.test stat64.gen.test statfs.gen.test statfs64.gen.test statx.gen.test swap.gen.test sxetmask.gen.test symlink.gen.test symlinkat.gen.test sync.gen.test sync_file_range.gen.test sync_file_range2.gen.test sysinfo.gen.test syslog.gen.test tee.gen.test time.gen.test timer_create.gen.test timer_xettime.gen.test timerfd_xettime.gen.test times.gen.test times-fail.gen.test trace_fstat.gen.test trace_fstatfs.gen.test trace_lstat.gen.test trace_question.gen.test trace_stat.gen.test trace_stat_like.gen.test trace_statfs.gen.test trace_statfs_like.gen.test truncate.gen.test truncate64.gen.test ugetrlimit.gen.test umask.gen.test umoven-illptr.gen.test umovestr-illptr.gen.test umovestr3.gen.test unlink.gen.test unlinkat.gen.test unshare.gen.test userfaultfd.gen.test ustat.gen.test utime.gen.test utimensat.gen.test utimes.gen.test vfork-f.gen.test vhangup.gen.test vmsplice.gen.test wait4.gen.test wait4-v.gen.test waitid.gen.test waitid-v.gen.test waitpid.gen.test xattr.gen.test xattr-strings.gen.test xet_robust_list.gen.test xetitimer.gen.test xetpgid.gen.test xetpriority.gen.test xettimeofday.gen.test
+
+$(srcdir)/_newselect.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/accept.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/accept4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/access.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/acct.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/add_key.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/adjtimex.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/aio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/alarm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/bpf.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/btrfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/chmod.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/chown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/chown32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/chroot.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/clock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/clock_adjtime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/clock_nanosleep.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/clock_xettime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/copy_file_range.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/creat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/delete_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/dup.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/dup2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/dup3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/epoll_create.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/epoll_create1.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/epoll_ctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/epoll_pwait.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/epoll_wait.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/erestartsys.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/execveat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/execveat-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/faccessat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fadvise64_64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fallocate.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fanotify_init.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fanotify_mark.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fchdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fchmod.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fchmodat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fchown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fchown32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fchownat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fcntl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fcntl64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fdatasync.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/file_handle.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/file_ioctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/finit_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/flock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fork-f.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fstat64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fstatat64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fstatfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fstatfs64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fsync.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ftruncate.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ftruncate64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/futimesat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/get_mempolicy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getcpu.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getcwd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getdents.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getdents64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getegid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getegid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/geteuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/geteuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getgroups.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getgroups32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getpeername.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getpgrp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getpid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getppid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getrandom.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getresgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getresgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getresuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getresuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getrlimit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getrusage.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getsid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getsockname.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/gettid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getxxid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/inet-cmsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/init_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/inotify.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/inotify_init1.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/int_0x80.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_block.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_evdev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_evdev-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_loop.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_loop-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_mtd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_rtc.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_rtc-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_scsi.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_sg_io_v3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_sg_io_v4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_uffdio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_v4l2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioperm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/iopl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioprio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ip_mreq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_sem.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_shm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/kcmp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/kexec_file_load.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/kexec_load.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/keyctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/kill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/lchown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/lchown32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/link.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/linkat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/lookup_dcookie.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/lstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/lstat64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/madvise.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mbind.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/membarrier.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/memfd_create.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/migrate_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mincore.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mkdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mkdirat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mknod.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mknodat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mlock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mlock2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mlockall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mmsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mmsg-silent.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mmsg_name.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mmsg_name-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mount.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/move_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mq_sendrecv.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mq_sendrecv-read.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mq_sendrecv-write.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/msg_control.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/msg_control-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/msg_name.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/munlockall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/nanosleep.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/net-icmp_filter.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/net-sockaddr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_audit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_generic.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_netfilter.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_protocol.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_route.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_selinux.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_xfrm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/newfstatat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/nlattr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/nlattr_inet_diag_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/nlattr_netlink_diag_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/nlattr_unix_diag_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/old_mmap.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/oldfstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/oldlstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/oldstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/open.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/openat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/osf_utimes.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/pause.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/perf_event_open.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/perf_event_open_nonverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/perf_event_open_unabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/pipe2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/pkey_alloc.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/pkey_free.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/pkey_mprotect.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ppoll.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ppoll-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/pread64-pwrite64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/preadv.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/preadv-pwritev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/preadv2-pwritev2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/printstr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/prlimit64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/process_vm_readv.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/process_vm_writev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/pselect6.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ptrace.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/pwritev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/quotactl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/quotactl-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/quotactl-xfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/quotactl-xfs-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/read-write.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/readahead.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/readdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/readlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/readlinkat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/reboot.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/recvfrom.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/recvmmsg-timeout.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/recvmsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/regex.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/remap_file_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/rename.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/renameat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/renameat2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/request_key.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/rmdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/rt_sigpending.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/rt_sigprocmask.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/rt_sigqueueinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/rt_sigreturn.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/rt_sigsuspend.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/rt_sigtimedwait.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/rt_tgsigqueueinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sched.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sched_get_priority_mxx.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sched_rr_get_interval.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sched_xetaffinity.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sched_xetattr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sched_xetparam.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sched_xetscheduler.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sched_yield.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/seccomp-filter.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/seccomp-filter-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/select.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/semop.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sendfile.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sendfile64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/set_mempolicy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setdomainname.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setfsgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setfsgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setfsuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setfsuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setgroups.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setgroups32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sethostname.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setregid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setregid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setresgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setresgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setresuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setresuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setreuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setreuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setrlimit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/shmxt.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/shutdown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sigaction.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/siginfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/signal.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/signal_receive.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/signalfd4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sigpending.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sigprocmask.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sigreturn.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sigsuspend.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/socketcall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/splice.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/stat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/stat64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/statfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/statfs64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/statx.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/swap.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sxetmask.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/symlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/symlinkat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sync.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sync_file_range.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sync_file_range2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sysinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/syslog.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/tee.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/time.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/timer_create.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/timer_xettime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/timerfd_xettime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/times.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/times-fail.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_fstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_fstatfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_lstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_question.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_stat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_stat_like.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_statfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_statfs_like.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/truncate.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/truncate64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ugetrlimit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/umask.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/umoven-illptr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/umovestr-illptr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/umovestr3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/unlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/unlinkat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/unshare.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/userfaultfd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ustat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/utime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/utimensat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/utimes.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/vfork-f.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/vhangup.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/vmsplice.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/wait4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/wait4-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/waitid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/waitid-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/waitpid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/xattr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/xattr-strings.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/xet_robust_list.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/xetitimer.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/xetpgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/xetpriority.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/xettimeofday.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
diff --git a/tests-m32/gen_tests.in b/tests-m32/gen_tests.in
index be0a3a2..57fd5fd 100644
--- a/tests-m32/gen_tests.in
+++ b/tests-m32/gen_tests.in
@@ -184,8 +184,18 @@
 nanosleep	-a20
 net-icmp_filter	-e trace=getsockopt,setsockopt
 net-sockaddr	-a24 -e trace=connect
-netlink_protocol	-e trace=%network
+netlink_audit	+netlink_sock_diag.test
+netlink_generic	+netlink_sock_diag.test
+netlink_netfilter	+netlink_sock_diag.test
+netlink_protocol	-e trace=sendto
+netlink_route	+netlink_sock_diag.test
+netlink_selinux	+netlink_sock_diag.test
+netlink_xfrm	+netlink_sock_diag.test
 newfstatat	-a32 -v -P stat.sample -P /dev/full
+nlattr		+netlink_sock_diag.test
+nlattr_inet_diag_msg		+netlink_sock_diag.test
+nlattr_netlink_diag_msg		+netlink_sock_diag.test
+nlattr_unix_diag_msg		+netlink_sock_diag.test
 old_mmap	-a11 -e trace=mmap
 oldfstat	-a18 -v -P stat.sample
 oldlstat	-a32 -v -P stat.sample -P /dev/full
@@ -280,9 +290,13 @@
 setuid32	-a12
 shmxt	-a11 -e trace='/(osf_)?shmat,shmdt'
 shutdown	-a24
+sigaction	-a31
 siginfo	-e trace=none
+signal	-a25 -e signal=none -e trace='/^signal$'
 signal_receive	-a16 -e trace=kill
 signalfd4
+sigpending	-a15
+sigprocmask	-a34
 sigreturn	-esignal='!USR1'
 sigsuspend	-a19 -esignal=none
 socketcall	-a20
diff --git a/tests-m32/getcpu.c b/tests-m32/getcpu.c
index 3cb49cb..2b15753 100644
--- a/tests-m32/getcpu.c
+++ b/tests-m32/getcpu.c
@@ -41,16 +41,16 @@
 main(void)
 {
 	unsigned *bogus_cpu =
-		(unsigned *) tail_alloc(sizeof(* bogus_cpu)) + 1;
+		(unsigned *) tail_alloc(sizeof(*bogus_cpu)) + 1;
 	unsigned *bogus_node =
-		(unsigned *) tail_alloc(sizeof(* bogus_node)) + 1;
+		(unsigned *) tail_alloc(sizeof(*bogus_node)) + 1;
 	unsigned *bogus_tcache =
-		(unsigned *) tail_alloc(sizeof(* bogus_tcache)) + 1;
+		(unsigned *) tail_alloc(sizeof(*bogus_tcache)) + 1;
 
 	long res;
 	TAIL_ALLOC_OBJECT_CONST_PTR(unsigned, cpu);
 	TAIL_ALLOC_OBJECT_CONST_PTR(unsigned, node);
-	long * tcache = tail_alloc(128);
+	long *tcache = tail_alloc(128);
 
 	res = syscall(__NR_getcpu, NULL, NULL, NULL);
 	printf("getcpu(NULL, NULL, NULL) = %s\n", sprintrc(res));
diff --git a/tests-m32/init.sh b/tests-m32/init.sh
index 2844765..2d4d0b4 100644
--- a/tests-m32/init.sh
+++ b/tests-m32/init.sh
@@ -169,7 +169,7 @@
 
 	check_prog diff
 
-	diff -- "$expected" "$output" ||
+	diff -u -- "$expected" "$output" ||
 		fail_ "$error"
 }
 
@@ -366,7 +366,7 @@
 		STRACE=../strace
 fi
 
-: "${TIMEOUT_DURATION:=120}"
+: "${TIMEOUT_DURATION:=300}"
 : "${SLEEP_A_BIT:=sleep 1}"
 
 [ -z "${VERBOSE-}" ] ||
diff --git a/tests-m32/interactive_block.test b/tests-m32/interactive_block.test
new file mode 100755
index 0000000..f8f8173
--- /dev/null
+++ b/tests-m32/interactive_block.test
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# Check that in interactive mode those signals that were blocked
+# at strace startup will remain blocked.
+
+. "${srcdir=.}/init.sh"
+
+strace0="$STRACE"
+for signo in 1 2 3 13 14 15; do
+	blocksig="../block_reset_raise_run $signo"
+	run_prog $blocksig ../umovestr
+	STRACE="$blocksig $strace0"
+	run_strace -I2 -echdir ../umovestr
+	match_diff "$LOG" "$srcdir/umovestr.expected"
+done
diff --git a/tests-m32/ioctl.c b/tests-m32/ioctl.c
index 5dc0864..3c666b0 100644
--- a/tests-m32/ioctl.c
+++ b/tests-m32/ioctl.c
@@ -54,7 +54,7 @@
  && defined EV_KEY
 
 int
-main(void )
+main(void)
 {
 	uint64_t data = 0;
 
diff --git a/tests-m32/ioctl_block.c b/tests-m32/ioctl_block.c
index 8e883d4..e44c4c4 100644
--- a/tests-m32/ioctl_block.c
+++ b/tests-m32/ioctl_block.c
@@ -58,9 +58,11 @@
 #endif
 };
 
-#define TEST_NULL_ARG(cmd) \
-	ioctl(-1, cmd, 0); \
-	printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", #cmd)
+#define TEST_NULL_ARG(cmd)						\
+	do {								\
+		ioctl(-1, cmd, 0);					\
+		printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", #cmd);	\
+	} while (0)
 
 int
 main(void)
diff --git a/tests-m32/ioctl_evdev.c b/tests-m32/ioctl_evdev.c
index 6cbc09f..9d16cec 100644
--- a/tests-m32/ioctl_evdev.c
+++ b/tests-m32/ioctl_evdev.c
@@ -67,9 +67,11 @@
 # endif /* VERBOSE */
 }
 
-# define TEST_NULL_ARG(cmd) \
-	ioctl(-1, cmd, 0); \
-	printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", #cmd)
+# define TEST_NULL_ARG(cmd)						\
+	do {								\
+		ioctl(-1, cmd, 0);					\
+		printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", #cmd);	\
+	} while (0)
 
 int
 main(void)
diff --git a/tests-m32/ioctl_mtd.c b/tests-m32/ioctl_mtd.c
index 71d0c0d..6a7d94a 100644
--- a/tests-m32/ioctl_mtd.c
+++ b/tests-m32/ioctl_mtd.c
@@ -58,15 +58,17 @@
 			       (unsigned int) _IOC_NR(cmd), #cmd); \
 		else \
 			printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", #cmd); \
-		} while (0)
+	} while (0)
 
-#define TEST_erase_info_user(cmd, eiu) \
-	ioctl(-1, cmd, eiu); \
-	printf("ioctl(-1, MIXER_%s(%u) or %s, {start=%#x, length=%#x})" \
-	       " = -1 EBADF (%m)\n", \
-	       (_IOC_DIR(cmd) == _IOC_READ) ? "READ" : "WRITE", \
-	       (unsigned int) _IOC_NR(cmd), #cmd, \
-	       eiu->start, eiu->length)
+#define TEST_erase_info_user(cmd, eiu)						\
+	do {									\
+		ioctl(-1, cmd, eiu);						\
+		printf("ioctl(-1, MIXER_%s(%u) or %s, {start=%#x, length=%#x})"	\
+		       " = -1 EBADF (%m)\n",					\
+		       (_IOC_DIR(cmd) == _IOC_READ) ? "READ" : "WRITE",		\
+		       (unsigned int) _IOC_NR(cmd), #cmd,			\
+		       eiu->start, eiu->length);				\
+	} while (0)
 
 int
 main(void)
diff --git a/tests-m32/ioctl_sg_io_v3.c b/tests-m32/ioctl_sg_io_v3.c
index 3808b20..3385bca 100644
--- a/tests-m32/ioctl_sg_io_v3.c
+++ b/tests-m32/ioctl_sg_io_v3.c
@@ -198,12 +198,12 @@
 	       sg_io->iovec_count,
 	       sg_io->dxfer_len,
 	       sg_io->timeout,
-	       * (unsigned char *) (iov[0].iov_base + 0),
-	       * (unsigned char *) (iov[0].iov_base + 1),
+	       *(unsigned char *) (iov[0].iov_base + 0),
+	       *(unsigned char *) (iov[0].iov_base + 1),
 	       (unsigned int) iov[0].iov_len,
-	       * (unsigned char *) (iov[1].iov_base + 0),
-	       * (unsigned char *) (iov[1].iov_base + 1),
-	       * (unsigned char *) (iov[1].iov_base + 2),
+	       *(unsigned char *) (iov[1].iov_base + 0),
+	       *(unsigned char *) (iov[1].iov_base + 1),
+	       *(unsigned char *) (iov[1].iov_base + 2),
 	       (unsigned int) iov[1].iov_len,
 	       sg_io->status,
 	       sg_io->masked_status,
@@ -248,12 +248,12 @@
 	       sg_io->iovec_count,
 	       sg_io->dxfer_len,
 	       sg_io->timeout,
-	       * (unsigned char *) (iov[0].iov_base + 0),
-	       * (unsigned char *) (iov[0].iov_base + 1),
+	       *(unsigned char *) (iov[0].iov_base + 0),
+	       *(unsigned char *) (iov[0].iov_base + 1),
 	       (unsigned int) iov[0].iov_len,
-	       * (unsigned char *) (iov[1].iov_base + 0),
-	       * (unsigned char *) (iov[1].iov_base + 1),
-	       * (unsigned char *) (iov[1].iov_base + 2),
+	       *(unsigned char *) (iov[1].iov_base + 0),
+	       *(unsigned char *) (iov[1].iov_base + 1),
+	       *(unsigned char *) (iov[1].iov_base + 2),
 	       (unsigned int) iov[1].iov_len,
 	       sg_io->status,
 	       sg_io->masked_status,
@@ -300,10 +300,10 @@
 	       sg_io->iovec_count,
 	       sg_io->dxfer_len,
 	       sg_io->timeout,
-	       * (unsigned char *) (sg_io->dxferp + 0),
-	       * (unsigned char *) (sg_io->dxferp + 1),
-	       * (unsigned char *) (sg_io->dxferp + 2),
-	       * (unsigned char *) (sg_io->dxferp + 3),
+	       *(unsigned char *) (sg_io->dxferp + 0),
+	       *(unsigned char *) (sg_io->dxferp + 1),
+	       *(unsigned char *) (sg_io->dxferp + 2),
+	       *(unsigned char *) (sg_io->dxferp + 3),
 	       sg_io->status,
 	       sg_io->masked_status,
 	       sg_io->msg_status,
@@ -348,11 +348,11 @@
 	       sg_io->iovec_count,
 	       sg_io->dxfer_len,
 	       sg_io->timeout,
-	       * (unsigned char *) (sg_io->dxferp + 0),
-	       * (unsigned char *) (sg_io->dxferp + 1),
-	       * (unsigned char *) (sg_io->dxferp + 2),
-	       * (unsigned char *) (sg_io->dxferp + 0),
-	       * (unsigned char *) (sg_io->dxferp + 1),
+	       *(unsigned char *) (sg_io->dxferp + 0),
+	       *(unsigned char *) (sg_io->dxferp + 1),
+	       *(unsigned char *) (sg_io->dxferp + 2),
+	       *(unsigned char *) (sg_io->dxferp + 0),
+	       *(unsigned char *) (sg_io->dxferp + 1),
 	       sg_io->status,
 	       sg_io->masked_status,
 	       sg_io->msg_status,
@@ -394,9 +394,9 @@
 	       sg_io->iovec_count,
 	       sg_io->dxfer_len,
 	       sg_io->timeout,
-	       * (unsigned char *) (sg_io->dxferp + 0),
-	       * (unsigned char *) (sg_io->dxferp + 1),
-	       * (unsigned char *) (sg_io->dxferp + 2),
+	       *(unsigned char *) (sg_io->dxferp + 0),
+	       *(unsigned char *) (sg_io->dxferp + 1),
+	       *(unsigned char *) (sg_io->dxferp + 2),
 	       sg_io->status,
 	       sg_io->masked_status,
 	       sg_io->msg_status,
diff --git a/tests-m32/ioctl_sg_io_v4.c b/tests-m32/ioctl_sg_io_v4.c
index 9c1e9fa..d2f7b72 100644
--- a/tests-m32/ioctl_sg_io_v4.c
+++ b/tests-m32/ioctl_sg_io_v4.c
@@ -189,9 +189,9 @@
 	       ", dout_resid=%d"
 	       ", generated_tag=%#" PRI__x64 "}) = -1 EBADF (%m)\n",
 	       sg_io->request_len,
-	       * (unsigned char *) ((unsigned long) sg_io->request + 0),
-	       * (unsigned char *) ((unsigned long) sg_io->request + 1),
-	       * (unsigned char *) ((unsigned long) sg_io->request + 2),
+	       *(unsigned char *) ((unsigned long) sg_io->request + 0),
+	       *(unsigned char *) ((unsigned long) sg_io->request + 1),
+	       *(unsigned char *) ((unsigned long) sg_io->request + 2),
 	       sg_io->request_tag,
 	       sg_io->request_attr,
 	       sg_io->request_priority,
@@ -201,22 +201,22 @@
 	       sg_io->dout_xfer_len,
 	       sg_io->din_iovec_count,
 	       sg_io->din_xfer_len,
-	       * (unsigned char *) (iov[0].iov_base + 0),
-	       * (unsigned char *) (iov[0].iov_base + 1),
+	       *(unsigned char *) (iov[0].iov_base + 0),
+	       *(unsigned char *) (iov[0].iov_base + 1),
 	       (unsigned int) iov[0].iov_len,
-	       * (unsigned char *) (iov[1].iov_base + 0),
-	       * (unsigned char *) (iov[1].iov_base + 1),
-	       * (unsigned char *) (iov[1].iov_base + 2),
+	       *(unsigned char *) (iov[1].iov_base + 0),
+	       *(unsigned char *) (iov[1].iov_base + 1),
+	       *(unsigned char *) (iov[1].iov_base + 2),
 	       (unsigned int) iov[1].iov_len,
 	       sg_io->timeout,
 	       sg_io->usr_ptr,
 	       sg_io->response_len,
-	       * (unsigned char *) ((unsigned long) sg_io->response + 0),
-	       * (unsigned char *) ((unsigned long) sg_io->response + 1),
-	       * (unsigned char *) ((unsigned long) sg_io->din_xferp + 0),
-	       * (unsigned char *) ((unsigned long) sg_io->din_xferp + 1),
-	       * (unsigned char *) ((unsigned long) sg_io->din_xferp + 2),
-	       * (unsigned char *) ((unsigned long) sg_io->din_xferp + 3),
+	       *(unsigned char *) ((unsigned long) sg_io->response + 0),
+	       *(unsigned char *) ((unsigned long) sg_io->response + 1),
+	       *(unsigned char *) ((unsigned long) sg_io->din_xferp + 0),
+	       *(unsigned char *) ((unsigned long) sg_io->din_xferp + 1),
+	       *(unsigned char *) ((unsigned long) sg_io->din_xferp + 2),
+	       *(unsigned char *) ((unsigned long) sg_io->din_xferp + 3),
 	       sg_io->driver_status,
 	       sg_io->transport_status,
 	       sg_io->device_status,
diff --git a/tests-m32/ioctl_sock_gifconf.c b/tests-m32/ioctl_sock_gifconf.c
index f81faef..efa55a3 100644
--- a/tests-m32/ioctl_sock_gifconf.c
+++ b/tests-m32/ioctl_sock_gifconf.c
@@ -105,7 +105,7 @@
 static void
 gifconf_ioctl(int fd, struct ifconf *ifc, bool ifc_valid)
 {
-	const char * errstr;
+	const char *errstr;
 	int in_len;
 	char *in_buf;
 	long rc;
diff --git a/tests-m32/ioctl_uffdio.c b/tests-m32/ioctl_uffdio.c
index c98e4a0..817e3c7 100644
--- a/tests-m32/ioctl_uffdio.c
+++ b/tests-m32/ioctl_uffdio.c
@@ -71,7 +71,7 @@
 	api_struct->features = 0;
 	rc = ioctl(fd, UFFDIO_API, api_struct);
 	printf("ioctl(%d, UFFDIO_API, {api=0xaa, features=0, "
-	       "features.out=%#" PRIx64 ", " "ioctls=1<<_UFFDIO_REGISTER|"
+	       "features.out=%#" PRIx64 ", ioctls=1<<_UFFDIO_REGISTER|"
 	       "1<<_UFFDIO_UNREGISTER|1<<_UFFDIO_API",
 	       fd, (uint64_t)api_struct->features);
 	api_struct->ioctls &= ~(1ull<<_UFFDIO_REGISTER|
diff --git a/tests-m32/ioctl_v4l2.c b/tests-m32/ioctl_v4l2.c
index 921e7a8..cc5dee6 100644
--- a/tests-m32/ioctl_v4l2.c
+++ b/tests-m32/ioctl_v4l2.c
@@ -85,7 +85,7 @@
 		f->fmt.pix_mp.pixelformat = magic;
 		f->fmt.pix_mp.field = V4L2_FIELD_NONE;
 		f->fmt.pix_mp.colorspace = V4L2_COLORSPACE_JPEG;
-		struct v4l2_plane_pix_format* cur_pix =
+		struct v4l2_plane_pix_format *cur_pix =
 		       f->fmt.pix_mp.plane_fmt;
 		for (i = 0;
 		     i < ARRAY_SIZE(f->fmt.pix_mp.plane_fmt);
@@ -119,8 +119,8 @@
 		f->fmt.win.clips[1].c.width = 0x9e3a6fb3;
 		f->fmt.win.clips[1].c.height = 0x05617b76;
 
-		f->fmt.win.bitmap = (void*) -2UL;
-#if HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA
+		f->fmt.win.bitmap = (void *) -2UL;
+#ifdef HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA
 		f->fmt.win.global_alpha = 0xce;
 #endif
 		break;
@@ -158,7 +158,7 @@
 #if HAVE_DECL_V4L2_BUF_TYPE_SDR_CAPTURE
 	case V4L2_BUF_TYPE_SDR_CAPTURE:
 		f->fmt.sdr.pixelformat = magic;
-#if HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE
+#ifdef HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE
 		f->fmt.sdr.buffersize = 0x25afabfb;
 #endif
 		break;
@@ -168,8 +168,8 @@
 
 static void
 dprint_ioctl_v4l2(struct v4l2_format *const f,
-		  const char* request, const unsigned int buf_type,
-		  const char* buf_type_string)
+		  const char *request, const unsigned int buf_type,
+		  const char *buf_type_string)
 {
 	switch (buf_type) {
 	case V4L2_BUF_TYPE_VIDEO_CAPTURE:
@@ -225,7 +225,7 @@
 		       "[{left=%d, top=%d, width=%u, height=%u}, "
 		       "{left=%d, top=%d, width=%u, height=%u}]"
 		       ", clipcount=%u, bitmap=%p"
-#if HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA
+#ifdef HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA
 		       ", global_alpha=%#x"
 #endif
 		       "}}) = -1 EBADF (%m)\n",
@@ -243,7 +243,7 @@
 		       f->fmt.win.clips[1].c.width,
 		       f->fmt.win.clips[1].c.height,
 		       f->fmt.win.clipcount, f->fmt.win.bitmap
-#if HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA
+#ifdef HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA
 		       , f->fmt.win.global_alpha
 #endif
 		       );
@@ -304,14 +304,14 @@
 		printf("ioctl(-1, %s, {type=%s"
 		       ", fmt.sdr={pixelformat=v4l2_fourcc('\\x%x', '\\x%x',"
 		       " '\\x%x', '\\x%x')"
-#if HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE
+#ifdef HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE
 		       ", buffersize=%u"
 #endif
 		       "}}) = -1 EBADF (%m)\n",
 		       request,
 		       buf_type_string,
 		       cc0(magic), cc1(magic), cc2(magic), cc3(magic)
-#if HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE
+#ifdef HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE
 		       , f->fmt.sdr.buffersize
 #endif
 		       );
@@ -319,12 +319,11 @@
 #endif
 	}
 }
-#define print_ioctl_v4l2(v4l2_format, request, buf_type) do { \
-	dprint_ioctl_v4l2((v4l2_format), (request), (buf_type), #buf_type); \
-} while (0)
+#define print_ioctl_v4l2(v4l2_format, request, buf_type)	\
+	dprint_ioctl_v4l2((v4l2_format), (request), (buf_type), #buf_type)
 
 int
-main(void )
+main(void)
 {
 	const unsigned int size = get_page_size();
 	void *const page = tail_alloc(size);
@@ -689,7 +688,7 @@
 
 	TAIL_ALLOC_OBJECT_CONST_PTR(struct v4l2_tuner, p_tuner);
 	p_tuner->index = 0x4fb6df39;
-	strcpy((char*)p_tuner->name, "cum tacent clamant");
+	strcpy((char *) p_tuner->name, "cum tacent clamant");
 	p_tuner->type = V4L2_TUNER_RADIO;
 	p_tuner->capability = V4L2_TUNER_CAP_LOW;
 	p_tuner->rangelow = 0xa673bc29;
diff --git a/tests-m32/ip_mreq.c b/tests-m32/ip_mreq.c
index 4bcda09..4bfe00f 100644
--- a/tests-m32/ip_mreq.c
+++ b/tests-m32/ip_mreq.c
@@ -101,7 +101,7 @@
 				short_any[i].optval, 1);
 		printf("setsockopt(0, %s, %s, \"\\%hho\", 1) = %s\n",
 		       short_any[i].str_level, short_any[i].str_optname,
-		       * (unsigned char *) short_any[i].optval,
+		       *(unsigned char *) short_any[i].optval,
 		       sprintrc(rc));
 
 		rc = setsockopt(0, short_any[i].level, short_any[i].optname,
@@ -139,7 +139,7 @@
 		rc = setsockopt(0, SOL_IPV6, long_ipv6[i].optname,
 				m6, sizeof(*m6));
 		printf("setsockopt(0, SOL_IPV6, %s"
-		       ", {ipv6mr_multiaddr=inet_pton(\"%s\")"
+		       ", {inet_pton(AF_INET6, \"%s\", &ipv6mr_multiaddr)"
 		       ", ipv6mr_interface=if_nametoindex(\"lo\")}"
 		       ", %u) = %s\n",
 		       long_ipv6[i].str_optname, multi6addr,
diff --git a/tests-m32/ipc_msgbuf.c b/tests-m32/ipc_msgbuf.c
index 1c34494..9d149fa 100644
--- a/tests-m32/ipc_msgbuf.c
+++ b/tests-m32/ipc_msgbuf.c
@@ -45,7 +45,7 @@
 }
 
 int
-main (void)
+main(void)
 {
 	const long mtype = 0xdefaced;
 	struct {
diff --git a/tests-m32/ipc_sem.c b/tests-m32/ipc_sem.c
index 0b730c1..c883272 100644
--- a/tests-m32/ipc_sem.c
+++ b/tests-m32/ipc_sem.c
@@ -37,10 +37,10 @@
 #include "xlat/resource_flags.h"
 
 union semun {
-	int              val;    /* Value for SETVAL */
-	struct semid_ds *buf;    /* Buffer for IPC_STAT, IPC_SET */
-	unsigned short  *array;  /* Array for GETALL, SETALL */
-	struct seminfo  *__buf;  /* Buffer for IPC_INFO
+	int		 val;    /* Value for SETVAL */
+	struct semid_ds	*buf;    /* Buffer for IPC_STAT, IPC_SET */
+	unsigned short	*array;  /* Array for GETALL, SETALL */
+	struct seminfo	*__buf;  /* Buffer for IPC_INFO
 				    (Linux-specific) */
 };
 
diff --git a/tests-m32/kexec_file_load.c b/tests-m32/kexec_file_load.c
index c939e4f..7a9b64b 100644
--- a/tests-m32/kexec_file_load.c
+++ b/tests-m32/kexec_file_load.c
@@ -45,7 +45,7 @@
 	const char *str;
 };
 
-#define CMDLINE_STR "deadcodebaddatadefaced";
+#define CMDLINE_STR "deadcodebaddatadefaced"
 
 int
 main(void)
diff --git a/tests-m32/keyctl.c b/tests-m32/keyctl.c
index 2e26076..492c62a 100644
--- a/tests-m32/keyctl.c
+++ b/tests-m32/keyctl.c
@@ -74,7 +74,7 @@
  * significantly breaking interface.
  */
 bool nul_terminated_buf = true;
-bool buf_in_arg = false;
+bool buf_in_arg;
 
 /*
  * When this is called with positive size, the buffer provided is an "out"
diff --git a/tests-m32/ksysent.c b/tests-m32/ksysent.c
index f598664..860e21e 100644
--- a/tests-m32/ksysent.c
+++ b/tests-m32/ksysent.c
@@ -53,7 +53,7 @@
 #define SI 0
 #define SE 0
 #define CST 0
-#define SEN(arg) 0,0
+#define SEN(arg) 0, 0
 
 static const struct_sysent syscallent[] = {
 #include "syscallent.h"
diff --git a/tests-m32/mincore.c b/tests-m32/mincore.c
index ea2b49e..0ede687 100644
--- a/tests-m32/mincore.c
+++ b/tests-m32/mincore.c
@@ -29,8 +29,6 @@
 #include <stdio.h>
 #include <sys/mman.h>
 
-#define DEFAULT_STRLEN 32
-
 static void
 print_mincore(const unsigned int pages, void *const addr,
 	      const size_t size, unsigned char *const vec)
diff --git a/tests-m32/mmsg.c b/tests-m32/mmsg.c
index 88805d1..a5cf0e7 100644
--- a/tests-m32/mmsg.c
+++ b/tests-m32/mmsg.c
@@ -113,14 +113,16 @@
 		" | 00000 %-49s  %-16s |\n",
 		w0_c, LENGTH_OF(w0_c),
 		w1_c, LENGTH_OF(w1_c),
-		ARRAY_SIZE(w0_iov_),
+		(unsigned int) ARRAY_SIZE(w0_iov_),
 		LENGTH_OF(w0_c) + LENGTH_OF(w1_c),
-		w2_c, LENGTH_OF(w2_c), ARRAY_SIZE(w1_iov_),
+		w2_c, LENGTH_OF(w2_c), (unsigned int) ARRAY_SIZE(w1_iov_),
 		LENGTH_OF(w2_c),
 		n_w_mmh, r,
-		ARRAY_SIZE(w0_iov_), LENGTH_OF(w0_c), w0_d, w0_c,
+		(unsigned int) ARRAY_SIZE(w0_iov_),
+		LENGTH_OF(w0_c), w0_d, w0_c,
 		LENGTH_OF(w1_c), w1_d, w1_c,
-		ARRAY_SIZE(w1_iov_), LENGTH_OF(w2_c), w2_d, w2_c);
+		(unsigned int) ARRAY_SIZE(w1_iov_),
+		LENGTH_OF(w2_c), w2_d, w2_c);
 
 	const unsigned int w_len =
 		LENGTH_OF(w0_c) + LENGTH_OF(w1_c) + LENGTH_OF(w2_c);
@@ -184,11 +186,14 @@
 		" = %u buffers in vector 1\n"
 		" * %u bytes in buffer 0\n"
 		" | 00000 %-49s  %-16s |\n",
-		r0_c, r_len, ARRAY_SIZE(r0_iov_), LENGTH_OF(r0_c),
-		r1_c, r_len, r_len, ARRAY_SIZE(r1_iov_), LENGTH_OF(r1_c),
+		r0_c, r_len, (unsigned int) ARRAY_SIZE(r0_iov_),
+		LENGTH_OF(r0_c), r1_c, r_len, r_len,
+		(unsigned int) ARRAY_SIZE(r1_iov_), LENGTH_OF(r1_c),
 		n_r_mmh, r,
-		ARRAY_SIZE(r0_iov_), LENGTH_OF(r0_c), r0_d, r0_c,
-		ARRAY_SIZE(r1_iov_), LENGTH_OF(r1_c), r1_d, r1_c);
+		(unsigned int) ARRAY_SIZE(r0_iov_), LENGTH_OF(r0_c),
+		r0_d, r0_c,
+		(unsigned int) ARRAY_SIZE(r1_iov_), LENGTH_OF(r1_c),
+		r1_d, r1_c);
 
 	tprintf("+++ exited with 0 +++\n");
 	return 0;
diff --git a/tests-m32/mmsg_name.c b/tests-m32/mmsg_name.c
index a7a55c5..ad5a482 100644
--- a/tests-m32/mmsg_name.c
+++ b/tests-m32/mmsg_name.c
@@ -40,8 +40,6 @@
 
 #include "msghdr.h"
 
-#define DEFAULT_STRLEN 32
-
 #define IOV_MAX1 (IOV_MAX + 1)
 
 #ifndef TEST_NAME
@@ -77,7 +75,7 @@
 	}
 	printf("%d, msg_iov=[{iov_base=\"%c\", iov_len=1}]"
 	       ", msg_iovlen=1, msg_controllen=0, msg_flags=0}",
-	       (int) msg->msg_namelen, * (char *) msg->msg_iov[0].iov_base);
+	       (int) msg->msg_namelen, *(char *) msg->msg_iov[0].iov_base);
 }
 
 static void
diff --git a/tests-m32/mq.c b/tests-m32/mq.c
index ee2d059..cf1b730 100644
--- a/tests-m32/mq.c
+++ b/tests-m32/mq.c
@@ -39,7 +39,7 @@
 # include <sys/stat.h>
 
 int
-main (void)
+main(void)
 {
 	struct mq_attr attr;
 	(void) close(0);
diff --git a/tests-m32/mq_sendrecv.c b/tests-m32/mq_sendrecv.c
index e3ad0d5..f6f6bd2 100644
--- a/tests-m32/mq_sendrecv.c
+++ b/tests-m32/mq_sendrecv.c
@@ -228,7 +228,7 @@
 	static const struct timespec future_tmout_data = {
 		.tv_sec = (time_t) 0x7ea1fade7e57faceLL,
 		.tv_nsec = 999999999,
-	};;
+	};
 	struct_sigevent bogus_sev_data = {
 		.sigev_notify = 0xdefaced,
 		.sigev_signo = 0xfacefeed,
@@ -437,7 +437,7 @@
 	bogus_attrs[1] = 2;
 	bogus_attrs[2] = MSG_SIZE;
 	fd = rc = syscall(__NR_mq_open, mq_name,
-		          O_CREAT|O_RDWR|O_NONBLOCK, S_IRWXU, bogus_attrs);
+			  O_CREAT|O_RDWR|O_NONBLOCK, S_IRWXU, bogus_attrs);
 	errstr = sprintrc(rc);
 	if (rc < 0)
 		perror_msg_and_skip("mq_open");
diff --git a/tests-m32/msg_control.c b/tests-m32/msg_control.c
index 1e64f1a..b63f2d0 100644
--- a/tests-m32/msg_control.c
+++ b/tests-m32/msg_control.c
@@ -40,6 +40,9 @@
 #include <netinet/in.h>
 #include <arpa/inet.h>
 
+#include "xlat.h"
+#include "xlat/scmvals.h"
+
 #ifndef SOL_IP
 # define SOL_IP 0
 #endif
@@ -60,8 +63,6 @@
 	return page - CMSG_ALIGN(len);
 }
 
-#define DEFAULT_STRLEN 32
-
 static void
 print_fds(const struct cmsghdr *const cmsg, const size_t cmsg_len)
 {
@@ -230,6 +231,152 @@
 }
 
 static void
+test_scm_timestamp(struct msghdr *const mh, void *const page)
+{
+	size_t len = CMSG_SPACE(sizeof(struct timeval));
+	struct cmsghdr *cmsg = get_cmsghdr(page, len);
+
+	cmsg->cmsg_len = CMSG_LEN(sizeof(struct timeval));
+	cmsg->cmsg_level = SOL_SOCKET;
+	cmsg->cmsg_type = SCM_TIMESTAMP;
+	struct timeval *tv = (struct timeval *) CMSG_DATA(cmsg);
+	tv->tv_sec = 123456789;
+	tv->tv_usec = 987654;
+
+	mh->msg_control = cmsg;
+	mh->msg_controllen = len;
+
+	int rc = sendmsg(-1, mh, 0);
+	printf("sendmsg(-1, {msg_name=NULL, msg_namelen=0, msg_iov=NULL"
+	       ", msg_iovlen=0, msg_control=[{cmsg_len=%u"
+	       ", cmsg_level=SOL_SOCKET, cmsg_type=SCM_TIMESTAMP"
+	       ", cmsg_data={tv_sec=%lld, tv_usec=%llu}}]"
+	       ", msg_controllen=%lu, msg_flags=0}, 0) = %d %s (%m)\n",
+	       (unsigned) cmsg->cmsg_len,
+	       (long long) tv->tv_sec, zero_extend_signed_to_ull(tv->tv_usec),
+	       (unsigned long) len, rc, errno2name());
+
+	len = CMSG_SPACE(sizeof(struct timeval) - sizeof(long));
+	cmsg = get_cmsghdr(page, len);
+
+	cmsg->cmsg_len = CMSG_LEN(sizeof(struct timeval) - sizeof(long));
+	cmsg->cmsg_level = SOL_SOCKET;
+	cmsg->cmsg_type = SCM_TIMESTAMP;
+
+	mh->msg_control = cmsg;
+	mh->msg_controllen = len;
+
+	rc = sendmsg(-1, mh, 0);
+	printf("sendmsg(-1, {msg_name=NULL, msg_namelen=0, msg_iov=NULL"
+	       ", msg_iovlen=0, msg_control=[{cmsg_len=%u"
+	       ", cmsg_level=SOL_SOCKET, cmsg_type=SCM_TIMESTAMP, cmsg_data=?}]"
+	       ", msg_controllen=%lu, msg_flags=0}, 0) = %d %s (%m)\n",
+	       (unsigned) cmsg->cmsg_len,
+	       (unsigned long) len, rc, errno2name());
+}
+
+static void
+test_scm_timestampns(struct msghdr *const mh, void *const page)
+{
+	size_t len = CMSG_SPACE(sizeof(struct timespec));
+	struct cmsghdr *cmsg = get_cmsghdr(page, len);
+
+	cmsg->cmsg_len = CMSG_LEN(sizeof(struct timespec));
+	cmsg->cmsg_level = SOL_SOCKET;
+	cmsg->cmsg_type = SCM_TIMESTAMPNS;
+	struct timespec *ts = (struct timespec *) CMSG_DATA(cmsg);
+	ts->tv_sec = 123456789;
+	ts->tv_nsec = 987654321;
+
+	mh->msg_control = cmsg;
+	mh->msg_controllen = len;
+
+	int rc = sendmsg(-1, mh, 0);
+	printf("sendmsg(-1, {msg_name=NULL, msg_namelen=0, msg_iov=NULL"
+	       ", msg_iovlen=0, msg_control=[{cmsg_len=%u"
+	       ", cmsg_level=SOL_SOCKET, cmsg_type=SCM_TIMESTAMPNS"
+	       ", cmsg_data={tv_sec=%lld, tv_nsec=%llu}}]"
+	       ", msg_controllen=%lu, msg_flags=0}, 0) = %d %s (%m)\n",
+	       (unsigned) cmsg->cmsg_len,
+	       (long long) ts->tv_sec, zero_extend_signed_to_ull(ts->tv_nsec),
+	       (unsigned long) len, rc, errno2name());
+
+	len = CMSG_SPACE(sizeof(struct timespec) - sizeof(long));
+	cmsg = get_cmsghdr(page, len);
+
+	cmsg->cmsg_len = CMSG_LEN(sizeof(struct timespec) - sizeof(long));
+	cmsg->cmsg_level = SOL_SOCKET;
+	cmsg->cmsg_type = SCM_TIMESTAMPNS;
+
+	mh->msg_control = cmsg;
+	mh->msg_controllen = len;
+
+	rc = sendmsg(-1, mh, 0);
+	printf("sendmsg(-1, {msg_name=NULL, msg_namelen=0, msg_iov=NULL"
+	       ", msg_iovlen=0, msg_control=[{cmsg_len=%u"
+	       ", cmsg_level=SOL_SOCKET, cmsg_type=SCM_TIMESTAMPNS"
+	       ", cmsg_data=?}]"
+	       ", msg_controllen=%lu, msg_flags=0}, 0) = %d %s (%m)\n",
+	       (unsigned) cmsg->cmsg_len,
+	       (unsigned long) len, rc, errno2name());
+}
+
+static void
+test_scm_timestamping(struct msghdr *const mh, void *const page)
+{
+	size_t len = CMSG_SPACE(3 * sizeof(struct timespec));
+	struct cmsghdr *cmsg = get_cmsghdr(page, len);
+
+	cmsg->cmsg_len = CMSG_LEN(3 * sizeof(struct timespec));
+	cmsg->cmsg_level = SOL_SOCKET;
+	cmsg->cmsg_type = SCM_TIMESTAMPING;
+	struct timespec *ts = (struct timespec *) CMSG_DATA(cmsg);
+	ts[0].tv_sec = 123456789;
+	ts[0].tv_nsec = 987654321;
+	ts[1].tv_sec = 123456790;
+	ts[1].tv_nsec = 987654320;
+	ts[2].tv_sec = 123456791;
+	ts[2].tv_nsec = 987654319;
+
+	mh->msg_control = cmsg;
+	mh->msg_controllen = len;
+
+	int rc = sendmsg(-1, mh, 0);
+	printf("sendmsg(-1, {msg_name=NULL, msg_namelen=0, msg_iov=NULL"
+	       ", msg_iovlen=0, msg_control=[{cmsg_len=%u"
+	       ", cmsg_level=SOL_SOCKET, cmsg_type=SCM_TIMESTAMPING"
+	       ", cmsg_data=[{tv_sec=%lld, tv_nsec=%llu}"
+	       ", {tv_sec=%lld, tv_nsec=%llu}, {tv_sec=%lld, tv_nsec=%llu}]}]"
+	       ", msg_controllen=%lu, msg_flags=0}, 0) = %d %s (%m)\n",
+	       (unsigned) cmsg->cmsg_len, (long long) ts[0].tv_sec,
+	       zero_extend_signed_to_ull(ts[0].tv_nsec),
+	       (long long) ts[1].tv_sec,
+	       zero_extend_signed_to_ull(ts[1].tv_nsec),
+	       (long long) ts[2].tv_sec,
+	       zero_extend_signed_to_ull(ts[2].tv_nsec),
+	       (unsigned long) len, rc, errno2name());
+
+	len = CMSG_SPACE(3 * sizeof(struct timespec) - sizeof(long));
+	cmsg = get_cmsghdr(page, len);
+
+	cmsg->cmsg_len = CMSG_LEN(3 * sizeof(struct timespec) - sizeof(long));
+	cmsg->cmsg_level = SOL_SOCKET;
+	cmsg->cmsg_type = SCM_TIMESTAMPING;
+
+	mh->msg_control = cmsg;
+	mh->msg_controllen = len;
+
+	rc = sendmsg(-1, mh, 0);
+	printf("sendmsg(-1, {msg_name=NULL, msg_namelen=0, msg_iov=NULL"
+	       ", msg_iovlen=0, msg_control=[{cmsg_len=%u"
+	       ", cmsg_level=SOL_SOCKET, cmsg_type=SCM_TIMESTAMPING"
+	       ", cmsg_data=?}]"
+	       ", msg_controllen=%lu, msg_flags=0}, 0) = %d %s (%m)\n",
+	       (unsigned) cmsg->cmsg_len,
+	       (unsigned long) len, rc, errno2name());
+}
+
+static void
 print_security(const struct cmsghdr *const cmsg, const size_t cmsg_len)
 {
 	int n = cmsg_len > CMSG_LEN(0) ? cmsg_len - CMSG_LEN(0) : 0;
@@ -378,12 +525,16 @@
 	test_scm_rights3(mh, page, DEFAULT_STRLEN);
 	test_scm_rights3(mh, page, DEFAULT_STRLEN + 1);
 
+	test_scm_timestamp(mh, page);
+	test_scm_timestampns(mh, page);
+	test_scm_timestamping(mh, page);
+
 	test_unknown_type(mh, page, ARG_STR(SOL_SOCKET), "SCM_???");
 }
 
 static void
 test_ip_pktinfo(struct msghdr *const mh, void *const page,
-	        const int cmsg_type, const char *const cmsg_type_str)
+		const int cmsg_type, const char *const cmsg_type_str)
 {
 	const unsigned int len = CMSG_SPACE(sizeof(struct in_pktinfo));
 	struct cmsghdr *const cmsg = get_cmsghdr(page, len);
@@ -448,7 +599,7 @@
 
 static void
 test_ip_uint8_t(struct msghdr *const mh, void *const page,
-	        const int cmsg_type, const char *const cmsg_type_str)
+		const int cmsg_type, const char *const cmsg_type_str)
 {
 	const unsigned int len = CMSG_SPACE(1);
 	struct cmsghdr *const cmsg = get_cmsghdr(page, len);
@@ -530,7 +681,7 @@
 
 static void
 test_ip_recverr(struct msghdr *const mh, void *const page,
-	        const int cmsg_type, const char *const cmsg_type_str)
+		const int cmsg_type, const char *const cmsg_type_str)
 {
 	const unsigned int len = CMSG_SPACE(sizeof(struct sock_ee));
 	struct cmsghdr *const cmsg = get_cmsghdr(page, len);
diff --git a/tests-m32/net-accept-connect.c b/tests-m32/net-accept-connect.c
index 04c05a6..0050eeb 100644
--- a/tests-m32/net-accept-connect.c
+++ b/tests-m32/net-accept-connect.c
@@ -69,7 +69,7 @@
 	if (listen(0, 5))
 		perror_msg_and_skip("listen");
 
-	memset(&addr, 0, sizeof addr);
+	memset(&addr, 0, sizeof(addr));
 	assert(getsockname(0, (struct sockaddr *) &addr, &len) == 0);
 	if (len > sizeof(addr))
 		len = sizeof(addr);
diff --git a/tests-m32/net-sockaddr.c b/tests-m32/net-sockaddr.c
index 9dc9ecf..1d9bac3 100644
--- a/tests-m32/net-sockaddr.c
+++ b/tests-m32/net-sockaddr.c
@@ -37,11 +37,11 @@
 #include <sys/un.h>
 #include <arpa/inet.h>
 #include <netinet/in.h>
+#include "netlink.h"
 #include <linux/if_arp.h>
 #include <linux/if_ether.h>
 #include <linux/if_packet.h>
 #include <linux/ipx.h>
-#include <linux/netlink.h>
 #ifdef HAVE_BLUETOOTH_BLUETOOTH_H
 # include <bluetooth/bluetooth.h>
 # include <bluetooth/hci.h>
diff --git a/tests-m32/net-y-unix.c b/tests-m32/net-y-unix.c
index df56ad6..fbdf590 100644
--- a/tests-m32/net-y-unix.c
+++ b/tests-m32/net-y-unix.c
@@ -182,7 +182,7 @@
 		perror_msg_and_fail("accept");
 	accept_inode = inode_of_sockfd(accept_fd);
 	const char * const sun_path1 =
-		((struct sockaddr_un *) accept_sa) -> sun_path + 1;
+		((struct sockaddr_un *) accept_sa)->sun_path + 1;
 	printf("accept(%d<socket:[%lu]>, {sa_family=AF_UNIX"
 	       ", sun_path=@\"%s\"}, [%d->%d]) = %d<socket:[%lu]>\n",
 	       listen_fd, listen_inode, sun_path1,
diff --git a/tests-m32/net-yy-inet.c b/tests-m32/net-yy-inet.c
index af1262e..c043920 100644
--- a/tests-m32/net-yy-inet.c
+++ b/tests-m32/net-yy-inet.c
@@ -74,7 +74,7 @@
 	if (getsockname(listen_fd, listen_sa, len))
 		perror_msg_and_fail("getsockname");
 	const unsigned int listen_port =
-		ntohs(((struct sockaddr_in *) listen_sa) -> sin_port);
+		ntohs(((struct sockaddr_in *) listen_sa)->sin_port);
 	printf("getsockname(%d<TCP:[127.0.0.1:%u]>, {sa_family=AF_INET"
 	       ", sin_port=htons(%u), sin_addr=inet_addr(\"127.0.0.1\")}"
 	       ", [%u]) = 0\n",
@@ -109,7 +109,7 @@
 	if (accept_fd < 0)
 		perror_msg_and_fail("accept");
 	const unsigned int connect_port =
-		ntohs(((struct sockaddr_in *) accept_sa) -> sin_port);
+		ntohs(((struct sockaddr_in *) accept_sa)->sin_port);
 	printf("accept(%d<TCP:[127.0.0.1:%u]>, {sa_family=AF_INET"
 	       ", sin_port=htons(%u), sin_addr=inet_addr(\"127.0.0.1\")}"
 	       ", [%u]) = %d<TCP:[127.0.0.1:%u->127.0.0.1:%u]>\n",
diff --git a/tests-m32/net-yy-netlink.c b/tests-m32/net-yy-netlink.c
index 6539eda..8ccf5bc 100644
--- a/tests-m32/net-yy-netlink.c
+++ b/tests-m32/net-yy-netlink.c
@@ -36,14 +36,10 @@
 #include <string.h>
 #include <unistd.h>
 #include <sys/socket.h>
-#include <linux/netlink.h>
+#include "netlink.h"
 #include <linux/sock_diag.h>
 #include <linux/netlink_diag.h>
 
-#if !defined NETLINK_SOCK_DIAG && defined NETLINK_INET_DIAG
-# define NETLINK_SOCK_DIAG NETLINK_INET_DIAG
-#endif
-
 int
 main(void)
 {
diff --git a/tests-m32/net-yy-unix.c b/tests-m32/net-yy-unix.c
index f27cdc0..21822db 100644
--- a/tests-m32/net-yy-unix.c
+++ b/tests-m32/net-yy-unix.c
@@ -185,7 +185,7 @@
 		perror_msg_and_fail("accept");
 	accept_inode = inode_of_sockfd(accept_fd);
 	const char * const sun_path1 =
-		((struct sockaddr_un *) accept_sa) -> sun_path + 1;
+		((struct sockaddr_un *) accept_sa)->sun_path + 1;
 	printf("accept(%d<UNIX:[%lu,\"%s\"]>, {sa_family=AF_UNIX"
 	       ", sun_path=@\"%s\"}, [%d->%d]) = %d<UNIX:[%lu->%lu,\"%s\"]>\n",
 	       listen_fd, listen_inode, TEST_SOCKET, sun_path1,
diff --git a/tests-m32/netlink_audit.c b/tests-m32/netlink_audit.c
new file mode 100644
index 0000000..00ddc4f
--- /dev/null
+++ b/tests-m32/netlink_audit.c
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@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.
+ */
+
+#include "tests.h"
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/socket.h>
+#include <linux/audit.h>
+#include "netlink.h"
+
+static void
+test_nlmsg_type(const int fd)
+{
+	long rc;
+	struct nlmsghdr nlh = {
+		.nlmsg_len = sizeof(nlh),
+		.nlmsg_type = AUDIT_GET,
+		.nlmsg_flags = NLM_F_REQUEST,
+	};
+
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=AUDIT_GET"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+}
+
+int main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	int fd = create_nl_socket(NETLINK_AUDIT);
+
+	test_nlmsg_type(fd);
+
+	printf("+++ exited with 0 +++\n");
+
+	return 0;
+}
diff --git a/tests-m32/netlink_audit.gen.test b/tests-m32/netlink_audit.gen.test
new file mode 100755
index 0000000..6511067
--- /dev/null
+++ b/tests-m32/netlink_audit.gen.test
@@ -0,0 +1,3 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (netlink_audit +netlink_sock_diag.test); do not edit.
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests-m32/netlink_generic.c b/tests-m32/netlink_generic.c
new file mode 100644
index 0000000..4f80c8b
--- /dev/null
+++ b/tests-m32/netlink_generic.c
@@ -0,0 +1,88 @@
+/*
+ * Copyright (c) 2017 The strace developers.
+ *
+ * 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.
+ */
+
+/* This test case is based on netlink_selinux.c */
+
+#include "tests.h"
+
+#ifdef HAVE_LINUX_GENETLINK_H
+
+# include <stdio.h>
+# include <string.h>
+# include <unistd.h>
+# include <sys/socket.h>
+# include "netlink.h"
+# include <linux/genetlink.h>
+
+static void
+test_nlmsg_type(const int fd)
+{
+	/*
+	 * Though GENL_ID_CTRL number is statically fixed in this test case,
+	 * strace does not have a builtin knowledge that the corresponding
+	 * string is "nlctrl".
+	 */
+	long rc;
+	struct {
+		const struct nlmsghdr nlh;
+		struct genlmsghdr gnlh;
+	} req = {
+		.nlh = {
+			.nlmsg_len = sizeof(req),
+			.nlmsg_type = GENL_ID_CTRL,
+			.nlmsg_flags = NLM_F_DUMP | NLM_F_REQUEST
+		},
+		.gnlh = {
+			.cmd = CTRL_CMD_GETFAMILY
+		}
+	};
+
+	rc = sendto(fd, &req, sizeof(req), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=nlctrl"
+	       ", flags=NLM_F_REQUEST|0x300, seq=0, pid=0}"
+	       ", \"\\3\\0\\0\\0\"}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, req.nlh.nlmsg_len,
+	       (unsigned int) sizeof(req), sprintrc(rc));
+}
+
+int main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	int fd = create_nl_socket(NETLINK_GENERIC);
+
+	test_nlmsg_type(fd);
+
+	printf("+++ exited with 0 +++\n");
+
+	return 0;
+}
+
+#else
+
+SKIP_MAIN_UNDEFINED("HAVE_LINUX_GENETLINK_H")
+
+#endif
diff --git a/tests-m32/netlink_generic.gen.test b/tests-m32/netlink_generic.gen.test
new file mode 100755
index 0000000..e51f15c
--- /dev/null
+++ b/tests-m32/netlink_generic.gen.test
@@ -0,0 +1,3 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (netlink_generic +netlink_sock_diag.test); do not edit.
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests-m32/netlink_inet_diag.c b/tests-m32/netlink_inet_diag.c
index 2332e20..5f68cb3 100644
--- a/tests-m32/netlink_inet_diag.c
+++ b/tests-m32/netlink_inet_diag.c
@@ -32,7 +32,7 @@
 #include <string.h>
 #include <unistd.h>
 #include <netinet/in.h>
-#include <linux/netlink.h>
+#include "netlink.h"
 #include <linux/sock_diag.h>
 #include <linux/inet_diag.h>
 
diff --git a/tests-m32/netlink_netfilter.c b/tests-m32/netlink_netfilter.c
new file mode 100644
index 0000000..2907c26
--- /dev/null
+++ b/tests-m32/netlink_netfilter.c
@@ -0,0 +1,90 @@
+/*
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@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.
+ */
+
+#include "tests.h"
+
+#ifdef HAVE_LINUX_NETFILTER_NFNETLINK_H
+
+# include <stdio.h>
+# include <string.h>
+# include <unistd.h>
+# include <sys/socket.h>
+# include "netlink.h"
+# include <linux/netfilter/nfnetlink.h>
+
+static void
+test_nlmsg_type(const int fd)
+{
+	long rc;
+	struct nlmsghdr nlh = {
+		.nlmsg_len = sizeof(nlh),
+		.nlmsg_flags = NLM_F_REQUEST,
+	};
+
+# ifdef NFNL_MSG_BATCH_BEGIN
+	nlh.nlmsg_type = NFNL_MSG_BATCH_BEGIN;
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=NFNL_MSG_BATCH_BEGIN"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+
+	nlh.nlmsg_type = (NFNL_SUBSYS_CTNETLINK << 8) | NFNL_MSG_BATCH_BEGIN;
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=NFNL_SUBSYS_CTNETLINK<<8|%#x"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, NFNL_MSG_BATCH_BEGIN,
+	       (unsigned) sizeof(nlh), sprintrc(rc));
+# endif
+
+	nlh.nlmsg_type = (NFNL_SUBSYS_CTNETLINK << 8);
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=NFNL_SUBSYS_CTNETLINK<<8|0"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+}
+
+int main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	int fd = create_nl_socket(NETLINK_NETFILTER);
+
+	test_nlmsg_type(fd);
+
+	printf("+++ exited with 0 +++\n");
+
+	return 0;
+}
+
+#else
+
+SKIP_MAIN_UNDEFINED("HAVE_LINUX_NETFILTER_NFNETLINK_H")
+
+#endif
diff --git a/tests-m32/netlink_netfilter.gen.test b/tests-m32/netlink_netfilter.gen.test
new file mode 100755
index 0000000..fffb72b
--- /dev/null
+++ b/tests-m32/netlink_netfilter.gen.test
@@ -0,0 +1,3 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (netlink_netfilter +netlink_sock_diag.test); do not edit.
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests-m32/netlink_netlink_diag.c b/tests-m32/netlink_netlink_diag.c
index fc32822..d7e83f5 100644
--- a/tests-m32/netlink_netlink_diag.c
+++ b/tests-m32/netlink_netlink_diag.c
@@ -33,14 +33,10 @@
 #include <string.h>
 #include <unistd.h>
 #include <netinet/in.h>
-#include <linux/netlink.h>
+#include "netlink.h"
 #include <linux/sock_diag.h>
 #include <linux/netlink_diag.h>
 
-#if !defined NETLINK_SOCK_DIAG && defined NETLINK_INET_DIAG
-# define NETLINK_SOCK_DIAG NETLINK_INET_DIAG
-#endif
-
 static void
 send_query(const int fd)
 {
diff --git a/tests-m32/netlink_protocol.c b/tests-m32/netlink_protocol.c
index 35f954f..f09dd9a 100644
--- a/tests-m32/netlink_protocol.c
+++ b/tests-m32/netlink_protocol.c
@@ -38,14 +38,10 @@
 # include <unistd.h>
 # include <sys/xattr.h>
 # include <netinet/in.h>
-# include <linux/netlink.h>
+# include "netlink.h"
 # include <linux/sock_diag.h>
 # include <linux/netlink_diag.h>
 
-# if !defined NETLINK_SOCK_DIAG && defined NETLINK_INET_DIAG
-#  define NETLINK_SOCK_DIAG NETLINK_INET_DIAG
-# endif
-
 static void
 send_query(const int fd)
 {
@@ -100,8 +96,8 @@
 	/* a single message without data */
 	req->nlh.nlmsg_len = sizeof(req->nlh);
 	rc = sendto(fd, &req->nlh, sizeof(req->nlh), MSG_DONTWAIT, NULL, 0);
-	printf("sendto(%d, {{len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x"
-	       ", seq=0, pid=0}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	printf("sendto(%d, {len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x"
+	       ", seq=0, pid=0}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
 	       fd, req->nlh.nlmsg_len, NLM_F_DUMP,
 	       (unsigned) sizeof(req->nlh), sprintrc(rc));
 
@@ -116,8 +112,8 @@
 	/* nlmsg_len < sizeof(struct nlmsghdr) */
 	req->nlh.nlmsg_len = 8;
 	rc = sendto(fd, req, sizeof(*req), MSG_DONTWAIT, NULL, 0);
-	printf("sendto(%d, {{len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x"
-	       ", seq=0, pid=0}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	printf("sendto(%d, {len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x"
+	       ", seq=0, pid=0}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
 	       fd, req->nlh.nlmsg_len, NLM_F_DUMP,
 	       (unsigned) sizeof(*req), sprintrc(rc));
 
@@ -165,15 +161,14 @@
 	reqs->req2.nlh.nlmsg_len = 4;
 	rc = sendto(fd, reqs, sizeof(*reqs), MSG_DONTWAIT, NULL, 0);
 	printf("sendto(%d, [{{len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x"
-	       ", seq=0, pid=0}, \"abcd\"}, {{len=%u, type=NLMSG_NOOP"
-	       ", flags=NLM_F_REQUEST|0x%x, seq=0, pid=0}}], %u"
+	       ", seq=0, pid=0}, \"abcd\"}, {len=%u, type=NLMSG_NOOP"
+	       ", flags=NLM_F_REQUEST|0x%x, seq=0, pid=0}], %u"
 	       ", MSG_DONTWAIT, NULL, 0) = %s\n",
 	       fd, reqs->req1.nlh.nlmsg_len, NLM_F_DUMP,
 	       reqs->req2.nlh.nlmsg_len, NLM_F_DUMP,
 	       (unsigned) sizeof(*reqs), sprintrc(rc));
 
 	/* abbreviated output */
-# define DEFAULT_STRLEN 32
 # define ABBREV_LEN (DEFAULT_STRLEN + 1)
 	const unsigned int msg_len = sizeof(struct nlmsghdr) * ABBREV_LEN;
 	struct nlmsghdr *const msgs = tail_alloc(msg_len);
@@ -192,8 +187,8 @@
 	for (i = 0; i < DEFAULT_STRLEN; ++i) {
 		if (i)
 			printf(", ");
-		printf("{{len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x"
-		       ", seq=%u, pid=0}}",
+		printf("{len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x"
+		       ", seq=%u, pid=0}",
 		       msgs[i].nlmsg_len, NLM_F_DUMP, msgs[i].nlmsg_seq);
 	}
 	printf(", ...], %u, MSG_DONTWAIT, NULL, 0) = %s\n", msg_len, errstr);
@@ -281,8 +276,8 @@
 	rc = sendto(fd, nlh, nlh->nlmsg_len, MSG_DONTWAIT, NULL, 0);
 	printf("sendto(%d, {{len=%u, type=NLMSG_ERROR, flags=NLM_F_REQUEST"
 	       ", seq=0, pid=0}, {error=-EACCES"
-	       ", msg={{len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x"
-	       ", seq=%u, pid=%u}}}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       ", msg={len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x"
+	       ", seq=%u, pid=%u}}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
 	       fd, nlh->nlmsg_len, err->msg.nlmsg_len, NLM_F_DUMP,
 	       err->msg.nlmsg_seq, err->msg.nlmsg_pid,
 	       nlh->nlmsg_len, sprintrc(rc));
@@ -314,24 +309,58 @@
 	       nlh->nlmsg_len, sprintrc(rc));
 }
 
+static void
+test_nlmsg_done(const int fd)
+{
+	struct nlmsghdr *nlh;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+	const int num = 0xfacefeed;
+
+	/* NLMSG_DONE message without enough room for an integer payload */
+	nlh = nlh0;
+	*nlh = (struct nlmsghdr) {
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(num),
+		.nlmsg_type = NLMSG_DONE,
+		.nlmsg_flags = NLM_F_MULTI
+	};
+
+	rc = sendto(fd, nlh, nlh->nlmsg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=NLMSG_DONE, flags=NLM_F_MULTI"
+	       ", seq=0, pid=0}, %p}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh->nlmsg_len, nlh0 + NLMSG_HDRLEN,
+	       nlh->nlmsg_len, sprintrc(rc));
+
+	/* NLMSG_DONE message with enough room for an oddly short payload */
+	nlh->nlmsg_len = NLMSG_HDRLEN + 2;
+	nlh = nlh0 - 2;
+	/* Beware of unaligned access to nlh members. */
+	memmove(nlh, nlh0, sizeof(*nlh));
+	memcpy(NLMSG_DATA(nlh), "42", 2);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + 2, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=NLMSG_DONE, flags=NLM_F_MULTI"
+	       ", seq=0, pid=0}, \"42\"}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + 2, NLMSG_HDRLEN + 2, sprintrc(rc));
+
+	/* NLMSG_DONE message with enough room for an integer payload */
+	nlh = nlh0 - sizeof(num);
+	*nlh = (struct nlmsghdr) {
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(num),
+		.nlmsg_type = NLMSG_DONE,
+		.nlmsg_flags = NLM_F_MULTI
+	};
+	memcpy(NLMSG_DATA(nlh), &num, sizeof(num));
+
+	rc = sendto(fd, nlh, nlh->nlmsg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=NLMSG_DONE, flags=NLM_F_MULTI"
+	       ", seq=0, pid=0}, %d}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh->nlmsg_len, num, nlh->nlmsg_len, sprintrc(rc));
+}
+
 int main(void)
 {
-	struct sockaddr_nl addr;
-	socklen_t len = sizeof(addr);
-	int fd;
-
-	memset(&addr, 0, sizeof(addr));
-	addr.nl_family = AF_NETLINK;
-
-	if ((fd = socket(AF_NETLINK, SOCK_RAW, NETLINK_SOCK_DIAG)) == -1)
-		perror_msg_and_skip("socket AF_NETLINK");
-
-	printf("socket(AF_NETLINK, SOCK_RAW, NETLINK_SOCK_DIAG) = %d\n",
-	       fd);
-	if (bind(fd, (struct sockaddr *) &addr, len))
-		perror_msg_and_skip("bind");
-	printf("bind(%d, {sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}"
-	       ", %u) = 0\n", fd, len);
+	const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
 
 	char *path;
 	if (asprintf(&path, "/proc/self/fd/%u", fd) < 0)
@@ -343,9 +372,9 @@
 
 	send_query(fd);
 	test_nlmsgerr(fd);
+	test_nlmsg_done(fd);
 
-	printf("+++ exited with 0 +++\n");
-
+	puts("+++ exited with 0 +++");
 	return 0;
 }
 
diff --git a/tests-m32/netlink_protocol.gen.test b/tests-m32/netlink_protocol.gen.test
index 9a132fa..18d0667 100755
--- a/tests-m32/netlink_protocol.gen.test
+++ b/tests-m32/netlink_protocol.gen.test
@@ -1,4 +1,4 @@
 #!/bin/sh -efu
-# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (netlink_protocol -e trace=%network); do not edit.
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (netlink_protocol -e trace=sendto); do not edit.
 . "${srcdir=.}/init.sh"
-run_strace_match_diff -e trace=%network
+run_strace_match_diff -e trace=sendto
diff --git a/tests-m32/netlink_route.c b/tests-m32/netlink_route.c
new file mode 100644
index 0000000..54a54b7
--- /dev/null
+++ b/tests-m32/netlink_route.c
@@ -0,0 +1,107 @@
+/*
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@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.
+ */
+
+#include "tests.h"
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/socket.h>
+#include "netlink.h"
+#include <linux/rtnetlink.h>
+
+static void
+test_nlmsg_type(const int fd)
+{
+	long rc;
+	struct nlmsghdr nlh = {
+		.nlmsg_len = sizeof(nlh),
+		.nlmsg_type = RTM_GETLINK,
+		.nlmsg_flags = NLM_F_REQUEST,
+	};
+
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=RTM_GETLINK"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+}
+
+static void
+test_nlmsg_flags(const int fd)
+{
+	long rc;
+	struct nlmsghdr nlh = {
+		.nlmsg_len = sizeof(nlh),
+	};
+
+	nlh.nlmsg_type = RTM_GETLINK;
+	nlh.nlmsg_flags = NLM_F_REQUEST | NLM_F_DUMP;
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=RTM_GETLINK"
+	       ", flags=NLM_F_REQUEST|NLM_F_DUMP, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+
+	nlh.nlmsg_type = RTM_DELACTION;
+	nlh.nlmsg_flags = NLM_F_ROOT;
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=RTM_DELACTION"
+	       ", flags=NLM_F_ROOT, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+
+	nlh.nlmsg_type = RTM_NEWLINK;
+	nlh.nlmsg_flags = NLM_F_ECHO | NLM_F_REPLACE;
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=RTM_NEWLINK"
+	       ", flags=NLM_F_ECHO|NLM_F_REPLACE, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+
+	nlh.nlmsg_type = RTM_DELLINK;
+	nlh.nlmsg_flags = NLM_F_REPLACE;
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=RTM_DELLINK"
+	       ", flags=%#x /* NLM_F_??? */, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, NLM_F_REPLACE,
+	       (unsigned) sizeof(nlh), sprintrc(rc));
+}
+
+int main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	int fd = create_nl_socket(NETLINK_ROUTE);
+
+	test_nlmsg_type(fd);
+	test_nlmsg_flags(fd);
+
+	printf("+++ exited with 0 +++\n");
+
+	return 0;
+}
diff --git a/tests-m32/netlink_route.gen.test b/tests-m32/netlink_route.gen.test
new file mode 100755
index 0000000..298dbf1
--- /dev/null
+++ b/tests-m32/netlink_route.gen.test
@@ -0,0 +1,3 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (netlink_route +netlink_sock_diag.test); do not edit.
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests-m32/netlink_selinux.c b/tests-m32/netlink_selinux.c
new file mode 100644
index 0000000..6494fda
--- /dev/null
+++ b/tests-m32/netlink_selinux.c
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@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.
+ */
+
+#include "tests.h"
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/socket.h>
+#include "netlink.h"
+#include <linux/selinux_netlink.h>
+
+static void
+test_nlmsg_type(const int fd)
+{
+	long rc;
+	struct nlmsghdr nlh = {
+		.nlmsg_len = sizeof(nlh),
+		.nlmsg_type = SELNL_MSG_SETENFORCE,
+		.nlmsg_flags = NLM_F_REQUEST,
+	};
+
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=SELNL_MSG_SETENFORCE"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+}
+
+int main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	int fd = create_nl_socket(NETLINK_SELINUX);
+
+	test_nlmsg_type(fd);
+
+	printf("+++ exited with 0 +++\n");
+
+	return 0;
+}
diff --git a/tests-m32/netlink_selinux.gen.test b/tests-m32/netlink_selinux.gen.test
new file mode 100755
index 0000000..a8871d6
--- /dev/null
+++ b/tests-m32/netlink_selinux.gen.test
@@ -0,0 +1,3 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (netlink_selinux +netlink_sock_diag.test); do not edit.
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests-m32/netlink_sock_diag.c b/tests-m32/netlink_sock_diag.c
new file mode 100644
index 0000000..b8d0190
--- /dev/null
+++ b/tests-m32/netlink_sock_diag.c
@@ -0,0 +1,1606 @@
+/*
+ * Copyright (c) 2016 Fabien Siron <fabien.siron@epita.fr>
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@gmail.com>
+ * Copyright (c) 2017 The strace developers.
+ * 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 "tests.h"
+#include <stdio.h>
+#include <string.h>
+#include <stdint.h>
+#include <unistd.h>
+#include <sys/socket.h>
+#include <arpa/inet.h>
+#include <netinet/tcp.h>
+#include "netlink.h"
+#include <linux/if_ether.h>
+#include <linux/inet_diag.h>
+#include <linux/netlink_diag.h>
+#include <linux/packet_diag.h>
+#ifdef AF_SMC
+# include <linux/smc_diag.h>
+#endif
+#include <linux/sock_diag.h>
+#include <linux/unix_diag.h>
+
+#define SMC_ACTIVE 1
+
+static void
+test_nlmsg_type(const int fd)
+{
+	long rc;
+	struct nlmsghdr nlh = {
+		.nlmsg_len = sizeof(nlh),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST,
+	};
+
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+}
+
+static void
+test_nlmsg_flags(const int fd)
+{
+	long rc;
+	struct nlmsghdr nlh = {
+		.nlmsg_len = sizeof(nlh),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST | NLM_F_DUMP,
+	};
+
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST|NLM_F_DUMP, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+}
+
+static void
+test_odd_family_req(const int fd)
+{
+	struct nlmsghdr *nlh;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* unspecified family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	family = NLMSG_DATA(nlh);
+	*family = 0;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {family=AF_UNSPEC}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* unknown family only */
+	*family = 0xff;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {family=0xff /* AF_??? */}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* short read of family */
+	memmove(nlh0, nlh, NLMSG_HDRLEN);
+	nlh = nlh0;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}, %p}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_DATA(nlh),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* unspecified family and string */
+	nlh = nlh0 - (sizeof(*family) + 4);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	family = NLMSG_DATA(nlh);
+	*family = 0;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {family=AF_UNSPEC, \"1234\"}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* unknown family and string */
+	*family = 0xfd;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {family=0xfd /* AF_??? */, \"1234\"}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+}
+
+static void
+test_odd_family_msg(const int fd)
+{
+	struct nlmsghdr *nlh;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* unspecified family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	family = NLMSG_DATA(nlh);
+	*family = 0;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {family=AF_UNSPEC}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* unknown family only */
+	*family = 0xff;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {family=0xff /* AF_??? */}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* short read of family */
+	memmove(nlh0, nlh, NLMSG_HDRLEN);
+	nlh = nlh0;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, %p}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_DATA(nlh),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* unspecified family and string */
+	nlh = nlh0 - (sizeof(*family) + 4);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	family = NLMSG_DATA(nlh);
+	*family = 0;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {family=AF_UNSPEC, \"1234\"}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* unknown family and string */
+	*family = 0xfb;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {family=0xfb /* AF_??? */, \"1234\"}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+}
+
+static void
+test_unix_diag_req(const int fd)
+{
+	struct nlmsghdr *nlh;
+	struct unix_diag_req *req;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_UNIX;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}, {family=AF_UNIX}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - (sizeof(*family) + 4);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_UNIX;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_UNIX, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* unix_diag_req */
+	nlh = nlh0 - sizeof(*req);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*req),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	req = NLMSG_DATA(nlh);
+	*req = (struct unix_diag_req) {
+		.sdiag_family = AF_UNIX,
+		.sdiag_protocol = 253,
+		.udiag_states = 1 << TCP_ESTABLISHED | 1 << TCP_LISTEN,
+		.udiag_ino = 0xfacefeed,
+		.udiag_show = UDIAG_SHOW_NAME,
+		.udiag_cookie = { 0xdeadbeef, 0xbadc0ded }
+	};
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_UNIX, sdiag_protocol=%u"
+	       ", udiag_states=1<<TCP_ESTABLISHED|1<<TCP_LISTEN, udiag_ino=%u"
+	       ", udiag_show=UDIAG_SHOW_NAME, udiag_cookie=[%u, %u]}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       253, 0xfacefeed, 0xdeadbeef, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+
+	/* short read of unix_diag_req */
+	nlh = nlh0 - (sizeof(*req) - 1);
+	/* beware of unaligned access to nlh members */
+	memmove(nlh, nlh0 - sizeof(*req), NLMSG_HDRLEN + sizeof(*req) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}, {sdiag_family=AF_UNIX, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+}
+
+static void
+test_unix_diag_msg(const int fd)
+{
+	struct nlmsghdr *nlh;
+	struct unix_diag_msg *msg;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_UNIX;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {family=AF_UNIX}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - (sizeof(*family) + 4);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_UNIX;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {udiag_family=AF_UNIX, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* unix_diag_msg */
+	nlh = nlh0 - sizeof(*msg);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*msg),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	msg = NLMSG_DATA(nlh);
+	*msg = (struct unix_diag_msg) {
+		.udiag_family = AF_UNIX,
+		.udiag_type = SOCK_STREAM,
+		.udiag_state = TCP_FIN_WAIT1,
+		.udiag_ino = 0xfacefeed,
+		.udiag_cookie = { 0xdeadbeef, 0xbadc0ded }
+	};
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {udiag_family=AF_UNIX, udiag_type=SOCK_STREAM"
+	       ", udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=%u, udiag_cookie=[%u, %u]}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       0xfacefeed, 0xdeadbeef, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       sprintrc(rc));
+
+	/* short read of unix_diag_msg */
+	nlh = nlh0 - (sizeof(*msg) - 1);
+	/* beware of unaligned access to nlh members */
+	memmove(nlh, nlh0 - sizeof(*msg), NLMSG_HDRLEN + sizeof(*msg) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       sprintrc(rc));
+}
+
+static void
+test_netlink_diag_req(const int fd)
+{
+	struct nlmsghdr *nlh;
+	struct netlink_diag_req *req;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_NETLINK;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}, {family=AF_NETLINK}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - (sizeof(*family) + 4);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_NETLINK;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_NETLINK, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* netlink_diag_req */
+	nlh = nlh0 - sizeof(*req);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*req),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	req = NLMSG_DATA(nlh);
+	*req = (struct netlink_diag_req) {
+		.sdiag_family = AF_NETLINK,
+		.sdiag_protocol = NDIAG_PROTO_ALL,
+		.ndiag_ino = 0xfacefeed,
+		.ndiag_show = NDIAG_SHOW_MEMINFO,
+		.ndiag_cookie = { 0xdeadbeef, 0xbadc0ded }
+	};
+
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_NETLINK, sdiag_protocol=NDIAG_PROTO_ALL"
+	       ", ndiag_ino=%u, ndiag_show=NDIAG_SHOW_MEMINFO"
+	       ", ndiag_cookie=[%u, %u]}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       0xfacefeed, 0xdeadbeef, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+
+	req->sdiag_protocol = NETLINK_ROUTE;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_NETLINK, sdiag_protocol=NETLINK_ROUTE"
+	       ", ndiag_ino=%u, ndiag_show=NDIAG_SHOW_MEMINFO"
+	       ", ndiag_cookie=[%u, %u]}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       0xfacefeed, 0xdeadbeef, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+
+	/* short read of netlink_diag_req */
+	nlh = nlh0 - (sizeof(*req) - 1);
+	/* beware of unaligned access to nlh members */
+	memmove(nlh, nlh0 - sizeof(*req), NLMSG_HDRLEN + sizeof(*req) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_NETLINK, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+}
+
+static void
+test_netlink_diag_msg(const int fd)
+{
+	struct nlmsghdr *nlh;
+	struct netlink_diag_msg *msg;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_NETLINK;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {family=AF_NETLINK}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - (sizeof(*family) + 4);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_NETLINK;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {ndiag_family=AF_NETLINK, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* netlink_diag_msg */
+	nlh = nlh0 - sizeof(*msg);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*msg),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	msg = NLMSG_DATA(nlh);
+	*msg = (struct netlink_diag_msg) {
+		.ndiag_family = AF_NETLINK,
+		.ndiag_type = SOCK_RAW,
+		.ndiag_protocol = NETLINK_ROUTE,
+		.ndiag_state = NETLINK_CONNECTED,
+		.ndiag_portid = 0xbadc0ded,
+		.ndiag_dst_portid = 0xdeadbeef,
+		.ndiag_dst_group = 0xfacefeed,
+		.ndiag_ino = 0xdaeefacd,
+		.ndiag_cookie = { 0xbadc0ded, 0xdeadbeef }
+	};
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {ndiag_family=AF_NETLINK"
+	       ", ndiag_type=SOCK_RAW, ndiag_protocol=NETLINK_ROUTE"
+	       ", ndiag_state=NETLINK_CONNECTED, ndiag_portid=%u"
+	       ", ndiag_dst_portid=%u, ndiag_dst_group=%u, ndiag_ino=%u"
+	       ", ndiag_cookie=[%u, %u]}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       0xbadc0ded, 0xdeadbeef, 0xfacefeed,
+	       0xdaeefacd, 0xbadc0ded, 0xdeadbeef,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       sprintrc(rc));
+
+	/* short read of netlink_diag_msg */
+	nlh = nlh0 - (sizeof(*msg) - 1);
+	/* beware of unaligned access to nlh members */
+	memmove(nlh, nlh0 - sizeof(*msg), NLMSG_HDRLEN + sizeof(*msg) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {ndiag_family=AF_NETLINK, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       sprintrc(rc));
+}
+
+static void
+test_packet_diag_req(const int fd)
+{
+	struct nlmsghdr *nlh;
+	struct packet_diag_req *req;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_PACKET;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}, {family=AF_PACKET}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - (sizeof(*family) + 4);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_PACKET;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_PACKET, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* packet_diag_req */
+	nlh = nlh0 - sizeof(*req);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*req),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	req = NLMSG_DATA(nlh);
+	*req = (struct packet_diag_req) {
+		.sdiag_family = AF_PACKET,
+		.sdiag_protocol = ETH_P_LOOP,
+		.pdiag_ino = 0xfacefeed,
+		.pdiag_show = PACKET_SHOW_INFO,
+		.pdiag_cookie = { 0xdeadbeef, 0xbadc0ded }
+	};
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_PACKET, sdiag_protocol=ETH_P_LOOP"
+	       ", pdiag_ino=%u, pdiag_show=PACKET_SHOW_INFO"
+	       ", pdiag_cookie=[%u, %u]}}, %u"
+	       ", MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       0xfacefeed, 0xdeadbeef, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+
+	/* short read of packet_diag_req */
+	nlh = nlh0 - (sizeof(*req) - 1);
+	memmove(nlh, nlh0 - sizeof(*req), NLMSG_HDRLEN + sizeof(*req) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_PACKET, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+}
+
+static void
+test_packet_diag_msg(const int fd)
+{
+	struct nlmsghdr *nlh;
+	struct packet_diag_msg *msg;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_PACKET;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {family=AF_PACKET}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - (sizeof(*family) + 4);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_PACKET;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {pdiag_family=AF_PACKET, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* packet_diag_msg */
+	nlh = nlh0 - sizeof(*msg);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*msg),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	msg = NLMSG_DATA(nlh);
+	*msg = (struct packet_diag_msg) {
+		.pdiag_family = AF_PACKET,
+		.pdiag_type = SOCK_STREAM,
+		.pdiag_num = 0xbadc,
+		.pdiag_ino = 0xfacefeed,
+		.pdiag_cookie = { 0xdeadbeef, 0xbadc0ded }
+	};
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {pdiag_family=AF_PACKET, pdiag_type=SOCK_STREAM"
+	       ", pdiag_num=%u, pdiag_ino=%u, pdiag_cookie=[%u, %u]}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       0xbadc, 0xfacefeed, 0xdeadbeef, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       sprintrc(rc));
+
+	/* short read of packet_diag_msg */
+	nlh = nlh0 - (sizeof(*msg) - 1);
+	memmove(nlh, nlh0 - sizeof(*msg), NLMSG_HDRLEN + sizeof(*msg) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {pdiag_family=AF_PACKET, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       sprintrc(rc));
+}
+
+static void
+test_inet_diag_sockid(const int fd)
+{
+	const char address[] = "12.34.56.78";
+	const char address6[] = "12:34:56:78:90:ab:cd:ef";
+	struct nlmsghdr *nlh;
+	struct inet_diag_req_v2 *req;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	nlh = nlh0 - sizeof(*req);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*req),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+
+	req = NLMSG_DATA(nlh);
+	*req = (struct inet_diag_req_v2) {
+		.sdiag_family = AF_INET,
+		.idiag_ext = 1 << (INET_DIAG_CONG - 1),
+		.sdiag_protocol = IPPROTO_TCP,
+		.idiag_states = 1 << TCP_CLOSE,
+		.id = {
+			.idiag_sport = 0xfacd,
+			.idiag_dport = 0xdead,
+			.idiag_if = 0xadcdfafc,
+			.idiag_cookie = { 0xdeadbeef, 0xbadc0ded }
+		},
+	};
+
+	if (!inet_pton(AF_INET, address, &req->id.idiag_src))
+		perror_msg_and_skip("sendto");
+	if (!inet_pton(AF_INET, address, &req->id.idiag_dst))
+		perror_msg_and_skip("sendto");
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_INET, sdiag_protocol=IPPROTO_TCP"
+	       ", idiag_ext=1<<(INET_DIAG_CONG-1)"
+	       ", idiag_states=1<<TCP_CLOSE, id={idiag_sport=htons(%u)"
+	       ", idiag_dport=htons(%u), inet_pton(AF_INET, \"%s\", &idiag_src)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_dst), idiag_if=%u"
+	       ", idiag_cookie=[%u, %u]}}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       ntohs(0xfacd), ntohs(0xdead), address, address,
+	       0xadcdfafc, 0xdeadbeef, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+
+	req->sdiag_family = AF_INET6;
+	if (!inet_pton(AF_INET6, address6, &req->id.idiag_src))
+		perror_msg_and_skip("sendto");
+	if (!inet_pton(AF_INET6, address6, &req->id.idiag_dst))
+		perror_msg_and_skip("sendto");
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_INET6, sdiag_protocol=IPPROTO_TCP"
+	       ", idiag_ext=1<<(INET_DIAG_CONG-1)"
+	       ", idiag_states=1<<TCP_CLOSE, id={idiag_sport=htons(%u)"
+	       ", idiag_dport=htons(%u), inet_pton(AF_INET6, \"%s\", &idiag_src)"
+	       ", inet_pton(AF_INET6, \"%s\", &idiag_dst), idiag_if=%u"
+	       ", idiag_cookie=[%u, %u]}}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       ntohs(0xfacd), ntohs(0xdead), address6, address6,
+	       0xadcdfafc, 0xdeadbeef, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+}
+
+static void
+test_inet_diag_req(const int fd)
+{
+	const char address[] = "12.34.56.78";
+	struct nlmsghdr *nlh;
+	struct inet_diag_req *req;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = TCPDIAG_GETSOCK,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+
+	family = NLMSG_DATA(nlh);
+	*family = AF_INET;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=TCPDIAG_GETSOCK"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}, {family=AF_INET}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - (sizeof(*family) + 4);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = TCPDIAG_GETSOCK,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+
+	family = NLMSG_DATA(nlh);
+	*family = AF_INET;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=TCPDIAG_GETSOCK"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {idiag_family=AF_INET, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* inet_diag_req */
+	nlh = nlh0 - sizeof(*req);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*req),
+		.nlmsg_type = TCPDIAG_GETSOCK,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+
+	req = NLMSG_DATA(nlh);
+	*req = (struct inet_diag_req) {
+		.idiag_family = AF_INET,
+		.idiag_ext = 1 << (INET_DIAG_TOS - 1),
+		.idiag_src_len = 0xde,
+		.idiag_dst_len = 0xba,
+		.id = {
+			.idiag_sport = 0xdead,
+			.idiag_dport = 0xadcd,
+			.idiag_if = 0xadcdfafc,
+			.idiag_cookie = { 0xdeadbeef, 0xbadc0ded }
+		},
+		.idiag_states = 1 << TCP_LAST_ACK,
+		.idiag_dbs = 0xfacefeed,
+	};
+
+	if (!inet_pton(AF_INET, address, &req->id.idiag_src))
+		perror_msg_and_skip("sendto");
+	if (!inet_pton(AF_INET, address, &req->id.idiag_dst))
+		perror_msg_and_skip("sendto");
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=TCPDIAG_GETSOCK"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {idiag_family=AF_INET, idiag_src_len=%u"
+	       ", idiag_dst_len=%u, idiag_ext=1<<(INET_DIAG_TOS-1)"
+	       ", id={idiag_sport=htons(%u), idiag_dport=htons(%u)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_src)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_dst)"
+	       ", idiag_if=%u, idiag_cookie=[%u, %u]}"
+	       ", idiag_states=1<<TCP_LAST_ACK, idiag_dbs=%u}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       0xde, 0xba, ntohs(0xdead), ntohs(0xadcd), address, address,
+	       0xadcdfafc, 0xdeadbeef, 0xbadc0ded, 0xfacefeed,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+
+	/* short read of inet_diag_req */
+	nlh = nlh0 - (sizeof(*req) - 1);
+	/* beware of unaligned access to nlh members */
+	memmove(nlh, nlh0 - sizeof(*req), NLMSG_HDRLEN + sizeof(*req) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=TCPDIAG_GETSOCK"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {idiag_family=AF_INET, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+}
+
+static void
+test_inet_diag_req_v2(const int fd)
+{
+	const char address[] = "87.65.43.21";
+	struct nlmsghdr *nlh;
+	struct inet_diag_req_v2 *req;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+
+	family = NLMSG_DATA(nlh);
+	*family = AF_INET;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}, {family=AF_INET}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - sizeof(*family) - 4;
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+
+	family = NLMSG_DATA(nlh);
+	*family = AF_INET;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_INET, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* inet_diag_req_v2 */
+	nlh = nlh0 - sizeof(*req);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*req),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+
+	req = NLMSG_DATA(nlh);
+	*req = (struct inet_diag_req_v2) {
+		.sdiag_family = AF_INET,
+		.idiag_ext = 1 << (INET_DIAG_CONG - 1),
+		.sdiag_protocol = IPPROTO_TCP,
+		.idiag_states = 1 << TCP_CLOSE,
+		.id = {
+			.idiag_sport = 0xfacd,
+			.idiag_dport = 0xdead,
+			.idiag_if = 0xadcdfafc,
+			.idiag_cookie = { 0xdeadbeef, 0xbadc0ded }
+		},
+	};
+
+	if (!inet_pton(AF_INET, address, &req->id.idiag_src))
+		perror_msg_and_skip("sendto");
+	if (!inet_pton(AF_INET, address, &req->id.idiag_dst))
+		perror_msg_and_skip("sendto");
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_INET, sdiag_protocol=IPPROTO_TCP"
+	       ", idiag_ext=1<<(INET_DIAG_CONG-1)"
+	       ", idiag_states=1<<TCP_CLOSE, id={idiag_sport=htons(%u)"
+	       ", idiag_dport=htons(%u), inet_pton(AF_INET, \"%s\", &idiag_src)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_dst), idiag_if=%u"
+	       ", idiag_cookie=[%u, %u]}}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       ntohs(0xfacd), ntohs(0xdead), address, address,
+	       0xadcdfafc, 0xdeadbeef, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+
+	/* short read of inet_diag_req_v2 */
+	nlh = nlh0 - (sizeof(*req) - 1);
+	/* beware of unaligned access to nlh members */
+	memmove(nlh, nlh0 - sizeof(*req), NLMSG_HDRLEN + sizeof(*req) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_INET, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+}
+
+static void
+test_inet_diag_msg(const int fd)
+{
+	const char address[] = "11.22.33.44";
+	struct nlmsghdr *nlh;
+	struct inet_diag_msg *msg;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+
+	family = NLMSG_DATA(nlh);
+	*family = AF_INET;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {family=AF_INET}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - sizeof(*family) - 4;
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+
+	family = NLMSG_DATA(nlh);
+	*family = AF_INET;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {idiag_family=AF_INET, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* inet_diag_msg */
+	nlh = nlh0 - sizeof(*msg);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*msg),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+
+	msg = NLMSG_DATA(nlh);
+	*msg = (struct inet_diag_msg) {
+		.idiag_family = AF_INET,
+		.idiag_state = TCP_LISTEN,
+		.idiag_timer = 0xfa,
+		.idiag_retrans = 0xde,
+		.id = {
+			.idiag_sport = 0xfacf,
+			.idiag_dport = 0xdead,
+			.idiag_if = 0xadcdfafc,
+			.idiag_cookie = { 0xdeadbeef, 0xbadc0ded }
+		},
+		.idiag_expires = 0xfacefeed,
+		.idiag_rqueue = 0xdeadbeef,
+		.idiag_wqueue = 0xadcdfafc,
+		.idiag_uid = 0xdecefaeb,
+		.idiag_inode = 0xbadc0ded,
+	};
+
+	if (!inet_pton(AF_INET, address, &msg->id.idiag_src))
+		perror_msg_and_skip("sendto");
+	if (!inet_pton(AF_INET, address, &msg->id.idiag_dst))
+		perror_msg_and_skip("sendto");
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {idiag_family=AF_INET, idiag_state=TCP_LISTEN"
+	       ", idiag_timer=%u, idiag_retrans=%u"
+	       ", id={idiag_sport=htons(%u), idiag_dport=htons(%u)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_src)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_dst)"
+	       ", idiag_if=%u, idiag_cookie=[%u, %u]}"
+	       ", idiag_expires=%u, idiag_rqueue=%u, idiag_wqueue=%u"
+	       ", idiag_uid=%u, idiag_inode=%u}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       0xfa, 0xde, ntohs(0xfacf), ntohs(0xdead),
+	       address, address, 0xadcdfafc, 0xdeadbeef, 0xbadc0ded,
+	       0xfacefeed, 0xdeadbeef, 0xadcdfafc, 0xdecefaeb, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       sprintrc(rc));
+
+	/* short read of inet_diag_msg */
+	nlh = nlh0 - (sizeof(*msg) - 1);
+	/* beware of unaligned access to nlh members */
+	memmove(nlh, nlh0 - sizeof(*msg), NLMSG_HDRLEN + sizeof(*msg) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,
+		    NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {idiag_family=AF_INET, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       sprintrc(rc));
+}
+
+#ifdef AF_SMC
+static void
+test_smc_diag_req(const int fd)
+{
+	const char address[] = "43.21.56.78";
+	struct nlmsghdr *nlh;
+	struct smc_diag_req *req;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+
+	family = NLMSG_DATA(nlh);
+	*family = AF_SMC;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}, {family=AF_SMC}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - sizeof(*family) - 4;
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+
+	family = NLMSG_DATA(nlh);
+	*family = AF_SMC;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {diag_family=AF_SMC, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* smc_diag_req */
+	nlh = nlh0 - sizeof(*req);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*req),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+
+	req = NLMSG_DATA(nlh);
+	*req = (struct smc_diag_req) {
+		.diag_family = AF_SMC,
+		.diag_ext = 1 << (SMC_DIAG_CONNINFO - 1),
+		.id = {
+			.idiag_sport = 0xdead,
+			.idiag_dport = 0xadcd,
+			.idiag_if = 0xadcdfafc,
+			.idiag_cookie = { 0xdeadbeef, 0xbadc0ded },
+		},
+	};
+
+	if (!inet_pton(AF_INET, address, &req->id.idiag_src))
+		perror_msg_and_skip("sendto");
+	if (!inet_pton(AF_INET, address, &req->id.idiag_dst))
+		perror_msg_and_skip("sendto");
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}, {diag_family=AF_SMC"
+	       ", diag_ext=1<<(SMC_DIAG_CONNINFO-1)"
+	       ", id={idiag_sport=htons(%u), idiag_dport=htons(%u)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_src)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_dst)"
+	       ", idiag_if=%u, idiag_cookie=[%u, %u]}}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       htons(0xdead), htons(0xadcd), address, address,
+	       0xadcdfafc, 0xdeadbeef, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+
+	/* short read of smc_diag_req */
+	nlh = nlh0 - (sizeof(*req) - 1);
+	/* beware of unaligned access to nlh members */
+	memmove(nlh, nlh0 - sizeof(*req), NLMSG_HDRLEN + sizeof(*req) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {diag_family=AF_SMC, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+}
+
+static void
+test_smc_diag_msg(const int fd)
+{
+	const char address[] = "34.87.12.90";
+	struct nlmsghdr *nlh;
+	struct smc_diag_msg *msg;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+
+	family = NLMSG_DATA(nlh);
+	*family = AF_SMC;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {family=AF_SMC}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - sizeof(*family) - 4;
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+
+	family = NLMSG_DATA(nlh);
+	*family = AF_SMC;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {diag_family=AF_SMC, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* smc_diag_msg */
+	nlh = nlh0 - sizeof(*msg);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*msg),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+
+	msg = NLMSG_DATA(nlh);
+	*msg = (struct smc_diag_msg) {
+		.diag_family = AF_SMC,
+		.diag_state = SMC_ACTIVE,
+		.diag_fallback = 0xde,
+		.diag_shutdown = 0xba,
+		.id = {
+			.idiag_sport = 0xdead,
+			.idiag_dport = 0xadcd,
+			.idiag_if = 0xadcdfafc,
+			.idiag_cookie = { 0xdeadbeef, 0xbadc0ded },
+		},
+		.diag_uid = 0xadcdfafc,
+		.diag_inode = 0xbadc0ded,
+	};
+
+	if (!inet_pton(AF_INET, address, &msg->id.idiag_src))
+		perror_msg_and_skip("sendto");
+	if (!inet_pton(AF_INET, address, &msg->id.idiag_dst))
+		perror_msg_and_skip("sendto");
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {diag_family=AF_SMC"
+	       ", diag_state=SMC_ACTIVE, diag_fallback=%u, diag_shutdown=%u"
+	       ", id={idiag_sport=htons(%u), idiag_dport=htons(%u)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_src)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_dst)"
+	       ", idiag_if=%u, idiag_cookie=[%u, %u]}"
+	       ", diag_uid=%u, diag_inode=%u}}, %u"
+	       ", MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       0xde, 0xba, htons(0xdead), htons(0xadcd), address, address,
+	       0xadcdfafc, 0xdeadbeef, 0xbadc0ded, 0xadcdfafc, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       sprintrc(rc));
+
+	/* short read of smc_diag_msg */
+	nlh = nlh0 - (sizeof(*msg) - 1);
+	/* beware of unaligned access to nlh members */
+	memmove(nlh, nlh0 - sizeof(*msg), NLMSG_HDRLEN + sizeof(*msg) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,
+		    NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {diag_family=AF_SMC, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       sprintrc(rc));
+}
+#endif
+
+int
+main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	int fd = create_nl_socket(NETLINK_SOCK_DIAG);
+
+	test_nlmsg_type(fd);
+	test_nlmsg_flags(fd);
+	test_odd_family_req(fd);
+	test_odd_family_msg(fd);
+	test_unix_diag_req(fd);
+	test_unix_diag_msg(fd);
+	test_netlink_diag_req(fd);
+	test_netlink_diag_msg(fd);
+	test_packet_diag_req(fd);
+	test_packet_diag_msg(fd);
+	test_inet_diag_sockid(fd);
+	test_inet_diag_req(fd);
+	test_inet_diag_req_v2(fd);
+	test_inet_diag_msg(fd);
+#ifdef AF_SMC
+	test_smc_diag_req(fd);
+	test_smc_diag_msg(fd);
+#endif
+
+	printf("+++ exited with 0 +++\n");
+
+	return 0;
+}
diff --git a/tests-m32/netlink_sock_diag.test b/tests-m32/netlink_sock_diag.test
new file mode 100755
index 0000000..0cf380e
--- /dev/null
+++ b/tests-m32/netlink_sock_diag.test
@@ -0,0 +1,33 @@
+#!/bin/sh
+#
+# Check decoding of NETLINK_SOCK_DIAG protocol
+#
+# Copyright (c) 2017 The strace developers.
+# 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.
+
+. "${srcdir=.}/init.sh"
+
+run_prog ../netlink_netlink_diag
+run_strace_match_diff -e trace=sendto
diff --git a/tests-m32/netlink_unix_diag.c b/tests-m32/netlink_unix_diag.c
index 269adc6..119cc9e 100644
--- a/tests-m32/netlink_unix_diag.c
+++ b/tests-m32/netlink_unix_diag.c
@@ -36,14 +36,10 @@
 #include <unistd.h>
 #include <sys/socket.h>
 #include <sys/un.h>
-#include <linux/netlink.h>
+#include "netlink.h"
 #include <linux/sock_diag.h>
 #include <linux/unix_diag.h>
 
-#if !defined NETLINK_SOCK_DIAG && defined NETLINK_INET_DIAG
-# define NETLINK_SOCK_DIAG NETLINK_INET_DIAG
-#endif
-
 static void
 send_query(const int fd)
 {
diff --git a/tests-m32/netlink_xfrm.c b/tests-m32/netlink_xfrm.c
new file mode 100644
index 0000000..27f62d1
--- /dev/null
+++ b/tests-m32/netlink_xfrm.c
@@ -0,0 +1,100 @@
+/*
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@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.
+ */
+
+#include "tests.h"
+#include <stdio.h>
+#include <string.h>
+#include <stdint.h>
+#include <unistd.h>
+#include <sys/socket.h>
+#include "netlink.h"
+#include <linux/xfrm.h>
+
+static void
+test_nlmsg_type(const int fd)
+{
+	long rc;
+	struct nlmsghdr nlh = {
+		.nlmsg_len = sizeof(nlh),
+		.nlmsg_type = XFRM_MSG_NEWSA,
+		.nlmsg_flags = NLM_F_REQUEST,
+	};
+
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=XFRM_MSG_NEWSA"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+}
+
+static void
+test_nlmsg_flags(const int fd)
+{
+	long rc;
+	struct nlmsghdr nlh = {
+		.nlmsg_len = sizeof(nlh),
+	};
+
+	nlh.nlmsg_type = XFRM_MSG_GETSA;
+	nlh.nlmsg_flags = NLM_F_DUMP;
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=XFRM_MSG_GETSA"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+
+	nlh.nlmsg_type = XFRM_MSG_NEWSA;
+	nlh.nlmsg_flags = NLM_F_REPLACE;
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=XFRM_MSG_NEWSA"
+	       ", flags=NLM_F_REPLACE, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+
+	nlh.nlmsg_type = XFRM_MSG_DELSA;
+	nlh.nlmsg_flags = NLM_F_ECHO | NLM_F_REPLACE;
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=XFRM_MSG_DELSA"
+	       ", flags=NLM_F_ECHO|%#x, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, NLM_F_REPLACE,
+	       (unsigned) sizeof(nlh), sprintrc(rc));
+}
+
+int main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	int fd = create_nl_socket(NETLINK_XFRM);
+
+	test_nlmsg_type(fd);
+	test_nlmsg_flags(fd);
+
+	printf("+++ exited with 0 +++\n");
+
+	return 0;
+}
diff --git a/tests-m32/netlink_xfrm.gen.test b/tests-m32/netlink_xfrm.gen.test
new file mode 100755
index 0000000..17f7444
--- /dev/null
+++ b/tests-m32/netlink_xfrm.gen.test
@@ -0,0 +1,3 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (netlink_xfrm +netlink_sock_diag.test); do not edit.
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests-m32/nlattr.c b/tests-m32/nlattr.c
new file mode 100644
index 0000000..7361ece
--- /dev/null
+++ b/tests-m32/nlattr.c
@@ -0,0 +1,326 @@
+/*
+ * Check decoding of netlink attribute.
+ *
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@gmail.com>
+ * Copyright (c) 2017 The strace developers.
+ * 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 "tests.h"
+
+#include <stdio.h>
+#include <stdint.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/socket.h>
+#include <netinet/tcp.h>
+#include "netlink.h"
+#include <linux/rtnetlink.h>
+#include <linux/sock_diag.h>
+#include <linux/unix_diag.h>
+
+static void
+test_nlattr(const int fd)
+{
+	static const struct msg {
+		struct nlmsghdr nlh;
+		struct unix_diag_msg udm;
+	} c_msg = {
+		.nlh = {
+			.nlmsg_len = sizeof(struct msg),
+			.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+			.nlmsg_flags = NLM_F_DUMP
+		},
+		.udm = {
+			.udiag_family = AF_UNIX,
+			.udiag_type = SOCK_STREAM,
+			.udiag_state = TCP_FIN_WAIT1
+		}
+	};
+	struct msg *msg;
+	struct nlattr *nla;
+	unsigned int msg_len;
+	long rc;
+
+	/* fetch fail: len < sizeof(struct nlattr) */
+	msg_len = NLMSG_SPACE(sizeof(msg->udm)) + 2;
+	msg = tail_memdup(&c_msg, msg_len);
+	memcpy(&msg->nlh.nlmsg_len, &msg_len, sizeof(msg_len));
+	nla = NLMSG_ATTR(msg, sizeof(msg->udm));
+	memcpy(nla, "12", 2);
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, \"12\"}, %u"
+	       ", MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, msg_len, sprintrc(rc));
+
+	/* fetch fail: short read */
+	msg_len = NLMSG_SPACE(sizeof(msg->udm)) + sizeof(*nla);
+	msg = tail_memdup(&c_msg, msg_len - 1);
+	memcpy(&msg->nlh.nlmsg_len, &msg_len, sizeof(msg_len));
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, %p}, %u"
+	       ", MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, (void *) msg + NLMSG_SPACE(sizeof(msg->udm)),
+	       msg_len, sprintrc(rc));
+
+	/* print one struct nlattr */
+	msg_len = NLMSG_SPACE(sizeof(msg->udm)) + sizeof(*nla);
+	msg = tail_memdup(&c_msg, msg_len);
+	memcpy(&msg->nlh.nlmsg_len, &msg_len, sizeof(msg_len));
+	nla = NLMSG_ATTR(msg, sizeof(msg->udm));
+	*nla = (struct nlattr) {
+		.nla_len = sizeof(*nla),
+		.nla_type = UNIX_DIAG_NAME
+	};
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, {nla_len=%u"
+	       ", nla_type=UNIX_DIAG_NAME}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, nla->nla_len, msg_len, sprintrc(rc));
+
+	/* print one struct nlattr with nla_len out of msg_len bounds */
+	nla->nla_len += 8;
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, {nla_len=%u"
+	       ", nla_type=UNIX_DIAG_NAME}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, nla->nla_len, msg_len, sprintrc(rc));
+
+	/* print one struct nlattr and some data */
+	msg_len = NLMSG_SPACE(sizeof(msg->udm)) + NLA_HDRLEN + 4;
+	msg = tail_memdup(&c_msg, msg_len);
+	memcpy(&msg->nlh.nlmsg_len, &msg_len, sizeof(msg_len));
+	nla = NLMSG_ATTR(msg, sizeof(msg->udm));
+	*nla = (struct nlattr) {
+		.nla_len = NLA_HDRLEN + 4,
+		.nla_type = UNIX_DIAG_SHUTDOWN + 1
+	};
+	memcpy(RTA_DATA(nla), "1234", 4);
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, {{nla_len=%u"
+	       ", nla_type=%#x /* UNIX_DIAG_??? */}, \"1234\"}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, nla->nla_len, UNIX_DIAG_SHUTDOWN + 1,
+	       msg_len, sprintrc(rc));
+
+	/* print one struct nlattr and fetch fail second struct nlattr */
+	msg_len = NLMSG_SPACE(sizeof(msg->udm)) + NLA_HDRLEN + 2;
+	msg = tail_memdup(&c_msg, msg_len);
+	memcpy(&msg->nlh.nlmsg_len, &msg_len, sizeof(msg_len));
+	nla = NLMSG_ATTR(msg, sizeof(msg->udm));
+	*nla = (struct nlattr) {
+		.nla_len = NLA_HDRLEN,
+		.nla_type = UNIX_DIAG_NAME
+	};
+	memcpy(nla + 1, "12", 2);
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, [{nla_len=%u"
+	       ", nla_type=UNIX_DIAG_NAME}, \"12\"]}, %u"
+	       ", MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, nla->nla_len, msg_len, sprintrc(rc));
+
+	/* print one struct nlattr and short read of second struct nlattr */
+	msg_len = NLMSG_SPACE(sizeof(msg->udm)) + NLA_HDRLEN * 2;
+	msg = tail_memdup(&c_msg, msg_len - 1);
+	memcpy(&msg->nlh.nlmsg_len, &msg_len, sizeof(msg_len));
+	nla = NLMSG_ATTR(msg, sizeof(msg->udm));
+	*nla = (struct nlattr) {
+		.nla_len = NLA_HDRLEN,
+		.nla_type = UNIX_DIAG_NAME
+	};
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, [{nla_len=%u"
+	       ", nla_type=UNIX_DIAG_NAME}, %p]}, %u"
+	       ", MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, nla->nla_len, nla + 1, msg_len, sprintrc(rc));
+
+	/* print two struct nlattr */
+	msg_len = NLMSG_SPACE(sizeof(msg->udm)) + NLA_HDRLEN * 2;
+	msg = tail_memdup(&c_msg, msg_len);
+	memcpy(&msg->nlh.nlmsg_len, &msg_len, sizeof(msg_len));
+	nla = NLMSG_ATTR(msg, sizeof(msg->udm));
+	*nla = (struct nlattr) {
+		.nla_len = NLA_HDRLEN,
+		.nla_type = UNIX_DIAG_NAME
+	};
+	*(nla + 1) = (struct nlattr) {
+		.nla_len = NLA_HDRLEN,
+		.nla_type = UNIX_DIAG_PEER
+	};
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, [{nla_len=%u"
+	       ", nla_type=UNIX_DIAG_NAME}, {nla_len=%u"
+	       ", nla_type=UNIX_DIAG_PEER}]}, %u"
+	       ", MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, nla->nla_len, nla->nla_len,
+	       msg_len, sprintrc(rc));
+
+	/* print first nlattr only when its nla_len is less than NLA_HDRLEN */
+	nla->nla_len = NLA_HDRLEN - 1;
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, {nla_len=%u"
+	       ", nla_type=UNIX_DIAG_NAME}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, nla->nla_len, msg_len, sprintrc(rc));
+
+	/* abbreviated output */
+#define ABBREV_LEN (DEFAULT_STRLEN + 1)
+	msg_len = NLA_HDRLEN * ABBREV_LEN + NLMSG_SPACE(sizeof(msg->udm));
+	msg = tail_memdup(&c_msg, msg_len);
+	memcpy(&msg->nlh.nlmsg_len, &msg_len, sizeof(msg_len));
+	unsigned int i;
+	nla = NLMSG_ATTR(msg, sizeof(msg->udm));
+	for (i = 0; i < ABBREV_LEN; ++i)
+		nla[i] = (struct nlattr) {
+			.nla_len = NLA_HDRLEN,
+			.nla_type = UNIX_DIAG_SHUTDOWN + 1 + i
+		};
+
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {udiag_family=AF_UNIX, udiag_type=SOCK_STREAM"
+	       ", udiag_state=TCP_FIN_WAIT1, udiag_ino=0"
+	       ", udiag_cookie=[0, 0]}, [",
+	       fd, msg_len);
+	for (i = 0; i < DEFAULT_STRLEN; ++i) {
+		if (i)
+			printf(", ");
+		printf("{nla_len=%u, nla_type=%#x /* UNIX_DIAG_??? */}",
+		       nla->nla_len, UNIX_DIAG_SHUTDOWN + 1 + i);
+	}
+	printf(", ...]}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       msg_len, sprintrc(rc));
+}
+
+static void
+test_nla_type(const int fd)
+{
+	static const struct msg {
+		struct nlmsghdr nlh;
+		struct unix_diag_msg udm;
+	} c_msg = {
+		.nlh = {
+			.nlmsg_len = sizeof(struct msg),
+			.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+			.nlmsg_flags = NLM_F_DUMP
+		},
+		.udm = {
+			.udiag_family = AF_UNIX,
+			.udiag_type = SOCK_STREAM,
+			.udiag_state = TCP_FIN_WAIT1
+		}
+	};
+	struct msg *msg;
+	struct nlattr *nla;
+	unsigned int msg_len;
+	long rc;
+
+	msg_len = NLMSG_SPACE(sizeof(msg->udm)) + sizeof(*nla);
+	msg = tail_memdup(&c_msg, msg_len);
+	memcpy(&msg->nlh.nlmsg_len, &msg_len, sizeof(msg_len));
+	nla = NLMSG_ATTR(msg, sizeof(msg->udm));
+	*nla = (struct nlattr) {
+		.nla_len = sizeof(*nla),
+		.nla_type = NLA_F_NESTED | UNIX_DIAG_NAME
+	};
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, {nla_len=%u"
+	       ", nla_type=NLA_F_NESTED|UNIX_DIAG_NAME}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, nla->nla_len, msg_len, sprintrc(rc));
+
+	nla->nla_type = NLA_F_NET_BYTEORDER | UNIX_DIAG_NAME;
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, {nla_len=%u"
+	       ", nla_type=NLA_F_NET_BYTEORDER|UNIX_DIAG_NAME}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, nla->nla_len, msg_len, sprintrc(rc));
+
+	nla->nla_type = NLA_F_NESTED | NLA_F_NET_BYTEORDER | UNIX_DIAG_NAME;
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, {nla_len=%u"
+	       ", nla_type=NLA_F_NESTED|NLA_F_NET_BYTEORDER|UNIX_DIAG_NAME}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, nla->nla_len, msg_len, sprintrc(rc));
+
+	nla->nla_type = NLA_F_NESTED | (UNIX_DIAG_SHUTDOWN + 1);
+	rc = sendto(fd, msg, msg->nlh.nlmsg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, {nla_len=%u"
+	       ", nla_type=NLA_F_NESTED|%#x /* UNIX_DIAG_??? */}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg->nlh.nlmsg_len, nla->nla_len, UNIX_DIAG_SHUTDOWN + 1,
+	       msg->nlh.nlmsg_len, sprintrc(rc));
+}
+
+int main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
+
+	test_nlattr(fd);
+	test_nla_type(fd);
+
+	puts("+++ exited with 0 +++");
+
+	return 0;
+}
diff --git a/tests-m32/nlattr.gen.test b/tests-m32/nlattr.gen.test
new file mode 100755
index 0000000..105801b
--- /dev/null
+++ b/tests-m32/nlattr.gen.test
@@ -0,0 +1,3 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (nlattr +netlink_sock_diag.test); do not edit.
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests-m32/nlattr_inet_diag_msg.c b/tests-m32/nlattr_inet_diag_msg.c
new file mode 100644
index 0000000..d9d564c
--- /dev/null
+++ b/tests-m32/nlattr_inet_diag_msg.c
@@ -0,0 +1,198 @@
+/*
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@gmail.com>
+ * Copyright (c) 2017 The strace developers.
+ * 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 "tests.h"
+
+#include <stdio.h>
+#include <string.h>
+#include <arpa/inet.h>
+#include <net/if.h>
+#include <netinet/tcp.h>
+#include "test_nlattr.h"
+#include <linux/inet_diag.h>
+#include <linux/sock_diag.h>
+
+static const char address[] = "10.11.12.13";
+
+#ifdef HAVE_IF_INDEXTONAME
+# define IFINDEX_LO	(if_nametoindex("lo"))
+#else
+# define IFINDEX_LO	1
+#endif
+
+static void
+init_inet_diag_msg(struct nlmsghdr *const nlh, const unsigned int msg_len)
+{
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = msg_len,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+
+	struct inet_diag_msg *const msg = NLMSG_DATA(nlh);
+	SET_STRUCT(struct inet_diag_msg, msg,
+		.idiag_family = AF_INET,
+		.idiag_state = TCP_LISTEN,
+		.id.idiag_if = IFINDEX_LO
+	);
+
+	if (!inet_pton(AF_INET, address, msg->id.idiag_src) ||
+	    !inet_pton(AF_INET, address, msg->id.idiag_dst))
+		perror_msg_and_skip("inet_pton");
+}
+
+static void
+print_inet_diag_msg(const unsigned int msg_len)
+{
+	printf("{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {idiag_family=AF_INET"
+	       ", idiag_state=TCP_LISTEN, idiag_timer=0, idiag_retrans=0"
+	       ", id={idiag_sport=htons(0), idiag_dport=htons(0)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_src)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_dst)"
+	       ", idiag_if=if_nametoindex(\"lo\"), idiag_cookie=[0, 0]}"
+	       ", idiag_expires=0, idiag_rqueue=0, idiag_wqueue=0"
+	       ", idiag_uid=0, idiag_inode=0}",
+	       msg_len, address, address);
+}
+
+static void
+print_uint(const unsigned int *p)
+{
+	printf("%u", *p);
+}
+
+int
+main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
+	const unsigned int hdrlen = sizeof(struct inet_diag_msg);
+	void *const nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+
+	static char pattern[4096];
+	fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
+
+	static const struct inet_diag_meminfo minfo = {
+		.idiag_rmem = 0xfadcacdb,
+		.idiag_wmem = 0xbdabcada,
+		.idiag_fmem = 0xbadbfafb,
+		.idiag_tmem = 0xfdacdadf
+	};
+	TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+			   init_inet_diag_msg, print_inet_diag_msg,
+			   INET_DIAG_MEMINFO, pattern, minfo,
+			   PRINT_FIELD_U("{", minfo, idiag_rmem);
+			   PRINT_FIELD_U(", ", minfo, idiag_wmem);
+			   PRINT_FIELD_U(", ", minfo, idiag_fmem);
+			   PRINT_FIELD_U(", ", minfo, idiag_tmem);
+			   printf("}"));
+
+	static const struct tcpvegas_info vegas = {
+		.tcpv_enabled = 0xfadcacdb,
+		.tcpv_rttcnt = 0xbdabcada,
+		.tcpv_rtt = 0xbadbfafb,
+		.tcpv_minrtt = 0xfdacdadf
+	};
+	TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+			   init_inet_diag_msg, print_inet_diag_msg,
+			   INET_DIAG_VEGASINFO, pattern, vegas,
+			   PRINT_FIELD_U("{", vegas, tcpv_enabled);
+			   PRINT_FIELD_U(", ", vegas, tcpv_rttcnt);
+			   PRINT_FIELD_U(", ", vegas, tcpv_rtt);
+			   PRINT_FIELD_U(", ", vegas, tcpv_minrtt);
+			   printf("}"));
+
+
+	static const struct tcp_dctcp_info dctcp = {
+		.dctcp_enabled = 0xfdac,
+		.dctcp_ce_state = 0xfadc,
+		.dctcp_alpha = 0xbdabcada,
+		.dctcp_ab_ecn = 0xbadbfafb,
+		.dctcp_ab_tot = 0xfdacdadf
+	};
+	TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+			   init_inet_diag_msg, print_inet_diag_msg,
+			   INET_DIAG_DCTCPINFO, pattern, dctcp,
+			   PRINT_FIELD_U("{", dctcp, dctcp_enabled);
+			   PRINT_FIELD_U(", ", dctcp, dctcp_ce_state);
+			   PRINT_FIELD_U(", ", dctcp, dctcp_alpha);
+			   PRINT_FIELD_U(", ", dctcp, dctcp_ab_ecn);
+			   PRINT_FIELD_U(", ", dctcp, dctcp_ab_tot);
+			   printf("}"));
+
+	static const struct tcp_bbr_info bbr = {
+		.bbr_bw_lo = 0xfdacdadf,
+		.bbr_bw_hi = 0xfadcacdb,
+		.bbr_min_rtt = 0xbdabcada,
+		.bbr_pacing_gain = 0xbadbfafb,
+		.bbr_cwnd_gain = 0xfdacdadf
+	};
+	TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+			   init_inet_diag_msg, print_inet_diag_msg,
+			   INET_DIAG_BBRINFO, pattern, bbr,
+			   PRINT_FIELD_X("{", bbr, bbr_bw_lo);
+			   PRINT_FIELD_X(", ", bbr, bbr_bw_hi);
+			   PRINT_FIELD_U(", ", bbr, bbr_min_rtt);
+			   PRINT_FIELD_U(", ", bbr, bbr_pacing_gain);
+			   PRINT_FIELD_U(", ", bbr, bbr_cwnd_gain);
+			   printf("}"));
+
+	static const uint32_t mem[] = { 0xaffacbad, 0xffadbcab };
+	TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
+			  init_inet_diag_msg, print_inet_diag_msg,
+			  INET_DIAG_SKMEMINFO, pattern, mem, print_uint);
+
+	static const uint32_t mark = 0xabdfadca;
+	TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+			   init_inet_diag_msg, print_inet_diag_msg,
+			   INET_DIAG_MARK, pattern, mark,
+			   printf("%u", mark));
+
+	static const uint8_t shutdown = 0xcd;
+	TEST_NLATTR(fd, nlh0, hdrlen,
+		    init_inet_diag_msg, print_inet_diag_msg, INET_DIAG_SHUTDOWN,
+		    sizeof(shutdown), &shutdown, sizeof(shutdown),
+		    printf("%u", shutdown));
+
+	char *const str = tail_alloc(DEFAULT_STRLEN);
+	fill_memory_ex(str, DEFAULT_STRLEN, '0', 10);
+	TEST_NLATTR(fd, nlh0, hdrlen,
+		    init_inet_diag_msg, print_inet_diag_msg, INET_DIAG_CONG,
+		    DEFAULT_STRLEN, str, DEFAULT_STRLEN,
+		    printf("\"%.*s\"...", DEFAULT_STRLEN, str));
+	str[DEFAULT_STRLEN - 1] = '\0';
+	TEST_NLATTR(fd, nlh0, hdrlen,
+		    init_inet_diag_msg, print_inet_diag_msg, INET_DIAG_CONG,
+		    DEFAULT_STRLEN, str, DEFAULT_STRLEN,
+		    printf("\"%s\"", str));
+
+	puts("+++ exited with 0 +++");
+	return 0;
+}
diff --git a/tests-m32/nlattr_inet_diag_msg.gen.test b/tests-m32/nlattr_inet_diag_msg.gen.test
new file mode 100755
index 0000000..953a767
--- /dev/null
+++ b/tests-m32/nlattr_inet_diag_msg.gen.test
@@ -0,0 +1,3 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (nlattr_inet_diag_msg +netlink_sock_diag.test); do not edit.
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests-m32/nlattr_netlink_diag_msg.c b/tests-m32/nlattr_netlink_diag_msg.c
new file mode 100644
index 0000000..76a2d19
--- /dev/null
+++ b/tests-m32/nlattr_netlink_diag_msg.c
@@ -0,0 +1,118 @@
+/*
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@gmail.com>
+ * Copyright (c) 2017 The strace developers.
+ * 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 "tests.h"
+
+#include <stdio.h>
+#include <string.h>
+#include <stdint.h>
+#include "test_nlattr.h"
+#include <linux/netlink_diag.h>
+#include <linux/sock_diag.h>
+
+static void
+init_netlink_diag_msg(struct nlmsghdr *const nlh, const unsigned int msg_len)
+{
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = msg_len,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+
+	struct netlink_diag_msg *const msg = NLMSG_DATA(nlh);
+	SET_STRUCT(struct netlink_diag_msg, msg,
+		.ndiag_family = AF_NETLINK,
+		.ndiag_type = SOCK_RAW,
+		.ndiag_protocol = NETLINK_ROUTE,
+		.ndiag_state = NETLINK_CONNECTED
+	);
+}
+
+static void
+print_netlink_diag_msg(const unsigned int msg_len)
+{
+	printf("{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {ndiag_family=AF_NETLINK"
+	       ", ndiag_type=SOCK_RAW, ndiag_protocol=NETLINK_ROUTE"
+	       ", ndiag_state=NETLINK_CONNECTED, ndiag_portid=0"
+	       ", ndiag_dst_portid=0, ndiag_dst_group=0, ndiag_ino=0"
+	       ", ndiag_cookie=[0, 0]}",
+	       msg_len);
+}
+
+static void
+print_xlong(const unsigned long *p)
+{
+	printf("%#lx", *p);
+}
+
+int
+main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
+	const unsigned int hdrlen = sizeof(struct netlink_diag_msg);
+	void *const nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+
+	static char pattern[4096];
+	fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
+
+	static const unsigned long groups[] = {
+		(unsigned long) 0xdeadbeefbadc0dedULL,
+		(unsigned long) 0xdeadbeefbadc0dedULL
+	};
+	TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
+			  init_netlink_diag_msg, print_netlink_diag_msg,
+			  NETLINK_DIAG_GROUPS, pattern, groups, print_xlong);
+
+	static const struct netlink_diag_ring ndr = {
+		.ndr_block_size = 0xfabfabdc,
+		.ndr_block_nr = 0xabcdabda,
+		.ndr_frame_size = 0xcbadbafa,
+		.ndr_frame_nr = 0xdbcafadb
+	};
+	TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+			   init_netlink_diag_msg, print_netlink_diag_msg,
+			   NETLINK_DIAG_RX_RING, pattern, ndr,
+			   PRINT_FIELD_U("{", ndr, ndr_block_size);
+			   PRINT_FIELD_U(", ", ndr, ndr_block_nr);
+			   PRINT_FIELD_U(", ", ndr, ndr_frame_size);
+			   PRINT_FIELD_U(", ", ndr, ndr_frame_nr);
+			   printf("}"));
+
+	static const uint32_t flags =
+		NDIAG_FLAG_CB_RUNNING | NDIAG_FLAG_PKTINFO;
+	TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+			   init_netlink_diag_msg, print_netlink_diag_msg,
+			   NETLINK_DIAG_FLAGS, pattern, flags,
+			   printf("NDIAG_FLAG_CB_RUNNING|NDIAG_FLAG_PKTINFO"));
+
+	puts("+++ exited with 0 +++");
+	return 0;
+}
diff --git a/tests-m32/nlattr_netlink_diag_msg.gen.test b/tests-m32/nlattr_netlink_diag_msg.gen.test
new file mode 100755
index 0000000..aa6aabf
--- /dev/null
+++ b/tests-m32/nlattr_netlink_diag_msg.gen.test
@@ -0,0 +1,3 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (nlattr_netlink_diag_msg +netlink_sock_diag.test); do not edit.
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests-m32/nlattr_unix_diag_msg.c b/tests-m32/nlattr_unix_diag_msg.c
new file mode 100644
index 0000000..2295404
--- /dev/null
+++ b/tests-m32/nlattr_unix_diag_msg.c
@@ -0,0 +1,116 @@
+/*
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@gmail.com>
+ * Copyright (c) 2017 The strace developers.
+ * 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 "tests.h"
+
+#include <stdio.h>
+#include <string.h>
+#include <stdint.h>
+#include <sys/sysmacros.h>
+#include <netinet/tcp.h>
+#include "test_nlattr.h"
+#include <linux/sock_diag.h>
+#include <linux/unix_diag.h>
+
+static void
+init_unix_diag_msg(struct nlmsghdr *const nlh, const unsigned int msg_len)
+{
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = msg_len,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+
+	struct unix_diag_msg *const msg = NLMSG_DATA(nlh);
+	SET_STRUCT(struct unix_diag_msg, msg,
+		.udiag_family = AF_UNIX,
+		.udiag_type = SOCK_STREAM,
+		.udiag_state = TCP_ESTABLISHED
+	);
+}
+
+static void
+print_unix_diag_msg(const unsigned int msg_len)
+{
+	printf("{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_ESTABLISHED"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}",
+	       msg_len);
+}
+
+static void
+print_uint(const unsigned int *p)
+{
+	printf("%u", *p);
+}
+
+int
+main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
+	const unsigned int hdrlen = sizeof(struct unix_diag_msg);
+	void *const nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+
+	static char pattern[4096];
+	fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
+
+	static const struct unix_diag_vfs uv = {
+		.udiag_vfs_dev = 0xabcddafa,
+		.udiag_vfs_ino = 0xbafabcda
+	};
+	TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+			   init_unix_diag_msg, print_unix_diag_msg,
+			   UNIX_DIAG_VFS, pattern, uv,
+			   printf("{udiag_vfs_dev=makedev(%u, %u)",
+				  major(uv.udiag_vfs_dev),
+				  minor(uv.udiag_vfs_dev));
+			   PRINT_FIELD_U(", ", uv, udiag_vfs_ino);
+			   printf("}"));
+
+	static const struct unix_diag_rqlen rql = {
+		.udiag_rqueue = 0xfabdcdad,
+		.udiag_wqueue = 0xbacdadcf
+	};
+	TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+			   init_unix_diag_msg, print_unix_diag_msg,
+			   UNIX_DIAG_RQLEN, pattern, rql,
+			   PRINT_FIELD_U("{", rql, udiag_rqueue);
+			   PRINT_FIELD_U(", ", rql, udiag_wqueue);
+			   printf("}"));
+
+	static const uint32_t inode[] = { 0xadbcadbc, 0xfabdcdac };
+	TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
+			  init_unix_diag_msg, print_unix_diag_msg,
+			  UNIX_DIAG_ICONS, pattern, inode, print_uint);
+
+	puts("+++ exited with 0 +++");
+	return 0;
+}
diff --git a/tests-m32/nlattr_unix_diag_msg.gen.test b/tests-m32/nlattr_unix_diag_msg.gen.test
new file mode 100755
index 0000000..d913afc
--- /dev/null
+++ b/tests-m32/nlattr_unix_diag_msg.gen.test
@@ -0,0 +1,3 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (nlattr_unix_diag_msg +netlink_sock_diag.test); do not edit.
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests-m32/nsyscalls.c b/tests-m32/nsyscalls.c
index 7fda5ba..d6b989c 100644
--- a/tests-m32/nsyscalls.c
+++ b/tests-m32/nsyscalls.c
@@ -54,7 +54,7 @@
 #define SI 0
 #define SE 0
 #define CST 0
-#define SEN(arg) 0,0
+#define SEN(arg) 0, 0
 
 static const struct_sysent syscallent[] = {
 #include "syscallent.h"
diff --git a/tests-m32/options-syntax.test b/tests-m32/options-syntax.test
index 4c778b3..7cfc579 100755
--- a/tests-m32/options-syntax.test
+++ b/tests-m32/options-syntax.test
@@ -127,8 +127,20 @@
 check_h "invalid -a argument: '-42'" -a -42
 check_h "invalid -O argument: '-42'" -O -42
 check_h "invalid -s argument: '-42'" -s -42
+check_h "invalid -s argument: '1073741824'" -s 1073741824
 check_h "invalid -I argument: '5'" -I 5
 
+cat > "$EXP" << '__EOF__'
+strace: must have PROG [ARGS] or -p PID
+Try 'strace -h' for more information.
+__EOF__
+../zeroargc "$strace_exp" /bin/true 2> "$LOG" &&
+	dump_log_and_fail_with \
+		'zeroargc strace failed to handle the error properly'
+match_diff "$LOG" "$EXP" ||
+	dump_log_and_fail_with \
+		'zeroargc strace failed to print expected diagnostics'
+
 if [ -n "${UID-}" ]; then
 	if [ "${UID-}" = 0 ]; then
 		umsg="Cannot find user ':nosuchuser:'"
diff --git a/tests-m32/perf_event_open.c b/tests-m32/perf_event_open.c
index 3f544a6..74ff952 100644
--- a/tests-m32/perf_event_open.c
+++ b/tests-m32/perf_event_open.c
@@ -73,36 +73,36 @@
 	const char *str;
 };
 
-/* In order to avoid endianess-specific hackery */
+/* In order to avoid endianness-specific hackery. */
 struct pea_flags {
-	uint64_t disabled                 :1,
-	         inherit                  :1,
-	         pinned                   :1,
-	         exclusive                :1,
-	         exclude_user             :1,
-	         exclude_kernel           :1,
-	         exclude_hv               :1,
-	         exclude_idle             :1,
-	         mmap                     :1,
-	         comm                     :1,
-	         freq                     :1,
-	         inherit_stat             :1,
-	         enable_on_exec           :1,
-	         task                     :1,
-	         watermark                :1,
-	         precise_ip               :2,
-	         mmap_data                :1,
-	         sample_id_all            :1,
-	         exclude_host             :1,
-	         exclude_guest            :1,
-	         exclude_callchain_kernel :1,
-	         exclude_callchain_user   :1,
-	         mmap2                    :1,
-	         comm_exec                :1,
-	         use_clockid              :1,
-	         context_switch           :1,
-	         write_backward           :1,
-	         __reserved_1             :36;
+	uint64_t disabled			:1,
+		 inherit			:1,
+		 pinned				:1,
+		 exclusive			:1,
+		 exclude_user			:1,
+		 exclude_kernel			:1,
+		 exclude_hv			:1,
+		 exclude_idle			:1,
+		 mmap				:1,
+		 comm				:1,
+		 freq				:1,
+		 inherit_stat			:1,
+		 enable_on_exec			:1,
+		 task				:1,
+		 watermark			:1,
+		 precise_ip			:2,
+		 mmap_data			:1,
+		 sample_id_all			:1,
+		 exclude_host			:1,
+		 exclude_guest			:1,
+		 exclude_callchain_kernel	:1,
+		 exclude_callchain_user		:1,
+		 mmap2				:1,
+		 comm_exec			:1,
+		 use_clockid			:1,
+		 context_switch			:1,
+		 write_backward			:1,
+		 __reserved_1			:36;
 };
 
 static const char *
@@ -458,7 +458,7 @@
 
 	/* End of version 4 of the structure */
 	if (size <= 104) {
-		cutoff =104;
+		cutoff = 104;
 		goto end;
 	}
 
@@ -471,7 +471,7 @@
 	printf(", aux_watermark=%" PRIu32, (uint32_t) val);
 
 	if (size <= 108) {
-		cutoff =108;
+		cutoff = 108;
 		goto end;
 	}
 
@@ -484,7 +484,7 @@
 	printf(", sample_max_stack=%" PRIu16, (uint16_t) val);
 
 	if (size <= 110) {
-		cutoff =110;
+		cutoff = 110;
 		goto end;
 	}
 
@@ -718,7 +718,7 @@
 
 	for (i = 0; i < ARRAY_SIZE(args); i++) {
 		rc = syscall(__NR_perf_event_open, args[i].attr, args[i].pid,
-		             args[i].cpu, args[i].group_fd, args[i].flags);
+			     args[i].cpu, args[i].group_fd, args[i].flags);
 		printf("perf_event_open(%s, %d, %d, %d, %s) = %s\n",
 		       printaddr(args[i].attr), args[i].pid, args[i].cpu,
 		       args[i].group_fd, args[i].flags_str, sprintrc(rc));
@@ -793,19 +793,19 @@
 			attr->size = 0;
 
 		rc = syscall(__NR_perf_event_open, attr, args[args_idx].pid,
-		             args[args_idx].cpu, args[args_idx].group_fd,
-		             args[args_idx].flags);
+			     args[args_idx].cpu, args[args_idx].group_fd,
+			     args[args_idx].flags);
 
 		printf("perf_event_open(");
 		print_event_attr(attr, i ? ((i == 1) ? 0 : size) : size + 8,
-		                 attr_types[type_idx].str,
-		                 attr_configs[type_idx][config_idx].str,
-		                 sample_types[sample_type_idx].str,
-		                 read_formats[read_format_idx].str,
-		                 ip_desc_str,
-		                 bp_types[bp_type_idx].str,
-		                 branch_sample_types[branch_sample_type_idx].str,
-		                 clockids[clockid_idx].str, size);
+				 attr_types[type_idx].str,
+				 attr_configs[type_idx][config_idx].str,
+				 sample_types[sample_type_idx].str,
+				 read_formats[read_format_idx].str,
+				 ip_desc_str,
+				 bp_types[bp_type_idx].str,
+				 branch_sample_types[branch_sample_type_idx].str,
+				 clockids[clockid_idx].str, size);
 		printf(", %d, %d, %d, %s) = %s\n", args[args_idx].pid,
 		       args[args_idx].cpu, args[args_idx].group_fd,
 		       args[args_idx].flags_str, sprintrc(rc));
diff --git a/tests-m32/poll.c b/tests-m32/poll.c
index c47c97e..af66e53 100644
--- a/tests-m32/poll.c
+++ b/tests-m32/poll.c
@@ -39,13 +39,15 @@
 # include <stdlib.h>
 # include <unistd.h>
 
-#define PRINT_EVENT(flag, member) \
-	if (member & flag) { \
-		if (member != pfd->member) \
-			tprintf("|"); \
-		tprintf(#flag); \
-		member &= ~flag; \
-	}
+#define PRINT_EVENT(flag, member)			\
+	do {						\
+		if (member & flag) {			\
+			if (member != pfd->member)	\
+				tprintf("|");		\
+			tprintf(#flag);			\
+			member &= ~flag;		\
+		}					\
+	} while (0)
 
 static void
 print_pollfd_entering(const struct pollfd *const pfd)
@@ -56,24 +58,24 @@
 		short events = pfd->events;
 
 		if (pfd->events) {
-			PRINT_EVENT(POLLIN, events)
-			PRINT_EVENT(POLLPRI, events)
-			PRINT_EVENT(POLLOUT, events)
+			PRINT_EVENT(POLLIN, events);
+			PRINT_EVENT(POLLPRI, events);
+			PRINT_EVENT(POLLOUT, events);
 #ifdef POLLRDNORM
-			PRINT_EVENT(POLLRDNORM, events)
+			PRINT_EVENT(POLLRDNORM, events);
 #endif
 #ifdef POLLWRNORM
-			PRINT_EVENT(POLLWRNORM, events)
+			PRINT_EVENT(POLLWRNORM, events);
 #endif
 #ifdef POLLRDBAND
-			PRINT_EVENT(POLLRDBAND, events)
+			PRINT_EVENT(POLLRDBAND, events);
 #endif
 #ifdef POLLWRBAND
-			PRINT_EVENT(POLLWRBAND, events)
+			PRINT_EVENT(POLLWRBAND, events);
 #endif
-			PRINT_EVENT(POLLERR, events)
-			PRINT_EVENT(POLLHUP, events)
-			PRINT_EVENT(POLLNVAL, events)
+			PRINT_EVENT(POLLERR, events);
+			PRINT_EVENT(POLLHUP, events);
+			PRINT_EVENT(POLLNVAL, events);
 		} else
 			tprintf("0");
 	}
@@ -123,24 +125,24 @@
 	tprintf("{fd=%d, revents=", pfd->fd);
 	short revents = pfd->revents;
 
-	PRINT_EVENT(POLLIN, revents)
-	PRINT_EVENT(POLLPRI, revents)
-	PRINT_EVENT(POLLOUT, revents)
+	PRINT_EVENT(POLLIN, revents);
+	PRINT_EVENT(POLLPRI, revents);
+	PRINT_EVENT(POLLOUT, revents);
 #ifdef POLLRDNORM
-	PRINT_EVENT(POLLRDNORM, revents)
+	PRINT_EVENT(POLLRDNORM, revents);
 #endif
 #ifdef POLLWRNORM
-	PRINT_EVENT(POLLWRNORM, revents)
+	PRINT_EVENT(POLLWRNORM, revents);
 #endif
 #ifdef POLLRDBAND
-	PRINT_EVENT(POLLRDBAND, revents)
+	PRINT_EVENT(POLLRDBAND, revents);
 #endif
 #ifdef POLLWRBAND
-	PRINT_EVENT(POLLWRBAND, revents)
+	PRINT_EVENT(POLLWRBAND, revents);
 #endif
-	PRINT_EVENT(POLLERR, revents)
-	PRINT_EVENT(POLLHUP, revents)
-	PRINT_EVENT(POLLNVAL, revents)
+	PRINT_EVENT(POLLERR, revents);
+	PRINT_EVENT(POLLHUP, revents);
+	PRINT_EVENT(POLLNVAL, revents);
 	tprintf("}");
 }
 
@@ -192,7 +194,8 @@
 	tprintf("poll(");
 	print_pollfd_array_entering(tail_fds0, ARRAY_SIZE(pfds0),
 				    ARRAY_SIZE(pfds0), abbrev);
-	tprintf(", %u, %d) = %d (", ARRAY_SIZE(pfds0), timeout, rc);
+	tprintf(", %u, %d) = %d (",
+		(unsigned int) ARRAY_SIZE(pfds0), timeout, rc);
 	print_pollfd_array_exiting(tail_fds0, ARRAY_SIZE(pfds0), abbrev);
 	tprintf(")\n");
 
@@ -205,7 +208,8 @@
 	tprintf("poll(");
 	print_pollfd_array_entering(tail_fds0, ARRAY_SIZE(pfds0),
 				    ARRAY_SIZE(pfds0), abbrev);
-	tprintf(", %u, %d) = %d (", ARRAY_SIZE(pfds0), timeout, rc);
+	tprintf(", %u, %d) = %d (",
+		(unsigned int) ARRAY_SIZE(pfds0), timeout, rc);
 	print_pollfd_array_exiting(tail_fds0, ARRAY_SIZE(pfds0), abbrev);
 	tprintf(")\n");
 
@@ -217,7 +221,8 @@
 	tprintf("poll(");
 	print_pollfd_array_entering(tail_fds0, ARRAY_SIZE(pfds0),
 				    ARRAY_SIZE(pfds0), abbrev);
-	tprintf(", %u, %d) = %d (", ARRAY_SIZE(pfds0), timeout, rc);
+	tprintf(", %u, %d) = %d (",
+		(unsigned int) ARRAY_SIZE(pfds0), timeout, rc);
 	print_pollfd_array_exiting(tail_fds0, ARRAY_SIZE(pfds0), abbrev);
 	tprintf(")\n");
 
@@ -232,7 +237,8 @@
 	tprintf("poll(");
 	print_pollfd_array_entering(tail_fds1, ARRAY_SIZE(pfds1),
 				    ARRAY_SIZE(pfds1), abbrev);
-	tprintf(", %u, %d) = %d (Timeout)\n", ARRAY_SIZE(pfds1), timeout, rc);
+	tprintf(", %u, %d) = %d (Timeout)\n",
+		(unsigned int) ARRAY_SIZE(pfds1), timeout, rc);
 
 	const void *const efault = tail_fds0 + ARRAY_SIZE(pfds0);
 	rc = syscall(__NR_poll, efault, 1, 0);
diff --git a/tests-m32/ppoll.c b/tests-m32/ppoll.c
index 85a7e0c..6224183 100644
--- a/tests-m32/ppoll.c
+++ b/tests-m32/ppoll.c
@@ -138,9 +138,10 @@
 #if VERBOSE
 	       pipe_fd[2], pipe_fd[3],
 #endif
-	       (unsigned) ARRAY_SIZE(fds1), USR2_CHLD_str,
-	       (unsigned) sigset_size, rc, pipe_fd[1], POLLWRNORM_str,
-	       pipe_fd[3], (unsigned ) ts->tv_sec, (unsigned) ts->tv_nsec);
+	       (unsigned int) ARRAY_SIZE(fds1), USR2_CHLD_str,
+	       (unsigned int) sigset_size, rc, pipe_fd[1], POLLWRNORM_str,
+	       pipe_fd[3], (unsigned int) ts->tv_sec,
+	       (unsigned int) ts->tv_nsec);
 
 	ts->tv_sec = 0;
 	ts->tv_nsec = 999;
diff --git a/tests-m32/preadv-pwritev.c b/tests-m32/preadv-pwritev.c
index b2d2a82..ddbd47f 100644
--- a/tests-m32/preadv-pwritev.c
+++ b/tests-m32/preadv-pwritev.c
@@ -121,7 +121,7 @@
 		" * %u bytes in buffer 2\n"
 		" | 00000 %-49s  %-16s |\n",
 		w0_c, LENGTH_OF(w0_c), w1_c, LENGTH_OF(w1_c),
-		w2_c, LENGTH_OF(w2_c), ARRAY_SIZE(w_iov_), w_len,
+		w2_c, LENGTH_OF(w2_c), (unsigned int) ARRAY_SIZE(w_iov_), w_len,
 		LENGTH_OF(w0_c), w0_d, w0_c,
 		LENGTH_OF(w1_c), w1_d, w1_c, LENGTH_OF(w2_c), w2_d, w2_c);
 
@@ -142,7 +142,8 @@
 	tprintf("preadv(0, [{iov_base=\"%s\", iov_len=%u}], %u, 0) = %u\n"
 		" * %u bytes in buffer 0\n"
 		" | 00000 %-49s  %-16s |\n",
-		r0_c, r_len, ARRAY_SIZE(r0_iov_), r_len, r_len, r0_d, r0_c);
+		r0_c, r_len, (unsigned int) ARRAY_SIZE(r0_iov_),
+		r_len, r_len, r0_d, r0_c);
 
 	void *r1 = tail_alloc(r_len);
 	void *r2 = tail_alloc(w_len);
@@ -166,7 +167,7 @@
 		", {iov_base=\"\", iov_len=%u}], %u, %u) = %u\n"
 		" * %u bytes in buffer 0\n"
 		" | 00000 %-49s  %-16s |\n",
-		r1_c, r_len, w_len, ARRAY_SIZE(r1_iov_),
+		r1_c, r_len, w_len, (unsigned int) ARRAY_SIZE(r1_iov_),
 		r_len, w_len - r_len,
 		w_len - r_len, r1_d, r1_c);
 	close(0);
diff --git a/tests-m32/preadv.c b/tests-m32/preadv.c
index a55909b..d5ad84f 100644
--- a/tests-m32/preadv.c
+++ b/tests-m32/preadv.c
@@ -125,7 +125,7 @@
 		perror_msg_and_fail("preadv: expected %u, returned %ld",
 				    r_len, rc);
 	printf("preadv(%d, [{iov_base=\"%s\", iov_len=%u}], %u, 0) = %u\n",
-	       fd, r0_c, r_len, ARRAY_SIZE(r0_iov_), r_len);
+	       fd, r0_c, r_len, (unsigned int) ARRAY_SIZE(r0_iov_), r_len);
 
 	void *r1 = tail_alloc(r_len);
 	void *r2 = tail_alloc(LENGTH_OF(w));
@@ -147,8 +147,9 @@
 				    (int) LENGTH_OF(w) - r_len, rc);
 	printf("preadv(%d, [{iov_base=\"%s\", iov_len=%u}"
 	       ", {iov_base=\"\", iov_len=%u}], %u, %u) = %u\n",
-	       fd, r1_c, r_len, LENGTH_OF(w), ARRAY_SIZE(r1_iov_),
-		r_len, LENGTH_OF(w) - r_len);
+	       fd, r1_c, r_len, LENGTH_OF(w),
+	       (unsigned int) ARRAY_SIZE(r1_iov_),
+	       r_len, LENGTH_OF(w) - r_len);
 
 	puts("+++ exited with 0 +++");
 	return 0;
diff --git a/tests-m32/preadv2-pwritev2.c b/tests-m32/preadv2-pwritev2.c
index e31e046..89f37dd 100644
--- a/tests-m32/preadv2-pwritev2.c
+++ b/tests-m32/preadv2-pwritev2.c
@@ -127,7 +127,7 @@
 		" * %u bytes in buffer 2\n"
 		" | 00000 %-49s  %-16s |\n",
 		w0_c, LENGTH_OF(w0_c), w1_c, LENGTH_OF(w1_c),
-		w2_c, LENGTH_OF(w2_c), ARRAY_SIZE(w_iov_), w_len,
+		w2_c, LENGTH_OF(w2_c), (unsigned int) ARRAY_SIZE(w_iov_), w_len,
 		LENGTH_OF(w0_c), w0_d, w0_c,
 		LENGTH_OF(w1_c), w1_d, w1_c, LENGTH_OF(w2_c), w2_d, w2_c);
 
@@ -148,7 +148,8 @@
 	tprintf("preadv2(0, [{iov_base=\"%s\", iov_len=%u}], %u, 0, 0) = %u\n"
 		" * %u bytes in buffer 0\n"
 		" | 00000 %-49s  %-16s |\n",
-		r0_c, r_len, ARRAY_SIZE(r0_iov_), r_len, r_len, r0_d, r0_c);
+		r0_c, r_len, (unsigned int) ARRAY_SIZE(r0_iov_),
+		r_len, r_len, r0_d, r0_c);
 
 	void *r1 = tail_alloc(r_len);
 	void *r2 = tail_alloc(w_len);
@@ -172,7 +173,7 @@
 		", {iov_base=\"\", iov_len=%u}], %u, %u, 0) = %u\n"
 		" * %u bytes in buffer 0\n"
 		" | 00000 %-49s  %-16s |\n",
-		r1_c, r_len, w_len, ARRAY_SIZE(r1_iov_),
+		r1_c, r_len, w_len, (unsigned int) ARRAY_SIZE(r1_iov_),
 		r_len, w_len - r_len,
 		w_len - r_len, r1_d, r1_c);
 	close(0);
diff --git a/tests-m32/print_quoted_string.c b/tests-m32/print_quoted_string.c
index 3ad8602..732fe3d 100644
--- a/tests-m32/print_quoted_string.c
+++ b/tests-m32/print_quoted_string.c
@@ -18,7 +18,7 @@
 void
 print_quoted_memory(const char *instr, const size_t len)
 {
-	const unsigned char *str = (const unsigned char*) instr;
+	const unsigned char *str = (const unsigned char *) instr;
 	size_t i;
 
 	for (i = 0; i < len; ++i) {
diff --git a/tests-m32/print_time.c b/tests-m32/print_time.c
index 4292329..e259242 100644
--- a/tests-m32/print_time.c
+++ b/tests-m32/print_time.c
@@ -58,8 +58,6 @@
 
 	if (comment)
 		fputs(" */", stdout);
-
-	return;
 }
 
 void
diff --git a/tests-m32/printstr.c b/tests-m32/printstr.c
index 330234f..8e22681 100644
--- a/tests-m32/printstr.c
+++ b/tests-m32/printstr.c
@@ -34,13 +34,11 @@
 #include <unistd.h>
 #include <sys/uio.h>
 
-#define DEFAULT_STRLEN 32
-
 int
 main(void)
 {
 	char *const buf = tail_alloc(DEFAULT_STRLEN + 1);
-	const struct iovec io = {
+	struct iovec io = {
 		.iov_base = buf,
 		.iov_len = -1
 	};
@@ -64,6 +62,11 @@
 	tprintf("writev(-1, [{iov_base=\"\\0%*s\"..., iov_len=%lu}], 1)"
 		" = %s\n", DEFAULT_STRLEN - 1, buf + 1, -1UL, sprintrc(rc));
 
+	++io.iov_base;
+	rc = writev(-1, &io, 1);
+	tprintf("writev(-1, [{iov_base=%p, iov_len=%lu}], 1) = %s\n",
+		io.iov_base, -1UL, sprintrc(rc));
+
 	tprintf("+++ exited with 0 +++\n");
 	return 0;
 }
diff --git a/tests-m32/process_vm_readv_writev.c b/tests-m32/process_vm_readv_writev.c
index 2a08939..c0f9c31 100644
--- a/tests-m32/process_vm_readv_writev.c
+++ b/tests-m32/process_vm_readv_writev.c
@@ -51,7 +51,7 @@
 struct print_iov_arg {
 	uint32_t count;
 	uint32_t valid    :1,
-	         string   :1,
+		 string   :1,
 		 addr_term:1,
 		 check_rc :1;
 	uint32_t str_segms;
@@ -247,14 +247,15 @@
 		2, {SEGM1_BASE, SEGM2_BASE}, {SIZE_1, SIZE_2} };
 	struct print_iov_arg rmt_arg     = { ARRAY_SIZE(rmt_iovec), 1 };
 
-	struct print_iov_arg bogus_arg_cut =
-		{ ARRAY_SIZE(bogus_iovec) - 2, 1, 0, 1 };
-	struct print_iov_arg lcl_arg_cut =
-		{ ARRAY_SIZE(lcl_iovec) - 2, 1, 1, 1, 0, 2,
-			{SEGM1_BASE + SIZE_11 + SIZE_12, SEGM2_BASE},
-			{SIZE_13, SIZE_2} };
-	struct print_iov_arg rmt_arg_cut =
-		{ ARRAY_SIZE(rmt_iovec) - 2, 1 };
+	struct print_iov_arg bogus_arg_cut = {
+		ARRAY_SIZE(bogus_iovec) - 2, 1, 0, 1
+	};
+	struct print_iov_arg lcl_arg_cut = {
+		ARRAY_SIZE(lcl_iovec) - 2, 1, 1, 1, 0, 2,
+		{ SEGM1_BASE + SIZE_11 + SIZE_12, SEGM2_BASE },
+		{SIZE_13, SIZE_2}
+	};
+	struct print_iov_arg rmt_arg_cut = { ARRAY_SIZE(rmt_iovec) - 2, 1 };
 
 
 	fill_memory_ex(data1_out, SIZE_1, SEGM1_BASE, SIZE_1);
diff --git a/tests-m32/pselect6.c b/tests-m32/pselect6.c
index f5939f3..0729808 100644
--- a/tests-m32/pselect6.c
+++ b/tests-m32/pselect6.c
@@ -109,7 +109,7 @@
 	 * but with a pointer to a large chunk of valid memory.
 	 */
 	FD_ZERO(set[0]);
-	FD_SET(fds[1],set[0]);
+	FD_SET(fds[1], set[0]);
 	assert(pselect(-1, NULL, set[0], NULL, NULL, &mask) == -1);
 	printf("pselect6(-1, NULL, %p, NULL, NULL, {[HUP CHLD], %u}) "
 	       "= -1 EINVAL (%m)\n", set[0], NSIG_BYTES);
@@ -118,7 +118,7 @@
 	 * Another variant, with nfds exceeding FD_SETSIZE limit.
 	 */
 	FD_ZERO(set[0]);
-	FD_SET(fds[0],set[0]);
+	FD_SET(fds[0], set[0]);
 	FD_ZERO(set[1]);
 	tm.ts.tv_sec = 0;
 	tm.ts.tv_nsec = 123;
diff --git a/tests-m32/ptrace.c b/tests-m32/ptrace.c
index 9e0ffdc..d776dcd 100644
--- a/tests-m32/ptrace.c
+++ b/tests-m32/ptrace.c
@@ -114,7 +114,7 @@
 			if (errno == EINTR)
 				continue;
 			saved = errno;
-			kill (pid, SIGKILL);
+			kill(pid, SIGKILL);
 			errno = saved;
 			perror_msg_and_fail("wait");
 		}
@@ -159,7 +159,7 @@
 
 		if (do_ptrace(PTRACE_CONT, pid, 0, 0)) {
 			saved = errno;
-			kill (pid, SIGKILL);
+			kill(pid, SIGKILL);
 			errno = saved;
 			perror_msg_and_fail("ptrace");
 		}
diff --git a/tests-m32/pure_executables.am b/tests-m32/pure_executables.am
new file mode 100644
index 0000000..8563488
--- /dev/null
+++ b/tests-m32/pure_executables.am
@@ -0,0 +1,347 @@
+# Generated by ./tests/gen_pure_executables.sh from ./tests/pure_executables.list; do not edit.
+PURE_EXECUTABLES = \
+  _newselect \
+  accept \
+  accept4 \
+  access \
+  acct \
+  add_key \
+  adjtimex \
+  aio \
+  alarm \
+  bpf \
+  brk \
+  btrfs \
+  caps \
+  chmod \
+  chown \
+  chown32 \
+  chroot \
+  clock_adjtime \
+  clock_nanosleep \
+  clock_xettime \
+  copy_file_range \
+  creat \
+  delete_module \
+  dup \
+  dup2 \
+  dup3 \
+  epoll_create \
+  epoll_create1 \
+  epoll_ctl \
+  epoll_pwait \
+  epoll_wait \
+  erestartsys \
+  eventfd \
+  execve \
+  execveat \
+  faccessat \
+  fadvise64 \
+  fadvise64_64 \
+  fallocate \
+  fanotify_init \
+  fanotify_mark \
+  fchdir \
+  fchmod \
+  fchmodat \
+  fchown \
+  fchown32 \
+  fchownat \
+  fcntl \
+  fcntl64 \
+  fdatasync \
+  file_handle \
+  file_ioctl \
+  finit_module \
+  flock \
+  fstat \
+  fstat64 \
+  fstatat64 \
+  fstatfs \
+  fstatfs64 \
+  fsync \
+  ftruncate \
+  ftruncate64 \
+  futex \
+  futimesat \
+  get_mempolicy \
+  getcpu \
+  getcwd \
+  getdents \
+  getdents64 \
+  getegid \
+  getegid32 \
+  geteuid \
+  geteuid32 \
+  getgid \
+  getgid32 \
+  getgroups \
+  getgroups32 \
+  getpeername \
+  getpgrp \
+  getpid \
+  getppid \
+  getrandom \
+  getresgid \
+  getresgid32 \
+  getresuid \
+  getresuid32 \
+  getrlimit \
+  getrusage \
+  getsid \
+  getsockname \
+  getuid \
+  getuid32 \
+  getxxid \
+  inet-cmsg \
+  init_module \
+  inotify \
+  inotify_init1 \
+  ioctl \
+  ioctl_block \
+  ioctl_dm \
+  ioctl_evdev \
+  ioctl_loop \
+  ioctl_mtd \
+  ioctl_rtc \
+  ioctl_scsi \
+  ioctl_sg_io_v3 \
+  ioctl_sg_io_v4 \
+  ioctl_sock_gifconf \
+  ioctl_uffdio \
+  ioctl_v4l2 \
+  ioperm \
+  iopl \
+  ioprio \
+  ip_mreq \
+  ipc \
+  ipc_msg \
+  ipc_msgbuf \
+  ipc_sem \
+  ipc_shm \
+  kcmp \
+  kexec_file_load \
+  kexec_load \
+  keyctl \
+  kill \
+  lchown \
+  lchown32 \
+  link \
+  linkat \
+  llseek \
+  lookup_dcookie \
+  lseek \
+  lstat \
+  lstat64 \
+  madvise \
+  mbind \
+  membarrier \
+  memfd_create \
+  migrate_pages \
+  mincore \
+  mkdir \
+  mkdirat \
+  mknod \
+  mknodat \
+  mlock \
+  mlock2 \
+  mlockall \
+  mmap \
+  mmap64 \
+  mmsg \
+  mmsg_name \
+  mount \
+  move_pages \
+  mq \
+  mq_sendrecv \
+  mq_sendrecv-read \
+  mq_sendrecv-write \
+  msg_control \
+  msg_name \
+  munlockall \
+  nanosleep \
+  net-icmp_filter \
+  net-sockaddr \
+  net-y-unix \
+  net-yy-inet \
+  net-yy-netlink \
+  net-yy-unix \
+  netlink_audit \
+  netlink_generic \
+  netlink_netfilter \
+  netlink_protocol \
+  netlink_route \
+  netlink_selinux \
+  netlink_sock_diag \
+  netlink_xfrm \
+  newfstatat \
+  nlattr \
+  nlattr_inet_diag_msg \
+  nlattr_netlink_diag_msg \
+  nlattr_unix_diag_msg \
+  old_mmap \
+  oldfstat \
+  oldlstat \
+  oldselect \
+  oldstat \
+  open \
+  openat \
+  osf_utimes \
+  pause \
+  perf_event_open \
+  personality \
+  pipe \
+  pipe2 \
+  pkey_alloc \
+  pkey_free \
+  pkey_mprotect \
+  poll \
+  ppoll \
+  prctl-arg2-intptr \
+  prctl-dumpable \
+  prctl-name \
+  prctl-no-args \
+  prctl-pdeathsig \
+  prctl-securebits \
+  prctl-tid_address \
+  prctl-tsc \
+  pread64-pwrite64 \
+  preadv \
+  preadv-pwritev \
+  preadv2-pwritev2 \
+  printstr \
+  prlimit64 \
+  process_vm_readv \
+  process_vm_writev \
+  pselect6 \
+  ptrace \
+  pwritev \
+  quotactl \
+  quotactl-xfs \
+  read-write \
+  readahead \
+  readdir \
+  readlink \
+  readlinkat \
+  readv \
+  reboot \
+  recvfrom \
+  recvmmsg-timeout \
+  recvmsg \
+  remap_file_pages \
+  rename \
+  renameat \
+  renameat2 \
+  request_key \
+  rmdir \
+  rt_sigaction \
+  rt_sigpending \
+  rt_sigprocmask \
+  rt_sigqueueinfo \
+  rt_sigreturn \
+  rt_sigsuspend \
+  rt_sigtimedwait \
+  rt_tgsigqueueinfo \
+  sched_get_priority_mxx \
+  sched_rr_get_interval \
+  sched_xetaffinity \
+  sched_xetattr \
+  sched_xetparam \
+  sched_xetscheduler \
+  sched_yield \
+  seccomp-filter \
+  select \
+  semop \
+  sendfile \
+  sendfile64 \
+  set_mempolicy \
+  setdomainname \
+  setfsgid \
+  setfsgid32 \
+  setfsuid \
+  setfsuid32 \
+  setgid \
+  setgid32 \
+  setgroups \
+  setgroups32 \
+  sethostname \
+  setns \
+  setregid \
+  setregid32 \
+  setresgid \
+  setresgid32 \
+  setresuid \
+  setresuid32 \
+  setreuid \
+  setreuid32 \
+  setrlimit \
+  setuid \
+  setuid32 \
+  shmxt \
+  shutdown \
+  sigaction \
+  sigaltstack \
+  siginfo \
+  signal \
+  signalfd4 \
+  sigpending \
+  sigprocmask \
+  sigreturn \
+  sigsuspend \
+  socketcall \
+  splice \
+  stat \
+  stat64 \
+  statfs \
+  statfs64 \
+  statx \
+  swap \
+  sxetmask \
+  symlink \
+  symlinkat \
+  sync \
+  sync_file_range \
+  sync_file_range2 \
+  sysinfo \
+  syslog \
+  tee \
+  time \
+  timer_create \
+  timer_xettime \
+  timerfd_xettime \
+  times \
+  times-fail \
+  truncate \
+  truncate64 \
+  ugetrlimit \
+  uio \
+  umask \
+  umount \
+  umount2 \
+  umoven-illptr \
+  umovestr \
+  umovestr-illptr \
+  umovestr2 \
+  umovestr3 \
+  uname \
+  unlink \
+  unlinkat \
+  unshare \
+  userfaultfd \
+  ustat \
+  utime \
+  utimensat \
+  utimes \
+  vhangup \
+  vmsplice \
+  wait4 \
+  waitid \
+  waitpid \
+  xattr \
+  xattr-strings \
+  xet_robust_list \
+  xetitimer \
+  xetpgid \
+  xetpriority \
+  xettimeofday \
+  #
diff --git a/tests-m32/pure_executables.list b/tests-m32/pure_executables.list
index cc65614..033208e 100755
--- a/tests-m32/pure_executables.list
+++ b/tests-m32/pure_executables.list
@@ -165,8 +165,19 @@
 net-yy-inet
 net-yy-netlink
 net-yy-unix
+netlink_audit
+netlink_generic
+netlink_netfilter
 netlink_protocol
+netlink_route
+netlink_selinux
+netlink_sock_diag
+netlink_xfrm
 newfstatat
+nlattr
+nlattr_inet_diag_msg
+nlattr_netlink_diag_msg
+nlattr_unix_diag_msg
 old_mmap
 oldfstat
 oldlstat
@@ -222,6 +233,7 @@
 renameat2
 request_key
 rmdir
+rt_sigaction
 rt_sigpending
 rt_sigprocmask
 rt_sigqueueinfo
@@ -269,7 +281,10 @@
 sigaction
 sigaltstack
 siginfo
+signal
 signalfd4
+sigpending
+sigprocmask
 sigreturn
 sigsuspend
 socketcall
diff --git a/tests-m32/qual_fault.c b/tests-m32/qual_fault.c
index ab692cb..05401de 100644
--- a/tests-m32/qual_fault.c
+++ b/tests-m32/qual_fault.c
@@ -32,15 +32,19 @@
 
 #include <assert.h>
 #include <errno.h>
+#include <fcntl.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#include <sys/param.h>
 #include <sys/stat.h>
 #include <sys/uio.h>
+#include <sys/wait.h>
 
-static const int expfd = 4;
-static const int gotfd = 5;
+static int exp_fd;
+static int got_fd;
+static int out_fd;
 
 #define DEFAULT_ERRNO ENOSYS
 
@@ -58,13 +62,13 @@
 	int rc;
 
 	if (!fail) {
-		rc = write(expfd, io.iov_base, io.iov_len);
+		rc = write(exp_fd, io.iov_base, io.iov_len);
 		if (rc != (int) io.iov_len)
 			perror_msg_and_fail("write");
 	}
 
 	errno = 0;
-	rc = writev(gotfd, &io, 1);
+	rc = writev(got_fd, &io, 1);
 
 	if (fail) {
 		if (!(rc == -1 && errno == err))
@@ -74,11 +78,11 @@
 
 		if (is_raw)
 			tprintf("writev(%#x, %p, 0x1) = -1 (errno %d)"
-				" (INJECTED)\n", gotfd, &io, err);
+				" (INJECTED)\n", got_fd, &io, err);
 		else
 			tprintf("writev(%d, [{iov_base=\"%s\", iov_len=%d}], 1)"
 				" = -1 %s (%m) (INJECTED)\n",
-				gotfd, buf, (int) io.iov_len, errstr);
+				got_fd, buf, (int) io.iov_len, errstr);
 	} else {
 		if (rc != (int) io.iov_len)
 			perror_msg_and_fail("expected %d"
@@ -86,23 +90,35 @@
 					    (int) io.iov_len, rc, errno);
 
 		if (is_raw)
-			tprintf("writev(%#x, %p, 0x1) = %#x\n", gotfd, &io, rc);
+			tprintf("writev(%#x, %p, 0x1) = %#x\n",
+				got_fd, &io, rc);
 		else
 			tprintf("writev(%d, [{iov_base=\"%s\", iov_len=%d}], 1)"
 				" = %d\n",
-				gotfd, buf, (int) io.iov_len, (int) io.iov_len);
+				got_fd, buf, (int) io.iov_len,
+				(int) io.iov_len);
 	}
 }
 
+static int
+open_file(const char *prefix, int proc)
+{
+	static const int open_flags = O_WRONLY | O_TRUNC | O_CREAT;
+	static char path[PATH_MAX + 1];
+
+	snprintf(path, sizeof(path), "%s.%d", prefix, proc);
+
+	int fd = open(path, open_flags, 0600);
+	if (fd < 0)
+		perror_msg_and_fail("open: %s", path);
+
+	return fd;
+}
+
 int
 main(int argc, char *argv[])
 {
-	struct stat st;
-
-	assert(fstat(expfd, &st) == 0);
-	assert(fstat(gotfd, &st) == 0);
-
-	assert(argc == 6);
+	assert(argc == 11);
 
 	is_raw = !strcmp("raw", argv[1]);
 
@@ -125,25 +141,71 @@
 	first = atoi(argv[3]);
 	step = atoi(argv[4]);
 	iter = atoi(argv[5]);
+	int num_procs = atoi(argv[6]);
+	char *exp_prefix = argv[7];
+	char *got_prefix = argv[8];
+	char *out_prefix = argv[9];
+	char *pid_prefix = argv[10];
 
 	assert(first > 0);
 	assert(step >= 0);
+	assert(num_procs > 0);
 
-	tprintf("%s", "");
+	int proc;
+	for (proc = 0; proc < num_procs; ++proc) {
+		int ret = fork();
 
-	int i;
-	for (i = 1; i <= iter; ++i) {
-		int fail = 0;
-		if (first > 0) {
-			--first;
-			if (first == 0) {
-				fail = 1;
-				first = step;
-			}
+		if (ret < 0)
+			perror_msg_and_fail("fork");
+
+		if (ret > 0) {
+			int pidfd = open_file(pid_prefix, proc);
+
+			char pidstr[sizeof(ret) * 3];
+			int len = snprintf(pidstr, sizeof(pidstr), "%d", ret);
+			assert(len > 0 && len < (int) sizeof(pidstr));
+			assert(write(pidfd, pidstr, len) == len);
+
+			close(pidfd);
+
+			continue;
 		}
-		invoke(fail);
+
+		tprintf("%s", "");
+
+		exp_fd = open_file(exp_prefix, proc);
+		got_fd = open_file(got_prefix, proc);
+		out_fd = open_file(out_prefix, proc);
+
+		/* This magic forces tprintf to write where we want it. */
+		dup2(out_fd, 3);
+
+		int i;
+		for (i = 1; i <= iter; ++i) {
+			int fail = 0;
+			if (first > 0) {
+				--first;
+				if (first == 0) {
+					fail = 1;
+					first = step;
+				}
+			}
+			invoke(fail);
+		}
+
+		tprintf("%s\n", "+++ exited with 0 +++");
+		return 0;
 	}
 
-	tprintf("%s\n", "+++ exited with 0 +++");
+	for (proc = 0; proc < num_procs; ++proc) {
+		int status;
+		int ret = wait(&status);
+		if (ret <= 0)
+			perror_msg_and_fail("wait %d", proc);
+		if (status)
+			error_msg_and_fail("wait: pid=%d status=%d",
+					   ret, status);
+	}
+
 	return 0;
 }
diff --git a/tests-m32/qual_fault.test b/tests-m32/qual_fault.test
index f8e57d2..12b0a85 100755
--- a/tests-m32/qual_fault.test
+++ b/tests-m32/qual_fault.test
@@ -35,16 +35,17 @@
 # F+
 # F+S
 
-N=16
+N=100
 
 check_fault_injection()
 {
-	local trace fault err first step extra
+	local trace fault err first step procs extra
 	trace=$1; shift
 	fault=$1; shift
 	err=$1; shift
 	first=$1; shift
 	step=$1; shift
+	procs=$1; shift
 	extra="$*"
 
 	local when=
@@ -74,30 +75,39 @@
 
 	outexp="$NAME.out.exp"
 	outgot="$NAME.out.got"
+	outout="$NAME.out.out"
+	outpid="$NAME.pid"
 
-	run_strace -a11 -e trace=$trace \
+	run_strace -a11 -ff -e trace=$trace \
 		"$@" -e fault=$fault$when$error $extra \
 		../$NAME $raw "$err" "$first" "$step" $N \
-		> "$EXP" 4> "$outexp" 5> "$outgot"
+		"$procs" "$outexp" "$outgot" "$outout" "$outpid"
 
-	match_diff "$EXP" "$LOG"
-	match_diff "$outexp" "$outgot"
+	for i in $(seq 0 $((procs - 1)) )
+	do
+		pid=$(cat "$outpid.$i")
+
+		match_diff "$outout.$i" "$LOG.$pid"
+		match_diff "$outexp.$i" "$outgot.$i"
+	done
 }
 
 for err in '' ENOSYS 22 einval; do
 	for fault in writev desc,51; do
 		check_fault_injection \
-			writev $fault "$err" '' '' -efault=chdir
+			writev $fault "$err" '' '' 1 -efault=chdir
 		check_fault_injection \
-			writev $fault "$err" '' '' -efault=chdir -efault=none
+			writev $fault "$err" '' '' 1 -efault=chdir -efault=none
 		for F in 1 2 3 5 7 11; do
 			check_fault_injection \
-				writev $fault "$err" $F ''
+				writev $fault "$err" $F '' 1
 			check_fault_injection \
-				writev $fault "$err" $F +
+				writev $fault "$err" $F + 1
 			for S in 1 2 3 5 7 11; do
 				check_fault_injection \
-					writev $fault "$err" $F $S
+					writev $fault "$err" $F $S 1
+				check_fault_injection \
+					writev $fault "$err" $F $S 4
 			done
 		done
 	done
diff --git a/tests-m32/quotactl-xfs.c b/tests-m32/quotactl-xfs.c
index b2a884b..fab451e 100644
--- a/tests-m32/quotactl-xfs.c
+++ b/tests-m32/quotactl-xfs.c
@@ -71,7 +71,7 @@
 	struct fs_qfilestatv	qs_pquota;	/* project quota information */
 	int32_t		qs_btimelimit;		/* limit for blks timer */
 	int32_t		qs_itimelimit;		/* limit for inodes timer */
-	int32_t		qs_rtbtimelimit; 	/* limit for rt blks timer */
+	int32_t		qs_rtbtimelimit;	/* limit for rt blks timer */
 	uint16_t	qs_bwarnlimit;		/* limit for num warnings */
 	uint16_t	qs_iwarnlimit;		/* limit for num warnings */
 	uint64_t	qs_pad2[8];		/* for future proofing */
@@ -97,29 +97,29 @@
 		return;
 	}
 
-	PRINT_FIELD_D("{", dq, d_version);
+	PRINT_FIELD_D("{", *dq, d_version);
 	printf(", d_flags=");
 	printflags(xfs_dqblk_flags, (uint8_t) dq->d_flags, "XFS_???_QUOTA");
 
-	PRINT_FIELD_X(", ", dq, d_fieldmask);
-	PRINT_FIELD_U(", ", dq, d_id);
-	PRINT_FIELD_U(", ", dq, d_blk_hardlimit);
-	PRINT_FIELD_U(", ", dq, d_blk_softlimit);
-	PRINT_FIELD_U(", ", dq, d_ino_hardlimit);
-	PRINT_FIELD_U(", ", dq, d_ino_softlimit);
-	PRINT_FIELD_U(", ", dq, d_bcount);
-	PRINT_FIELD_U(", ", dq, d_icount);
+	PRINT_FIELD_X(", ", *dq, d_fieldmask);
+	PRINT_FIELD_U(", ", *dq, d_id);
+	PRINT_FIELD_U(", ", *dq, d_blk_hardlimit);
+	PRINT_FIELD_U(", ", *dq, d_blk_softlimit);
+	PRINT_FIELD_U(", ", *dq, d_ino_hardlimit);
+	PRINT_FIELD_U(", ", *dq, d_ino_softlimit);
+	PRINT_FIELD_U(", ", *dq, d_bcount);
+	PRINT_FIELD_U(", ", *dq, d_icount);
 
 # if VERBOSE
-	PRINT_FIELD_D(", ", dq, d_itimer);
-	PRINT_FIELD_D(", ", dq, d_btimer);
-	PRINT_FIELD_U(", ", dq, d_iwarns);
-	PRINT_FIELD_U(", ", dq, d_bwarns);
-	PRINT_FIELD_U(", ", dq, d_rtb_hardlimit);
-	PRINT_FIELD_U(", ", dq, d_rtb_softlimit);
-	PRINT_FIELD_U(", ", dq, d_rtbcount);
-	PRINT_FIELD_D(", ", dq, d_rtbtimer);
-	PRINT_FIELD_U(", ", dq, d_rtbwarns);
+	PRINT_FIELD_D(", ", *dq, d_itimer);
+	PRINT_FIELD_D(", ", *dq, d_btimer);
+	PRINT_FIELD_U(", ", *dq, d_iwarns);
+	PRINT_FIELD_U(", ", *dq, d_bwarns);
+	PRINT_FIELD_U(", ", *dq, d_rtb_hardlimit);
+	PRINT_FIELD_U(", ", *dq, d_rtb_softlimit);
+	PRINT_FIELD_U(", ", *dq, d_rtbcount);
+	PRINT_FIELD_D(", ", *dq, d_rtbtimer);
+	PRINT_FIELD_U(", ", *dq, d_rtbwarns);
 # else
 	printf(", ...");
 # endif /* !VERBOSE */
@@ -137,23 +137,23 @@
 		return;
 	}
 
-	PRINT_FIELD_D("{", qs, qs_version);
+	PRINT_FIELD_D("{", *qs, qs_version);
 
 # if VERBOSE
 	printf(", qs_flags=");
 	printflags(xfs_quota_flags, qs->qs_flags, "XFS_QUOTA_???");
-	PRINT_FIELD_U(", qs_uquota={", &qs->qs_uquota, qfs_ino);
-	PRINT_FIELD_U(", ", &qs->qs_uquota, qfs_nblks);
-	PRINT_FIELD_U(", ", &qs->qs_uquota, qfs_nextents);
-	PRINT_FIELD_U("}, qs_gquota={", &qs->qs_gquota, qfs_ino);
-	PRINT_FIELD_U(", ", &qs->qs_gquota, qfs_nblks);
-	PRINT_FIELD_U(", ", &qs->qs_gquota, qfs_nextents);
-	PRINT_FIELD_U("}, ", qs, qs_incoredqs);
-	PRINT_FIELD_D(", ", qs, qs_btimelimit);
-	PRINT_FIELD_D(", ", qs, qs_itimelimit);
-	PRINT_FIELD_D(", ", qs, qs_rtbtimelimit);
-	PRINT_FIELD_U(", ", qs, qs_bwarnlimit);
-	PRINT_FIELD_U(", ", qs, qs_iwarnlimit);
+	PRINT_FIELD_U(", qs_uquota={", qs->qs_uquota, qfs_ino);
+	PRINT_FIELD_U(", ", qs->qs_uquota, qfs_nblks);
+	PRINT_FIELD_U(", ", qs->qs_uquota, qfs_nextents);
+	PRINT_FIELD_U("}, qs_gquota={", qs->qs_gquota, qfs_ino);
+	PRINT_FIELD_U(", ", qs->qs_gquota, qfs_nblks);
+	PRINT_FIELD_U(", ", qs->qs_gquota, qfs_nextents);
+	PRINT_FIELD_U("}, ", *qs, qs_incoredqs);
+	PRINT_FIELD_D(", ", *qs, qs_btimelimit);
+	PRINT_FIELD_D(", ", *qs, qs_itimelimit);
+	PRINT_FIELD_D(", ", *qs, qs_rtbtimelimit);
+	PRINT_FIELD_U(", ", *qs, qs_bwarnlimit);
+	PRINT_FIELD_U(", ", *qs, qs_iwarnlimit);
 # else
 	printf(", ...");
 # endif /* !VERBOSE */
@@ -171,26 +171,26 @@
 		return;
 	}
 
-	PRINT_FIELD_D("{", qs, qs_version);
+	PRINT_FIELD_D("{", *qs, qs_version);
 
 # if VERBOSE
 	printf(", qs_flags=");
 	printflags(xfs_quota_flags, qs->qs_flags, "XFS_QUOTA_???");
-	PRINT_FIELD_U(", ", qs, qs_incoredqs);
-	PRINT_FIELD_U(", qs_uquota={", &qs->qs_uquota, qfs_ino);
-	PRINT_FIELD_U(", ", &qs->qs_uquota, qfs_nblks);
-	PRINT_FIELD_U(", ", &qs->qs_uquota, qfs_nextents);
-	PRINT_FIELD_U("}, qs_gquota={", &qs->qs_gquota, qfs_ino);
-	PRINT_FIELD_U(", ", &qs->qs_gquota, qfs_nblks);
-	PRINT_FIELD_U(", ", &qs->qs_gquota, qfs_nextents);
-	PRINT_FIELD_U("}, qs_pquota={", &qs->qs_pquota, qfs_ino);
-	PRINT_FIELD_U(", ", &qs->qs_pquota, qfs_nblks);
-	PRINT_FIELD_U(", ", &qs->qs_pquota, qfs_nextents);
-	PRINT_FIELD_D("}, ", qs, qs_btimelimit);
-	PRINT_FIELD_D(", ", qs, qs_itimelimit);
-	PRINT_FIELD_D(", ", qs, qs_rtbtimelimit);
-	PRINT_FIELD_U(", ", qs, qs_bwarnlimit);
-	PRINT_FIELD_U(", ", qs, qs_iwarnlimit);
+	PRINT_FIELD_U(", ", *qs, qs_incoredqs);
+	PRINT_FIELD_U(", qs_uquota={", qs->qs_uquota, qfs_ino);
+	PRINT_FIELD_U(", ", qs->qs_uquota, qfs_nblks);
+	PRINT_FIELD_U(", ", qs->qs_uquota, qfs_nextents);
+	PRINT_FIELD_U("}, qs_gquota={", qs->qs_gquota, qfs_ino);
+	PRINT_FIELD_U(", ", qs->qs_gquota, qfs_nblks);
+	PRINT_FIELD_U(", ", qs->qs_gquota, qfs_nextents);
+	PRINT_FIELD_U("}, qs_pquota={", qs->qs_pquota, qfs_ino);
+	PRINT_FIELD_U(", ", qs->qs_pquota, qfs_nblks);
+	PRINT_FIELD_U(", ", qs->qs_pquota, qfs_nextents);
+	PRINT_FIELD_D("}, ", *qs, qs_btimelimit);
+	PRINT_FIELD_D(", ", *qs, qs_itimelimit);
+	PRINT_FIELD_D(", ", *qs, qs_rtbtimelimit);
+	PRINT_FIELD_U(", ", *qs, qs_bwarnlimit);
+	PRINT_FIELD_U(", ", *qs, qs_iwarnlimit);
 # else
 	printf(", ...");
 # endif /* !VERBOSE */
diff --git a/tests-m32/quotactl.c b/tests-m32/quotactl.c
index 88c3fda..f1648d9 100644
--- a/tests-m32/quotactl.c
+++ b/tests-m32/quotactl.c
@@ -88,16 +88,16 @@
 		return;
 	}
 
-	PRINT_FIELD_U("{", db, dqb_bhardlimit);
-	PRINT_FIELD_U(", ", db, dqb_bsoftlimit);
-	PRINT_FIELD_U(", ", db, dqb_curspace);
-	PRINT_FIELD_U(", ", db, dqb_ihardlimit);
-	PRINT_FIELD_U(", ", db, dqb_isoftlimit);
-	PRINT_FIELD_U(", ", db, dqb_curinodes);
+	PRINT_FIELD_U("{", *db, dqb_bhardlimit);
+	PRINT_FIELD_U(", ", *db, dqb_bsoftlimit);
+	PRINT_FIELD_U(", ", *db, dqb_curspace);
+	PRINT_FIELD_U(", ", *db, dqb_ihardlimit);
+	PRINT_FIELD_U(", ", *db, dqb_isoftlimit);
+	PRINT_FIELD_U(", ", *db, dqb_curinodes);
 
 # if VERBOSE
-	PRINT_FIELD_U(", ", db, dqb_btime);
-	PRINT_FIELD_U(", ", db, dqb_itime);
+	PRINT_FIELD_U(", ", *db, dqb_btime);
+	PRINT_FIELD_U(", ", *db, dqb_itime);
 
 	printf(", dqb_valid=");
 	printflags(if_dqblk_valid, db->dqb_valid, "QIF_???");
@@ -118,23 +118,23 @@
 		return;
 	}
 
-	PRINT_FIELD_U("{", db, dqb_bhardlimit);
-	PRINT_FIELD_U(", ", db, dqb_bsoftlimit);
-	PRINT_FIELD_U(", ", db, dqb_curspace);
-	PRINT_FIELD_U(", ", db, dqb_ihardlimit);
-	PRINT_FIELD_U(", ", db, dqb_isoftlimit);
-	PRINT_FIELD_U(", ", db, dqb_curinodes);
+	PRINT_FIELD_U("{", *db, dqb_bhardlimit);
+	PRINT_FIELD_U(", ", *db, dqb_bsoftlimit);
+	PRINT_FIELD_U(", ", *db, dqb_curspace);
+	PRINT_FIELD_U(", ", *db, dqb_ihardlimit);
+	PRINT_FIELD_U(", ", *db, dqb_isoftlimit);
+	PRINT_FIELD_U(", ", *db, dqb_curinodes);
 
 # if VERBOSE
-	PRINT_FIELD_U(", ", db, dqb_btime);
-	PRINT_FIELD_U(", ", db, dqb_itime);
+	PRINT_FIELD_U(", ", *db, dqb_btime);
+	PRINT_FIELD_U(", ", *db, dqb_itime);
 
 	printf(", dqb_valid=");
 	printflags(if_dqblk_valid, db->dqb_valid, "QIF_???");
 
-	PRINT_FIELD_U(", ", db, dqb_id);
+	PRINT_FIELD_U(", ", *db, dqb_id);
 # else
-	PRINT_FIELD_U(", ", db, dqb_id);
+	PRINT_FIELD_U(", ", *db, dqb_id);
 	printf(", ...");
 # endif /* !VERBOSE */
 	printf("}");
@@ -151,8 +151,8 @@
 		return;
 	}
 
-	PRINT_FIELD_U("{", di, dqi_bgrace);
-	PRINT_FIELD_U(", ", di, dqi_igrace);
+	PRINT_FIELD_U("{", *di, dqi_bgrace);
+	PRINT_FIELD_U(", ", *di, dqi_igrace);
 
 	printf(", dqi_flags=");
 	printflags(if_dqinfo_flags, di->dqi_flags, "DQF_???");
diff --git a/tests-m32/quotactl.h b/tests-m32/quotactl.h
index 31eaec5..d3cf53b 100644
--- a/tests-m32/quotactl.h
+++ b/tests-m32/quotactl.h
@@ -34,6 +34,7 @@
 # include <inttypes.h>
 # include <stdarg.h>
 # include <stdio.h>
+# include "print_fields.h"
 
 # ifdef HAVE_LINUX_QUOTA_H
 /* Broken in CentOS 5: has extern spinlock_t dq_data_lock; declaration */
@@ -57,18 +58,6 @@
 #  define PRJQUOTA 2
 # endif
 
-# define PRINT_FIELD_D(prefix, where, field)	\
-	printf("%s%s=%lld", (prefix), #field,	\
-	       sign_extend_unsigned_to_ll((where)->field))
-
-# define PRINT_FIELD_U(prefix, where, field)	\
-	printf("%s%s=%llu", (prefix), #field,	\
-	       zero_extend_signed_to_ull((where)->field))
-
-# define PRINT_FIELD_X(prefix, where, field)	\
-	printf("%s%s=%#llx", (prefix), #field,	\
-	       zero_extend_signed_to_ull((where)->field))
-
 typedef void (*print_cb)(long rc, void *addr, void *arg);
 
 enum check_quotactl_flag_bits {
diff --git a/tests-m32/readahead.c b/tests-m32/readahead.c
index c243ae4..a3e5cb8 100644
--- a/tests-m32/readahead.c
+++ b/tests-m32/readahead.c
@@ -37,7 +37,7 @@
  * see https://sourceware.org/bugzilla/show_bug.cgi?id=5208
  */
 #  if !(defined __GLIBC_MINOR__ && \
-        (__GLIBC__ << 16) + __GLIBC_MINOR__ >= (2 << 16) + 8)
+	(__GLIBC__ << 16) + __GLIBC_MINOR__ >= (2 << 16) + 8)
 #   undef HAVE_READAHEAD
 #  endif /* glibc < 2.8 */
 /*
@@ -45,7 +45,7 @@
  * see https://sourceware.org/bugzilla/show_bug.cgi?id=21026
  */
 #  if defined LINUX_MIPSN64 && !(defined __GLIBC_MINOR__ && \
-        (__GLIBC__ << 16) + __GLIBC_MINOR__ >= (2 << 16) + 25)
+	(__GLIBC__ << 16) + __GLIBC_MINOR__ >= (2 << 16) + 25)
 #   undef HAVE_READAHEAD
 #  endif /* LINUX_MIPSN64 && glibc < 2.25 */
 # endif /* __GLIBC__ */
diff --git a/tests-m32/readv.c b/tests-m32/readv.c
index 0e5aab6..93f0760 100644
--- a/tests-m32/readv.c
+++ b/tests-m32/readv.c
@@ -108,7 +108,7 @@
 		" * %u bytes in buffer 2\n"
 		" | 00000 %-49s  %-16s |\n",
 		fds[1], w0_c, LENGTH_OF(w0_c), w1_c, LENGTH_OF(w1_c),
-		w2_c, LENGTH_OF(w2_c), ARRAY_SIZE(w_iov_), w_len,
+		w2_c, LENGTH_OF(w2_c), (unsigned int) ARRAY_SIZE(w_iov_), w_len,
 		LENGTH_OF(w0_c), w0_d, w0_c,
 		LENGTH_OF(w1_c), w1_d, w1_c, LENGTH_OF(w2_c), w2_d, w2_c);
 
@@ -126,8 +126,8 @@
 	tprintf("readv(%d, [{iov_base=\"%s\", iov_len=%u}], %u) = %u\n"
 		" * %u bytes in buffer 0\n"
 		" | 00000 %-49s  %-16s |\n",
-		fds[0],
-		r0_c, r_len, ARRAY_SIZE(r0_iov_), r_len, r_len, r0_d, r0_c);
+		fds[0], r0_c, r_len, (unsigned int) ARRAY_SIZE(r0_iov_),
+		r_len, r_len, r0_d, r0_c);
 
 	void *r1 = tail_alloc(r_len);
 	void *r2 = tail_alloc(w_len);
@@ -148,8 +148,8 @@
 		", {iov_base=\"\", iov_len=%u}], %u) = %u\n"
 		" * %u bytes in buffer 0\n"
 		" | 00000 %-49s  %-16s |\n",
-		fds[0], r1_c, r_len, w_len, ARRAY_SIZE(r1_iov_), w_len - r_len,
-		w_len - r_len, r1_d, r1_c);
+		fds[0], r1_c, r_len, w_len, (unsigned int) ARRAY_SIZE(r1_iov_),
+		w_len - r_len, w_len - r_len, r1_d, r1_c);
 	close(fds[0]);
 
 	tprintf("+++ exited with 0 +++\n");
diff --git a/tests-m32/reboot.c b/tests-m32/reboot.c
index 9b09e64..ce651dc 100644
--- a/tests-m32/reboot.c
+++ b/tests-m32/reboot.c
@@ -14,14 +14,14 @@
 main(void)
 {
 	static const char buf[] = "reboot";
-	long rc = syscall(__NR_reboot, LINUX_REBOOT_MAGIC1, \
-	          INVALID_MAGIC, LINUX_REBOOT_CMD_RESTART2, buf);
+	long rc = syscall(__NR_reboot, LINUX_REBOOT_MAGIC1,
+			  INVALID_MAGIC, LINUX_REBOOT_CMD_RESTART2, buf);
 	printf("reboot(LINUX_REBOOT_MAGIC1, %#x /* LINUX_REBOOT_MAGIC_??? */,"
 	       " LINUX_REBOOT_CMD_RESTART2, \"%s\") = %ld %s (%m)\n",
 	       INVALID_MAGIC, buf, rc, errno2name());
 
-	rc = syscall(__NR_reboot, LINUX_REBOOT_MAGIC1, \
-	     LINUX_REBOOT_MAGIC2, INVALID_CMD);
+	rc = syscall(__NR_reboot, LINUX_REBOOT_MAGIC1,
+		     LINUX_REBOOT_MAGIC2, INVALID_CMD);
 	printf("reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2,"
 	       " %#x /* LINUX_REBOOT_CMD_??? */) = %ld %s (%m)\n",
 	       INVALID_CMD, rc, errno2name());
diff --git a/tests-m32/recvmsg.c b/tests-m32/recvmsg.c
index fa41a9d..2d55d55 100644
--- a/tests-m32/recvmsg.c
+++ b/tests-m32/recvmsg.c
@@ -100,7 +100,7 @@
 		w0_c, LENGTH_OF(w0_c),
 		w1_c, LENGTH_OF(w1_c),
 		w2_c, LENGTH_OF(w2_c),
-		ARRAY_SIZE(w_iov_), w_len,
+		(unsigned int) ARRAY_SIZE(w_iov_), w_len,
 		LENGTH_OF(w0_c), w0_d, w0_c,
 		LENGTH_OF(w1_c), w1_d, w1_c,
 		LENGTH_OF(w2_c), w2_d, w2_c);
@@ -127,7 +127,8 @@
 		", msg_controllen=0, msg_flags=0}, 0) = %u\n"
 		" * %u bytes in buffer 0\n"
 		" | 00000 %-49s  %-16s |\n",
-		r0_c, r_len, ARRAY_SIZE(r0_iov_), r_len, r_len, r0_d, r0_c);
+		r0_c, r_len, (unsigned int) ARRAY_SIZE(r0_iov_),
+		r_len, r_len, r0_d, r0_c);
 
 	void *r1 = tail_alloc(r_len);
 	void *r2 = tail_alloc(w_len);
@@ -151,8 +152,8 @@
 		", msg_iovlen=%u, msg_controllen=0, msg_flags=0}, 0) = %u\n"
 		" * %u bytes in buffer 0\n"
 		" | 00000 %-49s  %-16s |\n",
-		r1_c, r_len, w_len, ARRAY_SIZE(r1_iov_), w_len - r_len,
-		w_len - r_len, r1_d, r1_c);
+		r1_c, r_len, w_len, (unsigned int) ARRAY_SIZE(r1_iov_),
+		w_len - r_len, w_len - r_len, r1_d, r1_c);
 	close(0);
 
 	tprintf("+++ exited with 0 +++\n");
diff --git a/tests-m32/request_key.c b/tests-m32/request_key.c
index fea977b..03c7a42 100644
--- a/tests-m32/request_key.c
+++ b/tests-m32/request_key.c
@@ -69,8 +69,7 @@
 {
 	static const char unterminated1[] = { '\1', '\2', '\3', '\4', '\5' };
 	static const char unterminated2[] = { '\6', '\7', '\10', '\11', '\12' };
-	static const char unterminated3[] =
-		{ '\16', '\17', '\20', '\21', '\22' };
+	static const char unterminated3[] = { '\16', '\17', '\20', '\21', '\22' };
 
 	char *bogus_type = tail_memdup(unterminated1, sizeof(unterminated1));
 	char *bogus_desc = tail_memdup(unterminated2, sizeof(unterminated2));
diff --git a/tests-m32/sigaction.awk b/tests-m32/rt_sigaction.awk
similarity index 100%
rename from tests-m32/sigaction.awk
rename to tests-m32/rt_sigaction.awk
diff --git a/tests-m32/rt_sigaction.c b/tests-m32/rt_sigaction.c
new file mode 100644
index 0000000..1c034ff
--- /dev/null
+++ b/tests-m32/rt_sigaction.c
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2014-2015 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 <assert.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <signal.h>
+
+static void handle_signal(int no)
+{
+	_exit(128 + no);
+}
+
+int
+main(void)
+{
+	struct sigaction sa, sa0;
+
+	sa.sa_handler = SIG_IGN;
+	sigemptyset(&sa.sa_mask);
+	sigaddset(&sa.sa_mask, SIGHUP);
+	sigaddset(&sa.sa_mask, SIGINT);
+	sa.sa_flags = SA_RESTART;
+	assert(!sigaction(SIGUSR2, &sa, &sa0));
+
+	sa.sa_handler = handle_signal;
+	sigemptyset(&sa.sa_mask);
+	sigaddset(&sa.sa_mask, SIGQUIT);
+	sigaddset(&sa.sa_mask, SIGTERM);
+	sa.sa_flags = SA_SIGINFO;
+	assert(!sigaction(SIGUSR2, &sa, &sa0));
+
+	sa.sa_handler = SIG_DFL;
+	sigemptyset(&sa.sa_mask);
+	sa.sa_flags = 0;
+	assert(!sigaction(SIGUSR2, &sa, &sa0));
+
+	sigfillset(&sa.sa_mask);
+	sigdelset(&sa.sa_mask, SIGHUP);
+	assert(!sigaction(SIGUSR2, &sa, &sa0));
+
+	return 0;
+}
diff --git a/tests-m32/sigaction.test b/tests-m32/rt_sigaction.test
similarity index 100%
rename from tests-m32/sigaction.test
rename to tests-m32/rt_sigaction.test
diff --git a/tests-m32/rt_sigqueueinfo.c b/tests-m32/rt_sigqueueinfo.c
index f803d91..9681281 100644
--- a/tests-m32/rt_sigqueueinfo.c
+++ b/tests-m32/rt_sigqueueinfo.c
@@ -33,7 +33,7 @@
 #include <unistd.h>
 
 int
-main (void)
+main(void)
 {
 	struct sigaction sa = {
 		.sa_handler = SIG_IGN
diff --git a/tests-m32/rt_tgsigqueueinfo.c b/tests-m32/rt_tgsigqueueinfo.c
index 3b2da2a..3cff35a 100644
--- a/tests-m32/rt_tgsigqueueinfo.c
+++ b/tests-m32/rt_tgsigqueueinfo.c
@@ -50,7 +50,7 @@
 }
 
 int
-main (void)
+main(void)
 {
 	const struct sigaction sa = {
 		.sa_handler = SIG_IGN
@@ -65,7 +65,8 @@
 	info->si_code = SI_QUEUE;
 	info->si_pid = getpid();
 	info->si_uid = getuid();
-	info->si_value.sival_ptr = (void *) (unsigned long) 0xdeadbeeffacefeedULL;
+	info->si_value.sival_ptr =
+		(void *) (unsigned long) 0xdeadbeeffacefeedULL;
 
 	if (k_tgsigqueueinfo(info->si_pid, SIGUSR1, info))
 		(errno == ENOSYS ? perror_msg_and_skip : perror_msg_and_fail)(
diff --git a/tests-m32/run_expect_termsig.c b/tests-m32/run_expect_termsig.c
new file mode 100644
index 0000000..de81ccb
--- /dev/null
+++ b/tests-m32/run_expect_termsig.c
@@ -0,0 +1,58 @@
+/*
+ * Execute a command, expect its termination with a specified signal.
+ *
+ * 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 "tests.h"
+#include <signal.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/wait.h>
+
+int
+main(int ac, char **av)
+{
+	if (ac < 3)
+		error_msg_and_fail("usage: run_expect_termsig signo path...");
+
+	signal(SIGCHLD, SIG_DFL);
+
+	pid_t pid = fork();
+	if (pid < 0)
+		perror_msg_and_fail("fork");
+
+	if (!pid) {
+		execvp(av[2], av + 2);
+		perror_msg_and_fail("execvp: %s", av[2]);
+	}
+
+	int status;
+	if (waitpid(pid, &status, 0) != pid)
+		perror_msg_and_fail("waitpid");
+
+	return !(WIFSIGNALED(status) && WTERMSIG(status) == atoi(av[1]));
+}
diff --git a/tests-m32/sched_get_priority_mxx.c b/tests-m32/sched_get_priority_mxx.c
index fc14b27..5224ff1 100644
--- a/tests-m32/sched_get_priority_mxx.c
+++ b/tests-m32/sched_get_priority_mxx.c
@@ -24,6 +24,6 @@
 #else
 
 SKIP_MAIN_UNDEFINED("__NR_sched_get_priority_min"
-                    " && defined __NR_sched_get_priority_max");
+		    " && defined __NR_sched_get_priority_max");
 
 #endif
diff --git a/tests-m32/seccomp-filter-v.c b/tests-m32/seccomp-filter-v.c
index fe88ac7..f65be7d 100644
--- a/tests-m32/seccomp-filter-v.c
+++ b/tests-m32/seccomp-filter-v.c
@@ -146,7 +146,7 @@
 	for (i = 0; i < BPF_MAXINSNS; ++i) {
 		if (i)
 			tprintf(", ");
-		switch(BPF_CLASS(i)) {
+		switch (BPF_CLASS(i)) {
 		case BPF_LD:
 			tprintf("BPF_STMT(BPF_LD|BPF_W|BPF_IMM, %#x)", i << 16);
 			break;
diff --git a/tests-m32/semop.c b/tests-m32/semop.c
index 3d1f384..2366d38 100644
--- a/tests-m32/semop.c
+++ b/tests-m32/semop.c
@@ -9,8 +9,7 @@
 #include "xlat.h"
 #include "xlat/semop_flags.h"
 
-union semun
-{
+union semun {
 	int val;
 	struct semid_ds *buf;
 	unsigned short *array;
diff --git a/tests-m32/sendfile.c b/tests-m32/sendfile.c
index 9253c10..b86565b 100644
--- a/tests-m32/sendfile.c
+++ b/tests-m32/sendfile.c
@@ -36,15 +36,13 @@
 # include <fcntl.h>
 # include <stdio.h>
 # include <stdint.h>
+# include <stdlib.h>
 # include <unistd.h>
 # include <sys/socket.h>
-# include <sys/stat.h>
 
 int
-main(int ac, const char **av)
+main(void)
 {
-	assert(ac == 1);
-
 	(void) close(0);
 	if (open("/dev/zero", O_RDONLY) != 0)
 		perror_msg_and_skip("open: %s", "/dev/zero");
@@ -53,58 +51,62 @@
 	if (socketpair(AF_UNIX, SOCK_STREAM, 0, sv))
 		perror_msg_and_skip("socketpair");
 
-	int reg_in = open(av[0], O_RDONLY);
-	if (reg_in < 0)
-		perror_msg_and_fail("open: %s", av[0]);
-
-	struct stat stb;
-	assert(fstat(reg_in, &stb) == 0);
-	const size_t blen = stb.st_size / 3;
-	const size_t alen = stb.st_size - blen;
-	assert(S_ISREG(stb.st_mode) && blen > 0);
-
-	const size_t page_len = get_page_size();
-	assert(syscall(__NR_sendfile, 0, 1, NULL, page_len) == -1);
+	const unsigned int page_size = get_page_size();
+	assert(syscall(__NR_sendfile, 0, 1, NULL, page_size) == -1);
 	if (EBADF != errno)
 		perror_msg_and_skip("sendfile");
-	printf("sendfile(0, 1, NULL, %lu) = -1 EBADF (%m)\n",
-	       (unsigned long) page_len);
+	printf("sendfile(0, 1, NULL, %u) = -1 EBADF (%m)\n", page_size);
+
+	unsigned int file_size = 0;
+	socklen_t optlen = sizeof(file_size);
+	if (getsockopt(sv[1], SOL_SOCKET, SO_SNDBUF, &file_size, &optlen))
+		perror_msg_and_fail("getsockopt");
+	if (file_size < 1024)
+		error_msg_and_skip("SO_SNDBUF too small: %u", file_size);
+
+	file_size /= 4;
+	if (file_size / 16 > page_size)
+		file_size = page_size * 16;
+	const unsigned int blen = file_size / 3;
+	const unsigned int alen = file_size - blen;
+
+	static const char fname[] = "sendfile-tmpfile";
+	int reg_in = open(fname, O_RDWR | O_CREAT | O_TRUNC, 0600);
+	if (reg_in < 0)
+		perror_msg_and_fail("open: %s", fname);
+	if (unlink(fname))
+		perror_msg_and_fail("unlink: %s", fname);
+	if (ftruncate(reg_in, file_size))
+		perror_msg_and_fail("ftruncate: %s", fname);
 
 	TAIL_ALLOC_OBJECT_VAR_PTR(uint32_t, p_off);
 	void *p = p_off + 1;
 	*p_off = 0;
 
-	assert(syscall(__NR_sendfile, 0, 1, p, page_len) == -1);
-	printf("sendfile(0, 1, %#lx, %lu) = -1 EFAULT (%m)\n",
-	       (unsigned long) p, (unsigned long) page_len);
+	assert(syscall(__NR_sendfile, 0, 1, p, page_size) == -1);
+	printf("sendfile(0, 1, %p, %u) = -1 EFAULT (%m)\n", p, page_size);
 
 	assert(syscall(__NR_sendfile, sv[1], reg_in, NULL, alen)
 	       == (long) alen);
-	printf("sendfile(%d, %d, NULL, %lu) = %lu\n",
-	       sv[1], reg_in, (unsigned long) alen,
-	       (unsigned long) alen);
+	printf("sendfile(%d, %d, NULL, %u) = %u\n",
+	       sv[1], reg_in, alen, alen);
 
 	p = p_off;
 	if (syscall(__NR_sendfile, sv[1], reg_in, p_off, alen) != (long) alen) {
-		printf("sendfile(%d, %d, %#lx, %lu) = -1 EFAULT (%m)\n",
-		       sv[1], reg_in, (unsigned long) p_off,
-		       (unsigned long) alen);
+		printf("sendfile(%d, %d, %#lx, %u) = -1 EFAULT (%m)\n",
+		       sv[1], reg_in, (unsigned long) p_off, alen);
 		--p_off;
 		*p_off = 0;
 		assert(syscall(__NR_sendfile, sv[1], reg_in, p_off, alen)
 		       == (long) alen);
 	}
-	printf("sendfile(%d, %d, [0] => [%lu], %lu) = %lu\n",
-	       sv[1], reg_in, (unsigned long) alen,
-	       (unsigned long) alen, (unsigned long) alen);
+	printf("sendfile(%d, %d, [0] => [%u], %u) = %u\n",
+	       sv[1], reg_in, alen, alen, alen);
 
-	assert(syscall(__NR_sendfile, sv[1], reg_in, p_off, stb.st_size + 1)
+	assert(syscall(__NR_sendfile, sv[1], reg_in, p_off, file_size + 1)
 	       == (long) blen);
-	printf("sendfile(%d, %d, [%lu] => [%lu], %lu) = %lu\n",
-	       sv[1], reg_in, (unsigned long) alen,
-	       (unsigned long) stb.st_size,
-	       (unsigned long) stb.st_size + 1,
-	       (unsigned long) blen);
+	printf("sendfile(%d, %d, [%u] => [%u], %u) = %u\n",
+	       sv[1], reg_in, alen, file_size, file_size + 1, blen);
 
 	if (p_off != p) {
 		uint64_t *p_off64 = (uint64_t *) p_off;
diff --git a/tests-m32/sendfile64.c b/tests-m32/sendfile64.c
index de02400..4c4da6d 100644
--- a/tests-m32/sendfile64.c
+++ b/tests-m32/sendfile64.c
@@ -36,15 +36,13 @@
 # include <fcntl.h>
 # include <stdio.h>
 # include <stdint.h>
+# include <stdlib.h>
 # include <unistd.h>
 # include <sys/socket.h>
-# include <sys/stat.h>
 
 int
-main(int ac, const char **av)
+main(void)
 {
-	assert(ac == 1);
-
 	(void) close(0);
 	if (open("/dev/zero", O_RDONLY) != 0)
 		perror_msg_and_skip("open: %s", "/dev/zero");
@@ -53,50 +51,55 @@
 	if (socketpair(AF_UNIX, SOCK_STREAM, 0, sv))
 		perror_msg_and_skip("socketpair");
 
-	int reg_in = open(av[0], O_RDONLY);
-	if (reg_in < 0)
-		perror_msg_and_fail("open: %s", av[0]);
-
-	struct stat stb;
-	assert(fstat(reg_in, &stb) == 0);
-	const size_t blen = stb.st_size / 3;
-	const size_t alen = stb.st_size - blen;
-	assert(S_ISREG(stb.st_mode) && blen > 0);
-
-	const size_t page_len = get_page_size();
-	assert(syscall(__NR_sendfile64, 0, 1, NULL, page_len) == -1);
+	const unsigned int page_size = get_page_size();
+	assert(syscall(__NR_sendfile64, 0, 1, NULL, page_size) == -1);
 	if (EBADF != errno)
 		perror_msg_and_skip("sendfile64");
-	printf("sendfile64(0, 1, NULL, %lu) = -1 EBADF (%m)\n",
-	       (unsigned long) page_len);
+	printf("sendfile64(0, 1, NULL, %u) = -1 EBADF (%m)\n", page_size);
+
+	unsigned int file_size = 0;
+	socklen_t optlen = sizeof(file_size);
+	if (getsockopt(sv[1], SOL_SOCKET, SO_SNDBUF, &file_size, &optlen))
+		perror_msg_and_fail("getsockopt");
+	if (file_size < 1024)
+		error_msg_and_skip("SO_SNDBUF too small: %u", file_size);
+
+	file_size /= 4;
+	if (file_size / 16 > page_size)
+		file_size = page_size * 16;
+	const unsigned int blen = file_size / 3;
+	const unsigned int alen = file_size - blen;
+
+	static const char fname[] = "sendfile64-tmpfile";
+	int reg_in = open(fname, O_RDWR | O_CREAT | O_TRUNC, 0600);
+	if (reg_in < 0)
+		perror_msg_and_fail("open: %s", fname);
+	if (unlink(fname))
+		perror_msg_and_fail("unlink: %s", fname);
+	if (ftruncate(reg_in, file_size))
+		perror_msg_and_fail("ftruncate: %s", fname);
 
 	TAIL_ALLOC_OBJECT_CONST_PTR(uint64_t, p_off);
 	void *p = p_off + 1;
 	*p_off = 0;
 
-	assert(syscall(__NR_sendfile64, 0, 1, p, page_len) == -1);
-	printf("sendfile64(0, 1, %#lx, %lu) = -1 EFAULT (%m)\n",
-	       (unsigned long) p, (unsigned long) page_len);
+	assert(syscall(__NR_sendfile64, 0, 1, p, page_size) == -1);
+	printf("sendfile64(0, 1, %p, %u) = -1 EFAULT (%m)\n", p, page_size);
 
 	assert(syscall(__NR_sendfile64, sv[1], reg_in, NULL, alen)
 	       == (long) alen);
-	printf("sendfile64(%d, %d, NULL, %lu) = %lu\n",
-	       sv[1], reg_in, (unsigned long) alen,
-	       (unsigned long) alen);
+	printf("sendfile64(%d, %d, NULL, %u) = %u\n",
+	       sv[1], reg_in, alen, alen);
 
 	assert(syscall(__NR_sendfile64, sv[1], reg_in, p_off, alen)
 	       == (long) alen);
-	printf("sendfile64(%d, %d, [0] => [%lu], %lu) = %lu\n",
-	       sv[1], reg_in, (unsigned long) alen,
-	       (unsigned long) alen, (unsigned long) alen);
+	printf("sendfile64(%d, %d, [0] => [%u], %u) = %u\n",
+	       sv[1], reg_in, alen, alen, alen);
 
-	assert(syscall(__NR_sendfile64, sv[1], reg_in, p_off, stb.st_size + 1)
+	assert(syscall(__NR_sendfile64, sv[1], reg_in, p_off, file_size + 1)
 	       == (long) blen);
-	printf("sendfile64(%d, %d, [%lu] => [%lu], %lu) = %lu\n",
-	       sv[1], reg_in, (unsigned long) alen,
-	       (unsigned long) stb.st_size,
-	       (unsigned long) stb.st_size + 1,
-	       (unsigned long) blen);
+	printf("sendfile64(%d, %d, [%u] => [%u], %u) = %u\n",
+	       sv[1], reg_in, alen, file_size, file_size + 1, blen);
 
 	*p_off = 0xcafef00dfacefeedULL;
 	assert(syscall(__NR_sendfile64, sv[1], reg_in, p_off, 1) == -1);
diff --git a/tests-m32/sigaction.c b/tests-m32/sigaction.c
index 1c034ff..7b46944 100644
--- a/tests-m32/sigaction.c
+++ b/tests-m32/sigaction.c
@@ -1,5 +1,7 @@
 /*
- * Copyright (c) 2014-2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Check decoding of sigaction syscall.
+ *
+ * Copyright (c) 2017 Dmitry V. Levin <ldv@altlinux.org>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -25,43 +27,173 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <assert.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <signal.h>
+#include "tests.h"
+#include <asm/unistd.h>
 
-static void handle_signal(int no)
-{
-	_exit(128 + no);
+#ifdef __NR_sigaction
+
+# include <signal.h>
+# include <stdint.h>
+# include <stdio.h>
+# include <string.h>
+# include <unistd.h>
+
+struct set_sa {
+#if defined MIPS
+	unsigned int flags;
+	unsigned long handler;
+	unsigned long mask[1];
+#elif defined ALPHA
+	unsigned long handler;
+	unsigned long mask[1];
+	unsigned int flags;
+#else
+	unsigned long handler;
+	unsigned long mask[1];
+	unsigned long flags;
+	unsigned long restorer;
+#endif
 }
+#ifdef ALPHA
+	ATTRIBUTE_PACKED
+#endif
+;
+
+typedef struct set_sa struct_set_sa;
+
+#ifdef MIPS
+
+struct get_sa {
+	unsigned int flags;
+	unsigned long handler;
+	unsigned long mask[4];
+};
+
+typedef struct get_sa struct_get_sa;
+
+#else
+
+typedef struct set_sa struct_get_sa;
+
+#endif
+
+static long
+k_sigaction(const kernel_ulong_t signum, const kernel_ulong_t new_act,
+	    const kernel_ulong_t old_act)
+{
+	return syscall(__NR_sigaction, signum, new_act, old_act);
+}
+
+#if defined SPARC || defined SPARC64
+static const kernel_ulong_t signo =
+	(kernel_ulong_t) 0xbadc0ded00000000ULL | (unsigned int) -SIGUSR1;
+# define SIG_STR "-SIGUSR1"
+#else
+static const kernel_ulong_t signo =
+	(kernel_ulong_t) 0xbadc0ded00000000ULL | SIGUSR1;
+# define SIG_STR "SIGUSR1"
+#endif
 
 int
 main(void)
 {
-	struct sigaction sa, sa0;
+	static const kernel_ulong_t addr =
+		(kernel_ulong_t) 0xfacefeed0defacedULL;
+	union {
+		sigset_t libc[1];
+		unsigned long old[1];
+	} mask;
 
-	sa.sa_handler = SIG_IGN;
-	sigemptyset(&sa.sa_mask);
-	sigaddset(&sa.sa_mask, SIGHUP);
-	sigaddset(&sa.sa_mask, SIGINT);
-	sa.sa_flags = SA_RESTART;
-	assert(!sigaction(SIGUSR2, &sa, &sa0));
+	TAIL_ALLOC_OBJECT_CONST_PTR(struct_set_sa, new_act);
+	TAIL_ALLOC_OBJECT_CONST_PTR(struct_get_sa, old_act);
 
-	sa.sa_handler = handle_signal;
-	sigemptyset(&sa.sa_mask);
-	sigaddset(&sa.sa_mask, SIGQUIT);
-	sigaddset(&sa.sa_mask, SIGTERM);
-	sa.sa_flags = SA_SIGINFO;
-	assert(!sigaction(SIGUSR2, &sa, &sa0));
+	if (k_sigaction(signo, 0, 0))
+		perror_msg_and_skip("sigaction");
+	puts("sigaction(" SIG_STR ", NULL, NULL) = 0");
 
-	sa.sa_handler = SIG_DFL;
-	sigemptyset(&sa.sa_mask);
-	sa.sa_flags = 0;
-	assert(!sigaction(SIGUSR2, &sa, &sa0));
+	k_sigaction(signo, 0, 0);
+	puts("sigaction(" SIG_STR ", NULL, NULL) = 0");
 
-	sigfillset(&sa.sa_mask);
-	sigdelset(&sa.sa_mask, SIGHUP);
-	assert(!sigaction(SIGUSR2, &sa, &sa0));
+	k_sigaction(signo, (uintptr_t) (new_act + 1), 0);
+	printf("sigaction(" SIG_STR ", %p, NULL) = -1 EFAULT (%m)\n",
+	       new_act + 1);
 
+	k_sigaction(signo, (uintptr_t) new_act + 2, 0);
+	printf("sigaction(" SIG_STR ", %#lx, NULL) = -1 EFAULT (%m)\n",
+	       (unsigned long) new_act + 2);
+
+	k_sigaction(signo, 0, (uintptr_t) (old_act + 1));
+	printf("sigaction(" SIG_STR ", NULL, %p) = -1 EFAULT (%m)\n",
+	       old_act + 1);
+
+	k_sigaction(signo, 0, (uintptr_t) old_act + 2);
+	printf("sigaction(" SIG_STR ", NULL, %#lx) = -1 EFAULT (%m)\n",
+	       (unsigned long) old_act + 2);
+
+	k_sigaction(addr, 0, 0);
+	printf("sigaction(%d, NULL, NULL) = -1 EINVAL (%m)\n", (int) addr);
+
+	memset(new_act, 0, sizeof(*new_act));
+
+	k_sigaction(signo, (uintptr_t) new_act, 0);
+	puts("sigaction(" SIG_STR ", {sa_handler=SIG_DFL, sa_mask=[]"
+	     ", sa_flags=0}, NULL) = 0");
+
+	sigemptyset(mask.libc);
+	sigaddset(mask.libc, SIGHUP);
+	sigaddset(mask.libc, SIGINT);
+
+	new_act->handler = (uintptr_t) SIG_IGN;
+	memcpy(new_act->mask, mask.old, sizeof(mask.old));
+	new_act->flags = SA_SIGINFO;
+
+	k_sigaction(signo, (uintptr_t) new_act, (uintptr_t) old_act);
+	puts("sigaction(" SIG_STR ", {sa_handler=SIG_IGN, sa_mask=[HUP INT]"
+	     ", sa_flags=SA_SIGINFO}, {sa_handler=SIG_DFL, sa_mask=[]"
+	     ", sa_flags=0}) = 0");
+
+	sigemptyset(mask.libc);
+	sigaddset(mask.libc, SIGQUIT);
+	sigaddset(mask.libc, SIGTERM);
+
+	new_act->handler = (unsigned long) addr;
+	memcpy(new_act->mask, mask.old, sizeof(mask.old));
+	new_act->flags = SA_ONSTACK | SA_RESTART;
+
+	k_sigaction(signo, (uintptr_t) new_act, (uintptr_t) old_act);
+	printf("sigaction(" SIG_STR ", {sa_handler=%#lx, sa_mask=[QUIT TERM]"
+	       ", sa_flags=SA_ONSTACK|SA_RESTART}, {sa_handler=SIG_IGN"
+	       ", sa_mask=[HUP INT], sa_flags=SA_SIGINFO}) = 0\n",
+	       new_act->handler);
+
+	memset(mask.old, -1, sizeof(mask.old));
+	sigdelset(mask.libc, SIGHUP);
+
+	memcpy(new_act->mask, mask.old, sizeof(mask.old));
+#ifdef SA_RESTORER
+	new_act->flags = SA_RESTORER;
+	new_act->restorer = (unsigned long) 0xdeadfacecafef00dULL;
+# define SA_RESTORER_FMT ", sa_flags=SA_RESTORER, sa_restorer=%#lx"
+# define SA_RESTORER_ARGS , new_act->restorer
+#else
+	new_act->flags = SA_NODEFER;
+# define SA_RESTORER_FMT ", sa_flags=SA_NODEFER"
+# define SA_RESTORER_ARGS
+#endif
+
+	k_sigaction(signo, (uintptr_t) new_act, (uintptr_t) old_act);
+	printf("sigaction(" SIG_STR ", {sa_handler=%#lx, sa_mask=~[HUP]"
+	       SA_RESTORER_FMT "}, {sa_handler=%#lx, sa_mask=[QUIT TERM]"
+	       ", sa_flags=SA_ONSTACK|SA_RESTART}) = 0\n",
+	       new_act->handler SA_RESTORER_ARGS,
+	       new_act->handler);
+
+	puts("+++ exited with 0 +++");
 	return 0;
 }
+
+#else
+
+SKIP_MAIN_UNDEFINED("__NR_sigaction")
+
+#endif
diff --git a/tests-m32/sigaction.gen.test b/tests-m32/sigaction.gen.test
new file mode 100755
index 0000000..dee340e
--- /dev/null
+++ b/tests-m32/sigaction.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sigaction -a31); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a31
diff --git a/tests-m32/signal.c b/tests-m32/signal.c
new file mode 100644
index 0000000..edbc3d2
--- /dev/null
+++ b/tests-m32/signal.c
@@ -0,0 +1,132 @@
+/*
+ * Check decoding of signal syscall.
+ *
+ * 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 "tests.h"
+#include <asm/unistd.h>
+
+#ifdef __NR_signal
+
+# include <errno.h>
+# include <signal.h>
+# include <stdio.h>
+# include <stdint.h>
+# include <string.h>
+# include <unistd.h>
+
+static long
+k_signal(const kernel_ulong_t signum, const kernel_ulong_t handler)
+{
+	return syscall(__NR_signal, signum, handler);
+}
+
+int
+main(void)
+{
+	static const uintptr_t sig_ign = (uintptr_t) SIG_IGN;
+	static const uintptr_t sig_dfl = (uintptr_t) SIG_DFL;
+	static const kernel_ulong_t sigusr1 =
+		(kernel_ulong_t) 0xfacefeed00000000ULL | SIGUSR1;
+	static const struct sigaction act = { .sa_handler = SIG_DFL };
+	long rc;
+
+	sigset_t mask;
+	sigemptyset(&mask);
+	sigaddset(&mask, SIGUSR1);
+	if (sigprocmask(SIG_BLOCK, &mask, NULL))
+		perror_msg_and_fail("sigprocmask SIG_BLOCK");
+
+	if (sigaction(SIGUSR1, &act, NULL))
+		perror_msg_and_fail("sigaction");
+
+	rc = k_signal(sigusr1, sig_ign);
+
+	if (rc == -1L) {
+		printf("signal(SIGUSR1, SIG_IGN) = %s\n", sprintrc(rc));
+	} else if (rc != (long) sig_dfl) {
+		error_msg_and_fail("signal(SIGUSR1, SIG_IGN) = %#lx\n", rc);
+	} else {
+		printf("signal(SIGUSR1, SIG_IGN) = %#lx (SIG_DFL)\n", rc);
+
+		/*
+		 * Raise and unblock SIGUSR1.
+		 * If signal syscall failed to set SIGUSR1 handler to SIG_IGN,
+		 * the process will be terminated by SIGUSR1.
+		 */
+		raise(SIGUSR1);
+		if (sigprocmask(SIG_UNBLOCK, &mask, NULL))
+			perror_msg_and_fail("sigprocmask SIG_UNBLOCK");
+
+		if (sigprocmask(SIG_BLOCK, &mask, NULL))
+			perror_msg_and_fail("sigprocmask SIG_BLOCK");
+	}
+
+	rc = k_signal(SIGUSR1, sig_dfl);
+
+	if (rc == -1L) {
+		printf("signal(SIGUSR1, SIG_DFL) = %s\n", sprintrc(rc));
+	} else if (rc != (long) sig_ign) {
+		error_msg_and_fail("signal(SIGUSR1, SIG_DFL) = %#lx\n", rc);
+	} else {
+		printf("signal(SIGUSR1, SIG_DFL) = %#lx (SIG_IGN)\n", rc);
+	}
+
+	const kernel_ulong_t addr = (kernel_ulong_t) 0xfacefeeddeadbeefULL;
+	rc = k_signal(SIGUSR1, addr);
+
+	if (rc == -1L) {
+		printf("signal(SIGUSR1, %#llx) = %s\n",
+		       (unsigned long long) addr, sprintrc(rc));
+	} else if (rc != (long) sig_dfl) {
+		error_msg_and_fail("signal(SIGUSR1, %#llx) = %#lx\n",
+				   (unsigned long long) addr, rc);
+	} else {
+		printf("signal(SIGUSR1, %#llx) = %#lx (SIG_DFL)\n",
+		       (unsigned long long) addr, rc);
+	}
+
+	rc = k_signal(SIGUSR1, sig_ign);
+
+	if (rc == -1L) {
+		printf("signal(SIGUSR1, SIG_IGN) = %s\n", sprintrc(rc));
+	} else {
+		printf("signal(SIGUSR1, SIG_IGN) = %#lx\n", rc);
+	}
+
+	rc = k_signal(addr, sig_ign);
+	printf("signal(%d, SIG_IGN) = %s\n", (int) addr, sprintrc(rc));
+
+	puts("+++ exited with 0 +++");
+	return 0;
+}
+
+#else
+
+SKIP_MAIN_UNDEFINED("__NR_signal")
+
+#endif
diff --git a/tests-m32/signal.gen.test b/tests-m32/signal.gen.test
new file mode 100755
index 0000000..81359ca
--- /dev/null
+++ b/tests-m32/signal.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (signal -a25 -e signal=none -e trace='/^signal$'); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a25 -e signal=none -e trace='/^signal$'
diff --git a/tests-m32/signal2name.c b/tests-m32/signal2name.c
index e301f4e..73e93b2 100644
--- a/tests-m32/signal2name.c
+++ b/tests-m32/signal2name.c
@@ -50,6 +50,7 @@
 	CASE(SIGPWR);
 	CASE(SIGSTKFLT);
 #endif
-	default: perror_msg_and_fail("unknown signal number %d", sig);
+	default:
+		perror_msg_and_fail("unknown signal number %d", sig);
 	}
 }
diff --git a/tests-m32/signal_receive.c b/tests-m32/signal_receive.c
index 1c4293e..01c52e8 100644
--- a/tests-m32/signal_receive.c
+++ b/tests-m32/signal_receive.c
@@ -25,7 +25,7 @@
 	sigemptyset(&mask);
 
 	for (sig = 1; sig <= 31; sig++) {
-		if( sig != SIGKILL && sig != SIGSTOP) {
+		if (sig != SIGKILL && sig != SIGSTOP) {
 			sigaction(sig, &act, NULL);
 			sigaddset(&mask, sig);
 		}
@@ -33,7 +33,7 @@
 	sigprocmask(SIG_UNBLOCK, &mask, NULL);
 
 	for (sig = 1; sig <= 31; sig++) {
-		if(sig != SIGKILL && sig != SIGSTOP) {
+		if (sig != SIGKILL && sig != SIGSTOP) {
 			if (kill(pid, sig) != 0)
 				perror_msg_and_fail("kill: %d", sig);
 			sig_print(signal2name(sig), pid, uid);
diff --git a/tests-m32/sigpending.c b/tests-m32/sigpending.c
new file mode 100644
index 0000000..0ce4b21
--- /dev/null
+++ b/tests-m32/sigpending.c
@@ -0,0 +1,106 @@
+/*
+ * Check decoding of sigpending syscall.
+ *
+ * Copyright (c) 2016-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 "tests.h"
+#include <asm/unistd.h>
+
+#ifdef __NR_sigpending
+
+# include <signal.h>
+# include <stdint.h>
+# include <stdio.h>
+# include <string.h>
+# include <unistd.h>
+
+static const char *errstr;
+
+static long
+k_sigpending(const kernel_ulong_t set)
+{
+	const long rc = syscall(__NR_sigpending, set);
+	errstr = sprintrc(rc);
+	return rc;
+}
+
+int
+main(void)
+{
+	TAIL_ALLOC_OBJECT_CONST_PTR(kernel_ulong_t, k_set);
+	TAIL_ALLOC_OBJECT_CONST_PTR(sigset_t, libc_set);
+
+	sigemptyset(libc_set);
+	if (sigprocmask(SIG_SETMASK, libc_set, NULL))
+		perror_msg_and_fail("sigprocmask");
+
+	if (k_sigpending((uintptr_t) libc_set))
+		perror_msg_and_skip("sigpending");
+	else
+		puts("sigpending([]) = 0");
+
+	k_sigpending((uintptr_t) k_set);
+	puts("sigpending([]) = 0");
+
+	k_sigpending((uintptr_t) (k_set + 1));
+	printf("sigpending(%p) = -1 EFAULT (%m)\n", k_set + 1);
+
+	uintptr_t efault = sizeof(*k_set) / 2 + (uintptr_t) k_set;
+	k_sigpending(efault);
+	printf("sigpending(%#jx) = -1 EFAULT (%m)\n", (uintmax_t) efault);
+
+	sigaddset(libc_set, SIGHUP);
+	if (sigprocmask(SIG_SETMASK, libc_set, NULL))
+		perror_msg_and_fail("sigprocmask");
+	raise(SIGHUP);
+
+	k_sigpending((uintptr_t) k_set);
+	puts("sigpending([HUP]) = 0");
+
+	sigaddset(libc_set, SIGINT);
+	if (sigprocmask(SIG_SETMASK, libc_set, NULL))
+		perror_msg_and_fail("sigprocmask");
+	raise(SIGINT);
+
+	k_sigpending((uintptr_t) k_set);
+	puts("sigpending([HUP INT]) = 0");
+
+	if (F8ILL_KULONG_SUPPORTED) {
+		k_sigpending(f8ill_ptr_to_kulong(k_set));
+		printf("sigpending(%#jx) = %s\n",
+		       (uintmax_t) f8ill_ptr_to_kulong(k_set), errstr);
+	}
+
+	puts("+++ exited with 0 +++");
+	return 0;
+}
+
+#else
+
+SKIP_MAIN_UNDEFINED("__NR_sigpending")
+
+#endif
diff --git a/tests-m32/sigpending.gen.test b/tests-m32/sigpending.gen.test
new file mode 100755
index 0000000..0f4259a
--- /dev/null
+++ b/tests-m32/sigpending.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sigpending -a15); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a15
diff --git a/tests-m32/sigprocmask.c b/tests-m32/sigprocmask.c
new file mode 100644
index 0000000..92a34d7
--- /dev/null
+++ b/tests-m32/sigprocmask.c
@@ -0,0 +1,151 @@
+/*
+ * Check decoding of sigprocmask syscall.
+ *
+ * Copyright (c) 2016-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 "tests.h"
+#include <asm/unistd.h>
+
+#ifdef __NR_sigprocmask
+
+# include <signal.h>
+# include <stdint.h>
+# include <stdio.h>
+# include <string.h>
+# include <unistd.h>
+
+static const char *errstr;
+
+static long
+k_sigprocmask(const kernel_ulong_t how, const kernel_ulong_t new_set,
+	      const kernel_ulong_t old_set)
+{
+	const long rc = syscall(__NR_sigprocmask, how, new_set, old_set);
+	errstr = sprintrc(rc);
+	return rc;
+}
+
+int
+main(void)
+{
+	static const kernel_ulong_t sig_block =
+		(kernel_ulong_t) 0xfacefeed00000000ULL | SIG_BLOCK;
+	static const kernel_ulong_t sig_unblock =
+		(kernel_ulong_t) 0xfacefeed00000000ULL | SIG_UNBLOCK;
+	static const kernel_ulong_t sig_setmask =
+		(kernel_ulong_t) 0xfacefeed00000000ULL | SIG_SETMASK;
+
+	if (k_sigprocmask(sig_setmask, 0, 0))
+		perror_msg_and_skip("sigprocmask");
+	puts("sigprocmask(SIG_SETMASK, NULL, NULL) = 0");
+
+	TAIL_ALLOC_OBJECT_CONST_PTR(kernel_ulong_t, new_set);
+	TAIL_ALLOC_OBJECT_CONST_PTR(kernel_ulong_t, old_set);
+	TAIL_ALLOC_OBJECT_CONST_PTR(sigset_t, libc_set);
+
+	memset(new_set, 0, sizeof(*new_set));
+	k_sigprocmask(sig_setmask, (uintptr_t) new_set, 0);
+	printf("sigprocmask(SIG_SETMASK, [], NULL) = %s\n", errstr);
+
+	k_sigprocmask(sig_unblock,
+		      (uintptr_t) (new_set - 1), (uintptr_t) old_set);
+	puts("sigprocmask(SIG_UNBLOCK, ~[], []) = 0");
+
+	if (F8ILL_KULONG_SUPPORTED) {
+		k_sigprocmask(sig_unblock, f8ill_ptr_to_kulong(new_set), 0);
+		printf("sigprocmask(SIG_UNBLOCK, %#jx, NULL) = %s\n",
+		       (uintmax_t) f8ill_ptr_to_kulong(new_set), errstr);
+
+		k_sigprocmask(sig_unblock, 0, f8ill_ptr_to_kulong(old_set));
+		printf("sigprocmask(SIG_UNBLOCK, NULL, %#jx) = %s\n",
+		       (uintmax_t) f8ill_ptr_to_kulong(old_set), errstr);
+	}
+
+	sigemptyset(libc_set);
+	sigaddset(libc_set, SIGHUP);
+	memcpy(new_set, libc_set, sizeof(*new_set));
+
+	k_sigprocmask(sig_block, (uintptr_t) new_set, (uintptr_t) old_set);
+	puts("sigprocmask(SIG_BLOCK, [HUP], []) = 0");
+
+	memset(libc_set, -1, sizeof(*libc_set));
+	sigdelset(libc_set, SIGHUP);
+	memcpy(new_set, libc_set, sizeof(*new_set));
+
+	k_sigprocmask(sig_unblock, (uintptr_t) new_set, (uintptr_t) old_set);
+	puts("sigprocmask(SIG_UNBLOCK, ~[HUP], [HUP]) = 0");
+
+	sigdelset(libc_set, SIGKILL);
+	memcpy(new_set, libc_set, sizeof(*new_set));
+
+	k_sigprocmask(sig_unblock, (uintptr_t) new_set, (uintptr_t) old_set);
+	puts("sigprocmask(SIG_UNBLOCK, ~[HUP KILL], [HUP]) = 0");
+
+	sigemptyset(libc_set);
+	sigaddset(libc_set, SIGHUP);
+	sigaddset(libc_set, SIGINT);
+	sigaddset(libc_set, SIGQUIT);
+	sigaddset(libc_set, SIGALRM);
+	sigaddset(libc_set, SIGTERM);
+	memcpy(new_set, libc_set, sizeof(*new_set));
+
+	k_sigprocmask(sig_block, (uintptr_t) new_set, (uintptr_t) old_set);
+	printf("sigprocmask(SIG_BLOCK, %s, [HUP]) = 0\n",
+	       "[HUP INT QUIT ALRM TERM]");
+
+	k_sigprocmask(sig_setmask, 0, (uintptr_t) old_set);
+	printf("sigprocmask(SIG_SETMASK, NULL, %s) = 0\n",
+	       "[HUP INT QUIT ALRM TERM]");
+
+	k_sigprocmask(sig_setmask, (uintptr_t) (new_set + 1), 0);
+	printf("sigprocmask(SIG_SETMASK, %p, NULL) = %s\n",
+	       new_set + 1, errstr);
+
+	k_sigprocmask(sig_setmask,
+		      (uintptr_t) new_set, (uintptr_t) (old_set + 1));
+	printf("sigprocmask(SIG_SETMASK, %s, %p) = %s\n",
+	       "[HUP INT QUIT ALRM TERM]", old_set + 1, errstr);
+
+	uintptr_t efault = sizeof(*new_set) / 2 + (uintptr_t) new_set;
+
+	k_sigprocmask(sig_setmask, efault, 0);
+	printf("sigprocmask(SIG_SETMASK, %#jx, NULL) = %s\n",
+	       (uintmax_t) efault, errstr);
+
+	k_sigprocmask(sig_setmask, 0, efault);
+	printf("sigprocmask(SIG_SETMASK, NULL, %#jx) = %s\n",
+	       (uintmax_t) efault, errstr);
+
+	puts("+++ exited with 0 +++");
+	return 0;
+}
+
+#else
+
+SKIP_MAIN_UNDEFINED("__NR_sigprocmask")
+
+#endif
diff --git a/tests-m32/sigprocmask.gen.test b/tests-m32/sigprocmask.gen.test
new file mode 100755
index 0000000..44a508c
--- /dev/null
+++ b/tests-m32/sigprocmask.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sigprocmask -a34); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a34
diff --git a/tests-m32/sockname.c b/tests-m32/sockname.c
index 9bab8ed..5872671 100644
--- a/tests-m32/sockname.c
+++ b/tests-m32/sockname.c
@@ -42,9 +42,7 @@
 # error TEST_SYSCALL_NAME must be defined
 #endif
 
-#define TEST_SYSCALL_STR__(a) #a
-#define TEST_SYSCALL_STR_(a) TEST_SYSCALL_STR__(a)
-#define TEST_SYSCALL_STR TEST_SYSCALL_STR_(TEST_SYSCALL_NAME)
+#define TEST_SYSCALL_STR STRINGIFY_VAL(TEST_SYSCALL_NAME)
 #define TEST_SOCKET TEST_SYSCALL_STR ".socket"
 
 #ifdef TEST_SYSCALL_PREPARE
diff --git a/tests-m32/stack-fcall.c b/tests-m32/stack-fcall.c
index 134d54f..fc9ee5f 100644
--- a/tests-m32/stack-fcall.c
+++ b/tests-m32/stack-fcall.c
@@ -1,6 +1,6 @@
 int f0(int i);
 
-int main(int argc, char** argv)
+int main(int argc, char **argv)
 {
 	f0(argc);
 	return 0;
diff --git a/tests-m32/statx.c b/tests-m32/statx.c
index f36fb0e..816b7eb 100644
--- a/tests-m32/statx.c
+++ b/tests-m32/statx.c
@@ -49,7 +49,7 @@
 
 # define TEST_SYSCALL_INVOKE(sample, pst) \
 	syscall(__NR_statx, AT_FDCWD, sample, TEST_SYSCALL_STATX_FLAGS, \
-	        TEST_SYSCALL_STATX_MASK, pst)
+		TEST_SYSCALL_STATX_MASK, pst)
 # define PRINT_SYSCALL_HEADER(sample) \
 	do { \
 		int saved_errno = errno; \
diff --git a/tests-m32/strace-V.test b/tests-m32/strace-V.test
index d5c3ac0..8db1395 100755
--- a/tests-m32/strace-V.test
+++ b/tests-m32/strace-V.test
@@ -23,7 +23,7 @@
 
 cat > "$EXP" << __EOF__
 $(getval PACKAGE_NAME) -- version $(getval PACKAGE_VERSION)
-Copyright (C) 1991-${config_year} The strace developers <$(getval PACKAGE_URL)>.
+Copyright (c) 1991-${config_year} The strace developers <$(getval PACKAGE_URL)>.
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 __EOF__
diff --git a/tests-m32/termsig.test b/tests-m32/termsig.test
new file mode 100755
index 0000000..fd8852c
--- /dev/null
+++ b/tests-m32/termsig.test
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# Check termination signal forwarding.
+
+. "${srcdir=.}/init.sh"
+
+run_expect_termsig="../run_expect_termsig 15"
+unblock_reset_raise="../unblock_reset_raise 15"
+
+run_prog $run_expect_termsig $unblock_reset_raise
+STRACE="$run_expect_termsig $STRACE"
+
+for i in 1 2 3 4; do
+	run_strace -I$i -enone -esignal=none $unblock_reset_raise
+done
diff --git a/tests-m32/test_nlattr.h b/tests-m32/test_nlattr.h
new file mode 100644
index 0000000..8cbb211
--- /dev/null
+++ b/tests-m32/test_nlattr.h
@@ -0,0 +1,183 @@
+/*
+ * Copyright (c) 2017 The strace developers.
+ * 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 "tests.h"
+#include "print_fields.h"
+
+#include <stdio.h>
+#include <string.h>
+#include <sys/socket.h>
+#include "netlink.h"
+#include <linux/rtnetlink.h>
+
+static void
+init_nlattr(struct nlattr *const nla,
+	    const uint16_t nla_len,
+	    const uint16_t nla_type,
+	    const void *const src,
+	    const size_t n)
+{
+	SET_STRUCT(struct nlattr, nla,
+		.nla_len = nla_len,
+		.nla_type = nla_type,
+	);
+
+	memcpy(RTA_DATA(nla), src, n);
+}
+
+static void
+print_nlattr(const unsigned int nla_len, const char *const nla_type)
+{
+	printf(", {{nla_len=%u, nla_type=%s}, ", nla_len, nla_type);
+}
+
+#define TEST_NLATTR_(fd_, nlh0_, hdrlen_,				\
+		     init_msg_, print_msg_,				\
+		     nla_type_, nla_type_str_,				\
+		     nla_data_len_, src_, slen_, ...)			\
+	do {								\
+		struct nlmsghdr *const nlh =				\
+			(nlh0_) - (NLA_HDRLEN + (slen_));		\
+		struct nlattr *const nla = NLMSG_ATTR(nlh, (hdrlen_));	\
+		const unsigned int nla_len =				\
+			NLA_HDRLEN + (nla_data_len_);			\
+		const unsigned int msg_len =				\
+			NLMSG_SPACE(hdrlen_) + nla_len;			\
+									\
+		(init_msg_)(nlh, msg_len);				\
+		init_nlattr(nla, nla_len, (nla_type_),			\
+			   (src_), (slen_));				\
+									\
+		const char *const errstr =				\
+			sprintrc(sendto((fd_), nlh, msg_len,		\
+					MSG_DONTWAIT, NULL, 0));	\
+									\
+		printf("sendto(%d, {", (fd_));				\
+		(print_msg_)(msg_len);					\
+		print_nlattr(nla_len, (nla_type_str_));			\
+									\
+		{ __VA_ARGS__; }					\
+									\
+		printf("}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",		\
+		       msg_len, errstr);				\
+	} while (0)
+
+#define TEST_NLATTR(fd_, nlh0_, hdrlen_,				\
+		    init_msg_, print_msg_,				\
+		    nla_type_,						\
+		    nla_data_len_, src_, slen_, ...)			\
+	TEST_NLATTR_((fd_), (nlh0_), (hdrlen_),				\
+		(init_msg_), (print_msg_),				\
+		(nla_type_), #nla_type_,				\
+		(nla_data_len_), (src_), (slen_), __VA_ARGS__)
+
+#define TEST_NLATTR_OBJECT(fd_, nlh0_, hdrlen_,				\
+			   init_msg_, print_msg_,			\
+			   nla_type_, pattern_, obj_, ...)		\
+	do {								\
+		const int plen = sizeof(obj_) - 1 > DEFAULT_STRLEN	\
+			? DEFAULT_STRLEN : (int) sizeof(obj_) - 1;	\
+		/* len < sizeof(obj_) */				\
+		TEST_NLATTR_((fd_), (nlh0_), (hdrlen_),			\
+			(init_msg_), (print_msg_),			\
+			(nla_type_), #nla_type_,			\
+			sizeof(obj_) - 1,				\
+			(pattern_), sizeof(obj_) - 1,			\
+			printf("\"%.*s\"", plen, (pattern_)));		\
+		/* short read of sizeof(obj_) */			\
+		TEST_NLATTR_((fd_), (nlh0_), (hdrlen_),			\
+			(init_msg_), (print_msg_),			\
+			(nla_type_), #nla_type_,			\
+			sizeof(obj_),					\
+			(pattern_), sizeof(obj_) - 1,			\
+			printf("%p",					\
+			       RTA_DATA(NLMSG_ATTR(nlh, (hdrlen_)))));	\
+		/* sizeof(obj_) */					\
+		TEST_NLATTR_((fd_), (nlh0_), (hdrlen_),			\
+			(init_msg_), (print_msg_),			\
+			(nla_type_), #nla_type_,			\
+			sizeof(obj_),					\
+			&(obj_), sizeof(obj_),				\
+			__VA_ARGS__);					\
+	} while (0)
+
+#define TEST_NLATTR_ARRAY(fd_, nlh0_, hdrlen_,				\
+			  init_msg_, print_msg_,			\
+			  nla_type_, pattern_, obj_, print_elem_)	\
+	do {								\
+		const int plen =					\
+			sizeof((obj_)[0]) - 1 > DEFAULT_STRLEN		\
+			? DEFAULT_STRLEN : (int) sizeof((obj_)[0]) - 1;	\
+		/* len < sizeof((obj_)[0]) */				\
+		TEST_NLATTR_((fd_), (nlh0_), (hdrlen_),			\
+			(init_msg_), (print_msg_),			\
+			(nla_type_), #nla_type_,			\
+			sizeof((obj_)[0]) - 1,				\
+			(pattern_), sizeof((obj_)[0]) - 1,		\
+			printf("\"%.*s\"", plen, (pattern_)));		\
+		/* sizeof((obj_)[0]) < len < sizeof(obj_) */		\
+		TEST_NLATTR_((fd_), (nlh0_), (hdrlen_),			\
+			(init_msg_), (print_msg_),			\
+			(nla_type_), #nla_type_,			\
+			sizeof(obj_) - 1,				\
+			&(obj_), sizeof(obj_) - 1,			\
+			printf("[");					\
+			size_t i;					\
+			for (i = 0; i < ARRAY_SIZE(obj_) - 1; ++i) {	\
+				if (i) printf(", ");			\
+				(print_elem_)(&(obj_)[i]);		\
+			}						\
+			printf("]"));					\
+		/* short read of sizeof(obj_) */			\
+		TEST_NLATTR_((fd_), (nlh0_), (hdrlen_),			\
+			(init_msg_), (print_msg_),			\
+			(nla_type_), #nla_type_,			\
+			sizeof(obj_),					\
+			&(obj_), sizeof(obj_) - 1,			\
+			printf("[");					\
+			size_t i;					\
+			for (i = 0; i < ARRAY_SIZE(obj_) - 1; ++i) {	\
+				if (i) printf(", ");			\
+				(print_elem_)(&(obj_)[i]);		\
+			}						\
+			printf(", %p]",					\
+			       RTA_DATA(NLMSG_ATTR(nlh, (hdrlen_)))	\
+			        + sizeof((obj_)[0])));			\
+		/* sizeof(obj_) */					\
+		TEST_NLATTR_((fd_), (nlh0_), (hdrlen_),			\
+			(init_msg_), (print_msg_),			\
+			(nla_type_), #nla_type_,			\
+			sizeof(obj_),					\
+			&(obj_), sizeof(obj_),				\
+			printf("[");					\
+			size_t i;					\
+			for (i = 0; i < ARRAY_SIZE(obj_); ++i) {	\
+				if (i) printf(", ");			\
+				(print_elem_)(&(obj_)[i]);		\
+			}						\
+			printf("]"));					\
+	} while (0)
diff --git a/tests-m32/tests.h b/tests-m32/tests.h
index dcc1057..094f365 100644
--- a/tests-m32/tests.h
+++ b/tests-m32/tests.h
@@ -36,12 +36,26 @@
 # include <sys/types.h>
 # include "kernel_types.h"
 # include "gcc_compat.h"
+# include "macros.h"
+
+/*
+ * The printf-like function to use in header files
+ * shared between strace and its tests.
+ */
+#ifndef STRACE_PRINTF
+# define STRACE_PRINTF printf
+#endif
 
 /* Tests of "strace -v" are expected to define VERBOSE to 1. */
 #ifndef VERBOSE
 # define VERBOSE 0
 #endif
 
+#ifndef DEFAULT_STRLEN
+/* Default maximum # of bytes printed in printstr et al. */
+# define DEFAULT_STRLEN 32
+#endif
+
 /* Cached sysconf(_SC_PAGESIZE). */
 size_t get_page_size(void);
 
@@ -66,7 +80,7 @@
 
 /*
  * Allocate memory that ends on the page boundary.
- * Pages allocated by this call are preceeded by an unmapped page
+ * Pages allocated by this call are preceded by an unmapped page
  * and followed also by an unmapped page.
  */
 void *tail_alloc(const size_t)
@@ -167,6 +181,10 @@
 int recv_mmsg(int, struct mmsghdr *, unsigned int, unsigned int, struct timespec *);
 int send_mmsg(int, struct mmsghdr *, unsigned int, unsigned int);
 
+/* Create a netlink socket. */
+int create_nl_socket_ext(int proto, const char *name);
+#define create_nl_socket(proto)	create_nl_socket_ext((proto), #proto)
+
 /* Create a pipe with maximized descriptor numbers. */
 void pipe_maxfd(int pipefd[2]);
 
@@ -186,7 +204,6 @@
 	       ? F8ILL_KULONG_MASK | uptr : (kernel_ulong_t) uptr;
 }
 
-# define ARRAY_SIZE(arg) ((unsigned int) (sizeof(arg) / sizeof((arg)[0])))
 # define LENGTH_OF(arg) ((unsigned int) sizeof(arg) - 1)
 
 /* Zero-extend a signed integer type to unsigned long long. */
@@ -239,4 +256,16 @@
 # define ARG_STR(_arg) (_arg), #_arg
 # define ARG_ULL_STR(_arg) _arg##ULL, #_arg
 
+/*
+ * Assign an object of type DEST_TYPE at address DEST_ADDR
+ * using memcpy to avoid potential unaligned access.
+ */
+#define SET_STRUCT(DEST_TYPE, DEST_ADDR, ...)						\
+	do {										\
+		DEST_TYPE dest_type_tmp_var = { __VA_ARGS__ };				\
+		memcpy(DEST_ADDR, &dest_type_tmp_var, sizeof(dest_type_tmp_var));	\
+	} while (0)
+
+#define NLMSG_ATTR(nlh, hdrlen) ((void *)(nlh) + NLMSG_SPACE(hdrlen))
+
 #endif /* !STRACE_TESTS_H */
diff --git a/tests-m32/times-fail.c b/tests-m32/times-fail.c
index cb69bd4..bc8b459 100644
--- a/tests-m32/times-fail.c
+++ b/tests-m32/times-fail.c
@@ -5,7 +5,7 @@
 #include <asm/unistd.h>
 
 int
-main (void)
+main(void)
 {
 	assert(syscall(__NR_times, 0x42) == -1);
 	printf("times(0x42) = -1 EFAULT (%m)\n");
diff --git a/tests-m32/times.c b/tests-m32/times.c
index 2c7b95e..c4cce0e 100644
--- a/tests-m32/times.c
+++ b/tests-m32/times.c
@@ -49,7 +49,7 @@
 };
 
 int
-main (void)
+main(void)
 {
 	struct timespec ts;
 	volatile int dummy = 0;
diff --git a/tests-m32/uio.c b/tests-m32/uio.c
index 6291f97..21f005d 100644
--- a/tests-m32/uio.c
+++ b/tests-m32/uio.c
@@ -39,16 +39,16 @@
 {
 	const off_t offset = 0xdefaceddeadbeefLL;
 	char buf[4];
-	struct iovec iov = { buf, sizeof buf };
+	struct iovec iov = { buf, sizeof(buf) };
 
 	(void) close(0);
 	assert(open("/dev/zero", O_RDONLY) == 0);
-	assert(pread(0, buf, sizeof buf, offset) == 4);
+	assert(pread(0, buf, sizeof(buf), offset) == 4);
 	assert(preadv(0, &iov, 1, offset) == 4);
 	assert(!close(0));
 
 	assert(open("/dev/null", O_WRONLY) == 0);
-	assert(pwrite(0, buf, sizeof buf, offset) == 4);
+	assert(pwrite(0, buf, sizeof(buf), offset) == 4);
 	assert(pwritev(0, &iov, 1, offset) == 4);
 	assert(!close(0));
 
diff --git a/tests-m32/unblock_reset_raise.c b/tests-m32/unblock_reset_raise.c
new file mode 100644
index 0000000..4182f12
--- /dev/null
+++ b/tests-m32/unblock_reset_raise.c
@@ -0,0 +1,54 @@
+/*
+ * Unblock, reset, and raise a signal.
+ *
+ * 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 "tests.h"
+#include <signal.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+int
+main(int ac, char **av)
+{
+	if (ac != 2)
+		error_msg_and_fail("usage: unblock_raise signo");
+
+	sigset_t mask;
+	sigemptyset(&mask);
+	const int signo = atoi(av[1]);
+	if (sigaddset(&mask, signo))
+		perror_msg_and_fail("sigaddset: %s", av[1]);
+	if (sigprocmask(SIG_UNBLOCK, &mask, NULL))
+		perror_msg_and_fail("sigprocmask");
+	if (signal(signo, SIG_DFL) == SIG_ERR)
+		perror_msg_and_fail("signal: %s", av[1]);
+	if (raise(signo))
+		perror_msg_and_fail("raise: %s", av[1]);
+
+	return 0;
+}
diff --git a/tests-m32/unix-pair-sendto-recvfrom.c b/tests-m32/unix-pair-sendto-recvfrom.c
index cea382c..a0c710a 100644
--- a/tests-m32/unix-pair-sendto-recvfrom.c
+++ b/tests-m32/unix-pair-sendto-recvfrom.c
@@ -71,7 +71,7 @@
 		assert(recvfrom(0, av[1], len, MSG_WAITALL, NULL, NULL) == len);
 		assert(close(0) == 0);
 
-                int status;
+		int status;
 		assert(waitpid(pid, &status, 0) == pid);
 		assert(status == 0);
 	} else {
diff --git a/tests-m32/vmsplice.c b/tests-m32/vmsplice.c
index f29962e..4242d9e 100644
--- a/tests-m32/vmsplice.c
+++ b/tests-m32/vmsplice.c
@@ -86,7 +86,7 @@
 		" * %u bytes in buffer 2\n"
 		" | 00000 %-49s  %-16s |\n",
 		w0_c, LENGTH_OF(w0_c), w1_c, LENGTH_OF(w1_c),
-		w2_c, LENGTH_OF(w2_c), ARRAY_SIZE(iov_),
+		w2_c, LENGTH_OF(w2_c), (unsigned int) ARRAY_SIZE(iov_),
 		"SPLICE_F_NONBLOCK", len,
 		LENGTH_OF(w0_c), w0_d, w0_c,
 		LENGTH_OF(w1_c), w1_d, w1_c, LENGTH_OF(w2_c), w2_d, w2_c);
diff --git a/tests-m32/waitid.c b/tests-m32/waitid.c
index b56feea..26f5b86 100644
--- a/tests-m32/waitid.c
+++ b/tests-m32/waitid.c
@@ -111,7 +111,8 @@
 #ifdef CLD_CONTINUED
 	CASE(CLD_CONTINUED);
 #endif
-	default: perror_msg_and_fail("unknown si_code %d", code);
+	default:
+		perror_msg_and_fail("unknown si_code %d", code);
 	}
 }
 
diff --git a/tests-m32/xattr.c b/tests-m32/xattr.c
index a772ece..03b4270 100644
--- a/tests-m32/xattr.c
+++ b/tests-m32/xattr.c
@@ -36,8 +36,6 @@
 #  define XATTR_SIZE_MAX 65536
 # endif
 
-#define DEFAULT_STRLEN 32
-
 int
 main(void)
 {
diff --git a/tests-m32/xchownx.c b/tests-m32/xchownx.c
index fe58283..e415fef 100644
--- a/tests-m32/xchownx.c
+++ b/tests-m32/xchownx.c
@@ -45,10 +45,17 @@
 # define CHECK_OVERFLOWGID(arg)
 #endif
 
-#define UNLINK_SAMPLE \
-	if (unlink(sample)) perror_msg_and_fail("unlink")
-#define CLOSE_SAMPLE \
-	if (close(fd)) perror_msg_and_fail("close")
+#define UNLINK_SAMPLE					\
+	do {						\
+		if (unlink(sample))			\
+			perror_msg_and_fail("unlink");	\
+	} while (0)
+
+#define CLOSE_SAMPLE					\
+	do {						\
+		if (close(fd))				\
+			perror_msg_and_fail("close");	\
+	} while (0)
 
 #ifdef ACCESS_BY_DESCRIPTOR
 # define SYSCALL_ARG1 fd
diff --git a/tests-m32/xselect.c b/tests-m32/xselect.c
index e1638c8..6c8cd81 100644
--- a/tests-m32/xselect.c
+++ b/tests-m32/xselect.c
@@ -136,7 +136,7 @@
 	 * but with a pointer to a large chunk of valid memory.
 	 */
 	FD_ZERO(set);
-	FD_SET(fds[1],set);
+	FD_SET(fds[1], set);
 	assert(syscall(TEST_SYSCALL_NR, -1, NULL, set, NULL, NULL) == -1);
 	printf("%s(-1, NULL, %p, NULL, NULL) = -1 EINVAL (%m)\n",
 	       TEST_SYSCALL_STR, set);
@@ -145,7 +145,7 @@
 	 * Another variant, with nfds exceeding FD_SETSIZE limit.
 	 */
 	FD_ZERO(set);
-	FD_SET(fds[0],set);
+	FD_SET(fds[0], set);
 	tv->tv_sec = 0;
 	tv->tv_usec = 123;
 	assert(syscall(TEST_SYSCALL_NR, FD_SETSIZE + 1, set, set + 1, NULL, tv) == 0);
diff --git a/tests-m32/xstatfsx.c b/tests-m32/xstatfsx.c
index cb524ff..33254dd 100644
--- a/tests-m32/xstatfsx.c
+++ b/tests-m32/xstatfsx.c
@@ -38,12 +38,17 @@
 #include "xlat/statfs_flags.h"
 
 #define PRINT_NUM(arg)							\
-	if (sizeof(b->arg) == sizeof(int))				\
-		printf(", %s=%u", #arg, (unsigned int) b->arg);		\
-	else if (sizeof(b->arg) == sizeof(long))				\
-		printf(", %s=%lu", #arg, (unsigned long) b->arg);	\
-	else								\
-		printf(", %s=%llu", #arg, (unsigned long long) b->arg)
+	do {								\
+		if (sizeof(b->arg) == sizeof(int))			\
+			printf(", %s=%u", #arg,				\
+			       (unsigned int) b->arg);			\
+		else if (sizeof(b->arg) == sizeof(long))		\
+			printf(", %s=%lu", #arg,			\
+			       (unsigned long) b->arg);			\
+		else							\
+			printf(", %s=%llu", #arg,			\
+			       (unsigned long long) b->arg);		\
+	} while (0)
 
 static void
 print_statfs_type(const char *const prefix, const unsigned int magic)
diff --git a/tests-m32/xstatx.c b/tests-m32/xstatx.c
index 8758ef8..7fb9326 100644
--- a/tests-m32/xstatx.c
+++ b/tests-m32/xstatx.c
@@ -48,6 +48,7 @@
 # include <unistd.h>
 # include <sys/sysmacros.h>
 
+# include "print_fields.h"
 # include "statx.h"
 
 # ifndef STRUCT_STAT
@@ -178,14 +179,16 @@
 #   define HAVE_NSEC		0
 #  endif
 
-#define PRINT_ST_TIME(field)						\
-	printf(", st_" #field "=%lld",					\
-	       sign_extend_unsigned_to_ll(st->st_ ## field));		\
-	print_time_t_nsec(sign_extend_unsigned_to_ll(st->st_ ## field),	\
-			  TIME_NSEC(st->st_ ## field ## _nsec), 1);	\
-	if (HAVE_NSEC)							\
-		printf(", st_" #field "_nsec=%llu",			\
-		       TIME_NSEC(st->st_ ## field ## _nsec))
+#define PRINT_ST_TIME(field)							\
+	do {									\
+		printf(", st_" #field "=%lld",					\
+		       sign_extend_unsigned_to_ll(st->st_ ## field));		\
+		print_time_t_nsec(sign_extend_unsigned_to_ll(st->st_ ## field),	\
+				  TIME_NSEC(st->st_ ## field ## _nsec), 1);	\
+		if (HAVE_NSEC)							\
+			printf(", st_" #field "_nsec=%llu",			\
+			       TIME_NSEC(st->st_ ## field ## _nsec));		\
+	} while (0)
 
 	PRINT_ST_TIME(atime);
 	PRINT_ST_TIME(mtime);
@@ -198,31 +201,34 @@
 static void
 print_stat(const STRUCT_STAT *st)
 {
-#  define PRINT_FIELD_U(field) \
-	printf(", %s=%llu", #field, (unsigned long long) st->field)
+#  define PRINT_FIELD_U32_UID(field)					\
+	do {								\
+		if (st->field == (uint32_t) -1)				\
+			printf(", %s=-1", #field);			\
+		else							\
+			printf(", %s=%llu", #field,			\
+			       (unsigned long long) st->field);		\
+	} while (0)
 
-#  define PRINT_FIELD_U32_UID(field) \
-	if (st->field == (uint32_t) -1) \
-		printf(", %s=-1", #field); \
-	else \
-		printf(", %s=%llu", #field, (unsigned long long) st->field)
-
-#  define PRINT_FIELD_TIME(field)					\
-	printf(", %s={tv_sec=%lld, tv_nsec=%u}",			\
-	       #field, (long long) st->field.tv_sec,			\
-	       (unsigned) st->field.tv_nsec);				\
-	print_time_t_nsec(st->field.tv_sec,				\
-			  zero_extend_signed_to_ull(st->field.tv_nsec), 1);
+#  define PRINT_FIELD_TIME(field)						\
+	do {									\
+		printf(", %s={tv_sec=%lld, tv_nsec=%u}",			\
+		       #field, (long long) st->field.tv_sec,			\
+		       (unsigned) st->field.tv_nsec);				\
+		print_time_t_nsec(st->field.tv_sec,				\
+				  zero_extend_signed_to_ull(st->field.tv_nsec),	\
+				  1);						\
+	} while (0)
 
 	printf("{stx_mask=");
 	printflags(statx_masks, st->stx_mask, "STATX_???");
 
-	PRINT_FIELD_U(stx_blksize);
+	PRINT_FIELD_U(", ", *st, stx_blksize);
 
 	printf(", stx_attributes=");
 	printflags(statx_attrs, st->stx_attributes, "STATX_ATTR_???");
 
-	PRINT_FIELD_U(stx_nlink);
+	PRINT_FIELD_U(", ", *st, stx_nlink);
 	PRINT_FIELD_U32_UID(stx_uid);
 	PRINT_FIELD_U32_UID(stx_gid);
 
@@ -231,9 +237,9 @@
 	printf("|");
 	print_perms(st->stx_mode);
 
-	PRINT_FIELD_U(stx_ino);
-	PRINT_FIELD_U(stx_size);
-	PRINT_FIELD_U(stx_blocks);
+	PRINT_FIELD_U(", ", *st, stx_ino);
+	PRINT_FIELD_U(", ", *st, stx_size);
+	PRINT_FIELD_U(", ", *st, stx_blocks);
 
 	printf(", stx_attributes_mask=");
 	printflags(statx_attrs, st->stx_attributes_mask, "STATX_ATTR_???");
@@ -242,10 +248,10 @@
 	PRINT_FIELD_TIME(stx_btime);
 	PRINT_FIELD_TIME(stx_ctime);
 	PRINT_FIELD_TIME(stx_mtime);
-	PRINT_FIELD_U(stx_rdev_major);
-	PRINT_FIELD_U(stx_rdev_minor);
-	PRINT_FIELD_U(stx_dev_major);
-	PRINT_FIELD_U(stx_dev_minor);
+	PRINT_FIELD_U(", ", *st, stx_rdev_major);
+	PRINT_FIELD_U(", ", *st, stx_rdev_minor);
+	PRINT_FIELD_U(", ", *st, stx_dev_major);
+	PRINT_FIELD_U(", ", *st, stx_dev_minor);
 	printf("}");
 }
 
@@ -388,24 +394,30 @@
 
 # if IS_STATX
 
-#  define INVOKE() \
-	rc = TEST_SYSCALL_INVOKE(sample, st); \
-	PRINT_SYSCALL_HEADER(sample); \
-	if (rc) \
-		printf("%p", st); \
-	else \
-		print_stat(st); \
-	PRINT_SYSCALL_FOOTER(rc)
+#  define INVOKE()					\
+	do {						\
+		rc = TEST_SYSCALL_INVOKE(sample, st);	\
+		PRINT_SYSCALL_HEADER(sample);		\
+		if (rc)					\
+			printf("%p", st);		\
+		else					\
+			print_stat(st);			\
+		PRINT_SYSCALL_FOOTER(rc);		\
+	} while (0)
 
-#  define SET_FLAGS_INVOKE(flags, flags_str) \
-	TEST_SYSCALL_STATX_FLAGS = flags; \
-	TEST_SYSCALL_STATX_FLAGS_STR = flags_str; \
-	INVOKE()
+#  define SET_FLAGS_INVOKE(flags, flags_str)			\
+	do {							\
+		TEST_SYSCALL_STATX_FLAGS = flags;		\
+		TEST_SYSCALL_STATX_FLAGS_STR = flags_str;	\
+		INVOKE();					\
+	} while (0)
 
-#  define SET_MASK_INVOKE(mask, mask_str) \
-	TEST_SYSCALL_STATX_MASK = mask; \
-	TEST_SYSCALL_STATX_MASK_STR = mask_str; \
-	INVOKE()
+#  define SET_MASK_INVOKE(mask, mask_str)			\
+	do {							\
+		TEST_SYSCALL_STATX_MASK = mask;			\
+		TEST_SYSCALL_STATX_MASK_STR = mask_str;		\
+		INVOKE();					\
+	} while (0)
 
 	unsigned old_flags = TEST_SYSCALL_STATX_FLAGS;
 	const char *old_flags_str = TEST_SYSCALL_STATX_FLAGS_STR;
diff --git a/tests-m32/zeroargc.c b/tests-m32/zeroargc.c
new file mode 100644
index 0000000..05d47dc
--- /dev/null
+++ b/tests-m32/zeroargc.c
@@ -0,0 +1,43 @@
+/*
+ * Execute an executable with zero argc and specified anvironment.
+ *
+ * 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 "tests.h"
+#include <stdlib.h>
+#include <unistd.h>
+
+int
+main(const int ac, char **const av)
+{
+	if (ac < 2)
+		error_msg_and_fail("missing operand");
+	const char *const path = av[1];
+	av[1] = 0;
+	execve(path, av + 1, av + 2);
+	perror_msg_and_fail("execve: %s", path);
+}
diff --git a/tests-mx32/Makefile b/tests-mx32/Makefile
deleted file mode 100644
index 783858d..0000000
--- a/tests-mx32/Makefile
+++ /dev/null
@@ -1,7114 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# tests-mx32/Makefile.  Generated from Makefile.in by configure.
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-
-# Automake input for strace tests.
-#
-# Copyright (c) 2011-2016 Dmitry V. Levin <ldv@altlinux.org>
-# Copyright (c) 2011-2017 The strace developers.
-# 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.
-
-# scno.h make rules for strace.
-#
-# 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.
-
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/strace
-pkgincludedir = $(includedir)/strace
-pkglibdir = $(libdir)/strace
-pkglibexecdir = $(libexecdir)/strace
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = x86_64-pc-linux-gnu
-host_triplet = x86_64-pc-linux-gnu
-DIST_COMMON = $(srcdir)/pure_executables.am $(srcdir)/gen_tests.am \
-	$(srcdir)/../scno.am $(srcdir)/Makefile.in \
-	$(srcdir)/Makefile.am $(top_srcdir)/depcomp \
-	$(top_srcdir)/test-driver
-check_PROGRAMS = $(am__EXEEXT_1) answer$(EXEEXT) attach-f-p$(EXEEXT) \
-	attach-f-p-cmd$(EXEEXT) attach-p-cmd-cmd$(EXEEXT) \
-	attach-p-cmd-p$(EXEEXT) caps-abbrev$(EXEEXT) count-f$(EXEEXT) \
-	execve-v$(EXEEXT) execveat-v$(EXEEXT) \
-	filter-unavailable$(EXEEXT) fork-f$(EXEEXT) getpid$(EXEEXT) \
-	getppid$(EXEEXT) gettid$(EXEEXT) int_0x80$(EXEEXT) \
-	ioctl_dm-v$(EXEEXT) ioctl_evdev-v$(EXEEXT) \
-	ioctl_loop-nv$(EXEEXT) ioctl_loop-v$(EXEEXT) \
-	ioctl_nsfs$(EXEEXT) ioctl_rtc-v$(EXEEXT) ksysent$(EXEEXT) \
-	mmsg-silent$(EXEEXT) mmsg_name-v$(EXEEXT) \
-	msg_control-v$(EXEEXT) net-accept-connect$(EXEEXT) \
-	netlink_inet_diag$(EXEEXT) netlink_netlink_diag$(EXEEXT) \
-	netlink_unix_diag$(EXEEXT) nsyscalls$(EXEEXT) pc$(EXEEXT) \
-	perf_event_open_nonverbose$(EXEEXT) \
-	perf_event_open_unabbrev$(EXEEXT) ppoll-v$(EXEEXT) \
-	prctl-seccomp-filter-v$(EXEEXT) prctl-seccomp-strict$(EXEEXT) \
-	print_maxfd$(EXEEXT) qual_fault$(EXEEXT) \
-	qual_inject-error-signal$(EXEEXT) qual_inject-retval$(EXEEXT) \
-	qual_inject-signal$(EXEEXT) qual_signal$(EXEEXT) \
-	quotactl-v$(EXEEXT) quotactl-xfs-v$(EXEEXT) \
-	redirect-fds$(EXEEXT) restart_syscall$(EXEEXT) \
-	scm_rights$(EXEEXT) seccomp-filter-v$(EXEEXT) \
-	seccomp-strict$(EXEEXT) set_ptracer_any$(EXEEXT) \
-	signal_receive$(EXEEXT) sleep$(EXEEXT) stack-fcall$(EXEEXT) \
-	threads-execve$(EXEEXT) unix-pair-send-recv$(EXEEXT) \
-	unix-pair-sendto-recvfrom$(EXEEXT) vfork-f$(EXEEXT) \
-	wait4-v$(EXEEXT) waitid-v$(EXEEXT)
-TESTS = $(GEN_TESTS) $(DECODER_TESTS) $(MISC_TESTS) $(am__EXEEXT_2)
-subdir = tests-mx32
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_code_coverage.m4 \
-	$(top_srcdir)/m4/ax_prog_cc_for_build.m4 \
-	$(top_srcdir)/m4/ax_valgrind_check.m4 \
-	$(top_srcdir)/m4/mpers.m4 \
-	$(top_srcdir)/m4/st_save_restore_var.m4 \
-	$(top_srcdir)/m4/st_warn_cflags.m4 \
-	$(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AR = ar
-ARFLAGS = cru
-AM_V_AR = $(am__v_AR_$(V))
-am__v_AR_ = $(am__v_AR_$(AM_DEFAULT_VERBOSITY))
-am__v_AR_0 = @echo "  AR      " $@;
-am__v_AR_1 = 
-libtests_a_AR = $(AR) $(ARFLAGS)
-libtests_a_LIBADD =
-am_libtests_a_OBJECTS = libtests_a-errno2name.$(OBJEXT) \
-	libtests_a-error_msg.$(OBJEXT) \
-	libtests_a-fill_memory.$(OBJEXT) \
-	libtests_a-get_page_size.$(OBJEXT) \
-	libtests_a-get_sigset_size.$(OBJEXT) \
-	libtests_a-hexdump_strdup.$(OBJEXT) \
-	libtests_a-hexquote_strndup.$(OBJEXT) \
-	libtests_a-inode_of_sockfd.$(OBJEXT) \
-	libtests_a-libmmsg.$(OBJEXT) \
-	libtests_a-libsocketcall.$(OBJEXT) \
-	libtests_a-overflowuid.$(OBJEXT) \
-	libtests_a-pipe_maxfd.$(OBJEXT) \
-	libtests_a-print_quoted_string.$(OBJEXT) \
-	libtests_a-print_time.$(OBJEXT) \
-	libtests_a-printflags.$(OBJEXT) libtests_a-printxval.$(OBJEXT) \
-	libtests_a-signal2name.$(OBJEXT) \
-	libtests_a-skip_unavailable.$(OBJEXT) \
-	libtests_a-sprintrc.$(OBJEXT) libtests_a-tail_alloc.$(OBJEXT) \
-	libtests_a-tprintf.$(OBJEXT)
-libtests_a_OBJECTS = $(am_libtests_a_OBJECTS)
-am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \
-	access$(EXEEXT) acct$(EXEEXT) add_key$(EXEEXT) \
-	adjtimex$(EXEEXT) aio$(EXEEXT) alarm$(EXEEXT) bpf$(EXEEXT) \
-	brk$(EXEEXT) btrfs$(EXEEXT) caps$(EXEEXT) chmod$(EXEEXT) \
-	chown$(EXEEXT) chown32$(EXEEXT) chroot$(EXEEXT) \
-	clock_adjtime$(EXEEXT) clock_nanosleep$(EXEEXT) \
-	clock_xettime$(EXEEXT) copy_file_range$(EXEEXT) creat$(EXEEXT) \
-	delete_module$(EXEEXT) dup$(EXEEXT) dup2$(EXEEXT) \
-	dup3$(EXEEXT) epoll_create$(EXEEXT) epoll_create1$(EXEEXT) \
-	epoll_ctl$(EXEEXT) epoll_pwait$(EXEEXT) epoll_wait$(EXEEXT) \
-	erestartsys$(EXEEXT) eventfd$(EXEEXT) execve$(EXEEXT) \
-	execveat$(EXEEXT) faccessat$(EXEEXT) fadvise64$(EXEEXT) \
-	fadvise64_64$(EXEEXT) fallocate$(EXEEXT) \
-	fanotify_init$(EXEEXT) fanotify_mark$(EXEEXT) fchdir$(EXEEXT) \
-	fchmod$(EXEEXT) fchmodat$(EXEEXT) fchown$(EXEEXT) \
-	fchown32$(EXEEXT) fchownat$(EXEEXT) fcntl$(EXEEXT) \
-	fcntl64$(EXEEXT) fdatasync$(EXEEXT) file_handle$(EXEEXT) \
-	file_ioctl$(EXEEXT) finit_module$(EXEEXT) flock$(EXEEXT) \
-	fstat$(EXEEXT) fstat64$(EXEEXT) fstatat64$(EXEEXT) \
-	fstatfs$(EXEEXT) fstatfs64$(EXEEXT) fsync$(EXEEXT) \
-	ftruncate$(EXEEXT) ftruncate64$(EXEEXT) futex$(EXEEXT) \
-	futimesat$(EXEEXT) get_mempolicy$(EXEEXT) getcpu$(EXEEXT) \
-	getcwd$(EXEEXT) getdents$(EXEEXT) getdents64$(EXEEXT) \
-	getegid$(EXEEXT) getegid32$(EXEEXT) geteuid$(EXEEXT) \
-	geteuid32$(EXEEXT) getgid$(EXEEXT) getgid32$(EXEEXT) \
-	getgroups$(EXEEXT) getgroups32$(EXEEXT) getpeername$(EXEEXT) \
-	getpgrp$(EXEEXT) getpid$(EXEEXT) getppid$(EXEEXT) \
-	getrandom$(EXEEXT) getresgid$(EXEEXT) getresgid32$(EXEEXT) \
-	getresuid$(EXEEXT) getresuid32$(EXEEXT) getrlimit$(EXEEXT) \
-	getrusage$(EXEEXT) getsid$(EXEEXT) getsockname$(EXEEXT) \
-	getuid$(EXEEXT) getuid32$(EXEEXT) getxxid$(EXEEXT) \
-	inet-cmsg$(EXEEXT) init_module$(EXEEXT) inotify$(EXEEXT) \
-	inotify_init1$(EXEEXT) ioctl$(EXEEXT) ioctl_block$(EXEEXT) \
-	ioctl_dm$(EXEEXT) ioctl_evdev$(EXEEXT) ioctl_loop$(EXEEXT) \
-	ioctl_mtd$(EXEEXT) ioctl_rtc$(EXEEXT) ioctl_scsi$(EXEEXT) \
-	ioctl_sg_io_v3$(EXEEXT) ioctl_sg_io_v4$(EXEEXT) \
-	ioctl_sock_gifconf$(EXEEXT) ioctl_uffdio$(EXEEXT) \
-	ioctl_v4l2$(EXEEXT) ioperm$(EXEEXT) iopl$(EXEEXT) \
-	ioprio$(EXEEXT) ip_mreq$(EXEEXT) ipc$(EXEEXT) ipc_msg$(EXEEXT) \
-	ipc_msgbuf$(EXEEXT) ipc_sem$(EXEEXT) ipc_shm$(EXEEXT) \
-	kcmp$(EXEEXT) kexec_file_load$(EXEEXT) kexec_load$(EXEEXT) \
-	keyctl$(EXEEXT) kill$(EXEEXT) lchown$(EXEEXT) \
-	lchown32$(EXEEXT) link$(EXEEXT) linkat$(EXEEXT) \
-	llseek$(EXEEXT) lookup_dcookie$(EXEEXT) lseek$(EXEEXT) \
-	lstat$(EXEEXT) lstat64$(EXEEXT) madvise$(EXEEXT) \
-	mbind$(EXEEXT) membarrier$(EXEEXT) memfd_create$(EXEEXT) \
-	migrate_pages$(EXEEXT) mincore$(EXEEXT) mkdir$(EXEEXT) \
-	mkdirat$(EXEEXT) mknod$(EXEEXT) mknodat$(EXEEXT) \
-	mlock$(EXEEXT) mlock2$(EXEEXT) mlockall$(EXEEXT) mmap$(EXEEXT) \
-	mmap64$(EXEEXT) mmsg$(EXEEXT) mmsg_name$(EXEEXT) \
-	mount$(EXEEXT) move_pages$(EXEEXT) mq$(EXEEXT) \
-	mq_sendrecv$(EXEEXT) mq_sendrecv-read$(EXEEXT) \
-	mq_sendrecv-write$(EXEEXT) msg_control$(EXEEXT) \
-	msg_name$(EXEEXT) munlockall$(EXEEXT) nanosleep$(EXEEXT) \
-	net-icmp_filter$(EXEEXT) net-sockaddr$(EXEEXT) \
-	net-y-unix$(EXEEXT) net-yy-inet$(EXEEXT) \
-	net-yy-netlink$(EXEEXT) net-yy-unix$(EXEEXT) \
-	netlink_protocol$(EXEEXT) newfstatat$(EXEEXT) \
-	old_mmap$(EXEEXT) oldfstat$(EXEEXT) oldlstat$(EXEEXT) \
-	oldselect$(EXEEXT) oldstat$(EXEEXT) open$(EXEEXT) \
-	openat$(EXEEXT) osf_utimes$(EXEEXT) pause$(EXEEXT) \
-	perf_event_open$(EXEEXT) personality$(EXEEXT) pipe$(EXEEXT) \
-	pipe2$(EXEEXT) pkey_alloc$(EXEEXT) pkey_free$(EXEEXT) \
-	pkey_mprotect$(EXEEXT) poll$(EXEEXT) ppoll$(EXEEXT) \
-	prctl-arg2-intptr$(EXEEXT) prctl-dumpable$(EXEEXT) \
-	prctl-name$(EXEEXT) prctl-no-args$(EXEEXT) \
-	prctl-pdeathsig$(EXEEXT) prctl-securebits$(EXEEXT) \
-	prctl-tid_address$(EXEEXT) prctl-tsc$(EXEEXT) \
-	pread64-pwrite64$(EXEEXT) preadv$(EXEEXT) \
-	preadv-pwritev$(EXEEXT) preadv2-pwritev2$(EXEEXT) \
-	printstr$(EXEEXT) prlimit64$(EXEEXT) process_vm_readv$(EXEEXT) \
-	process_vm_writev$(EXEEXT) pselect6$(EXEEXT) ptrace$(EXEEXT) \
-	pwritev$(EXEEXT) quotactl$(EXEEXT) quotactl-xfs$(EXEEXT) \
-	read-write$(EXEEXT) readahead$(EXEEXT) readdir$(EXEEXT) \
-	readlink$(EXEEXT) readlinkat$(EXEEXT) readv$(EXEEXT) \
-	reboot$(EXEEXT) recvfrom$(EXEEXT) recvmmsg-timeout$(EXEEXT) \
-	recvmsg$(EXEEXT) remap_file_pages$(EXEEXT) rename$(EXEEXT) \
-	renameat$(EXEEXT) renameat2$(EXEEXT) request_key$(EXEEXT) \
-	rmdir$(EXEEXT) rt_sigpending$(EXEEXT) rt_sigprocmask$(EXEEXT) \
-	rt_sigqueueinfo$(EXEEXT) rt_sigreturn$(EXEEXT) \
-	rt_sigsuspend$(EXEEXT) rt_sigtimedwait$(EXEEXT) \
-	rt_tgsigqueueinfo$(EXEEXT) sched_get_priority_mxx$(EXEEXT) \
-	sched_rr_get_interval$(EXEEXT) sched_xetaffinity$(EXEEXT) \
-	sched_xetattr$(EXEEXT) sched_xetparam$(EXEEXT) \
-	sched_xetscheduler$(EXEEXT) sched_yield$(EXEEXT) \
-	seccomp-filter$(EXEEXT) select$(EXEEXT) semop$(EXEEXT) \
-	sendfile$(EXEEXT) sendfile64$(EXEEXT) set_mempolicy$(EXEEXT) \
-	setdomainname$(EXEEXT) setfsgid$(EXEEXT) setfsgid32$(EXEEXT) \
-	setfsuid$(EXEEXT) setfsuid32$(EXEEXT) setgid$(EXEEXT) \
-	setgid32$(EXEEXT) setgroups$(EXEEXT) setgroups32$(EXEEXT) \
-	sethostname$(EXEEXT) setns$(EXEEXT) setregid$(EXEEXT) \
-	setregid32$(EXEEXT) setresgid$(EXEEXT) setresgid32$(EXEEXT) \
-	setresuid$(EXEEXT) setresuid32$(EXEEXT) setreuid$(EXEEXT) \
-	setreuid32$(EXEEXT) setrlimit$(EXEEXT) setuid$(EXEEXT) \
-	setuid32$(EXEEXT) shmxt$(EXEEXT) shutdown$(EXEEXT) \
-	sigaction$(EXEEXT) sigaltstack$(EXEEXT) siginfo$(EXEEXT) \
-	signalfd4$(EXEEXT) sigreturn$(EXEEXT) sigsuspend$(EXEEXT) \
-	socketcall$(EXEEXT) splice$(EXEEXT) stat$(EXEEXT) \
-	stat64$(EXEEXT) statfs$(EXEEXT) statfs64$(EXEEXT) \
-	statx$(EXEEXT) swap$(EXEEXT) sxetmask$(EXEEXT) \
-	symlink$(EXEEXT) symlinkat$(EXEEXT) sync$(EXEEXT) \
-	sync_file_range$(EXEEXT) sync_file_range2$(EXEEXT) \
-	sysinfo$(EXEEXT) syslog$(EXEEXT) tee$(EXEEXT) time$(EXEEXT) \
-	timer_create$(EXEEXT) timer_xettime$(EXEEXT) \
-	timerfd_xettime$(EXEEXT) times$(EXEEXT) times-fail$(EXEEXT) \
-	truncate$(EXEEXT) truncate64$(EXEEXT) ugetrlimit$(EXEEXT) \
-	uio$(EXEEXT) umask$(EXEEXT) umount$(EXEEXT) umount2$(EXEEXT) \
-	umoven-illptr$(EXEEXT) umovestr$(EXEEXT) \
-	umovestr-illptr$(EXEEXT) umovestr2$(EXEEXT) umovestr3$(EXEEXT) \
-	uname$(EXEEXT) unlink$(EXEEXT) unlinkat$(EXEEXT) \
-	unshare$(EXEEXT) userfaultfd$(EXEEXT) ustat$(EXEEXT) \
-	utime$(EXEEXT) utimensat$(EXEEXT) utimes$(EXEEXT) \
-	vhangup$(EXEEXT) vmsplice$(EXEEXT) wait4$(EXEEXT) \
-	waitid$(EXEEXT) waitpid$(EXEEXT) xattr$(EXEEXT) \
-	xattr-strings$(EXEEXT) xet_robust_list$(EXEEXT) \
-	xetitimer$(EXEEXT) xetpgid$(EXEEXT) xetpriority$(EXEEXT) \
-	xettimeofday$(EXEEXT)
-_newselect_SOURCES = _newselect.c
-_newselect_OBJECTS = _newselect.$(OBJEXT)
-_newselect_LDADD = $(LDADD)
-_newselect_DEPENDENCIES = libtests.a
-accept_SOURCES = accept.c
-accept_OBJECTS = accept.$(OBJEXT)
-accept_LDADD = $(LDADD)
-accept_DEPENDENCIES = libtests.a
-accept4_SOURCES = accept4.c
-accept4_OBJECTS = accept4.$(OBJEXT)
-accept4_LDADD = $(LDADD)
-accept4_DEPENDENCIES = libtests.a
-access_SOURCES = access.c
-access_OBJECTS = access.$(OBJEXT)
-access_LDADD = $(LDADD)
-access_DEPENDENCIES = libtests.a
-acct_SOURCES = acct.c
-acct_OBJECTS = acct.$(OBJEXT)
-acct_LDADD = $(LDADD)
-acct_DEPENDENCIES = libtests.a
-add_key_SOURCES = add_key.c
-add_key_OBJECTS = add_key.$(OBJEXT)
-add_key_LDADD = $(LDADD)
-add_key_DEPENDENCIES = libtests.a
-adjtimex_SOURCES = adjtimex.c
-adjtimex_OBJECTS = adjtimex.$(OBJEXT)
-adjtimex_LDADD = $(LDADD)
-adjtimex_DEPENDENCIES = libtests.a
-aio_SOURCES = aio.c
-aio_OBJECTS = aio.$(OBJEXT)
-aio_LDADD = $(LDADD)
-aio_DEPENDENCIES = libtests.a
-alarm_SOURCES = alarm.c
-alarm_OBJECTS = alarm.$(OBJEXT)
-alarm_LDADD = $(LDADD)
-alarm_DEPENDENCIES = libtests.a
-answer_SOURCES = answer.c
-answer_OBJECTS = answer.$(OBJEXT)
-answer_LDADD = $(LDADD)
-answer_DEPENDENCIES = libtests.a
-attach_f_p_SOURCES = attach-f-p.c
-attach_f_p_OBJECTS = attach-f-p.$(OBJEXT)
-attach_f_p_DEPENDENCIES = $(LDADD)
-attach_f_p_cmd_SOURCES = attach-f-p-cmd.c
-attach_f_p_cmd_OBJECTS = attach-f-p-cmd.$(OBJEXT)
-attach_f_p_cmd_LDADD = $(LDADD)
-attach_f_p_cmd_DEPENDENCIES = libtests.a
-attach_p_cmd_cmd_SOURCES = attach-p-cmd-cmd.c
-attach_p_cmd_cmd_OBJECTS = attach-p-cmd-cmd.$(OBJEXT)
-attach_p_cmd_cmd_LDADD = $(LDADD)
-attach_p_cmd_cmd_DEPENDENCIES = libtests.a
-attach_p_cmd_p_SOURCES = attach-p-cmd-p.c
-attach_p_cmd_p_OBJECTS = attach-p-cmd-p.$(OBJEXT)
-attach_p_cmd_p_LDADD = $(LDADD)
-attach_p_cmd_p_DEPENDENCIES = libtests.a
-bpf_SOURCES = bpf.c
-bpf_OBJECTS = bpf.$(OBJEXT)
-bpf_LDADD = $(LDADD)
-bpf_DEPENDENCIES = libtests.a
-brk_SOURCES = brk.c
-brk_OBJECTS = brk.$(OBJEXT)
-brk_LDADD = $(LDADD)
-brk_DEPENDENCIES = libtests.a
-btrfs_SOURCES = btrfs.c
-btrfs_OBJECTS = btrfs.$(OBJEXT)
-btrfs_LDADD = $(LDADD)
-btrfs_DEPENDENCIES = libtests.a
-caps_SOURCES = caps.c
-caps_OBJECTS = caps.$(OBJEXT)
-caps_LDADD = $(LDADD)
-caps_DEPENDENCIES = libtests.a
-caps_abbrev_SOURCES = caps-abbrev.c
-caps_abbrev_OBJECTS = caps-abbrev.$(OBJEXT)
-caps_abbrev_LDADD = $(LDADD)
-caps_abbrev_DEPENDENCIES = libtests.a
-chmod_SOURCES = chmod.c
-chmod_OBJECTS = chmod.$(OBJEXT)
-chmod_LDADD = $(LDADD)
-chmod_DEPENDENCIES = libtests.a
-chown_SOURCES = chown.c
-chown_OBJECTS = chown.$(OBJEXT)
-chown_LDADD = $(LDADD)
-chown_DEPENDENCIES = libtests.a
-chown32_SOURCES = chown32.c
-chown32_OBJECTS = chown32.$(OBJEXT)
-chown32_LDADD = $(LDADD)
-chown32_DEPENDENCIES = libtests.a
-chroot_SOURCES = chroot.c
-chroot_OBJECTS = chroot.$(OBJEXT)
-chroot_LDADD = $(LDADD)
-chroot_DEPENDENCIES = libtests.a
-clock_adjtime_SOURCES = clock_adjtime.c
-clock_adjtime_OBJECTS = clock_adjtime.$(OBJEXT)
-clock_adjtime_LDADD = $(LDADD)
-clock_adjtime_DEPENDENCIES = libtests.a
-clock_nanosleep_SOURCES = clock_nanosleep.c
-clock_nanosleep_OBJECTS = clock_nanosleep.$(OBJEXT)
-clock_nanosleep_LDADD = $(LDADD)
-clock_nanosleep_DEPENDENCIES = libtests.a
-clock_xettime_SOURCES = clock_xettime.c
-clock_xettime_OBJECTS = clock_xettime.$(OBJEXT)
-clock_xettime_DEPENDENCIES = $(LDADD)
-copy_file_range_SOURCES = copy_file_range.c
-copy_file_range_OBJECTS = copy_file_range.$(OBJEXT)
-copy_file_range_LDADD = $(LDADD)
-copy_file_range_DEPENDENCIES = libtests.a
-count_f_SOURCES = count-f.c
-count_f_OBJECTS = count-f.$(OBJEXT)
-count_f_DEPENDENCIES = $(LDADD)
-creat_SOURCES = creat.c
-creat_OBJECTS = creat.$(OBJEXT)
-creat_LDADD = $(LDADD)
-creat_DEPENDENCIES = libtests.a
-delete_module_SOURCES = delete_module.c
-delete_module_OBJECTS = delete_module.$(OBJEXT)
-delete_module_LDADD = $(LDADD)
-delete_module_DEPENDENCIES = libtests.a
-dup_SOURCES = dup.c
-dup_OBJECTS = dup.$(OBJEXT)
-dup_LDADD = $(LDADD)
-dup_DEPENDENCIES = libtests.a
-dup2_SOURCES = dup2.c
-dup2_OBJECTS = dup2.$(OBJEXT)
-dup2_LDADD = $(LDADD)
-dup2_DEPENDENCIES = libtests.a
-dup3_SOURCES = dup3.c
-dup3_OBJECTS = dup3.$(OBJEXT)
-dup3_LDADD = $(LDADD)
-dup3_DEPENDENCIES = libtests.a
-epoll_create_SOURCES = epoll_create.c
-epoll_create_OBJECTS = epoll_create.$(OBJEXT)
-epoll_create_LDADD = $(LDADD)
-epoll_create_DEPENDENCIES = libtests.a
-epoll_create1_SOURCES = epoll_create1.c
-epoll_create1_OBJECTS = epoll_create1.$(OBJEXT)
-epoll_create1_LDADD = $(LDADD)
-epoll_create1_DEPENDENCIES = libtests.a
-epoll_ctl_SOURCES = epoll_ctl.c
-epoll_ctl_OBJECTS = epoll_ctl.$(OBJEXT)
-epoll_ctl_LDADD = $(LDADD)
-epoll_ctl_DEPENDENCIES = libtests.a
-epoll_pwait_SOURCES = epoll_pwait.c
-epoll_pwait_OBJECTS = epoll_pwait.$(OBJEXT)
-epoll_pwait_LDADD = $(LDADD)
-epoll_pwait_DEPENDENCIES = libtests.a
-epoll_wait_SOURCES = epoll_wait.c
-epoll_wait_OBJECTS = epoll_wait.$(OBJEXT)
-epoll_wait_LDADD = $(LDADD)
-epoll_wait_DEPENDENCIES = libtests.a
-erestartsys_SOURCES = erestartsys.c
-erestartsys_OBJECTS = erestartsys.$(OBJEXT)
-erestartsys_LDADD = $(LDADD)
-erestartsys_DEPENDENCIES = libtests.a
-eventfd_SOURCES = eventfd.c
-eventfd_OBJECTS = eventfd.$(OBJEXT)
-eventfd_LDADD = $(LDADD)
-eventfd_DEPENDENCIES = libtests.a
-execve_SOURCES = execve.c
-execve_OBJECTS = execve.$(OBJEXT)
-execve_LDADD = $(LDADD)
-execve_DEPENDENCIES = libtests.a
-execve_v_SOURCES = execve-v.c
-execve_v_OBJECTS = execve-v.$(OBJEXT)
-execve_v_LDADD = $(LDADD)
-execve_v_DEPENDENCIES = libtests.a
-execveat_SOURCES = execveat.c
-execveat_OBJECTS = execveat.$(OBJEXT)
-execveat_LDADD = $(LDADD)
-execveat_DEPENDENCIES = libtests.a
-execveat_v_SOURCES = execveat-v.c
-execveat_v_OBJECTS = execveat-v.$(OBJEXT)
-execveat_v_LDADD = $(LDADD)
-execveat_v_DEPENDENCIES = libtests.a
-faccessat_SOURCES = faccessat.c
-faccessat_OBJECTS = faccessat.$(OBJEXT)
-faccessat_LDADD = $(LDADD)
-faccessat_DEPENDENCIES = libtests.a
-fadvise64_SOURCES = fadvise64.c
-fadvise64_OBJECTS = fadvise64.$(OBJEXT)
-fadvise64_LDADD = $(LDADD)
-fadvise64_DEPENDENCIES = libtests.a
-fadvise64_64_SOURCES = fadvise64_64.c
-fadvise64_64_OBJECTS = fadvise64_64.$(OBJEXT)
-fadvise64_64_LDADD = $(LDADD)
-fadvise64_64_DEPENDENCIES = libtests.a
-fallocate_SOURCES = fallocate.c
-fallocate_OBJECTS = fallocate.$(OBJEXT)
-fallocate_LDADD = $(LDADD)
-fallocate_DEPENDENCIES = libtests.a
-fanotify_init_SOURCES = fanotify_init.c
-fanotify_init_OBJECTS = fanotify_init.$(OBJEXT)
-fanotify_init_LDADD = $(LDADD)
-fanotify_init_DEPENDENCIES = libtests.a
-fanotify_mark_SOURCES = fanotify_mark.c
-fanotify_mark_OBJECTS = fanotify_mark.$(OBJEXT)
-fanotify_mark_LDADD = $(LDADD)
-fanotify_mark_DEPENDENCIES = libtests.a
-fchdir_SOURCES = fchdir.c
-fchdir_OBJECTS = fchdir.$(OBJEXT)
-fchdir_LDADD = $(LDADD)
-fchdir_DEPENDENCIES = libtests.a
-fchmod_SOURCES = fchmod.c
-fchmod_OBJECTS = fchmod.$(OBJEXT)
-fchmod_LDADD = $(LDADD)
-fchmod_DEPENDENCIES = libtests.a
-fchmodat_SOURCES = fchmodat.c
-fchmodat_OBJECTS = fchmodat.$(OBJEXT)
-fchmodat_LDADD = $(LDADD)
-fchmodat_DEPENDENCIES = libtests.a
-fchown_SOURCES = fchown.c
-fchown_OBJECTS = fchown.$(OBJEXT)
-fchown_LDADD = $(LDADD)
-fchown_DEPENDENCIES = libtests.a
-fchown32_SOURCES = fchown32.c
-fchown32_OBJECTS = fchown32.$(OBJEXT)
-fchown32_LDADD = $(LDADD)
-fchown32_DEPENDENCIES = libtests.a
-fchownat_SOURCES = fchownat.c
-fchownat_OBJECTS = fchownat.$(OBJEXT)
-fchownat_LDADD = $(LDADD)
-fchownat_DEPENDENCIES = libtests.a
-fcntl_SOURCES = fcntl.c
-fcntl_OBJECTS = fcntl.$(OBJEXT)
-fcntl_LDADD = $(LDADD)
-fcntl_DEPENDENCIES = libtests.a
-fcntl64_SOURCES = fcntl64.c
-fcntl64_OBJECTS = fcntl64.$(OBJEXT)
-fcntl64_LDADD = $(LDADD)
-fcntl64_DEPENDENCIES = libtests.a
-fdatasync_SOURCES = fdatasync.c
-fdatasync_OBJECTS = fdatasync.$(OBJEXT)
-fdatasync_LDADD = $(LDADD)
-fdatasync_DEPENDENCIES = libtests.a
-file_handle_SOURCES = file_handle.c
-file_handle_OBJECTS = file_handle.$(OBJEXT)
-file_handle_LDADD = $(LDADD)
-file_handle_DEPENDENCIES = libtests.a
-file_ioctl_SOURCES = file_ioctl.c
-file_ioctl_OBJECTS = file_ioctl.$(OBJEXT)
-file_ioctl_LDADD = $(LDADD)
-file_ioctl_DEPENDENCIES = libtests.a
-filter_unavailable_SOURCES = filter-unavailable.c
-filter_unavailable_OBJECTS = filter-unavailable.$(OBJEXT)
-filter_unavailable_DEPENDENCIES = $(LDADD)
-finit_module_SOURCES = finit_module.c
-finit_module_OBJECTS = finit_module.$(OBJEXT)
-finit_module_LDADD = $(LDADD)
-finit_module_DEPENDENCIES = libtests.a
-flock_SOURCES = flock.c
-flock_OBJECTS = flock.$(OBJEXT)
-flock_LDADD = $(LDADD)
-flock_DEPENDENCIES = libtests.a
-fork_f_SOURCES = fork-f.c
-fork_f_OBJECTS = fork-f.$(OBJEXT)
-fork_f_LDADD = $(LDADD)
-fork_f_DEPENDENCIES = libtests.a
-fstat_SOURCES = fstat.c
-fstat_OBJECTS = fstat.$(OBJEXT)
-fstat_LDADD = $(LDADD)
-fstat_DEPENDENCIES = libtests.a
-fstat64_SOURCES = fstat64.c
-fstat64_OBJECTS = fstat64-fstat64.$(OBJEXT)
-fstat64_LDADD = $(LDADD)
-fstat64_DEPENDENCIES = libtests.a
-fstatat64_SOURCES = fstatat64.c
-fstatat64_OBJECTS = fstatat64-fstatat64.$(OBJEXT)
-fstatat64_LDADD = $(LDADD)
-fstatat64_DEPENDENCIES = libtests.a
-fstatfs_SOURCES = fstatfs.c
-fstatfs_OBJECTS = fstatfs.$(OBJEXT)
-fstatfs_LDADD = $(LDADD)
-fstatfs_DEPENDENCIES = libtests.a
-fstatfs64_SOURCES = fstatfs64.c
-fstatfs64_OBJECTS = fstatfs64.$(OBJEXT)
-fstatfs64_LDADD = $(LDADD)
-fstatfs64_DEPENDENCIES = libtests.a
-fsync_SOURCES = fsync.c
-fsync_OBJECTS = fsync.$(OBJEXT)
-fsync_LDADD = $(LDADD)
-fsync_DEPENDENCIES = libtests.a
-ftruncate_SOURCES = ftruncate.c
-ftruncate_OBJECTS = ftruncate.$(OBJEXT)
-ftruncate_LDADD = $(LDADD)
-ftruncate_DEPENDENCIES = libtests.a
-ftruncate64_SOURCES = ftruncate64.c
-ftruncate64_OBJECTS = ftruncate64-ftruncate64.$(OBJEXT)
-ftruncate64_LDADD = $(LDADD)
-ftruncate64_DEPENDENCIES = libtests.a
-futex_SOURCES = futex.c
-futex_OBJECTS = futex.$(OBJEXT)
-futex_LDADD = $(LDADD)
-futex_DEPENDENCIES = libtests.a
-futimesat_SOURCES = futimesat.c
-futimesat_OBJECTS = futimesat.$(OBJEXT)
-futimesat_LDADD = $(LDADD)
-futimesat_DEPENDENCIES = libtests.a
-get_mempolicy_SOURCES = get_mempolicy.c
-get_mempolicy_OBJECTS = get_mempolicy.$(OBJEXT)
-get_mempolicy_LDADD = $(LDADD)
-get_mempolicy_DEPENDENCIES = libtests.a
-getcpu_SOURCES = getcpu.c
-getcpu_OBJECTS = getcpu.$(OBJEXT)
-getcpu_LDADD = $(LDADD)
-getcpu_DEPENDENCIES = libtests.a
-getcwd_SOURCES = getcwd.c
-getcwd_OBJECTS = getcwd.$(OBJEXT)
-getcwd_LDADD = $(LDADD)
-getcwd_DEPENDENCIES = libtests.a
-getdents_SOURCES = getdents.c
-getdents_OBJECTS = getdents.$(OBJEXT)
-getdents_LDADD = $(LDADD)
-getdents_DEPENDENCIES = libtests.a
-getdents64_SOURCES = getdents64.c
-getdents64_OBJECTS = getdents64.$(OBJEXT)
-getdents64_LDADD = $(LDADD)
-getdents64_DEPENDENCIES = libtests.a
-getegid_SOURCES = getegid.c
-getegid_OBJECTS = getegid.$(OBJEXT)
-getegid_LDADD = $(LDADD)
-getegid_DEPENDENCIES = libtests.a
-getegid32_SOURCES = getegid32.c
-getegid32_OBJECTS = getegid32.$(OBJEXT)
-getegid32_LDADD = $(LDADD)
-getegid32_DEPENDENCIES = libtests.a
-geteuid_SOURCES = geteuid.c
-geteuid_OBJECTS = geteuid.$(OBJEXT)
-geteuid_LDADD = $(LDADD)
-geteuid_DEPENDENCIES = libtests.a
-geteuid32_SOURCES = geteuid32.c
-geteuid32_OBJECTS = geteuid32.$(OBJEXT)
-geteuid32_LDADD = $(LDADD)
-geteuid32_DEPENDENCIES = libtests.a
-getgid_SOURCES = getgid.c
-getgid_OBJECTS = getgid.$(OBJEXT)
-getgid_LDADD = $(LDADD)
-getgid_DEPENDENCIES = libtests.a
-getgid32_SOURCES = getgid32.c
-getgid32_OBJECTS = getgid32.$(OBJEXT)
-getgid32_LDADD = $(LDADD)
-getgid32_DEPENDENCIES = libtests.a
-getgroups_SOURCES = getgroups.c
-getgroups_OBJECTS = getgroups.$(OBJEXT)
-getgroups_LDADD = $(LDADD)
-getgroups_DEPENDENCIES = libtests.a
-getgroups32_SOURCES = getgroups32.c
-getgroups32_OBJECTS = getgroups32.$(OBJEXT)
-getgroups32_LDADD = $(LDADD)
-getgroups32_DEPENDENCIES = libtests.a
-getpeername_SOURCES = getpeername.c
-getpeername_OBJECTS = getpeername.$(OBJEXT)
-getpeername_LDADD = $(LDADD)
-getpeername_DEPENDENCIES = libtests.a
-getpgrp_SOURCES = getpgrp.c
-getpgrp_OBJECTS = getpgrp.$(OBJEXT)
-getpgrp_LDADD = $(LDADD)
-getpgrp_DEPENDENCIES = libtests.a
-getpid_SOURCES = getpid.c
-getpid_OBJECTS = getpid.$(OBJEXT)
-getpid_LDADD = $(LDADD)
-getpid_DEPENDENCIES = libtests.a
-getppid_SOURCES = getppid.c
-getppid_OBJECTS = getppid.$(OBJEXT)
-getppid_LDADD = $(LDADD)
-getppid_DEPENDENCIES = libtests.a
-getrandom_SOURCES = getrandom.c
-getrandom_OBJECTS = getrandom.$(OBJEXT)
-getrandom_LDADD = $(LDADD)
-getrandom_DEPENDENCIES = libtests.a
-getresgid_SOURCES = getresgid.c
-getresgid_OBJECTS = getresgid.$(OBJEXT)
-getresgid_LDADD = $(LDADD)
-getresgid_DEPENDENCIES = libtests.a
-getresgid32_SOURCES = getresgid32.c
-getresgid32_OBJECTS = getresgid32.$(OBJEXT)
-getresgid32_LDADD = $(LDADD)
-getresgid32_DEPENDENCIES = libtests.a
-getresuid_SOURCES = getresuid.c
-getresuid_OBJECTS = getresuid.$(OBJEXT)
-getresuid_LDADD = $(LDADD)
-getresuid_DEPENDENCIES = libtests.a
-getresuid32_SOURCES = getresuid32.c
-getresuid32_OBJECTS = getresuid32.$(OBJEXT)
-getresuid32_LDADD = $(LDADD)
-getresuid32_DEPENDENCIES = libtests.a
-getrlimit_SOURCES = getrlimit.c
-getrlimit_OBJECTS = getrlimit.$(OBJEXT)
-getrlimit_LDADD = $(LDADD)
-getrlimit_DEPENDENCIES = libtests.a
-getrusage_SOURCES = getrusage.c
-getrusage_OBJECTS = getrusage.$(OBJEXT)
-getrusage_LDADD = $(LDADD)
-getrusage_DEPENDENCIES = libtests.a
-getsid_SOURCES = getsid.c
-getsid_OBJECTS = getsid.$(OBJEXT)
-getsid_LDADD = $(LDADD)
-getsid_DEPENDENCIES = libtests.a
-getsockname_SOURCES = getsockname.c
-getsockname_OBJECTS = getsockname.$(OBJEXT)
-getsockname_LDADD = $(LDADD)
-getsockname_DEPENDENCIES = libtests.a
-gettid_SOURCES = gettid.c
-gettid_OBJECTS = gettid.$(OBJEXT)
-gettid_LDADD = $(LDADD)
-gettid_DEPENDENCIES = libtests.a
-getuid_SOURCES = getuid.c
-getuid_OBJECTS = getuid.$(OBJEXT)
-getuid_LDADD = $(LDADD)
-getuid_DEPENDENCIES = libtests.a
-getuid32_SOURCES = getuid32.c
-getuid32_OBJECTS = getuid32.$(OBJEXT)
-getuid32_LDADD = $(LDADD)
-getuid32_DEPENDENCIES = libtests.a
-getxxid_SOURCES = getxxid.c
-getxxid_OBJECTS = getxxid.$(OBJEXT)
-getxxid_LDADD = $(LDADD)
-getxxid_DEPENDENCIES = libtests.a
-inet_cmsg_SOURCES = inet-cmsg.c
-inet_cmsg_OBJECTS = inet-cmsg.$(OBJEXT)
-inet_cmsg_LDADD = $(LDADD)
-inet_cmsg_DEPENDENCIES = libtests.a
-init_module_SOURCES = init_module.c
-init_module_OBJECTS = init_module.$(OBJEXT)
-init_module_LDADD = $(LDADD)
-init_module_DEPENDENCIES = libtests.a
-inotify_SOURCES = inotify.c
-inotify_OBJECTS = inotify.$(OBJEXT)
-inotify_LDADD = $(LDADD)
-inotify_DEPENDENCIES = libtests.a
-inotify_init1_SOURCES = inotify_init1.c
-inotify_init1_OBJECTS = inotify_init1.$(OBJEXT)
-inotify_init1_LDADD = $(LDADD)
-inotify_init1_DEPENDENCIES = libtests.a
-int_0x80_SOURCES = int_0x80.c
-int_0x80_OBJECTS = int_0x80.$(OBJEXT)
-int_0x80_LDADD = $(LDADD)
-int_0x80_DEPENDENCIES = libtests.a
-ioctl_SOURCES = ioctl.c
-ioctl_OBJECTS = ioctl.$(OBJEXT)
-ioctl_LDADD = $(LDADD)
-ioctl_DEPENDENCIES = libtests.a
-ioctl_block_SOURCES = ioctl_block.c
-ioctl_block_OBJECTS = ioctl_block.$(OBJEXT)
-ioctl_block_LDADD = $(LDADD)
-ioctl_block_DEPENDENCIES = libtests.a
-ioctl_dm_SOURCES = ioctl_dm.c
-ioctl_dm_OBJECTS = ioctl_dm.$(OBJEXT)
-ioctl_dm_LDADD = $(LDADD)
-ioctl_dm_DEPENDENCIES = libtests.a
-ioctl_dm_v_SOURCES = ioctl_dm-v.c
-ioctl_dm_v_OBJECTS = ioctl_dm-v.$(OBJEXT)
-ioctl_dm_v_LDADD = $(LDADD)
-ioctl_dm_v_DEPENDENCIES = libtests.a
-ioctl_evdev_SOURCES = ioctl_evdev.c
-ioctl_evdev_OBJECTS = ioctl_evdev.$(OBJEXT)
-ioctl_evdev_LDADD = $(LDADD)
-ioctl_evdev_DEPENDENCIES = libtests.a
-ioctl_evdev_v_SOURCES = ioctl_evdev-v.c
-ioctl_evdev_v_OBJECTS = ioctl_evdev-v.$(OBJEXT)
-ioctl_evdev_v_LDADD = $(LDADD)
-ioctl_evdev_v_DEPENDENCIES = libtests.a
-ioctl_loop_SOURCES = ioctl_loop.c
-ioctl_loop_OBJECTS = ioctl_loop.$(OBJEXT)
-ioctl_loop_LDADD = $(LDADD)
-ioctl_loop_DEPENDENCIES = libtests.a
-ioctl_loop_nv_SOURCES = ioctl_loop-nv.c
-ioctl_loop_nv_OBJECTS = ioctl_loop-nv.$(OBJEXT)
-ioctl_loop_nv_LDADD = $(LDADD)
-ioctl_loop_nv_DEPENDENCIES = libtests.a
-ioctl_loop_v_SOURCES = ioctl_loop-v.c
-ioctl_loop_v_OBJECTS = ioctl_loop-v.$(OBJEXT)
-ioctl_loop_v_LDADD = $(LDADD)
-ioctl_loop_v_DEPENDENCIES = libtests.a
-ioctl_mtd_SOURCES = ioctl_mtd.c
-ioctl_mtd_OBJECTS = ioctl_mtd.$(OBJEXT)
-ioctl_mtd_LDADD = $(LDADD)
-ioctl_mtd_DEPENDENCIES = libtests.a
-ioctl_nsfs_SOURCES = ioctl_nsfs.c
-ioctl_nsfs_OBJECTS = ioctl_nsfs.$(OBJEXT)
-ioctl_nsfs_LDADD = $(LDADD)
-ioctl_nsfs_DEPENDENCIES = libtests.a
-ioctl_rtc_SOURCES = ioctl_rtc.c
-ioctl_rtc_OBJECTS = ioctl_rtc.$(OBJEXT)
-ioctl_rtc_LDADD = $(LDADD)
-ioctl_rtc_DEPENDENCIES = libtests.a
-ioctl_rtc_v_SOURCES = ioctl_rtc-v.c
-ioctl_rtc_v_OBJECTS = ioctl_rtc-v.$(OBJEXT)
-ioctl_rtc_v_LDADD = $(LDADD)
-ioctl_rtc_v_DEPENDENCIES = libtests.a
-ioctl_scsi_SOURCES = ioctl_scsi.c
-ioctl_scsi_OBJECTS = ioctl_scsi.$(OBJEXT)
-ioctl_scsi_LDADD = $(LDADD)
-ioctl_scsi_DEPENDENCIES = libtests.a
-ioctl_sg_io_v3_SOURCES = ioctl_sg_io_v3.c
-ioctl_sg_io_v3_OBJECTS = ioctl_sg_io_v3.$(OBJEXT)
-ioctl_sg_io_v3_LDADD = $(LDADD)
-ioctl_sg_io_v3_DEPENDENCIES = libtests.a
-ioctl_sg_io_v4_SOURCES = ioctl_sg_io_v4.c
-ioctl_sg_io_v4_OBJECTS = ioctl_sg_io_v4.$(OBJEXT)
-ioctl_sg_io_v4_LDADD = $(LDADD)
-ioctl_sg_io_v4_DEPENDENCIES = libtests.a
-ioctl_sock_gifconf_SOURCES = ioctl_sock_gifconf.c
-ioctl_sock_gifconf_OBJECTS = ioctl_sock_gifconf.$(OBJEXT)
-ioctl_sock_gifconf_LDADD = $(LDADD)
-ioctl_sock_gifconf_DEPENDENCIES = libtests.a
-ioctl_uffdio_SOURCES = ioctl_uffdio.c
-ioctl_uffdio_OBJECTS = ioctl_uffdio.$(OBJEXT)
-ioctl_uffdio_LDADD = $(LDADD)
-ioctl_uffdio_DEPENDENCIES = libtests.a
-ioctl_v4l2_SOURCES = ioctl_v4l2.c
-ioctl_v4l2_OBJECTS = ioctl_v4l2.$(OBJEXT)
-ioctl_v4l2_LDADD = $(LDADD)
-ioctl_v4l2_DEPENDENCIES = libtests.a
-ioperm_SOURCES = ioperm.c
-ioperm_OBJECTS = ioperm.$(OBJEXT)
-ioperm_LDADD = $(LDADD)
-ioperm_DEPENDENCIES = libtests.a
-iopl_SOURCES = iopl.c
-iopl_OBJECTS = iopl.$(OBJEXT)
-iopl_LDADD = $(LDADD)
-iopl_DEPENDENCIES = libtests.a
-ioprio_SOURCES = ioprio.c
-ioprio_OBJECTS = ioprio.$(OBJEXT)
-ioprio_LDADD = $(LDADD)
-ioprio_DEPENDENCIES = libtests.a
-ip_mreq_SOURCES = ip_mreq.c
-ip_mreq_OBJECTS = ip_mreq.$(OBJEXT)
-ip_mreq_LDADD = $(LDADD)
-ip_mreq_DEPENDENCIES = libtests.a
-ipc_SOURCES = ipc.c
-ipc_OBJECTS = ipc.$(OBJEXT)
-ipc_LDADD = $(LDADD)
-ipc_DEPENDENCIES = libtests.a
-ipc_msg_SOURCES = ipc_msg.c
-ipc_msg_OBJECTS = ipc_msg.$(OBJEXT)
-ipc_msg_LDADD = $(LDADD)
-ipc_msg_DEPENDENCIES = libtests.a
-ipc_msgbuf_SOURCES = ipc_msgbuf.c
-ipc_msgbuf_OBJECTS = ipc_msgbuf.$(OBJEXT)
-ipc_msgbuf_LDADD = $(LDADD)
-ipc_msgbuf_DEPENDENCIES = libtests.a
-ipc_sem_SOURCES = ipc_sem.c
-ipc_sem_OBJECTS = ipc_sem.$(OBJEXT)
-ipc_sem_LDADD = $(LDADD)
-ipc_sem_DEPENDENCIES = libtests.a
-ipc_shm_SOURCES = ipc_shm.c
-ipc_shm_OBJECTS = ipc_shm.$(OBJEXT)
-ipc_shm_LDADD = $(LDADD)
-ipc_shm_DEPENDENCIES = libtests.a
-kcmp_SOURCES = kcmp.c
-kcmp_OBJECTS = kcmp.$(OBJEXT)
-kcmp_LDADD = $(LDADD)
-kcmp_DEPENDENCIES = libtests.a
-kexec_file_load_SOURCES = kexec_file_load.c
-kexec_file_load_OBJECTS = kexec_file_load.$(OBJEXT)
-kexec_file_load_LDADD = $(LDADD)
-kexec_file_load_DEPENDENCIES = libtests.a
-kexec_load_SOURCES = kexec_load.c
-kexec_load_OBJECTS = kexec_load.$(OBJEXT)
-kexec_load_LDADD = $(LDADD)
-kexec_load_DEPENDENCIES = libtests.a
-keyctl_SOURCES = keyctl.c
-keyctl_OBJECTS = keyctl.$(OBJEXT)
-keyctl_LDADD = $(LDADD)
-keyctl_DEPENDENCIES = libtests.a
-kill_SOURCES = kill.c
-kill_OBJECTS = kill.$(OBJEXT)
-kill_LDADD = $(LDADD)
-kill_DEPENDENCIES = libtests.a
-ksysent_SOURCES = ksysent.c
-ksysent_OBJECTS = ksysent.$(OBJEXT)
-ksysent_LDADD = $(LDADD)
-ksysent_DEPENDENCIES = libtests.a
-lchown_SOURCES = lchown.c
-lchown_OBJECTS = lchown.$(OBJEXT)
-lchown_LDADD = $(LDADD)
-lchown_DEPENDENCIES = libtests.a
-lchown32_SOURCES = lchown32.c
-lchown32_OBJECTS = lchown32.$(OBJEXT)
-lchown32_LDADD = $(LDADD)
-lchown32_DEPENDENCIES = libtests.a
-link_SOURCES = link.c
-link_OBJECTS = link.$(OBJEXT)
-link_LDADD = $(LDADD)
-link_DEPENDENCIES = libtests.a
-linkat_SOURCES = linkat.c
-linkat_OBJECTS = linkat.$(OBJEXT)
-linkat_LDADD = $(LDADD)
-linkat_DEPENDENCIES = libtests.a
-llseek_SOURCES = llseek.c
-llseek_OBJECTS = llseek.$(OBJEXT)
-llseek_LDADD = $(LDADD)
-llseek_DEPENDENCIES = libtests.a
-lookup_dcookie_SOURCES = lookup_dcookie.c
-lookup_dcookie_OBJECTS = lookup_dcookie.$(OBJEXT)
-lookup_dcookie_LDADD = $(LDADD)
-lookup_dcookie_DEPENDENCIES = libtests.a
-lseek_SOURCES = lseek.c
-lseek_OBJECTS = lseek.$(OBJEXT)
-lseek_LDADD = $(LDADD)
-lseek_DEPENDENCIES = libtests.a
-lstat_SOURCES = lstat.c
-lstat_OBJECTS = lstat.$(OBJEXT)
-lstat_LDADD = $(LDADD)
-lstat_DEPENDENCIES = libtests.a
-lstat64_SOURCES = lstat64.c
-lstat64_OBJECTS = lstat64-lstat64.$(OBJEXT)
-lstat64_LDADD = $(LDADD)
-lstat64_DEPENDENCIES = libtests.a
-madvise_SOURCES = madvise.c
-madvise_OBJECTS = madvise.$(OBJEXT)
-madvise_LDADD = $(LDADD)
-madvise_DEPENDENCIES = libtests.a
-mbind_SOURCES = mbind.c
-mbind_OBJECTS = mbind.$(OBJEXT)
-mbind_LDADD = $(LDADD)
-mbind_DEPENDENCIES = libtests.a
-membarrier_SOURCES = membarrier.c
-membarrier_OBJECTS = membarrier.$(OBJEXT)
-membarrier_LDADD = $(LDADD)
-membarrier_DEPENDENCIES = libtests.a
-memfd_create_SOURCES = memfd_create.c
-memfd_create_OBJECTS = memfd_create.$(OBJEXT)
-memfd_create_LDADD = $(LDADD)
-memfd_create_DEPENDENCIES = libtests.a
-migrate_pages_SOURCES = migrate_pages.c
-migrate_pages_OBJECTS = migrate_pages.$(OBJEXT)
-migrate_pages_LDADD = $(LDADD)
-migrate_pages_DEPENDENCIES = libtests.a
-mincore_SOURCES = mincore.c
-mincore_OBJECTS = mincore.$(OBJEXT)
-mincore_LDADD = $(LDADD)
-mincore_DEPENDENCIES = libtests.a
-mkdir_SOURCES = mkdir.c
-mkdir_OBJECTS = mkdir.$(OBJEXT)
-mkdir_LDADD = $(LDADD)
-mkdir_DEPENDENCIES = libtests.a
-mkdirat_SOURCES = mkdirat.c
-mkdirat_OBJECTS = mkdirat.$(OBJEXT)
-mkdirat_LDADD = $(LDADD)
-mkdirat_DEPENDENCIES = libtests.a
-mknod_SOURCES = mknod.c
-mknod_OBJECTS = mknod.$(OBJEXT)
-mknod_LDADD = $(LDADD)
-mknod_DEPENDENCIES = libtests.a
-mknodat_SOURCES = mknodat.c
-mknodat_OBJECTS = mknodat.$(OBJEXT)
-mknodat_LDADD = $(LDADD)
-mknodat_DEPENDENCIES = libtests.a
-mlock_SOURCES = mlock.c
-mlock_OBJECTS = mlock.$(OBJEXT)
-mlock_LDADD = $(LDADD)
-mlock_DEPENDENCIES = libtests.a
-mlock2_SOURCES = mlock2.c
-mlock2_OBJECTS = mlock2.$(OBJEXT)
-mlock2_LDADD = $(LDADD)
-mlock2_DEPENDENCIES = libtests.a
-mlockall_SOURCES = mlockall.c
-mlockall_OBJECTS = mlockall.$(OBJEXT)
-mlockall_LDADD = $(LDADD)
-mlockall_DEPENDENCIES = libtests.a
-mmap_SOURCES = mmap.c
-mmap_OBJECTS = mmap.$(OBJEXT)
-mmap_LDADD = $(LDADD)
-mmap_DEPENDENCIES = libtests.a
-mmap64_SOURCES = mmap64.c
-mmap64_OBJECTS = mmap64-mmap64.$(OBJEXT)
-mmap64_LDADD = $(LDADD)
-mmap64_DEPENDENCIES = libtests.a
-mmsg_SOURCES = mmsg.c
-mmsg_OBJECTS = mmsg.$(OBJEXT)
-mmsg_LDADD = $(LDADD)
-mmsg_DEPENDENCIES = libtests.a
-mmsg_silent_SOURCES = mmsg-silent.c
-mmsg_silent_OBJECTS = mmsg-silent.$(OBJEXT)
-mmsg_silent_LDADD = $(LDADD)
-mmsg_silent_DEPENDENCIES = libtests.a
-mmsg_name_SOURCES = mmsg_name.c
-mmsg_name_OBJECTS = mmsg_name.$(OBJEXT)
-mmsg_name_LDADD = $(LDADD)
-mmsg_name_DEPENDENCIES = libtests.a
-mmsg_name_v_SOURCES = mmsg_name-v.c
-mmsg_name_v_OBJECTS = mmsg_name-v.$(OBJEXT)
-mmsg_name_v_LDADD = $(LDADD)
-mmsg_name_v_DEPENDENCIES = libtests.a
-mount_SOURCES = mount.c
-mount_OBJECTS = mount.$(OBJEXT)
-mount_LDADD = $(LDADD)
-mount_DEPENDENCIES = libtests.a
-move_pages_SOURCES = move_pages.c
-move_pages_OBJECTS = move_pages.$(OBJEXT)
-move_pages_LDADD = $(LDADD)
-move_pages_DEPENDENCIES = libtests.a
-mq_SOURCES = mq.c
-mq_OBJECTS = mq.$(OBJEXT)
-mq_DEPENDENCIES = $(LDADD)
-mq_sendrecv_SOURCES = mq_sendrecv.c
-mq_sendrecv_OBJECTS = mq_sendrecv.$(OBJEXT)
-mq_sendrecv_DEPENDENCIES = $(LDADD)
-mq_sendrecv_read_SOURCES = mq_sendrecv-read.c
-mq_sendrecv_read_OBJECTS = mq_sendrecv-read.$(OBJEXT)
-mq_sendrecv_read_DEPENDENCIES = $(LDADD)
-mq_sendrecv_write_SOURCES = mq_sendrecv-write.c
-mq_sendrecv_write_OBJECTS = mq_sendrecv-write.$(OBJEXT)
-mq_sendrecv_write_DEPENDENCIES = $(LDADD)
-msg_control_SOURCES = msg_control.c
-msg_control_OBJECTS = msg_control.$(OBJEXT)
-msg_control_LDADD = $(LDADD)
-msg_control_DEPENDENCIES = libtests.a
-msg_control_v_SOURCES = msg_control-v.c
-msg_control_v_OBJECTS = msg_control-v.$(OBJEXT)
-msg_control_v_LDADD = $(LDADD)
-msg_control_v_DEPENDENCIES = libtests.a
-msg_name_SOURCES = msg_name.c
-msg_name_OBJECTS = msg_name.$(OBJEXT)
-msg_name_LDADD = $(LDADD)
-msg_name_DEPENDENCIES = libtests.a
-munlockall_SOURCES = munlockall.c
-munlockall_OBJECTS = munlockall.$(OBJEXT)
-munlockall_LDADD = $(LDADD)
-munlockall_DEPENDENCIES = libtests.a
-nanosleep_SOURCES = nanosleep.c
-nanosleep_OBJECTS = nanosleep.$(OBJEXT)
-nanosleep_LDADD = $(LDADD)
-nanosleep_DEPENDENCIES = libtests.a
-net_accept_connect_SOURCES = net-accept-connect.c
-net_accept_connect_OBJECTS = net-accept-connect.$(OBJEXT)
-net_accept_connect_LDADD = $(LDADD)
-net_accept_connect_DEPENDENCIES = libtests.a
-net_icmp_filter_SOURCES = net-icmp_filter.c
-net_icmp_filter_OBJECTS = net-icmp_filter.$(OBJEXT)
-net_icmp_filter_LDADD = $(LDADD)
-net_icmp_filter_DEPENDENCIES = libtests.a
-net_sockaddr_SOURCES = net-sockaddr.c
-net_sockaddr_OBJECTS = net-sockaddr.$(OBJEXT)
-net_sockaddr_LDADD = $(LDADD)
-net_sockaddr_DEPENDENCIES = libtests.a
-net_y_unix_SOURCES = net-y-unix.c
-net_y_unix_OBJECTS = net-y-unix.$(OBJEXT)
-net_y_unix_LDADD = $(LDADD)
-net_y_unix_DEPENDENCIES = libtests.a
-net_yy_inet_SOURCES = net-yy-inet.c
-net_yy_inet_OBJECTS = net-yy-inet.$(OBJEXT)
-net_yy_inet_LDADD = $(LDADD)
-net_yy_inet_DEPENDENCIES = libtests.a
-net_yy_netlink_SOURCES = net-yy-netlink.c
-net_yy_netlink_OBJECTS = net-yy-netlink.$(OBJEXT)
-net_yy_netlink_LDADD = $(LDADD)
-net_yy_netlink_DEPENDENCIES = libtests.a
-net_yy_unix_SOURCES = net-yy-unix.c
-net_yy_unix_OBJECTS = net-yy-unix.$(OBJEXT)
-net_yy_unix_LDADD = $(LDADD)
-net_yy_unix_DEPENDENCIES = libtests.a
-netlink_inet_diag_SOURCES = netlink_inet_diag.c
-netlink_inet_diag_OBJECTS = netlink_inet_diag.$(OBJEXT)
-netlink_inet_diag_LDADD = $(LDADD)
-netlink_inet_diag_DEPENDENCIES = libtests.a
-netlink_netlink_diag_SOURCES = netlink_netlink_diag.c
-netlink_netlink_diag_OBJECTS = netlink_netlink_diag.$(OBJEXT)
-netlink_netlink_diag_LDADD = $(LDADD)
-netlink_netlink_diag_DEPENDENCIES = libtests.a
-netlink_protocol_SOURCES = netlink_protocol.c
-netlink_protocol_OBJECTS = netlink_protocol.$(OBJEXT)
-netlink_protocol_LDADD = $(LDADD)
-netlink_protocol_DEPENDENCIES = libtests.a
-netlink_unix_diag_SOURCES = netlink_unix_diag.c
-netlink_unix_diag_OBJECTS = netlink_unix_diag.$(OBJEXT)
-netlink_unix_diag_LDADD = $(LDADD)
-netlink_unix_diag_DEPENDENCIES = libtests.a
-newfstatat_SOURCES = newfstatat.c
-newfstatat_OBJECTS = newfstatat-newfstatat.$(OBJEXT)
-newfstatat_LDADD = $(LDADD)
-newfstatat_DEPENDENCIES = libtests.a
-nsyscalls_SOURCES = nsyscalls.c
-nsyscalls_OBJECTS = nsyscalls.$(OBJEXT)
-nsyscalls_LDADD = $(LDADD)
-nsyscalls_DEPENDENCIES = libtests.a
-old_mmap_SOURCES = old_mmap.c
-old_mmap_OBJECTS = old_mmap.$(OBJEXT)
-old_mmap_LDADD = $(LDADD)
-old_mmap_DEPENDENCIES = libtests.a
-oldfstat_SOURCES = oldfstat.c
-oldfstat_OBJECTS = oldfstat.$(OBJEXT)
-oldfstat_LDADD = $(LDADD)
-oldfstat_DEPENDENCIES = libtests.a
-oldlstat_SOURCES = oldlstat.c
-oldlstat_OBJECTS = oldlstat.$(OBJEXT)
-oldlstat_LDADD = $(LDADD)
-oldlstat_DEPENDENCIES = libtests.a
-oldselect_SOURCES = oldselect.c
-oldselect_OBJECTS = oldselect.$(OBJEXT)
-oldselect_LDADD = $(LDADD)
-oldselect_DEPENDENCIES = libtests.a
-oldstat_SOURCES = oldstat.c
-oldstat_OBJECTS = oldstat.$(OBJEXT)
-oldstat_LDADD = $(LDADD)
-oldstat_DEPENDENCIES = libtests.a
-open_SOURCES = open.c
-open_OBJECTS = open.$(OBJEXT)
-open_LDADD = $(LDADD)
-open_DEPENDENCIES = libtests.a
-openat_SOURCES = openat.c
-openat_OBJECTS = openat.$(OBJEXT)
-openat_LDADD = $(LDADD)
-openat_DEPENDENCIES = libtests.a
-osf_utimes_SOURCES = osf_utimes.c
-osf_utimes_OBJECTS = osf_utimes.$(OBJEXT)
-osf_utimes_LDADD = $(LDADD)
-osf_utimes_DEPENDENCIES = libtests.a
-pause_SOURCES = pause.c
-pause_OBJECTS = pause.$(OBJEXT)
-pause_LDADD = $(LDADD)
-pause_DEPENDENCIES = libtests.a
-pc_SOURCES = pc.c
-pc_OBJECTS = pc.$(OBJEXT)
-am__DEPENDENCIES_1 =
-pc_DEPENDENCIES = $(am__DEPENDENCIES_1) $(LDADD)
-perf_event_open_SOURCES = perf_event_open.c
-perf_event_open_OBJECTS = perf_event_open.$(OBJEXT)
-perf_event_open_LDADD = $(LDADD)
-perf_event_open_DEPENDENCIES = libtests.a
-perf_event_open_nonverbose_SOURCES = perf_event_open_nonverbose.c
-perf_event_open_nonverbose_OBJECTS =  \
-	perf_event_open_nonverbose.$(OBJEXT)
-perf_event_open_nonverbose_LDADD = $(LDADD)
-perf_event_open_nonverbose_DEPENDENCIES = libtests.a
-perf_event_open_unabbrev_SOURCES = perf_event_open_unabbrev.c
-perf_event_open_unabbrev_OBJECTS = perf_event_open_unabbrev.$(OBJEXT)
-perf_event_open_unabbrev_LDADD = $(LDADD)
-perf_event_open_unabbrev_DEPENDENCIES = libtests.a
-personality_SOURCES = personality.c
-personality_OBJECTS = personality.$(OBJEXT)
-personality_LDADD = $(LDADD)
-personality_DEPENDENCIES = libtests.a
-pipe_SOURCES = pipe.c
-pipe_OBJECTS = pipe.$(OBJEXT)
-pipe_LDADD = $(LDADD)
-pipe_DEPENDENCIES = libtests.a
-pipe2_SOURCES = pipe2.c
-pipe2_OBJECTS = pipe2.$(OBJEXT)
-pipe2_LDADD = $(LDADD)
-pipe2_DEPENDENCIES = libtests.a
-pkey_alloc_SOURCES = pkey_alloc.c
-pkey_alloc_OBJECTS = pkey_alloc.$(OBJEXT)
-pkey_alloc_LDADD = $(LDADD)
-pkey_alloc_DEPENDENCIES = libtests.a
-pkey_free_SOURCES = pkey_free.c
-pkey_free_OBJECTS = pkey_free.$(OBJEXT)
-pkey_free_LDADD = $(LDADD)
-pkey_free_DEPENDENCIES = libtests.a
-pkey_mprotect_SOURCES = pkey_mprotect.c
-pkey_mprotect_OBJECTS = pkey_mprotect.$(OBJEXT)
-pkey_mprotect_LDADD = $(LDADD)
-pkey_mprotect_DEPENDENCIES = libtests.a
-poll_SOURCES = poll.c
-poll_OBJECTS = poll.$(OBJEXT)
-poll_LDADD = $(LDADD)
-poll_DEPENDENCIES = libtests.a
-ppoll_SOURCES = ppoll.c
-ppoll_OBJECTS = ppoll.$(OBJEXT)
-ppoll_LDADD = $(LDADD)
-ppoll_DEPENDENCIES = libtests.a
-ppoll_v_SOURCES = ppoll-v.c
-ppoll_v_OBJECTS = ppoll-v.$(OBJEXT)
-ppoll_v_LDADD = $(LDADD)
-ppoll_v_DEPENDENCIES = libtests.a
-prctl_arg2_intptr_SOURCES = prctl-arg2-intptr.c
-prctl_arg2_intptr_OBJECTS = prctl-arg2-intptr.$(OBJEXT)
-prctl_arg2_intptr_LDADD = $(LDADD)
-prctl_arg2_intptr_DEPENDENCIES = libtests.a
-prctl_dumpable_SOURCES = prctl-dumpable.c
-prctl_dumpable_OBJECTS = prctl-dumpable.$(OBJEXT)
-prctl_dumpable_LDADD = $(LDADD)
-prctl_dumpable_DEPENDENCIES = libtests.a
-prctl_name_SOURCES = prctl-name.c
-prctl_name_OBJECTS = prctl-name.$(OBJEXT)
-prctl_name_LDADD = $(LDADD)
-prctl_name_DEPENDENCIES = libtests.a
-prctl_no_args_SOURCES = prctl-no-args.c
-prctl_no_args_OBJECTS = prctl-no-args.$(OBJEXT)
-prctl_no_args_LDADD = $(LDADD)
-prctl_no_args_DEPENDENCIES = libtests.a
-prctl_pdeathsig_SOURCES = prctl-pdeathsig.c
-prctl_pdeathsig_OBJECTS = prctl-pdeathsig.$(OBJEXT)
-prctl_pdeathsig_LDADD = $(LDADD)
-prctl_pdeathsig_DEPENDENCIES = libtests.a
-prctl_seccomp_filter_v_SOURCES = prctl-seccomp-filter-v.c
-prctl_seccomp_filter_v_OBJECTS = prctl-seccomp-filter-v.$(OBJEXT)
-prctl_seccomp_filter_v_LDADD = $(LDADD)
-prctl_seccomp_filter_v_DEPENDENCIES = libtests.a
-prctl_seccomp_strict_SOURCES = prctl-seccomp-strict.c
-prctl_seccomp_strict_OBJECTS = prctl-seccomp-strict.$(OBJEXT)
-prctl_seccomp_strict_LDADD = $(LDADD)
-prctl_seccomp_strict_DEPENDENCIES = libtests.a
-prctl_securebits_SOURCES = prctl-securebits.c
-prctl_securebits_OBJECTS = prctl-securebits.$(OBJEXT)
-prctl_securebits_LDADD = $(LDADD)
-prctl_securebits_DEPENDENCIES = libtests.a
-prctl_tid_address_SOURCES = prctl-tid_address.c
-prctl_tid_address_OBJECTS = prctl-tid_address.$(OBJEXT)
-prctl_tid_address_LDADD = $(LDADD)
-prctl_tid_address_DEPENDENCIES = libtests.a
-prctl_tsc_SOURCES = prctl-tsc.c
-prctl_tsc_OBJECTS = prctl-tsc.$(OBJEXT)
-prctl_tsc_LDADD = $(LDADD)
-prctl_tsc_DEPENDENCIES = libtests.a
-pread64_pwrite64_SOURCES = pread64-pwrite64.c
-pread64_pwrite64_OBJECTS =  \
-	pread64_pwrite64-pread64-pwrite64.$(OBJEXT)
-pread64_pwrite64_LDADD = $(LDADD)
-pread64_pwrite64_DEPENDENCIES = libtests.a
-preadv_SOURCES = preadv.c
-preadv_OBJECTS = preadv-preadv.$(OBJEXT)
-preadv_LDADD = $(LDADD)
-preadv_DEPENDENCIES = libtests.a
-preadv_pwritev_SOURCES = preadv-pwritev.c
-preadv_pwritev_OBJECTS = preadv_pwritev-preadv-pwritev.$(OBJEXT)
-preadv_pwritev_LDADD = $(LDADD)
-preadv_pwritev_DEPENDENCIES = libtests.a
-preadv2_pwritev2_SOURCES = preadv2-pwritev2.c
-preadv2_pwritev2_OBJECTS = preadv2-pwritev2.$(OBJEXT)
-preadv2_pwritev2_LDADD = $(LDADD)
-preadv2_pwritev2_DEPENDENCIES = libtests.a
-print_maxfd_SOURCES = print_maxfd.c
-print_maxfd_OBJECTS = print_maxfd.$(OBJEXT)
-print_maxfd_LDADD = $(LDADD)
-print_maxfd_DEPENDENCIES = libtests.a
-printstr_SOURCES = printstr.c
-printstr_OBJECTS = printstr.$(OBJEXT)
-printstr_LDADD = $(LDADD)
-printstr_DEPENDENCIES = libtests.a
-prlimit64_SOURCES = prlimit64.c
-prlimit64_OBJECTS = prlimit64.$(OBJEXT)
-prlimit64_LDADD = $(LDADD)
-prlimit64_DEPENDENCIES = libtests.a
-process_vm_readv_SOURCES = process_vm_readv.c
-process_vm_readv_OBJECTS = process_vm_readv.$(OBJEXT)
-process_vm_readv_LDADD = $(LDADD)
-process_vm_readv_DEPENDENCIES = libtests.a
-process_vm_writev_SOURCES = process_vm_writev.c
-process_vm_writev_OBJECTS = process_vm_writev.$(OBJEXT)
-process_vm_writev_LDADD = $(LDADD)
-process_vm_writev_DEPENDENCIES = libtests.a
-pselect6_SOURCES = pselect6.c
-pselect6_OBJECTS = pselect6.$(OBJEXT)
-pselect6_LDADD = $(LDADD)
-pselect6_DEPENDENCIES = libtests.a
-ptrace_SOURCES = ptrace.c
-ptrace_OBJECTS = ptrace.$(OBJEXT)
-ptrace_LDADD = $(LDADD)
-ptrace_DEPENDENCIES = libtests.a
-pwritev_SOURCES = pwritev.c
-pwritev_OBJECTS = pwritev-pwritev.$(OBJEXT)
-pwritev_LDADD = $(LDADD)
-pwritev_DEPENDENCIES = libtests.a
-qual_fault_SOURCES = qual_fault.c
-qual_fault_OBJECTS = qual_fault.$(OBJEXT)
-qual_fault_LDADD = $(LDADD)
-qual_fault_DEPENDENCIES = libtests.a
-qual_inject_error_signal_SOURCES = qual_inject-error-signal.c
-qual_inject_error_signal_OBJECTS = qual_inject-error-signal.$(OBJEXT)
-qual_inject_error_signal_LDADD = $(LDADD)
-qual_inject_error_signal_DEPENDENCIES = libtests.a
-qual_inject_retval_SOURCES = qual_inject-retval.c
-qual_inject_retval_OBJECTS = qual_inject-retval.$(OBJEXT)
-qual_inject_retval_LDADD = $(LDADD)
-qual_inject_retval_DEPENDENCIES = libtests.a
-qual_inject_signal_SOURCES = qual_inject-signal.c
-qual_inject_signal_OBJECTS = qual_inject-signal.$(OBJEXT)
-qual_inject_signal_LDADD = $(LDADD)
-qual_inject_signal_DEPENDENCIES = libtests.a
-qual_signal_SOURCES = qual_signal.c
-qual_signal_OBJECTS = qual_signal.$(OBJEXT)
-qual_signal_LDADD = $(LDADD)
-qual_signal_DEPENDENCIES = libtests.a
-quotactl_SOURCES = quotactl.c
-quotactl_OBJECTS = quotactl.$(OBJEXT)
-quotactl_LDADD = $(LDADD)
-quotactl_DEPENDENCIES = libtests.a
-quotactl_v_SOURCES = quotactl-v.c
-quotactl_v_OBJECTS = quotactl-v.$(OBJEXT)
-quotactl_v_LDADD = $(LDADD)
-quotactl_v_DEPENDENCIES = libtests.a
-quotactl_xfs_SOURCES = quotactl-xfs.c
-quotactl_xfs_OBJECTS = quotactl-xfs.$(OBJEXT)
-quotactl_xfs_LDADD = $(LDADD)
-quotactl_xfs_DEPENDENCIES = libtests.a
-quotactl_xfs_v_SOURCES = quotactl-xfs-v.c
-quotactl_xfs_v_OBJECTS = quotactl-xfs-v.$(OBJEXT)
-quotactl_xfs_v_LDADD = $(LDADD)
-quotactl_xfs_v_DEPENDENCIES = libtests.a
-read_write_SOURCES = read-write.c
-read_write_OBJECTS = read-write.$(OBJEXT)
-read_write_LDADD = $(LDADD)
-read_write_DEPENDENCIES = libtests.a
-readahead_SOURCES = readahead.c
-readahead_OBJECTS = readahead.$(OBJEXT)
-readahead_LDADD = $(LDADD)
-readahead_DEPENDENCIES = libtests.a
-readdir_SOURCES = readdir.c
-readdir_OBJECTS = readdir.$(OBJEXT)
-readdir_LDADD = $(LDADD)
-readdir_DEPENDENCIES = libtests.a
-readlink_SOURCES = readlink.c
-readlink_OBJECTS = readlink.$(OBJEXT)
-readlink_LDADD = $(LDADD)
-readlink_DEPENDENCIES = libtests.a
-readlinkat_SOURCES = readlinkat.c
-readlinkat_OBJECTS = readlinkat.$(OBJEXT)
-readlinkat_LDADD = $(LDADD)
-readlinkat_DEPENDENCIES = libtests.a
-readv_SOURCES = readv.c
-readv_OBJECTS = readv.$(OBJEXT)
-readv_LDADD = $(LDADD)
-readv_DEPENDENCIES = libtests.a
-reboot_SOURCES = reboot.c
-reboot_OBJECTS = reboot.$(OBJEXT)
-reboot_LDADD = $(LDADD)
-reboot_DEPENDENCIES = libtests.a
-recvfrom_SOURCES = recvfrom.c
-recvfrom_OBJECTS = recvfrom.$(OBJEXT)
-recvfrom_LDADD = $(LDADD)
-recvfrom_DEPENDENCIES = libtests.a
-recvmmsg_timeout_SOURCES = recvmmsg-timeout.c
-recvmmsg_timeout_OBJECTS = recvmmsg-timeout.$(OBJEXT)
-recvmmsg_timeout_LDADD = $(LDADD)
-recvmmsg_timeout_DEPENDENCIES = libtests.a
-recvmsg_SOURCES = recvmsg.c
-recvmsg_OBJECTS = recvmsg.$(OBJEXT)
-recvmsg_LDADD = $(LDADD)
-recvmsg_DEPENDENCIES = libtests.a
-redirect_fds_SOURCES = redirect-fds.c
-redirect_fds_OBJECTS = redirect-fds.$(OBJEXT)
-redirect_fds_LDADD = $(LDADD)
-redirect_fds_DEPENDENCIES = libtests.a
-remap_file_pages_SOURCES = remap_file_pages.c
-remap_file_pages_OBJECTS = remap_file_pages.$(OBJEXT)
-remap_file_pages_LDADD = $(LDADD)
-remap_file_pages_DEPENDENCIES = libtests.a
-rename_SOURCES = rename.c
-rename_OBJECTS = rename.$(OBJEXT)
-rename_LDADD = $(LDADD)
-rename_DEPENDENCIES = libtests.a
-renameat_SOURCES = renameat.c
-renameat_OBJECTS = renameat.$(OBJEXT)
-renameat_LDADD = $(LDADD)
-renameat_DEPENDENCIES = libtests.a
-renameat2_SOURCES = renameat2.c
-renameat2_OBJECTS = renameat2.$(OBJEXT)
-renameat2_LDADD = $(LDADD)
-renameat2_DEPENDENCIES = libtests.a
-request_key_SOURCES = request_key.c
-request_key_OBJECTS = request_key.$(OBJEXT)
-request_key_LDADD = $(LDADD)
-request_key_DEPENDENCIES = libtests.a
-restart_syscall_SOURCES = restart_syscall.c
-restart_syscall_OBJECTS = restart_syscall.$(OBJEXT)
-restart_syscall_LDADD = $(LDADD)
-restart_syscall_DEPENDENCIES = libtests.a
-rmdir_SOURCES = rmdir.c
-rmdir_OBJECTS = rmdir.$(OBJEXT)
-rmdir_LDADD = $(LDADD)
-rmdir_DEPENDENCIES = libtests.a
-rt_sigpending_SOURCES = rt_sigpending.c
-rt_sigpending_OBJECTS = rt_sigpending.$(OBJEXT)
-rt_sigpending_LDADD = $(LDADD)
-rt_sigpending_DEPENDENCIES = libtests.a
-rt_sigprocmask_SOURCES = rt_sigprocmask.c
-rt_sigprocmask_OBJECTS = rt_sigprocmask.$(OBJEXT)
-rt_sigprocmask_LDADD = $(LDADD)
-rt_sigprocmask_DEPENDENCIES = libtests.a
-rt_sigqueueinfo_SOURCES = rt_sigqueueinfo.c
-rt_sigqueueinfo_OBJECTS = rt_sigqueueinfo.$(OBJEXT)
-rt_sigqueueinfo_LDADD = $(LDADD)
-rt_sigqueueinfo_DEPENDENCIES = libtests.a
-rt_sigreturn_SOURCES = rt_sigreturn.c
-rt_sigreturn_OBJECTS = rt_sigreturn.$(OBJEXT)
-rt_sigreturn_LDADD = $(LDADD)
-rt_sigreturn_DEPENDENCIES = libtests.a
-rt_sigsuspend_SOURCES = rt_sigsuspend.c
-rt_sigsuspend_OBJECTS = rt_sigsuspend.$(OBJEXT)
-rt_sigsuspend_LDADD = $(LDADD)
-rt_sigsuspend_DEPENDENCIES = libtests.a
-rt_sigtimedwait_SOURCES = rt_sigtimedwait.c
-rt_sigtimedwait_OBJECTS = rt_sigtimedwait.$(OBJEXT)
-rt_sigtimedwait_LDADD = $(LDADD)
-rt_sigtimedwait_DEPENDENCIES = libtests.a
-rt_tgsigqueueinfo_SOURCES = rt_tgsigqueueinfo.c
-rt_tgsigqueueinfo_OBJECTS = rt_tgsigqueueinfo.$(OBJEXT)
-rt_tgsigqueueinfo_LDADD = $(LDADD)
-rt_tgsigqueueinfo_DEPENDENCIES = libtests.a
-sched_get_priority_mxx_SOURCES = sched_get_priority_mxx.c
-sched_get_priority_mxx_OBJECTS = sched_get_priority_mxx.$(OBJEXT)
-sched_get_priority_mxx_LDADD = $(LDADD)
-sched_get_priority_mxx_DEPENDENCIES = libtests.a
-sched_rr_get_interval_SOURCES = sched_rr_get_interval.c
-sched_rr_get_interval_OBJECTS = sched_rr_get_interval.$(OBJEXT)
-sched_rr_get_interval_LDADD = $(LDADD)
-sched_rr_get_interval_DEPENDENCIES = libtests.a
-sched_xetaffinity_SOURCES = sched_xetaffinity.c
-sched_xetaffinity_OBJECTS = sched_xetaffinity.$(OBJEXT)
-sched_xetaffinity_LDADD = $(LDADD)
-sched_xetaffinity_DEPENDENCIES = libtests.a
-sched_xetattr_SOURCES = sched_xetattr.c
-sched_xetattr_OBJECTS = sched_xetattr.$(OBJEXT)
-sched_xetattr_LDADD = $(LDADD)
-sched_xetattr_DEPENDENCIES = libtests.a
-sched_xetparam_SOURCES = sched_xetparam.c
-sched_xetparam_OBJECTS = sched_xetparam.$(OBJEXT)
-sched_xetparam_LDADD = $(LDADD)
-sched_xetparam_DEPENDENCIES = libtests.a
-sched_xetscheduler_SOURCES = sched_xetscheduler.c
-sched_xetscheduler_OBJECTS = sched_xetscheduler.$(OBJEXT)
-sched_xetscheduler_LDADD = $(LDADD)
-sched_xetscheduler_DEPENDENCIES = libtests.a
-sched_yield_SOURCES = sched_yield.c
-sched_yield_OBJECTS = sched_yield.$(OBJEXT)
-sched_yield_LDADD = $(LDADD)
-sched_yield_DEPENDENCIES = libtests.a
-scm_rights_SOURCES = scm_rights.c
-scm_rights_OBJECTS = scm_rights.$(OBJEXT)
-scm_rights_LDADD = $(LDADD)
-scm_rights_DEPENDENCIES = libtests.a
-seccomp_filter_SOURCES = seccomp-filter.c
-seccomp_filter_OBJECTS = seccomp-filter.$(OBJEXT)
-seccomp_filter_LDADD = $(LDADD)
-seccomp_filter_DEPENDENCIES = libtests.a
-seccomp_filter_v_SOURCES = seccomp-filter-v.c
-seccomp_filter_v_OBJECTS = seccomp-filter-v.$(OBJEXT)
-seccomp_filter_v_LDADD = $(LDADD)
-seccomp_filter_v_DEPENDENCIES = libtests.a
-seccomp_strict_SOURCES = seccomp-strict.c
-seccomp_strict_OBJECTS = seccomp-strict.$(OBJEXT)
-seccomp_strict_LDADD = $(LDADD)
-seccomp_strict_DEPENDENCIES = libtests.a
-select_SOURCES = select.c
-select_OBJECTS = select.$(OBJEXT)
-select_LDADD = $(LDADD)
-select_DEPENDENCIES = libtests.a
-semop_SOURCES = semop.c
-semop_OBJECTS = semop.$(OBJEXT)
-semop_LDADD = $(LDADD)
-semop_DEPENDENCIES = libtests.a
-sendfile_SOURCES = sendfile.c
-sendfile_OBJECTS = sendfile.$(OBJEXT)
-sendfile_LDADD = $(LDADD)
-sendfile_DEPENDENCIES = libtests.a
-sendfile64_SOURCES = sendfile64.c
-sendfile64_OBJECTS = sendfile64.$(OBJEXT)
-sendfile64_LDADD = $(LDADD)
-sendfile64_DEPENDENCIES = libtests.a
-set_mempolicy_SOURCES = set_mempolicy.c
-set_mempolicy_OBJECTS = set_mempolicy.$(OBJEXT)
-set_mempolicy_LDADD = $(LDADD)
-set_mempolicy_DEPENDENCIES = libtests.a
-set_ptracer_any_SOURCES = set_ptracer_any.c
-set_ptracer_any_OBJECTS = set_ptracer_any.$(OBJEXT)
-set_ptracer_any_LDADD = $(LDADD)
-set_ptracer_any_DEPENDENCIES = libtests.a
-setdomainname_SOURCES = setdomainname.c
-setdomainname_OBJECTS = setdomainname.$(OBJEXT)
-setdomainname_LDADD = $(LDADD)
-setdomainname_DEPENDENCIES = libtests.a
-setfsgid_SOURCES = setfsgid.c
-setfsgid_OBJECTS = setfsgid.$(OBJEXT)
-setfsgid_LDADD = $(LDADD)
-setfsgid_DEPENDENCIES = libtests.a
-setfsgid32_SOURCES = setfsgid32.c
-setfsgid32_OBJECTS = setfsgid32.$(OBJEXT)
-setfsgid32_LDADD = $(LDADD)
-setfsgid32_DEPENDENCIES = libtests.a
-setfsuid_SOURCES = setfsuid.c
-setfsuid_OBJECTS = setfsuid.$(OBJEXT)
-setfsuid_LDADD = $(LDADD)
-setfsuid_DEPENDENCIES = libtests.a
-setfsuid32_SOURCES = setfsuid32.c
-setfsuid32_OBJECTS = setfsuid32.$(OBJEXT)
-setfsuid32_LDADD = $(LDADD)
-setfsuid32_DEPENDENCIES = libtests.a
-setgid_SOURCES = setgid.c
-setgid_OBJECTS = setgid.$(OBJEXT)
-setgid_LDADD = $(LDADD)
-setgid_DEPENDENCIES = libtests.a
-setgid32_SOURCES = setgid32.c
-setgid32_OBJECTS = setgid32.$(OBJEXT)
-setgid32_LDADD = $(LDADD)
-setgid32_DEPENDENCIES = libtests.a
-setgroups_SOURCES = setgroups.c
-setgroups_OBJECTS = setgroups.$(OBJEXT)
-setgroups_LDADD = $(LDADD)
-setgroups_DEPENDENCIES = libtests.a
-setgroups32_SOURCES = setgroups32.c
-setgroups32_OBJECTS = setgroups32.$(OBJEXT)
-setgroups32_LDADD = $(LDADD)
-setgroups32_DEPENDENCIES = libtests.a
-sethostname_SOURCES = sethostname.c
-sethostname_OBJECTS = sethostname.$(OBJEXT)
-sethostname_LDADD = $(LDADD)
-sethostname_DEPENDENCIES = libtests.a
-setns_SOURCES = setns.c
-setns_OBJECTS = setns.$(OBJEXT)
-setns_LDADD = $(LDADD)
-setns_DEPENDENCIES = libtests.a
-setregid_SOURCES = setregid.c
-setregid_OBJECTS = setregid.$(OBJEXT)
-setregid_LDADD = $(LDADD)
-setregid_DEPENDENCIES = libtests.a
-setregid32_SOURCES = setregid32.c
-setregid32_OBJECTS = setregid32.$(OBJEXT)
-setregid32_LDADD = $(LDADD)
-setregid32_DEPENDENCIES = libtests.a
-setresgid_SOURCES = setresgid.c
-setresgid_OBJECTS = setresgid.$(OBJEXT)
-setresgid_LDADD = $(LDADD)
-setresgid_DEPENDENCIES = libtests.a
-setresgid32_SOURCES = setresgid32.c
-setresgid32_OBJECTS = setresgid32.$(OBJEXT)
-setresgid32_LDADD = $(LDADD)
-setresgid32_DEPENDENCIES = libtests.a
-setresuid_SOURCES = setresuid.c
-setresuid_OBJECTS = setresuid.$(OBJEXT)
-setresuid_LDADD = $(LDADD)
-setresuid_DEPENDENCIES = libtests.a
-setresuid32_SOURCES = setresuid32.c
-setresuid32_OBJECTS = setresuid32.$(OBJEXT)
-setresuid32_LDADD = $(LDADD)
-setresuid32_DEPENDENCIES = libtests.a
-setreuid_SOURCES = setreuid.c
-setreuid_OBJECTS = setreuid.$(OBJEXT)
-setreuid_LDADD = $(LDADD)
-setreuid_DEPENDENCIES = libtests.a
-setreuid32_SOURCES = setreuid32.c
-setreuid32_OBJECTS = setreuid32.$(OBJEXT)
-setreuid32_LDADD = $(LDADD)
-setreuid32_DEPENDENCIES = libtests.a
-setrlimit_SOURCES = setrlimit.c
-setrlimit_OBJECTS = setrlimit.$(OBJEXT)
-setrlimit_LDADD = $(LDADD)
-setrlimit_DEPENDENCIES = libtests.a
-setuid_SOURCES = setuid.c
-setuid_OBJECTS = setuid.$(OBJEXT)
-setuid_LDADD = $(LDADD)
-setuid_DEPENDENCIES = libtests.a
-setuid32_SOURCES = setuid32.c
-setuid32_OBJECTS = setuid32.$(OBJEXT)
-setuid32_LDADD = $(LDADD)
-setuid32_DEPENDENCIES = libtests.a
-shmxt_SOURCES = shmxt.c
-shmxt_OBJECTS = shmxt.$(OBJEXT)
-shmxt_LDADD = $(LDADD)
-shmxt_DEPENDENCIES = libtests.a
-shutdown_SOURCES = shutdown.c
-shutdown_OBJECTS = shutdown.$(OBJEXT)
-shutdown_LDADD = $(LDADD)
-shutdown_DEPENDENCIES = libtests.a
-sigaction_SOURCES = sigaction.c
-sigaction_OBJECTS = sigaction.$(OBJEXT)
-sigaction_LDADD = $(LDADD)
-sigaction_DEPENDENCIES = libtests.a
-sigaltstack_SOURCES = sigaltstack.c
-sigaltstack_OBJECTS = sigaltstack.$(OBJEXT)
-sigaltstack_LDADD = $(LDADD)
-sigaltstack_DEPENDENCIES = libtests.a
-siginfo_SOURCES = siginfo.c
-siginfo_OBJECTS = siginfo.$(OBJEXT)
-siginfo_LDADD = $(LDADD)
-siginfo_DEPENDENCIES = libtests.a
-signal_receive_SOURCES = signal_receive.c
-signal_receive_OBJECTS = signal_receive.$(OBJEXT)
-signal_receive_LDADD = $(LDADD)
-signal_receive_DEPENDENCIES = libtests.a
-signalfd4_SOURCES = signalfd4.c
-signalfd4_OBJECTS = signalfd4.$(OBJEXT)
-signalfd4_LDADD = $(LDADD)
-signalfd4_DEPENDENCIES = libtests.a
-sigreturn_SOURCES = sigreturn.c
-sigreturn_OBJECTS = sigreturn.$(OBJEXT)
-sigreturn_LDADD = $(LDADD)
-sigreturn_DEPENDENCIES = libtests.a
-sigsuspend_SOURCES = sigsuspend.c
-sigsuspend_OBJECTS = sigsuspend.$(OBJEXT)
-sigsuspend_LDADD = $(LDADD)
-sigsuspend_DEPENDENCIES = libtests.a
-sleep_SOURCES = sleep.c
-sleep_OBJECTS = sleep.$(OBJEXT)
-sleep_LDADD = $(LDADD)
-sleep_DEPENDENCIES = libtests.a
-socketcall_SOURCES = socketcall.c
-socketcall_OBJECTS = socketcall.$(OBJEXT)
-socketcall_LDADD = $(LDADD)
-socketcall_DEPENDENCIES = libtests.a
-splice_SOURCES = splice.c
-splice_OBJECTS = splice.$(OBJEXT)
-splice_LDADD = $(LDADD)
-splice_DEPENDENCIES = libtests.a
-am_stack_fcall_OBJECTS = stack-fcall.$(OBJEXT) stack-fcall-0.$(OBJEXT) \
-	stack-fcall-1.$(OBJEXT) stack-fcall-2.$(OBJEXT) \
-	stack-fcall-3.$(OBJEXT)
-stack_fcall_OBJECTS = $(am_stack_fcall_OBJECTS)
-stack_fcall_LDADD = $(LDADD)
-stack_fcall_DEPENDENCIES = libtests.a
-stat_SOURCES = stat.c
-stat_OBJECTS = stat.$(OBJEXT)
-stat_LDADD = $(LDADD)
-stat_DEPENDENCIES = libtests.a
-stat64_SOURCES = stat64.c
-stat64_OBJECTS = stat64-stat64.$(OBJEXT)
-stat64_LDADD = $(LDADD)
-stat64_DEPENDENCIES = libtests.a
-statfs_SOURCES = statfs.c
-statfs_OBJECTS = statfs-statfs.$(OBJEXT)
-statfs_LDADD = $(LDADD)
-statfs_DEPENDENCIES = libtests.a
-statfs64_SOURCES = statfs64.c
-statfs64_OBJECTS = statfs64.$(OBJEXT)
-statfs64_LDADD = $(LDADD)
-statfs64_DEPENDENCIES = libtests.a
-statx_SOURCES = statx.c
-statx_OBJECTS = statx.$(OBJEXT)
-statx_LDADD = $(LDADD)
-statx_DEPENDENCIES = libtests.a
-swap_SOURCES = swap.c
-swap_OBJECTS = swap.$(OBJEXT)
-swap_LDADD = $(LDADD)
-swap_DEPENDENCIES = libtests.a
-sxetmask_SOURCES = sxetmask.c
-sxetmask_OBJECTS = sxetmask.$(OBJEXT)
-sxetmask_LDADD = $(LDADD)
-sxetmask_DEPENDENCIES = libtests.a
-symlink_SOURCES = symlink.c
-symlink_OBJECTS = symlink.$(OBJEXT)
-symlink_LDADD = $(LDADD)
-symlink_DEPENDENCIES = libtests.a
-symlinkat_SOURCES = symlinkat.c
-symlinkat_OBJECTS = symlinkat.$(OBJEXT)
-symlinkat_LDADD = $(LDADD)
-symlinkat_DEPENDENCIES = libtests.a
-sync_SOURCES = sync.c
-sync_OBJECTS = sync.$(OBJEXT)
-sync_LDADD = $(LDADD)
-sync_DEPENDENCIES = libtests.a
-sync_file_range_SOURCES = sync_file_range.c
-sync_file_range_OBJECTS = sync_file_range.$(OBJEXT)
-sync_file_range_LDADD = $(LDADD)
-sync_file_range_DEPENDENCIES = libtests.a
-sync_file_range2_SOURCES = sync_file_range2.c
-sync_file_range2_OBJECTS = sync_file_range2.$(OBJEXT)
-sync_file_range2_LDADD = $(LDADD)
-sync_file_range2_DEPENDENCIES = libtests.a
-sysinfo_SOURCES = sysinfo.c
-sysinfo_OBJECTS = sysinfo.$(OBJEXT)
-sysinfo_LDADD = $(LDADD)
-sysinfo_DEPENDENCIES = libtests.a
-syslog_SOURCES = syslog.c
-syslog_OBJECTS = syslog.$(OBJEXT)
-syslog_LDADD = $(LDADD)
-syslog_DEPENDENCIES = libtests.a
-tee_SOURCES = tee.c
-tee_OBJECTS = tee.$(OBJEXT)
-tee_LDADD = $(LDADD)
-tee_DEPENDENCIES = libtests.a
-threads_execve_SOURCES = threads-execve.c
-threads_execve_OBJECTS = threads-execve.$(OBJEXT)
-threads_execve_DEPENDENCIES = $(LDADD)
-time_SOURCES = time.c
-time_OBJECTS = time.$(OBJEXT)
-time_LDADD = $(LDADD)
-time_DEPENDENCIES = libtests.a
-timer_create_SOURCES = timer_create.c
-timer_create_OBJECTS = timer_create.$(OBJEXT)
-timer_create_LDADD = $(LDADD)
-timer_create_DEPENDENCIES = libtests.a
-timer_xettime_SOURCES = timer_xettime.c
-timer_xettime_OBJECTS = timer_xettime.$(OBJEXT)
-timer_xettime_LDADD = $(LDADD)
-timer_xettime_DEPENDENCIES = libtests.a
-timerfd_xettime_SOURCES = timerfd_xettime.c
-timerfd_xettime_OBJECTS = timerfd_xettime.$(OBJEXT)
-timerfd_xettime_LDADD = $(LDADD)
-timerfd_xettime_DEPENDENCIES = libtests.a
-times_SOURCES = times.c
-times_OBJECTS = times.$(OBJEXT)
-times_DEPENDENCIES = $(LDADD)
-times_fail_SOURCES = times-fail.c
-times_fail_OBJECTS = times-fail.$(OBJEXT)
-times_fail_LDADD = $(LDADD)
-times_fail_DEPENDENCIES = libtests.a
-truncate_SOURCES = truncate.c
-truncate_OBJECTS = truncate.$(OBJEXT)
-truncate_LDADD = $(LDADD)
-truncate_DEPENDENCIES = libtests.a
-truncate64_SOURCES = truncate64.c
-truncate64_OBJECTS = truncate64-truncate64.$(OBJEXT)
-truncate64_LDADD = $(LDADD)
-truncate64_DEPENDENCIES = libtests.a
-ugetrlimit_SOURCES = ugetrlimit.c
-ugetrlimit_OBJECTS = ugetrlimit.$(OBJEXT)
-ugetrlimit_LDADD = $(LDADD)
-ugetrlimit_DEPENDENCIES = libtests.a
-uio_SOURCES = uio.c
-uio_OBJECTS = uio-uio.$(OBJEXT)
-uio_LDADD = $(LDADD)
-uio_DEPENDENCIES = libtests.a
-umask_SOURCES = umask.c
-umask_OBJECTS = umask.$(OBJEXT)
-umask_LDADD = $(LDADD)
-umask_DEPENDENCIES = libtests.a
-umount_SOURCES = umount.c
-umount_OBJECTS = umount.$(OBJEXT)
-umount_LDADD = $(LDADD)
-umount_DEPENDENCIES = libtests.a
-umount2_SOURCES = umount2.c
-umount2_OBJECTS = umount2.$(OBJEXT)
-umount2_LDADD = $(LDADD)
-umount2_DEPENDENCIES = libtests.a
-umoven_illptr_SOURCES = umoven-illptr.c
-umoven_illptr_OBJECTS = umoven-illptr.$(OBJEXT)
-umoven_illptr_LDADD = $(LDADD)
-umoven_illptr_DEPENDENCIES = libtests.a
-umovestr_SOURCES = umovestr.c
-umovestr_OBJECTS = umovestr.$(OBJEXT)
-umovestr_LDADD = $(LDADD)
-umovestr_DEPENDENCIES = libtests.a
-umovestr_illptr_SOURCES = umovestr-illptr.c
-umovestr_illptr_OBJECTS = umovestr-illptr.$(OBJEXT)
-umovestr_illptr_LDADD = $(LDADD)
-umovestr_illptr_DEPENDENCIES = libtests.a
-umovestr2_SOURCES = umovestr2.c
-umovestr2_OBJECTS = umovestr2.$(OBJEXT)
-umovestr2_LDADD = $(LDADD)
-umovestr2_DEPENDENCIES = libtests.a
-umovestr3_SOURCES = umovestr3.c
-umovestr3_OBJECTS = umovestr3.$(OBJEXT)
-umovestr3_LDADD = $(LDADD)
-umovestr3_DEPENDENCIES = libtests.a
-uname_SOURCES = uname.c
-uname_OBJECTS = uname.$(OBJEXT)
-uname_LDADD = $(LDADD)
-uname_DEPENDENCIES = libtests.a
-unix_pair_send_recv_SOURCES = unix-pair-send-recv.c
-unix_pair_send_recv_OBJECTS = unix-pair-send-recv.$(OBJEXT)
-unix_pair_send_recv_LDADD = $(LDADD)
-unix_pair_send_recv_DEPENDENCIES = libtests.a
-unix_pair_sendto_recvfrom_SOURCES = unix-pair-sendto-recvfrom.c
-unix_pair_sendto_recvfrom_OBJECTS =  \
-	unix-pair-sendto-recvfrom.$(OBJEXT)
-unix_pair_sendto_recvfrom_LDADD = $(LDADD)
-unix_pair_sendto_recvfrom_DEPENDENCIES = libtests.a
-unlink_SOURCES = unlink.c
-unlink_OBJECTS = unlink.$(OBJEXT)
-unlink_LDADD = $(LDADD)
-unlink_DEPENDENCIES = libtests.a
-unlinkat_SOURCES = unlinkat.c
-unlinkat_OBJECTS = unlinkat.$(OBJEXT)
-unlinkat_LDADD = $(LDADD)
-unlinkat_DEPENDENCIES = libtests.a
-unshare_SOURCES = unshare.c
-unshare_OBJECTS = unshare.$(OBJEXT)
-unshare_LDADD = $(LDADD)
-unshare_DEPENDENCIES = libtests.a
-userfaultfd_SOURCES = userfaultfd.c
-userfaultfd_OBJECTS = userfaultfd.$(OBJEXT)
-userfaultfd_LDADD = $(LDADD)
-userfaultfd_DEPENDENCIES = libtests.a
-ustat_SOURCES = ustat.c
-ustat_OBJECTS = ustat.$(OBJEXT)
-ustat_LDADD = $(LDADD)
-ustat_DEPENDENCIES = libtests.a
-utime_SOURCES = utime.c
-utime_OBJECTS = utime.$(OBJEXT)
-utime_LDADD = $(LDADD)
-utime_DEPENDENCIES = libtests.a
-utimensat_SOURCES = utimensat.c
-utimensat_OBJECTS = utimensat.$(OBJEXT)
-utimensat_LDADD = $(LDADD)
-utimensat_DEPENDENCIES = libtests.a
-utimes_SOURCES = utimes.c
-utimes_OBJECTS = utimes.$(OBJEXT)
-utimes_LDADD = $(LDADD)
-utimes_DEPENDENCIES = libtests.a
-vfork_f_SOURCES = vfork-f.c
-vfork_f_OBJECTS = vfork-f.$(OBJEXT)
-vfork_f_LDADD = $(LDADD)
-vfork_f_DEPENDENCIES = libtests.a
-vhangup_SOURCES = vhangup.c
-vhangup_OBJECTS = vhangup.$(OBJEXT)
-vhangup_LDADD = $(LDADD)
-vhangup_DEPENDENCIES = libtests.a
-vmsplice_SOURCES = vmsplice.c
-vmsplice_OBJECTS = vmsplice.$(OBJEXT)
-vmsplice_LDADD = $(LDADD)
-vmsplice_DEPENDENCIES = libtests.a
-wait4_SOURCES = wait4.c
-wait4_OBJECTS = wait4.$(OBJEXT)
-wait4_LDADD = $(LDADD)
-wait4_DEPENDENCIES = libtests.a
-wait4_v_SOURCES = wait4-v.c
-wait4_v_OBJECTS = wait4-v.$(OBJEXT)
-wait4_v_LDADD = $(LDADD)
-wait4_v_DEPENDENCIES = libtests.a
-waitid_SOURCES = waitid.c
-waitid_OBJECTS = waitid.$(OBJEXT)
-waitid_LDADD = $(LDADD)
-waitid_DEPENDENCIES = libtests.a
-waitid_v_SOURCES = waitid-v.c
-waitid_v_OBJECTS = waitid-v.$(OBJEXT)
-waitid_v_LDADD = $(LDADD)
-waitid_v_DEPENDENCIES = libtests.a
-waitpid_SOURCES = waitpid.c
-waitpid_OBJECTS = waitpid.$(OBJEXT)
-waitpid_LDADD = $(LDADD)
-waitpid_DEPENDENCIES = libtests.a
-xattr_SOURCES = xattr.c
-xattr_OBJECTS = xattr.$(OBJEXT)
-xattr_LDADD = $(LDADD)
-xattr_DEPENDENCIES = libtests.a
-xattr_strings_SOURCES = xattr-strings.c
-xattr_strings_OBJECTS = xattr-strings.$(OBJEXT)
-xattr_strings_LDADD = $(LDADD)
-xattr_strings_DEPENDENCIES = libtests.a
-xet_robust_list_SOURCES = xet_robust_list.c
-xet_robust_list_OBJECTS = xet_robust_list.$(OBJEXT)
-xet_robust_list_LDADD = $(LDADD)
-xet_robust_list_DEPENDENCIES = libtests.a
-xetitimer_SOURCES = xetitimer.c
-xetitimer_OBJECTS = xetitimer.$(OBJEXT)
-xetitimer_LDADD = $(LDADD)
-xetitimer_DEPENDENCIES = libtests.a
-xetpgid_SOURCES = xetpgid.c
-xetpgid_OBJECTS = xetpgid.$(OBJEXT)
-xetpgid_LDADD = $(LDADD)
-xetpgid_DEPENDENCIES = libtests.a
-xetpriority_SOURCES = xetpriority.c
-xetpriority_OBJECTS = xetpriority.$(OBJEXT)
-xetpriority_LDADD = $(LDADD)
-xetpriority_DEPENDENCIES = libtests.a
-xettimeofday_SOURCES = xettimeofday.c
-xettimeofday_OBJECTS = xettimeofday.$(OBJEXT)
-xettimeofday_LDADD = $(LDADD)
-xettimeofday_DEPENDENCIES = libtests.a
-AM_V_P = $(am__v_P_$(V))
-am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
-am__v_at_0 = @
-am__v_at_1 = 
-DEFAULT_INCLUDES = 
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
-am__v_lt_0 = --silent
-am__v_lt_1 = 
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
-am__v_CC_0 = @echo "  CC      " $@;
-am__v_CC_1 = 
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
-am__v_CCLD_0 = @echo "  CCLD    " $@;
-am__v_CCLD_1 = 
-SOURCES = $(libtests_a_SOURCES) _newselect.c accept.c accept4.c \
-	access.c acct.c add_key.c adjtimex.c aio.c alarm.c answer.c \
-	attach-f-p.c attach-f-p-cmd.c attach-p-cmd-cmd.c \
-	attach-p-cmd-p.c bpf.c brk.c btrfs.c caps.c caps-abbrev.c \
-	chmod.c chown.c chown32.c chroot.c clock_adjtime.c \
-	clock_nanosleep.c clock_xettime.c copy_file_range.c count-f.c \
-	creat.c delete_module.c dup.c dup2.c dup3.c epoll_create.c \
-	epoll_create1.c epoll_ctl.c epoll_pwait.c epoll_wait.c \
-	erestartsys.c eventfd.c execve.c execve-v.c execveat.c \
-	execveat-v.c faccessat.c fadvise64.c fadvise64_64.c \
-	fallocate.c fanotify_init.c fanotify_mark.c fchdir.c fchmod.c \
-	fchmodat.c fchown.c fchown32.c fchownat.c fcntl.c fcntl64.c \
-	fdatasync.c file_handle.c file_ioctl.c filter-unavailable.c \
-	finit_module.c flock.c fork-f.c fstat.c fstat64.c fstatat64.c \
-	fstatfs.c fstatfs64.c fsync.c ftruncate.c ftruncate64.c \
-	futex.c futimesat.c get_mempolicy.c getcpu.c getcwd.c \
-	getdents.c getdents64.c getegid.c getegid32.c geteuid.c \
-	geteuid32.c getgid.c getgid32.c getgroups.c getgroups32.c \
-	getpeername.c getpgrp.c getpid.c getppid.c getrandom.c \
-	getresgid.c getresgid32.c getresuid.c getresuid32.c \
-	getrlimit.c getrusage.c getsid.c getsockname.c gettid.c \
-	getuid.c getuid32.c getxxid.c inet-cmsg.c init_module.c \
-	inotify.c inotify_init1.c int_0x80.c ioctl.c ioctl_block.c \
-	ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-v.c \
-	ioctl_loop.c ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c \
-	ioctl_nsfs.c ioctl_rtc.c ioctl_rtc-v.c ioctl_scsi.c \
-	ioctl_sg_io_v3.c ioctl_sg_io_v4.c ioctl_sock_gifconf.c \
-	ioctl_uffdio.c ioctl_v4l2.c ioperm.c iopl.c ioprio.c ip_mreq.c \
-	ipc.c ipc_msg.c ipc_msgbuf.c ipc_sem.c ipc_shm.c kcmp.c \
-	kexec_file_load.c kexec_load.c keyctl.c kill.c ksysent.c \
-	lchown.c lchown32.c link.c linkat.c llseek.c lookup_dcookie.c \
-	lseek.c lstat.c lstat64.c madvise.c mbind.c membarrier.c \
-	memfd_create.c migrate_pages.c mincore.c mkdir.c mkdirat.c \
-	mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c mmap64.c \
-	mmsg.c mmsg-silent.c mmsg_name.c mmsg_name-v.c mount.c \
-	move_pages.c mq.c mq_sendrecv.c mq_sendrecv-read.c \
-	mq_sendrecv-write.c msg_control.c msg_control-v.c msg_name.c \
-	munlockall.c nanosleep.c net-accept-connect.c \
-	net-icmp_filter.c net-sockaddr.c net-y-unix.c net-yy-inet.c \
-	net-yy-netlink.c net-yy-unix.c netlink_inet_diag.c \
-	netlink_netlink_diag.c netlink_protocol.c netlink_unix_diag.c \
-	newfstatat.c nsyscalls.c old_mmap.c oldfstat.c oldlstat.c \
-	oldselect.c oldstat.c open.c openat.c osf_utimes.c pause.c \
-	pc.c perf_event_open.c perf_event_open_nonverbose.c \
-	perf_event_open_unabbrev.c personality.c pipe.c pipe2.c \
-	pkey_alloc.c pkey_free.c pkey_mprotect.c poll.c ppoll.c \
-	ppoll-v.c prctl-arg2-intptr.c prctl-dumpable.c prctl-name.c \
-	prctl-no-args.c prctl-pdeathsig.c prctl-seccomp-filter-v.c \
-	prctl-seccomp-strict.c prctl-securebits.c prctl-tid_address.c \
-	prctl-tsc.c pread64-pwrite64.c preadv.c preadv-pwritev.c \
-	preadv2-pwritev2.c print_maxfd.c printstr.c prlimit64.c \
-	process_vm_readv.c process_vm_writev.c pselect6.c ptrace.c \
-	pwritev.c qual_fault.c qual_inject-error-signal.c \
-	qual_inject-retval.c qual_inject-signal.c qual_signal.c \
-	quotactl.c quotactl-v.c quotactl-xfs.c quotactl-xfs-v.c \
-	read-write.c readahead.c readdir.c readlink.c readlinkat.c \
-	readv.c reboot.c recvfrom.c recvmmsg-timeout.c recvmsg.c \
-	redirect-fds.c remap_file_pages.c rename.c renameat.c \
-	renameat2.c request_key.c restart_syscall.c rmdir.c \
-	rt_sigpending.c rt_sigprocmask.c rt_sigqueueinfo.c \
-	rt_sigreturn.c rt_sigsuspend.c rt_sigtimedwait.c \
-	rt_tgsigqueueinfo.c sched_get_priority_mxx.c \
-	sched_rr_get_interval.c sched_xetaffinity.c sched_xetattr.c \
-	sched_xetparam.c sched_xetscheduler.c sched_yield.c \
-	scm_rights.c seccomp-filter.c seccomp-filter-v.c \
-	seccomp-strict.c select.c semop.c sendfile.c sendfile64.c \
-	set_mempolicy.c set_ptracer_any.c setdomainname.c setfsgid.c \
-	setfsgid32.c setfsuid.c setfsuid32.c setgid.c setgid32.c \
-	setgroups.c setgroups32.c sethostname.c setns.c setregid.c \
-	setregid32.c setresgid.c setresgid32.c setresuid.c \
-	setresuid32.c setreuid.c setreuid32.c setrlimit.c setuid.c \
-	setuid32.c shmxt.c shutdown.c sigaction.c sigaltstack.c \
-	siginfo.c signal_receive.c signalfd4.c sigreturn.c \
-	sigsuspend.c sleep.c socketcall.c splice.c \
-	$(stack_fcall_SOURCES) stat.c stat64.c statfs.c statfs64.c \
-	statx.c swap.c sxetmask.c symlink.c symlinkat.c sync.c \
-	sync_file_range.c sync_file_range2.c sysinfo.c syslog.c tee.c \
-	threads-execve.c time.c timer_create.c timer_xettime.c \
-	timerfd_xettime.c times.c times-fail.c truncate.c truncate64.c \
-	ugetrlimit.c uio.c umask.c umount.c umount2.c umoven-illptr.c \
-	umovestr.c umovestr-illptr.c umovestr2.c umovestr3.c uname.c \
-	unix-pair-send-recv.c unix-pair-sendto-recvfrom.c unlink.c \
-	unlinkat.c unshare.c userfaultfd.c ustat.c utime.c utimensat.c \
-	utimes.c vfork-f.c vhangup.c vmsplice.c wait4.c wait4-v.c \
-	waitid.c waitid-v.c waitpid.c xattr.c xattr-strings.c \
-	xet_robust_list.c xetitimer.c xetpgid.c xetpriority.c \
-	xettimeofday.c
-DIST_SOURCES = $(libtests_a_SOURCES) _newselect.c accept.c accept4.c \
-	access.c acct.c add_key.c adjtimex.c aio.c alarm.c answer.c \
-	attach-f-p.c attach-f-p-cmd.c attach-p-cmd-cmd.c \
-	attach-p-cmd-p.c bpf.c brk.c btrfs.c caps.c caps-abbrev.c \
-	chmod.c chown.c chown32.c chroot.c clock_adjtime.c \
-	clock_nanosleep.c clock_xettime.c copy_file_range.c count-f.c \
-	creat.c delete_module.c dup.c dup2.c dup3.c epoll_create.c \
-	epoll_create1.c epoll_ctl.c epoll_pwait.c epoll_wait.c \
-	erestartsys.c eventfd.c execve.c execve-v.c execveat.c \
-	execveat-v.c faccessat.c fadvise64.c fadvise64_64.c \
-	fallocate.c fanotify_init.c fanotify_mark.c fchdir.c fchmod.c \
-	fchmodat.c fchown.c fchown32.c fchownat.c fcntl.c fcntl64.c \
-	fdatasync.c file_handle.c file_ioctl.c filter-unavailable.c \
-	finit_module.c flock.c fork-f.c fstat.c fstat64.c fstatat64.c \
-	fstatfs.c fstatfs64.c fsync.c ftruncate.c ftruncate64.c \
-	futex.c futimesat.c get_mempolicy.c getcpu.c getcwd.c \
-	getdents.c getdents64.c getegid.c getegid32.c geteuid.c \
-	geteuid32.c getgid.c getgid32.c getgroups.c getgroups32.c \
-	getpeername.c getpgrp.c getpid.c getppid.c getrandom.c \
-	getresgid.c getresgid32.c getresuid.c getresuid32.c \
-	getrlimit.c getrusage.c getsid.c getsockname.c gettid.c \
-	getuid.c getuid32.c getxxid.c inet-cmsg.c init_module.c \
-	inotify.c inotify_init1.c int_0x80.c ioctl.c ioctl_block.c \
-	ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-v.c \
-	ioctl_loop.c ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c \
-	ioctl_nsfs.c ioctl_rtc.c ioctl_rtc-v.c ioctl_scsi.c \
-	ioctl_sg_io_v3.c ioctl_sg_io_v4.c ioctl_sock_gifconf.c \
-	ioctl_uffdio.c ioctl_v4l2.c ioperm.c iopl.c ioprio.c ip_mreq.c \
-	ipc.c ipc_msg.c ipc_msgbuf.c ipc_sem.c ipc_shm.c kcmp.c \
-	kexec_file_load.c kexec_load.c keyctl.c kill.c ksysent.c \
-	lchown.c lchown32.c link.c linkat.c llseek.c lookup_dcookie.c \
-	lseek.c lstat.c lstat64.c madvise.c mbind.c membarrier.c \
-	memfd_create.c migrate_pages.c mincore.c mkdir.c mkdirat.c \
-	mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c mmap64.c \
-	mmsg.c mmsg-silent.c mmsg_name.c mmsg_name-v.c mount.c \
-	move_pages.c mq.c mq_sendrecv.c mq_sendrecv-read.c \
-	mq_sendrecv-write.c msg_control.c msg_control-v.c msg_name.c \
-	munlockall.c nanosleep.c net-accept-connect.c \
-	net-icmp_filter.c net-sockaddr.c net-y-unix.c net-yy-inet.c \
-	net-yy-netlink.c net-yy-unix.c netlink_inet_diag.c \
-	netlink_netlink_diag.c netlink_protocol.c netlink_unix_diag.c \
-	newfstatat.c nsyscalls.c old_mmap.c oldfstat.c oldlstat.c \
-	oldselect.c oldstat.c open.c openat.c osf_utimes.c pause.c \
-	pc.c perf_event_open.c perf_event_open_nonverbose.c \
-	perf_event_open_unabbrev.c personality.c pipe.c pipe2.c \
-	pkey_alloc.c pkey_free.c pkey_mprotect.c poll.c ppoll.c \
-	ppoll-v.c prctl-arg2-intptr.c prctl-dumpable.c prctl-name.c \
-	prctl-no-args.c prctl-pdeathsig.c prctl-seccomp-filter-v.c \
-	prctl-seccomp-strict.c prctl-securebits.c prctl-tid_address.c \
-	prctl-tsc.c pread64-pwrite64.c preadv.c preadv-pwritev.c \
-	preadv2-pwritev2.c print_maxfd.c printstr.c prlimit64.c \
-	process_vm_readv.c process_vm_writev.c pselect6.c ptrace.c \
-	pwritev.c qual_fault.c qual_inject-error-signal.c \
-	qual_inject-retval.c qual_inject-signal.c qual_signal.c \
-	quotactl.c quotactl-v.c quotactl-xfs.c quotactl-xfs-v.c \
-	read-write.c readahead.c readdir.c readlink.c readlinkat.c \
-	readv.c reboot.c recvfrom.c recvmmsg-timeout.c recvmsg.c \
-	redirect-fds.c remap_file_pages.c rename.c renameat.c \
-	renameat2.c request_key.c restart_syscall.c rmdir.c \
-	rt_sigpending.c rt_sigprocmask.c rt_sigqueueinfo.c \
-	rt_sigreturn.c rt_sigsuspend.c rt_sigtimedwait.c \
-	rt_tgsigqueueinfo.c sched_get_priority_mxx.c \
-	sched_rr_get_interval.c sched_xetaffinity.c sched_xetattr.c \
-	sched_xetparam.c sched_xetscheduler.c sched_yield.c \
-	scm_rights.c seccomp-filter.c seccomp-filter-v.c \
-	seccomp-strict.c select.c semop.c sendfile.c sendfile64.c \
-	set_mempolicy.c set_ptracer_any.c setdomainname.c setfsgid.c \
-	setfsgid32.c setfsuid.c setfsuid32.c setgid.c setgid32.c \
-	setgroups.c setgroups32.c sethostname.c setns.c setregid.c \
-	setregid32.c setresgid.c setresgid32.c setresuid.c \
-	setresuid32.c setreuid.c setreuid32.c setrlimit.c setuid.c \
-	setuid32.c shmxt.c shutdown.c sigaction.c sigaltstack.c \
-	siginfo.c signal_receive.c signalfd4.c sigreturn.c \
-	sigsuspend.c sleep.c socketcall.c splice.c \
-	$(stack_fcall_SOURCES) stat.c stat64.c statfs.c statfs64.c \
-	statx.c swap.c sxetmask.c symlink.c symlinkat.c sync.c \
-	sync_file_range.c sync_file_range2.c sysinfo.c syslog.c tee.c \
-	threads-execve.c time.c timer_create.c timer_xettime.c \
-	timerfd_xettime.c times.c times-fail.c truncate.c truncate64.c \
-	ugetrlimit.c uio.c umask.c umount.c umount2.c umoven-illptr.c \
-	umovestr.c umovestr-illptr.c umovestr2.c umovestr3.c uname.c \
-	unix-pair-send-recv.c unix-pair-sendto-recvfrom.c unlink.c \
-	unlinkat.c unshare.c userfaultfd.c ustat.c utime.c utimensat.c \
-	utimes.c vfork-f.c vhangup.c vmsplice.c wait4.c wait4-v.c \
-	waitid.c waitid-v.c waitpid.c xattr.c xattr-strings.c \
-	xet_robust_list.c xetitimer.c xetpgid.c xetpriority.c \
-	xettimeofday.c
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__extra_recursive_targets = check-valgrind-recursive
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-am__tty_colors_dummy = \
-  mgn= red= grn= lgn= blu= brg= std=; \
-  am__color_tests=no
-am__tty_colors = { \
-  $(am__tty_colors_dummy); \
-  if test "X$(AM_COLOR_TESTS)" = Xno; then \
-    am__color_tests=no; \
-  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
-    am__color_tests=yes; \
-  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
-    am__color_tests=yes; \
-  fi; \
-  if test $$am__color_tests = yes; then \
-    red='[0;31m'; \
-    grn='[0;32m'; \
-    lgn='[1;32m'; \
-    blu='[1;34m'; \
-    mgn='[0;35m'; \
-    brg='[1m'; \
-    std='[m'; \
-  fi; \
-}
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
-  }
-am__recheck_rx = ^[ 	]*:recheck:[ 	]*
-am__global_test_result_rx = ^[ 	]*:global-test-result:[ 	]*
-am__copy_in_global_log_rx = ^[ 	]*:copy-in-global-log:[ 	]*
-# A command that, given a newline-separated list of test names on the
-# standard input, print the name of the tests that are to be re-run
-# upon "make recheck".
-am__list_recheck_tests = $(AWK) '{ \
-  recheck = 1; \
-  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
-    { \
-      if (rc < 0) \
-        { \
-          if ((getline line2 < ($$0 ".log")) < 0) \
-	    recheck = 0; \
-          break; \
-        } \
-      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
-        { \
-          recheck = 0; \
-          break; \
-        } \
-      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
-        { \
-          break; \
-        } \
-    }; \
-  if (recheck) \
-    print $$0; \
-  close ($$0 ".trs"); \
-  close ($$0 ".log"); \
-}'
-# A command that, given a newline-separated list of test names on the
-# standard input, create the global log from their .trs and .log files.
-am__create_global_log = $(AWK) ' \
-function fatal(msg) \
-{ \
-  print "fatal: making $@: " msg | "cat >&2"; \
-  exit 1; \
-} \
-function rst_section(header) \
-{ \
-  print header; \
-  len = length(header); \
-  for (i = 1; i <= len; i = i + 1) \
-    printf "="; \
-  printf "\n\n"; \
-} \
-{ \
-  copy_in_global_log = 1; \
-  global_test_result = "RUN"; \
-  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
-    { \
-      if (rc < 0) \
-         fatal("failed to read from " $$0 ".trs"); \
-      if (line ~ /$(am__global_test_result_rx)/) \
-        { \
-          sub("$(am__global_test_result_rx)", "", line); \
-          sub("[ 	]*$$", "", line); \
-          global_test_result = line; \
-        } \
-      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
-        copy_in_global_log = 0; \
-    }; \
-  if (copy_in_global_log) \
-    { \
-      rst_section(global_test_result ": " $$0); \
-      while ((rc = (getline line < ($$0 ".log"))) != 0) \
-      { \
-        if (rc < 0) \
-          fatal("failed to read from " $$0 ".log"); \
-        print line; \
-      }; \
-      printf "\n"; \
-    }; \
-  close ($$0 ".trs"); \
-  close ($$0 ".log"); \
-}'
-# Restructured Text title.
-am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
-# Solaris 10 'make', and several other traditional 'make' implementations,
-# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
-# by disabling -e (using the XSI extension "set +e") if it's set.
-am__sh_e_setup = case $$- in *e*) set +e;; esac
-# Default flags passed to test drivers.
-am__common_driver_flags = \
-  --color-tests "$$am__color_tests" \
-  --enable-hard-errors "$$am__enable_hard_errors" \
-  --expect-failure "$$am__expect_failure"
-# To be inserted before the command running the test.  Creates the
-# directory for the log if needed.  Stores in $dir the directory
-# containing $f, in $tst the test, in $log the log.  Executes the
-# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
-# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
-# will run the test scripts (or their associated LOG_COMPILER, if
-# thy have one).
-am__check_pre = \
-$(am__sh_e_setup);					\
-$(am__vpath_adj_setup) $(am__vpath_adj)			\
-$(am__tty_colors);					\
-srcdir=$(srcdir); export srcdir;			\
-case "$@" in						\
-  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;	\
-    *) am__odir=.;; 					\
-esac;							\
-test "x$$am__odir" = x"." || test -d "$$am__odir" 	\
-  || $(MKDIR_P) "$$am__odir" || exit $$?;		\
-if test -f "./$$f"; then dir=./;			\
-elif test -f "$$f"; then dir=;				\
-else dir="$(srcdir)/"; fi;				\
-tst=$$dir$$f; log='$@'; 				\
-if test -n '$(DISABLE_HARD_ERRORS)'; then		\
-  am__enable_hard_errors=no; 				\
-else							\
-  am__enable_hard_errors=yes; 				\
-fi; 							\
-case " $(XFAIL_TESTS) " in				\
-  *[\ \	]$$f[\ \	]* | *[\ \	]$$dir$$f[\ \	]*) \
-    am__expect_failure=yes;;				\
-  *)							\
-    am__expect_failure=no;;				\
-esac; 							\
-$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
-# A shell command to get the names of the tests scripts with any registered
-# extension removed (i.e., equivalently, the names of the test logs, with
-# the '.log' extension removed).  The result is saved in the shell variable
-# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
-# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
-# since that might cause problem with VPATH rewrites for suffix-less tests.
-# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
-am__set_TESTS_bases = \
-  bases='$(TEST_LOGS)'; \
-  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
-  bases=`echo $$bases`
-RECHECK_LOGS = $(TEST_LOGS)
-AM_RECURSIVE_TARGETS = check recheck
-#am__EXEEXT_2 = strace-k.test
-TEST_SUITE_LOG = test-suite.log
-TEST_EXTENSIONS =  .test
-am__test_logs1 = $(TESTS:=.log)
-am__test_logs2 = $(am__test_logs1:.log=.log)
-TEST_LOGS = $(am__test_logs2:.test.log=.log)
-TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
-TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
-	$(TEST_LOG_FLAGS)
-am__set_b = \
-  case '$@' in \
-    */*) \
-      case '$*' in \
-        */*) b='$*';; \
-          *) b=`echo '$@' | sed 's/\.log$$//'`; \
-       esac;; \
-    *) \
-      b='$*';; \
-  esac
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = ${SHELL} /tmp/strace-4.17/missing aclocal-1.14
-AMTAR = $${TAR-tar}
-AM_DEFAULT_VERBOSITY = 1
-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 = 
-CC = gcc
-CCDEPMODE = depmode=gcc3
-CC_FOR_BUILD = gcc
-CFLAGS = -g -O2
-CFLAGS_FOR_BUILD = -g -O2
-CODE_COVERAGE_CFLAGS = 
-CODE_COVERAGE_CPPFLAGS = 
-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 = Thu, 25 May 2017 15:09:49 -0700
-DEFS = -DHAVE_CONFIG_H
-DEPDIR = .deps
-ECHO_C = 
-ECHO_N = -n
-ECHO_T = 
-EGREP = /bin/grep -E
-ENABLE_VALGRIND_drd = no
-ENABLE_VALGRIND_helgrind = no
-ENABLE_VALGRIND_memcheck = yes
-ENABLE_VALGRIND_sgcheck = 
-EXEEXT = 
-GCOV = 
-GENHTML = 
-GREP = /bin/grep
-INSTALL = /usr/bin/install -c
-INSTALL_DATA = ${INSTALL} -m 644
-INSTALL_PROGRAM = ${INSTALL}
-INSTALL_SCRIPT = ${INSTALL}
-INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
-LCOV = 
-LDFLAGS = 
-LDFLAGS_FOR_BUILD = 
-LIBOBJS = 
-LIBS = 
-LTLIBOBJS = 
-MAINT = #
-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.17
-PACKAGE_TARNAME = strace
-PACKAGE_URL = https://strace.io
-PACKAGE_VERSION = 4.17
-PATH_SEPARATOR = :
-PERL = /usr/bin/perl
-RANLIB = ranlib
-RPM_CHANGELOGTIME = Thu May 25 2017
-SED = /bin/sed
-SET_MAKE = 
-SHELL = /bin/sh
-STRIP = 
-VALGRIND = valgrind
-VALGRIND_ENABLED = yes
-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 = /tmp/strace-4.17/tests-mx32
-abs_srcdir = /tmp/strace-4.17/tests-mx32
-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
-am__leading_dot = .
-am__quote = 
-am__tar = $${TAR-tar} chof - "$$tardir"
-am__untar = $${TAR-tar} xf -
-arch = x86_64
-arch_m32 = i386
-arch_mx32 = x32
-bindir = ${exec_prefix}/bin
-build = x86_64-pc-linux-gnu
-build_alias = 
-build_cpu = x86_64
-build_os = linux-gnu
-build_vendor = pc
-builddir = .
-datadir = ${datarootdir}
-datarootdir = ${prefix}/share
-dl_LIBS = -ldl
-docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
-dvidir = ${docdir}
-exec_prefix = ${prefix}
-host = x86_64-pc-linux-gnu
-host_alias = 
-host_cpu = x86_64
-host_os = linux-gnu
-host_vendor = pc
-htmldir = ${docdir}
-includedir = ${prefix}/include
-infodir = ${datarootdir}/info
-install_sh = ${SHELL} /tmp/strace-4.17/install-sh
-libdir = ${exec_prefix}/lib
-libexecdir = ${exec_prefix}/libexec
-libunwind_CPPFLAGS = 
-libunwind_LDFLAGS = 
-libunwind_LIBS = 
-localedir = ${datarootdir}/locale
-localstatedir = ${prefix}/var
-mandir = ${datarootdir}/man
-mkdir_p = $(MKDIR_P)
-oldincludedir = /usr/include
-pdfdir = ${docdir}
-prefix = /usr/local
-program_transform_name = s,x,x,
-psdir = ${docdir}
-sbindir = ${exec_prefix}/sbin
-sharedstatedir = ${prefix}/com
-srcdir = .
-sysconfdir = ${prefix}/etc
-target_alias = 
-top_build_prefix = ../
-top_builddir = ..
-top_srcdir = ..
-valgrind_enabled_tools =  memcheck
-valgrind_tools = memcheck helgrind drd sgcheck
-OS = linux
-ARCH = x32
-MPERS_NAME = mx32
-ARCH_MFLAGS = -DMPERS_IS_$(MPERS_NAME) -mx32
-AM_CFLAGS = $(WARN_CFLAGS)
-AM_CPPFLAGS = $(ARCH_MFLAGS) \
-	      -I$(builddir) \
-	      -I$(top_builddir)/$(OS)/$(ARCH) \
-	      -I$(top_srcdir)/$(OS)/$(ARCH) \
-	      -I$(top_builddir)/$(OS) \
-	      -I$(top_srcdir)/$(OS) \
-	      -I$(top_builddir) \
-	      -I$(top_srcdir)
-
-AM_LDFLAGS = $(ARCH_MFLAGS)
-libtests_a_SOURCES = \
-	errno2name.c \
-	error_msg.c \
-	fill_memory.c \
-	get_page_size.c \
-	get_sigset_size.c \
-	hexdump_strdup.c \
-	hexquote_strndup.c \
-	inode_of_sockfd.c \
-	libmmsg.c \
-	libsocketcall.c \
-	overflowuid.c \
-	pipe_maxfd.c \
-	print_quoted_string.c \
-	print_time.c \
-	printflags.c \
-	printxval.c \
-	signal2name.c \
-	skip_unavailable.c \
-	sprintrc.c \
-	tail_alloc.c \
-	tests.h \
-	tprintf.c \
-	# end of libtests_a_SOURCES
-
-libtests_a_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-check_LIBRARIES = libtests.a
-LDADD = libtests.a
-
-# Generated by ./tests/gen_pure_executables.sh from ./tests/pure_executables.list; do not edit.
-PURE_EXECUTABLES = \
-  _newselect \
-  accept \
-  accept4 \
-  access \
-  acct \
-  add_key \
-  adjtimex \
-  aio \
-  alarm \
-  bpf \
-  brk \
-  btrfs \
-  caps \
-  chmod \
-  chown \
-  chown32 \
-  chroot \
-  clock_adjtime \
-  clock_nanosleep \
-  clock_xettime \
-  copy_file_range \
-  creat \
-  delete_module \
-  dup \
-  dup2 \
-  dup3 \
-  epoll_create \
-  epoll_create1 \
-  epoll_ctl \
-  epoll_pwait \
-  epoll_wait \
-  erestartsys \
-  eventfd \
-  execve \
-  execveat \
-  faccessat \
-  fadvise64 \
-  fadvise64_64 \
-  fallocate \
-  fanotify_init \
-  fanotify_mark \
-  fchdir \
-  fchmod \
-  fchmodat \
-  fchown \
-  fchown32 \
-  fchownat \
-  fcntl \
-  fcntl64 \
-  fdatasync \
-  file_handle \
-  file_ioctl \
-  finit_module \
-  flock \
-  fstat \
-  fstat64 \
-  fstatat64 \
-  fstatfs \
-  fstatfs64 \
-  fsync \
-  ftruncate \
-  ftruncate64 \
-  futex \
-  futimesat \
-  get_mempolicy \
-  getcpu \
-  getcwd \
-  getdents \
-  getdents64 \
-  getegid \
-  getegid32 \
-  geteuid \
-  geteuid32 \
-  getgid \
-  getgid32 \
-  getgroups \
-  getgroups32 \
-  getpeername \
-  getpgrp \
-  getpid \
-  getppid \
-  getrandom \
-  getresgid \
-  getresgid32 \
-  getresuid \
-  getresuid32 \
-  getrlimit \
-  getrusage \
-  getsid \
-  getsockname \
-  getuid \
-  getuid32 \
-  getxxid \
-  inet-cmsg \
-  init_module \
-  inotify \
-  inotify_init1 \
-  ioctl \
-  ioctl_block \
-  ioctl_dm \
-  ioctl_evdev \
-  ioctl_loop \
-  ioctl_mtd \
-  ioctl_rtc \
-  ioctl_scsi \
-  ioctl_sg_io_v3 \
-  ioctl_sg_io_v4 \
-  ioctl_sock_gifconf \
-  ioctl_uffdio \
-  ioctl_v4l2 \
-  ioperm \
-  iopl \
-  ioprio \
-  ip_mreq \
-  ipc \
-  ipc_msg \
-  ipc_msgbuf \
-  ipc_sem \
-  ipc_shm \
-  kcmp \
-  kexec_file_load \
-  kexec_load \
-  keyctl \
-  kill \
-  lchown \
-  lchown32 \
-  link \
-  linkat \
-  llseek \
-  lookup_dcookie \
-  lseek \
-  lstat \
-  lstat64 \
-  madvise \
-  mbind \
-  membarrier \
-  memfd_create \
-  migrate_pages \
-  mincore \
-  mkdir \
-  mkdirat \
-  mknod \
-  mknodat \
-  mlock \
-  mlock2 \
-  mlockall \
-  mmap \
-  mmap64 \
-  mmsg \
-  mmsg_name \
-  mount \
-  move_pages \
-  mq \
-  mq_sendrecv \
-  mq_sendrecv-read \
-  mq_sendrecv-write \
-  msg_control \
-  msg_name \
-  munlockall \
-  nanosleep \
-  net-icmp_filter \
-  net-sockaddr \
-  net-y-unix \
-  net-yy-inet \
-  net-yy-netlink \
-  net-yy-unix \
-  netlink_protocol \
-  newfstatat \
-  old_mmap \
-  oldfstat \
-  oldlstat \
-  oldselect \
-  oldstat \
-  open \
-  openat \
-  osf_utimes \
-  pause \
-  perf_event_open \
-  personality \
-  pipe \
-  pipe2 \
-  pkey_alloc \
-  pkey_free \
-  pkey_mprotect \
-  poll \
-  ppoll \
-  prctl-arg2-intptr \
-  prctl-dumpable \
-  prctl-name \
-  prctl-no-args \
-  prctl-pdeathsig \
-  prctl-securebits \
-  prctl-tid_address \
-  prctl-tsc \
-  pread64-pwrite64 \
-  preadv \
-  preadv-pwritev \
-  preadv2-pwritev2 \
-  printstr \
-  prlimit64 \
-  process_vm_readv \
-  process_vm_writev \
-  pselect6 \
-  ptrace \
-  pwritev \
-  quotactl \
-  quotactl-xfs \
-  read-write \
-  readahead \
-  readdir \
-  readlink \
-  readlinkat \
-  readv \
-  reboot \
-  recvfrom \
-  recvmmsg-timeout \
-  recvmsg \
-  remap_file_pages \
-  rename \
-  renameat \
-  renameat2 \
-  request_key \
-  rmdir \
-  rt_sigpending \
-  rt_sigprocmask \
-  rt_sigqueueinfo \
-  rt_sigreturn \
-  rt_sigsuspend \
-  rt_sigtimedwait \
-  rt_tgsigqueueinfo \
-  sched_get_priority_mxx \
-  sched_rr_get_interval \
-  sched_xetaffinity \
-  sched_xetattr \
-  sched_xetparam \
-  sched_xetscheduler \
-  sched_yield \
-  seccomp-filter \
-  select \
-  semop \
-  sendfile \
-  sendfile64 \
-  set_mempolicy \
-  setdomainname \
-  setfsgid \
-  setfsgid32 \
-  setfsuid \
-  setfsuid32 \
-  setgid \
-  setgid32 \
-  setgroups \
-  setgroups32 \
-  sethostname \
-  setns \
-  setregid \
-  setregid32 \
-  setresgid \
-  setresgid32 \
-  setresuid \
-  setresuid32 \
-  setreuid \
-  setreuid32 \
-  setrlimit \
-  setuid \
-  setuid32 \
-  shmxt \
-  shutdown \
-  sigaction \
-  sigaltstack \
-  siginfo \
-  signalfd4 \
-  sigreturn \
-  sigsuspend \
-  socketcall \
-  splice \
-  stat \
-  stat64 \
-  statfs \
-  statfs64 \
-  statx \
-  swap \
-  sxetmask \
-  symlink \
-  symlinkat \
-  sync \
-  sync_file_range \
-  sync_file_range2 \
-  sysinfo \
-  syslog \
-  tee \
-  time \
-  timer_create \
-  timer_xettime \
-  timerfd_xettime \
-  times \
-  times-fail \
-  truncate \
-  truncate64 \
-  ugetrlimit \
-  uio \
-  umask \
-  umount \
-  umount2 \
-  umoven-illptr \
-  umovestr \
-  umovestr-illptr \
-  umovestr2 \
-  umovestr3 \
-  uname \
-  unlink \
-  unlinkat \
-  unshare \
-  userfaultfd \
-  ustat \
-  utime \
-  utimensat \
-  utimes \
-  vhangup \
-  vmsplice \
-  wait4 \
-  waitid \
-  waitpid \
-  xattr \
-  xattr-strings \
-  xet_robust_list \
-  xetitimer \
-  xetpgid \
-  xetpriority \
-  xettimeofday \
-  #
-
-attach_f_p_LDADD = -lrt -lpthread $(LDADD)
-clock_xettime_LDADD = -lrt $(LDADD)
-count_f_LDADD = -lpthread $(LDADD)
-filter_unavailable_LDADD = -lpthread $(LDADD)
-fstat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-fstatat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-ftruncate64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-lstat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-mmap64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-mq_LDADD = -lrt $(LDADD)
-mq_sendrecv_LDADD = -lrt $(LDADD)
-mq_sendrecv_read_LDADD = -lrt $(LDADD)
-mq_sendrecv_write_LDADD = -lrt $(LDADD)
-newfstatat_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-pc_LDADD = $(dl_LIBS) $(LDADD)
-pread64_pwrite64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-preadv_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-preadv_pwritev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-pwritev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-stat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-statfs_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-threads_execve_LDADD = -lrt -lpthread $(LDADD)
-times_LDADD = -lrt $(LDADD)
-truncate64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-uio_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-stack_fcall_SOURCES = stack-fcall.c \
-	stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
-
-
-# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in; do not edit.
-GEN_TESTS = _newselect.gen.test accept.gen.test accept4.gen.test \
-	access.gen.test acct.gen.test add_key.gen.test \
-	adjtimex.gen.test aio.gen.test alarm.gen.test bpf.gen.test \
-	btrfs.gen.test chmod.gen.test chown.gen.test chown32.gen.test \
-	chroot.gen.test clock.gen.test clock_adjtime.gen.test \
-	clock_nanosleep.gen.test clock_xettime.gen.test \
-	copy_file_range.gen.test creat.gen.test delete_module.gen.test \
-	dup.gen.test dup2.gen.test dup3.gen.test epoll_create.gen.test \
-	epoll_create1.gen.test epoll_ctl.gen.test epoll_pwait.gen.test \
-	epoll_wait.gen.test erestartsys.gen.test execveat.gen.test \
-	execveat-v.gen.test faccessat.gen.test fadvise64_64.gen.test \
-	fallocate.gen.test fanotify_init.gen.test \
-	fanotify_mark.gen.test fchdir.gen.test fchmod.gen.test \
-	fchmodat.gen.test fchown.gen.test fchown32.gen.test \
-	fchownat.gen.test fcntl.gen.test fcntl64.gen.test \
-	fdatasync.gen.test file_handle.gen.test file_ioctl.gen.test \
-	finit_module.gen.test flock.gen.test fork-f.gen.test \
-	fstat.gen.test fstat64.gen.test fstatat64.gen.test \
-	fstatfs.gen.test fstatfs64.gen.test fsync.gen.test \
-	ftruncate.gen.test ftruncate64.gen.test futimesat.gen.test \
-	get_mempolicy.gen.test getcpu.gen.test getcwd.gen.test \
-	getdents.gen.test getdents64.gen.test getegid.gen.test \
-	getegid32.gen.test geteuid.gen.test geteuid32.gen.test \
-	getgid.gen.test getgid32.gen.test getgroups.gen.test \
-	getgroups32.gen.test getpeername.gen.test getpgrp.gen.test \
-	getpid.gen.test getppid.gen.test getrandom.gen.test \
-	getresgid.gen.test getresgid32.gen.test getresuid.gen.test \
-	getresuid32.gen.test getrlimit.gen.test getrusage.gen.test \
-	getsid.gen.test getsockname.gen.test gettid.gen.test \
-	getuid32.gen.test getxxid.gen.test inet-cmsg.gen.test \
-	init_module.gen.test inotify.gen.test inotify_init1.gen.test \
-	int_0x80.gen.test ioctl_block.gen.test ioctl_evdev.gen.test \
-	ioctl_evdev-v.gen.test ioctl_loop.gen.test \
-	ioctl_loop-v.gen.test ioctl_mtd.gen.test ioctl_rtc.gen.test \
-	ioctl_rtc-v.gen.test ioctl_scsi.gen.test \
-	ioctl_sg_io_v3.gen.test ioctl_sg_io_v4.gen.test \
-	ioctl_uffdio.gen.test ioctl_v4l2.gen.test ioperm.gen.test \
-	iopl.gen.test ioprio.gen.test ip_mreq.gen.test ipc.gen.test \
-	ipc_msg.gen.test ipc_sem.gen.test ipc_shm.gen.test \
-	kcmp.gen.test kexec_file_load.gen.test kexec_load.gen.test \
-	keyctl.gen.test kill.gen.test lchown.gen.test \
-	lchown32.gen.test link.gen.test linkat.gen.test \
-	lookup_dcookie.gen.test lstat.gen.test lstat64.gen.test \
-	madvise.gen.test mbind.gen.test membarrier.gen.test \
-	memfd_create.gen.test migrate_pages.gen.test mincore.gen.test \
-	mkdir.gen.test mkdirat.gen.test mknod.gen.test \
-	mknodat.gen.test mlock.gen.test mlock2.gen.test \
-	mlockall.gen.test mmap64.gen.test mmsg.gen.test \
-	mmsg-silent.gen.test mmsg_name.gen.test mmsg_name-v.gen.test \
-	mount.gen.test move_pages.gen.test mq.gen.test \
-	mq_sendrecv.gen.test mq_sendrecv-read.gen.test \
-	mq_sendrecv-write.gen.test msg_control.gen.test \
-	msg_control-v.gen.test msg_name.gen.test munlockall.gen.test \
-	nanosleep.gen.test net-icmp_filter.gen.test \
-	net-sockaddr.gen.test netlink_protocol.gen.test \
-	newfstatat.gen.test old_mmap.gen.test oldfstat.gen.test \
-	oldlstat.gen.test oldstat.gen.test open.gen.test \
-	openat.gen.test osf_utimes.gen.test pause.gen.test \
-	perf_event_open.gen.test perf_event_open_nonverbose.gen.test \
-	perf_event_open_unabbrev.gen.test pipe2.gen.test \
-	pkey_alloc.gen.test pkey_free.gen.test pkey_mprotect.gen.test \
-	ppoll.gen.test ppoll-v.gen.test pread64-pwrite64.gen.test \
-	preadv.gen.test preadv-pwritev.gen.test \
-	preadv2-pwritev2.gen.test printstr.gen.test prlimit64.gen.test \
-	process_vm_readv.gen.test process_vm_writev.gen.test \
-	pselect6.gen.test ptrace.gen.test pwritev.gen.test \
-	quotactl.gen.test quotactl-v.gen.test quotactl-xfs.gen.test \
-	quotactl-xfs-v.gen.test read-write.gen.test readahead.gen.test \
-	readdir.gen.test readlink.gen.test readlinkat.gen.test \
-	reboot.gen.test recvfrom.gen.test recvmmsg-timeout.gen.test \
-	recvmsg.gen.test regex.gen.test remap_file_pages.gen.test \
-	rename.gen.test renameat.gen.test renameat2.gen.test \
-	request_key.gen.test rmdir.gen.test rt_sigpending.gen.test \
-	rt_sigprocmask.gen.test rt_sigqueueinfo.gen.test \
-	rt_sigreturn.gen.test rt_sigsuspend.gen.test \
-	rt_sigtimedwait.gen.test rt_tgsigqueueinfo.gen.test \
-	sched.gen.test sched_get_priority_mxx.gen.test \
-	sched_rr_get_interval.gen.test sched_xetaffinity.gen.test \
-	sched_xetattr.gen.test sched_xetparam.gen.test \
-	sched_xetscheduler.gen.test sched_yield.gen.test \
-	seccomp-filter.gen.test seccomp-filter-v.gen.test \
-	select.gen.test semop.gen.test sendfile.gen.test \
-	sendfile64.gen.test set_mempolicy.gen.test \
-	setdomainname.gen.test setfsgid.gen.test setfsgid32.gen.test \
-	setfsuid.gen.test setfsuid32.gen.test setgid.gen.test \
-	setgid32.gen.test setgroups.gen.test setgroups32.gen.test \
-	sethostname.gen.test setns.gen.test setregid.gen.test \
-	setregid32.gen.test setresgid.gen.test setresgid32.gen.test \
-	setresuid.gen.test setresuid32.gen.test setreuid.gen.test \
-	setreuid32.gen.test setrlimit.gen.test setuid.gen.test \
-	setuid32.gen.test shmxt.gen.test shutdown.gen.test \
-	siginfo.gen.test signal_receive.gen.test signalfd4.gen.test \
-	sigreturn.gen.test sigsuspend.gen.test socketcall.gen.test \
-	splice.gen.test stat.gen.test stat64.gen.test statfs.gen.test \
-	statfs64.gen.test statx.gen.test swap.gen.test \
-	sxetmask.gen.test symlink.gen.test symlinkat.gen.test \
-	sync.gen.test sync_file_range.gen.test \
-	sync_file_range2.gen.test sysinfo.gen.test syslog.gen.test \
-	tee.gen.test time.gen.test timer_create.gen.test \
-	timer_xettime.gen.test timerfd_xettime.gen.test times.gen.test \
-	times-fail.gen.test trace_fstat.gen.test \
-	trace_fstatfs.gen.test trace_lstat.gen.test \
-	trace_question.gen.test trace_stat.gen.test \
-	trace_stat_like.gen.test trace_statfs.gen.test \
-	trace_statfs_like.gen.test truncate.gen.test \
-	truncate64.gen.test ugetrlimit.gen.test umask.gen.test \
-	umoven-illptr.gen.test umovestr-illptr.gen.test \
-	umovestr3.gen.test unlink.gen.test unlinkat.gen.test \
-	unshare.gen.test userfaultfd.gen.test ustat.gen.test \
-	utime.gen.test utimensat.gen.test utimes.gen.test \
-	vfork-f.gen.test vhangup.gen.test vmsplice.gen.test \
-	wait4.gen.test wait4-v.gen.test waitid.gen.test \
-	waitid-v.gen.test waitpid.gen.test xattr.gen.test \
-	xattr-strings.gen.test xet_robust_list.gen.test \
-	xetitimer.gen.test xetpgid.gen.test xetpriority.gen.test \
-	xettimeofday.gen.test
-LIBUNWIND_TESTS = 
-#LIBUNWIND_TESTS = strace-k.test
-DECODER_TESTS = \
-	brk.test \
-	btrfs-v.test \
-	btrfs-vw.test \
-	btrfs-w.test \
-	caps-abbrev.test \
-	caps.test \
-	eventfd.test \
-	execve-v.test \
-	execve.test \
-	fadvise64.test \
-	futex.test \
-	getuid.test \
-	ioctl.test \
-	ioctl_dm-v.test \
-	ioctl_dm.test \
-	ioctl_loop-nv.test \
-	ioctl_nsfs.test \
-	ioctl_sock_gifconf.test \
-	ipc_msgbuf.test \
-	llseek.test \
-	lseek.test \
-	mmap.test \
-	net-y-unix.test \
-	net-yy-inet.test \
-	net-yy-netlink.test \
-	net-yy-unix.test \
-	net.test \
-	nsyscalls.test \
-	oldselect.test \
-	personality.test \
-	pipe.test \
-	poll.test \
-	prctl-arg2-intptr.test \
-	prctl-dumpable.test \
-	prctl-name.test \
-	prctl-no-args.test \
-	prctl-pdeathsig.test \
-	prctl-seccomp-filter-v.test \
-	prctl-seccomp-strict.test \
-	prctl-securebits.test \
-	prctl-tid_address.test \
-	prctl-tsc.test \
-	qual_fault-exit_group.test \
-	readv.test \
-	scm_rights-fd.test \
-	seccomp-strict.test \
-	sigaction.test \
-	sigaltstack.test \
-	sun_path.test \
-	uio.test \
-	umount.test \
-	umount2.test \
-	umovestr.test \
-	umovestr2.test \
-	uname.test \
-	unix-pair-send-recv.test \
-	unix-pair-sendto-recvfrom.test \
-	# end of DECODER_TESTS
-
-MISC_TESTS = \
-	attach-f-p.test \
-	attach-p-cmd.test \
-	bexecve.test \
-	count-f.test \
-	count.test \
-	detach-running.test \
-	detach-sleeping.test \
-	detach-stopped.test \
-	filter-unavailable.test \
-	get_regs.test \
-	ksysent.test \
-	opipe.test \
-	options-syntax.test \
-	pc.test \
-	qual_fault-syntax.test \
-	qual_fault.test \
-	qual_inject-error-signal.test \
-	qual_inject-retval.test \
-	qual_inject-signal.test \
-	qual_inject-syntax.test \
-	qual_signal.test \
-	qual_syscall.test \
-	redirect-fds.test \
-	redirect.test \
-	restart_syscall.test \
-	strace-C.test \
-	strace-E.test \
-	strace-S.test \
-	strace-T.test \
-	strace-V.test \
-	strace-ff.test \
-	strace-r.test \
-	strace-t.test \
-	strace-tt.test \
-	strace-ttt.test \
-	threads-execve.test \
-	# end of MISC_TESTS
-
-XFAIL_TESTS_ = 
-XFAIL_TESTS_m32 = $(LIBUNWIND_TESTS)
-XFAIL_TESTS_mx32 = $(LIBUNWIND_TESTS)
-XFAIL_TESTS_x86_64 = int_0x80.gen.test
-XFAIL_TESTS_x32 = int_0x80.gen.test
-XFAIL_TESTS = $(XFAIL_TESTS_$(MPERS_NAME)) $(XFAIL_TESTS_$(ARCH))
-TEST_LOG_COMPILER = env
-AM_TEST_LOG_FLAGS = STRACE_ARCH=$(ARCH) MIPS_ABI=$(MIPS_ABI) $(srcdir)/run.sh
-VALGRIND_FLAGS = --quiet
-VALGRIND_SUPPRESSIONS_FILES = $(srcdir)/strace.supp
-EXTRA_DIST = \
-	caps-abbrev.awk \
-	caps.awk \
-	clock.in \
-	count-f.expected \
-	eventfd.expected \
-	fadvise.h \
-	filter-unavailable.expected \
-	fstatat.c \
-	fstatx.c \
-	gen_pure_executables.sh \
-	gen_tests.in \
-	gen_tests.sh \
-	getresugid.c \
-	init.sh \
-	init_delete_module.h \
-	ioctl-v.sh \
-	ipc.sh \
-	ipc_msgbuf.expected \
-	ksysent.sed \
-	lstatx.c \
-	match.awk \
-	net.expected \
-	oldselect.expected \
-	pipe.expected \
-	process_vm_readv_writev.c \
-	pure_executables.list \
-	qual_fault-exit_group.expected \
-	qual_inject-error-signal.expected \
-	qual_inject-signal.expected \
-	quotactl.h \
-	regex.in \
-	run.sh \
-	sched.in \
-	scno_tampering.sh \
-	setfsugid.c \
-	setresugid.c \
-	setreugid.c \
-	setugid.c \
-	sigaction.awk \
-	sigaltstack.expected \
-	sockname.c \
-	strace-C.expected \
-	strace-E.expected \
-	strace-T.expected \
-	strace-ff.expected \
-	strace-k.test \
-	strace-r.expected \
-	strace.supp \
-	struct_flock.c \
-	sun_path.expected \
-	trace_fstat.in \
-	trace_fstatfs.in \
-	trace_lstat.in \
-	trace_question.in \
-	trace_stat.in \
-	trace_stat_like.in \
-	trace_statfs.in \
-	trace_statfs_like.in \
-	uio.expected \
-	umode_t.c \
-	umovestr.expected \
-	unix-pair-send-recv.expected \
-	unix-pair-sendto-recvfrom.expected \
-	xchownx.c \
-	xgetrlimit.c \
-	xselect.c \
-	xstatfs.c \
-	xstatfs64.c \
-	xstatfsx.c \
-	xstatx.c \
-	xutimes.c \
-	$(TESTS)
-
-objects = $(filter %.$(OBJEXT),$(SOURCES:.c=.$(OBJEXT)))
-CLEANFILES = ksysent.h syscallent.i scno.h
-SCNO_CPPFLAGS = $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-		$(ARCH_MFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS)
-
-digits = [[:digit:]][[:digit:]]*
-al_nums = [[:alnum:]_][[:alnum:]_]*
-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
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .log .o .obj .test .test$(EXEEXT) .trs
-$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am $(srcdir)/pure_executables.am $(srcdir)/gen_tests.am $(srcdir)/../scno.am $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests-mx32/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --foreign tests-mx32/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-$(srcdir)/pure_executables.am $(srcdir)/gen_tests.am $(srcdir)/../scno.am:
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: # $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): # $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-clean-checkLIBRARIES:
-	-test -z "$(check_LIBRARIES)" || rm -f $(check_LIBRARIES)
-
-libtests.a: $(libtests_a_OBJECTS) $(libtests_a_DEPENDENCIES) $(EXTRA_libtests_a_DEPENDENCIES) 
-	$(AM_V_at)-rm -f libtests.a
-	$(AM_V_AR)$(libtests_a_AR) libtests.a $(libtests_a_OBJECTS) $(libtests_a_LIBADD)
-	$(AM_V_at)$(RANLIB) libtests.a
-
-clean-checkPROGRAMS:
-	-test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)
-
-_newselect$(EXEEXT): $(_newselect_OBJECTS) $(_newselect_DEPENDENCIES) $(EXTRA__newselect_DEPENDENCIES) 
-	@rm -f _newselect$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(_newselect_OBJECTS) $(_newselect_LDADD) $(LIBS)
-
-accept$(EXEEXT): $(accept_OBJECTS) $(accept_DEPENDENCIES) $(EXTRA_accept_DEPENDENCIES) 
-	@rm -f accept$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(accept_OBJECTS) $(accept_LDADD) $(LIBS)
-
-accept4$(EXEEXT): $(accept4_OBJECTS) $(accept4_DEPENDENCIES) $(EXTRA_accept4_DEPENDENCIES) 
-	@rm -f accept4$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(accept4_OBJECTS) $(accept4_LDADD) $(LIBS)
-
-access$(EXEEXT): $(access_OBJECTS) $(access_DEPENDENCIES) $(EXTRA_access_DEPENDENCIES) 
-	@rm -f access$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(access_OBJECTS) $(access_LDADD) $(LIBS)
-
-acct$(EXEEXT): $(acct_OBJECTS) $(acct_DEPENDENCIES) $(EXTRA_acct_DEPENDENCIES) 
-	@rm -f acct$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(acct_OBJECTS) $(acct_LDADD) $(LIBS)
-
-add_key$(EXEEXT): $(add_key_OBJECTS) $(add_key_DEPENDENCIES) $(EXTRA_add_key_DEPENDENCIES) 
-	@rm -f add_key$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(add_key_OBJECTS) $(add_key_LDADD) $(LIBS)
-
-adjtimex$(EXEEXT): $(adjtimex_OBJECTS) $(adjtimex_DEPENDENCIES) $(EXTRA_adjtimex_DEPENDENCIES) 
-	@rm -f adjtimex$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(adjtimex_OBJECTS) $(adjtimex_LDADD) $(LIBS)
-
-aio$(EXEEXT): $(aio_OBJECTS) $(aio_DEPENDENCIES) $(EXTRA_aio_DEPENDENCIES) 
-	@rm -f aio$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(aio_OBJECTS) $(aio_LDADD) $(LIBS)
-
-alarm$(EXEEXT): $(alarm_OBJECTS) $(alarm_DEPENDENCIES) $(EXTRA_alarm_DEPENDENCIES) 
-	@rm -f alarm$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(alarm_OBJECTS) $(alarm_LDADD) $(LIBS)
-
-answer$(EXEEXT): $(answer_OBJECTS) $(answer_DEPENDENCIES) $(EXTRA_answer_DEPENDENCIES) 
-	@rm -f answer$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(answer_OBJECTS) $(answer_LDADD) $(LIBS)
-
-attach-f-p$(EXEEXT): $(attach_f_p_OBJECTS) $(attach_f_p_DEPENDENCIES) $(EXTRA_attach_f_p_DEPENDENCIES) 
-	@rm -f attach-f-p$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(attach_f_p_OBJECTS) $(attach_f_p_LDADD) $(LIBS)
-
-attach-f-p-cmd$(EXEEXT): $(attach_f_p_cmd_OBJECTS) $(attach_f_p_cmd_DEPENDENCIES) $(EXTRA_attach_f_p_cmd_DEPENDENCIES) 
-	@rm -f attach-f-p-cmd$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(attach_f_p_cmd_OBJECTS) $(attach_f_p_cmd_LDADD) $(LIBS)
-
-attach-p-cmd-cmd$(EXEEXT): $(attach_p_cmd_cmd_OBJECTS) $(attach_p_cmd_cmd_DEPENDENCIES) $(EXTRA_attach_p_cmd_cmd_DEPENDENCIES) 
-	@rm -f attach-p-cmd-cmd$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(attach_p_cmd_cmd_OBJECTS) $(attach_p_cmd_cmd_LDADD) $(LIBS)
-
-attach-p-cmd-p$(EXEEXT): $(attach_p_cmd_p_OBJECTS) $(attach_p_cmd_p_DEPENDENCIES) $(EXTRA_attach_p_cmd_p_DEPENDENCIES) 
-	@rm -f attach-p-cmd-p$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(attach_p_cmd_p_OBJECTS) $(attach_p_cmd_p_LDADD) $(LIBS)
-
-bpf$(EXEEXT): $(bpf_OBJECTS) $(bpf_DEPENDENCIES) $(EXTRA_bpf_DEPENDENCIES) 
-	@rm -f bpf$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(bpf_OBJECTS) $(bpf_LDADD) $(LIBS)
-
-brk$(EXEEXT): $(brk_OBJECTS) $(brk_DEPENDENCIES) $(EXTRA_brk_DEPENDENCIES) 
-	@rm -f brk$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(brk_OBJECTS) $(brk_LDADD) $(LIBS)
-
-btrfs$(EXEEXT): $(btrfs_OBJECTS) $(btrfs_DEPENDENCIES) $(EXTRA_btrfs_DEPENDENCIES) 
-	@rm -f btrfs$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(btrfs_OBJECTS) $(btrfs_LDADD) $(LIBS)
-
-caps$(EXEEXT): $(caps_OBJECTS) $(caps_DEPENDENCIES) $(EXTRA_caps_DEPENDENCIES) 
-	@rm -f caps$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(caps_OBJECTS) $(caps_LDADD) $(LIBS)
-
-caps-abbrev$(EXEEXT): $(caps_abbrev_OBJECTS) $(caps_abbrev_DEPENDENCIES) $(EXTRA_caps_abbrev_DEPENDENCIES) 
-	@rm -f caps-abbrev$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(caps_abbrev_OBJECTS) $(caps_abbrev_LDADD) $(LIBS)
-
-chmod$(EXEEXT): $(chmod_OBJECTS) $(chmod_DEPENDENCIES) $(EXTRA_chmod_DEPENDENCIES) 
-	@rm -f chmod$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(chmod_OBJECTS) $(chmod_LDADD) $(LIBS)
-
-chown$(EXEEXT): $(chown_OBJECTS) $(chown_DEPENDENCIES) $(EXTRA_chown_DEPENDENCIES) 
-	@rm -f chown$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(chown_OBJECTS) $(chown_LDADD) $(LIBS)
-
-chown32$(EXEEXT): $(chown32_OBJECTS) $(chown32_DEPENDENCIES) $(EXTRA_chown32_DEPENDENCIES) 
-	@rm -f chown32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(chown32_OBJECTS) $(chown32_LDADD) $(LIBS)
-
-chroot$(EXEEXT): $(chroot_OBJECTS) $(chroot_DEPENDENCIES) $(EXTRA_chroot_DEPENDENCIES) 
-	@rm -f chroot$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(chroot_OBJECTS) $(chroot_LDADD) $(LIBS)
-
-clock_adjtime$(EXEEXT): $(clock_adjtime_OBJECTS) $(clock_adjtime_DEPENDENCIES) $(EXTRA_clock_adjtime_DEPENDENCIES) 
-	@rm -f clock_adjtime$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(clock_adjtime_OBJECTS) $(clock_adjtime_LDADD) $(LIBS)
-
-clock_nanosleep$(EXEEXT): $(clock_nanosleep_OBJECTS) $(clock_nanosleep_DEPENDENCIES) $(EXTRA_clock_nanosleep_DEPENDENCIES) 
-	@rm -f clock_nanosleep$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(clock_nanosleep_OBJECTS) $(clock_nanosleep_LDADD) $(LIBS)
-
-clock_xettime$(EXEEXT): $(clock_xettime_OBJECTS) $(clock_xettime_DEPENDENCIES) $(EXTRA_clock_xettime_DEPENDENCIES) 
-	@rm -f clock_xettime$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(clock_xettime_OBJECTS) $(clock_xettime_LDADD) $(LIBS)
-
-copy_file_range$(EXEEXT): $(copy_file_range_OBJECTS) $(copy_file_range_DEPENDENCIES) $(EXTRA_copy_file_range_DEPENDENCIES) 
-	@rm -f copy_file_range$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(copy_file_range_OBJECTS) $(copy_file_range_LDADD) $(LIBS)
-
-count-f$(EXEEXT): $(count_f_OBJECTS) $(count_f_DEPENDENCIES) $(EXTRA_count_f_DEPENDENCIES) 
-	@rm -f count-f$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(count_f_OBJECTS) $(count_f_LDADD) $(LIBS)
-
-creat$(EXEEXT): $(creat_OBJECTS) $(creat_DEPENDENCIES) $(EXTRA_creat_DEPENDENCIES) 
-	@rm -f creat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(creat_OBJECTS) $(creat_LDADD) $(LIBS)
-
-delete_module$(EXEEXT): $(delete_module_OBJECTS) $(delete_module_DEPENDENCIES) $(EXTRA_delete_module_DEPENDENCIES) 
-	@rm -f delete_module$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(delete_module_OBJECTS) $(delete_module_LDADD) $(LIBS)
-
-dup$(EXEEXT): $(dup_OBJECTS) $(dup_DEPENDENCIES) $(EXTRA_dup_DEPENDENCIES) 
-	@rm -f dup$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(dup_OBJECTS) $(dup_LDADD) $(LIBS)
-
-dup2$(EXEEXT): $(dup2_OBJECTS) $(dup2_DEPENDENCIES) $(EXTRA_dup2_DEPENDENCIES) 
-	@rm -f dup2$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(dup2_OBJECTS) $(dup2_LDADD) $(LIBS)
-
-dup3$(EXEEXT): $(dup3_OBJECTS) $(dup3_DEPENDENCIES) $(EXTRA_dup3_DEPENDENCIES) 
-	@rm -f dup3$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(dup3_OBJECTS) $(dup3_LDADD) $(LIBS)
-
-epoll_create$(EXEEXT): $(epoll_create_OBJECTS) $(epoll_create_DEPENDENCIES) $(EXTRA_epoll_create_DEPENDENCIES) 
-	@rm -f epoll_create$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(epoll_create_OBJECTS) $(epoll_create_LDADD) $(LIBS)
-
-epoll_create1$(EXEEXT): $(epoll_create1_OBJECTS) $(epoll_create1_DEPENDENCIES) $(EXTRA_epoll_create1_DEPENDENCIES) 
-	@rm -f epoll_create1$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(epoll_create1_OBJECTS) $(epoll_create1_LDADD) $(LIBS)
-
-epoll_ctl$(EXEEXT): $(epoll_ctl_OBJECTS) $(epoll_ctl_DEPENDENCIES) $(EXTRA_epoll_ctl_DEPENDENCIES) 
-	@rm -f epoll_ctl$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(epoll_ctl_OBJECTS) $(epoll_ctl_LDADD) $(LIBS)
-
-epoll_pwait$(EXEEXT): $(epoll_pwait_OBJECTS) $(epoll_pwait_DEPENDENCIES) $(EXTRA_epoll_pwait_DEPENDENCIES) 
-	@rm -f epoll_pwait$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(epoll_pwait_OBJECTS) $(epoll_pwait_LDADD) $(LIBS)
-
-epoll_wait$(EXEEXT): $(epoll_wait_OBJECTS) $(epoll_wait_DEPENDENCIES) $(EXTRA_epoll_wait_DEPENDENCIES) 
-	@rm -f epoll_wait$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(epoll_wait_OBJECTS) $(epoll_wait_LDADD) $(LIBS)
-
-erestartsys$(EXEEXT): $(erestartsys_OBJECTS) $(erestartsys_DEPENDENCIES) $(EXTRA_erestartsys_DEPENDENCIES) 
-	@rm -f erestartsys$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(erestartsys_OBJECTS) $(erestartsys_LDADD) $(LIBS)
-
-eventfd$(EXEEXT): $(eventfd_OBJECTS) $(eventfd_DEPENDENCIES) $(EXTRA_eventfd_DEPENDENCIES) 
-	@rm -f eventfd$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(eventfd_OBJECTS) $(eventfd_LDADD) $(LIBS)
-
-execve$(EXEEXT): $(execve_OBJECTS) $(execve_DEPENDENCIES) $(EXTRA_execve_DEPENDENCIES) 
-	@rm -f execve$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(execve_OBJECTS) $(execve_LDADD) $(LIBS)
-
-execve-v$(EXEEXT): $(execve_v_OBJECTS) $(execve_v_DEPENDENCIES) $(EXTRA_execve_v_DEPENDENCIES) 
-	@rm -f execve-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(execve_v_OBJECTS) $(execve_v_LDADD) $(LIBS)
-
-execveat$(EXEEXT): $(execveat_OBJECTS) $(execveat_DEPENDENCIES) $(EXTRA_execveat_DEPENDENCIES) 
-	@rm -f execveat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(execveat_OBJECTS) $(execveat_LDADD) $(LIBS)
-
-execveat-v$(EXEEXT): $(execveat_v_OBJECTS) $(execveat_v_DEPENDENCIES) $(EXTRA_execveat_v_DEPENDENCIES) 
-	@rm -f execveat-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(execveat_v_OBJECTS) $(execveat_v_LDADD) $(LIBS)
-
-faccessat$(EXEEXT): $(faccessat_OBJECTS) $(faccessat_DEPENDENCIES) $(EXTRA_faccessat_DEPENDENCIES) 
-	@rm -f faccessat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(faccessat_OBJECTS) $(faccessat_LDADD) $(LIBS)
-
-fadvise64$(EXEEXT): $(fadvise64_OBJECTS) $(fadvise64_DEPENDENCIES) $(EXTRA_fadvise64_DEPENDENCIES) 
-	@rm -f fadvise64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fadvise64_OBJECTS) $(fadvise64_LDADD) $(LIBS)
-
-fadvise64_64$(EXEEXT): $(fadvise64_64_OBJECTS) $(fadvise64_64_DEPENDENCIES) $(EXTRA_fadvise64_64_DEPENDENCIES) 
-	@rm -f fadvise64_64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fadvise64_64_OBJECTS) $(fadvise64_64_LDADD) $(LIBS)
-
-fallocate$(EXEEXT): $(fallocate_OBJECTS) $(fallocate_DEPENDENCIES) $(EXTRA_fallocate_DEPENDENCIES) 
-	@rm -f fallocate$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fallocate_OBJECTS) $(fallocate_LDADD) $(LIBS)
-
-fanotify_init$(EXEEXT): $(fanotify_init_OBJECTS) $(fanotify_init_DEPENDENCIES) $(EXTRA_fanotify_init_DEPENDENCIES) 
-	@rm -f fanotify_init$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fanotify_init_OBJECTS) $(fanotify_init_LDADD) $(LIBS)
-
-fanotify_mark$(EXEEXT): $(fanotify_mark_OBJECTS) $(fanotify_mark_DEPENDENCIES) $(EXTRA_fanotify_mark_DEPENDENCIES) 
-	@rm -f fanotify_mark$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fanotify_mark_OBJECTS) $(fanotify_mark_LDADD) $(LIBS)
-
-fchdir$(EXEEXT): $(fchdir_OBJECTS) $(fchdir_DEPENDENCIES) $(EXTRA_fchdir_DEPENDENCIES) 
-	@rm -f fchdir$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fchdir_OBJECTS) $(fchdir_LDADD) $(LIBS)
-
-fchmod$(EXEEXT): $(fchmod_OBJECTS) $(fchmod_DEPENDENCIES) $(EXTRA_fchmod_DEPENDENCIES) 
-	@rm -f fchmod$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fchmod_OBJECTS) $(fchmod_LDADD) $(LIBS)
-
-fchmodat$(EXEEXT): $(fchmodat_OBJECTS) $(fchmodat_DEPENDENCIES) $(EXTRA_fchmodat_DEPENDENCIES) 
-	@rm -f fchmodat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fchmodat_OBJECTS) $(fchmodat_LDADD) $(LIBS)
-
-fchown$(EXEEXT): $(fchown_OBJECTS) $(fchown_DEPENDENCIES) $(EXTRA_fchown_DEPENDENCIES) 
-	@rm -f fchown$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fchown_OBJECTS) $(fchown_LDADD) $(LIBS)
-
-fchown32$(EXEEXT): $(fchown32_OBJECTS) $(fchown32_DEPENDENCIES) $(EXTRA_fchown32_DEPENDENCIES) 
-	@rm -f fchown32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fchown32_OBJECTS) $(fchown32_LDADD) $(LIBS)
-
-fchownat$(EXEEXT): $(fchownat_OBJECTS) $(fchownat_DEPENDENCIES) $(EXTRA_fchownat_DEPENDENCIES) 
-	@rm -f fchownat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fchownat_OBJECTS) $(fchownat_LDADD) $(LIBS)
-
-fcntl$(EXEEXT): $(fcntl_OBJECTS) $(fcntl_DEPENDENCIES) $(EXTRA_fcntl_DEPENDENCIES) 
-	@rm -f fcntl$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fcntl_OBJECTS) $(fcntl_LDADD) $(LIBS)
-
-fcntl64$(EXEEXT): $(fcntl64_OBJECTS) $(fcntl64_DEPENDENCIES) $(EXTRA_fcntl64_DEPENDENCIES) 
-	@rm -f fcntl64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fcntl64_OBJECTS) $(fcntl64_LDADD) $(LIBS)
-
-fdatasync$(EXEEXT): $(fdatasync_OBJECTS) $(fdatasync_DEPENDENCIES) $(EXTRA_fdatasync_DEPENDENCIES) 
-	@rm -f fdatasync$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fdatasync_OBJECTS) $(fdatasync_LDADD) $(LIBS)
-
-file_handle$(EXEEXT): $(file_handle_OBJECTS) $(file_handle_DEPENDENCIES) $(EXTRA_file_handle_DEPENDENCIES) 
-	@rm -f file_handle$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(file_handle_OBJECTS) $(file_handle_LDADD) $(LIBS)
-
-file_ioctl$(EXEEXT): $(file_ioctl_OBJECTS) $(file_ioctl_DEPENDENCIES) $(EXTRA_file_ioctl_DEPENDENCIES) 
-	@rm -f file_ioctl$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(file_ioctl_OBJECTS) $(file_ioctl_LDADD) $(LIBS)
-
-filter-unavailable$(EXEEXT): $(filter_unavailable_OBJECTS) $(filter_unavailable_DEPENDENCIES) $(EXTRA_filter_unavailable_DEPENDENCIES) 
-	@rm -f filter-unavailable$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(filter_unavailable_OBJECTS) $(filter_unavailable_LDADD) $(LIBS)
-
-finit_module$(EXEEXT): $(finit_module_OBJECTS) $(finit_module_DEPENDENCIES) $(EXTRA_finit_module_DEPENDENCIES) 
-	@rm -f finit_module$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(finit_module_OBJECTS) $(finit_module_LDADD) $(LIBS)
-
-flock$(EXEEXT): $(flock_OBJECTS) $(flock_DEPENDENCIES) $(EXTRA_flock_DEPENDENCIES) 
-	@rm -f flock$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(flock_OBJECTS) $(flock_LDADD) $(LIBS)
-
-fork-f$(EXEEXT): $(fork_f_OBJECTS) $(fork_f_DEPENDENCIES) $(EXTRA_fork_f_DEPENDENCIES) 
-	@rm -f fork-f$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fork_f_OBJECTS) $(fork_f_LDADD) $(LIBS)
-
-fstat$(EXEEXT): $(fstat_OBJECTS) $(fstat_DEPENDENCIES) $(EXTRA_fstat_DEPENDENCIES) 
-	@rm -f fstat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fstat_OBJECTS) $(fstat_LDADD) $(LIBS)
-
-fstat64$(EXEEXT): $(fstat64_OBJECTS) $(fstat64_DEPENDENCIES) $(EXTRA_fstat64_DEPENDENCIES) 
-	@rm -f fstat64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fstat64_OBJECTS) $(fstat64_LDADD) $(LIBS)
-
-fstatat64$(EXEEXT): $(fstatat64_OBJECTS) $(fstatat64_DEPENDENCIES) $(EXTRA_fstatat64_DEPENDENCIES) 
-	@rm -f fstatat64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fstatat64_OBJECTS) $(fstatat64_LDADD) $(LIBS)
-
-fstatfs$(EXEEXT): $(fstatfs_OBJECTS) $(fstatfs_DEPENDENCIES) $(EXTRA_fstatfs_DEPENDENCIES) 
-	@rm -f fstatfs$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fstatfs_OBJECTS) $(fstatfs_LDADD) $(LIBS)
-
-fstatfs64$(EXEEXT): $(fstatfs64_OBJECTS) $(fstatfs64_DEPENDENCIES) $(EXTRA_fstatfs64_DEPENDENCIES) 
-	@rm -f fstatfs64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fstatfs64_OBJECTS) $(fstatfs64_LDADD) $(LIBS)
-
-fsync$(EXEEXT): $(fsync_OBJECTS) $(fsync_DEPENDENCIES) $(EXTRA_fsync_DEPENDENCIES) 
-	@rm -f fsync$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fsync_OBJECTS) $(fsync_LDADD) $(LIBS)
-
-ftruncate$(EXEEXT): $(ftruncate_OBJECTS) $(ftruncate_DEPENDENCIES) $(EXTRA_ftruncate_DEPENDENCIES) 
-	@rm -f ftruncate$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ftruncate_OBJECTS) $(ftruncate_LDADD) $(LIBS)
-
-ftruncate64$(EXEEXT): $(ftruncate64_OBJECTS) $(ftruncate64_DEPENDENCIES) $(EXTRA_ftruncate64_DEPENDENCIES) 
-	@rm -f ftruncate64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ftruncate64_OBJECTS) $(ftruncate64_LDADD) $(LIBS)
-
-futex$(EXEEXT): $(futex_OBJECTS) $(futex_DEPENDENCIES) $(EXTRA_futex_DEPENDENCIES) 
-	@rm -f futex$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(futex_OBJECTS) $(futex_LDADD) $(LIBS)
-
-futimesat$(EXEEXT): $(futimesat_OBJECTS) $(futimesat_DEPENDENCIES) $(EXTRA_futimesat_DEPENDENCIES) 
-	@rm -f futimesat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(futimesat_OBJECTS) $(futimesat_LDADD) $(LIBS)
-
-get_mempolicy$(EXEEXT): $(get_mempolicy_OBJECTS) $(get_mempolicy_DEPENDENCIES) $(EXTRA_get_mempolicy_DEPENDENCIES) 
-	@rm -f get_mempolicy$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(get_mempolicy_OBJECTS) $(get_mempolicy_LDADD) $(LIBS)
-
-getcpu$(EXEEXT): $(getcpu_OBJECTS) $(getcpu_DEPENDENCIES) $(EXTRA_getcpu_DEPENDENCIES) 
-	@rm -f getcpu$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getcpu_OBJECTS) $(getcpu_LDADD) $(LIBS)
-
-getcwd$(EXEEXT): $(getcwd_OBJECTS) $(getcwd_DEPENDENCIES) $(EXTRA_getcwd_DEPENDENCIES) 
-	@rm -f getcwd$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getcwd_OBJECTS) $(getcwd_LDADD) $(LIBS)
-
-getdents$(EXEEXT): $(getdents_OBJECTS) $(getdents_DEPENDENCIES) $(EXTRA_getdents_DEPENDENCIES) 
-	@rm -f getdents$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getdents_OBJECTS) $(getdents_LDADD) $(LIBS)
-
-getdents64$(EXEEXT): $(getdents64_OBJECTS) $(getdents64_DEPENDENCIES) $(EXTRA_getdents64_DEPENDENCIES) 
-	@rm -f getdents64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getdents64_OBJECTS) $(getdents64_LDADD) $(LIBS)
-
-getegid$(EXEEXT): $(getegid_OBJECTS) $(getegid_DEPENDENCIES) $(EXTRA_getegid_DEPENDENCIES) 
-	@rm -f getegid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getegid_OBJECTS) $(getegid_LDADD) $(LIBS)
-
-getegid32$(EXEEXT): $(getegid32_OBJECTS) $(getegid32_DEPENDENCIES) $(EXTRA_getegid32_DEPENDENCIES) 
-	@rm -f getegid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getegid32_OBJECTS) $(getegid32_LDADD) $(LIBS)
-
-geteuid$(EXEEXT): $(geteuid_OBJECTS) $(geteuid_DEPENDENCIES) $(EXTRA_geteuid_DEPENDENCIES) 
-	@rm -f geteuid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(geteuid_OBJECTS) $(geteuid_LDADD) $(LIBS)
-
-geteuid32$(EXEEXT): $(geteuid32_OBJECTS) $(geteuid32_DEPENDENCIES) $(EXTRA_geteuid32_DEPENDENCIES) 
-	@rm -f geteuid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(geteuid32_OBJECTS) $(geteuid32_LDADD) $(LIBS)
-
-getgid$(EXEEXT): $(getgid_OBJECTS) $(getgid_DEPENDENCIES) $(EXTRA_getgid_DEPENDENCIES) 
-	@rm -f getgid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getgid_OBJECTS) $(getgid_LDADD) $(LIBS)
-
-getgid32$(EXEEXT): $(getgid32_OBJECTS) $(getgid32_DEPENDENCIES) $(EXTRA_getgid32_DEPENDENCIES) 
-	@rm -f getgid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getgid32_OBJECTS) $(getgid32_LDADD) $(LIBS)
-
-getgroups$(EXEEXT): $(getgroups_OBJECTS) $(getgroups_DEPENDENCIES) $(EXTRA_getgroups_DEPENDENCIES) 
-	@rm -f getgroups$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getgroups_OBJECTS) $(getgroups_LDADD) $(LIBS)
-
-getgroups32$(EXEEXT): $(getgroups32_OBJECTS) $(getgroups32_DEPENDENCIES) $(EXTRA_getgroups32_DEPENDENCIES) 
-	@rm -f getgroups32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getgroups32_OBJECTS) $(getgroups32_LDADD) $(LIBS)
-
-getpeername$(EXEEXT): $(getpeername_OBJECTS) $(getpeername_DEPENDENCIES) $(EXTRA_getpeername_DEPENDENCIES) 
-	@rm -f getpeername$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getpeername_OBJECTS) $(getpeername_LDADD) $(LIBS)
-
-getpgrp$(EXEEXT): $(getpgrp_OBJECTS) $(getpgrp_DEPENDENCIES) $(EXTRA_getpgrp_DEPENDENCIES) 
-	@rm -f getpgrp$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getpgrp_OBJECTS) $(getpgrp_LDADD) $(LIBS)
-
-getpid$(EXEEXT): $(getpid_OBJECTS) $(getpid_DEPENDENCIES) $(EXTRA_getpid_DEPENDENCIES) 
-	@rm -f getpid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getpid_OBJECTS) $(getpid_LDADD) $(LIBS)
-
-getppid$(EXEEXT): $(getppid_OBJECTS) $(getppid_DEPENDENCIES) $(EXTRA_getppid_DEPENDENCIES) 
-	@rm -f getppid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getppid_OBJECTS) $(getppid_LDADD) $(LIBS)
-
-getrandom$(EXEEXT): $(getrandom_OBJECTS) $(getrandom_DEPENDENCIES) $(EXTRA_getrandom_DEPENDENCIES) 
-	@rm -f getrandom$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getrandom_OBJECTS) $(getrandom_LDADD) $(LIBS)
-
-getresgid$(EXEEXT): $(getresgid_OBJECTS) $(getresgid_DEPENDENCIES) $(EXTRA_getresgid_DEPENDENCIES) 
-	@rm -f getresgid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getresgid_OBJECTS) $(getresgid_LDADD) $(LIBS)
-
-getresgid32$(EXEEXT): $(getresgid32_OBJECTS) $(getresgid32_DEPENDENCIES) $(EXTRA_getresgid32_DEPENDENCIES) 
-	@rm -f getresgid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getresgid32_OBJECTS) $(getresgid32_LDADD) $(LIBS)
-
-getresuid$(EXEEXT): $(getresuid_OBJECTS) $(getresuid_DEPENDENCIES) $(EXTRA_getresuid_DEPENDENCIES) 
-	@rm -f getresuid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getresuid_OBJECTS) $(getresuid_LDADD) $(LIBS)
-
-getresuid32$(EXEEXT): $(getresuid32_OBJECTS) $(getresuid32_DEPENDENCIES) $(EXTRA_getresuid32_DEPENDENCIES) 
-	@rm -f getresuid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getresuid32_OBJECTS) $(getresuid32_LDADD) $(LIBS)
-
-getrlimit$(EXEEXT): $(getrlimit_OBJECTS) $(getrlimit_DEPENDENCIES) $(EXTRA_getrlimit_DEPENDENCIES) 
-	@rm -f getrlimit$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getrlimit_OBJECTS) $(getrlimit_LDADD) $(LIBS)
-
-getrusage$(EXEEXT): $(getrusage_OBJECTS) $(getrusage_DEPENDENCIES) $(EXTRA_getrusage_DEPENDENCIES) 
-	@rm -f getrusage$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getrusage_OBJECTS) $(getrusage_LDADD) $(LIBS)
-
-getsid$(EXEEXT): $(getsid_OBJECTS) $(getsid_DEPENDENCIES) $(EXTRA_getsid_DEPENDENCIES) 
-	@rm -f getsid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getsid_OBJECTS) $(getsid_LDADD) $(LIBS)
-
-getsockname$(EXEEXT): $(getsockname_OBJECTS) $(getsockname_DEPENDENCIES) $(EXTRA_getsockname_DEPENDENCIES) 
-	@rm -f getsockname$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getsockname_OBJECTS) $(getsockname_LDADD) $(LIBS)
-
-gettid$(EXEEXT): $(gettid_OBJECTS) $(gettid_DEPENDENCIES) $(EXTRA_gettid_DEPENDENCIES) 
-	@rm -f gettid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(gettid_OBJECTS) $(gettid_LDADD) $(LIBS)
-
-getuid$(EXEEXT): $(getuid_OBJECTS) $(getuid_DEPENDENCIES) $(EXTRA_getuid_DEPENDENCIES) 
-	@rm -f getuid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getuid_OBJECTS) $(getuid_LDADD) $(LIBS)
-
-getuid32$(EXEEXT): $(getuid32_OBJECTS) $(getuid32_DEPENDENCIES) $(EXTRA_getuid32_DEPENDENCIES) 
-	@rm -f getuid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getuid32_OBJECTS) $(getuid32_LDADD) $(LIBS)
-
-getxxid$(EXEEXT): $(getxxid_OBJECTS) $(getxxid_DEPENDENCIES) $(EXTRA_getxxid_DEPENDENCIES) 
-	@rm -f getxxid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getxxid_OBJECTS) $(getxxid_LDADD) $(LIBS)
-
-inet-cmsg$(EXEEXT): $(inet_cmsg_OBJECTS) $(inet_cmsg_DEPENDENCIES) $(EXTRA_inet_cmsg_DEPENDENCIES) 
-	@rm -f inet-cmsg$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(inet_cmsg_OBJECTS) $(inet_cmsg_LDADD) $(LIBS)
-
-init_module$(EXEEXT): $(init_module_OBJECTS) $(init_module_DEPENDENCIES) $(EXTRA_init_module_DEPENDENCIES) 
-	@rm -f init_module$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(init_module_OBJECTS) $(init_module_LDADD) $(LIBS)
-
-inotify$(EXEEXT): $(inotify_OBJECTS) $(inotify_DEPENDENCIES) $(EXTRA_inotify_DEPENDENCIES) 
-	@rm -f inotify$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(inotify_OBJECTS) $(inotify_LDADD) $(LIBS)
-
-inotify_init1$(EXEEXT): $(inotify_init1_OBJECTS) $(inotify_init1_DEPENDENCIES) $(EXTRA_inotify_init1_DEPENDENCIES) 
-	@rm -f inotify_init1$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(inotify_init1_OBJECTS) $(inotify_init1_LDADD) $(LIBS)
-
-int_0x80$(EXEEXT): $(int_0x80_OBJECTS) $(int_0x80_DEPENDENCIES) $(EXTRA_int_0x80_DEPENDENCIES) 
-	@rm -f int_0x80$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(int_0x80_OBJECTS) $(int_0x80_LDADD) $(LIBS)
-
-ioctl$(EXEEXT): $(ioctl_OBJECTS) $(ioctl_DEPENDENCIES) $(EXTRA_ioctl_DEPENDENCIES) 
-	@rm -f ioctl$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_OBJECTS) $(ioctl_LDADD) $(LIBS)
-
-ioctl_block$(EXEEXT): $(ioctl_block_OBJECTS) $(ioctl_block_DEPENDENCIES) $(EXTRA_ioctl_block_DEPENDENCIES) 
-	@rm -f ioctl_block$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_block_OBJECTS) $(ioctl_block_LDADD) $(LIBS)
-
-ioctl_dm$(EXEEXT): $(ioctl_dm_OBJECTS) $(ioctl_dm_DEPENDENCIES) $(EXTRA_ioctl_dm_DEPENDENCIES) 
-	@rm -f ioctl_dm$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_dm_OBJECTS) $(ioctl_dm_LDADD) $(LIBS)
-
-ioctl_dm-v$(EXEEXT): $(ioctl_dm_v_OBJECTS) $(ioctl_dm_v_DEPENDENCIES) $(EXTRA_ioctl_dm_v_DEPENDENCIES) 
-	@rm -f ioctl_dm-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_dm_v_OBJECTS) $(ioctl_dm_v_LDADD) $(LIBS)
-
-ioctl_evdev$(EXEEXT): $(ioctl_evdev_OBJECTS) $(ioctl_evdev_DEPENDENCIES) $(EXTRA_ioctl_evdev_DEPENDENCIES) 
-	@rm -f ioctl_evdev$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_evdev_OBJECTS) $(ioctl_evdev_LDADD) $(LIBS)
-
-ioctl_evdev-v$(EXEEXT): $(ioctl_evdev_v_OBJECTS) $(ioctl_evdev_v_DEPENDENCIES) $(EXTRA_ioctl_evdev_v_DEPENDENCIES) 
-	@rm -f ioctl_evdev-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_evdev_v_OBJECTS) $(ioctl_evdev_v_LDADD) $(LIBS)
-
-ioctl_loop$(EXEEXT): $(ioctl_loop_OBJECTS) $(ioctl_loop_DEPENDENCIES) $(EXTRA_ioctl_loop_DEPENDENCIES) 
-	@rm -f ioctl_loop$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_loop_OBJECTS) $(ioctl_loop_LDADD) $(LIBS)
-
-ioctl_loop-nv$(EXEEXT): $(ioctl_loop_nv_OBJECTS) $(ioctl_loop_nv_DEPENDENCIES) $(EXTRA_ioctl_loop_nv_DEPENDENCIES) 
-	@rm -f ioctl_loop-nv$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_loop_nv_OBJECTS) $(ioctl_loop_nv_LDADD) $(LIBS)
-
-ioctl_loop-v$(EXEEXT): $(ioctl_loop_v_OBJECTS) $(ioctl_loop_v_DEPENDENCIES) $(EXTRA_ioctl_loop_v_DEPENDENCIES) 
-	@rm -f ioctl_loop-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_loop_v_OBJECTS) $(ioctl_loop_v_LDADD) $(LIBS)
-
-ioctl_mtd$(EXEEXT): $(ioctl_mtd_OBJECTS) $(ioctl_mtd_DEPENDENCIES) $(EXTRA_ioctl_mtd_DEPENDENCIES) 
-	@rm -f ioctl_mtd$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_mtd_OBJECTS) $(ioctl_mtd_LDADD) $(LIBS)
-
-ioctl_nsfs$(EXEEXT): $(ioctl_nsfs_OBJECTS) $(ioctl_nsfs_DEPENDENCIES) $(EXTRA_ioctl_nsfs_DEPENDENCIES) 
-	@rm -f ioctl_nsfs$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_nsfs_OBJECTS) $(ioctl_nsfs_LDADD) $(LIBS)
-
-ioctl_rtc$(EXEEXT): $(ioctl_rtc_OBJECTS) $(ioctl_rtc_DEPENDENCIES) $(EXTRA_ioctl_rtc_DEPENDENCIES) 
-	@rm -f ioctl_rtc$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_rtc_OBJECTS) $(ioctl_rtc_LDADD) $(LIBS)
-
-ioctl_rtc-v$(EXEEXT): $(ioctl_rtc_v_OBJECTS) $(ioctl_rtc_v_DEPENDENCIES) $(EXTRA_ioctl_rtc_v_DEPENDENCIES) 
-	@rm -f ioctl_rtc-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_rtc_v_OBJECTS) $(ioctl_rtc_v_LDADD) $(LIBS)
-
-ioctl_scsi$(EXEEXT): $(ioctl_scsi_OBJECTS) $(ioctl_scsi_DEPENDENCIES) $(EXTRA_ioctl_scsi_DEPENDENCIES) 
-	@rm -f ioctl_scsi$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_scsi_OBJECTS) $(ioctl_scsi_LDADD) $(LIBS)
-
-ioctl_sg_io_v3$(EXEEXT): $(ioctl_sg_io_v3_OBJECTS) $(ioctl_sg_io_v3_DEPENDENCIES) $(EXTRA_ioctl_sg_io_v3_DEPENDENCIES) 
-	@rm -f ioctl_sg_io_v3$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_sg_io_v3_OBJECTS) $(ioctl_sg_io_v3_LDADD) $(LIBS)
-
-ioctl_sg_io_v4$(EXEEXT): $(ioctl_sg_io_v4_OBJECTS) $(ioctl_sg_io_v4_DEPENDENCIES) $(EXTRA_ioctl_sg_io_v4_DEPENDENCIES) 
-	@rm -f ioctl_sg_io_v4$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_sg_io_v4_OBJECTS) $(ioctl_sg_io_v4_LDADD) $(LIBS)
-
-ioctl_sock_gifconf$(EXEEXT): $(ioctl_sock_gifconf_OBJECTS) $(ioctl_sock_gifconf_DEPENDENCIES) $(EXTRA_ioctl_sock_gifconf_DEPENDENCIES) 
-	@rm -f ioctl_sock_gifconf$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_sock_gifconf_OBJECTS) $(ioctl_sock_gifconf_LDADD) $(LIBS)
-
-ioctl_uffdio$(EXEEXT): $(ioctl_uffdio_OBJECTS) $(ioctl_uffdio_DEPENDENCIES) $(EXTRA_ioctl_uffdio_DEPENDENCIES) 
-	@rm -f ioctl_uffdio$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_uffdio_OBJECTS) $(ioctl_uffdio_LDADD) $(LIBS)
-
-ioctl_v4l2$(EXEEXT): $(ioctl_v4l2_OBJECTS) $(ioctl_v4l2_DEPENDENCIES) $(EXTRA_ioctl_v4l2_DEPENDENCIES) 
-	@rm -f ioctl_v4l2$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_v4l2_OBJECTS) $(ioctl_v4l2_LDADD) $(LIBS)
-
-ioperm$(EXEEXT): $(ioperm_OBJECTS) $(ioperm_DEPENDENCIES) $(EXTRA_ioperm_DEPENDENCIES) 
-	@rm -f ioperm$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioperm_OBJECTS) $(ioperm_LDADD) $(LIBS)
-
-iopl$(EXEEXT): $(iopl_OBJECTS) $(iopl_DEPENDENCIES) $(EXTRA_iopl_DEPENDENCIES) 
-	@rm -f iopl$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(iopl_OBJECTS) $(iopl_LDADD) $(LIBS)
-
-ioprio$(EXEEXT): $(ioprio_OBJECTS) $(ioprio_DEPENDENCIES) $(EXTRA_ioprio_DEPENDENCIES) 
-	@rm -f ioprio$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioprio_OBJECTS) $(ioprio_LDADD) $(LIBS)
-
-ip_mreq$(EXEEXT): $(ip_mreq_OBJECTS) $(ip_mreq_DEPENDENCIES) $(EXTRA_ip_mreq_DEPENDENCIES) 
-	@rm -f ip_mreq$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ip_mreq_OBJECTS) $(ip_mreq_LDADD) $(LIBS)
-
-ipc$(EXEEXT): $(ipc_OBJECTS) $(ipc_DEPENDENCIES) $(EXTRA_ipc_DEPENDENCIES) 
-	@rm -f ipc$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ipc_OBJECTS) $(ipc_LDADD) $(LIBS)
-
-ipc_msg$(EXEEXT): $(ipc_msg_OBJECTS) $(ipc_msg_DEPENDENCIES) $(EXTRA_ipc_msg_DEPENDENCIES) 
-	@rm -f ipc_msg$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ipc_msg_OBJECTS) $(ipc_msg_LDADD) $(LIBS)
-
-ipc_msgbuf$(EXEEXT): $(ipc_msgbuf_OBJECTS) $(ipc_msgbuf_DEPENDENCIES) $(EXTRA_ipc_msgbuf_DEPENDENCIES) 
-	@rm -f ipc_msgbuf$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ipc_msgbuf_OBJECTS) $(ipc_msgbuf_LDADD) $(LIBS)
-
-ipc_sem$(EXEEXT): $(ipc_sem_OBJECTS) $(ipc_sem_DEPENDENCIES) $(EXTRA_ipc_sem_DEPENDENCIES) 
-	@rm -f ipc_sem$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ipc_sem_OBJECTS) $(ipc_sem_LDADD) $(LIBS)
-
-ipc_shm$(EXEEXT): $(ipc_shm_OBJECTS) $(ipc_shm_DEPENDENCIES) $(EXTRA_ipc_shm_DEPENDENCIES) 
-	@rm -f ipc_shm$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ipc_shm_OBJECTS) $(ipc_shm_LDADD) $(LIBS)
-
-kcmp$(EXEEXT): $(kcmp_OBJECTS) $(kcmp_DEPENDENCIES) $(EXTRA_kcmp_DEPENDENCIES) 
-	@rm -f kcmp$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(kcmp_OBJECTS) $(kcmp_LDADD) $(LIBS)
-
-kexec_file_load$(EXEEXT): $(kexec_file_load_OBJECTS) $(kexec_file_load_DEPENDENCIES) $(EXTRA_kexec_file_load_DEPENDENCIES) 
-	@rm -f kexec_file_load$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(kexec_file_load_OBJECTS) $(kexec_file_load_LDADD) $(LIBS)
-
-kexec_load$(EXEEXT): $(kexec_load_OBJECTS) $(kexec_load_DEPENDENCIES) $(EXTRA_kexec_load_DEPENDENCIES) 
-	@rm -f kexec_load$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(kexec_load_OBJECTS) $(kexec_load_LDADD) $(LIBS)
-
-keyctl$(EXEEXT): $(keyctl_OBJECTS) $(keyctl_DEPENDENCIES) $(EXTRA_keyctl_DEPENDENCIES) 
-	@rm -f keyctl$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(keyctl_OBJECTS) $(keyctl_LDADD) $(LIBS)
-
-kill$(EXEEXT): $(kill_OBJECTS) $(kill_DEPENDENCIES) $(EXTRA_kill_DEPENDENCIES) 
-	@rm -f kill$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(kill_OBJECTS) $(kill_LDADD) $(LIBS)
-
-ksysent$(EXEEXT): $(ksysent_OBJECTS) $(ksysent_DEPENDENCIES) $(EXTRA_ksysent_DEPENDENCIES) 
-	@rm -f ksysent$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ksysent_OBJECTS) $(ksysent_LDADD) $(LIBS)
-
-lchown$(EXEEXT): $(lchown_OBJECTS) $(lchown_DEPENDENCIES) $(EXTRA_lchown_DEPENDENCIES) 
-	@rm -f lchown$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(lchown_OBJECTS) $(lchown_LDADD) $(LIBS)
-
-lchown32$(EXEEXT): $(lchown32_OBJECTS) $(lchown32_DEPENDENCIES) $(EXTRA_lchown32_DEPENDENCIES) 
-	@rm -f lchown32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(lchown32_OBJECTS) $(lchown32_LDADD) $(LIBS)
-
-link$(EXEEXT): $(link_OBJECTS) $(link_DEPENDENCIES) $(EXTRA_link_DEPENDENCIES) 
-	@rm -f link$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(link_OBJECTS) $(link_LDADD) $(LIBS)
-
-linkat$(EXEEXT): $(linkat_OBJECTS) $(linkat_DEPENDENCIES) $(EXTRA_linkat_DEPENDENCIES) 
-	@rm -f linkat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(linkat_OBJECTS) $(linkat_LDADD) $(LIBS)
-
-llseek$(EXEEXT): $(llseek_OBJECTS) $(llseek_DEPENDENCIES) $(EXTRA_llseek_DEPENDENCIES) 
-	@rm -f llseek$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(llseek_OBJECTS) $(llseek_LDADD) $(LIBS)
-
-lookup_dcookie$(EXEEXT): $(lookup_dcookie_OBJECTS) $(lookup_dcookie_DEPENDENCIES) $(EXTRA_lookup_dcookie_DEPENDENCIES) 
-	@rm -f lookup_dcookie$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(lookup_dcookie_OBJECTS) $(lookup_dcookie_LDADD) $(LIBS)
-
-lseek$(EXEEXT): $(lseek_OBJECTS) $(lseek_DEPENDENCIES) $(EXTRA_lseek_DEPENDENCIES) 
-	@rm -f lseek$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(lseek_OBJECTS) $(lseek_LDADD) $(LIBS)
-
-lstat$(EXEEXT): $(lstat_OBJECTS) $(lstat_DEPENDENCIES) $(EXTRA_lstat_DEPENDENCIES) 
-	@rm -f lstat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(lstat_OBJECTS) $(lstat_LDADD) $(LIBS)
-
-lstat64$(EXEEXT): $(lstat64_OBJECTS) $(lstat64_DEPENDENCIES) $(EXTRA_lstat64_DEPENDENCIES) 
-	@rm -f lstat64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(lstat64_OBJECTS) $(lstat64_LDADD) $(LIBS)
-
-madvise$(EXEEXT): $(madvise_OBJECTS) $(madvise_DEPENDENCIES) $(EXTRA_madvise_DEPENDENCIES) 
-	@rm -f madvise$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(madvise_OBJECTS) $(madvise_LDADD) $(LIBS)
-
-mbind$(EXEEXT): $(mbind_OBJECTS) $(mbind_DEPENDENCIES) $(EXTRA_mbind_DEPENDENCIES) 
-	@rm -f mbind$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mbind_OBJECTS) $(mbind_LDADD) $(LIBS)
-
-membarrier$(EXEEXT): $(membarrier_OBJECTS) $(membarrier_DEPENDENCIES) $(EXTRA_membarrier_DEPENDENCIES) 
-	@rm -f membarrier$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(membarrier_OBJECTS) $(membarrier_LDADD) $(LIBS)
-
-memfd_create$(EXEEXT): $(memfd_create_OBJECTS) $(memfd_create_DEPENDENCIES) $(EXTRA_memfd_create_DEPENDENCIES) 
-	@rm -f memfd_create$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(memfd_create_OBJECTS) $(memfd_create_LDADD) $(LIBS)
-
-migrate_pages$(EXEEXT): $(migrate_pages_OBJECTS) $(migrate_pages_DEPENDENCIES) $(EXTRA_migrate_pages_DEPENDENCIES) 
-	@rm -f migrate_pages$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(migrate_pages_OBJECTS) $(migrate_pages_LDADD) $(LIBS)
-
-mincore$(EXEEXT): $(mincore_OBJECTS) $(mincore_DEPENDENCIES) $(EXTRA_mincore_DEPENDENCIES) 
-	@rm -f mincore$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mincore_OBJECTS) $(mincore_LDADD) $(LIBS)
-
-mkdir$(EXEEXT): $(mkdir_OBJECTS) $(mkdir_DEPENDENCIES) $(EXTRA_mkdir_DEPENDENCIES) 
-	@rm -f mkdir$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mkdir_OBJECTS) $(mkdir_LDADD) $(LIBS)
-
-mkdirat$(EXEEXT): $(mkdirat_OBJECTS) $(mkdirat_DEPENDENCIES) $(EXTRA_mkdirat_DEPENDENCIES) 
-	@rm -f mkdirat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mkdirat_OBJECTS) $(mkdirat_LDADD) $(LIBS)
-
-mknod$(EXEEXT): $(mknod_OBJECTS) $(mknod_DEPENDENCIES) $(EXTRA_mknod_DEPENDENCIES) 
-	@rm -f mknod$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mknod_OBJECTS) $(mknod_LDADD) $(LIBS)
-
-mknodat$(EXEEXT): $(mknodat_OBJECTS) $(mknodat_DEPENDENCIES) $(EXTRA_mknodat_DEPENDENCIES) 
-	@rm -f mknodat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mknodat_OBJECTS) $(mknodat_LDADD) $(LIBS)
-
-mlock$(EXEEXT): $(mlock_OBJECTS) $(mlock_DEPENDENCIES) $(EXTRA_mlock_DEPENDENCIES) 
-	@rm -f mlock$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mlock_OBJECTS) $(mlock_LDADD) $(LIBS)
-
-mlock2$(EXEEXT): $(mlock2_OBJECTS) $(mlock2_DEPENDENCIES) $(EXTRA_mlock2_DEPENDENCIES) 
-	@rm -f mlock2$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mlock2_OBJECTS) $(mlock2_LDADD) $(LIBS)
-
-mlockall$(EXEEXT): $(mlockall_OBJECTS) $(mlockall_DEPENDENCIES) $(EXTRA_mlockall_DEPENDENCIES) 
-	@rm -f mlockall$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mlockall_OBJECTS) $(mlockall_LDADD) $(LIBS)
-
-mmap$(EXEEXT): $(mmap_OBJECTS) $(mmap_DEPENDENCIES) $(EXTRA_mmap_DEPENDENCIES) 
-	@rm -f mmap$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mmap_OBJECTS) $(mmap_LDADD) $(LIBS)
-
-mmap64$(EXEEXT): $(mmap64_OBJECTS) $(mmap64_DEPENDENCIES) $(EXTRA_mmap64_DEPENDENCIES) 
-	@rm -f mmap64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mmap64_OBJECTS) $(mmap64_LDADD) $(LIBS)
-
-mmsg$(EXEEXT): $(mmsg_OBJECTS) $(mmsg_DEPENDENCIES) $(EXTRA_mmsg_DEPENDENCIES) 
-	@rm -f mmsg$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mmsg_OBJECTS) $(mmsg_LDADD) $(LIBS)
-
-mmsg-silent$(EXEEXT): $(mmsg_silent_OBJECTS) $(mmsg_silent_DEPENDENCIES) $(EXTRA_mmsg_silent_DEPENDENCIES) 
-	@rm -f mmsg-silent$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mmsg_silent_OBJECTS) $(mmsg_silent_LDADD) $(LIBS)
-
-mmsg_name$(EXEEXT): $(mmsg_name_OBJECTS) $(mmsg_name_DEPENDENCIES) $(EXTRA_mmsg_name_DEPENDENCIES) 
-	@rm -f mmsg_name$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mmsg_name_OBJECTS) $(mmsg_name_LDADD) $(LIBS)
-
-mmsg_name-v$(EXEEXT): $(mmsg_name_v_OBJECTS) $(mmsg_name_v_DEPENDENCIES) $(EXTRA_mmsg_name_v_DEPENDENCIES) 
-	@rm -f mmsg_name-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mmsg_name_v_OBJECTS) $(mmsg_name_v_LDADD) $(LIBS)
-
-mount$(EXEEXT): $(mount_OBJECTS) $(mount_DEPENDENCIES) $(EXTRA_mount_DEPENDENCIES) 
-	@rm -f mount$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mount_OBJECTS) $(mount_LDADD) $(LIBS)
-
-move_pages$(EXEEXT): $(move_pages_OBJECTS) $(move_pages_DEPENDENCIES) $(EXTRA_move_pages_DEPENDENCIES) 
-	@rm -f move_pages$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(move_pages_OBJECTS) $(move_pages_LDADD) $(LIBS)
-
-mq$(EXEEXT): $(mq_OBJECTS) $(mq_DEPENDENCIES) $(EXTRA_mq_DEPENDENCIES) 
-	@rm -f mq$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mq_OBJECTS) $(mq_LDADD) $(LIBS)
-
-mq_sendrecv$(EXEEXT): $(mq_sendrecv_OBJECTS) $(mq_sendrecv_DEPENDENCIES) $(EXTRA_mq_sendrecv_DEPENDENCIES) 
-	@rm -f mq_sendrecv$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mq_sendrecv_OBJECTS) $(mq_sendrecv_LDADD) $(LIBS)
-
-mq_sendrecv-read$(EXEEXT): $(mq_sendrecv_read_OBJECTS) $(mq_sendrecv_read_DEPENDENCIES) $(EXTRA_mq_sendrecv_read_DEPENDENCIES) 
-	@rm -f mq_sendrecv-read$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mq_sendrecv_read_OBJECTS) $(mq_sendrecv_read_LDADD) $(LIBS)
-
-mq_sendrecv-write$(EXEEXT): $(mq_sendrecv_write_OBJECTS) $(mq_sendrecv_write_DEPENDENCIES) $(EXTRA_mq_sendrecv_write_DEPENDENCIES) 
-	@rm -f mq_sendrecv-write$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mq_sendrecv_write_OBJECTS) $(mq_sendrecv_write_LDADD) $(LIBS)
-
-msg_control$(EXEEXT): $(msg_control_OBJECTS) $(msg_control_DEPENDENCIES) $(EXTRA_msg_control_DEPENDENCIES) 
-	@rm -f msg_control$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(msg_control_OBJECTS) $(msg_control_LDADD) $(LIBS)
-
-msg_control-v$(EXEEXT): $(msg_control_v_OBJECTS) $(msg_control_v_DEPENDENCIES) $(EXTRA_msg_control_v_DEPENDENCIES) 
-	@rm -f msg_control-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(msg_control_v_OBJECTS) $(msg_control_v_LDADD) $(LIBS)
-
-msg_name$(EXEEXT): $(msg_name_OBJECTS) $(msg_name_DEPENDENCIES) $(EXTRA_msg_name_DEPENDENCIES) 
-	@rm -f msg_name$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(msg_name_OBJECTS) $(msg_name_LDADD) $(LIBS)
-
-munlockall$(EXEEXT): $(munlockall_OBJECTS) $(munlockall_DEPENDENCIES) $(EXTRA_munlockall_DEPENDENCIES) 
-	@rm -f munlockall$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(munlockall_OBJECTS) $(munlockall_LDADD) $(LIBS)
-
-nanosleep$(EXEEXT): $(nanosleep_OBJECTS) $(nanosleep_DEPENDENCIES) $(EXTRA_nanosleep_DEPENDENCIES) 
-	@rm -f nanosleep$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(nanosleep_OBJECTS) $(nanosleep_LDADD) $(LIBS)
-
-net-accept-connect$(EXEEXT): $(net_accept_connect_OBJECTS) $(net_accept_connect_DEPENDENCIES) $(EXTRA_net_accept_connect_DEPENDENCIES) 
-	@rm -f net-accept-connect$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(net_accept_connect_OBJECTS) $(net_accept_connect_LDADD) $(LIBS)
-
-net-icmp_filter$(EXEEXT): $(net_icmp_filter_OBJECTS) $(net_icmp_filter_DEPENDENCIES) $(EXTRA_net_icmp_filter_DEPENDENCIES) 
-	@rm -f net-icmp_filter$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(net_icmp_filter_OBJECTS) $(net_icmp_filter_LDADD) $(LIBS)
-
-net-sockaddr$(EXEEXT): $(net_sockaddr_OBJECTS) $(net_sockaddr_DEPENDENCIES) $(EXTRA_net_sockaddr_DEPENDENCIES) 
-	@rm -f net-sockaddr$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(net_sockaddr_OBJECTS) $(net_sockaddr_LDADD) $(LIBS)
-
-net-y-unix$(EXEEXT): $(net_y_unix_OBJECTS) $(net_y_unix_DEPENDENCIES) $(EXTRA_net_y_unix_DEPENDENCIES) 
-	@rm -f net-y-unix$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(net_y_unix_OBJECTS) $(net_y_unix_LDADD) $(LIBS)
-
-net-yy-inet$(EXEEXT): $(net_yy_inet_OBJECTS) $(net_yy_inet_DEPENDENCIES) $(EXTRA_net_yy_inet_DEPENDENCIES) 
-	@rm -f net-yy-inet$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(net_yy_inet_OBJECTS) $(net_yy_inet_LDADD) $(LIBS)
-
-net-yy-netlink$(EXEEXT): $(net_yy_netlink_OBJECTS) $(net_yy_netlink_DEPENDENCIES) $(EXTRA_net_yy_netlink_DEPENDENCIES) 
-	@rm -f net-yy-netlink$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(net_yy_netlink_OBJECTS) $(net_yy_netlink_LDADD) $(LIBS)
-
-net-yy-unix$(EXEEXT): $(net_yy_unix_OBJECTS) $(net_yy_unix_DEPENDENCIES) $(EXTRA_net_yy_unix_DEPENDENCIES) 
-	@rm -f net-yy-unix$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(net_yy_unix_OBJECTS) $(net_yy_unix_LDADD) $(LIBS)
-
-netlink_inet_diag$(EXEEXT): $(netlink_inet_diag_OBJECTS) $(netlink_inet_diag_DEPENDENCIES) $(EXTRA_netlink_inet_diag_DEPENDENCIES) 
-	@rm -f netlink_inet_diag$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(netlink_inet_diag_OBJECTS) $(netlink_inet_diag_LDADD) $(LIBS)
-
-netlink_netlink_diag$(EXEEXT): $(netlink_netlink_diag_OBJECTS) $(netlink_netlink_diag_DEPENDENCIES) $(EXTRA_netlink_netlink_diag_DEPENDENCIES) 
-	@rm -f netlink_netlink_diag$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(netlink_netlink_diag_OBJECTS) $(netlink_netlink_diag_LDADD) $(LIBS)
-
-netlink_protocol$(EXEEXT): $(netlink_protocol_OBJECTS) $(netlink_protocol_DEPENDENCIES) $(EXTRA_netlink_protocol_DEPENDENCIES) 
-	@rm -f netlink_protocol$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(netlink_protocol_OBJECTS) $(netlink_protocol_LDADD) $(LIBS)
-
-netlink_unix_diag$(EXEEXT): $(netlink_unix_diag_OBJECTS) $(netlink_unix_diag_DEPENDENCIES) $(EXTRA_netlink_unix_diag_DEPENDENCIES) 
-	@rm -f netlink_unix_diag$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(netlink_unix_diag_OBJECTS) $(netlink_unix_diag_LDADD) $(LIBS)
-
-newfstatat$(EXEEXT): $(newfstatat_OBJECTS) $(newfstatat_DEPENDENCIES) $(EXTRA_newfstatat_DEPENDENCIES) 
-	@rm -f newfstatat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(newfstatat_OBJECTS) $(newfstatat_LDADD) $(LIBS)
-
-nsyscalls$(EXEEXT): $(nsyscalls_OBJECTS) $(nsyscalls_DEPENDENCIES) $(EXTRA_nsyscalls_DEPENDENCIES) 
-	@rm -f nsyscalls$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(nsyscalls_OBJECTS) $(nsyscalls_LDADD) $(LIBS)
-
-old_mmap$(EXEEXT): $(old_mmap_OBJECTS) $(old_mmap_DEPENDENCIES) $(EXTRA_old_mmap_DEPENDENCIES) 
-	@rm -f old_mmap$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(old_mmap_OBJECTS) $(old_mmap_LDADD) $(LIBS)
-
-oldfstat$(EXEEXT): $(oldfstat_OBJECTS) $(oldfstat_DEPENDENCIES) $(EXTRA_oldfstat_DEPENDENCIES) 
-	@rm -f oldfstat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(oldfstat_OBJECTS) $(oldfstat_LDADD) $(LIBS)
-
-oldlstat$(EXEEXT): $(oldlstat_OBJECTS) $(oldlstat_DEPENDENCIES) $(EXTRA_oldlstat_DEPENDENCIES) 
-	@rm -f oldlstat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(oldlstat_OBJECTS) $(oldlstat_LDADD) $(LIBS)
-
-oldselect$(EXEEXT): $(oldselect_OBJECTS) $(oldselect_DEPENDENCIES) $(EXTRA_oldselect_DEPENDENCIES) 
-	@rm -f oldselect$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(oldselect_OBJECTS) $(oldselect_LDADD) $(LIBS)
-
-oldstat$(EXEEXT): $(oldstat_OBJECTS) $(oldstat_DEPENDENCIES) $(EXTRA_oldstat_DEPENDENCIES) 
-	@rm -f oldstat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(oldstat_OBJECTS) $(oldstat_LDADD) $(LIBS)
-
-open$(EXEEXT): $(open_OBJECTS) $(open_DEPENDENCIES) $(EXTRA_open_DEPENDENCIES) 
-	@rm -f open$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(open_OBJECTS) $(open_LDADD) $(LIBS)
-
-openat$(EXEEXT): $(openat_OBJECTS) $(openat_DEPENDENCIES) $(EXTRA_openat_DEPENDENCIES) 
-	@rm -f openat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(openat_OBJECTS) $(openat_LDADD) $(LIBS)
-
-osf_utimes$(EXEEXT): $(osf_utimes_OBJECTS) $(osf_utimes_DEPENDENCIES) $(EXTRA_osf_utimes_DEPENDENCIES) 
-	@rm -f osf_utimes$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(osf_utimes_OBJECTS) $(osf_utimes_LDADD) $(LIBS)
-
-pause$(EXEEXT): $(pause_OBJECTS) $(pause_DEPENDENCIES) $(EXTRA_pause_DEPENDENCIES) 
-	@rm -f pause$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(pause_OBJECTS) $(pause_LDADD) $(LIBS)
-
-pc$(EXEEXT): $(pc_OBJECTS) $(pc_DEPENDENCIES) $(EXTRA_pc_DEPENDENCIES) 
-	@rm -f pc$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(pc_OBJECTS) $(pc_LDADD) $(LIBS)
-
-perf_event_open$(EXEEXT): $(perf_event_open_OBJECTS) $(perf_event_open_DEPENDENCIES) $(EXTRA_perf_event_open_DEPENDENCIES) 
-	@rm -f perf_event_open$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(perf_event_open_OBJECTS) $(perf_event_open_LDADD) $(LIBS)
-
-perf_event_open_nonverbose$(EXEEXT): $(perf_event_open_nonverbose_OBJECTS) $(perf_event_open_nonverbose_DEPENDENCIES) $(EXTRA_perf_event_open_nonverbose_DEPENDENCIES) 
-	@rm -f perf_event_open_nonverbose$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(perf_event_open_nonverbose_OBJECTS) $(perf_event_open_nonverbose_LDADD) $(LIBS)
-
-perf_event_open_unabbrev$(EXEEXT): $(perf_event_open_unabbrev_OBJECTS) $(perf_event_open_unabbrev_DEPENDENCIES) $(EXTRA_perf_event_open_unabbrev_DEPENDENCIES) 
-	@rm -f perf_event_open_unabbrev$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(perf_event_open_unabbrev_OBJECTS) $(perf_event_open_unabbrev_LDADD) $(LIBS)
-
-personality$(EXEEXT): $(personality_OBJECTS) $(personality_DEPENDENCIES) $(EXTRA_personality_DEPENDENCIES) 
-	@rm -f personality$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(personality_OBJECTS) $(personality_LDADD) $(LIBS)
-
-pipe$(EXEEXT): $(pipe_OBJECTS) $(pipe_DEPENDENCIES) $(EXTRA_pipe_DEPENDENCIES) 
-	@rm -f pipe$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(pipe_OBJECTS) $(pipe_LDADD) $(LIBS)
-
-pipe2$(EXEEXT): $(pipe2_OBJECTS) $(pipe2_DEPENDENCIES) $(EXTRA_pipe2_DEPENDENCIES) 
-	@rm -f pipe2$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(pipe2_OBJECTS) $(pipe2_LDADD) $(LIBS)
-
-pkey_alloc$(EXEEXT): $(pkey_alloc_OBJECTS) $(pkey_alloc_DEPENDENCIES) $(EXTRA_pkey_alloc_DEPENDENCIES) 
-	@rm -f pkey_alloc$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(pkey_alloc_OBJECTS) $(pkey_alloc_LDADD) $(LIBS)
-
-pkey_free$(EXEEXT): $(pkey_free_OBJECTS) $(pkey_free_DEPENDENCIES) $(EXTRA_pkey_free_DEPENDENCIES) 
-	@rm -f pkey_free$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(pkey_free_OBJECTS) $(pkey_free_LDADD) $(LIBS)
-
-pkey_mprotect$(EXEEXT): $(pkey_mprotect_OBJECTS) $(pkey_mprotect_DEPENDENCIES) $(EXTRA_pkey_mprotect_DEPENDENCIES) 
-	@rm -f pkey_mprotect$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(pkey_mprotect_OBJECTS) $(pkey_mprotect_LDADD) $(LIBS)
-
-poll$(EXEEXT): $(poll_OBJECTS) $(poll_DEPENDENCIES) $(EXTRA_poll_DEPENDENCIES) 
-	@rm -f poll$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(poll_OBJECTS) $(poll_LDADD) $(LIBS)
-
-ppoll$(EXEEXT): $(ppoll_OBJECTS) $(ppoll_DEPENDENCIES) $(EXTRA_ppoll_DEPENDENCIES) 
-	@rm -f ppoll$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ppoll_OBJECTS) $(ppoll_LDADD) $(LIBS)
-
-ppoll-v$(EXEEXT): $(ppoll_v_OBJECTS) $(ppoll_v_DEPENDENCIES) $(EXTRA_ppoll_v_DEPENDENCIES) 
-	@rm -f ppoll-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ppoll_v_OBJECTS) $(ppoll_v_LDADD) $(LIBS)
-
-prctl-arg2-intptr$(EXEEXT): $(prctl_arg2_intptr_OBJECTS) $(prctl_arg2_intptr_DEPENDENCIES) $(EXTRA_prctl_arg2_intptr_DEPENDENCIES) 
-	@rm -f prctl-arg2-intptr$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prctl_arg2_intptr_OBJECTS) $(prctl_arg2_intptr_LDADD) $(LIBS)
-
-prctl-dumpable$(EXEEXT): $(prctl_dumpable_OBJECTS) $(prctl_dumpable_DEPENDENCIES) $(EXTRA_prctl_dumpable_DEPENDENCIES) 
-	@rm -f prctl-dumpable$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prctl_dumpable_OBJECTS) $(prctl_dumpable_LDADD) $(LIBS)
-
-prctl-name$(EXEEXT): $(prctl_name_OBJECTS) $(prctl_name_DEPENDENCIES) $(EXTRA_prctl_name_DEPENDENCIES) 
-	@rm -f prctl-name$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prctl_name_OBJECTS) $(prctl_name_LDADD) $(LIBS)
-
-prctl-no-args$(EXEEXT): $(prctl_no_args_OBJECTS) $(prctl_no_args_DEPENDENCIES) $(EXTRA_prctl_no_args_DEPENDENCIES) 
-	@rm -f prctl-no-args$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prctl_no_args_OBJECTS) $(prctl_no_args_LDADD) $(LIBS)
-
-prctl-pdeathsig$(EXEEXT): $(prctl_pdeathsig_OBJECTS) $(prctl_pdeathsig_DEPENDENCIES) $(EXTRA_prctl_pdeathsig_DEPENDENCIES) 
-	@rm -f prctl-pdeathsig$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prctl_pdeathsig_OBJECTS) $(prctl_pdeathsig_LDADD) $(LIBS)
-
-prctl-seccomp-filter-v$(EXEEXT): $(prctl_seccomp_filter_v_OBJECTS) $(prctl_seccomp_filter_v_DEPENDENCIES) $(EXTRA_prctl_seccomp_filter_v_DEPENDENCIES) 
-	@rm -f prctl-seccomp-filter-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prctl_seccomp_filter_v_OBJECTS) $(prctl_seccomp_filter_v_LDADD) $(LIBS)
-
-prctl-seccomp-strict$(EXEEXT): $(prctl_seccomp_strict_OBJECTS) $(prctl_seccomp_strict_DEPENDENCIES) $(EXTRA_prctl_seccomp_strict_DEPENDENCIES) 
-	@rm -f prctl-seccomp-strict$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prctl_seccomp_strict_OBJECTS) $(prctl_seccomp_strict_LDADD) $(LIBS)
-
-prctl-securebits$(EXEEXT): $(prctl_securebits_OBJECTS) $(prctl_securebits_DEPENDENCIES) $(EXTRA_prctl_securebits_DEPENDENCIES) 
-	@rm -f prctl-securebits$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prctl_securebits_OBJECTS) $(prctl_securebits_LDADD) $(LIBS)
-
-prctl-tid_address$(EXEEXT): $(prctl_tid_address_OBJECTS) $(prctl_tid_address_DEPENDENCIES) $(EXTRA_prctl_tid_address_DEPENDENCIES) 
-	@rm -f prctl-tid_address$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prctl_tid_address_OBJECTS) $(prctl_tid_address_LDADD) $(LIBS)
-
-prctl-tsc$(EXEEXT): $(prctl_tsc_OBJECTS) $(prctl_tsc_DEPENDENCIES) $(EXTRA_prctl_tsc_DEPENDENCIES) 
-	@rm -f prctl-tsc$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prctl_tsc_OBJECTS) $(prctl_tsc_LDADD) $(LIBS)
-
-pread64-pwrite64$(EXEEXT): $(pread64_pwrite64_OBJECTS) $(pread64_pwrite64_DEPENDENCIES) $(EXTRA_pread64_pwrite64_DEPENDENCIES) 
-	@rm -f pread64-pwrite64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(pread64_pwrite64_OBJECTS) $(pread64_pwrite64_LDADD) $(LIBS)
-
-preadv$(EXEEXT): $(preadv_OBJECTS) $(preadv_DEPENDENCIES) $(EXTRA_preadv_DEPENDENCIES) 
-	@rm -f preadv$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(preadv_OBJECTS) $(preadv_LDADD) $(LIBS)
-
-preadv-pwritev$(EXEEXT): $(preadv_pwritev_OBJECTS) $(preadv_pwritev_DEPENDENCIES) $(EXTRA_preadv_pwritev_DEPENDENCIES) 
-	@rm -f preadv-pwritev$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(preadv_pwritev_OBJECTS) $(preadv_pwritev_LDADD) $(LIBS)
-
-preadv2-pwritev2$(EXEEXT): $(preadv2_pwritev2_OBJECTS) $(preadv2_pwritev2_DEPENDENCIES) $(EXTRA_preadv2_pwritev2_DEPENDENCIES) 
-	@rm -f preadv2-pwritev2$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(preadv2_pwritev2_OBJECTS) $(preadv2_pwritev2_LDADD) $(LIBS)
-
-print_maxfd$(EXEEXT): $(print_maxfd_OBJECTS) $(print_maxfd_DEPENDENCIES) $(EXTRA_print_maxfd_DEPENDENCIES) 
-	@rm -f print_maxfd$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(print_maxfd_OBJECTS) $(print_maxfd_LDADD) $(LIBS)
-
-printstr$(EXEEXT): $(printstr_OBJECTS) $(printstr_DEPENDENCIES) $(EXTRA_printstr_DEPENDENCIES) 
-	@rm -f printstr$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(printstr_OBJECTS) $(printstr_LDADD) $(LIBS)
-
-prlimit64$(EXEEXT): $(prlimit64_OBJECTS) $(prlimit64_DEPENDENCIES) $(EXTRA_prlimit64_DEPENDENCIES) 
-	@rm -f prlimit64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prlimit64_OBJECTS) $(prlimit64_LDADD) $(LIBS)
-
-process_vm_readv$(EXEEXT): $(process_vm_readv_OBJECTS) $(process_vm_readv_DEPENDENCIES) $(EXTRA_process_vm_readv_DEPENDENCIES) 
-	@rm -f process_vm_readv$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(process_vm_readv_OBJECTS) $(process_vm_readv_LDADD) $(LIBS)
-
-process_vm_writev$(EXEEXT): $(process_vm_writev_OBJECTS) $(process_vm_writev_DEPENDENCIES) $(EXTRA_process_vm_writev_DEPENDENCIES) 
-	@rm -f process_vm_writev$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(process_vm_writev_OBJECTS) $(process_vm_writev_LDADD) $(LIBS)
-
-pselect6$(EXEEXT): $(pselect6_OBJECTS) $(pselect6_DEPENDENCIES) $(EXTRA_pselect6_DEPENDENCIES) 
-	@rm -f pselect6$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(pselect6_OBJECTS) $(pselect6_LDADD) $(LIBS)
-
-ptrace$(EXEEXT): $(ptrace_OBJECTS) $(ptrace_DEPENDENCIES) $(EXTRA_ptrace_DEPENDENCIES) 
-	@rm -f ptrace$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ptrace_OBJECTS) $(ptrace_LDADD) $(LIBS)
-
-pwritev$(EXEEXT): $(pwritev_OBJECTS) $(pwritev_DEPENDENCIES) $(EXTRA_pwritev_DEPENDENCIES) 
-	@rm -f pwritev$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(pwritev_OBJECTS) $(pwritev_LDADD) $(LIBS)
-
-qual_fault$(EXEEXT): $(qual_fault_OBJECTS) $(qual_fault_DEPENDENCIES) $(EXTRA_qual_fault_DEPENDENCIES) 
-	@rm -f qual_fault$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(qual_fault_OBJECTS) $(qual_fault_LDADD) $(LIBS)
-
-qual_inject-error-signal$(EXEEXT): $(qual_inject_error_signal_OBJECTS) $(qual_inject_error_signal_DEPENDENCIES) $(EXTRA_qual_inject_error_signal_DEPENDENCIES) 
-	@rm -f qual_inject-error-signal$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(qual_inject_error_signal_OBJECTS) $(qual_inject_error_signal_LDADD) $(LIBS)
-
-qual_inject-retval$(EXEEXT): $(qual_inject_retval_OBJECTS) $(qual_inject_retval_DEPENDENCIES) $(EXTRA_qual_inject_retval_DEPENDENCIES) 
-	@rm -f qual_inject-retval$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(qual_inject_retval_OBJECTS) $(qual_inject_retval_LDADD) $(LIBS)
-
-qual_inject-signal$(EXEEXT): $(qual_inject_signal_OBJECTS) $(qual_inject_signal_DEPENDENCIES) $(EXTRA_qual_inject_signal_DEPENDENCIES) 
-	@rm -f qual_inject-signal$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(qual_inject_signal_OBJECTS) $(qual_inject_signal_LDADD) $(LIBS)
-
-qual_signal$(EXEEXT): $(qual_signal_OBJECTS) $(qual_signal_DEPENDENCIES) $(EXTRA_qual_signal_DEPENDENCIES) 
-	@rm -f qual_signal$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(qual_signal_OBJECTS) $(qual_signal_LDADD) $(LIBS)
-
-quotactl$(EXEEXT): $(quotactl_OBJECTS) $(quotactl_DEPENDENCIES) $(EXTRA_quotactl_DEPENDENCIES) 
-	@rm -f quotactl$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(quotactl_OBJECTS) $(quotactl_LDADD) $(LIBS)
-
-quotactl-v$(EXEEXT): $(quotactl_v_OBJECTS) $(quotactl_v_DEPENDENCIES) $(EXTRA_quotactl_v_DEPENDENCIES) 
-	@rm -f quotactl-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(quotactl_v_OBJECTS) $(quotactl_v_LDADD) $(LIBS)
-
-quotactl-xfs$(EXEEXT): $(quotactl_xfs_OBJECTS) $(quotactl_xfs_DEPENDENCIES) $(EXTRA_quotactl_xfs_DEPENDENCIES) 
-	@rm -f quotactl-xfs$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(quotactl_xfs_OBJECTS) $(quotactl_xfs_LDADD) $(LIBS)
-
-quotactl-xfs-v$(EXEEXT): $(quotactl_xfs_v_OBJECTS) $(quotactl_xfs_v_DEPENDENCIES) $(EXTRA_quotactl_xfs_v_DEPENDENCIES) 
-	@rm -f quotactl-xfs-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(quotactl_xfs_v_OBJECTS) $(quotactl_xfs_v_LDADD) $(LIBS)
-
-read-write$(EXEEXT): $(read_write_OBJECTS) $(read_write_DEPENDENCIES) $(EXTRA_read_write_DEPENDENCIES) 
-	@rm -f read-write$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(read_write_OBJECTS) $(read_write_LDADD) $(LIBS)
-
-readahead$(EXEEXT): $(readahead_OBJECTS) $(readahead_DEPENDENCIES) $(EXTRA_readahead_DEPENDENCIES) 
-	@rm -f readahead$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(readahead_OBJECTS) $(readahead_LDADD) $(LIBS)
-
-readdir$(EXEEXT): $(readdir_OBJECTS) $(readdir_DEPENDENCIES) $(EXTRA_readdir_DEPENDENCIES) 
-	@rm -f readdir$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(readdir_OBJECTS) $(readdir_LDADD) $(LIBS)
-
-readlink$(EXEEXT): $(readlink_OBJECTS) $(readlink_DEPENDENCIES) $(EXTRA_readlink_DEPENDENCIES) 
-	@rm -f readlink$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(readlink_OBJECTS) $(readlink_LDADD) $(LIBS)
-
-readlinkat$(EXEEXT): $(readlinkat_OBJECTS) $(readlinkat_DEPENDENCIES) $(EXTRA_readlinkat_DEPENDENCIES) 
-	@rm -f readlinkat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(readlinkat_OBJECTS) $(readlinkat_LDADD) $(LIBS)
-
-readv$(EXEEXT): $(readv_OBJECTS) $(readv_DEPENDENCIES) $(EXTRA_readv_DEPENDENCIES) 
-	@rm -f readv$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(readv_OBJECTS) $(readv_LDADD) $(LIBS)
-
-reboot$(EXEEXT): $(reboot_OBJECTS) $(reboot_DEPENDENCIES) $(EXTRA_reboot_DEPENDENCIES) 
-	@rm -f reboot$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(reboot_OBJECTS) $(reboot_LDADD) $(LIBS)
-
-recvfrom$(EXEEXT): $(recvfrom_OBJECTS) $(recvfrom_DEPENDENCIES) $(EXTRA_recvfrom_DEPENDENCIES) 
-	@rm -f recvfrom$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(recvfrom_OBJECTS) $(recvfrom_LDADD) $(LIBS)
-
-recvmmsg-timeout$(EXEEXT): $(recvmmsg_timeout_OBJECTS) $(recvmmsg_timeout_DEPENDENCIES) $(EXTRA_recvmmsg_timeout_DEPENDENCIES) 
-	@rm -f recvmmsg-timeout$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(recvmmsg_timeout_OBJECTS) $(recvmmsg_timeout_LDADD) $(LIBS)
-
-recvmsg$(EXEEXT): $(recvmsg_OBJECTS) $(recvmsg_DEPENDENCIES) $(EXTRA_recvmsg_DEPENDENCIES) 
-	@rm -f recvmsg$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(recvmsg_OBJECTS) $(recvmsg_LDADD) $(LIBS)
-
-redirect-fds$(EXEEXT): $(redirect_fds_OBJECTS) $(redirect_fds_DEPENDENCIES) $(EXTRA_redirect_fds_DEPENDENCIES) 
-	@rm -f redirect-fds$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(redirect_fds_OBJECTS) $(redirect_fds_LDADD) $(LIBS)
-
-remap_file_pages$(EXEEXT): $(remap_file_pages_OBJECTS) $(remap_file_pages_DEPENDENCIES) $(EXTRA_remap_file_pages_DEPENDENCIES) 
-	@rm -f remap_file_pages$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(remap_file_pages_OBJECTS) $(remap_file_pages_LDADD) $(LIBS)
-
-rename$(EXEEXT): $(rename_OBJECTS) $(rename_DEPENDENCIES) $(EXTRA_rename_DEPENDENCIES) 
-	@rm -f rename$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(rename_OBJECTS) $(rename_LDADD) $(LIBS)
-
-renameat$(EXEEXT): $(renameat_OBJECTS) $(renameat_DEPENDENCIES) $(EXTRA_renameat_DEPENDENCIES) 
-	@rm -f renameat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(renameat_OBJECTS) $(renameat_LDADD) $(LIBS)
-
-renameat2$(EXEEXT): $(renameat2_OBJECTS) $(renameat2_DEPENDENCIES) $(EXTRA_renameat2_DEPENDENCIES) 
-	@rm -f renameat2$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(renameat2_OBJECTS) $(renameat2_LDADD) $(LIBS)
-
-request_key$(EXEEXT): $(request_key_OBJECTS) $(request_key_DEPENDENCIES) $(EXTRA_request_key_DEPENDENCIES) 
-	@rm -f request_key$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(request_key_OBJECTS) $(request_key_LDADD) $(LIBS)
-
-restart_syscall$(EXEEXT): $(restart_syscall_OBJECTS) $(restart_syscall_DEPENDENCIES) $(EXTRA_restart_syscall_DEPENDENCIES) 
-	@rm -f restart_syscall$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(restart_syscall_OBJECTS) $(restart_syscall_LDADD) $(LIBS)
-
-rmdir$(EXEEXT): $(rmdir_OBJECTS) $(rmdir_DEPENDENCIES) $(EXTRA_rmdir_DEPENDENCIES) 
-	@rm -f rmdir$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(rmdir_OBJECTS) $(rmdir_LDADD) $(LIBS)
-
-rt_sigpending$(EXEEXT): $(rt_sigpending_OBJECTS) $(rt_sigpending_DEPENDENCIES) $(EXTRA_rt_sigpending_DEPENDENCIES) 
-	@rm -f rt_sigpending$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(rt_sigpending_OBJECTS) $(rt_sigpending_LDADD) $(LIBS)
-
-rt_sigprocmask$(EXEEXT): $(rt_sigprocmask_OBJECTS) $(rt_sigprocmask_DEPENDENCIES) $(EXTRA_rt_sigprocmask_DEPENDENCIES) 
-	@rm -f rt_sigprocmask$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(rt_sigprocmask_OBJECTS) $(rt_sigprocmask_LDADD) $(LIBS)
-
-rt_sigqueueinfo$(EXEEXT): $(rt_sigqueueinfo_OBJECTS) $(rt_sigqueueinfo_DEPENDENCIES) $(EXTRA_rt_sigqueueinfo_DEPENDENCIES) 
-	@rm -f rt_sigqueueinfo$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(rt_sigqueueinfo_OBJECTS) $(rt_sigqueueinfo_LDADD) $(LIBS)
-
-rt_sigreturn$(EXEEXT): $(rt_sigreturn_OBJECTS) $(rt_sigreturn_DEPENDENCIES) $(EXTRA_rt_sigreturn_DEPENDENCIES) 
-	@rm -f rt_sigreturn$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(rt_sigreturn_OBJECTS) $(rt_sigreturn_LDADD) $(LIBS)
-
-rt_sigsuspend$(EXEEXT): $(rt_sigsuspend_OBJECTS) $(rt_sigsuspend_DEPENDENCIES) $(EXTRA_rt_sigsuspend_DEPENDENCIES) 
-	@rm -f rt_sigsuspend$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(rt_sigsuspend_OBJECTS) $(rt_sigsuspend_LDADD) $(LIBS)
-
-rt_sigtimedwait$(EXEEXT): $(rt_sigtimedwait_OBJECTS) $(rt_sigtimedwait_DEPENDENCIES) $(EXTRA_rt_sigtimedwait_DEPENDENCIES) 
-	@rm -f rt_sigtimedwait$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(rt_sigtimedwait_OBJECTS) $(rt_sigtimedwait_LDADD) $(LIBS)
-
-rt_tgsigqueueinfo$(EXEEXT): $(rt_tgsigqueueinfo_OBJECTS) $(rt_tgsigqueueinfo_DEPENDENCIES) $(EXTRA_rt_tgsigqueueinfo_DEPENDENCIES) 
-	@rm -f rt_tgsigqueueinfo$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(rt_tgsigqueueinfo_OBJECTS) $(rt_tgsigqueueinfo_LDADD) $(LIBS)
-
-sched_get_priority_mxx$(EXEEXT): $(sched_get_priority_mxx_OBJECTS) $(sched_get_priority_mxx_DEPENDENCIES) $(EXTRA_sched_get_priority_mxx_DEPENDENCIES) 
-	@rm -f sched_get_priority_mxx$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sched_get_priority_mxx_OBJECTS) $(sched_get_priority_mxx_LDADD) $(LIBS)
-
-sched_rr_get_interval$(EXEEXT): $(sched_rr_get_interval_OBJECTS) $(sched_rr_get_interval_DEPENDENCIES) $(EXTRA_sched_rr_get_interval_DEPENDENCIES) 
-	@rm -f sched_rr_get_interval$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sched_rr_get_interval_OBJECTS) $(sched_rr_get_interval_LDADD) $(LIBS)
-
-sched_xetaffinity$(EXEEXT): $(sched_xetaffinity_OBJECTS) $(sched_xetaffinity_DEPENDENCIES) $(EXTRA_sched_xetaffinity_DEPENDENCIES) 
-	@rm -f sched_xetaffinity$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sched_xetaffinity_OBJECTS) $(sched_xetaffinity_LDADD) $(LIBS)
-
-sched_xetattr$(EXEEXT): $(sched_xetattr_OBJECTS) $(sched_xetattr_DEPENDENCIES) $(EXTRA_sched_xetattr_DEPENDENCIES) 
-	@rm -f sched_xetattr$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sched_xetattr_OBJECTS) $(sched_xetattr_LDADD) $(LIBS)
-
-sched_xetparam$(EXEEXT): $(sched_xetparam_OBJECTS) $(sched_xetparam_DEPENDENCIES) $(EXTRA_sched_xetparam_DEPENDENCIES) 
-	@rm -f sched_xetparam$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sched_xetparam_OBJECTS) $(sched_xetparam_LDADD) $(LIBS)
-
-sched_xetscheduler$(EXEEXT): $(sched_xetscheduler_OBJECTS) $(sched_xetscheduler_DEPENDENCIES) $(EXTRA_sched_xetscheduler_DEPENDENCIES) 
-	@rm -f sched_xetscheduler$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sched_xetscheduler_OBJECTS) $(sched_xetscheduler_LDADD) $(LIBS)
-
-sched_yield$(EXEEXT): $(sched_yield_OBJECTS) $(sched_yield_DEPENDENCIES) $(EXTRA_sched_yield_DEPENDENCIES) 
-	@rm -f sched_yield$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sched_yield_OBJECTS) $(sched_yield_LDADD) $(LIBS)
-
-scm_rights$(EXEEXT): $(scm_rights_OBJECTS) $(scm_rights_DEPENDENCIES) $(EXTRA_scm_rights_DEPENDENCIES) 
-	@rm -f scm_rights$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(scm_rights_OBJECTS) $(scm_rights_LDADD) $(LIBS)
-
-seccomp-filter$(EXEEXT): $(seccomp_filter_OBJECTS) $(seccomp_filter_DEPENDENCIES) $(EXTRA_seccomp_filter_DEPENDENCIES) 
-	@rm -f seccomp-filter$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(seccomp_filter_OBJECTS) $(seccomp_filter_LDADD) $(LIBS)
-
-seccomp-filter-v$(EXEEXT): $(seccomp_filter_v_OBJECTS) $(seccomp_filter_v_DEPENDENCIES) $(EXTRA_seccomp_filter_v_DEPENDENCIES) 
-	@rm -f seccomp-filter-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(seccomp_filter_v_OBJECTS) $(seccomp_filter_v_LDADD) $(LIBS)
-
-seccomp-strict$(EXEEXT): $(seccomp_strict_OBJECTS) $(seccomp_strict_DEPENDENCIES) $(EXTRA_seccomp_strict_DEPENDENCIES) 
-	@rm -f seccomp-strict$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(seccomp_strict_OBJECTS) $(seccomp_strict_LDADD) $(LIBS)
-
-select$(EXEEXT): $(select_OBJECTS) $(select_DEPENDENCIES) $(EXTRA_select_DEPENDENCIES) 
-	@rm -f select$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(select_OBJECTS) $(select_LDADD) $(LIBS)
-
-semop$(EXEEXT): $(semop_OBJECTS) $(semop_DEPENDENCIES) $(EXTRA_semop_DEPENDENCIES) 
-	@rm -f semop$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(semop_OBJECTS) $(semop_LDADD) $(LIBS)
-
-sendfile$(EXEEXT): $(sendfile_OBJECTS) $(sendfile_DEPENDENCIES) $(EXTRA_sendfile_DEPENDENCIES) 
-	@rm -f sendfile$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sendfile_OBJECTS) $(sendfile_LDADD) $(LIBS)
-
-sendfile64$(EXEEXT): $(sendfile64_OBJECTS) $(sendfile64_DEPENDENCIES) $(EXTRA_sendfile64_DEPENDENCIES) 
-	@rm -f sendfile64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sendfile64_OBJECTS) $(sendfile64_LDADD) $(LIBS)
-
-set_mempolicy$(EXEEXT): $(set_mempolicy_OBJECTS) $(set_mempolicy_DEPENDENCIES) $(EXTRA_set_mempolicy_DEPENDENCIES) 
-	@rm -f set_mempolicy$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(set_mempolicy_OBJECTS) $(set_mempolicy_LDADD) $(LIBS)
-
-set_ptracer_any$(EXEEXT): $(set_ptracer_any_OBJECTS) $(set_ptracer_any_DEPENDENCIES) $(EXTRA_set_ptracer_any_DEPENDENCIES) 
-	@rm -f set_ptracer_any$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(set_ptracer_any_OBJECTS) $(set_ptracer_any_LDADD) $(LIBS)
-
-setdomainname$(EXEEXT): $(setdomainname_OBJECTS) $(setdomainname_DEPENDENCIES) $(EXTRA_setdomainname_DEPENDENCIES) 
-	@rm -f setdomainname$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setdomainname_OBJECTS) $(setdomainname_LDADD) $(LIBS)
-
-setfsgid$(EXEEXT): $(setfsgid_OBJECTS) $(setfsgid_DEPENDENCIES) $(EXTRA_setfsgid_DEPENDENCIES) 
-	@rm -f setfsgid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setfsgid_OBJECTS) $(setfsgid_LDADD) $(LIBS)
-
-setfsgid32$(EXEEXT): $(setfsgid32_OBJECTS) $(setfsgid32_DEPENDENCIES) $(EXTRA_setfsgid32_DEPENDENCIES) 
-	@rm -f setfsgid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setfsgid32_OBJECTS) $(setfsgid32_LDADD) $(LIBS)
-
-setfsuid$(EXEEXT): $(setfsuid_OBJECTS) $(setfsuid_DEPENDENCIES) $(EXTRA_setfsuid_DEPENDENCIES) 
-	@rm -f setfsuid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setfsuid_OBJECTS) $(setfsuid_LDADD) $(LIBS)
-
-setfsuid32$(EXEEXT): $(setfsuid32_OBJECTS) $(setfsuid32_DEPENDENCIES) $(EXTRA_setfsuid32_DEPENDENCIES) 
-	@rm -f setfsuid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setfsuid32_OBJECTS) $(setfsuid32_LDADD) $(LIBS)
-
-setgid$(EXEEXT): $(setgid_OBJECTS) $(setgid_DEPENDENCIES) $(EXTRA_setgid_DEPENDENCIES) 
-	@rm -f setgid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setgid_OBJECTS) $(setgid_LDADD) $(LIBS)
-
-setgid32$(EXEEXT): $(setgid32_OBJECTS) $(setgid32_DEPENDENCIES) $(EXTRA_setgid32_DEPENDENCIES) 
-	@rm -f setgid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setgid32_OBJECTS) $(setgid32_LDADD) $(LIBS)
-
-setgroups$(EXEEXT): $(setgroups_OBJECTS) $(setgroups_DEPENDENCIES) $(EXTRA_setgroups_DEPENDENCIES) 
-	@rm -f setgroups$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setgroups_OBJECTS) $(setgroups_LDADD) $(LIBS)
-
-setgroups32$(EXEEXT): $(setgroups32_OBJECTS) $(setgroups32_DEPENDENCIES) $(EXTRA_setgroups32_DEPENDENCIES) 
-	@rm -f setgroups32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setgroups32_OBJECTS) $(setgroups32_LDADD) $(LIBS)
-
-sethostname$(EXEEXT): $(sethostname_OBJECTS) $(sethostname_DEPENDENCIES) $(EXTRA_sethostname_DEPENDENCIES) 
-	@rm -f sethostname$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sethostname_OBJECTS) $(sethostname_LDADD) $(LIBS)
-
-setns$(EXEEXT): $(setns_OBJECTS) $(setns_DEPENDENCIES) $(EXTRA_setns_DEPENDENCIES) 
-	@rm -f setns$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setns_OBJECTS) $(setns_LDADD) $(LIBS)
-
-setregid$(EXEEXT): $(setregid_OBJECTS) $(setregid_DEPENDENCIES) $(EXTRA_setregid_DEPENDENCIES) 
-	@rm -f setregid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setregid_OBJECTS) $(setregid_LDADD) $(LIBS)
-
-setregid32$(EXEEXT): $(setregid32_OBJECTS) $(setregid32_DEPENDENCIES) $(EXTRA_setregid32_DEPENDENCIES) 
-	@rm -f setregid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setregid32_OBJECTS) $(setregid32_LDADD) $(LIBS)
-
-setresgid$(EXEEXT): $(setresgid_OBJECTS) $(setresgid_DEPENDENCIES) $(EXTRA_setresgid_DEPENDENCIES) 
-	@rm -f setresgid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setresgid_OBJECTS) $(setresgid_LDADD) $(LIBS)
-
-setresgid32$(EXEEXT): $(setresgid32_OBJECTS) $(setresgid32_DEPENDENCIES) $(EXTRA_setresgid32_DEPENDENCIES) 
-	@rm -f setresgid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setresgid32_OBJECTS) $(setresgid32_LDADD) $(LIBS)
-
-setresuid$(EXEEXT): $(setresuid_OBJECTS) $(setresuid_DEPENDENCIES) $(EXTRA_setresuid_DEPENDENCIES) 
-	@rm -f setresuid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setresuid_OBJECTS) $(setresuid_LDADD) $(LIBS)
-
-setresuid32$(EXEEXT): $(setresuid32_OBJECTS) $(setresuid32_DEPENDENCIES) $(EXTRA_setresuid32_DEPENDENCIES) 
-	@rm -f setresuid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setresuid32_OBJECTS) $(setresuid32_LDADD) $(LIBS)
-
-setreuid$(EXEEXT): $(setreuid_OBJECTS) $(setreuid_DEPENDENCIES) $(EXTRA_setreuid_DEPENDENCIES) 
-	@rm -f setreuid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setreuid_OBJECTS) $(setreuid_LDADD) $(LIBS)
-
-setreuid32$(EXEEXT): $(setreuid32_OBJECTS) $(setreuid32_DEPENDENCIES) $(EXTRA_setreuid32_DEPENDENCIES) 
-	@rm -f setreuid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setreuid32_OBJECTS) $(setreuid32_LDADD) $(LIBS)
-
-setrlimit$(EXEEXT): $(setrlimit_OBJECTS) $(setrlimit_DEPENDENCIES) $(EXTRA_setrlimit_DEPENDENCIES) 
-	@rm -f setrlimit$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setrlimit_OBJECTS) $(setrlimit_LDADD) $(LIBS)
-
-setuid$(EXEEXT): $(setuid_OBJECTS) $(setuid_DEPENDENCIES) $(EXTRA_setuid_DEPENDENCIES) 
-	@rm -f setuid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setuid_OBJECTS) $(setuid_LDADD) $(LIBS)
-
-setuid32$(EXEEXT): $(setuid32_OBJECTS) $(setuid32_DEPENDENCIES) $(EXTRA_setuid32_DEPENDENCIES) 
-	@rm -f setuid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setuid32_OBJECTS) $(setuid32_LDADD) $(LIBS)
-
-shmxt$(EXEEXT): $(shmxt_OBJECTS) $(shmxt_DEPENDENCIES) $(EXTRA_shmxt_DEPENDENCIES) 
-	@rm -f shmxt$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(shmxt_OBJECTS) $(shmxt_LDADD) $(LIBS)
-
-shutdown$(EXEEXT): $(shutdown_OBJECTS) $(shutdown_DEPENDENCIES) $(EXTRA_shutdown_DEPENDENCIES) 
-	@rm -f shutdown$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(shutdown_OBJECTS) $(shutdown_LDADD) $(LIBS)
-
-sigaction$(EXEEXT): $(sigaction_OBJECTS) $(sigaction_DEPENDENCIES) $(EXTRA_sigaction_DEPENDENCIES) 
-	@rm -f sigaction$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sigaction_OBJECTS) $(sigaction_LDADD) $(LIBS)
-
-sigaltstack$(EXEEXT): $(sigaltstack_OBJECTS) $(sigaltstack_DEPENDENCIES) $(EXTRA_sigaltstack_DEPENDENCIES) 
-	@rm -f sigaltstack$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sigaltstack_OBJECTS) $(sigaltstack_LDADD) $(LIBS)
-
-siginfo$(EXEEXT): $(siginfo_OBJECTS) $(siginfo_DEPENDENCIES) $(EXTRA_siginfo_DEPENDENCIES) 
-	@rm -f siginfo$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(siginfo_OBJECTS) $(siginfo_LDADD) $(LIBS)
-
-signal_receive$(EXEEXT): $(signal_receive_OBJECTS) $(signal_receive_DEPENDENCIES) $(EXTRA_signal_receive_DEPENDENCIES) 
-	@rm -f signal_receive$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(signal_receive_OBJECTS) $(signal_receive_LDADD) $(LIBS)
-
-signalfd4$(EXEEXT): $(signalfd4_OBJECTS) $(signalfd4_DEPENDENCIES) $(EXTRA_signalfd4_DEPENDENCIES) 
-	@rm -f signalfd4$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(signalfd4_OBJECTS) $(signalfd4_LDADD) $(LIBS)
-
-sigreturn$(EXEEXT): $(sigreturn_OBJECTS) $(sigreturn_DEPENDENCIES) $(EXTRA_sigreturn_DEPENDENCIES) 
-	@rm -f sigreturn$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sigreturn_OBJECTS) $(sigreturn_LDADD) $(LIBS)
-
-sigsuspend$(EXEEXT): $(sigsuspend_OBJECTS) $(sigsuspend_DEPENDENCIES) $(EXTRA_sigsuspend_DEPENDENCIES) 
-	@rm -f sigsuspend$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sigsuspend_OBJECTS) $(sigsuspend_LDADD) $(LIBS)
-
-sleep$(EXEEXT): $(sleep_OBJECTS) $(sleep_DEPENDENCIES) $(EXTRA_sleep_DEPENDENCIES) 
-	@rm -f sleep$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sleep_OBJECTS) $(sleep_LDADD) $(LIBS)
-
-socketcall$(EXEEXT): $(socketcall_OBJECTS) $(socketcall_DEPENDENCIES) $(EXTRA_socketcall_DEPENDENCIES) 
-	@rm -f socketcall$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(socketcall_OBJECTS) $(socketcall_LDADD) $(LIBS)
-
-splice$(EXEEXT): $(splice_OBJECTS) $(splice_DEPENDENCIES) $(EXTRA_splice_DEPENDENCIES) 
-	@rm -f splice$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(splice_OBJECTS) $(splice_LDADD) $(LIBS)
-
-stack-fcall$(EXEEXT): $(stack_fcall_OBJECTS) $(stack_fcall_DEPENDENCIES) $(EXTRA_stack_fcall_DEPENDENCIES) 
-	@rm -f stack-fcall$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(stack_fcall_OBJECTS) $(stack_fcall_LDADD) $(LIBS)
-
-stat$(EXEEXT): $(stat_OBJECTS) $(stat_DEPENDENCIES) $(EXTRA_stat_DEPENDENCIES) 
-	@rm -f stat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(stat_OBJECTS) $(stat_LDADD) $(LIBS)
-
-stat64$(EXEEXT): $(stat64_OBJECTS) $(stat64_DEPENDENCIES) $(EXTRA_stat64_DEPENDENCIES) 
-	@rm -f stat64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(stat64_OBJECTS) $(stat64_LDADD) $(LIBS)
-
-statfs$(EXEEXT): $(statfs_OBJECTS) $(statfs_DEPENDENCIES) $(EXTRA_statfs_DEPENDENCIES) 
-	@rm -f statfs$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(statfs_OBJECTS) $(statfs_LDADD) $(LIBS)
-
-statfs64$(EXEEXT): $(statfs64_OBJECTS) $(statfs64_DEPENDENCIES) $(EXTRA_statfs64_DEPENDENCIES) 
-	@rm -f statfs64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(statfs64_OBJECTS) $(statfs64_LDADD) $(LIBS)
-
-statx$(EXEEXT): $(statx_OBJECTS) $(statx_DEPENDENCIES) $(EXTRA_statx_DEPENDENCIES) 
-	@rm -f statx$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(statx_OBJECTS) $(statx_LDADD) $(LIBS)
-
-swap$(EXEEXT): $(swap_OBJECTS) $(swap_DEPENDENCIES) $(EXTRA_swap_DEPENDENCIES) 
-	@rm -f swap$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(swap_OBJECTS) $(swap_LDADD) $(LIBS)
-
-sxetmask$(EXEEXT): $(sxetmask_OBJECTS) $(sxetmask_DEPENDENCIES) $(EXTRA_sxetmask_DEPENDENCIES) 
-	@rm -f sxetmask$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sxetmask_OBJECTS) $(sxetmask_LDADD) $(LIBS)
-
-symlink$(EXEEXT): $(symlink_OBJECTS) $(symlink_DEPENDENCIES) $(EXTRA_symlink_DEPENDENCIES) 
-	@rm -f symlink$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(symlink_OBJECTS) $(symlink_LDADD) $(LIBS)
-
-symlinkat$(EXEEXT): $(symlinkat_OBJECTS) $(symlinkat_DEPENDENCIES) $(EXTRA_symlinkat_DEPENDENCIES) 
-	@rm -f symlinkat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(symlinkat_OBJECTS) $(symlinkat_LDADD) $(LIBS)
-
-sync$(EXEEXT): $(sync_OBJECTS) $(sync_DEPENDENCIES) $(EXTRA_sync_DEPENDENCIES) 
-	@rm -f sync$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sync_OBJECTS) $(sync_LDADD) $(LIBS)
-
-sync_file_range$(EXEEXT): $(sync_file_range_OBJECTS) $(sync_file_range_DEPENDENCIES) $(EXTRA_sync_file_range_DEPENDENCIES) 
-	@rm -f sync_file_range$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sync_file_range_OBJECTS) $(sync_file_range_LDADD) $(LIBS)
-
-sync_file_range2$(EXEEXT): $(sync_file_range2_OBJECTS) $(sync_file_range2_DEPENDENCIES) $(EXTRA_sync_file_range2_DEPENDENCIES) 
-	@rm -f sync_file_range2$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sync_file_range2_OBJECTS) $(sync_file_range2_LDADD) $(LIBS)
-
-sysinfo$(EXEEXT): $(sysinfo_OBJECTS) $(sysinfo_DEPENDENCIES) $(EXTRA_sysinfo_DEPENDENCIES) 
-	@rm -f sysinfo$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sysinfo_OBJECTS) $(sysinfo_LDADD) $(LIBS)
-
-syslog$(EXEEXT): $(syslog_OBJECTS) $(syslog_DEPENDENCIES) $(EXTRA_syslog_DEPENDENCIES) 
-	@rm -f syslog$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(syslog_OBJECTS) $(syslog_LDADD) $(LIBS)
-
-tee$(EXEEXT): $(tee_OBJECTS) $(tee_DEPENDENCIES) $(EXTRA_tee_DEPENDENCIES) 
-	@rm -f tee$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(tee_OBJECTS) $(tee_LDADD) $(LIBS)
-
-threads-execve$(EXEEXT): $(threads_execve_OBJECTS) $(threads_execve_DEPENDENCIES) $(EXTRA_threads_execve_DEPENDENCIES) 
-	@rm -f threads-execve$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(threads_execve_OBJECTS) $(threads_execve_LDADD) $(LIBS)
-
-time$(EXEEXT): $(time_OBJECTS) $(time_DEPENDENCIES) $(EXTRA_time_DEPENDENCIES) 
-	@rm -f time$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(time_OBJECTS) $(time_LDADD) $(LIBS)
-
-timer_create$(EXEEXT): $(timer_create_OBJECTS) $(timer_create_DEPENDENCIES) $(EXTRA_timer_create_DEPENDENCIES) 
-	@rm -f timer_create$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(timer_create_OBJECTS) $(timer_create_LDADD) $(LIBS)
-
-timer_xettime$(EXEEXT): $(timer_xettime_OBJECTS) $(timer_xettime_DEPENDENCIES) $(EXTRA_timer_xettime_DEPENDENCIES) 
-	@rm -f timer_xettime$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(timer_xettime_OBJECTS) $(timer_xettime_LDADD) $(LIBS)
-
-timerfd_xettime$(EXEEXT): $(timerfd_xettime_OBJECTS) $(timerfd_xettime_DEPENDENCIES) $(EXTRA_timerfd_xettime_DEPENDENCIES) 
-	@rm -f timerfd_xettime$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(timerfd_xettime_OBJECTS) $(timerfd_xettime_LDADD) $(LIBS)
-
-times$(EXEEXT): $(times_OBJECTS) $(times_DEPENDENCIES) $(EXTRA_times_DEPENDENCIES) 
-	@rm -f times$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(times_OBJECTS) $(times_LDADD) $(LIBS)
-
-times-fail$(EXEEXT): $(times_fail_OBJECTS) $(times_fail_DEPENDENCIES) $(EXTRA_times_fail_DEPENDENCIES) 
-	@rm -f times-fail$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(times_fail_OBJECTS) $(times_fail_LDADD) $(LIBS)
-
-truncate$(EXEEXT): $(truncate_OBJECTS) $(truncate_DEPENDENCIES) $(EXTRA_truncate_DEPENDENCIES) 
-	@rm -f truncate$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(truncate_OBJECTS) $(truncate_LDADD) $(LIBS)
-
-truncate64$(EXEEXT): $(truncate64_OBJECTS) $(truncate64_DEPENDENCIES) $(EXTRA_truncate64_DEPENDENCIES) 
-	@rm -f truncate64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(truncate64_OBJECTS) $(truncate64_LDADD) $(LIBS)
-
-ugetrlimit$(EXEEXT): $(ugetrlimit_OBJECTS) $(ugetrlimit_DEPENDENCIES) $(EXTRA_ugetrlimit_DEPENDENCIES) 
-	@rm -f ugetrlimit$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ugetrlimit_OBJECTS) $(ugetrlimit_LDADD) $(LIBS)
-
-uio$(EXEEXT): $(uio_OBJECTS) $(uio_DEPENDENCIES) $(EXTRA_uio_DEPENDENCIES) 
-	@rm -f uio$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(uio_OBJECTS) $(uio_LDADD) $(LIBS)
-
-umask$(EXEEXT): $(umask_OBJECTS) $(umask_DEPENDENCIES) $(EXTRA_umask_DEPENDENCIES) 
-	@rm -f umask$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(umask_OBJECTS) $(umask_LDADD) $(LIBS)
-
-umount$(EXEEXT): $(umount_OBJECTS) $(umount_DEPENDENCIES) $(EXTRA_umount_DEPENDENCIES) 
-	@rm -f umount$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(umount_OBJECTS) $(umount_LDADD) $(LIBS)
-
-umount2$(EXEEXT): $(umount2_OBJECTS) $(umount2_DEPENDENCIES) $(EXTRA_umount2_DEPENDENCIES) 
-	@rm -f umount2$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(umount2_OBJECTS) $(umount2_LDADD) $(LIBS)
-
-umoven-illptr$(EXEEXT): $(umoven_illptr_OBJECTS) $(umoven_illptr_DEPENDENCIES) $(EXTRA_umoven_illptr_DEPENDENCIES) 
-	@rm -f umoven-illptr$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(umoven_illptr_OBJECTS) $(umoven_illptr_LDADD) $(LIBS)
-
-umovestr$(EXEEXT): $(umovestr_OBJECTS) $(umovestr_DEPENDENCIES) $(EXTRA_umovestr_DEPENDENCIES) 
-	@rm -f umovestr$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(umovestr_OBJECTS) $(umovestr_LDADD) $(LIBS)
-
-umovestr-illptr$(EXEEXT): $(umovestr_illptr_OBJECTS) $(umovestr_illptr_DEPENDENCIES) $(EXTRA_umovestr_illptr_DEPENDENCIES) 
-	@rm -f umovestr-illptr$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(umovestr_illptr_OBJECTS) $(umovestr_illptr_LDADD) $(LIBS)
-
-umovestr2$(EXEEXT): $(umovestr2_OBJECTS) $(umovestr2_DEPENDENCIES) $(EXTRA_umovestr2_DEPENDENCIES) 
-	@rm -f umovestr2$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(umovestr2_OBJECTS) $(umovestr2_LDADD) $(LIBS)
-
-umovestr3$(EXEEXT): $(umovestr3_OBJECTS) $(umovestr3_DEPENDENCIES) $(EXTRA_umovestr3_DEPENDENCIES) 
-	@rm -f umovestr3$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(umovestr3_OBJECTS) $(umovestr3_LDADD) $(LIBS)
-
-uname$(EXEEXT): $(uname_OBJECTS) $(uname_DEPENDENCIES) $(EXTRA_uname_DEPENDENCIES) 
-	@rm -f uname$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(uname_OBJECTS) $(uname_LDADD) $(LIBS)
-
-unix-pair-send-recv$(EXEEXT): $(unix_pair_send_recv_OBJECTS) $(unix_pair_send_recv_DEPENDENCIES) $(EXTRA_unix_pair_send_recv_DEPENDENCIES) 
-	@rm -f unix-pair-send-recv$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(unix_pair_send_recv_OBJECTS) $(unix_pair_send_recv_LDADD) $(LIBS)
-
-unix-pair-sendto-recvfrom$(EXEEXT): $(unix_pair_sendto_recvfrom_OBJECTS) $(unix_pair_sendto_recvfrom_DEPENDENCIES) $(EXTRA_unix_pair_sendto_recvfrom_DEPENDENCIES) 
-	@rm -f unix-pair-sendto-recvfrom$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(unix_pair_sendto_recvfrom_OBJECTS) $(unix_pair_sendto_recvfrom_LDADD) $(LIBS)
-
-unlink$(EXEEXT): $(unlink_OBJECTS) $(unlink_DEPENDENCIES) $(EXTRA_unlink_DEPENDENCIES) 
-	@rm -f unlink$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(unlink_OBJECTS) $(unlink_LDADD) $(LIBS)
-
-unlinkat$(EXEEXT): $(unlinkat_OBJECTS) $(unlinkat_DEPENDENCIES) $(EXTRA_unlinkat_DEPENDENCIES) 
-	@rm -f unlinkat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(unlinkat_OBJECTS) $(unlinkat_LDADD) $(LIBS)
-
-unshare$(EXEEXT): $(unshare_OBJECTS) $(unshare_DEPENDENCIES) $(EXTRA_unshare_DEPENDENCIES) 
-	@rm -f unshare$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(unshare_OBJECTS) $(unshare_LDADD) $(LIBS)
-
-userfaultfd$(EXEEXT): $(userfaultfd_OBJECTS) $(userfaultfd_DEPENDENCIES) $(EXTRA_userfaultfd_DEPENDENCIES) 
-	@rm -f userfaultfd$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(userfaultfd_OBJECTS) $(userfaultfd_LDADD) $(LIBS)
-
-ustat$(EXEEXT): $(ustat_OBJECTS) $(ustat_DEPENDENCIES) $(EXTRA_ustat_DEPENDENCIES) 
-	@rm -f ustat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ustat_OBJECTS) $(ustat_LDADD) $(LIBS)
-
-utime$(EXEEXT): $(utime_OBJECTS) $(utime_DEPENDENCIES) $(EXTRA_utime_DEPENDENCIES) 
-	@rm -f utime$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(utime_OBJECTS) $(utime_LDADD) $(LIBS)
-
-utimensat$(EXEEXT): $(utimensat_OBJECTS) $(utimensat_DEPENDENCIES) $(EXTRA_utimensat_DEPENDENCIES) 
-	@rm -f utimensat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(utimensat_OBJECTS) $(utimensat_LDADD) $(LIBS)
-
-utimes$(EXEEXT): $(utimes_OBJECTS) $(utimes_DEPENDENCIES) $(EXTRA_utimes_DEPENDENCIES) 
-	@rm -f utimes$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(utimes_OBJECTS) $(utimes_LDADD) $(LIBS)
-
-vfork-f$(EXEEXT): $(vfork_f_OBJECTS) $(vfork_f_DEPENDENCIES) $(EXTRA_vfork_f_DEPENDENCIES) 
-	@rm -f vfork-f$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(vfork_f_OBJECTS) $(vfork_f_LDADD) $(LIBS)
-
-vhangup$(EXEEXT): $(vhangup_OBJECTS) $(vhangup_DEPENDENCIES) $(EXTRA_vhangup_DEPENDENCIES) 
-	@rm -f vhangup$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(vhangup_OBJECTS) $(vhangup_LDADD) $(LIBS)
-
-vmsplice$(EXEEXT): $(vmsplice_OBJECTS) $(vmsplice_DEPENDENCIES) $(EXTRA_vmsplice_DEPENDENCIES) 
-	@rm -f vmsplice$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(vmsplice_OBJECTS) $(vmsplice_LDADD) $(LIBS)
-
-wait4$(EXEEXT): $(wait4_OBJECTS) $(wait4_DEPENDENCIES) $(EXTRA_wait4_DEPENDENCIES) 
-	@rm -f wait4$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(wait4_OBJECTS) $(wait4_LDADD) $(LIBS)
-
-wait4-v$(EXEEXT): $(wait4_v_OBJECTS) $(wait4_v_DEPENDENCIES) $(EXTRA_wait4_v_DEPENDENCIES) 
-	@rm -f wait4-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(wait4_v_OBJECTS) $(wait4_v_LDADD) $(LIBS)
-
-waitid$(EXEEXT): $(waitid_OBJECTS) $(waitid_DEPENDENCIES) $(EXTRA_waitid_DEPENDENCIES) 
-	@rm -f waitid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(waitid_OBJECTS) $(waitid_LDADD) $(LIBS)
-
-waitid-v$(EXEEXT): $(waitid_v_OBJECTS) $(waitid_v_DEPENDENCIES) $(EXTRA_waitid_v_DEPENDENCIES) 
-	@rm -f waitid-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(waitid_v_OBJECTS) $(waitid_v_LDADD) $(LIBS)
-
-waitpid$(EXEEXT): $(waitpid_OBJECTS) $(waitpid_DEPENDENCIES) $(EXTRA_waitpid_DEPENDENCIES) 
-	@rm -f waitpid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(waitpid_OBJECTS) $(waitpid_LDADD) $(LIBS)
-
-xattr$(EXEEXT): $(xattr_OBJECTS) $(xattr_DEPENDENCIES) $(EXTRA_xattr_DEPENDENCIES) 
-	@rm -f xattr$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(xattr_OBJECTS) $(xattr_LDADD) $(LIBS)
-
-xattr-strings$(EXEEXT): $(xattr_strings_OBJECTS) $(xattr_strings_DEPENDENCIES) $(EXTRA_xattr_strings_DEPENDENCIES) 
-	@rm -f xattr-strings$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(xattr_strings_OBJECTS) $(xattr_strings_LDADD) $(LIBS)
-
-xet_robust_list$(EXEEXT): $(xet_robust_list_OBJECTS) $(xet_robust_list_DEPENDENCIES) $(EXTRA_xet_robust_list_DEPENDENCIES) 
-	@rm -f xet_robust_list$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(xet_robust_list_OBJECTS) $(xet_robust_list_LDADD) $(LIBS)
-
-xetitimer$(EXEEXT): $(xetitimer_OBJECTS) $(xetitimer_DEPENDENCIES) $(EXTRA_xetitimer_DEPENDENCIES) 
-	@rm -f xetitimer$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(xetitimer_OBJECTS) $(xetitimer_LDADD) $(LIBS)
-
-xetpgid$(EXEEXT): $(xetpgid_OBJECTS) $(xetpgid_DEPENDENCIES) $(EXTRA_xetpgid_DEPENDENCIES) 
-	@rm -f xetpgid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(xetpgid_OBJECTS) $(xetpgid_LDADD) $(LIBS)
-
-xetpriority$(EXEEXT): $(xetpriority_OBJECTS) $(xetpriority_DEPENDENCIES) $(EXTRA_xetpriority_DEPENDENCIES) 
-	@rm -f xetpriority$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(xetpriority_OBJECTS) $(xetpriority_LDADD) $(LIBS)
-
-xettimeofday$(EXEEXT): $(xettimeofday_OBJECTS) $(xettimeofday_DEPENDENCIES) $(EXTRA_xettimeofday_DEPENDENCIES) 
-	@rm -f xettimeofday$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(xettimeofday_OBJECTS) $(xettimeofday_LDADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
-include ./$(DEPDIR)/_newselect.Po
-include ./$(DEPDIR)/accept.Po
-include ./$(DEPDIR)/accept4.Po
-include ./$(DEPDIR)/access.Po
-include ./$(DEPDIR)/acct.Po
-include ./$(DEPDIR)/add_key.Po
-include ./$(DEPDIR)/adjtimex.Po
-include ./$(DEPDIR)/aio.Po
-include ./$(DEPDIR)/alarm.Po
-include ./$(DEPDIR)/answer.Po
-include ./$(DEPDIR)/attach-f-p-cmd.Po
-include ./$(DEPDIR)/attach-f-p.Po
-include ./$(DEPDIR)/attach-p-cmd-cmd.Po
-include ./$(DEPDIR)/attach-p-cmd-p.Po
-include ./$(DEPDIR)/bpf.Po
-include ./$(DEPDIR)/brk.Po
-include ./$(DEPDIR)/btrfs.Po
-include ./$(DEPDIR)/caps-abbrev.Po
-include ./$(DEPDIR)/caps.Po
-include ./$(DEPDIR)/chmod.Po
-include ./$(DEPDIR)/chown.Po
-include ./$(DEPDIR)/chown32.Po
-include ./$(DEPDIR)/chroot.Po
-include ./$(DEPDIR)/clock_adjtime.Po
-include ./$(DEPDIR)/clock_nanosleep.Po
-include ./$(DEPDIR)/clock_xettime.Po
-include ./$(DEPDIR)/copy_file_range.Po
-include ./$(DEPDIR)/count-f.Po
-include ./$(DEPDIR)/creat.Po
-include ./$(DEPDIR)/delete_module.Po
-include ./$(DEPDIR)/dup.Po
-include ./$(DEPDIR)/dup2.Po
-include ./$(DEPDIR)/dup3.Po
-include ./$(DEPDIR)/epoll_create.Po
-include ./$(DEPDIR)/epoll_create1.Po
-include ./$(DEPDIR)/epoll_ctl.Po
-include ./$(DEPDIR)/epoll_pwait.Po
-include ./$(DEPDIR)/epoll_wait.Po
-include ./$(DEPDIR)/erestartsys.Po
-include ./$(DEPDIR)/eventfd.Po
-include ./$(DEPDIR)/execve-v.Po
-include ./$(DEPDIR)/execve.Po
-include ./$(DEPDIR)/execveat-v.Po
-include ./$(DEPDIR)/execveat.Po
-include ./$(DEPDIR)/faccessat.Po
-include ./$(DEPDIR)/fadvise64.Po
-include ./$(DEPDIR)/fadvise64_64.Po
-include ./$(DEPDIR)/fallocate.Po
-include ./$(DEPDIR)/fanotify_init.Po
-include ./$(DEPDIR)/fanotify_mark.Po
-include ./$(DEPDIR)/fchdir.Po
-include ./$(DEPDIR)/fchmod.Po
-include ./$(DEPDIR)/fchmodat.Po
-include ./$(DEPDIR)/fchown.Po
-include ./$(DEPDIR)/fchown32.Po
-include ./$(DEPDIR)/fchownat.Po
-include ./$(DEPDIR)/fcntl.Po
-include ./$(DEPDIR)/fcntl64.Po
-include ./$(DEPDIR)/fdatasync.Po
-include ./$(DEPDIR)/file_handle.Po
-include ./$(DEPDIR)/file_ioctl.Po
-include ./$(DEPDIR)/filter-unavailable.Po
-include ./$(DEPDIR)/finit_module.Po
-include ./$(DEPDIR)/flock.Po
-include ./$(DEPDIR)/fork-f.Po
-include ./$(DEPDIR)/fstat.Po
-include ./$(DEPDIR)/fstat64-fstat64.Po
-include ./$(DEPDIR)/fstatat64-fstatat64.Po
-include ./$(DEPDIR)/fstatfs.Po
-include ./$(DEPDIR)/fstatfs64.Po
-include ./$(DEPDIR)/fsync.Po
-include ./$(DEPDIR)/ftruncate.Po
-include ./$(DEPDIR)/ftruncate64-ftruncate64.Po
-include ./$(DEPDIR)/futex.Po
-include ./$(DEPDIR)/futimesat.Po
-include ./$(DEPDIR)/get_mempolicy.Po
-include ./$(DEPDIR)/getcpu.Po
-include ./$(DEPDIR)/getcwd.Po
-include ./$(DEPDIR)/getdents.Po
-include ./$(DEPDIR)/getdents64.Po
-include ./$(DEPDIR)/getegid.Po
-include ./$(DEPDIR)/getegid32.Po
-include ./$(DEPDIR)/geteuid.Po
-include ./$(DEPDIR)/geteuid32.Po
-include ./$(DEPDIR)/getgid.Po
-include ./$(DEPDIR)/getgid32.Po
-include ./$(DEPDIR)/getgroups.Po
-include ./$(DEPDIR)/getgroups32.Po
-include ./$(DEPDIR)/getpeername.Po
-include ./$(DEPDIR)/getpgrp.Po
-include ./$(DEPDIR)/getpid.Po
-include ./$(DEPDIR)/getppid.Po
-include ./$(DEPDIR)/getrandom.Po
-include ./$(DEPDIR)/getresgid.Po
-include ./$(DEPDIR)/getresgid32.Po
-include ./$(DEPDIR)/getresuid.Po
-include ./$(DEPDIR)/getresuid32.Po
-include ./$(DEPDIR)/getrlimit.Po
-include ./$(DEPDIR)/getrusage.Po
-include ./$(DEPDIR)/getsid.Po
-include ./$(DEPDIR)/getsockname.Po
-include ./$(DEPDIR)/gettid.Po
-include ./$(DEPDIR)/getuid.Po
-include ./$(DEPDIR)/getuid32.Po
-include ./$(DEPDIR)/getxxid.Po
-include ./$(DEPDIR)/inet-cmsg.Po
-include ./$(DEPDIR)/init_module.Po
-include ./$(DEPDIR)/inotify.Po
-include ./$(DEPDIR)/inotify_init1.Po
-include ./$(DEPDIR)/int_0x80.Po
-include ./$(DEPDIR)/ioctl.Po
-include ./$(DEPDIR)/ioctl_block.Po
-include ./$(DEPDIR)/ioctl_dm-v.Po
-include ./$(DEPDIR)/ioctl_dm.Po
-include ./$(DEPDIR)/ioctl_evdev-v.Po
-include ./$(DEPDIR)/ioctl_evdev.Po
-include ./$(DEPDIR)/ioctl_loop-nv.Po
-include ./$(DEPDIR)/ioctl_loop-v.Po
-include ./$(DEPDIR)/ioctl_loop.Po
-include ./$(DEPDIR)/ioctl_mtd.Po
-include ./$(DEPDIR)/ioctl_nsfs.Po
-include ./$(DEPDIR)/ioctl_rtc-v.Po
-include ./$(DEPDIR)/ioctl_rtc.Po
-include ./$(DEPDIR)/ioctl_scsi.Po
-include ./$(DEPDIR)/ioctl_sg_io_v3.Po
-include ./$(DEPDIR)/ioctl_sg_io_v4.Po
-include ./$(DEPDIR)/ioctl_sock_gifconf.Po
-include ./$(DEPDIR)/ioctl_uffdio.Po
-include ./$(DEPDIR)/ioctl_v4l2.Po
-include ./$(DEPDIR)/ioperm.Po
-include ./$(DEPDIR)/iopl.Po
-include ./$(DEPDIR)/ioprio.Po
-include ./$(DEPDIR)/ip_mreq.Po
-include ./$(DEPDIR)/ipc.Po
-include ./$(DEPDIR)/ipc_msg.Po
-include ./$(DEPDIR)/ipc_msgbuf.Po
-include ./$(DEPDIR)/ipc_sem.Po
-include ./$(DEPDIR)/ipc_shm.Po
-include ./$(DEPDIR)/kcmp.Po
-include ./$(DEPDIR)/kexec_file_load.Po
-include ./$(DEPDIR)/kexec_load.Po
-include ./$(DEPDIR)/keyctl.Po
-include ./$(DEPDIR)/kill.Po
-include ./$(DEPDIR)/ksysent.Po
-include ./$(DEPDIR)/lchown.Po
-include ./$(DEPDIR)/lchown32.Po
-include ./$(DEPDIR)/libtests_a-errno2name.Po
-include ./$(DEPDIR)/libtests_a-error_msg.Po
-include ./$(DEPDIR)/libtests_a-fill_memory.Po
-include ./$(DEPDIR)/libtests_a-get_page_size.Po
-include ./$(DEPDIR)/libtests_a-get_sigset_size.Po
-include ./$(DEPDIR)/libtests_a-hexdump_strdup.Po
-include ./$(DEPDIR)/libtests_a-hexquote_strndup.Po
-include ./$(DEPDIR)/libtests_a-inode_of_sockfd.Po
-include ./$(DEPDIR)/libtests_a-libmmsg.Po
-include ./$(DEPDIR)/libtests_a-libsocketcall.Po
-include ./$(DEPDIR)/libtests_a-overflowuid.Po
-include ./$(DEPDIR)/libtests_a-pipe_maxfd.Po
-include ./$(DEPDIR)/libtests_a-print_quoted_string.Po
-include ./$(DEPDIR)/libtests_a-print_time.Po
-include ./$(DEPDIR)/libtests_a-printflags.Po
-include ./$(DEPDIR)/libtests_a-printxval.Po
-include ./$(DEPDIR)/libtests_a-signal2name.Po
-include ./$(DEPDIR)/libtests_a-skip_unavailable.Po
-include ./$(DEPDIR)/libtests_a-sprintrc.Po
-include ./$(DEPDIR)/libtests_a-tail_alloc.Po
-include ./$(DEPDIR)/libtests_a-tprintf.Po
-include ./$(DEPDIR)/link.Po
-include ./$(DEPDIR)/linkat.Po
-include ./$(DEPDIR)/llseek.Po
-include ./$(DEPDIR)/lookup_dcookie.Po
-include ./$(DEPDIR)/lseek.Po
-include ./$(DEPDIR)/lstat.Po
-include ./$(DEPDIR)/lstat64-lstat64.Po
-include ./$(DEPDIR)/madvise.Po
-include ./$(DEPDIR)/mbind.Po
-include ./$(DEPDIR)/membarrier.Po
-include ./$(DEPDIR)/memfd_create.Po
-include ./$(DEPDIR)/migrate_pages.Po
-include ./$(DEPDIR)/mincore.Po
-include ./$(DEPDIR)/mkdir.Po
-include ./$(DEPDIR)/mkdirat.Po
-include ./$(DEPDIR)/mknod.Po
-include ./$(DEPDIR)/mknodat.Po
-include ./$(DEPDIR)/mlock.Po
-include ./$(DEPDIR)/mlock2.Po
-include ./$(DEPDIR)/mlockall.Po
-include ./$(DEPDIR)/mmap.Po
-include ./$(DEPDIR)/mmap64-mmap64.Po
-include ./$(DEPDIR)/mmsg-silent.Po
-include ./$(DEPDIR)/mmsg.Po
-include ./$(DEPDIR)/mmsg_name-v.Po
-include ./$(DEPDIR)/mmsg_name.Po
-include ./$(DEPDIR)/mount.Po
-include ./$(DEPDIR)/move_pages.Po
-include ./$(DEPDIR)/mq.Po
-include ./$(DEPDIR)/mq_sendrecv-read.Po
-include ./$(DEPDIR)/mq_sendrecv-write.Po
-include ./$(DEPDIR)/mq_sendrecv.Po
-include ./$(DEPDIR)/msg_control-v.Po
-include ./$(DEPDIR)/msg_control.Po
-include ./$(DEPDIR)/msg_name.Po
-include ./$(DEPDIR)/munlockall.Po
-include ./$(DEPDIR)/nanosleep.Po
-include ./$(DEPDIR)/net-accept-connect.Po
-include ./$(DEPDIR)/net-icmp_filter.Po
-include ./$(DEPDIR)/net-sockaddr.Po
-include ./$(DEPDIR)/net-y-unix.Po
-include ./$(DEPDIR)/net-yy-inet.Po
-include ./$(DEPDIR)/net-yy-netlink.Po
-include ./$(DEPDIR)/net-yy-unix.Po
-include ./$(DEPDIR)/netlink_inet_diag.Po
-include ./$(DEPDIR)/netlink_netlink_diag.Po
-include ./$(DEPDIR)/netlink_protocol.Po
-include ./$(DEPDIR)/netlink_unix_diag.Po
-include ./$(DEPDIR)/newfstatat-newfstatat.Po
-include ./$(DEPDIR)/nsyscalls.Po
-include ./$(DEPDIR)/old_mmap.Po
-include ./$(DEPDIR)/oldfstat.Po
-include ./$(DEPDIR)/oldlstat.Po
-include ./$(DEPDIR)/oldselect.Po
-include ./$(DEPDIR)/oldstat.Po
-include ./$(DEPDIR)/open.Po
-include ./$(DEPDIR)/openat.Po
-include ./$(DEPDIR)/osf_utimes.Po
-include ./$(DEPDIR)/pause.Po
-include ./$(DEPDIR)/pc.Po
-include ./$(DEPDIR)/perf_event_open.Po
-include ./$(DEPDIR)/perf_event_open_nonverbose.Po
-include ./$(DEPDIR)/perf_event_open_unabbrev.Po
-include ./$(DEPDIR)/personality.Po
-include ./$(DEPDIR)/pipe.Po
-include ./$(DEPDIR)/pipe2.Po
-include ./$(DEPDIR)/pkey_alloc.Po
-include ./$(DEPDIR)/pkey_free.Po
-include ./$(DEPDIR)/pkey_mprotect.Po
-include ./$(DEPDIR)/poll.Po
-include ./$(DEPDIR)/ppoll-v.Po
-include ./$(DEPDIR)/ppoll.Po
-include ./$(DEPDIR)/prctl-arg2-intptr.Po
-include ./$(DEPDIR)/prctl-dumpable.Po
-include ./$(DEPDIR)/prctl-name.Po
-include ./$(DEPDIR)/prctl-no-args.Po
-include ./$(DEPDIR)/prctl-pdeathsig.Po
-include ./$(DEPDIR)/prctl-seccomp-filter-v.Po
-include ./$(DEPDIR)/prctl-seccomp-strict.Po
-include ./$(DEPDIR)/prctl-securebits.Po
-include ./$(DEPDIR)/prctl-tid_address.Po
-include ./$(DEPDIR)/prctl-tsc.Po
-include ./$(DEPDIR)/pread64_pwrite64-pread64-pwrite64.Po
-include ./$(DEPDIR)/preadv-preadv.Po
-include ./$(DEPDIR)/preadv2-pwritev2.Po
-include ./$(DEPDIR)/preadv_pwritev-preadv-pwritev.Po
-include ./$(DEPDIR)/print_maxfd.Po
-include ./$(DEPDIR)/printstr.Po
-include ./$(DEPDIR)/prlimit64.Po
-include ./$(DEPDIR)/process_vm_readv.Po
-include ./$(DEPDIR)/process_vm_writev.Po
-include ./$(DEPDIR)/pselect6.Po
-include ./$(DEPDIR)/ptrace.Po
-include ./$(DEPDIR)/pwritev-pwritev.Po
-include ./$(DEPDIR)/qual_fault.Po
-include ./$(DEPDIR)/qual_inject-error-signal.Po
-include ./$(DEPDIR)/qual_inject-retval.Po
-include ./$(DEPDIR)/qual_inject-signal.Po
-include ./$(DEPDIR)/qual_signal.Po
-include ./$(DEPDIR)/quotactl-v.Po
-include ./$(DEPDIR)/quotactl-xfs-v.Po
-include ./$(DEPDIR)/quotactl-xfs.Po
-include ./$(DEPDIR)/quotactl.Po
-include ./$(DEPDIR)/read-write.Po
-include ./$(DEPDIR)/readahead.Po
-include ./$(DEPDIR)/readdir.Po
-include ./$(DEPDIR)/readlink.Po
-include ./$(DEPDIR)/readlinkat.Po
-include ./$(DEPDIR)/readv.Po
-include ./$(DEPDIR)/reboot.Po
-include ./$(DEPDIR)/recvfrom.Po
-include ./$(DEPDIR)/recvmmsg-timeout.Po
-include ./$(DEPDIR)/recvmsg.Po
-include ./$(DEPDIR)/redirect-fds.Po
-include ./$(DEPDIR)/remap_file_pages.Po
-include ./$(DEPDIR)/rename.Po
-include ./$(DEPDIR)/renameat.Po
-include ./$(DEPDIR)/renameat2.Po
-include ./$(DEPDIR)/request_key.Po
-include ./$(DEPDIR)/restart_syscall.Po
-include ./$(DEPDIR)/rmdir.Po
-include ./$(DEPDIR)/rt_sigpending.Po
-include ./$(DEPDIR)/rt_sigprocmask.Po
-include ./$(DEPDIR)/rt_sigqueueinfo.Po
-include ./$(DEPDIR)/rt_sigreturn.Po
-include ./$(DEPDIR)/rt_sigsuspend.Po
-include ./$(DEPDIR)/rt_sigtimedwait.Po
-include ./$(DEPDIR)/rt_tgsigqueueinfo.Po
-include ./$(DEPDIR)/sched_get_priority_mxx.Po
-include ./$(DEPDIR)/sched_rr_get_interval.Po
-include ./$(DEPDIR)/sched_xetaffinity.Po
-include ./$(DEPDIR)/sched_xetattr.Po
-include ./$(DEPDIR)/sched_xetparam.Po
-include ./$(DEPDIR)/sched_xetscheduler.Po
-include ./$(DEPDIR)/sched_yield.Po
-include ./$(DEPDIR)/scm_rights.Po
-include ./$(DEPDIR)/seccomp-filter-v.Po
-include ./$(DEPDIR)/seccomp-filter.Po
-include ./$(DEPDIR)/seccomp-strict.Po
-include ./$(DEPDIR)/select.Po
-include ./$(DEPDIR)/semop.Po
-include ./$(DEPDIR)/sendfile.Po
-include ./$(DEPDIR)/sendfile64.Po
-include ./$(DEPDIR)/set_mempolicy.Po
-include ./$(DEPDIR)/set_ptracer_any.Po
-include ./$(DEPDIR)/setdomainname.Po
-include ./$(DEPDIR)/setfsgid.Po
-include ./$(DEPDIR)/setfsgid32.Po
-include ./$(DEPDIR)/setfsuid.Po
-include ./$(DEPDIR)/setfsuid32.Po
-include ./$(DEPDIR)/setgid.Po
-include ./$(DEPDIR)/setgid32.Po
-include ./$(DEPDIR)/setgroups.Po
-include ./$(DEPDIR)/setgroups32.Po
-include ./$(DEPDIR)/sethostname.Po
-include ./$(DEPDIR)/setns.Po
-include ./$(DEPDIR)/setregid.Po
-include ./$(DEPDIR)/setregid32.Po
-include ./$(DEPDIR)/setresgid.Po
-include ./$(DEPDIR)/setresgid32.Po
-include ./$(DEPDIR)/setresuid.Po
-include ./$(DEPDIR)/setresuid32.Po
-include ./$(DEPDIR)/setreuid.Po
-include ./$(DEPDIR)/setreuid32.Po
-include ./$(DEPDIR)/setrlimit.Po
-include ./$(DEPDIR)/setuid.Po
-include ./$(DEPDIR)/setuid32.Po
-include ./$(DEPDIR)/shmxt.Po
-include ./$(DEPDIR)/shutdown.Po
-include ./$(DEPDIR)/sigaction.Po
-include ./$(DEPDIR)/sigaltstack.Po
-include ./$(DEPDIR)/siginfo.Po
-include ./$(DEPDIR)/signal_receive.Po
-include ./$(DEPDIR)/signalfd4.Po
-include ./$(DEPDIR)/sigreturn.Po
-include ./$(DEPDIR)/sigsuspend.Po
-include ./$(DEPDIR)/sleep.Po
-include ./$(DEPDIR)/socketcall.Po
-include ./$(DEPDIR)/splice.Po
-include ./$(DEPDIR)/stack-fcall-0.Po
-include ./$(DEPDIR)/stack-fcall-1.Po
-include ./$(DEPDIR)/stack-fcall-2.Po
-include ./$(DEPDIR)/stack-fcall-3.Po
-include ./$(DEPDIR)/stack-fcall.Po
-include ./$(DEPDIR)/stat.Po
-include ./$(DEPDIR)/stat64-stat64.Po
-include ./$(DEPDIR)/statfs-statfs.Po
-include ./$(DEPDIR)/statfs64.Po
-include ./$(DEPDIR)/statx.Po
-include ./$(DEPDIR)/swap.Po
-include ./$(DEPDIR)/sxetmask.Po
-include ./$(DEPDIR)/symlink.Po
-include ./$(DEPDIR)/symlinkat.Po
-include ./$(DEPDIR)/sync.Po
-include ./$(DEPDIR)/sync_file_range.Po
-include ./$(DEPDIR)/sync_file_range2.Po
-include ./$(DEPDIR)/sysinfo.Po
-include ./$(DEPDIR)/syslog.Po
-include ./$(DEPDIR)/tee.Po
-include ./$(DEPDIR)/threads-execve.Po
-include ./$(DEPDIR)/time.Po
-include ./$(DEPDIR)/timer_create.Po
-include ./$(DEPDIR)/timer_xettime.Po
-include ./$(DEPDIR)/timerfd_xettime.Po
-include ./$(DEPDIR)/times-fail.Po
-include ./$(DEPDIR)/times.Po
-include ./$(DEPDIR)/truncate.Po
-include ./$(DEPDIR)/truncate64-truncate64.Po
-include ./$(DEPDIR)/ugetrlimit.Po
-include ./$(DEPDIR)/uio-uio.Po
-include ./$(DEPDIR)/umask.Po
-include ./$(DEPDIR)/umount.Po
-include ./$(DEPDIR)/umount2.Po
-include ./$(DEPDIR)/umoven-illptr.Po
-include ./$(DEPDIR)/umovestr-illptr.Po
-include ./$(DEPDIR)/umovestr.Po
-include ./$(DEPDIR)/umovestr2.Po
-include ./$(DEPDIR)/umovestr3.Po
-include ./$(DEPDIR)/uname.Po
-include ./$(DEPDIR)/unix-pair-send-recv.Po
-include ./$(DEPDIR)/unix-pair-sendto-recvfrom.Po
-include ./$(DEPDIR)/unlink.Po
-include ./$(DEPDIR)/unlinkat.Po
-include ./$(DEPDIR)/unshare.Po
-include ./$(DEPDIR)/userfaultfd.Po
-include ./$(DEPDIR)/ustat.Po
-include ./$(DEPDIR)/utime.Po
-include ./$(DEPDIR)/utimensat.Po
-include ./$(DEPDIR)/utimes.Po
-include ./$(DEPDIR)/vfork-f.Po
-include ./$(DEPDIR)/vhangup.Po
-include ./$(DEPDIR)/vmsplice.Po
-include ./$(DEPDIR)/wait4-v.Po
-include ./$(DEPDIR)/wait4.Po
-include ./$(DEPDIR)/waitid-v.Po
-include ./$(DEPDIR)/waitid.Po
-include ./$(DEPDIR)/waitpid.Po
-include ./$(DEPDIR)/xattr-strings.Po
-include ./$(DEPDIR)/xattr.Po
-include ./$(DEPDIR)/xet_robust_list.Po
-include ./$(DEPDIR)/xetitimer.Po
-include ./$(DEPDIR)/xetpgid.Po
-include ./$(DEPDIR)/xetpriority.Po
-include ./$(DEPDIR)/xettimeofday.Po
-
-.c.o:
-	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-#	$(AM_V_CC)source='$<' object='$@' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(COMPILE) -c -o $@ $<
-
-.c.obj:
-	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-#	$(AM_V_CC)source='$<' object='$@' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-libtests_a-errno2name.o: errno2name.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-errno2name.o -MD -MP -MF $(DEPDIR)/libtests_a-errno2name.Tpo -c -o libtests_a-errno2name.o `test -f 'errno2name.c' || echo '$(srcdir)/'`errno2name.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-errno2name.Tpo $(DEPDIR)/libtests_a-errno2name.Po
-#	$(AM_V_CC)source='errno2name.c' object='libtests_a-errno2name.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-errno2name.o `test -f 'errno2name.c' || echo '$(srcdir)/'`errno2name.c
-
-libtests_a-errno2name.obj: errno2name.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-errno2name.obj -MD -MP -MF $(DEPDIR)/libtests_a-errno2name.Tpo -c -o libtests_a-errno2name.obj `if test -f 'errno2name.c'; then $(CYGPATH_W) 'errno2name.c'; else $(CYGPATH_W) '$(srcdir)/errno2name.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-errno2name.Tpo $(DEPDIR)/libtests_a-errno2name.Po
-#	$(AM_V_CC)source='errno2name.c' object='libtests_a-errno2name.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-errno2name.obj `if test -f 'errno2name.c'; then $(CYGPATH_W) 'errno2name.c'; else $(CYGPATH_W) '$(srcdir)/errno2name.c'; fi`
-
-libtests_a-error_msg.o: error_msg.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-error_msg.o -MD -MP -MF $(DEPDIR)/libtests_a-error_msg.Tpo -c -o libtests_a-error_msg.o `test -f 'error_msg.c' || echo '$(srcdir)/'`error_msg.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-error_msg.Tpo $(DEPDIR)/libtests_a-error_msg.Po
-#	$(AM_V_CC)source='error_msg.c' object='libtests_a-error_msg.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-error_msg.o `test -f 'error_msg.c' || echo '$(srcdir)/'`error_msg.c
-
-libtests_a-error_msg.obj: error_msg.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-error_msg.obj -MD -MP -MF $(DEPDIR)/libtests_a-error_msg.Tpo -c -o libtests_a-error_msg.obj `if test -f 'error_msg.c'; then $(CYGPATH_W) 'error_msg.c'; else $(CYGPATH_W) '$(srcdir)/error_msg.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-error_msg.Tpo $(DEPDIR)/libtests_a-error_msg.Po
-#	$(AM_V_CC)source='error_msg.c' object='libtests_a-error_msg.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-error_msg.obj `if test -f 'error_msg.c'; then $(CYGPATH_W) 'error_msg.c'; else $(CYGPATH_W) '$(srcdir)/error_msg.c'; fi`
-
-libtests_a-fill_memory.o: fill_memory.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-fill_memory.o -MD -MP -MF $(DEPDIR)/libtests_a-fill_memory.Tpo -c -o libtests_a-fill_memory.o `test -f 'fill_memory.c' || echo '$(srcdir)/'`fill_memory.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-fill_memory.Tpo $(DEPDIR)/libtests_a-fill_memory.Po
-#	$(AM_V_CC)source='fill_memory.c' object='libtests_a-fill_memory.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-fill_memory.o `test -f 'fill_memory.c' || echo '$(srcdir)/'`fill_memory.c
-
-libtests_a-fill_memory.obj: fill_memory.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-fill_memory.obj -MD -MP -MF $(DEPDIR)/libtests_a-fill_memory.Tpo -c -o libtests_a-fill_memory.obj `if test -f 'fill_memory.c'; then $(CYGPATH_W) 'fill_memory.c'; else $(CYGPATH_W) '$(srcdir)/fill_memory.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-fill_memory.Tpo $(DEPDIR)/libtests_a-fill_memory.Po
-#	$(AM_V_CC)source='fill_memory.c' object='libtests_a-fill_memory.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-fill_memory.obj `if test -f 'fill_memory.c'; then $(CYGPATH_W) 'fill_memory.c'; else $(CYGPATH_W) '$(srcdir)/fill_memory.c'; fi`
-
-libtests_a-get_page_size.o: get_page_size.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-get_page_size.o -MD -MP -MF $(DEPDIR)/libtests_a-get_page_size.Tpo -c -o libtests_a-get_page_size.o `test -f 'get_page_size.c' || echo '$(srcdir)/'`get_page_size.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-get_page_size.Tpo $(DEPDIR)/libtests_a-get_page_size.Po
-#	$(AM_V_CC)source='get_page_size.c' object='libtests_a-get_page_size.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-get_page_size.o `test -f 'get_page_size.c' || echo '$(srcdir)/'`get_page_size.c
-
-libtests_a-get_page_size.obj: get_page_size.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-get_page_size.obj -MD -MP -MF $(DEPDIR)/libtests_a-get_page_size.Tpo -c -o libtests_a-get_page_size.obj `if test -f 'get_page_size.c'; then $(CYGPATH_W) 'get_page_size.c'; else $(CYGPATH_W) '$(srcdir)/get_page_size.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-get_page_size.Tpo $(DEPDIR)/libtests_a-get_page_size.Po
-#	$(AM_V_CC)source='get_page_size.c' object='libtests_a-get_page_size.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-get_page_size.obj `if test -f 'get_page_size.c'; then $(CYGPATH_W) 'get_page_size.c'; else $(CYGPATH_W) '$(srcdir)/get_page_size.c'; fi`
-
-libtests_a-get_sigset_size.o: get_sigset_size.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-get_sigset_size.o -MD -MP -MF $(DEPDIR)/libtests_a-get_sigset_size.Tpo -c -o libtests_a-get_sigset_size.o `test -f 'get_sigset_size.c' || echo '$(srcdir)/'`get_sigset_size.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-get_sigset_size.Tpo $(DEPDIR)/libtests_a-get_sigset_size.Po
-#	$(AM_V_CC)source='get_sigset_size.c' object='libtests_a-get_sigset_size.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-get_sigset_size.o `test -f 'get_sigset_size.c' || echo '$(srcdir)/'`get_sigset_size.c
-
-libtests_a-get_sigset_size.obj: get_sigset_size.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-get_sigset_size.obj -MD -MP -MF $(DEPDIR)/libtests_a-get_sigset_size.Tpo -c -o libtests_a-get_sigset_size.obj `if test -f 'get_sigset_size.c'; then $(CYGPATH_W) 'get_sigset_size.c'; else $(CYGPATH_W) '$(srcdir)/get_sigset_size.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-get_sigset_size.Tpo $(DEPDIR)/libtests_a-get_sigset_size.Po
-#	$(AM_V_CC)source='get_sigset_size.c' object='libtests_a-get_sigset_size.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-get_sigset_size.obj `if test -f 'get_sigset_size.c'; then $(CYGPATH_W) 'get_sigset_size.c'; else $(CYGPATH_W) '$(srcdir)/get_sigset_size.c'; fi`
-
-libtests_a-hexdump_strdup.o: hexdump_strdup.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-hexdump_strdup.o -MD -MP -MF $(DEPDIR)/libtests_a-hexdump_strdup.Tpo -c -o libtests_a-hexdump_strdup.o `test -f 'hexdump_strdup.c' || echo '$(srcdir)/'`hexdump_strdup.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-hexdump_strdup.Tpo $(DEPDIR)/libtests_a-hexdump_strdup.Po
-#	$(AM_V_CC)source='hexdump_strdup.c' object='libtests_a-hexdump_strdup.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-hexdump_strdup.o `test -f 'hexdump_strdup.c' || echo '$(srcdir)/'`hexdump_strdup.c
-
-libtests_a-hexdump_strdup.obj: hexdump_strdup.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-hexdump_strdup.obj -MD -MP -MF $(DEPDIR)/libtests_a-hexdump_strdup.Tpo -c -o libtests_a-hexdump_strdup.obj `if test -f 'hexdump_strdup.c'; then $(CYGPATH_W) 'hexdump_strdup.c'; else $(CYGPATH_W) '$(srcdir)/hexdump_strdup.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-hexdump_strdup.Tpo $(DEPDIR)/libtests_a-hexdump_strdup.Po
-#	$(AM_V_CC)source='hexdump_strdup.c' object='libtests_a-hexdump_strdup.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-hexdump_strdup.obj `if test -f 'hexdump_strdup.c'; then $(CYGPATH_W) 'hexdump_strdup.c'; else $(CYGPATH_W) '$(srcdir)/hexdump_strdup.c'; fi`
-
-libtests_a-hexquote_strndup.o: hexquote_strndup.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-hexquote_strndup.o -MD -MP -MF $(DEPDIR)/libtests_a-hexquote_strndup.Tpo -c -o libtests_a-hexquote_strndup.o `test -f 'hexquote_strndup.c' || echo '$(srcdir)/'`hexquote_strndup.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-hexquote_strndup.Tpo $(DEPDIR)/libtests_a-hexquote_strndup.Po
-#	$(AM_V_CC)source='hexquote_strndup.c' object='libtests_a-hexquote_strndup.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-hexquote_strndup.o `test -f 'hexquote_strndup.c' || echo '$(srcdir)/'`hexquote_strndup.c
-
-libtests_a-hexquote_strndup.obj: hexquote_strndup.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-hexquote_strndup.obj -MD -MP -MF $(DEPDIR)/libtests_a-hexquote_strndup.Tpo -c -o libtests_a-hexquote_strndup.obj `if test -f 'hexquote_strndup.c'; then $(CYGPATH_W) 'hexquote_strndup.c'; else $(CYGPATH_W) '$(srcdir)/hexquote_strndup.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-hexquote_strndup.Tpo $(DEPDIR)/libtests_a-hexquote_strndup.Po
-#	$(AM_V_CC)source='hexquote_strndup.c' object='libtests_a-hexquote_strndup.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-hexquote_strndup.obj `if test -f 'hexquote_strndup.c'; then $(CYGPATH_W) 'hexquote_strndup.c'; else $(CYGPATH_W) '$(srcdir)/hexquote_strndup.c'; fi`
-
-libtests_a-inode_of_sockfd.o: inode_of_sockfd.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-inode_of_sockfd.o -MD -MP -MF $(DEPDIR)/libtests_a-inode_of_sockfd.Tpo -c -o libtests_a-inode_of_sockfd.o `test -f 'inode_of_sockfd.c' || echo '$(srcdir)/'`inode_of_sockfd.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-inode_of_sockfd.Tpo $(DEPDIR)/libtests_a-inode_of_sockfd.Po
-#	$(AM_V_CC)source='inode_of_sockfd.c' object='libtests_a-inode_of_sockfd.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-inode_of_sockfd.o `test -f 'inode_of_sockfd.c' || echo '$(srcdir)/'`inode_of_sockfd.c
-
-libtests_a-inode_of_sockfd.obj: inode_of_sockfd.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-inode_of_sockfd.obj -MD -MP -MF $(DEPDIR)/libtests_a-inode_of_sockfd.Tpo -c -o libtests_a-inode_of_sockfd.obj `if test -f 'inode_of_sockfd.c'; then $(CYGPATH_W) 'inode_of_sockfd.c'; else $(CYGPATH_W) '$(srcdir)/inode_of_sockfd.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-inode_of_sockfd.Tpo $(DEPDIR)/libtests_a-inode_of_sockfd.Po
-#	$(AM_V_CC)source='inode_of_sockfd.c' object='libtests_a-inode_of_sockfd.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-inode_of_sockfd.obj `if test -f 'inode_of_sockfd.c'; then $(CYGPATH_W) 'inode_of_sockfd.c'; else $(CYGPATH_W) '$(srcdir)/inode_of_sockfd.c'; fi`
-
-libtests_a-libmmsg.o: libmmsg.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-libmmsg.o -MD -MP -MF $(DEPDIR)/libtests_a-libmmsg.Tpo -c -o libtests_a-libmmsg.o `test -f 'libmmsg.c' || echo '$(srcdir)/'`libmmsg.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-libmmsg.Tpo $(DEPDIR)/libtests_a-libmmsg.Po
-#	$(AM_V_CC)source='libmmsg.c' object='libtests_a-libmmsg.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-libmmsg.o `test -f 'libmmsg.c' || echo '$(srcdir)/'`libmmsg.c
-
-libtests_a-libmmsg.obj: libmmsg.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-libmmsg.obj -MD -MP -MF $(DEPDIR)/libtests_a-libmmsg.Tpo -c -o libtests_a-libmmsg.obj `if test -f 'libmmsg.c'; then $(CYGPATH_W) 'libmmsg.c'; else $(CYGPATH_W) '$(srcdir)/libmmsg.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-libmmsg.Tpo $(DEPDIR)/libtests_a-libmmsg.Po
-#	$(AM_V_CC)source='libmmsg.c' object='libtests_a-libmmsg.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-libmmsg.obj `if test -f 'libmmsg.c'; then $(CYGPATH_W) 'libmmsg.c'; else $(CYGPATH_W) '$(srcdir)/libmmsg.c'; fi`
-
-libtests_a-libsocketcall.o: libsocketcall.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-libsocketcall.o -MD -MP -MF $(DEPDIR)/libtests_a-libsocketcall.Tpo -c -o libtests_a-libsocketcall.o `test -f 'libsocketcall.c' || echo '$(srcdir)/'`libsocketcall.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-libsocketcall.Tpo $(DEPDIR)/libtests_a-libsocketcall.Po
-#	$(AM_V_CC)source='libsocketcall.c' object='libtests_a-libsocketcall.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-libsocketcall.o `test -f 'libsocketcall.c' || echo '$(srcdir)/'`libsocketcall.c
-
-libtests_a-libsocketcall.obj: libsocketcall.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-libsocketcall.obj -MD -MP -MF $(DEPDIR)/libtests_a-libsocketcall.Tpo -c -o libtests_a-libsocketcall.obj `if test -f 'libsocketcall.c'; then $(CYGPATH_W) 'libsocketcall.c'; else $(CYGPATH_W) '$(srcdir)/libsocketcall.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-libsocketcall.Tpo $(DEPDIR)/libtests_a-libsocketcall.Po
-#	$(AM_V_CC)source='libsocketcall.c' object='libtests_a-libsocketcall.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-libsocketcall.obj `if test -f 'libsocketcall.c'; then $(CYGPATH_W) 'libsocketcall.c'; else $(CYGPATH_W) '$(srcdir)/libsocketcall.c'; fi`
-
-libtests_a-overflowuid.o: overflowuid.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-overflowuid.o -MD -MP -MF $(DEPDIR)/libtests_a-overflowuid.Tpo -c -o libtests_a-overflowuid.o `test -f 'overflowuid.c' || echo '$(srcdir)/'`overflowuid.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-overflowuid.Tpo $(DEPDIR)/libtests_a-overflowuid.Po
-#	$(AM_V_CC)source='overflowuid.c' object='libtests_a-overflowuid.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-overflowuid.o `test -f 'overflowuid.c' || echo '$(srcdir)/'`overflowuid.c
-
-libtests_a-overflowuid.obj: overflowuid.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-overflowuid.obj -MD -MP -MF $(DEPDIR)/libtests_a-overflowuid.Tpo -c -o libtests_a-overflowuid.obj `if test -f 'overflowuid.c'; then $(CYGPATH_W) 'overflowuid.c'; else $(CYGPATH_W) '$(srcdir)/overflowuid.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-overflowuid.Tpo $(DEPDIR)/libtests_a-overflowuid.Po
-#	$(AM_V_CC)source='overflowuid.c' object='libtests_a-overflowuid.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-overflowuid.obj `if test -f 'overflowuid.c'; then $(CYGPATH_W) 'overflowuid.c'; else $(CYGPATH_W) '$(srcdir)/overflowuid.c'; fi`
-
-libtests_a-pipe_maxfd.o: pipe_maxfd.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-pipe_maxfd.o -MD -MP -MF $(DEPDIR)/libtests_a-pipe_maxfd.Tpo -c -o libtests_a-pipe_maxfd.o `test -f 'pipe_maxfd.c' || echo '$(srcdir)/'`pipe_maxfd.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-pipe_maxfd.Tpo $(DEPDIR)/libtests_a-pipe_maxfd.Po
-#	$(AM_V_CC)source='pipe_maxfd.c' object='libtests_a-pipe_maxfd.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-pipe_maxfd.o `test -f 'pipe_maxfd.c' || echo '$(srcdir)/'`pipe_maxfd.c
-
-libtests_a-pipe_maxfd.obj: pipe_maxfd.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-pipe_maxfd.obj -MD -MP -MF $(DEPDIR)/libtests_a-pipe_maxfd.Tpo -c -o libtests_a-pipe_maxfd.obj `if test -f 'pipe_maxfd.c'; then $(CYGPATH_W) 'pipe_maxfd.c'; else $(CYGPATH_W) '$(srcdir)/pipe_maxfd.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-pipe_maxfd.Tpo $(DEPDIR)/libtests_a-pipe_maxfd.Po
-#	$(AM_V_CC)source='pipe_maxfd.c' object='libtests_a-pipe_maxfd.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-pipe_maxfd.obj `if test -f 'pipe_maxfd.c'; then $(CYGPATH_W) 'pipe_maxfd.c'; else $(CYGPATH_W) '$(srcdir)/pipe_maxfd.c'; fi`
-
-libtests_a-print_quoted_string.o: print_quoted_string.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-print_quoted_string.o -MD -MP -MF $(DEPDIR)/libtests_a-print_quoted_string.Tpo -c -o libtests_a-print_quoted_string.o `test -f 'print_quoted_string.c' || echo '$(srcdir)/'`print_quoted_string.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-print_quoted_string.Tpo $(DEPDIR)/libtests_a-print_quoted_string.Po
-#	$(AM_V_CC)source='print_quoted_string.c' object='libtests_a-print_quoted_string.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-print_quoted_string.o `test -f 'print_quoted_string.c' || echo '$(srcdir)/'`print_quoted_string.c
-
-libtests_a-print_quoted_string.obj: print_quoted_string.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-print_quoted_string.obj -MD -MP -MF $(DEPDIR)/libtests_a-print_quoted_string.Tpo -c -o libtests_a-print_quoted_string.obj `if test -f 'print_quoted_string.c'; then $(CYGPATH_W) 'print_quoted_string.c'; else $(CYGPATH_W) '$(srcdir)/print_quoted_string.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-print_quoted_string.Tpo $(DEPDIR)/libtests_a-print_quoted_string.Po
-#	$(AM_V_CC)source='print_quoted_string.c' object='libtests_a-print_quoted_string.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-print_quoted_string.obj `if test -f 'print_quoted_string.c'; then $(CYGPATH_W) 'print_quoted_string.c'; else $(CYGPATH_W) '$(srcdir)/print_quoted_string.c'; fi`
-
-libtests_a-print_time.o: print_time.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-print_time.o -MD -MP -MF $(DEPDIR)/libtests_a-print_time.Tpo -c -o libtests_a-print_time.o `test -f 'print_time.c' || echo '$(srcdir)/'`print_time.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-print_time.Tpo $(DEPDIR)/libtests_a-print_time.Po
-#	$(AM_V_CC)source='print_time.c' object='libtests_a-print_time.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-print_time.o `test -f 'print_time.c' || echo '$(srcdir)/'`print_time.c
-
-libtests_a-print_time.obj: print_time.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-print_time.obj -MD -MP -MF $(DEPDIR)/libtests_a-print_time.Tpo -c -o libtests_a-print_time.obj `if test -f 'print_time.c'; then $(CYGPATH_W) 'print_time.c'; else $(CYGPATH_W) '$(srcdir)/print_time.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-print_time.Tpo $(DEPDIR)/libtests_a-print_time.Po
-#	$(AM_V_CC)source='print_time.c' object='libtests_a-print_time.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-print_time.obj `if test -f 'print_time.c'; then $(CYGPATH_W) 'print_time.c'; else $(CYGPATH_W) '$(srcdir)/print_time.c'; fi`
-
-libtests_a-printflags.o: printflags.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printflags.o -MD -MP -MF $(DEPDIR)/libtests_a-printflags.Tpo -c -o libtests_a-printflags.o `test -f 'printflags.c' || echo '$(srcdir)/'`printflags.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printflags.Tpo $(DEPDIR)/libtests_a-printflags.Po
-#	$(AM_V_CC)source='printflags.c' object='libtests_a-printflags.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printflags.o `test -f 'printflags.c' || echo '$(srcdir)/'`printflags.c
-
-libtests_a-printflags.obj: printflags.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printflags.obj -MD -MP -MF $(DEPDIR)/libtests_a-printflags.Tpo -c -o libtests_a-printflags.obj `if test -f 'printflags.c'; then $(CYGPATH_W) 'printflags.c'; else $(CYGPATH_W) '$(srcdir)/printflags.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printflags.Tpo $(DEPDIR)/libtests_a-printflags.Po
-#	$(AM_V_CC)source='printflags.c' object='libtests_a-printflags.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printflags.obj `if test -f 'printflags.c'; then $(CYGPATH_W) 'printflags.c'; else $(CYGPATH_W) '$(srcdir)/printflags.c'; fi`
-
-libtests_a-printxval.o: printxval.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printxval.o -MD -MP -MF $(DEPDIR)/libtests_a-printxval.Tpo -c -o libtests_a-printxval.o `test -f 'printxval.c' || echo '$(srcdir)/'`printxval.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printxval.Tpo $(DEPDIR)/libtests_a-printxval.Po
-#	$(AM_V_CC)source='printxval.c' object='libtests_a-printxval.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printxval.o `test -f 'printxval.c' || echo '$(srcdir)/'`printxval.c
-
-libtests_a-printxval.obj: printxval.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printxval.obj -MD -MP -MF $(DEPDIR)/libtests_a-printxval.Tpo -c -o libtests_a-printxval.obj `if test -f 'printxval.c'; then $(CYGPATH_W) 'printxval.c'; else $(CYGPATH_W) '$(srcdir)/printxval.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printxval.Tpo $(DEPDIR)/libtests_a-printxval.Po
-#	$(AM_V_CC)source='printxval.c' object='libtests_a-printxval.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printxval.obj `if test -f 'printxval.c'; then $(CYGPATH_W) 'printxval.c'; else $(CYGPATH_W) '$(srcdir)/printxval.c'; fi`
-
-libtests_a-signal2name.o: signal2name.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-signal2name.o -MD -MP -MF $(DEPDIR)/libtests_a-signal2name.Tpo -c -o libtests_a-signal2name.o `test -f 'signal2name.c' || echo '$(srcdir)/'`signal2name.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-signal2name.Tpo $(DEPDIR)/libtests_a-signal2name.Po
-#	$(AM_V_CC)source='signal2name.c' object='libtests_a-signal2name.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-signal2name.o `test -f 'signal2name.c' || echo '$(srcdir)/'`signal2name.c
-
-libtests_a-signal2name.obj: signal2name.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-signal2name.obj -MD -MP -MF $(DEPDIR)/libtests_a-signal2name.Tpo -c -o libtests_a-signal2name.obj `if test -f 'signal2name.c'; then $(CYGPATH_W) 'signal2name.c'; else $(CYGPATH_W) '$(srcdir)/signal2name.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-signal2name.Tpo $(DEPDIR)/libtests_a-signal2name.Po
-#	$(AM_V_CC)source='signal2name.c' object='libtests_a-signal2name.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-signal2name.obj `if test -f 'signal2name.c'; then $(CYGPATH_W) 'signal2name.c'; else $(CYGPATH_W) '$(srcdir)/signal2name.c'; fi`
-
-libtests_a-skip_unavailable.o: skip_unavailable.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-skip_unavailable.o -MD -MP -MF $(DEPDIR)/libtests_a-skip_unavailable.Tpo -c -o libtests_a-skip_unavailable.o `test -f 'skip_unavailable.c' || echo '$(srcdir)/'`skip_unavailable.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-skip_unavailable.Tpo $(DEPDIR)/libtests_a-skip_unavailable.Po
-#	$(AM_V_CC)source='skip_unavailable.c' object='libtests_a-skip_unavailable.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-skip_unavailable.o `test -f 'skip_unavailable.c' || echo '$(srcdir)/'`skip_unavailable.c
-
-libtests_a-skip_unavailable.obj: skip_unavailable.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-skip_unavailable.obj -MD -MP -MF $(DEPDIR)/libtests_a-skip_unavailable.Tpo -c -o libtests_a-skip_unavailable.obj `if test -f 'skip_unavailable.c'; then $(CYGPATH_W) 'skip_unavailable.c'; else $(CYGPATH_W) '$(srcdir)/skip_unavailable.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-skip_unavailable.Tpo $(DEPDIR)/libtests_a-skip_unavailable.Po
-#	$(AM_V_CC)source='skip_unavailable.c' object='libtests_a-skip_unavailable.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-skip_unavailable.obj `if test -f 'skip_unavailable.c'; then $(CYGPATH_W) 'skip_unavailable.c'; else $(CYGPATH_W) '$(srcdir)/skip_unavailable.c'; fi`
-
-libtests_a-sprintrc.o: sprintrc.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-sprintrc.o -MD -MP -MF $(DEPDIR)/libtests_a-sprintrc.Tpo -c -o libtests_a-sprintrc.o `test -f 'sprintrc.c' || echo '$(srcdir)/'`sprintrc.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-sprintrc.Tpo $(DEPDIR)/libtests_a-sprintrc.Po
-#	$(AM_V_CC)source='sprintrc.c' object='libtests_a-sprintrc.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-sprintrc.o `test -f 'sprintrc.c' || echo '$(srcdir)/'`sprintrc.c
-
-libtests_a-sprintrc.obj: sprintrc.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-sprintrc.obj -MD -MP -MF $(DEPDIR)/libtests_a-sprintrc.Tpo -c -o libtests_a-sprintrc.obj `if test -f 'sprintrc.c'; then $(CYGPATH_W) 'sprintrc.c'; else $(CYGPATH_W) '$(srcdir)/sprintrc.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-sprintrc.Tpo $(DEPDIR)/libtests_a-sprintrc.Po
-#	$(AM_V_CC)source='sprintrc.c' object='libtests_a-sprintrc.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-sprintrc.obj `if test -f 'sprintrc.c'; then $(CYGPATH_W) 'sprintrc.c'; else $(CYGPATH_W) '$(srcdir)/sprintrc.c'; fi`
-
-libtests_a-tail_alloc.o: tail_alloc.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-tail_alloc.o -MD -MP -MF $(DEPDIR)/libtests_a-tail_alloc.Tpo -c -o libtests_a-tail_alloc.o `test -f 'tail_alloc.c' || echo '$(srcdir)/'`tail_alloc.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-tail_alloc.Tpo $(DEPDIR)/libtests_a-tail_alloc.Po
-#	$(AM_V_CC)source='tail_alloc.c' object='libtests_a-tail_alloc.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-tail_alloc.o `test -f 'tail_alloc.c' || echo '$(srcdir)/'`tail_alloc.c
-
-libtests_a-tail_alloc.obj: tail_alloc.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-tail_alloc.obj -MD -MP -MF $(DEPDIR)/libtests_a-tail_alloc.Tpo -c -o libtests_a-tail_alloc.obj `if test -f 'tail_alloc.c'; then $(CYGPATH_W) 'tail_alloc.c'; else $(CYGPATH_W) '$(srcdir)/tail_alloc.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-tail_alloc.Tpo $(DEPDIR)/libtests_a-tail_alloc.Po
-#	$(AM_V_CC)source='tail_alloc.c' object='libtests_a-tail_alloc.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-tail_alloc.obj `if test -f 'tail_alloc.c'; then $(CYGPATH_W) 'tail_alloc.c'; else $(CYGPATH_W) '$(srcdir)/tail_alloc.c'; fi`
-
-libtests_a-tprintf.o: tprintf.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-tprintf.o -MD -MP -MF $(DEPDIR)/libtests_a-tprintf.Tpo -c -o libtests_a-tprintf.o `test -f 'tprintf.c' || echo '$(srcdir)/'`tprintf.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-tprintf.Tpo $(DEPDIR)/libtests_a-tprintf.Po
-#	$(AM_V_CC)source='tprintf.c' object='libtests_a-tprintf.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-tprintf.o `test -f 'tprintf.c' || echo '$(srcdir)/'`tprintf.c
-
-libtests_a-tprintf.obj: tprintf.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-tprintf.obj -MD -MP -MF $(DEPDIR)/libtests_a-tprintf.Tpo -c -o libtests_a-tprintf.obj `if test -f 'tprintf.c'; then $(CYGPATH_W) 'tprintf.c'; else $(CYGPATH_W) '$(srcdir)/tprintf.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-tprintf.Tpo $(DEPDIR)/libtests_a-tprintf.Po
-#	$(AM_V_CC)source='tprintf.c' object='libtests_a-tprintf.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-tprintf.obj `if test -f 'tprintf.c'; then $(CYGPATH_W) 'tprintf.c'; else $(CYGPATH_W) '$(srcdir)/tprintf.c'; fi`
-
-fstat64-fstat64.o: fstat64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fstat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fstat64-fstat64.o -MD -MP -MF $(DEPDIR)/fstat64-fstat64.Tpo -c -o fstat64-fstat64.o `test -f 'fstat64.c' || echo '$(srcdir)/'`fstat64.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/fstat64-fstat64.Tpo $(DEPDIR)/fstat64-fstat64.Po
-#	$(AM_V_CC)source='fstat64.c' object='fstat64-fstat64.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fstat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fstat64-fstat64.o `test -f 'fstat64.c' || echo '$(srcdir)/'`fstat64.c
-
-fstat64-fstat64.obj: fstat64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fstat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fstat64-fstat64.obj -MD -MP -MF $(DEPDIR)/fstat64-fstat64.Tpo -c -o fstat64-fstat64.obj `if test -f 'fstat64.c'; then $(CYGPATH_W) 'fstat64.c'; else $(CYGPATH_W) '$(srcdir)/fstat64.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/fstat64-fstat64.Tpo $(DEPDIR)/fstat64-fstat64.Po
-#	$(AM_V_CC)source='fstat64.c' object='fstat64-fstat64.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fstat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fstat64-fstat64.obj `if test -f 'fstat64.c'; then $(CYGPATH_W) 'fstat64.c'; else $(CYGPATH_W) '$(srcdir)/fstat64.c'; fi`
-
-fstatat64-fstatat64.o: fstatat64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fstatat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fstatat64-fstatat64.o -MD -MP -MF $(DEPDIR)/fstatat64-fstatat64.Tpo -c -o fstatat64-fstatat64.o `test -f 'fstatat64.c' || echo '$(srcdir)/'`fstatat64.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/fstatat64-fstatat64.Tpo $(DEPDIR)/fstatat64-fstatat64.Po
-#	$(AM_V_CC)source='fstatat64.c' object='fstatat64-fstatat64.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fstatat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fstatat64-fstatat64.o `test -f 'fstatat64.c' || echo '$(srcdir)/'`fstatat64.c
-
-fstatat64-fstatat64.obj: fstatat64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fstatat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fstatat64-fstatat64.obj -MD -MP -MF $(DEPDIR)/fstatat64-fstatat64.Tpo -c -o fstatat64-fstatat64.obj `if test -f 'fstatat64.c'; then $(CYGPATH_W) 'fstatat64.c'; else $(CYGPATH_W) '$(srcdir)/fstatat64.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/fstatat64-fstatat64.Tpo $(DEPDIR)/fstatat64-fstatat64.Po
-#	$(AM_V_CC)source='fstatat64.c' object='fstatat64-fstatat64.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fstatat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fstatat64-fstatat64.obj `if test -f 'fstatat64.c'; then $(CYGPATH_W) 'fstatat64.c'; else $(CYGPATH_W) '$(srcdir)/fstatat64.c'; fi`
-
-ftruncate64-ftruncate64.o: ftruncate64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ftruncate64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ftruncate64-ftruncate64.o -MD -MP -MF $(DEPDIR)/ftruncate64-ftruncate64.Tpo -c -o ftruncate64-ftruncate64.o `test -f 'ftruncate64.c' || echo '$(srcdir)/'`ftruncate64.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/ftruncate64-ftruncate64.Tpo $(DEPDIR)/ftruncate64-ftruncate64.Po
-#	$(AM_V_CC)source='ftruncate64.c' object='ftruncate64-ftruncate64.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ftruncate64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ftruncate64-ftruncate64.o `test -f 'ftruncate64.c' || echo '$(srcdir)/'`ftruncate64.c
-
-ftruncate64-ftruncate64.obj: ftruncate64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ftruncate64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ftruncate64-ftruncate64.obj -MD -MP -MF $(DEPDIR)/ftruncate64-ftruncate64.Tpo -c -o ftruncate64-ftruncate64.obj `if test -f 'ftruncate64.c'; then $(CYGPATH_W) 'ftruncate64.c'; else $(CYGPATH_W) '$(srcdir)/ftruncate64.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/ftruncate64-ftruncate64.Tpo $(DEPDIR)/ftruncate64-ftruncate64.Po
-#	$(AM_V_CC)source='ftruncate64.c' object='ftruncate64-ftruncate64.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ftruncate64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ftruncate64-ftruncate64.obj `if test -f 'ftruncate64.c'; then $(CYGPATH_W) 'ftruncate64.c'; else $(CYGPATH_W) '$(srcdir)/ftruncate64.c'; fi`
-
-lstat64-lstat64.o: lstat64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lstat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lstat64-lstat64.o -MD -MP -MF $(DEPDIR)/lstat64-lstat64.Tpo -c -o lstat64-lstat64.o `test -f 'lstat64.c' || echo '$(srcdir)/'`lstat64.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/lstat64-lstat64.Tpo $(DEPDIR)/lstat64-lstat64.Po
-#	$(AM_V_CC)source='lstat64.c' object='lstat64-lstat64.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lstat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lstat64-lstat64.o `test -f 'lstat64.c' || echo '$(srcdir)/'`lstat64.c
-
-lstat64-lstat64.obj: lstat64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lstat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lstat64-lstat64.obj -MD -MP -MF $(DEPDIR)/lstat64-lstat64.Tpo -c -o lstat64-lstat64.obj `if test -f 'lstat64.c'; then $(CYGPATH_W) 'lstat64.c'; else $(CYGPATH_W) '$(srcdir)/lstat64.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/lstat64-lstat64.Tpo $(DEPDIR)/lstat64-lstat64.Po
-#	$(AM_V_CC)source='lstat64.c' object='lstat64-lstat64.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lstat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lstat64-lstat64.obj `if test -f 'lstat64.c'; then $(CYGPATH_W) 'lstat64.c'; else $(CYGPATH_W) '$(srcdir)/lstat64.c'; fi`
-
-mmap64-mmap64.o: mmap64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64-mmap64.o -MD -MP -MF $(DEPDIR)/mmap64-mmap64.Tpo -c -o mmap64-mmap64.o `test -f 'mmap64.c' || echo '$(srcdir)/'`mmap64.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/mmap64-mmap64.Tpo $(DEPDIR)/mmap64-mmap64.Po
-#	$(AM_V_CC)source='mmap64.c' object='mmap64-mmap64.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64-mmap64.o `test -f 'mmap64.c' || echo '$(srcdir)/'`mmap64.c
-
-mmap64-mmap64.obj: mmap64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64-mmap64.obj -MD -MP -MF $(DEPDIR)/mmap64-mmap64.Tpo -c -o mmap64-mmap64.obj `if test -f 'mmap64.c'; then $(CYGPATH_W) 'mmap64.c'; else $(CYGPATH_W) '$(srcdir)/mmap64.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/mmap64-mmap64.Tpo $(DEPDIR)/mmap64-mmap64.Po
-#	$(AM_V_CC)source='mmap64.c' object='mmap64-mmap64.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64-mmap64.obj `if test -f 'mmap64.c'; then $(CYGPATH_W) 'mmap64.c'; else $(CYGPATH_W) '$(srcdir)/mmap64.c'; fi`
-
-newfstatat-newfstatat.o: newfstatat.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(newfstatat_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT newfstatat-newfstatat.o -MD -MP -MF $(DEPDIR)/newfstatat-newfstatat.Tpo -c -o newfstatat-newfstatat.o `test -f 'newfstatat.c' || echo '$(srcdir)/'`newfstatat.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/newfstatat-newfstatat.Tpo $(DEPDIR)/newfstatat-newfstatat.Po
-#	$(AM_V_CC)source='newfstatat.c' object='newfstatat-newfstatat.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(newfstatat_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o newfstatat-newfstatat.o `test -f 'newfstatat.c' || echo '$(srcdir)/'`newfstatat.c
-
-newfstatat-newfstatat.obj: newfstatat.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(newfstatat_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT newfstatat-newfstatat.obj -MD -MP -MF $(DEPDIR)/newfstatat-newfstatat.Tpo -c -o newfstatat-newfstatat.obj `if test -f 'newfstatat.c'; then $(CYGPATH_W) 'newfstatat.c'; else $(CYGPATH_W) '$(srcdir)/newfstatat.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/newfstatat-newfstatat.Tpo $(DEPDIR)/newfstatat-newfstatat.Po
-#	$(AM_V_CC)source='newfstatat.c' object='newfstatat-newfstatat.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(newfstatat_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o newfstatat-newfstatat.obj `if test -f 'newfstatat.c'; then $(CYGPATH_W) 'newfstatat.c'; else $(CYGPATH_W) '$(srcdir)/newfstatat.c'; fi`
-
-pread64_pwrite64-pread64-pwrite64.o: pread64-pwrite64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pread64_pwrite64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pread64_pwrite64-pread64-pwrite64.o -MD -MP -MF $(DEPDIR)/pread64_pwrite64-pread64-pwrite64.Tpo -c -o pread64_pwrite64-pread64-pwrite64.o `test -f 'pread64-pwrite64.c' || echo '$(srcdir)/'`pread64-pwrite64.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/pread64_pwrite64-pread64-pwrite64.Tpo $(DEPDIR)/pread64_pwrite64-pread64-pwrite64.Po
-#	$(AM_V_CC)source='pread64-pwrite64.c' object='pread64_pwrite64-pread64-pwrite64.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pread64_pwrite64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pread64_pwrite64-pread64-pwrite64.o `test -f 'pread64-pwrite64.c' || echo '$(srcdir)/'`pread64-pwrite64.c
-
-pread64_pwrite64-pread64-pwrite64.obj: pread64-pwrite64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pread64_pwrite64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pread64_pwrite64-pread64-pwrite64.obj -MD -MP -MF $(DEPDIR)/pread64_pwrite64-pread64-pwrite64.Tpo -c -o pread64_pwrite64-pread64-pwrite64.obj `if test -f 'pread64-pwrite64.c'; then $(CYGPATH_W) 'pread64-pwrite64.c'; else $(CYGPATH_W) '$(srcdir)/pread64-pwrite64.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/pread64_pwrite64-pread64-pwrite64.Tpo $(DEPDIR)/pread64_pwrite64-pread64-pwrite64.Po
-#	$(AM_V_CC)source='pread64-pwrite64.c' object='pread64_pwrite64-pread64-pwrite64.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pread64_pwrite64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pread64_pwrite64-pread64-pwrite64.obj `if test -f 'pread64-pwrite64.c'; then $(CYGPATH_W) 'pread64-pwrite64.c'; else $(CYGPATH_W) '$(srcdir)/pread64-pwrite64.c'; fi`
-
-preadv-preadv.o: preadv.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(preadv_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT preadv-preadv.o -MD -MP -MF $(DEPDIR)/preadv-preadv.Tpo -c -o preadv-preadv.o `test -f 'preadv.c' || echo '$(srcdir)/'`preadv.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/preadv-preadv.Tpo $(DEPDIR)/preadv-preadv.Po
-#	$(AM_V_CC)source='preadv.c' object='preadv-preadv.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(preadv_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o preadv-preadv.o `test -f 'preadv.c' || echo '$(srcdir)/'`preadv.c
-
-preadv-preadv.obj: preadv.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(preadv_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT preadv-preadv.obj -MD -MP -MF $(DEPDIR)/preadv-preadv.Tpo -c -o preadv-preadv.obj `if test -f 'preadv.c'; then $(CYGPATH_W) 'preadv.c'; else $(CYGPATH_W) '$(srcdir)/preadv.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/preadv-preadv.Tpo $(DEPDIR)/preadv-preadv.Po
-#	$(AM_V_CC)source='preadv.c' object='preadv-preadv.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(preadv_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o preadv-preadv.obj `if test -f 'preadv.c'; then $(CYGPATH_W) 'preadv.c'; else $(CYGPATH_W) '$(srcdir)/preadv.c'; fi`
-
-preadv_pwritev-preadv-pwritev.o: preadv-pwritev.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(preadv_pwritev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT preadv_pwritev-preadv-pwritev.o -MD -MP -MF $(DEPDIR)/preadv_pwritev-preadv-pwritev.Tpo -c -o preadv_pwritev-preadv-pwritev.o `test -f 'preadv-pwritev.c' || echo '$(srcdir)/'`preadv-pwritev.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/preadv_pwritev-preadv-pwritev.Tpo $(DEPDIR)/preadv_pwritev-preadv-pwritev.Po
-#	$(AM_V_CC)source='preadv-pwritev.c' object='preadv_pwritev-preadv-pwritev.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(preadv_pwritev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o preadv_pwritev-preadv-pwritev.o `test -f 'preadv-pwritev.c' || echo '$(srcdir)/'`preadv-pwritev.c
-
-preadv_pwritev-preadv-pwritev.obj: preadv-pwritev.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(preadv_pwritev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT preadv_pwritev-preadv-pwritev.obj -MD -MP -MF $(DEPDIR)/preadv_pwritev-preadv-pwritev.Tpo -c -o preadv_pwritev-preadv-pwritev.obj `if test -f 'preadv-pwritev.c'; then $(CYGPATH_W) 'preadv-pwritev.c'; else $(CYGPATH_W) '$(srcdir)/preadv-pwritev.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/preadv_pwritev-preadv-pwritev.Tpo $(DEPDIR)/preadv_pwritev-preadv-pwritev.Po
-#	$(AM_V_CC)source='preadv-pwritev.c' object='preadv_pwritev-preadv-pwritev.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(preadv_pwritev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o preadv_pwritev-preadv-pwritev.obj `if test -f 'preadv-pwritev.c'; then $(CYGPATH_W) 'preadv-pwritev.c'; else $(CYGPATH_W) '$(srcdir)/preadv-pwritev.c'; fi`
-
-pwritev-pwritev.o: pwritev.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pwritev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pwritev-pwritev.o -MD -MP -MF $(DEPDIR)/pwritev-pwritev.Tpo -c -o pwritev-pwritev.o `test -f 'pwritev.c' || echo '$(srcdir)/'`pwritev.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/pwritev-pwritev.Tpo $(DEPDIR)/pwritev-pwritev.Po
-#	$(AM_V_CC)source='pwritev.c' object='pwritev-pwritev.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pwritev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pwritev-pwritev.o `test -f 'pwritev.c' || echo '$(srcdir)/'`pwritev.c
-
-pwritev-pwritev.obj: pwritev.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pwritev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pwritev-pwritev.obj -MD -MP -MF $(DEPDIR)/pwritev-pwritev.Tpo -c -o pwritev-pwritev.obj `if test -f 'pwritev.c'; then $(CYGPATH_W) 'pwritev.c'; else $(CYGPATH_W) '$(srcdir)/pwritev.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/pwritev-pwritev.Tpo $(DEPDIR)/pwritev-pwritev.Po
-#	$(AM_V_CC)source='pwritev.c' object='pwritev-pwritev.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pwritev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pwritev-pwritev.obj `if test -f 'pwritev.c'; then $(CYGPATH_W) 'pwritev.c'; else $(CYGPATH_W) '$(srcdir)/pwritev.c'; fi`
-
-stat64-stat64.o: stat64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT stat64-stat64.o -MD -MP -MF $(DEPDIR)/stat64-stat64.Tpo -c -o stat64-stat64.o `test -f 'stat64.c' || echo '$(srcdir)/'`stat64.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/stat64-stat64.Tpo $(DEPDIR)/stat64-stat64.Po
-#	$(AM_V_CC)source='stat64.c' object='stat64-stat64.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o stat64-stat64.o `test -f 'stat64.c' || echo '$(srcdir)/'`stat64.c
-
-stat64-stat64.obj: stat64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT stat64-stat64.obj -MD -MP -MF $(DEPDIR)/stat64-stat64.Tpo -c -o stat64-stat64.obj `if test -f 'stat64.c'; then $(CYGPATH_W) 'stat64.c'; else $(CYGPATH_W) '$(srcdir)/stat64.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/stat64-stat64.Tpo $(DEPDIR)/stat64-stat64.Po
-#	$(AM_V_CC)source='stat64.c' object='stat64-stat64.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o stat64-stat64.obj `if test -f 'stat64.c'; then $(CYGPATH_W) 'stat64.c'; else $(CYGPATH_W) '$(srcdir)/stat64.c'; fi`
-
-statfs-statfs.o: statfs.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(statfs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT statfs-statfs.o -MD -MP -MF $(DEPDIR)/statfs-statfs.Tpo -c -o statfs-statfs.o `test -f 'statfs.c' || echo '$(srcdir)/'`statfs.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/statfs-statfs.Tpo $(DEPDIR)/statfs-statfs.Po
-#	$(AM_V_CC)source='statfs.c' object='statfs-statfs.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(statfs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o statfs-statfs.o `test -f 'statfs.c' || echo '$(srcdir)/'`statfs.c
-
-statfs-statfs.obj: statfs.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(statfs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT statfs-statfs.obj -MD -MP -MF $(DEPDIR)/statfs-statfs.Tpo -c -o statfs-statfs.obj `if test -f 'statfs.c'; then $(CYGPATH_W) 'statfs.c'; else $(CYGPATH_W) '$(srcdir)/statfs.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/statfs-statfs.Tpo $(DEPDIR)/statfs-statfs.Po
-#	$(AM_V_CC)source='statfs.c' object='statfs-statfs.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(statfs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o statfs-statfs.obj `if test -f 'statfs.c'; then $(CYGPATH_W) 'statfs.c'; else $(CYGPATH_W) '$(srcdir)/statfs.c'; fi`
-
-truncate64-truncate64.o: truncate64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(truncate64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT truncate64-truncate64.o -MD -MP -MF $(DEPDIR)/truncate64-truncate64.Tpo -c -o truncate64-truncate64.o `test -f 'truncate64.c' || echo '$(srcdir)/'`truncate64.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/truncate64-truncate64.Tpo $(DEPDIR)/truncate64-truncate64.Po
-#	$(AM_V_CC)source='truncate64.c' object='truncate64-truncate64.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(truncate64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o truncate64-truncate64.o `test -f 'truncate64.c' || echo '$(srcdir)/'`truncate64.c
-
-truncate64-truncate64.obj: truncate64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(truncate64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT truncate64-truncate64.obj -MD -MP -MF $(DEPDIR)/truncate64-truncate64.Tpo -c -o truncate64-truncate64.obj `if test -f 'truncate64.c'; then $(CYGPATH_W) 'truncate64.c'; else $(CYGPATH_W) '$(srcdir)/truncate64.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/truncate64-truncate64.Tpo $(DEPDIR)/truncate64-truncate64.Po
-#	$(AM_V_CC)source='truncate64.c' object='truncate64-truncate64.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(truncate64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o truncate64-truncate64.obj `if test -f 'truncate64.c'; then $(CYGPATH_W) 'truncate64.c'; else $(CYGPATH_W) '$(srcdir)/truncate64.c'; fi`
-
-uio-uio.o: uio.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(uio_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uio-uio.o -MD -MP -MF $(DEPDIR)/uio-uio.Tpo -c -o uio-uio.o `test -f 'uio.c' || echo '$(srcdir)/'`uio.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/uio-uio.Tpo $(DEPDIR)/uio-uio.Po
-#	$(AM_V_CC)source='uio.c' object='uio-uio.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(uio_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uio-uio.o `test -f 'uio.c' || echo '$(srcdir)/'`uio.c
-
-uio-uio.obj: uio.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(uio_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uio-uio.obj -MD -MP -MF $(DEPDIR)/uio-uio.Tpo -c -o uio-uio.obj `if test -f 'uio.c'; then $(CYGPATH_W) 'uio.c'; else $(CYGPATH_W) '$(srcdir)/uio.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/uio-uio.Tpo $(DEPDIR)/uio-uio.Po
-#	$(AM_V_CC)source='uio.c' object='uio-uio.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(uio_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uio-uio.obj `if test -f 'uio.c'; then $(CYGPATH_W) 'uio.c'; else $(CYGPATH_W) '$(srcdir)/uio.c'; fi`
-check-valgrind-local: 
-
-ID: $(am__tagged_files)
-	$(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	set x; \
-	here=`pwd`; \
-	$(am__define_uniq_tagged_files); \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	$(am__define_uniq_tagged_files); \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
-	list='$(am__tagged_files)'; \
-	case "$(srcdir)" in \
-	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-	  *) sdir=$(subdir)/$(srcdir) ;; \
-	esac; \
-	for i in $$list; do \
-	  if test -f "$$i"; then \
-	    echo "$(subdir)/$$i"; \
-	  else \
-	    echo "$$sdir/$$i"; \
-	  fi; \
-	done >> $(top_builddir)/cscope.files
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-# Recover from deleted '.trs' file; this should ensure that
-# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
-# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
-# to avoid problems with "make -n".
-.log.trs:
-	rm -f $< $@
-	$(MAKE) $(AM_MAKEFLAGS) $<
-
-# Leading 'am--fnord' is there to ensure the list of targets does not
-# expand to empty, as could happen e.g. with make check TESTS=''.
-am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
-am--force-recheck:
-	@:
-
-$(TEST_SUITE_LOG): $(TEST_LOGS)
-	@$(am__set_TESTS_bases); \
-	am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
-	redo_bases=`for i in $$bases; do \
-	              am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
-	            done`; \
-	if test -n "$$redo_bases"; then \
-	  redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
-	  redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
-	  if $(am__make_dryrun); then :; else \
-	    rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
-	  fi; \
-	fi; \
-	if test -n "$$am__remaking_logs"; then \
-	  echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
-	       "recursion detected" >&2; \
-	else \
-	  am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
-	fi; \
-	if $(am__make_dryrun); then :; else \
-	  st=0;  \
-	  errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
-	  for i in $$redo_bases; do \
-	    test -f $$i.trs && test -r $$i.trs \
-	      || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
-	    test -f $$i.log && test -r $$i.log \
-	      || { echo "$$errmsg $$i.log" >&2; st=1; }; \
-	  done; \
-	  test $$st -eq 0 || exit 1; \
-	fi
-	@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
-	ws='[ 	]'; \
-	results=`for b in $$bases; do echo $$b.trs; done`; \
-	test -n "$$results" || results=/dev/null; \
-	all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
-	pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
-	fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
-	skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
-	xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
-	xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
-	error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
-	if test `expr $$fail + $$xpass + $$error` -eq 0; then \
-	  success=true; \
-	else \
-	  success=false; \
-	fi; \
-	br='==================='; br=$$br$$br$$br$$br; \
-	result_count () \
-	{ \
-	    if test x"$$1" = x"--maybe-color"; then \
-	      maybe_colorize=yes; \
-	    elif test x"$$1" = x"--no-color"; then \
-	      maybe_colorize=no; \
-	    else \
-	      echo "$@: invalid 'result_count' usage" >&2; exit 4; \
-	    fi; \
-	    shift; \
-	    desc=$$1 count=$$2; \
-	    if test $$maybe_colorize = yes && test $$count -gt 0; then \
-	      color_start=$$3 color_end=$$std; \
-	    else \
-	      color_start= color_end=; \
-	    fi; \
-	    echo "$${color_start}# $$desc $$count$${color_end}"; \
-	}; \
-	create_testsuite_report () \
-	{ \
-	  result_count $$1 "TOTAL:" $$all   "$$brg"; \
-	  result_count $$1 "PASS: " $$pass  "$$grn"; \
-	  result_count $$1 "SKIP: " $$skip  "$$blu"; \
-	  result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
-	  result_count $$1 "FAIL: " $$fail  "$$red"; \
-	  result_count $$1 "XPASS:" $$xpass "$$red"; \
-	  result_count $$1 "ERROR:" $$error "$$mgn"; \
-	}; \
-	{								\
-	  echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |	\
-	    $(am__rst_title);						\
-	  create_testsuite_report --no-color;				\
-	  echo;								\
-	  echo ".. contents:: :depth: 2";				\
-	  echo;								\
-	  for b in $$bases; do echo $$b; done				\
-	    | $(am__create_global_log);					\
-	} >$(TEST_SUITE_LOG).tmp || exit 1;				\
-	mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);			\
-	if $$success; then						\
-	  col="$$grn";							\
-	 else								\
-	  col="$$red";							\
-	  test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);		\
-	fi;								\
-	echo "$${col}$$br$${std}"; 					\
-	echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";	\
-	echo "$${col}$$br$${std}"; 					\
-	create_testsuite_report --maybe-color;				\
-	echo "$$col$$br$$std";						\
-	if $$success; then :; else					\
-	  echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";		\
-	  if test -n "$(PACKAGE_BUGREPORT)"; then			\
-	    echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}";	\
-	  fi;								\
-	  echo "$$col$$br$$std";					\
-	fi;								\
-	$$success || exit 1
-
-check-TESTS:
-	@list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
-	@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
-	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-	@set +e; $(am__set_TESTS_bases); \
-	log_list=`for i in $$bases; do echo $$i.log; done`; \
-	trs_list=`for i in $$bases; do echo $$i.trs; done`; \
-	log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
-	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
-	exit $$?;
-recheck: all $(check_LIBRARIES) $(check_PROGRAMS)
-	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-	@set +e; $(am__set_TESTS_bases); \
-	bases=`for i in $$bases; do echo $$i; done \
-	         | $(am__list_recheck_tests)` || exit 1; \
-	log_list=`for i in $$bases; do echo $$i.log; done`; \
-	log_list=`echo $$log_list`; \
-	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
-	        am__force_recheck=am--force-recheck \
-	        TEST_LOGS="$$log_list"; \
-	exit $$?
-.test.log:
-	@p='$<'; \
-	$(am__set_b); \
-	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-#.test$(EXEEXT).log:
-#	@p='$<'; \
-#	$(am__set_b); \
-#	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
-#	--log-file $$b.log --trs-file $$b.trs \
-#	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
-#	"$$tst" $(AM_TESTS_FD_REDIRECT)
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-	$(MAKE) $(AM_MAKEFLAGS) $(check_LIBRARIES) $(check_PROGRAMS)
-	$(MAKE) $(AM_MAKEFLAGS) check-TESTS
-check: check-am
-all-am: Makefile
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-	-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
-	-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
-	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-
-clean-generic:
-	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-check-valgrind: check-valgrind-am
-
-check-valgrind-am: check-valgrind-local
-
-clean: clean-am
-
-clean-am: clean-checkLIBRARIES clean-checkPROGRAMS clean-generic \
-	clean-local mostlyclean-am
-
-distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: check-am install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am \
-	check-valgrind-am check-valgrind-local clean \
-	clean-checkLIBRARIES clean-checkPROGRAMS clean-generic \
-	clean-local cscopelist-am ctags ctags-am distclean \
-	distclean-compile distclean-generic distclean-tags distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic pdf pdf-am ps ps-am recheck tags tags-am \
-	uninstall uninstall-am
-
-
-$(srcdir)/_newselect.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/accept.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/accept4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/access.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/acct.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/add_key.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/adjtimex.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/aio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/alarm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/bpf.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/btrfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/chmod.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/chown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/chown32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/chroot.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/clock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/clock_adjtime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/clock_nanosleep.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/clock_xettime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/copy_file_range.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/creat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/delete_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/dup.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/dup2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/dup3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/epoll_create.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/epoll_create1.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/epoll_ctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/epoll_pwait.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/epoll_wait.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/erestartsys.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/execveat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/execveat-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/faccessat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fadvise64_64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fallocate.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fanotify_init.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fanotify_mark.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fchdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fchmod.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fchmodat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fchown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fchown32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fchownat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fcntl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fcntl64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fdatasync.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/file_handle.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/file_ioctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/finit_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/flock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fork-f.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fstat64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fstatat64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fstatfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fstatfs64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fsync.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ftruncate.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ftruncate64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/futimesat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/get_mempolicy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getcpu.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getcwd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getdents.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getdents64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getegid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getegid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/geteuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/geteuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getgroups.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getgroups32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getpeername.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getpgrp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getpid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getppid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getrandom.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getresgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getresgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getresuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getresuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getrlimit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getrusage.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getsid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getsockname.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/gettid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getxxid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/inet-cmsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/init_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/inotify.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/inotify_init1.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/int_0x80.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_block.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_evdev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_evdev-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_loop.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_loop-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_mtd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_rtc.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_rtc-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_scsi.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_sg_io_v3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_sg_io_v4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_uffdio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_v4l2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioperm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/iopl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioprio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ip_mreq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ipc.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ipc_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ipc_sem.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ipc_shm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/kcmp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/kexec_file_load.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/kexec_load.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/keyctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/kill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/lchown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/lchown32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/link.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/linkat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/lookup_dcookie.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/lstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/lstat64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/madvise.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mbind.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/membarrier.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/memfd_create.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/migrate_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mincore.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mkdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mkdirat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mknod.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mknodat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mlock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mlock2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mlockall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mmap64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mmsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mmsg-silent.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mmsg_name.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mmsg_name-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mount.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/move_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mq_sendrecv.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mq_sendrecv-read.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mq_sendrecv-write.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/msg_control.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/msg_control-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/msg_name.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/munlockall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/nanosleep.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/net-icmp_filter.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/net-sockaddr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/netlink_protocol.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/newfstatat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/old_mmap.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/oldfstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/oldlstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/oldstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/open.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/openat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/osf_utimes.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/pause.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/perf_event_open.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/perf_event_open_nonverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/perf_event_open_unabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/pipe2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/pkey_alloc.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/pkey_free.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/pkey_mprotect.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ppoll.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ppoll-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/pread64-pwrite64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/preadv.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/preadv-pwritev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/preadv2-pwritev2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/printstr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/prlimit64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/process_vm_readv.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/process_vm_writev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/pselect6.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ptrace.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/pwritev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/quotactl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/quotactl-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/quotactl-xfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/quotactl-xfs-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/read-write.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/readahead.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/readdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/readlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/readlinkat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/reboot.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/recvfrom.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/recvmmsg-timeout.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/recvmsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/regex.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/remap_file_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/rename.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/renameat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/renameat2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/request_key.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/rmdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/rt_sigpending.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/rt_sigprocmask.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/rt_sigqueueinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/rt_sigreturn.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/rt_sigsuspend.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/rt_sigtimedwait.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/rt_tgsigqueueinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sched.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sched_get_priority_mxx.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sched_rr_get_interval.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sched_xetaffinity.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sched_xetattr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sched_xetparam.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sched_xetscheduler.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sched_yield.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/seccomp-filter.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/seccomp-filter-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/select.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/semop.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sendfile.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sendfile64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/set_mempolicy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setdomainname.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setfsgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setfsgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setfsuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setfsuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setgroups.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setgroups32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sethostname.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setregid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setregid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setresgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setresgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setresuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setresuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setreuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setreuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setrlimit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/shmxt.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/shutdown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/siginfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/signal_receive.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/signalfd4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sigreturn.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sigsuspend.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/socketcall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/splice.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/stat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/stat64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/statfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/statfs64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/statx.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/swap.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sxetmask.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/symlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/symlinkat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sync.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sync_file_range.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sync_file_range2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sysinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/syslog.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/tee.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/time.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/timer_create.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/timer_xettime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/timerfd_xettime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/times.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/times-fail.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/trace_fstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/trace_fstatfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/trace_lstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/trace_question.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/trace_stat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/trace_stat_like.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/trace_statfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/trace_statfs_like.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/truncate.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/truncate64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ugetrlimit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/umask.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/umoven-illptr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/umovestr-illptr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/umovestr3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/unlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/unlinkat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/unshare.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/userfaultfd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ustat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/utime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/utimensat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/utimes.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/vfork-f.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/vhangup.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/vmsplice.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/wait4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/wait4-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/waitid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/waitid-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/waitpid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/xattr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/xattr-strings.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/xet_robust_list.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/xetitimer.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/xetpgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/xetpriority.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/xettimeofday.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-
-# Valgrind check
-#
-# Optional:
-#  - VALGRIND_SUPPRESSIONS_FILES: Space-separated list of Valgrind suppressions
-#    files to load. (Default: empty)
-#  - VALGRIND_FLAGS: General flags to pass to all Valgrind tools.
-#    (Default: --num-callers=30)
-#  - VALGRIND_$toolname_FLAGS: Flags to pass to Valgrind $toolname (one of:
-#    memcheck, helgrind, drd, sgcheck). (Default: various)
-
-# Optional variables
-VALGRIND_SUPPRESSIONS ?= $(addprefix --suppressions=,$(VALGRIND_SUPPRESSIONS_FILES))
-VALGRIND_FLAGS ?= --num-callers=30
-VALGRIND_memcheck_FLAGS ?= --leak-check=full --show-reachable=no
-VALGRIND_helgrind_FLAGS ?= --history-level=approx
-VALGRIND_drd_FLAGS ?=
-VALGRIND_sgcheck_FLAGS ?=
-
-# Internal use
-valgrind_log_files = $(addprefix test-suite-,$(addsuffix .log,$(valgrind_tools)))
-
-valgrind_memcheck_flags = --tool=memcheck $(VALGRIND_memcheck_FLAGS)
-valgrind_helgrind_flags = --tool=helgrind $(VALGRIND_helgrind_FLAGS)
-valgrind_drd_flags = --tool=drd $(VALGRIND_drd_FLAGS)
-valgrind_sgcheck_flags = --tool=exp-sgcheck $(VALGRIND_sgcheck_FLAGS)
-
-valgrind_quiet = $(valgrind_quiet_$(V))
-valgrind_quiet_ = $(valgrind_quiet_$(AM_DEFAULT_VERBOSITY))
-valgrind_quiet_0 = --quiet
-valgrind_v_use   = $(valgrind_v_use_$(V))
-valgrind_v_use_  = $(valgrind_v_use_$(AM_DEFAULT_VERBOSITY))
-valgrind_v_use_0 = @echo "  USE   " $(patsubst check-valgrind-%,%,$@):;
-
-# Support running with and without libtool.
-ifneq ($(LIBTOOL),)
-valgrind_lt = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=execute
-else
-valgrind_lt =
-endif
-
-# Use recursive makes in order to ignore errors during check
-check-valgrind:
-ifeq ($(VALGRIND_ENABLED),yes)
-	-$(AM_V_at)$(foreach tool,$(valgrind_enabled_tools), \
-		$(MAKE) $(AM_MAKEFLAGS) -k check-valgrind-$(tool); \
-	)
-else
-	@echo "Need to reconfigure with --enable-valgrind"
-endif
-
-# Valgrind running
-VALGRIND_TESTS_ENVIRONMENT = \
-	$(TESTS_ENVIRONMENT) \
-	env VALGRIND=$(VALGRIND) \
-	G_SLICE=always-malloc,debug-blocks \
-	G_DEBUG=fatal-warnings,fatal-criticals,gc-friendly
-
-VALGRIND_LOG_COMPILER = \
-	$(valgrind_lt) \
-	$(VALGRIND) $(VALGRIND_SUPPRESSIONS) --error-exitcode=1 $(VALGRIND_FLAGS)
-
-define valgrind_tool_rule =
-check-valgrind-$(1): $$(BUILT_SOURCES)
-ifeq ($$(VALGRIND_ENABLED)-$$(ENABLE_VALGRIND_$(1)),yes-yes)
-	$$(valgrind_v_use)$$(MAKE) $$(AM_MAKEFLAGS) check-am \
-		TESTS_ENVIRONMENT="$$(VALGRIND_TESTS_ENVIRONMENT)" \
-		LOG_COMPILER="$$(VALGRIND_LOG_COMPILER)" \
-		LOG_FLAGS="$$(valgrind_$(1)_flags)" \
-		TEST_SUITE_LOG=test-suite-$(1).log
-else ifeq ($$(VALGRIND_ENABLED),yes)
-	@echo "Need to reconfigure with --enable-valgrind-$(1)"
-else
-	@echo "Need to reconfigure with --enable-valgrind"
-endif
-endef
-
-$(foreach tool,$(valgrind_tools),$(eval $(call valgrind_tool_rule,$(tool))))
-
-AM_DISTCHECK_CONFIGURE_FLAGS ?=
-AM_DISTCHECK_CONFIGURE_FLAGS += --disable-valgrind
-
-MOSTLYCLEANFILES ?=
-MOSTLYCLEANFILES += $(valgrind_log_files)
-
-.PHONY: check-valgrind $(add-prefix check-valgrind-,$(valgrind_tools))
-
-
-ksysent.h: $(srcdir)/ksysent.sed
-	echo '#include <asm/unistd.h>' | \
-		$(CPP) $(AM_CPPFLAGS) $(CPPFLAGS) -dM - > $@.t1
-	LC_COLLATE=C sed -r -n -f $(srcdir)/ksysent.sed < $@.t1 > $@.t2
-	mv -f $@.t2 $@
-	rm -f $@.t1
-
-ksysent.$(OBJEXT): ksysent.h
-$(objects): scno.h
-
-clean-local: clean-local-check
-.PHONY: clean-local-check
-clean-local-check:
-	-rm -rf -- $(TESTS:.test=.dir) $(GEN_TESTS:.gen.test=.dir)
-
-syscallent.i: $(top_srcdir)/$(OS)/$(ARCH)/syscallent.h
-	$(CPP) -P $(SCNO_CPPFLAGS) $^ -o $@
-
-scno.h: $(top_srcdir)/scno.head syscallent.i
-	echo '/* Generated by Makefile from $^; do not edit. */' > $@-t
-	cat $< >> $@-t
-	LC_ALL=C sed -n '$(SCNO_SED)' $(filter-out $<,$^) >> $@-t
-	mv $@-t $@
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/tests-mx32/Makefile.am b/tests-mx32/Makefile.am
new file mode 100644
index 0000000..c6793af
--- /dev/null
+++ b/tests-mx32/Makefile.am
@@ -0,0 +1,390 @@
+# Automake input for strace tests.
+#
+# Copyright (c) 2011-2016 Dmitry V. Levin <ldv@altlinux.org>
+# Copyright (c) 2011-2017 The strace developers.
+# 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.
+
+OS = linux
+ARCH = @arch_mx32@
+MPERS_NAME = mx32
+ARCH_MFLAGS = -DMPERS_IS_$(MPERS_NAME) -mx32
+AM_CFLAGS = $(WARN_CFLAGS)
+AM_CPPFLAGS = $(ARCH_MFLAGS) \
+	      -I$(builddir) \
+	      -I$(top_builddir)/$(OS)/$(ARCH) \
+	      -I$(top_srcdir)/$(OS)/$(ARCH) \
+	      -I$(top_builddir)/$(OS) \
+	      -I$(top_srcdir)/$(OS) \
+	      -I$(top_builddir) \
+	      -I$(top_srcdir)
+AM_LDFLAGS = $(ARCH_MFLAGS)
+
+libtests_a_SOURCES = \
+	create_nl_socket.c \
+	errno2name.c \
+	error_msg.c \
+	fill_memory.c \
+	get_page_size.c \
+	get_sigset_size.c \
+	hexdump_strdup.c \
+	hexquote_strndup.c \
+	inode_of_sockfd.c \
+	libmmsg.c \
+	libsocketcall.c \
+	overflowuid.c \
+	pipe_maxfd.c \
+	print_quoted_string.c \
+	print_time.c \
+	printflags.c \
+	printxval.c \
+	signal2name.c \
+	skip_unavailable.c \
+	sprintrc.c \
+	tail_alloc.c \
+	test_nlattr.h \
+	tests.h \
+	tprintf.c \
+	# end of libtests_a_SOURCES
+libtests_a_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+check_LIBRARIES = libtests.a
+LDADD = libtests.a
+
+include pure_executables.am
+
+check_PROGRAMS = $(PURE_EXECUTABLES) \
+	answer \
+	attach-f-p \
+	attach-f-p-cmd \
+	attach-p-cmd-cmd \
+	attach-p-cmd-p \
+	block_reset_raise_run \
+	caps-abbrev \
+	count-f \
+	execve-v \
+	execveat-v \
+	filter-unavailable \
+	fork-f \
+	getpid	\
+	getppid	\
+	gettid \
+	int_0x80 \
+	ioctl_dm-v \
+	ioctl_evdev-v \
+	ioctl_loop-nv \
+	ioctl_loop-v \
+	ioctl_nsfs \
+	ioctl_rtc-v \
+	ksysent \
+	mmsg-silent \
+	mmsg_name-v \
+	msg_control-v \
+	net-accept-connect \
+	netlink_inet_diag \
+	netlink_netlink_diag \
+	netlink_unix_diag \
+	nsyscalls \
+	pc \
+	perf_event_open_nonverbose \
+	perf_event_open_unabbrev \
+	ppoll-v \
+	prctl-seccomp-filter-v \
+	prctl-seccomp-strict \
+	print_maxfd \
+	qual_fault \
+	qual_inject-error-signal \
+	qual_inject-retval \
+	qual_inject-signal \
+	qual_signal \
+	quotactl-v \
+	quotactl-xfs-v \
+	redirect-fds \
+	restart_syscall \
+	run_expect_termsig \
+	scm_rights \
+	seccomp-filter-v \
+	seccomp-strict \
+	set_ptracer_any \
+	signal_receive \
+	sleep \
+	stack-fcall \
+	threads-execve \
+	unblock_reset_raise \
+	unix-pair-send-recv \
+	unix-pair-sendto-recvfrom \
+	vfork-f \
+	wait4-v \
+	waitid-v \
+	zeroargc \
+	# end of check_PROGRAMS
+
+attach_f_p_LDADD = -lrt -lpthread $(LDADD)
+clock_xettime_LDADD = -lrt $(LDADD)
+count_f_LDADD = -lpthread $(LDADD)
+filter_unavailable_LDADD = -lpthread $(LDADD)
+fstat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+fstatat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+ftruncate64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+lstat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+mmap64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+mq_LDADD = -lrt $(LDADD)
+mq_sendrecv_LDADD = -lrt $(LDADD)
+mq_sendrecv_read_LDADD = -lrt $(LDADD)
+mq_sendrecv_write_LDADD = -lrt $(LDADD)
+newfstatat_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+pc_LDADD = $(dl_LIBS) $(LDADD)
+pread64_pwrite64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+preadv_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+preadv_pwritev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+pwritev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+stat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+statfs_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+threads_execve_LDADD = -lrt -lpthread $(LDADD)
+times_LDADD = -lrt $(LDADD)
+truncate64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+uio_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+
+stack_fcall_SOURCES = stack-fcall.c \
+	stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
+
+include gen_tests.am
+
+if USE_LIBUNWIND
+LIBUNWIND_TESTS = strace-k.test
+else
+LIBUNWIND_TESTS =
+endif
+
+DECODER_TESTS = \
+	brk.test \
+	btrfs-v.test \
+	btrfs-vw.test \
+	btrfs-w.test \
+	caps-abbrev.test \
+	caps.test \
+	eventfd.test \
+	execve-v.test \
+	execve.test \
+	fadvise64.test \
+	futex.test \
+	getuid.test \
+	ioctl.test \
+	ioctl_dm-v.test \
+	ioctl_dm.test \
+	ioctl_loop-nv.test \
+	ioctl_nsfs.test \
+	ioctl_sock_gifconf.test \
+	ipc_msgbuf.test \
+	llseek.test \
+	lseek.test \
+	mmap.test \
+	net-y-unix.test \
+	net-yy-inet.test \
+	net-yy-netlink.test \
+	net-yy-unix.test \
+	net.test \
+	netlink_sock_diag.test \
+	nsyscalls.test \
+	oldselect.test \
+	personality.test \
+	pipe.test \
+	poll.test \
+	prctl-arg2-intptr.test \
+	prctl-dumpable.test \
+	prctl-name.test \
+	prctl-no-args.test \
+	prctl-pdeathsig.test \
+	prctl-seccomp-filter-v.test \
+	prctl-seccomp-strict.test \
+	prctl-securebits.test \
+	prctl-tid_address.test \
+	prctl-tsc.test \
+	qual_fault-exit_group.test \
+	readv.test \
+	rt_sigaction.test \
+	scm_rights-fd.test \
+	seccomp-strict.test \
+	sigaltstack.test \
+	sun_path.test \
+	uio.test \
+	umount.test \
+	umount2.test \
+	umovestr.test \
+	umovestr2.test \
+	uname.test \
+	unix-pair-send-recv.test \
+	unix-pair-sendto-recvfrom.test \
+	# end of DECODER_TESTS
+
+MISC_TESTS = \
+	attach-f-p.test \
+	attach-p-cmd.test \
+	bexecve.test \
+	count-f.test \
+	count.test \
+	detach-running.test \
+	detach-sleeping.test \
+	detach-stopped.test \
+	filter-unavailable.test \
+	get_regs.test \
+	interactive_block.test \
+	ksysent.test \
+	opipe.test \
+	options-syntax.test \
+	pc.test \
+	qual_fault-syntax.test \
+	qual_fault.test \
+	qual_inject-error-signal.test \
+	qual_inject-retval.test \
+	qual_inject-signal.test \
+	qual_inject-syntax.test \
+	qual_signal.test \
+	qual_syscall.test \
+	redirect-fds.test \
+	redirect.test \
+	restart_syscall.test \
+	strace-C.test \
+	strace-E.test \
+	strace-S.test \
+	strace-T.test \
+	strace-V.test \
+	strace-ff.test \
+	strace-r.test \
+	strace-t.test \
+	strace-tt.test \
+	strace-ttt.test \
+	termsig.test \
+	threads-execve.test \
+	# end of MISC_TESTS
+
+TESTS = $(GEN_TESTS) $(DECODER_TESTS) $(MISC_TESTS) $(LIBUNWIND_TESTS)
+
+XFAIL_TESTS_ =
+XFAIL_TESTS_m32 = $(LIBUNWIND_TESTS)
+XFAIL_TESTS_mx32 = $(LIBUNWIND_TESTS)
+XFAIL_TESTS_x86_64 = int_0x80.gen.test
+XFAIL_TESTS_x32 = int_0x80.gen.test
+XFAIL_TESTS = $(XFAIL_TESTS_$(MPERS_NAME)) $(XFAIL_TESTS_$(ARCH))
+
+TEST_LOG_COMPILER = env
+AM_TEST_LOG_FLAGS = STRACE_ARCH=$(ARCH) MIPS_ABI=$(MIPS_ABI) $(srcdir)/run.sh
+
+@VALGRIND_CHECK_RULES@
+VALGRIND_FLAGS = --quiet
+VALGRIND_SUPPRESSIONS_FILES = $(srcdir)/strace.supp
+
+EXTRA_DIST = \
+	caps-abbrev.awk \
+	caps.awk \
+	clock.in \
+	count-f.expected \
+	eventfd.expected \
+	fadvise.h \
+	filter-unavailable.expected \
+	fstatat.c \
+	fstatx.c \
+	gen_pure_executables.sh \
+	gen_tests.in \
+	gen_tests.sh \
+	getresugid.c \
+	init.sh \
+	init_delete_module.h \
+	ioctl-v.sh \
+	ipc.sh \
+	ipc_msgbuf.expected \
+	ksysent.sed \
+	lstatx.c \
+	match.awk \
+	net.expected \
+	oldselect.expected \
+	pipe.expected \
+	process_vm_readv_writev.c \
+	pure_executables.list \
+	qual_fault-exit_group.expected \
+	qual_inject-error-signal.expected \
+	qual_inject-signal.expected \
+	quotactl.h \
+	regex.in \
+	rt_sigaction.awk \
+	run.sh \
+	sched.in \
+	scno_tampering.sh \
+	setfsugid.c \
+	setresugid.c \
+	setreugid.c \
+	setugid.c \
+	sigaltstack.expected \
+	sockname.c \
+	strace-C.expected \
+	strace-E.expected \
+	strace-T.expected \
+	strace-ff.expected \
+	strace-k.test \
+	strace-r.expected \
+	strace.supp \
+	struct_flock.c \
+	sun_path.expected \
+	trace_fstat.in \
+	trace_fstatfs.in \
+	trace_lstat.in \
+	trace_question.in \
+	trace_stat.in \
+	trace_stat_like.in \
+	trace_statfs.in \
+	trace_statfs_like.in \
+	uio.expected \
+	umode_t.c \
+	umovestr.expected \
+	unix-pair-send-recv.expected \
+	unix-pair-sendto-recvfrom.expected \
+	xchownx.c \
+	xgetrlimit.c \
+	xselect.c \
+	xstatfs.c \
+	xstatfs64.c \
+	xstatfsx.c \
+	xstatx.c \
+	xutimes.c \
+	$(TESTS)
+
+ksysent.h: $(srcdir)/ksysent.sed
+	echo '#include <asm/unistd.h>' | \
+		$(CPP) $(AM_CPPFLAGS) $(CPPFLAGS) -dM - > $@.t1
+	LC_COLLATE=C sed -r -n -f $(srcdir)/ksysent.sed < $@.t1 > $@.t2
+	mv -f $@.t2 $@
+	rm -f $@.t1
+
+ksysent.$(OBJEXT): ksysent.h
+
+objects = $(filter %.$(OBJEXT),$(SOURCES:.c=.$(OBJEXT)))
+$(objects): scno.h
+
+clean-local: clean-local-check
+.PHONY: clean-local-check
+clean-local-check:
+	-rm -rf -- $(TESTS:.test=.dir) $(GEN_TESTS:.gen.test=.dir)
+
+CLEANFILES = ksysent.h
+
+include ../scno.am
diff --git a/tests-mx32/Makefile.in b/tests-mx32/Makefile.in
index 40fbfd8..bf06345 100644
--- a/tests-mx32/Makefile.in
+++ b/tests-mx32/Makefile.in
@@ -138,14 +138,14 @@
 	$(top_srcdir)/test-driver
 check_PROGRAMS = $(am__EXEEXT_1) answer$(EXEEXT) attach-f-p$(EXEEXT) \
 	attach-f-p-cmd$(EXEEXT) attach-p-cmd-cmd$(EXEEXT) \
-	attach-p-cmd-p$(EXEEXT) caps-abbrev$(EXEEXT) count-f$(EXEEXT) \
-	execve-v$(EXEEXT) execveat-v$(EXEEXT) \
-	filter-unavailable$(EXEEXT) fork-f$(EXEEXT) getpid$(EXEEXT) \
-	getppid$(EXEEXT) gettid$(EXEEXT) int_0x80$(EXEEXT) \
-	ioctl_dm-v$(EXEEXT) ioctl_evdev-v$(EXEEXT) \
-	ioctl_loop-nv$(EXEEXT) ioctl_loop-v$(EXEEXT) \
-	ioctl_nsfs$(EXEEXT) ioctl_rtc-v$(EXEEXT) ksysent$(EXEEXT) \
-	mmsg-silent$(EXEEXT) mmsg_name-v$(EXEEXT) \
+	attach-p-cmd-p$(EXEEXT) block_reset_raise_run$(EXEEXT) \
+	caps-abbrev$(EXEEXT) count-f$(EXEEXT) execve-v$(EXEEXT) \
+	execveat-v$(EXEEXT) filter-unavailable$(EXEEXT) \
+	fork-f$(EXEEXT) getpid$(EXEEXT) getppid$(EXEEXT) \
+	gettid$(EXEEXT) int_0x80$(EXEEXT) ioctl_dm-v$(EXEEXT) \
+	ioctl_evdev-v$(EXEEXT) ioctl_loop-nv$(EXEEXT) \
+	ioctl_loop-v$(EXEEXT) ioctl_nsfs$(EXEEXT) ioctl_rtc-v$(EXEEXT) \
+	ksysent$(EXEEXT) mmsg-silent$(EXEEXT) mmsg_name-v$(EXEEXT) \
 	msg_control-v$(EXEEXT) net-accept-connect$(EXEEXT) \
 	netlink_inet_diag$(EXEEXT) netlink_netlink_diag$(EXEEXT) \
 	netlink_unix_diag$(EXEEXT) nsyscalls$(EXEEXT) pc$(EXEEXT) \
@@ -157,12 +157,13 @@
 	qual_inject-signal$(EXEEXT) qual_signal$(EXEEXT) \
 	quotactl-v$(EXEEXT) quotactl-xfs-v$(EXEEXT) \
 	redirect-fds$(EXEEXT) restart_syscall$(EXEEXT) \
-	scm_rights$(EXEEXT) seccomp-filter-v$(EXEEXT) \
-	seccomp-strict$(EXEEXT) set_ptracer_any$(EXEEXT) \
-	signal_receive$(EXEEXT) sleep$(EXEEXT) stack-fcall$(EXEEXT) \
-	threads-execve$(EXEEXT) unix-pair-send-recv$(EXEEXT) \
+	run_expect_termsig$(EXEEXT) scm_rights$(EXEEXT) \
+	seccomp-filter-v$(EXEEXT) seccomp-strict$(EXEEXT) \
+	set_ptracer_any$(EXEEXT) signal_receive$(EXEEXT) \
+	sleep$(EXEEXT) stack-fcall$(EXEEXT) threads-execve$(EXEEXT) \
+	unblock_reset_raise$(EXEEXT) unix-pair-send-recv$(EXEEXT) \
 	unix-pair-sendto-recvfrom$(EXEEXT) vfork-f$(EXEEXT) \
-	wait4-v$(EXEEXT) waitid-v$(EXEEXT)
+	wait4-v$(EXEEXT) waitid-v$(EXEEXT) zeroargc$(EXEEXT)
 TESTS = $(GEN_TESTS) $(DECODER_TESTS) $(MISC_TESTS) $(am__EXEEXT_2)
 subdir = tests-mx32
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -187,8 +188,8 @@
 am__v_AR_1 = 
 libtests_a_AR = $(AR) $(ARFLAGS)
 libtests_a_LIBADD =
-am_libtests_a_OBJECTS = libtests_a-errno2name.$(OBJEXT) \
-	libtests_a-error_msg.$(OBJEXT) \
+am_libtests_a_OBJECTS = libtests_a-create_nl_socket.$(OBJEXT) \
+	libtests_a-errno2name.$(OBJEXT) libtests_a-error_msg.$(OBJEXT) \
 	libtests_a-fill_memory.$(OBJEXT) \
 	libtests_a-get_page_size.$(OBJEXT) \
 	libtests_a-get_sigset_size.$(OBJEXT) \
@@ -264,18 +265,23 @@
 	net-icmp_filter$(EXEEXT) net-sockaddr$(EXEEXT) \
 	net-y-unix$(EXEEXT) net-yy-inet$(EXEEXT) \
 	net-yy-netlink$(EXEEXT) net-yy-unix$(EXEEXT) \
-	netlink_protocol$(EXEEXT) newfstatat$(EXEEXT) \
-	old_mmap$(EXEEXT) oldfstat$(EXEEXT) oldlstat$(EXEEXT) \
-	oldselect$(EXEEXT) oldstat$(EXEEXT) open$(EXEEXT) \
-	openat$(EXEEXT) osf_utimes$(EXEEXT) pause$(EXEEXT) \
-	perf_event_open$(EXEEXT) personality$(EXEEXT) pipe$(EXEEXT) \
-	pipe2$(EXEEXT) pkey_alloc$(EXEEXT) pkey_free$(EXEEXT) \
-	pkey_mprotect$(EXEEXT) poll$(EXEEXT) ppoll$(EXEEXT) \
-	prctl-arg2-intptr$(EXEEXT) prctl-dumpable$(EXEEXT) \
-	prctl-name$(EXEEXT) prctl-no-args$(EXEEXT) \
-	prctl-pdeathsig$(EXEEXT) prctl-securebits$(EXEEXT) \
-	prctl-tid_address$(EXEEXT) prctl-tsc$(EXEEXT) \
-	pread64-pwrite64$(EXEEXT) preadv$(EXEEXT) \
+	netlink_audit$(EXEEXT) netlink_generic$(EXEEXT) \
+	netlink_netfilter$(EXEEXT) netlink_protocol$(EXEEXT) \
+	netlink_route$(EXEEXT) netlink_selinux$(EXEEXT) \
+	netlink_sock_diag$(EXEEXT) netlink_xfrm$(EXEEXT) \
+	newfstatat$(EXEEXT) nlattr$(EXEEXT) \
+	nlattr_inet_diag_msg$(EXEEXT) nlattr_netlink_diag_msg$(EXEEXT) \
+	nlattr_unix_diag_msg$(EXEEXT) old_mmap$(EXEEXT) \
+	oldfstat$(EXEEXT) oldlstat$(EXEEXT) oldselect$(EXEEXT) \
+	oldstat$(EXEEXT) open$(EXEEXT) openat$(EXEEXT) \
+	osf_utimes$(EXEEXT) pause$(EXEEXT) perf_event_open$(EXEEXT) \
+	personality$(EXEEXT) pipe$(EXEEXT) pipe2$(EXEEXT) \
+	pkey_alloc$(EXEEXT) pkey_free$(EXEEXT) pkey_mprotect$(EXEEXT) \
+	poll$(EXEEXT) ppoll$(EXEEXT) prctl-arg2-intptr$(EXEEXT) \
+	prctl-dumpable$(EXEEXT) prctl-name$(EXEEXT) \
+	prctl-no-args$(EXEEXT) prctl-pdeathsig$(EXEEXT) \
+	prctl-securebits$(EXEEXT) prctl-tid_address$(EXEEXT) \
+	prctl-tsc$(EXEEXT) pread64-pwrite64$(EXEEXT) preadv$(EXEEXT) \
 	preadv-pwritev$(EXEEXT) preadv2-pwritev2$(EXEEXT) \
 	printstr$(EXEEXT) prlimit64$(EXEEXT) process_vm_readv$(EXEEXT) \
 	process_vm_writev$(EXEEXT) pselect6$(EXEEXT) ptrace$(EXEEXT) \
@@ -285,42 +291,43 @@
 	reboot$(EXEEXT) recvfrom$(EXEEXT) recvmmsg-timeout$(EXEEXT) \
 	recvmsg$(EXEEXT) remap_file_pages$(EXEEXT) rename$(EXEEXT) \
 	renameat$(EXEEXT) renameat2$(EXEEXT) request_key$(EXEEXT) \
-	rmdir$(EXEEXT) rt_sigpending$(EXEEXT) rt_sigprocmask$(EXEEXT) \
-	rt_sigqueueinfo$(EXEEXT) rt_sigreturn$(EXEEXT) \
-	rt_sigsuspend$(EXEEXT) rt_sigtimedwait$(EXEEXT) \
-	rt_tgsigqueueinfo$(EXEEXT) sched_get_priority_mxx$(EXEEXT) \
-	sched_rr_get_interval$(EXEEXT) sched_xetaffinity$(EXEEXT) \
-	sched_xetattr$(EXEEXT) sched_xetparam$(EXEEXT) \
-	sched_xetscheduler$(EXEEXT) sched_yield$(EXEEXT) \
-	seccomp-filter$(EXEEXT) select$(EXEEXT) semop$(EXEEXT) \
-	sendfile$(EXEEXT) sendfile64$(EXEEXT) set_mempolicy$(EXEEXT) \
-	setdomainname$(EXEEXT) setfsgid$(EXEEXT) setfsgid32$(EXEEXT) \
-	setfsuid$(EXEEXT) setfsuid32$(EXEEXT) setgid$(EXEEXT) \
-	setgid32$(EXEEXT) setgroups$(EXEEXT) setgroups32$(EXEEXT) \
-	sethostname$(EXEEXT) setns$(EXEEXT) setregid$(EXEEXT) \
-	setregid32$(EXEEXT) setresgid$(EXEEXT) setresgid32$(EXEEXT) \
-	setresuid$(EXEEXT) setresuid32$(EXEEXT) setreuid$(EXEEXT) \
-	setreuid32$(EXEEXT) setrlimit$(EXEEXT) setuid$(EXEEXT) \
-	setuid32$(EXEEXT) shmxt$(EXEEXT) shutdown$(EXEEXT) \
-	sigaction$(EXEEXT) sigaltstack$(EXEEXT) siginfo$(EXEEXT) \
-	signalfd4$(EXEEXT) sigreturn$(EXEEXT) sigsuspend$(EXEEXT) \
-	socketcall$(EXEEXT) splice$(EXEEXT) stat$(EXEEXT) \
-	stat64$(EXEEXT) statfs$(EXEEXT) statfs64$(EXEEXT) \
-	statx$(EXEEXT) swap$(EXEEXT) sxetmask$(EXEEXT) \
-	symlink$(EXEEXT) symlinkat$(EXEEXT) sync$(EXEEXT) \
-	sync_file_range$(EXEEXT) sync_file_range2$(EXEEXT) \
-	sysinfo$(EXEEXT) syslog$(EXEEXT) tee$(EXEEXT) time$(EXEEXT) \
-	timer_create$(EXEEXT) timer_xettime$(EXEEXT) \
-	timerfd_xettime$(EXEEXT) times$(EXEEXT) times-fail$(EXEEXT) \
-	truncate$(EXEEXT) truncate64$(EXEEXT) ugetrlimit$(EXEEXT) \
-	uio$(EXEEXT) umask$(EXEEXT) umount$(EXEEXT) umount2$(EXEEXT) \
-	umoven-illptr$(EXEEXT) umovestr$(EXEEXT) \
-	umovestr-illptr$(EXEEXT) umovestr2$(EXEEXT) umovestr3$(EXEEXT) \
-	uname$(EXEEXT) unlink$(EXEEXT) unlinkat$(EXEEXT) \
-	unshare$(EXEEXT) userfaultfd$(EXEEXT) ustat$(EXEEXT) \
-	utime$(EXEEXT) utimensat$(EXEEXT) utimes$(EXEEXT) \
-	vhangup$(EXEEXT) vmsplice$(EXEEXT) wait4$(EXEEXT) \
-	waitid$(EXEEXT) waitpid$(EXEEXT) xattr$(EXEEXT) \
+	rmdir$(EXEEXT) rt_sigaction$(EXEEXT) rt_sigpending$(EXEEXT) \
+	rt_sigprocmask$(EXEEXT) rt_sigqueueinfo$(EXEEXT) \
+	rt_sigreturn$(EXEEXT) rt_sigsuspend$(EXEEXT) \
+	rt_sigtimedwait$(EXEEXT) rt_tgsigqueueinfo$(EXEEXT) \
+	sched_get_priority_mxx$(EXEEXT) sched_rr_get_interval$(EXEEXT) \
+	sched_xetaffinity$(EXEEXT) sched_xetattr$(EXEEXT) \
+	sched_xetparam$(EXEEXT) sched_xetscheduler$(EXEEXT) \
+	sched_yield$(EXEEXT) seccomp-filter$(EXEEXT) select$(EXEEXT) \
+	semop$(EXEEXT) sendfile$(EXEEXT) sendfile64$(EXEEXT) \
+	set_mempolicy$(EXEEXT) setdomainname$(EXEEXT) \
+	setfsgid$(EXEEXT) setfsgid32$(EXEEXT) setfsuid$(EXEEXT) \
+	setfsuid32$(EXEEXT) setgid$(EXEEXT) setgid32$(EXEEXT) \
+	setgroups$(EXEEXT) setgroups32$(EXEEXT) sethostname$(EXEEXT) \
+	setns$(EXEEXT) setregid$(EXEEXT) setregid32$(EXEEXT) \
+	setresgid$(EXEEXT) setresgid32$(EXEEXT) setresuid$(EXEEXT) \
+	setresuid32$(EXEEXT) setreuid$(EXEEXT) setreuid32$(EXEEXT) \
+	setrlimit$(EXEEXT) setuid$(EXEEXT) setuid32$(EXEEXT) \
+	shmxt$(EXEEXT) shutdown$(EXEEXT) sigaction$(EXEEXT) \
+	sigaltstack$(EXEEXT) siginfo$(EXEEXT) signal$(EXEEXT) \
+	signalfd4$(EXEEXT) sigpending$(EXEEXT) sigprocmask$(EXEEXT) \
+	sigreturn$(EXEEXT) sigsuspend$(EXEEXT) socketcall$(EXEEXT) \
+	splice$(EXEEXT) stat$(EXEEXT) stat64$(EXEEXT) statfs$(EXEEXT) \
+	statfs64$(EXEEXT) statx$(EXEEXT) swap$(EXEEXT) \
+	sxetmask$(EXEEXT) symlink$(EXEEXT) symlinkat$(EXEEXT) \
+	sync$(EXEEXT) sync_file_range$(EXEEXT) \
+	sync_file_range2$(EXEEXT) sysinfo$(EXEEXT) syslog$(EXEEXT) \
+	tee$(EXEEXT) time$(EXEEXT) timer_create$(EXEEXT) \
+	timer_xettime$(EXEEXT) timerfd_xettime$(EXEEXT) times$(EXEEXT) \
+	times-fail$(EXEEXT) truncate$(EXEEXT) truncate64$(EXEEXT) \
+	ugetrlimit$(EXEEXT) uio$(EXEEXT) umask$(EXEEXT) \
+	umount$(EXEEXT) umount2$(EXEEXT) umoven-illptr$(EXEEXT) \
+	umovestr$(EXEEXT) umovestr-illptr$(EXEEXT) umovestr2$(EXEEXT) \
+	umovestr3$(EXEEXT) uname$(EXEEXT) unlink$(EXEEXT) \
+	unlinkat$(EXEEXT) unshare$(EXEEXT) userfaultfd$(EXEEXT) \
+	ustat$(EXEEXT) utime$(EXEEXT) utimensat$(EXEEXT) \
+	utimes$(EXEEXT) vhangup$(EXEEXT) vmsplice$(EXEEXT) \
+	wait4$(EXEEXT) waitid$(EXEEXT) waitpid$(EXEEXT) xattr$(EXEEXT) \
 	xattr-strings$(EXEEXT) xet_robust_list$(EXEEXT) \
 	xetitimer$(EXEEXT) xetpgid$(EXEEXT) xetpriority$(EXEEXT) \
 	xettimeofday$(EXEEXT)
@@ -379,6 +386,10 @@
 attach_p_cmd_p_OBJECTS = attach-p-cmd-p.$(OBJEXT)
 attach_p_cmd_p_LDADD = $(LDADD)
 attach_p_cmd_p_DEPENDENCIES = libtests.a
+block_reset_raise_run_SOURCES = block_reset_raise_run.c
+block_reset_raise_run_OBJECTS = block_reset_raise_run.$(OBJEXT)
+block_reset_raise_run_LDADD = $(LDADD)
+block_reset_raise_run_DEPENDENCIES = libtests.a
 bpf_SOURCES = bpf.c
 bpf_OBJECTS = bpf.$(OBJEXT)
 bpf_LDADD = $(LDADD)
@@ -1076,10 +1087,22 @@
 net_yy_unix_OBJECTS = net-yy-unix.$(OBJEXT)
 net_yy_unix_LDADD = $(LDADD)
 net_yy_unix_DEPENDENCIES = libtests.a
+netlink_audit_SOURCES = netlink_audit.c
+netlink_audit_OBJECTS = netlink_audit.$(OBJEXT)
+netlink_audit_LDADD = $(LDADD)
+netlink_audit_DEPENDENCIES = libtests.a
+netlink_generic_SOURCES = netlink_generic.c
+netlink_generic_OBJECTS = netlink_generic.$(OBJEXT)
+netlink_generic_LDADD = $(LDADD)
+netlink_generic_DEPENDENCIES = libtests.a
 netlink_inet_diag_SOURCES = netlink_inet_diag.c
 netlink_inet_diag_OBJECTS = netlink_inet_diag.$(OBJEXT)
 netlink_inet_diag_LDADD = $(LDADD)
 netlink_inet_diag_DEPENDENCIES = libtests.a
+netlink_netfilter_SOURCES = netlink_netfilter.c
+netlink_netfilter_OBJECTS = netlink_netfilter.$(OBJEXT)
+netlink_netfilter_LDADD = $(LDADD)
+netlink_netfilter_DEPENDENCIES = libtests.a
 netlink_netlink_diag_SOURCES = netlink_netlink_diag.c
 netlink_netlink_diag_OBJECTS = netlink_netlink_diag.$(OBJEXT)
 netlink_netlink_diag_LDADD = $(LDADD)
@@ -1088,14 +1111,46 @@
 netlink_protocol_OBJECTS = netlink_protocol.$(OBJEXT)
 netlink_protocol_LDADD = $(LDADD)
 netlink_protocol_DEPENDENCIES = libtests.a
+netlink_route_SOURCES = netlink_route.c
+netlink_route_OBJECTS = netlink_route.$(OBJEXT)
+netlink_route_LDADD = $(LDADD)
+netlink_route_DEPENDENCIES = libtests.a
+netlink_selinux_SOURCES = netlink_selinux.c
+netlink_selinux_OBJECTS = netlink_selinux.$(OBJEXT)
+netlink_selinux_LDADD = $(LDADD)
+netlink_selinux_DEPENDENCIES = libtests.a
+netlink_sock_diag_SOURCES = netlink_sock_diag.c
+netlink_sock_diag_OBJECTS = netlink_sock_diag.$(OBJEXT)
+netlink_sock_diag_LDADD = $(LDADD)
+netlink_sock_diag_DEPENDENCIES = libtests.a
 netlink_unix_diag_SOURCES = netlink_unix_diag.c
 netlink_unix_diag_OBJECTS = netlink_unix_diag.$(OBJEXT)
 netlink_unix_diag_LDADD = $(LDADD)
 netlink_unix_diag_DEPENDENCIES = libtests.a
+netlink_xfrm_SOURCES = netlink_xfrm.c
+netlink_xfrm_OBJECTS = netlink_xfrm.$(OBJEXT)
+netlink_xfrm_LDADD = $(LDADD)
+netlink_xfrm_DEPENDENCIES = libtests.a
 newfstatat_SOURCES = newfstatat.c
 newfstatat_OBJECTS = newfstatat-newfstatat.$(OBJEXT)
 newfstatat_LDADD = $(LDADD)
 newfstatat_DEPENDENCIES = libtests.a
+nlattr_SOURCES = nlattr.c
+nlattr_OBJECTS = nlattr.$(OBJEXT)
+nlattr_LDADD = $(LDADD)
+nlattr_DEPENDENCIES = libtests.a
+nlattr_inet_diag_msg_SOURCES = nlattr_inet_diag_msg.c
+nlattr_inet_diag_msg_OBJECTS = nlattr_inet_diag_msg.$(OBJEXT)
+nlattr_inet_diag_msg_LDADD = $(LDADD)
+nlattr_inet_diag_msg_DEPENDENCIES = libtests.a
+nlattr_netlink_diag_msg_SOURCES = nlattr_netlink_diag_msg.c
+nlattr_netlink_diag_msg_OBJECTS = nlattr_netlink_diag_msg.$(OBJEXT)
+nlattr_netlink_diag_msg_LDADD = $(LDADD)
+nlattr_netlink_diag_msg_DEPENDENCIES = libtests.a
+nlattr_unix_diag_msg_SOURCES = nlattr_unix_diag_msg.c
+nlattr_unix_diag_msg_OBJECTS = nlattr_unix_diag_msg.$(OBJEXT)
+nlattr_unix_diag_msg_LDADD = $(LDADD)
+nlattr_unix_diag_msg_DEPENDENCIES = libtests.a
 nsyscalls_SOURCES = nsyscalls.c
 nsyscalls_OBJECTS = nsyscalls.$(OBJEXT)
 nsyscalls_LDADD = $(LDADD)
@@ -1386,6 +1441,10 @@
 rmdir_OBJECTS = rmdir.$(OBJEXT)
 rmdir_LDADD = $(LDADD)
 rmdir_DEPENDENCIES = libtests.a
+rt_sigaction_SOURCES = rt_sigaction.c
+rt_sigaction_OBJECTS = rt_sigaction.$(OBJEXT)
+rt_sigaction_LDADD = $(LDADD)
+rt_sigaction_DEPENDENCIES = libtests.a
 rt_sigpending_SOURCES = rt_sigpending.c
 rt_sigpending_OBJECTS = rt_sigpending.$(OBJEXT)
 rt_sigpending_LDADD = $(LDADD)
@@ -1414,6 +1473,10 @@
 rt_tgsigqueueinfo_OBJECTS = rt_tgsigqueueinfo.$(OBJEXT)
 rt_tgsigqueueinfo_LDADD = $(LDADD)
 rt_tgsigqueueinfo_DEPENDENCIES = libtests.a
+run_expect_termsig_SOURCES = run_expect_termsig.c
+run_expect_termsig_OBJECTS = run_expect_termsig.$(OBJEXT)
+run_expect_termsig_LDADD = $(LDADD)
+run_expect_termsig_DEPENDENCIES = libtests.a
 sched_get_priority_mxx_SOURCES = sched_get_priority_mxx.c
 sched_get_priority_mxx_OBJECTS = sched_get_priority_mxx.$(OBJEXT)
 sched_get_priority_mxx_LDADD = $(LDADD)
@@ -1590,6 +1653,10 @@
 siginfo_OBJECTS = siginfo.$(OBJEXT)
 siginfo_LDADD = $(LDADD)
 siginfo_DEPENDENCIES = libtests.a
+signal_SOURCES = signal.c
+signal_OBJECTS = signal.$(OBJEXT)
+signal_LDADD = $(LDADD)
+signal_DEPENDENCIES = libtests.a
 signal_receive_SOURCES = signal_receive.c
 signal_receive_OBJECTS = signal_receive.$(OBJEXT)
 signal_receive_LDADD = $(LDADD)
@@ -1598,6 +1665,14 @@
 signalfd4_OBJECTS = signalfd4.$(OBJEXT)
 signalfd4_LDADD = $(LDADD)
 signalfd4_DEPENDENCIES = libtests.a
+sigpending_SOURCES = sigpending.c
+sigpending_OBJECTS = sigpending.$(OBJEXT)
+sigpending_LDADD = $(LDADD)
+sigpending_DEPENDENCIES = libtests.a
+sigprocmask_SOURCES = sigprocmask.c
+sigprocmask_OBJECTS = sigprocmask.$(OBJEXT)
+sigprocmask_LDADD = $(LDADD)
+sigprocmask_DEPENDENCIES = libtests.a
 sigreturn_SOURCES = sigreturn.c
 sigreturn_OBJECTS = sigreturn.$(OBJEXT)
 sigreturn_LDADD = $(LDADD)
@@ -1762,6 +1837,10 @@
 uname_OBJECTS = uname.$(OBJEXT)
 uname_LDADD = $(LDADD)
 uname_DEPENDENCIES = libtests.a
+unblock_reset_raise_SOURCES = unblock_reset_raise.c
+unblock_reset_raise_OBJECTS = unblock_reset_raise.$(OBJEXT)
+unblock_reset_raise_LDADD = $(LDADD)
+unblock_reset_raise_DEPENDENCIES = libtests.a
 unix_pair_send_recv_SOURCES = unix-pair-send-recv.c
 unix_pair_send_recv_OBJECTS = unix-pair-send-recv.$(OBJEXT)
 unix_pair_send_recv_LDADD = $(LDADD)
@@ -1863,6 +1942,10 @@
 xettimeofday_OBJECTS = xettimeofday.$(OBJEXT)
 xettimeofday_LDADD = $(LDADD)
 xettimeofday_DEPENDENCIES = libtests.a
+zeroargc_SOURCES = zeroargc.c
+zeroargc_OBJECTS = zeroargc.$(OBJEXT)
+zeroargc_LDADD = $(LDADD)
+zeroargc_DEPENDENCIES = libtests.a
 AM_V_P = $(am__v_P_@AM_V@)
 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
 am__v_P_0 = false
@@ -1898,47 +1981,51 @@
 SOURCES = $(libtests_a_SOURCES) _newselect.c accept.c accept4.c \
 	access.c acct.c add_key.c adjtimex.c aio.c alarm.c answer.c \
 	attach-f-p.c attach-f-p-cmd.c attach-p-cmd-cmd.c \
-	attach-p-cmd-p.c bpf.c brk.c btrfs.c caps.c caps-abbrev.c \
-	chmod.c chown.c chown32.c chroot.c clock_adjtime.c \
-	clock_nanosleep.c clock_xettime.c copy_file_range.c count-f.c \
-	creat.c delete_module.c dup.c dup2.c dup3.c epoll_create.c \
-	epoll_create1.c epoll_ctl.c epoll_pwait.c epoll_wait.c \
-	erestartsys.c eventfd.c execve.c execve-v.c execveat.c \
-	execveat-v.c faccessat.c fadvise64.c fadvise64_64.c \
-	fallocate.c fanotify_init.c fanotify_mark.c fchdir.c fchmod.c \
-	fchmodat.c fchown.c fchown32.c fchownat.c fcntl.c fcntl64.c \
-	fdatasync.c file_handle.c file_ioctl.c filter-unavailable.c \
-	finit_module.c flock.c fork-f.c fstat.c fstat64.c fstatat64.c \
-	fstatfs.c fstatfs64.c fsync.c ftruncate.c ftruncate64.c \
-	futex.c futimesat.c get_mempolicy.c getcpu.c getcwd.c \
-	getdents.c getdents64.c getegid.c getegid32.c geteuid.c \
-	geteuid32.c getgid.c getgid32.c getgroups.c getgroups32.c \
-	getpeername.c getpgrp.c getpid.c getppid.c getrandom.c \
-	getresgid.c getresgid32.c getresuid.c getresuid32.c \
-	getrlimit.c getrusage.c getsid.c getsockname.c gettid.c \
-	getuid.c getuid32.c getxxid.c inet-cmsg.c init_module.c \
-	inotify.c inotify_init1.c int_0x80.c ioctl.c ioctl_block.c \
-	ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-v.c \
-	ioctl_loop.c ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c \
-	ioctl_nsfs.c ioctl_rtc.c ioctl_rtc-v.c ioctl_scsi.c \
-	ioctl_sg_io_v3.c ioctl_sg_io_v4.c ioctl_sock_gifconf.c \
-	ioctl_uffdio.c ioctl_v4l2.c ioperm.c iopl.c ioprio.c ip_mreq.c \
-	ipc.c ipc_msg.c ipc_msgbuf.c ipc_sem.c ipc_shm.c kcmp.c \
-	kexec_file_load.c kexec_load.c keyctl.c kill.c ksysent.c \
-	lchown.c lchown32.c link.c linkat.c llseek.c lookup_dcookie.c \
-	lseek.c lstat.c lstat64.c madvise.c mbind.c membarrier.c \
-	memfd_create.c migrate_pages.c mincore.c mkdir.c mkdirat.c \
-	mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c mmap64.c \
-	mmsg.c mmsg-silent.c mmsg_name.c mmsg_name-v.c mount.c \
-	move_pages.c mq.c mq_sendrecv.c mq_sendrecv-read.c \
-	mq_sendrecv-write.c msg_control.c msg_control-v.c msg_name.c \
-	munlockall.c nanosleep.c net-accept-connect.c \
-	net-icmp_filter.c net-sockaddr.c net-y-unix.c net-yy-inet.c \
-	net-yy-netlink.c net-yy-unix.c netlink_inet_diag.c \
-	netlink_netlink_diag.c netlink_protocol.c netlink_unix_diag.c \
-	newfstatat.c nsyscalls.c old_mmap.c oldfstat.c oldlstat.c \
-	oldselect.c oldstat.c open.c openat.c osf_utimes.c pause.c \
-	pc.c perf_event_open.c perf_event_open_nonverbose.c \
+	attach-p-cmd-p.c block_reset_raise_run.c bpf.c brk.c btrfs.c \
+	caps.c caps-abbrev.c chmod.c chown.c chown32.c chroot.c \
+	clock_adjtime.c clock_nanosleep.c clock_xettime.c \
+	copy_file_range.c count-f.c creat.c delete_module.c dup.c \
+	dup2.c dup3.c epoll_create.c epoll_create1.c epoll_ctl.c \
+	epoll_pwait.c epoll_wait.c erestartsys.c eventfd.c execve.c \
+	execve-v.c execveat.c execveat-v.c faccessat.c fadvise64.c \
+	fadvise64_64.c fallocate.c fanotify_init.c fanotify_mark.c \
+	fchdir.c fchmod.c fchmodat.c fchown.c fchown32.c fchownat.c \
+	fcntl.c fcntl64.c fdatasync.c file_handle.c file_ioctl.c \
+	filter-unavailable.c finit_module.c flock.c fork-f.c fstat.c \
+	fstat64.c fstatat64.c fstatfs.c fstatfs64.c fsync.c \
+	ftruncate.c ftruncate64.c futex.c futimesat.c get_mempolicy.c \
+	getcpu.c getcwd.c getdents.c getdents64.c getegid.c \
+	getegid32.c geteuid.c geteuid32.c getgid.c getgid32.c \
+	getgroups.c getgroups32.c getpeername.c getpgrp.c getpid.c \
+	getppid.c getrandom.c getresgid.c getresgid32.c getresuid.c \
+	getresuid32.c getrlimit.c getrusage.c getsid.c getsockname.c \
+	gettid.c getuid.c getuid32.c getxxid.c inet-cmsg.c \
+	init_module.c inotify.c inotify_init1.c int_0x80.c ioctl.c \
+	ioctl_block.c ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c \
+	ioctl_evdev-v.c ioctl_loop.c ioctl_loop-nv.c ioctl_loop-v.c \
+	ioctl_mtd.c ioctl_nsfs.c ioctl_rtc.c ioctl_rtc-v.c \
+	ioctl_scsi.c ioctl_sg_io_v3.c ioctl_sg_io_v4.c \
+	ioctl_sock_gifconf.c ioctl_uffdio.c ioctl_v4l2.c ioperm.c \
+	iopl.c ioprio.c ip_mreq.c ipc.c ipc_msg.c ipc_msgbuf.c \
+	ipc_sem.c ipc_shm.c kcmp.c kexec_file_load.c kexec_load.c \
+	keyctl.c kill.c ksysent.c lchown.c lchown32.c link.c linkat.c \
+	llseek.c lookup_dcookie.c lseek.c lstat.c lstat64.c madvise.c \
+	mbind.c membarrier.c memfd_create.c migrate_pages.c mincore.c \
+	mkdir.c mkdirat.c mknod.c mknodat.c mlock.c mlock2.c \
+	mlockall.c mmap.c mmap64.c mmsg.c mmsg-silent.c mmsg_name.c \
+	mmsg_name-v.c mount.c move_pages.c mq.c mq_sendrecv.c \
+	mq_sendrecv-read.c mq_sendrecv-write.c msg_control.c \
+	msg_control-v.c msg_name.c munlockall.c nanosleep.c \
+	net-accept-connect.c net-icmp_filter.c net-sockaddr.c \
+	net-y-unix.c net-yy-inet.c net-yy-netlink.c net-yy-unix.c \
+	netlink_audit.c netlink_generic.c netlink_inet_diag.c \
+	netlink_netfilter.c netlink_netlink_diag.c netlink_protocol.c \
+	netlink_route.c netlink_selinux.c netlink_sock_diag.c \
+	netlink_unix_diag.c netlink_xfrm.c newfstatat.c nlattr.c \
+	nlattr_inet_diag_msg.c nlattr_netlink_diag_msg.c \
+	nlattr_unix_diag_msg.c nsyscalls.c old_mmap.c oldfstat.c \
+	oldlstat.c oldselect.c oldstat.c open.c openat.c osf_utimes.c \
+	pause.c pc.c perf_event_open.c perf_event_open_nonverbose.c \
 	perf_event_open_unabbrev.c personality.c pipe.c pipe2.c \
 	pkey_alloc.c pkey_free.c pkey_mprotect.c poll.c ppoll.c \
 	ppoll-v.c prctl-arg2-intptr.c prctl-dumpable.c prctl-name.c \
@@ -1954,21 +2041,22 @@
 	readv.c reboot.c recvfrom.c recvmmsg-timeout.c recvmsg.c \
 	redirect-fds.c remap_file_pages.c rename.c renameat.c \
 	renameat2.c request_key.c restart_syscall.c rmdir.c \
-	rt_sigpending.c rt_sigprocmask.c rt_sigqueueinfo.c \
-	rt_sigreturn.c rt_sigsuspend.c rt_sigtimedwait.c \
-	rt_tgsigqueueinfo.c sched_get_priority_mxx.c \
-	sched_rr_get_interval.c sched_xetaffinity.c sched_xetattr.c \
-	sched_xetparam.c sched_xetscheduler.c sched_yield.c \
-	scm_rights.c seccomp-filter.c seccomp-filter-v.c \
-	seccomp-strict.c select.c semop.c sendfile.c sendfile64.c \
-	set_mempolicy.c set_ptracer_any.c setdomainname.c setfsgid.c \
-	setfsgid32.c setfsuid.c setfsuid32.c setgid.c setgid32.c \
-	setgroups.c setgroups32.c sethostname.c setns.c setregid.c \
-	setregid32.c setresgid.c setresgid32.c setresuid.c \
-	setresuid32.c setreuid.c setreuid32.c setrlimit.c setuid.c \
-	setuid32.c shmxt.c shutdown.c sigaction.c sigaltstack.c \
-	siginfo.c signal_receive.c signalfd4.c sigreturn.c \
-	sigsuspend.c sleep.c socketcall.c splice.c \
+	rt_sigaction.c rt_sigpending.c rt_sigprocmask.c \
+	rt_sigqueueinfo.c rt_sigreturn.c rt_sigsuspend.c \
+	rt_sigtimedwait.c rt_tgsigqueueinfo.c run_expect_termsig.c \
+	sched_get_priority_mxx.c sched_rr_get_interval.c \
+	sched_xetaffinity.c sched_xetattr.c sched_xetparam.c \
+	sched_xetscheduler.c sched_yield.c scm_rights.c \
+	seccomp-filter.c seccomp-filter-v.c seccomp-strict.c select.c \
+	semop.c sendfile.c sendfile64.c set_mempolicy.c \
+	set_ptracer_any.c setdomainname.c setfsgid.c setfsgid32.c \
+	setfsuid.c setfsuid32.c setgid.c setgid32.c setgroups.c \
+	setgroups32.c sethostname.c setns.c setregid.c setregid32.c \
+	setresgid.c setresgid32.c setresuid.c setresuid32.c setreuid.c \
+	setreuid32.c setrlimit.c setuid.c setuid32.c shmxt.c \
+	shutdown.c sigaction.c sigaltstack.c siginfo.c signal.c \
+	signal_receive.c signalfd4.c sigpending.c sigprocmask.c \
+	sigreturn.c sigsuspend.c sleep.c socketcall.c splice.c \
 	$(stack_fcall_SOURCES) stat.c stat64.c statfs.c statfs64.c \
 	statx.c swap.c sxetmask.c symlink.c symlinkat.c sync.c \
 	sync_file_range.c sync_file_range2.c sysinfo.c syslog.c tee.c \
@@ -1976,56 +2064,60 @@
 	timerfd_xettime.c times.c times-fail.c truncate.c truncate64.c \
 	ugetrlimit.c uio.c umask.c umount.c umount2.c umoven-illptr.c \
 	umovestr.c umovestr-illptr.c umovestr2.c umovestr3.c uname.c \
-	unix-pair-send-recv.c unix-pair-sendto-recvfrom.c unlink.c \
-	unlinkat.c unshare.c userfaultfd.c ustat.c utime.c utimensat.c \
-	utimes.c vfork-f.c vhangup.c vmsplice.c wait4.c wait4-v.c \
-	waitid.c waitid-v.c waitpid.c xattr.c xattr-strings.c \
-	xet_robust_list.c xetitimer.c xetpgid.c xetpriority.c \
-	xettimeofday.c
+	unblock_reset_raise.c unix-pair-send-recv.c \
+	unix-pair-sendto-recvfrom.c unlink.c unlinkat.c unshare.c \
+	userfaultfd.c ustat.c utime.c utimensat.c utimes.c vfork-f.c \
+	vhangup.c vmsplice.c wait4.c wait4-v.c waitid.c waitid-v.c \
+	waitpid.c xattr.c xattr-strings.c xet_robust_list.c \
+	xetitimer.c xetpgid.c xetpriority.c xettimeofday.c zeroargc.c
 DIST_SOURCES = $(libtests_a_SOURCES) _newselect.c accept.c accept4.c \
 	access.c acct.c add_key.c adjtimex.c aio.c alarm.c answer.c \
 	attach-f-p.c attach-f-p-cmd.c attach-p-cmd-cmd.c \
-	attach-p-cmd-p.c bpf.c brk.c btrfs.c caps.c caps-abbrev.c \
-	chmod.c chown.c chown32.c chroot.c clock_adjtime.c \
-	clock_nanosleep.c clock_xettime.c copy_file_range.c count-f.c \
-	creat.c delete_module.c dup.c dup2.c dup3.c epoll_create.c \
-	epoll_create1.c epoll_ctl.c epoll_pwait.c epoll_wait.c \
-	erestartsys.c eventfd.c execve.c execve-v.c execveat.c \
-	execveat-v.c faccessat.c fadvise64.c fadvise64_64.c \
-	fallocate.c fanotify_init.c fanotify_mark.c fchdir.c fchmod.c \
-	fchmodat.c fchown.c fchown32.c fchownat.c fcntl.c fcntl64.c \
-	fdatasync.c file_handle.c file_ioctl.c filter-unavailable.c \
-	finit_module.c flock.c fork-f.c fstat.c fstat64.c fstatat64.c \
-	fstatfs.c fstatfs64.c fsync.c ftruncate.c ftruncate64.c \
-	futex.c futimesat.c get_mempolicy.c getcpu.c getcwd.c \
-	getdents.c getdents64.c getegid.c getegid32.c geteuid.c \
-	geteuid32.c getgid.c getgid32.c getgroups.c getgroups32.c \
-	getpeername.c getpgrp.c getpid.c getppid.c getrandom.c \
-	getresgid.c getresgid32.c getresuid.c getresuid32.c \
-	getrlimit.c getrusage.c getsid.c getsockname.c gettid.c \
-	getuid.c getuid32.c getxxid.c inet-cmsg.c init_module.c \
-	inotify.c inotify_init1.c int_0x80.c ioctl.c ioctl_block.c \
-	ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-v.c \
-	ioctl_loop.c ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c \
-	ioctl_nsfs.c ioctl_rtc.c ioctl_rtc-v.c ioctl_scsi.c \
-	ioctl_sg_io_v3.c ioctl_sg_io_v4.c ioctl_sock_gifconf.c \
-	ioctl_uffdio.c ioctl_v4l2.c ioperm.c iopl.c ioprio.c ip_mreq.c \
-	ipc.c ipc_msg.c ipc_msgbuf.c ipc_sem.c ipc_shm.c kcmp.c \
-	kexec_file_load.c kexec_load.c keyctl.c kill.c ksysent.c \
-	lchown.c lchown32.c link.c linkat.c llseek.c lookup_dcookie.c \
-	lseek.c lstat.c lstat64.c madvise.c mbind.c membarrier.c \
-	memfd_create.c migrate_pages.c mincore.c mkdir.c mkdirat.c \
-	mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c mmap64.c \
-	mmsg.c mmsg-silent.c mmsg_name.c mmsg_name-v.c mount.c \
-	move_pages.c mq.c mq_sendrecv.c mq_sendrecv-read.c \
-	mq_sendrecv-write.c msg_control.c msg_control-v.c msg_name.c \
-	munlockall.c nanosleep.c net-accept-connect.c \
-	net-icmp_filter.c net-sockaddr.c net-y-unix.c net-yy-inet.c \
-	net-yy-netlink.c net-yy-unix.c netlink_inet_diag.c \
-	netlink_netlink_diag.c netlink_protocol.c netlink_unix_diag.c \
-	newfstatat.c nsyscalls.c old_mmap.c oldfstat.c oldlstat.c \
-	oldselect.c oldstat.c open.c openat.c osf_utimes.c pause.c \
-	pc.c perf_event_open.c perf_event_open_nonverbose.c \
+	attach-p-cmd-p.c block_reset_raise_run.c bpf.c brk.c btrfs.c \
+	caps.c caps-abbrev.c chmod.c chown.c chown32.c chroot.c \
+	clock_adjtime.c clock_nanosleep.c clock_xettime.c \
+	copy_file_range.c count-f.c creat.c delete_module.c dup.c \
+	dup2.c dup3.c epoll_create.c epoll_create1.c epoll_ctl.c \
+	epoll_pwait.c epoll_wait.c erestartsys.c eventfd.c execve.c \
+	execve-v.c execveat.c execveat-v.c faccessat.c fadvise64.c \
+	fadvise64_64.c fallocate.c fanotify_init.c fanotify_mark.c \
+	fchdir.c fchmod.c fchmodat.c fchown.c fchown32.c fchownat.c \
+	fcntl.c fcntl64.c fdatasync.c file_handle.c file_ioctl.c \
+	filter-unavailable.c finit_module.c flock.c fork-f.c fstat.c \
+	fstat64.c fstatat64.c fstatfs.c fstatfs64.c fsync.c \
+	ftruncate.c ftruncate64.c futex.c futimesat.c get_mempolicy.c \
+	getcpu.c getcwd.c getdents.c getdents64.c getegid.c \
+	getegid32.c geteuid.c geteuid32.c getgid.c getgid32.c \
+	getgroups.c getgroups32.c getpeername.c getpgrp.c getpid.c \
+	getppid.c getrandom.c getresgid.c getresgid32.c getresuid.c \
+	getresuid32.c getrlimit.c getrusage.c getsid.c getsockname.c \
+	gettid.c getuid.c getuid32.c getxxid.c inet-cmsg.c \
+	init_module.c inotify.c inotify_init1.c int_0x80.c ioctl.c \
+	ioctl_block.c ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c \
+	ioctl_evdev-v.c ioctl_loop.c ioctl_loop-nv.c ioctl_loop-v.c \
+	ioctl_mtd.c ioctl_nsfs.c ioctl_rtc.c ioctl_rtc-v.c \
+	ioctl_scsi.c ioctl_sg_io_v3.c ioctl_sg_io_v4.c \
+	ioctl_sock_gifconf.c ioctl_uffdio.c ioctl_v4l2.c ioperm.c \
+	iopl.c ioprio.c ip_mreq.c ipc.c ipc_msg.c ipc_msgbuf.c \
+	ipc_sem.c ipc_shm.c kcmp.c kexec_file_load.c kexec_load.c \
+	keyctl.c kill.c ksysent.c lchown.c lchown32.c link.c linkat.c \
+	llseek.c lookup_dcookie.c lseek.c lstat.c lstat64.c madvise.c \
+	mbind.c membarrier.c memfd_create.c migrate_pages.c mincore.c \
+	mkdir.c mkdirat.c mknod.c mknodat.c mlock.c mlock2.c \
+	mlockall.c mmap.c mmap64.c mmsg.c mmsg-silent.c mmsg_name.c \
+	mmsg_name-v.c mount.c move_pages.c mq.c mq_sendrecv.c \
+	mq_sendrecv-read.c mq_sendrecv-write.c msg_control.c \
+	msg_control-v.c msg_name.c munlockall.c nanosleep.c \
+	net-accept-connect.c net-icmp_filter.c net-sockaddr.c \
+	net-y-unix.c net-yy-inet.c net-yy-netlink.c net-yy-unix.c \
+	netlink_audit.c netlink_generic.c netlink_inet_diag.c \
+	netlink_netfilter.c netlink_netlink_diag.c netlink_protocol.c \
+	netlink_route.c netlink_selinux.c netlink_sock_diag.c \
+	netlink_unix_diag.c netlink_xfrm.c newfstatat.c nlattr.c \
+	nlattr_inet_diag_msg.c nlattr_netlink_diag_msg.c \
+	nlattr_unix_diag_msg.c nsyscalls.c old_mmap.c oldfstat.c \
+	oldlstat.c oldselect.c oldstat.c open.c openat.c osf_utimes.c \
+	pause.c pc.c perf_event_open.c perf_event_open_nonverbose.c \
 	perf_event_open_unabbrev.c personality.c pipe.c pipe2.c \
 	pkey_alloc.c pkey_free.c pkey_mprotect.c poll.c ppoll.c \
 	ppoll-v.c prctl-arg2-intptr.c prctl-dumpable.c prctl-name.c \
@@ -2041,21 +2133,22 @@
 	readv.c reboot.c recvfrom.c recvmmsg-timeout.c recvmsg.c \
 	redirect-fds.c remap_file_pages.c rename.c renameat.c \
 	renameat2.c request_key.c restart_syscall.c rmdir.c \
-	rt_sigpending.c rt_sigprocmask.c rt_sigqueueinfo.c \
-	rt_sigreturn.c rt_sigsuspend.c rt_sigtimedwait.c \
-	rt_tgsigqueueinfo.c sched_get_priority_mxx.c \
-	sched_rr_get_interval.c sched_xetaffinity.c sched_xetattr.c \
-	sched_xetparam.c sched_xetscheduler.c sched_yield.c \
-	scm_rights.c seccomp-filter.c seccomp-filter-v.c \
-	seccomp-strict.c select.c semop.c sendfile.c sendfile64.c \
-	set_mempolicy.c set_ptracer_any.c setdomainname.c setfsgid.c \
-	setfsgid32.c setfsuid.c setfsuid32.c setgid.c setgid32.c \
-	setgroups.c setgroups32.c sethostname.c setns.c setregid.c \
-	setregid32.c setresgid.c setresgid32.c setresuid.c \
-	setresuid32.c setreuid.c setreuid32.c setrlimit.c setuid.c \
-	setuid32.c shmxt.c shutdown.c sigaction.c sigaltstack.c \
-	siginfo.c signal_receive.c signalfd4.c sigreturn.c \
-	sigsuspend.c sleep.c socketcall.c splice.c \
+	rt_sigaction.c rt_sigpending.c rt_sigprocmask.c \
+	rt_sigqueueinfo.c rt_sigreturn.c rt_sigsuspend.c \
+	rt_sigtimedwait.c rt_tgsigqueueinfo.c run_expect_termsig.c \
+	sched_get_priority_mxx.c sched_rr_get_interval.c \
+	sched_xetaffinity.c sched_xetattr.c sched_xetparam.c \
+	sched_xetscheduler.c sched_yield.c scm_rights.c \
+	seccomp-filter.c seccomp-filter-v.c seccomp-strict.c select.c \
+	semop.c sendfile.c sendfile64.c set_mempolicy.c \
+	set_ptracer_any.c setdomainname.c setfsgid.c setfsgid32.c \
+	setfsuid.c setfsuid32.c setgid.c setgid32.c setgroups.c \
+	setgroups32.c sethostname.c setns.c setregid.c setregid32.c \
+	setresgid.c setresgid32.c setresuid.c setresuid32.c setreuid.c \
+	setreuid32.c setrlimit.c setuid.c setuid32.c shmxt.c \
+	shutdown.c sigaction.c sigaltstack.c siginfo.c signal.c \
+	signal_receive.c signalfd4.c sigpending.c sigprocmask.c \
+	sigreturn.c sigsuspend.c sleep.c socketcall.c splice.c \
 	$(stack_fcall_SOURCES) stat.c stat64.c statfs.c statfs64.c \
 	statx.c swap.c sxetmask.c symlink.c symlinkat.c sync.c \
 	sync_file_range.c sync_file_range2.c sysinfo.c syslog.c tee.c \
@@ -2063,12 +2156,12 @@
 	timerfd_xettime.c times.c times-fail.c truncate.c truncate64.c \
 	ugetrlimit.c uio.c umask.c umount.c umount2.c umoven-illptr.c \
 	umovestr.c umovestr-illptr.c umovestr2.c umovestr3.c uname.c \
-	unix-pair-send-recv.c unix-pair-sendto-recvfrom.c unlink.c \
-	unlinkat.c unshare.c userfaultfd.c ustat.c utime.c utimensat.c \
-	utimes.c vfork-f.c vhangup.c vmsplice.c wait4.c wait4-v.c \
-	waitid.c waitid-v.c waitpid.c xattr.c xattr-strings.c \
-	xet_robust_list.c xetitimer.c xetpgid.c xetpriority.c \
-	xettimeofday.c
+	unblock_reset_raise.c unix-pair-send-recv.c \
+	unix-pair-sendto-recvfrom.c unlink.c unlinkat.c unshare.c \
+	userfaultfd.c ustat.c utime.c utimensat.c utimes.c vfork-f.c \
+	vhangup.c vmsplice.c wait4.c wait4-v.c waitid.c waitid-v.c \
+	waitpid.c xattr.c xattr-strings.c xet_robust_list.c \
+	xetitimer.c xetpgid.c xetpriority.c xettimeofday.c zeroargc.c
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -2450,6 +2543,7 @@
 
 AM_LDFLAGS = $(ARCH_MFLAGS)
 libtests_a_SOURCES = \
+	create_nl_socket.c \
 	errno2name.c \
 	error_msg.c \
 	fill_memory.c \
@@ -2470,6 +2564,7 @@
 	skip_unavailable.c \
 	sprintrc.c \
 	tail_alloc.c \
+	test_nlattr.h \
 	tests.h \
 	tprintf.c \
 	# end of libtests_a_SOURCES
@@ -2646,8 +2741,19 @@
   net-yy-inet \
   net-yy-netlink \
   net-yy-unix \
+  netlink_audit \
+  netlink_generic \
+  netlink_netfilter \
   netlink_protocol \
+  netlink_route \
+  netlink_selinux \
+  netlink_sock_diag \
+  netlink_xfrm \
   newfstatat \
+  nlattr \
+  nlattr_inet_diag_msg \
+  nlattr_netlink_diag_msg \
+  nlattr_unix_diag_msg \
   old_mmap \
   oldfstat \
   oldlstat \
@@ -2703,6 +2809,7 @@
   renameat2 \
   request_key \
   rmdir \
+  rt_sigaction \
   rt_sigpending \
   rt_sigprocmask \
   rt_sigqueueinfo \
@@ -2750,7 +2857,10 @@
   sigaction \
   sigaltstack \
   siginfo \
+  signal \
   signalfd4 \
+  sigpending \
+  sigprocmask \
   sigreturn \
   sigsuspend \
   socketcall \
@@ -2895,11 +3005,17 @@
 	mq_sendrecv-write.gen.test msg_control.gen.test \
 	msg_control-v.gen.test msg_name.gen.test munlockall.gen.test \
 	nanosleep.gen.test net-icmp_filter.gen.test \
-	net-sockaddr.gen.test netlink_protocol.gen.test \
-	newfstatat.gen.test old_mmap.gen.test oldfstat.gen.test \
-	oldlstat.gen.test oldstat.gen.test open.gen.test \
-	openat.gen.test osf_utimes.gen.test pause.gen.test \
-	perf_event_open.gen.test perf_event_open_nonverbose.gen.test \
+	net-sockaddr.gen.test netlink_audit.gen.test \
+	netlink_generic.gen.test netlink_netfilter.gen.test \
+	netlink_protocol.gen.test netlink_route.gen.test \
+	netlink_selinux.gen.test netlink_xfrm.gen.test \
+	newfstatat.gen.test nlattr.gen.test \
+	nlattr_inet_diag_msg.gen.test nlattr_netlink_diag_msg.gen.test \
+	nlattr_unix_diag_msg.gen.test old_mmap.gen.test \
+	oldfstat.gen.test oldlstat.gen.test oldstat.gen.test \
+	open.gen.test openat.gen.test osf_utimes.gen.test \
+	pause.gen.test perf_event_open.gen.test \
+	perf_event_open_nonverbose.gen.test \
 	perf_event_open_unabbrev.gen.test pipe2.gen.test \
 	pkey_alloc.gen.test pkey_free.gen.test pkey_mprotect.gen.test \
 	ppoll.gen.test ppoll-v.gen.test pread64-pwrite64.gen.test \
@@ -2932,22 +3048,23 @@
 	setresuid.gen.test setresuid32.gen.test setreuid.gen.test \
 	setreuid32.gen.test setrlimit.gen.test setuid.gen.test \
 	setuid32.gen.test shmxt.gen.test shutdown.gen.test \
-	siginfo.gen.test signal_receive.gen.test signalfd4.gen.test \
-	sigreturn.gen.test sigsuspend.gen.test socketcall.gen.test \
-	splice.gen.test stat.gen.test stat64.gen.test statfs.gen.test \
-	statfs64.gen.test statx.gen.test swap.gen.test \
-	sxetmask.gen.test symlink.gen.test symlinkat.gen.test \
-	sync.gen.test sync_file_range.gen.test \
-	sync_file_range2.gen.test sysinfo.gen.test syslog.gen.test \
-	tee.gen.test time.gen.test timer_create.gen.test \
-	timer_xettime.gen.test timerfd_xettime.gen.test times.gen.test \
-	times-fail.gen.test trace_fstat.gen.test \
-	trace_fstatfs.gen.test trace_lstat.gen.test \
-	trace_question.gen.test trace_stat.gen.test \
-	trace_stat_like.gen.test trace_statfs.gen.test \
-	trace_statfs_like.gen.test truncate.gen.test \
-	truncate64.gen.test ugetrlimit.gen.test umask.gen.test \
-	umoven-illptr.gen.test umovestr-illptr.gen.test \
+	sigaction.gen.test siginfo.gen.test signal.gen.test \
+	signal_receive.gen.test signalfd4.gen.test sigpending.gen.test \
+	sigprocmask.gen.test sigreturn.gen.test sigsuspend.gen.test \
+	socketcall.gen.test splice.gen.test stat.gen.test \
+	stat64.gen.test statfs.gen.test statfs64.gen.test \
+	statx.gen.test swap.gen.test sxetmask.gen.test \
+	symlink.gen.test symlinkat.gen.test sync.gen.test \
+	sync_file_range.gen.test sync_file_range2.gen.test \
+	sysinfo.gen.test syslog.gen.test tee.gen.test time.gen.test \
+	timer_create.gen.test timer_xettime.gen.test \
+	timerfd_xettime.gen.test times.gen.test times-fail.gen.test \
+	trace_fstat.gen.test trace_fstatfs.gen.test \
+	trace_lstat.gen.test trace_question.gen.test \
+	trace_stat.gen.test trace_stat_like.gen.test \
+	trace_statfs.gen.test trace_statfs_like.gen.test \
+	truncate.gen.test truncate64.gen.test ugetrlimit.gen.test \
+	umask.gen.test umoven-illptr.gen.test umovestr-illptr.gen.test \
 	umovestr3.gen.test unlink.gen.test unlinkat.gen.test \
 	unshare.gen.test userfaultfd.gen.test ustat.gen.test \
 	utime.gen.test utimensat.gen.test utimes.gen.test \
@@ -2987,6 +3104,7 @@
 	net-yy-netlink.test \
 	net-yy-unix.test \
 	net.test \
+	netlink_sock_diag.test \
 	nsyscalls.test \
 	oldselect.test \
 	personality.test \
@@ -3004,9 +3122,9 @@
 	prctl-tsc.test \
 	qual_fault-exit_group.test \
 	readv.test \
+	rt_sigaction.test \
 	scm_rights-fd.test \
 	seccomp-strict.test \
-	sigaction.test \
 	sigaltstack.test \
 	sun_path.test \
 	uio.test \
@@ -3030,6 +3148,7 @@
 	detach-stopped.test \
 	filter-unavailable.test \
 	get_regs.test \
+	interactive_block.test \
 	ksysent.test \
 	opipe.test \
 	options-syntax.test \
@@ -3055,6 +3174,7 @@
 	strace-t.test \
 	strace-tt.test \
 	strace-ttt.test \
+	termsig.test \
 	threads-execve.test \
 	# end of MISC_TESTS
 
@@ -3100,6 +3220,7 @@
 	qual_inject-signal.expected \
 	quotactl.h \
 	regex.in \
+	rt_sigaction.awk \
 	run.sh \
 	sched.in \
 	scno_tampering.sh \
@@ -3107,7 +3228,6 @@
 	setresugid.c \
 	setreugid.c \
 	setugid.c \
-	sigaction.awk \
 	sigaltstack.expected \
 	sockname.c \
 	strace-C.expected \
@@ -3253,6 +3373,10 @@
 	@rm -f attach-p-cmd-p$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(attach_p_cmd_p_OBJECTS) $(attach_p_cmd_p_LDADD) $(LIBS)
 
+block_reset_raise_run$(EXEEXT): $(block_reset_raise_run_OBJECTS) $(block_reset_raise_run_DEPENDENCIES) $(EXTRA_block_reset_raise_run_DEPENDENCIES) 
+	@rm -f block_reset_raise_run$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(block_reset_raise_run_OBJECTS) $(block_reset_raise_run_LDADD) $(LIBS)
+
 bpf$(EXEEXT): $(bpf_OBJECTS) $(bpf_DEPENDENCIES) $(EXTRA_bpf_DEPENDENCIES) 
 	@rm -f bpf$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(bpf_OBJECTS) $(bpf_LDADD) $(LIBS)
@@ -3957,10 +4081,22 @@
 	@rm -f net-yy-unix$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(net_yy_unix_OBJECTS) $(net_yy_unix_LDADD) $(LIBS)
 
+netlink_audit$(EXEEXT): $(netlink_audit_OBJECTS) $(netlink_audit_DEPENDENCIES) $(EXTRA_netlink_audit_DEPENDENCIES) 
+	@rm -f netlink_audit$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(netlink_audit_OBJECTS) $(netlink_audit_LDADD) $(LIBS)
+
+netlink_generic$(EXEEXT): $(netlink_generic_OBJECTS) $(netlink_generic_DEPENDENCIES) $(EXTRA_netlink_generic_DEPENDENCIES) 
+	@rm -f netlink_generic$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(netlink_generic_OBJECTS) $(netlink_generic_LDADD) $(LIBS)
+
 netlink_inet_diag$(EXEEXT): $(netlink_inet_diag_OBJECTS) $(netlink_inet_diag_DEPENDENCIES) $(EXTRA_netlink_inet_diag_DEPENDENCIES) 
 	@rm -f netlink_inet_diag$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(netlink_inet_diag_OBJECTS) $(netlink_inet_diag_LDADD) $(LIBS)
 
+netlink_netfilter$(EXEEXT): $(netlink_netfilter_OBJECTS) $(netlink_netfilter_DEPENDENCIES) $(EXTRA_netlink_netfilter_DEPENDENCIES) 
+	@rm -f netlink_netfilter$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(netlink_netfilter_OBJECTS) $(netlink_netfilter_LDADD) $(LIBS)
+
 netlink_netlink_diag$(EXEEXT): $(netlink_netlink_diag_OBJECTS) $(netlink_netlink_diag_DEPENDENCIES) $(EXTRA_netlink_netlink_diag_DEPENDENCIES) 
 	@rm -f netlink_netlink_diag$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(netlink_netlink_diag_OBJECTS) $(netlink_netlink_diag_LDADD) $(LIBS)
@@ -3969,14 +4105,46 @@
 	@rm -f netlink_protocol$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(netlink_protocol_OBJECTS) $(netlink_protocol_LDADD) $(LIBS)
 
+netlink_route$(EXEEXT): $(netlink_route_OBJECTS) $(netlink_route_DEPENDENCIES) $(EXTRA_netlink_route_DEPENDENCIES) 
+	@rm -f netlink_route$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(netlink_route_OBJECTS) $(netlink_route_LDADD) $(LIBS)
+
+netlink_selinux$(EXEEXT): $(netlink_selinux_OBJECTS) $(netlink_selinux_DEPENDENCIES) $(EXTRA_netlink_selinux_DEPENDENCIES) 
+	@rm -f netlink_selinux$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(netlink_selinux_OBJECTS) $(netlink_selinux_LDADD) $(LIBS)
+
+netlink_sock_diag$(EXEEXT): $(netlink_sock_diag_OBJECTS) $(netlink_sock_diag_DEPENDENCIES) $(EXTRA_netlink_sock_diag_DEPENDENCIES) 
+	@rm -f netlink_sock_diag$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(netlink_sock_diag_OBJECTS) $(netlink_sock_diag_LDADD) $(LIBS)
+
 netlink_unix_diag$(EXEEXT): $(netlink_unix_diag_OBJECTS) $(netlink_unix_diag_DEPENDENCIES) $(EXTRA_netlink_unix_diag_DEPENDENCIES) 
 	@rm -f netlink_unix_diag$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(netlink_unix_diag_OBJECTS) $(netlink_unix_diag_LDADD) $(LIBS)
 
+netlink_xfrm$(EXEEXT): $(netlink_xfrm_OBJECTS) $(netlink_xfrm_DEPENDENCIES) $(EXTRA_netlink_xfrm_DEPENDENCIES) 
+	@rm -f netlink_xfrm$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(netlink_xfrm_OBJECTS) $(netlink_xfrm_LDADD) $(LIBS)
+
 newfstatat$(EXEEXT): $(newfstatat_OBJECTS) $(newfstatat_DEPENDENCIES) $(EXTRA_newfstatat_DEPENDENCIES) 
 	@rm -f newfstatat$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(newfstatat_OBJECTS) $(newfstatat_LDADD) $(LIBS)
 
+nlattr$(EXEEXT): $(nlattr_OBJECTS) $(nlattr_DEPENDENCIES) $(EXTRA_nlattr_DEPENDENCIES) 
+	@rm -f nlattr$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(nlattr_OBJECTS) $(nlattr_LDADD) $(LIBS)
+
+nlattr_inet_diag_msg$(EXEEXT): $(nlattr_inet_diag_msg_OBJECTS) $(nlattr_inet_diag_msg_DEPENDENCIES) $(EXTRA_nlattr_inet_diag_msg_DEPENDENCIES) 
+	@rm -f nlattr_inet_diag_msg$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(nlattr_inet_diag_msg_OBJECTS) $(nlattr_inet_diag_msg_LDADD) $(LIBS)
+
+nlattr_netlink_diag_msg$(EXEEXT): $(nlattr_netlink_diag_msg_OBJECTS) $(nlattr_netlink_diag_msg_DEPENDENCIES) $(EXTRA_nlattr_netlink_diag_msg_DEPENDENCIES) 
+	@rm -f nlattr_netlink_diag_msg$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(nlattr_netlink_diag_msg_OBJECTS) $(nlattr_netlink_diag_msg_LDADD) $(LIBS)
+
+nlattr_unix_diag_msg$(EXEEXT): $(nlattr_unix_diag_msg_OBJECTS) $(nlattr_unix_diag_msg_DEPENDENCIES) $(EXTRA_nlattr_unix_diag_msg_DEPENDENCIES) 
+	@rm -f nlattr_unix_diag_msg$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(nlattr_unix_diag_msg_OBJECTS) $(nlattr_unix_diag_msg_LDADD) $(LIBS)
+
 nsyscalls$(EXEEXT): $(nsyscalls_OBJECTS) $(nsyscalls_DEPENDENCIES) $(EXTRA_nsyscalls_DEPENDENCIES) 
 	@rm -f nsyscalls$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(nsyscalls_OBJECTS) $(nsyscalls_LDADD) $(LIBS)
@@ -4265,6 +4433,10 @@
 	@rm -f rmdir$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(rmdir_OBJECTS) $(rmdir_LDADD) $(LIBS)
 
+rt_sigaction$(EXEEXT): $(rt_sigaction_OBJECTS) $(rt_sigaction_DEPENDENCIES) $(EXTRA_rt_sigaction_DEPENDENCIES) 
+	@rm -f rt_sigaction$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(rt_sigaction_OBJECTS) $(rt_sigaction_LDADD) $(LIBS)
+
 rt_sigpending$(EXEEXT): $(rt_sigpending_OBJECTS) $(rt_sigpending_DEPENDENCIES) $(EXTRA_rt_sigpending_DEPENDENCIES) 
 	@rm -f rt_sigpending$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(rt_sigpending_OBJECTS) $(rt_sigpending_LDADD) $(LIBS)
@@ -4293,6 +4465,10 @@
 	@rm -f rt_tgsigqueueinfo$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(rt_tgsigqueueinfo_OBJECTS) $(rt_tgsigqueueinfo_LDADD) $(LIBS)
 
+run_expect_termsig$(EXEEXT): $(run_expect_termsig_OBJECTS) $(run_expect_termsig_DEPENDENCIES) $(EXTRA_run_expect_termsig_DEPENDENCIES) 
+	@rm -f run_expect_termsig$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(run_expect_termsig_OBJECTS) $(run_expect_termsig_LDADD) $(LIBS)
+
 sched_get_priority_mxx$(EXEEXT): $(sched_get_priority_mxx_OBJECTS) $(sched_get_priority_mxx_DEPENDENCIES) $(EXTRA_sched_get_priority_mxx_DEPENDENCIES) 
 	@rm -f sched_get_priority_mxx$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(sched_get_priority_mxx_OBJECTS) $(sched_get_priority_mxx_LDADD) $(LIBS)
@@ -4469,6 +4645,10 @@
 	@rm -f siginfo$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(siginfo_OBJECTS) $(siginfo_LDADD) $(LIBS)
 
+signal$(EXEEXT): $(signal_OBJECTS) $(signal_DEPENDENCIES) $(EXTRA_signal_DEPENDENCIES) 
+	@rm -f signal$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(signal_OBJECTS) $(signal_LDADD) $(LIBS)
+
 signal_receive$(EXEEXT): $(signal_receive_OBJECTS) $(signal_receive_DEPENDENCIES) $(EXTRA_signal_receive_DEPENDENCIES) 
 	@rm -f signal_receive$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(signal_receive_OBJECTS) $(signal_receive_LDADD) $(LIBS)
@@ -4477,6 +4657,14 @@
 	@rm -f signalfd4$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(signalfd4_OBJECTS) $(signalfd4_LDADD) $(LIBS)
 
+sigpending$(EXEEXT): $(sigpending_OBJECTS) $(sigpending_DEPENDENCIES) $(EXTRA_sigpending_DEPENDENCIES) 
+	@rm -f sigpending$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(sigpending_OBJECTS) $(sigpending_LDADD) $(LIBS)
+
+sigprocmask$(EXEEXT): $(sigprocmask_OBJECTS) $(sigprocmask_DEPENDENCIES) $(EXTRA_sigprocmask_DEPENDENCIES) 
+	@rm -f sigprocmask$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(sigprocmask_OBJECTS) $(sigprocmask_LDADD) $(LIBS)
+
 sigreturn$(EXEEXT): $(sigreturn_OBJECTS) $(sigreturn_DEPENDENCIES) $(EXTRA_sigreturn_DEPENDENCIES) 
 	@rm -f sigreturn$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(sigreturn_OBJECTS) $(sigreturn_LDADD) $(LIBS)
@@ -4641,6 +4829,10 @@
 	@rm -f uname$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(uname_OBJECTS) $(uname_LDADD) $(LIBS)
 
+unblock_reset_raise$(EXEEXT): $(unblock_reset_raise_OBJECTS) $(unblock_reset_raise_DEPENDENCIES) $(EXTRA_unblock_reset_raise_DEPENDENCIES) 
+	@rm -f unblock_reset_raise$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(unblock_reset_raise_OBJECTS) $(unblock_reset_raise_LDADD) $(LIBS)
+
 unix-pair-send-recv$(EXEEXT): $(unix_pair_send_recv_OBJECTS) $(unix_pair_send_recv_DEPENDENCIES) $(EXTRA_unix_pair_send_recv_DEPENDENCIES) 
 	@rm -f unix-pair-send-recv$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(unix_pair_send_recv_OBJECTS) $(unix_pair_send_recv_LDADD) $(LIBS)
@@ -4741,6 +4933,10 @@
 	@rm -f xettimeofday$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(xettimeofday_OBJECTS) $(xettimeofday_LDADD) $(LIBS)
 
+zeroargc$(EXEEXT): $(zeroargc_OBJECTS) $(zeroargc_DEPENDENCIES) $(EXTRA_zeroargc_DEPENDENCIES) 
+	@rm -f zeroargc$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(zeroargc_OBJECTS) $(zeroargc_LDADD) $(LIBS)
+
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
 
@@ -4761,6 +4957,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/attach-f-p.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/attach-p-cmd-cmd.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/attach-p-cmd-p.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/block_reset_raise_run.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/brk.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btrfs.Po@am__quote@
@@ -4893,6 +5090,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ksysent.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lchown.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lchown32.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-create_nl_socket.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-errno2name.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-error_msg.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-fill_memory.Po@am__quote@
@@ -4958,11 +5156,22 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-yy-inet.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-yy-netlink.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-yy-unix.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_audit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_generic.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_inet_diag.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_netfilter.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_netlink_diag.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_protocol.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_route.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_selinux.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_sock_diag.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_unix_diag.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_xfrm.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/newfstatat-newfstatat.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_inet_diag_msg.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_netlink_diag_msg.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_unix_diag_msg.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nsyscalls.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/old_mmap.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oldfstat.Po@am__quote@
@@ -5035,6 +5244,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/request_key.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/restart_syscall.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rmdir.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigaction.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigpending.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigprocmask.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigqueueinfo.Po@am__quote@
@@ -5042,6 +5252,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigsuspend.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigtimedwait.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_tgsigqueueinfo.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/run_expect_termsig.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_get_priority_mxx.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_rr_get_interval.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetaffinity.Po@am__quote@
@@ -5086,8 +5297,11 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigaction.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigaltstack.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/siginfo.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal_receive.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signalfd4.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigpending.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigprocmask.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigreturn.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigsuspend.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sleep.Po@am__quote@
@@ -5133,6 +5347,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umovestr2.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umovestr3.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uname.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unblock_reset_raise.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unix-pair-send-recv.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unix-pair-sendto-recvfrom.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unlink.Po@am__quote@
@@ -5158,6 +5373,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetpgid.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetpriority.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xettimeofday.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zeroargc.Po@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -5173,6 +5389,20 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
+libtests_a-create_nl_socket.o: create_nl_socket.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-create_nl_socket.o -MD -MP -MF $(DEPDIR)/libtests_a-create_nl_socket.Tpo -c -o libtests_a-create_nl_socket.o `test -f 'create_nl_socket.c' || echo '$(srcdir)/'`create_nl_socket.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-create_nl_socket.Tpo $(DEPDIR)/libtests_a-create_nl_socket.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='create_nl_socket.c' object='libtests_a-create_nl_socket.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) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-create_nl_socket.o `test -f 'create_nl_socket.c' || echo '$(srcdir)/'`create_nl_socket.c
+
+libtests_a-create_nl_socket.obj: create_nl_socket.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-create_nl_socket.obj -MD -MP -MF $(DEPDIR)/libtests_a-create_nl_socket.Tpo -c -o libtests_a-create_nl_socket.obj `if test -f 'create_nl_socket.c'; then $(CYGPATH_W) 'create_nl_socket.c'; else $(CYGPATH_W) '$(srcdir)/create_nl_socket.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-create_nl_socket.Tpo $(DEPDIR)/libtests_a-create_nl_socket.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='create_nl_socket.c' object='libtests_a-create_nl_socket.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) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-create_nl_socket.obj `if test -f 'create_nl_socket.c'; then $(CYGPATH_W) 'create_nl_socket.c'; else $(CYGPATH_W) '$(srcdir)/create_nl_socket.c'; fi`
+
 libtests_a-errno2name.o: errno2name.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-errno2name.o -MD -MP -MF $(DEPDIR)/libtests_a-errno2name.Tpo -c -o libtests_a-errno2name.o `test -f 'errno2name.c' || echo '$(srcdir)/'`errno2name.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-errno2name.Tpo $(DEPDIR)/libtests_a-errno2name.Po
@@ -6511,12 +6741,42 @@
 $(srcdir)/net-sockaddr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
 	$(AM_V_GEN) $^ $@
 
+$(srcdir)/netlink_audit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_generic.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_netfilter.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
 $(srcdir)/netlink_protocol.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
 	$(AM_V_GEN) $^ $@
 
+$(srcdir)/netlink_route.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_selinux.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_xfrm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
 $(srcdir)/newfstatat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
 	$(AM_V_GEN) $^ $@
 
+$(srcdir)/nlattr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/nlattr_inet_diag_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/nlattr_netlink_diag_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/nlattr_unix_diag_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
 $(srcdir)/old_mmap.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
 	$(AM_V_GEN) $^ $@
 
@@ -6799,15 +7059,27 @@
 $(srcdir)/shutdown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
 	$(AM_V_GEN) $^ $@
 
+$(srcdir)/sigaction.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
 $(srcdir)/siginfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
 	$(AM_V_GEN) $^ $@
 
+$(srcdir)/signal.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
 $(srcdir)/signal_receive.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
 	$(AM_V_GEN) $^ $@
 
 $(srcdir)/signalfd4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
 	$(AM_V_GEN) $^ $@
 
+$(srcdir)/sigpending.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sigprocmask.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
 $(srcdir)/sigreturn.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
 	$(AM_V_GEN) $^ $@
 
@@ -7014,8 +7286,8 @@
 clean-local-check:
 	-rm -rf -- $(TESTS:.test=.dir) $(GEN_TESTS:.gen.test=.dir)
 
-syscallent.i: $(top_srcdir)/$(OS)/$(ARCH)/syscallent.h
-	$(CPP) -P $(SCNO_CPPFLAGS) $^ -o $@
+syscallent.i: $(top_builddir)/config.h $(top_srcdir)/$(OS)/$(ARCH)/syscallent.h
+	$(CPP) -P $(SCNO_CPPFLAGS) -include $^ -o $@
 
 scno.h: $(top_srcdir)/scno.head syscallent.i
 	echo '/* Generated by Makefile from $^; do not edit. */' > $@-t
diff --git a/tests-mx32/add_key.c b/tests-mx32/add_key.c
index d2696f9..1de0cc3 100644
--- a/tests-mx32/add_key.c
+++ b/tests-mx32/add_key.c
@@ -70,8 +70,7 @@
 {
 	static const char unterminated1[] = { '\1', '\2', '\3', '\4', '\5' };
 	static const char unterminated2[] = { '\6', '\7', '\10', '\11', '\12' };
-	static const char unterminated3[] =
-		{ '\16', '\17', '\20', '\21', '\22' };
+	static const char unterminated3[] = { '\16', '\17', '\20', '\21', '\22' };
 
 	char *bogus_type = tail_memdup(unterminated1, sizeof(unterminated1));
 	char *bogus_desc = tail_memdup(unterminated2, sizeof(unterminated2));
diff --git a/tests-mx32/aio.c b/tests-mx32/aio.c
index 677a02b..77b6c05 100644
--- a/tests-mx32/aio.c
+++ b/tests-mx32/aio.c
@@ -240,9 +240,9 @@
 		perror_msg_and_skip("io_submit");
 	printf("io_submit(%#lx, %u, ["
 	       "{data=%#" PRI__x64 ", pread, reqprio=11, fildes=0, "
-	               "buf=%p, nbytes=%u, offset=%" PRI__d64 "}, "
+		"buf=%p, nbytes=%u, offset=%" PRI__d64 "}, "
 	       "{data=%#" PRI__x64 ", pread, reqprio=22, fildes=0, "
-	               "buf=%p, nbytes=%u, offset=%" PRI__d64 "}"
+		"buf=%p, nbytes=%u, offset=%" PRI__d64 "}"
 	       "]) = %s\n",
 	       *ctx, nr,
 	       cb[0].aio_data, data0, sizeof_data0, cb[0].aio_offset,
@@ -317,18 +317,18 @@
 	printf("io_submit(%#lx, %ld, ["
 	       "{data=%#" PRI__x64 ", key=%u, %hu /* SUB_??? */, fildes=%d}, "
 	       "{key=%u, pwrite, reqprio=%hd, fildes=%d, str=NULL"
-	               ", nbytes=%" PRI__u64 ", offset=%" PRI__d64
+		", nbytes=%" PRI__u64 ", offset=%" PRI__d64
 # ifdef IOCB_FLAG_RESFD
-	               ", resfd=%d, flags=%#x"
+		", resfd=%d, flags=%#x"
 # endif
-	               "}, "
+		"}, "
 	       "{key=%u, pwrite, reqprio=%hd, fildes=%d, buf=%#" PRI__x64
-	               ", nbytes=%" PRI__u64 ", offset=%" PRI__d64 "}, "
+		", nbytes=%" PRI__u64 ", offset=%" PRI__d64 "}, "
 	       "{key=%u, pwrite, reqprio=%hd, fildes=%d"
-	               ", str=\"\\0\\1\\2\\3%.28s\"..."
-	               ", nbytes=%" PRI__u64 ", offset=%" PRI__d64 "}, "
+		", str=\"\\0\\1\\2\\3%.28s\"..."
+		", nbytes=%" PRI__u64 ", offset=%" PRI__d64 "}, "
 	       "{key=%u, pwritev, reqprio=%hd, fildes=%d, buf=%#" PRI__x64
-	               ", nbytes=%" PRI__u64 ", offset=%" PRI__d64 "}"
+		", nbytes=%" PRI__u64 ", offset=%" PRI__d64 "}"
 	       ", {NULL}, {%#lx}, %p]) = %s\n",
 	       *ctx, 1057L,
 	       cbv2[0].aio_data, cbv2[0].aio_key,
@@ -351,11 +351,11 @@
 		perror_msg_and_skip("io_submit");
 	printf("io_submit(%#lx, %u, ["
 	       "{data=%#" PRI__x64 ", preadv, reqprio=%hd, fildes=0, "
-	               "iovec=[{iov_base=%p, iov_len=%u}"
-	               ", {iov_base=%p, iov_len=%u}], offset=%" PRI__d64 "}, "
+		"iovec=[{iov_base=%p, iov_len=%u}"
+		", {iov_base=%p, iov_len=%u}], offset=%" PRI__d64 "}, "
 	       "{data=%#" PRI__x64 ", preadv, reqprio=%hd, fildes=0, "
-	               "iovec=[{iov_base=%p, iov_len=%u}"
-	               ", {iov_base=%p, iov_len=%u}], offset=%" PRI__d64 "}"
+		"iovec=[{iov_base=%p, iov_len=%u}"
+		", {iov_base=%p, iov_len=%u}], offset=%" PRI__d64 "}"
 	       "]) = %s\n",
 	       *ctx, nr,
 	       cbv[0].aio_data, cbv[0].aio_reqprio,
diff --git a/tests-mx32/block_reset_raise_run.c b/tests-mx32/block_reset_raise_run.c
new file mode 100644
index 0000000..e2c5c99
--- /dev/null
+++ b/tests-mx32/block_reset_raise_run.c
@@ -0,0 +1,55 @@
+/*
+ * Execute a command with blocked, reset, and raised signal.
+ *
+ * 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 "tests.h"
+#include <signal.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+int
+main(int ac, char **av)
+{
+	if (ac < 3)
+		error_msg_and_fail("usage: block_reset_raise_run signo path...");
+
+	sigset_t mask;
+	sigemptyset(&mask);
+	const int signo = atoi(av[1]);
+	if (sigaddset(&mask, signo))
+		perror_msg_and_fail("sigaddset: %s", av[1]);
+	if (sigprocmask(SIG_BLOCK, &mask, NULL))
+		perror_msg_and_fail("sigprocmask");
+	if (signal(signo, SIG_DFL) == SIG_ERR)
+		perror_msg_and_fail("signal: %s", av[1]);
+	if (raise(signo))
+		perror_msg_and_fail("raise: %s", av[1]);
+
+	execvp(av[2], av + 2);
+	perror_msg_and_fail("execvp: %s", av[2]);
+}
diff --git a/tests-mx32/btrfs.c b/tests-mx32/btrfs.c
index 7e5ccff..710d763 100644
--- a/tests-mx32/btrfs.c
+++ b/tests-mx32/btrfs.c
@@ -61,8 +61,8 @@
 
 static const char *btrfs_test_root;
 static int btrfs_test_dir_fd;
-static bool verbose = false;
-static bool write_ok = false;
+static bool verbose;
+static bool write_ok;
 
 const unsigned char uuid_reference[BTRFS_UUID_SIZE] = {
 	0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef,
@@ -75,10 +75,10 @@
 struct btrfs_ioctl_quota_rescan_args {
 	uint64_t flags, progress, reserved[6];
 };
-# define BTRFS_IOC_QUOTA_RESCAN _IOW(BTRFS_IOCTL_MAGIC, 44, \
-					struct btrfs_ioctl_quota_rescan_args)
-# define BTRFS_IOC_QUOTA_RESCAN_STATUS _IOR(BTRFS_IOCTL_MAGIC, 45, \
-					struct btrfs_ioctl_quota_rescan_args)
+# define BTRFS_IOC_QUOTA_RESCAN			\
+	_IOW(BTRFS_IOCTL_MAGIC, 44, struct btrfs_ioctl_quota_rescan_args)
+# define BTRFS_IOC_QUOTA_RESCAN_STATUS		\
+	_IOR(BTRFS_IOCTL_MAGIC, 45, struct btrfs_ioctl_quota_rescan_args)
 #endif
 
 #ifndef BTRFS_IOC_QUOTA_RESCAN_WAIT
@@ -86,30 +86,30 @@
 #endif
 
 #ifndef BTRFS_IOC_GET_FEATURES
-# define BTRFS_IOC_GET_FEATURES _IOR(BTRFS_IOCTL_MAGIC, 57, \
-                                   struct btrfs_ioctl_feature_flags)
-# define BTRFS_IOC_SET_FEATURES _IOW(BTRFS_IOCTL_MAGIC, 57, \
-                                   struct btrfs_ioctl_feature_flags[2])
-# define BTRFS_IOC_GET_SUPPORTED_FEATURES _IOR(BTRFS_IOCTL_MAGIC, 57, \
-                                   struct btrfs_ioctl_feature_flags[3])
+# define BTRFS_IOC_GET_FEATURES			\
+	_IOR(BTRFS_IOCTL_MAGIC, 57, struct btrfs_ioctl_feature_flags)
+# define BTRFS_IOC_SET_FEATURES			\
+	_IOW(BTRFS_IOCTL_MAGIC, 57, struct btrfs_ioctl_feature_flags[2])
+# define BTRFS_IOC_GET_SUPPORTED_FEATURES	\
+	_IOR(BTRFS_IOCTL_MAGIC, 57, struct btrfs_ioctl_feature_flags[3])
 #endif
 
 #ifndef HAVE_STRUCT_BTRFS_IOCTL_FEATURE_FLAGS_COMPAT_FLAGS
 struct btrfs_ioctl_feature_flags {
-        uint64_t compat_flags;
-        uint64_t compat_ro_flags;
-        uint64_t incompat_flags;
+	uint64_t compat_flags;
+	uint64_t compat_ro_flags;
+	uint64_t incompat_flags;
 };
 #endif
 
 #ifndef HAVE_STRUCT_BTRFS_IOCTL_DEFRAG_RANGE_ARGS_START
 struct btrfs_ioctl_defrag_range_args {
-        uint64_t start;
-        uint64_t len;
-        uint64_t flags;
-        uint32_t extent_thresh;
-        uint32_t compress_type;
-        uint32_t unused[4];
+	uint64_t start;
+	uint64_t len;
+	uint64_t flags;
+	uint32_t extent_thresh;
+	uint32_t compress_type;
+	uint32_t unused[4];
 };
 #endif
 
@@ -140,14 +140,14 @@
 #endif
 
 #ifndef BTRFS_IOC_TREE_SEARCH_V2
-# define BTRFS_IOC_TREE_SEARCH_V2 _IOWR(BTRFS_IOCTL_MAGIC, 17, \
-                                           struct btrfs_ioctl_search_args_v2)
+# define BTRFS_IOC_TREE_SEARCH_V2	\
+	_IOWR(BTRFS_IOCTL_MAGIC, 17, struct btrfs_ioctl_search_args_v2)
 struct btrfs_ioctl_search_args_v2 {
 	struct btrfs_ioctl_search_key key; /* in/out - search parameters */
 	uint64_t buf_size;		   /* in - size of buffer
 					    * out - on EOVERFLOW: needed size
 					    *       to store item */
-        uint64_t buf[0];		   /* out - found items */
+	uint64_t buf[0];		   /* out - found items */
 };
 #endif
 
diff --git a/tests-mx32/create_nl_socket.c b/tests-mx32/create_nl_socket.c
new file mode 100644
index 0000000..c2708d8
--- /dev/null
+++ b/tests-mx32/create_nl_socket.c
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2015-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 "tests.h"
+#include <sys/socket.h>
+#include "netlink.h"
+
+int
+create_nl_socket_ext(const int proto, const char *const name)
+{
+	const int fd = socket(AF_NETLINK, SOCK_RAW, proto);
+	if (fd < 0)
+		perror_msg_and_skip("socket AF_NETLINK %s", name);
+
+	const struct sockaddr_nl addr = { .nl_family = AF_NETLINK };
+	socklen_t len = sizeof(addr);
+
+	if (bind(fd, (const struct sockaddr *) &addr, len))
+		perror_msg_and_skip("bind AF_NETLINK %s", name);
+
+	/* one more operation on this socket to win the race */
+	int listening;
+	len = sizeof(listening);
+	if (getsockopt(fd, SOL_SOCKET, SO_ACCEPTCONN, &listening, &len))
+		perror_msg_and_fail("getsockopt");
+
+	return fd;
+}
diff --git a/tests-mx32/dup3.c b/tests-mx32/dup3.c
index 252e846..7a65b61 100644
--- a/tests-mx32/dup3.c
+++ b/tests-mx32/dup3.c
@@ -23,6 +23,6 @@
 
 #else
 
-SKIP_MAIN_UNDEFINED("__NR_dup3 && && O_CLOEXEC")
+SKIP_MAIN_UNDEFINED("__NR_dup3 && O_CLOEXEC")
 
 #endif
diff --git a/tests-mx32/errno2name.c b/tests-mx32/errno2name.c
index 4a17699..d481e2e 100644
--- a/tests-mx32/errno2name.c
+++ b/tests-mx32/errno2name.c
@@ -476,6 +476,7 @@
 #ifdef EXFULL
 	CASE(EXFULL);
 #endif
-	default: perror_msg_and_fail("unknown errno %d", errno);
+	default:
+		perror_msg_and_fail("unknown errno %d", errno);
 	}
 }
diff --git a/tests-mx32/execve.c b/tests-mx32/execve.c
index c558dd3..da3bc52 100644
--- a/tests-mx32/execve.c
+++ b/tests-mx32/execve.c
@@ -127,9 +127,14 @@
 #endif
 	       );
 
-	char str_a[] = "012345678901234567890123456789012";
-	char str_b[] = "_abcdefghijklmnopqrstuvwxyz()[]{}";
-#define DEFAULT_STRLEN ((unsigned int) sizeof(str_a) - 2)
+	char *const str_a = tail_alloc(DEFAULT_STRLEN + 2);
+	fill_memory_ex(str_a, DEFAULT_STRLEN + 1, '0', 10);
+	str_a[DEFAULT_STRLEN + 1] = '\0';
+
+	char *const str_b = tail_alloc(DEFAULT_STRLEN + 2);
+	fill_memory_ex(str_b, DEFAULT_STRLEN + 1, '_', 32);
+	str_b[DEFAULT_STRLEN + 1] = '\0';
+
 	char **const a = tail_alloc(sizeof(*a) * (DEFAULT_STRLEN + 2));
 	char **const b = tail_alloc(sizeof(*b) * (DEFAULT_STRLEN + 2));
 	unsigned int i;
diff --git a/tests-mx32/execveat.c b/tests-mx32/execveat.c
index 8ffc4d5..566a59f 100644
--- a/tests-mx32/execveat.c
+++ b/tests-mx32/execveat.c
@@ -133,9 +133,14 @@
 #endif
 	       errno2name());
 
-	char str_a[] = "012345678901234567890123456789012";
-	char str_b[] = "_abcdefghijklmnopqrstuvwxyz()[]{}";
-#define DEFAULT_STRLEN ((unsigned int) sizeof(str_a) - 2)
+	char *const str_a = tail_alloc(DEFAULT_STRLEN + 2);
+	fill_memory_ex(str_a, DEFAULT_STRLEN + 1, '0', 10);
+	str_a[DEFAULT_STRLEN + 1] = '\0';
+
+	char *const str_b = tail_alloc(DEFAULT_STRLEN + 2);
+	fill_memory_ex(str_b, DEFAULT_STRLEN + 1, '_', 32);
+	str_b[DEFAULT_STRLEN + 1] = '\0';
+
 	char **const a = tail_alloc(sizeof(*a) * (DEFAULT_STRLEN + 2));
 	char **const b = tail_alloc(sizeof(*b) * (DEFAULT_STRLEN + 2));
 	unsigned int i;
diff --git a/tests-mx32/futex.c b/tests-mx32/futex.c
index 9a9ab66..b75ab33 100644
--- a/tests-mx32/futex.c
+++ b/tests-mx32/futex.c
@@ -254,7 +254,7 @@
 	       zero_extend_signed_to_ull(tmout->tv_nsec), sprintrc(rc));
 
 	CHECK_FUTEX_ENOSYS(uaddr,
-		FUTEX_CLOCK_REALTIME | FUTEX_PRIVATE_FLAG | FUTEX_WAIT ,
+		FUTEX_CLOCK_REALTIME | FUTEX_PRIVATE_FLAG | FUTEX_WAIT,
 		VAL, tmout, uaddr2, 0, (rc == -1) && (errno == EAGAIN));
 	printf("futex(%p, FUTEX_WAIT_PRIVATE|FUTEX_CLOCK_REALTIME, %u"
 	       ", {tv_sec=%lld, tv_nsec=%llu}) = %s\n",
@@ -612,7 +612,7 @@
 
 	CHECK_FUTEX_ENOSYS(uaddr + 1, FUTEX_PRIVATE_FLAG | FUTEX_UNLOCK_PI, VAL,
 		tmout, uaddr2 + 1, VAL3, (rc == -1) && (errno == EFAULT));
-	printf("futex(%p, FUTEX_UNLOCK_PI_PRIVATE) = %s\n", uaddr +1,
+	printf("futex(%p, FUTEX_UNLOCK_PI_PRIVATE) = %s\n", uaddr + 1,
 		sprintrc(rc));
 
 	CHECK_INVALID_CLOCKRT(FUTEX_UNLOCK_PI, 0);
diff --git a/tests-mx32/gen_tests.am b/tests-mx32/gen_tests.am
new file mode 100644
index 0000000..f1b34dd
--- /dev/null
+++ b/tests-mx32/gen_tests.am
@@ -0,0 +1,1007 @@
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in; do not edit.
+GEN_TESTS = _newselect.gen.test accept.gen.test accept4.gen.test access.gen.test acct.gen.test add_key.gen.test adjtimex.gen.test aio.gen.test alarm.gen.test bpf.gen.test btrfs.gen.test chmod.gen.test chown.gen.test chown32.gen.test chroot.gen.test clock.gen.test clock_adjtime.gen.test clock_nanosleep.gen.test clock_xettime.gen.test copy_file_range.gen.test creat.gen.test delete_module.gen.test dup.gen.test dup2.gen.test dup3.gen.test epoll_create.gen.test epoll_create1.gen.test epoll_ctl.gen.test epoll_pwait.gen.test epoll_wait.gen.test erestartsys.gen.test execveat.gen.test execveat-v.gen.test faccessat.gen.test fadvise64_64.gen.test fallocate.gen.test fanotify_init.gen.test fanotify_mark.gen.test fchdir.gen.test fchmod.gen.test fchmodat.gen.test fchown.gen.test fchown32.gen.test fchownat.gen.test fcntl.gen.test fcntl64.gen.test fdatasync.gen.test file_handle.gen.test file_ioctl.gen.test finit_module.gen.test flock.gen.test fork-f.gen.test fstat.gen.test fstat64.gen.test fstatat64.gen.test fstatfs.gen.test fstatfs64.gen.test fsync.gen.test ftruncate.gen.test ftruncate64.gen.test futimesat.gen.test get_mempolicy.gen.test getcpu.gen.test getcwd.gen.test getdents.gen.test getdents64.gen.test getegid.gen.test getegid32.gen.test geteuid.gen.test geteuid32.gen.test getgid.gen.test getgid32.gen.test getgroups.gen.test getgroups32.gen.test getpeername.gen.test getpgrp.gen.test getpid.gen.test getppid.gen.test getrandom.gen.test getresgid.gen.test getresgid32.gen.test getresuid.gen.test getresuid32.gen.test getrlimit.gen.test getrusage.gen.test getsid.gen.test getsockname.gen.test gettid.gen.test getuid32.gen.test getxxid.gen.test inet-cmsg.gen.test init_module.gen.test inotify.gen.test inotify_init1.gen.test int_0x80.gen.test ioctl_block.gen.test ioctl_evdev.gen.test ioctl_evdev-v.gen.test ioctl_loop.gen.test ioctl_loop-v.gen.test ioctl_mtd.gen.test ioctl_rtc.gen.test ioctl_rtc-v.gen.test ioctl_scsi.gen.test ioctl_sg_io_v3.gen.test ioctl_sg_io_v4.gen.test ioctl_uffdio.gen.test ioctl_v4l2.gen.test ioperm.gen.test iopl.gen.test ioprio.gen.test ip_mreq.gen.test ipc.gen.test ipc_msg.gen.test ipc_sem.gen.test ipc_shm.gen.test kcmp.gen.test kexec_file_load.gen.test kexec_load.gen.test keyctl.gen.test kill.gen.test lchown.gen.test lchown32.gen.test link.gen.test linkat.gen.test lookup_dcookie.gen.test lstat.gen.test lstat64.gen.test madvise.gen.test mbind.gen.test membarrier.gen.test memfd_create.gen.test migrate_pages.gen.test mincore.gen.test mkdir.gen.test mkdirat.gen.test mknod.gen.test mknodat.gen.test mlock.gen.test mlock2.gen.test mlockall.gen.test mmap64.gen.test mmsg.gen.test mmsg-silent.gen.test mmsg_name.gen.test mmsg_name-v.gen.test mount.gen.test move_pages.gen.test mq.gen.test mq_sendrecv.gen.test mq_sendrecv-read.gen.test mq_sendrecv-write.gen.test msg_control.gen.test msg_control-v.gen.test msg_name.gen.test munlockall.gen.test nanosleep.gen.test net-icmp_filter.gen.test net-sockaddr.gen.test netlink_audit.gen.test netlink_generic.gen.test netlink_netfilter.gen.test netlink_protocol.gen.test netlink_route.gen.test netlink_selinux.gen.test netlink_xfrm.gen.test newfstatat.gen.test nlattr.gen.test nlattr_inet_diag_msg.gen.test nlattr_netlink_diag_msg.gen.test nlattr_unix_diag_msg.gen.test old_mmap.gen.test oldfstat.gen.test oldlstat.gen.test oldstat.gen.test open.gen.test openat.gen.test osf_utimes.gen.test pause.gen.test perf_event_open.gen.test perf_event_open_nonverbose.gen.test perf_event_open_unabbrev.gen.test pipe2.gen.test pkey_alloc.gen.test pkey_free.gen.test pkey_mprotect.gen.test ppoll.gen.test ppoll-v.gen.test pread64-pwrite64.gen.test preadv.gen.test preadv-pwritev.gen.test preadv2-pwritev2.gen.test printstr.gen.test prlimit64.gen.test process_vm_readv.gen.test process_vm_writev.gen.test pselect6.gen.test ptrace.gen.test pwritev.gen.test quotactl.gen.test quotactl-v.gen.test quotactl-xfs.gen.test quotactl-xfs-v.gen.test read-write.gen.test readahead.gen.test readdir.gen.test readlink.gen.test readlinkat.gen.test reboot.gen.test recvfrom.gen.test recvmmsg-timeout.gen.test recvmsg.gen.test regex.gen.test remap_file_pages.gen.test rename.gen.test renameat.gen.test renameat2.gen.test request_key.gen.test rmdir.gen.test rt_sigpending.gen.test rt_sigprocmask.gen.test rt_sigqueueinfo.gen.test rt_sigreturn.gen.test rt_sigsuspend.gen.test rt_sigtimedwait.gen.test rt_tgsigqueueinfo.gen.test sched.gen.test sched_get_priority_mxx.gen.test sched_rr_get_interval.gen.test sched_xetaffinity.gen.test sched_xetattr.gen.test sched_xetparam.gen.test sched_xetscheduler.gen.test sched_yield.gen.test seccomp-filter.gen.test seccomp-filter-v.gen.test select.gen.test semop.gen.test sendfile.gen.test sendfile64.gen.test set_mempolicy.gen.test setdomainname.gen.test setfsgid.gen.test setfsgid32.gen.test setfsuid.gen.test setfsuid32.gen.test setgid.gen.test setgid32.gen.test setgroups.gen.test setgroups32.gen.test sethostname.gen.test setns.gen.test setregid.gen.test setregid32.gen.test setresgid.gen.test setresgid32.gen.test setresuid.gen.test setresuid32.gen.test setreuid.gen.test setreuid32.gen.test setrlimit.gen.test setuid.gen.test setuid32.gen.test shmxt.gen.test shutdown.gen.test sigaction.gen.test siginfo.gen.test signal.gen.test signal_receive.gen.test signalfd4.gen.test sigpending.gen.test sigprocmask.gen.test sigreturn.gen.test sigsuspend.gen.test socketcall.gen.test splice.gen.test stat.gen.test stat64.gen.test statfs.gen.test statfs64.gen.test statx.gen.test swap.gen.test sxetmask.gen.test symlink.gen.test symlinkat.gen.test sync.gen.test sync_file_range.gen.test sync_file_range2.gen.test sysinfo.gen.test syslog.gen.test tee.gen.test time.gen.test timer_create.gen.test timer_xettime.gen.test timerfd_xettime.gen.test times.gen.test times-fail.gen.test trace_fstat.gen.test trace_fstatfs.gen.test trace_lstat.gen.test trace_question.gen.test trace_stat.gen.test trace_stat_like.gen.test trace_statfs.gen.test trace_statfs_like.gen.test truncate.gen.test truncate64.gen.test ugetrlimit.gen.test umask.gen.test umoven-illptr.gen.test umovestr-illptr.gen.test umovestr3.gen.test unlink.gen.test unlinkat.gen.test unshare.gen.test userfaultfd.gen.test ustat.gen.test utime.gen.test utimensat.gen.test utimes.gen.test vfork-f.gen.test vhangup.gen.test vmsplice.gen.test wait4.gen.test wait4-v.gen.test waitid.gen.test waitid-v.gen.test waitpid.gen.test xattr.gen.test xattr-strings.gen.test xet_robust_list.gen.test xetitimer.gen.test xetpgid.gen.test xetpriority.gen.test xettimeofday.gen.test
+
+$(srcdir)/_newselect.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/accept.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/accept4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/access.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/acct.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/add_key.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/adjtimex.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/aio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/alarm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/bpf.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/btrfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/chmod.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/chown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/chown32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/chroot.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/clock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/clock_adjtime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/clock_nanosleep.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/clock_xettime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/copy_file_range.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/creat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/delete_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/dup.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/dup2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/dup3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/epoll_create.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/epoll_create1.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/epoll_ctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/epoll_pwait.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/epoll_wait.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/erestartsys.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/execveat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/execveat-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/faccessat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fadvise64_64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fallocate.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fanotify_init.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fanotify_mark.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fchdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fchmod.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fchmodat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fchown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fchown32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fchownat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fcntl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fcntl64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fdatasync.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/file_handle.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/file_ioctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/finit_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/flock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fork-f.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fstat64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fstatat64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fstatfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fstatfs64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fsync.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ftruncate.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ftruncate64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/futimesat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/get_mempolicy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getcpu.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getcwd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getdents.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getdents64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getegid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getegid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/geteuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/geteuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getgroups.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getgroups32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getpeername.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getpgrp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getpid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getppid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getrandom.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getresgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getresgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getresuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getresuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getrlimit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getrusage.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getsid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getsockname.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/gettid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getxxid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/inet-cmsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/init_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/inotify.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/inotify_init1.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/int_0x80.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_block.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_evdev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_evdev-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_loop.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_loop-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_mtd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_rtc.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_rtc-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_scsi.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_sg_io_v3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_sg_io_v4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_uffdio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_v4l2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioperm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/iopl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioprio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ip_mreq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_sem.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_shm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/kcmp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/kexec_file_load.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/kexec_load.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/keyctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/kill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/lchown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/lchown32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/link.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/linkat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/lookup_dcookie.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/lstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/lstat64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/madvise.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mbind.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/membarrier.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/memfd_create.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/migrate_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mincore.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mkdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mkdirat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mknod.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mknodat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mlock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mlock2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mlockall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mmsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mmsg-silent.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mmsg_name.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mmsg_name-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mount.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/move_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mq_sendrecv.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mq_sendrecv-read.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mq_sendrecv-write.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/msg_control.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/msg_control-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/msg_name.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/munlockall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/nanosleep.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/net-icmp_filter.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/net-sockaddr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_audit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_generic.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_netfilter.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_protocol.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_route.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_selinux.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_xfrm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/newfstatat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/nlattr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/nlattr_inet_diag_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/nlattr_netlink_diag_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/nlattr_unix_diag_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/old_mmap.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/oldfstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/oldlstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/oldstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/open.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/openat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/osf_utimes.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/pause.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/perf_event_open.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/perf_event_open_nonverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/perf_event_open_unabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/pipe2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/pkey_alloc.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/pkey_free.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/pkey_mprotect.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ppoll.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ppoll-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/pread64-pwrite64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/preadv.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/preadv-pwritev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/preadv2-pwritev2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/printstr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/prlimit64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/process_vm_readv.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/process_vm_writev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/pselect6.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ptrace.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/pwritev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/quotactl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/quotactl-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/quotactl-xfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/quotactl-xfs-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/read-write.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/readahead.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/readdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/readlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/readlinkat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/reboot.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/recvfrom.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/recvmmsg-timeout.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/recvmsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/regex.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/remap_file_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/rename.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/renameat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/renameat2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/request_key.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/rmdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/rt_sigpending.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/rt_sigprocmask.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/rt_sigqueueinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/rt_sigreturn.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/rt_sigsuspend.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/rt_sigtimedwait.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/rt_tgsigqueueinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sched.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sched_get_priority_mxx.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sched_rr_get_interval.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sched_xetaffinity.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sched_xetattr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sched_xetparam.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sched_xetscheduler.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sched_yield.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/seccomp-filter.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/seccomp-filter-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/select.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/semop.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sendfile.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sendfile64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/set_mempolicy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setdomainname.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setfsgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setfsgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setfsuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setfsuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setgroups.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setgroups32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sethostname.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setregid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setregid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setresgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setresgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setresuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setresuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setreuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setreuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setrlimit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/shmxt.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/shutdown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sigaction.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/siginfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/signal.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/signal_receive.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/signalfd4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sigpending.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sigprocmask.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sigreturn.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sigsuspend.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/socketcall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/splice.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/stat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/stat64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/statfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/statfs64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/statx.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/swap.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sxetmask.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/symlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/symlinkat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sync.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sync_file_range.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sync_file_range2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sysinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/syslog.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/tee.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/time.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/timer_create.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/timer_xettime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/timerfd_xettime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/times.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/times-fail.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_fstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_fstatfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_lstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_question.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_stat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_stat_like.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_statfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_statfs_like.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/truncate.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/truncate64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ugetrlimit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/umask.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/umoven-illptr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/umovestr-illptr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/umovestr3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/unlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/unlinkat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/unshare.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/userfaultfd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ustat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/utime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/utimensat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/utimes.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/vfork-f.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/vhangup.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/vmsplice.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/wait4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/wait4-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/waitid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/waitid-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/waitpid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/xattr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/xattr-strings.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/xet_robust_list.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/xetitimer.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/xetpgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/xetpriority.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/xettimeofday.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
diff --git a/tests-mx32/gen_tests.in b/tests-mx32/gen_tests.in
index be0a3a2..57fd5fd 100644
--- a/tests-mx32/gen_tests.in
+++ b/tests-mx32/gen_tests.in
@@ -184,8 +184,18 @@
 nanosleep	-a20
 net-icmp_filter	-e trace=getsockopt,setsockopt
 net-sockaddr	-a24 -e trace=connect
-netlink_protocol	-e trace=%network
+netlink_audit	+netlink_sock_diag.test
+netlink_generic	+netlink_sock_diag.test
+netlink_netfilter	+netlink_sock_diag.test
+netlink_protocol	-e trace=sendto
+netlink_route	+netlink_sock_diag.test
+netlink_selinux	+netlink_sock_diag.test
+netlink_xfrm	+netlink_sock_diag.test
 newfstatat	-a32 -v -P stat.sample -P /dev/full
+nlattr		+netlink_sock_diag.test
+nlattr_inet_diag_msg		+netlink_sock_diag.test
+nlattr_netlink_diag_msg		+netlink_sock_diag.test
+nlattr_unix_diag_msg		+netlink_sock_diag.test
 old_mmap	-a11 -e trace=mmap
 oldfstat	-a18 -v -P stat.sample
 oldlstat	-a32 -v -P stat.sample -P /dev/full
@@ -280,9 +290,13 @@
 setuid32	-a12
 shmxt	-a11 -e trace='/(osf_)?shmat,shmdt'
 shutdown	-a24
+sigaction	-a31
 siginfo	-e trace=none
+signal	-a25 -e signal=none -e trace='/^signal$'
 signal_receive	-a16 -e trace=kill
 signalfd4
+sigpending	-a15
+sigprocmask	-a34
 sigreturn	-esignal='!USR1'
 sigsuspend	-a19 -esignal=none
 socketcall	-a20
diff --git a/tests-mx32/getcpu.c b/tests-mx32/getcpu.c
index 3cb49cb..2b15753 100644
--- a/tests-mx32/getcpu.c
+++ b/tests-mx32/getcpu.c
@@ -41,16 +41,16 @@
 main(void)
 {
 	unsigned *bogus_cpu =
-		(unsigned *) tail_alloc(sizeof(* bogus_cpu)) + 1;
+		(unsigned *) tail_alloc(sizeof(*bogus_cpu)) + 1;
 	unsigned *bogus_node =
-		(unsigned *) tail_alloc(sizeof(* bogus_node)) + 1;
+		(unsigned *) tail_alloc(sizeof(*bogus_node)) + 1;
 	unsigned *bogus_tcache =
-		(unsigned *) tail_alloc(sizeof(* bogus_tcache)) + 1;
+		(unsigned *) tail_alloc(sizeof(*bogus_tcache)) + 1;
 
 	long res;
 	TAIL_ALLOC_OBJECT_CONST_PTR(unsigned, cpu);
 	TAIL_ALLOC_OBJECT_CONST_PTR(unsigned, node);
-	long * tcache = tail_alloc(128);
+	long *tcache = tail_alloc(128);
 
 	res = syscall(__NR_getcpu, NULL, NULL, NULL);
 	printf("getcpu(NULL, NULL, NULL) = %s\n", sprintrc(res));
diff --git a/tests-mx32/init.sh b/tests-mx32/init.sh
index 2844765..2d4d0b4 100644
--- a/tests-mx32/init.sh
+++ b/tests-mx32/init.sh
@@ -169,7 +169,7 @@
 
 	check_prog diff
 
-	diff -- "$expected" "$output" ||
+	diff -u -- "$expected" "$output" ||
 		fail_ "$error"
 }
 
@@ -366,7 +366,7 @@
 		STRACE=../strace
 fi
 
-: "${TIMEOUT_DURATION:=120}"
+: "${TIMEOUT_DURATION:=300}"
 : "${SLEEP_A_BIT:=sleep 1}"
 
 [ -z "${VERBOSE-}" ] ||
diff --git a/tests-mx32/interactive_block.test b/tests-mx32/interactive_block.test
new file mode 100755
index 0000000..f8f8173
--- /dev/null
+++ b/tests-mx32/interactive_block.test
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# Check that in interactive mode those signals that were blocked
+# at strace startup will remain blocked.
+
+. "${srcdir=.}/init.sh"
+
+strace0="$STRACE"
+for signo in 1 2 3 13 14 15; do
+	blocksig="../block_reset_raise_run $signo"
+	run_prog $blocksig ../umovestr
+	STRACE="$blocksig $strace0"
+	run_strace -I2 -echdir ../umovestr
+	match_diff "$LOG" "$srcdir/umovestr.expected"
+done
diff --git a/tests-mx32/ioctl.c b/tests-mx32/ioctl.c
index 5dc0864..3c666b0 100644
--- a/tests-mx32/ioctl.c
+++ b/tests-mx32/ioctl.c
@@ -54,7 +54,7 @@
  && defined EV_KEY
 
 int
-main(void )
+main(void)
 {
 	uint64_t data = 0;
 
diff --git a/tests-mx32/ioctl_block.c b/tests-mx32/ioctl_block.c
index 8e883d4..e44c4c4 100644
--- a/tests-mx32/ioctl_block.c
+++ b/tests-mx32/ioctl_block.c
@@ -58,9 +58,11 @@
 #endif
 };
 
-#define TEST_NULL_ARG(cmd) \
-	ioctl(-1, cmd, 0); \
-	printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", #cmd)
+#define TEST_NULL_ARG(cmd)						\
+	do {								\
+		ioctl(-1, cmd, 0);					\
+		printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", #cmd);	\
+	} while (0)
 
 int
 main(void)
diff --git a/tests-mx32/ioctl_evdev.c b/tests-mx32/ioctl_evdev.c
index 6cbc09f..9d16cec 100644
--- a/tests-mx32/ioctl_evdev.c
+++ b/tests-mx32/ioctl_evdev.c
@@ -67,9 +67,11 @@
 # endif /* VERBOSE */
 }
 
-# define TEST_NULL_ARG(cmd) \
-	ioctl(-1, cmd, 0); \
-	printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", #cmd)
+# define TEST_NULL_ARG(cmd)						\
+	do {								\
+		ioctl(-1, cmd, 0);					\
+		printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", #cmd);	\
+	} while (0)
 
 int
 main(void)
diff --git a/tests-mx32/ioctl_mtd.c b/tests-mx32/ioctl_mtd.c
index 71d0c0d..6a7d94a 100644
--- a/tests-mx32/ioctl_mtd.c
+++ b/tests-mx32/ioctl_mtd.c
@@ -58,15 +58,17 @@
 			       (unsigned int) _IOC_NR(cmd), #cmd); \
 		else \
 			printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", #cmd); \
-		} while (0)
+	} while (0)
 
-#define TEST_erase_info_user(cmd, eiu) \
-	ioctl(-1, cmd, eiu); \
-	printf("ioctl(-1, MIXER_%s(%u) or %s, {start=%#x, length=%#x})" \
-	       " = -1 EBADF (%m)\n", \
-	       (_IOC_DIR(cmd) == _IOC_READ) ? "READ" : "WRITE", \
-	       (unsigned int) _IOC_NR(cmd), #cmd, \
-	       eiu->start, eiu->length)
+#define TEST_erase_info_user(cmd, eiu)						\
+	do {									\
+		ioctl(-1, cmd, eiu);						\
+		printf("ioctl(-1, MIXER_%s(%u) or %s, {start=%#x, length=%#x})"	\
+		       " = -1 EBADF (%m)\n",					\
+		       (_IOC_DIR(cmd) == _IOC_READ) ? "READ" : "WRITE",		\
+		       (unsigned int) _IOC_NR(cmd), #cmd,			\
+		       eiu->start, eiu->length);				\
+	} while (0)
 
 int
 main(void)
diff --git a/tests-mx32/ioctl_sg_io_v3.c b/tests-mx32/ioctl_sg_io_v3.c
index 3808b20..3385bca 100644
--- a/tests-mx32/ioctl_sg_io_v3.c
+++ b/tests-mx32/ioctl_sg_io_v3.c
@@ -198,12 +198,12 @@
 	       sg_io->iovec_count,
 	       sg_io->dxfer_len,
 	       sg_io->timeout,
-	       * (unsigned char *) (iov[0].iov_base + 0),
-	       * (unsigned char *) (iov[0].iov_base + 1),
+	       *(unsigned char *) (iov[0].iov_base + 0),
+	       *(unsigned char *) (iov[0].iov_base + 1),
 	       (unsigned int) iov[0].iov_len,
-	       * (unsigned char *) (iov[1].iov_base + 0),
-	       * (unsigned char *) (iov[1].iov_base + 1),
-	       * (unsigned char *) (iov[1].iov_base + 2),
+	       *(unsigned char *) (iov[1].iov_base + 0),
+	       *(unsigned char *) (iov[1].iov_base + 1),
+	       *(unsigned char *) (iov[1].iov_base + 2),
 	       (unsigned int) iov[1].iov_len,
 	       sg_io->status,
 	       sg_io->masked_status,
@@ -248,12 +248,12 @@
 	       sg_io->iovec_count,
 	       sg_io->dxfer_len,
 	       sg_io->timeout,
-	       * (unsigned char *) (iov[0].iov_base + 0),
-	       * (unsigned char *) (iov[0].iov_base + 1),
+	       *(unsigned char *) (iov[0].iov_base + 0),
+	       *(unsigned char *) (iov[0].iov_base + 1),
 	       (unsigned int) iov[0].iov_len,
-	       * (unsigned char *) (iov[1].iov_base + 0),
-	       * (unsigned char *) (iov[1].iov_base + 1),
-	       * (unsigned char *) (iov[1].iov_base + 2),
+	       *(unsigned char *) (iov[1].iov_base + 0),
+	       *(unsigned char *) (iov[1].iov_base + 1),
+	       *(unsigned char *) (iov[1].iov_base + 2),
 	       (unsigned int) iov[1].iov_len,
 	       sg_io->status,
 	       sg_io->masked_status,
@@ -300,10 +300,10 @@
 	       sg_io->iovec_count,
 	       sg_io->dxfer_len,
 	       sg_io->timeout,
-	       * (unsigned char *) (sg_io->dxferp + 0),
-	       * (unsigned char *) (sg_io->dxferp + 1),
-	       * (unsigned char *) (sg_io->dxferp + 2),
-	       * (unsigned char *) (sg_io->dxferp + 3),
+	       *(unsigned char *) (sg_io->dxferp + 0),
+	       *(unsigned char *) (sg_io->dxferp + 1),
+	       *(unsigned char *) (sg_io->dxferp + 2),
+	       *(unsigned char *) (sg_io->dxferp + 3),
 	       sg_io->status,
 	       sg_io->masked_status,
 	       sg_io->msg_status,
@@ -348,11 +348,11 @@
 	       sg_io->iovec_count,
 	       sg_io->dxfer_len,
 	       sg_io->timeout,
-	       * (unsigned char *) (sg_io->dxferp + 0),
-	       * (unsigned char *) (sg_io->dxferp + 1),
-	       * (unsigned char *) (sg_io->dxferp + 2),
-	       * (unsigned char *) (sg_io->dxferp + 0),
-	       * (unsigned char *) (sg_io->dxferp + 1),
+	       *(unsigned char *) (sg_io->dxferp + 0),
+	       *(unsigned char *) (sg_io->dxferp + 1),
+	       *(unsigned char *) (sg_io->dxferp + 2),
+	       *(unsigned char *) (sg_io->dxferp + 0),
+	       *(unsigned char *) (sg_io->dxferp + 1),
 	       sg_io->status,
 	       sg_io->masked_status,
 	       sg_io->msg_status,
@@ -394,9 +394,9 @@
 	       sg_io->iovec_count,
 	       sg_io->dxfer_len,
 	       sg_io->timeout,
-	       * (unsigned char *) (sg_io->dxferp + 0),
-	       * (unsigned char *) (sg_io->dxferp + 1),
-	       * (unsigned char *) (sg_io->dxferp + 2),
+	       *(unsigned char *) (sg_io->dxferp + 0),
+	       *(unsigned char *) (sg_io->dxferp + 1),
+	       *(unsigned char *) (sg_io->dxferp + 2),
 	       sg_io->status,
 	       sg_io->masked_status,
 	       sg_io->msg_status,
diff --git a/tests-mx32/ioctl_sg_io_v4.c b/tests-mx32/ioctl_sg_io_v4.c
index 9c1e9fa..d2f7b72 100644
--- a/tests-mx32/ioctl_sg_io_v4.c
+++ b/tests-mx32/ioctl_sg_io_v4.c
@@ -189,9 +189,9 @@
 	       ", dout_resid=%d"
 	       ", generated_tag=%#" PRI__x64 "}) = -1 EBADF (%m)\n",
 	       sg_io->request_len,
-	       * (unsigned char *) ((unsigned long) sg_io->request + 0),
-	       * (unsigned char *) ((unsigned long) sg_io->request + 1),
-	       * (unsigned char *) ((unsigned long) sg_io->request + 2),
+	       *(unsigned char *) ((unsigned long) sg_io->request + 0),
+	       *(unsigned char *) ((unsigned long) sg_io->request + 1),
+	       *(unsigned char *) ((unsigned long) sg_io->request + 2),
 	       sg_io->request_tag,
 	       sg_io->request_attr,
 	       sg_io->request_priority,
@@ -201,22 +201,22 @@
 	       sg_io->dout_xfer_len,
 	       sg_io->din_iovec_count,
 	       sg_io->din_xfer_len,
-	       * (unsigned char *) (iov[0].iov_base + 0),
-	       * (unsigned char *) (iov[0].iov_base + 1),
+	       *(unsigned char *) (iov[0].iov_base + 0),
+	       *(unsigned char *) (iov[0].iov_base + 1),
 	       (unsigned int) iov[0].iov_len,
-	       * (unsigned char *) (iov[1].iov_base + 0),
-	       * (unsigned char *) (iov[1].iov_base + 1),
-	       * (unsigned char *) (iov[1].iov_base + 2),
+	       *(unsigned char *) (iov[1].iov_base + 0),
+	       *(unsigned char *) (iov[1].iov_base + 1),
+	       *(unsigned char *) (iov[1].iov_base + 2),
 	       (unsigned int) iov[1].iov_len,
 	       sg_io->timeout,
 	       sg_io->usr_ptr,
 	       sg_io->response_len,
-	       * (unsigned char *) ((unsigned long) sg_io->response + 0),
-	       * (unsigned char *) ((unsigned long) sg_io->response + 1),
-	       * (unsigned char *) ((unsigned long) sg_io->din_xferp + 0),
-	       * (unsigned char *) ((unsigned long) sg_io->din_xferp + 1),
-	       * (unsigned char *) ((unsigned long) sg_io->din_xferp + 2),
-	       * (unsigned char *) ((unsigned long) sg_io->din_xferp + 3),
+	       *(unsigned char *) ((unsigned long) sg_io->response + 0),
+	       *(unsigned char *) ((unsigned long) sg_io->response + 1),
+	       *(unsigned char *) ((unsigned long) sg_io->din_xferp + 0),
+	       *(unsigned char *) ((unsigned long) sg_io->din_xferp + 1),
+	       *(unsigned char *) ((unsigned long) sg_io->din_xferp + 2),
+	       *(unsigned char *) ((unsigned long) sg_io->din_xferp + 3),
 	       sg_io->driver_status,
 	       sg_io->transport_status,
 	       sg_io->device_status,
diff --git a/tests-mx32/ioctl_sock_gifconf.c b/tests-mx32/ioctl_sock_gifconf.c
index f81faef..efa55a3 100644
--- a/tests-mx32/ioctl_sock_gifconf.c
+++ b/tests-mx32/ioctl_sock_gifconf.c
@@ -105,7 +105,7 @@
 static void
 gifconf_ioctl(int fd, struct ifconf *ifc, bool ifc_valid)
 {
-	const char * errstr;
+	const char *errstr;
 	int in_len;
 	char *in_buf;
 	long rc;
diff --git a/tests-mx32/ioctl_uffdio.c b/tests-mx32/ioctl_uffdio.c
index c98e4a0..817e3c7 100644
--- a/tests-mx32/ioctl_uffdio.c
+++ b/tests-mx32/ioctl_uffdio.c
@@ -71,7 +71,7 @@
 	api_struct->features = 0;
 	rc = ioctl(fd, UFFDIO_API, api_struct);
 	printf("ioctl(%d, UFFDIO_API, {api=0xaa, features=0, "
-	       "features.out=%#" PRIx64 ", " "ioctls=1<<_UFFDIO_REGISTER|"
+	       "features.out=%#" PRIx64 ", ioctls=1<<_UFFDIO_REGISTER|"
 	       "1<<_UFFDIO_UNREGISTER|1<<_UFFDIO_API",
 	       fd, (uint64_t)api_struct->features);
 	api_struct->ioctls &= ~(1ull<<_UFFDIO_REGISTER|
diff --git a/tests-mx32/ioctl_v4l2.c b/tests-mx32/ioctl_v4l2.c
index 921e7a8..cc5dee6 100644
--- a/tests-mx32/ioctl_v4l2.c
+++ b/tests-mx32/ioctl_v4l2.c
@@ -85,7 +85,7 @@
 		f->fmt.pix_mp.pixelformat = magic;
 		f->fmt.pix_mp.field = V4L2_FIELD_NONE;
 		f->fmt.pix_mp.colorspace = V4L2_COLORSPACE_JPEG;
-		struct v4l2_plane_pix_format* cur_pix =
+		struct v4l2_plane_pix_format *cur_pix =
 		       f->fmt.pix_mp.plane_fmt;
 		for (i = 0;
 		     i < ARRAY_SIZE(f->fmt.pix_mp.plane_fmt);
@@ -119,8 +119,8 @@
 		f->fmt.win.clips[1].c.width = 0x9e3a6fb3;
 		f->fmt.win.clips[1].c.height = 0x05617b76;
 
-		f->fmt.win.bitmap = (void*) -2UL;
-#if HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA
+		f->fmt.win.bitmap = (void *) -2UL;
+#ifdef HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA
 		f->fmt.win.global_alpha = 0xce;
 #endif
 		break;
@@ -158,7 +158,7 @@
 #if HAVE_DECL_V4L2_BUF_TYPE_SDR_CAPTURE
 	case V4L2_BUF_TYPE_SDR_CAPTURE:
 		f->fmt.sdr.pixelformat = magic;
-#if HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE
+#ifdef HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE
 		f->fmt.sdr.buffersize = 0x25afabfb;
 #endif
 		break;
@@ -168,8 +168,8 @@
 
 static void
 dprint_ioctl_v4l2(struct v4l2_format *const f,
-		  const char* request, const unsigned int buf_type,
-		  const char* buf_type_string)
+		  const char *request, const unsigned int buf_type,
+		  const char *buf_type_string)
 {
 	switch (buf_type) {
 	case V4L2_BUF_TYPE_VIDEO_CAPTURE:
@@ -225,7 +225,7 @@
 		       "[{left=%d, top=%d, width=%u, height=%u}, "
 		       "{left=%d, top=%d, width=%u, height=%u}]"
 		       ", clipcount=%u, bitmap=%p"
-#if HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA
+#ifdef HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA
 		       ", global_alpha=%#x"
 #endif
 		       "}}) = -1 EBADF (%m)\n",
@@ -243,7 +243,7 @@
 		       f->fmt.win.clips[1].c.width,
 		       f->fmt.win.clips[1].c.height,
 		       f->fmt.win.clipcount, f->fmt.win.bitmap
-#if HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA
+#ifdef HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA
 		       , f->fmt.win.global_alpha
 #endif
 		       );
@@ -304,14 +304,14 @@
 		printf("ioctl(-1, %s, {type=%s"
 		       ", fmt.sdr={pixelformat=v4l2_fourcc('\\x%x', '\\x%x',"
 		       " '\\x%x', '\\x%x')"
-#if HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE
+#ifdef HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE
 		       ", buffersize=%u"
 #endif
 		       "}}) = -1 EBADF (%m)\n",
 		       request,
 		       buf_type_string,
 		       cc0(magic), cc1(magic), cc2(magic), cc3(magic)
-#if HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE
+#ifdef HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE
 		       , f->fmt.sdr.buffersize
 #endif
 		       );
@@ -319,12 +319,11 @@
 #endif
 	}
 }
-#define print_ioctl_v4l2(v4l2_format, request, buf_type) do { \
-	dprint_ioctl_v4l2((v4l2_format), (request), (buf_type), #buf_type); \
-} while (0)
+#define print_ioctl_v4l2(v4l2_format, request, buf_type)	\
+	dprint_ioctl_v4l2((v4l2_format), (request), (buf_type), #buf_type)
 
 int
-main(void )
+main(void)
 {
 	const unsigned int size = get_page_size();
 	void *const page = tail_alloc(size);
@@ -689,7 +688,7 @@
 
 	TAIL_ALLOC_OBJECT_CONST_PTR(struct v4l2_tuner, p_tuner);
 	p_tuner->index = 0x4fb6df39;
-	strcpy((char*)p_tuner->name, "cum tacent clamant");
+	strcpy((char *) p_tuner->name, "cum tacent clamant");
 	p_tuner->type = V4L2_TUNER_RADIO;
 	p_tuner->capability = V4L2_TUNER_CAP_LOW;
 	p_tuner->rangelow = 0xa673bc29;
diff --git a/tests-mx32/ip_mreq.c b/tests-mx32/ip_mreq.c
index 4bcda09..4bfe00f 100644
--- a/tests-mx32/ip_mreq.c
+++ b/tests-mx32/ip_mreq.c
@@ -101,7 +101,7 @@
 				short_any[i].optval, 1);
 		printf("setsockopt(0, %s, %s, \"\\%hho\", 1) = %s\n",
 		       short_any[i].str_level, short_any[i].str_optname,
-		       * (unsigned char *) short_any[i].optval,
+		       *(unsigned char *) short_any[i].optval,
 		       sprintrc(rc));
 
 		rc = setsockopt(0, short_any[i].level, short_any[i].optname,
@@ -139,7 +139,7 @@
 		rc = setsockopt(0, SOL_IPV6, long_ipv6[i].optname,
 				m6, sizeof(*m6));
 		printf("setsockopt(0, SOL_IPV6, %s"
-		       ", {ipv6mr_multiaddr=inet_pton(\"%s\")"
+		       ", {inet_pton(AF_INET6, \"%s\", &ipv6mr_multiaddr)"
 		       ", ipv6mr_interface=if_nametoindex(\"lo\")}"
 		       ", %u) = %s\n",
 		       long_ipv6[i].str_optname, multi6addr,
diff --git a/tests-mx32/ipc_msgbuf.c b/tests-mx32/ipc_msgbuf.c
index 1c34494..9d149fa 100644
--- a/tests-mx32/ipc_msgbuf.c
+++ b/tests-mx32/ipc_msgbuf.c
@@ -45,7 +45,7 @@
 }
 
 int
-main (void)
+main(void)
 {
 	const long mtype = 0xdefaced;
 	struct {
diff --git a/tests-mx32/ipc_sem.c b/tests-mx32/ipc_sem.c
index 0b730c1..c883272 100644
--- a/tests-mx32/ipc_sem.c
+++ b/tests-mx32/ipc_sem.c
@@ -37,10 +37,10 @@
 #include "xlat/resource_flags.h"
 
 union semun {
-	int              val;    /* Value for SETVAL */
-	struct semid_ds *buf;    /* Buffer for IPC_STAT, IPC_SET */
-	unsigned short  *array;  /* Array for GETALL, SETALL */
-	struct seminfo  *__buf;  /* Buffer for IPC_INFO
+	int		 val;    /* Value for SETVAL */
+	struct semid_ds	*buf;    /* Buffer for IPC_STAT, IPC_SET */
+	unsigned short	*array;  /* Array for GETALL, SETALL */
+	struct seminfo	*__buf;  /* Buffer for IPC_INFO
 				    (Linux-specific) */
 };
 
diff --git a/tests-mx32/kexec_file_load.c b/tests-mx32/kexec_file_load.c
index c939e4f..7a9b64b 100644
--- a/tests-mx32/kexec_file_load.c
+++ b/tests-mx32/kexec_file_load.c
@@ -45,7 +45,7 @@
 	const char *str;
 };
 
-#define CMDLINE_STR "deadcodebaddatadefaced";
+#define CMDLINE_STR "deadcodebaddatadefaced"
 
 int
 main(void)
diff --git a/tests-mx32/keyctl.c b/tests-mx32/keyctl.c
index 2e26076..492c62a 100644
--- a/tests-mx32/keyctl.c
+++ b/tests-mx32/keyctl.c
@@ -74,7 +74,7 @@
  * significantly breaking interface.
  */
 bool nul_terminated_buf = true;
-bool buf_in_arg = false;
+bool buf_in_arg;
 
 /*
  * When this is called with positive size, the buffer provided is an "out"
diff --git a/tests-mx32/ksysent.c b/tests-mx32/ksysent.c
index f598664..860e21e 100644
--- a/tests-mx32/ksysent.c
+++ b/tests-mx32/ksysent.c
@@ -53,7 +53,7 @@
 #define SI 0
 #define SE 0
 #define CST 0
-#define SEN(arg) 0,0
+#define SEN(arg) 0, 0
 
 static const struct_sysent syscallent[] = {
 #include "syscallent.h"
diff --git a/tests-mx32/mincore.c b/tests-mx32/mincore.c
index ea2b49e..0ede687 100644
--- a/tests-mx32/mincore.c
+++ b/tests-mx32/mincore.c
@@ -29,8 +29,6 @@
 #include <stdio.h>
 #include <sys/mman.h>
 
-#define DEFAULT_STRLEN 32
-
 static void
 print_mincore(const unsigned int pages, void *const addr,
 	      const size_t size, unsigned char *const vec)
diff --git a/tests-mx32/mmsg.c b/tests-mx32/mmsg.c
index 88805d1..a5cf0e7 100644
--- a/tests-mx32/mmsg.c
+++ b/tests-mx32/mmsg.c
@@ -113,14 +113,16 @@
 		" | 00000 %-49s  %-16s |\n",
 		w0_c, LENGTH_OF(w0_c),
 		w1_c, LENGTH_OF(w1_c),
-		ARRAY_SIZE(w0_iov_),
+		(unsigned int) ARRAY_SIZE(w0_iov_),
 		LENGTH_OF(w0_c) + LENGTH_OF(w1_c),
-		w2_c, LENGTH_OF(w2_c), ARRAY_SIZE(w1_iov_),
+		w2_c, LENGTH_OF(w2_c), (unsigned int) ARRAY_SIZE(w1_iov_),
 		LENGTH_OF(w2_c),
 		n_w_mmh, r,
-		ARRAY_SIZE(w0_iov_), LENGTH_OF(w0_c), w0_d, w0_c,
+		(unsigned int) ARRAY_SIZE(w0_iov_),
+		LENGTH_OF(w0_c), w0_d, w0_c,
 		LENGTH_OF(w1_c), w1_d, w1_c,
-		ARRAY_SIZE(w1_iov_), LENGTH_OF(w2_c), w2_d, w2_c);
+		(unsigned int) ARRAY_SIZE(w1_iov_),
+		LENGTH_OF(w2_c), w2_d, w2_c);
 
 	const unsigned int w_len =
 		LENGTH_OF(w0_c) + LENGTH_OF(w1_c) + LENGTH_OF(w2_c);
@@ -184,11 +186,14 @@
 		" = %u buffers in vector 1\n"
 		" * %u bytes in buffer 0\n"
 		" | 00000 %-49s  %-16s |\n",
-		r0_c, r_len, ARRAY_SIZE(r0_iov_), LENGTH_OF(r0_c),
-		r1_c, r_len, r_len, ARRAY_SIZE(r1_iov_), LENGTH_OF(r1_c),
+		r0_c, r_len, (unsigned int) ARRAY_SIZE(r0_iov_),
+		LENGTH_OF(r0_c), r1_c, r_len, r_len,
+		(unsigned int) ARRAY_SIZE(r1_iov_), LENGTH_OF(r1_c),
 		n_r_mmh, r,
-		ARRAY_SIZE(r0_iov_), LENGTH_OF(r0_c), r0_d, r0_c,
-		ARRAY_SIZE(r1_iov_), LENGTH_OF(r1_c), r1_d, r1_c);
+		(unsigned int) ARRAY_SIZE(r0_iov_), LENGTH_OF(r0_c),
+		r0_d, r0_c,
+		(unsigned int) ARRAY_SIZE(r1_iov_), LENGTH_OF(r1_c),
+		r1_d, r1_c);
 
 	tprintf("+++ exited with 0 +++\n");
 	return 0;
diff --git a/tests-mx32/mmsg_name.c b/tests-mx32/mmsg_name.c
index a7a55c5..ad5a482 100644
--- a/tests-mx32/mmsg_name.c
+++ b/tests-mx32/mmsg_name.c
@@ -40,8 +40,6 @@
 
 #include "msghdr.h"
 
-#define DEFAULT_STRLEN 32
-
 #define IOV_MAX1 (IOV_MAX + 1)
 
 #ifndef TEST_NAME
@@ -77,7 +75,7 @@
 	}
 	printf("%d, msg_iov=[{iov_base=\"%c\", iov_len=1}]"
 	       ", msg_iovlen=1, msg_controllen=0, msg_flags=0}",
-	       (int) msg->msg_namelen, * (char *) msg->msg_iov[0].iov_base);
+	       (int) msg->msg_namelen, *(char *) msg->msg_iov[0].iov_base);
 }
 
 static void
diff --git a/tests-mx32/mq.c b/tests-mx32/mq.c
index ee2d059..cf1b730 100644
--- a/tests-mx32/mq.c
+++ b/tests-mx32/mq.c
@@ -39,7 +39,7 @@
 # include <sys/stat.h>
 
 int
-main (void)
+main(void)
 {
 	struct mq_attr attr;
 	(void) close(0);
diff --git a/tests-mx32/mq_sendrecv.c b/tests-mx32/mq_sendrecv.c
index e3ad0d5..f6f6bd2 100644
--- a/tests-mx32/mq_sendrecv.c
+++ b/tests-mx32/mq_sendrecv.c
@@ -228,7 +228,7 @@
 	static const struct timespec future_tmout_data = {
 		.tv_sec = (time_t) 0x7ea1fade7e57faceLL,
 		.tv_nsec = 999999999,
-	};;
+	};
 	struct_sigevent bogus_sev_data = {
 		.sigev_notify = 0xdefaced,
 		.sigev_signo = 0xfacefeed,
@@ -437,7 +437,7 @@
 	bogus_attrs[1] = 2;
 	bogus_attrs[2] = MSG_SIZE;
 	fd = rc = syscall(__NR_mq_open, mq_name,
-		          O_CREAT|O_RDWR|O_NONBLOCK, S_IRWXU, bogus_attrs);
+			  O_CREAT|O_RDWR|O_NONBLOCK, S_IRWXU, bogus_attrs);
 	errstr = sprintrc(rc);
 	if (rc < 0)
 		perror_msg_and_skip("mq_open");
diff --git a/tests-mx32/msg_control.c b/tests-mx32/msg_control.c
index 1e64f1a..b63f2d0 100644
--- a/tests-mx32/msg_control.c
+++ b/tests-mx32/msg_control.c
@@ -40,6 +40,9 @@
 #include <netinet/in.h>
 #include <arpa/inet.h>
 
+#include "xlat.h"
+#include "xlat/scmvals.h"
+
 #ifndef SOL_IP
 # define SOL_IP 0
 #endif
@@ -60,8 +63,6 @@
 	return page - CMSG_ALIGN(len);
 }
 
-#define DEFAULT_STRLEN 32
-
 static void
 print_fds(const struct cmsghdr *const cmsg, const size_t cmsg_len)
 {
@@ -230,6 +231,152 @@
 }
 
 static void
+test_scm_timestamp(struct msghdr *const mh, void *const page)
+{
+	size_t len = CMSG_SPACE(sizeof(struct timeval));
+	struct cmsghdr *cmsg = get_cmsghdr(page, len);
+
+	cmsg->cmsg_len = CMSG_LEN(sizeof(struct timeval));
+	cmsg->cmsg_level = SOL_SOCKET;
+	cmsg->cmsg_type = SCM_TIMESTAMP;
+	struct timeval *tv = (struct timeval *) CMSG_DATA(cmsg);
+	tv->tv_sec = 123456789;
+	tv->tv_usec = 987654;
+
+	mh->msg_control = cmsg;
+	mh->msg_controllen = len;
+
+	int rc = sendmsg(-1, mh, 0);
+	printf("sendmsg(-1, {msg_name=NULL, msg_namelen=0, msg_iov=NULL"
+	       ", msg_iovlen=0, msg_control=[{cmsg_len=%u"
+	       ", cmsg_level=SOL_SOCKET, cmsg_type=SCM_TIMESTAMP"
+	       ", cmsg_data={tv_sec=%lld, tv_usec=%llu}}]"
+	       ", msg_controllen=%lu, msg_flags=0}, 0) = %d %s (%m)\n",
+	       (unsigned) cmsg->cmsg_len,
+	       (long long) tv->tv_sec, zero_extend_signed_to_ull(tv->tv_usec),
+	       (unsigned long) len, rc, errno2name());
+
+	len = CMSG_SPACE(sizeof(struct timeval) - sizeof(long));
+	cmsg = get_cmsghdr(page, len);
+
+	cmsg->cmsg_len = CMSG_LEN(sizeof(struct timeval) - sizeof(long));
+	cmsg->cmsg_level = SOL_SOCKET;
+	cmsg->cmsg_type = SCM_TIMESTAMP;
+
+	mh->msg_control = cmsg;
+	mh->msg_controllen = len;
+
+	rc = sendmsg(-1, mh, 0);
+	printf("sendmsg(-1, {msg_name=NULL, msg_namelen=0, msg_iov=NULL"
+	       ", msg_iovlen=0, msg_control=[{cmsg_len=%u"
+	       ", cmsg_level=SOL_SOCKET, cmsg_type=SCM_TIMESTAMP, cmsg_data=?}]"
+	       ", msg_controllen=%lu, msg_flags=0}, 0) = %d %s (%m)\n",
+	       (unsigned) cmsg->cmsg_len,
+	       (unsigned long) len, rc, errno2name());
+}
+
+static void
+test_scm_timestampns(struct msghdr *const mh, void *const page)
+{
+	size_t len = CMSG_SPACE(sizeof(struct timespec));
+	struct cmsghdr *cmsg = get_cmsghdr(page, len);
+
+	cmsg->cmsg_len = CMSG_LEN(sizeof(struct timespec));
+	cmsg->cmsg_level = SOL_SOCKET;
+	cmsg->cmsg_type = SCM_TIMESTAMPNS;
+	struct timespec *ts = (struct timespec *) CMSG_DATA(cmsg);
+	ts->tv_sec = 123456789;
+	ts->tv_nsec = 987654321;
+
+	mh->msg_control = cmsg;
+	mh->msg_controllen = len;
+
+	int rc = sendmsg(-1, mh, 0);
+	printf("sendmsg(-1, {msg_name=NULL, msg_namelen=0, msg_iov=NULL"
+	       ", msg_iovlen=0, msg_control=[{cmsg_len=%u"
+	       ", cmsg_level=SOL_SOCKET, cmsg_type=SCM_TIMESTAMPNS"
+	       ", cmsg_data={tv_sec=%lld, tv_nsec=%llu}}]"
+	       ", msg_controllen=%lu, msg_flags=0}, 0) = %d %s (%m)\n",
+	       (unsigned) cmsg->cmsg_len,
+	       (long long) ts->tv_sec, zero_extend_signed_to_ull(ts->tv_nsec),
+	       (unsigned long) len, rc, errno2name());
+
+	len = CMSG_SPACE(sizeof(struct timespec) - sizeof(long));
+	cmsg = get_cmsghdr(page, len);
+
+	cmsg->cmsg_len = CMSG_LEN(sizeof(struct timespec) - sizeof(long));
+	cmsg->cmsg_level = SOL_SOCKET;
+	cmsg->cmsg_type = SCM_TIMESTAMPNS;
+
+	mh->msg_control = cmsg;
+	mh->msg_controllen = len;
+
+	rc = sendmsg(-1, mh, 0);
+	printf("sendmsg(-1, {msg_name=NULL, msg_namelen=0, msg_iov=NULL"
+	       ", msg_iovlen=0, msg_control=[{cmsg_len=%u"
+	       ", cmsg_level=SOL_SOCKET, cmsg_type=SCM_TIMESTAMPNS"
+	       ", cmsg_data=?}]"
+	       ", msg_controllen=%lu, msg_flags=0}, 0) = %d %s (%m)\n",
+	       (unsigned) cmsg->cmsg_len,
+	       (unsigned long) len, rc, errno2name());
+}
+
+static void
+test_scm_timestamping(struct msghdr *const mh, void *const page)
+{
+	size_t len = CMSG_SPACE(3 * sizeof(struct timespec));
+	struct cmsghdr *cmsg = get_cmsghdr(page, len);
+
+	cmsg->cmsg_len = CMSG_LEN(3 * sizeof(struct timespec));
+	cmsg->cmsg_level = SOL_SOCKET;
+	cmsg->cmsg_type = SCM_TIMESTAMPING;
+	struct timespec *ts = (struct timespec *) CMSG_DATA(cmsg);
+	ts[0].tv_sec = 123456789;
+	ts[0].tv_nsec = 987654321;
+	ts[1].tv_sec = 123456790;
+	ts[1].tv_nsec = 987654320;
+	ts[2].tv_sec = 123456791;
+	ts[2].tv_nsec = 987654319;
+
+	mh->msg_control = cmsg;
+	mh->msg_controllen = len;
+
+	int rc = sendmsg(-1, mh, 0);
+	printf("sendmsg(-1, {msg_name=NULL, msg_namelen=0, msg_iov=NULL"
+	       ", msg_iovlen=0, msg_control=[{cmsg_len=%u"
+	       ", cmsg_level=SOL_SOCKET, cmsg_type=SCM_TIMESTAMPING"
+	       ", cmsg_data=[{tv_sec=%lld, tv_nsec=%llu}"
+	       ", {tv_sec=%lld, tv_nsec=%llu}, {tv_sec=%lld, tv_nsec=%llu}]}]"
+	       ", msg_controllen=%lu, msg_flags=0}, 0) = %d %s (%m)\n",
+	       (unsigned) cmsg->cmsg_len, (long long) ts[0].tv_sec,
+	       zero_extend_signed_to_ull(ts[0].tv_nsec),
+	       (long long) ts[1].tv_sec,
+	       zero_extend_signed_to_ull(ts[1].tv_nsec),
+	       (long long) ts[2].tv_sec,
+	       zero_extend_signed_to_ull(ts[2].tv_nsec),
+	       (unsigned long) len, rc, errno2name());
+
+	len = CMSG_SPACE(3 * sizeof(struct timespec) - sizeof(long));
+	cmsg = get_cmsghdr(page, len);
+
+	cmsg->cmsg_len = CMSG_LEN(3 * sizeof(struct timespec) - sizeof(long));
+	cmsg->cmsg_level = SOL_SOCKET;
+	cmsg->cmsg_type = SCM_TIMESTAMPING;
+
+	mh->msg_control = cmsg;
+	mh->msg_controllen = len;
+
+	rc = sendmsg(-1, mh, 0);
+	printf("sendmsg(-1, {msg_name=NULL, msg_namelen=0, msg_iov=NULL"
+	       ", msg_iovlen=0, msg_control=[{cmsg_len=%u"
+	       ", cmsg_level=SOL_SOCKET, cmsg_type=SCM_TIMESTAMPING"
+	       ", cmsg_data=?}]"
+	       ", msg_controllen=%lu, msg_flags=0}, 0) = %d %s (%m)\n",
+	       (unsigned) cmsg->cmsg_len,
+	       (unsigned long) len, rc, errno2name());
+}
+
+static void
 print_security(const struct cmsghdr *const cmsg, const size_t cmsg_len)
 {
 	int n = cmsg_len > CMSG_LEN(0) ? cmsg_len - CMSG_LEN(0) : 0;
@@ -378,12 +525,16 @@
 	test_scm_rights3(mh, page, DEFAULT_STRLEN);
 	test_scm_rights3(mh, page, DEFAULT_STRLEN + 1);
 
+	test_scm_timestamp(mh, page);
+	test_scm_timestampns(mh, page);
+	test_scm_timestamping(mh, page);
+
 	test_unknown_type(mh, page, ARG_STR(SOL_SOCKET), "SCM_???");
 }
 
 static void
 test_ip_pktinfo(struct msghdr *const mh, void *const page,
-	        const int cmsg_type, const char *const cmsg_type_str)
+		const int cmsg_type, const char *const cmsg_type_str)
 {
 	const unsigned int len = CMSG_SPACE(sizeof(struct in_pktinfo));
 	struct cmsghdr *const cmsg = get_cmsghdr(page, len);
@@ -448,7 +599,7 @@
 
 static void
 test_ip_uint8_t(struct msghdr *const mh, void *const page,
-	        const int cmsg_type, const char *const cmsg_type_str)
+		const int cmsg_type, const char *const cmsg_type_str)
 {
 	const unsigned int len = CMSG_SPACE(1);
 	struct cmsghdr *const cmsg = get_cmsghdr(page, len);
@@ -530,7 +681,7 @@
 
 static void
 test_ip_recverr(struct msghdr *const mh, void *const page,
-	        const int cmsg_type, const char *const cmsg_type_str)
+		const int cmsg_type, const char *const cmsg_type_str)
 {
 	const unsigned int len = CMSG_SPACE(sizeof(struct sock_ee));
 	struct cmsghdr *const cmsg = get_cmsghdr(page, len);
diff --git a/tests-mx32/net-accept-connect.c b/tests-mx32/net-accept-connect.c
index 04c05a6..0050eeb 100644
--- a/tests-mx32/net-accept-connect.c
+++ b/tests-mx32/net-accept-connect.c
@@ -69,7 +69,7 @@
 	if (listen(0, 5))
 		perror_msg_and_skip("listen");
 
-	memset(&addr, 0, sizeof addr);
+	memset(&addr, 0, sizeof(addr));
 	assert(getsockname(0, (struct sockaddr *) &addr, &len) == 0);
 	if (len > sizeof(addr))
 		len = sizeof(addr);
diff --git a/tests-mx32/net-sockaddr.c b/tests-mx32/net-sockaddr.c
index 9dc9ecf..1d9bac3 100644
--- a/tests-mx32/net-sockaddr.c
+++ b/tests-mx32/net-sockaddr.c
@@ -37,11 +37,11 @@
 #include <sys/un.h>
 #include <arpa/inet.h>
 #include <netinet/in.h>
+#include "netlink.h"
 #include <linux/if_arp.h>
 #include <linux/if_ether.h>
 #include <linux/if_packet.h>
 #include <linux/ipx.h>
-#include <linux/netlink.h>
 #ifdef HAVE_BLUETOOTH_BLUETOOTH_H
 # include <bluetooth/bluetooth.h>
 # include <bluetooth/hci.h>
diff --git a/tests-mx32/net-y-unix.c b/tests-mx32/net-y-unix.c
index df56ad6..fbdf590 100644
--- a/tests-mx32/net-y-unix.c
+++ b/tests-mx32/net-y-unix.c
@@ -182,7 +182,7 @@
 		perror_msg_and_fail("accept");
 	accept_inode = inode_of_sockfd(accept_fd);
 	const char * const sun_path1 =
-		((struct sockaddr_un *) accept_sa) -> sun_path + 1;
+		((struct sockaddr_un *) accept_sa)->sun_path + 1;
 	printf("accept(%d<socket:[%lu]>, {sa_family=AF_UNIX"
 	       ", sun_path=@\"%s\"}, [%d->%d]) = %d<socket:[%lu]>\n",
 	       listen_fd, listen_inode, sun_path1,
diff --git a/tests-mx32/net-yy-inet.c b/tests-mx32/net-yy-inet.c
index af1262e..c043920 100644
--- a/tests-mx32/net-yy-inet.c
+++ b/tests-mx32/net-yy-inet.c
@@ -74,7 +74,7 @@
 	if (getsockname(listen_fd, listen_sa, len))
 		perror_msg_and_fail("getsockname");
 	const unsigned int listen_port =
-		ntohs(((struct sockaddr_in *) listen_sa) -> sin_port);
+		ntohs(((struct sockaddr_in *) listen_sa)->sin_port);
 	printf("getsockname(%d<TCP:[127.0.0.1:%u]>, {sa_family=AF_INET"
 	       ", sin_port=htons(%u), sin_addr=inet_addr(\"127.0.0.1\")}"
 	       ", [%u]) = 0\n",
@@ -109,7 +109,7 @@
 	if (accept_fd < 0)
 		perror_msg_and_fail("accept");
 	const unsigned int connect_port =
-		ntohs(((struct sockaddr_in *) accept_sa) -> sin_port);
+		ntohs(((struct sockaddr_in *) accept_sa)->sin_port);
 	printf("accept(%d<TCP:[127.0.0.1:%u]>, {sa_family=AF_INET"
 	       ", sin_port=htons(%u), sin_addr=inet_addr(\"127.0.0.1\")}"
 	       ", [%u]) = %d<TCP:[127.0.0.1:%u->127.0.0.1:%u]>\n",
diff --git a/tests-mx32/net-yy-netlink.c b/tests-mx32/net-yy-netlink.c
index 6539eda..8ccf5bc 100644
--- a/tests-mx32/net-yy-netlink.c
+++ b/tests-mx32/net-yy-netlink.c
@@ -36,14 +36,10 @@
 #include <string.h>
 #include <unistd.h>
 #include <sys/socket.h>
-#include <linux/netlink.h>
+#include "netlink.h"
 #include <linux/sock_diag.h>
 #include <linux/netlink_diag.h>
 
-#if !defined NETLINK_SOCK_DIAG && defined NETLINK_INET_DIAG
-# define NETLINK_SOCK_DIAG NETLINK_INET_DIAG
-#endif
-
 int
 main(void)
 {
diff --git a/tests-mx32/net-yy-unix.c b/tests-mx32/net-yy-unix.c
index f27cdc0..21822db 100644
--- a/tests-mx32/net-yy-unix.c
+++ b/tests-mx32/net-yy-unix.c
@@ -185,7 +185,7 @@
 		perror_msg_and_fail("accept");
 	accept_inode = inode_of_sockfd(accept_fd);
 	const char * const sun_path1 =
-		((struct sockaddr_un *) accept_sa) -> sun_path + 1;
+		((struct sockaddr_un *) accept_sa)->sun_path + 1;
 	printf("accept(%d<UNIX:[%lu,\"%s\"]>, {sa_family=AF_UNIX"
 	       ", sun_path=@\"%s\"}, [%d->%d]) = %d<UNIX:[%lu->%lu,\"%s\"]>\n",
 	       listen_fd, listen_inode, TEST_SOCKET, sun_path1,
diff --git a/tests-mx32/netlink_audit.c b/tests-mx32/netlink_audit.c
new file mode 100644
index 0000000..00ddc4f
--- /dev/null
+++ b/tests-mx32/netlink_audit.c
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@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.
+ */
+
+#include "tests.h"
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/socket.h>
+#include <linux/audit.h>
+#include "netlink.h"
+
+static void
+test_nlmsg_type(const int fd)
+{
+	long rc;
+	struct nlmsghdr nlh = {
+		.nlmsg_len = sizeof(nlh),
+		.nlmsg_type = AUDIT_GET,
+		.nlmsg_flags = NLM_F_REQUEST,
+	};
+
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=AUDIT_GET"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+}
+
+int main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	int fd = create_nl_socket(NETLINK_AUDIT);
+
+	test_nlmsg_type(fd);
+
+	printf("+++ exited with 0 +++\n");
+
+	return 0;
+}
diff --git a/tests-mx32/netlink_audit.gen.test b/tests-mx32/netlink_audit.gen.test
new file mode 100755
index 0000000..6511067
--- /dev/null
+++ b/tests-mx32/netlink_audit.gen.test
@@ -0,0 +1,3 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (netlink_audit +netlink_sock_diag.test); do not edit.
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests-mx32/netlink_generic.c b/tests-mx32/netlink_generic.c
new file mode 100644
index 0000000..4f80c8b
--- /dev/null
+++ b/tests-mx32/netlink_generic.c
@@ -0,0 +1,88 @@
+/*
+ * Copyright (c) 2017 The strace developers.
+ *
+ * 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.
+ */
+
+/* This test case is based on netlink_selinux.c */
+
+#include "tests.h"
+
+#ifdef HAVE_LINUX_GENETLINK_H
+
+# include <stdio.h>
+# include <string.h>
+# include <unistd.h>
+# include <sys/socket.h>
+# include "netlink.h"
+# include <linux/genetlink.h>
+
+static void
+test_nlmsg_type(const int fd)
+{
+	/*
+	 * Though GENL_ID_CTRL number is statically fixed in this test case,
+	 * strace does not have a builtin knowledge that the corresponding
+	 * string is "nlctrl".
+	 */
+	long rc;
+	struct {
+		const struct nlmsghdr nlh;
+		struct genlmsghdr gnlh;
+	} req = {
+		.nlh = {
+			.nlmsg_len = sizeof(req),
+			.nlmsg_type = GENL_ID_CTRL,
+			.nlmsg_flags = NLM_F_DUMP | NLM_F_REQUEST
+		},
+		.gnlh = {
+			.cmd = CTRL_CMD_GETFAMILY
+		}
+	};
+
+	rc = sendto(fd, &req, sizeof(req), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=nlctrl"
+	       ", flags=NLM_F_REQUEST|0x300, seq=0, pid=0}"
+	       ", \"\\3\\0\\0\\0\"}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, req.nlh.nlmsg_len,
+	       (unsigned int) sizeof(req), sprintrc(rc));
+}
+
+int main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	int fd = create_nl_socket(NETLINK_GENERIC);
+
+	test_nlmsg_type(fd);
+
+	printf("+++ exited with 0 +++\n");
+
+	return 0;
+}
+
+#else
+
+SKIP_MAIN_UNDEFINED("HAVE_LINUX_GENETLINK_H")
+
+#endif
diff --git a/tests-mx32/netlink_generic.gen.test b/tests-mx32/netlink_generic.gen.test
new file mode 100755
index 0000000..e51f15c
--- /dev/null
+++ b/tests-mx32/netlink_generic.gen.test
@@ -0,0 +1,3 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (netlink_generic +netlink_sock_diag.test); do not edit.
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests-mx32/netlink_inet_diag.c b/tests-mx32/netlink_inet_diag.c
index 2332e20..5f68cb3 100644
--- a/tests-mx32/netlink_inet_diag.c
+++ b/tests-mx32/netlink_inet_diag.c
@@ -32,7 +32,7 @@
 #include <string.h>
 #include <unistd.h>
 #include <netinet/in.h>
-#include <linux/netlink.h>
+#include "netlink.h"
 #include <linux/sock_diag.h>
 #include <linux/inet_diag.h>
 
diff --git a/tests-mx32/netlink_netfilter.c b/tests-mx32/netlink_netfilter.c
new file mode 100644
index 0000000..2907c26
--- /dev/null
+++ b/tests-mx32/netlink_netfilter.c
@@ -0,0 +1,90 @@
+/*
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@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.
+ */
+
+#include "tests.h"
+
+#ifdef HAVE_LINUX_NETFILTER_NFNETLINK_H
+
+# include <stdio.h>
+# include <string.h>
+# include <unistd.h>
+# include <sys/socket.h>
+# include "netlink.h"
+# include <linux/netfilter/nfnetlink.h>
+
+static void
+test_nlmsg_type(const int fd)
+{
+	long rc;
+	struct nlmsghdr nlh = {
+		.nlmsg_len = sizeof(nlh),
+		.nlmsg_flags = NLM_F_REQUEST,
+	};
+
+# ifdef NFNL_MSG_BATCH_BEGIN
+	nlh.nlmsg_type = NFNL_MSG_BATCH_BEGIN;
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=NFNL_MSG_BATCH_BEGIN"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+
+	nlh.nlmsg_type = (NFNL_SUBSYS_CTNETLINK << 8) | NFNL_MSG_BATCH_BEGIN;
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=NFNL_SUBSYS_CTNETLINK<<8|%#x"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, NFNL_MSG_BATCH_BEGIN,
+	       (unsigned) sizeof(nlh), sprintrc(rc));
+# endif
+
+	nlh.nlmsg_type = (NFNL_SUBSYS_CTNETLINK << 8);
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=NFNL_SUBSYS_CTNETLINK<<8|0"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+}
+
+int main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	int fd = create_nl_socket(NETLINK_NETFILTER);
+
+	test_nlmsg_type(fd);
+
+	printf("+++ exited with 0 +++\n");
+
+	return 0;
+}
+
+#else
+
+SKIP_MAIN_UNDEFINED("HAVE_LINUX_NETFILTER_NFNETLINK_H")
+
+#endif
diff --git a/tests-mx32/netlink_netfilter.gen.test b/tests-mx32/netlink_netfilter.gen.test
new file mode 100755
index 0000000..fffb72b
--- /dev/null
+++ b/tests-mx32/netlink_netfilter.gen.test
@@ -0,0 +1,3 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (netlink_netfilter +netlink_sock_diag.test); do not edit.
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests-mx32/netlink_netlink_diag.c b/tests-mx32/netlink_netlink_diag.c
index fc32822..d7e83f5 100644
--- a/tests-mx32/netlink_netlink_diag.c
+++ b/tests-mx32/netlink_netlink_diag.c
@@ -33,14 +33,10 @@
 #include <string.h>
 #include <unistd.h>
 #include <netinet/in.h>
-#include <linux/netlink.h>
+#include "netlink.h"
 #include <linux/sock_diag.h>
 #include <linux/netlink_diag.h>
 
-#if !defined NETLINK_SOCK_DIAG && defined NETLINK_INET_DIAG
-# define NETLINK_SOCK_DIAG NETLINK_INET_DIAG
-#endif
-
 static void
 send_query(const int fd)
 {
diff --git a/tests-mx32/netlink_protocol.c b/tests-mx32/netlink_protocol.c
index 35f954f..f09dd9a 100644
--- a/tests-mx32/netlink_protocol.c
+++ b/tests-mx32/netlink_protocol.c
@@ -38,14 +38,10 @@
 # include <unistd.h>
 # include <sys/xattr.h>
 # include <netinet/in.h>
-# include <linux/netlink.h>
+# include "netlink.h"
 # include <linux/sock_diag.h>
 # include <linux/netlink_diag.h>
 
-# if !defined NETLINK_SOCK_DIAG && defined NETLINK_INET_DIAG
-#  define NETLINK_SOCK_DIAG NETLINK_INET_DIAG
-# endif
-
 static void
 send_query(const int fd)
 {
@@ -100,8 +96,8 @@
 	/* a single message without data */
 	req->nlh.nlmsg_len = sizeof(req->nlh);
 	rc = sendto(fd, &req->nlh, sizeof(req->nlh), MSG_DONTWAIT, NULL, 0);
-	printf("sendto(%d, {{len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x"
-	       ", seq=0, pid=0}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	printf("sendto(%d, {len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x"
+	       ", seq=0, pid=0}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
 	       fd, req->nlh.nlmsg_len, NLM_F_DUMP,
 	       (unsigned) sizeof(req->nlh), sprintrc(rc));
 
@@ -116,8 +112,8 @@
 	/* nlmsg_len < sizeof(struct nlmsghdr) */
 	req->nlh.nlmsg_len = 8;
 	rc = sendto(fd, req, sizeof(*req), MSG_DONTWAIT, NULL, 0);
-	printf("sendto(%d, {{len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x"
-	       ", seq=0, pid=0}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	printf("sendto(%d, {len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x"
+	       ", seq=0, pid=0}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
 	       fd, req->nlh.nlmsg_len, NLM_F_DUMP,
 	       (unsigned) sizeof(*req), sprintrc(rc));
 
@@ -165,15 +161,14 @@
 	reqs->req2.nlh.nlmsg_len = 4;
 	rc = sendto(fd, reqs, sizeof(*reqs), MSG_DONTWAIT, NULL, 0);
 	printf("sendto(%d, [{{len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x"
-	       ", seq=0, pid=0}, \"abcd\"}, {{len=%u, type=NLMSG_NOOP"
-	       ", flags=NLM_F_REQUEST|0x%x, seq=0, pid=0}}], %u"
+	       ", seq=0, pid=0}, \"abcd\"}, {len=%u, type=NLMSG_NOOP"
+	       ", flags=NLM_F_REQUEST|0x%x, seq=0, pid=0}], %u"
 	       ", MSG_DONTWAIT, NULL, 0) = %s\n",
 	       fd, reqs->req1.nlh.nlmsg_len, NLM_F_DUMP,
 	       reqs->req2.nlh.nlmsg_len, NLM_F_DUMP,
 	       (unsigned) sizeof(*reqs), sprintrc(rc));
 
 	/* abbreviated output */
-# define DEFAULT_STRLEN 32
 # define ABBREV_LEN (DEFAULT_STRLEN + 1)
 	const unsigned int msg_len = sizeof(struct nlmsghdr) * ABBREV_LEN;
 	struct nlmsghdr *const msgs = tail_alloc(msg_len);
@@ -192,8 +187,8 @@
 	for (i = 0; i < DEFAULT_STRLEN; ++i) {
 		if (i)
 			printf(", ");
-		printf("{{len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x"
-		       ", seq=%u, pid=0}}",
+		printf("{len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x"
+		       ", seq=%u, pid=0}",
 		       msgs[i].nlmsg_len, NLM_F_DUMP, msgs[i].nlmsg_seq);
 	}
 	printf(", ...], %u, MSG_DONTWAIT, NULL, 0) = %s\n", msg_len, errstr);
@@ -281,8 +276,8 @@
 	rc = sendto(fd, nlh, nlh->nlmsg_len, MSG_DONTWAIT, NULL, 0);
 	printf("sendto(%d, {{len=%u, type=NLMSG_ERROR, flags=NLM_F_REQUEST"
 	       ", seq=0, pid=0}, {error=-EACCES"
-	       ", msg={{len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x"
-	       ", seq=%u, pid=%u}}}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       ", msg={len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x"
+	       ", seq=%u, pid=%u}}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
 	       fd, nlh->nlmsg_len, err->msg.nlmsg_len, NLM_F_DUMP,
 	       err->msg.nlmsg_seq, err->msg.nlmsg_pid,
 	       nlh->nlmsg_len, sprintrc(rc));
@@ -314,24 +309,58 @@
 	       nlh->nlmsg_len, sprintrc(rc));
 }
 
+static void
+test_nlmsg_done(const int fd)
+{
+	struct nlmsghdr *nlh;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+	const int num = 0xfacefeed;
+
+	/* NLMSG_DONE message without enough room for an integer payload */
+	nlh = nlh0;
+	*nlh = (struct nlmsghdr) {
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(num),
+		.nlmsg_type = NLMSG_DONE,
+		.nlmsg_flags = NLM_F_MULTI
+	};
+
+	rc = sendto(fd, nlh, nlh->nlmsg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=NLMSG_DONE, flags=NLM_F_MULTI"
+	       ", seq=0, pid=0}, %p}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh->nlmsg_len, nlh0 + NLMSG_HDRLEN,
+	       nlh->nlmsg_len, sprintrc(rc));
+
+	/* NLMSG_DONE message with enough room for an oddly short payload */
+	nlh->nlmsg_len = NLMSG_HDRLEN + 2;
+	nlh = nlh0 - 2;
+	/* Beware of unaligned access to nlh members. */
+	memmove(nlh, nlh0, sizeof(*nlh));
+	memcpy(NLMSG_DATA(nlh), "42", 2);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + 2, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=NLMSG_DONE, flags=NLM_F_MULTI"
+	       ", seq=0, pid=0}, \"42\"}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + 2, NLMSG_HDRLEN + 2, sprintrc(rc));
+
+	/* NLMSG_DONE message with enough room for an integer payload */
+	nlh = nlh0 - sizeof(num);
+	*nlh = (struct nlmsghdr) {
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(num),
+		.nlmsg_type = NLMSG_DONE,
+		.nlmsg_flags = NLM_F_MULTI
+	};
+	memcpy(NLMSG_DATA(nlh), &num, sizeof(num));
+
+	rc = sendto(fd, nlh, nlh->nlmsg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=NLMSG_DONE, flags=NLM_F_MULTI"
+	       ", seq=0, pid=0}, %d}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh->nlmsg_len, num, nlh->nlmsg_len, sprintrc(rc));
+}
+
 int main(void)
 {
-	struct sockaddr_nl addr;
-	socklen_t len = sizeof(addr);
-	int fd;
-
-	memset(&addr, 0, sizeof(addr));
-	addr.nl_family = AF_NETLINK;
-
-	if ((fd = socket(AF_NETLINK, SOCK_RAW, NETLINK_SOCK_DIAG)) == -1)
-		perror_msg_and_skip("socket AF_NETLINK");
-
-	printf("socket(AF_NETLINK, SOCK_RAW, NETLINK_SOCK_DIAG) = %d\n",
-	       fd);
-	if (bind(fd, (struct sockaddr *) &addr, len))
-		perror_msg_and_skip("bind");
-	printf("bind(%d, {sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}"
-	       ", %u) = 0\n", fd, len);
+	const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
 
 	char *path;
 	if (asprintf(&path, "/proc/self/fd/%u", fd) < 0)
@@ -343,9 +372,9 @@
 
 	send_query(fd);
 	test_nlmsgerr(fd);
+	test_nlmsg_done(fd);
 
-	printf("+++ exited with 0 +++\n");
-
+	puts("+++ exited with 0 +++");
 	return 0;
 }
 
diff --git a/tests-mx32/netlink_protocol.gen.test b/tests-mx32/netlink_protocol.gen.test
index 9a132fa..18d0667 100755
--- a/tests-mx32/netlink_protocol.gen.test
+++ b/tests-mx32/netlink_protocol.gen.test
@@ -1,4 +1,4 @@
 #!/bin/sh -efu
-# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (netlink_protocol -e trace=%network); do not edit.
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (netlink_protocol -e trace=sendto); do not edit.
 . "${srcdir=.}/init.sh"
-run_strace_match_diff -e trace=%network
+run_strace_match_diff -e trace=sendto
diff --git a/tests-mx32/netlink_route.c b/tests-mx32/netlink_route.c
new file mode 100644
index 0000000..54a54b7
--- /dev/null
+++ b/tests-mx32/netlink_route.c
@@ -0,0 +1,107 @@
+/*
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@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.
+ */
+
+#include "tests.h"
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/socket.h>
+#include "netlink.h"
+#include <linux/rtnetlink.h>
+
+static void
+test_nlmsg_type(const int fd)
+{
+	long rc;
+	struct nlmsghdr nlh = {
+		.nlmsg_len = sizeof(nlh),
+		.nlmsg_type = RTM_GETLINK,
+		.nlmsg_flags = NLM_F_REQUEST,
+	};
+
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=RTM_GETLINK"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+}
+
+static void
+test_nlmsg_flags(const int fd)
+{
+	long rc;
+	struct nlmsghdr nlh = {
+		.nlmsg_len = sizeof(nlh),
+	};
+
+	nlh.nlmsg_type = RTM_GETLINK;
+	nlh.nlmsg_flags = NLM_F_REQUEST | NLM_F_DUMP;
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=RTM_GETLINK"
+	       ", flags=NLM_F_REQUEST|NLM_F_DUMP, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+
+	nlh.nlmsg_type = RTM_DELACTION;
+	nlh.nlmsg_flags = NLM_F_ROOT;
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=RTM_DELACTION"
+	       ", flags=NLM_F_ROOT, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+
+	nlh.nlmsg_type = RTM_NEWLINK;
+	nlh.nlmsg_flags = NLM_F_ECHO | NLM_F_REPLACE;
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=RTM_NEWLINK"
+	       ", flags=NLM_F_ECHO|NLM_F_REPLACE, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+
+	nlh.nlmsg_type = RTM_DELLINK;
+	nlh.nlmsg_flags = NLM_F_REPLACE;
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=RTM_DELLINK"
+	       ", flags=%#x /* NLM_F_??? */, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, NLM_F_REPLACE,
+	       (unsigned) sizeof(nlh), sprintrc(rc));
+}
+
+int main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	int fd = create_nl_socket(NETLINK_ROUTE);
+
+	test_nlmsg_type(fd);
+	test_nlmsg_flags(fd);
+
+	printf("+++ exited with 0 +++\n");
+
+	return 0;
+}
diff --git a/tests-mx32/netlink_route.gen.test b/tests-mx32/netlink_route.gen.test
new file mode 100755
index 0000000..298dbf1
--- /dev/null
+++ b/tests-mx32/netlink_route.gen.test
@@ -0,0 +1,3 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (netlink_route +netlink_sock_diag.test); do not edit.
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests-mx32/netlink_selinux.c b/tests-mx32/netlink_selinux.c
new file mode 100644
index 0000000..6494fda
--- /dev/null
+++ b/tests-mx32/netlink_selinux.c
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@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.
+ */
+
+#include "tests.h"
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/socket.h>
+#include "netlink.h"
+#include <linux/selinux_netlink.h>
+
+static void
+test_nlmsg_type(const int fd)
+{
+	long rc;
+	struct nlmsghdr nlh = {
+		.nlmsg_len = sizeof(nlh),
+		.nlmsg_type = SELNL_MSG_SETENFORCE,
+		.nlmsg_flags = NLM_F_REQUEST,
+	};
+
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=SELNL_MSG_SETENFORCE"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+}
+
+int main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	int fd = create_nl_socket(NETLINK_SELINUX);
+
+	test_nlmsg_type(fd);
+
+	printf("+++ exited with 0 +++\n");
+
+	return 0;
+}
diff --git a/tests-mx32/netlink_selinux.gen.test b/tests-mx32/netlink_selinux.gen.test
new file mode 100755
index 0000000..a8871d6
--- /dev/null
+++ b/tests-mx32/netlink_selinux.gen.test
@@ -0,0 +1,3 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (netlink_selinux +netlink_sock_diag.test); do not edit.
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests-mx32/netlink_sock_diag.c b/tests-mx32/netlink_sock_diag.c
new file mode 100644
index 0000000..b8d0190
--- /dev/null
+++ b/tests-mx32/netlink_sock_diag.c
@@ -0,0 +1,1606 @@
+/*
+ * Copyright (c) 2016 Fabien Siron <fabien.siron@epita.fr>
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@gmail.com>
+ * Copyright (c) 2017 The strace developers.
+ * 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 "tests.h"
+#include <stdio.h>
+#include <string.h>
+#include <stdint.h>
+#include <unistd.h>
+#include <sys/socket.h>
+#include <arpa/inet.h>
+#include <netinet/tcp.h>
+#include "netlink.h"
+#include <linux/if_ether.h>
+#include <linux/inet_diag.h>
+#include <linux/netlink_diag.h>
+#include <linux/packet_diag.h>
+#ifdef AF_SMC
+# include <linux/smc_diag.h>
+#endif
+#include <linux/sock_diag.h>
+#include <linux/unix_diag.h>
+
+#define SMC_ACTIVE 1
+
+static void
+test_nlmsg_type(const int fd)
+{
+	long rc;
+	struct nlmsghdr nlh = {
+		.nlmsg_len = sizeof(nlh),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST,
+	};
+
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+}
+
+static void
+test_nlmsg_flags(const int fd)
+{
+	long rc;
+	struct nlmsghdr nlh = {
+		.nlmsg_len = sizeof(nlh),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST | NLM_F_DUMP,
+	};
+
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST|NLM_F_DUMP, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+}
+
+static void
+test_odd_family_req(const int fd)
+{
+	struct nlmsghdr *nlh;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* unspecified family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	family = NLMSG_DATA(nlh);
+	*family = 0;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {family=AF_UNSPEC}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* unknown family only */
+	*family = 0xff;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {family=0xff /* AF_??? */}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* short read of family */
+	memmove(nlh0, nlh, NLMSG_HDRLEN);
+	nlh = nlh0;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}, %p}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_DATA(nlh),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* unspecified family and string */
+	nlh = nlh0 - (sizeof(*family) + 4);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	family = NLMSG_DATA(nlh);
+	*family = 0;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {family=AF_UNSPEC, \"1234\"}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* unknown family and string */
+	*family = 0xfd;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {family=0xfd /* AF_??? */, \"1234\"}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+}
+
+static void
+test_odd_family_msg(const int fd)
+{
+	struct nlmsghdr *nlh;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* unspecified family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	family = NLMSG_DATA(nlh);
+	*family = 0;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {family=AF_UNSPEC}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* unknown family only */
+	*family = 0xff;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {family=0xff /* AF_??? */}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* short read of family */
+	memmove(nlh0, nlh, NLMSG_HDRLEN);
+	nlh = nlh0;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, %p}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_DATA(nlh),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* unspecified family and string */
+	nlh = nlh0 - (sizeof(*family) + 4);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	family = NLMSG_DATA(nlh);
+	*family = 0;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {family=AF_UNSPEC, \"1234\"}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* unknown family and string */
+	*family = 0xfb;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {family=0xfb /* AF_??? */, \"1234\"}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+}
+
+static void
+test_unix_diag_req(const int fd)
+{
+	struct nlmsghdr *nlh;
+	struct unix_diag_req *req;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_UNIX;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}, {family=AF_UNIX}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - (sizeof(*family) + 4);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_UNIX;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_UNIX, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* unix_diag_req */
+	nlh = nlh0 - sizeof(*req);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*req),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	req = NLMSG_DATA(nlh);
+	*req = (struct unix_diag_req) {
+		.sdiag_family = AF_UNIX,
+		.sdiag_protocol = 253,
+		.udiag_states = 1 << TCP_ESTABLISHED | 1 << TCP_LISTEN,
+		.udiag_ino = 0xfacefeed,
+		.udiag_show = UDIAG_SHOW_NAME,
+		.udiag_cookie = { 0xdeadbeef, 0xbadc0ded }
+	};
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_UNIX, sdiag_protocol=%u"
+	       ", udiag_states=1<<TCP_ESTABLISHED|1<<TCP_LISTEN, udiag_ino=%u"
+	       ", udiag_show=UDIAG_SHOW_NAME, udiag_cookie=[%u, %u]}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       253, 0xfacefeed, 0xdeadbeef, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+
+	/* short read of unix_diag_req */
+	nlh = nlh0 - (sizeof(*req) - 1);
+	/* beware of unaligned access to nlh members */
+	memmove(nlh, nlh0 - sizeof(*req), NLMSG_HDRLEN + sizeof(*req) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}, {sdiag_family=AF_UNIX, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+}
+
+static void
+test_unix_diag_msg(const int fd)
+{
+	struct nlmsghdr *nlh;
+	struct unix_diag_msg *msg;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_UNIX;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {family=AF_UNIX}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - (sizeof(*family) + 4);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_UNIX;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {udiag_family=AF_UNIX, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* unix_diag_msg */
+	nlh = nlh0 - sizeof(*msg);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*msg),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	msg = NLMSG_DATA(nlh);
+	*msg = (struct unix_diag_msg) {
+		.udiag_family = AF_UNIX,
+		.udiag_type = SOCK_STREAM,
+		.udiag_state = TCP_FIN_WAIT1,
+		.udiag_ino = 0xfacefeed,
+		.udiag_cookie = { 0xdeadbeef, 0xbadc0ded }
+	};
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {udiag_family=AF_UNIX, udiag_type=SOCK_STREAM"
+	       ", udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=%u, udiag_cookie=[%u, %u]}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       0xfacefeed, 0xdeadbeef, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       sprintrc(rc));
+
+	/* short read of unix_diag_msg */
+	nlh = nlh0 - (sizeof(*msg) - 1);
+	/* beware of unaligned access to nlh members */
+	memmove(nlh, nlh0 - sizeof(*msg), NLMSG_HDRLEN + sizeof(*msg) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       sprintrc(rc));
+}
+
+static void
+test_netlink_diag_req(const int fd)
+{
+	struct nlmsghdr *nlh;
+	struct netlink_diag_req *req;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_NETLINK;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}, {family=AF_NETLINK}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - (sizeof(*family) + 4);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_NETLINK;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_NETLINK, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* netlink_diag_req */
+	nlh = nlh0 - sizeof(*req);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*req),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	req = NLMSG_DATA(nlh);
+	*req = (struct netlink_diag_req) {
+		.sdiag_family = AF_NETLINK,
+		.sdiag_protocol = NDIAG_PROTO_ALL,
+		.ndiag_ino = 0xfacefeed,
+		.ndiag_show = NDIAG_SHOW_MEMINFO,
+		.ndiag_cookie = { 0xdeadbeef, 0xbadc0ded }
+	};
+
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_NETLINK, sdiag_protocol=NDIAG_PROTO_ALL"
+	       ", ndiag_ino=%u, ndiag_show=NDIAG_SHOW_MEMINFO"
+	       ", ndiag_cookie=[%u, %u]}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       0xfacefeed, 0xdeadbeef, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+
+	req->sdiag_protocol = NETLINK_ROUTE;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_NETLINK, sdiag_protocol=NETLINK_ROUTE"
+	       ", ndiag_ino=%u, ndiag_show=NDIAG_SHOW_MEMINFO"
+	       ", ndiag_cookie=[%u, %u]}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       0xfacefeed, 0xdeadbeef, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+
+	/* short read of netlink_diag_req */
+	nlh = nlh0 - (sizeof(*req) - 1);
+	/* beware of unaligned access to nlh members */
+	memmove(nlh, nlh0 - sizeof(*req), NLMSG_HDRLEN + sizeof(*req) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_NETLINK, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+}
+
+static void
+test_netlink_diag_msg(const int fd)
+{
+	struct nlmsghdr *nlh;
+	struct netlink_diag_msg *msg;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_NETLINK;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {family=AF_NETLINK}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - (sizeof(*family) + 4);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_NETLINK;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {ndiag_family=AF_NETLINK, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* netlink_diag_msg */
+	nlh = nlh0 - sizeof(*msg);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*msg),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	msg = NLMSG_DATA(nlh);
+	*msg = (struct netlink_diag_msg) {
+		.ndiag_family = AF_NETLINK,
+		.ndiag_type = SOCK_RAW,
+		.ndiag_protocol = NETLINK_ROUTE,
+		.ndiag_state = NETLINK_CONNECTED,
+		.ndiag_portid = 0xbadc0ded,
+		.ndiag_dst_portid = 0xdeadbeef,
+		.ndiag_dst_group = 0xfacefeed,
+		.ndiag_ino = 0xdaeefacd,
+		.ndiag_cookie = { 0xbadc0ded, 0xdeadbeef }
+	};
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {ndiag_family=AF_NETLINK"
+	       ", ndiag_type=SOCK_RAW, ndiag_protocol=NETLINK_ROUTE"
+	       ", ndiag_state=NETLINK_CONNECTED, ndiag_portid=%u"
+	       ", ndiag_dst_portid=%u, ndiag_dst_group=%u, ndiag_ino=%u"
+	       ", ndiag_cookie=[%u, %u]}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       0xbadc0ded, 0xdeadbeef, 0xfacefeed,
+	       0xdaeefacd, 0xbadc0ded, 0xdeadbeef,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       sprintrc(rc));
+
+	/* short read of netlink_diag_msg */
+	nlh = nlh0 - (sizeof(*msg) - 1);
+	/* beware of unaligned access to nlh members */
+	memmove(nlh, nlh0 - sizeof(*msg), NLMSG_HDRLEN + sizeof(*msg) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {ndiag_family=AF_NETLINK, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       sprintrc(rc));
+}
+
+static void
+test_packet_diag_req(const int fd)
+{
+	struct nlmsghdr *nlh;
+	struct packet_diag_req *req;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_PACKET;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}, {family=AF_PACKET}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - (sizeof(*family) + 4);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_PACKET;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_PACKET, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* packet_diag_req */
+	nlh = nlh0 - sizeof(*req);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*req),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	req = NLMSG_DATA(nlh);
+	*req = (struct packet_diag_req) {
+		.sdiag_family = AF_PACKET,
+		.sdiag_protocol = ETH_P_LOOP,
+		.pdiag_ino = 0xfacefeed,
+		.pdiag_show = PACKET_SHOW_INFO,
+		.pdiag_cookie = { 0xdeadbeef, 0xbadc0ded }
+	};
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_PACKET, sdiag_protocol=ETH_P_LOOP"
+	       ", pdiag_ino=%u, pdiag_show=PACKET_SHOW_INFO"
+	       ", pdiag_cookie=[%u, %u]}}, %u"
+	       ", MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       0xfacefeed, 0xdeadbeef, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+
+	/* short read of packet_diag_req */
+	nlh = nlh0 - (sizeof(*req) - 1);
+	memmove(nlh, nlh0 - sizeof(*req), NLMSG_HDRLEN + sizeof(*req) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_PACKET, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+}
+
+static void
+test_packet_diag_msg(const int fd)
+{
+	struct nlmsghdr *nlh;
+	struct packet_diag_msg *msg;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_PACKET;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {family=AF_PACKET}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - (sizeof(*family) + 4);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_PACKET;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {pdiag_family=AF_PACKET, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* packet_diag_msg */
+	nlh = nlh0 - sizeof(*msg);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*msg),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	msg = NLMSG_DATA(nlh);
+	*msg = (struct packet_diag_msg) {
+		.pdiag_family = AF_PACKET,
+		.pdiag_type = SOCK_STREAM,
+		.pdiag_num = 0xbadc,
+		.pdiag_ino = 0xfacefeed,
+		.pdiag_cookie = { 0xdeadbeef, 0xbadc0ded }
+	};
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {pdiag_family=AF_PACKET, pdiag_type=SOCK_STREAM"
+	       ", pdiag_num=%u, pdiag_ino=%u, pdiag_cookie=[%u, %u]}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       0xbadc, 0xfacefeed, 0xdeadbeef, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       sprintrc(rc));
+
+	/* short read of packet_diag_msg */
+	nlh = nlh0 - (sizeof(*msg) - 1);
+	memmove(nlh, nlh0 - sizeof(*msg), NLMSG_HDRLEN + sizeof(*msg) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {pdiag_family=AF_PACKET, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       sprintrc(rc));
+}
+
+static void
+test_inet_diag_sockid(const int fd)
+{
+	const char address[] = "12.34.56.78";
+	const char address6[] = "12:34:56:78:90:ab:cd:ef";
+	struct nlmsghdr *nlh;
+	struct inet_diag_req_v2 *req;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	nlh = nlh0 - sizeof(*req);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*req),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+
+	req = NLMSG_DATA(nlh);
+	*req = (struct inet_diag_req_v2) {
+		.sdiag_family = AF_INET,
+		.idiag_ext = 1 << (INET_DIAG_CONG - 1),
+		.sdiag_protocol = IPPROTO_TCP,
+		.idiag_states = 1 << TCP_CLOSE,
+		.id = {
+			.idiag_sport = 0xfacd,
+			.idiag_dport = 0xdead,
+			.idiag_if = 0xadcdfafc,
+			.idiag_cookie = { 0xdeadbeef, 0xbadc0ded }
+		},
+	};
+
+	if (!inet_pton(AF_INET, address, &req->id.idiag_src))
+		perror_msg_and_skip("sendto");
+	if (!inet_pton(AF_INET, address, &req->id.idiag_dst))
+		perror_msg_and_skip("sendto");
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_INET, sdiag_protocol=IPPROTO_TCP"
+	       ", idiag_ext=1<<(INET_DIAG_CONG-1)"
+	       ", idiag_states=1<<TCP_CLOSE, id={idiag_sport=htons(%u)"
+	       ", idiag_dport=htons(%u), inet_pton(AF_INET, \"%s\", &idiag_src)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_dst), idiag_if=%u"
+	       ", idiag_cookie=[%u, %u]}}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       ntohs(0xfacd), ntohs(0xdead), address, address,
+	       0xadcdfafc, 0xdeadbeef, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+
+	req->sdiag_family = AF_INET6;
+	if (!inet_pton(AF_INET6, address6, &req->id.idiag_src))
+		perror_msg_and_skip("sendto");
+	if (!inet_pton(AF_INET6, address6, &req->id.idiag_dst))
+		perror_msg_and_skip("sendto");
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_INET6, sdiag_protocol=IPPROTO_TCP"
+	       ", idiag_ext=1<<(INET_DIAG_CONG-1)"
+	       ", idiag_states=1<<TCP_CLOSE, id={idiag_sport=htons(%u)"
+	       ", idiag_dport=htons(%u), inet_pton(AF_INET6, \"%s\", &idiag_src)"
+	       ", inet_pton(AF_INET6, \"%s\", &idiag_dst), idiag_if=%u"
+	       ", idiag_cookie=[%u, %u]}}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       ntohs(0xfacd), ntohs(0xdead), address6, address6,
+	       0xadcdfafc, 0xdeadbeef, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+}
+
+static void
+test_inet_diag_req(const int fd)
+{
+	const char address[] = "12.34.56.78";
+	struct nlmsghdr *nlh;
+	struct inet_diag_req *req;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = TCPDIAG_GETSOCK,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+
+	family = NLMSG_DATA(nlh);
+	*family = AF_INET;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=TCPDIAG_GETSOCK"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}, {family=AF_INET}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - (sizeof(*family) + 4);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = TCPDIAG_GETSOCK,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+
+	family = NLMSG_DATA(nlh);
+	*family = AF_INET;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=TCPDIAG_GETSOCK"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {idiag_family=AF_INET, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* inet_diag_req */
+	nlh = nlh0 - sizeof(*req);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*req),
+		.nlmsg_type = TCPDIAG_GETSOCK,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+
+	req = NLMSG_DATA(nlh);
+	*req = (struct inet_diag_req) {
+		.idiag_family = AF_INET,
+		.idiag_ext = 1 << (INET_DIAG_TOS - 1),
+		.idiag_src_len = 0xde,
+		.idiag_dst_len = 0xba,
+		.id = {
+			.idiag_sport = 0xdead,
+			.idiag_dport = 0xadcd,
+			.idiag_if = 0xadcdfafc,
+			.idiag_cookie = { 0xdeadbeef, 0xbadc0ded }
+		},
+		.idiag_states = 1 << TCP_LAST_ACK,
+		.idiag_dbs = 0xfacefeed,
+	};
+
+	if (!inet_pton(AF_INET, address, &req->id.idiag_src))
+		perror_msg_and_skip("sendto");
+	if (!inet_pton(AF_INET, address, &req->id.idiag_dst))
+		perror_msg_and_skip("sendto");
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=TCPDIAG_GETSOCK"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {idiag_family=AF_INET, idiag_src_len=%u"
+	       ", idiag_dst_len=%u, idiag_ext=1<<(INET_DIAG_TOS-1)"
+	       ", id={idiag_sport=htons(%u), idiag_dport=htons(%u)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_src)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_dst)"
+	       ", idiag_if=%u, idiag_cookie=[%u, %u]}"
+	       ", idiag_states=1<<TCP_LAST_ACK, idiag_dbs=%u}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       0xde, 0xba, ntohs(0xdead), ntohs(0xadcd), address, address,
+	       0xadcdfafc, 0xdeadbeef, 0xbadc0ded, 0xfacefeed,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+
+	/* short read of inet_diag_req */
+	nlh = nlh0 - (sizeof(*req) - 1);
+	/* beware of unaligned access to nlh members */
+	memmove(nlh, nlh0 - sizeof(*req), NLMSG_HDRLEN + sizeof(*req) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=TCPDIAG_GETSOCK"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {idiag_family=AF_INET, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+}
+
+static void
+test_inet_diag_req_v2(const int fd)
+{
+	const char address[] = "87.65.43.21";
+	struct nlmsghdr *nlh;
+	struct inet_diag_req_v2 *req;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+
+	family = NLMSG_DATA(nlh);
+	*family = AF_INET;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}, {family=AF_INET}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - sizeof(*family) - 4;
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+
+	family = NLMSG_DATA(nlh);
+	*family = AF_INET;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_INET, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* inet_diag_req_v2 */
+	nlh = nlh0 - sizeof(*req);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*req),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+
+	req = NLMSG_DATA(nlh);
+	*req = (struct inet_diag_req_v2) {
+		.sdiag_family = AF_INET,
+		.idiag_ext = 1 << (INET_DIAG_CONG - 1),
+		.sdiag_protocol = IPPROTO_TCP,
+		.idiag_states = 1 << TCP_CLOSE,
+		.id = {
+			.idiag_sport = 0xfacd,
+			.idiag_dport = 0xdead,
+			.idiag_if = 0xadcdfafc,
+			.idiag_cookie = { 0xdeadbeef, 0xbadc0ded }
+		},
+	};
+
+	if (!inet_pton(AF_INET, address, &req->id.idiag_src))
+		perror_msg_and_skip("sendto");
+	if (!inet_pton(AF_INET, address, &req->id.idiag_dst))
+		perror_msg_and_skip("sendto");
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_INET, sdiag_protocol=IPPROTO_TCP"
+	       ", idiag_ext=1<<(INET_DIAG_CONG-1)"
+	       ", idiag_states=1<<TCP_CLOSE, id={idiag_sport=htons(%u)"
+	       ", idiag_dport=htons(%u), inet_pton(AF_INET, \"%s\", &idiag_src)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_dst), idiag_if=%u"
+	       ", idiag_cookie=[%u, %u]}}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       ntohs(0xfacd), ntohs(0xdead), address, address,
+	       0xadcdfafc, 0xdeadbeef, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+
+	/* short read of inet_diag_req_v2 */
+	nlh = nlh0 - (sizeof(*req) - 1);
+	/* beware of unaligned access to nlh members */
+	memmove(nlh, nlh0 - sizeof(*req), NLMSG_HDRLEN + sizeof(*req) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_INET, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+}
+
+static void
+test_inet_diag_msg(const int fd)
+{
+	const char address[] = "11.22.33.44";
+	struct nlmsghdr *nlh;
+	struct inet_diag_msg *msg;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+
+	family = NLMSG_DATA(nlh);
+	*family = AF_INET;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {family=AF_INET}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - sizeof(*family) - 4;
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+
+	family = NLMSG_DATA(nlh);
+	*family = AF_INET;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {idiag_family=AF_INET, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* inet_diag_msg */
+	nlh = nlh0 - sizeof(*msg);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*msg),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+
+	msg = NLMSG_DATA(nlh);
+	*msg = (struct inet_diag_msg) {
+		.idiag_family = AF_INET,
+		.idiag_state = TCP_LISTEN,
+		.idiag_timer = 0xfa,
+		.idiag_retrans = 0xde,
+		.id = {
+			.idiag_sport = 0xfacf,
+			.idiag_dport = 0xdead,
+			.idiag_if = 0xadcdfafc,
+			.idiag_cookie = { 0xdeadbeef, 0xbadc0ded }
+		},
+		.idiag_expires = 0xfacefeed,
+		.idiag_rqueue = 0xdeadbeef,
+		.idiag_wqueue = 0xadcdfafc,
+		.idiag_uid = 0xdecefaeb,
+		.idiag_inode = 0xbadc0ded,
+	};
+
+	if (!inet_pton(AF_INET, address, &msg->id.idiag_src))
+		perror_msg_and_skip("sendto");
+	if (!inet_pton(AF_INET, address, &msg->id.idiag_dst))
+		perror_msg_and_skip("sendto");
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {idiag_family=AF_INET, idiag_state=TCP_LISTEN"
+	       ", idiag_timer=%u, idiag_retrans=%u"
+	       ", id={idiag_sport=htons(%u), idiag_dport=htons(%u)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_src)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_dst)"
+	       ", idiag_if=%u, idiag_cookie=[%u, %u]}"
+	       ", idiag_expires=%u, idiag_rqueue=%u, idiag_wqueue=%u"
+	       ", idiag_uid=%u, idiag_inode=%u}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       0xfa, 0xde, ntohs(0xfacf), ntohs(0xdead),
+	       address, address, 0xadcdfafc, 0xdeadbeef, 0xbadc0ded,
+	       0xfacefeed, 0xdeadbeef, 0xadcdfafc, 0xdecefaeb, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       sprintrc(rc));
+
+	/* short read of inet_diag_msg */
+	nlh = nlh0 - (sizeof(*msg) - 1);
+	/* beware of unaligned access to nlh members */
+	memmove(nlh, nlh0 - sizeof(*msg), NLMSG_HDRLEN + sizeof(*msg) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,
+		    NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {idiag_family=AF_INET, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       sprintrc(rc));
+}
+
+#ifdef AF_SMC
+static void
+test_smc_diag_req(const int fd)
+{
+	const char address[] = "43.21.56.78";
+	struct nlmsghdr *nlh;
+	struct smc_diag_req *req;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+
+	family = NLMSG_DATA(nlh);
+	*family = AF_SMC;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}, {family=AF_SMC}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - sizeof(*family) - 4;
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+
+	family = NLMSG_DATA(nlh);
+	*family = AF_SMC;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {diag_family=AF_SMC, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* smc_diag_req */
+	nlh = nlh0 - sizeof(*req);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*req),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+
+	req = NLMSG_DATA(nlh);
+	*req = (struct smc_diag_req) {
+		.diag_family = AF_SMC,
+		.diag_ext = 1 << (SMC_DIAG_CONNINFO - 1),
+		.id = {
+			.idiag_sport = 0xdead,
+			.idiag_dport = 0xadcd,
+			.idiag_if = 0xadcdfafc,
+			.idiag_cookie = { 0xdeadbeef, 0xbadc0ded },
+		},
+	};
+
+	if (!inet_pton(AF_INET, address, &req->id.idiag_src))
+		perror_msg_and_skip("sendto");
+	if (!inet_pton(AF_INET, address, &req->id.idiag_dst))
+		perror_msg_and_skip("sendto");
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}, {diag_family=AF_SMC"
+	       ", diag_ext=1<<(SMC_DIAG_CONNINFO-1)"
+	       ", id={idiag_sport=htons(%u), idiag_dport=htons(%u)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_src)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_dst)"
+	       ", idiag_if=%u, idiag_cookie=[%u, %u]}}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       htons(0xdead), htons(0xadcd), address, address,
+	       0xadcdfafc, 0xdeadbeef, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+
+	/* short read of smc_diag_req */
+	nlh = nlh0 - (sizeof(*req) - 1);
+	/* beware of unaligned access to nlh members */
+	memmove(nlh, nlh0 - sizeof(*req), NLMSG_HDRLEN + sizeof(*req) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {diag_family=AF_SMC, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+}
+
+static void
+test_smc_diag_msg(const int fd)
+{
+	const char address[] = "34.87.12.90";
+	struct nlmsghdr *nlh;
+	struct smc_diag_msg *msg;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+
+	family = NLMSG_DATA(nlh);
+	*family = AF_SMC;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {family=AF_SMC}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - sizeof(*family) - 4;
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+
+	family = NLMSG_DATA(nlh);
+	*family = AF_SMC;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {diag_family=AF_SMC, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* smc_diag_msg */
+	nlh = nlh0 - sizeof(*msg);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*msg),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+
+	msg = NLMSG_DATA(nlh);
+	*msg = (struct smc_diag_msg) {
+		.diag_family = AF_SMC,
+		.diag_state = SMC_ACTIVE,
+		.diag_fallback = 0xde,
+		.diag_shutdown = 0xba,
+		.id = {
+			.idiag_sport = 0xdead,
+			.idiag_dport = 0xadcd,
+			.idiag_if = 0xadcdfafc,
+			.idiag_cookie = { 0xdeadbeef, 0xbadc0ded },
+		},
+		.diag_uid = 0xadcdfafc,
+		.diag_inode = 0xbadc0ded,
+	};
+
+	if (!inet_pton(AF_INET, address, &msg->id.idiag_src))
+		perror_msg_and_skip("sendto");
+	if (!inet_pton(AF_INET, address, &msg->id.idiag_dst))
+		perror_msg_and_skip("sendto");
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {diag_family=AF_SMC"
+	       ", diag_state=SMC_ACTIVE, diag_fallback=%u, diag_shutdown=%u"
+	       ", id={idiag_sport=htons(%u), idiag_dport=htons(%u)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_src)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_dst)"
+	       ", idiag_if=%u, idiag_cookie=[%u, %u]}"
+	       ", diag_uid=%u, diag_inode=%u}}, %u"
+	       ", MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       0xde, 0xba, htons(0xdead), htons(0xadcd), address, address,
+	       0xadcdfafc, 0xdeadbeef, 0xbadc0ded, 0xadcdfafc, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       sprintrc(rc));
+
+	/* short read of smc_diag_msg */
+	nlh = nlh0 - (sizeof(*msg) - 1);
+	/* beware of unaligned access to nlh members */
+	memmove(nlh, nlh0 - sizeof(*msg), NLMSG_HDRLEN + sizeof(*msg) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,
+		    NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {diag_family=AF_SMC, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       sprintrc(rc));
+}
+#endif
+
+int
+main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	int fd = create_nl_socket(NETLINK_SOCK_DIAG);
+
+	test_nlmsg_type(fd);
+	test_nlmsg_flags(fd);
+	test_odd_family_req(fd);
+	test_odd_family_msg(fd);
+	test_unix_diag_req(fd);
+	test_unix_diag_msg(fd);
+	test_netlink_diag_req(fd);
+	test_netlink_diag_msg(fd);
+	test_packet_diag_req(fd);
+	test_packet_diag_msg(fd);
+	test_inet_diag_sockid(fd);
+	test_inet_diag_req(fd);
+	test_inet_diag_req_v2(fd);
+	test_inet_diag_msg(fd);
+#ifdef AF_SMC
+	test_smc_diag_req(fd);
+	test_smc_diag_msg(fd);
+#endif
+
+	printf("+++ exited with 0 +++\n");
+
+	return 0;
+}
diff --git a/tests-mx32/netlink_sock_diag.test b/tests-mx32/netlink_sock_diag.test
new file mode 100755
index 0000000..0cf380e
--- /dev/null
+++ b/tests-mx32/netlink_sock_diag.test
@@ -0,0 +1,33 @@
+#!/bin/sh
+#
+# Check decoding of NETLINK_SOCK_DIAG protocol
+#
+# Copyright (c) 2017 The strace developers.
+# 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.
+
+. "${srcdir=.}/init.sh"
+
+run_prog ../netlink_netlink_diag
+run_strace_match_diff -e trace=sendto
diff --git a/tests-mx32/netlink_unix_diag.c b/tests-mx32/netlink_unix_diag.c
index 269adc6..119cc9e 100644
--- a/tests-mx32/netlink_unix_diag.c
+++ b/tests-mx32/netlink_unix_diag.c
@@ -36,14 +36,10 @@
 #include <unistd.h>
 #include <sys/socket.h>
 #include <sys/un.h>
-#include <linux/netlink.h>
+#include "netlink.h"
 #include <linux/sock_diag.h>
 #include <linux/unix_diag.h>
 
-#if !defined NETLINK_SOCK_DIAG && defined NETLINK_INET_DIAG
-# define NETLINK_SOCK_DIAG NETLINK_INET_DIAG
-#endif
-
 static void
 send_query(const int fd)
 {
diff --git a/tests-mx32/netlink_xfrm.c b/tests-mx32/netlink_xfrm.c
new file mode 100644
index 0000000..27f62d1
--- /dev/null
+++ b/tests-mx32/netlink_xfrm.c
@@ -0,0 +1,100 @@
+/*
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@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.
+ */
+
+#include "tests.h"
+#include <stdio.h>
+#include <string.h>
+#include <stdint.h>
+#include <unistd.h>
+#include <sys/socket.h>
+#include "netlink.h"
+#include <linux/xfrm.h>
+
+static void
+test_nlmsg_type(const int fd)
+{
+	long rc;
+	struct nlmsghdr nlh = {
+		.nlmsg_len = sizeof(nlh),
+		.nlmsg_type = XFRM_MSG_NEWSA,
+		.nlmsg_flags = NLM_F_REQUEST,
+	};
+
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=XFRM_MSG_NEWSA"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+}
+
+static void
+test_nlmsg_flags(const int fd)
+{
+	long rc;
+	struct nlmsghdr nlh = {
+		.nlmsg_len = sizeof(nlh),
+	};
+
+	nlh.nlmsg_type = XFRM_MSG_GETSA;
+	nlh.nlmsg_flags = NLM_F_DUMP;
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=XFRM_MSG_GETSA"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+
+	nlh.nlmsg_type = XFRM_MSG_NEWSA;
+	nlh.nlmsg_flags = NLM_F_REPLACE;
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=XFRM_MSG_NEWSA"
+	       ", flags=NLM_F_REPLACE, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+
+	nlh.nlmsg_type = XFRM_MSG_DELSA;
+	nlh.nlmsg_flags = NLM_F_ECHO | NLM_F_REPLACE;
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=XFRM_MSG_DELSA"
+	       ", flags=NLM_F_ECHO|%#x, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, NLM_F_REPLACE,
+	       (unsigned) sizeof(nlh), sprintrc(rc));
+}
+
+int main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	int fd = create_nl_socket(NETLINK_XFRM);
+
+	test_nlmsg_type(fd);
+	test_nlmsg_flags(fd);
+
+	printf("+++ exited with 0 +++\n");
+
+	return 0;
+}
diff --git a/tests-mx32/netlink_xfrm.gen.test b/tests-mx32/netlink_xfrm.gen.test
new file mode 100755
index 0000000..17f7444
--- /dev/null
+++ b/tests-mx32/netlink_xfrm.gen.test
@@ -0,0 +1,3 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (netlink_xfrm +netlink_sock_diag.test); do not edit.
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests-mx32/nlattr.c b/tests-mx32/nlattr.c
new file mode 100644
index 0000000..7361ece
--- /dev/null
+++ b/tests-mx32/nlattr.c
@@ -0,0 +1,326 @@
+/*
+ * Check decoding of netlink attribute.
+ *
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@gmail.com>
+ * Copyright (c) 2017 The strace developers.
+ * 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 "tests.h"
+
+#include <stdio.h>
+#include <stdint.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/socket.h>
+#include <netinet/tcp.h>
+#include "netlink.h"
+#include <linux/rtnetlink.h>
+#include <linux/sock_diag.h>
+#include <linux/unix_diag.h>
+
+static void
+test_nlattr(const int fd)
+{
+	static const struct msg {
+		struct nlmsghdr nlh;
+		struct unix_diag_msg udm;
+	} c_msg = {
+		.nlh = {
+			.nlmsg_len = sizeof(struct msg),
+			.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+			.nlmsg_flags = NLM_F_DUMP
+		},
+		.udm = {
+			.udiag_family = AF_UNIX,
+			.udiag_type = SOCK_STREAM,
+			.udiag_state = TCP_FIN_WAIT1
+		}
+	};
+	struct msg *msg;
+	struct nlattr *nla;
+	unsigned int msg_len;
+	long rc;
+
+	/* fetch fail: len < sizeof(struct nlattr) */
+	msg_len = NLMSG_SPACE(sizeof(msg->udm)) + 2;
+	msg = tail_memdup(&c_msg, msg_len);
+	memcpy(&msg->nlh.nlmsg_len, &msg_len, sizeof(msg_len));
+	nla = NLMSG_ATTR(msg, sizeof(msg->udm));
+	memcpy(nla, "12", 2);
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, \"12\"}, %u"
+	       ", MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, msg_len, sprintrc(rc));
+
+	/* fetch fail: short read */
+	msg_len = NLMSG_SPACE(sizeof(msg->udm)) + sizeof(*nla);
+	msg = tail_memdup(&c_msg, msg_len - 1);
+	memcpy(&msg->nlh.nlmsg_len, &msg_len, sizeof(msg_len));
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, %p}, %u"
+	       ", MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, (void *) msg + NLMSG_SPACE(sizeof(msg->udm)),
+	       msg_len, sprintrc(rc));
+
+	/* print one struct nlattr */
+	msg_len = NLMSG_SPACE(sizeof(msg->udm)) + sizeof(*nla);
+	msg = tail_memdup(&c_msg, msg_len);
+	memcpy(&msg->nlh.nlmsg_len, &msg_len, sizeof(msg_len));
+	nla = NLMSG_ATTR(msg, sizeof(msg->udm));
+	*nla = (struct nlattr) {
+		.nla_len = sizeof(*nla),
+		.nla_type = UNIX_DIAG_NAME
+	};
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, {nla_len=%u"
+	       ", nla_type=UNIX_DIAG_NAME}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, nla->nla_len, msg_len, sprintrc(rc));
+
+	/* print one struct nlattr with nla_len out of msg_len bounds */
+	nla->nla_len += 8;
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, {nla_len=%u"
+	       ", nla_type=UNIX_DIAG_NAME}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, nla->nla_len, msg_len, sprintrc(rc));
+
+	/* print one struct nlattr and some data */
+	msg_len = NLMSG_SPACE(sizeof(msg->udm)) + NLA_HDRLEN + 4;
+	msg = tail_memdup(&c_msg, msg_len);
+	memcpy(&msg->nlh.nlmsg_len, &msg_len, sizeof(msg_len));
+	nla = NLMSG_ATTR(msg, sizeof(msg->udm));
+	*nla = (struct nlattr) {
+		.nla_len = NLA_HDRLEN + 4,
+		.nla_type = UNIX_DIAG_SHUTDOWN + 1
+	};
+	memcpy(RTA_DATA(nla), "1234", 4);
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, {{nla_len=%u"
+	       ", nla_type=%#x /* UNIX_DIAG_??? */}, \"1234\"}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, nla->nla_len, UNIX_DIAG_SHUTDOWN + 1,
+	       msg_len, sprintrc(rc));
+
+	/* print one struct nlattr and fetch fail second struct nlattr */
+	msg_len = NLMSG_SPACE(sizeof(msg->udm)) + NLA_HDRLEN + 2;
+	msg = tail_memdup(&c_msg, msg_len);
+	memcpy(&msg->nlh.nlmsg_len, &msg_len, sizeof(msg_len));
+	nla = NLMSG_ATTR(msg, sizeof(msg->udm));
+	*nla = (struct nlattr) {
+		.nla_len = NLA_HDRLEN,
+		.nla_type = UNIX_DIAG_NAME
+	};
+	memcpy(nla + 1, "12", 2);
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, [{nla_len=%u"
+	       ", nla_type=UNIX_DIAG_NAME}, \"12\"]}, %u"
+	       ", MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, nla->nla_len, msg_len, sprintrc(rc));
+
+	/* print one struct nlattr and short read of second struct nlattr */
+	msg_len = NLMSG_SPACE(sizeof(msg->udm)) + NLA_HDRLEN * 2;
+	msg = tail_memdup(&c_msg, msg_len - 1);
+	memcpy(&msg->nlh.nlmsg_len, &msg_len, sizeof(msg_len));
+	nla = NLMSG_ATTR(msg, sizeof(msg->udm));
+	*nla = (struct nlattr) {
+		.nla_len = NLA_HDRLEN,
+		.nla_type = UNIX_DIAG_NAME
+	};
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, [{nla_len=%u"
+	       ", nla_type=UNIX_DIAG_NAME}, %p]}, %u"
+	       ", MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, nla->nla_len, nla + 1, msg_len, sprintrc(rc));
+
+	/* print two struct nlattr */
+	msg_len = NLMSG_SPACE(sizeof(msg->udm)) + NLA_HDRLEN * 2;
+	msg = tail_memdup(&c_msg, msg_len);
+	memcpy(&msg->nlh.nlmsg_len, &msg_len, sizeof(msg_len));
+	nla = NLMSG_ATTR(msg, sizeof(msg->udm));
+	*nla = (struct nlattr) {
+		.nla_len = NLA_HDRLEN,
+		.nla_type = UNIX_DIAG_NAME
+	};
+	*(nla + 1) = (struct nlattr) {
+		.nla_len = NLA_HDRLEN,
+		.nla_type = UNIX_DIAG_PEER
+	};
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, [{nla_len=%u"
+	       ", nla_type=UNIX_DIAG_NAME}, {nla_len=%u"
+	       ", nla_type=UNIX_DIAG_PEER}]}, %u"
+	       ", MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, nla->nla_len, nla->nla_len,
+	       msg_len, sprintrc(rc));
+
+	/* print first nlattr only when its nla_len is less than NLA_HDRLEN */
+	nla->nla_len = NLA_HDRLEN - 1;
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, {nla_len=%u"
+	       ", nla_type=UNIX_DIAG_NAME}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, nla->nla_len, msg_len, sprintrc(rc));
+
+	/* abbreviated output */
+#define ABBREV_LEN (DEFAULT_STRLEN + 1)
+	msg_len = NLA_HDRLEN * ABBREV_LEN + NLMSG_SPACE(sizeof(msg->udm));
+	msg = tail_memdup(&c_msg, msg_len);
+	memcpy(&msg->nlh.nlmsg_len, &msg_len, sizeof(msg_len));
+	unsigned int i;
+	nla = NLMSG_ATTR(msg, sizeof(msg->udm));
+	for (i = 0; i < ABBREV_LEN; ++i)
+		nla[i] = (struct nlattr) {
+			.nla_len = NLA_HDRLEN,
+			.nla_type = UNIX_DIAG_SHUTDOWN + 1 + i
+		};
+
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {udiag_family=AF_UNIX, udiag_type=SOCK_STREAM"
+	       ", udiag_state=TCP_FIN_WAIT1, udiag_ino=0"
+	       ", udiag_cookie=[0, 0]}, [",
+	       fd, msg_len);
+	for (i = 0; i < DEFAULT_STRLEN; ++i) {
+		if (i)
+			printf(", ");
+		printf("{nla_len=%u, nla_type=%#x /* UNIX_DIAG_??? */}",
+		       nla->nla_len, UNIX_DIAG_SHUTDOWN + 1 + i);
+	}
+	printf(", ...]}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       msg_len, sprintrc(rc));
+}
+
+static void
+test_nla_type(const int fd)
+{
+	static const struct msg {
+		struct nlmsghdr nlh;
+		struct unix_diag_msg udm;
+	} c_msg = {
+		.nlh = {
+			.nlmsg_len = sizeof(struct msg),
+			.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+			.nlmsg_flags = NLM_F_DUMP
+		},
+		.udm = {
+			.udiag_family = AF_UNIX,
+			.udiag_type = SOCK_STREAM,
+			.udiag_state = TCP_FIN_WAIT1
+		}
+	};
+	struct msg *msg;
+	struct nlattr *nla;
+	unsigned int msg_len;
+	long rc;
+
+	msg_len = NLMSG_SPACE(sizeof(msg->udm)) + sizeof(*nla);
+	msg = tail_memdup(&c_msg, msg_len);
+	memcpy(&msg->nlh.nlmsg_len, &msg_len, sizeof(msg_len));
+	nla = NLMSG_ATTR(msg, sizeof(msg->udm));
+	*nla = (struct nlattr) {
+		.nla_len = sizeof(*nla),
+		.nla_type = NLA_F_NESTED | UNIX_DIAG_NAME
+	};
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, {nla_len=%u"
+	       ", nla_type=NLA_F_NESTED|UNIX_DIAG_NAME}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, nla->nla_len, msg_len, sprintrc(rc));
+
+	nla->nla_type = NLA_F_NET_BYTEORDER | UNIX_DIAG_NAME;
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, {nla_len=%u"
+	       ", nla_type=NLA_F_NET_BYTEORDER|UNIX_DIAG_NAME}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, nla->nla_len, msg_len, sprintrc(rc));
+
+	nla->nla_type = NLA_F_NESTED | NLA_F_NET_BYTEORDER | UNIX_DIAG_NAME;
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, {nla_len=%u"
+	       ", nla_type=NLA_F_NESTED|NLA_F_NET_BYTEORDER|UNIX_DIAG_NAME}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, nla->nla_len, msg_len, sprintrc(rc));
+
+	nla->nla_type = NLA_F_NESTED | (UNIX_DIAG_SHUTDOWN + 1);
+	rc = sendto(fd, msg, msg->nlh.nlmsg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, {nla_len=%u"
+	       ", nla_type=NLA_F_NESTED|%#x /* UNIX_DIAG_??? */}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg->nlh.nlmsg_len, nla->nla_len, UNIX_DIAG_SHUTDOWN + 1,
+	       msg->nlh.nlmsg_len, sprintrc(rc));
+}
+
+int main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
+
+	test_nlattr(fd);
+	test_nla_type(fd);
+
+	puts("+++ exited with 0 +++");
+
+	return 0;
+}
diff --git a/tests-mx32/nlattr.gen.test b/tests-mx32/nlattr.gen.test
new file mode 100755
index 0000000..105801b
--- /dev/null
+++ b/tests-mx32/nlattr.gen.test
@@ -0,0 +1,3 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (nlattr +netlink_sock_diag.test); do not edit.
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests-mx32/nlattr_inet_diag_msg.c b/tests-mx32/nlattr_inet_diag_msg.c
new file mode 100644
index 0000000..d9d564c
--- /dev/null
+++ b/tests-mx32/nlattr_inet_diag_msg.c
@@ -0,0 +1,198 @@
+/*
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@gmail.com>
+ * Copyright (c) 2017 The strace developers.
+ * 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 "tests.h"
+
+#include <stdio.h>
+#include <string.h>
+#include <arpa/inet.h>
+#include <net/if.h>
+#include <netinet/tcp.h>
+#include "test_nlattr.h"
+#include <linux/inet_diag.h>
+#include <linux/sock_diag.h>
+
+static const char address[] = "10.11.12.13";
+
+#ifdef HAVE_IF_INDEXTONAME
+# define IFINDEX_LO	(if_nametoindex("lo"))
+#else
+# define IFINDEX_LO	1
+#endif
+
+static void
+init_inet_diag_msg(struct nlmsghdr *const nlh, const unsigned int msg_len)
+{
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = msg_len,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+
+	struct inet_diag_msg *const msg = NLMSG_DATA(nlh);
+	SET_STRUCT(struct inet_diag_msg, msg,
+		.idiag_family = AF_INET,
+		.idiag_state = TCP_LISTEN,
+		.id.idiag_if = IFINDEX_LO
+	);
+
+	if (!inet_pton(AF_INET, address, msg->id.idiag_src) ||
+	    !inet_pton(AF_INET, address, msg->id.idiag_dst))
+		perror_msg_and_skip("inet_pton");
+}
+
+static void
+print_inet_diag_msg(const unsigned int msg_len)
+{
+	printf("{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {idiag_family=AF_INET"
+	       ", idiag_state=TCP_LISTEN, idiag_timer=0, idiag_retrans=0"
+	       ", id={idiag_sport=htons(0), idiag_dport=htons(0)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_src)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_dst)"
+	       ", idiag_if=if_nametoindex(\"lo\"), idiag_cookie=[0, 0]}"
+	       ", idiag_expires=0, idiag_rqueue=0, idiag_wqueue=0"
+	       ", idiag_uid=0, idiag_inode=0}",
+	       msg_len, address, address);
+}
+
+static void
+print_uint(const unsigned int *p)
+{
+	printf("%u", *p);
+}
+
+int
+main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
+	const unsigned int hdrlen = sizeof(struct inet_diag_msg);
+	void *const nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+
+	static char pattern[4096];
+	fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
+
+	static const struct inet_diag_meminfo minfo = {
+		.idiag_rmem = 0xfadcacdb,
+		.idiag_wmem = 0xbdabcada,
+		.idiag_fmem = 0xbadbfafb,
+		.idiag_tmem = 0xfdacdadf
+	};
+	TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+			   init_inet_diag_msg, print_inet_diag_msg,
+			   INET_DIAG_MEMINFO, pattern, minfo,
+			   PRINT_FIELD_U("{", minfo, idiag_rmem);
+			   PRINT_FIELD_U(", ", minfo, idiag_wmem);
+			   PRINT_FIELD_U(", ", minfo, idiag_fmem);
+			   PRINT_FIELD_U(", ", minfo, idiag_tmem);
+			   printf("}"));
+
+	static const struct tcpvegas_info vegas = {
+		.tcpv_enabled = 0xfadcacdb,
+		.tcpv_rttcnt = 0xbdabcada,
+		.tcpv_rtt = 0xbadbfafb,
+		.tcpv_minrtt = 0xfdacdadf
+	};
+	TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+			   init_inet_diag_msg, print_inet_diag_msg,
+			   INET_DIAG_VEGASINFO, pattern, vegas,
+			   PRINT_FIELD_U("{", vegas, tcpv_enabled);
+			   PRINT_FIELD_U(", ", vegas, tcpv_rttcnt);
+			   PRINT_FIELD_U(", ", vegas, tcpv_rtt);
+			   PRINT_FIELD_U(", ", vegas, tcpv_minrtt);
+			   printf("}"));
+
+
+	static const struct tcp_dctcp_info dctcp = {
+		.dctcp_enabled = 0xfdac,
+		.dctcp_ce_state = 0xfadc,
+		.dctcp_alpha = 0xbdabcada,
+		.dctcp_ab_ecn = 0xbadbfafb,
+		.dctcp_ab_tot = 0xfdacdadf
+	};
+	TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+			   init_inet_diag_msg, print_inet_diag_msg,
+			   INET_DIAG_DCTCPINFO, pattern, dctcp,
+			   PRINT_FIELD_U("{", dctcp, dctcp_enabled);
+			   PRINT_FIELD_U(", ", dctcp, dctcp_ce_state);
+			   PRINT_FIELD_U(", ", dctcp, dctcp_alpha);
+			   PRINT_FIELD_U(", ", dctcp, dctcp_ab_ecn);
+			   PRINT_FIELD_U(", ", dctcp, dctcp_ab_tot);
+			   printf("}"));
+
+	static const struct tcp_bbr_info bbr = {
+		.bbr_bw_lo = 0xfdacdadf,
+		.bbr_bw_hi = 0xfadcacdb,
+		.bbr_min_rtt = 0xbdabcada,
+		.bbr_pacing_gain = 0xbadbfafb,
+		.bbr_cwnd_gain = 0xfdacdadf
+	};
+	TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+			   init_inet_diag_msg, print_inet_diag_msg,
+			   INET_DIAG_BBRINFO, pattern, bbr,
+			   PRINT_FIELD_X("{", bbr, bbr_bw_lo);
+			   PRINT_FIELD_X(", ", bbr, bbr_bw_hi);
+			   PRINT_FIELD_U(", ", bbr, bbr_min_rtt);
+			   PRINT_FIELD_U(", ", bbr, bbr_pacing_gain);
+			   PRINT_FIELD_U(", ", bbr, bbr_cwnd_gain);
+			   printf("}"));
+
+	static const uint32_t mem[] = { 0xaffacbad, 0xffadbcab };
+	TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
+			  init_inet_diag_msg, print_inet_diag_msg,
+			  INET_DIAG_SKMEMINFO, pattern, mem, print_uint);
+
+	static const uint32_t mark = 0xabdfadca;
+	TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+			   init_inet_diag_msg, print_inet_diag_msg,
+			   INET_DIAG_MARK, pattern, mark,
+			   printf("%u", mark));
+
+	static const uint8_t shutdown = 0xcd;
+	TEST_NLATTR(fd, nlh0, hdrlen,
+		    init_inet_diag_msg, print_inet_diag_msg, INET_DIAG_SHUTDOWN,
+		    sizeof(shutdown), &shutdown, sizeof(shutdown),
+		    printf("%u", shutdown));
+
+	char *const str = tail_alloc(DEFAULT_STRLEN);
+	fill_memory_ex(str, DEFAULT_STRLEN, '0', 10);
+	TEST_NLATTR(fd, nlh0, hdrlen,
+		    init_inet_diag_msg, print_inet_diag_msg, INET_DIAG_CONG,
+		    DEFAULT_STRLEN, str, DEFAULT_STRLEN,
+		    printf("\"%.*s\"...", DEFAULT_STRLEN, str));
+	str[DEFAULT_STRLEN - 1] = '\0';
+	TEST_NLATTR(fd, nlh0, hdrlen,
+		    init_inet_diag_msg, print_inet_diag_msg, INET_DIAG_CONG,
+		    DEFAULT_STRLEN, str, DEFAULT_STRLEN,
+		    printf("\"%s\"", str));
+
+	puts("+++ exited with 0 +++");
+	return 0;
+}
diff --git a/tests-mx32/nlattr_inet_diag_msg.gen.test b/tests-mx32/nlattr_inet_diag_msg.gen.test
new file mode 100755
index 0000000..953a767
--- /dev/null
+++ b/tests-mx32/nlattr_inet_diag_msg.gen.test
@@ -0,0 +1,3 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (nlattr_inet_diag_msg +netlink_sock_diag.test); do not edit.
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests-mx32/nlattr_netlink_diag_msg.c b/tests-mx32/nlattr_netlink_diag_msg.c
new file mode 100644
index 0000000..76a2d19
--- /dev/null
+++ b/tests-mx32/nlattr_netlink_diag_msg.c
@@ -0,0 +1,118 @@
+/*
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@gmail.com>
+ * Copyright (c) 2017 The strace developers.
+ * 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 "tests.h"
+
+#include <stdio.h>
+#include <string.h>
+#include <stdint.h>
+#include "test_nlattr.h"
+#include <linux/netlink_diag.h>
+#include <linux/sock_diag.h>
+
+static void
+init_netlink_diag_msg(struct nlmsghdr *const nlh, const unsigned int msg_len)
+{
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = msg_len,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+
+	struct netlink_diag_msg *const msg = NLMSG_DATA(nlh);
+	SET_STRUCT(struct netlink_diag_msg, msg,
+		.ndiag_family = AF_NETLINK,
+		.ndiag_type = SOCK_RAW,
+		.ndiag_protocol = NETLINK_ROUTE,
+		.ndiag_state = NETLINK_CONNECTED
+	);
+}
+
+static void
+print_netlink_diag_msg(const unsigned int msg_len)
+{
+	printf("{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {ndiag_family=AF_NETLINK"
+	       ", ndiag_type=SOCK_RAW, ndiag_protocol=NETLINK_ROUTE"
+	       ", ndiag_state=NETLINK_CONNECTED, ndiag_portid=0"
+	       ", ndiag_dst_portid=0, ndiag_dst_group=0, ndiag_ino=0"
+	       ", ndiag_cookie=[0, 0]}",
+	       msg_len);
+}
+
+static void
+print_xlong(const unsigned long *p)
+{
+	printf("%#lx", *p);
+}
+
+int
+main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
+	const unsigned int hdrlen = sizeof(struct netlink_diag_msg);
+	void *const nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+
+	static char pattern[4096];
+	fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
+
+	static const unsigned long groups[] = {
+		(unsigned long) 0xdeadbeefbadc0dedULL,
+		(unsigned long) 0xdeadbeefbadc0dedULL
+	};
+	TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
+			  init_netlink_diag_msg, print_netlink_diag_msg,
+			  NETLINK_DIAG_GROUPS, pattern, groups, print_xlong);
+
+	static const struct netlink_diag_ring ndr = {
+		.ndr_block_size = 0xfabfabdc,
+		.ndr_block_nr = 0xabcdabda,
+		.ndr_frame_size = 0xcbadbafa,
+		.ndr_frame_nr = 0xdbcafadb
+	};
+	TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+			   init_netlink_diag_msg, print_netlink_diag_msg,
+			   NETLINK_DIAG_RX_RING, pattern, ndr,
+			   PRINT_FIELD_U("{", ndr, ndr_block_size);
+			   PRINT_FIELD_U(", ", ndr, ndr_block_nr);
+			   PRINT_FIELD_U(", ", ndr, ndr_frame_size);
+			   PRINT_FIELD_U(", ", ndr, ndr_frame_nr);
+			   printf("}"));
+
+	static const uint32_t flags =
+		NDIAG_FLAG_CB_RUNNING | NDIAG_FLAG_PKTINFO;
+	TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+			   init_netlink_diag_msg, print_netlink_diag_msg,
+			   NETLINK_DIAG_FLAGS, pattern, flags,
+			   printf("NDIAG_FLAG_CB_RUNNING|NDIAG_FLAG_PKTINFO"));
+
+	puts("+++ exited with 0 +++");
+	return 0;
+}
diff --git a/tests-mx32/nlattr_netlink_diag_msg.gen.test b/tests-mx32/nlattr_netlink_diag_msg.gen.test
new file mode 100755
index 0000000..aa6aabf
--- /dev/null
+++ b/tests-mx32/nlattr_netlink_diag_msg.gen.test
@@ -0,0 +1,3 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (nlattr_netlink_diag_msg +netlink_sock_diag.test); do not edit.
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests-mx32/nlattr_unix_diag_msg.c b/tests-mx32/nlattr_unix_diag_msg.c
new file mode 100644
index 0000000..2295404
--- /dev/null
+++ b/tests-mx32/nlattr_unix_diag_msg.c
@@ -0,0 +1,116 @@
+/*
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@gmail.com>
+ * Copyright (c) 2017 The strace developers.
+ * 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 "tests.h"
+
+#include <stdio.h>
+#include <string.h>
+#include <stdint.h>
+#include <sys/sysmacros.h>
+#include <netinet/tcp.h>
+#include "test_nlattr.h"
+#include <linux/sock_diag.h>
+#include <linux/unix_diag.h>
+
+static void
+init_unix_diag_msg(struct nlmsghdr *const nlh, const unsigned int msg_len)
+{
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = msg_len,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+
+	struct unix_diag_msg *const msg = NLMSG_DATA(nlh);
+	SET_STRUCT(struct unix_diag_msg, msg,
+		.udiag_family = AF_UNIX,
+		.udiag_type = SOCK_STREAM,
+		.udiag_state = TCP_ESTABLISHED
+	);
+}
+
+static void
+print_unix_diag_msg(const unsigned int msg_len)
+{
+	printf("{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_ESTABLISHED"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}",
+	       msg_len);
+}
+
+static void
+print_uint(const unsigned int *p)
+{
+	printf("%u", *p);
+}
+
+int
+main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
+	const unsigned int hdrlen = sizeof(struct unix_diag_msg);
+	void *const nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+
+	static char pattern[4096];
+	fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
+
+	static const struct unix_diag_vfs uv = {
+		.udiag_vfs_dev = 0xabcddafa,
+		.udiag_vfs_ino = 0xbafabcda
+	};
+	TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+			   init_unix_diag_msg, print_unix_diag_msg,
+			   UNIX_DIAG_VFS, pattern, uv,
+			   printf("{udiag_vfs_dev=makedev(%u, %u)",
+				  major(uv.udiag_vfs_dev),
+				  minor(uv.udiag_vfs_dev));
+			   PRINT_FIELD_U(", ", uv, udiag_vfs_ino);
+			   printf("}"));
+
+	static const struct unix_diag_rqlen rql = {
+		.udiag_rqueue = 0xfabdcdad,
+		.udiag_wqueue = 0xbacdadcf
+	};
+	TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+			   init_unix_diag_msg, print_unix_diag_msg,
+			   UNIX_DIAG_RQLEN, pattern, rql,
+			   PRINT_FIELD_U("{", rql, udiag_rqueue);
+			   PRINT_FIELD_U(", ", rql, udiag_wqueue);
+			   printf("}"));
+
+	static const uint32_t inode[] = { 0xadbcadbc, 0xfabdcdac };
+	TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
+			  init_unix_diag_msg, print_unix_diag_msg,
+			  UNIX_DIAG_ICONS, pattern, inode, print_uint);
+
+	puts("+++ exited with 0 +++");
+	return 0;
+}
diff --git a/tests-mx32/nlattr_unix_diag_msg.gen.test b/tests-mx32/nlattr_unix_diag_msg.gen.test
new file mode 100755
index 0000000..d913afc
--- /dev/null
+++ b/tests-mx32/nlattr_unix_diag_msg.gen.test
@@ -0,0 +1,3 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (nlattr_unix_diag_msg +netlink_sock_diag.test); do not edit.
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests-mx32/nsyscalls.c b/tests-mx32/nsyscalls.c
index 7fda5ba..d6b989c 100644
--- a/tests-mx32/nsyscalls.c
+++ b/tests-mx32/nsyscalls.c
@@ -54,7 +54,7 @@
 #define SI 0
 #define SE 0
 #define CST 0
-#define SEN(arg) 0,0
+#define SEN(arg) 0, 0
 
 static const struct_sysent syscallent[] = {
 #include "syscallent.h"
diff --git a/tests-mx32/options-syntax.test b/tests-mx32/options-syntax.test
index 4c778b3..7cfc579 100755
--- a/tests-mx32/options-syntax.test
+++ b/tests-mx32/options-syntax.test
@@ -127,8 +127,20 @@
 check_h "invalid -a argument: '-42'" -a -42
 check_h "invalid -O argument: '-42'" -O -42
 check_h "invalid -s argument: '-42'" -s -42
+check_h "invalid -s argument: '1073741824'" -s 1073741824
 check_h "invalid -I argument: '5'" -I 5
 
+cat > "$EXP" << '__EOF__'
+strace: must have PROG [ARGS] or -p PID
+Try 'strace -h' for more information.
+__EOF__
+../zeroargc "$strace_exp" /bin/true 2> "$LOG" &&
+	dump_log_and_fail_with \
+		'zeroargc strace failed to handle the error properly'
+match_diff "$LOG" "$EXP" ||
+	dump_log_and_fail_with \
+		'zeroargc strace failed to print expected diagnostics'
+
 if [ -n "${UID-}" ]; then
 	if [ "${UID-}" = 0 ]; then
 		umsg="Cannot find user ':nosuchuser:'"
diff --git a/tests-mx32/perf_event_open.c b/tests-mx32/perf_event_open.c
index 3f544a6..74ff952 100644
--- a/tests-mx32/perf_event_open.c
+++ b/tests-mx32/perf_event_open.c
@@ -73,36 +73,36 @@
 	const char *str;
 };
 
-/* In order to avoid endianess-specific hackery */
+/* In order to avoid endianness-specific hackery. */
 struct pea_flags {
-	uint64_t disabled                 :1,
-	         inherit                  :1,
-	         pinned                   :1,
-	         exclusive                :1,
-	         exclude_user             :1,
-	         exclude_kernel           :1,
-	         exclude_hv               :1,
-	         exclude_idle             :1,
-	         mmap                     :1,
-	         comm                     :1,
-	         freq                     :1,
-	         inherit_stat             :1,
-	         enable_on_exec           :1,
-	         task                     :1,
-	         watermark                :1,
-	         precise_ip               :2,
-	         mmap_data                :1,
-	         sample_id_all            :1,
-	         exclude_host             :1,
-	         exclude_guest            :1,
-	         exclude_callchain_kernel :1,
-	         exclude_callchain_user   :1,
-	         mmap2                    :1,
-	         comm_exec                :1,
-	         use_clockid              :1,
-	         context_switch           :1,
-	         write_backward           :1,
-	         __reserved_1             :36;
+	uint64_t disabled			:1,
+		 inherit			:1,
+		 pinned				:1,
+		 exclusive			:1,
+		 exclude_user			:1,
+		 exclude_kernel			:1,
+		 exclude_hv			:1,
+		 exclude_idle			:1,
+		 mmap				:1,
+		 comm				:1,
+		 freq				:1,
+		 inherit_stat			:1,
+		 enable_on_exec			:1,
+		 task				:1,
+		 watermark			:1,
+		 precise_ip			:2,
+		 mmap_data			:1,
+		 sample_id_all			:1,
+		 exclude_host			:1,
+		 exclude_guest			:1,
+		 exclude_callchain_kernel	:1,
+		 exclude_callchain_user		:1,
+		 mmap2				:1,
+		 comm_exec			:1,
+		 use_clockid			:1,
+		 context_switch			:1,
+		 write_backward			:1,
+		 __reserved_1			:36;
 };
 
 static const char *
@@ -458,7 +458,7 @@
 
 	/* End of version 4 of the structure */
 	if (size <= 104) {
-		cutoff =104;
+		cutoff = 104;
 		goto end;
 	}
 
@@ -471,7 +471,7 @@
 	printf(", aux_watermark=%" PRIu32, (uint32_t) val);
 
 	if (size <= 108) {
-		cutoff =108;
+		cutoff = 108;
 		goto end;
 	}
 
@@ -484,7 +484,7 @@
 	printf(", sample_max_stack=%" PRIu16, (uint16_t) val);
 
 	if (size <= 110) {
-		cutoff =110;
+		cutoff = 110;
 		goto end;
 	}
 
@@ -718,7 +718,7 @@
 
 	for (i = 0; i < ARRAY_SIZE(args); i++) {
 		rc = syscall(__NR_perf_event_open, args[i].attr, args[i].pid,
-		             args[i].cpu, args[i].group_fd, args[i].flags);
+			     args[i].cpu, args[i].group_fd, args[i].flags);
 		printf("perf_event_open(%s, %d, %d, %d, %s) = %s\n",
 		       printaddr(args[i].attr), args[i].pid, args[i].cpu,
 		       args[i].group_fd, args[i].flags_str, sprintrc(rc));
@@ -793,19 +793,19 @@
 			attr->size = 0;
 
 		rc = syscall(__NR_perf_event_open, attr, args[args_idx].pid,
-		             args[args_idx].cpu, args[args_idx].group_fd,
-		             args[args_idx].flags);
+			     args[args_idx].cpu, args[args_idx].group_fd,
+			     args[args_idx].flags);
 
 		printf("perf_event_open(");
 		print_event_attr(attr, i ? ((i == 1) ? 0 : size) : size + 8,
-		                 attr_types[type_idx].str,
-		                 attr_configs[type_idx][config_idx].str,
-		                 sample_types[sample_type_idx].str,
-		                 read_formats[read_format_idx].str,
-		                 ip_desc_str,
-		                 bp_types[bp_type_idx].str,
-		                 branch_sample_types[branch_sample_type_idx].str,
-		                 clockids[clockid_idx].str, size);
+				 attr_types[type_idx].str,
+				 attr_configs[type_idx][config_idx].str,
+				 sample_types[sample_type_idx].str,
+				 read_formats[read_format_idx].str,
+				 ip_desc_str,
+				 bp_types[bp_type_idx].str,
+				 branch_sample_types[branch_sample_type_idx].str,
+				 clockids[clockid_idx].str, size);
 		printf(", %d, %d, %d, %s) = %s\n", args[args_idx].pid,
 		       args[args_idx].cpu, args[args_idx].group_fd,
 		       args[args_idx].flags_str, sprintrc(rc));
diff --git a/tests-mx32/poll.c b/tests-mx32/poll.c
index c47c97e..af66e53 100644
--- a/tests-mx32/poll.c
+++ b/tests-mx32/poll.c
@@ -39,13 +39,15 @@
 # include <stdlib.h>
 # include <unistd.h>
 
-#define PRINT_EVENT(flag, member) \
-	if (member & flag) { \
-		if (member != pfd->member) \
-			tprintf("|"); \
-		tprintf(#flag); \
-		member &= ~flag; \
-	}
+#define PRINT_EVENT(flag, member)			\
+	do {						\
+		if (member & flag) {			\
+			if (member != pfd->member)	\
+				tprintf("|");		\
+			tprintf(#flag);			\
+			member &= ~flag;		\
+		}					\
+	} while (0)
 
 static void
 print_pollfd_entering(const struct pollfd *const pfd)
@@ -56,24 +58,24 @@
 		short events = pfd->events;
 
 		if (pfd->events) {
-			PRINT_EVENT(POLLIN, events)
-			PRINT_EVENT(POLLPRI, events)
-			PRINT_EVENT(POLLOUT, events)
+			PRINT_EVENT(POLLIN, events);
+			PRINT_EVENT(POLLPRI, events);
+			PRINT_EVENT(POLLOUT, events);
 #ifdef POLLRDNORM
-			PRINT_EVENT(POLLRDNORM, events)
+			PRINT_EVENT(POLLRDNORM, events);
 #endif
 #ifdef POLLWRNORM
-			PRINT_EVENT(POLLWRNORM, events)
+			PRINT_EVENT(POLLWRNORM, events);
 #endif
 #ifdef POLLRDBAND
-			PRINT_EVENT(POLLRDBAND, events)
+			PRINT_EVENT(POLLRDBAND, events);
 #endif
 #ifdef POLLWRBAND
-			PRINT_EVENT(POLLWRBAND, events)
+			PRINT_EVENT(POLLWRBAND, events);
 #endif
-			PRINT_EVENT(POLLERR, events)
-			PRINT_EVENT(POLLHUP, events)
-			PRINT_EVENT(POLLNVAL, events)
+			PRINT_EVENT(POLLERR, events);
+			PRINT_EVENT(POLLHUP, events);
+			PRINT_EVENT(POLLNVAL, events);
 		} else
 			tprintf("0");
 	}
@@ -123,24 +125,24 @@
 	tprintf("{fd=%d, revents=", pfd->fd);
 	short revents = pfd->revents;
 
-	PRINT_EVENT(POLLIN, revents)
-	PRINT_EVENT(POLLPRI, revents)
-	PRINT_EVENT(POLLOUT, revents)
+	PRINT_EVENT(POLLIN, revents);
+	PRINT_EVENT(POLLPRI, revents);
+	PRINT_EVENT(POLLOUT, revents);
 #ifdef POLLRDNORM
-	PRINT_EVENT(POLLRDNORM, revents)
+	PRINT_EVENT(POLLRDNORM, revents);
 #endif
 #ifdef POLLWRNORM
-	PRINT_EVENT(POLLWRNORM, revents)
+	PRINT_EVENT(POLLWRNORM, revents);
 #endif
 #ifdef POLLRDBAND
-	PRINT_EVENT(POLLRDBAND, revents)
+	PRINT_EVENT(POLLRDBAND, revents);
 #endif
 #ifdef POLLWRBAND
-	PRINT_EVENT(POLLWRBAND, revents)
+	PRINT_EVENT(POLLWRBAND, revents);
 #endif
-	PRINT_EVENT(POLLERR, revents)
-	PRINT_EVENT(POLLHUP, revents)
-	PRINT_EVENT(POLLNVAL, revents)
+	PRINT_EVENT(POLLERR, revents);
+	PRINT_EVENT(POLLHUP, revents);
+	PRINT_EVENT(POLLNVAL, revents);
 	tprintf("}");
 }
 
@@ -192,7 +194,8 @@
 	tprintf("poll(");
 	print_pollfd_array_entering(tail_fds0, ARRAY_SIZE(pfds0),
 				    ARRAY_SIZE(pfds0), abbrev);
-	tprintf(", %u, %d) = %d (", ARRAY_SIZE(pfds0), timeout, rc);
+	tprintf(", %u, %d) = %d (",
+		(unsigned int) ARRAY_SIZE(pfds0), timeout, rc);
 	print_pollfd_array_exiting(tail_fds0, ARRAY_SIZE(pfds0), abbrev);
 	tprintf(")\n");
 
@@ -205,7 +208,8 @@
 	tprintf("poll(");
 	print_pollfd_array_entering(tail_fds0, ARRAY_SIZE(pfds0),
 				    ARRAY_SIZE(pfds0), abbrev);
-	tprintf(", %u, %d) = %d (", ARRAY_SIZE(pfds0), timeout, rc);
+	tprintf(", %u, %d) = %d (",
+		(unsigned int) ARRAY_SIZE(pfds0), timeout, rc);
 	print_pollfd_array_exiting(tail_fds0, ARRAY_SIZE(pfds0), abbrev);
 	tprintf(")\n");
 
@@ -217,7 +221,8 @@
 	tprintf("poll(");
 	print_pollfd_array_entering(tail_fds0, ARRAY_SIZE(pfds0),
 				    ARRAY_SIZE(pfds0), abbrev);
-	tprintf(", %u, %d) = %d (", ARRAY_SIZE(pfds0), timeout, rc);
+	tprintf(", %u, %d) = %d (",
+		(unsigned int) ARRAY_SIZE(pfds0), timeout, rc);
 	print_pollfd_array_exiting(tail_fds0, ARRAY_SIZE(pfds0), abbrev);
 	tprintf(")\n");
 
@@ -232,7 +237,8 @@
 	tprintf("poll(");
 	print_pollfd_array_entering(tail_fds1, ARRAY_SIZE(pfds1),
 				    ARRAY_SIZE(pfds1), abbrev);
-	tprintf(", %u, %d) = %d (Timeout)\n", ARRAY_SIZE(pfds1), timeout, rc);
+	tprintf(", %u, %d) = %d (Timeout)\n",
+		(unsigned int) ARRAY_SIZE(pfds1), timeout, rc);
 
 	const void *const efault = tail_fds0 + ARRAY_SIZE(pfds0);
 	rc = syscall(__NR_poll, efault, 1, 0);
diff --git a/tests-mx32/ppoll.c b/tests-mx32/ppoll.c
index 85a7e0c..6224183 100644
--- a/tests-mx32/ppoll.c
+++ b/tests-mx32/ppoll.c
@@ -138,9 +138,10 @@
 #if VERBOSE
 	       pipe_fd[2], pipe_fd[3],
 #endif
-	       (unsigned) ARRAY_SIZE(fds1), USR2_CHLD_str,
-	       (unsigned) sigset_size, rc, pipe_fd[1], POLLWRNORM_str,
-	       pipe_fd[3], (unsigned ) ts->tv_sec, (unsigned) ts->tv_nsec);
+	       (unsigned int) ARRAY_SIZE(fds1), USR2_CHLD_str,
+	       (unsigned int) sigset_size, rc, pipe_fd[1], POLLWRNORM_str,
+	       pipe_fd[3], (unsigned int) ts->tv_sec,
+	       (unsigned int) ts->tv_nsec);
 
 	ts->tv_sec = 0;
 	ts->tv_nsec = 999;
diff --git a/tests-mx32/preadv-pwritev.c b/tests-mx32/preadv-pwritev.c
index b2d2a82..ddbd47f 100644
--- a/tests-mx32/preadv-pwritev.c
+++ b/tests-mx32/preadv-pwritev.c
@@ -121,7 +121,7 @@
 		" * %u bytes in buffer 2\n"
 		" | 00000 %-49s  %-16s |\n",
 		w0_c, LENGTH_OF(w0_c), w1_c, LENGTH_OF(w1_c),
-		w2_c, LENGTH_OF(w2_c), ARRAY_SIZE(w_iov_), w_len,
+		w2_c, LENGTH_OF(w2_c), (unsigned int) ARRAY_SIZE(w_iov_), w_len,
 		LENGTH_OF(w0_c), w0_d, w0_c,
 		LENGTH_OF(w1_c), w1_d, w1_c, LENGTH_OF(w2_c), w2_d, w2_c);
 
@@ -142,7 +142,8 @@
 	tprintf("preadv(0, [{iov_base=\"%s\", iov_len=%u}], %u, 0) = %u\n"
 		" * %u bytes in buffer 0\n"
 		" | 00000 %-49s  %-16s |\n",
-		r0_c, r_len, ARRAY_SIZE(r0_iov_), r_len, r_len, r0_d, r0_c);
+		r0_c, r_len, (unsigned int) ARRAY_SIZE(r0_iov_),
+		r_len, r_len, r0_d, r0_c);
 
 	void *r1 = tail_alloc(r_len);
 	void *r2 = tail_alloc(w_len);
@@ -166,7 +167,7 @@
 		", {iov_base=\"\", iov_len=%u}], %u, %u) = %u\n"
 		" * %u bytes in buffer 0\n"
 		" | 00000 %-49s  %-16s |\n",
-		r1_c, r_len, w_len, ARRAY_SIZE(r1_iov_),
+		r1_c, r_len, w_len, (unsigned int) ARRAY_SIZE(r1_iov_),
 		r_len, w_len - r_len,
 		w_len - r_len, r1_d, r1_c);
 	close(0);
diff --git a/tests-mx32/preadv.c b/tests-mx32/preadv.c
index a55909b..d5ad84f 100644
--- a/tests-mx32/preadv.c
+++ b/tests-mx32/preadv.c
@@ -125,7 +125,7 @@
 		perror_msg_and_fail("preadv: expected %u, returned %ld",
 				    r_len, rc);
 	printf("preadv(%d, [{iov_base=\"%s\", iov_len=%u}], %u, 0) = %u\n",
-	       fd, r0_c, r_len, ARRAY_SIZE(r0_iov_), r_len);
+	       fd, r0_c, r_len, (unsigned int) ARRAY_SIZE(r0_iov_), r_len);
 
 	void *r1 = tail_alloc(r_len);
 	void *r2 = tail_alloc(LENGTH_OF(w));
@@ -147,8 +147,9 @@
 				    (int) LENGTH_OF(w) - r_len, rc);
 	printf("preadv(%d, [{iov_base=\"%s\", iov_len=%u}"
 	       ", {iov_base=\"\", iov_len=%u}], %u, %u) = %u\n",
-	       fd, r1_c, r_len, LENGTH_OF(w), ARRAY_SIZE(r1_iov_),
-		r_len, LENGTH_OF(w) - r_len);
+	       fd, r1_c, r_len, LENGTH_OF(w),
+	       (unsigned int) ARRAY_SIZE(r1_iov_),
+	       r_len, LENGTH_OF(w) - r_len);
 
 	puts("+++ exited with 0 +++");
 	return 0;
diff --git a/tests-mx32/preadv2-pwritev2.c b/tests-mx32/preadv2-pwritev2.c
index e31e046..89f37dd 100644
--- a/tests-mx32/preadv2-pwritev2.c
+++ b/tests-mx32/preadv2-pwritev2.c
@@ -127,7 +127,7 @@
 		" * %u bytes in buffer 2\n"
 		" | 00000 %-49s  %-16s |\n",
 		w0_c, LENGTH_OF(w0_c), w1_c, LENGTH_OF(w1_c),
-		w2_c, LENGTH_OF(w2_c), ARRAY_SIZE(w_iov_), w_len,
+		w2_c, LENGTH_OF(w2_c), (unsigned int) ARRAY_SIZE(w_iov_), w_len,
 		LENGTH_OF(w0_c), w0_d, w0_c,
 		LENGTH_OF(w1_c), w1_d, w1_c, LENGTH_OF(w2_c), w2_d, w2_c);
 
@@ -148,7 +148,8 @@
 	tprintf("preadv2(0, [{iov_base=\"%s\", iov_len=%u}], %u, 0, 0) = %u\n"
 		" * %u bytes in buffer 0\n"
 		" | 00000 %-49s  %-16s |\n",
-		r0_c, r_len, ARRAY_SIZE(r0_iov_), r_len, r_len, r0_d, r0_c);
+		r0_c, r_len, (unsigned int) ARRAY_SIZE(r0_iov_),
+		r_len, r_len, r0_d, r0_c);
 
 	void *r1 = tail_alloc(r_len);
 	void *r2 = tail_alloc(w_len);
@@ -172,7 +173,7 @@
 		", {iov_base=\"\", iov_len=%u}], %u, %u, 0) = %u\n"
 		" * %u bytes in buffer 0\n"
 		" | 00000 %-49s  %-16s |\n",
-		r1_c, r_len, w_len, ARRAY_SIZE(r1_iov_),
+		r1_c, r_len, w_len, (unsigned int) ARRAY_SIZE(r1_iov_),
 		r_len, w_len - r_len,
 		w_len - r_len, r1_d, r1_c);
 	close(0);
diff --git a/tests-mx32/print_quoted_string.c b/tests-mx32/print_quoted_string.c
index 3ad8602..732fe3d 100644
--- a/tests-mx32/print_quoted_string.c
+++ b/tests-mx32/print_quoted_string.c
@@ -18,7 +18,7 @@
 void
 print_quoted_memory(const char *instr, const size_t len)
 {
-	const unsigned char *str = (const unsigned char*) instr;
+	const unsigned char *str = (const unsigned char *) instr;
 	size_t i;
 
 	for (i = 0; i < len; ++i) {
diff --git a/tests-mx32/print_time.c b/tests-mx32/print_time.c
index 4292329..e259242 100644
--- a/tests-mx32/print_time.c
+++ b/tests-mx32/print_time.c
@@ -58,8 +58,6 @@
 
 	if (comment)
 		fputs(" */", stdout);
-
-	return;
 }
 
 void
diff --git a/tests-mx32/printstr.c b/tests-mx32/printstr.c
index 330234f..8e22681 100644
--- a/tests-mx32/printstr.c
+++ b/tests-mx32/printstr.c
@@ -34,13 +34,11 @@
 #include <unistd.h>
 #include <sys/uio.h>
 
-#define DEFAULT_STRLEN 32
-
 int
 main(void)
 {
 	char *const buf = tail_alloc(DEFAULT_STRLEN + 1);
-	const struct iovec io = {
+	struct iovec io = {
 		.iov_base = buf,
 		.iov_len = -1
 	};
@@ -64,6 +62,11 @@
 	tprintf("writev(-1, [{iov_base=\"\\0%*s\"..., iov_len=%lu}], 1)"
 		" = %s\n", DEFAULT_STRLEN - 1, buf + 1, -1UL, sprintrc(rc));
 
+	++io.iov_base;
+	rc = writev(-1, &io, 1);
+	tprintf("writev(-1, [{iov_base=%p, iov_len=%lu}], 1) = %s\n",
+		io.iov_base, -1UL, sprintrc(rc));
+
 	tprintf("+++ exited with 0 +++\n");
 	return 0;
 }
diff --git a/tests-mx32/process_vm_readv_writev.c b/tests-mx32/process_vm_readv_writev.c
index 2a08939..c0f9c31 100644
--- a/tests-mx32/process_vm_readv_writev.c
+++ b/tests-mx32/process_vm_readv_writev.c
@@ -51,7 +51,7 @@
 struct print_iov_arg {
 	uint32_t count;
 	uint32_t valid    :1,
-	         string   :1,
+		 string   :1,
 		 addr_term:1,
 		 check_rc :1;
 	uint32_t str_segms;
@@ -247,14 +247,15 @@
 		2, {SEGM1_BASE, SEGM2_BASE}, {SIZE_1, SIZE_2} };
 	struct print_iov_arg rmt_arg     = { ARRAY_SIZE(rmt_iovec), 1 };
 
-	struct print_iov_arg bogus_arg_cut =
-		{ ARRAY_SIZE(bogus_iovec) - 2, 1, 0, 1 };
-	struct print_iov_arg lcl_arg_cut =
-		{ ARRAY_SIZE(lcl_iovec) - 2, 1, 1, 1, 0, 2,
-			{SEGM1_BASE + SIZE_11 + SIZE_12, SEGM2_BASE},
-			{SIZE_13, SIZE_2} };
-	struct print_iov_arg rmt_arg_cut =
-		{ ARRAY_SIZE(rmt_iovec) - 2, 1 };
+	struct print_iov_arg bogus_arg_cut = {
+		ARRAY_SIZE(bogus_iovec) - 2, 1, 0, 1
+	};
+	struct print_iov_arg lcl_arg_cut = {
+		ARRAY_SIZE(lcl_iovec) - 2, 1, 1, 1, 0, 2,
+		{ SEGM1_BASE + SIZE_11 + SIZE_12, SEGM2_BASE },
+		{SIZE_13, SIZE_2}
+	};
+	struct print_iov_arg rmt_arg_cut = { ARRAY_SIZE(rmt_iovec) - 2, 1 };
 
 
 	fill_memory_ex(data1_out, SIZE_1, SEGM1_BASE, SIZE_1);
diff --git a/tests-mx32/pselect6.c b/tests-mx32/pselect6.c
index f5939f3..0729808 100644
--- a/tests-mx32/pselect6.c
+++ b/tests-mx32/pselect6.c
@@ -109,7 +109,7 @@
 	 * but with a pointer to a large chunk of valid memory.
 	 */
 	FD_ZERO(set[0]);
-	FD_SET(fds[1],set[0]);
+	FD_SET(fds[1], set[0]);
 	assert(pselect(-1, NULL, set[0], NULL, NULL, &mask) == -1);
 	printf("pselect6(-1, NULL, %p, NULL, NULL, {[HUP CHLD], %u}) "
 	       "= -1 EINVAL (%m)\n", set[0], NSIG_BYTES);
@@ -118,7 +118,7 @@
 	 * Another variant, with nfds exceeding FD_SETSIZE limit.
 	 */
 	FD_ZERO(set[0]);
-	FD_SET(fds[0],set[0]);
+	FD_SET(fds[0], set[0]);
 	FD_ZERO(set[1]);
 	tm.ts.tv_sec = 0;
 	tm.ts.tv_nsec = 123;
diff --git a/tests-mx32/ptrace.c b/tests-mx32/ptrace.c
index 9e0ffdc..d776dcd 100644
--- a/tests-mx32/ptrace.c
+++ b/tests-mx32/ptrace.c
@@ -114,7 +114,7 @@
 			if (errno == EINTR)
 				continue;
 			saved = errno;
-			kill (pid, SIGKILL);
+			kill(pid, SIGKILL);
 			errno = saved;
 			perror_msg_and_fail("wait");
 		}
@@ -159,7 +159,7 @@
 
 		if (do_ptrace(PTRACE_CONT, pid, 0, 0)) {
 			saved = errno;
-			kill (pid, SIGKILL);
+			kill(pid, SIGKILL);
 			errno = saved;
 			perror_msg_and_fail("ptrace");
 		}
diff --git a/tests-mx32/pure_executables.am b/tests-mx32/pure_executables.am
new file mode 100644
index 0000000..8563488
--- /dev/null
+++ b/tests-mx32/pure_executables.am
@@ -0,0 +1,347 @@
+# Generated by ./tests/gen_pure_executables.sh from ./tests/pure_executables.list; do not edit.
+PURE_EXECUTABLES = \
+  _newselect \
+  accept \
+  accept4 \
+  access \
+  acct \
+  add_key \
+  adjtimex \
+  aio \
+  alarm \
+  bpf \
+  brk \
+  btrfs \
+  caps \
+  chmod \
+  chown \
+  chown32 \
+  chroot \
+  clock_adjtime \
+  clock_nanosleep \
+  clock_xettime \
+  copy_file_range \
+  creat \
+  delete_module \
+  dup \
+  dup2 \
+  dup3 \
+  epoll_create \
+  epoll_create1 \
+  epoll_ctl \
+  epoll_pwait \
+  epoll_wait \
+  erestartsys \
+  eventfd \
+  execve \
+  execveat \
+  faccessat \
+  fadvise64 \
+  fadvise64_64 \
+  fallocate \
+  fanotify_init \
+  fanotify_mark \
+  fchdir \
+  fchmod \
+  fchmodat \
+  fchown \
+  fchown32 \
+  fchownat \
+  fcntl \
+  fcntl64 \
+  fdatasync \
+  file_handle \
+  file_ioctl \
+  finit_module \
+  flock \
+  fstat \
+  fstat64 \
+  fstatat64 \
+  fstatfs \
+  fstatfs64 \
+  fsync \
+  ftruncate \
+  ftruncate64 \
+  futex \
+  futimesat \
+  get_mempolicy \
+  getcpu \
+  getcwd \
+  getdents \
+  getdents64 \
+  getegid \
+  getegid32 \
+  geteuid \
+  geteuid32 \
+  getgid \
+  getgid32 \
+  getgroups \
+  getgroups32 \
+  getpeername \
+  getpgrp \
+  getpid \
+  getppid \
+  getrandom \
+  getresgid \
+  getresgid32 \
+  getresuid \
+  getresuid32 \
+  getrlimit \
+  getrusage \
+  getsid \
+  getsockname \
+  getuid \
+  getuid32 \
+  getxxid \
+  inet-cmsg \
+  init_module \
+  inotify \
+  inotify_init1 \
+  ioctl \
+  ioctl_block \
+  ioctl_dm \
+  ioctl_evdev \
+  ioctl_loop \
+  ioctl_mtd \
+  ioctl_rtc \
+  ioctl_scsi \
+  ioctl_sg_io_v3 \
+  ioctl_sg_io_v4 \
+  ioctl_sock_gifconf \
+  ioctl_uffdio \
+  ioctl_v4l2 \
+  ioperm \
+  iopl \
+  ioprio \
+  ip_mreq \
+  ipc \
+  ipc_msg \
+  ipc_msgbuf \
+  ipc_sem \
+  ipc_shm \
+  kcmp \
+  kexec_file_load \
+  kexec_load \
+  keyctl \
+  kill \
+  lchown \
+  lchown32 \
+  link \
+  linkat \
+  llseek \
+  lookup_dcookie \
+  lseek \
+  lstat \
+  lstat64 \
+  madvise \
+  mbind \
+  membarrier \
+  memfd_create \
+  migrate_pages \
+  mincore \
+  mkdir \
+  mkdirat \
+  mknod \
+  mknodat \
+  mlock \
+  mlock2 \
+  mlockall \
+  mmap \
+  mmap64 \
+  mmsg \
+  mmsg_name \
+  mount \
+  move_pages \
+  mq \
+  mq_sendrecv \
+  mq_sendrecv-read \
+  mq_sendrecv-write \
+  msg_control \
+  msg_name \
+  munlockall \
+  nanosleep \
+  net-icmp_filter \
+  net-sockaddr \
+  net-y-unix \
+  net-yy-inet \
+  net-yy-netlink \
+  net-yy-unix \
+  netlink_audit \
+  netlink_generic \
+  netlink_netfilter \
+  netlink_protocol \
+  netlink_route \
+  netlink_selinux \
+  netlink_sock_diag \
+  netlink_xfrm \
+  newfstatat \
+  nlattr \
+  nlattr_inet_diag_msg \
+  nlattr_netlink_diag_msg \
+  nlattr_unix_diag_msg \
+  old_mmap \
+  oldfstat \
+  oldlstat \
+  oldselect \
+  oldstat \
+  open \
+  openat \
+  osf_utimes \
+  pause \
+  perf_event_open \
+  personality \
+  pipe \
+  pipe2 \
+  pkey_alloc \
+  pkey_free \
+  pkey_mprotect \
+  poll \
+  ppoll \
+  prctl-arg2-intptr \
+  prctl-dumpable \
+  prctl-name \
+  prctl-no-args \
+  prctl-pdeathsig \
+  prctl-securebits \
+  prctl-tid_address \
+  prctl-tsc \
+  pread64-pwrite64 \
+  preadv \
+  preadv-pwritev \
+  preadv2-pwritev2 \
+  printstr \
+  prlimit64 \
+  process_vm_readv \
+  process_vm_writev \
+  pselect6 \
+  ptrace \
+  pwritev \
+  quotactl \
+  quotactl-xfs \
+  read-write \
+  readahead \
+  readdir \
+  readlink \
+  readlinkat \
+  readv \
+  reboot \
+  recvfrom \
+  recvmmsg-timeout \
+  recvmsg \
+  remap_file_pages \
+  rename \
+  renameat \
+  renameat2 \
+  request_key \
+  rmdir \
+  rt_sigaction \
+  rt_sigpending \
+  rt_sigprocmask \
+  rt_sigqueueinfo \
+  rt_sigreturn \
+  rt_sigsuspend \
+  rt_sigtimedwait \
+  rt_tgsigqueueinfo \
+  sched_get_priority_mxx \
+  sched_rr_get_interval \
+  sched_xetaffinity \
+  sched_xetattr \
+  sched_xetparam \
+  sched_xetscheduler \
+  sched_yield \
+  seccomp-filter \
+  select \
+  semop \
+  sendfile \
+  sendfile64 \
+  set_mempolicy \
+  setdomainname \
+  setfsgid \
+  setfsgid32 \
+  setfsuid \
+  setfsuid32 \
+  setgid \
+  setgid32 \
+  setgroups \
+  setgroups32 \
+  sethostname \
+  setns \
+  setregid \
+  setregid32 \
+  setresgid \
+  setresgid32 \
+  setresuid \
+  setresuid32 \
+  setreuid \
+  setreuid32 \
+  setrlimit \
+  setuid \
+  setuid32 \
+  shmxt \
+  shutdown \
+  sigaction \
+  sigaltstack \
+  siginfo \
+  signal \
+  signalfd4 \
+  sigpending \
+  sigprocmask \
+  sigreturn \
+  sigsuspend \
+  socketcall \
+  splice \
+  stat \
+  stat64 \
+  statfs \
+  statfs64 \
+  statx \
+  swap \
+  sxetmask \
+  symlink \
+  symlinkat \
+  sync \
+  sync_file_range \
+  sync_file_range2 \
+  sysinfo \
+  syslog \
+  tee \
+  time \
+  timer_create \
+  timer_xettime \
+  timerfd_xettime \
+  times \
+  times-fail \
+  truncate \
+  truncate64 \
+  ugetrlimit \
+  uio \
+  umask \
+  umount \
+  umount2 \
+  umoven-illptr \
+  umovestr \
+  umovestr-illptr \
+  umovestr2 \
+  umovestr3 \
+  uname \
+  unlink \
+  unlinkat \
+  unshare \
+  userfaultfd \
+  ustat \
+  utime \
+  utimensat \
+  utimes \
+  vhangup \
+  vmsplice \
+  wait4 \
+  waitid \
+  waitpid \
+  xattr \
+  xattr-strings \
+  xet_robust_list \
+  xetitimer \
+  xetpgid \
+  xetpriority \
+  xettimeofday \
+  #
diff --git a/tests-mx32/pure_executables.list b/tests-mx32/pure_executables.list
index cc65614..033208e 100755
--- a/tests-mx32/pure_executables.list
+++ b/tests-mx32/pure_executables.list
@@ -165,8 +165,19 @@
 net-yy-inet
 net-yy-netlink
 net-yy-unix
+netlink_audit
+netlink_generic
+netlink_netfilter
 netlink_protocol
+netlink_route
+netlink_selinux
+netlink_sock_diag
+netlink_xfrm
 newfstatat
+nlattr
+nlattr_inet_diag_msg
+nlattr_netlink_diag_msg
+nlattr_unix_diag_msg
 old_mmap
 oldfstat
 oldlstat
@@ -222,6 +233,7 @@
 renameat2
 request_key
 rmdir
+rt_sigaction
 rt_sigpending
 rt_sigprocmask
 rt_sigqueueinfo
@@ -269,7 +281,10 @@
 sigaction
 sigaltstack
 siginfo
+signal
 signalfd4
+sigpending
+sigprocmask
 sigreturn
 sigsuspend
 socketcall
diff --git a/tests-mx32/qual_fault.c b/tests-mx32/qual_fault.c
index ab692cb..05401de 100644
--- a/tests-mx32/qual_fault.c
+++ b/tests-mx32/qual_fault.c
@@ -32,15 +32,19 @@
 
 #include <assert.h>
 #include <errno.h>
+#include <fcntl.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#include <sys/param.h>
 #include <sys/stat.h>
 #include <sys/uio.h>
+#include <sys/wait.h>
 
-static const int expfd = 4;
-static const int gotfd = 5;
+static int exp_fd;
+static int got_fd;
+static int out_fd;
 
 #define DEFAULT_ERRNO ENOSYS
 
@@ -58,13 +62,13 @@
 	int rc;
 
 	if (!fail) {
-		rc = write(expfd, io.iov_base, io.iov_len);
+		rc = write(exp_fd, io.iov_base, io.iov_len);
 		if (rc != (int) io.iov_len)
 			perror_msg_and_fail("write");
 	}
 
 	errno = 0;
-	rc = writev(gotfd, &io, 1);
+	rc = writev(got_fd, &io, 1);
 
 	if (fail) {
 		if (!(rc == -1 && errno == err))
@@ -74,11 +78,11 @@
 
 		if (is_raw)
 			tprintf("writev(%#x, %p, 0x1) = -1 (errno %d)"
-				" (INJECTED)\n", gotfd, &io, err);
+				" (INJECTED)\n", got_fd, &io, err);
 		else
 			tprintf("writev(%d, [{iov_base=\"%s\", iov_len=%d}], 1)"
 				" = -1 %s (%m) (INJECTED)\n",
-				gotfd, buf, (int) io.iov_len, errstr);
+				got_fd, buf, (int) io.iov_len, errstr);
 	} else {
 		if (rc != (int) io.iov_len)
 			perror_msg_and_fail("expected %d"
@@ -86,23 +90,35 @@
 					    (int) io.iov_len, rc, errno);
 
 		if (is_raw)
-			tprintf("writev(%#x, %p, 0x1) = %#x\n", gotfd, &io, rc);
+			tprintf("writev(%#x, %p, 0x1) = %#x\n",
+				got_fd, &io, rc);
 		else
 			tprintf("writev(%d, [{iov_base=\"%s\", iov_len=%d}], 1)"
 				" = %d\n",
-				gotfd, buf, (int) io.iov_len, (int) io.iov_len);
+				got_fd, buf, (int) io.iov_len,
+				(int) io.iov_len);
 	}
 }
 
+static int
+open_file(const char *prefix, int proc)
+{
+	static const int open_flags = O_WRONLY | O_TRUNC | O_CREAT;
+	static char path[PATH_MAX + 1];
+
+	snprintf(path, sizeof(path), "%s.%d", prefix, proc);
+
+	int fd = open(path, open_flags, 0600);
+	if (fd < 0)
+		perror_msg_and_fail("open: %s", path);
+
+	return fd;
+}
+
 int
 main(int argc, char *argv[])
 {
-	struct stat st;
-
-	assert(fstat(expfd, &st) == 0);
-	assert(fstat(gotfd, &st) == 0);
-
-	assert(argc == 6);
+	assert(argc == 11);
 
 	is_raw = !strcmp("raw", argv[1]);
 
@@ -125,25 +141,71 @@
 	first = atoi(argv[3]);
 	step = atoi(argv[4]);
 	iter = atoi(argv[5]);
+	int num_procs = atoi(argv[6]);
+	char *exp_prefix = argv[7];
+	char *got_prefix = argv[8];
+	char *out_prefix = argv[9];
+	char *pid_prefix = argv[10];
 
 	assert(first > 0);
 	assert(step >= 0);
+	assert(num_procs > 0);
 
-	tprintf("%s", "");
+	int proc;
+	for (proc = 0; proc < num_procs; ++proc) {
+		int ret = fork();
 
-	int i;
-	for (i = 1; i <= iter; ++i) {
-		int fail = 0;
-		if (first > 0) {
-			--first;
-			if (first == 0) {
-				fail = 1;
-				first = step;
-			}
+		if (ret < 0)
+			perror_msg_and_fail("fork");
+
+		if (ret > 0) {
+			int pidfd = open_file(pid_prefix, proc);
+
+			char pidstr[sizeof(ret) * 3];
+			int len = snprintf(pidstr, sizeof(pidstr), "%d", ret);
+			assert(len > 0 && len < (int) sizeof(pidstr));
+			assert(write(pidfd, pidstr, len) == len);
+
+			close(pidfd);
+
+			continue;
 		}
-		invoke(fail);
+
+		tprintf("%s", "");
+
+		exp_fd = open_file(exp_prefix, proc);
+		got_fd = open_file(got_prefix, proc);
+		out_fd = open_file(out_prefix, proc);
+
+		/* This magic forces tprintf to write where we want it. */
+		dup2(out_fd, 3);
+
+		int i;
+		for (i = 1; i <= iter; ++i) {
+			int fail = 0;
+			if (first > 0) {
+				--first;
+				if (first == 0) {
+					fail = 1;
+					first = step;
+				}
+			}
+			invoke(fail);
+		}
+
+		tprintf("%s\n", "+++ exited with 0 +++");
+		return 0;
 	}
 
-	tprintf("%s\n", "+++ exited with 0 +++");
+	for (proc = 0; proc < num_procs; ++proc) {
+		int status;
+		int ret = wait(&status);
+		if (ret <= 0)
+			perror_msg_and_fail("wait %d", proc);
+		if (status)
+			error_msg_and_fail("wait: pid=%d status=%d",
+					   ret, status);
+	}
+
 	return 0;
 }
diff --git a/tests-mx32/qual_fault.test b/tests-mx32/qual_fault.test
index f8e57d2..12b0a85 100755
--- a/tests-mx32/qual_fault.test
+++ b/tests-mx32/qual_fault.test
@@ -35,16 +35,17 @@
 # F+
 # F+S
 
-N=16
+N=100
 
 check_fault_injection()
 {
-	local trace fault err first step extra
+	local trace fault err first step procs extra
 	trace=$1; shift
 	fault=$1; shift
 	err=$1; shift
 	first=$1; shift
 	step=$1; shift
+	procs=$1; shift
 	extra="$*"
 
 	local when=
@@ -74,30 +75,39 @@
 
 	outexp="$NAME.out.exp"
 	outgot="$NAME.out.got"
+	outout="$NAME.out.out"
+	outpid="$NAME.pid"
 
-	run_strace -a11 -e trace=$trace \
+	run_strace -a11 -ff -e trace=$trace \
 		"$@" -e fault=$fault$when$error $extra \
 		../$NAME $raw "$err" "$first" "$step" $N \
-		> "$EXP" 4> "$outexp" 5> "$outgot"
+		"$procs" "$outexp" "$outgot" "$outout" "$outpid"
 
-	match_diff "$EXP" "$LOG"
-	match_diff "$outexp" "$outgot"
+	for i in $(seq 0 $((procs - 1)) )
+	do
+		pid=$(cat "$outpid.$i")
+
+		match_diff "$outout.$i" "$LOG.$pid"
+		match_diff "$outexp.$i" "$outgot.$i"
+	done
 }
 
 for err in '' ENOSYS 22 einval; do
 	for fault in writev desc,51; do
 		check_fault_injection \
-			writev $fault "$err" '' '' -efault=chdir
+			writev $fault "$err" '' '' 1 -efault=chdir
 		check_fault_injection \
-			writev $fault "$err" '' '' -efault=chdir -efault=none
+			writev $fault "$err" '' '' 1 -efault=chdir -efault=none
 		for F in 1 2 3 5 7 11; do
 			check_fault_injection \
-				writev $fault "$err" $F ''
+				writev $fault "$err" $F '' 1
 			check_fault_injection \
-				writev $fault "$err" $F +
+				writev $fault "$err" $F + 1
 			for S in 1 2 3 5 7 11; do
 				check_fault_injection \
-					writev $fault "$err" $F $S
+					writev $fault "$err" $F $S 1
+				check_fault_injection \
+					writev $fault "$err" $F $S 4
 			done
 		done
 	done
diff --git a/tests-mx32/quotactl-xfs.c b/tests-mx32/quotactl-xfs.c
index b2a884b..fab451e 100644
--- a/tests-mx32/quotactl-xfs.c
+++ b/tests-mx32/quotactl-xfs.c
@@ -71,7 +71,7 @@
 	struct fs_qfilestatv	qs_pquota;	/* project quota information */
 	int32_t		qs_btimelimit;		/* limit for blks timer */
 	int32_t		qs_itimelimit;		/* limit for inodes timer */
-	int32_t		qs_rtbtimelimit; 	/* limit for rt blks timer */
+	int32_t		qs_rtbtimelimit;	/* limit for rt blks timer */
 	uint16_t	qs_bwarnlimit;		/* limit for num warnings */
 	uint16_t	qs_iwarnlimit;		/* limit for num warnings */
 	uint64_t	qs_pad2[8];		/* for future proofing */
@@ -97,29 +97,29 @@
 		return;
 	}
 
-	PRINT_FIELD_D("{", dq, d_version);
+	PRINT_FIELD_D("{", *dq, d_version);
 	printf(", d_flags=");
 	printflags(xfs_dqblk_flags, (uint8_t) dq->d_flags, "XFS_???_QUOTA");
 
-	PRINT_FIELD_X(", ", dq, d_fieldmask);
-	PRINT_FIELD_U(", ", dq, d_id);
-	PRINT_FIELD_U(", ", dq, d_blk_hardlimit);
-	PRINT_FIELD_U(", ", dq, d_blk_softlimit);
-	PRINT_FIELD_U(", ", dq, d_ino_hardlimit);
-	PRINT_FIELD_U(", ", dq, d_ino_softlimit);
-	PRINT_FIELD_U(", ", dq, d_bcount);
-	PRINT_FIELD_U(", ", dq, d_icount);
+	PRINT_FIELD_X(", ", *dq, d_fieldmask);
+	PRINT_FIELD_U(", ", *dq, d_id);
+	PRINT_FIELD_U(", ", *dq, d_blk_hardlimit);
+	PRINT_FIELD_U(", ", *dq, d_blk_softlimit);
+	PRINT_FIELD_U(", ", *dq, d_ino_hardlimit);
+	PRINT_FIELD_U(", ", *dq, d_ino_softlimit);
+	PRINT_FIELD_U(", ", *dq, d_bcount);
+	PRINT_FIELD_U(", ", *dq, d_icount);
 
 # if VERBOSE
-	PRINT_FIELD_D(", ", dq, d_itimer);
-	PRINT_FIELD_D(", ", dq, d_btimer);
-	PRINT_FIELD_U(", ", dq, d_iwarns);
-	PRINT_FIELD_U(", ", dq, d_bwarns);
-	PRINT_FIELD_U(", ", dq, d_rtb_hardlimit);
-	PRINT_FIELD_U(", ", dq, d_rtb_softlimit);
-	PRINT_FIELD_U(", ", dq, d_rtbcount);
-	PRINT_FIELD_D(", ", dq, d_rtbtimer);
-	PRINT_FIELD_U(", ", dq, d_rtbwarns);
+	PRINT_FIELD_D(", ", *dq, d_itimer);
+	PRINT_FIELD_D(", ", *dq, d_btimer);
+	PRINT_FIELD_U(", ", *dq, d_iwarns);
+	PRINT_FIELD_U(", ", *dq, d_bwarns);
+	PRINT_FIELD_U(", ", *dq, d_rtb_hardlimit);
+	PRINT_FIELD_U(", ", *dq, d_rtb_softlimit);
+	PRINT_FIELD_U(", ", *dq, d_rtbcount);
+	PRINT_FIELD_D(", ", *dq, d_rtbtimer);
+	PRINT_FIELD_U(", ", *dq, d_rtbwarns);
 # else
 	printf(", ...");
 # endif /* !VERBOSE */
@@ -137,23 +137,23 @@
 		return;
 	}
 
-	PRINT_FIELD_D("{", qs, qs_version);
+	PRINT_FIELD_D("{", *qs, qs_version);
 
 # if VERBOSE
 	printf(", qs_flags=");
 	printflags(xfs_quota_flags, qs->qs_flags, "XFS_QUOTA_???");
-	PRINT_FIELD_U(", qs_uquota={", &qs->qs_uquota, qfs_ino);
-	PRINT_FIELD_U(", ", &qs->qs_uquota, qfs_nblks);
-	PRINT_FIELD_U(", ", &qs->qs_uquota, qfs_nextents);
-	PRINT_FIELD_U("}, qs_gquota={", &qs->qs_gquota, qfs_ino);
-	PRINT_FIELD_U(", ", &qs->qs_gquota, qfs_nblks);
-	PRINT_FIELD_U(", ", &qs->qs_gquota, qfs_nextents);
-	PRINT_FIELD_U("}, ", qs, qs_incoredqs);
-	PRINT_FIELD_D(", ", qs, qs_btimelimit);
-	PRINT_FIELD_D(", ", qs, qs_itimelimit);
-	PRINT_FIELD_D(", ", qs, qs_rtbtimelimit);
-	PRINT_FIELD_U(", ", qs, qs_bwarnlimit);
-	PRINT_FIELD_U(", ", qs, qs_iwarnlimit);
+	PRINT_FIELD_U(", qs_uquota={", qs->qs_uquota, qfs_ino);
+	PRINT_FIELD_U(", ", qs->qs_uquota, qfs_nblks);
+	PRINT_FIELD_U(", ", qs->qs_uquota, qfs_nextents);
+	PRINT_FIELD_U("}, qs_gquota={", qs->qs_gquota, qfs_ino);
+	PRINT_FIELD_U(", ", qs->qs_gquota, qfs_nblks);
+	PRINT_FIELD_U(", ", qs->qs_gquota, qfs_nextents);
+	PRINT_FIELD_U("}, ", *qs, qs_incoredqs);
+	PRINT_FIELD_D(", ", *qs, qs_btimelimit);
+	PRINT_FIELD_D(", ", *qs, qs_itimelimit);
+	PRINT_FIELD_D(", ", *qs, qs_rtbtimelimit);
+	PRINT_FIELD_U(", ", *qs, qs_bwarnlimit);
+	PRINT_FIELD_U(", ", *qs, qs_iwarnlimit);
 # else
 	printf(", ...");
 # endif /* !VERBOSE */
@@ -171,26 +171,26 @@
 		return;
 	}
 
-	PRINT_FIELD_D("{", qs, qs_version);
+	PRINT_FIELD_D("{", *qs, qs_version);
 
 # if VERBOSE
 	printf(", qs_flags=");
 	printflags(xfs_quota_flags, qs->qs_flags, "XFS_QUOTA_???");
-	PRINT_FIELD_U(", ", qs, qs_incoredqs);
-	PRINT_FIELD_U(", qs_uquota={", &qs->qs_uquota, qfs_ino);
-	PRINT_FIELD_U(", ", &qs->qs_uquota, qfs_nblks);
-	PRINT_FIELD_U(", ", &qs->qs_uquota, qfs_nextents);
-	PRINT_FIELD_U("}, qs_gquota={", &qs->qs_gquota, qfs_ino);
-	PRINT_FIELD_U(", ", &qs->qs_gquota, qfs_nblks);
-	PRINT_FIELD_U(", ", &qs->qs_gquota, qfs_nextents);
-	PRINT_FIELD_U("}, qs_pquota={", &qs->qs_pquota, qfs_ino);
-	PRINT_FIELD_U(", ", &qs->qs_pquota, qfs_nblks);
-	PRINT_FIELD_U(", ", &qs->qs_pquota, qfs_nextents);
-	PRINT_FIELD_D("}, ", qs, qs_btimelimit);
-	PRINT_FIELD_D(", ", qs, qs_itimelimit);
-	PRINT_FIELD_D(", ", qs, qs_rtbtimelimit);
-	PRINT_FIELD_U(", ", qs, qs_bwarnlimit);
-	PRINT_FIELD_U(", ", qs, qs_iwarnlimit);
+	PRINT_FIELD_U(", ", *qs, qs_incoredqs);
+	PRINT_FIELD_U(", qs_uquota={", qs->qs_uquota, qfs_ino);
+	PRINT_FIELD_U(", ", qs->qs_uquota, qfs_nblks);
+	PRINT_FIELD_U(", ", qs->qs_uquota, qfs_nextents);
+	PRINT_FIELD_U("}, qs_gquota={", qs->qs_gquota, qfs_ino);
+	PRINT_FIELD_U(", ", qs->qs_gquota, qfs_nblks);
+	PRINT_FIELD_U(", ", qs->qs_gquota, qfs_nextents);
+	PRINT_FIELD_U("}, qs_pquota={", qs->qs_pquota, qfs_ino);
+	PRINT_FIELD_U(", ", qs->qs_pquota, qfs_nblks);
+	PRINT_FIELD_U(", ", qs->qs_pquota, qfs_nextents);
+	PRINT_FIELD_D("}, ", *qs, qs_btimelimit);
+	PRINT_FIELD_D(", ", *qs, qs_itimelimit);
+	PRINT_FIELD_D(", ", *qs, qs_rtbtimelimit);
+	PRINT_FIELD_U(", ", *qs, qs_bwarnlimit);
+	PRINT_FIELD_U(", ", *qs, qs_iwarnlimit);
 # else
 	printf(", ...");
 # endif /* !VERBOSE */
diff --git a/tests-mx32/quotactl.c b/tests-mx32/quotactl.c
index 88c3fda..f1648d9 100644
--- a/tests-mx32/quotactl.c
+++ b/tests-mx32/quotactl.c
@@ -88,16 +88,16 @@
 		return;
 	}
 
-	PRINT_FIELD_U("{", db, dqb_bhardlimit);
-	PRINT_FIELD_U(", ", db, dqb_bsoftlimit);
-	PRINT_FIELD_U(", ", db, dqb_curspace);
-	PRINT_FIELD_U(", ", db, dqb_ihardlimit);
-	PRINT_FIELD_U(", ", db, dqb_isoftlimit);
-	PRINT_FIELD_U(", ", db, dqb_curinodes);
+	PRINT_FIELD_U("{", *db, dqb_bhardlimit);
+	PRINT_FIELD_U(", ", *db, dqb_bsoftlimit);
+	PRINT_FIELD_U(", ", *db, dqb_curspace);
+	PRINT_FIELD_U(", ", *db, dqb_ihardlimit);
+	PRINT_FIELD_U(", ", *db, dqb_isoftlimit);
+	PRINT_FIELD_U(", ", *db, dqb_curinodes);
 
 # if VERBOSE
-	PRINT_FIELD_U(", ", db, dqb_btime);
-	PRINT_FIELD_U(", ", db, dqb_itime);
+	PRINT_FIELD_U(", ", *db, dqb_btime);
+	PRINT_FIELD_U(", ", *db, dqb_itime);
 
 	printf(", dqb_valid=");
 	printflags(if_dqblk_valid, db->dqb_valid, "QIF_???");
@@ -118,23 +118,23 @@
 		return;
 	}
 
-	PRINT_FIELD_U("{", db, dqb_bhardlimit);
-	PRINT_FIELD_U(", ", db, dqb_bsoftlimit);
-	PRINT_FIELD_U(", ", db, dqb_curspace);
-	PRINT_FIELD_U(", ", db, dqb_ihardlimit);
-	PRINT_FIELD_U(", ", db, dqb_isoftlimit);
-	PRINT_FIELD_U(", ", db, dqb_curinodes);
+	PRINT_FIELD_U("{", *db, dqb_bhardlimit);
+	PRINT_FIELD_U(", ", *db, dqb_bsoftlimit);
+	PRINT_FIELD_U(", ", *db, dqb_curspace);
+	PRINT_FIELD_U(", ", *db, dqb_ihardlimit);
+	PRINT_FIELD_U(", ", *db, dqb_isoftlimit);
+	PRINT_FIELD_U(", ", *db, dqb_curinodes);
 
 # if VERBOSE
-	PRINT_FIELD_U(", ", db, dqb_btime);
-	PRINT_FIELD_U(", ", db, dqb_itime);
+	PRINT_FIELD_U(", ", *db, dqb_btime);
+	PRINT_FIELD_U(", ", *db, dqb_itime);
 
 	printf(", dqb_valid=");
 	printflags(if_dqblk_valid, db->dqb_valid, "QIF_???");
 
-	PRINT_FIELD_U(", ", db, dqb_id);
+	PRINT_FIELD_U(", ", *db, dqb_id);
 # else
-	PRINT_FIELD_U(", ", db, dqb_id);
+	PRINT_FIELD_U(", ", *db, dqb_id);
 	printf(", ...");
 # endif /* !VERBOSE */
 	printf("}");
@@ -151,8 +151,8 @@
 		return;
 	}
 
-	PRINT_FIELD_U("{", di, dqi_bgrace);
-	PRINT_FIELD_U(", ", di, dqi_igrace);
+	PRINT_FIELD_U("{", *di, dqi_bgrace);
+	PRINT_FIELD_U(", ", *di, dqi_igrace);
 
 	printf(", dqi_flags=");
 	printflags(if_dqinfo_flags, di->dqi_flags, "DQF_???");
diff --git a/tests-mx32/quotactl.h b/tests-mx32/quotactl.h
index 31eaec5..d3cf53b 100644
--- a/tests-mx32/quotactl.h
+++ b/tests-mx32/quotactl.h
@@ -34,6 +34,7 @@
 # include <inttypes.h>
 # include <stdarg.h>
 # include <stdio.h>
+# include "print_fields.h"
 
 # ifdef HAVE_LINUX_QUOTA_H
 /* Broken in CentOS 5: has extern spinlock_t dq_data_lock; declaration */
@@ -57,18 +58,6 @@
 #  define PRJQUOTA 2
 # endif
 
-# define PRINT_FIELD_D(prefix, where, field)	\
-	printf("%s%s=%lld", (prefix), #field,	\
-	       sign_extend_unsigned_to_ll((where)->field))
-
-# define PRINT_FIELD_U(prefix, where, field)	\
-	printf("%s%s=%llu", (prefix), #field,	\
-	       zero_extend_signed_to_ull((where)->field))
-
-# define PRINT_FIELD_X(prefix, where, field)	\
-	printf("%s%s=%#llx", (prefix), #field,	\
-	       zero_extend_signed_to_ull((where)->field))
-
 typedef void (*print_cb)(long rc, void *addr, void *arg);
 
 enum check_quotactl_flag_bits {
diff --git a/tests-mx32/readahead.c b/tests-mx32/readahead.c
index c243ae4..a3e5cb8 100644
--- a/tests-mx32/readahead.c
+++ b/tests-mx32/readahead.c
@@ -37,7 +37,7 @@
  * see https://sourceware.org/bugzilla/show_bug.cgi?id=5208
  */
 #  if !(defined __GLIBC_MINOR__ && \
-        (__GLIBC__ << 16) + __GLIBC_MINOR__ >= (2 << 16) + 8)
+	(__GLIBC__ << 16) + __GLIBC_MINOR__ >= (2 << 16) + 8)
 #   undef HAVE_READAHEAD
 #  endif /* glibc < 2.8 */
 /*
@@ -45,7 +45,7 @@
  * see https://sourceware.org/bugzilla/show_bug.cgi?id=21026
  */
 #  if defined LINUX_MIPSN64 && !(defined __GLIBC_MINOR__ && \
-        (__GLIBC__ << 16) + __GLIBC_MINOR__ >= (2 << 16) + 25)
+	(__GLIBC__ << 16) + __GLIBC_MINOR__ >= (2 << 16) + 25)
 #   undef HAVE_READAHEAD
 #  endif /* LINUX_MIPSN64 && glibc < 2.25 */
 # endif /* __GLIBC__ */
diff --git a/tests-mx32/readv.c b/tests-mx32/readv.c
index 0e5aab6..93f0760 100644
--- a/tests-mx32/readv.c
+++ b/tests-mx32/readv.c
@@ -108,7 +108,7 @@
 		" * %u bytes in buffer 2\n"
 		" | 00000 %-49s  %-16s |\n",
 		fds[1], w0_c, LENGTH_OF(w0_c), w1_c, LENGTH_OF(w1_c),
-		w2_c, LENGTH_OF(w2_c), ARRAY_SIZE(w_iov_), w_len,
+		w2_c, LENGTH_OF(w2_c), (unsigned int) ARRAY_SIZE(w_iov_), w_len,
 		LENGTH_OF(w0_c), w0_d, w0_c,
 		LENGTH_OF(w1_c), w1_d, w1_c, LENGTH_OF(w2_c), w2_d, w2_c);
 
@@ -126,8 +126,8 @@
 	tprintf("readv(%d, [{iov_base=\"%s\", iov_len=%u}], %u) = %u\n"
 		" * %u bytes in buffer 0\n"
 		" | 00000 %-49s  %-16s |\n",
-		fds[0],
-		r0_c, r_len, ARRAY_SIZE(r0_iov_), r_len, r_len, r0_d, r0_c);
+		fds[0], r0_c, r_len, (unsigned int) ARRAY_SIZE(r0_iov_),
+		r_len, r_len, r0_d, r0_c);
 
 	void *r1 = tail_alloc(r_len);
 	void *r2 = tail_alloc(w_len);
@@ -148,8 +148,8 @@
 		", {iov_base=\"\", iov_len=%u}], %u) = %u\n"
 		" * %u bytes in buffer 0\n"
 		" | 00000 %-49s  %-16s |\n",
-		fds[0], r1_c, r_len, w_len, ARRAY_SIZE(r1_iov_), w_len - r_len,
-		w_len - r_len, r1_d, r1_c);
+		fds[0], r1_c, r_len, w_len, (unsigned int) ARRAY_SIZE(r1_iov_),
+		w_len - r_len, w_len - r_len, r1_d, r1_c);
 	close(fds[0]);
 
 	tprintf("+++ exited with 0 +++\n");
diff --git a/tests-mx32/reboot.c b/tests-mx32/reboot.c
index 9b09e64..ce651dc 100644
--- a/tests-mx32/reboot.c
+++ b/tests-mx32/reboot.c
@@ -14,14 +14,14 @@
 main(void)
 {
 	static const char buf[] = "reboot";
-	long rc = syscall(__NR_reboot, LINUX_REBOOT_MAGIC1, \
-	          INVALID_MAGIC, LINUX_REBOOT_CMD_RESTART2, buf);
+	long rc = syscall(__NR_reboot, LINUX_REBOOT_MAGIC1,
+			  INVALID_MAGIC, LINUX_REBOOT_CMD_RESTART2, buf);
 	printf("reboot(LINUX_REBOOT_MAGIC1, %#x /* LINUX_REBOOT_MAGIC_??? */,"
 	       " LINUX_REBOOT_CMD_RESTART2, \"%s\") = %ld %s (%m)\n",
 	       INVALID_MAGIC, buf, rc, errno2name());
 
-	rc = syscall(__NR_reboot, LINUX_REBOOT_MAGIC1, \
-	     LINUX_REBOOT_MAGIC2, INVALID_CMD);
+	rc = syscall(__NR_reboot, LINUX_REBOOT_MAGIC1,
+		     LINUX_REBOOT_MAGIC2, INVALID_CMD);
 	printf("reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2,"
 	       " %#x /* LINUX_REBOOT_CMD_??? */) = %ld %s (%m)\n",
 	       INVALID_CMD, rc, errno2name());
diff --git a/tests-mx32/recvmsg.c b/tests-mx32/recvmsg.c
index fa41a9d..2d55d55 100644
--- a/tests-mx32/recvmsg.c
+++ b/tests-mx32/recvmsg.c
@@ -100,7 +100,7 @@
 		w0_c, LENGTH_OF(w0_c),
 		w1_c, LENGTH_OF(w1_c),
 		w2_c, LENGTH_OF(w2_c),
-		ARRAY_SIZE(w_iov_), w_len,
+		(unsigned int) ARRAY_SIZE(w_iov_), w_len,
 		LENGTH_OF(w0_c), w0_d, w0_c,
 		LENGTH_OF(w1_c), w1_d, w1_c,
 		LENGTH_OF(w2_c), w2_d, w2_c);
@@ -127,7 +127,8 @@
 		", msg_controllen=0, msg_flags=0}, 0) = %u\n"
 		" * %u bytes in buffer 0\n"
 		" | 00000 %-49s  %-16s |\n",
-		r0_c, r_len, ARRAY_SIZE(r0_iov_), r_len, r_len, r0_d, r0_c);
+		r0_c, r_len, (unsigned int) ARRAY_SIZE(r0_iov_),
+		r_len, r_len, r0_d, r0_c);
 
 	void *r1 = tail_alloc(r_len);
 	void *r2 = tail_alloc(w_len);
@@ -151,8 +152,8 @@
 		", msg_iovlen=%u, msg_controllen=0, msg_flags=0}, 0) = %u\n"
 		" * %u bytes in buffer 0\n"
 		" | 00000 %-49s  %-16s |\n",
-		r1_c, r_len, w_len, ARRAY_SIZE(r1_iov_), w_len - r_len,
-		w_len - r_len, r1_d, r1_c);
+		r1_c, r_len, w_len, (unsigned int) ARRAY_SIZE(r1_iov_),
+		w_len - r_len, w_len - r_len, r1_d, r1_c);
 	close(0);
 
 	tprintf("+++ exited with 0 +++\n");
diff --git a/tests-mx32/request_key.c b/tests-mx32/request_key.c
index fea977b..03c7a42 100644
--- a/tests-mx32/request_key.c
+++ b/tests-mx32/request_key.c
@@ -69,8 +69,7 @@
 {
 	static const char unterminated1[] = { '\1', '\2', '\3', '\4', '\5' };
 	static const char unterminated2[] = { '\6', '\7', '\10', '\11', '\12' };
-	static const char unterminated3[] =
-		{ '\16', '\17', '\20', '\21', '\22' };
+	static const char unterminated3[] = { '\16', '\17', '\20', '\21', '\22' };
 
 	char *bogus_type = tail_memdup(unterminated1, sizeof(unterminated1));
 	char *bogus_desc = tail_memdup(unterminated2, sizeof(unterminated2));
diff --git a/tests-mx32/sigaction.awk b/tests-mx32/rt_sigaction.awk
similarity index 100%
rename from tests-mx32/sigaction.awk
rename to tests-mx32/rt_sigaction.awk
diff --git a/tests-mx32/rt_sigaction.c b/tests-mx32/rt_sigaction.c
new file mode 100644
index 0000000..1c034ff
--- /dev/null
+++ b/tests-mx32/rt_sigaction.c
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2014-2015 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 <assert.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <signal.h>
+
+static void handle_signal(int no)
+{
+	_exit(128 + no);
+}
+
+int
+main(void)
+{
+	struct sigaction sa, sa0;
+
+	sa.sa_handler = SIG_IGN;
+	sigemptyset(&sa.sa_mask);
+	sigaddset(&sa.sa_mask, SIGHUP);
+	sigaddset(&sa.sa_mask, SIGINT);
+	sa.sa_flags = SA_RESTART;
+	assert(!sigaction(SIGUSR2, &sa, &sa0));
+
+	sa.sa_handler = handle_signal;
+	sigemptyset(&sa.sa_mask);
+	sigaddset(&sa.sa_mask, SIGQUIT);
+	sigaddset(&sa.sa_mask, SIGTERM);
+	sa.sa_flags = SA_SIGINFO;
+	assert(!sigaction(SIGUSR2, &sa, &sa0));
+
+	sa.sa_handler = SIG_DFL;
+	sigemptyset(&sa.sa_mask);
+	sa.sa_flags = 0;
+	assert(!sigaction(SIGUSR2, &sa, &sa0));
+
+	sigfillset(&sa.sa_mask);
+	sigdelset(&sa.sa_mask, SIGHUP);
+	assert(!sigaction(SIGUSR2, &sa, &sa0));
+
+	return 0;
+}
diff --git a/tests-mx32/sigaction.test b/tests-mx32/rt_sigaction.test
similarity index 100%
rename from tests-mx32/sigaction.test
rename to tests-mx32/rt_sigaction.test
diff --git a/tests-mx32/rt_sigqueueinfo.c b/tests-mx32/rt_sigqueueinfo.c
index f803d91..9681281 100644
--- a/tests-mx32/rt_sigqueueinfo.c
+++ b/tests-mx32/rt_sigqueueinfo.c
@@ -33,7 +33,7 @@
 #include <unistd.h>
 
 int
-main (void)
+main(void)
 {
 	struct sigaction sa = {
 		.sa_handler = SIG_IGN
diff --git a/tests-mx32/rt_tgsigqueueinfo.c b/tests-mx32/rt_tgsigqueueinfo.c
index 3b2da2a..3cff35a 100644
--- a/tests-mx32/rt_tgsigqueueinfo.c
+++ b/tests-mx32/rt_tgsigqueueinfo.c
@@ -50,7 +50,7 @@
 }
 
 int
-main (void)
+main(void)
 {
 	const struct sigaction sa = {
 		.sa_handler = SIG_IGN
@@ -65,7 +65,8 @@
 	info->si_code = SI_QUEUE;
 	info->si_pid = getpid();
 	info->si_uid = getuid();
-	info->si_value.sival_ptr = (void *) (unsigned long) 0xdeadbeeffacefeedULL;
+	info->si_value.sival_ptr =
+		(void *) (unsigned long) 0xdeadbeeffacefeedULL;
 
 	if (k_tgsigqueueinfo(info->si_pid, SIGUSR1, info))
 		(errno == ENOSYS ? perror_msg_and_skip : perror_msg_and_fail)(
diff --git a/tests-mx32/run_expect_termsig.c b/tests-mx32/run_expect_termsig.c
new file mode 100644
index 0000000..de81ccb
--- /dev/null
+++ b/tests-mx32/run_expect_termsig.c
@@ -0,0 +1,58 @@
+/*
+ * Execute a command, expect its termination with a specified signal.
+ *
+ * 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 "tests.h"
+#include <signal.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/wait.h>
+
+int
+main(int ac, char **av)
+{
+	if (ac < 3)
+		error_msg_and_fail("usage: run_expect_termsig signo path...");
+
+	signal(SIGCHLD, SIG_DFL);
+
+	pid_t pid = fork();
+	if (pid < 0)
+		perror_msg_and_fail("fork");
+
+	if (!pid) {
+		execvp(av[2], av + 2);
+		perror_msg_and_fail("execvp: %s", av[2]);
+	}
+
+	int status;
+	if (waitpid(pid, &status, 0) != pid)
+		perror_msg_and_fail("waitpid");
+
+	return !(WIFSIGNALED(status) && WTERMSIG(status) == atoi(av[1]));
+}
diff --git a/tests-mx32/sched_get_priority_mxx.c b/tests-mx32/sched_get_priority_mxx.c
index fc14b27..5224ff1 100644
--- a/tests-mx32/sched_get_priority_mxx.c
+++ b/tests-mx32/sched_get_priority_mxx.c
@@ -24,6 +24,6 @@
 #else
 
 SKIP_MAIN_UNDEFINED("__NR_sched_get_priority_min"
-                    " && defined __NR_sched_get_priority_max");
+		    " && defined __NR_sched_get_priority_max");
 
 #endif
diff --git a/tests-mx32/seccomp-filter-v.c b/tests-mx32/seccomp-filter-v.c
index fe88ac7..f65be7d 100644
--- a/tests-mx32/seccomp-filter-v.c
+++ b/tests-mx32/seccomp-filter-v.c
@@ -146,7 +146,7 @@
 	for (i = 0; i < BPF_MAXINSNS; ++i) {
 		if (i)
 			tprintf(", ");
-		switch(BPF_CLASS(i)) {
+		switch (BPF_CLASS(i)) {
 		case BPF_LD:
 			tprintf("BPF_STMT(BPF_LD|BPF_W|BPF_IMM, %#x)", i << 16);
 			break;
diff --git a/tests-mx32/semop.c b/tests-mx32/semop.c
index 3d1f384..2366d38 100644
--- a/tests-mx32/semop.c
+++ b/tests-mx32/semop.c
@@ -9,8 +9,7 @@
 #include "xlat.h"
 #include "xlat/semop_flags.h"
 
-union semun
-{
+union semun {
 	int val;
 	struct semid_ds *buf;
 	unsigned short *array;
diff --git a/tests-mx32/sendfile.c b/tests-mx32/sendfile.c
index 9253c10..b86565b 100644
--- a/tests-mx32/sendfile.c
+++ b/tests-mx32/sendfile.c
@@ -36,15 +36,13 @@
 # include <fcntl.h>
 # include <stdio.h>
 # include <stdint.h>
+# include <stdlib.h>
 # include <unistd.h>
 # include <sys/socket.h>
-# include <sys/stat.h>
 
 int
-main(int ac, const char **av)
+main(void)
 {
-	assert(ac == 1);
-
 	(void) close(0);
 	if (open("/dev/zero", O_RDONLY) != 0)
 		perror_msg_and_skip("open: %s", "/dev/zero");
@@ -53,58 +51,62 @@
 	if (socketpair(AF_UNIX, SOCK_STREAM, 0, sv))
 		perror_msg_and_skip("socketpair");
 
-	int reg_in = open(av[0], O_RDONLY);
-	if (reg_in < 0)
-		perror_msg_and_fail("open: %s", av[0]);
-
-	struct stat stb;
-	assert(fstat(reg_in, &stb) == 0);
-	const size_t blen = stb.st_size / 3;
-	const size_t alen = stb.st_size - blen;
-	assert(S_ISREG(stb.st_mode) && blen > 0);
-
-	const size_t page_len = get_page_size();
-	assert(syscall(__NR_sendfile, 0, 1, NULL, page_len) == -1);
+	const unsigned int page_size = get_page_size();
+	assert(syscall(__NR_sendfile, 0, 1, NULL, page_size) == -1);
 	if (EBADF != errno)
 		perror_msg_and_skip("sendfile");
-	printf("sendfile(0, 1, NULL, %lu) = -1 EBADF (%m)\n",
-	       (unsigned long) page_len);
+	printf("sendfile(0, 1, NULL, %u) = -1 EBADF (%m)\n", page_size);
+
+	unsigned int file_size = 0;
+	socklen_t optlen = sizeof(file_size);
+	if (getsockopt(sv[1], SOL_SOCKET, SO_SNDBUF, &file_size, &optlen))
+		perror_msg_and_fail("getsockopt");
+	if (file_size < 1024)
+		error_msg_and_skip("SO_SNDBUF too small: %u", file_size);
+
+	file_size /= 4;
+	if (file_size / 16 > page_size)
+		file_size = page_size * 16;
+	const unsigned int blen = file_size / 3;
+	const unsigned int alen = file_size - blen;
+
+	static const char fname[] = "sendfile-tmpfile";
+	int reg_in = open(fname, O_RDWR | O_CREAT | O_TRUNC, 0600);
+	if (reg_in < 0)
+		perror_msg_and_fail("open: %s", fname);
+	if (unlink(fname))
+		perror_msg_and_fail("unlink: %s", fname);
+	if (ftruncate(reg_in, file_size))
+		perror_msg_and_fail("ftruncate: %s", fname);
 
 	TAIL_ALLOC_OBJECT_VAR_PTR(uint32_t, p_off);
 	void *p = p_off + 1;
 	*p_off = 0;
 
-	assert(syscall(__NR_sendfile, 0, 1, p, page_len) == -1);
-	printf("sendfile(0, 1, %#lx, %lu) = -1 EFAULT (%m)\n",
-	       (unsigned long) p, (unsigned long) page_len);
+	assert(syscall(__NR_sendfile, 0, 1, p, page_size) == -1);
+	printf("sendfile(0, 1, %p, %u) = -1 EFAULT (%m)\n", p, page_size);
 
 	assert(syscall(__NR_sendfile, sv[1], reg_in, NULL, alen)
 	       == (long) alen);
-	printf("sendfile(%d, %d, NULL, %lu) = %lu\n",
-	       sv[1], reg_in, (unsigned long) alen,
-	       (unsigned long) alen);
+	printf("sendfile(%d, %d, NULL, %u) = %u\n",
+	       sv[1], reg_in, alen, alen);
 
 	p = p_off;
 	if (syscall(__NR_sendfile, sv[1], reg_in, p_off, alen) != (long) alen) {
-		printf("sendfile(%d, %d, %#lx, %lu) = -1 EFAULT (%m)\n",
-		       sv[1], reg_in, (unsigned long) p_off,
-		       (unsigned long) alen);
+		printf("sendfile(%d, %d, %#lx, %u) = -1 EFAULT (%m)\n",
+		       sv[1], reg_in, (unsigned long) p_off, alen);
 		--p_off;
 		*p_off = 0;
 		assert(syscall(__NR_sendfile, sv[1], reg_in, p_off, alen)
 		       == (long) alen);
 	}
-	printf("sendfile(%d, %d, [0] => [%lu], %lu) = %lu\n",
-	       sv[1], reg_in, (unsigned long) alen,
-	       (unsigned long) alen, (unsigned long) alen);
+	printf("sendfile(%d, %d, [0] => [%u], %u) = %u\n",
+	       sv[1], reg_in, alen, alen, alen);
 
-	assert(syscall(__NR_sendfile, sv[1], reg_in, p_off, stb.st_size + 1)
+	assert(syscall(__NR_sendfile, sv[1], reg_in, p_off, file_size + 1)
 	       == (long) blen);
-	printf("sendfile(%d, %d, [%lu] => [%lu], %lu) = %lu\n",
-	       sv[1], reg_in, (unsigned long) alen,
-	       (unsigned long) stb.st_size,
-	       (unsigned long) stb.st_size + 1,
-	       (unsigned long) blen);
+	printf("sendfile(%d, %d, [%u] => [%u], %u) = %u\n",
+	       sv[1], reg_in, alen, file_size, file_size + 1, blen);
 
 	if (p_off != p) {
 		uint64_t *p_off64 = (uint64_t *) p_off;
diff --git a/tests-mx32/sendfile64.c b/tests-mx32/sendfile64.c
index de02400..4c4da6d 100644
--- a/tests-mx32/sendfile64.c
+++ b/tests-mx32/sendfile64.c
@@ -36,15 +36,13 @@
 # include <fcntl.h>
 # include <stdio.h>
 # include <stdint.h>
+# include <stdlib.h>
 # include <unistd.h>
 # include <sys/socket.h>
-# include <sys/stat.h>
 
 int
-main(int ac, const char **av)
+main(void)
 {
-	assert(ac == 1);
-
 	(void) close(0);
 	if (open("/dev/zero", O_RDONLY) != 0)
 		perror_msg_and_skip("open: %s", "/dev/zero");
@@ -53,50 +51,55 @@
 	if (socketpair(AF_UNIX, SOCK_STREAM, 0, sv))
 		perror_msg_and_skip("socketpair");
 
-	int reg_in = open(av[0], O_RDONLY);
-	if (reg_in < 0)
-		perror_msg_and_fail("open: %s", av[0]);
-
-	struct stat stb;
-	assert(fstat(reg_in, &stb) == 0);
-	const size_t blen = stb.st_size / 3;
-	const size_t alen = stb.st_size - blen;
-	assert(S_ISREG(stb.st_mode) && blen > 0);
-
-	const size_t page_len = get_page_size();
-	assert(syscall(__NR_sendfile64, 0, 1, NULL, page_len) == -1);
+	const unsigned int page_size = get_page_size();
+	assert(syscall(__NR_sendfile64, 0, 1, NULL, page_size) == -1);
 	if (EBADF != errno)
 		perror_msg_and_skip("sendfile64");
-	printf("sendfile64(0, 1, NULL, %lu) = -1 EBADF (%m)\n",
-	       (unsigned long) page_len);
+	printf("sendfile64(0, 1, NULL, %u) = -1 EBADF (%m)\n", page_size);
+
+	unsigned int file_size = 0;
+	socklen_t optlen = sizeof(file_size);
+	if (getsockopt(sv[1], SOL_SOCKET, SO_SNDBUF, &file_size, &optlen))
+		perror_msg_and_fail("getsockopt");
+	if (file_size < 1024)
+		error_msg_and_skip("SO_SNDBUF too small: %u", file_size);
+
+	file_size /= 4;
+	if (file_size / 16 > page_size)
+		file_size = page_size * 16;
+	const unsigned int blen = file_size / 3;
+	const unsigned int alen = file_size - blen;
+
+	static const char fname[] = "sendfile64-tmpfile";
+	int reg_in = open(fname, O_RDWR | O_CREAT | O_TRUNC, 0600);
+	if (reg_in < 0)
+		perror_msg_and_fail("open: %s", fname);
+	if (unlink(fname))
+		perror_msg_and_fail("unlink: %s", fname);
+	if (ftruncate(reg_in, file_size))
+		perror_msg_and_fail("ftruncate: %s", fname);
 
 	TAIL_ALLOC_OBJECT_CONST_PTR(uint64_t, p_off);
 	void *p = p_off + 1;
 	*p_off = 0;
 
-	assert(syscall(__NR_sendfile64, 0, 1, p, page_len) == -1);
-	printf("sendfile64(0, 1, %#lx, %lu) = -1 EFAULT (%m)\n",
-	       (unsigned long) p, (unsigned long) page_len);
+	assert(syscall(__NR_sendfile64, 0, 1, p, page_size) == -1);
+	printf("sendfile64(0, 1, %p, %u) = -1 EFAULT (%m)\n", p, page_size);
 
 	assert(syscall(__NR_sendfile64, sv[1], reg_in, NULL, alen)
 	       == (long) alen);
-	printf("sendfile64(%d, %d, NULL, %lu) = %lu\n",
-	       sv[1], reg_in, (unsigned long) alen,
-	       (unsigned long) alen);
+	printf("sendfile64(%d, %d, NULL, %u) = %u\n",
+	       sv[1], reg_in, alen, alen);
 
 	assert(syscall(__NR_sendfile64, sv[1], reg_in, p_off, alen)
 	       == (long) alen);
-	printf("sendfile64(%d, %d, [0] => [%lu], %lu) = %lu\n",
-	       sv[1], reg_in, (unsigned long) alen,
-	       (unsigned long) alen, (unsigned long) alen);
+	printf("sendfile64(%d, %d, [0] => [%u], %u) = %u\n",
+	       sv[1], reg_in, alen, alen, alen);
 
-	assert(syscall(__NR_sendfile64, sv[1], reg_in, p_off, stb.st_size + 1)
+	assert(syscall(__NR_sendfile64, sv[1], reg_in, p_off, file_size + 1)
 	       == (long) blen);
-	printf("sendfile64(%d, %d, [%lu] => [%lu], %lu) = %lu\n",
-	       sv[1], reg_in, (unsigned long) alen,
-	       (unsigned long) stb.st_size,
-	       (unsigned long) stb.st_size + 1,
-	       (unsigned long) blen);
+	printf("sendfile64(%d, %d, [%u] => [%u], %u) = %u\n",
+	       sv[1], reg_in, alen, file_size, file_size + 1, blen);
 
 	*p_off = 0xcafef00dfacefeedULL;
 	assert(syscall(__NR_sendfile64, sv[1], reg_in, p_off, 1) == -1);
diff --git a/tests-mx32/sigaction.c b/tests-mx32/sigaction.c
index 1c034ff..7b46944 100644
--- a/tests-mx32/sigaction.c
+++ b/tests-mx32/sigaction.c
@@ -1,5 +1,7 @@
 /*
- * Copyright (c) 2014-2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Check decoding of sigaction syscall.
+ *
+ * Copyright (c) 2017 Dmitry V. Levin <ldv@altlinux.org>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -25,43 +27,173 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <assert.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <signal.h>
+#include "tests.h"
+#include <asm/unistd.h>
 
-static void handle_signal(int no)
-{
-	_exit(128 + no);
+#ifdef __NR_sigaction
+
+# include <signal.h>
+# include <stdint.h>
+# include <stdio.h>
+# include <string.h>
+# include <unistd.h>
+
+struct set_sa {
+#if defined MIPS
+	unsigned int flags;
+	unsigned long handler;
+	unsigned long mask[1];
+#elif defined ALPHA
+	unsigned long handler;
+	unsigned long mask[1];
+	unsigned int flags;
+#else
+	unsigned long handler;
+	unsigned long mask[1];
+	unsigned long flags;
+	unsigned long restorer;
+#endif
 }
+#ifdef ALPHA
+	ATTRIBUTE_PACKED
+#endif
+;
+
+typedef struct set_sa struct_set_sa;
+
+#ifdef MIPS
+
+struct get_sa {
+	unsigned int flags;
+	unsigned long handler;
+	unsigned long mask[4];
+};
+
+typedef struct get_sa struct_get_sa;
+
+#else
+
+typedef struct set_sa struct_get_sa;
+
+#endif
+
+static long
+k_sigaction(const kernel_ulong_t signum, const kernel_ulong_t new_act,
+	    const kernel_ulong_t old_act)
+{
+	return syscall(__NR_sigaction, signum, new_act, old_act);
+}
+
+#if defined SPARC || defined SPARC64
+static const kernel_ulong_t signo =
+	(kernel_ulong_t) 0xbadc0ded00000000ULL | (unsigned int) -SIGUSR1;
+# define SIG_STR "-SIGUSR1"
+#else
+static const kernel_ulong_t signo =
+	(kernel_ulong_t) 0xbadc0ded00000000ULL | SIGUSR1;
+# define SIG_STR "SIGUSR1"
+#endif
 
 int
 main(void)
 {
-	struct sigaction sa, sa0;
+	static const kernel_ulong_t addr =
+		(kernel_ulong_t) 0xfacefeed0defacedULL;
+	union {
+		sigset_t libc[1];
+		unsigned long old[1];
+	} mask;
 
-	sa.sa_handler = SIG_IGN;
-	sigemptyset(&sa.sa_mask);
-	sigaddset(&sa.sa_mask, SIGHUP);
-	sigaddset(&sa.sa_mask, SIGINT);
-	sa.sa_flags = SA_RESTART;
-	assert(!sigaction(SIGUSR2, &sa, &sa0));
+	TAIL_ALLOC_OBJECT_CONST_PTR(struct_set_sa, new_act);
+	TAIL_ALLOC_OBJECT_CONST_PTR(struct_get_sa, old_act);
 
-	sa.sa_handler = handle_signal;
-	sigemptyset(&sa.sa_mask);
-	sigaddset(&sa.sa_mask, SIGQUIT);
-	sigaddset(&sa.sa_mask, SIGTERM);
-	sa.sa_flags = SA_SIGINFO;
-	assert(!sigaction(SIGUSR2, &sa, &sa0));
+	if (k_sigaction(signo, 0, 0))
+		perror_msg_and_skip("sigaction");
+	puts("sigaction(" SIG_STR ", NULL, NULL) = 0");
 
-	sa.sa_handler = SIG_DFL;
-	sigemptyset(&sa.sa_mask);
-	sa.sa_flags = 0;
-	assert(!sigaction(SIGUSR2, &sa, &sa0));
+	k_sigaction(signo, 0, 0);
+	puts("sigaction(" SIG_STR ", NULL, NULL) = 0");
 
-	sigfillset(&sa.sa_mask);
-	sigdelset(&sa.sa_mask, SIGHUP);
-	assert(!sigaction(SIGUSR2, &sa, &sa0));
+	k_sigaction(signo, (uintptr_t) (new_act + 1), 0);
+	printf("sigaction(" SIG_STR ", %p, NULL) = -1 EFAULT (%m)\n",
+	       new_act + 1);
 
+	k_sigaction(signo, (uintptr_t) new_act + 2, 0);
+	printf("sigaction(" SIG_STR ", %#lx, NULL) = -1 EFAULT (%m)\n",
+	       (unsigned long) new_act + 2);
+
+	k_sigaction(signo, 0, (uintptr_t) (old_act + 1));
+	printf("sigaction(" SIG_STR ", NULL, %p) = -1 EFAULT (%m)\n",
+	       old_act + 1);
+
+	k_sigaction(signo, 0, (uintptr_t) old_act + 2);
+	printf("sigaction(" SIG_STR ", NULL, %#lx) = -1 EFAULT (%m)\n",
+	       (unsigned long) old_act + 2);
+
+	k_sigaction(addr, 0, 0);
+	printf("sigaction(%d, NULL, NULL) = -1 EINVAL (%m)\n", (int) addr);
+
+	memset(new_act, 0, sizeof(*new_act));
+
+	k_sigaction(signo, (uintptr_t) new_act, 0);
+	puts("sigaction(" SIG_STR ", {sa_handler=SIG_DFL, sa_mask=[]"
+	     ", sa_flags=0}, NULL) = 0");
+
+	sigemptyset(mask.libc);
+	sigaddset(mask.libc, SIGHUP);
+	sigaddset(mask.libc, SIGINT);
+
+	new_act->handler = (uintptr_t) SIG_IGN;
+	memcpy(new_act->mask, mask.old, sizeof(mask.old));
+	new_act->flags = SA_SIGINFO;
+
+	k_sigaction(signo, (uintptr_t) new_act, (uintptr_t) old_act);
+	puts("sigaction(" SIG_STR ", {sa_handler=SIG_IGN, sa_mask=[HUP INT]"
+	     ", sa_flags=SA_SIGINFO}, {sa_handler=SIG_DFL, sa_mask=[]"
+	     ", sa_flags=0}) = 0");
+
+	sigemptyset(mask.libc);
+	sigaddset(mask.libc, SIGQUIT);
+	sigaddset(mask.libc, SIGTERM);
+
+	new_act->handler = (unsigned long) addr;
+	memcpy(new_act->mask, mask.old, sizeof(mask.old));
+	new_act->flags = SA_ONSTACK | SA_RESTART;
+
+	k_sigaction(signo, (uintptr_t) new_act, (uintptr_t) old_act);
+	printf("sigaction(" SIG_STR ", {sa_handler=%#lx, sa_mask=[QUIT TERM]"
+	       ", sa_flags=SA_ONSTACK|SA_RESTART}, {sa_handler=SIG_IGN"
+	       ", sa_mask=[HUP INT], sa_flags=SA_SIGINFO}) = 0\n",
+	       new_act->handler);
+
+	memset(mask.old, -1, sizeof(mask.old));
+	sigdelset(mask.libc, SIGHUP);
+
+	memcpy(new_act->mask, mask.old, sizeof(mask.old));
+#ifdef SA_RESTORER
+	new_act->flags = SA_RESTORER;
+	new_act->restorer = (unsigned long) 0xdeadfacecafef00dULL;
+# define SA_RESTORER_FMT ", sa_flags=SA_RESTORER, sa_restorer=%#lx"
+# define SA_RESTORER_ARGS , new_act->restorer
+#else
+	new_act->flags = SA_NODEFER;
+# define SA_RESTORER_FMT ", sa_flags=SA_NODEFER"
+# define SA_RESTORER_ARGS
+#endif
+
+	k_sigaction(signo, (uintptr_t) new_act, (uintptr_t) old_act);
+	printf("sigaction(" SIG_STR ", {sa_handler=%#lx, sa_mask=~[HUP]"
+	       SA_RESTORER_FMT "}, {sa_handler=%#lx, sa_mask=[QUIT TERM]"
+	       ", sa_flags=SA_ONSTACK|SA_RESTART}) = 0\n",
+	       new_act->handler SA_RESTORER_ARGS,
+	       new_act->handler);
+
+	puts("+++ exited with 0 +++");
 	return 0;
 }
+
+#else
+
+SKIP_MAIN_UNDEFINED("__NR_sigaction")
+
+#endif
diff --git a/tests-mx32/sigaction.gen.test b/tests-mx32/sigaction.gen.test
new file mode 100755
index 0000000..dee340e
--- /dev/null
+++ b/tests-mx32/sigaction.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sigaction -a31); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a31
diff --git a/tests-mx32/signal.c b/tests-mx32/signal.c
new file mode 100644
index 0000000..edbc3d2
--- /dev/null
+++ b/tests-mx32/signal.c
@@ -0,0 +1,132 @@
+/*
+ * Check decoding of signal syscall.
+ *
+ * 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 "tests.h"
+#include <asm/unistd.h>
+
+#ifdef __NR_signal
+
+# include <errno.h>
+# include <signal.h>
+# include <stdio.h>
+# include <stdint.h>
+# include <string.h>
+# include <unistd.h>
+
+static long
+k_signal(const kernel_ulong_t signum, const kernel_ulong_t handler)
+{
+	return syscall(__NR_signal, signum, handler);
+}
+
+int
+main(void)
+{
+	static const uintptr_t sig_ign = (uintptr_t) SIG_IGN;
+	static const uintptr_t sig_dfl = (uintptr_t) SIG_DFL;
+	static const kernel_ulong_t sigusr1 =
+		(kernel_ulong_t) 0xfacefeed00000000ULL | SIGUSR1;
+	static const struct sigaction act = { .sa_handler = SIG_DFL };
+	long rc;
+
+	sigset_t mask;
+	sigemptyset(&mask);
+	sigaddset(&mask, SIGUSR1);
+	if (sigprocmask(SIG_BLOCK, &mask, NULL))
+		perror_msg_and_fail("sigprocmask SIG_BLOCK");
+
+	if (sigaction(SIGUSR1, &act, NULL))
+		perror_msg_and_fail("sigaction");
+
+	rc = k_signal(sigusr1, sig_ign);
+
+	if (rc == -1L) {
+		printf("signal(SIGUSR1, SIG_IGN) = %s\n", sprintrc(rc));
+	} else if (rc != (long) sig_dfl) {
+		error_msg_and_fail("signal(SIGUSR1, SIG_IGN) = %#lx\n", rc);
+	} else {
+		printf("signal(SIGUSR1, SIG_IGN) = %#lx (SIG_DFL)\n", rc);
+
+		/*
+		 * Raise and unblock SIGUSR1.
+		 * If signal syscall failed to set SIGUSR1 handler to SIG_IGN,
+		 * the process will be terminated by SIGUSR1.
+		 */
+		raise(SIGUSR1);
+		if (sigprocmask(SIG_UNBLOCK, &mask, NULL))
+			perror_msg_and_fail("sigprocmask SIG_UNBLOCK");
+
+		if (sigprocmask(SIG_BLOCK, &mask, NULL))
+			perror_msg_and_fail("sigprocmask SIG_BLOCK");
+	}
+
+	rc = k_signal(SIGUSR1, sig_dfl);
+
+	if (rc == -1L) {
+		printf("signal(SIGUSR1, SIG_DFL) = %s\n", sprintrc(rc));
+	} else if (rc != (long) sig_ign) {
+		error_msg_and_fail("signal(SIGUSR1, SIG_DFL) = %#lx\n", rc);
+	} else {
+		printf("signal(SIGUSR1, SIG_DFL) = %#lx (SIG_IGN)\n", rc);
+	}
+
+	const kernel_ulong_t addr = (kernel_ulong_t) 0xfacefeeddeadbeefULL;
+	rc = k_signal(SIGUSR1, addr);
+
+	if (rc == -1L) {
+		printf("signal(SIGUSR1, %#llx) = %s\n",
+		       (unsigned long long) addr, sprintrc(rc));
+	} else if (rc != (long) sig_dfl) {
+		error_msg_and_fail("signal(SIGUSR1, %#llx) = %#lx\n",
+				   (unsigned long long) addr, rc);
+	} else {
+		printf("signal(SIGUSR1, %#llx) = %#lx (SIG_DFL)\n",
+		       (unsigned long long) addr, rc);
+	}
+
+	rc = k_signal(SIGUSR1, sig_ign);
+
+	if (rc == -1L) {
+		printf("signal(SIGUSR1, SIG_IGN) = %s\n", sprintrc(rc));
+	} else {
+		printf("signal(SIGUSR1, SIG_IGN) = %#lx\n", rc);
+	}
+
+	rc = k_signal(addr, sig_ign);
+	printf("signal(%d, SIG_IGN) = %s\n", (int) addr, sprintrc(rc));
+
+	puts("+++ exited with 0 +++");
+	return 0;
+}
+
+#else
+
+SKIP_MAIN_UNDEFINED("__NR_signal")
+
+#endif
diff --git a/tests-mx32/signal.gen.test b/tests-mx32/signal.gen.test
new file mode 100755
index 0000000..81359ca
--- /dev/null
+++ b/tests-mx32/signal.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (signal -a25 -e signal=none -e trace='/^signal$'); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a25 -e signal=none -e trace='/^signal$'
diff --git a/tests-mx32/signal2name.c b/tests-mx32/signal2name.c
index e301f4e..73e93b2 100644
--- a/tests-mx32/signal2name.c
+++ b/tests-mx32/signal2name.c
@@ -50,6 +50,7 @@
 	CASE(SIGPWR);
 	CASE(SIGSTKFLT);
 #endif
-	default: perror_msg_and_fail("unknown signal number %d", sig);
+	default:
+		perror_msg_and_fail("unknown signal number %d", sig);
 	}
 }
diff --git a/tests-mx32/signal_receive.c b/tests-mx32/signal_receive.c
index 1c4293e..01c52e8 100644
--- a/tests-mx32/signal_receive.c
+++ b/tests-mx32/signal_receive.c
@@ -25,7 +25,7 @@
 	sigemptyset(&mask);
 
 	for (sig = 1; sig <= 31; sig++) {
-		if( sig != SIGKILL && sig != SIGSTOP) {
+		if (sig != SIGKILL && sig != SIGSTOP) {
 			sigaction(sig, &act, NULL);
 			sigaddset(&mask, sig);
 		}
@@ -33,7 +33,7 @@
 	sigprocmask(SIG_UNBLOCK, &mask, NULL);
 
 	for (sig = 1; sig <= 31; sig++) {
-		if(sig != SIGKILL && sig != SIGSTOP) {
+		if (sig != SIGKILL && sig != SIGSTOP) {
 			if (kill(pid, sig) != 0)
 				perror_msg_and_fail("kill: %d", sig);
 			sig_print(signal2name(sig), pid, uid);
diff --git a/tests-mx32/sigpending.c b/tests-mx32/sigpending.c
new file mode 100644
index 0000000..0ce4b21
--- /dev/null
+++ b/tests-mx32/sigpending.c
@@ -0,0 +1,106 @@
+/*
+ * Check decoding of sigpending syscall.
+ *
+ * Copyright (c) 2016-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 "tests.h"
+#include <asm/unistd.h>
+
+#ifdef __NR_sigpending
+
+# include <signal.h>
+# include <stdint.h>
+# include <stdio.h>
+# include <string.h>
+# include <unistd.h>
+
+static const char *errstr;
+
+static long
+k_sigpending(const kernel_ulong_t set)
+{
+	const long rc = syscall(__NR_sigpending, set);
+	errstr = sprintrc(rc);
+	return rc;
+}
+
+int
+main(void)
+{
+	TAIL_ALLOC_OBJECT_CONST_PTR(kernel_ulong_t, k_set);
+	TAIL_ALLOC_OBJECT_CONST_PTR(sigset_t, libc_set);
+
+	sigemptyset(libc_set);
+	if (sigprocmask(SIG_SETMASK, libc_set, NULL))
+		perror_msg_and_fail("sigprocmask");
+
+	if (k_sigpending((uintptr_t) libc_set))
+		perror_msg_and_skip("sigpending");
+	else
+		puts("sigpending([]) = 0");
+
+	k_sigpending((uintptr_t) k_set);
+	puts("sigpending([]) = 0");
+
+	k_sigpending((uintptr_t) (k_set + 1));
+	printf("sigpending(%p) = -1 EFAULT (%m)\n", k_set + 1);
+
+	uintptr_t efault = sizeof(*k_set) / 2 + (uintptr_t) k_set;
+	k_sigpending(efault);
+	printf("sigpending(%#jx) = -1 EFAULT (%m)\n", (uintmax_t) efault);
+
+	sigaddset(libc_set, SIGHUP);
+	if (sigprocmask(SIG_SETMASK, libc_set, NULL))
+		perror_msg_and_fail("sigprocmask");
+	raise(SIGHUP);
+
+	k_sigpending((uintptr_t) k_set);
+	puts("sigpending([HUP]) = 0");
+
+	sigaddset(libc_set, SIGINT);
+	if (sigprocmask(SIG_SETMASK, libc_set, NULL))
+		perror_msg_and_fail("sigprocmask");
+	raise(SIGINT);
+
+	k_sigpending((uintptr_t) k_set);
+	puts("sigpending([HUP INT]) = 0");
+
+	if (F8ILL_KULONG_SUPPORTED) {
+		k_sigpending(f8ill_ptr_to_kulong(k_set));
+		printf("sigpending(%#jx) = %s\n",
+		       (uintmax_t) f8ill_ptr_to_kulong(k_set), errstr);
+	}
+
+	puts("+++ exited with 0 +++");
+	return 0;
+}
+
+#else
+
+SKIP_MAIN_UNDEFINED("__NR_sigpending")
+
+#endif
diff --git a/tests-mx32/sigpending.gen.test b/tests-mx32/sigpending.gen.test
new file mode 100755
index 0000000..0f4259a
--- /dev/null
+++ b/tests-mx32/sigpending.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sigpending -a15); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a15
diff --git a/tests-mx32/sigprocmask.c b/tests-mx32/sigprocmask.c
new file mode 100644
index 0000000..92a34d7
--- /dev/null
+++ b/tests-mx32/sigprocmask.c
@@ -0,0 +1,151 @@
+/*
+ * Check decoding of sigprocmask syscall.
+ *
+ * Copyright (c) 2016-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 "tests.h"
+#include <asm/unistd.h>
+
+#ifdef __NR_sigprocmask
+
+# include <signal.h>
+# include <stdint.h>
+# include <stdio.h>
+# include <string.h>
+# include <unistd.h>
+
+static const char *errstr;
+
+static long
+k_sigprocmask(const kernel_ulong_t how, const kernel_ulong_t new_set,
+	      const kernel_ulong_t old_set)
+{
+	const long rc = syscall(__NR_sigprocmask, how, new_set, old_set);
+	errstr = sprintrc(rc);
+	return rc;
+}
+
+int
+main(void)
+{
+	static const kernel_ulong_t sig_block =
+		(kernel_ulong_t) 0xfacefeed00000000ULL | SIG_BLOCK;
+	static const kernel_ulong_t sig_unblock =
+		(kernel_ulong_t) 0xfacefeed00000000ULL | SIG_UNBLOCK;
+	static const kernel_ulong_t sig_setmask =
+		(kernel_ulong_t) 0xfacefeed00000000ULL | SIG_SETMASK;
+
+	if (k_sigprocmask(sig_setmask, 0, 0))
+		perror_msg_and_skip("sigprocmask");
+	puts("sigprocmask(SIG_SETMASK, NULL, NULL) = 0");
+
+	TAIL_ALLOC_OBJECT_CONST_PTR(kernel_ulong_t, new_set);
+	TAIL_ALLOC_OBJECT_CONST_PTR(kernel_ulong_t, old_set);
+	TAIL_ALLOC_OBJECT_CONST_PTR(sigset_t, libc_set);
+
+	memset(new_set, 0, sizeof(*new_set));
+	k_sigprocmask(sig_setmask, (uintptr_t) new_set, 0);
+	printf("sigprocmask(SIG_SETMASK, [], NULL) = %s\n", errstr);
+
+	k_sigprocmask(sig_unblock,
+		      (uintptr_t) (new_set - 1), (uintptr_t) old_set);
+	puts("sigprocmask(SIG_UNBLOCK, ~[], []) = 0");
+
+	if (F8ILL_KULONG_SUPPORTED) {
+		k_sigprocmask(sig_unblock, f8ill_ptr_to_kulong(new_set), 0);
+		printf("sigprocmask(SIG_UNBLOCK, %#jx, NULL) = %s\n",
+		       (uintmax_t) f8ill_ptr_to_kulong(new_set), errstr);
+
+		k_sigprocmask(sig_unblock, 0, f8ill_ptr_to_kulong(old_set));
+		printf("sigprocmask(SIG_UNBLOCK, NULL, %#jx) = %s\n",
+		       (uintmax_t) f8ill_ptr_to_kulong(old_set), errstr);
+	}
+
+	sigemptyset(libc_set);
+	sigaddset(libc_set, SIGHUP);
+	memcpy(new_set, libc_set, sizeof(*new_set));
+
+	k_sigprocmask(sig_block, (uintptr_t) new_set, (uintptr_t) old_set);
+	puts("sigprocmask(SIG_BLOCK, [HUP], []) = 0");
+
+	memset(libc_set, -1, sizeof(*libc_set));
+	sigdelset(libc_set, SIGHUP);
+	memcpy(new_set, libc_set, sizeof(*new_set));
+
+	k_sigprocmask(sig_unblock, (uintptr_t) new_set, (uintptr_t) old_set);
+	puts("sigprocmask(SIG_UNBLOCK, ~[HUP], [HUP]) = 0");
+
+	sigdelset(libc_set, SIGKILL);
+	memcpy(new_set, libc_set, sizeof(*new_set));
+
+	k_sigprocmask(sig_unblock, (uintptr_t) new_set, (uintptr_t) old_set);
+	puts("sigprocmask(SIG_UNBLOCK, ~[HUP KILL], [HUP]) = 0");
+
+	sigemptyset(libc_set);
+	sigaddset(libc_set, SIGHUP);
+	sigaddset(libc_set, SIGINT);
+	sigaddset(libc_set, SIGQUIT);
+	sigaddset(libc_set, SIGALRM);
+	sigaddset(libc_set, SIGTERM);
+	memcpy(new_set, libc_set, sizeof(*new_set));
+
+	k_sigprocmask(sig_block, (uintptr_t) new_set, (uintptr_t) old_set);
+	printf("sigprocmask(SIG_BLOCK, %s, [HUP]) = 0\n",
+	       "[HUP INT QUIT ALRM TERM]");
+
+	k_sigprocmask(sig_setmask, 0, (uintptr_t) old_set);
+	printf("sigprocmask(SIG_SETMASK, NULL, %s) = 0\n",
+	       "[HUP INT QUIT ALRM TERM]");
+
+	k_sigprocmask(sig_setmask, (uintptr_t) (new_set + 1), 0);
+	printf("sigprocmask(SIG_SETMASK, %p, NULL) = %s\n",
+	       new_set + 1, errstr);
+
+	k_sigprocmask(sig_setmask,
+		      (uintptr_t) new_set, (uintptr_t) (old_set + 1));
+	printf("sigprocmask(SIG_SETMASK, %s, %p) = %s\n",
+	       "[HUP INT QUIT ALRM TERM]", old_set + 1, errstr);
+
+	uintptr_t efault = sizeof(*new_set) / 2 + (uintptr_t) new_set;
+
+	k_sigprocmask(sig_setmask, efault, 0);
+	printf("sigprocmask(SIG_SETMASK, %#jx, NULL) = %s\n",
+	       (uintmax_t) efault, errstr);
+
+	k_sigprocmask(sig_setmask, 0, efault);
+	printf("sigprocmask(SIG_SETMASK, NULL, %#jx) = %s\n",
+	       (uintmax_t) efault, errstr);
+
+	puts("+++ exited with 0 +++");
+	return 0;
+}
+
+#else
+
+SKIP_MAIN_UNDEFINED("__NR_sigprocmask")
+
+#endif
diff --git a/tests-mx32/sigprocmask.gen.test b/tests-mx32/sigprocmask.gen.test
new file mode 100755
index 0000000..44a508c
--- /dev/null
+++ b/tests-mx32/sigprocmask.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sigprocmask -a34); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a34
diff --git a/tests-mx32/sockname.c b/tests-mx32/sockname.c
index 9bab8ed..5872671 100644
--- a/tests-mx32/sockname.c
+++ b/tests-mx32/sockname.c
@@ -42,9 +42,7 @@
 # error TEST_SYSCALL_NAME must be defined
 #endif
 
-#define TEST_SYSCALL_STR__(a) #a
-#define TEST_SYSCALL_STR_(a) TEST_SYSCALL_STR__(a)
-#define TEST_SYSCALL_STR TEST_SYSCALL_STR_(TEST_SYSCALL_NAME)
+#define TEST_SYSCALL_STR STRINGIFY_VAL(TEST_SYSCALL_NAME)
 #define TEST_SOCKET TEST_SYSCALL_STR ".socket"
 
 #ifdef TEST_SYSCALL_PREPARE
diff --git a/tests-mx32/stack-fcall.c b/tests-mx32/stack-fcall.c
index 134d54f..fc9ee5f 100644
--- a/tests-mx32/stack-fcall.c
+++ b/tests-mx32/stack-fcall.c
@@ -1,6 +1,6 @@
 int f0(int i);
 
-int main(int argc, char** argv)
+int main(int argc, char **argv)
 {
 	f0(argc);
 	return 0;
diff --git a/tests-mx32/statx.c b/tests-mx32/statx.c
index f36fb0e..816b7eb 100644
--- a/tests-mx32/statx.c
+++ b/tests-mx32/statx.c
@@ -49,7 +49,7 @@
 
 # define TEST_SYSCALL_INVOKE(sample, pst) \
 	syscall(__NR_statx, AT_FDCWD, sample, TEST_SYSCALL_STATX_FLAGS, \
-	        TEST_SYSCALL_STATX_MASK, pst)
+		TEST_SYSCALL_STATX_MASK, pst)
 # define PRINT_SYSCALL_HEADER(sample) \
 	do { \
 		int saved_errno = errno; \
diff --git a/tests-mx32/strace-V.test b/tests-mx32/strace-V.test
index d5c3ac0..8db1395 100755
--- a/tests-mx32/strace-V.test
+++ b/tests-mx32/strace-V.test
@@ -23,7 +23,7 @@
 
 cat > "$EXP" << __EOF__
 $(getval PACKAGE_NAME) -- version $(getval PACKAGE_VERSION)
-Copyright (C) 1991-${config_year} The strace developers <$(getval PACKAGE_URL)>.
+Copyright (c) 1991-${config_year} The strace developers <$(getval PACKAGE_URL)>.
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 __EOF__
diff --git a/tests-mx32/termsig.test b/tests-mx32/termsig.test
new file mode 100755
index 0000000..fd8852c
--- /dev/null
+++ b/tests-mx32/termsig.test
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# Check termination signal forwarding.
+
+. "${srcdir=.}/init.sh"
+
+run_expect_termsig="../run_expect_termsig 15"
+unblock_reset_raise="../unblock_reset_raise 15"
+
+run_prog $run_expect_termsig $unblock_reset_raise
+STRACE="$run_expect_termsig $STRACE"
+
+for i in 1 2 3 4; do
+	run_strace -I$i -enone -esignal=none $unblock_reset_raise
+done
diff --git a/tests-mx32/test_nlattr.h b/tests-mx32/test_nlattr.h
new file mode 100644
index 0000000..8cbb211
--- /dev/null
+++ b/tests-mx32/test_nlattr.h
@@ -0,0 +1,183 @@
+/*
+ * Copyright (c) 2017 The strace developers.
+ * 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 "tests.h"
+#include "print_fields.h"
+
+#include <stdio.h>
+#include <string.h>
+#include <sys/socket.h>
+#include "netlink.h"
+#include <linux/rtnetlink.h>
+
+static void
+init_nlattr(struct nlattr *const nla,
+	    const uint16_t nla_len,
+	    const uint16_t nla_type,
+	    const void *const src,
+	    const size_t n)
+{
+	SET_STRUCT(struct nlattr, nla,
+		.nla_len = nla_len,
+		.nla_type = nla_type,
+	);
+
+	memcpy(RTA_DATA(nla), src, n);
+}
+
+static void
+print_nlattr(const unsigned int nla_len, const char *const nla_type)
+{
+	printf(", {{nla_len=%u, nla_type=%s}, ", nla_len, nla_type);
+}
+
+#define TEST_NLATTR_(fd_, nlh0_, hdrlen_,				\
+		     init_msg_, print_msg_,				\
+		     nla_type_, nla_type_str_,				\
+		     nla_data_len_, src_, slen_, ...)			\
+	do {								\
+		struct nlmsghdr *const nlh =				\
+			(nlh0_) - (NLA_HDRLEN + (slen_));		\
+		struct nlattr *const nla = NLMSG_ATTR(nlh, (hdrlen_));	\
+		const unsigned int nla_len =				\
+			NLA_HDRLEN + (nla_data_len_);			\
+		const unsigned int msg_len =				\
+			NLMSG_SPACE(hdrlen_) + nla_len;			\
+									\
+		(init_msg_)(nlh, msg_len);				\
+		init_nlattr(nla, nla_len, (nla_type_),			\
+			   (src_), (slen_));				\
+									\
+		const char *const errstr =				\
+			sprintrc(sendto((fd_), nlh, msg_len,		\
+					MSG_DONTWAIT, NULL, 0));	\
+									\
+		printf("sendto(%d, {", (fd_));				\
+		(print_msg_)(msg_len);					\
+		print_nlattr(nla_len, (nla_type_str_));			\
+									\
+		{ __VA_ARGS__; }					\
+									\
+		printf("}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",		\
+		       msg_len, errstr);				\
+	} while (0)
+
+#define TEST_NLATTR(fd_, nlh0_, hdrlen_,				\
+		    init_msg_, print_msg_,				\
+		    nla_type_,						\
+		    nla_data_len_, src_, slen_, ...)			\
+	TEST_NLATTR_((fd_), (nlh0_), (hdrlen_),				\
+		(init_msg_), (print_msg_),				\
+		(nla_type_), #nla_type_,				\
+		(nla_data_len_), (src_), (slen_), __VA_ARGS__)
+
+#define TEST_NLATTR_OBJECT(fd_, nlh0_, hdrlen_,				\
+			   init_msg_, print_msg_,			\
+			   nla_type_, pattern_, obj_, ...)		\
+	do {								\
+		const int plen = sizeof(obj_) - 1 > DEFAULT_STRLEN	\
+			? DEFAULT_STRLEN : (int) sizeof(obj_) - 1;	\
+		/* len < sizeof(obj_) */				\
+		TEST_NLATTR_((fd_), (nlh0_), (hdrlen_),			\
+			(init_msg_), (print_msg_),			\
+			(nla_type_), #nla_type_,			\
+			sizeof(obj_) - 1,				\
+			(pattern_), sizeof(obj_) - 1,			\
+			printf("\"%.*s\"", plen, (pattern_)));		\
+		/* short read of sizeof(obj_) */			\
+		TEST_NLATTR_((fd_), (nlh0_), (hdrlen_),			\
+			(init_msg_), (print_msg_),			\
+			(nla_type_), #nla_type_,			\
+			sizeof(obj_),					\
+			(pattern_), sizeof(obj_) - 1,			\
+			printf("%p",					\
+			       RTA_DATA(NLMSG_ATTR(nlh, (hdrlen_)))));	\
+		/* sizeof(obj_) */					\
+		TEST_NLATTR_((fd_), (nlh0_), (hdrlen_),			\
+			(init_msg_), (print_msg_),			\
+			(nla_type_), #nla_type_,			\
+			sizeof(obj_),					\
+			&(obj_), sizeof(obj_),				\
+			__VA_ARGS__);					\
+	} while (0)
+
+#define TEST_NLATTR_ARRAY(fd_, nlh0_, hdrlen_,				\
+			  init_msg_, print_msg_,			\
+			  nla_type_, pattern_, obj_, print_elem_)	\
+	do {								\
+		const int plen =					\
+			sizeof((obj_)[0]) - 1 > DEFAULT_STRLEN		\
+			? DEFAULT_STRLEN : (int) sizeof((obj_)[0]) - 1;	\
+		/* len < sizeof((obj_)[0]) */				\
+		TEST_NLATTR_((fd_), (nlh0_), (hdrlen_),			\
+			(init_msg_), (print_msg_),			\
+			(nla_type_), #nla_type_,			\
+			sizeof((obj_)[0]) - 1,				\
+			(pattern_), sizeof((obj_)[0]) - 1,		\
+			printf("\"%.*s\"", plen, (pattern_)));		\
+		/* sizeof((obj_)[0]) < len < sizeof(obj_) */		\
+		TEST_NLATTR_((fd_), (nlh0_), (hdrlen_),			\
+			(init_msg_), (print_msg_),			\
+			(nla_type_), #nla_type_,			\
+			sizeof(obj_) - 1,				\
+			&(obj_), sizeof(obj_) - 1,			\
+			printf("[");					\
+			size_t i;					\
+			for (i = 0; i < ARRAY_SIZE(obj_) - 1; ++i) {	\
+				if (i) printf(", ");			\
+				(print_elem_)(&(obj_)[i]);		\
+			}						\
+			printf("]"));					\
+		/* short read of sizeof(obj_) */			\
+		TEST_NLATTR_((fd_), (nlh0_), (hdrlen_),			\
+			(init_msg_), (print_msg_),			\
+			(nla_type_), #nla_type_,			\
+			sizeof(obj_),					\
+			&(obj_), sizeof(obj_) - 1,			\
+			printf("[");					\
+			size_t i;					\
+			for (i = 0; i < ARRAY_SIZE(obj_) - 1; ++i) {	\
+				if (i) printf(", ");			\
+				(print_elem_)(&(obj_)[i]);		\
+			}						\
+			printf(", %p]",					\
+			       RTA_DATA(NLMSG_ATTR(nlh, (hdrlen_)))	\
+			        + sizeof((obj_)[0])));			\
+		/* sizeof(obj_) */					\
+		TEST_NLATTR_((fd_), (nlh0_), (hdrlen_),			\
+			(init_msg_), (print_msg_),			\
+			(nla_type_), #nla_type_,			\
+			sizeof(obj_),					\
+			&(obj_), sizeof(obj_),				\
+			printf("[");					\
+			size_t i;					\
+			for (i = 0; i < ARRAY_SIZE(obj_); ++i) {	\
+				if (i) printf(", ");			\
+				(print_elem_)(&(obj_)[i]);		\
+			}						\
+			printf("]"));					\
+	} while (0)
diff --git a/tests-mx32/tests.h b/tests-mx32/tests.h
index dcc1057..094f365 100644
--- a/tests-mx32/tests.h
+++ b/tests-mx32/tests.h
@@ -36,12 +36,26 @@
 # include <sys/types.h>
 # include "kernel_types.h"
 # include "gcc_compat.h"
+# include "macros.h"
+
+/*
+ * The printf-like function to use in header files
+ * shared between strace and its tests.
+ */
+#ifndef STRACE_PRINTF
+# define STRACE_PRINTF printf
+#endif
 
 /* Tests of "strace -v" are expected to define VERBOSE to 1. */
 #ifndef VERBOSE
 # define VERBOSE 0
 #endif
 
+#ifndef DEFAULT_STRLEN
+/* Default maximum # of bytes printed in printstr et al. */
+# define DEFAULT_STRLEN 32
+#endif
+
 /* Cached sysconf(_SC_PAGESIZE). */
 size_t get_page_size(void);
 
@@ -66,7 +80,7 @@
 
 /*
  * Allocate memory that ends on the page boundary.
- * Pages allocated by this call are preceeded by an unmapped page
+ * Pages allocated by this call are preceded by an unmapped page
  * and followed also by an unmapped page.
  */
 void *tail_alloc(const size_t)
@@ -167,6 +181,10 @@
 int recv_mmsg(int, struct mmsghdr *, unsigned int, unsigned int, struct timespec *);
 int send_mmsg(int, struct mmsghdr *, unsigned int, unsigned int);
 
+/* Create a netlink socket. */
+int create_nl_socket_ext(int proto, const char *name);
+#define create_nl_socket(proto)	create_nl_socket_ext((proto), #proto)
+
 /* Create a pipe with maximized descriptor numbers. */
 void pipe_maxfd(int pipefd[2]);
 
@@ -186,7 +204,6 @@
 	       ? F8ILL_KULONG_MASK | uptr : (kernel_ulong_t) uptr;
 }
 
-# define ARRAY_SIZE(arg) ((unsigned int) (sizeof(arg) / sizeof((arg)[0])))
 # define LENGTH_OF(arg) ((unsigned int) sizeof(arg) - 1)
 
 /* Zero-extend a signed integer type to unsigned long long. */
@@ -239,4 +256,16 @@
 # define ARG_STR(_arg) (_arg), #_arg
 # define ARG_ULL_STR(_arg) _arg##ULL, #_arg
 
+/*
+ * Assign an object of type DEST_TYPE at address DEST_ADDR
+ * using memcpy to avoid potential unaligned access.
+ */
+#define SET_STRUCT(DEST_TYPE, DEST_ADDR, ...)						\
+	do {										\
+		DEST_TYPE dest_type_tmp_var = { __VA_ARGS__ };				\
+		memcpy(DEST_ADDR, &dest_type_tmp_var, sizeof(dest_type_tmp_var));	\
+	} while (0)
+
+#define NLMSG_ATTR(nlh, hdrlen) ((void *)(nlh) + NLMSG_SPACE(hdrlen))
+
 #endif /* !STRACE_TESTS_H */
diff --git a/tests-mx32/times-fail.c b/tests-mx32/times-fail.c
index cb69bd4..bc8b459 100644
--- a/tests-mx32/times-fail.c
+++ b/tests-mx32/times-fail.c
@@ -5,7 +5,7 @@
 #include <asm/unistd.h>
 
 int
-main (void)
+main(void)
 {
 	assert(syscall(__NR_times, 0x42) == -1);
 	printf("times(0x42) = -1 EFAULT (%m)\n");
diff --git a/tests-mx32/times.c b/tests-mx32/times.c
index 2c7b95e..c4cce0e 100644
--- a/tests-mx32/times.c
+++ b/tests-mx32/times.c
@@ -49,7 +49,7 @@
 };
 
 int
-main (void)
+main(void)
 {
 	struct timespec ts;
 	volatile int dummy = 0;
diff --git a/tests-mx32/uio.c b/tests-mx32/uio.c
index 6291f97..21f005d 100644
--- a/tests-mx32/uio.c
+++ b/tests-mx32/uio.c
@@ -39,16 +39,16 @@
 {
 	const off_t offset = 0xdefaceddeadbeefLL;
 	char buf[4];
-	struct iovec iov = { buf, sizeof buf };
+	struct iovec iov = { buf, sizeof(buf) };
 
 	(void) close(0);
 	assert(open("/dev/zero", O_RDONLY) == 0);
-	assert(pread(0, buf, sizeof buf, offset) == 4);
+	assert(pread(0, buf, sizeof(buf), offset) == 4);
 	assert(preadv(0, &iov, 1, offset) == 4);
 	assert(!close(0));
 
 	assert(open("/dev/null", O_WRONLY) == 0);
-	assert(pwrite(0, buf, sizeof buf, offset) == 4);
+	assert(pwrite(0, buf, sizeof(buf), offset) == 4);
 	assert(pwritev(0, &iov, 1, offset) == 4);
 	assert(!close(0));
 
diff --git a/tests-mx32/unblock_reset_raise.c b/tests-mx32/unblock_reset_raise.c
new file mode 100644
index 0000000..4182f12
--- /dev/null
+++ b/tests-mx32/unblock_reset_raise.c
@@ -0,0 +1,54 @@
+/*
+ * Unblock, reset, and raise a signal.
+ *
+ * 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 "tests.h"
+#include <signal.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+int
+main(int ac, char **av)
+{
+	if (ac != 2)
+		error_msg_and_fail("usage: unblock_raise signo");
+
+	sigset_t mask;
+	sigemptyset(&mask);
+	const int signo = atoi(av[1]);
+	if (sigaddset(&mask, signo))
+		perror_msg_and_fail("sigaddset: %s", av[1]);
+	if (sigprocmask(SIG_UNBLOCK, &mask, NULL))
+		perror_msg_and_fail("sigprocmask");
+	if (signal(signo, SIG_DFL) == SIG_ERR)
+		perror_msg_and_fail("signal: %s", av[1]);
+	if (raise(signo))
+		perror_msg_and_fail("raise: %s", av[1]);
+
+	return 0;
+}
diff --git a/tests-mx32/unix-pair-sendto-recvfrom.c b/tests-mx32/unix-pair-sendto-recvfrom.c
index cea382c..a0c710a 100644
--- a/tests-mx32/unix-pair-sendto-recvfrom.c
+++ b/tests-mx32/unix-pair-sendto-recvfrom.c
@@ -71,7 +71,7 @@
 		assert(recvfrom(0, av[1], len, MSG_WAITALL, NULL, NULL) == len);
 		assert(close(0) == 0);
 
-                int status;
+		int status;
 		assert(waitpid(pid, &status, 0) == pid);
 		assert(status == 0);
 	} else {
diff --git a/tests-mx32/vmsplice.c b/tests-mx32/vmsplice.c
index f29962e..4242d9e 100644
--- a/tests-mx32/vmsplice.c
+++ b/tests-mx32/vmsplice.c
@@ -86,7 +86,7 @@
 		" * %u bytes in buffer 2\n"
 		" | 00000 %-49s  %-16s |\n",
 		w0_c, LENGTH_OF(w0_c), w1_c, LENGTH_OF(w1_c),
-		w2_c, LENGTH_OF(w2_c), ARRAY_SIZE(iov_),
+		w2_c, LENGTH_OF(w2_c), (unsigned int) ARRAY_SIZE(iov_),
 		"SPLICE_F_NONBLOCK", len,
 		LENGTH_OF(w0_c), w0_d, w0_c,
 		LENGTH_OF(w1_c), w1_d, w1_c, LENGTH_OF(w2_c), w2_d, w2_c);
diff --git a/tests-mx32/waitid.c b/tests-mx32/waitid.c
index b56feea..26f5b86 100644
--- a/tests-mx32/waitid.c
+++ b/tests-mx32/waitid.c
@@ -111,7 +111,8 @@
 #ifdef CLD_CONTINUED
 	CASE(CLD_CONTINUED);
 #endif
-	default: perror_msg_and_fail("unknown si_code %d", code);
+	default:
+		perror_msg_and_fail("unknown si_code %d", code);
 	}
 }
 
diff --git a/tests-mx32/xattr.c b/tests-mx32/xattr.c
index a772ece..03b4270 100644
--- a/tests-mx32/xattr.c
+++ b/tests-mx32/xattr.c
@@ -36,8 +36,6 @@
 #  define XATTR_SIZE_MAX 65536
 # endif
 
-#define DEFAULT_STRLEN 32
-
 int
 main(void)
 {
diff --git a/tests-mx32/xchownx.c b/tests-mx32/xchownx.c
index fe58283..e415fef 100644
--- a/tests-mx32/xchownx.c
+++ b/tests-mx32/xchownx.c
@@ -45,10 +45,17 @@
 # define CHECK_OVERFLOWGID(arg)
 #endif
 
-#define UNLINK_SAMPLE \
-	if (unlink(sample)) perror_msg_and_fail("unlink")
-#define CLOSE_SAMPLE \
-	if (close(fd)) perror_msg_and_fail("close")
+#define UNLINK_SAMPLE					\
+	do {						\
+		if (unlink(sample))			\
+			perror_msg_and_fail("unlink");	\
+	} while (0)
+
+#define CLOSE_SAMPLE					\
+	do {						\
+		if (close(fd))				\
+			perror_msg_and_fail("close");	\
+	} while (0)
 
 #ifdef ACCESS_BY_DESCRIPTOR
 # define SYSCALL_ARG1 fd
diff --git a/tests-mx32/xselect.c b/tests-mx32/xselect.c
index e1638c8..6c8cd81 100644
--- a/tests-mx32/xselect.c
+++ b/tests-mx32/xselect.c
@@ -136,7 +136,7 @@
 	 * but with a pointer to a large chunk of valid memory.
 	 */
 	FD_ZERO(set);
-	FD_SET(fds[1],set);
+	FD_SET(fds[1], set);
 	assert(syscall(TEST_SYSCALL_NR, -1, NULL, set, NULL, NULL) == -1);
 	printf("%s(-1, NULL, %p, NULL, NULL) = -1 EINVAL (%m)\n",
 	       TEST_SYSCALL_STR, set);
@@ -145,7 +145,7 @@
 	 * Another variant, with nfds exceeding FD_SETSIZE limit.
 	 */
 	FD_ZERO(set);
-	FD_SET(fds[0],set);
+	FD_SET(fds[0], set);
 	tv->tv_sec = 0;
 	tv->tv_usec = 123;
 	assert(syscall(TEST_SYSCALL_NR, FD_SETSIZE + 1, set, set + 1, NULL, tv) == 0);
diff --git a/tests-mx32/xstatfsx.c b/tests-mx32/xstatfsx.c
index cb524ff..33254dd 100644
--- a/tests-mx32/xstatfsx.c
+++ b/tests-mx32/xstatfsx.c
@@ -38,12 +38,17 @@
 #include "xlat/statfs_flags.h"
 
 #define PRINT_NUM(arg)							\
-	if (sizeof(b->arg) == sizeof(int))				\
-		printf(", %s=%u", #arg, (unsigned int) b->arg);		\
-	else if (sizeof(b->arg) == sizeof(long))				\
-		printf(", %s=%lu", #arg, (unsigned long) b->arg);	\
-	else								\
-		printf(", %s=%llu", #arg, (unsigned long long) b->arg)
+	do {								\
+		if (sizeof(b->arg) == sizeof(int))			\
+			printf(", %s=%u", #arg,				\
+			       (unsigned int) b->arg);			\
+		else if (sizeof(b->arg) == sizeof(long))		\
+			printf(", %s=%lu", #arg,			\
+			       (unsigned long) b->arg);			\
+		else							\
+			printf(", %s=%llu", #arg,			\
+			       (unsigned long long) b->arg);		\
+	} while (0)
 
 static void
 print_statfs_type(const char *const prefix, const unsigned int magic)
diff --git a/tests-mx32/xstatx.c b/tests-mx32/xstatx.c
index 8758ef8..7fb9326 100644
--- a/tests-mx32/xstatx.c
+++ b/tests-mx32/xstatx.c
@@ -48,6 +48,7 @@
 # include <unistd.h>
 # include <sys/sysmacros.h>
 
+# include "print_fields.h"
 # include "statx.h"
 
 # ifndef STRUCT_STAT
@@ -178,14 +179,16 @@
 #   define HAVE_NSEC		0
 #  endif
 
-#define PRINT_ST_TIME(field)						\
-	printf(", st_" #field "=%lld",					\
-	       sign_extend_unsigned_to_ll(st->st_ ## field));		\
-	print_time_t_nsec(sign_extend_unsigned_to_ll(st->st_ ## field),	\
-			  TIME_NSEC(st->st_ ## field ## _nsec), 1);	\
-	if (HAVE_NSEC)							\
-		printf(", st_" #field "_nsec=%llu",			\
-		       TIME_NSEC(st->st_ ## field ## _nsec))
+#define PRINT_ST_TIME(field)							\
+	do {									\
+		printf(", st_" #field "=%lld",					\
+		       sign_extend_unsigned_to_ll(st->st_ ## field));		\
+		print_time_t_nsec(sign_extend_unsigned_to_ll(st->st_ ## field),	\
+				  TIME_NSEC(st->st_ ## field ## _nsec), 1);	\
+		if (HAVE_NSEC)							\
+			printf(", st_" #field "_nsec=%llu",			\
+			       TIME_NSEC(st->st_ ## field ## _nsec));		\
+	} while (0)
 
 	PRINT_ST_TIME(atime);
 	PRINT_ST_TIME(mtime);
@@ -198,31 +201,34 @@
 static void
 print_stat(const STRUCT_STAT *st)
 {
-#  define PRINT_FIELD_U(field) \
-	printf(", %s=%llu", #field, (unsigned long long) st->field)
+#  define PRINT_FIELD_U32_UID(field)					\
+	do {								\
+		if (st->field == (uint32_t) -1)				\
+			printf(", %s=-1", #field);			\
+		else							\
+			printf(", %s=%llu", #field,			\
+			       (unsigned long long) st->field);		\
+	} while (0)
 
-#  define PRINT_FIELD_U32_UID(field) \
-	if (st->field == (uint32_t) -1) \
-		printf(", %s=-1", #field); \
-	else \
-		printf(", %s=%llu", #field, (unsigned long long) st->field)
-
-#  define PRINT_FIELD_TIME(field)					\
-	printf(", %s={tv_sec=%lld, tv_nsec=%u}",			\
-	       #field, (long long) st->field.tv_sec,			\
-	       (unsigned) st->field.tv_nsec);				\
-	print_time_t_nsec(st->field.tv_sec,				\
-			  zero_extend_signed_to_ull(st->field.tv_nsec), 1);
+#  define PRINT_FIELD_TIME(field)						\
+	do {									\
+		printf(", %s={tv_sec=%lld, tv_nsec=%u}",			\
+		       #field, (long long) st->field.tv_sec,			\
+		       (unsigned) st->field.tv_nsec);				\
+		print_time_t_nsec(st->field.tv_sec,				\
+				  zero_extend_signed_to_ull(st->field.tv_nsec),	\
+				  1);						\
+	} while (0)
 
 	printf("{stx_mask=");
 	printflags(statx_masks, st->stx_mask, "STATX_???");
 
-	PRINT_FIELD_U(stx_blksize);
+	PRINT_FIELD_U(", ", *st, stx_blksize);
 
 	printf(", stx_attributes=");
 	printflags(statx_attrs, st->stx_attributes, "STATX_ATTR_???");
 
-	PRINT_FIELD_U(stx_nlink);
+	PRINT_FIELD_U(", ", *st, stx_nlink);
 	PRINT_FIELD_U32_UID(stx_uid);
 	PRINT_FIELD_U32_UID(stx_gid);
 
@@ -231,9 +237,9 @@
 	printf("|");
 	print_perms(st->stx_mode);
 
-	PRINT_FIELD_U(stx_ino);
-	PRINT_FIELD_U(stx_size);
-	PRINT_FIELD_U(stx_blocks);
+	PRINT_FIELD_U(", ", *st, stx_ino);
+	PRINT_FIELD_U(", ", *st, stx_size);
+	PRINT_FIELD_U(", ", *st, stx_blocks);
 
 	printf(", stx_attributes_mask=");
 	printflags(statx_attrs, st->stx_attributes_mask, "STATX_ATTR_???");
@@ -242,10 +248,10 @@
 	PRINT_FIELD_TIME(stx_btime);
 	PRINT_FIELD_TIME(stx_ctime);
 	PRINT_FIELD_TIME(stx_mtime);
-	PRINT_FIELD_U(stx_rdev_major);
-	PRINT_FIELD_U(stx_rdev_minor);
-	PRINT_FIELD_U(stx_dev_major);
-	PRINT_FIELD_U(stx_dev_minor);
+	PRINT_FIELD_U(", ", *st, stx_rdev_major);
+	PRINT_FIELD_U(", ", *st, stx_rdev_minor);
+	PRINT_FIELD_U(", ", *st, stx_dev_major);
+	PRINT_FIELD_U(", ", *st, stx_dev_minor);
 	printf("}");
 }
 
@@ -388,24 +394,30 @@
 
 # if IS_STATX
 
-#  define INVOKE() \
-	rc = TEST_SYSCALL_INVOKE(sample, st); \
-	PRINT_SYSCALL_HEADER(sample); \
-	if (rc) \
-		printf("%p", st); \
-	else \
-		print_stat(st); \
-	PRINT_SYSCALL_FOOTER(rc)
+#  define INVOKE()					\
+	do {						\
+		rc = TEST_SYSCALL_INVOKE(sample, st);	\
+		PRINT_SYSCALL_HEADER(sample);		\
+		if (rc)					\
+			printf("%p", st);		\
+		else					\
+			print_stat(st);			\
+		PRINT_SYSCALL_FOOTER(rc);		\
+	} while (0)
 
-#  define SET_FLAGS_INVOKE(flags, flags_str) \
-	TEST_SYSCALL_STATX_FLAGS = flags; \
-	TEST_SYSCALL_STATX_FLAGS_STR = flags_str; \
-	INVOKE()
+#  define SET_FLAGS_INVOKE(flags, flags_str)			\
+	do {							\
+		TEST_SYSCALL_STATX_FLAGS = flags;		\
+		TEST_SYSCALL_STATX_FLAGS_STR = flags_str;	\
+		INVOKE();					\
+	} while (0)
 
-#  define SET_MASK_INVOKE(mask, mask_str) \
-	TEST_SYSCALL_STATX_MASK = mask; \
-	TEST_SYSCALL_STATX_MASK_STR = mask_str; \
-	INVOKE()
+#  define SET_MASK_INVOKE(mask, mask_str)			\
+	do {							\
+		TEST_SYSCALL_STATX_MASK = mask;			\
+		TEST_SYSCALL_STATX_MASK_STR = mask_str;		\
+		INVOKE();					\
+	} while (0)
 
 	unsigned old_flags = TEST_SYSCALL_STATX_FLAGS;
 	const char *old_flags_str = TEST_SYSCALL_STATX_FLAGS_STR;
diff --git a/tests-mx32/zeroargc.c b/tests-mx32/zeroargc.c
new file mode 100644
index 0000000..05d47dc
--- /dev/null
+++ b/tests-mx32/zeroargc.c
@@ -0,0 +1,43 @@
+/*
+ * Execute an executable with zero argc and specified anvironment.
+ *
+ * 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 "tests.h"
+#include <stdlib.h>
+#include <unistd.h>
+
+int
+main(const int ac, char **const av)
+{
+	if (ac < 2)
+		error_msg_and_fail("missing operand");
+	const char *const path = av[1];
+	av[1] = 0;
+	execve(path, av + 1, av + 2);
+	perror_msg_and_fail("execve: %s", path);
+}
diff --git a/tests/Makefile b/tests/Makefile
deleted file mode 100644
index f2071c4..0000000
--- a/tests/Makefile
+++ /dev/null
@@ -1,7114 +0,0 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
-# tests/Makefile.  Generated from Makefile.in by configure.
-
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
-
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-
-
-# Automake input for strace tests.
-#
-# Copyright (c) 2011-2016 Dmitry V. Levin <ldv@altlinux.org>
-# Copyright (c) 2011-2017 The strace developers.
-# 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.
-
-# scno.h make rules for strace.
-#
-# 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.
-
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \	]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/strace
-pkgincludedir = $(includedir)/strace
-pkglibdir = $(libdir)/strace
-pkglibexecdir = $(libexecdir)/strace
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = x86_64-pc-linux-gnu
-host_triplet = x86_64-pc-linux-gnu
-DIST_COMMON = $(srcdir)/pure_executables.am $(srcdir)/gen_tests.am \
-	$(srcdir)/../scno.am $(srcdir)/Makefile.in \
-	$(srcdir)/Makefile.am $(top_srcdir)/depcomp \
-	$(top_srcdir)/test-driver
-check_PROGRAMS = $(am__EXEEXT_1) answer$(EXEEXT) attach-f-p$(EXEEXT) \
-	attach-f-p-cmd$(EXEEXT) attach-p-cmd-cmd$(EXEEXT) \
-	attach-p-cmd-p$(EXEEXT) caps-abbrev$(EXEEXT) count-f$(EXEEXT) \
-	execve-v$(EXEEXT) execveat-v$(EXEEXT) \
-	filter-unavailable$(EXEEXT) fork-f$(EXEEXT) getpid$(EXEEXT) \
-	getppid$(EXEEXT) gettid$(EXEEXT) int_0x80$(EXEEXT) \
-	ioctl_dm-v$(EXEEXT) ioctl_evdev-v$(EXEEXT) \
-	ioctl_loop-nv$(EXEEXT) ioctl_loop-v$(EXEEXT) \
-	ioctl_nsfs$(EXEEXT) ioctl_rtc-v$(EXEEXT) ksysent$(EXEEXT) \
-	mmsg-silent$(EXEEXT) mmsg_name-v$(EXEEXT) \
-	msg_control-v$(EXEEXT) net-accept-connect$(EXEEXT) \
-	netlink_inet_diag$(EXEEXT) netlink_netlink_diag$(EXEEXT) \
-	netlink_unix_diag$(EXEEXT) nsyscalls$(EXEEXT) pc$(EXEEXT) \
-	perf_event_open_nonverbose$(EXEEXT) \
-	perf_event_open_unabbrev$(EXEEXT) ppoll-v$(EXEEXT) \
-	prctl-seccomp-filter-v$(EXEEXT) prctl-seccomp-strict$(EXEEXT) \
-	print_maxfd$(EXEEXT) qual_fault$(EXEEXT) \
-	qual_inject-error-signal$(EXEEXT) qual_inject-retval$(EXEEXT) \
-	qual_inject-signal$(EXEEXT) qual_signal$(EXEEXT) \
-	quotactl-v$(EXEEXT) quotactl-xfs-v$(EXEEXT) \
-	redirect-fds$(EXEEXT) restart_syscall$(EXEEXT) \
-	scm_rights$(EXEEXT) seccomp-filter-v$(EXEEXT) \
-	seccomp-strict$(EXEEXT) set_ptracer_any$(EXEEXT) \
-	signal_receive$(EXEEXT) sleep$(EXEEXT) stack-fcall$(EXEEXT) \
-	threads-execve$(EXEEXT) unix-pair-send-recv$(EXEEXT) \
-	unix-pair-sendto-recvfrom$(EXEEXT) vfork-f$(EXEEXT) \
-	wait4-v$(EXEEXT) waitid-v$(EXEEXT)
-TESTS = $(GEN_TESTS) $(DECODER_TESTS) $(MISC_TESTS) $(am__EXEEXT_2)
-subdir = tests
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/m4/ax_code_coverage.m4 \
-	$(top_srcdir)/m4/ax_prog_cc_for_build.m4 \
-	$(top_srcdir)/m4/ax_valgrind_check.m4 \
-	$(top_srcdir)/m4/mpers.m4 \
-	$(top_srcdir)/m4/st_save_restore_var.m4 \
-	$(top_srcdir)/m4/st_warn_cflags.m4 \
-	$(top_srcdir)/m4/warnings.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-AR = ar
-ARFLAGS = cru
-AM_V_AR = $(am__v_AR_$(V))
-am__v_AR_ = $(am__v_AR_$(AM_DEFAULT_VERBOSITY))
-am__v_AR_0 = @echo "  AR      " $@;
-am__v_AR_1 = 
-libtests_a_AR = $(AR) $(ARFLAGS)
-libtests_a_LIBADD =
-am_libtests_a_OBJECTS = libtests_a-errno2name.$(OBJEXT) \
-	libtests_a-error_msg.$(OBJEXT) \
-	libtests_a-fill_memory.$(OBJEXT) \
-	libtests_a-get_page_size.$(OBJEXT) \
-	libtests_a-get_sigset_size.$(OBJEXT) \
-	libtests_a-hexdump_strdup.$(OBJEXT) \
-	libtests_a-hexquote_strndup.$(OBJEXT) \
-	libtests_a-inode_of_sockfd.$(OBJEXT) \
-	libtests_a-libmmsg.$(OBJEXT) \
-	libtests_a-libsocketcall.$(OBJEXT) \
-	libtests_a-overflowuid.$(OBJEXT) \
-	libtests_a-pipe_maxfd.$(OBJEXT) \
-	libtests_a-print_quoted_string.$(OBJEXT) \
-	libtests_a-print_time.$(OBJEXT) \
-	libtests_a-printflags.$(OBJEXT) libtests_a-printxval.$(OBJEXT) \
-	libtests_a-signal2name.$(OBJEXT) \
-	libtests_a-skip_unavailable.$(OBJEXT) \
-	libtests_a-sprintrc.$(OBJEXT) libtests_a-tail_alloc.$(OBJEXT) \
-	libtests_a-tprintf.$(OBJEXT)
-libtests_a_OBJECTS = $(am_libtests_a_OBJECTS)
-am__EXEEXT_1 = _newselect$(EXEEXT) accept$(EXEEXT) accept4$(EXEEXT) \
-	access$(EXEEXT) acct$(EXEEXT) add_key$(EXEEXT) \
-	adjtimex$(EXEEXT) aio$(EXEEXT) alarm$(EXEEXT) bpf$(EXEEXT) \
-	brk$(EXEEXT) btrfs$(EXEEXT) caps$(EXEEXT) chmod$(EXEEXT) \
-	chown$(EXEEXT) chown32$(EXEEXT) chroot$(EXEEXT) \
-	clock_adjtime$(EXEEXT) clock_nanosleep$(EXEEXT) \
-	clock_xettime$(EXEEXT) copy_file_range$(EXEEXT) creat$(EXEEXT) \
-	delete_module$(EXEEXT) dup$(EXEEXT) dup2$(EXEEXT) \
-	dup3$(EXEEXT) epoll_create$(EXEEXT) epoll_create1$(EXEEXT) \
-	epoll_ctl$(EXEEXT) epoll_pwait$(EXEEXT) epoll_wait$(EXEEXT) \
-	erestartsys$(EXEEXT) eventfd$(EXEEXT) execve$(EXEEXT) \
-	execveat$(EXEEXT) faccessat$(EXEEXT) fadvise64$(EXEEXT) \
-	fadvise64_64$(EXEEXT) fallocate$(EXEEXT) \
-	fanotify_init$(EXEEXT) fanotify_mark$(EXEEXT) fchdir$(EXEEXT) \
-	fchmod$(EXEEXT) fchmodat$(EXEEXT) fchown$(EXEEXT) \
-	fchown32$(EXEEXT) fchownat$(EXEEXT) fcntl$(EXEEXT) \
-	fcntl64$(EXEEXT) fdatasync$(EXEEXT) file_handle$(EXEEXT) \
-	file_ioctl$(EXEEXT) finit_module$(EXEEXT) flock$(EXEEXT) \
-	fstat$(EXEEXT) fstat64$(EXEEXT) fstatat64$(EXEEXT) \
-	fstatfs$(EXEEXT) fstatfs64$(EXEEXT) fsync$(EXEEXT) \
-	ftruncate$(EXEEXT) ftruncate64$(EXEEXT) futex$(EXEEXT) \
-	futimesat$(EXEEXT) get_mempolicy$(EXEEXT) getcpu$(EXEEXT) \
-	getcwd$(EXEEXT) getdents$(EXEEXT) getdents64$(EXEEXT) \
-	getegid$(EXEEXT) getegid32$(EXEEXT) geteuid$(EXEEXT) \
-	geteuid32$(EXEEXT) getgid$(EXEEXT) getgid32$(EXEEXT) \
-	getgroups$(EXEEXT) getgroups32$(EXEEXT) getpeername$(EXEEXT) \
-	getpgrp$(EXEEXT) getpid$(EXEEXT) getppid$(EXEEXT) \
-	getrandom$(EXEEXT) getresgid$(EXEEXT) getresgid32$(EXEEXT) \
-	getresuid$(EXEEXT) getresuid32$(EXEEXT) getrlimit$(EXEEXT) \
-	getrusage$(EXEEXT) getsid$(EXEEXT) getsockname$(EXEEXT) \
-	getuid$(EXEEXT) getuid32$(EXEEXT) getxxid$(EXEEXT) \
-	inet-cmsg$(EXEEXT) init_module$(EXEEXT) inotify$(EXEEXT) \
-	inotify_init1$(EXEEXT) ioctl$(EXEEXT) ioctl_block$(EXEEXT) \
-	ioctl_dm$(EXEEXT) ioctl_evdev$(EXEEXT) ioctl_loop$(EXEEXT) \
-	ioctl_mtd$(EXEEXT) ioctl_rtc$(EXEEXT) ioctl_scsi$(EXEEXT) \
-	ioctl_sg_io_v3$(EXEEXT) ioctl_sg_io_v4$(EXEEXT) \
-	ioctl_sock_gifconf$(EXEEXT) ioctl_uffdio$(EXEEXT) \
-	ioctl_v4l2$(EXEEXT) ioperm$(EXEEXT) iopl$(EXEEXT) \
-	ioprio$(EXEEXT) ip_mreq$(EXEEXT) ipc$(EXEEXT) ipc_msg$(EXEEXT) \
-	ipc_msgbuf$(EXEEXT) ipc_sem$(EXEEXT) ipc_shm$(EXEEXT) \
-	kcmp$(EXEEXT) kexec_file_load$(EXEEXT) kexec_load$(EXEEXT) \
-	keyctl$(EXEEXT) kill$(EXEEXT) lchown$(EXEEXT) \
-	lchown32$(EXEEXT) link$(EXEEXT) linkat$(EXEEXT) \
-	llseek$(EXEEXT) lookup_dcookie$(EXEEXT) lseek$(EXEEXT) \
-	lstat$(EXEEXT) lstat64$(EXEEXT) madvise$(EXEEXT) \
-	mbind$(EXEEXT) membarrier$(EXEEXT) memfd_create$(EXEEXT) \
-	migrate_pages$(EXEEXT) mincore$(EXEEXT) mkdir$(EXEEXT) \
-	mkdirat$(EXEEXT) mknod$(EXEEXT) mknodat$(EXEEXT) \
-	mlock$(EXEEXT) mlock2$(EXEEXT) mlockall$(EXEEXT) mmap$(EXEEXT) \
-	mmap64$(EXEEXT) mmsg$(EXEEXT) mmsg_name$(EXEEXT) \
-	mount$(EXEEXT) move_pages$(EXEEXT) mq$(EXEEXT) \
-	mq_sendrecv$(EXEEXT) mq_sendrecv-read$(EXEEXT) \
-	mq_sendrecv-write$(EXEEXT) msg_control$(EXEEXT) \
-	msg_name$(EXEEXT) munlockall$(EXEEXT) nanosleep$(EXEEXT) \
-	net-icmp_filter$(EXEEXT) net-sockaddr$(EXEEXT) \
-	net-y-unix$(EXEEXT) net-yy-inet$(EXEEXT) \
-	net-yy-netlink$(EXEEXT) net-yy-unix$(EXEEXT) \
-	netlink_protocol$(EXEEXT) newfstatat$(EXEEXT) \
-	old_mmap$(EXEEXT) oldfstat$(EXEEXT) oldlstat$(EXEEXT) \
-	oldselect$(EXEEXT) oldstat$(EXEEXT) open$(EXEEXT) \
-	openat$(EXEEXT) osf_utimes$(EXEEXT) pause$(EXEEXT) \
-	perf_event_open$(EXEEXT) personality$(EXEEXT) pipe$(EXEEXT) \
-	pipe2$(EXEEXT) pkey_alloc$(EXEEXT) pkey_free$(EXEEXT) \
-	pkey_mprotect$(EXEEXT) poll$(EXEEXT) ppoll$(EXEEXT) \
-	prctl-arg2-intptr$(EXEEXT) prctl-dumpable$(EXEEXT) \
-	prctl-name$(EXEEXT) prctl-no-args$(EXEEXT) \
-	prctl-pdeathsig$(EXEEXT) prctl-securebits$(EXEEXT) \
-	prctl-tid_address$(EXEEXT) prctl-tsc$(EXEEXT) \
-	pread64-pwrite64$(EXEEXT) preadv$(EXEEXT) \
-	preadv-pwritev$(EXEEXT) preadv2-pwritev2$(EXEEXT) \
-	printstr$(EXEEXT) prlimit64$(EXEEXT) process_vm_readv$(EXEEXT) \
-	process_vm_writev$(EXEEXT) pselect6$(EXEEXT) ptrace$(EXEEXT) \
-	pwritev$(EXEEXT) quotactl$(EXEEXT) quotactl-xfs$(EXEEXT) \
-	read-write$(EXEEXT) readahead$(EXEEXT) readdir$(EXEEXT) \
-	readlink$(EXEEXT) readlinkat$(EXEEXT) readv$(EXEEXT) \
-	reboot$(EXEEXT) recvfrom$(EXEEXT) recvmmsg-timeout$(EXEEXT) \
-	recvmsg$(EXEEXT) remap_file_pages$(EXEEXT) rename$(EXEEXT) \
-	renameat$(EXEEXT) renameat2$(EXEEXT) request_key$(EXEEXT) \
-	rmdir$(EXEEXT) rt_sigpending$(EXEEXT) rt_sigprocmask$(EXEEXT) \
-	rt_sigqueueinfo$(EXEEXT) rt_sigreturn$(EXEEXT) \
-	rt_sigsuspend$(EXEEXT) rt_sigtimedwait$(EXEEXT) \
-	rt_tgsigqueueinfo$(EXEEXT) sched_get_priority_mxx$(EXEEXT) \
-	sched_rr_get_interval$(EXEEXT) sched_xetaffinity$(EXEEXT) \
-	sched_xetattr$(EXEEXT) sched_xetparam$(EXEEXT) \
-	sched_xetscheduler$(EXEEXT) sched_yield$(EXEEXT) \
-	seccomp-filter$(EXEEXT) select$(EXEEXT) semop$(EXEEXT) \
-	sendfile$(EXEEXT) sendfile64$(EXEEXT) set_mempolicy$(EXEEXT) \
-	setdomainname$(EXEEXT) setfsgid$(EXEEXT) setfsgid32$(EXEEXT) \
-	setfsuid$(EXEEXT) setfsuid32$(EXEEXT) setgid$(EXEEXT) \
-	setgid32$(EXEEXT) setgroups$(EXEEXT) setgroups32$(EXEEXT) \
-	sethostname$(EXEEXT) setns$(EXEEXT) setregid$(EXEEXT) \
-	setregid32$(EXEEXT) setresgid$(EXEEXT) setresgid32$(EXEEXT) \
-	setresuid$(EXEEXT) setresuid32$(EXEEXT) setreuid$(EXEEXT) \
-	setreuid32$(EXEEXT) setrlimit$(EXEEXT) setuid$(EXEEXT) \
-	setuid32$(EXEEXT) shmxt$(EXEEXT) shutdown$(EXEEXT) \
-	sigaction$(EXEEXT) sigaltstack$(EXEEXT) siginfo$(EXEEXT) \
-	signalfd4$(EXEEXT) sigreturn$(EXEEXT) sigsuspend$(EXEEXT) \
-	socketcall$(EXEEXT) splice$(EXEEXT) stat$(EXEEXT) \
-	stat64$(EXEEXT) statfs$(EXEEXT) statfs64$(EXEEXT) \
-	statx$(EXEEXT) swap$(EXEEXT) sxetmask$(EXEEXT) \
-	symlink$(EXEEXT) symlinkat$(EXEEXT) sync$(EXEEXT) \
-	sync_file_range$(EXEEXT) sync_file_range2$(EXEEXT) \
-	sysinfo$(EXEEXT) syslog$(EXEEXT) tee$(EXEEXT) time$(EXEEXT) \
-	timer_create$(EXEEXT) timer_xettime$(EXEEXT) \
-	timerfd_xettime$(EXEEXT) times$(EXEEXT) times-fail$(EXEEXT) \
-	truncate$(EXEEXT) truncate64$(EXEEXT) ugetrlimit$(EXEEXT) \
-	uio$(EXEEXT) umask$(EXEEXT) umount$(EXEEXT) umount2$(EXEEXT) \
-	umoven-illptr$(EXEEXT) umovestr$(EXEEXT) \
-	umovestr-illptr$(EXEEXT) umovestr2$(EXEEXT) umovestr3$(EXEEXT) \
-	uname$(EXEEXT) unlink$(EXEEXT) unlinkat$(EXEEXT) \
-	unshare$(EXEEXT) userfaultfd$(EXEEXT) ustat$(EXEEXT) \
-	utime$(EXEEXT) utimensat$(EXEEXT) utimes$(EXEEXT) \
-	vhangup$(EXEEXT) vmsplice$(EXEEXT) wait4$(EXEEXT) \
-	waitid$(EXEEXT) waitpid$(EXEEXT) xattr$(EXEEXT) \
-	xattr-strings$(EXEEXT) xet_robust_list$(EXEEXT) \
-	xetitimer$(EXEEXT) xetpgid$(EXEEXT) xetpriority$(EXEEXT) \
-	xettimeofday$(EXEEXT)
-_newselect_SOURCES = _newselect.c
-_newselect_OBJECTS = _newselect.$(OBJEXT)
-_newselect_LDADD = $(LDADD)
-_newselect_DEPENDENCIES = libtests.a
-accept_SOURCES = accept.c
-accept_OBJECTS = accept.$(OBJEXT)
-accept_LDADD = $(LDADD)
-accept_DEPENDENCIES = libtests.a
-accept4_SOURCES = accept4.c
-accept4_OBJECTS = accept4.$(OBJEXT)
-accept4_LDADD = $(LDADD)
-accept4_DEPENDENCIES = libtests.a
-access_SOURCES = access.c
-access_OBJECTS = access.$(OBJEXT)
-access_LDADD = $(LDADD)
-access_DEPENDENCIES = libtests.a
-acct_SOURCES = acct.c
-acct_OBJECTS = acct.$(OBJEXT)
-acct_LDADD = $(LDADD)
-acct_DEPENDENCIES = libtests.a
-add_key_SOURCES = add_key.c
-add_key_OBJECTS = add_key.$(OBJEXT)
-add_key_LDADD = $(LDADD)
-add_key_DEPENDENCIES = libtests.a
-adjtimex_SOURCES = adjtimex.c
-adjtimex_OBJECTS = adjtimex.$(OBJEXT)
-adjtimex_LDADD = $(LDADD)
-adjtimex_DEPENDENCIES = libtests.a
-aio_SOURCES = aio.c
-aio_OBJECTS = aio.$(OBJEXT)
-aio_LDADD = $(LDADD)
-aio_DEPENDENCIES = libtests.a
-alarm_SOURCES = alarm.c
-alarm_OBJECTS = alarm.$(OBJEXT)
-alarm_LDADD = $(LDADD)
-alarm_DEPENDENCIES = libtests.a
-answer_SOURCES = answer.c
-answer_OBJECTS = answer.$(OBJEXT)
-answer_LDADD = $(LDADD)
-answer_DEPENDENCIES = libtests.a
-attach_f_p_SOURCES = attach-f-p.c
-attach_f_p_OBJECTS = attach-f-p.$(OBJEXT)
-attach_f_p_DEPENDENCIES = $(LDADD)
-attach_f_p_cmd_SOURCES = attach-f-p-cmd.c
-attach_f_p_cmd_OBJECTS = attach-f-p-cmd.$(OBJEXT)
-attach_f_p_cmd_LDADD = $(LDADD)
-attach_f_p_cmd_DEPENDENCIES = libtests.a
-attach_p_cmd_cmd_SOURCES = attach-p-cmd-cmd.c
-attach_p_cmd_cmd_OBJECTS = attach-p-cmd-cmd.$(OBJEXT)
-attach_p_cmd_cmd_LDADD = $(LDADD)
-attach_p_cmd_cmd_DEPENDENCIES = libtests.a
-attach_p_cmd_p_SOURCES = attach-p-cmd-p.c
-attach_p_cmd_p_OBJECTS = attach-p-cmd-p.$(OBJEXT)
-attach_p_cmd_p_LDADD = $(LDADD)
-attach_p_cmd_p_DEPENDENCIES = libtests.a
-bpf_SOURCES = bpf.c
-bpf_OBJECTS = bpf.$(OBJEXT)
-bpf_LDADD = $(LDADD)
-bpf_DEPENDENCIES = libtests.a
-brk_SOURCES = brk.c
-brk_OBJECTS = brk.$(OBJEXT)
-brk_LDADD = $(LDADD)
-brk_DEPENDENCIES = libtests.a
-btrfs_SOURCES = btrfs.c
-btrfs_OBJECTS = btrfs.$(OBJEXT)
-btrfs_LDADD = $(LDADD)
-btrfs_DEPENDENCIES = libtests.a
-caps_SOURCES = caps.c
-caps_OBJECTS = caps.$(OBJEXT)
-caps_LDADD = $(LDADD)
-caps_DEPENDENCIES = libtests.a
-caps_abbrev_SOURCES = caps-abbrev.c
-caps_abbrev_OBJECTS = caps-abbrev.$(OBJEXT)
-caps_abbrev_LDADD = $(LDADD)
-caps_abbrev_DEPENDENCIES = libtests.a
-chmod_SOURCES = chmod.c
-chmod_OBJECTS = chmod.$(OBJEXT)
-chmod_LDADD = $(LDADD)
-chmod_DEPENDENCIES = libtests.a
-chown_SOURCES = chown.c
-chown_OBJECTS = chown.$(OBJEXT)
-chown_LDADD = $(LDADD)
-chown_DEPENDENCIES = libtests.a
-chown32_SOURCES = chown32.c
-chown32_OBJECTS = chown32.$(OBJEXT)
-chown32_LDADD = $(LDADD)
-chown32_DEPENDENCIES = libtests.a
-chroot_SOURCES = chroot.c
-chroot_OBJECTS = chroot.$(OBJEXT)
-chroot_LDADD = $(LDADD)
-chroot_DEPENDENCIES = libtests.a
-clock_adjtime_SOURCES = clock_adjtime.c
-clock_adjtime_OBJECTS = clock_adjtime.$(OBJEXT)
-clock_adjtime_LDADD = $(LDADD)
-clock_adjtime_DEPENDENCIES = libtests.a
-clock_nanosleep_SOURCES = clock_nanosleep.c
-clock_nanosleep_OBJECTS = clock_nanosleep.$(OBJEXT)
-clock_nanosleep_LDADD = $(LDADD)
-clock_nanosleep_DEPENDENCIES = libtests.a
-clock_xettime_SOURCES = clock_xettime.c
-clock_xettime_OBJECTS = clock_xettime.$(OBJEXT)
-clock_xettime_DEPENDENCIES = $(LDADD)
-copy_file_range_SOURCES = copy_file_range.c
-copy_file_range_OBJECTS = copy_file_range.$(OBJEXT)
-copy_file_range_LDADD = $(LDADD)
-copy_file_range_DEPENDENCIES = libtests.a
-count_f_SOURCES = count-f.c
-count_f_OBJECTS = count-f.$(OBJEXT)
-count_f_DEPENDENCIES = $(LDADD)
-creat_SOURCES = creat.c
-creat_OBJECTS = creat.$(OBJEXT)
-creat_LDADD = $(LDADD)
-creat_DEPENDENCIES = libtests.a
-delete_module_SOURCES = delete_module.c
-delete_module_OBJECTS = delete_module.$(OBJEXT)
-delete_module_LDADD = $(LDADD)
-delete_module_DEPENDENCIES = libtests.a
-dup_SOURCES = dup.c
-dup_OBJECTS = dup.$(OBJEXT)
-dup_LDADD = $(LDADD)
-dup_DEPENDENCIES = libtests.a
-dup2_SOURCES = dup2.c
-dup2_OBJECTS = dup2.$(OBJEXT)
-dup2_LDADD = $(LDADD)
-dup2_DEPENDENCIES = libtests.a
-dup3_SOURCES = dup3.c
-dup3_OBJECTS = dup3.$(OBJEXT)
-dup3_LDADD = $(LDADD)
-dup3_DEPENDENCIES = libtests.a
-epoll_create_SOURCES = epoll_create.c
-epoll_create_OBJECTS = epoll_create.$(OBJEXT)
-epoll_create_LDADD = $(LDADD)
-epoll_create_DEPENDENCIES = libtests.a
-epoll_create1_SOURCES = epoll_create1.c
-epoll_create1_OBJECTS = epoll_create1.$(OBJEXT)
-epoll_create1_LDADD = $(LDADD)
-epoll_create1_DEPENDENCIES = libtests.a
-epoll_ctl_SOURCES = epoll_ctl.c
-epoll_ctl_OBJECTS = epoll_ctl.$(OBJEXT)
-epoll_ctl_LDADD = $(LDADD)
-epoll_ctl_DEPENDENCIES = libtests.a
-epoll_pwait_SOURCES = epoll_pwait.c
-epoll_pwait_OBJECTS = epoll_pwait.$(OBJEXT)
-epoll_pwait_LDADD = $(LDADD)
-epoll_pwait_DEPENDENCIES = libtests.a
-epoll_wait_SOURCES = epoll_wait.c
-epoll_wait_OBJECTS = epoll_wait.$(OBJEXT)
-epoll_wait_LDADD = $(LDADD)
-epoll_wait_DEPENDENCIES = libtests.a
-erestartsys_SOURCES = erestartsys.c
-erestartsys_OBJECTS = erestartsys.$(OBJEXT)
-erestartsys_LDADD = $(LDADD)
-erestartsys_DEPENDENCIES = libtests.a
-eventfd_SOURCES = eventfd.c
-eventfd_OBJECTS = eventfd.$(OBJEXT)
-eventfd_LDADD = $(LDADD)
-eventfd_DEPENDENCIES = libtests.a
-execve_SOURCES = execve.c
-execve_OBJECTS = execve.$(OBJEXT)
-execve_LDADD = $(LDADD)
-execve_DEPENDENCIES = libtests.a
-execve_v_SOURCES = execve-v.c
-execve_v_OBJECTS = execve-v.$(OBJEXT)
-execve_v_LDADD = $(LDADD)
-execve_v_DEPENDENCIES = libtests.a
-execveat_SOURCES = execveat.c
-execveat_OBJECTS = execveat.$(OBJEXT)
-execveat_LDADD = $(LDADD)
-execveat_DEPENDENCIES = libtests.a
-execveat_v_SOURCES = execveat-v.c
-execveat_v_OBJECTS = execveat-v.$(OBJEXT)
-execveat_v_LDADD = $(LDADD)
-execveat_v_DEPENDENCIES = libtests.a
-faccessat_SOURCES = faccessat.c
-faccessat_OBJECTS = faccessat.$(OBJEXT)
-faccessat_LDADD = $(LDADD)
-faccessat_DEPENDENCIES = libtests.a
-fadvise64_SOURCES = fadvise64.c
-fadvise64_OBJECTS = fadvise64.$(OBJEXT)
-fadvise64_LDADD = $(LDADD)
-fadvise64_DEPENDENCIES = libtests.a
-fadvise64_64_SOURCES = fadvise64_64.c
-fadvise64_64_OBJECTS = fadvise64_64.$(OBJEXT)
-fadvise64_64_LDADD = $(LDADD)
-fadvise64_64_DEPENDENCIES = libtests.a
-fallocate_SOURCES = fallocate.c
-fallocate_OBJECTS = fallocate.$(OBJEXT)
-fallocate_LDADD = $(LDADD)
-fallocate_DEPENDENCIES = libtests.a
-fanotify_init_SOURCES = fanotify_init.c
-fanotify_init_OBJECTS = fanotify_init.$(OBJEXT)
-fanotify_init_LDADD = $(LDADD)
-fanotify_init_DEPENDENCIES = libtests.a
-fanotify_mark_SOURCES = fanotify_mark.c
-fanotify_mark_OBJECTS = fanotify_mark.$(OBJEXT)
-fanotify_mark_LDADD = $(LDADD)
-fanotify_mark_DEPENDENCIES = libtests.a
-fchdir_SOURCES = fchdir.c
-fchdir_OBJECTS = fchdir.$(OBJEXT)
-fchdir_LDADD = $(LDADD)
-fchdir_DEPENDENCIES = libtests.a
-fchmod_SOURCES = fchmod.c
-fchmod_OBJECTS = fchmod.$(OBJEXT)
-fchmod_LDADD = $(LDADD)
-fchmod_DEPENDENCIES = libtests.a
-fchmodat_SOURCES = fchmodat.c
-fchmodat_OBJECTS = fchmodat.$(OBJEXT)
-fchmodat_LDADD = $(LDADD)
-fchmodat_DEPENDENCIES = libtests.a
-fchown_SOURCES = fchown.c
-fchown_OBJECTS = fchown.$(OBJEXT)
-fchown_LDADD = $(LDADD)
-fchown_DEPENDENCIES = libtests.a
-fchown32_SOURCES = fchown32.c
-fchown32_OBJECTS = fchown32.$(OBJEXT)
-fchown32_LDADD = $(LDADD)
-fchown32_DEPENDENCIES = libtests.a
-fchownat_SOURCES = fchownat.c
-fchownat_OBJECTS = fchownat.$(OBJEXT)
-fchownat_LDADD = $(LDADD)
-fchownat_DEPENDENCIES = libtests.a
-fcntl_SOURCES = fcntl.c
-fcntl_OBJECTS = fcntl.$(OBJEXT)
-fcntl_LDADD = $(LDADD)
-fcntl_DEPENDENCIES = libtests.a
-fcntl64_SOURCES = fcntl64.c
-fcntl64_OBJECTS = fcntl64.$(OBJEXT)
-fcntl64_LDADD = $(LDADD)
-fcntl64_DEPENDENCIES = libtests.a
-fdatasync_SOURCES = fdatasync.c
-fdatasync_OBJECTS = fdatasync.$(OBJEXT)
-fdatasync_LDADD = $(LDADD)
-fdatasync_DEPENDENCIES = libtests.a
-file_handle_SOURCES = file_handle.c
-file_handle_OBJECTS = file_handle.$(OBJEXT)
-file_handle_LDADD = $(LDADD)
-file_handle_DEPENDENCIES = libtests.a
-file_ioctl_SOURCES = file_ioctl.c
-file_ioctl_OBJECTS = file_ioctl.$(OBJEXT)
-file_ioctl_LDADD = $(LDADD)
-file_ioctl_DEPENDENCIES = libtests.a
-filter_unavailable_SOURCES = filter-unavailable.c
-filter_unavailable_OBJECTS = filter-unavailable.$(OBJEXT)
-filter_unavailable_DEPENDENCIES = $(LDADD)
-finit_module_SOURCES = finit_module.c
-finit_module_OBJECTS = finit_module.$(OBJEXT)
-finit_module_LDADD = $(LDADD)
-finit_module_DEPENDENCIES = libtests.a
-flock_SOURCES = flock.c
-flock_OBJECTS = flock.$(OBJEXT)
-flock_LDADD = $(LDADD)
-flock_DEPENDENCIES = libtests.a
-fork_f_SOURCES = fork-f.c
-fork_f_OBJECTS = fork-f.$(OBJEXT)
-fork_f_LDADD = $(LDADD)
-fork_f_DEPENDENCIES = libtests.a
-fstat_SOURCES = fstat.c
-fstat_OBJECTS = fstat.$(OBJEXT)
-fstat_LDADD = $(LDADD)
-fstat_DEPENDENCIES = libtests.a
-fstat64_SOURCES = fstat64.c
-fstat64_OBJECTS = fstat64-fstat64.$(OBJEXT)
-fstat64_LDADD = $(LDADD)
-fstat64_DEPENDENCIES = libtests.a
-fstatat64_SOURCES = fstatat64.c
-fstatat64_OBJECTS = fstatat64-fstatat64.$(OBJEXT)
-fstatat64_LDADD = $(LDADD)
-fstatat64_DEPENDENCIES = libtests.a
-fstatfs_SOURCES = fstatfs.c
-fstatfs_OBJECTS = fstatfs.$(OBJEXT)
-fstatfs_LDADD = $(LDADD)
-fstatfs_DEPENDENCIES = libtests.a
-fstatfs64_SOURCES = fstatfs64.c
-fstatfs64_OBJECTS = fstatfs64.$(OBJEXT)
-fstatfs64_LDADD = $(LDADD)
-fstatfs64_DEPENDENCIES = libtests.a
-fsync_SOURCES = fsync.c
-fsync_OBJECTS = fsync.$(OBJEXT)
-fsync_LDADD = $(LDADD)
-fsync_DEPENDENCIES = libtests.a
-ftruncate_SOURCES = ftruncate.c
-ftruncate_OBJECTS = ftruncate.$(OBJEXT)
-ftruncate_LDADD = $(LDADD)
-ftruncate_DEPENDENCIES = libtests.a
-ftruncate64_SOURCES = ftruncate64.c
-ftruncate64_OBJECTS = ftruncate64-ftruncate64.$(OBJEXT)
-ftruncate64_LDADD = $(LDADD)
-ftruncate64_DEPENDENCIES = libtests.a
-futex_SOURCES = futex.c
-futex_OBJECTS = futex.$(OBJEXT)
-futex_LDADD = $(LDADD)
-futex_DEPENDENCIES = libtests.a
-futimesat_SOURCES = futimesat.c
-futimesat_OBJECTS = futimesat.$(OBJEXT)
-futimesat_LDADD = $(LDADD)
-futimesat_DEPENDENCIES = libtests.a
-get_mempolicy_SOURCES = get_mempolicy.c
-get_mempolicy_OBJECTS = get_mempolicy.$(OBJEXT)
-get_mempolicy_LDADD = $(LDADD)
-get_mempolicy_DEPENDENCIES = libtests.a
-getcpu_SOURCES = getcpu.c
-getcpu_OBJECTS = getcpu.$(OBJEXT)
-getcpu_LDADD = $(LDADD)
-getcpu_DEPENDENCIES = libtests.a
-getcwd_SOURCES = getcwd.c
-getcwd_OBJECTS = getcwd.$(OBJEXT)
-getcwd_LDADD = $(LDADD)
-getcwd_DEPENDENCIES = libtests.a
-getdents_SOURCES = getdents.c
-getdents_OBJECTS = getdents.$(OBJEXT)
-getdents_LDADD = $(LDADD)
-getdents_DEPENDENCIES = libtests.a
-getdents64_SOURCES = getdents64.c
-getdents64_OBJECTS = getdents64.$(OBJEXT)
-getdents64_LDADD = $(LDADD)
-getdents64_DEPENDENCIES = libtests.a
-getegid_SOURCES = getegid.c
-getegid_OBJECTS = getegid.$(OBJEXT)
-getegid_LDADD = $(LDADD)
-getegid_DEPENDENCIES = libtests.a
-getegid32_SOURCES = getegid32.c
-getegid32_OBJECTS = getegid32.$(OBJEXT)
-getegid32_LDADD = $(LDADD)
-getegid32_DEPENDENCIES = libtests.a
-geteuid_SOURCES = geteuid.c
-geteuid_OBJECTS = geteuid.$(OBJEXT)
-geteuid_LDADD = $(LDADD)
-geteuid_DEPENDENCIES = libtests.a
-geteuid32_SOURCES = geteuid32.c
-geteuid32_OBJECTS = geteuid32.$(OBJEXT)
-geteuid32_LDADD = $(LDADD)
-geteuid32_DEPENDENCIES = libtests.a
-getgid_SOURCES = getgid.c
-getgid_OBJECTS = getgid.$(OBJEXT)
-getgid_LDADD = $(LDADD)
-getgid_DEPENDENCIES = libtests.a
-getgid32_SOURCES = getgid32.c
-getgid32_OBJECTS = getgid32.$(OBJEXT)
-getgid32_LDADD = $(LDADD)
-getgid32_DEPENDENCIES = libtests.a
-getgroups_SOURCES = getgroups.c
-getgroups_OBJECTS = getgroups.$(OBJEXT)
-getgroups_LDADD = $(LDADD)
-getgroups_DEPENDENCIES = libtests.a
-getgroups32_SOURCES = getgroups32.c
-getgroups32_OBJECTS = getgroups32.$(OBJEXT)
-getgroups32_LDADD = $(LDADD)
-getgroups32_DEPENDENCIES = libtests.a
-getpeername_SOURCES = getpeername.c
-getpeername_OBJECTS = getpeername.$(OBJEXT)
-getpeername_LDADD = $(LDADD)
-getpeername_DEPENDENCIES = libtests.a
-getpgrp_SOURCES = getpgrp.c
-getpgrp_OBJECTS = getpgrp.$(OBJEXT)
-getpgrp_LDADD = $(LDADD)
-getpgrp_DEPENDENCIES = libtests.a
-getpid_SOURCES = getpid.c
-getpid_OBJECTS = getpid.$(OBJEXT)
-getpid_LDADD = $(LDADD)
-getpid_DEPENDENCIES = libtests.a
-getppid_SOURCES = getppid.c
-getppid_OBJECTS = getppid.$(OBJEXT)
-getppid_LDADD = $(LDADD)
-getppid_DEPENDENCIES = libtests.a
-getrandom_SOURCES = getrandom.c
-getrandom_OBJECTS = getrandom.$(OBJEXT)
-getrandom_LDADD = $(LDADD)
-getrandom_DEPENDENCIES = libtests.a
-getresgid_SOURCES = getresgid.c
-getresgid_OBJECTS = getresgid.$(OBJEXT)
-getresgid_LDADD = $(LDADD)
-getresgid_DEPENDENCIES = libtests.a
-getresgid32_SOURCES = getresgid32.c
-getresgid32_OBJECTS = getresgid32.$(OBJEXT)
-getresgid32_LDADD = $(LDADD)
-getresgid32_DEPENDENCIES = libtests.a
-getresuid_SOURCES = getresuid.c
-getresuid_OBJECTS = getresuid.$(OBJEXT)
-getresuid_LDADD = $(LDADD)
-getresuid_DEPENDENCIES = libtests.a
-getresuid32_SOURCES = getresuid32.c
-getresuid32_OBJECTS = getresuid32.$(OBJEXT)
-getresuid32_LDADD = $(LDADD)
-getresuid32_DEPENDENCIES = libtests.a
-getrlimit_SOURCES = getrlimit.c
-getrlimit_OBJECTS = getrlimit.$(OBJEXT)
-getrlimit_LDADD = $(LDADD)
-getrlimit_DEPENDENCIES = libtests.a
-getrusage_SOURCES = getrusage.c
-getrusage_OBJECTS = getrusage.$(OBJEXT)
-getrusage_LDADD = $(LDADD)
-getrusage_DEPENDENCIES = libtests.a
-getsid_SOURCES = getsid.c
-getsid_OBJECTS = getsid.$(OBJEXT)
-getsid_LDADD = $(LDADD)
-getsid_DEPENDENCIES = libtests.a
-getsockname_SOURCES = getsockname.c
-getsockname_OBJECTS = getsockname.$(OBJEXT)
-getsockname_LDADD = $(LDADD)
-getsockname_DEPENDENCIES = libtests.a
-gettid_SOURCES = gettid.c
-gettid_OBJECTS = gettid.$(OBJEXT)
-gettid_LDADD = $(LDADD)
-gettid_DEPENDENCIES = libtests.a
-getuid_SOURCES = getuid.c
-getuid_OBJECTS = getuid.$(OBJEXT)
-getuid_LDADD = $(LDADD)
-getuid_DEPENDENCIES = libtests.a
-getuid32_SOURCES = getuid32.c
-getuid32_OBJECTS = getuid32.$(OBJEXT)
-getuid32_LDADD = $(LDADD)
-getuid32_DEPENDENCIES = libtests.a
-getxxid_SOURCES = getxxid.c
-getxxid_OBJECTS = getxxid.$(OBJEXT)
-getxxid_LDADD = $(LDADD)
-getxxid_DEPENDENCIES = libtests.a
-inet_cmsg_SOURCES = inet-cmsg.c
-inet_cmsg_OBJECTS = inet-cmsg.$(OBJEXT)
-inet_cmsg_LDADD = $(LDADD)
-inet_cmsg_DEPENDENCIES = libtests.a
-init_module_SOURCES = init_module.c
-init_module_OBJECTS = init_module.$(OBJEXT)
-init_module_LDADD = $(LDADD)
-init_module_DEPENDENCIES = libtests.a
-inotify_SOURCES = inotify.c
-inotify_OBJECTS = inotify.$(OBJEXT)
-inotify_LDADD = $(LDADD)
-inotify_DEPENDENCIES = libtests.a
-inotify_init1_SOURCES = inotify_init1.c
-inotify_init1_OBJECTS = inotify_init1.$(OBJEXT)
-inotify_init1_LDADD = $(LDADD)
-inotify_init1_DEPENDENCIES = libtests.a
-int_0x80_SOURCES = int_0x80.c
-int_0x80_OBJECTS = int_0x80.$(OBJEXT)
-int_0x80_LDADD = $(LDADD)
-int_0x80_DEPENDENCIES = libtests.a
-ioctl_SOURCES = ioctl.c
-ioctl_OBJECTS = ioctl.$(OBJEXT)
-ioctl_LDADD = $(LDADD)
-ioctl_DEPENDENCIES = libtests.a
-ioctl_block_SOURCES = ioctl_block.c
-ioctl_block_OBJECTS = ioctl_block.$(OBJEXT)
-ioctl_block_LDADD = $(LDADD)
-ioctl_block_DEPENDENCIES = libtests.a
-ioctl_dm_SOURCES = ioctl_dm.c
-ioctl_dm_OBJECTS = ioctl_dm.$(OBJEXT)
-ioctl_dm_LDADD = $(LDADD)
-ioctl_dm_DEPENDENCIES = libtests.a
-ioctl_dm_v_SOURCES = ioctl_dm-v.c
-ioctl_dm_v_OBJECTS = ioctl_dm-v.$(OBJEXT)
-ioctl_dm_v_LDADD = $(LDADD)
-ioctl_dm_v_DEPENDENCIES = libtests.a
-ioctl_evdev_SOURCES = ioctl_evdev.c
-ioctl_evdev_OBJECTS = ioctl_evdev.$(OBJEXT)
-ioctl_evdev_LDADD = $(LDADD)
-ioctl_evdev_DEPENDENCIES = libtests.a
-ioctl_evdev_v_SOURCES = ioctl_evdev-v.c
-ioctl_evdev_v_OBJECTS = ioctl_evdev-v.$(OBJEXT)
-ioctl_evdev_v_LDADD = $(LDADD)
-ioctl_evdev_v_DEPENDENCIES = libtests.a
-ioctl_loop_SOURCES = ioctl_loop.c
-ioctl_loop_OBJECTS = ioctl_loop.$(OBJEXT)
-ioctl_loop_LDADD = $(LDADD)
-ioctl_loop_DEPENDENCIES = libtests.a
-ioctl_loop_nv_SOURCES = ioctl_loop-nv.c
-ioctl_loop_nv_OBJECTS = ioctl_loop-nv.$(OBJEXT)
-ioctl_loop_nv_LDADD = $(LDADD)
-ioctl_loop_nv_DEPENDENCIES = libtests.a
-ioctl_loop_v_SOURCES = ioctl_loop-v.c
-ioctl_loop_v_OBJECTS = ioctl_loop-v.$(OBJEXT)
-ioctl_loop_v_LDADD = $(LDADD)
-ioctl_loop_v_DEPENDENCIES = libtests.a
-ioctl_mtd_SOURCES = ioctl_mtd.c
-ioctl_mtd_OBJECTS = ioctl_mtd.$(OBJEXT)
-ioctl_mtd_LDADD = $(LDADD)
-ioctl_mtd_DEPENDENCIES = libtests.a
-ioctl_nsfs_SOURCES = ioctl_nsfs.c
-ioctl_nsfs_OBJECTS = ioctl_nsfs.$(OBJEXT)
-ioctl_nsfs_LDADD = $(LDADD)
-ioctl_nsfs_DEPENDENCIES = libtests.a
-ioctl_rtc_SOURCES = ioctl_rtc.c
-ioctl_rtc_OBJECTS = ioctl_rtc.$(OBJEXT)
-ioctl_rtc_LDADD = $(LDADD)
-ioctl_rtc_DEPENDENCIES = libtests.a
-ioctl_rtc_v_SOURCES = ioctl_rtc-v.c
-ioctl_rtc_v_OBJECTS = ioctl_rtc-v.$(OBJEXT)
-ioctl_rtc_v_LDADD = $(LDADD)
-ioctl_rtc_v_DEPENDENCIES = libtests.a
-ioctl_scsi_SOURCES = ioctl_scsi.c
-ioctl_scsi_OBJECTS = ioctl_scsi.$(OBJEXT)
-ioctl_scsi_LDADD = $(LDADD)
-ioctl_scsi_DEPENDENCIES = libtests.a
-ioctl_sg_io_v3_SOURCES = ioctl_sg_io_v3.c
-ioctl_sg_io_v3_OBJECTS = ioctl_sg_io_v3.$(OBJEXT)
-ioctl_sg_io_v3_LDADD = $(LDADD)
-ioctl_sg_io_v3_DEPENDENCIES = libtests.a
-ioctl_sg_io_v4_SOURCES = ioctl_sg_io_v4.c
-ioctl_sg_io_v4_OBJECTS = ioctl_sg_io_v4.$(OBJEXT)
-ioctl_sg_io_v4_LDADD = $(LDADD)
-ioctl_sg_io_v4_DEPENDENCIES = libtests.a
-ioctl_sock_gifconf_SOURCES = ioctl_sock_gifconf.c
-ioctl_sock_gifconf_OBJECTS = ioctl_sock_gifconf.$(OBJEXT)
-ioctl_sock_gifconf_LDADD = $(LDADD)
-ioctl_sock_gifconf_DEPENDENCIES = libtests.a
-ioctl_uffdio_SOURCES = ioctl_uffdio.c
-ioctl_uffdio_OBJECTS = ioctl_uffdio.$(OBJEXT)
-ioctl_uffdio_LDADD = $(LDADD)
-ioctl_uffdio_DEPENDENCIES = libtests.a
-ioctl_v4l2_SOURCES = ioctl_v4l2.c
-ioctl_v4l2_OBJECTS = ioctl_v4l2.$(OBJEXT)
-ioctl_v4l2_LDADD = $(LDADD)
-ioctl_v4l2_DEPENDENCIES = libtests.a
-ioperm_SOURCES = ioperm.c
-ioperm_OBJECTS = ioperm.$(OBJEXT)
-ioperm_LDADD = $(LDADD)
-ioperm_DEPENDENCIES = libtests.a
-iopl_SOURCES = iopl.c
-iopl_OBJECTS = iopl.$(OBJEXT)
-iopl_LDADD = $(LDADD)
-iopl_DEPENDENCIES = libtests.a
-ioprio_SOURCES = ioprio.c
-ioprio_OBJECTS = ioprio.$(OBJEXT)
-ioprio_LDADD = $(LDADD)
-ioprio_DEPENDENCIES = libtests.a
-ip_mreq_SOURCES = ip_mreq.c
-ip_mreq_OBJECTS = ip_mreq.$(OBJEXT)
-ip_mreq_LDADD = $(LDADD)
-ip_mreq_DEPENDENCIES = libtests.a
-ipc_SOURCES = ipc.c
-ipc_OBJECTS = ipc.$(OBJEXT)
-ipc_LDADD = $(LDADD)
-ipc_DEPENDENCIES = libtests.a
-ipc_msg_SOURCES = ipc_msg.c
-ipc_msg_OBJECTS = ipc_msg.$(OBJEXT)
-ipc_msg_LDADD = $(LDADD)
-ipc_msg_DEPENDENCIES = libtests.a
-ipc_msgbuf_SOURCES = ipc_msgbuf.c
-ipc_msgbuf_OBJECTS = ipc_msgbuf.$(OBJEXT)
-ipc_msgbuf_LDADD = $(LDADD)
-ipc_msgbuf_DEPENDENCIES = libtests.a
-ipc_sem_SOURCES = ipc_sem.c
-ipc_sem_OBJECTS = ipc_sem.$(OBJEXT)
-ipc_sem_LDADD = $(LDADD)
-ipc_sem_DEPENDENCIES = libtests.a
-ipc_shm_SOURCES = ipc_shm.c
-ipc_shm_OBJECTS = ipc_shm.$(OBJEXT)
-ipc_shm_LDADD = $(LDADD)
-ipc_shm_DEPENDENCIES = libtests.a
-kcmp_SOURCES = kcmp.c
-kcmp_OBJECTS = kcmp.$(OBJEXT)
-kcmp_LDADD = $(LDADD)
-kcmp_DEPENDENCIES = libtests.a
-kexec_file_load_SOURCES = kexec_file_load.c
-kexec_file_load_OBJECTS = kexec_file_load.$(OBJEXT)
-kexec_file_load_LDADD = $(LDADD)
-kexec_file_load_DEPENDENCIES = libtests.a
-kexec_load_SOURCES = kexec_load.c
-kexec_load_OBJECTS = kexec_load.$(OBJEXT)
-kexec_load_LDADD = $(LDADD)
-kexec_load_DEPENDENCIES = libtests.a
-keyctl_SOURCES = keyctl.c
-keyctl_OBJECTS = keyctl.$(OBJEXT)
-keyctl_LDADD = $(LDADD)
-keyctl_DEPENDENCIES = libtests.a
-kill_SOURCES = kill.c
-kill_OBJECTS = kill.$(OBJEXT)
-kill_LDADD = $(LDADD)
-kill_DEPENDENCIES = libtests.a
-ksysent_SOURCES = ksysent.c
-ksysent_OBJECTS = ksysent.$(OBJEXT)
-ksysent_LDADD = $(LDADD)
-ksysent_DEPENDENCIES = libtests.a
-lchown_SOURCES = lchown.c
-lchown_OBJECTS = lchown.$(OBJEXT)
-lchown_LDADD = $(LDADD)
-lchown_DEPENDENCIES = libtests.a
-lchown32_SOURCES = lchown32.c
-lchown32_OBJECTS = lchown32.$(OBJEXT)
-lchown32_LDADD = $(LDADD)
-lchown32_DEPENDENCIES = libtests.a
-link_SOURCES = link.c
-link_OBJECTS = link.$(OBJEXT)
-link_LDADD = $(LDADD)
-link_DEPENDENCIES = libtests.a
-linkat_SOURCES = linkat.c
-linkat_OBJECTS = linkat.$(OBJEXT)
-linkat_LDADD = $(LDADD)
-linkat_DEPENDENCIES = libtests.a
-llseek_SOURCES = llseek.c
-llseek_OBJECTS = llseek.$(OBJEXT)
-llseek_LDADD = $(LDADD)
-llseek_DEPENDENCIES = libtests.a
-lookup_dcookie_SOURCES = lookup_dcookie.c
-lookup_dcookie_OBJECTS = lookup_dcookie.$(OBJEXT)
-lookup_dcookie_LDADD = $(LDADD)
-lookup_dcookie_DEPENDENCIES = libtests.a
-lseek_SOURCES = lseek.c
-lseek_OBJECTS = lseek.$(OBJEXT)
-lseek_LDADD = $(LDADD)
-lseek_DEPENDENCIES = libtests.a
-lstat_SOURCES = lstat.c
-lstat_OBJECTS = lstat.$(OBJEXT)
-lstat_LDADD = $(LDADD)
-lstat_DEPENDENCIES = libtests.a
-lstat64_SOURCES = lstat64.c
-lstat64_OBJECTS = lstat64-lstat64.$(OBJEXT)
-lstat64_LDADD = $(LDADD)
-lstat64_DEPENDENCIES = libtests.a
-madvise_SOURCES = madvise.c
-madvise_OBJECTS = madvise.$(OBJEXT)
-madvise_LDADD = $(LDADD)
-madvise_DEPENDENCIES = libtests.a
-mbind_SOURCES = mbind.c
-mbind_OBJECTS = mbind.$(OBJEXT)
-mbind_LDADD = $(LDADD)
-mbind_DEPENDENCIES = libtests.a
-membarrier_SOURCES = membarrier.c
-membarrier_OBJECTS = membarrier.$(OBJEXT)
-membarrier_LDADD = $(LDADD)
-membarrier_DEPENDENCIES = libtests.a
-memfd_create_SOURCES = memfd_create.c
-memfd_create_OBJECTS = memfd_create.$(OBJEXT)
-memfd_create_LDADD = $(LDADD)
-memfd_create_DEPENDENCIES = libtests.a
-migrate_pages_SOURCES = migrate_pages.c
-migrate_pages_OBJECTS = migrate_pages.$(OBJEXT)
-migrate_pages_LDADD = $(LDADD)
-migrate_pages_DEPENDENCIES = libtests.a
-mincore_SOURCES = mincore.c
-mincore_OBJECTS = mincore.$(OBJEXT)
-mincore_LDADD = $(LDADD)
-mincore_DEPENDENCIES = libtests.a
-mkdir_SOURCES = mkdir.c
-mkdir_OBJECTS = mkdir.$(OBJEXT)
-mkdir_LDADD = $(LDADD)
-mkdir_DEPENDENCIES = libtests.a
-mkdirat_SOURCES = mkdirat.c
-mkdirat_OBJECTS = mkdirat.$(OBJEXT)
-mkdirat_LDADD = $(LDADD)
-mkdirat_DEPENDENCIES = libtests.a
-mknod_SOURCES = mknod.c
-mknod_OBJECTS = mknod.$(OBJEXT)
-mknod_LDADD = $(LDADD)
-mknod_DEPENDENCIES = libtests.a
-mknodat_SOURCES = mknodat.c
-mknodat_OBJECTS = mknodat.$(OBJEXT)
-mknodat_LDADD = $(LDADD)
-mknodat_DEPENDENCIES = libtests.a
-mlock_SOURCES = mlock.c
-mlock_OBJECTS = mlock.$(OBJEXT)
-mlock_LDADD = $(LDADD)
-mlock_DEPENDENCIES = libtests.a
-mlock2_SOURCES = mlock2.c
-mlock2_OBJECTS = mlock2.$(OBJEXT)
-mlock2_LDADD = $(LDADD)
-mlock2_DEPENDENCIES = libtests.a
-mlockall_SOURCES = mlockall.c
-mlockall_OBJECTS = mlockall.$(OBJEXT)
-mlockall_LDADD = $(LDADD)
-mlockall_DEPENDENCIES = libtests.a
-mmap_SOURCES = mmap.c
-mmap_OBJECTS = mmap.$(OBJEXT)
-mmap_LDADD = $(LDADD)
-mmap_DEPENDENCIES = libtests.a
-mmap64_SOURCES = mmap64.c
-mmap64_OBJECTS = mmap64-mmap64.$(OBJEXT)
-mmap64_LDADD = $(LDADD)
-mmap64_DEPENDENCIES = libtests.a
-mmsg_SOURCES = mmsg.c
-mmsg_OBJECTS = mmsg.$(OBJEXT)
-mmsg_LDADD = $(LDADD)
-mmsg_DEPENDENCIES = libtests.a
-mmsg_silent_SOURCES = mmsg-silent.c
-mmsg_silent_OBJECTS = mmsg-silent.$(OBJEXT)
-mmsg_silent_LDADD = $(LDADD)
-mmsg_silent_DEPENDENCIES = libtests.a
-mmsg_name_SOURCES = mmsg_name.c
-mmsg_name_OBJECTS = mmsg_name.$(OBJEXT)
-mmsg_name_LDADD = $(LDADD)
-mmsg_name_DEPENDENCIES = libtests.a
-mmsg_name_v_SOURCES = mmsg_name-v.c
-mmsg_name_v_OBJECTS = mmsg_name-v.$(OBJEXT)
-mmsg_name_v_LDADD = $(LDADD)
-mmsg_name_v_DEPENDENCIES = libtests.a
-mount_SOURCES = mount.c
-mount_OBJECTS = mount.$(OBJEXT)
-mount_LDADD = $(LDADD)
-mount_DEPENDENCIES = libtests.a
-move_pages_SOURCES = move_pages.c
-move_pages_OBJECTS = move_pages.$(OBJEXT)
-move_pages_LDADD = $(LDADD)
-move_pages_DEPENDENCIES = libtests.a
-mq_SOURCES = mq.c
-mq_OBJECTS = mq.$(OBJEXT)
-mq_DEPENDENCIES = $(LDADD)
-mq_sendrecv_SOURCES = mq_sendrecv.c
-mq_sendrecv_OBJECTS = mq_sendrecv.$(OBJEXT)
-mq_sendrecv_DEPENDENCIES = $(LDADD)
-mq_sendrecv_read_SOURCES = mq_sendrecv-read.c
-mq_sendrecv_read_OBJECTS = mq_sendrecv-read.$(OBJEXT)
-mq_sendrecv_read_DEPENDENCIES = $(LDADD)
-mq_sendrecv_write_SOURCES = mq_sendrecv-write.c
-mq_sendrecv_write_OBJECTS = mq_sendrecv-write.$(OBJEXT)
-mq_sendrecv_write_DEPENDENCIES = $(LDADD)
-msg_control_SOURCES = msg_control.c
-msg_control_OBJECTS = msg_control.$(OBJEXT)
-msg_control_LDADD = $(LDADD)
-msg_control_DEPENDENCIES = libtests.a
-msg_control_v_SOURCES = msg_control-v.c
-msg_control_v_OBJECTS = msg_control-v.$(OBJEXT)
-msg_control_v_LDADD = $(LDADD)
-msg_control_v_DEPENDENCIES = libtests.a
-msg_name_SOURCES = msg_name.c
-msg_name_OBJECTS = msg_name.$(OBJEXT)
-msg_name_LDADD = $(LDADD)
-msg_name_DEPENDENCIES = libtests.a
-munlockall_SOURCES = munlockall.c
-munlockall_OBJECTS = munlockall.$(OBJEXT)
-munlockall_LDADD = $(LDADD)
-munlockall_DEPENDENCIES = libtests.a
-nanosleep_SOURCES = nanosleep.c
-nanosleep_OBJECTS = nanosleep.$(OBJEXT)
-nanosleep_LDADD = $(LDADD)
-nanosleep_DEPENDENCIES = libtests.a
-net_accept_connect_SOURCES = net-accept-connect.c
-net_accept_connect_OBJECTS = net-accept-connect.$(OBJEXT)
-net_accept_connect_LDADD = $(LDADD)
-net_accept_connect_DEPENDENCIES = libtests.a
-net_icmp_filter_SOURCES = net-icmp_filter.c
-net_icmp_filter_OBJECTS = net-icmp_filter.$(OBJEXT)
-net_icmp_filter_LDADD = $(LDADD)
-net_icmp_filter_DEPENDENCIES = libtests.a
-net_sockaddr_SOURCES = net-sockaddr.c
-net_sockaddr_OBJECTS = net-sockaddr.$(OBJEXT)
-net_sockaddr_LDADD = $(LDADD)
-net_sockaddr_DEPENDENCIES = libtests.a
-net_y_unix_SOURCES = net-y-unix.c
-net_y_unix_OBJECTS = net-y-unix.$(OBJEXT)
-net_y_unix_LDADD = $(LDADD)
-net_y_unix_DEPENDENCIES = libtests.a
-net_yy_inet_SOURCES = net-yy-inet.c
-net_yy_inet_OBJECTS = net-yy-inet.$(OBJEXT)
-net_yy_inet_LDADD = $(LDADD)
-net_yy_inet_DEPENDENCIES = libtests.a
-net_yy_netlink_SOURCES = net-yy-netlink.c
-net_yy_netlink_OBJECTS = net-yy-netlink.$(OBJEXT)
-net_yy_netlink_LDADD = $(LDADD)
-net_yy_netlink_DEPENDENCIES = libtests.a
-net_yy_unix_SOURCES = net-yy-unix.c
-net_yy_unix_OBJECTS = net-yy-unix.$(OBJEXT)
-net_yy_unix_LDADD = $(LDADD)
-net_yy_unix_DEPENDENCIES = libtests.a
-netlink_inet_diag_SOURCES = netlink_inet_diag.c
-netlink_inet_diag_OBJECTS = netlink_inet_diag.$(OBJEXT)
-netlink_inet_diag_LDADD = $(LDADD)
-netlink_inet_diag_DEPENDENCIES = libtests.a
-netlink_netlink_diag_SOURCES = netlink_netlink_diag.c
-netlink_netlink_diag_OBJECTS = netlink_netlink_diag.$(OBJEXT)
-netlink_netlink_diag_LDADD = $(LDADD)
-netlink_netlink_diag_DEPENDENCIES = libtests.a
-netlink_protocol_SOURCES = netlink_protocol.c
-netlink_protocol_OBJECTS = netlink_protocol.$(OBJEXT)
-netlink_protocol_LDADD = $(LDADD)
-netlink_protocol_DEPENDENCIES = libtests.a
-netlink_unix_diag_SOURCES = netlink_unix_diag.c
-netlink_unix_diag_OBJECTS = netlink_unix_diag.$(OBJEXT)
-netlink_unix_diag_LDADD = $(LDADD)
-netlink_unix_diag_DEPENDENCIES = libtests.a
-newfstatat_SOURCES = newfstatat.c
-newfstatat_OBJECTS = newfstatat-newfstatat.$(OBJEXT)
-newfstatat_LDADD = $(LDADD)
-newfstatat_DEPENDENCIES = libtests.a
-nsyscalls_SOURCES = nsyscalls.c
-nsyscalls_OBJECTS = nsyscalls.$(OBJEXT)
-nsyscalls_LDADD = $(LDADD)
-nsyscalls_DEPENDENCIES = libtests.a
-old_mmap_SOURCES = old_mmap.c
-old_mmap_OBJECTS = old_mmap.$(OBJEXT)
-old_mmap_LDADD = $(LDADD)
-old_mmap_DEPENDENCIES = libtests.a
-oldfstat_SOURCES = oldfstat.c
-oldfstat_OBJECTS = oldfstat.$(OBJEXT)
-oldfstat_LDADD = $(LDADD)
-oldfstat_DEPENDENCIES = libtests.a
-oldlstat_SOURCES = oldlstat.c
-oldlstat_OBJECTS = oldlstat.$(OBJEXT)
-oldlstat_LDADD = $(LDADD)
-oldlstat_DEPENDENCIES = libtests.a
-oldselect_SOURCES = oldselect.c
-oldselect_OBJECTS = oldselect.$(OBJEXT)
-oldselect_LDADD = $(LDADD)
-oldselect_DEPENDENCIES = libtests.a
-oldstat_SOURCES = oldstat.c
-oldstat_OBJECTS = oldstat.$(OBJEXT)
-oldstat_LDADD = $(LDADD)
-oldstat_DEPENDENCIES = libtests.a
-open_SOURCES = open.c
-open_OBJECTS = open.$(OBJEXT)
-open_LDADD = $(LDADD)
-open_DEPENDENCIES = libtests.a
-openat_SOURCES = openat.c
-openat_OBJECTS = openat.$(OBJEXT)
-openat_LDADD = $(LDADD)
-openat_DEPENDENCIES = libtests.a
-osf_utimes_SOURCES = osf_utimes.c
-osf_utimes_OBJECTS = osf_utimes.$(OBJEXT)
-osf_utimes_LDADD = $(LDADD)
-osf_utimes_DEPENDENCIES = libtests.a
-pause_SOURCES = pause.c
-pause_OBJECTS = pause.$(OBJEXT)
-pause_LDADD = $(LDADD)
-pause_DEPENDENCIES = libtests.a
-pc_SOURCES = pc.c
-pc_OBJECTS = pc.$(OBJEXT)
-am__DEPENDENCIES_1 =
-pc_DEPENDENCIES = $(am__DEPENDENCIES_1) $(LDADD)
-perf_event_open_SOURCES = perf_event_open.c
-perf_event_open_OBJECTS = perf_event_open.$(OBJEXT)
-perf_event_open_LDADD = $(LDADD)
-perf_event_open_DEPENDENCIES = libtests.a
-perf_event_open_nonverbose_SOURCES = perf_event_open_nonverbose.c
-perf_event_open_nonverbose_OBJECTS =  \
-	perf_event_open_nonverbose.$(OBJEXT)
-perf_event_open_nonverbose_LDADD = $(LDADD)
-perf_event_open_nonverbose_DEPENDENCIES = libtests.a
-perf_event_open_unabbrev_SOURCES = perf_event_open_unabbrev.c
-perf_event_open_unabbrev_OBJECTS = perf_event_open_unabbrev.$(OBJEXT)
-perf_event_open_unabbrev_LDADD = $(LDADD)
-perf_event_open_unabbrev_DEPENDENCIES = libtests.a
-personality_SOURCES = personality.c
-personality_OBJECTS = personality.$(OBJEXT)
-personality_LDADD = $(LDADD)
-personality_DEPENDENCIES = libtests.a
-pipe_SOURCES = pipe.c
-pipe_OBJECTS = pipe.$(OBJEXT)
-pipe_LDADD = $(LDADD)
-pipe_DEPENDENCIES = libtests.a
-pipe2_SOURCES = pipe2.c
-pipe2_OBJECTS = pipe2.$(OBJEXT)
-pipe2_LDADD = $(LDADD)
-pipe2_DEPENDENCIES = libtests.a
-pkey_alloc_SOURCES = pkey_alloc.c
-pkey_alloc_OBJECTS = pkey_alloc.$(OBJEXT)
-pkey_alloc_LDADD = $(LDADD)
-pkey_alloc_DEPENDENCIES = libtests.a
-pkey_free_SOURCES = pkey_free.c
-pkey_free_OBJECTS = pkey_free.$(OBJEXT)
-pkey_free_LDADD = $(LDADD)
-pkey_free_DEPENDENCIES = libtests.a
-pkey_mprotect_SOURCES = pkey_mprotect.c
-pkey_mprotect_OBJECTS = pkey_mprotect.$(OBJEXT)
-pkey_mprotect_LDADD = $(LDADD)
-pkey_mprotect_DEPENDENCIES = libtests.a
-poll_SOURCES = poll.c
-poll_OBJECTS = poll.$(OBJEXT)
-poll_LDADD = $(LDADD)
-poll_DEPENDENCIES = libtests.a
-ppoll_SOURCES = ppoll.c
-ppoll_OBJECTS = ppoll.$(OBJEXT)
-ppoll_LDADD = $(LDADD)
-ppoll_DEPENDENCIES = libtests.a
-ppoll_v_SOURCES = ppoll-v.c
-ppoll_v_OBJECTS = ppoll-v.$(OBJEXT)
-ppoll_v_LDADD = $(LDADD)
-ppoll_v_DEPENDENCIES = libtests.a
-prctl_arg2_intptr_SOURCES = prctl-arg2-intptr.c
-prctl_arg2_intptr_OBJECTS = prctl-arg2-intptr.$(OBJEXT)
-prctl_arg2_intptr_LDADD = $(LDADD)
-prctl_arg2_intptr_DEPENDENCIES = libtests.a
-prctl_dumpable_SOURCES = prctl-dumpable.c
-prctl_dumpable_OBJECTS = prctl-dumpable.$(OBJEXT)
-prctl_dumpable_LDADD = $(LDADD)
-prctl_dumpable_DEPENDENCIES = libtests.a
-prctl_name_SOURCES = prctl-name.c
-prctl_name_OBJECTS = prctl-name.$(OBJEXT)
-prctl_name_LDADD = $(LDADD)
-prctl_name_DEPENDENCIES = libtests.a
-prctl_no_args_SOURCES = prctl-no-args.c
-prctl_no_args_OBJECTS = prctl-no-args.$(OBJEXT)
-prctl_no_args_LDADD = $(LDADD)
-prctl_no_args_DEPENDENCIES = libtests.a
-prctl_pdeathsig_SOURCES = prctl-pdeathsig.c
-prctl_pdeathsig_OBJECTS = prctl-pdeathsig.$(OBJEXT)
-prctl_pdeathsig_LDADD = $(LDADD)
-prctl_pdeathsig_DEPENDENCIES = libtests.a
-prctl_seccomp_filter_v_SOURCES = prctl-seccomp-filter-v.c
-prctl_seccomp_filter_v_OBJECTS = prctl-seccomp-filter-v.$(OBJEXT)
-prctl_seccomp_filter_v_LDADD = $(LDADD)
-prctl_seccomp_filter_v_DEPENDENCIES = libtests.a
-prctl_seccomp_strict_SOURCES = prctl-seccomp-strict.c
-prctl_seccomp_strict_OBJECTS = prctl-seccomp-strict.$(OBJEXT)
-prctl_seccomp_strict_LDADD = $(LDADD)
-prctl_seccomp_strict_DEPENDENCIES = libtests.a
-prctl_securebits_SOURCES = prctl-securebits.c
-prctl_securebits_OBJECTS = prctl-securebits.$(OBJEXT)
-prctl_securebits_LDADD = $(LDADD)
-prctl_securebits_DEPENDENCIES = libtests.a
-prctl_tid_address_SOURCES = prctl-tid_address.c
-prctl_tid_address_OBJECTS = prctl-tid_address.$(OBJEXT)
-prctl_tid_address_LDADD = $(LDADD)
-prctl_tid_address_DEPENDENCIES = libtests.a
-prctl_tsc_SOURCES = prctl-tsc.c
-prctl_tsc_OBJECTS = prctl-tsc.$(OBJEXT)
-prctl_tsc_LDADD = $(LDADD)
-prctl_tsc_DEPENDENCIES = libtests.a
-pread64_pwrite64_SOURCES = pread64-pwrite64.c
-pread64_pwrite64_OBJECTS =  \
-	pread64_pwrite64-pread64-pwrite64.$(OBJEXT)
-pread64_pwrite64_LDADD = $(LDADD)
-pread64_pwrite64_DEPENDENCIES = libtests.a
-preadv_SOURCES = preadv.c
-preadv_OBJECTS = preadv-preadv.$(OBJEXT)
-preadv_LDADD = $(LDADD)
-preadv_DEPENDENCIES = libtests.a
-preadv_pwritev_SOURCES = preadv-pwritev.c
-preadv_pwritev_OBJECTS = preadv_pwritev-preadv-pwritev.$(OBJEXT)
-preadv_pwritev_LDADD = $(LDADD)
-preadv_pwritev_DEPENDENCIES = libtests.a
-preadv2_pwritev2_SOURCES = preadv2-pwritev2.c
-preadv2_pwritev2_OBJECTS = preadv2-pwritev2.$(OBJEXT)
-preadv2_pwritev2_LDADD = $(LDADD)
-preadv2_pwritev2_DEPENDENCIES = libtests.a
-print_maxfd_SOURCES = print_maxfd.c
-print_maxfd_OBJECTS = print_maxfd.$(OBJEXT)
-print_maxfd_LDADD = $(LDADD)
-print_maxfd_DEPENDENCIES = libtests.a
-printstr_SOURCES = printstr.c
-printstr_OBJECTS = printstr.$(OBJEXT)
-printstr_LDADD = $(LDADD)
-printstr_DEPENDENCIES = libtests.a
-prlimit64_SOURCES = prlimit64.c
-prlimit64_OBJECTS = prlimit64.$(OBJEXT)
-prlimit64_LDADD = $(LDADD)
-prlimit64_DEPENDENCIES = libtests.a
-process_vm_readv_SOURCES = process_vm_readv.c
-process_vm_readv_OBJECTS = process_vm_readv.$(OBJEXT)
-process_vm_readv_LDADD = $(LDADD)
-process_vm_readv_DEPENDENCIES = libtests.a
-process_vm_writev_SOURCES = process_vm_writev.c
-process_vm_writev_OBJECTS = process_vm_writev.$(OBJEXT)
-process_vm_writev_LDADD = $(LDADD)
-process_vm_writev_DEPENDENCIES = libtests.a
-pselect6_SOURCES = pselect6.c
-pselect6_OBJECTS = pselect6.$(OBJEXT)
-pselect6_LDADD = $(LDADD)
-pselect6_DEPENDENCIES = libtests.a
-ptrace_SOURCES = ptrace.c
-ptrace_OBJECTS = ptrace.$(OBJEXT)
-ptrace_LDADD = $(LDADD)
-ptrace_DEPENDENCIES = libtests.a
-pwritev_SOURCES = pwritev.c
-pwritev_OBJECTS = pwritev-pwritev.$(OBJEXT)
-pwritev_LDADD = $(LDADD)
-pwritev_DEPENDENCIES = libtests.a
-qual_fault_SOURCES = qual_fault.c
-qual_fault_OBJECTS = qual_fault.$(OBJEXT)
-qual_fault_LDADD = $(LDADD)
-qual_fault_DEPENDENCIES = libtests.a
-qual_inject_error_signal_SOURCES = qual_inject-error-signal.c
-qual_inject_error_signal_OBJECTS = qual_inject-error-signal.$(OBJEXT)
-qual_inject_error_signal_LDADD = $(LDADD)
-qual_inject_error_signal_DEPENDENCIES = libtests.a
-qual_inject_retval_SOURCES = qual_inject-retval.c
-qual_inject_retval_OBJECTS = qual_inject-retval.$(OBJEXT)
-qual_inject_retval_LDADD = $(LDADD)
-qual_inject_retval_DEPENDENCIES = libtests.a
-qual_inject_signal_SOURCES = qual_inject-signal.c
-qual_inject_signal_OBJECTS = qual_inject-signal.$(OBJEXT)
-qual_inject_signal_LDADD = $(LDADD)
-qual_inject_signal_DEPENDENCIES = libtests.a
-qual_signal_SOURCES = qual_signal.c
-qual_signal_OBJECTS = qual_signal.$(OBJEXT)
-qual_signal_LDADD = $(LDADD)
-qual_signal_DEPENDENCIES = libtests.a
-quotactl_SOURCES = quotactl.c
-quotactl_OBJECTS = quotactl.$(OBJEXT)
-quotactl_LDADD = $(LDADD)
-quotactl_DEPENDENCIES = libtests.a
-quotactl_v_SOURCES = quotactl-v.c
-quotactl_v_OBJECTS = quotactl-v.$(OBJEXT)
-quotactl_v_LDADD = $(LDADD)
-quotactl_v_DEPENDENCIES = libtests.a
-quotactl_xfs_SOURCES = quotactl-xfs.c
-quotactl_xfs_OBJECTS = quotactl-xfs.$(OBJEXT)
-quotactl_xfs_LDADD = $(LDADD)
-quotactl_xfs_DEPENDENCIES = libtests.a
-quotactl_xfs_v_SOURCES = quotactl-xfs-v.c
-quotactl_xfs_v_OBJECTS = quotactl-xfs-v.$(OBJEXT)
-quotactl_xfs_v_LDADD = $(LDADD)
-quotactl_xfs_v_DEPENDENCIES = libtests.a
-read_write_SOURCES = read-write.c
-read_write_OBJECTS = read-write.$(OBJEXT)
-read_write_LDADD = $(LDADD)
-read_write_DEPENDENCIES = libtests.a
-readahead_SOURCES = readahead.c
-readahead_OBJECTS = readahead.$(OBJEXT)
-readahead_LDADD = $(LDADD)
-readahead_DEPENDENCIES = libtests.a
-readdir_SOURCES = readdir.c
-readdir_OBJECTS = readdir.$(OBJEXT)
-readdir_LDADD = $(LDADD)
-readdir_DEPENDENCIES = libtests.a
-readlink_SOURCES = readlink.c
-readlink_OBJECTS = readlink.$(OBJEXT)
-readlink_LDADD = $(LDADD)
-readlink_DEPENDENCIES = libtests.a
-readlinkat_SOURCES = readlinkat.c
-readlinkat_OBJECTS = readlinkat.$(OBJEXT)
-readlinkat_LDADD = $(LDADD)
-readlinkat_DEPENDENCIES = libtests.a
-readv_SOURCES = readv.c
-readv_OBJECTS = readv.$(OBJEXT)
-readv_LDADD = $(LDADD)
-readv_DEPENDENCIES = libtests.a
-reboot_SOURCES = reboot.c
-reboot_OBJECTS = reboot.$(OBJEXT)
-reboot_LDADD = $(LDADD)
-reboot_DEPENDENCIES = libtests.a
-recvfrom_SOURCES = recvfrom.c
-recvfrom_OBJECTS = recvfrom.$(OBJEXT)
-recvfrom_LDADD = $(LDADD)
-recvfrom_DEPENDENCIES = libtests.a
-recvmmsg_timeout_SOURCES = recvmmsg-timeout.c
-recvmmsg_timeout_OBJECTS = recvmmsg-timeout.$(OBJEXT)
-recvmmsg_timeout_LDADD = $(LDADD)
-recvmmsg_timeout_DEPENDENCIES = libtests.a
-recvmsg_SOURCES = recvmsg.c
-recvmsg_OBJECTS = recvmsg.$(OBJEXT)
-recvmsg_LDADD = $(LDADD)
-recvmsg_DEPENDENCIES = libtests.a
-redirect_fds_SOURCES = redirect-fds.c
-redirect_fds_OBJECTS = redirect-fds.$(OBJEXT)
-redirect_fds_LDADD = $(LDADD)
-redirect_fds_DEPENDENCIES = libtests.a
-remap_file_pages_SOURCES = remap_file_pages.c
-remap_file_pages_OBJECTS = remap_file_pages.$(OBJEXT)
-remap_file_pages_LDADD = $(LDADD)
-remap_file_pages_DEPENDENCIES = libtests.a
-rename_SOURCES = rename.c
-rename_OBJECTS = rename.$(OBJEXT)
-rename_LDADD = $(LDADD)
-rename_DEPENDENCIES = libtests.a
-renameat_SOURCES = renameat.c
-renameat_OBJECTS = renameat.$(OBJEXT)
-renameat_LDADD = $(LDADD)
-renameat_DEPENDENCIES = libtests.a
-renameat2_SOURCES = renameat2.c
-renameat2_OBJECTS = renameat2.$(OBJEXT)
-renameat2_LDADD = $(LDADD)
-renameat2_DEPENDENCIES = libtests.a
-request_key_SOURCES = request_key.c
-request_key_OBJECTS = request_key.$(OBJEXT)
-request_key_LDADD = $(LDADD)
-request_key_DEPENDENCIES = libtests.a
-restart_syscall_SOURCES = restart_syscall.c
-restart_syscall_OBJECTS = restart_syscall.$(OBJEXT)
-restart_syscall_LDADD = $(LDADD)
-restart_syscall_DEPENDENCIES = libtests.a
-rmdir_SOURCES = rmdir.c
-rmdir_OBJECTS = rmdir.$(OBJEXT)
-rmdir_LDADD = $(LDADD)
-rmdir_DEPENDENCIES = libtests.a
-rt_sigpending_SOURCES = rt_sigpending.c
-rt_sigpending_OBJECTS = rt_sigpending.$(OBJEXT)
-rt_sigpending_LDADD = $(LDADD)
-rt_sigpending_DEPENDENCIES = libtests.a
-rt_sigprocmask_SOURCES = rt_sigprocmask.c
-rt_sigprocmask_OBJECTS = rt_sigprocmask.$(OBJEXT)
-rt_sigprocmask_LDADD = $(LDADD)
-rt_sigprocmask_DEPENDENCIES = libtests.a
-rt_sigqueueinfo_SOURCES = rt_sigqueueinfo.c
-rt_sigqueueinfo_OBJECTS = rt_sigqueueinfo.$(OBJEXT)
-rt_sigqueueinfo_LDADD = $(LDADD)
-rt_sigqueueinfo_DEPENDENCIES = libtests.a
-rt_sigreturn_SOURCES = rt_sigreturn.c
-rt_sigreturn_OBJECTS = rt_sigreturn.$(OBJEXT)
-rt_sigreturn_LDADD = $(LDADD)
-rt_sigreturn_DEPENDENCIES = libtests.a
-rt_sigsuspend_SOURCES = rt_sigsuspend.c
-rt_sigsuspend_OBJECTS = rt_sigsuspend.$(OBJEXT)
-rt_sigsuspend_LDADD = $(LDADD)
-rt_sigsuspend_DEPENDENCIES = libtests.a
-rt_sigtimedwait_SOURCES = rt_sigtimedwait.c
-rt_sigtimedwait_OBJECTS = rt_sigtimedwait.$(OBJEXT)
-rt_sigtimedwait_LDADD = $(LDADD)
-rt_sigtimedwait_DEPENDENCIES = libtests.a
-rt_tgsigqueueinfo_SOURCES = rt_tgsigqueueinfo.c
-rt_tgsigqueueinfo_OBJECTS = rt_tgsigqueueinfo.$(OBJEXT)
-rt_tgsigqueueinfo_LDADD = $(LDADD)
-rt_tgsigqueueinfo_DEPENDENCIES = libtests.a
-sched_get_priority_mxx_SOURCES = sched_get_priority_mxx.c
-sched_get_priority_mxx_OBJECTS = sched_get_priority_mxx.$(OBJEXT)
-sched_get_priority_mxx_LDADD = $(LDADD)
-sched_get_priority_mxx_DEPENDENCIES = libtests.a
-sched_rr_get_interval_SOURCES = sched_rr_get_interval.c
-sched_rr_get_interval_OBJECTS = sched_rr_get_interval.$(OBJEXT)
-sched_rr_get_interval_LDADD = $(LDADD)
-sched_rr_get_interval_DEPENDENCIES = libtests.a
-sched_xetaffinity_SOURCES = sched_xetaffinity.c
-sched_xetaffinity_OBJECTS = sched_xetaffinity.$(OBJEXT)
-sched_xetaffinity_LDADD = $(LDADD)
-sched_xetaffinity_DEPENDENCIES = libtests.a
-sched_xetattr_SOURCES = sched_xetattr.c
-sched_xetattr_OBJECTS = sched_xetattr.$(OBJEXT)
-sched_xetattr_LDADD = $(LDADD)
-sched_xetattr_DEPENDENCIES = libtests.a
-sched_xetparam_SOURCES = sched_xetparam.c
-sched_xetparam_OBJECTS = sched_xetparam.$(OBJEXT)
-sched_xetparam_LDADD = $(LDADD)
-sched_xetparam_DEPENDENCIES = libtests.a
-sched_xetscheduler_SOURCES = sched_xetscheduler.c
-sched_xetscheduler_OBJECTS = sched_xetscheduler.$(OBJEXT)
-sched_xetscheduler_LDADD = $(LDADD)
-sched_xetscheduler_DEPENDENCIES = libtests.a
-sched_yield_SOURCES = sched_yield.c
-sched_yield_OBJECTS = sched_yield.$(OBJEXT)
-sched_yield_LDADD = $(LDADD)
-sched_yield_DEPENDENCIES = libtests.a
-scm_rights_SOURCES = scm_rights.c
-scm_rights_OBJECTS = scm_rights.$(OBJEXT)
-scm_rights_LDADD = $(LDADD)
-scm_rights_DEPENDENCIES = libtests.a
-seccomp_filter_SOURCES = seccomp-filter.c
-seccomp_filter_OBJECTS = seccomp-filter.$(OBJEXT)
-seccomp_filter_LDADD = $(LDADD)
-seccomp_filter_DEPENDENCIES = libtests.a
-seccomp_filter_v_SOURCES = seccomp-filter-v.c
-seccomp_filter_v_OBJECTS = seccomp-filter-v.$(OBJEXT)
-seccomp_filter_v_LDADD = $(LDADD)
-seccomp_filter_v_DEPENDENCIES = libtests.a
-seccomp_strict_SOURCES = seccomp-strict.c
-seccomp_strict_OBJECTS = seccomp-strict.$(OBJEXT)
-seccomp_strict_LDADD = $(LDADD)
-seccomp_strict_DEPENDENCIES = libtests.a
-select_SOURCES = select.c
-select_OBJECTS = select.$(OBJEXT)
-select_LDADD = $(LDADD)
-select_DEPENDENCIES = libtests.a
-semop_SOURCES = semop.c
-semop_OBJECTS = semop.$(OBJEXT)
-semop_LDADD = $(LDADD)
-semop_DEPENDENCIES = libtests.a
-sendfile_SOURCES = sendfile.c
-sendfile_OBJECTS = sendfile.$(OBJEXT)
-sendfile_LDADD = $(LDADD)
-sendfile_DEPENDENCIES = libtests.a
-sendfile64_SOURCES = sendfile64.c
-sendfile64_OBJECTS = sendfile64.$(OBJEXT)
-sendfile64_LDADD = $(LDADD)
-sendfile64_DEPENDENCIES = libtests.a
-set_mempolicy_SOURCES = set_mempolicy.c
-set_mempolicy_OBJECTS = set_mempolicy.$(OBJEXT)
-set_mempolicy_LDADD = $(LDADD)
-set_mempolicy_DEPENDENCIES = libtests.a
-set_ptracer_any_SOURCES = set_ptracer_any.c
-set_ptracer_any_OBJECTS = set_ptracer_any.$(OBJEXT)
-set_ptracer_any_LDADD = $(LDADD)
-set_ptracer_any_DEPENDENCIES = libtests.a
-setdomainname_SOURCES = setdomainname.c
-setdomainname_OBJECTS = setdomainname.$(OBJEXT)
-setdomainname_LDADD = $(LDADD)
-setdomainname_DEPENDENCIES = libtests.a
-setfsgid_SOURCES = setfsgid.c
-setfsgid_OBJECTS = setfsgid.$(OBJEXT)
-setfsgid_LDADD = $(LDADD)
-setfsgid_DEPENDENCIES = libtests.a
-setfsgid32_SOURCES = setfsgid32.c
-setfsgid32_OBJECTS = setfsgid32.$(OBJEXT)
-setfsgid32_LDADD = $(LDADD)
-setfsgid32_DEPENDENCIES = libtests.a
-setfsuid_SOURCES = setfsuid.c
-setfsuid_OBJECTS = setfsuid.$(OBJEXT)
-setfsuid_LDADD = $(LDADD)
-setfsuid_DEPENDENCIES = libtests.a
-setfsuid32_SOURCES = setfsuid32.c
-setfsuid32_OBJECTS = setfsuid32.$(OBJEXT)
-setfsuid32_LDADD = $(LDADD)
-setfsuid32_DEPENDENCIES = libtests.a
-setgid_SOURCES = setgid.c
-setgid_OBJECTS = setgid.$(OBJEXT)
-setgid_LDADD = $(LDADD)
-setgid_DEPENDENCIES = libtests.a
-setgid32_SOURCES = setgid32.c
-setgid32_OBJECTS = setgid32.$(OBJEXT)
-setgid32_LDADD = $(LDADD)
-setgid32_DEPENDENCIES = libtests.a
-setgroups_SOURCES = setgroups.c
-setgroups_OBJECTS = setgroups.$(OBJEXT)
-setgroups_LDADD = $(LDADD)
-setgroups_DEPENDENCIES = libtests.a
-setgroups32_SOURCES = setgroups32.c
-setgroups32_OBJECTS = setgroups32.$(OBJEXT)
-setgroups32_LDADD = $(LDADD)
-setgroups32_DEPENDENCIES = libtests.a
-sethostname_SOURCES = sethostname.c
-sethostname_OBJECTS = sethostname.$(OBJEXT)
-sethostname_LDADD = $(LDADD)
-sethostname_DEPENDENCIES = libtests.a
-setns_SOURCES = setns.c
-setns_OBJECTS = setns.$(OBJEXT)
-setns_LDADD = $(LDADD)
-setns_DEPENDENCIES = libtests.a
-setregid_SOURCES = setregid.c
-setregid_OBJECTS = setregid.$(OBJEXT)
-setregid_LDADD = $(LDADD)
-setregid_DEPENDENCIES = libtests.a
-setregid32_SOURCES = setregid32.c
-setregid32_OBJECTS = setregid32.$(OBJEXT)
-setregid32_LDADD = $(LDADD)
-setregid32_DEPENDENCIES = libtests.a
-setresgid_SOURCES = setresgid.c
-setresgid_OBJECTS = setresgid.$(OBJEXT)
-setresgid_LDADD = $(LDADD)
-setresgid_DEPENDENCIES = libtests.a
-setresgid32_SOURCES = setresgid32.c
-setresgid32_OBJECTS = setresgid32.$(OBJEXT)
-setresgid32_LDADD = $(LDADD)
-setresgid32_DEPENDENCIES = libtests.a
-setresuid_SOURCES = setresuid.c
-setresuid_OBJECTS = setresuid.$(OBJEXT)
-setresuid_LDADD = $(LDADD)
-setresuid_DEPENDENCIES = libtests.a
-setresuid32_SOURCES = setresuid32.c
-setresuid32_OBJECTS = setresuid32.$(OBJEXT)
-setresuid32_LDADD = $(LDADD)
-setresuid32_DEPENDENCIES = libtests.a
-setreuid_SOURCES = setreuid.c
-setreuid_OBJECTS = setreuid.$(OBJEXT)
-setreuid_LDADD = $(LDADD)
-setreuid_DEPENDENCIES = libtests.a
-setreuid32_SOURCES = setreuid32.c
-setreuid32_OBJECTS = setreuid32.$(OBJEXT)
-setreuid32_LDADD = $(LDADD)
-setreuid32_DEPENDENCIES = libtests.a
-setrlimit_SOURCES = setrlimit.c
-setrlimit_OBJECTS = setrlimit.$(OBJEXT)
-setrlimit_LDADD = $(LDADD)
-setrlimit_DEPENDENCIES = libtests.a
-setuid_SOURCES = setuid.c
-setuid_OBJECTS = setuid.$(OBJEXT)
-setuid_LDADD = $(LDADD)
-setuid_DEPENDENCIES = libtests.a
-setuid32_SOURCES = setuid32.c
-setuid32_OBJECTS = setuid32.$(OBJEXT)
-setuid32_LDADD = $(LDADD)
-setuid32_DEPENDENCIES = libtests.a
-shmxt_SOURCES = shmxt.c
-shmxt_OBJECTS = shmxt.$(OBJEXT)
-shmxt_LDADD = $(LDADD)
-shmxt_DEPENDENCIES = libtests.a
-shutdown_SOURCES = shutdown.c
-shutdown_OBJECTS = shutdown.$(OBJEXT)
-shutdown_LDADD = $(LDADD)
-shutdown_DEPENDENCIES = libtests.a
-sigaction_SOURCES = sigaction.c
-sigaction_OBJECTS = sigaction.$(OBJEXT)
-sigaction_LDADD = $(LDADD)
-sigaction_DEPENDENCIES = libtests.a
-sigaltstack_SOURCES = sigaltstack.c
-sigaltstack_OBJECTS = sigaltstack.$(OBJEXT)
-sigaltstack_LDADD = $(LDADD)
-sigaltstack_DEPENDENCIES = libtests.a
-siginfo_SOURCES = siginfo.c
-siginfo_OBJECTS = siginfo.$(OBJEXT)
-siginfo_LDADD = $(LDADD)
-siginfo_DEPENDENCIES = libtests.a
-signal_receive_SOURCES = signal_receive.c
-signal_receive_OBJECTS = signal_receive.$(OBJEXT)
-signal_receive_LDADD = $(LDADD)
-signal_receive_DEPENDENCIES = libtests.a
-signalfd4_SOURCES = signalfd4.c
-signalfd4_OBJECTS = signalfd4.$(OBJEXT)
-signalfd4_LDADD = $(LDADD)
-signalfd4_DEPENDENCIES = libtests.a
-sigreturn_SOURCES = sigreturn.c
-sigreturn_OBJECTS = sigreturn.$(OBJEXT)
-sigreturn_LDADD = $(LDADD)
-sigreturn_DEPENDENCIES = libtests.a
-sigsuspend_SOURCES = sigsuspend.c
-sigsuspend_OBJECTS = sigsuspend.$(OBJEXT)
-sigsuspend_LDADD = $(LDADD)
-sigsuspend_DEPENDENCIES = libtests.a
-sleep_SOURCES = sleep.c
-sleep_OBJECTS = sleep.$(OBJEXT)
-sleep_LDADD = $(LDADD)
-sleep_DEPENDENCIES = libtests.a
-socketcall_SOURCES = socketcall.c
-socketcall_OBJECTS = socketcall.$(OBJEXT)
-socketcall_LDADD = $(LDADD)
-socketcall_DEPENDENCIES = libtests.a
-splice_SOURCES = splice.c
-splice_OBJECTS = splice.$(OBJEXT)
-splice_LDADD = $(LDADD)
-splice_DEPENDENCIES = libtests.a
-am_stack_fcall_OBJECTS = stack-fcall.$(OBJEXT) stack-fcall-0.$(OBJEXT) \
-	stack-fcall-1.$(OBJEXT) stack-fcall-2.$(OBJEXT) \
-	stack-fcall-3.$(OBJEXT)
-stack_fcall_OBJECTS = $(am_stack_fcall_OBJECTS)
-stack_fcall_LDADD = $(LDADD)
-stack_fcall_DEPENDENCIES = libtests.a
-stat_SOURCES = stat.c
-stat_OBJECTS = stat.$(OBJEXT)
-stat_LDADD = $(LDADD)
-stat_DEPENDENCIES = libtests.a
-stat64_SOURCES = stat64.c
-stat64_OBJECTS = stat64-stat64.$(OBJEXT)
-stat64_LDADD = $(LDADD)
-stat64_DEPENDENCIES = libtests.a
-statfs_SOURCES = statfs.c
-statfs_OBJECTS = statfs-statfs.$(OBJEXT)
-statfs_LDADD = $(LDADD)
-statfs_DEPENDENCIES = libtests.a
-statfs64_SOURCES = statfs64.c
-statfs64_OBJECTS = statfs64.$(OBJEXT)
-statfs64_LDADD = $(LDADD)
-statfs64_DEPENDENCIES = libtests.a
-statx_SOURCES = statx.c
-statx_OBJECTS = statx.$(OBJEXT)
-statx_LDADD = $(LDADD)
-statx_DEPENDENCIES = libtests.a
-swap_SOURCES = swap.c
-swap_OBJECTS = swap.$(OBJEXT)
-swap_LDADD = $(LDADD)
-swap_DEPENDENCIES = libtests.a
-sxetmask_SOURCES = sxetmask.c
-sxetmask_OBJECTS = sxetmask.$(OBJEXT)
-sxetmask_LDADD = $(LDADD)
-sxetmask_DEPENDENCIES = libtests.a
-symlink_SOURCES = symlink.c
-symlink_OBJECTS = symlink.$(OBJEXT)
-symlink_LDADD = $(LDADD)
-symlink_DEPENDENCIES = libtests.a
-symlinkat_SOURCES = symlinkat.c
-symlinkat_OBJECTS = symlinkat.$(OBJEXT)
-symlinkat_LDADD = $(LDADD)
-symlinkat_DEPENDENCIES = libtests.a
-sync_SOURCES = sync.c
-sync_OBJECTS = sync.$(OBJEXT)
-sync_LDADD = $(LDADD)
-sync_DEPENDENCIES = libtests.a
-sync_file_range_SOURCES = sync_file_range.c
-sync_file_range_OBJECTS = sync_file_range.$(OBJEXT)
-sync_file_range_LDADD = $(LDADD)
-sync_file_range_DEPENDENCIES = libtests.a
-sync_file_range2_SOURCES = sync_file_range2.c
-sync_file_range2_OBJECTS = sync_file_range2.$(OBJEXT)
-sync_file_range2_LDADD = $(LDADD)
-sync_file_range2_DEPENDENCIES = libtests.a
-sysinfo_SOURCES = sysinfo.c
-sysinfo_OBJECTS = sysinfo.$(OBJEXT)
-sysinfo_LDADD = $(LDADD)
-sysinfo_DEPENDENCIES = libtests.a
-syslog_SOURCES = syslog.c
-syslog_OBJECTS = syslog.$(OBJEXT)
-syslog_LDADD = $(LDADD)
-syslog_DEPENDENCIES = libtests.a
-tee_SOURCES = tee.c
-tee_OBJECTS = tee.$(OBJEXT)
-tee_LDADD = $(LDADD)
-tee_DEPENDENCIES = libtests.a
-threads_execve_SOURCES = threads-execve.c
-threads_execve_OBJECTS = threads-execve.$(OBJEXT)
-threads_execve_DEPENDENCIES = $(LDADD)
-time_SOURCES = time.c
-time_OBJECTS = time.$(OBJEXT)
-time_LDADD = $(LDADD)
-time_DEPENDENCIES = libtests.a
-timer_create_SOURCES = timer_create.c
-timer_create_OBJECTS = timer_create.$(OBJEXT)
-timer_create_LDADD = $(LDADD)
-timer_create_DEPENDENCIES = libtests.a
-timer_xettime_SOURCES = timer_xettime.c
-timer_xettime_OBJECTS = timer_xettime.$(OBJEXT)
-timer_xettime_LDADD = $(LDADD)
-timer_xettime_DEPENDENCIES = libtests.a
-timerfd_xettime_SOURCES = timerfd_xettime.c
-timerfd_xettime_OBJECTS = timerfd_xettime.$(OBJEXT)
-timerfd_xettime_LDADD = $(LDADD)
-timerfd_xettime_DEPENDENCIES = libtests.a
-times_SOURCES = times.c
-times_OBJECTS = times.$(OBJEXT)
-times_DEPENDENCIES = $(LDADD)
-times_fail_SOURCES = times-fail.c
-times_fail_OBJECTS = times-fail.$(OBJEXT)
-times_fail_LDADD = $(LDADD)
-times_fail_DEPENDENCIES = libtests.a
-truncate_SOURCES = truncate.c
-truncate_OBJECTS = truncate.$(OBJEXT)
-truncate_LDADD = $(LDADD)
-truncate_DEPENDENCIES = libtests.a
-truncate64_SOURCES = truncate64.c
-truncate64_OBJECTS = truncate64-truncate64.$(OBJEXT)
-truncate64_LDADD = $(LDADD)
-truncate64_DEPENDENCIES = libtests.a
-ugetrlimit_SOURCES = ugetrlimit.c
-ugetrlimit_OBJECTS = ugetrlimit.$(OBJEXT)
-ugetrlimit_LDADD = $(LDADD)
-ugetrlimit_DEPENDENCIES = libtests.a
-uio_SOURCES = uio.c
-uio_OBJECTS = uio-uio.$(OBJEXT)
-uio_LDADD = $(LDADD)
-uio_DEPENDENCIES = libtests.a
-umask_SOURCES = umask.c
-umask_OBJECTS = umask.$(OBJEXT)
-umask_LDADD = $(LDADD)
-umask_DEPENDENCIES = libtests.a
-umount_SOURCES = umount.c
-umount_OBJECTS = umount.$(OBJEXT)
-umount_LDADD = $(LDADD)
-umount_DEPENDENCIES = libtests.a
-umount2_SOURCES = umount2.c
-umount2_OBJECTS = umount2.$(OBJEXT)
-umount2_LDADD = $(LDADD)
-umount2_DEPENDENCIES = libtests.a
-umoven_illptr_SOURCES = umoven-illptr.c
-umoven_illptr_OBJECTS = umoven-illptr.$(OBJEXT)
-umoven_illptr_LDADD = $(LDADD)
-umoven_illptr_DEPENDENCIES = libtests.a
-umovestr_SOURCES = umovestr.c
-umovestr_OBJECTS = umovestr.$(OBJEXT)
-umovestr_LDADD = $(LDADD)
-umovestr_DEPENDENCIES = libtests.a
-umovestr_illptr_SOURCES = umovestr-illptr.c
-umovestr_illptr_OBJECTS = umovestr-illptr.$(OBJEXT)
-umovestr_illptr_LDADD = $(LDADD)
-umovestr_illptr_DEPENDENCIES = libtests.a
-umovestr2_SOURCES = umovestr2.c
-umovestr2_OBJECTS = umovestr2.$(OBJEXT)
-umovestr2_LDADD = $(LDADD)
-umovestr2_DEPENDENCIES = libtests.a
-umovestr3_SOURCES = umovestr3.c
-umovestr3_OBJECTS = umovestr3.$(OBJEXT)
-umovestr3_LDADD = $(LDADD)
-umovestr3_DEPENDENCIES = libtests.a
-uname_SOURCES = uname.c
-uname_OBJECTS = uname.$(OBJEXT)
-uname_LDADD = $(LDADD)
-uname_DEPENDENCIES = libtests.a
-unix_pair_send_recv_SOURCES = unix-pair-send-recv.c
-unix_pair_send_recv_OBJECTS = unix-pair-send-recv.$(OBJEXT)
-unix_pair_send_recv_LDADD = $(LDADD)
-unix_pair_send_recv_DEPENDENCIES = libtests.a
-unix_pair_sendto_recvfrom_SOURCES = unix-pair-sendto-recvfrom.c
-unix_pair_sendto_recvfrom_OBJECTS =  \
-	unix-pair-sendto-recvfrom.$(OBJEXT)
-unix_pair_sendto_recvfrom_LDADD = $(LDADD)
-unix_pair_sendto_recvfrom_DEPENDENCIES = libtests.a
-unlink_SOURCES = unlink.c
-unlink_OBJECTS = unlink.$(OBJEXT)
-unlink_LDADD = $(LDADD)
-unlink_DEPENDENCIES = libtests.a
-unlinkat_SOURCES = unlinkat.c
-unlinkat_OBJECTS = unlinkat.$(OBJEXT)
-unlinkat_LDADD = $(LDADD)
-unlinkat_DEPENDENCIES = libtests.a
-unshare_SOURCES = unshare.c
-unshare_OBJECTS = unshare.$(OBJEXT)
-unshare_LDADD = $(LDADD)
-unshare_DEPENDENCIES = libtests.a
-userfaultfd_SOURCES = userfaultfd.c
-userfaultfd_OBJECTS = userfaultfd.$(OBJEXT)
-userfaultfd_LDADD = $(LDADD)
-userfaultfd_DEPENDENCIES = libtests.a
-ustat_SOURCES = ustat.c
-ustat_OBJECTS = ustat.$(OBJEXT)
-ustat_LDADD = $(LDADD)
-ustat_DEPENDENCIES = libtests.a
-utime_SOURCES = utime.c
-utime_OBJECTS = utime.$(OBJEXT)
-utime_LDADD = $(LDADD)
-utime_DEPENDENCIES = libtests.a
-utimensat_SOURCES = utimensat.c
-utimensat_OBJECTS = utimensat.$(OBJEXT)
-utimensat_LDADD = $(LDADD)
-utimensat_DEPENDENCIES = libtests.a
-utimes_SOURCES = utimes.c
-utimes_OBJECTS = utimes.$(OBJEXT)
-utimes_LDADD = $(LDADD)
-utimes_DEPENDENCIES = libtests.a
-vfork_f_SOURCES = vfork-f.c
-vfork_f_OBJECTS = vfork-f.$(OBJEXT)
-vfork_f_LDADD = $(LDADD)
-vfork_f_DEPENDENCIES = libtests.a
-vhangup_SOURCES = vhangup.c
-vhangup_OBJECTS = vhangup.$(OBJEXT)
-vhangup_LDADD = $(LDADD)
-vhangup_DEPENDENCIES = libtests.a
-vmsplice_SOURCES = vmsplice.c
-vmsplice_OBJECTS = vmsplice.$(OBJEXT)
-vmsplice_LDADD = $(LDADD)
-vmsplice_DEPENDENCIES = libtests.a
-wait4_SOURCES = wait4.c
-wait4_OBJECTS = wait4.$(OBJEXT)
-wait4_LDADD = $(LDADD)
-wait4_DEPENDENCIES = libtests.a
-wait4_v_SOURCES = wait4-v.c
-wait4_v_OBJECTS = wait4-v.$(OBJEXT)
-wait4_v_LDADD = $(LDADD)
-wait4_v_DEPENDENCIES = libtests.a
-waitid_SOURCES = waitid.c
-waitid_OBJECTS = waitid.$(OBJEXT)
-waitid_LDADD = $(LDADD)
-waitid_DEPENDENCIES = libtests.a
-waitid_v_SOURCES = waitid-v.c
-waitid_v_OBJECTS = waitid-v.$(OBJEXT)
-waitid_v_LDADD = $(LDADD)
-waitid_v_DEPENDENCIES = libtests.a
-waitpid_SOURCES = waitpid.c
-waitpid_OBJECTS = waitpid.$(OBJEXT)
-waitpid_LDADD = $(LDADD)
-waitpid_DEPENDENCIES = libtests.a
-xattr_SOURCES = xattr.c
-xattr_OBJECTS = xattr.$(OBJEXT)
-xattr_LDADD = $(LDADD)
-xattr_DEPENDENCIES = libtests.a
-xattr_strings_SOURCES = xattr-strings.c
-xattr_strings_OBJECTS = xattr-strings.$(OBJEXT)
-xattr_strings_LDADD = $(LDADD)
-xattr_strings_DEPENDENCIES = libtests.a
-xet_robust_list_SOURCES = xet_robust_list.c
-xet_robust_list_OBJECTS = xet_robust_list.$(OBJEXT)
-xet_robust_list_LDADD = $(LDADD)
-xet_robust_list_DEPENDENCIES = libtests.a
-xetitimer_SOURCES = xetitimer.c
-xetitimer_OBJECTS = xetitimer.$(OBJEXT)
-xetitimer_LDADD = $(LDADD)
-xetitimer_DEPENDENCIES = libtests.a
-xetpgid_SOURCES = xetpgid.c
-xetpgid_OBJECTS = xetpgid.$(OBJEXT)
-xetpgid_LDADD = $(LDADD)
-xetpgid_DEPENDENCIES = libtests.a
-xetpriority_SOURCES = xetpriority.c
-xetpriority_OBJECTS = xetpriority.$(OBJEXT)
-xetpriority_LDADD = $(LDADD)
-xetpriority_DEPENDENCIES = libtests.a
-xettimeofday_SOURCES = xettimeofday.c
-xettimeofday_OBJECTS = xettimeofday.$(OBJEXT)
-xettimeofday_LDADD = $(LDADD)
-xettimeofday_DEPENDENCIES = libtests.a
-AM_V_P = $(am__v_P_$(V))
-am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_$(V))
-am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_$(V))
-am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
-am__v_at_0 = @
-am__v_at_1 = 
-DEFAULT_INCLUDES = 
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
-am__v_lt_0 = --silent
-am__v_lt_1 = 
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_$(V))
-am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
-am__v_CC_0 = @echo "  CC      " $@;
-am__v_CC_1 = 
-CCLD = $(CC)
-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_$(V))
-am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
-am__v_CCLD_0 = @echo "  CCLD    " $@;
-am__v_CCLD_1 = 
-SOURCES = $(libtests_a_SOURCES) _newselect.c accept.c accept4.c \
-	access.c acct.c add_key.c adjtimex.c aio.c alarm.c answer.c \
-	attach-f-p.c attach-f-p-cmd.c attach-p-cmd-cmd.c \
-	attach-p-cmd-p.c bpf.c brk.c btrfs.c caps.c caps-abbrev.c \
-	chmod.c chown.c chown32.c chroot.c clock_adjtime.c \
-	clock_nanosleep.c clock_xettime.c copy_file_range.c count-f.c \
-	creat.c delete_module.c dup.c dup2.c dup3.c epoll_create.c \
-	epoll_create1.c epoll_ctl.c epoll_pwait.c epoll_wait.c \
-	erestartsys.c eventfd.c execve.c execve-v.c execveat.c \
-	execveat-v.c faccessat.c fadvise64.c fadvise64_64.c \
-	fallocate.c fanotify_init.c fanotify_mark.c fchdir.c fchmod.c \
-	fchmodat.c fchown.c fchown32.c fchownat.c fcntl.c fcntl64.c \
-	fdatasync.c file_handle.c file_ioctl.c filter-unavailable.c \
-	finit_module.c flock.c fork-f.c fstat.c fstat64.c fstatat64.c \
-	fstatfs.c fstatfs64.c fsync.c ftruncate.c ftruncate64.c \
-	futex.c futimesat.c get_mempolicy.c getcpu.c getcwd.c \
-	getdents.c getdents64.c getegid.c getegid32.c geteuid.c \
-	geteuid32.c getgid.c getgid32.c getgroups.c getgroups32.c \
-	getpeername.c getpgrp.c getpid.c getppid.c getrandom.c \
-	getresgid.c getresgid32.c getresuid.c getresuid32.c \
-	getrlimit.c getrusage.c getsid.c getsockname.c gettid.c \
-	getuid.c getuid32.c getxxid.c inet-cmsg.c init_module.c \
-	inotify.c inotify_init1.c int_0x80.c ioctl.c ioctl_block.c \
-	ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-v.c \
-	ioctl_loop.c ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c \
-	ioctl_nsfs.c ioctl_rtc.c ioctl_rtc-v.c ioctl_scsi.c \
-	ioctl_sg_io_v3.c ioctl_sg_io_v4.c ioctl_sock_gifconf.c \
-	ioctl_uffdio.c ioctl_v4l2.c ioperm.c iopl.c ioprio.c ip_mreq.c \
-	ipc.c ipc_msg.c ipc_msgbuf.c ipc_sem.c ipc_shm.c kcmp.c \
-	kexec_file_load.c kexec_load.c keyctl.c kill.c ksysent.c \
-	lchown.c lchown32.c link.c linkat.c llseek.c lookup_dcookie.c \
-	lseek.c lstat.c lstat64.c madvise.c mbind.c membarrier.c \
-	memfd_create.c migrate_pages.c mincore.c mkdir.c mkdirat.c \
-	mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c mmap64.c \
-	mmsg.c mmsg-silent.c mmsg_name.c mmsg_name-v.c mount.c \
-	move_pages.c mq.c mq_sendrecv.c mq_sendrecv-read.c \
-	mq_sendrecv-write.c msg_control.c msg_control-v.c msg_name.c \
-	munlockall.c nanosleep.c net-accept-connect.c \
-	net-icmp_filter.c net-sockaddr.c net-y-unix.c net-yy-inet.c \
-	net-yy-netlink.c net-yy-unix.c netlink_inet_diag.c \
-	netlink_netlink_diag.c netlink_protocol.c netlink_unix_diag.c \
-	newfstatat.c nsyscalls.c old_mmap.c oldfstat.c oldlstat.c \
-	oldselect.c oldstat.c open.c openat.c osf_utimes.c pause.c \
-	pc.c perf_event_open.c perf_event_open_nonverbose.c \
-	perf_event_open_unabbrev.c personality.c pipe.c pipe2.c \
-	pkey_alloc.c pkey_free.c pkey_mprotect.c poll.c ppoll.c \
-	ppoll-v.c prctl-arg2-intptr.c prctl-dumpable.c prctl-name.c \
-	prctl-no-args.c prctl-pdeathsig.c prctl-seccomp-filter-v.c \
-	prctl-seccomp-strict.c prctl-securebits.c prctl-tid_address.c \
-	prctl-tsc.c pread64-pwrite64.c preadv.c preadv-pwritev.c \
-	preadv2-pwritev2.c print_maxfd.c printstr.c prlimit64.c \
-	process_vm_readv.c process_vm_writev.c pselect6.c ptrace.c \
-	pwritev.c qual_fault.c qual_inject-error-signal.c \
-	qual_inject-retval.c qual_inject-signal.c qual_signal.c \
-	quotactl.c quotactl-v.c quotactl-xfs.c quotactl-xfs-v.c \
-	read-write.c readahead.c readdir.c readlink.c readlinkat.c \
-	readv.c reboot.c recvfrom.c recvmmsg-timeout.c recvmsg.c \
-	redirect-fds.c remap_file_pages.c rename.c renameat.c \
-	renameat2.c request_key.c restart_syscall.c rmdir.c \
-	rt_sigpending.c rt_sigprocmask.c rt_sigqueueinfo.c \
-	rt_sigreturn.c rt_sigsuspend.c rt_sigtimedwait.c \
-	rt_tgsigqueueinfo.c sched_get_priority_mxx.c \
-	sched_rr_get_interval.c sched_xetaffinity.c sched_xetattr.c \
-	sched_xetparam.c sched_xetscheduler.c sched_yield.c \
-	scm_rights.c seccomp-filter.c seccomp-filter-v.c \
-	seccomp-strict.c select.c semop.c sendfile.c sendfile64.c \
-	set_mempolicy.c set_ptracer_any.c setdomainname.c setfsgid.c \
-	setfsgid32.c setfsuid.c setfsuid32.c setgid.c setgid32.c \
-	setgroups.c setgroups32.c sethostname.c setns.c setregid.c \
-	setregid32.c setresgid.c setresgid32.c setresuid.c \
-	setresuid32.c setreuid.c setreuid32.c setrlimit.c setuid.c \
-	setuid32.c shmxt.c shutdown.c sigaction.c sigaltstack.c \
-	siginfo.c signal_receive.c signalfd4.c sigreturn.c \
-	sigsuspend.c sleep.c socketcall.c splice.c \
-	$(stack_fcall_SOURCES) stat.c stat64.c statfs.c statfs64.c \
-	statx.c swap.c sxetmask.c symlink.c symlinkat.c sync.c \
-	sync_file_range.c sync_file_range2.c sysinfo.c syslog.c tee.c \
-	threads-execve.c time.c timer_create.c timer_xettime.c \
-	timerfd_xettime.c times.c times-fail.c truncate.c truncate64.c \
-	ugetrlimit.c uio.c umask.c umount.c umount2.c umoven-illptr.c \
-	umovestr.c umovestr-illptr.c umovestr2.c umovestr3.c uname.c \
-	unix-pair-send-recv.c unix-pair-sendto-recvfrom.c unlink.c \
-	unlinkat.c unshare.c userfaultfd.c ustat.c utime.c utimensat.c \
-	utimes.c vfork-f.c vhangup.c vmsplice.c wait4.c wait4-v.c \
-	waitid.c waitid-v.c waitpid.c xattr.c xattr-strings.c \
-	xet_robust_list.c xetitimer.c xetpgid.c xetpriority.c \
-	xettimeofday.c
-DIST_SOURCES = $(libtests_a_SOURCES) _newselect.c accept.c accept4.c \
-	access.c acct.c add_key.c adjtimex.c aio.c alarm.c answer.c \
-	attach-f-p.c attach-f-p-cmd.c attach-p-cmd-cmd.c \
-	attach-p-cmd-p.c bpf.c brk.c btrfs.c caps.c caps-abbrev.c \
-	chmod.c chown.c chown32.c chroot.c clock_adjtime.c \
-	clock_nanosleep.c clock_xettime.c copy_file_range.c count-f.c \
-	creat.c delete_module.c dup.c dup2.c dup3.c epoll_create.c \
-	epoll_create1.c epoll_ctl.c epoll_pwait.c epoll_wait.c \
-	erestartsys.c eventfd.c execve.c execve-v.c execveat.c \
-	execveat-v.c faccessat.c fadvise64.c fadvise64_64.c \
-	fallocate.c fanotify_init.c fanotify_mark.c fchdir.c fchmod.c \
-	fchmodat.c fchown.c fchown32.c fchownat.c fcntl.c fcntl64.c \
-	fdatasync.c file_handle.c file_ioctl.c filter-unavailable.c \
-	finit_module.c flock.c fork-f.c fstat.c fstat64.c fstatat64.c \
-	fstatfs.c fstatfs64.c fsync.c ftruncate.c ftruncate64.c \
-	futex.c futimesat.c get_mempolicy.c getcpu.c getcwd.c \
-	getdents.c getdents64.c getegid.c getegid32.c geteuid.c \
-	geteuid32.c getgid.c getgid32.c getgroups.c getgroups32.c \
-	getpeername.c getpgrp.c getpid.c getppid.c getrandom.c \
-	getresgid.c getresgid32.c getresuid.c getresuid32.c \
-	getrlimit.c getrusage.c getsid.c getsockname.c gettid.c \
-	getuid.c getuid32.c getxxid.c inet-cmsg.c init_module.c \
-	inotify.c inotify_init1.c int_0x80.c ioctl.c ioctl_block.c \
-	ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-v.c \
-	ioctl_loop.c ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c \
-	ioctl_nsfs.c ioctl_rtc.c ioctl_rtc-v.c ioctl_scsi.c \
-	ioctl_sg_io_v3.c ioctl_sg_io_v4.c ioctl_sock_gifconf.c \
-	ioctl_uffdio.c ioctl_v4l2.c ioperm.c iopl.c ioprio.c ip_mreq.c \
-	ipc.c ipc_msg.c ipc_msgbuf.c ipc_sem.c ipc_shm.c kcmp.c \
-	kexec_file_load.c kexec_load.c keyctl.c kill.c ksysent.c \
-	lchown.c lchown32.c link.c linkat.c llseek.c lookup_dcookie.c \
-	lseek.c lstat.c lstat64.c madvise.c mbind.c membarrier.c \
-	memfd_create.c migrate_pages.c mincore.c mkdir.c mkdirat.c \
-	mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c mmap64.c \
-	mmsg.c mmsg-silent.c mmsg_name.c mmsg_name-v.c mount.c \
-	move_pages.c mq.c mq_sendrecv.c mq_sendrecv-read.c \
-	mq_sendrecv-write.c msg_control.c msg_control-v.c msg_name.c \
-	munlockall.c nanosleep.c net-accept-connect.c \
-	net-icmp_filter.c net-sockaddr.c net-y-unix.c net-yy-inet.c \
-	net-yy-netlink.c net-yy-unix.c netlink_inet_diag.c \
-	netlink_netlink_diag.c netlink_protocol.c netlink_unix_diag.c \
-	newfstatat.c nsyscalls.c old_mmap.c oldfstat.c oldlstat.c \
-	oldselect.c oldstat.c open.c openat.c osf_utimes.c pause.c \
-	pc.c perf_event_open.c perf_event_open_nonverbose.c \
-	perf_event_open_unabbrev.c personality.c pipe.c pipe2.c \
-	pkey_alloc.c pkey_free.c pkey_mprotect.c poll.c ppoll.c \
-	ppoll-v.c prctl-arg2-intptr.c prctl-dumpable.c prctl-name.c \
-	prctl-no-args.c prctl-pdeathsig.c prctl-seccomp-filter-v.c \
-	prctl-seccomp-strict.c prctl-securebits.c prctl-tid_address.c \
-	prctl-tsc.c pread64-pwrite64.c preadv.c preadv-pwritev.c \
-	preadv2-pwritev2.c print_maxfd.c printstr.c prlimit64.c \
-	process_vm_readv.c process_vm_writev.c pselect6.c ptrace.c \
-	pwritev.c qual_fault.c qual_inject-error-signal.c \
-	qual_inject-retval.c qual_inject-signal.c qual_signal.c \
-	quotactl.c quotactl-v.c quotactl-xfs.c quotactl-xfs-v.c \
-	read-write.c readahead.c readdir.c readlink.c readlinkat.c \
-	readv.c reboot.c recvfrom.c recvmmsg-timeout.c recvmsg.c \
-	redirect-fds.c remap_file_pages.c rename.c renameat.c \
-	renameat2.c request_key.c restart_syscall.c rmdir.c \
-	rt_sigpending.c rt_sigprocmask.c rt_sigqueueinfo.c \
-	rt_sigreturn.c rt_sigsuspend.c rt_sigtimedwait.c \
-	rt_tgsigqueueinfo.c sched_get_priority_mxx.c \
-	sched_rr_get_interval.c sched_xetaffinity.c sched_xetattr.c \
-	sched_xetparam.c sched_xetscheduler.c sched_yield.c \
-	scm_rights.c seccomp-filter.c seccomp-filter-v.c \
-	seccomp-strict.c select.c semop.c sendfile.c sendfile64.c \
-	set_mempolicy.c set_ptracer_any.c setdomainname.c setfsgid.c \
-	setfsgid32.c setfsuid.c setfsuid32.c setgid.c setgid32.c \
-	setgroups.c setgroups32.c sethostname.c setns.c setregid.c \
-	setregid32.c setresgid.c setresgid32.c setresuid.c \
-	setresuid32.c setreuid.c setreuid32.c setrlimit.c setuid.c \
-	setuid32.c shmxt.c shutdown.c sigaction.c sigaltstack.c \
-	siginfo.c signal_receive.c signalfd4.c sigreturn.c \
-	sigsuspend.c sleep.c socketcall.c splice.c \
-	$(stack_fcall_SOURCES) stat.c stat64.c statfs.c statfs64.c \
-	statx.c swap.c sxetmask.c symlink.c symlinkat.c sync.c \
-	sync_file_range.c sync_file_range2.c sysinfo.c syslog.c tee.c \
-	threads-execve.c time.c timer_create.c timer_xettime.c \
-	timerfd_xettime.c times.c times-fail.c truncate.c truncate64.c \
-	ugetrlimit.c uio.c umask.c umount.c umount2.c umoven-illptr.c \
-	umovestr.c umovestr-illptr.c umovestr2.c umovestr3.c uname.c \
-	unix-pair-send-recv.c unix-pair-sendto-recvfrom.c unlink.c \
-	unlinkat.c unshare.c userfaultfd.c ustat.c utime.c utimensat.c \
-	utimes.c vfork-f.c vhangup.c vmsplice.c wait4.c wait4-v.c \
-	waitid.c waitid-v.c waitpid.c xattr.c xattr-strings.c \
-	xet_robust_list.c xetitimer.c xetpgid.c xetpriority.c \
-	xettimeofday.c
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__extra_recursive_targets = check-valgrind-recursive
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-am__tty_colors_dummy = \
-  mgn= red= grn= lgn= blu= brg= std=; \
-  am__color_tests=no
-am__tty_colors = { \
-  $(am__tty_colors_dummy); \
-  if test "X$(AM_COLOR_TESTS)" = Xno; then \
-    am__color_tests=no; \
-  elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
-    am__color_tests=yes; \
-  elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
-    am__color_tests=yes; \
-  fi; \
-  if test $$am__color_tests = yes; then \
-    red='[0;31m'; \
-    grn='[0;32m'; \
-    lgn='[1;32m'; \
-    blu='[1;34m'; \
-    mgn='[0;35m'; \
-    brg='[1m'; \
-    std='[m'; \
-  fi; \
-}
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
-  }
-am__recheck_rx = ^[ 	]*:recheck:[ 	]*
-am__global_test_result_rx = ^[ 	]*:global-test-result:[ 	]*
-am__copy_in_global_log_rx = ^[ 	]*:copy-in-global-log:[ 	]*
-# A command that, given a newline-separated list of test names on the
-# standard input, print the name of the tests that are to be re-run
-# upon "make recheck".
-am__list_recheck_tests = $(AWK) '{ \
-  recheck = 1; \
-  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
-    { \
-      if (rc < 0) \
-        { \
-          if ((getline line2 < ($$0 ".log")) < 0) \
-	    recheck = 0; \
-          break; \
-        } \
-      else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
-        { \
-          recheck = 0; \
-          break; \
-        } \
-      else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
-        { \
-          break; \
-        } \
-    }; \
-  if (recheck) \
-    print $$0; \
-  close ($$0 ".trs"); \
-  close ($$0 ".log"); \
-}'
-# A command that, given a newline-separated list of test names on the
-# standard input, create the global log from their .trs and .log files.
-am__create_global_log = $(AWK) ' \
-function fatal(msg) \
-{ \
-  print "fatal: making $@: " msg | "cat >&2"; \
-  exit 1; \
-} \
-function rst_section(header) \
-{ \
-  print header; \
-  len = length(header); \
-  for (i = 1; i <= len; i = i + 1) \
-    printf "="; \
-  printf "\n\n"; \
-} \
-{ \
-  copy_in_global_log = 1; \
-  global_test_result = "RUN"; \
-  while ((rc = (getline line < ($$0 ".trs"))) != 0) \
-    { \
-      if (rc < 0) \
-         fatal("failed to read from " $$0 ".trs"); \
-      if (line ~ /$(am__global_test_result_rx)/) \
-        { \
-          sub("$(am__global_test_result_rx)", "", line); \
-          sub("[ 	]*$$", "", line); \
-          global_test_result = line; \
-        } \
-      else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
-        copy_in_global_log = 0; \
-    }; \
-  if (copy_in_global_log) \
-    { \
-      rst_section(global_test_result ": " $$0); \
-      while ((rc = (getline line < ($$0 ".log"))) != 0) \
-      { \
-        if (rc < 0) \
-          fatal("failed to read from " $$0 ".log"); \
-        print line; \
-      }; \
-      printf "\n"; \
-    }; \
-  close ($$0 ".trs"); \
-  close ($$0 ".log"); \
-}'
-# Restructured Text title.
-am__rst_title = { sed 's/.*/   &   /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
-# Solaris 10 'make', and several other traditional 'make' implementations,
-# pass "-e" to $(SHELL), and POSIX 2008 even requires this.  Work around it
-# by disabling -e (using the XSI extension "set +e") if it's set.
-am__sh_e_setup = case $$- in *e*) set +e;; esac
-# Default flags passed to test drivers.
-am__common_driver_flags = \
-  --color-tests "$$am__color_tests" \
-  --enable-hard-errors "$$am__enable_hard_errors" \
-  --expect-failure "$$am__expect_failure"
-# To be inserted before the command running the test.  Creates the
-# directory for the log if needed.  Stores in $dir the directory
-# containing $f, in $tst the test, in $log the log.  Executes the
-# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
-# passes TESTS_ENVIRONMENT.  Set up options for the wrapper that
-# will run the test scripts (or their associated LOG_COMPILER, if
-# thy have one).
-am__check_pre = \
-$(am__sh_e_setup);					\
-$(am__vpath_adj_setup) $(am__vpath_adj)			\
-$(am__tty_colors);					\
-srcdir=$(srcdir); export srcdir;			\
-case "$@" in						\
-  */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;;	\
-    *) am__odir=.;; 					\
-esac;							\
-test "x$$am__odir" = x"." || test -d "$$am__odir" 	\
-  || $(MKDIR_P) "$$am__odir" || exit $$?;		\
-if test -f "./$$f"; then dir=./;			\
-elif test -f "$$f"; then dir=;				\
-else dir="$(srcdir)/"; fi;				\
-tst=$$dir$$f; log='$@'; 				\
-if test -n '$(DISABLE_HARD_ERRORS)'; then		\
-  am__enable_hard_errors=no; 				\
-else							\
-  am__enable_hard_errors=yes; 				\
-fi; 							\
-case " $(XFAIL_TESTS) " in				\
-  *[\ \	]$$f[\ \	]* | *[\ \	]$$dir$$f[\ \	]*) \
-    am__expect_failure=yes;;				\
-  *)							\
-    am__expect_failure=no;;				\
-esac; 							\
-$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
-# A shell command to get the names of the tests scripts with any registered
-# extension removed (i.e., equivalently, the names of the test logs, with
-# the '.log' extension removed).  The result is saved in the shell variable
-# '$bases'.  This honors runtime overriding of TESTS and TEST_LOGS.  Sadly,
-# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
-# since that might cause problem with VPATH rewrites for suffix-less tests.
-# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
-am__set_TESTS_bases = \
-  bases='$(TEST_LOGS)'; \
-  bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
-  bases=`echo $$bases`
-RECHECK_LOGS = $(TEST_LOGS)
-AM_RECURSIVE_TARGETS = check recheck
-#am__EXEEXT_2 = strace-k.test
-TEST_SUITE_LOG = test-suite.log
-TEST_EXTENSIONS =  .test
-am__test_logs1 = $(TESTS:=.log)
-am__test_logs2 = $(am__test_logs1:.log=.log)
-TEST_LOGS = $(am__test_logs2:.test.log=.log)
-TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
-TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
-	$(TEST_LOG_FLAGS)
-am__set_b = \
-  case '$@' in \
-    */*) \
-      case '$*' in \
-        */*) b='$*';; \
-          *) b=`echo '$@' | sed 's/\.log$$//'`; \
-       esac;; \
-    *) \
-      b='$*';; \
-  esac
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = ${SHELL} /tmp/strace-4.17/missing aclocal-1.14
-AMTAR = $${TAR-tar}
-AM_DEFAULT_VERBOSITY = 1
-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 = 
-CC = gcc
-CCDEPMODE = depmode=gcc3
-CC_FOR_BUILD = gcc
-CFLAGS = -g -O2
-CFLAGS_FOR_BUILD = -g -O2
-CODE_COVERAGE_CFLAGS = 
-CODE_COVERAGE_CPPFLAGS = 
-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 = Thu, 25 May 2017 15:09:49 -0700
-DEFS = -DHAVE_CONFIG_H
-DEPDIR = .deps
-ECHO_C = 
-ECHO_N = -n
-ECHO_T = 
-EGREP = /bin/grep -E
-ENABLE_VALGRIND_drd = no
-ENABLE_VALGRIND_helgrind = no
-ENABLE_VALGRIND_memcheck = yes
-ENABLE_VALGRIND_sgcheck = 
-EXEEXT = 
-GCOV = 
-GENHTML = 
-GREP = /bin/grep
-INSTALL = /usr/bin/install -c
-INSTALL_DATA = ${INSTALL} -m 644
-INSTALL_PROGRAM = ${INSTALL}
-INSTALL_SCRIPT = ${INSTALL}
-INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
-LCOV = 
-LDFLAGS = 
-LDFLAGS_FOR_BUILD = 
-LIBOBJS = 
-LIBS = 
-LTLIBOBJS = 
-MAINT = #
-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.17
-PACKAGE_TARNAME = strace
-PACKAGE_URL = https://strace.io
-PACKAGE_VERSION = 4.17
-PATH_SEPARATOR = :
-PERL = /usr/bin/perl
-RANLIB = ranlib
-RPM_CHANGELOGTIME = Thu May 25 2017
-SED = /bin/sed
-SET_MAKE = 
-SHELL = /bin/sh
-STRIP = 
-VALGRIND = valgrind
-VALGRIND_ENABLED = yes
-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 = /tmp/strace-4.17/tests
-abs_srcdir = /tmp/strace-4.17/tests
-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
-am__leading_dot = .
-am__quote = 
-am__tar = $${TAR-tar} chof - "$$tardir"
-am__untar = $${TAR-tar} xf -
-arch = x86_64
-arch_m32 = i386
-arch_mx32 = x32
-bindir = ${exec_prefix}/bin
-build = x86_64-pc-linux-gnu
-build_alias = 
-build_cpu = x86_64
-build_os = linux-gnu
-build_vendor = pc
-builddir = .
-datadir = ${datarootdir}
-datarootdir = ${prefix}/share
-dl_LIBS = -ldl
-docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
-dvidir = ${docdir}
-exec_prefix = ${prefix}
-host = x86_64-pc-linux-gnu
-host_alias = 
-host_cpu = x86_64
-host_os = linux-gnu
-host_vendor = pc
-htmldir = ${docdir}
-includedir = ${prefix}/include
-infodir = ${datarootdir}/info
-install_sh = ${SHELL} /tmp/strace-4.17/install-sh
-libdir = ${exec_prefix}/lib
-libexecdir = ${exec_prefix}/libexec
-libunwind_CPPFLAGS = 
-libunwind_LDFLAGS = 
-libunwind_LIBS = 
-localedir = ${datarootdir}/locale
-localstatedir = ${prefix}/var
-mandir = ${datarootdir}/man
-mkdir_p = $(MKDIR_P)
-oldincludedir = /usr/include
-pdfdir = ${docdir}
-prefix = /usr/local
-program_transform_name = s,x,x,
-psdir = ${docdir}
-sbindir = ${exec_prefix}/sbin
-sharedstatedir = ${prefix}/com
-srcdir = .
-sysconfdir = ${prefix}/etc
-target_alias = 
-top_build_prefix = ../
-top_builddir = ..
-top_srcdir = ..
-valgrind_enabled_tools =  memcheck
-valgrind_tools = memcheck helgrind drd sgcheck
-OS = linux
-ARCH = x86_64
-MPERS_NAME = 
-ARCH_MFLAGS = 
-AM_CFLAGS = $(WARN_CFLAGS)
-AM_CPPFLAGS = $(ARCH_MFLAGS) \
-	      -I$(builddir) \
-	      -I$(top_builddir)/$(OS)/$(ARCH) \
-	      -I$(top_srcdir)/$(OS)/$(ARCH) \
-	      -I$(top_builddir)/$(OS) \
-	      -I$(top_srcdir)/$(OS) \
-	      -I$(top_builddir) \
-	      -I$(top_srcdir)
-
-AM_LDFLAGS = $(ARCH_MFLAGS)
-libtests_a_SOURCES = \
-	errno2name.c \
-	error_msg.c \
-	fill_memory.c \
-	get_page_size.c \
-	get_sigset_size.c \
-	hexdump_strdup.c \
-	hexquote_strndup.c \
-	inode_of_sockfd.c \
-	libmmsg.c \
-	libsocketcall.c \
-	overflowuid.c \
-	pipe_maxfd.c \
-	print_quoted_string.c \
-	print_time.c \
-	printflags.c \
-	printxval.c \
-	signal2name.c \
-	skip_unavailable.c \
-	sprintrc.c \
-	tail_alloc.c \
-	tests.h \
-	tprintf.c \
-	# end of libtests_a_SOURCES
-
-libtests_a_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-check_LIBRARIES = libtests.a
-LDADD = libtests.a
-
-# Generated by ./tests/gen_pure_executables.sh from ./tests/pure_executables.list; do not edit.
-PURE_EXECUTABLES = \
-  _newselect \
-  accept \
-  accept4 \
-  access \
-  acct \
-  add_key \
-  adjtimex \
-  aio \
-  alarm \
-  bpf \
-  brk \
-  btrfs \
-  caps \
-  chmod \
-  chown \
-  chown32 \
-  chroot \
-  clock_adjtime \
-  clock_nanosleep \
-  clock_xettime \
-  copy_file_range \
-  creat \
-  delete_module \
-  dup \
-  dup2 \
-  dup3 \
-  epoll_create \
-  epoll_create1 \
-  epoll_ctl \
-  epoll_pwait \
-  epoll_wait \
-  erestartsys \
-  eventfd \
-  execve \
-  execveat \
-  faccessat \
-  fadvise64 \
-  fadvise64_64 \
-  fallocate \
-  fanotify_init \
-  fanotify_mark \
-  fchdir \
-  fchmod \
-  fchmodat \
-  fchown \
-  fchown32 \
-  fchownat \
-  fcntl \
-  fcntl64 \
-  fdatasync \
-  file_handle \
-  file_ioctl \
-  finit_module \
-  flock \
-  fstat \
-  fstat64 \
-  fstatat64 \
-  fstatfs \
-  fstatfs64 \
-  fsync \
-  ftruncate \
-  ftruncate64 \
-  futex \
-  futimesat \
-  get_mempolicy \
-  getcpu \
-  getcwd \
-  getdents \
-  getdents64 \
-  getegid \
-  getegid32 \
-  geteuid \
-  geteuid32 \
-  getgid \
-  getgid32 \
-  getgroups \
-  getgroups32 \
-  getpeername \
-  getpgrp \
-  getpid \
-  getppid \
-  getrandom \
-  getresgid \
-  getresgid32 \
-  getresuid \
-  getresuid32 \
-  getrlimit \
-  getrusage \
-  getsid \
-  getsockname \
-  getuid \
-  getuid32 \
-  getxxid \
-  inet-cmsg \
-  init_module \
-  inotify \
-  inotify_init1 \
-  ioctl \
-  ioctl_block \
-  ioctl_dm \
-  ioctl_evdev \
-  ioctl_loop \
-  ioctl_mtd \
-  ioctl_rtc \
-  ioctl_scsi \
-  ioctl_sg_io_v3 \
-  ioctl_sg_io_v4 \
-  ioctl_sock_gifconf \
-  ioctl_uffdio \
-  ioctl_v4l2 \
-  ioperm \
-  iopl \
-  ioprio \
-  ip_mreq \
-  ipc \
-  ipc_msg \
-  ipc_msgbuf \
-  ipc_sem \
-  ipc_shm \
-  kcmp \
-  kexec_file_load \
-  kexec_load \
-  keyctl \
-  kill \
-  lchown \
-  lchown32 \
-  link \
-  linkat \
-  llseek \
-  lookup_dcookie \
-  lseek \
-  lstat \
-  lstat64 \
-  madvise \
-  mbind \
-  membarrier \
-  memfd_create \
-  migrate_pages \
-  mincore \
-  mkdir \
-  mkdirat \
-  mknod \
-  mknodat \
-  mlock \
-  mlock2 \
-  mlockall \
-  mmap \
-  mmap64 \
-  mmsg \
-  mmsg_name \
-  mount \
-  move_pages \
-  mq \
-  mq_sendrecv \
-  mq_sendrecv-read \
-  mq_sendrecv-write \
-  msg_control \
-  msg_name \
-  munlockall \
-  nanosleep \
-  net-icmp_filter \
-  net-sockaddr \
-  net-y-unix \
-  net-yy-inet \
-  net-yy-netlink \
-  net-yy-unix \
-  netlink_protocol \
-  newfstatat \
-  old_mmap \
-  oldfstat \
-  oldlstat \
-  oldselect \
-  oldstat \
-  open \
-  openat \
-  osf_utimes \
-  pause \
-  perf_event_open \
-  personality \
-  pipe \
-  pipe2 \
-  pkey_alloc \
-  pkey_free \
-  pkey_mprotect \
-  poll \
-  ppoll \
-  prctl-arg2-intptr \
-  prctl-dumpable \
-  prctl-name \
-  prctl-no-args \
-  prctl-pdeathsig \
-  prctl-securebits \
-  prctl-tid_address \
-  prctl-tsc \
-  pread64-pwrite64 \
-  preadv \
-  preadv-pwritev \
-  preadv2-pwritev2 \
-  printstr \
-  prlimit64 \
-  process_vm_readv \
-  process_vm_writev \
-  pselect6 \
-  ptrace \
-  pwritev \
-  quotactl \
-  quotactl-xfs \
-  read-write \
-  readahead \
-  readdir \
-  readlink \
-  readlinkat \
-  readv \
-  reboot \
-  recvfrom \
-  recvmmsg-timeout \
-  recvmsg \
-  remap_file_pages \
-  rename \
-  renameat \
-  renameat2 \
-  request_key \
-  rmdir \
-  rt_sigpending \
-  rt_sigprocmask \
-  rt_sigqueueinfo \
-  rt_sigreturn \
-  rt_sigsuspend \
-  rt_sigtimedwait \
-  rt_tgsigqueueinfo \
-  sched_get_priority_mxx \
-  sched_rr_get_interval \
-  sched_xetaffinity \
-  sched_xetattr \
-  sched_xetparam \
-  sched_xetscheduler \
-  sched_yield \
-  seccomp-filter \
-  select \
-  semop \
-  sendfile \
-  sendfile64 \
-  set_mempolicy \
-  setdomainname \
-  setfsgid \
-  setfsgid32 \
-  setfsuid \
-  setfsuid32 \
-  setgid \
-  setgid32 \
-  setgroups \
-  setgroups32 \
-  sethostname \
-  setns \
-  setregid \
-  setregid32 \
-  setresgid \
-  setresgid32 \
-  setresuid \
-  setresuid32 \
-  setreuid \
-  setreuid32 \
-  setrlimit \
-  setuid \
-  setuid32 \
-  shmxt \
-  shutdown \
-  sigaction \
-  sigaltstack \
-  siginfo \
-  signalfd4 \
-  sigreturn \
-  sigsuspend \
-  socketcall \
-  splice \
-  stat \
-  stat64 \
-  statfs \
-  statfs64 \
-  statx \
-  swap \
-  sxetmask \
-  symlink \
-  symlinkat \
-  sync \
-  sync_file_range \
-  sync_file_range2 \
-  sysinfo \
-  syslog \
-  tee \
-  time \
-  timer_create \
-  timer_xettime \
-  timerfd_xettime \
-  times \
-  times-fail \
-  truncate \
-  truncate64 \
-  ugetrlimit \
-  uio \
-  umask \
-  umount \
-  umount2 \
-  umoven-illptr \
-  umovestr \
-  umovestr-illptr \
-  umovestr2 \
-  umovestr3 \
-  uname \
-  unlink \
-  unlinkat \
-  unshare \
-  userfaultfd \
-  ustat \
-  utime \
-  utimensat \
-  utimes \
-  vhangup \
-  vmsplice \
-  wait4 \
-  waitid \
-  waitpid \
-  xattr \
-  xattr-strings \
-  xet_robust_list \
-  xetitimer \
-  xetpgid \
-  xetpriority \
-  xettimeofday \
-  #
-
-attach_f_p_LDADD = -lrt -lpthread $(LDADD)
-clock_xettime_LDADD = -lrt $(LDADD)
-count_f_LDADD = -lpthread $(LDADD)
-filter_unavailable_LDADD = -lpthread $(LDADD)
-fstat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-fstatat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-ftruncate64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-lstat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-mmap64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-mq_LDADD = -lrt $(LDADD)
-mq_sendrecv_LDADD = -lrt $(LDADD)
-mq_sendrecv_read_LDADD = -lrt $(LDADD)
-mq_sendrecv_write_LDADD = -lrt $(LDADD)
-newfstatat_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-pc_LDADD = $(dl_LIBS) $(LDADD)
-pread64_pwrite64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-preadv_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-preadv_pwritev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-pwritev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-stat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-statfs_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-threads_execve_LDADD = -lrt -lpthread $(LDADD)
-times_LDADD = -lrt $(LDADD)
-truncate64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-uio_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
-stack_fcall_SOURCES = stack-fcall.c \
-	stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
-
-
-# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in; do not edit.
-GEN_TESTS = _newselect.gen.test accept.gen.test accept4.gen.test \
-	access.gen.test acct.gen.test add_key.gen.test \
-	adjtimex.gen.test aio.gen.test alarm.gen.test bpf.gen.test \
-	btrfs.gen.test chmod.gen.test chown.gen.test chown32.gen.test \
-	chroot.gen.test clock.gen.test clock_adjtime.gen.test \
-	clock_nanosleep.gen.test clock_xettime.gen.test \
-	copy_file_range.gen.test creat.gen.test delete_module.gen.test \
-	dup.gen.test dup2.gen.test dup3.gen.test epoll_create.gen.test \
-	epoll_create1.gen.test epoll_ctl.gen.test epoll_pwait.gen.test \
-	epoll_wait.gen.test erestartsys.gen.test execveat.gen.test \
-	execveat-v.gen.test faccessat.gen.test fadvise64_64.gen.test \
-	fallocate.gen.test fanotify_init.gen.test \
-	fanotify_mark.gen.test fchdir.gen.test fchmod.gen.test \
-	fchmodat.gen.test fchown.gen.test fchown32.gen.test \
-	fchownat.gen.test fcntl.gen.test fcntl64.gen.test \
-	fdatasync.gen.test file_handle.gen.test file_ioctl.gen.test \
-	finit_module.gen.test flock.gen.test fork-f.gen.test \
-	fstat.gen.test fstat64.gen.test fstatat64.gen.test \
-	fstatfs.gen.test fstatfs64.gen.test fsync.gen.test \
-	ftruncate.gen.test ftruncate64.gen.test futimesat.gen.test \
-	get_mempolicy.gen.test getcpu.gen.test getcwd.gen.test \
-	getdents.gen.test getdents64.gen.test getegid.gen.test \
-	getegid32.gen.test geteuid.gen.test geteuid32.gen.test \
-	getgid.gen.test getgid32.gen.test getgroups.gen.test \
-	getgroups32.gen.test getpeername.gen.test getpgrp.gen.test \
-	getpid.gen.test getppid.gen.test getrandom.gen.test \
-	getresgid.gen.test getresgid32.gen.test getresuid.gen.test \
-	getresuid32.gen.test getrlimit.gen.test getrusage.gen.test \
-	getsid.gen.test getsockname.gen.test gettid.gen.test \
-	getuid32.gen.test getxxid.gen.test inet-cmsg.gen.test \
-	init_module.gen.test inotify.gen.test inotify_init1.gen.test \
-	int_0x80.gen.test ioctl_block.gen.test ioctl_evdev.gen.test \
-	ioctl_evdev-v.gen.test ioctl_loop.gen.test \
-	ioctl_loop-v.gen.test ioctl_mtd.gen.test ioctl_rtc.gen.test \
-	ioctl_rtc-v.gen.test ioctl_scsi.gen.test \
-	ioctl_sg_io_v3.gen.test ioctl_sg_io_v4.gen.test \
-	ioctl_uffdio.gen.test ioctl_v4l2.gen.test ioperm.gen.test \
-	iopl.gen.test ioprio.gen.test ip_mreq.gen.test ipc.gen.test \
-	ipc_msg.gen.test ipc_sem.gen.test ipc_shm.gen.test \
-	kcmp.gen.test kexec_file_load.gen.test kexec_load.gen.test \
-	keyctl.gen.test kill.gen.test lchown.gen.test \
-	lchown32.gen.test link.gen.test linkat.gen.test \
-	lookup_dcookie.gen.test lstat.gen.test lstat64.gen.test \
-	madvise.gen.test mbind.gen.test membarrier.gen.test \
-	memfd_create.gen.test migrate_pages.gen.test mincore.gen.test \
-	mkdir.gen.test mkdirat.gen.test mknod.gen.test \
-	mknodat.gen.test mlock.gen.test mlock2.gen.test \
-	mlockall.gen.test mmap64.gen.test mmsg.gen.test \
-	mmsg-silent.gen.test mmsg_name.gen.test mmsg_name-v.gen.test \
-	mount.gen.test move_pages.gen.test mq.gen.test \
-	mq_sendrecv.gen.test mq_sendrecv-read.gen.test \
-	mq_sendrecv-write.gen.test msg_control.gen.test \
-	msg_control-v.gen.test msg_name.gen.test munlockall.gen.test \
-	nanosleep.gen.test net-icmp_filter.gen.test \
-	net-sockaddr.gen.test netlink_protocol.gen.test \
-	newfstatat.gen.test old_mmap.gen.test oldfstat.gen.test \
-	oldlstat.gen.test oldstat.gen.test open.gen.test \
-	openat.gen.test osf_utimes.gen.test pause.gen.test \
-	perf_event_open.gen.test perf_event_open_nonverbose.gen.test \
-	perf_event_open_unabbrev.gen.test pipe2.gen.test \
-	pkey_alloc.gen.test pkey_free.gen.test pkey_mprotect.gen.test \
-	ppoll.gen.test ppoll-v.gen.test pread64-pwrite64.gen.test \
-	preadv.gen.test preadv-pwritev.gen.test \
-	preadv2-pwritev2.gen.test printstr.gen.test prlimit64.gen.test \
-	process_vm_readv.gen.test process_vm_writev.gen.test \
-	pselect6.gen.test ptrace.gen.test pwritev.gen.test \
-	quotactl.gen.test quotactl-v.gen.test quotactl-xfs.gen.test \
-	quotactl-xfs-v.gen.test read-write.gen.test readahead.gen.test \
-	readdir.gen.test readlink.gen.test readlinkat.gen.test \
-	reboot.gen.test recvfrom.gen.test recvmmsg-timeout.gen.test \
-	recvmsg.gen.test regex.gen.test remap_file_pages.gen.test \
-	rename.gen.test renameat.gen.test renameat2.gen.test \
-	request_key.gen.test rmdir.gen.test rt_sigpending.gen.test \
-	rt_sigprocmask.gen.test rt_sigqueueinfo.gen.test \
-	rt_sigreturn.gen.test rt_sigsuspend.gen.test \
-	rt_sigtimedwait.gen.test rt_tgsigqueueinfo.gen.test \
-	sched.gen.test sched_get_priority_mxx.gen.test \
-	sched_rr_get_interval.gen.test sched_xetaffinity.gen.test \
-	sched_xetattr.gen.test sched_xetparam.gen.test \
-	sched_xetscheduler.gen.test sched_yield.gen.test \
-	seccomp-filter.gen.test seccomp-filter-v.gen.test \
-	select.gen.test semop.gen.test sendfile.gen.test \
-	sendfile64.gen.test set_mempolicy.gen.test \
-	setdomainname.gen.test setfsgid.gen.test setfsgid32.gen.test \
-	setfsuid.gen.test setfsuid32.gen.test setgid.gen.test \
-	setgid32.gen.test setgroups.gen.test setgroups32.gen.test \
-	sethostname.gen.test setns.gen.test setregid.gen.test \
-	setregid32.gen.test setresgid.gen.test setresgid32.gen.test \
-	setresuid.gen.test setresuid32.gen.test setreuid.gen.test \
-	setreuid32.gen.test setrlimit.gen.test setuid.gen.test \
-	setuid32.gen.test shmxt.gen.test shutdown.gen.test \
-	siginfo.gen.test signal_receive.gen.test signalfd4.gen.test \
-	sigreturn.gen.test sigsuspend.gen.test socketcall.gen.test \
-	splice.gen.test stat.gen.test stat64.gen.test statfs.gen.test \
-	statfs64.gen.test statx.gen.test swap.gen.test \
-	sxetmask.gen.test symlink.gen.test symlinkat.gen.test \
-	sync.gen.test sync_file_range.gen.test \
-	sync_file_range2.gen.test sysinfo.gen.test syslog.gen.test \
-	tee.gen.test time.gen.test timer_create.gen.test \
-	timer_xettime.gen.test timerfd_xettime.gen.test times.gen.test \
-	times-fail.gen.test trace_fstat.gen.test \
-	trace_fstatfs.gen.test trace_lstat.gen.test \
-	trace_question.gen.test trace_stat.gen.test \
-	trace_stat_like.gen.test trace_statfs.gen.test \
-	trace_statfs_like.gen.test truncate.gen.test \
-	truncate64.gen.test ugetrlimit.gen.test umask.gen.test \
-	umoven-illptr.gen.test umovestr-illptr.gen.test \
-	umovestr3.gen.test unlink.gen.test unlinkat.gen.test \
-	unshare.gen.test userfaultfd.gen.test ustat.gen.test \
-	utime.gen.test utimensat.gen.test utimes.gen.test \
-	vfork-f.gen.test vhangup.gen.test vmsplice.gen.test \
-	wait4.gen.test wait4-v.gen.test waitid.gen.test \
-	waitid-v.gen.test waitpid.gen.test xattr.gen.test \
-	xattr-strings.gen.test xet_robust_list.gen.test \
-	xetitimer.gen.test xetpgid.gen.test xetpriority.gen.test \
-	xettimeofday.gen.test
-LIBUNWIND_TESTS = 
-#LIBUNWIND_TESTS = strace-k.test
-DECODER_TESTS = \
-	brk.test \
-	btrfs-v.test \
-	btrfs-vw.test \
-	btrfs-w.test \
-	caps-abbrev.test \
-	caps.test \
-	eventfd.test \
-	execve-v.test \
-	execve.test \
-	fadvise64.test \
-	futex.test \
-	getuid.test \
-	ioctl.test \
-	ioctl_dm-v.test \
-	ioctl_dm.test \
-	ioctl_loop-nv.test \
-	ioctl_nsfs.test \
-	ioctl_sock_gifconf.test \
-	ipc_msgbuf.test \
-	llseek.test \
-	lseek.test \
-	mmap.test \
-	net-y-unix.test \
-	net-yy-inet.test \
-	net-yy-netlink.test \
-	net-yy-unix.test \
-	net.test \
-	nsyscalls.test \
-	oldselect.test \
-	personality.test \
-	pipe.test \
-	poll.test \
-	prctl-arg2-intptr.test \
-	prctl-dumpable.test \
-	prctl-name.test \
-	prctl-no-args.test \
-	prctl-pdeathsig.test \
-	prctl-seccomp-filter-v.test \
-	prctl-seccomp-strict.test \
-	prctl-securebits.test \
-	prctl-tid_address.test \
-	prctl-tsc.test \
-	qual_fault-exit_group.test \
-	readv.test \
-	scm_rights-fd.test \
-	seccomp-strict.test \
-	sigaction.test \
-	sigaltstack.test \
-	sun_path.test \
-	uio.test \
-	umount.test \
-	umount2.test \
-	umovestr.test \
-	umovestr2.test \
-	uname.test \
-	unix-pair-send-recv.test \
-	unix-pair-sendto-recvfrom.test \
-	# end of DECODER_TESTS
-
-MISC_TESTS = \
-	attach-f-p.test \
-	attach-p-cmd.test \
-	bexecve.test \
-	count-f.test \
-	count.test \
-	detach-running.test \
-	detach-sleeping.test \
-	detach-stopped.test \
-	filter-unavailable.test \
-	get_regs.test \
-	ksysent.test \
-	opipe.test \
-	options-syntax.test \
-	pc.test \
-	qual_fault-syntax.test \
-	qual_fault.test \
-	qual_inject-error-signal.test \
-	qual_inject-retval.test \
-	qual_inject-signal.test \
-	qual_inject-syntax.test \
-	qual_signal.test \
-	qual_syscall.test \
-	redirect-fds.test \
-	redirect.test \
-	restart_syscall.test \
-	strace-C.test \
-	strace-E.test \
-	strace-S.test \
-	strace-T.test \
-	strace-V.test \
-	strace-ff.test \
-	strace-r.test \
-	strace-t.test \
-	strace-tt.test \
-	strace-ttt.test \
-	threads-execve.test \
-	# end of MISC_TESTS
-
-XFAIL_TESTS_ = 
-XFAIL_TESTS_m32 = $(LIBUNWIND_TESTS)
-XFAIL_TESTS_mx32 = $(LIBUNWIND_TESTS)
-XFAIL_TESTS_x86_64 = int_0x80.gen.test
-XFAIL_TESTS_x32 = int_0x80.gen.test
-XFAIL_TESTS = $(XFAIL_TESTS_$(MPERS_NAME)) $(XFAIL_TESTS_$(ARCH))
-TEST_LOG_COMPILER = env
-AM_TEST_LOG_FLAGS = STRACE_ARCH=$(ARCH) MIPS_ABI=$(MIPS_ABI) $(srcdir)/run.sh
-VALGRIND_FLAGS = --quiet
-VALGRIND_SUPPRESSIONS_FILES = $(srcdir)/strace.supp
-EXTRA_DIST = \
-	caps-abbrev.awk \
-	caps.awk \
-	clock.in \
-	count-f.expected \
-	eventfd.expected \
-	fadvise.h \
-	filter-unavailable.expected \
-	fstatat.c \
-	fstatx.c \
-	gen_pure_executables.sh \
-	gen_tests.in \
-	gen_tests.sh \
-	getresugid.c \
-	init.sh \
-	init_delete_module.h \
-	ioctl-v.sh \
-	ipc.sh \
-	ipc_msgbuf.expected \
-	ksysent.sed \
-	lstatx.c \
-	match.awk \
-	net.expected \
-	oldselect.expected \
-	pipe.expected \
-	process_vm_readv_writev.c \
-	pure_executables.list \
-	qual_fault-exit_group.expected \
-	qual_inject-error-signal.expected \
-	qual_inject-signal.expected \
-	quotactl.h \
-	regex.in \
-	run.sh \
-	sched.in \
-	scno_tampering.sh \
-	setfsugid.c \
-	setresugid.c \
-	setreugid.c \
-	setugid.c \
-	sigaction.awk \
-	sigaltstack.expected \
-	sockname.c \
-	strace-C.expected \
-	strace-E.expected \
-	strace-T.expected \
-	strace-ff.expected \
-	strace-k.test \
-	strace-r.expected \
-	strace.supp \
-	struct_flock.c \
-	sun_path.expected \
-	trace_fstat.in \
-	trace_fstatfs.in \
-	trace_lstat.in \
-	trace_question.in \
-	trace_stat.in \
-	trace_stat_like.in \
-	trace_statfs.in \
-	trace_statfs_like.in \
-	uio.expected \
-	umode_t.c \
-	umovestr.expected \
-	unix-pair-send-recv.expected \
-	unix-pair-sendto-recvfrom.expected \
-	xchownx.c \
-	xgetrlimit.c \
-	xselect.c \
-	xstatfs.c \
-	xstatfs64.c \
-	xstatfsx.c \
-	xstatx.c \
-	xutimes.c \
-	$(TESTS)
-
-objects = $(filter %.$(OBJEXT),$(SOURCES:.c=.$(OBJEXT)))
-CLEANFILES = ksysent.h syscallent.i scno.h
-SCNO_CPPFLAGS = $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-		$(ARCH_MFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS)
-
-digits = [[:digit:]][[:digit:]]*
-al_nums = [[:alnum:]_][[:alnum:]_]*
-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
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .log .o .obj .test .test$(EXEEXT) .trs
-$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am $(srcdir)/pure_executables.am $(srcdir)/gen_tests.am $(srcdir)/../scno.am $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
-	        && { if test -f $@; then exit 0; else break; fi; }; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/Makefile'; \
-	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --foreign tests/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-$(srcdir)/pure_executables.am $(srcdir)/gen_tests.am $(srcdir)/../scno.am:
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: # $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): # $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-
-clean-checkLIBRARIES:
-	-test -z "$(check_LIBRARIES)" || rm -f $(check_LIBRARIES)
-
-libtests.a: $(libtests_a_OBJECTS) $(libtests_a_DEPENDENCIES) $(EXTRA_libtests_a_DEPENDENCIES) 
-	$(AM_V_at)-rm -f libtests.a
-	$(AM_V_AR)$(libtests_a_AR) libtests.a $(libtests_a_OBJECTS) $(libtests_a_LIBADD)
-	$(AM_V_at)$(RANLIB) libtests.a
-
-clean-checkPROGRAMS:
-	-test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)
-
-_newselect$(EXEEXT): $(_newselect_OBJECTS) $(_newselect_DEPENDENCIES) $(EXTRA__newselect_DEPENDENCIES) 
-	@rm -f _newselect$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(_newselect_OBJECTS) $(_newselect_LDADD) $(LIBS)
-
-accept$(EXEEXT): $(accept_OBJECTS) $(accept_DEPENDENCIES) $(EXTRA_accept_DEPENDENCIES) 
-	@rm -f accept$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(accept_OBJECTS) $(accept_LDADD) $(LIBS)
-
-accept4$(EXEEXT): $(accept4_OBJECTS) $(accept4_DEPENDENCIES) $(EXTRA_accept4_DEPENDENCIES) 
-	@rm -f accept4$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(accept4_OBJECTS) $(accept4_LDADD) $(LIBS)
-
-access$(EXEEXT): $(access_OBJECTS) $(access_DEPENDENCIES) $(EXTRA_access_DEPENDENCIES) 
-	@rm -f access$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(access_OBJECTS) $(access_LDADD) $(LIBS)
-
-acct$(EXEEXT): $(acct_OBJECTS) $(acct_DEPENDENCIES) $(EXTRA_acct_DEPENDENCIES) 
-	@rm -f acct$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(acct_OBJECTS) $(acct_LDADD) $(LIBS)
-
-add_key$(EXEEXT): $(add_key_OBJECTS) $(add_key_DEPENDENCIES) $(EXTRA_add_key_DEPENDENCIES) 
-	@rm -f add_key$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(add_key_OBJECTS) $(add_key_LDADD) $(LIBS)
-
-adjtimex$(EXEEXT): $(adjtimex_OBJECTS) $(adjtimex_DEPENDENCIES) $(EXTRA_adjtimex_DEPENDENCIES) 
-	@rm -f adjtimex$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(adjtimex_OBJECTS) $(adjtimex_LDADD) $(LIBS)
-
-aio$(EXEEXT): $(aio_OBJECTS) $(aio_DEPENDENCIES) $(EXTRA_aio_DEPENDENCIES) 
-	@rm -f aio$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(aio_OBJECTS) $(aio_LDADD) $(LIBS)
-
-alarm$(EXEEXT): $(alarm_OBJECTS) $(alarm_DEPENDENCIES) $(EXTRA_alarm_DEPENDENCIES) 
-	@rm -f alarm$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(alarm_OBJECTS) $(alarm_LDADD) $(LIBS)
-
-answer$(EXEEXT): $(answer_OBJECTS) $(answer_DEPENDENCIES) $(EXTRA_answer_DEPENDENCIES) 
-	@rm -f answer$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(answer_OBJECTS) $(answer_LDADD) $(LIBS)
-
-attach-f-p$(EXEEXT): $(attach_f_p_OBJECTS) $(attach_f_p_DEPENDENCIES) $(EXTRA_attach_f_p_DEPENDENCIES) 
-	@rm -f attach-f-p$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(attach_f_p_OBJECTS) $(attach_f_p_LDADD) $(LIBS)
-
-attach-f-p-cmd$(EXEEXT): $(attach_f_p_cmd_OBJECTS) $(attach_f_p_cmd_DEPENDENCIES) $(EXTRA_attach_f_p_cmd_DEPENDENCIES) 
-	@rm -f attach-f-p-cmd$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(attach_f_p_cmd_OBJECTS) $(attach_f_p_cmd_LDADD) $(LIBS)
-
-attach-p-cmd-cmd$(EXEEXT): $(attach_p_cmd_cmd_OBJECTS) $(attach_p_cmd_cmd_DEPENDENCIES) $(EXTRA_attach_p_cmd_cmd_DEPENDENCIES) 
-	@rm -f attach-p-cmd-cmd$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(attach_p_cmd_cmd_OBJECTS) $(attach_p_cmd_cmd_LDADD) $(LIBS)
-
-attach-p-cmd-p$(EXEEXT): $(attach_p_cmd_p_OBJECTS) $(attach_p_cmd_p_DEPENDENCIES) $(EXTRA_attach_p_cmd_p_DEPENDENCIES) 
-	@rm -f attach-p-cmd-p$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(attach_p_cmd_p_OBJECTS) $(attach_p_cmd_p_LDADD) $(LIBS)
-
-bpf$(EXEEXT): $(bpf_OBJECTS) $(bpf_DEPENDENCIES) $(EXTRA_bpf_DEPENDENCIES) 
-	@rm -f bpf$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(bpf_OBJECTS) $(bpf_LDADD) $(LIBS)
-
-brk$(EXEEXT): $(brk_OBJECTS) $(brk_DEPENDENCIES) $(EXTRA_brk_DEPENDENCIES) 
-	@rm -f brk$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(brk_OBJECTS) $(brk_LDADD) $(LIBS)
-
-btrfs$(EXEEXT): $(btrfs_OBJECTS) $(btrfs_DEPENDENCIES) $(EXTRA_btrfs_DEPENDENCIES) 
-	@rm -f btrfs$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(btrfs_OBJECTS) $(btrfs_LDADD) $(LIBS)
-
-caps$(EXEEXT): $(caps_OBJECTS) $(caps_DEPENDENCIES) $(EXTRA_caps_DEPENDENCIES) 
-	@rm -f caps$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(caps_OBJECTS) $(caps_LDADD) $(LIBS)
-
-caps-abbrev$(EXEEXT): $(caps_abbrev_OBJECTS) $(caps_abbrev_DEPENDENCIES) $(EXTRA_caps_abbrev_DEPENDENCIES) 
-	@rm -f caps-abbrev$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(caps_abbrev_OBJECTS) $(caps_abbrev_LDADD) $(LIBS)
-
-chmod$(EXEEXT): $(chmod_OBJECTS) $(chmod_DEPENDENCIES) $(EXTRA_chmod_DEPENDENCIES) 
-	@rm -f chmod$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(chmod_OBJECTS) $(chmod_LDADD) $(LIBS)
-
-chown$(EXEEXT): $(chown_OBJECTS) $(chown_DEPENDENCIES) $(EXTRA_chown_DEPENDENCIES) 
-	@rm -f chown$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(chown_OBJECTS) $(chown_LDADD) $(LIBS)
-
-chown32$(EXEEXT): $(chown32_OBJECTS) $(chown32_DEPENDENCIES) $(EXTRA_chown32_DEPENDENCIES) 
-	@rm -f chown32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(chown32_OBJECTS) $(chown32_LDADD) $(LIBS)
-
-chroot$(EXEEXT): $(chroot_OBJECTS) $(chroot_DEPENDENCIES) $(EXTRA_chroot_DEPENDENCIES) 
-	@rm -f chroot$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(chroot_OBJECTS) $(chroot_LDADD) $(LIBS)
-
-clock_adjtime$(EXEEXT): $(clock_adjtime_OBJECTS) $(clock_adjtime_DEPENDENCIES) $(EXTRA_clock_adjtime_DEPENDENCIES) 
-	@rm -f clock_adjtime$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(clock_adjtime_OBJECTS) $(clock_adjtime_LDADD) $(LIBS)
-
-clock_nanosleep$(EXEEXT): $(clock_nanosleep_OBJECTS) $(clock_nanosleep_DEPENDENCIES) $(EXTRA_clock_nanosleep_DEPENDENCIES) 
-	@rm -f clock_nanosleep$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(clock_nanosleep_OBJECTS) $(clock_nanosleep_LDADD) $(LIBS)
-
-clock_xettime$(EXEEXT): $(clock_xettime_OBJECTS) $(clock_xettime_DEPENDENCIES) $(EXTRA_clock_xettime_DEPENDENCIES) 
-	@rm -f clock_xettime$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(clock_xettime_OBJECTS) $(clock_xettime_LDADD) $(LIBS)
-
-copy_file_range$(EXEEXT): $(copy_file_range_OBJECTS) $(copy_file_range_DEPENDENCIES) $(EXTRA_copy_file_range_DEPENDENCIES) 
-	@rm -f copy_file_range$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(copy_file_range_OBJECTS) $(copy_file_range_LDADD) $(LIBS)
-
-count-f$(EXEEXT): $(count_f_OBJECTS) $(count_f_DEPENDENCIES) $(EXTRA_count_f_DEPENDENCIES) 
-	@rm -f count-f$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(count_f_OBJECTS) $(count_f_LDADD) $(LIBS)
-
-creat$(EXEEXT): $(creat_OBJECTS) $(creat_DEPENDENCIES) $(EXTRA_creat_DEPENDENCIES) 
-	@rm -f creat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(creat_OBJECTS) $(creat_LDADD) $(LIBS)
-
-delete_module$(EXEEXT): $(delete_module_OBJECTS) $(delete_module_DEPENDENCIES) $(EXTRA_delete_module_DEPENDENCIES) 
-	@rm -f delete_module$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(delete_module_OBJECTS) $(delete_module_LDADD) $(LIBS)
-
-dup$(EXEEXT): $(dup_OBJECTS) $(dup_DEPENDENCIES) $(EXTRA_dup_DEPENDENCIES) 
-	@rm -f dup$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(dup_OBJECTS) $(dup_LDADD) $(LIBS)
-
-dup2$(EXEEXT): $(dup2_OBJECTS) $(dup2_DEPENDENCIES) $(EXTRA_dup2_DEPENDENCIES) 
-	@rm -f dup2$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(dup2_OBJECTS) $(dup2_LDADD) $(LIBS)
-
-dup3$(EXEEXT): $(dup3_OBJECTS) $(dup3_DEPENDENCIES) $(EXTRA_dup3_DEPENDENCIES) 
-	@rm -f dup3$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(dup3_OBJECTS) $(dup3_LDADD) $(LIBS)
-
-epoll_create$(EXEEXT): $(epoll_create_OBJECTS) $(epoll_create_DEPENDENCIES) $(EXTRA_epoll_create_DEPENDENCIES) 
-	@rm -f epoll_create$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(epoll_create_OBJECTS) $(epoll_create_LDADD) $(LIBS)
-
-epoll_create1$(EXEEXT): $(epoll_create1_OBJECTS) $(epoll_create1_DEPENDENCIES) $(EXTRA_epoll_create1_DEPENDENCIES) 
-	@rm -f epoll_create1$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(epoll_create1_OBJECTS) $(epoll_create1_LDADD) $(LIBS)
-
-epoll_ctl$(EXEEXT): $(epoll_ctl_OBJECTS) $(epoll_ctl_DEPENDENCIES) $(EXTRA_epoll_ctl_DEPENDENCIES) 
-	@rm -f epoll_ctl$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(epoll_ctl_OBJECTS) $(epoll_ctl_LDADD) $(LIBS)
-
-epoll_pwait$(EXEEXT): $(epoll_pwait_OBJECTS) $(epoll_pwait_DEPENDENCIES) $(EXTRA_epoll_pwait_DEPENDENCIES) 
-	@rm -f epoll_pwait$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(epoll_pwait_OBJECTS) $(epoll_pwait_LDADD) $(LIBS)
-
-epoll_wait$(EXEEXT): $(epoll_wait_OBJECTS) $(epoll_wait_DEPENDENCIES) $(EXTRA_epoll_wait_DEPENDENCIES) 
-	@rm -f epoll_wait$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(epoll_wait_OBJECTS) $(epoll_wait_LDADD) $(LIBS)
-
-erestartsys$(EXEEXT): $(erestartsys_OBJECTS) $(erestartsys_DEPENDENCIES) $(EXTRA_erestartsys_DEPENDENCIES) 
-	@rm -f erestartsys$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(erestartsys_OBJECTS) $(erestartsys_LDADD) $(LIBS)
-
-eventfd$(EXEEXT): $(eventfd_OBJECTS) $(eventfd_DEPENDENCIES) $(EXTRA_eventfd_DEPENDENCIES) 
-	@rm -f eventfd$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(eventfd_OBJECTS) $(eventfd_LDADD) $(LIBS)
-
-execve$(EXEEXT): $(execve_OBJECTS) $(execve_DEPENDENCIES) $(EXTRA_execve_DEPENDENCIES) 
-	@rm -f execve$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(execve_OBJECTS) $(execve_LDADD) $(LIBS)
-
-execve-v$(EXEEXT): $(execve_v_OBJECTS) $(execve_v_DEPENDENCIES) $(EXTRA_execve_v_DEPENDENCIES) 
-	@rm -f execve-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(execve_v_OBJECTS) $(execve_v_LDADD) $(LIBS)
-
-execveat$(EXEEXT): $(execveat_OBJECTS) $(execveat_DEPENDENCIES) $(EXTRA_execveat_DEPENDENCIES) 
-	@rm -f execveat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(execveat_OBJECTS) $(execveat_LDADD) $(LIBS)
-
-execveat-v$(EXEEXT): $(execveat_v_OBJECTS) $(execveat_v_DEPENDENCIES) $(EXTRA_execveat_v_DEPENDENCIES) 
-	@rm -f execveat-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(execveat_v_OBJECTS) $(execveat_v_LDADD) $(LIBS)
-
-faccessat$(EXEEXT): $(faccessat_OBJECTS) $(faccessat_DEPENDENCIES) $(EXTRA_faccessat_DEPENDENCIES) 
-	@rm -f faccessat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(faccessat_OBJECTS) $(faccessat_LDADD) $(LIBS)
-
-fadvise64$(EXEEXT): $(fadvise64_OBJECTS) $(fadvise64_DEPENDENCIES) $(EXTRA_fadvise64_DEPENDENCIES) 
-	@rm -f fadvise64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fadvise64_OBJECTS) $(fadvise64_LDADD) $(LIBS)
-
-fadvise64_64$(EXEEXT): $(fadvise64_64_OBJECTS) $(fadvise64_64_DEPENDENCIES) $(EXTRA_fadvise64_64_DEPENDENCIES) 
-	@rm -f fadvise64_64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fadvise64_64_OBJECTS) $(fadvise64_64_LDADD) $(LIBS)
-
-fallocate$(EXEEXT): $(fallocate_OBJECTS) $(fallocate_DEPENDENCIES) $(EXTRA_fallocate_DEPENDENCIES) 
-	@rm -f fallocate$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fallocate_OBJECTS) $(fallocate_LDADD) $(LIBS)
-
-fanotify_init$(EXEEXT): $(fanotify_init_OBJECTS) $(fanotify_init_DEPENDENCIES) $(EXTRA_fanotify_init_DEPENDENCIES) 
-	@rm -f fanotify_init$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fanotify_init_OBJECTS) $(fanotify_init_LDADD) $(LIBS)
-
-fanotify_mark$(EXEEXT): $(fanotify_mark_OBJECTS) $(fanotify_mark_DEPENDENCIES) $(EXTRA_fanotify_mark_DEPENDENCIES) 
-	@rm -f fanotify_mark$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fanotify_mark_OBJECTS) $(fanotify_mark_LDADD) $(LIBS)
-
-fchdir$(EXEEXT): $(fchdir_OBJECTS) $(fchdir_DEPENDENCIES) $(EXTRA_fchdir_DEPENDENCIES) 
-	@rm -f fchdir$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fchdir_OBJECTS) $(fchdir_LDADD) $(LIBS)
-
-fchmod$(EXEEXT): $(fchmod_OBJECTS) $(fchmod_DEPENDENCIES) $(EXTRA_fchmod_DEPENDENCIES) 
-	@rm -f fchmod$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fchmod_OBJECTS) $(fchmod_LDADD) $(LIBS)
-
-fchmodat$(EXEEXT): $(fchmodat_OBJECTS) $(fchmodat_DEPENDENCIES) $(EXTRA_fchmodat_DEPENDENCIES) 
-	@rm -f fchmodat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fchmodat_OBJECTS) $(fchmodat_LDADD) $(LIBS)
-
-fchown$(EXEEXT): $(fchown_OBJECTS) $(fchown_DEPENDENCIES) $(EXTRA_fchown_DEPENDENCIES) 
-	@rm -f fchown$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fchown_OBJECTS) $(fchown_LDADD) $(LIBS)
-
-fchown32$(EXEEXT): $(fchown32_OBJECTS) $(fchown32_DEPENDENCIES) $(EXTRA_fchown32_DEPENDENCIES) 
-	@rm -f fchown32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fchown32_OBJECTS) $(fchown32_LDADD) $(LIBS)
-
-fchownat$(EXEEXT): $(fchownat_OBJECTS) $(fchownat_DEPENDENCIES) $(EXTRA_fchownat_DEPENDENCIES) 
-	@rm -f fchownat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fchownat_OBJECTS) $(fchownat_LDADD) $(LIBS)
-
-fcntl$(EXEEXT): $(fcntl_OBJECTS) $(fcntl_DEPENDENCIES) $(EXTRA_fcntl_DEPENDENCIES) 
-	@rm -f fcntl$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fcntl_OBJECTS) $(fcntl_LDADD) $(LIBS)
-
-fcntl64$(EXEEXT): $(fcntl64_OBJECTS) $(fcntl64_DEPENDENCIES) $(EXTRA_fcntl64_DEPENDENCIES) 
-	@rm -f fcntl64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fcntl64_OBJECTS) $(fcntl64_LDADD) $(LIBS)
-
-fdatasync$(EXEEXT): $(fdatasync_OBJECTS) $(fdatasync_DEPENDENCIES) $(EXTRA_fdatasync_DEPENDENCIES) 
-	@rm -f fdatasync$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fdatasync_OBJECTS) $(fdatasync_LDADD) $(LIBS)
-
-file_handle$(EXEEXT): $(file_handle_OBJECTS) $(file_handle_DEPENDENCIES) $(EXTRA_file_handle_DEPENDENCIES) 
-	@rm -f file_handle$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(file_handle_OBJECTS) $(file_handle_LDADD) $(LIBS)
-
-file_ioctl$(EXEEXT): $(file_ioctl_OBJECTS) $(file_ioctl_DEPENDENCIES) $(EXTRA_file_ioctl_DEPENDENCIES) 
-	@rm -f file_ioctl$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(file_ioctl_OBJECTS) $(file_ioctl_LDADD) $(LIBS)
-
-filter-unavailable$(EXEEXT): $(filter_unavailable_OBJECTS) $(filter_unavailable_DEPENDENCIES) $(EXTRA_filter_unavailable_DEPENDENCIES) 
-	@rm -f filter-unavailable$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(filter_unavailable_OBJECTS) $(filter_unavailable_LDADD) $(LIBS)
-
-finit_module$(EXEEXT): $(finit_module_OBJECTS) $(finit_module_DEPENDENCIES) $(EXTRA_finit_module_DEPENDENCIES) 
-	@rm -f finit_module$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(finit_module_OBJECTS) $(finit_module_LDADD) $(LIBS)
-
-flock$(EXEEXT): $(flock_OBJECTS) $(flock_DEPENDENCIES) $(EXTRA_flock_DEPENDENCIES) 
-	@rm -f flock$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(flock_OBJECTS) $(flock_LDADD) $(LIBS)
-
-fork-f$(EXEEXT): $(fork_f_OBJECTS) $(fork_f_DEPENDENCIES) $(EXTRA_fork_f_DEPENDENCIES) 
-	@rm -f fork-f$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fork_f_OBJECTS) $(fork_f_LDADD) $(LIBS)
-
-fstat$(EXEEXT): $(fstat_OBJECTS) $(fstat_DEPENDENCIES) $(EXTRA_fstat_DEPENDENCIES) 
-	@rm -f fstat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fstat_OBJECTS) $(fstat_LDADD) $(LIBS)
-
-fstat64$(EXEEXT): $(fstat64_OBJECTS) $(fstat64_DEPENDENCIES) $(EXTRA_fstat64_DEPENDENCIES) 
-	@rm -f fstat64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fstat64_OBJECTS) $(fstat64_LDADD) $(LIBS)
-
-fstatat64$(EXEEXT): $(fstatat64_OBJECTS) $(fstatat64_DEPENDENCIES) $(EXTRA_fstatat64_DEPENDENCIES) 
-	@rm -f fstatat64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fstatat64_OBJECTS) $(fstatat64_LDADD) $(LIBS)
-
-fstatfs$(EXEEXT): $(fstatfs_OBJECTS) $(fstatfs_DEPENDENCIES) $(EXTRA_fstatfs_DEPENDENCIES) 
-	@rm -f fstatfs$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fstatfs_OBJECTS) $(fstatfs_LDADD) $(LIBS)
-
-fstatfs64$(EXEEXT): $(fstatfs64_OBJECTS) $(fstatfs64_DEPENDENCIES) $(EXTRA_fstatfs64_DEPENDENCIES) 
-	@rm -f fstatfs64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fstatfs64_OBJECTS) $(fstatfs64_LDADD) $(LIBS)
-
-fsync$(EXEEXT): $(fsync_OBJECTS) $(fsync_DEPENDENCIES) $(EXTRA_fsync_DEPENDENCIES) 
-	@rm -f fsync$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(fsync_OBJECTS) $(fsync_LDADD) $(LIBS)
-
-ftruncate$(EXEEXT): $(ftruncate_OBJECTS) $(ftruncate_DEPENDENCIES) $(EXTRA_ftruncate_DEPENDENCIES) 
-	@rm -f ftruncate$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ftruncate_OBJECTS) $(ftruncate_LDADD) $(LIBS)
-
-ftruncate64$(EXEEXT): $(ftruncate64_OBJECTS) $(ftruncate64_DEPENDENCIES) $(EXTRA_ftruncate64_DEPENDENCIES) 
-	@rm -f ftruncate64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ftruncate64_OBJECTS) $(ftruncate64_LDADD) $(LIBS)
-
-futex$(EXEEXT): $(futex_OBJECTS) $(futex_DEPENDENCIES) $(EXTRA_futex_DEPENDENCIES) 
-	@rm -f futex$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(futex_OBJECTS) $(futex_LDADD) $(LIBS)
-
-futimesat$(EXEEXT): $(futimesat_OBJECTS) $(futimesat_DEPENDENCIES) $(EXTRA_futimesat_DEPENDENCIES) 
-	@rm -f futimesat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(futimesat_OBJECTS) $(futimesat_LDADD) $(LIBS)
-
-get_mempolicy$(EXEEXT): $(get_mempolicy_OBJECTS) $(get_mempolicy_DEPENDENCIES) $(EXTRA_get_mempolicy_DEPENDENCIES) 
-	@rm -f get_mempolicy$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(get_mempolicy_OBJECTS) $(get_mempolicy_LDADD) $(LIBS)
-
-getcpu$(EXEEXT): $(getcpu_OBJECTS) $(getcpu_DEPENDENCIES) $(EXTRA_getcpu_DEPENDENCIES) 
-	@rm -f getcpu$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getcpu_OBJECTS) $(getcpu_LDADD) $(LIBS)
-
-getcwd$(EXEEXT): $(getcwd_OBJECTS) $(getcwd_DEPENDENCIES) $(EXTRA_getcwd_DEPENDENCIES) 
-	@rm -f getcwd$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getcwd_OBJECTS) $(getcwd_LDADD) $(LIBS)
-
-getdents$(EXEEXT): $(getdents_OBJECTS) $(getdents_DEPENDENCIES) $(EXTRA_getdents_DEPENDENCIES) 
-	@rm -f getdents$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getdents_OBJECTS) $(getdents_LDADD) $(LIBS)
-
-getdents64$(EXEEXT): $(getdents64_OBJECTS) $(getdents64_DEPENDENCIES) $(EXTRA_getdents64_DEPENDENCIES) 
-	@rm -f getdents64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getdents64_OBJECTS) $(getdents64_LDADD) $(LIBS)
-
-getegid$(EXEEXT): $(getegid_OBJECTS) $(getegid_DEPENDENCIES) $(EXTRA_getegid_DEPENDENCIES) 
-	@rm -f getegid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getegid_OBJECTS) $(getegid_LDADD) $(LIBS)
-
-getegid32$(EXEEXT): $(getegid32_OBJECTS) $(getegid32_DEPENDENCIES) $(EXTRA_getegid32_DEPENDENCIES) 
-	@rm -f getegid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getegid32_OBJECTS) $(getegid32_LDADD) $(LIBS)
-
-geteuid$(EXEEXT): $(geteuid_OBJECTS) $(geteuid_DEPENDENCIES) $(EXTRA_geteuid_DEPENDENCIES) 
-	@rm -f geteuid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(geteuid_OBJECTS) $(geteuid_LDADD) $(LIBS)
-
-geteuid32$(EXEEXT): $(geteuid32_OBJECTS) $(geteuid32_DEPENDENCIES) $(EXTRA_geteuid32_DEPENDENCIES) 
-	@rm -f geteuid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(geteuid32_OBJECTS) $(geteuid32_LDADD) $(LIBS)
-
-getgid$(EXEEXT): $(getgid_OBJECTS) $(getgid_DEPENDENCIES) $(EXTRA_getgid_DEPENDENCIES) 
-	@rm -f getgid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getgid_OBJECTS) $(getgid_LDADD) $(LIBS)
-
-getgid32$(EXEEXT): $(getgid32_OBJECTS) $(getgid32_DEPENDENCIES) $(EXTRA_getgid32_DEPENDENCIES) 
-	@rm -f getgid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getgid32_OBJECTS) $(getgid32_LDADD) $(LIBS)
-
-getgroups$(EXEEXT): $(getgroups_OBJECTS) $(getgroups_DEPENDENCIES) $(EXTRA_getgroups_DEPENDENCIES) 
-	@rm -f getgroups$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getgroups_OBJECTS) $(getgroups_LDADD) $(LIBS)
-
-getgroups32$(EXEEXT): $(getgroups32_OBJECTS) $(getgroups32_DEPENDENCIES) $(EXTRA_getgroups32_DEPENDENCIES) 
-	@rm -f getgroups32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getgroups32_OBJECTS) $(getgroups32_LDADD) $(LIBS)
-
-getpeername$(EXEEXT): $(getpeername_OBJECTS) $(getpeername_DEPENDENCIES) $(EXTRA_getpeername_DEPENDENCIES) 
-	@rm -f getpeername$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getpeername_OBJECTS) $(getpeername_LDADD) $(LIBS)
-
-getpgrp$(EXEEXT): $(getpgrp_OBJECTS) $(getpgrp_DEPENDENCIES) $(EXTRA_getpgrp_DEPENDENCIES) 
-	@rm -f getpgrp$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getpgrp_OBJECTS) $(getpgrp_LDADD) $(LIBS)
-
-getpid$(EXEEXT): $(getpid_OBJECTS) $(getpid_DEPENDENCIES) $(EXTRA_getpid_DEPENDENCIES) 
-	@rm -f getpid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getpid_OBJECTS) $(getpid_LDADD) $(LIBS)
-
-getppid$(EXEEXT): $(getppid_OBJECTS) $(getppid_DEPENDENCIES) $(EXTRA_getppid_DEPENDENCIES) 
-	@rm -f getppid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getppid_OBJECTS) $(getppid_LDADD) $(LIBS)
-
-getrandom$(EXEEXT): $(getrandom_OBJECTS) $(getrandom_DEPENDENCIES) $(EXTRA_getrandom_DEPENDENCIES) 
-	@rm -f getrandom$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getrandom_OBJECTS) $(getrandom_LDADD) $(LIBS)
-
-getresgid$(EXEEXT): $(getresgid_OBJECTS) $(getresgid_DEPENDENCIES) $(EXTRA_getresgid_DEPENDENCIES) 
-	@rm -f getresgid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getresgid_OBJECTS) $(getresgid_LDADD) $(LIBS)
-
-getresgid32$(EXEEXT): $(getresgid32_OBJECTS) $(getresgid32_DEPENDENCIES) $(EXTRA_getresgid32_DEPENDENCIES) 
-	@rm -f getresgid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getresgid32_OBJECTS) $(getresgid32_LDADD) $(LIBS)
-
-getresuid$(EXEEXT): $(getresuid_OBJECTS) $(getresuid_DEPENDENCIES) $(EXTRA_getresuid_DEPENDENCIES) 
-	@rm -f getresuid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getresuid_OBJECTS) $(getresuid_LDADD) $(LIBS)
-
-getresuid32$(EXEEXT): $(getresuid32_OBJECTS) $(getresuid32_DEPENDENCIES) $(EXTRA_getresuid32_DEPENDENCIES) 
-	@rm -f getresuid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getresuid32_OBJECTS) $(getresuid32_LDADD) $(LIBS)
-
-getrlimit$(EXEEXT): $(getrlimit_OBJECTS) $(getrlimit_DEPENDENCIES) $(EXTRA_getrlimit_DEPENDENCIES) 
-	@rm -f getrlimit$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getrlimit_OBJECTS) $(getrlimit_LDADD) $(LIBS)
-
-getrusage$(EXEEXT): $(getrusage_OBJECTS) $(getrusage_DEPENDENCIES) $(EXTRA_getrusage_DEPENDENCIES) 
-	@rm -f getrusage$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getrusage_OBJECTS) $(getrusage_LDADD) $(LIBS)
-
-getsid$(EXEEXT): $(getsid_OBJECTS) $(getsid_DEPENDENCIES) $(EXTRA_getsid_DEPENDENCIES) 
-	@rm -f getsid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getsid_OBJECTS) $(getsid_LDADD) $(LIBS)
-
-getsockname$(EXEEXT): $(getsockname_OBJECTS) $(getsockname_DEPENDENCIES) $(EXTRA_getsockname_DEPENDENCIES) 
-	@rm -f getsockname$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getsockname_OBJECTS) $(getsockname_LDADD) $(LIBS)
-
-gettid$(EXEEXT): $(gettid_OBJECTS) $(gettid_DEPENDENCIES) $(EXTRA_gettid_DEPENDENCIES) 
-	@rm -f gettid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(gettid_OBJECTS) $(gettid_LDADD) $(LIBS)
-
-getuid$(EXEEXT): $(getuid_OBJECTS) $(getuid_DEPENDENCIES) $(EXTRA_getuid_DEPENDENCIES) 
-	@rm -f getuid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getuid_OBJECTS) $(getuid_LDADD) $(LIBS)
-
-getuid32$(EXEEXT): $(getuid32_OBJECTS) $(getuid32_DEPENDENCIES) $(EXTRA_getuid32_DEPENDENCIES) 
-	@rm -f getuid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getuid32_OBJECTS) $(getuid32_LDADD) $(LIBS)
-
-getxxid$(EXEEXT): $(getxxid_OBJECTS) $(getxxid_DEPENDENCIES) $(EXTRA_getxxid_DEPENDENCIES) 
-	@rm -f getxxid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(getxxid_OBJECTS) $(getxxid_LDADD) $(LIBS)
-
-inet-cmsg$(EXEEXT): $(inet_cmsg_OBJECTS) $(inet_cmsg_DEPENDENCIES) $(EXTRA_inet_cmsg_DEPENDENCIES) 
-	@rm -f inet-cmsg$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(inet_cmsg_OBJECTS) $(inet_cmsg_LDADD) $(LIBS)
-
-init_module$(EXEEXT): $(init_module_OBJECTS) $(init_module_DEPENDENCIES) $(EXTRA_init_module_DEPENDENCIES) 
-	@rm -f init_module$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(init_module_OBJECTS) $(init_module_LDADD) $(LIBS)
-
-inotify$(EXEEXT): $(inotify_OBJECTS) $(inotify_DEPENDENCIES) $(EXTRA_inotify_DEPENDENCIES) 
-	@rm -f inotify$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(inotify_OBJECTS) $(inotify_LDADD) $(LIBS)
-
-inotify_init1$(EXEEXT): $(inotify_init1_OBJECTS) $(inotify_init1_DEPENDENCIES) $(EXTRA_inotify_init1_DEPENDENCIES) 
-	@rm -f inotify_init1$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(inotify_init1_OBJECTS) $(inotify_init1_LDADD) $(LIBS)
-
-int_0x80$(EXEEXT): $(int_0x80_OBJECTS) $(int_0x80_DEPENDENCIES) $(EXTRA_int_0x80_DEPENDENCIES) 
-	@rm -f int_0x80$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(int_0x80_OBJECTS) $(int_0x80_LDADD) $(LIBS)
-
-ioctl$(EXEEXT): $(ioctl_OBJECTS) $(ioctl_DEPENDENCIES) $(EXTRA_ioctl_DEPENDENCIES) 
-	@rm -f ioctl$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_OBJECTS) $(ioctl_LDADD) $(LIBS)
-
-ioctl_block$(EXEEXT): $(ioctl_block_OBJECTS) $(ioctl_block_DEPENDENCIES) $(EXTRA_ioctl_block_DEPENDENCIES) 
-	@rm -f ioctl_block$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_block_OBJECTS) $(ioctl_block_LDADD) $(LIBS)
-
-ioctl_dm$(EXEEXT): $(ioctl_dm_OBJECTS) $(ioctl_dm_DEPENDENCIES) $(EXTRA_ioctl_dm_DEPENDENCIES) 
-	@rm -f ioctl_dm$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_dm_OBJECTS) $(ioctl_dm_LDADD) $(LIBS)
-
-ioctl_dm-v$(EXEEXT): $(ioctl_dm_v_OBJECTS) $(ioctl_dm_v_DEPENDENCIES) $(EXTRA_ioctl_dm_v_DEPENDENCIES) 
-	@rm -f ioctl_dm-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_dm_v_OBJECTS) $(ioctl_dm_v_LDADD) $(LIBS)
-
-ioctl_evdev$(EXEEXT): $(ioctl_evdev_OBJECTS) $(ioctl_evdev_DEPENDENCIES) $(EXTRA_ioctl_evdev_DEPENDENCIES) 
-	@rm -f ioctl_evdev$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_evdev_OBJECTS) $(ioctl_evdev_LDADD) $(LIBS)
-
-ioctl_evdev-v$(EXEEXT): $(ioctl_evdev_v_OBJECTS) $(ioctl_evdev_v_DEPENDENCIES) $(EXTRA_ioctl_evdev_v_DEPENDENCIES) 
-	@rm -f ioctl_evdev-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_evdev_v_OBJECTS) $(ioctl_evdev_v_LDADD) $(LIBS)
-
-ioctl_loop$(EXEEXT): $(ioctl_loop_OBJECTS) $(ioctl_loop_DEPENDENCIES) $(EXTRA_ioctl_loop_DEPENDENCIES) 
-	@rm -f ioctl_loop$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_loop_OBJECTS) $(ioctl_loop_LDADD) $(LIBS)
-
-ioctl_loop-nv$(EXEEXT): $(ioctl_loop_nv_OBJECTS) $(ioctl_loop_nv_DEPENDENCIES) $(EXTRA_ioctl_loop_nv_DEPENDENCIES) 
-	@rm -f ioctl_loop-nv$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_loop_nv_OBJECTS) $(ioctl_loop_nv_LDADD) $(LIBS)
-
-ioctl_loop-v$(EXEEXT): $(ioctl_loop_v_OBJECTS) $(ioctl_loop_v_DEPENDENCIES) $(EXTRA_ioctl_loop_v_DEPENDENCIES) 
-	@rm -f ioctl_loop-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_loop_v_OBJECTS) $(ioctl_loop_v_LDADD) $(LIBS)
-
-ioctl_mtd$(EXEEXT): $(ioctl_mtd_OBJECTS) $(ioctl_mtd_DEPENDENCIES) $(EXTRA_ioctl_mtd_DEPENDENCIES) 
-	@rm -f ioctl_mtd$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_mtd_OBJECTS) $(ioctl_mtd_LDADD) $(LIBS)
-
-ioctl_nsfs$(EXEEXT): $(ioctl_nsfs_OBJECTS) $(ioctl_nsfs_DEPENDENCIES) $(EXTRA_ioctl_nsfs_DEPENDENCIES) 
-	@rm -f ioctl_nsfs$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_nsfs_OBJECTS) $(ioctl_nsfs_LDADD) $(LIBS)
-
-ioctl_rtc$(EXEEXT): $(ioctl_rtc_OBJECTS) $(ioctl_rtc_DEPENDENCIES) $(EXTRA_ioctl_rtc_DEPENDENCIES) 
-	@rm -f ioctl_rtc$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_rtc_OBJECTS) $(ioctl_rtc_LDADD) $(LIBS)
-
-ioctl_rtc-v$(EXEEXT): $(ioctl_rtc_v_OBJECTS) $(ioctl_rtc_v_DEPENDENCIES) $(EXTRA_ioctl_rtc_v_DEPENDENCIES) 
-	@rm -f ioctl_rtc-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_rtc_v_OBJECTS) $(ioctl_rtc_v_LDADD) $(LIBS)
-
-ioctl_scsi$(EXEEXT): $(ioctl_scsi_OBJECTS) $(ioctl_scsi_DEPENDENCIES) $(EXTRA_ioctl_scsi_DEPENDENCIES) 
-	@rm -f ioctl_scsi$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_scsi_OBJECTS) $(ioctl_scsi_LDADD) $(LIBS)
-
-ioctl_sg_io_v3$(EXEEXT): $(ioctl_sg_io_v3_OBJECTS) $(ioctl_sg_io_v3_DEPENDENCIES) $(EXTRA_ioctl_sg_io_v3_DEPENDENCIES) 
-	@rm -f ioctl_sg_io_v3$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_sg_io_v3_OBJECTS) $(ioctl_sg_io_v3_LDADD) $(LIBS)
-
-ioctl_sg_io_v4$(EXEEXT): $(ioctl_sg_io_v4_OBJECTS) $(ioctl_sg_io_v4_DEPENDENCIES) $(EXTRA_ioctl_sg_io_v4_DEPENDENCIES) 
-	@rm -f ioctl_sg_io_v4$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_sg_io_v4_OBJECTS) $(ioctl_sg_io_v4_LDADD) $(LIBS)
-
-ioctl_sock_gifconf$(EXEEXT): $(ioctl_sock_gifconf_OBJECTS) $(ioctl_sock_gifconf_DEPENDENCIES) $(EXTRA_ioctl_sock_gifconf_DEPENDENCIES) 
-	@rm -f ioctl_sock_gifconf$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_sock_gifconf_OBJECTS) $(ioctl_sock_gifconf_LDADD) $(LIBS)
-
-ioctl_uffdio$(EXEEXT): $(ioctl_uffdio_OBJECTS) $(ioctl_uffdio_DEPENDENCIES) $(EXTRA_ioctl_uffdio_DEPENDENCIES) 
-	@rm -f ioctl_uffdio$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_uffdio_OBJECTS) $(ioctl_uffdio_LDADD) $(LIBS)
-
-ioctl_v4l2$(EXEEXT): $(ioctl_v4l2_OBJECTS) $(ioctl_v4l2_DEPENDENCIES) $(EXTRA_ioctl_v4l2_DEPENDENCIES) 
-	@rm -f ioctl_v4l2$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioctl_v4l2_OBJECTS) $(ioctl_v4l2_LDADD) $(LIBS)
-
-ioperm$(EXEEXT): $(ioperm_OBJECTS) $(ioperm_DEPENDENCIES) $(EXTRA_ioperm_DEPENDENCIES) 
-	@rm -f ioperm$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioperm_OBJECTS) $(ioperm_LDADD) $(LIBS)
-
-iopl$(EXEEXT): $(iopl_OBJECTS) $(iopl_DEPENDENCIES) $(EXTRA_iopl_DEPENDENCIES) 
-	@rm -f iopl$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(iopl_OBJECTS) $(iopl_LDADD) $(LIBS)
-
-ioprio$(EXEEXT): $(ioprio_OBJECTS) $(ioprio_DEPENDENCIES) $(EXTRA_ioprio_DEPENDENCIES) 
-	@rm -f ioprio$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ioprio_OBJECTS) $(ioprio_LDADD) $(LIBS)
-
-ip_mreq$(EXEEXT): $(ip_mreq_OBJECTS) $(ip_mreq_DEPENDENCIES) $(EXTRA_ip_mreq_DEPENDENCIES) 
-	@rm -f ip_mreq$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ip_mreq_OBJECTS) $(ip_mreq_LDADD) $(LIBS)
-
-ipc$(EXEEXT): $(ipc_OBJECTS) $(ipc_DEPENDENCIES) $(EXTRA_ipc_DEPENDENCIES) 
-	@rm -f ipc$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ipc_OBJECTS) $(ipc_LDADD) $(LIBS)
-
-ipc_msg$(EXEEXT): $(ipc_msg_OBJECTS) $(ipc_msg_DEPENDENCIES) $(EXTRA_ipc_msg_DEPENDENCIES) 
-	@rm -f ipc_msg$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ipc_msg_OBJECTS) $(ipc_msg_LDADD) $(LIBS)
-
-ipc_msgbuf$(EXEEXT): $(ipc_msgbuf_OBJECTS) $(ipc_msgbuf_DEPENDENCIES) $(EXTRA_ipc_msgbuf_DEPENDENCIES) 
-	@rm -f ipc_msgbuf$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ipc_msgbuf_OBJECTS) $(ipc_msgbuf_LDADD) $(LIBS)
-
-ipc_sem$(EXEEXT): $(ipc_sem_OBJECTS) $(ipc_sem_DEPENDENCIES) $(EXTRA_ipc_sem_DEPENDENCIES) 
-	@rm -f ipc_sem$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ipc_sem_OBJECTS) $(ipc_sem_LDADD) $(LIBS)
-
-ipc_shm$(EXEEXT): $(ipc_shm_OBJECTS) $(ipc_shm_DEPENDENCIES) $(EXTRA_ipc_shm_DEPENDENCIES) 
-	@rm -f ipc_shm$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ipc_shm_OBJECTS) $(ipc_shm_LDADD) $(LIBS)
-
-kcmp$(EXEEXT): $(kcmp_OBJECTS) $(kcmp_DEPENDENCIES) $(EXTRA_kcmp_DEPENDENCIES) 
-	@rm -f kcmp$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(kcmp_OBJECTS) $(kcmp_LDADD) $(LIBS)
-
-kexec_file_load$(EXEEXT): $(kexec_file_load_OBJECTS) $(kexec_file_load_DEPENDENCIES) $(EXTRA_kexec_file_load_DEPENDENCIES) 
-	@rm -f kexec_file_load$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(kexec_file_load_OBJECTS) $(kexec_file_load_LDADD) $(LIBS)
-
-kexec_load$(EXEEXT): $(kexec_load_OBJECTS) $(kexec_load_DEPENDENCIES) $(EXTRA_kexec_load_DEPENDENCIES) 
-	@rm -f kexec_load$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(kexec_load_OBJECTS) $(kexec_load_LDADD) $(LIBS)
-
-keyctl$(EXEEXT): $(keyctl_OBJECTS) $(keyctl_DEPENDENCIES) $(EXTRA_keyctl_DEPENDENCIES) 
-	@rm -f keyctl$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(keyctl_OBJECTS) $(keyctl_LDADD) $(LIBS)
-
-kill$(EXEEXT): $(kill_OBJECTS) $(kill_DEPENDENCIES) $(EXTRA_kill_DEPENDENCIES) 
-	@rm -f kill$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(kill_OBJECTS) $(kill_LDADD) $(LIBS)
-
-ksysent$(EXEEXT): $(ksysent_OBJECTS) $(ksysent_DEPENDENCIES) $(EXTRA_ksysent_DEPENDENCIES) 
-	@rm -f ksysent$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ksysent_OBJECTS) $(ksysent_LDADD) $(LIBS)
-
-lchown$(EXEEXT): $(lchown_OBJECTS) $(lchown_DEPENDENCIES) $(EXTRA_lchown_DEPENDENCIES) 
-	@rm -f lchown$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(lchown_OBJECTS) $(lchown_LDADD) $(LIBS)
-
-lchown32$(EXEEXT): $(lchown32_OBJECTS) $(lchown32_DEPENDENCIES) $(EXTRA_lchown32_DEPENDENCIES) 
-	@rm -f lchown32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(lchown32_OBJECTS) $(lchown32_LDADD) $(LIBS)
-
-link$(EXEEXT): $(link_OBJECTS) $(link_DEPENDENCIES) $(EXTRA_link_DEPENDENCIES) 
-	@rm -f link$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(link_OBJECTS) $(link_LDADD) $(LIBS)
-
-linkat$(EXEEXT): $(linkat_OBJECTS) $(linkat_DEPENDENCIES) $(EXTRA_linkat_DEPENDENCIES) 
-	@rm -f linkat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(linkat_OBJECTS) $(linkat_LDADD) $(LIBS)
-
-llseek$(EXEEXT): $(llseek_OBJECTS) $(llseek_DEPENDENCIES) $(EXTRA_llseek_DEPENDENCIES) 
-	@rm -f llseek$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(llseek_OBJECTS) $(llseek_LDADD) $(LIBS)
-
-lookup_dcookie$(EXEEXT): $(lookup_dcookie_OBJECTS) $(lookup_dcookie_DEPENDENCIES) $(EXTRA_lookup_dcookie_DEPENDENCIES) 
-	@rm -f lookup_dcookie$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(lookup_dcookie_OBJECTS) $(lookup_dcookie_LDADD) $(LIBS)
-
-lseek$(EXEEXT): $(lseek_OBJECTS) $(lseek_DEPENDENCIES) $(EXTRA_lseek_DEPENDENCIES) 
-	@rm -f lseek$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(lseek_OBJECTS) $(lseek_LDADD) $(LIBS)
-
-lstat$(EXEEXT): $(lstat_OBJECTS) $(lstat_DEPENDENCIES) $(EXTRA_lstat_DEPENDENCIES) 
-	@rm -f lstat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(lstat_OBJECTS) $(lstat_LDADD) $(LIBS)
-
-lstat64$(EXEEXT): $(lstat64_OBJECTS) $(lstat64_DEPENDENCIES) $(EXTRA_lstat64_DEPENDENCIES) 
-	@rm -f lstat64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(lstat64_OBJECTS) $(lstat64_LDADD) $(LIBS)
-
-madvise$(EXEEXT): $(madvise_OBJECTS) $(madvise_DEPENDENCIES) $(EXTRA_madvise_DEPENDENCIES) 
-	@rm -f madvise$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(madvise_OBJECTS) $(madvise_LDADD) $(LIBS)
-
-mbind$(EXEEXT): $(mbind_OBJECTS) $(mbind_DEPENDENCIES) $(EXTRA_mbind_DEPENDENCIES) 
-	@rm -f mbind$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mbind_OBJECTS) $(mbind_LDADD) $(LIBS)
-
-membarrier$(EXEEXT): $(membarrier_OBJECTS) $(membarrier_DEPENDENCIES) $(EXTRA_membarrier_DEPENDENCIES) 
-	@rm -f membarrier$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(membarrier_OBJECTS) $(membarrier_LDADD) $(LIBS)
-
-memfd_create$(EXEEXT): $(memfd_create_OBJECTS) $(memfd_create_DEPENDENCIES) $(EXTRA_memfd_create_DEPENDENCIES) 
-	@rm -f memfd_create$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(memfd_create_OBJECTS) $(memfd_create_LDADD) $(LIBS)
-
-migrate_pages$(EXEEXT): $(migrate_pages_OBJECTS) $(migrate_pages_DEPENDENCIES) $(EXTRA_migrate_pages_DEPENDENCIES) 
-	@rm -f migrate_pages$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(migrate_pages_OBJECTS) $(migrate_pages_LDADD) $(LIBS)
-
-mincore$(EXEEXT): $(mincore_OBJECTS) $(mincore_DEPENDENCIES) $(EXTRA_mincore_DEPENDENCIES) 
-	@rm -f mincore$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mincore_OBJECTS) $(mincore_LDADD) $(LIBS)
-
-mkdir$(EXEEXT): $(mkdir_OBJECTS) $(mkdir_DEPENDENCIES) $(EXTRA_mkdir_DEPENDENCIES) 
-	@rm -f mkdir$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mkdir_OBJECTS) $(mkdir_LDADD) $(LIBS)
-
-mkdirat$(EXEEXT): $(mkdirat_OBJECTS) $(mkdirat_DEPENDENCIES) $(EXTRA_mkdirat_DEPENDENCIES) 
-	@rm -f mkdirat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mkdirat_OBJECTS) $(mkdirat_LDADD) $(LIBS)
-
-mknod$(EXEEXT): $(mknod_OBJECTS) $(mknod_DEPENDENCIES) $(EXTRA_mknod_DEPENDENCIES) 
-	@rm -f mknod$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mknod_OBJECTS) $(mknod_LDADD) $(LIBS)
-
-mknodat$(EXEEXT): $(mknodat_OBJECTS) $(mknodat_DEPENDENCIES) $(EXTRA_mknodat_DEPENDENCIES) 
-	@rm -f mknodat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mknodat_OBJECTS) $(mknodat_LDADD) $(LIBS)
-
-mlock$(EXEEXT): $(mlock_OBJECTS) $(mlock_DEPENDENCIES) $(EXTRA_mlock_DEPENDENCIES) 
-	@rm -f mlock$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mlock_OBJECTS) $(mlock_LDADD) $(LIBS)
-
-mlock2$(EXEEXT): $(mlock2_OBJECTS) $(mlock2_DEPENDENCIES) $(EXTRA_mlock2_DEPENDENCIES) 
-	@rm -f mlock2$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mlock2_OBJECTS) $(mlock2_LDADD) $(LIBS)
-
-mlockall$(EXEEXT): $(mlockall_OBJECTS) $(mlockall_DEPENDENCIES) $(EXTRA_mlockall_DEPENDENCIES) 
-	@rm -f mlockall$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mlockall_OBJECTS) $(mlockall_LDADD) $(LIBS)
-
-mmap$(EXEEXT): $(mmap_OBJECTS) $(mmap_DEPENDENCIES) $(EXTRA_mmap_DEPENDENCIES) 
-	@rm -f mmap$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mmap_OBJECTS) $(mmap_LDADD) $(LIBS)
-
-mmap64$(EXEEXT): $(mmap64_OBJECTS) $(mmap64_DEPENDENCIES) $(EXTRA_mmap64_DEPENDENCIES) 
-	@rm -f mmap64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mmap64_OBJECTS) $(mmap64_LDADD) $(LIBS)
-
-mmsg$(EXEEXT): $(mmsg_OBJECTS) $(mmsg_DEPENDENCIES) $(EXTRA_mmsg_DEPENDENCIES) 
-	@rm -f mmsg$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mmsg_OBJECTS) $(mmsg_LDADD) $(LIBS)
-
-mmsg-silent$(EXEEXT): $(mmsg_silent_OBJECTS) $(mmsg_silent_DEPENDENCIES) $(EXTRA_mmsg_silent_DEPENDENCIES) 
-	@rm -f mmsg-silent$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mmsg_silent_OBJECTS) $(mmsg_silent_LDADD) $(LIBS)
-
-mmsg_name$(EXEEXT): $(mmsg_name_OBJECTS) $(mmsg_name_DEPENDENCIES) $(EXTRA_mmsg_name_DEPENDENCIES) 
-	@rm -f mmsg_name$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mmsg_name_OBJECTS) $(mmsg_name_LDADD) $(LIBS)
-
-mmsg_name-v$(EXEEXT): $(mmsg_name_v_OBJECTS) $(mmsg_name_v_DEPENDENCIES) $(EXTRA_mmsg_name_v_DEPENDENCIES) 
-	@rm -f mmsg_name-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mmsg_name_v_OBJECTS) $(mmsg_name_v_LDADD) $(LIBS)
-
-mount$(EXEEXT): $(mount_OBJECTS) $(mount_DEPENDENCIES) $(EXTRA_mount_DEPENDENCIES) 
-	@rm -f mount$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mount_OBJECTS) $(mount_LDADD) $(LIBS)
-
-move_pages$(EXEEXT): $(move_pages_OBJECTS) $(move_pages_DEPENDENCIES) $(EXTRA_move_pages_DEPENDENCIES) 
-	@rm -f move_pages$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(move_pages_OBJECTS) $(move_pages_LDADD) $(LIBS)
-
-mq$(EXEEXT): $(mq_OBJECTS) $(mq_DEPENDENCIES) $(EXTRA_mq_DEPENDENCIES) 
-	@rm -f mq$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mq_OBJECTS) $(mq_LDADD) $(LIBS)
-
-mq_sendrecv$(EXEEXT): $(mq_sendrecv_OBJECTS) $(mq_sendrecv_DEPENDENCIES) $(EXTRA_mq_sendrecv_DEPENDENCIES) 
-	@rm -f mq_sendrecv$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mq_sendrecv_OBJECTS) $(mq_sendrecv_LDADD) $(LIBS)
-
-mq_sendrecv-read$(EXEEXT): $(mq_sendrecv_read_OBJECTS) $(mq_sendrecv_read_DEPENDENCIES) $(EXTRA_mq_sendrecv_read_DEPENDENCIES) 
-	@rm -f mq_sendrecv-read$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mq_sendrecv_read_OBJECTS) $(mq_sendrecv_read_LDADD) $(LIBS)
-
-mq_sendrecv-write$(EXEEXT): $(mq_sendrecv_write_OBJECTS) $(mq_sendrecv_write_DEPENDENCIES) $(EXTRA_mq_sendrecv_write_DEPENDENCIES) 
-	@rm -f mq_sendrecv-write$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(mq_sendrecv_write_OBJECTS) $(mq_sendrecv_write_LDADD) $(LIBS)
-
-msg_control$(EXEEXT): $(msg_control_OBJECTS) $(msg_control_DEPENDENCIES) $(EXTRA_msg_control_DEPENDENCIES) 
-	@rm -f msg_control$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(msg_control_OBJECTS) $(msg_control_LDADD) $(LIBS)
-
-msg_control-v$(EXEEXT): $(msg_control_v_OBJECTS) $(msg_control_v_DEPENDENCIES) $(EXTRA_msg_control_v_DEPENDENCIES) 
-	@rm -f msg_control-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(msg_control_v_OBJECTS) $(msg_control_v_LDADD) $(LIBS)
-
-msg_name$(EXEEXT): $(msg_name_OBJECTS) $(msg_name_DEPENDENCIES) $(EXTRA_msg_name_DEPENDENCIES) 
-	@rm -f msg_name$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(msg_name_OBJECTS) $(msg_name_LDADD) $(LIBS)
-
-munlockall$(EXEEXT): $(munlockall_OBJECTS) $(munlockall_DEPENDENCIES) $(EXTRA_munlockall_DEPENDENCIES) 
-	@rm -f munlockall$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(munlockall_OBJECTS) $(munlockall_LDADD) $(LIBS)
-
-nanosleep$(EXEEXT): $(nanosleep_OBJECTS) $(nanosleep_DEPENDENCIES) $(EXTRA_nanosleep_DEPENDENCIES) 
-	@rm -f nanosleep$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(nanosleep_OBJECTS) $(nanosleep_LDADD) $(LIBS)
-
-net-accept-connect$(EXEEXT): $(net_accept_connect_OBJECTS) $(net_accept_connect_DEPENDENCIES) $(EXTRA_net_accept_connect_DEPENDENCIES) 
-	@rm -f net-accept-connect$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(net_accept_connect_OBJECTS) $(net_accept_connect_LDADD) $(LIBS)
-
-net-icmp_filter$(EXEEXT): $(net_icmp_filter_OBJECTS) $(net_icmp_filter_DEPENDENCIES) $(EXTRA_net_icmp_filter_DEPENDENCIES) 
-	@rm -f net-icmp_filter$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(net_icmp_filter_OBJECTS) $(net_icmp_filter_LDADD) $(LIBS)
-
-net-sockaddr$(EXEEXT): $(net_sockaddr_OBJECTS) $(net_sockaddr_DEPENDENCIES) $(EXTRA_net_sockaddr_DEPENDENCIES) 
-	@rm -f net-sockaddr$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(net_sockaddr_OBJECTS) $(net_sockaddr_LDADD) $(LIBS)
-
-net-y-unix$(EXEEXT): $(net_y_unix_OBJECTS) $(net_y_unix_DEPENDENCIES) $(EXTRA_net_y_unix_DEPENDENCIES) 
-	@rm -f net-y-unix$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(net_y_unix_OBJECTS) $(net_y_unix_LDADD) $(LIBS)
-
-net-yy-inet$(EXEEXT): $(net_yy_inet_OBJECTS) $(net_yy_inet_DEPENDENCIES) $(EXTRA_net_yy_inet_DEPENDENCIES) 
-	@rm -f net-yy-inet$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(net_yy_inet_OBJECTS) $(net_yy_inet_LDADD) $(LIBS)
-
-net-yy-netlink$(EXEEXT): $(net_yy_netlink_OBJECTS) $(net_yy_netlink_DEPENDENCIES) $(EXTRA_net_yy_netlink_DEPENDENCIES) 
-	@rm -f net-yy-netlink$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(net_yy_netlink_OBJECTS) $(net_yy_netlink_LDADD) $(LIBS)
-
-net-yy-unix$(EXEEXT): $(net_yy_unix_OBJECTS) $(net_yy_unix_DEPENDENCIES) $(EXTRA_net_yy_unix_DEPENDENCIES) 
-	@rm -f net-yy-unix$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(net_yy_unix_OBJECTS) $(net_yy_unix_LDADD) $(LIBS)
-
-netlink_inet_diag$(EXEEXT): $(netlink_inet_diag_OBJECTS) $(netlink_inet_diag_DEPENDENCIES) $(EXTRA_netlink_inet_diag_DEPENDENCIES) 
-	@rm -f netlink_inet_diag$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(netlink_inet_diag_OBJECTS) $(netlink_inet_diag_LDADD) $(LIBS)
-
-netlink_netlink_diag$(EXEEXT): $(netlink_netlink_diag_OBJECTS) $(netlink_netlink_diag_DEPENDENCIES) $(EXTRA_netlink_netlink_diag_DEPENDENCIES) 
-	@rm -f netlink_netlink_diag$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(netlink_netlink_diag_OBJECTS) $(netlink_netlink_diag_LDADD) $(LIBS)
-
-netlink_protocol$(EXEEXT): $(netlink_protocol_OBJECTS) $(netlink_protocol_DEPENDENCIES) $(EXTRA_netlink_protocol_DEPENDENCIES) 
-	@rm -f netlink_protocol$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(netlink_protocol_OBJECTS) $(netlink_protocol_LDADD) $(LIBS)
-
-netlink_unix_diag$(EXEEXT): $(netlink_unix_diag_OBJECTS) $(netlink_unix_diag_DEPENDENCIES) $(EXTRA_netlink_unix_diag_DEPENDENCIES) 
-	@rm -f netlink_unix_diag$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(netlink_unix_diag_OBJECTS) $(netlink_unix_diag_LDADD) $(LIBS)
-
-newfstatat$(EXEEXT): $(newfstatat_OBJECTS) $(newfstatat_DEPENDENCIES) $(EXTRA_newfstatat_DEPENDENCIES) 
-	@rm -f newfstatat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(newfstatat_OBJECTS) $(newfstatat_LDADD) $(LIBS)
-
-nsyscalls$(EXEEXT): $(nsyscalls_OBJECTS) $(nsyscalls_DEPENDENCIES) $(EXTRA_nsyscalls_DEPENDENCIES) 
-	@rm -f nsyscalls$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(nsyscalls_OBJECTS) $(nsyscalls_LDADD) $(LIBS)
-
-old_mmap$(EXEEXT): $(old_mmap_OBJECTS) $(old_mmap_DEPENDENCIES) $(EXTRA_old_mmap_DEPENDENCIES) 
-	@rm -f old_mmap$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(old_mmap_OBJECTS) $(old_mmap_LDADD) $(LIBS)
-
-oldfstat$(EXEEXT): $(oldfstat_OBJECTS) $(oldfstat_DEPENDENCIES) $(EXTRA_oldfstat_DEPENDENCIES) 
-	@rm -f oldfstat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(oldfstat_OBJECTS) $(oldfstat_LDADD) $(LIBS)
-
-oldlstat$(EXEEXT): $(oldlstat_OBJECTS) $(oldlstat_DEPENDENCIES) $(EXTRA_oldlstat_DEPENDENCIES) 
-	@rm -f oldlstat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(oldlstat_OBJECTS) $(oldlstat_LDADD) $(LIBS)
-
-oldselect$(EXEEXT): $(oldselect_OBJECTS) $(oldselect_DEPENDENCIES) $(EXTRA_oldselect_DEPENDENCIES) 
-	@rm -f oldselect$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(oldselect_OBJECTS) $(oldselect_LDADD) $(LIBS)
-
-oldstat$(EXEEXT): $(oldstat_OBJECTS) $(oldstat_DEPENDENCIES) $(EXTRA_oldstat_DEPENDENCIES) 
-	@rm -f oldstat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(oldstat_OBJECTS) $(oldstat_LDADD) $(LIBS)
-
-open$(EXEEXT): $(open_OBJECTS) $(open_DEPENDENCIES) $(EXTRA_open_DEPENDENCIES) 
-	@rm -f open$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(open_OBJECTS) $(open_LDADD) $(LIBS)
-
-openat$(EXEEXT): $(openat_OBJECTS) $(openat_DEPENDENCIES) $(EXTRA_openat_DEPENDENCIES) 
-	@rm -f openat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(openat_OBJECTS) $(openat_LDADD) $(LIBS)
-
-osf_utimes$(EXEEXT): $(osf_utimes_OBJECTS) $(osf_utimes_DEPENDENCIES) $(EXTRA_osf_utimes_DEPENDENCIES) 
-	@rm -f osf_utimes$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(osf_utimes_OBJECTS) $(osf_utimes_LDADD) $(LIBS)
-
-pause$(EXEEXT): $(pause_OBJECTS) $(pause_DEPENDENCIES) $(EXTRA_pause_DEPENDENCIES) 
-	@rm -f pause$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(pause_OBJECTS) $(pause_LDADD) $(LIBS)
-
-pc$(EXEEXT): $(pc_OBJECTS) $(pc_DEPENDENCIES) $(EXTRA_pc_DEPENDENCIES) 
-	@rm -f pc$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(pc_OBJECTS) $(pc_LDADD) $(LIBS)
-
-perf_event_open$(EXEEXT): $(perf_event_open_OBJECTS) $(perf_event_open_DEPENDENCIES) $(EXTRA_perf_event_open_DEPENDENCIES) 
-	@rm -f perf_event_open$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(perf_event_open_OBJECTS) $(perf_event_open_LDADD) $(LIBS)
-
-perf_event_open_nonverbose$(EXEEXT): $(perf_event_open_nonverbose_OBJECTS) $(perf_event_open_nonverbose_DEPENDENCIES) $(EXTRA_perf_event_open_nonverbose_DEPENDENCIES) 
-	@rm -f perf_event_open_nonverbose$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(perf_event_open_nonverbose_OBJECTS) $(perf_event_open_nonverbose_LDADD) $(LIBS)
-
-perf_event_open_unabbrev$(EXEEXT): $(perf_event_open_unabbrev_OBJECTS) $(perf_event_open_unabbrev_DEPENDENCIES) $(EXTRA_perf_event_open_unabbrev_DEPENDENCIES) 
-	@rm -f perf_event_open_unabbrev$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(perf_event_open_unabbrev_OBJECTS) $(perf_event_open_unabbrev_LDADD) $(LIBS)
-
-personality$(EXEEXT): $(personality_OBJECTS) $(personality_DEPENDENCIES) $(EXTRA_personality_DEPENDENCIES) 
-	@rm -f personality$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(personality_OBJECTS) $(personality_LDADD) $(LIBS)
-
-pipe$(EXEEXT): $(pipe_OBJECTS) $(pipe_DEPENDENCIES) $(EXTRA_pipe_DEPENDENCIES) 
-	@rm -f pipe$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(pipe_OBJECTS) $(pipe_LDADD) $(LIBS)
-
-pipe2$(EXEEXT): $(pipe2_OBJECTS) $(pipe2_DEPENDENCIES) $(EXTRA_pipe2_DEPENDENCIES) 
-	@rm -f pipe2$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(pipe2_OBJECTS) $(pipe2_LDADD) $(LIBS)
-
-pkey_alloc$(EXEEXT): $(pkey_alloc_OBJECTS) $(pkey_alloc_DEPENDENCIES) $(EXTRA_pkey_alloc_DEPENDENCIES) 
-	@rm -f pkey_alloc$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(pkey_alloc_OBJECTS) $(pkey_alloc_LDADD) $(LIBS)
-
-pkey_free$(EXEEXT): $(pkey_free_OBJECTS) $(pkey_free_DEPENDENCIES) $(EXTRA_pkey_free_DEPENDENCIES) 
-	@rm -f pkey_free$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(pkey_free_OBJECTS) $(pkey_free_LDADD) $(LIBS)
-
-pkey_mprotect$(EXEEXT): $(pkey_mprotect_OBJECTS) $(pkey_mprotect_DEPENDENCIES) $(EXTRA_pkey_mprotect_DEPENDENCIES) 
-	@rm -f pkey_mprotect$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(pkey_mprotect_OBJECTS) $(pkey_mprotect_LDADD) $(LIBS)
-
-poll$(EXEEXT): $(poll_OBJECTS) $(poll_DEPENDENCIES) $(EXTRA_poll_DEPENDENCIES) 
-	@rm -f poll$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(poll_OBJECTS) $(poll_LDADD) $(LIBS)
-
-ppoll$(EXEEXT): $(ppoll_OBJECTS) $(ppoll_DEPENDENCIES) $(EXTRA_ppoll_DEPENDENCIES) 
-	@rm -f ppoll$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ppoll_OBJECTS) $(ppoll_LDADD) $(LIBS)
-
-ppoll-v$(EXEEXT): $(ppoll_v_OBJECTS) $(ppoll_v_DEPENDENCIES) $(EXTRA_ppoll_v_DEPENDENCIES) 
-	@rm -f ppoll-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ppoll_v_OBJECTS) $(ppoll_v_LDADD) $(LIBS)
-
-prctl-arg2-intptr$(EXEEXT): $(prctl_arg2_intptr_OBJECTS) $(prctl_arg2_intptr_DEPENDENCIES) $(EXTRA_prctl_arg2_intptr_DEPENDENCIES) 
-	@rm -f prctl-arg2-intptr$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prctl_arg2_intptr_OBJECTS) $(prctl_arg2_intptr_LDADD) $(LIBS)
-
-prctl-dumpable$(EXEEXT): $(prctl_dumpable_OBJECTS) $(prctl_dumpable_DEPENDENCIES) $(EXTRA_prctl_dumpable_DEPENDENCIES) 
-	@rm -f prctl-dumpable$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prctl_dumpable_OBJECTS) $(prctl_dumpable_LDADD) $(LIBS)
-
-prctl-name$(EXEEXT): $(prctl_name_OBJECTS) $(prctl_name_DEPENDENCIES) $(EXTRA_prctl_name_DEPENDENCIES) 
-	@rm -f prctl-name$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prctl_name_OBJECTS) $(prctl_name_LDADD) $(LIBS)
-
-prctl-no-args$(EXEEXT): $(prctl_no_args_OBJECTS) $(prctl_no_args_DEPENDENCIES) $(EXTRA_prctl_no_args_DEPENDENCIES) 
-	@rm -f prctl-no-args$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prctl_no_args_OBJECTS) $(prctl_no_args_LDADD) $(LIBS)
-
-prctl-pdeathsig$(EXEEXT): $(prctl_pdeathsig_OBJECTS) $(prctl_pdeathsig_DEPENDENCIES) $(EXTRA_prctl_pdeathsig_DEPENDENCIES) 
-	@rm -f prctl-pdeathsig$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prctl_pdeathsig_OBJECTS) $(prctl_pdeathsig_LDADD) $(LIBS)
-
-prctl-seccomp-filter-v$(EXEEXT): $(prctl_seccomp_filter_v_OBJECTS) $(prctl_seccomp_filter_v_DEPENDENCIES) $(EXTRA_prctl_seccomp_filter_v_DEPENDENCIES) 
-	@rm -f prctl-seccomp-filter-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prctl_seccomp_filter_v_OBJECTS) $(prctl_seccomp_filter_v_LDADD) $(LIBS)
-
-prctl-seccomp-strict$(EXEEXT): $(prctl_seccomp_strict_OBJECTS) $(prctl_seccomp_strict_DEPENDENCIES) $(EXTRA_prctl_seccomp_strict_DEPENDENCIES) 
-	@rm -f prctl-seccomp-strict$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prctl_seccomp_strict_OBJECTS) $(prctl_seccomp_strict_LDADD) $(LIBS)
-
-prctl-securebits$(EXEEXT): $(prctl_securebits_OBJECTS) $(prctl_securebits_DEPENDENCIES) $(EXTRA_prctl_securebits_DEPENDENCIES) 
-	@rm -f prctl-securebits$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prctl_securebits_OBJECTS) $(prctl_securebits_LDADD) $(LIBS)
-
-prctl-tid_address$(EXEEXT): $(prctl_tid_address_OBJECTS) $(prctl_tid_address_DEPENDENCIES) $(EXTRA_prctl_tid_address_DEPENDENCIES) 
-	@rm -f prctl-tid_address$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prctl_tid_address_OBJECTS) $(prctl_tid_address_LDADD) $(LIBS)
-
-prctl-tsc$(EXEEXT): $(prctl_tsc_OBJECTS) $(prctl_tsc_DEPENDENCIES) $(EXTRA_prctl_tsc_DEPENDENCIES) 
-	@rm -f prctl-tsc$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prctl_tsc_OBJECTS) $(prctl_tsc_LDADD) $(LIBS)
-
-pread64-pwrite64$(EXEEXT): $(pread64_pwrite64_OBJECTS) $(pread64_pwrite64_DEPENDENCIES) $(EXTRA_pread64_pwrite64_DEPENDENCIES) 
-	@rm -f pread64-pwrite64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(pread64_pwrite64_OBJECTS) $(pread64_pwrite64_LDADD) $(LIBS)
-
-preadv$(EXEEXT): $(preadv_OBJECTS) $(preadv_DEPENDENCIES) $(EXTRA_preadv_DEPENDENCIES) 
-	@rm -f preadv$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(preadv_OBJECTS) $(preadv_LDADD) $(LIBS)
-
-preadv-pwritev$(EXEEXT): $(preadv_pwritev_OBJECTS) $(preadv_pwritev_DEPENDENCIES) $(EXTRA_preadv_pwritev_DEPENDENCIES) 
-	@rm -f preadv-pwritev$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(preadv_pwritev_OBJECTS) $(preadv_pwritev_LDADD) $(LIBS)
-
-preadv2-pwritev2$(EXEEXT): $(preadv2_pwritev2_OBJECTS) $(preadv2_pwritev2_DEPENDENCIES) $(EXTRA_preadv2_pwritev2_DEPENDENCIES) 
-	@rm -f preadv2-pwritev2$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(preadv2_pwritev2_OBJECTS) $(preadv2_pwritev2_LDADD) $(LIBS)
-
-print_maxfd$(EXEEXT): $(print_maxfd_OBJECTS) $(print_maxfd_DEPENDENCIES) $(EXTRA_print_maxfd_DEPENDENCIES) 
-	@rm -f print_maxfd$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(print_maxfd_OBJECTS) $(print_maxfd_LDADD) $(LIBS)
-
-printstr$(EXEEXT): $(printstr_OBJECTS) $(printstr_DEPENDENCIES) $(EXTRA_printstr_DEPENDENCIES) 
-	@rm -f printstr$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(printstr_OBJECTS) $(printstr_LDADD) $(LIBS)
-
-prlimit64$(EXEEXT): $(prlimit64_OBJECTS) $(prlimit64_DEPENDENCIES) $(EXTRA_prlimit64_DEPENDENCIES) 
-	@rm -f prlimit64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(prlimit64_OBJECTS) $(prlimit64_LDADD) $(LIBS)
-
-process_vm_readv$(EXEEXT): $(process_vm_readv_OBJECTS) $(process_vm_readv_DEPENDENCIES) $(EXTRA_process_vm_readv_DEPENDENCIES) 
-	@rm -f process_vm_readv$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(process_vm_readv_OBJECTS) $(process_vm_readv_LDADD) $(LIBS)
-
-process_vm_writev$(EXEEXT): $(process_vm_writev_OBJECTS) $(process_vm_writev_DEPENDENCIES) $(EXTRA_process_vm_writev_DEPENDENCIES) 
-	@rm -f process_vm_writev$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(process_vm_writev_OBJECTS) $(process_vm_writev_LDADD) $(LIBS)
-
-pselect6$(EXEEXT): $(pselect6_OBJECTS) $(pselect6_DEPENDENCIES) $(EXTRA_pselect6_DEPENDENCIES) 
-	@rm -f pselect6$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(pselect6_OBJECTS) $(pselect6_LDADD) $(LIBS)
-
-ptrace$(EXEEXT): $(ptrace_OBJECTS) $(ptrace_DEPENDENCIES) $(EXTRA_ptrace_DEPENDENCIES) 
-	@rm -f ptrace$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ptrace_OBJECTS) $(ptrace_LDADD) $(LIBS)
-
-pwritev$(EXEEXT): $(pwritev_OBJECTS) $(pwritev_DEPENDENCIES) $(EXTRA_pwritev_DEPENDENCIES) 
-	@rm -f pwritev$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(pwritev_OBJECTS) $(pwritev_LDADD) $(LIBS)
-
-qual_fault$(EXEEXT): $(qual_fault_OBJECTS) $(qual_fault_DEPENDENCIES) $(EXTRA_qual_fault_DEPENDENCIES) 
-	@rm -f qual_fault$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(qual_fault_OBJECTS) $(qual_fault_LDADD) $(LIBS)
-
-qual_inject-error-signal$(EXEEXT): $(qual_inject_error_signal_OBJECTS) $(qual_inject_error_signal_DEPENDENCIES) $(EXTRA_qual_inject_error_signal_DEPENDENCIES) 
-	@rm -f qual_inject-error-signal$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(qual_inject_error_signal_OBJECTS) $(qual_inject_error_signal_LDADD) $(LIBS)
-
-qual_inject-retval$(EXEEXT): $(qual_inject_retval_OBJECTS) $(qual_inject_retval_DEPENDENCIES) $(EXTRA_qual_inject_retval_DEPENDENCIES) 
-	@rm -f qual_inject-retval$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(qual_inject_retval_OBJECTS) $(qual_inject_retval_LDADD) $(LIBS)
-
-qual_inject-signal$(EXEEXT): $(qual_inject_signal_OBJECTS) $(qual_inject_signal_DEPENDENCIES) $(EXTRA_qual_inject_signal_DEPENDENCIES) 
-	@rm -f qual_inject-signal$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(qual_inject_signal_OBJECTS) $(qual_inject_signal_LDADD) $(LIBS)
-
-qual_signal$(EXEEXT): $(qual_signal_OBJECTS) $(qual_signal_DEPENDENCIES) $(EXTRA_qual_signal_DEPENDENCIES) 
-	@rm -f qual_signal$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(qual_signal_OBJECTS) $(qual_signal_LDADD) $(LIBS)
-
-quotactl$(EXEEXT): $(quotactl_OBJECTS) $(quotactl_DEPENDENCIES) $(EXTRA_quotactl_DEPENDENCIES) 
-	@rm -f quotactl$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(quotactl_OBJECTS) $(quotactl_LDADD) $(LIBS)
-
-quotactl-v$(EXEEXT): $(quotactl_v_OBJECTS) $(quotactl_v_DEPENDENCIES) $(EXTRA_quotactl_v_DEPENDENCIES) 
-	@rm -f quotactl-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(quotactl_v_OBJECTS) $(quotactl_v_LDADD) $(LIBS)
-
-quotactl-xfs$(EXEEXT): $(quotactl_xfs_OBJECTS) $(quotactl_xfs_DEPENDENCIES) $(EXTRA_quotactl_xfs_DEPENDENCIES) 
-	@rm -f quotactl-xfs$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(quotactl_xfs_OBJECTS) $(quotactl_xfs_LDADD) $(LIBS)
-
-quotactl-xfs-v$(EXEEXT): $(quotactl_xfs_v_OBJECTS) $(quotactl_xfs_v_DEPENDENCIES) $(EXTRA_quotactl_xfs_v_DEPENDENCIES) 
-	@rm -f quotactl-xfs-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(quotactl_xfs_v_OBJECTS) $(quotactl_xfs_v_LDADD) $(LIBS)
-
-read-write$(EXEEXT): $(read_write_OBJECTS) $(read_write_DEPENDENCIES) $(EXTRA_read_write_DEPENDENCIES) 
-	@rm -f read-write$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(read_write_OBJECTS) $(read_write_LDADD) $(LIBS)
-
-readahead$(EXEEXT): $(readahead_OBJECTS) $(readahead_DEPENDENCIES) $(EXTRA_readahead_DEPENDENCIES) 
-	@rm -f readahead$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(readahead_OBJECTS) $(readahead_LDADD) $(LIBS)
-
-readdir$(EXEEXT): $(readdir_OBJECTS) $(readdir_DEPENDENCIES) $(EXTRA_readdir_DEPENDENCIES) 
-	@rm -f readdir$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(readdir_OBJECTS) $(readdir_LDADD) $(LIBS)
-
-readlink$(EXEEXT): $(readlink_OBJECTS) $(readlink_DEPENDENCIES) $(EXTRA_readlink_DEPENDENCIES) 
-	@rm -f readlink$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(readlink_OBJECTS) $(readlink_LDADD) $(LIBS)
-
-readlinkat$(EXEEXT): $(readlinkat_OBJECTS) $(readlinkat_DEPENDENCIES) $(EXTRA_readlinkat_DEPENDENCIES) 
-	@rm -f readlinkat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(readlinkat_OBJECTS) $(readlinkat_LDADD) $(LIBS)
-
-readv$(EXEEXT): $(readv_OBJECTS) $(readv_DEPENDENCIES) $(EXTRA_readv_DEPENDENCIES) 
-	@rm -f readv$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(readv_OBJECTS) $(readv_LDADD) $(LIBS)
-
-reboot$(EXEEXT): $(reboot_OBJECTS) $(reboot_DEPENDENCIES) $(EXTRA_reboot_DEPENDENCIES) 
-	@rm -f reboot$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(reboot_OBJECTS) $(reboot_LDADD) $(LIBS)
-
-recvfrom$(EXEEXT): $(recvfrom_OBJECTS) $(recvfrom_DEPENDENCIES) $(EXTRA_recvfrom_DEPENDENCIES) 
-	@rm -f recvfrom$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(recvfrom_OBJECTS) $(recvfrom_LDADD) $(LIBS)
-
-recvmmsg-timeout$(EXEEXT): $(recvmmsg_timeout_OBJECTS) $(recvmmsg_timeout_DEPENDENCIES) $(EXTRA_recvmmsg_timeout_DEPENDENCIES) 
-	@rm -f recvmmsg-timeout$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(recvmmsg_timeout_OBJECTS) $(recvmmsg_timeout_LDADD) $(LIBS)
-
-recvmsg$(EXEEXT): $(recvmsg_OBJECTS) $(recvmsg_DEPENDENCIES) $(EXTRA_recvmsg_DEPENDENCIES) 
-	@rm -f recvmsg$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(recvmsg_OBJECTS) $(recvmsg_LDADD) $(LIBS)
-
-redirect-fds$(EXEEXT): $(redirect_fds_OBJECTS) $(redirect_fds_DEPENDENCIES) $(EXTRA_redirect_fds_DEPENDENCIES) 
-	@rm -f redirect-fds$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(redirect_fds_OBJECTS) $(redirect_fds_LDADD) $(LIBS)
-
-remap_file_pages$(EXEEXT): $(remap_file_pages_OBJECTS) $(remap_file_pages_DEPENDENCIES) $(EXTRA_remap_file_pages_DEPENDENCIES) 
-	@rm -f remap_file_pages$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(remap_file_pages_OBJECTS) $(remap_file_pages_LDADD) $(LIBS)
-
-rename$(EXEEXT): $(rename_OBJECTS) $(rename_DEPENDENCIES) $(EXTRA_rename_DEPENDENCIES) 
-	@rm -f rename$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(rename_OBJECTS) $(rename_LDADD) $(LIBS)
-
-renameat$(EXEEXT): $(renameat_OBJECTS) $(renameat_DEPENDENCIES) $(EXTRA_renameat_DEPENDENCIES) 
-	@rm -f renameat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(renameat_OBJECTS) $(renameat_LDADD) $(LIBS)
-
-renameat2$(EXEEXT): $(renameat2_OBJECTS) $(renameat2_DEPENDENCIES) $(EXTRA_renameat2_DEPENDENCIES) 
-	@rm -f renameat2$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(renameat2_OBJECTS) $(renameat2_LDADD) $(LIBS)
-
-request_key$(EXEEXT): $(request_key_OBJECTS) $(request_key_DEPENDENCIES) $(EXTRA_request_key_DEPENDENCIES) 
-	@rm -f request_key$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(request_key_OBJECTS) $(request_key_LDADD) $(LIBS)
-
-restart_syscall$(EXEEXT): $(restart_syscall_OBJECTS) $(restart_syscall_DEPENDENCIES) $(EXTRA_restart_syscall_DEPENDENCIES) 
-	@rm -f restart_syscall$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(restart_syscall_OBJECTS) $(restart_syscall_LDADD) $(LIBS)
-
-rmdir$(EXEEXT): $(rmdir_OBJECTS) $(rmdir_DEPENDENCIES) $(EXTRA_rmdir_DEPENDENCIES) 
-	@rm -f rmdir$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(rmdir_OBJECTS) $(rmdir_LDADD) $(LIBS)
-
-rt_sigpending$(EXEEXT): $(rt_sigpending_OBJECTS) $(rt_sigpending_DEPENDENCIES) $(EXTRA_rt_sigpending_DEPENDENCIES) 
-	@rm -f rt_sigpending$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(rt_sigpending_OBJECTS) $(rt_sigpending_LDADD) $(LIBS)
-
-rt_sigprocmask$(EXEEXT): $(rt_sigprocmask_OBJECTS) $(rt_sigprocmask_DEPENDENCIES) $(EXTRA_rt_sigprocmask_DEPENDENCIES) 
-	@rm -f rt_sigprocmask$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(rt_sigprocmask_OBJECTS) $(rt_sigprocmask_LDADD) $(LIBS)
-
-rt_sigqueueinfo$(EXEEXT): $(rt_sigqueueinfo_OBJECTS) $(rt_sigqueueinfo_DEPENDENCIES) $(EXTRA_rt_sigqueueinfo_DEPENDENCIES) 
-	@rm -f rt_sigqueueinfo$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(rt_sigqueueinfo_OBJECTS) $(rt_sigqueueinfo_LDADD) $(LIBS)
-
-rt_sigreturn$(EXEEXT): $(rt_sigreturn_OBJECTS) $(rt_sigreturn_DEPENDENCIES) $(EXTRA_rt_sigreturn_DEPENDENCIES) 
-	@rm -f rt_sigreturn$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(rt_sigreturn_OBJECTS) $(rt_sigreturn_LDADD) $(LIBS)
-
-rt_sigsuspend$(EXEEXT): $(rt_sigsuspend_OBJECTS) $(rt_sigsuspend_DEPENDENCIES) $(EXTRA_rt_sigsuspend_DEPENDENCIES) 
-	@rm -f rt_sigsuspend$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(rt_sigsuspend_OBJECTS) $(rt_sigsuspend_LDADD) $(LIBS)
-
-rt_sigtimedwait$(EXEEXT): $(rt_sigtimedwait_OBJECTS) $(rt_sigtimedwait_DEPENDENCIES) $(EXTRA_rt_sigtimedwait_DEPENDENCIES) 
-	@rm -f rt_sigtimedwait$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(rt_sigtimedwait_OBJECTS) $(rt_sigtimedwait_LDADD) $(LIBS)
-
-rt_tgsigqueueinfo$(EXEEXT): $(rt_tgsigqueueinfo_OBJECTS) $(rt_tgsigqueueinfo_DEPENDENCIES) $(EXTRA_rt_tgsigqueueinfo_DEPENDENCIES) 
-	@rm -f rt_tgsigqueueinfo$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(rt_tgsigqueueinfo_OBJECTS) $(rt_tgsigqueueinfo_LDADD) $(LIBS)
-
-sched_get_priority_mxx$(EXEEXT): $(sched_get_priority_mxx_OBJECTS) $(sched_get_priority_mxx_DEPENDENCIES) $(EXTRA_sched_get_priority_mxx_DEPENDENCIES) 
-	@rm -f sched_get_priority_mxx$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sched_get_priority_mxx_OBJECTS) $(sched_get_priority_mxx_LDADD) $(LIBS)
-
-sched_rr_get_interval$(EXEEXT): $(sched_rr_get_interval_OBJECTS) $(sched_rr_get_interval_DEPENDENCIES) $(EXTRA_sched_rr_get_interval_DEPENDENCIES) 
-	@rm -f sched_rr_get_interval$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sched_rr_get_interval_OBJECTS) $(sched_rr_get_interval_LDADD) $(LIBS)
-
-sched_xetaffinity$(EXEEXT): $(sched_xetaffinity_OBJECTS) $(sched_xetaffinity_DEPENDENCIES) $(EXTRA_sched_xetaffinity_DEPENDENCIES) 
-	@rm -f sched_xetaffinity$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sched_xetaffinity_OBJECTS) $(sched_xetaffinity_LDADD) $(LIBS)
-
-sched_xetattr$(EXEEXT): $(sched_xetattr_OBJECTS) $(sched_xetattr_DEPENDENCIES) $(EXTRA_sched_xetattr_DEPENDENCIES) 
-	@rm -f sched_xetattr$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sched_xetattr_OBJECTS) $(sched_xetattr_LDADD) $(LIBS)
-
-sched_xetparam$(EXEEXT): $(sched_xetparam_OBJECTS) $(sched_xetparam_DEPENDENCIES) $(EXTRA_sched_xetparam_DEPENDENCIES) 
-	@rm -f sched_xetparam$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sched_xetparam_OBJECTS) $(sched_xetparam_LDADD) $(LIBS)
-
-sched_xetscheduler$(EXEEXT): $(sched_xetscheduler_OBJECTS) $(sched_xetscheduler_DEPENDENCIES) $(EXTRA_sched_xetscheduler_DEPENDENCIES) 
-	@rm -f sched_xetscheduler$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sched_xetscheduler_OBJECTS) $(sched_xetscheduler_LDADD) $(LIBS)
-
-sched_yield$(EXEEXT): $(sched_yield_OBJECTS) $(sched_yield_DEPENDENCIES) $(EXTRA_sched_yield_DEPENDENCIES) 
-	@rm -f sched_yield$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sched_yield_OBJECTS) $(sched_yield_LDADD) $(LIBS)
-
-scm_rights$(EXEEXT): $(scm_rights_OBJECTS) $(scm_rights_DEPENDENCIES) $(EXTRA_scm_rights_DEPENDENCIES) 
-	@rm -f scm_rights$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(scm_rights_OBJECTS) $(scm_rights_LDADD) $(LIBS)
-
-seccomp-filter$(EXEEXT): $(seccomp_filter_OBJECTS) $(seccomp_filter_DEPENDENCIES) $(EXTRA_seccomp_filter_DEPENDENCIES) 
-	@rm -f seccomp-filter$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(seccomp_filter_OBJECTS) $(seccomp_filter_LDADD) $(LIBS)
-
-seccomp-filter-v$(EXEEXT): $(seccomp_filter_v_OBJECTS) $(seccomp_filter_v_DEPENDENCIES) $(EXTRA_seccomp_filter_v_DEPENDENCIES) 
-	@rm -f seccomp-filter-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(seccomp_filter_v_OBJECTS) $(seccomp_filter_v_LDADD) $(LIBS)
-
-seccomp-strict$(EXEEXT): $(seccomp_strict_OBJECTS) $(seccomp_strict_DEPENDENCIES) $(EXTRA_seccomp_strict_DEPENDENCIES) 
-	@rm -f seccomp-strict$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(seccomp_strict_OBJECTS) $(seccomp_strict_LDADD) $(LIBS)
-
-select$(EXEEXT): $(select_OBJECTS) $(select_DEPENDENCIES) $(EXTRA_select_DEPENDENCIES) 
-	@rm -f select$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(select_OBJECTS) $(select_LDADD) $(LIBS)
-
-semop$(EXEEXT): $(semop_OBJECTS) $(semop_DEPENDENCIES) $(EXTRA_semop_DEPENDENCIES) 
-	@rm -f semop$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(semop_OBJECTS) $(semop_LDADD) $(LIBS)
-
-sendfile$(EXEEXT): $(sendfile_OBJECTS) $(sendfile_DEPENDENCIES) $(EXTRA_sendfile_DEPENDENCIES) 
-	@rm -f sendfile$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sendfile_OBJECTS) $(sendfile_LDADD) $(LIBS)
-
-sendfile64$(EXEEXT): $(sendfile64_OBJECTS) $(sendfile64_DEPENDENCIES) $(EXTRA_sendfile64_DEPENDENCIES) 
-	@rm -f sendfile64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sendfile64_OBJECTS) $(sendfile64_LDADD) $(LIBS)
-
-set_mempolicy$(EXEEXT): $(set_mempolicy_OBJECTS) $(set_mempolicy_DEPENDENCIES) $(EXTRA_set_mempolicy_DEPENDENCIES) 
-	@rm -f set_mempolicy$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(set_mempolicy_OBJECTS) $(set_mempolicy_LDADD) $(LIBS)
-
-set_ptracer_any$(EXEEXT): $(set_ptracer_any_OBJECTS) $(set_ptracer_any_DEPENDENCIES) $(EXTRA_set_ptracer_any_DEPENDENCIES) 
-	@rm -f set_ptracer_any$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(set_ptracer_any_OBJECTS) $(set_ptracer_any_LDADD) $(LIBS)
-
-setdomainname$(EXEEXT): $(setdomainname_OBJECTS) $(setdomainname_DEPENDENCIES) $(EXTRA_setdomainname_DEPENDENCIES) 
-	@rm -f setdomainname$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setdomainname_OBJECTS) $(setdomainname_LDADD) $(LIBS)
-
-setfsgid$(EXEEXT): $(setfsgid_OBJECTS) $(setfsgid_DEPENDENCIES) $(EXTRA_setfsgid_DEPENDENCIES) 
-	@rm -f setfsgid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setfsgid_OBJECTS) $(setfsgid_LDADD) $(LIBS)
-
-setfsgid32$(EXEEXT): $(setfsgid32_OBJECTS) $(setfsgid32_DEPENDENCIES) $(EXTRA_setfsgid32_DEPENDENCIES) 
-	@rm -f setfsgid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setfsgid32_OBJECTS) $(setfsgid32_LDADD) $(LIBS)
-
-setfsuid$(EXEEXT): $(setfsuid_OBJECTS) $(setfsuid_DEPENDENCIES) $(EXTRA_setfsuid_DEPENDENCIES) 
-	@rm -f setfsuid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setfsuid_OBJECTS) $(setfsuid_LDADD) $(LIBS)
-
-setfsuid32$(EXEEXT): $(setfsuid32_OBJECTS) $(setfsuid32_DEPENDENCIES) $(EXTRA_setfsuid32_DEPENDENCIES) 
-	@rm -f setfsuid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setfsuid32_OBJECTS) $(setfsuid32_LDADD) $(LIBS)
-
-setgid$(EXEEXT): $(setgid_OBJECTS) $(setgid_DEPENDENCIES) $(EXTRA_setgid_DEPENDENCIES) 
-	@rm -f setgid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setgid_OBJECTS) $(setgid_LDADD) $(LIBS)
-
-setgid32$(EXEEXT): $(setgid32_OBJECTS) $(setgid32_DEPENDENCIES) $(EXTRA_setgid32_DEPENDENCIES) 
-	@rm -f setgid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setgid32_OBJECTS) $(setgid32_LDADD) $(LIBS)
-
-setgroups$(EXEEXT): $(setgroups_OBJECTS) $(setgroups_DEPENDENCIES) $(EXTRA_setgroups_DEPENDENCIES) 
-	@rm -f setgroups$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setgroups_OBJECTS) $(setgroups_LDADD) $(LIBS)
-
-setgroups32$(EXEEXT): $(setgroups32_OBJECTS) $(setgroups32_DEPENDENCIES) $(EXTRA_setgroups32_DEPENDENCIES) 
-	@rm -f setgroups32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setgroups32_OBJECTS) $(setgroups32_LDADD) $(LIBS)
-
-sethostname$(EXEEXT): $(sethostname_OBJECTS) $(sethostname_DEPENDENCIES) $(EXTRA_sethostname_DEPENDENCIES) 
-	@rm -f sethostname$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sethostname_OBJECTS) $(sethostname_LDADD) $(LIBS)
-
-setns$(EXEEXT): $(setns_OBJECTS) $(setns_DEPENDENCIES) $(EXTRA_setns_DEPENDENCIES) 
-	@rm -f setns$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setns_OBJECTS) $(setns_LDADD) $(LIBS)
-
-setregid$(EXEEXT): $(setregid_OBJECTS) $(setregid_DEPENDENCIES) $(EXTRA_setregid_DEPENDENCIES) 
-	@rm -f setregid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setregid_OBJECTS) $(setregid_LDADD) $(LIBS)
-
-setregid32$(EXEEXT): $(setregid32_OBJECTS) $(setregid32_DEPENDENCIES) $(EXTRA_setregid32_DEPENDENCIES) 
-	@rm -f setregid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setregid32_OBJECTS) $(setregid32_LDADD) $(LIBS)
-
-setresgid$(EXEEXT): $(setresgid_OBJECTS) $(setresgid_DEPENDENCIES) $(EXTRA_setresgid_DEPENDENCIES) 
-	@rm -f setresgid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setresgid_OBJECTS) $(setresgid_LDADD) $(LIBS)
-
-setresgid32$(EXEEXT): $(setresgid32_OBJECTS) $(setresgid32_DEPENDENCIES) $(EXTRA_setresgid32_DEPENDENCIES) 
-	@rm -f setresgid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setresgid32_OBJECTS) $(setresgid32_LDADD) $(LIBS)
-
-setresuid$(EXEEXT): $(setresuid_OBJECTS) $(setresuid_DEPENDENCIES) $(EXTRA_setresuid_DEPENDENCIES) 
-	@rm -f setresuid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setresuid_OBJECTS) $(setresuid_LDADD) $(LIBS)
-
-setresuid32$(EXEEXT): $(setresuid32_OBJECTS) $(setresuid32_DEPENDENCIES) $(EXTRA_setresuid32_DEPENDENCIES) 
-	@rm -f setresuid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setresuid32_OBJECTS) $(setresuid32_LDADD) $(LIBS)
-
-setreuid$(EXEEXT): $(setreuid_OBJECTS) $(setreuid_DEPENDENCIES) $(EXTRA_setreuid_DEPENDENCIES) 
-	@rm -f setreuid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setreuid_OBJECTS) $(setreuid_LDADD) $(LIBS)
-
-setreuid32$(EXEEXT): $(setreuid32_OBJECTS) $(setreuid32_DEPENDENCIES) $(EXTRA_setreuid32_DEPENDENCIES) 
-	@rm -f setreuid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setreuid32_OBJECTS) $(setreuid32_LDADD) $(LIBS)
-
-setrlimit$(EXEEXT): $(setrlimit_OBJECTS) $(setrlimit_DEPENDENCIES) $(EXTRA_setrlimit_DEPENDENCIES) 
-	@rm -f setrlimit$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setrlimit_OBJECTS) $(setrlimit_LDADD) $(LIBS)
-
-setuid$(EXEEXT): $(setuid_OBJECTS) $(setuid_DEPENDENCIES) $(EXTRA_setuid_DEPENDENCIES) 
-	@rm -f setuid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setuid_OBJECTS) $(setuid_LDADD) $(LIBS)
-
-setuid32$(EXEEXT): $(setuid32_OBJECTS) $(setuid32_DEPENDENCIES) $(EXTRA_setuid32_DEPENDENCIES) 
-	@rm -f setuid32$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(setuid32_OBJECTS) $(setuid32_LDADD) $(LIBS)
-
-shmxt$(EXEEXT): $(shmxt_OBJECTS) $(shmxt_DEPENDENCIES) $(EXTRA_shmxt_DEPENDENCIES) 
-	@rm -f shmxt$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(shmxt_OBJECTS) $(shmxt_LDADD) $(LIBS)
-
-shutdown$(EXEEXT): $(shutdown_OBJECTS) $(shutdown_DEPENDENCIES) $(EXTRA_shutdown_DEPENDENCIES) 
-	@rm -f shutdown$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(shutdown_OBJECTS) $(shutdown_LDADD) $(LIBS)
-
-sigaction$(EXEEXT): $(sigaction_OBJECTS) $(sigaction_DEPENDENCIES) $(EXTRA_sigaction_DEPENDENCIES) 
-	@rm -f sigaction$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sigaction_OBJECTS) $(sigaction_LDADD) $(LIBS)
-
-sigaltstack$(EXEEXT): $(sigaltstack_OBJECTS) $(sigaltstack_DEPENDENCIES) $(EXTRA_sigaltstack_DEPENDENCIES) 
-	@rm -f sigaltstack$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sigaltstack_OBJECTS) $(sigaltstack_LDADD) $(LIBS)
-
-siginfo$(EXEEXT): $(siginfo_OBJECTS) $(siginfo_DEPENDENCIES) $(EXTRA_siginfo_DEPENDENCIES) 
-	@rm -f siginfo$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(siginfo_OBJECTS) $(siginfo_LDADD) $(LIBS)
-
-signal_receive$(EXEEXT): $(signal_receive_OBJECTS) $(signal_receive_DEPENDENCIES) $(EXTRA_signal_receive_DEPENDENCIES) 
-	@rm -f signal_receive$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(signal_receive_OBJECTS) $(signal_receive_LDADD) $(LIBS)
-
-signalfd4$(EXEEXT): $(signalfd4_OBJECTS) $(signalfd4_DEPENDENCIES) $(EXTRA_signalfd4_DEPENDENCIES) 
-	@rm -f signalfd4$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(signalfd4_OBJECTS) $(signalfd4_LDADD) $(LIBS)
-
-sigreturn$(EXEEXT): $(sigreturn_OBJECTS) $(sigreturn_DEPENDENCIES) $(EXTRA_sigreturn_DEPENDENCIES) 
-	@rm -f sigreturn$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sigreturn_OBJECTS) $(sigreturn_LDADD) $(LIBS)
-
-sigsuspend$(EXEEXT): $(sigsuspend_OBJECTS) $(sigsuspend_DEPENDENCIES) $(EXTRA_sigsuspend_DEPENDENCIES) 
-	@rm -f sigsuspend$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sigsuspend_OBJECTS) $(sigsuspend_LDADD) $(LIBS)
-
-sleep$(EXEEXT): $(sleep_OBJECTS) $(sleep_DEPENDENCIES) $(EXTRA_sleep_DEPENDENCIES) 
-	@rm -f sleep$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sleep_OBJECTS) $(sleep_LDADD) $(LIBS)
-
-socketcall$(EXEEXT): $(socketcall_OBJECTS) $(socketcall_DEPENDENCIES) $(EXTRA_socketcall_DEPENDENCIES) 
-	@rm -f socketcall$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(socketcall_OBJECTS) $(socketcall_LDADD) $(LIBS)
-
-splice$(EXEEXT): $(splice_OBJECTS) $(splice_DEPENDENCIES) $(EXTRA_splice_DEPENDENCIES) 
-	@rm -f splice$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(splice_OBJECTS) $(splice_LDADD) $(LIBS)
-
-stack-fcall$(EXEEXT): $(stack_fcall_OBJECTS) $(stack_fcall_DEPENDENCIES) $(EXTRA_stack_fcall_DEPENDENCIES) 
-	@rm -f stack-fcall$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(stack_fcall_OBJECTS) $(stack_fcall_LDADD) $(LIBS)
-
-stat$(EXEEXT): $(stat_OBJECTS) $(stat_DEPENDENCIES) $(EXTRA_stat_DEPENDENCIES) 
-	@rm -f stat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(stat_OBJECTS) $(stat_LDADD) $(LIBS)
-
-stat64$(EXEEXT): $(stat64_OBJECTS) $(stat64_DEPENDENCIES) $(EXTRA_stat64_DEPENDENCIES) 
-	@rm -f stat64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(stat64_OBJECTS) $(stat64_LDADD) $(LIBS)
-
-statfs$(EXEEXT): $(statfs_OBJECTS) $(statfs_DEPENDENCIES) $(EXTRA_statfs_DEPENDENCIES) 
-	@rm -f statfs$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(statfs_OBJECTS) $(statfs_LDADD) $(LIBS)
-
-statfs64$(EXEEXT): $(statfs64_OBJECTS) $(statfs64_DEPENDENCIES) $(EXTRA_statfs64_DEPENDENCIES) 
-	@rm -f statfs64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(statfs64_OBJECTS) $(statfs64_LDADD) $(LIBS)
-
-statx$(EXEEXT): $(statx_OBJECTS) $(statx_DEPENDENCIES) $(EXTRA_statx_DEPENDENCIES) 
-	@rm -f statx$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(statx_OBJECTS) $(statx_LDADD) $(LIBS)
-
-swap$(EXEEXT): $(swap_OBJECTS) $(swap_DEPENDENCIES) $(EXTRA_swap_DEPENDENCIES) 
-	@rm -f swap$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(swap_OBJECTS) $(swap_LDADD) $(LIBS)
-
-sxetmask$(EXEEXT): $(sxetmask_OBJECTS) $(sxetmask_DEPENDENCIES) $(EXTRA_sxetmask_DEPENDENCIES) 
-	@rm -f sxetmask$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sxetmask_OBJECTS) $(sxetmask_LDADD) $(LIBS)
-
-symlink$(EXEEXT): $(symlink_OBJECTS) $(symlink_DEPENDENCIES) $(EXTRA_symlink_DEPENDENCIES) 
-	@rm -f symlink$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(symlink_OBJECTS) $(symlink_LDADD) $(LIBS)
-
-symlinkat$(EXEEXT): $(symlinkat_OBJECTS) $(symlinkat_DEPENDENCIES) $(EXTRA_symlinkat_DEPENDENCIES) 
-	@rm -f symlinkat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(symlinkat_OBJECTS) $(symlinkat_LDADD) $(LIBS)
-
-sync$(EXEEXT): $(sync_OBJECTS) $(sync_DEPENDENCIES) $(EXTRA_sync_DEPENDENCIES) 
-	@rm -f sync$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sync_OBJECTS) $(sync_LDADD) $(LIBS)
-
-sync_file_range$(EXEEXT): $(sync_file_range_OBJECTS) $(sync_file_range_DEPENDENCIES) $(EXTRA_sync_file_range_DEPENDENCIES) 
-	@rm -f sync_file_range$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sync_file_range_OBJECTS) $(sync_file_range_LDADD) $(LIBS)
-
-sync_file_range2$(EXEEXT): $(sync_file_range2_OBJECTS) $(sync_file_range2_DEPENDENCIES) $(EXTRA_sync_file_range2_DEPENDENCIES) 
-	@rm -f sync_file_range2$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sync_file_range2_OBJECTS) $(sync_file_range2_LDADD) $(LIBS)
-
-sysinfo$(EXEEXT): $(sysinfo_OBJECTS) $(sysinfo_DEPENDENCIES) $(EXTRA_sysinfo_DEPENDENCIES) 
-	@rm -f sysinfo$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(sysinfo_OBJECTS) $(sysinfo_LDADD) $(LIBS)
-
-syslog$(EXEEXT): $(syslog_OBJECTS) $(syslog_DEPENDENCIES) $(EXTRA_syslog_DEPENDENCIES) 
-	@rm -f syslog$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(syslog_OBJECTS) $(syslog_LDADD) $(LIBS)
-
-tee$(EXEEXT): $(tee_OBJECTS) $(tee_DEPENDENCIES) $(EXTRA_tee_DEPENDENCIES) 
-	@rm -f tee$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(tee_OBJECTS) $(tee_LDADD) $(LIBS)
-
-threads-execve$(EXEEXT): $(threads_execve_OBJECTS) $(threads_execve_DEPENDENCIES) $(EXTRA_threads_execve_DEPENDENCIES) 
-	@rm -f threads-execve$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(threads_execve_OBJECTS) $(threads_execve_LDADD) $(LIBS)
-
-time$(EXEEXT): $(time_OBJECTS) $(time_DEPENDENCIES) $(EXTRA_time_DEPENDENCIES) 
-	@rm -f time$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(time_OBJECTS) $(time_LDADD) $(LIBS)
-
-timer_create$(EXEEXT): $(timer_create_OBJECTS) $(timer_create_DEPENDENCIES) $(EXTRA_timer_create_DEPENDENCIES) 
-	@rm -f timer_create$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(timer_create_OBJECTS) $(timer_create_LDADD) $(LIBS)
-
-timer_xettime$(EXEEXT): $(timer_xettime_OBJECTS) $(timer_xettime_DEPENDENCIES) $(EXTRA_timer_xettime_DEPENDENCIES) 
-	@rm -f timer_xettime$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(timer_xettime_OBJECTS) $(timer_xettime_LDADD) $(LIBS)
-
-timerfd_xettime$(EXEEXT): $(timerfd_xettime_OBJECTS) $(timerfd_xettime_DEPENDENCIES) $(EXTRA_timerfd_xettime_DEPENDENCIES) 
-	@rm -f timerfd_xettime$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(timerfd_xettime_OBJECTS) $(timerfd_xettime_LDADD) $(LIBS)
-
-times$(EXEEXT): $(times_OBJECTS) $(times_DEPENDENCIES) $(EXTRA_times_DEPENDENCIES) 
-	@rm -f times$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(times_OBJECTS) $(times_LDADD) $(LIBS)
-
-times-fail$(EXEEXT): $(times_fail_OBJECTS) $(times_fail_DEPENDENCIES) $(EXTRA_times_fail_DEPENDENCIES) 
-	@rm -f times-fail$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(times_fail_OBJECTS) $(times_fail_LDADD) $(LIBS)
-
-truncate$(EXEEXT): $(truncate_OBJECTS) $(truncate_DEPENDENCIES) $(EXTRA_truncate_DEPENDENCIES) 
-	@rm -f truncate$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(truncate_OBJECTS) $(truncate_LDADD) $(LIBS)
-
-truncate64$(EXEEXT): $(truncate64_OBJECTS) $(truncate64_DEPENDENCIES) $(EXTRA_truncate64_DEPENDENCIES) 
-	@rm -f truncate64$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(truncate64_OBJECTS) $(truncate64_LDADD) $(LIBS)
-
-ugetrlimit$(EXEEXT): $(ugetrlimit_OBJECTS) $(ugetrlimit_DEPENDENCIES) $(EXTRA_ugetrlimit_DEPENDENCIES) 
-	@rm -f ugetrlimit$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ugetrlimit_OBJECTS) $(ugetrlimit_LDADD) $(LIBS)
-
-uio$(EXEEXT): $(uio_OBJECTS) $(uio_DEPENDENCIES) $(EXTRA_uio_DEPENDENCIES) 
-	@rm -f uio$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(uio_OBJECTS) $(uio_LDADD) $(LIBS)
-
-umask$(EXEEXT): $(umask_OBJECTS) $(umask_DEPENDENCIES) $(EXTRA_umask_DEPENDENCIES) 
-	@rm -f umask$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(umask_OBJECTS) $(umask_LDADD) $(LIBS)
-
-umount$(EXEEXT): $(umount_OBJECTS) $(umount_DEPENDENCIES) $(EXTRA_umount_DEPENDENCIES) 
-	@rm -f umount$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(umount_OBJECTS) $(umount_LDADD) $(LIBS)
-
-umount2$(EXEEXT): $(umount2_OBJECTS) $(umount2_DEPENDENCIES) $(EXTRA_umount2_DEPENDENCIES) 
-	@rm -f umount2$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(umount2_OBJECTS) $(umount2_LDADD) $(LIBS)
-
-umoven-illptr$(EXEEXT): $(umoven_illptr_OBJECTS) $(umoven_illptr_DEPENDENCIES) $(EXTRA_umoven_illptr_DEPENDENCIES) 
-	@rm -f umoven-illptr$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(umoven_illptr_OBJECTS) $(umoven_illptr_LDADD) $(LIBS)
-
-umovestr$(EXEEXT): $(umovestr_OBJECTS) $(umovestr_DEPENDENCIES) $(EXTRA_umovestr_DEPENDENCIES) 
-	@rm -f umovestr$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(umovestr_OBJECTS) $(umovestr_LDADD) $(LIBS)
-
-umovestr-illptr$(EXEEXT): $(umovestr_illptr_OBJECTS) $(umovestr_illptr_DEPENDENCIES) $(EXTRA_umovestr_illptr_DEPENDENCIES) 
-	@rm -f umovestr-illptr$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(umovestr_illptr_OBJECTS) $(umovestr_illptr_LDADD) $(LIBS)
-
-umovestr2$(EXEEXT): $(umovestr2_OBJECTS) $(umovestr2_DEPENDENCIES) $(EXTRA_umovestr2_DEPENDENCIES) 
-	@rm -f umovestr2$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(umovestr2_OBJECTS) $(umovestr2_LDADD) $(LIBS)
-
-umovestr3$(EXEEXT): $(umovestr3_OBJECTS) $(umovestr3_DEPENDENCIES) $(EXTRA_umovestr3_DEPENDENCIES) 
-	@rm -f umovestr3$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(umovestr3_OBJECTS) $(umovestr3_LDADD) $(LIBS)
-
-uname$(EXEEXT): $(uname_OBJECTS) $(uname_DEPENDENCIES) $(EXTRA_uname_DEPENDENCIES) 
-	@rm -f uname$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(uname_OBJECTS) $(uname_LDADD) $(LIBS)
-
-unix-pair-send-recv$(EXEEXT): $(unix_pair_send_recv_OBJECTS) $(unix_pair_send_recv_DEPENDENCIES) $(EXTRA_unix_pair_send_recv_DEPENDENCIES) 
-	@rm -f unix-pair-send-recv$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(unix_pair_send_recv_OBJECTS) $(unix_pair_send_recv_LDADD) $(LIBS)
-
-unix-pair-sendto-recvfrom$(EXEEXT): $(unix_pair_sendto_recvfrom_OBJECTS) $(unix_pair_sendto_recvfrom_DEPENDENCIES) $(EXTRA_unix_pair_sendto_recvfrom_DEPENDENCIES) 
-	@rm -f unix-pair-sendto-recvfrom$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(unix_pair_sendto_recvfrom_OBJECTS) $(unix_pair_sendto_recvfrom_LDADD) $(LIBS)
-
-unlink$(EXEEXT): $(unlink_OBJECTS) $(unlink_DEPENDENCIES) $(EXTRA_unlink_DEPENDENCIES) 
-	@rm -f unlink$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(unlink_OBJECTS) $(unlink_LDADD) $(LIBS)
-
-unlinkat$(EXEEXT): $(unlinkat_OBJECTS) $(unlinkat_DEPENDENCIES) $(EXTRA_unlinkat_DEPENDENCIES) 
-	@rm -f unlinkat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(unlinkat_OBJECTS) $(unlinkat_LDADD) $(LIBS)
-
-unshare$(EXEEXT): $(unshare_OBJECTS) $(unshare_DEPENDENCIES) $(EXTRA_unshare_DEPENDENCIES) 
-	@rm -f unshare$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(unshare_OBJECTS) $(unshare_LDADD) $(LIBS)
-
-userfaultfd$(EXEEXT): $(userfaultfd_OBJECTS) $(userfaultfd_DEPENDENCIES) $(EXTRA_userfaultfd_DEPENDENCIES) 
-	@rm -f userfaultfd$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(userfaultfd_OBJECTS) $(userfaultfd_LDADD) $(LIBS)
-
-ustat$(EXEEXT): $(ustat_OBJECTS) $(ustat_DEPENDENCIES) $(EXTRA_ustat_DEPENDENCIES) 
-	@rm -f ustat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(ustat_OBJECTS) $(ustat_LDADD) $(LIBS)
-
-utime$(EXEEXT): $(utime_OBJECTS) $(utime_DEPENDENCIES) $(EXTRA_utime_DEPENDENCIES) 
-	@rm -f utime$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(utime_OBJECTS) $(utime_LDADD) $(LIBS)
-
-utimensat$(EXEEXT): $(utimensat_OBJECTS) $(utimensat_DEPENDENCIES) $(EXTRA_utimensat_DEPENDENCIES) 
-	@rm -f utimensat$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(utimensat_OBJECTS) $(utimensat_LDADD) $(LIBS)
-
-utimes$(EXEEXT): $(utimes_OBJECTS) $(utimes_DEPENDENCIES) $(EXTRA_utimes_DEPENDENCIES) 
-	@rm -f utimes$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(utimes_OBJECTS) $(utimes_LDADD) $(LIBS)
-
-vfork-f$(EXEEXT): $(vfork_f_OBJECTS) $(vfork_f_DEPENDENCIES) $(EXTRA_vfork_f_DEPENDENCIES) 
-	@rm -f vfork-f$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(vfork_f_OBJECTS) $(vfork_f_LDADD) $(LIBS)
-
-vhangup$(EXEEXT): $(vhangup_OBJECTS) $(vhangup_DEPENDENCIES) $(EXTRA_vhangup_DEPENDENCIES) 
-	@rm -f vhangup$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(vhangup_OBJECTS) $(vhangup_LDADD) $(LIBS)
-
-vmsplice$(EXEEXT): $(vmsplice_OBJECTS) $(vmsplice_DEPENDENCIES) $(EXTRA_vmsplice_DEPENDENCIES) 
-	@rm -f vmsplice$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(vmsplice_OBJECTS) $(vmsplice_LDADD) $(LIBS)
-
-wait4$(EXEEXT): $(wait4_OBJECTS) $(wait4_DEPENDENCIES) $(EXTRA_wait4_DEPENDENCIES) 
-	@rm -f wait4$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(wait4_OBJECTS) $(wait4_LDADD) $(LIBS)
-
-wait4-v$(EXEEXT): $(wait4_v_OBJECTS) $(wait4_v_DEPENDENCIES) $(EXTRA_wait4_v_DEPENDENCIES) 
-	@rm -f wait4-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(wait4_v_OBJECTS) $(wait4_v_LDADD) $(LIBS)
-
-waitid$(EXEEXT): $(waitid_OBJECTS) $(waitid_DEPENDENCIES) $(EXTRA_waitid_DEPENDENCIES) 
-	@rm -f waitid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(waitid_OBJECTS) $(waitid_LDADD) $(LIBS)
-
-waitid-v$(EXEEXT): $(waitid_v_OBJECTS) $(waitid_v_DEPENDENCIES) $(EXTRA_waitid_v_DEPENDENCIES) 
-	@rm -f waitid-v$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(waitid_v_OBJECTS) $(waitid_v_LDADD) $(LIBS)
-
-waitpid$(EXEEXT): $(waitpid_OBJECTS) $(waitpid_DEPENDENCIES) $(EXTRA_waitpid_DEPENDENCIES) 
-	@rm -f waitpid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(waitpid_OBJECTS) $(waitpid_LDADD) $(LIBS)
-
-xattr$(EXEEXT): $(xattr_OBJECTS) $(xattr_DEPENDENCIES) $(EXTRA_xattr_DEPENDENCIES) 
-	@rm -f xattr$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(xattr_OBJECTS) $(xattr_LDADD) $(LIBS)
-
-xattr-strings$(EXEEXT): $(xattr_strings_OBJECTS) $(xattr_strings_DEPENDENCIES) $(EXTRA_xattr_strings_DEPENDENCIES) 
-	@rm -f xattr-strings$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(xattr_strings_OBJECTS) $(xattr_strings_LDADD) $(LIBS)
-
-xet_robust_list$(EXEEXT): $(xet_robust_list_OBJECTS) $(xet_robust_list_DEPENDENCIES) $(EXTRA_xet_robust_list_DEPENDENCIES) 
-	@rm -f xet_robust_list$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(xet_robust_list_OBJECTS) $(xet_robust_list_LDADD) $(LIBS)
-
-xetitimer$(EXEEXT): $(xetitimer_OBJECTS) $(xetitimer_DEPENDENCIES) $(EXTRA_xetitimer_DEPENDENCIES) 
-	@rm -f xetitimer$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(xetitimer_OBJECTS) $(xetitimer_LDADD) $(LIBS)
-
-xetpgid$(EXEEXT): $(xetpgid_OBJECTS) $(xetpgid_DEPENDENCIES) $(EXTRA_xetpgid_DEPENDENCIES) 
-	@rm -f xetpgid$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(xetpgid_OBJECTS) $(xetpgid_LDADD) $(LIBS)
-
-xetpriority$(EXEEXT): $(xetpriority_OBJECTS) $(xetpriority_DEPENDENCIES) $(EXTRA_xetpriority_DEPENDENCIES) 
-	@rm -f xetpriority$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(xetpriority_OBJECTS) $(xetpriority_LDADD) $(LIBS)
-
-xettimeofday$(EXEEXT): $(xettimeofday_OBJECTS) $(xettimeofday_DEPENDENCIES) $(EXTRA_xettimeofday_DEPENDENCIES) 
-	@rm -f xettimeofday$(EXEEXT)
-	$(AM_V_CCLD)$(LINK) $(xettimeofday_OBJECTS) $(xettimeofday_LDADD) $(LIBS)
-
-mostlyclean-compile:
-	-rm -f *.$(OBJEXT)
-
-distclean-compile:
-	-rm -f *.tab.c
-
-include ./$(DEPDIR)/_newselect.Po
-include ./$(DEPDIR)/accept.Po
-include ./$(DEPDIR)/accept4.Po
-include ./$(DEPDIR)/access.Po
-include ./$(DEPDIR)/acct.Po
-include ./$(DEPDIR)/add_key.Po
-include ./$(DEPDIR)/adjtimex.Po
-include ./$(DEPDIR)/aio.Po
-include ./$(DEPDIR)/alarm.Po
-include ./$(DEPDIR)/answer.Po
-include ./$(DEPDIR)/attach-f-p-cmd.Po
-include ./$(DEPDIR)/attach-f-p.Po
-include ./$(DEPDIR)/attach-p-cmd-cmd.Po
-include ./$(DEPDIR)/attach-p-cmd-p.Po
-include ./$(DEPDIR)/bpf.Po
-include ./$(DEPDIR)/brk.Po
-include ./$(DEPDIR)/btrfs.Po
-include ./$(DEPDIR)/caps-abbrev.Po
-include ./$(DEPDIR)/caps.Po
-include ./$(DEPDIR)/chmod.Po
-include ./$(DEPDIR)/chown.Po
-include ./$(DEPDIR)/chown32.Po
-include ./$(DEPDIR)/chroot.Po
-include ./$(DEPDIR)/clock_adjtime.Po
-include ./$(DEPDIR)/clock_nanosleep.Po
-include ./$(DEPDIR)/clock_xettime.Po
-include ./$(DEPDIR)/copy_file_range.Po
-include ./$(DEPDIR)/count-f.Po
-include ./$(DEPDIR)/creat.Po
-include ./$(DEPDIR)/delete_module.Po
-include ./$(DEPDIR)/dup.Po
-include ./$(DEPDIR)/dup2.Po
-include ./$(DEPDIR)/dup3.Po
-include ./$(DEPDIR)/epoll_create.Po
-include ./$(DEPDIR)/epoll_create1.Po
-include ./$(DEPDIR)/epoll_ctl.Po
-include ./$(DEPDIR)/epoll_pwait.Po
-include ./$(DEPDIR)/epoll_wait.Po
-include ./$(DEPDIR)/erestartsys.Po
-include ./$(DEPDIR)/eventfd.Po
-include ./$(DEPDIR)/execve-v.Po
-include ./$(DEPDIR)/execve.Po
-include ./$(DEPDIR)/execveat-v.Po
-include ./$(DEPDIR)/execveat.Po
-include ./$(DEPDIR)/faccessat.Po
-include ./$(DEPDIR)/fadvise64.Po
-include ./$(DEPDIR)/fadvise64_64.Po
-include ./$(DEPDIR)/fallocate.Po
-include ./$(DEPDIR)/fanotify_init.Po
-include ./$(DEPDIR)/fanotify_mark.Po
-include ./$(DEPDIR)/fchdir.Po
-include ./$(DEPDIR)/fchmod.Po
-include ./$(DEPDIR)/fchmodat.Po
-include ./$(DEPDIR)/fchown.Po
-include ./$(DEPDIR)/fchown32.Po
-include ./$(DEPDIR)/fchownat.Po
-include ./$(DEPDIR)/fcntl.Po
-include ./$(DEPDIR)/fcntl64.Po
-include ./$(DEPDIR)/fdatasync.Po
-include ./$(DEPDIR)/file_handle.Po
-include ./$(DEPDIR)/file_ioctl.Po
-include ./$(DEPDIR)/filter-unavailable.Po
-include ./$(DEPDIR)/finit_module.Po
-include ./$(DEPDIR)/flock.Po
-include ./$(DEPDIR)/fork-f.Po
-include ./$(DEPDIR)/fstat.Po
-include ./$(DEPDIR)/fstat64-fstat64.Po
-include ./$(DEPDIR)/fstatat64-fstatat64.Po
-include ./$(DEPDIR)/fstatfs.Po
-include ./$(DEPDIR)/fstatfs64.Po
-include ./$(DEPDIR)/fsync.Po
-include ./$(DEPDIR)/ftruncate.Po
-include ./$(DEPDIR)/ftruncate64-ftruncate64.Po
-include ./$(DEPDIR)/futex.Po
-include ./$(DEPDIR)/futimesat.Po
-include ./$(DEPDIR)/get_mempolicy.Po
-include ./$(DEPDIR)/getcpu.Po
-include ./$(DEPDIR)/getcwd.Po
-include ./$(DEPDIR)/getdents.Po
-include ./$(DEPDIR)/getdents64.Po
-include ./$(DEPDIR)/getegid.Po
-include ./$(DEPDIR)/getegid32.Po
-include ./$(DEPDIR)/geteuid.Po
-include ./$(DEPDIR)/geteuid32.Po
-include ./$(DEPDIR)/getgid.Po
-include ./$(DEPDIR)/getgid32.Po
-include ./$(DEPDIR)/getgroups.Po
-include ./$(DEPDIR)/getgroups32.Po
-include ./$(DEPDIR)/getpeername.Po
-include ./$(DEPDIR)/getpgrp.Po
-include ./$(DEPDIR)/getpid.Po
-include ./$(DEPDIR)/getppid.Po
-include ./$(DEPDIR)/getrandom.Po
-include ./$(DEPDIR)/getresgid.Po
-include ./$(DEPDIR)/getresgid32.Po
-include ./$(DEPDIR)/getresuid.Po
-include ./$(DEPDIR)/getresuid32.Po
-include ./$(DEPDIR)/getrlimit.Po
-include ./$(DEPDIR)/getrusage.Po
-include ./$(DEPDIR)/getsid.Po
-include ./$(DEPDIR)/getsockname.Po
-include ./$(DEPDIR)/gettid.Po
-include ./$(DEPDIR)/getuid.Po
-include ./$(DEPDIR)/getuid32.Po
-include ./$(DEPDIR)/getxxid.Po
-include ./$(DEPDIR)/inet-cmsg.Po
-include ./$(DEPDIR)/init_module.Po
-include ./$(DEPDIR)/inotify.Po
-include ./$(DEPDIR)/inotify_init1.Po
-include ./$(DEPDIR)/int_0x80.Po
-include ./$(DEPDIR)/ioctl.Po
-include ./$(DEPDIR)/ioctl_block.Po
-include ./$(DEPDIR)/ioctl_dm-v.Po
-include ./$(DEPDIR)/ioctl_dm.Po
-include ./$(DEPDIR)/ioctl_evdev-v.Po
-include ./$(DEPDIR)/ioctl_evdev.Po
-include ./$(DEPDIR)/ioctl_loop-nv.Po
-include ./$(DEPDIR)/ioctl_loop-v.Po
-include ./$(DEPDIR)/ioctl_loop.Po
-include ./$(DEPDIR)/ioctl_mtd.Po
-include ./$(DEPDIR)/ioctl_nsfs.Po
-include ./$(DEPDIR)/ioctl_rtc-v.Po
-include ./$(DEPDIR)/ioctl_rtc.Po
-include ./$(DEPDIR)/ioctl_scsi.Po
-include ./$(DEPDIR)/ioctl_sg_io_v3.Po
-include ./$(DEPDIR)/ioctl_sg_io_v4.Po
-include ./$(DEPDIR)/ioctl_sock_gifconf.Po
-include ./$(DEPDIR)/ioctl_uffdio.Po
-include ./$(DEPDIR)/ioctl_v4l2.Po
-include ./$(DEPDIR)/ioperm.Po
-include ./$(DEPDIR)/iopl.Po
-include ./$(DEPDIR)/ioprio.Po
-include ./$(DEPDIR)/ip_mreq.Po
-include ./$(DEPDIR)/ipc.Po
-include ./$(DEPDIR)/ipc_msg.Po
-include ./$(DEPDIR)/ipc_msgbuf.Po
-include ./$(DEPDIR)/ipc_sem.Po
-include ./$(DEPDIR)/ipc_shm.Po
-include ./$(DEPDIR)/kcmp.Po
-include ./$(DEPDIR)/kexec_file_load.Po
-include ./$(DEPDIR)/kexec_load.Po
-include ./$(DEPDIR)/keyctl.Po
-include ./$(DEPDIR)/kill.Po
-include ./$(DEPDIR)/ksysent.Po
-include ./$(DEPDIR)/lchown.Po
-include ./$(DEPDIR)/lchown32.Po
-include ./$(DEPDIR)/libtests_a-errno2name.Po
-include ./$(DEPDIR)/libtests_a-error_msg.Po
-include ./$(DEPDIR)/libtests_a-fill_memory.Po
-include ./$(DEPDIR)/libtests_a-get_page_size.Po
-include ./$(DEPDIR)/libtests_a-get_sigset_size.Po
-include ./$(DEPDIR)/libtests_a-hexdump_strdup.Po
-include ./$(DEPDIR)/libtests_a-hexquote_strndup.Po
-include ./$(DEPDIR)/libtests_a-inode_of_sockfd.Po
-include ./$(DEPDIR)/libtests_a-libmmsg.Po
-include ./$(DEPDIR)/libtests_a-libsocketcall.Po
-include ./$(DEPDIR)/libtests_a-overflowuid.Po
-include ./$(DEPDIR)/libtests_a-pipe_maxfd.Po
-include ./$(DEPDIR)/libtests_a-print_quoted_string.Po
-include ./$(DEPDIR)/libtests_a-print_time.Po
-include ./$(DEPDIR)/libtests_a-printflags.Po
-include ./$(DEPDIR)/libtests_a-printxval.Po
-include ./$(DEPDIR)/libtests_a-signal2name.Po
-include ./$(DEPDIR)/libtests_a-skip_unavailable.Po
-include ./$(DEPDIR)/libtests_a-sprintrc.Po
-include ./$(DEPDIR)/libtests_a-tail_alloc.Po
-include ./$(DEPDIR)/libtests_a-tprintf.Po
-include ./$(DEPDIR)/link.Po
-include ./$(DEPDIR)/linkat.Po
-include ./$(DEPDIR)/llseek.Po
-include ./$(DEPDIR)/lookup_dcookie.Po
-include ./$(DEPDIR)/lseek.Po
-include ./$(DEPDIR)/lstat.Po
-include ./$(DEPDIR)/lstat64-lstat64.Po
-include ./$(DEPDIR)/madvise.Po
-include ./$(DEPDIR)/mbind.Po
-include ./$(DEPDIR)/membarrier.Po
-include ./$(DEPDIR)/memfd_create.Po
-include ./$(DEPDIR)/migrate_pages.Po
-include ./$(DEPDIR)/mincore.Po
-include ./$(DEPDIR)/mkdir.Po
-include ./$(DEPDIR)/mkdirat.Po
-include ./$(DEPDIR)/mknod.Po
-include ./$(DEPDIR)/mknodat.Po
-include ./$(DEPDIR)/mlock.Po
-include ./$(DEPDIR)/mlock2.Po
-include ./$(DEPDIR)/mlockall.Po
-include ./$(DEPDIR)/mmap.Po
-include ./$(DEPDIR)/mmap64-mmap64.Po
-include ./$(DEPDIR)/mmsg-silent.Po
-include ./$(DEPDIR)/mmsg.Po
-include ./$(DEPDIR)/mmsg_name-v.Po
-include ./$(DEPDIR)/mmsg_name.Po
-include ./$(DEPDIR)/mount.Po
-include ./$(DEPDIR)/move_pages.Po
-include ./$(DEPDIR)/mq.Po
-include ./$(DEPDIR)/mq_sendrecv-read.Po
-include ./$(DEPDIR)/mq_sendrecv-write.Po
-include ./$(DEPDIR)/mq_sendrecv.Po
-include ./$(DEPDIR)/msg_control-v.Po
-include ./$(DEPDIR)/msg_control.Po
-include ./$(DEPDIR)/msg_name.Po
-include ./$(DEPDIR)/munlockall.Po
-include ./$(DEPDIR)/nanosleep.Po
-include ./$(DEPDIR)/net-accept-connect.Po
-include ./$(DEPDIR)/net-icmp_filter.Po
-include ./$(DEPDIR)/net-sockaddr.Po
-include ./$(DEPDIR)/net-y-unix.Po
-include ./$(DEPDIR)/net-yy-inet.Po
-include ./$(DEPDIR)/net-yy-netlink.Po
-include ./$(DEPDIR)/net-yy-unix.Po
-include ./$(DEPDIR)/netlink_inet_diag.Po
-include ./$(DEPDIR)/netlink_netlink_diag.Po
-include ./$(DEPDIR)/netlink_protocol.Po
-include ./$(DEPDIR)/netlink_unix_diag.Po
-include ./$(DEPDIR)/newfstatat-newfstatat.Po
-include ./$(DEPDIR)/nsyscalls.Po
-include ./$(DEPDIR)/old_mmap.Po
-include ./$(DEPDIR)/oldfstat.Po
-include ./$(DEPDIR)/oldlstat.Po
-include ./$(DEPDIR)/oldselect.Po
-include ./$(DEPDIR)/oldstat.Po
-include ./$(DEPDIR)/open.Po
-include ./$(DEPDIR)/openat.Po
-include ./$(DEPDIR)/osf_utimes.Po
-include ./$(DEPDIR)/pause.Po
-include ./$(DEPDIR)/pc.Po
-include ./$(DEPDIR)/perf_event_open.Po
-include ./$(DEPDIR)/perf_event_open_nonverbose.Po
-include ./$(DEPDIR)/perf_event_open_unabbrev.Po
-include ./$(DEPDIR)/personality.Po
-include ./$(DEPDIR)/pipe.Po
-include ./$(DEPDIR)/pipe2.Po
-include ./$(DEPDIR)/pkey_alloc.Po
-include ./$(DEPDIR)/pkey_free.Po
-include ./$(DEPDIR)/pkey_mprotect.Po
-include ./$(DEPDIR)/poll.Po
-include ./$(DEPDIR)/ppoll-v.Po
-include ./$(DEPDIR)/ppoll.Po
-include ./$(DEPDIR)/prctl-arg2-intptr.Po
-include ./$(DEPDIR)/prctl-dumpable.Po
-include ./$(DEPDIR)/prctl-name.Po
-include ./$(DEPDIR)/prctl-no-args.Po
-include ./$(DEPDIR)/prctl-pdeathsig.Po
-include ./$(DEPDIR)/prctl-seccomp-filter-v.Po
-include ./$(DEPDIR)/prctl-seccomp-strict.Po
-include ./$(DEPDIR)/prctl-securebits.Po
-include ./$(DEPDIR)/prctl-tid_address.Po
-include ./$(DEPDIR)/prctl-tsc.Po
-include ./$(DEPDIR)/pread64_pwrite64-pread64-pwrite64.Po
-include ./$(DEPDIR)/preadv-preadv.Po
-include ./$(DEPDIR)/preadv2-pwritev2.Po
-include ./$(DEPDIR)/preadv_pwritev-preadv-pwritev.Po
-include ./$(DEPDIR)/print_maxfd.Po
-include ./$(DEPDIR)/printstr.Po
-include ./$(DEPDIR)/prlimit64.Po
-include ./$(DEPDIR)/process_vm_readv.Po
-include ./$(DEPDIR)/process_vm_writev.Po
-include ./$(DEPDIR)/pselect6.Po
-include ./$(DEPDIR)/ptrace.Po
-include ./$(DEPDIR)/pwritev-pwritev.Po
-include ./$(DEPDIR)/qual_fault.Po
-include ./$(DEPDIR)/qual_inject-error-signal.Po
-include ./$(DEPDIR)/qual_inject-retval.Po
-include ./$(DEPDIR)/qual_inject-signal.Po
-include ./$(DEPDIR)/qual_signal.Po
-include ./$(DEPDIR)/quotactl-v.Po
-include ./$(DEPDIR)/quotactl-xfs-v.Po
-include ./$(DEPDIR)/quotactl-xfs.Po
-include ./$(DEPDIR)/quotactl.Po
-include ./$(DEPDIR)/read-write.Po
-include ./$(DEPDIR)/readahead.Po
-include ./$(DEPDIR)/readdir.Po
-include ./$(DEPDIR)/readlink.Po
-include ./$(DEPDIR)/readlinkat.Po
-include ./$(DEPDIR)/readv.Po
-include ./$(DEPDIR)/reboot.Po
-include ./$(DEPDIR)/recvfrom.Po
-include ./$(DEPDIR)/recvmmsg-timeout.Po
-include ./$(DEPDIR)/recvmsg.Po
-include ./$(DEPDIR)/redirect-fds.Po
-include ./$(DEPDIR)/remap_file_pages.Po
-include ./$(DEPDIR)/rename.Po
-include ./$(DEPDIR)/renameat.Po
-include ./$(DEPDIR)/renameat2.Po
-include ./$(DEPDIR)/request_key.Po
-include ./$(DEPDIR)/restart_syscall.Po
-include ./$(DEPDIR)/rmdir.Po
-include ./$(DEPDIR)/rt_sigpending.Po
-include ./$(DEPDIR)/rt_sigprocmask.Po
-include ./$(DEPDIR)/rt_sigqueueinfo.Po
-include ./$(DEPDIR)/rt_sigreturn.Po
-include ./$(DEPDIR)/rt_sigsuspend.Po
-include ./$(DEPDIR)/rt_sigtimedwait.Po
-include ./$(DEPDIR)/rt_tgsigqueueinfo.Po
-include ./$(DEPDIR)/sched_get_priority_mxx.Po
-include ./$(DEPDIR)/sched_rr_get_interval.Po
-include ./$(DEPDIR)/sched_xetaffinity.Po
-include ./$(DEPDIR)/sched_xetattr.Po
-include ./$(DEPDIR)/sched_xetparam.Po
-include ./$(DEPDIR)/sched_xetscheduler.Po
-include ./$(DEPDIR)/sched_yield.Po
-include ./$(DEPDIR)/scm_rights.Po
-include ./$(DEPDIR)/seccomp-filter-v.Po
-include ./$(DEPDIR)/seccomp-filter.Po
-include ./$(DEPDIR)/seccomp-strict.Po
-include ./$(DEPDIR)/select.Po
-include ./$(DEPDIR)/semop.Po
-include ./$(DEPDIR)/sendfile.Po
-include ./$(DEPDIR)/sendfile64.Po
-include ./$(DEPDIR)/set_mempolicy.Po
-include ./$(DEPDIR)/set_ptracer_any.Po
-include ./$(DEPDIR)/setdomainname.Po
-include ./$(DEPDIR)/setfsgid.Po
-include ./$(DEPDIR)/setfsgid32.Po
-include ./$(DEPDIR)/setfsuid.Po
-include ./$(DEPDIR)/setfsuid32.Po
-include ./$(DEPDIR)/setgid.Po
-include ./$(DEPDIR)/setgid32.Po
-include ./$(DEPDIR)/setgroups.Po
-include ./$(DEPDIR)/setgroups32.Po
-include ./$(DEPDIR)/sethostname.Po
-include ./$(DEPDIR)/setns.Po
-include ./$(DEPDIR)/setregid.Po
-include ./$(DEPDIR)/setregid32.Po
-include ./$(DEPDIR)/setresgid.Po
-include ./$(DEPDIR)/setresgid32.Po
-include ./$(DEPDIR)/setresuid.Po
-include ./$(DEPDIR)/setresuid32.Po
-include ./$(DEPDIR)/setreuid.Po
-include ./$(DEPDIR)/setreuid32.Po
-include ./$(DEPDIR)/setrlimit.Po
-include ./$(DEPDIR)/setuid.Po
-include ./$(DEPDIR)/setuid32.Po
-include ./$(DEPDIR)/shmxt.Po
-include ./$(DEPDIR)/shutdown.Po
-include ./$(DEPDIR)/sigaction.Po
-include ./$(DEPDIR)/sigaltstack.Po
-include ./$(DEPDIR)/siginfo.Po
-include ./$(DEPDIR)/signal_receive.Po
-include ./$(DEPDIR)/signalfd4.Po
-include ./$(DEPDIR)/sigreturn.Po
-include ./$(DEPDIR)/sigsuspend.Po
-include ./$(DEPDIR)/sleep.Po
-include ./$(DEPDIR)/socketcall.Po
-include ./$(DEPDIR)/splice.Po
-include ./$(DEPDIR)/stack-fcall-0.Po
-include ./$(DEPDIR)/stack-fcall-1.Po
-include ./$(DEPDIR)/stack-fcall-2.Po
-include ./$(DEPDIR)/stack-fcall-3.Po
-include ./$(DEPDIR)/stack-fcall.Po
-include ./$(DEPDIR)/stat.Po
-include ./$(DEPDIR)/stat64-stat64.Po
-include ./$(DEPDIR)/statfs-statfs.Po
-include ./$(DEPDIR)/statfs64.Po
-include ./$(DEPDIR)/statx.Po
-include ./$(DEPDIR)/swap.Po
-include ./$(DEPDIR)/sxetmask.Po
-include ./$(DEPDIR)/symlink.Po
-include ./$(DEPDIR)/symlinkat.Po
-include ./$(DEPDIR)/sync.Po
-include ./$(DEPDIR)/sync_file_range.Po
-include ./$(DEPDIR)/sync_file_range2.Po
-include ./$(DEPDIR)/sysinfo.Po
-include ./$(DEPDIR)/syslog.Po
-include ./$(DEPDIR)/tee.Po
-include ./$(DEPDIR)/threads-execve.Po
-include ./$(DEPDIR)/time.Po
-include ./$(DEPDIR)/timer_create.Po
-include ./$(DEPDIR)/timer_xettime.Po
-include ./$(DEPDIR)/timerfd_xettime.Po
-include ./$(DEPDIR)/times-fail.Po
-include ./$(DEPDIR)/times.Po
-include ./$(DEPDIR)/truncate.Po
-include ./$(DEPDIR)/truncate64-truncate64.Po
-include ./$(DEPDIR)/ugetrlimit.Po
-include ./$(DEPDIR)/uio-uio.Po
-include ./$(DEPDIR)/umask.Po
-include ./$(DEPDIR)/umount.Po
-include ./$(DEPDIR)/umount2.Po
-include ./$(DEPDIR)/umoven-illptr.Po
-include ./$(DEPDIR)/umovestr-illptr.Po
-include ./$(DEPDIR)/umovestr.Po
-include ./$(DEPDIR)/umovestr2.Po
-include ./$(DEPDIR)/umovestr3.Po
-include ./$(DEPDIR)/uname.Po
-include ./$(DEPDIR)/unix-pair-send-recv.Po
-include ./$(DEPDIR)/unix-pair-sendto-recvfrom.Po
-include ./$(DEPDIR)/unlink.Po
-include ./$(DEPDIR)/unlinkat.Po
-include ./$(DEPDIR)/unshare.Po
-include ./$(DEPDIR)/userfaultfd.Po
-include ./$(DEPDIR)/ustat.Po
-include ./$(DEPDIR)/utime.Po
-include ./$(DEPDIR)/utimensat.Po
-include ./$(DEPDIR)/utimes.Po
-include ./$(DEPDIR)/vfork-f.Po
-include ./$(DEPDIR)/vhangup.Po
-include ./$(DEPDIR)/vmsplice.Po
-include ./$(DEPDIR)/wait4-v.Po
-include ./$(DEPDIR)/wait4.Po
-include ./$(DEPDIR)/waitid-v.Po
-include ./$(DEPDIR)/waitid.Po
-include ./$(DEPDIR)/waitpid.Po
-include ./$(DEPDIR)/xattr-strings.Po
-include ./$(DEPDIR)/xattr.Po
-include ./$(DEPDIR)/xet_robust_list.Po
-include ./$(DEPDIR)/xetitimer.Po
-include ./$(DEPDIR)/xetpgid.Po
-include ./$(DEPDIR)/xetpriority.Po
-include ./$(DEPDIR)/xettimeofday.Po
-
-.c.o:
-	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-#	$(AM_V_CC)source='$<' object='$@' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(COMPILE) -c -o $@ $<
-
-.c.obj:
-	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-#	$(AM_V_CC)source='$<' object='$@' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-libtests_a-errno2name.o: errno2name.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-errno2name.o -MD -MP -MF $(DEPDIR)/libtests_a-errno2name.Tpo -c -o libtests_a-errno2name.o `test -f 'errno2name.c' || echo '$(srcdir)/'`errno2name.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-errno2name.Tpo $(DEPDIR)/libtests_a-errno2name.Po
-#	$(AM_V_CC)source='errno2name.c' object='libtests_a-errno2name.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-errno2name.o `test -f 'errno2name.c' || echo '$(srcdir)/'`errno2name.c
-
-libtests_a-errno2name.obj: errno2name.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-errno2name.obj -MD -MP -MF $(DEPDIR)/libtests_a-errno2name.Tpo -c -o libtests_a-errno2name.obj `if test -f 'errno2name.c'; then $(CYGPATH_W) 'errno2name.c'; else $(CYGPATH_W) '$(srcdir)/errno2name.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-errno2name.Tpo $(DEPDIR)/libtests_a-errno2name.Po
-#	$(AM_V_CC)source='errno2name.c' object='libtests_a-errno2name.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-errno2name.obj `if test -f 'errno2name.c'; then $(CYGPATH_W) 'errno2name.c'; else $(CYGPATH_W) '$(srcdir)/errno2name.c'; fi`
-
-libtests_a-error_msg.o: error_msg.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-error_msg.o -MD -MP -MF $(DEPDIR)/libtests_a-error_msg.Tpo -c -o libtests_a-error_msg.o `test -f 'error_msg.c' || echo '$(srcdir)/'`error_msg.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-error_msg.Tpo $(DEPDIR)/libtests_a-error_msg.Po
-#	$(AM_V_CC)source='error_msg.c' object='libtests_a-error_msg.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-error_msg.o `test -f 'error_msg.c' || echo '$(srcdir)/'`error_msg.c
-
-libtests_a-error_msg.obj: error_msg.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-error_msg.obj -MD -MP -MF $(DEPDIR)/libtests_a-error_msg.Tpo -c -o libtests_a-error_msg.obj `if test -f 'error_msg.c'; then $(CYGPATH_W) 'error_msg.c'; else $(CYGPATH_W) '$(srcdir)/error_msg.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-error_msg.Tpo $(DEPDIR)/libtests_a-error_msg.Po
-#	$(AM_V_CC)source='error_msg.c' object='libtests_a-error_msg.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-error_msg.obj `if test -f 'error_msg.c'; then $(CYGPATH_W) 'error_msg.c'; else $(CYGPATH_W) '$(srcdir)/error_msg.c'; fi`
-
-libtests_a-fill_memory.o: fill_memory.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-fill_memory.o -MD -MP -MF $(DEPDIR)/libtests_a-fill_memory.Tpo -c -o libtests_a-fill_memory.o `test -f 'fill_memory.c' || echo '$(srcdir)/'`fill_memory.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-fill_memory.Tpo $(DEPDIR)/libtests_a-fill_memory.Po
-#	$(AM_V_CC)source='fill_memory.c' object='libtests_a-fill_memory.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-fill_memory.o `test -f 'fill_memory.c' || echo '$(srcdir)/'`fill_memory.c
-
-libtests_a-fill_memory.obj: fill_memory.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-fill_memory.obj -MD -MP -MF $(DEPDIR)/libtests_a-fill_memory.Tpo -c -o libtests_a-fill_memory.obj `if test -f 'fill_memory.c'; then $(CYGPATH_W) 'fill_memory.c'; else $(CYGPATH_W) '$(srcdir)/fill_memory.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-fill_memory.Tpo $(DEPDIR)/libtests_a-fill_memory.Po
-#	$(AM_V_CC)source='fill_memory.c' object='libtests_a-fill_memory.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-fill_memory.obj `if test -f 'fill_memory.c'; then $(CYGPATH_W) 'fill_memory.c'; else $(CYGPATH_W) '$(srcdir)/fill_memory.c'; fi`
-
-libtests_a-get_page_size.o: get_page_size.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-get_page_size.o -MD -MP -MF $(DEPDIR)/libtests_a-get_page_size.Tpo -c -o libtests_a-get_page_size.o `test -f 'get_page_size.c' || echo '$(srcdir)/'`get_page_size.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-get_page_size.Tpo $(DEPDIR)/libtests_a-get_page_size.Po
-#	$(AM_V_CC)source='get_page_size.c' object='libtests_a-get_page_size.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-get_page_size.o `test -f 'get_page_size.c' || echo '$(srcdir)/'`get_page_size.c
-
-libtests_a-get_page_size.obj: get_page_size.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-get_page_size.obj -MD -MP -MF $(DEPDIR)/libtests_a-get_page_size.Tpo -c -o libtests_a-get_page_size.obj `if test -f 'get_page_size.c'; then $(CYGPATH_W) 'get_page_size.c'; else $(CYGPATH_W) '$(srcdir)/get_page_size.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-get_page_size.Tpo $(DEPDIR)/libtests_a-get_page_size.Po
-#	$(AM_V_CC)source='get_page_size.c' object='libtests_a-get_page_size.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-get_page_size.obj `if test -f 'get_page_size.c'; then $(CYGPATH_W) 'get_page_size.c'; else $(CYGPATH_W) '$(srcdir)/get_page_size.c'; fi`
-
-libtests_a-get_sigset_size.o: get_sigset_size.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-get_sigset_size.o -MD -MP -MF $(DEPDIR)/libtests_a-get_sigset_size.Tpo -c -o libtests_a-get_sigset_size.o `test -f 'get_sigset_size.c' || echo '$(srcdir)/'`get_sigset_size.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-get_sigset_size.Tpo $(DEPDIR)/libtests_a-get_sigset_size.Po
-#	$(AM_V_CC)source='get_sigset_size.c' object='libtests_a-get_sigset_size.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-get_sigset_size.o `test -f 'get_sigset_size.c' || echo '$(srcdir)/'`get_sigset_size.c
-
-libtests_a-get_sigset_size.obj: get_sigset_size.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-get_sigset_size.obj -MD -MP -MF $(DEPDIR)/libtests_a-get_sigset_size.Tpo -c -o libtests_a-get_sigset_size.obj `if test -f 'get_sigset_size.c'; then $(CYGPATH_W) 'get_sigset_size.c'; else $(CYGPATH_W) '$(srcdir)/get_sigset_size.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-get_sigset_size.Tpo $(DEPDIR)/libtests_a-get_sigset_size.Po
-#	$(AM_V_CC)source='get_sigset_size.c' object='libtests_a-get_sigset_size.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-get_sigset_size.obj `if test -f 'get_sigset_size.c'; then $(CYGPATH_W) 'get_sigset_size.c'; else $(CYGPATH_W) '$(srcdir)/get_sigset_size.c'; fi`
-
-libtests_a-hexdump_strdup.o: hexdump_strdup.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-hexdump_strdup.o -MD -MP -MF $(DEPDIR)/libtests_a-hexdump_strdup.Tpo -c -o libtests_a-hexdump_strdup.o `test -f 'hexdump_strdup.c' || echo '$(srcdir)/'`hexdump_strdup.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-hexdump_strdup.Tpo $(DEPDIR)/libtests_a-hexdump_strdup.Po
-#	$(AM_V_CC)source='hexdump_strdup.c' object='libtests_a-hexdump_strdup.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-hexdump_strdup.o `test -f 'hexdump_strdup.c' || echo '$(srcdir)/'`hexdump_strdup.c
-
-libtests_a-hexdump_strdup.obj: hexdump_strdup.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-hexdump_strdup.obj -MD -MP -MF $(DEPDIR)/libtests_a-hexdump_strdup.Tpo -c -o libtests_a-hexdump_strdup.obj `if test -f 'hexdump_strdup.c'; then $(CYGPATH_W) 'hexdump_strdup.c'; else $(CYGPATH_W) '$(srcdir)/hexdump_strdup.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-hexdump_strdup.Tpo $(DEPDIR)/libtests_a-hexdump_strdup.Po
-#	$(AM_V_CC)source='hexdump_strdup.c' object='libtests_a-hexdump_strdup.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-hexdump_strdup.obj `if test -f 'hexdump_strdup.c'; then $(CYGPATH_W) 'hexdump_strdup.c'; else $(CYGPATH_W) '$(srcdir)/hexdump_strdup.c'; fi`
-
-libtests_a-hexquote_strndup.o: hexquote_strndup.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-hexquote_strndup.o -MD -MP -MF $(DEPDIR)/libtests_a-hexquote_strndup.Tpo -c -o libtests_a-hexquote_strndup.o `test -f 'hexquote_strndup.c' || echo '$(srcdir)/'`hexquote_strndup.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-hexquote_strndup.Tpo $(DEPDIR)/libtests_a-hexquote_strndup.Po
-#	$(AM_V_CC)source='hexquote_strndup.c' object='libtests_a-hexquote_strndup.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-hexquote_strndup.o `test -f 'hexquote_strndup.c' || echo '$(srcdir)/'`hexquote_strndup.c
-
-libtests_a-hexquote_strndup.obj: hexquote_strndup.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-hexquote_strndup.obj -MD -MP -MF $(DEPDIR)/libtests_a-hexquote_strndup.Tpo -c -o libtests_a-hexquote_strndup.obj `if test -f 'hexquote_strndup.c'; then $(CYGPATH_W) 'hexquote_strndup.c'; else $(CYGPATH_W) '$(srcdir)/hexquote_strndup.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-hexquote_strndup.Tpo $(DEPDIR)/libtests_a-hexquote_strndup.Po
-#	$(AM_V_CC)source='hexquote_strndup.c' object='libtests_a-hexquote_strndup.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-hexquote_strndup.obj `if test -f 'hexquote_strndup.c'; then $(CYGPATH_W) 'hexquote_strndup.c'; else $(CYGPATH_W) '$(srcdir)/hexquote_strndup.c'; fi`
-
-libtests_a-inode_of_sockfd.o: inode_of_sockfd.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-inode_of_sockfd.o -MD -MP -MF $(DEPDIR)/libtests_a-inode_of_sockfd.Tpo -c -o libtests_a-inode_of_sockfd.o `test -f 'inode_of_sockfd.c' || echo '$(srcdir)/'`inode_of_sockfd.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-inode_of_sockfd.Tpo $(DEPDIR)/libtests_a-inode_of_sockfd.Po
-#	$(AM_V_CC)source='inode_of_sockfd.c' object='libtests_a-inode_of_sockfd.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-inode_of_sockfd.o `test -f 'inode_of_sockfd.c' || echo '$(srcdir)/'`inode_of_sockfd.c
-
-libtests_a-inode_of_sockfd.obj: inode_of_sockfd.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-inode_of_sockfd.obj -MD -MP -MF $(DEPDIR)/libtests_a-inode_of_sockfd.Tpo -c -o libtests_a-inode_of_sockfd.obj `if test -f 'inode_of_sockfd.c'; then $(CYGPATH_W) 'inode_of_sockfd.c'; else $(CYGPATH_W) '$(srcdir)/inode_of_sockfd.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-inode_of_sockfd.Tpo $(DEPDIR)/libtests_a-inode_of_sockfd.Po
-#	$(AM_V_CC)source='inode_of_sockfd.c' object='libtests_a-inode_of_sockfd.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-inode_of_sockfd.obj `if test -f 'inode_of_sockfd.c'; then $(CYGPATH_W) 'inode_of_sockfd.c'; else $(CYGPATH_W) '$(srcdir)/inode_of_sockfd.c'; fi`
-
-libtests_a-libmmsg.o: libmmsg.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-libmmsg.o -MD -MP -MF $(DEPDIR)/libtests_a-libmmsg.Tpo -c -o libtests_a-libmmsg.o `test -f 'libmmsg.c' || echo '$(srcdir)/'`libmmsg.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-libmmsg.Tpo $(DEPDIR)/libtests_a-libmmsg.Po
-#	$(AM_V_CC)source='libmmsg.c' object='libtests_a-libmmsg.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-libmmsg.o `test -f 'libmmsg.c' || echo '$(srcdir)/'`libmmsg.c
-
-libtests_a-libmmsg.obj: libmmsg.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-libmmsg.obj -MD -MP -MF $(DEPDIR)/libtests_a-libmmsg.Tpo -c -o libtests_a-libmmsg.obj `if test -f 'libmmsg.c'; then $(CYGPATH_W) 'libmmsg.c'; else $(CYGPATH_W) '$(srcdir)/libmmsg.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-libmmsg.Tpo $(DEPDIR)/libtests_a-libmmsg.Po
-#	$(AM_V_CC)source='libmmsg.c' object='libtests_a-libmmsg.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-libmmsg.obj `if test -f 'libmmsg.c'; then $(CYGPATH_W) 'libmmsg.c'; else $(CYGPATH_W) '$(srcdir)/libmmsg.c'; fi`
-
-libtests_a-libsocketcall.o: libsocketcall.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-libsocketcall.o -MD -MP -MF $(DEPDIR)/libtests_a-libsocketcall.Tpo -c -o libtests_a-libsocketcall.o `test -f 'libsocketcall.c' || echo '$(srcdir)/'`libsocketcall.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-libsocketcall.Tpo $(DEPDIR)/libtests_a-libsocketcall.Po
-#	$(AM_V_CC)source='libsocketcall.c' object='libtests_a-libsocketcall.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-libsocketcall.o `test -f 'libsocketcall.c' || echo '$(srcdir)/'`libsocketcall.c
-
-libtests_a-libsocketcall.obj: libsocketcall.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-libsocketcall.obj -MD -MP -MF $(DEPDIR)/libtests_a-libsocketcall.Tpo -c -o libtests_a-libsocketcall.obj `if test -f 'libsocketcall.c'; then $(CYGPATH_W) 'libsocketcall.c'; else $(CYGPATH_W) '$(srcdir)/libsocketcall.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-libsocketcall.Tpo $(DEPDIR)/libtests_a-libsocketcall.Po
-#	$(AM_V_CC)source='libsocketcall.c' object='libtests_a-libsocketcall.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-libsocketcall.obj `if test -f 'libsocketcall.c'; then $(CYGPATH_W) 'libsocketcall.c'; else $(CYGPATH_W) '$(srcdir)/libsocketcall.c'; fi`
-
-libtests_a-overflowuid.o: overflowuid.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-overflowuid.o -MD -MP -MF $(DEPDIR)/libtests_a-overflowuid.Tpo -c -o libtests_a-overflowuid.o `test -f 'overflowuid.c' || echo '$(srcdir)/'`overflowuid.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-overflowuid.Tpo $(DEPDIR)/libtests_a-overflowuid.Po
-#	$(AM_V_CC)source='overflowuid.c' object='libtests_a-overflowuid.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-overflowuid.o `test -f 'overflowuid.c' || echo '$(srcdir)/'`overflowuid.c
-
-libtests_a-overflowuid.obj: overflowuid.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-overflowuid.obj -MD -MP -MF $(DEPDIR)/libtests_a-overflowuid.Tpo -c -o libtests_a-overflowuid.obj `if test -f 'overflowuid.c'; then $(CYGPATH_W) 'overflowuid.c'; else $(CYGPATH_W) '$(srcdir)/overflowuid.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-overflowuid.Tpo $(DEPDIR)/libtests_a-overflowuid.Po
-#	$(AM_V_CC)source='overflowuid.c' object='libtests_a-overflowuid.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-overflowuid.obj `if test -f 'overflowuid.c'; then $(CYGPATH_W) 'overflowuid.c'; else $(CYGPATH_W) '$(srcdir)/overflowuid.c'; fi`
-
-libtests_a-pipe_maxfd.o: pipe_maxfd.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-pipe_maxfd.o -MD -MP -MF $(DEPDIR)/libtests_a-pipe_maxfd.Tpo -c -o libtests_a-pipe_maxfd.o `test -f 'pipe_maxfd.c' || echo '$(srcdir)/'`pipe_maxfd.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-pipe_maxfd.Tpo $(DEPDIR)/libtests_a-pipe_maxfd.Po
-#	$(AM_V_CC)source='pipe_maxfd.c' object='libtests_a-pipe_maxfd.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-pipe_maxfd.o `test -f 'pipe_maxfd.c' || echo '$(srcdir)/'`pipe_maxfd.c
-
-libtests_a-pipe_maxfd.obj: pipe_maxfd.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-pipe_maxfd.obj -MD -MP -MF $(DEPDIR)/libtests_a-pipe_maxfd.Tpo -c -o libtests_a-pipe_maxfd.obj `if test -f 'pipe_maxfd.c'; then $(CYGPATH_W) 'pipe_maxfd.c'; else $(CYGPATH_W) '$(srcdir)/pipe_maxfd.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-pipe_maxfd.Tpo $(DEPDIR)/libtests_a-pipe_maxfd.Po
-#	$(AM_V_CC)source='pipe_maxfd.c' object='libtests_a-pipe_maxfd.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-pipe_maxfd.obj `if test -f 'pipe_maxfd.c'; then $(CYGPATH_W) 'pipe_maxfd.c'; else $(CYGPATH_W) '$(srcdir)/pipe_maxfd.c'; fi`
-
-libtests_a-print_quoted_string.o: print_quoted_string.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-print_quoted_string.o -MD -MP -MF $(DEPDIR)/libtests_a-print_quoted_string.Tpo -c -o libtests_a-print_quoted_string.o `test -f 'print_quoted_string.c' || echo '$(srcdir)/'`print_quoted_string.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-print_quoted_string.Tpo $(DEPDIR)/libtests_a-print_quoted_string.Po
-#	$(AM_V_CC)source='print_quoted_string.c' object='libtests_a-print_quoted_string.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-print_quoted_string.o `test -f 'print_quoted_string.c' || echo '$(srcdir)/'`print_quoted_string.c
-
-libtests_a-print_quoted_string.obj: print_quoted_string.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-print_quoted_string.obj -MD -MP -MF $(DEPDIR)/libtests_a-print_quoted_string.Tpo -c -o libtests_a-print_quoted_string.obj `if test -f 'print_quoted_string.c'; then $(CYGPATH_W) 'print_quoted_string.c'; else $(CYGPATH_W) '$(srcdir)/print_quoted_string.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-print_quoted_string.Tpo $(DEPDIR)/libtests_a-print_quoted_string.Po
-#	$(AM_V_CC)source='print_quoted_string.c' object='libtests_a-print_quoted_string.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-print_quoted_string.obj `if test -f 'print_quoted_string.c'; then $(CYGPATH_W) 'print_quoted_string.c'; else $(CYGPATH_W) '$(srcdir)/print_quoted_string.c'; fi`
-
-libtests_a-print_time.o: print_time.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-print_time.o -MD -MP -MF $(DEPDIR)/libtests_a-print_time.Tpo -c -o libtests_a-print_time.o `test -f 'print_time.c' || echo '$(srcdir)/'`print_time.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-print_time.Tpo $(DEPDIR)/libtests_a-print_time.Po
-#	$(AM_V_CC)source='print_time.c' object='libtests_a-print_time.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-print_time.o `test -f 'print_time.c' || echo '$(srcdir)/'`print_time.c
-
-libtests_a-print_time.obj: print_time.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-print_time.obj -MD -MP -MF $(DEPDIR)/libtests_a-print_time.Tpo -c -o libtests_a-print_time.obj `if test -f 'print_time.c'; then $(CYGPATH_W) 'print_time.c'; else $(CYGPATH_W) '$(srcdir)/print_time.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-print_time.Tpo $(DEPDIR)/libtests_a-print_time.Po
-#	$(AM_V_CC)source='print_time.c' object='libtests_a-print_time.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-print_time.obj `if test -f 'print_time.c'; then $(CYGPATH_W) 'print_time.c'; else $(CYGPATH_W) '$(srcdir)/print_time.c'; fi`
-
-libtests_a-printflags.o: printflags.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printflags.o -MD -MP -MF $(DEPDIR)/libtests_a-printflags.Tpo -c -o libtests_a-printflags.o `test -f 'printflags.c' || echo '$(srcdir)/'`printflags.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printflags.Tpo $(DEPDIR)/libtests_a-printflags.Po
-#	$(AM_V_CC)source='printflags.c' object='libtests_a-printflags.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printflags.o `test -f 'printflags.c' || echo '$(srcdir)/'`printflags.c
-
-libtests_a-printflags.obj: printflags.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printflags.obj -MD -MP -MF $(DEPDIR)/libtests_a-printflags.Tpo -c -o libtests_a-printflags.obj `if test -f 'printflags.c'; then $(CYGPATH_W) 'printflags.c'; else $(CYGPATH_W) '$(srcdir)/printflags.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printflags.Tpo $(DEPDIR)/libtests_a-printflags.Po
-#	$(AM_V_CC)source='printflags.c' object='libtests_a-printflags.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printflags.obj `if test -f 'printflags.c'; then $(CYGPATH_W) 'printflags.c'; else $(CYGPATH_W) '$(srcdir)/printflags.c'; fi`
-
-libtests_a-printxval.o: printxval.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printxval.o -MD -MP -MF $(DEPDIR)/libtests_a-printxval.Tpo -c -o libtests_a-printxval.o `test -f 'printxval.c' || echo '$(srcdir)/'`printxval.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printxval.Tpo $(DEPDIR)/libtests_a-printxval.Po
-#	$(AM_V_CC)source='printxval.c' object='libtests_a-printxval.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printxval.o `test -f 'printxval.c' || echo '$(srcdir)/'`printxval.c
-
-libtests_a-printxval.obj: printxval.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-printxval.obj -MD -MP -MF $(DEPDIR)/libtests_a-printxval.Tpo -c -o libtests_a-printxval.obj `if test -f 'printxval.c'; then $(CYGPATH_W) 'printxval.c'; else $(CYGPATH_W) '$(srcdir)/printxval.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-printxval.Tpo $(DEPDIR)/libtests_a-printxval.Po
-#	$(AM_V_CC)source='printxval.c' object='libtests_a-printxval.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-printxval.obj `if test -f 'printxval.c'; then $(CYGPATH_W) 'printxval.c'; else $(CYGPATH_W) '$(srcdir)/printxval.c'; fi`
-
-libtests_a-signal2name.o: signal2name.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-signal2name.o -MD -MP -MF $(DEPDIR)/libtests_a-signal2name.Tpo -c -o libtests_a-signal2name.o `test -f 'signal2name.c' || echo '$(srcdir)/'`signal2name.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-signal2name.Tpo $(DEPDIR)/libtests_a-signal2name.Po
-#	$(AM_V_CC)source='signal2name.c' object='libtests_a-signal2name.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-signal2name.o `test -f 'signal2name.c' || echo '$(srcdir)/'`signal2name.c
-
-libtests_a-signal2name.obj: signal2name.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-signal2name.obj -MD -MP -MF $(DEPDIR)/libtests_a-signal2name.Tpo -c -o libtests_a-signal2name.obj `if test -f 'signal2name.c'; then $(CYGPATH_W) 'signal2name.c'; else $(CYGPATH_W) '$(srcdir)/signal2name.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-signal2name.Tpo $(DEPDIR)/libtests_a-signal2name.Po
-#	$(AM_V_CC)source='signal2name.c' object='libtests_a-signal2name.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-signal2name.obj `if test -f 'signal2name.c'; then $(CYGPATH_W) 'signal2name.c'; else $(CYGPATH_W) '$(srcdir)/signal2name.c'; fi`
-
-libtests_a-skip_unavailable.o: skip_unavailable.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-skip_unavailable.o -MD -MP -MF $(DEPDIR)/libtests_a-skip_unavailable.Tpo -c -o libtests_a-skip_unavailable.o `test -f 'skip_unavailable.c' || echo '$(srcdir)/'`skip_unavailable.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-skip_unavailable.Tpo $(DEPDIR)/libtests_a-skip_unavailable.Po
-#	$(AM_V_CC)source='skip_unavailable.c' object='libtests_a-skip_unavailable.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-skip_unavailable.o `test -f 'skip_unavailable.c' || echo '$(srcdir)/'`skip_unavailable.c
-
-libtests_a-skip_unavailable.obj: skip_unavailable.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-skip_unavailable.obj -MD -MP -MF $(DEPDIR)/libtests_a-skip_unavailable.Tpo -c -o libtests_a-skip_unavailable.obj `if test -f 'skip_unavailable.c'; then $(CYGPATH_W) 'skip_unavailable.c'; else $(CYGPATH_W) '$(srcdir)/skip_unavailable.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-skip_unavailable.Tpo $(DEPDIR)/libtests_a-skip_unavailable.Po
-#	$(AM_V_CC)source='skip_unavailable.c' object='libtests_a-skip_unavailable.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-skip_unavailable.obj `if test -f 'skip_unavailable.c'; then $(CYGPATH_W) 'skip_unavailable.c'; else $(CYGPATH_W) '$(srcdir)/skip_unavailable.c'; fi`
-
-libtests_a-sprintrc.o: sprintrc.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-sprintrc.o -MD -MP -MF $(DEPDIR)/libtests_a-sprintrc.Tpo -c -o libtests_a-sprintrc.o `test -f 'sprintrc.c' || echo '$(srcdir)/'`sprintrc.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-sprintrc.Tpo $(DEPDIR)/libtests_a-sprintrc.Po
-#	$(AM_V_CC)source='sprintrc.c' object='libtests_a-sprintrc.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-sprintrc.o `test -f 'sprintrc.c' || echo '$(srcdir)/'`sprintrc.c
-
-libtests_a-sprintrc.obj: sprintrc.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-sprintrc.obj -MD -MP -MF $(DEPDIR)/libtests_a-sprintrc.Tpo -c -o libtests_a-sprintrc.obj `if test -f 'sprintrc.c'; then $(CYGPATH_W) 'sprintrc.c'; else $(CYGPATH_W) '$(srcdir)/sprintrc.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-sprintrc.Tpo $(DEPDIR)/libtests_a-sprintrc.Po
-#	$(AM_V_CC)source='sprintrc.c' object='libtests_a-sprintrc.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-sprintrc.obj `if test -f 'sprintrc.c'; then $(CYGPATH_W) 'sprintrc.c'; else $(CYGPATH_W) '$(srcdir)/sprintrc.c'; fi`
-
-libtests_a-tail_alloc.o: tail_alloc.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-tail_alloc.o -MD -MP -MF $(DEPDIR)/libtests_a-tail_alloc.Tpo -c -o libtests_a-tail_alloc.o `test -f 'tail_alloc.c' || echo '$(srcdir)/'`tail_alloc.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-tail_alloc.Tpo $(DEPDIR)/libtests_a-tail_alloc.Po
-#	$(AM_V_CC)source='tail_alloc.c' object='libtests_a-tail_alloc.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-tail_alloc.o `test -f 'tail_alloc.c' || echo '$(srcdir)/'`tail_alloc.c
-
-libtests_a-tail_alloc.obj: tail_alloc.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-tail_alloc.obj -MD -MP -MF $(DEPDIR)/libtests_a-tail_alloc.Tpo -c -o libtests_a-tail_alloc.obj `if test -f 'tail_alloc.c'; then $(CYGPATH_W) 'tail_alloc.c'; else $(CYGPATH_W) '$(srcdir)/tail_alloc.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-tail_alloc.Tpo $(DEPDIR)/libtests_a-tail_alloc.Po
-#	$(AM_V_CC)source='tail_alloc.c' object='libtests_a-tail_alloc.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-tail_alloc.obj `if test -f 'tail_alloc.c'; then $(CYGPATH_W) 'tail_alloc.c'; else $(CYGPATH_W) '$(srcdir)/tail_alloc.c'; fi`
-
-libtests_a-tprintf.o: tprintf.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-tprintf.o -MD -MP -MF $(DEPDIR)/libtests_a-tprintf.Tpo -c -o libtests_a-tprintf.o `test -f 'tprintf.c' || echo '$(srcdir)/'`tprintf.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-tprintf.Tpo $(DEPDIR)/libtests_a-tprintf.Po
-#	$(AM_V_CC)source='tprintf.c' object='libtests_a-tprintf.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-tprintf.o `test -f 'tprintf.c' || echo '$(srcdir)/'`tprintf.c
-
-libtests_a-tprintf.obj: tprintf.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-tprintf.obj -MD -MP -MF $(DEPDIR)/libtests_a-tprintf.Tpo -c -o libtests_a-tprintf.obj `if test -f 'tprintf.c'; then $(CYGPATH_W) 'tprintf.c'; else $(CYGPATH_W) '$(srcdir)/tprintf.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-tprintf.Tpo $(DEPDIR)/libtests_a-tprintf.Po
-#	$(AM_V_CC)source='tprintf.c' object='libtests_a-tprintf.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-tprintf.obj `if test -f 'tprintf.c'; then $(CYGPATH_W) 'tprintf.c'; else $(CYGPATH_W) '$(srcdir)/tprintf.c'; fi`
-
-fstat64-fstat64.o: fstat64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fstat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fstat64-fstat64.o -MD -MP -MF $(DEPDIR)/fstat64-fstat64.Tpo -c -o fstat64-fstat64.o `test -f 'fstat64.c' || echo '$(srcdir)/'`fstat64.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/fstat64-fstat64.Tpo $(DEPDIR)/fstat64-fstat64.Po
-#	$(AM_V_CC)source='fstat64.c' object='fstat64-fstat64.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fstat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fstat64-fstat64.o `test -f 'fstat64.c' || echo '$(srcdir)/'`fstat64.c
-
-fstat64-fstat64.obj: fstat64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fstat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fstat64-fstat64.obj -MD -MP -MF $(DEPDIR)/fstat64-fstat64.Tpo -c -o fstat64-fstat64.obj `if test -f 'fstat64.c'; then $(CYGPATH_W) 'fstat64.c'; else $(CYGPATH_W) '$(srcdir)/fstat64.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/fstat64-fstat64.Tpo $(DEPDIR)/fstat64-fstat64.Po
-#	$(AM_V_CC)source='fstat64.c' object='fstat64-fstat64.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fstat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fstat64-fstat64.obj `if test -f 'fstat64.c'; then $(CYGPATH_W) 'fstat64.c'; else $(CYGPATH_W) '$(srcdir)/fstat64.c'; fi`
-
-fstatat64-fstatat64.o: fstatat64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fstatat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fstatat64-fstatat64.o -MD -MP -MF $(DEPDIR)/fstatat64-fstatat64.Tpo -c -o fstatat64-fstatat64.o `test -f 'fstatat64.c' || echo '$(srcdir)/'`fstatat64.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/fstatat64-fstatat64.Tpo $(DEPDIR)/fstatat64-fstatat64.Po
-#	$(AM_V_CC)source='fstatat64.c' object='fstatat64-fstatat64.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fstatat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fstatat64-fstatat64.o `test -f 'fstatat64.c' || echo '$(srcdir)/'`fstatat64.c
-
-fstatat64-fstatat64.obj: fstatat64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fstatat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fstatat64-fstatat64.obj -MD -MP -MF $(DEPDIR)/fstatat64-fstatat64.Tpo -c -o fstatat64-fstatat64.obj `if test -f 'fstatat64.c'; then $(CYGPATH_W) 'fstatat64.c'; else $(CYGPATH_W) '$(srcdir)/fstatat64.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/fstatat64-fstatat64.Tpo $(DEPDIR)/fstatat64-fstatat64.Po
-#	$(AM_V_CC)source='fstatat64.c' object='fstatat64-fstatat64.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fstatat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fstatat64-fstatat64.obj `if test -f 'fstatat64.c'; then $(CYGPATH_W) 'fstatat64.c'; else $(CYGPATH_W) '$(srcdir)/fstatat64.c'; fi`
-
-ftruncate64-ftruncate64.o: ftruncate64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ftruncate64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ftruncate64-ftruncate64.o -MD -MP -MF $(DEPDIR)/ftruncate64-ftruncate64.Tpo -c -o ftruncate64-ftruncate64.o `test -f 'ftruncate64.c' || echo '$(srcdir)/'`ftruncate64.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/ftruncate64-ftruncate64.Tpo $(DEPDIR)/ftruncate64-ftruncate64.Po
-#	$(AM_V_CC)source='ftruncate64.c' object='ftruncate64-ftruncate64.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ftruncate64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ftruncate64-ftruncate64.o `test -f 'ftruncate64.c' || echo '$(srcdir)/'`ftruncate64.c
-
-ftruncate64-ftruncate64.obj: ftruncate64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ftruncate64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ftruncate64-ftruncate64.obj -MD -MP -MF $(DEPDIR)/ftruncate64-ftruncate64.Tpo -c -o ftruncate64-ftruncate64.obj `if test -f 'ftruncate64.c'; then $(CYGPATH_W) 'ftruncate64.c'; else $(CYGPATH_W) '$(srcdir)/ftruncate64.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/ftruncate64-ftruncate64.Tpo $(DEPDIR)/ftruncate64-ftruncate64.Po
-#	$(AM_V_CC)source='ftruncate64.c' object='ftruncate64-ftruncate64.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ftruncate64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ftruncate64-ftruncate64.obj `if test -f 'ftruncate64.c'; then $(CYGPATH_W) 'ftruncate64.c'; else $(CYGPATH_W) '$(srcdir)/ftruncate64.c'; fi`
-
-lstat64-lstat64.o: lstat64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lstat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lstat64-lstat64.o -MD -MP -MF $(DEPDIR)/lstat64-lstat64.Tpo -c -o lstat64-lstat64.o `test -f 'lstat64.c' || echo '$(srcdir)/'`lstat64.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/lstat64-lstat64.Tpo $(DEPDIR)/lstat64-lstat64.Po
-#	$(AM_V_CC)source='lstat64.c' object='lstat64-lstat64.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lstat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lstat64-lstat64.o `test -f 'lstat64.c' || echo '$(srcdir)/'`lstat64.c
-
-lstat64-lstat64.obj: lstat64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lstat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lstat64-lstat64.obj -MD -MP -MF $(DEPDIR)/lstat64-lstat64.Tpo -c -o lstat64-lstat64.obj `if test -f 'lstat64.c'; then $(CYGPATH_W) 'lstat64.c'; else $(CYGPATH_W) '$(srcdir)/lstat64.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/lstat64-lstat64.Tpo $(DEPDIR)/lstat64-lstat64.Po
-#	$(AM_V_CC)source='lstat64.c' object='lstat64-lstat64.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lstat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lstat64-lstat64.obj `if test -f 'lstat64.c'; then $(CYGPATH_W) 'lstat64.c'; else $(CYGPATH_W) '$(srcdir)/lstat64.c'; fi`
-
-mmap64-mmap64.o: mmap64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64-mmap64.o -MD -MP -MF $(DEPDIR)/mmap64-mmap64.Tpo -c -o mmap64-mmap64.o `test -f 'mmap64.c' || echo '$(srcdir)/'`mmap64.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/mmap64-mmap64.Tpo $(DEPDIR)/mmap64-mmap64.Po
-#	$(AM_V_CC)source='mmap64.c' object='mmap64-mmap64.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64-mmap64.o `test -f 'mmap64.c' || echo '$(srcdir)/'`mmap64.c
-
-mmap64-mmap64.obj: mmap64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mmap64-mmap64.obj -MD -MP -MF $(DEPDIR)/mmap64-mmap64.Tpo -c -o mmap64-mmap64.obj `if test -f 'mmap64.c'; then $(CYGPATH_W) 'mmap64.c'; else $(CYGPATH_W) '$(srcdir)/mmap64.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/mmap64-mmap64.Tpo $(DEPDIR)/mmap64-mmap64.Po
-#	$(AM_V_CC)source='mmap64.c' object='mmap64-mmap64.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(mmap64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mmap64-mmap64.obj `if test -f 'mmap64.c'; then $(CYGPATH_W) 'mmap64.c'; else $(CYGPATH_W) '$(srcdir)/mmap64.c'; fi`
-
-newfstatat-newfstatat.o: newfstatat.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(newfstatat_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT newfstatat-newfstatat.o -MD -MP -MF $(DEPDIR)/newfstatat-newfstatat.Tpo -c -o newfstatat-newfstatat.o `test -f 'newfstatat.c' || echo '$(srcdir)/'`newfstatat.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/newfstatat-newfstatat.Tpo $(DEPDIR)/newfstatat-newfstatat.Po
-#	$(AM_V_CC)source='newfstatat.c' object='newfstatat-newfstatat.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(newfstatat_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o newfstatat-newfstatat.o `test -f 'newfstatat.c' || echo '$(srcdir)/'`newfstatat.c
-
-newfstatat-newfstatat.obj: newfstatat.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(newfstatat_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT newfstatat-newfstatat.obj -MD -MP -MF $(DEPDIR)/newfstatat-newfstatat.Tpo -c -o newfstatat-newfstatat.obj `if test -f 'newfstatat.c'; then $(CYGPATH_W) 'newfstatat.c'; else $(CYGPATH_W) '$(srcdir)/newfstatat.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/newfstatat-newfstatat.Tpo $(DEPDIR)/newfstatat-newfstatat.Po
-#	$(AM_V_CC)source='newfstatat.c' object='newfstatat-newfstatat.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(newfstatat_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o newfstatat-newfstatat.obj `if test -f 'newfstatat.c'; then $(CYGPATH_W) 'newfstatat.c'; else $(CYGPATH_W) '$(srcdir)/newfstatat.c'; fi`
-
-pread64_pwrite64-pread64-pwrite64.o: pread64-pwrite64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pread64_pwrite64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pread64_pwrite64-pread64-pwrite64.o -MD -MP -MF $(DEPDIR)/pread64_pwrite64-pread64-pwrite64.Tpo -c -o pread64_pwrite64-pread64-pwrite64.o `test -f 'pread64-pwrite64.c' || echo '$(srcdir)/'`pread64-pwrite64.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/pread64_pwrite64-pread64-pwrite64.Tpo $(DEPDIR)/pread64_pwrite64-pread64-pwrite64.Po
-#	$(AM_V_CC)source='pread64-pwrite64.c' object='pread64_pwrite64-pread64-pwrite64.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pread64_pwrite64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pread64_pwrite64-pread64-pwrite64.o `test -f 'pread64-pwrite64.c' || echo '$(srcdir)/'`pread64-pwrite64.c
-
-pread64_pwrite64-pread64-pwrite64.obj: pread64-pwrite64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pread64_pwrite64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pread64_pwrite64-pread64-pwrite64.obj -MD -MP -MF $(DEPDIR)/pread64_pwrite64-pread64-pwrite64.Tpo -c -o pread64_pwrite64-pread64-pwrite64.obj `if test -f 'pread64-pwrite64.c'; then $(CYGPATH_W) 'pread64-pwrite64.c'; else $(CYGPATH_W) '$(srcdir)/pread64-pwrite64.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/pread64_pwrite64-pread64-pwrite64.Tpo $(DEPDIR)/pread64_pwrite64-pread64-pwrite64.Po
-#	$(AM_V_CC)source='pread64-pwrite64.c' object='pread64_pwrite64-pread64-pwrite64.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pread64_pwrite64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pread64_pwrite64-pread64-pwrite64.obj `if test -f 'pread64-pwrite64.c'; then $(CYGPATH_W) 'pread64-pwrite64.c'; else $(CYGPATH_W) '$(srcdir)/pread64-pwrite64.c'; fi`
-
-preadv-preadv.o: preadv.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(preadv_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT preadv-preadv.o -MD -MP -MF $(DEPDIR)/preadv-preadv.Tpo -c -o preadv-preadv.o `test -f 'preadv.c' || echo '$(srcdir)/'`preadv.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/preadv-preadv.Tpo $(DEPDIR)/preadv-preadv.Po
-#	$(AM_V_CC)source='preadv.c' object='preadv-preadv.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(preadv_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o preadv-preadv.o `test -f 'preadv.c' || echo '$(srcdir)/'`preadv.c
-
-preadv-preadv.obj: preadv.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(preadv_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT preadv-preadv.obj -MD -MP -MF $(DEPDIR)/preadv-preadv.Tpo -c -o preadv-preadv.obj `if test -f 'preadv.c'; then $(CYGPATH_W) 'preadv.c'; else $(CYGPATH_W) '$(srcdir)/preadv.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/preadv-preadv.Tpo $(DEPDIR)/preadv-preadv.Po
-#	$(AM_V_CC)source='preadv.c' object='preadv-preadv.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(preadv_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o preadv-preadv.obj `if test -f 'preadv.c'; then $(CYGPATH_W) 'preadv.c'; else $(CYGPATH_W) '$(srcdir)/preadv.c'; fi`
-
-preadv_pwritev-preadv-pwritev.o: preadv-pwritev.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(preadv_pwritev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT preadv_pwritev-preadv-pwritev.o -MD -MP -MF $(DEPDIR)/preadv_pwritev-preadv-pwritev.Tpo -c -o preadv_pwritev-preadv-pwritev.o `test -f 'preadv-pwritev.c' || echo '$(srcdir)/'`preadv-pwritev.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/preadv_pwritev-preadv-pwritev.Tpo $(DEPDIR)/preadv_pwritev-preadv-pwritev.Po
-#	$(AM_V_CC)source='preadv-pwritev.c' object='preadv_pwritev-preadv-pwritev.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(preadv_pwritev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o preadv_pwritev-preadv-pwritev.o `test -f 'preadv-pwritev.c' || echo '$(srcdir)/'`preadv-pwritev.c
-
-preadv_pwritev-preadv-pwritev.obj: preadv-pwritev.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(preadv_pwritev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT preadv_pwritev-preadv-pwritev.obj -MD -MP -MF $(DEPDIR)/preadv_pwritev-preadv-pwritev.Tpo -c -o preadv_pwritev-preadv-pwritev.obj `if test -f 'preadv-pwritev.c'; then $(CYGPATH_W) 'preadv-pwritev.c'; else $(CYGPATH_W) '$(srcdir)/preadv-pwritev.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/preadv_pwritev-preadv-pwritev.Tpo $(DEPDIR)/preadv_pwritev-preadv-pwritev.Po
-#	$(AM_V_CC)source='preadv-pwritev.c' object='preadv_pwritev-preadv-pwritev.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(preadv_pwritev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o preadv_pwritev-preadv-pwritev.obj `if test -f 'preadv-pwritev.c'; then $(CYGPATH_W) 'preadv-pwritev.c'; else $(CYGPATH_W) '$(srcdir)/preadv-pwritev.c'; fi`
-
-pwritev-pwritev.o: pwritev.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pwritev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pwritev-pwritev.o -MD -MP -MF $(DEPDIR)/pwritev-pwritev.Tpo -c -o pwritev-pwritev.o `test -f 'pwritev.c' || echo '$(srcdir)/'`pwritev.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/pwritev-pwritev.Tpo $(DEPDIR)/pwritev-pwritev.Po
-#	$(AM_V_CC)source='pwritev.c' object='pwritev-pwritev.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pwritev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pwritev-pwritev.o `test -f 'pwritev.c' || echo '$(srcdir)/'`pwritev.c
-
-pwritev-pwritev.obj: pwritev.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pwritev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT pwritev-pwritev.obj -MD -MP -MF $(DEPDIR)/pwritev-pwritev.Tpo -c -o pwritev-pwritev.obj `if test -f 'pwritev.c'; then $(CYGPATH_W) 'pwritev.c'; else $(CYGPATH_W) '$(srcdir)/pwritev.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/pwritev-pwritev.Tpo $(DEPDIR)/pwritev-pwritev.Po
-#	$(AM_V_CC)source='pwritev.c' object='pwritev-pwritev.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pwritev_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o pwritev-pwritev.obj `if test -f 'pwritev.c'; then $(CYGPATH_W) 'pwritev.c'; else $(CYGPATH_W) '$(srcdir)/pwritev.c'; fi`
-
-stat64-stat64.o: stat64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT stat64-stat64.o -MD -MP -MF $(DEPDIR)/stat64-stat64.Tpo -c -o stat64-stat64.o `test -f 'stat64.c' || echo '$(srcdir)/'`stat64.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/stat64-stat64.Tpo $(DEPDIR)/stat64-stat64.Po
-#	$(AM_V_CC)source='stat64.c' object='stat64-stat64.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o stat64-stat64.o `test -f 'stat64.c' || echo '$(srcdir)/'`stat64.c
-
-stat64-stat64.obj: stat64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT stat64-stat64.obj -MD -MP -MF $(DEPDIR)/stat64-stat64.Tpo -c -o stat64-stat64.obj `if test -f 'stat64.c'; then $(CYGPATH_W) 'stat64.c'; else $(CYGPATH_W) '$(srcdir)/stat64.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/stat64-stat64.Tpo $(DEPDIR)/stat64-stat64.Po
-#	$(AM_V_CC)source='stat64.c' object='stat64-stat64.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(stat64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o stat64-stat64.obj `if test -f 'stat64.c'; then $(CYGPATH_W) 'stat64.c'; else $(CYGPATH_W) '$(srcdir)/stat64.c'; fi`
-
-statfs-statfs.o: statfs.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(statfs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT statfs-statfs.o -MD -MP -MF $(DEPDIR)/statfs-statfs.Tpo -c -o statfs-statfs.o `test -f 'statfs.c' || echo '$(srcdir)/'`statfs.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/statfs-statfs.Tpo $(DEPDIR)/statfs-statfs.Po
-#	$(AM_V_CC)source='statfs.c' object='statfs-statfs.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(statfs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o statfs-statfs.o `test -f 'statfs.c' || echo '$(srcdir)/'`statfs.c
-
-statfs-statfs.obj: statfs.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(statfs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT statfs-statfs.obj -MD -MP -MF $(DEPDIR)/statfs-statfs.Tpo -c -o statfs-statfs.obj `if test -f 'statfs.c'; then $(CYGPATH_W) 'statfs.c'; else $(CYGPATH_W) '$(srcdir)/statfs.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/statfs-statfs.Tpo $(DEPDIR)/statfs-statfs.Po
-#	$(AM_V_CC)source='statfs.c' object='statfs-statfs.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(statfs_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o statfs-statfs.obj `if test -f 'statfs.c'; then $(CYGPATH_W) 'statfs.c'; else $(CYGPATH_W) '$(srcdir)/statfs.c'; fi`
-
-truncate64-truncate64.o: truncate64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(truncate64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT truncate64-truncate64.o -MD -MP -MF $(DEPDIR)/truncate64-truncate64.Tpo -c -o truncate64-truncate64.o `test -f 'truncate64.c' || echo '$(srcdir)/'`truncate64.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/truncate64-truncate64.Tpo $(DEPDIR)/truncate64-truncate64.Po
-#	$(AM_V_CC)source='truncate64.c' object='truncate64-truncate64.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(truncate64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o truncate64-truncate64.o `test -f 'truncate64.c' || echo '$(srcdir)/'`truncate64.c
-
-truncate64-truncate64.obj: truncate64.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(truncate64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT truncate64-truncate64.obj -MD -MP -MF $(DEPDIR)/truncate64-truncate64.Tpo -c -o truncate64-truncate64.obj `if test -f 'truncate64.c'; then $(CYGPATH_W) 'truncate64.c'; else $(CYGPATH_W) '$(srcdir)/truncate64.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/truncate64-truncate64.Tpo $(DEPDIR)/truncate64-truncate64.Po
-#	$(AM_V_CC)source='truncate64.c' object='truncate64-truncate64.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(truncate64_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o truncate64-truncate64.obj `if test -f 'truncate64.c'; then $(CYGPATH_W) 'truncate64.c'; else $(CYGPATH_W) '$(srcdir)/truncate64.c'; fi`
-
-uio-uio.o: uio.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(uio_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uio-uio.o -MD -MP -MF $(DEPDIR)/uio-uio.Tpo -c -o uio-uio.o `test -f 'uio.c' || echo '$(srcdir)/'`uio.c
-	$(AM_V_at)$(am__mv) $(DEPDIR)/uio-uio.Tpo $(DEPDIR)/uio-uio.Po
-#	$(AM_V_CC)source='uio.c' object='uio-uio.o' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(uio_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uio-uio.o `test -f 'uio.c' || echo '$(srcdir)/'`uio.c
-
-uio-uio.obj: uio.c
-	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(uio_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uio-uio.obj -MD -MP -MF $(DEPDIR)/uio-uio.Tpo -c -o uio-uio.obj `if test -f 'uio.c'; then $(CYGPATH_W) 'uio.c'; else $(CYGPATH_W) '$(srcdir)/uio.c'; fi`
-	$(AM_V_at)$(am__mv) $(DEPDIR)/uio-uio.Tpo $(DEPDIR)/uio-uio.Po
-#	$(AM_V_CC)source='uio.c' object='uio-uio.obj' libtool=no \
-#	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
-#	$(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(uio_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uio-uio.obj `if test -f 'uio.c'; then $(CYGPATH_W) 'uio.c'; else $(CYGPATH_W) '$(srcdir)/uio.c'; fi`
-check-valgrind-local: 
-
-ID: $(am__tagged_files)
-	$(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	set x; \
-	here=`pwd`; \
-	$(am__define_uniq_tagged_files); \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	$(am__define_uniq_tagged_files); \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
-	list='$(am__tagged_files)'; \
-	case "$(srcdir)" in \
-	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-	  *) sdir=$(subdir)/$(srcdir) ;; \
-	esac; \
-	for i in $$list; do \
-	  if test -f "$$i"; then \
-	    echo "$(subdir)/$$i"; \
-	  else \
-	    echo "$$sdir/$$i"; \
-	  fi; \
-	done >> $(top_builddir)/cscope.files
-
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-# Recover from deleted '.trs' file; this should ensure that
-# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
-# both 'foo.log' and 'foo.trs'.  Break the recipe in two subshells
-# to avoid problems with "make -n".
-.log.trs:
-	rm -f $< $@
-	$(MAKE) $(AM_MAKEFLAGS) $<
-
-# Leading 'am--fnord' is there to ensure the list of targets does not
-# expand to empty, as could happen e.g. with make check TESTS=''.
-am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
-am--force-recheck:
-	@:
-
-$(TEST_SUITE_LOG): $(TEST_LOGS)
-	@$(am__set_TESTS_bases); \
-	am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
-	redo_bases=`for i in $$bases; do \
-	              am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
-	            done`; \
-	if test -n "$$redo_bases"; then \
-	  redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
-	  redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
-	  if $(am__make_dryrun); then :; else \
-	    rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
-	  fi; \
-	fi; \
-	if test -n "$$am__remaking_logs"; then \
-	  echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
-	       "recursion detected" >&2; \
-	else \
-	  am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
-	fi; \
-	if $(am__make_dryrun); then :; else \
-	  st=0;  \
-	  errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
-	  for i in $$redo_bases; do \
-	    test -f $$i.trs && test -r $$i.trs \
-	      || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
-	    test -f $$i.log && test -r $$i.log \
-	      || { echo "$$errmsg $$i.log" >&2; st=1; }; \
-	  done; \
-	  test $$st -eq 0 || exit 1; \
-	fi
-	@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
-	ws='[ 	]'; \
-	results=`for b in $$bases; do echo $$b.trs; done`; \
-	test -n "$$results" || results=/dev/null; \
-	all=`  grep "^$$ws*:test-result:"           $$results | wc -l`; \
-	pass=` grep "^$$ws*:test-result:$$ws*PASS"  $$results | wc -l`; \
-	fail=` grep "^$$ws*:test-result:$$ws*FAIL"  $$results | wc -l`; \
-	skip=` grep "^$$ws*:test-result:$$ws*SKIP"  $$results | wc -l`; \
-	xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
-	xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
-	error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
-	if test `expr $$fail + $$xpass + $$error` -eq 0; then \
-	  success=true; \
-	else \
-	  success=false; \
-	fi; \
-	br='==================='; br=$$br$$br$$br$$br; \
-	result_count () \
-	{ \
-	    if test x"$$1" = x"--maybe-color"; then \
-	      maybe_colorize=yes; \
-	    elif test x"$$1" = x"--no-color"; then \
-	      maybe_colorize=no; \
-	    else \
-	      echo "$@: invalid 'result_count' usage" >&2; exit 4; \
-	    fi; \
-	    shift; \
-	    desc=$$1 count=$$2; \
-	    if test $$maybe_colorize = yes && test $$count -gt 0; then \
-	      color_start=$$3 color_end=$$std; \
-	    else \
-	      color_start= color_end=; \
-	    fi; \
-	    echo "$${color_start}# $$desc $$count$${color_end}"; \
-	}; \
-	create_testsuite_report () \
-	{ \
-	  result_count $$1 "TOTAL:" $$all   "$$brg"; \
-	  result_count $$1 "PASS: " $$pass  "$$grn"; \
-	  result_count $$1 "SKIP: " $$skip  "$$blu"; \
-	  result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
-	  result_count $$1 "FAIL: " $$fail  "$$red"; \
-	  result_count $$1 "XPASS:" $$xpass "$$red"; \
-	  result_count $$1 "ERROR:" $$error "$$mgn"; \
-	}; \
-	{								\
-	  echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" |	\
-	    $(am__rst_title);						\
-	  create_testsuite_report --no-color;				\
-	  echo;								\
-	  echo ".. contents:: :depth: 2";				\
-	  echo;								\
-	  for b in $$bases; do echo $$b; done				\
-	    | $(am__create_global_log);					\
-	} >$(TEST_SUITE_LOG).tmp || exit 1;				\
-	mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG);			\
-	if $$success; then						\
-	  col="$$grn";							\
-	 else								\
-	  col="$$red";							\
-	  test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG);		\
-	fi;								\
-	echo "$${col}$$br$${std}"; 					\
-	echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}";	\
-	echo "$${col}$$br$${std}"; 					\
-	create_testsuite_report --maybe-color;				\
-	echo "$$col$$br$$std";						\
-	if $$success; then :; else					\
-	  echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}";		\
-	  if test -n "$(PACKAGE_BUGREPORT)"; then			\
-	    echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}";	\
-	  fi;								\
-	  echo "$$col$$br$$std";					\
-	fi;								\
-	$$success || exit 1
-
-check-TESTS:
-	@list='$(RECHECK_LOGS)';           test -z "$$list" || rm -f $$list
-	@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
-	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-	@set +e; $(am__set_TESTS_bases); \
-	log_list=`for i in $$bases; do echo $$i.log; done`; \
-	trs_list=`for i in $$bases; do echo $$i.trs; done`; \
-	log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
-	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
-	exit $$?;
-recheck: all $(check_LIBRARIES) $(check_PROGRAMS)
-	@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-	@set +e; $(am__set_TESTS_bases); \
-	bases=`for i in $$bases; do echo $$i; done \
-	         | $(am__list_recheck_tests)` || exit 1; \
-	log_list=`for i in $$bases; do echo $$i.log; done`; \
-	log_list=`echo $$log_list`; \
-	$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
-	        am__force_recheck=am--force-recheck \
-	        TEST_LOGS="$$log_list"; \
-	exit $$?
-.test.log:
-	@p='$<'; \
-	$(am__set_b); \
-	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
-	--log-file $$b.log --trs-file $$b.trs \
-	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
-	"$$tst" $(AM_TESTS_FD_REDIRECT)
-#.test$(EXEEXT).log:
-#	@p='$<'; \
-#	$(am__set_b); \
-#	$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
-#	--log-file $$b.log --trs-file $$b.trs \
-#	$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
-#	"$$tst" $(AM_TESTS_FD_REDIRECT)
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d "$(distdir)/$$file"; then \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
-	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
-	    fi; \
-	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
-	  else \
-	    test -f "$(distdir)/$$file" \
-	    || cp -p $$d/$$file "$(distdir)/$$file" \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-	$(MAKE) $(AM_MAKEFLAGS) $(check_LIBRARIES) $(check_PROGRAMS)
-	$(MAKE) $(AM_MAKEFLAGS) check-TESTS
-check: check-am
-all-am: Makefile
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	if test -z '$(STRIP)'; then \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	      install; \
-	else \
-	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-	fi
-mostlyclean-generic:
-	-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
-	-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
-	-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
-
-clean-generic:
-	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-check-valgrind: check-valgrind-am
-
-check-valgrind-am: check-valgrind-local
-
-clean: clean-am
-
-clean-am: clean-checkLIBRARIES clean-checkPROGRAMS clean-generic \
-	clean-local mostlyclean-am
-
-distclean: distclean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -rf ./$(DEPDIR)
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: check-am install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am \
-	check-valgrind-am check-valgrind-local clean \
-	clean-checkLIBRARIES clean-checkPROGRAMS clean-generic \
-	clean-local cscopelist-am ctags ctags-am distclean \
-	distclean-compile distclean-generic distclean-tags distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic pdf pdf-am ps ps-am recheck tags tags-am \
-	uninstall uninstall-am
-
-
-$(srcdir)/_newselect.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/accept.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/accept4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/access.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/acct.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/add_key.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/adjtimex.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/aio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/alarm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/bpf.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/btrfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/chmod.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/chown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/chown32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/chroot.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/clock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/clock_adjtime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/clock_nanosleep.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/clock_xettime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/copy_file_range.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/creat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/delete_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/dup.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/dup2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/dup3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/epoll_create.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/epoll_create1.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/epoll_ctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/epoll_pwait.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/epoll_wait.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/erestartsys.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/execveat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/execveat-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/faccessat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fadvise64_64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fallocate.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fanotify_init.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fanotify_mark.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fchdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fchmod.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fchmodat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fchown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fchown32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fchownat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fcntl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fcntl64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fdatasync.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/file_handle.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/file_ioctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/finit_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/flock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fork-f.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fstat64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fstatat64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fstatfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fstatfs64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/fsync.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ftruncate.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ftruncate64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/futimesat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/get_mempolicy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getcpu.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getcwd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getdents.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getdents64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getegid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getegid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/geteuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/geteuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getgroups.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getgroups32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getpeername.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getpgrp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getpid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getppid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getrandom.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getresgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getresgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getresuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getresuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getrlimit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getrusage.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getsid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getsockname.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/gettid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/getxxid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/inet-cmsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/init_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/inotify.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/inotify_init1.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/int_0x80.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_block.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_evdev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_evdev-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_loop.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_loop-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_mtd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_rtc.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_rtc-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_scsi.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_sg_io_v3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_sg_io_v4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_uffdio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioctl_v4l2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioperm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/iopl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ioprio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ip_mreq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ipc.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ipc_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ipc_sem.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ipc_shm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/kcmp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/kexec_file_load.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/kexec_load.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/keyctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/kill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/lchown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/lchown32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/link.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/linkat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/lookup_dcookie.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/lstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/lstat64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/madvise.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mbind.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/membarrier.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/memfd_create.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/migrate_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mincore.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mkdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mkdirat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mknod.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mknodat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mlock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mlock2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mlockall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mmap64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mmsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mmsg-silent.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mmsg_name.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mmsg_name-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mount.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/move_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mq_sendrecv.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mq_sendrecv-read.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/mq_sendrecv-write.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/msg_control.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/msg_control-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/msg_name.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/munlockall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/nanosleep.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/net-icmp_filter.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/net-sockaddr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/netlink_protocol.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/newfstatat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/old_mmap.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/oldfstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/oldlstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/oldstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/open.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/openat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/osf_utimes.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/pause.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/perf_event_open.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/perf_event_open_nonverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/perf_event_open_unabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/pipe2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/pkey_alloc.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/pkey_free.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/pkey_mprotect.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ppoll.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ppoll-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/pread64-pwrite64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/preadv.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/preadv-pwritev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/preadv2-pwritev2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/printstr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/prlimit64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/process_vm_readv.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/process_vm_writev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/pselect6.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ptrace.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/pwritev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/quotactl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/quotactl-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/quotactl-xfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/quotactl-xfs-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/read-write.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/readahead.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/readdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/readlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/readlinkat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/reboot.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/recvfrom.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/recvmmsg-timeout.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/recvmsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/regex.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/remap_file_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/rename.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/renameat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/renameat2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/request_key.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/rmdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/rt_sigpending.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/rt_sigprocmask.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/rt_sigqueueinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/rt_sigreturn.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/rt_sigsuspend.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/rt_sigtimedwait.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/rt_tgsigqueueinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sched.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sched_get_priority_mxx.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sched_rr_get_interval.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sched_xetaffinity.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sched_xetattr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sched_xetparam.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sched_xetscheduler.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sched_yield.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/seccomp-filter.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/seccomp-filter-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/select.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/semop.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sendfile.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sendfile64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/set_mempolicy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setdomainname.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setfsgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setfsgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setfsuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setfsuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setgroups.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setgroups32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sethostname.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setregid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setregid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setresgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setresgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setresuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setresuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setreuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setreuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setrlimit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/setuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/shmxt.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/shutdown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/siginfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/signal_receive.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/signalfd4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sigreturn.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sigsuspend.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/socketcall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/splice.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/stat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/stat64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/statfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/statfs64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/statx.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/swap.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sxetmask.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/symlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/symlinkat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sync.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sync_file_range.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sync_file_range2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/sysinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/syslog.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/tee.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/time.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/timer_create.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/timer_xettime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/timerfd_xettime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/times.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/times-fail.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/trace_fstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/trace_fstatfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/trace_lstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/trace_question.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/trace_stat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/trace_stat_like.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/trace_statfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/trace_statfs_like.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/truncate.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/truncate64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ugetrlimit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/umask.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/umoven-illptr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/umovestr-illptr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/umovestr3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/unlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/unlinkat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/unshare.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/userfaultfd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/ustat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/utime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/utimensat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/utimes.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/vfork-f.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/vhangup.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/vmsplice.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/wait4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/wait4-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/waitid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/waitid-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/waitpid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/xattr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/xattr-strings.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/xet_robust_list.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/xetitimer.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/xetpgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/xetpriority.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-$(srcdir)/xettimeofday.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
-	$(AM_V_GEN) $^ $@
-
-
-# Valgrind check
-#
-# Optional:
-#  - VALGRIND_SUPPRESSIONS_FILES: Space-separated list of Valgrind suppressions
-#    files to load. (Default: empty)
-#  - VALGRIND_FLAGS: General flags to pass to all Valgrind tools.
-#    (Default: --num-callers=30)
-#  - VALGRIND_$toolname_FLAGS: Flags to pass to Valgrind $toolname (one of:
-#    memcheck, helgrind, drd, sgcheck). (Default: various)
-
-# Optional variables
-VALGRIND_SUPPRESSIONS ?= $(addprefix --suppressions=,$(VALGRIND_SUPPRESSIONS_FILES))
-VALGRIND_FLAGS ?= --num-callers=30
-VALGRIND_memcheck_FLAGS ?= --leak-check=full --show-reachable=no
-VALGRIND_helgrind_FLAGS ?= --history-level=approx
-VALGRIND_drd_FLAGS ?=
-VALGRIND_sgcheck_FLAGS ?=
-
-# Internal use
-valgrind_log_files = $(addprefix test-suite-,$(addsuffix .log,$(valgrind_tools)))
-
-valgrind_memcheck_flags = --tool=memcheck $(VALGRIND_memcheck_FLAGS)
-valgrind_helgrind_flags = --tool=helgrind $(VALGRIND_helgrind_FLAGS)
-valgrind_drd_flags = --tool=drd $(VALGRIND_drd_FLAGS)
-valgrind_sgcheck_flags = --tool=exp-sgcheck $(VALGRIND_sgcheck_FLAGS)
-
-valgrind_quiet = $(valgrind_quiet_$(V))
-valgrind_quiet_ = $(valgrind_quiet_$(AM_DEFAULT_VERBOSITY))
-valgrind_quiet_0 = --quiet
-valgrind_v_use   = $(valgrind_v_use_$(V))
-valgrind_v_use_  = $(valgrind_v_use_$(AM_DEFAULT_VERBOSITY))
-valgrind_v_use_0 = @echo "  USE   " $(patsubst check-valgrind-%,%,$@):;
-
-# Support running with and without libtool.
-ifneq ($(LIBTOOL),)
-valgrind_lt = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=execute
-else
-valgrind_lt =
-endif
-
-# Use recursive makes in order to ignore errors during check
-check-valgrind:
-ifeq ($(VALGRIND_ENABLED),yes)
-	-$(AM_V_at)$(foreach tool,$(valgrind_enabled_tools), \
-		$(MAKE) $(AM_MAKEFLAGS) -k check-valgrind-$(tool); \
-	)
-else
-	@echo "Need to reconfigure with --enable-valgrind"
-endif
-
-# Valgrind running
-VALGRIND_TESTS_ENVIRONMENT = \
-	$(TESTS_ENVIRONMENT) \
-	env VALGRIND=$(VALGRIND) \
-	G_SLICE=always-malloc,debug-blocks \
-	G_DEBUG=fatal-warnings,fatal-criticals,gc-friendly
-
-VALGRIND_LOG_COMPILER = \
-	$(valgrind_lt) \
-	$(VALGRIND) $(VALGRIND_SUPPRESSIONS) --error-exitcode=1 $(VALGRIND_FLAGS)
-
-define valgrind_tool_rule =
-check-valgrind-$(1): $$(BUILT_SOURCES)
-ifeq ($$(VALGRIND_ENABLED)-$$(ENABLE_VALGRIND_$(1)),yes-yes)
-	$$(valgrind_v_use)$$(MAKE) $$(AM_MAKEFLAGS) check-am \
-		TESTS_ENVIRONMENT="$$(VALGRIND_TESTS_ENVIRONMENT)" \
-		LOG_COMPILER="$$(VALGRIND_LOG_COMPILER)" \
-		LOG_FLAGS="$$(valgrind_$(1)_flags)" \
-		TEST_SUITE_LOG=test-suite-$(1).log
-else ifeq ($$(VALGRIND_ENABLED),yes)
-	@echo "Need to reconfigure with --enable-valgrind-$(1)"
-else
-	@echo "Need to reconfigure with --enable-valgrind"
-endif
-endef
-
-$(foreach tool,$(valgrind_tools),$(eval $(call valgrind_tool_rule,$(tool))))
-
-AM_DISTCHECK_CONFIGURE_FLAGS ?=
-AM_DISTCHECK_CONFIGURE_FLAGS += --disable-valgrind
-
-MOSTLYCLEANFILES ?=
-MOSTLYCLEANFILES += $(valgrind_log_files)
-
-.PHONY: check-valgrind $(add-prefix check-valgrind-,$(valgrind_tools))
-
-
-ksysent.h: $(srcdir)/ksysent.sed
-	echo '#include <asm/unistd.h>' | \
-		$(CPP) $(AM_CPPFLAGS) $(CPPFLAGS) -dM - > $@.t1
-	LC_COLLATE=C sed -r -n -f $(srcdir)/ksysent.sed < $@.t1 > $@.t2
-	mv -f $@.t2 $@
-	rm -f $@.t1
-
-ksysent.$(OBJEXT): ksysent.h
-$(objects): scno.h
-
-clean-local: clean-local-check
-.PHONY: clean-local-check
-clean-local-check:
-	-rm -rf -- $(TESTS:.test=.dir) $(GEN_TESTS:.gen.test=.dir)
-
-syscallent.i: $(top_srcdir)/$(OS)/$(ARCH)/syscallent.h
-	$(CPP) -P $(SCNO_CPPFLAGS) $^ -o $@
-
-scno.h: $(top_srcdir)/scno.head syscallent.i
-	echo '/* Generated by Makefile from $^; do not edit. */' > $@-t
-	cat $< >> $@-t
-	LC_ALL=C sed -n '$(SCNO_SED)' $(filter-out $<,$^) >> $@-t
-	mv $@-t $@
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/tests/Makefile.am b/tests/Makefile.am
new file mode 100644
index 0000000..19b7400
--- /dev/null
+++ b/tests/Makefile.am
@@ -0,0 +1,390 @@
+# Automake input for strace tests.
+#
+# Copyright (c) 2011-2016 Dmitry V. Levin <ldv@altlinux.org>
+# Copyright (c) 2011-2017 The strace developers.
+# 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.
+
+OS = linux
+ARCH = @arch@
+MPERS_NAME =
+ARCH_MFLAGS =
+AM_CFLAGS = $(WARN_CFLAGS)
+AM_CPPFLAGS = $(ARCH_MFLAGS) \
+	      -I$(builddir) \
+	      -I$(top_builddir)/$(OS)/$(ARCH) \
+	      -I$(top_srcdir)/$(OS)/$(ARCH) \
+	      -I$(top_builddir)/$(OS) \
+	      -I$(top_srcdir)/$(OS) \
+	      -I$(top_builddir) \
+	      -I$(top_srcdir)
+AM_LDFLAGS = $(ARCH_MFLAGS)
+
+libtests_a_SOURCES = \
+	create_nl_socket.c \
+	errno2name.c \
+	error_msg.c \
+	fill_memory.c \
+	get_page_size.c \
+	get_sigset_size.c \
+	hexdump_strdup.c \
+	hexquote_strndup.c \
+	inode_of_sockfd.c \
+	libmmsg.c \
+	libsocketcall.c \
+	overflowuid.c \
+	pipe_maxfd.c \
+	print_quoted_string.c \
+	print_time.c \
+	printflags.c \
+	printxval.c \
+	signal2name.c \
+	skip_unavailable.c \
+	sprintrc.c \
+	tail_alloc.c \
+	test_nlattr.h \
+	tests.h \
+	tprintf.c \
+	# end of libtests_a_SOURCES
+libtests_a_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+check_LIBRARIES = libtests.a
+LDADD = libtests.a
+
+include pure_executables.am
+
+check_PROGRAMS = $(PURE_EXECUTABLES) \
+	answer \
+	attach-f-p \
+	attach-f-p-cmd \
+	attach-p-cmd-cmd \
+	attach-p-cmd-p \
+	block_reset_raise_run \
+	caps-abbrev \
+	count-f \
+	execve-v \
+	execveat-v \
+	filter-unavailable \
+	fork-f \
+	getpid	\
+	getppid	\
+	gettid \
+	int_0x80 \
+	ioctl_dm-v \
+	ioctl_evdev-v \
+	ioctl_loop-nv \
+	ioctl_loop-v \
+	ioctl_nsfs \
+	ioctl_rtc-v \
+	ksysent \
+	mmsg-silent \
+	mmsg_name-v \
+	msg_control-v \
+	net-accept-connect \
+	netlink_inet_diag \
+	netlink_netlink_diag \
+	netlink_unix_diag \
+	nsyscalls \
+	pc \
+	perf_event_open_nonverbose \
+	perf_event_open_unabbrev \
+	ppoll-v \
+	prctl-seccomp-filter-v \
+	prctl-seccomp-strict \
+	print_maxfd \
+	qual_fault \
+	qual_inject-error-signal \
+	qual_inject-retval \
+	qual_inject-signal \
+	qual_signal \
+	quotactl-v \
+	quotactl-xfs-v \
+	redirect-fds \
+	restart_syscall \
+	run_expect_termsig \
+	scm_rights \
+	seccomp-filter-v \
+	seccomp-strict \
+	set_ptracer_any \
+	signal_receive \
+	sleep \
+	stack-fcall \
+	threads-execve \
+	unblock_reset_raise \
+	unix-pair-send-recv \
+	unix-pair-sendto-recvfrom \
+	vfork-f \
+	wait4-v \
+	waitid-v \
+	zeroargc \
+	# end of check_PROGRAMS
+
+attach_f_p_LDADD = -lrt -lpthread $(LDADD)
+clock_xettime_LDADD = -lrt $(LDADD)
+count_f_LDADD = -lpthread $(LDADD)
+filter_unavailable_LDADD = -lpthread $(LDADD)
+fstat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+fstatat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+ftruncate64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+lstat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+mmap64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+mq_LDADD = -lrt $(LDADD)
+mq_sendrecv_LDADD = -lrt $(LDADD)
+mq_sendrecv_read_LDADD = -lrt $(LDADD)
+mq_sendrecv_write_LDADD = -lrt $(LDADD)
+newfstatat_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+pc_LDADD = $(dl_LIBS) $(LDADD)
+pread64_pwrite64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+preadv_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+preadv_pwritev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+pwritev_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+stat64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+statfs_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+threads_execve_LDADD = -lrt -lpthread $(LDADD)
+times_LDADD = -lrt $(LDADD)
+truncate64_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+uio_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+
+stack_fcall_SOURCES = stack-fcall.c \
+	stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
+
+include gen_tests.am
+
+if USE_LIBUNWIND
+LIBUNWIND_TESTS = strace-k.test
+else
+LIBUNWIND_TESTS =
+endif
+
+DECODER_TESTS = \
+	brk.test \
+	btrfs-v.test \
+	btrfs-vw.test \
+	btrfs-w.test \
+	caps-abbrev.test \
+	caps.test \
+	eventfd.test \
+	execve-v.test \
+	execve.test \
+	fadvise64.test \
+	futex.test \
+	getuid.test \
+	ioctl.test \
+	ioctl_dm-v.test \
+	ioctl_dm.test \
+	ioctl_loop-nv.test \
+	ioctl_nsfs.test \
+	ioctl_sock_gifconf.test \
+	ipc_msgbuf.test \
+	llseek.test \
+	lseek.test \
+	mmap.test \
+	net-y-unix.test \
+	net-yy-inet.test \
+	net-yy-netlink.test \
+	net-yy-unix.test \
+	net.test \
+	netlink_sock_diag.test \
+	nsyscalls.test \
+	oldselect.test \
+	personality.test \
+	pipe.test \
+	poll.test \
+	prctl-arg2-intptr.test \
+	prctl-dumpable.test \
+	prctl-name.test \
+	prctl-no-args.test \
+	prctl-pdeathsig.test \
+	prctl-seccomp-filter-v.test \
+	prctl-seccomp-strict.test \
+	prctl-securebits.test \
+	prctl-tid_address.test \
+	prctl-tsc.test \
+	qual_fault-exit_group.test \
+	readv.test \
+	rt_sigaction.test \
+	scm_rights-fd.test \
+	seccomp-strict.test \
+	sigaltstack.test \
+	sun_path.test \
+	uio.test \
+	umount.test \
+	umount2.test \
+	umovestr.test \
+	umovestr2.test \
+	uname.test \
+	unix-pair-send-recv.test \
+	unix-pair-sendto-recvfrom.test \
+	# end of DECODER_TESTS
+
+MISC_TESTS = \
+	attach-f-p.test \
+	attach-p-cmd.test \
+	bexecve.test \
+	count-f.test \
+	count.test \
+	detach-running.test \
+	detach-sleeping.test \
+	detach-stopped.test \
+	filter-unavailable.test \
+	get_regs.test \
+	interactive_block.test \
+	ksysent.test \
+	opipe.test \
+	options-syntax.test \
+	pc.test \
+	qual_fault-syntax.test \
+	qual_fault.test \
+	qual_inject-error-signal.test \
+	qual_inject-retval.test \
+	qual_inject-signal.test \
+	qual_inject-syntax.test \
+	qual_signal.test \
+	qual_syscall.test \
+	redirect-fds.test \
+	redirect.test \
+	restart_syscall.test \
+	strace-C.test \
+	strace-E.test \
+	strace-S.test \
+	strace-T.test \
+	strace-V.test \
+	strace-ff.test \
+	strace-r.test \
+	strace-t.test \
+	strace-tt.test \
+	strace-ttt.test \
+	termsig.test \
+	threads-execve.test \
+	# end of MISC_TESTS
+
+TESTS = $(GEN_TESTS) $(DECODER_TESTS) $(MISC_TESTS) $(LIBUNWIND_TESTS)
+
+XFAIL_TESTS_ =
+XFAIL_TESTS_m32 = $(LIBUNWIND_TESTS)
+XFAIL_TESTS_mx32 = $(LIBUNWIND_TESTS)
+XFAIL_TESTS_x86_64 = int_0x80.gen.test
+XFAIL_TESTS_x32 = int_0x80.gen.test
+XFAIL_TESTS = $(XFAIL_TESTS_$(MPERS_NAME)) $(XFAIL_TESTS_$(ARCH))
+
+TEST_LOG_COMPILER = env
+AM_TEST_LOG_FLAGS = STRACE_ARCH=$(ARCH) MIPS_ABI=$(MIPS_ABI) $(srcdir)/run.sh
+
+@VALGRIND_CHECK_RULES@
+VALGRIND_FLAGS = --quiet
+VALGRIND_SUPPRESSIONS_FILES = $(srcdir)/strace.supp
+
+EXTRA_DIST = \
+	caps-abbrev.awk \
+	caps.awk \
+	clock.in \
+	count-f.expected \
+	eventfd.expected \
+	fadvise.h \
+	filter-unavailable.expected \
+	fstatat.c \
+	fstatx.c \
+	gen_pure_executables.sh \
+	gen_tests.in \
+	gen_tests.sh \
+	getresugid.c \
+	init.sh \
+	init_delete_module.h \
+	ioctl-v.sh \
+	ipc.sh \
+	ipc_msgbuf.expected \
+	ksysent.sed \
+	lstatx.c \
+	match.awk \
+	net.expected \
+	oldselect.expected \
+	pipe.expected \
+	process_vm_readv_writev.c \
+	pure_executables.list \
+	qual_fault-exit_group.expected \
+	qual_inject-error-signal.expected \
+	qual_inject-signal.expected \
+	quotactl.h \
+	regex.in \
+	rt_sigaction.awk \
+	run.sh \
+	sched.in \
+	scno_tampering.sh \
+	setfsugid.c \
+	setresugid.c \
+	setreugid.c \
+	setugid.c \
+	sigaltstack.expected \
+	sockname.c \
+	strace-C.expected \
+	strace-E.expected \
+	strace-T.expected \
+	strace-ff.expected \
+	strace-k.test \
+	strace-r.expected \
+	strace.supp \
+	struct_flock.c \
+	sun_path.expected \
+	trace_fstat.in \
+	trace_fstatfs.in \
+	trace_lstat.in \
+	trace_question.in \
+	trace_stat.in \
+	trace_stat_like.in \
+	trace_statfs.in \
+	trace_statfs_like.in \
+	uio.expected \
+	umode_t.c \
+	umovestr.expected \
+	unix-pair-send-recv.expected \
+	unix-pair-sendto-recvfrom.expected \
+	xchownx.c \
+	xgetrlimit.c \
+	xselect.c \
+	xstatfs.c \
+	xstatfs64.c \
+	xstatfsx.c \
+	xstatx.c \
+	xutimes.c \
+	$(TESTS)
+
+ksysent.h: $(srcdir)/ksysent.sed
+	echo '#include <asm/unistd.h>' | \
+		$(CPP) $(AM_CPPFLAGS) $(CPPFLAGS) -dM - > $@.t1
+	LC_COLLATE=C sed -r -n -f $(srcdir)/ksysent.sed < $@.t1 > $@.t2
+	mv -f $@.t2 $@
+	rm -f $@.t1
+
+ksysent.$(OBJEXT): ksysent.h
+
+objects = $(filter %.$(OBJEXT),$(SOURCES:.c=.$(OBJEXT)))
+$(objects): scno.h
+
+clean-local: clean-local-check
+.PHONY: clean-local-check
+clean-local-check:
+	-rm -rf -- $(TESTS:.test=.dir) $(GEN_TESTS:.gen.test=.dir)
+
+CLEANFILES = ksysent.h
+
+include ../scno.am
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 4a51782..f29c87b 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -138,14 +138,14 @@
 	$(top_srcdir)/test-driver
 check_PROGRAMS = $(am__EXEEXT_1) answer$(EXEEXT) attach-f-p$(EXEEXT) \
 	attach-f-p-cmd$(EXEEXT) attach-p-cmd-cmd$(EXEEXT) \
-	attach-p-cmd-p$(EXEEXT) caps-abbrev$(EXEEXT) count-f$(EXEEXT) \
-	execve-v$(EXEEXT) execveat-v$(EXEEXT) \
-	filter-unavailable$(EXEEXT) fork-f$(EXEEXT) getpid$(EXEEXT) \
-	getppid$(EXEEXT) gettid$(EXEEXT) int_0x80$(EXEEXT) \
-	ioctl_dm-v$(EXEEXT) ioctl_evdev-v$(EXEEXT) \
-	ioctl_loop-nv$(EXEEXT) ioctl_loop-v$(EXEEXT) \
-	ioctl_nsfs$(EXEEXT) ioctl_rtc-v$(EXEEXT) ksysent$(EXEEXT) \
-	mmsg-silent$(EXEEXT) mmsg_name-v$(EXEEXT) \
+	attach-p-cmd-p$(EXEEXT) block_reset_raise_run$(EXEEXT) \
+	caps-abbrev$(EXEEXT) count-f$(EXEEXT) execve-v$(EXEEXT) \
+	execveat-v$(EXEEXT) filter-unavailable$(EXEEXT) \
+	fork-f$(EXEEXT) getpid$(EXEEXT) getppid$(EXEEXT) \
+	gettid$(EXEEXT) int_0x80$(EXEEXT) ioctl_dm-v$(EXEEXT) \
+	ioctl_evdev-v$(EXEEXT) ioctl_loop-nv$(EXEEXT) \
+	ioctl_loop-v$(EXEEXT) ioctl_nsfs$(EXEEXT) ioctl_rtc-v$(EXEEXT) \
+	ksysent$(EXEEXT) mmsg-silent$(EXEEXT) mmsg_name-v$(EXEEXT) \
 	msg_control-v$(EXEEXT) net-accept-connect$(EXEEXT) \
 	netlink_inet_diag$(EXEEXT) netlink_netlink_diag$(EXEEXT) \
 	netlink_unix_diag$(EXEEXT) nsyscalls$(EXEEXT) pc$(EXEEXT) \
@@ -157,12 +157,13 @@
 	qual_inject-signal$(EXEEXT) qual_signal$(EXEEXT) \
 	quotactl-v$(EXEEXT) quotactl-xfs-v$(EXEEXT) \
 	redirect-fds$(EXEEXT) restart_syscall$(EXEEXT) \
-	scm_rights$(EXEEXT) seccomp-filter-v$(EXEEXT) \
-	seccomp-strict$(EXEEXT) set_ptracer_any$(EXEEXT) \
-	signal_receive$(EXEEXT) sleep$(EXEEXT) stack-fcall$(EXEEXT) \
-	threads-execve$(EXEEXT) unix-pair-send-recv$(EXEEXT) \
+	run_expect_termsig$(EXEEXT) scm_rights$(EXEEXT) \
+	seccomp-filter-v$(EXEEXT) seccomp-strict$(EXEEXT) \
+	set_ptracer_any$(EXEEXT) signal_receive$(EXEEXT) \
+	sleep$(EXEEXT) stack-fcall$(EXEEXT) threads-execve$(EXEEXT) \
+	unblock_reset_raise$(EXEEXT) unix-pair-send-recv$(EXEEXT) \
 	unix-pair-sendto-recvfrom$(EXEEXT) vfork-f$(EXEEXT) \
-	wait4-v$(EXEEXT) waitid-v$(EXEEXT)
+	wait4-v$(EXEEXT) waitid-v$(EXEEXT) zeroargc$(EXEEXT)
 TESTS = $(GEN_TESTS) $(DECODER_TESTS) $(MISC_TESTS) $(am__EXEEXT_2)
 subdir = tests
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -187,8 +188,8 @@
 am__v_AR_1 = 
 libtests_a_AR = $(AR) $(ARFLAGS)
 libtests_a_LIBADD =
-am_libtests_a_OBJECTS = libtests_a-errno2name.$(OBJEXT) \
-	libtests_a-error_msg.$(OBJEXT) \
+am_libtests_a_OBJECTS = libtests_a-create_nl_socket.$(OBJEXT) \
+	libtests_a-errno2name.$(OBJEXT) libtests_a-error_msg.$(OBJEXT) \
 	libtests_a-fill_memory.$(OBJEXT) \
 	libtests_a-get_page_size.$(OBJEXT) \
 	libtests_a-get_sigset_size.$(OBJEXT) \
@@ -264,18 +265,23 @@
 	net-icmp_filter$(EXEEXT) net-sockaddr$(EXEEXT) \
 	net-y-unix$(EXEEXT) net-yy-inet$(EXEEXT) \
 	net-yy-netlink$(EXEEXT) net-yy-unix$(EXEEXT) \
-	netlink_protocol$(EXEEXT) newfstatat$(EXEEXT) \
-	old_mmap$(EXEEXT) oldfstat$(EXEEXT) oldlstat$(EXEEXT) \
-	oldselect$(EXEEXT) oldstat$(EXEEXT) open$(EXEEXT) \
-	openat$(EXEEXT) osf_utimes$(EXEEXT) pause$(EXEEXT) \
-	perf_event_open$(EXEEXT) personality$(EXEEXT) pipe$(EXEEXT) \
-	pipe2$(EXEEXT) pkey_alloc$(EXEEXT) pkey_free$(EXEEXT) \
-	pkey_mprotect$(EXEEXT) poll$(EXEEXT) ppoll$(EXEEXT) \
-	prctl-arg2-intptr$(EXEEXT) prctl-dumpable$(EXEEXT) \
-	prctl-name$(EXEEXT) prctl-no-args$(EXEEXT) \
-	prctl-pdeathsig$(EXEEXT) prctl-securebits$(EXEEXT) \
-	prctl-tid_address$(EXEEXT) prctl-tsc$(EXEEXT) \
-	pread64-pwrite64$(EXEEXT) preadv$(EXEEXT) \
+	netlink_audit$(EXEEXT) netlink_generic$(EXEEXT) \
+	netlink_netfilter$(EXEEXT) netlink_protocol$(EXEEXT) \
+	netlink_route$(EXEEXT) netlink_selinux$(EXEEXT) \
+	netlink_sock_diag$(EXEEXT) netlink_xfrm$(EXEEXT) \
+	newfstatat$(EXEEXT) nlattr$(EXEEXT) \
+	nlattr_inet_diag_msg$(EXEEXT) nlattr_netlink_diag_msg$(EXEEXT) \
+	nlattr_unix_diag_msg$(EXEEXT) old_mmap$(EXEEXT) \
+	oldfstat$(EXEEXT) oldlstat$(EXEEXT) oldselect$(EXEEXT) \
+	oldstat$(EXEEXT) open$(EXEEXT) openat$(EXEEXT) \
+	osf_utimes$(EXEEXT) pause$(EXEEXT) perf_event_open$(EXEEXT) \
+	personality$(EXEEXT) pipe$(EXEEXT) pipe2$(EXEEXT) \
+	pkey_alloc$(EXEEXT) pkey_free$(EXEEXT) pkey_mprotect$(EXEEXT) \
+	poll$(EXEEXT) ppoll$(EXEEXT) prctl-arg2-intptr$(EXEEXT) \
+	prctl-dumpable$(EXEEXT) prctl-name$(EXEEXT) \
+	prctl-no-args$(EXEEXT) prctl-pdeathsig$(EXEEXT) \
+	prctl-securebits$(EXEEXT) prctl-tid_address$(EXEEXT) \
+	prctl-tsc$(EXEEXT) pread64-pwrite64$(EXEEXT) preadv$(EXEEXT) \
 	preadv-pwritev$(EXEEXT) preadv2-pwritev2$(EXEEXT) \
 	printstr$(EXEEXT) prlimit64$(EXEEXT) process_vm_readv$(EXEEXT) \
 	process_vm_writev$(EXEEXT) pselect6$(EXEEXT) ptrace$(EXEEXT) \
@@ -285,42 +291,43 @@
 	reboot$(EXEEXT) recvfrom$(EXEEXT) recvmmsg-timeout$(EXEEXT) \
 	recvmsg$(EXEEXT) remap_file_pages$(EXEEXT) rename$(EXEEXT) \
 	renameat$(EXEEXT) renameat2$(EXEEXT) request_key$(EXEEXT) \
-	rmdir$(EXEEXT) rt_sigpending$(EXEEXT) rt_sigprocmask$(EXEEXT) \
-	rt_sigqueueinfo$(EXEEXT) rt_sigreturn$(EXEEXT) \
-	rt_sigsuspend$(EXEEXT) rt_sigtimedwait$(EXEEXT) \
-	rt_tgsigqueueinfo$(EXEEXT) sched_get_priority_mxx$(EXEEXT) \
-	sched_rr_get_interval$(EXEEXT) sched_xetaffinity$(EXEEXT) \
-	sched_xetattr$(EXEEXT) sched_xetparam$(EXEEXT) \
-	sched_xetscheduler$(EXEEXT) sched_yield$(EXEEXT) \
-	seccomp-filter$(EXEEXT) select$(EXEEXT) semop$(EXEEXT) \
-	sendfile$(EXEEXT) sendfile64$(EXEEXT) set_mempolicy$(EXEEXT) \
-	setdomainname$(EXEEXT) setfsgid$(EXEEXT) setfsgid32$(EXEEXT) \
-	setfsuid$(EXEEXT) setfsuid32$(EXEEXT) setgid$(EXEEXT) \
-	setgid32$(EXEEXT) setgroups$(EXEEXT) setgroups32$(EXEEXT) \
-	sethostname$(EXEEXT) setns$(EXEEXT) setregid$(EXEEXT) \
-	setregid32$(EXEEXT) setresgid$(EXEEXT) setresgid32$(EXEEXT) \
-	setresuid$(EXEEXT) setresuid32$(EXEEXT) setreuid$(EXEEXT) \
-	setreuid32$(EXEEXT) setrlimit$(EXEEXT) setuid$(EXEEXT) \
-	setuid32$(EXEEXT) shmxt$(EXEEXT) shutdown$(EXEEXT) \
-	sigaction$(EXEEXT) sigaltstack$(EXEEXT) siginfo$(EXEEXT) \
-	signalfd4$(EXEEXT) sigreturn$(EXEEXT) sigsuspend$(EXEEXT) \
-	socketcall$(EXEEXT) splice$(EXEEXT) stat$(EXEEXT) \
-	stat64$(EXEEXT) statfs$(EXEEXT) statfs64$(EXEEXT) \
-	statx$(EXEEXT) swap$(EXEEXT) sxetmask$(EXEEXT) \
-	symlink$(EXEEXT) symlinkat$(EXEEXT) sync$(EXEEXT) \
-	sync_file_range$(EXEEXT) sync_file_range2$(EXEEXT) \
-	sysinfo$(EXEEXT) syslog$(EXEEXT) tee$(EXEEXT) time$(EXEEXT) \
-	timer_create$(EXEEXT) timer_xettime$(EXEEXT) \
-	timerfd_xettime$(EXEEXT) times$(EXEEXT) times-fail$(EXEEXT) \
-	truncate$(EXEEXT) truncate64$(EXEEXT) ugetrlimit$(EXEEXT) \
-	uio$(EXEEXT) umask$(EXEEXT) umount$(EXEEXT) umount2$(EXEEXT) \
-	umoven-illptr$(EXEEXT) umovestr$(EXEEXT) \
-	umovestr-illptr$(EXEEXT) umovestr2$(EXEEXT) umovestr3$(EXEEXT) \
-	uname$(EXEEXT) unlink$(EXEEXT) unlinkat$(EXEEXT) \
-	unshare$(EXEEXT) userfaultfd$(EXEEXT) ustat$(EXEEXT) \
-	utime$(EXEEXT) utimensat$(EXEEXT) utimes$(EXEEXT) \
-	vhangup$(EXEEXT) vmsplice$(EXEEXT) wait4$(EXEEXT) \
-	waitid$(EXEEXT) waitpid$(EXEEXT) xattr$(EXEEXT) \
+	rmdir$(EXEEXT) rt_sigaction$(EXEEXT) rt_sigpending$(EXEEXT) \
+	rt_sigprocmask$(EXEEXT) rt_sigqueueinfo$(EXEEXT) \
+	rt_sigreturn$(EXEEXT) rt_sigsuspend$(EXEEXT) \
+	rt_sigtimedwait$(EXEEXT) rt_tgsigqueueinfo$(EXEEXT) \
+	sched_get_priority_mxx$(EXEEXT) sched_rr_get_interval$(EXEEXT) \
+	sched_xetaffinity$(EXEEXT) sched_xetattr$(EXEEXT) \
+	sched_xetparam$(EXEEXT) sched_xetscheduler$(EXEEXT) \
+	sched_yield$(EXEEXT) seccomp-filter$(EXEEXT) select$(EXEEXT) \
+	semop$(EXEEXT) sendfile$(EXEEXT) sendfile64$(EXEEXT) \
+	set_mempolicy$(EXEEXT) setdomainname$(EXEEXT) \
+	setfsgid$(EXEEXT) setfsgid32$(EXEEXT) setfsuid$(EXEEXT) \
+	setfsuid32$(EXEEXT) setgid$(EXEEXT) setgid32$(EXEEXT) \
+	setgroups$(EXEEXT) setgroups32$(EXEEXT) sethostname$(EXEEXT) \
+	setns$(EXEEXT) setregid$(EXEEXT) setregid32$(EXEEXT) \
+	setresgid$(EXEEXT) setresgid32$(EXEEXT) setresuid$(EXEEXT) \
+	setresuid32$(EXEEXT) setreuid$(EXEEXT) setreuid32$(EXEEXT) \
+	setrlimit$(EXEEXT) setuid$(EXEEXT) setuid32$(EXEEXT) \
+	shmxt$(EXEEXT) shutdown$(EXEEXT) sigaction$(EXEEXT) \
+	sigaltstack$(EXEEXT) siginfo$(EXEEXT) signal$(EXEEXT) \
+	signalfd4$(EXEEXT) sigpending$(EXEEXT) sigprocmask$(EXEEXT) \
+	sigreturn$(EXEEXT) sigsuspend$(EXEEXT) socketcall$(EXEEXT) \
+	splice$(EXEEXT) stat$(EXEEXT) stat64$(EXEEXT) statfs$(EXEEXT) \
+	statfs64$(EXEEXT) statx$(EXEEXT) swap$(EXEEXT) \
+	sxetmask$(EXEEXT) symlink$(EXEEXT) symlinkat$(EXEEXT) \
+	sync$(EXEEXT) sync_file_range$(EXEEXT) \
+	sync_file_range2$(EXEEXT) sysinfo$(EXEEXT) syslog$(EXEEXT) \
+	tee$(EXEEXT) time$(EXEEXT) timer_create$(EXEEXT) \
+	timer_xettime$(EXEEXT) timerfd_xettime$(EXEEXT) times$(EXEEXT) \
+	times-fail$(EXEEXT) truncate$(EXEEXT) truncate64$(EXEEXT) \
+	ugetrlimit$(EXEEXT) uio$(EXEEXT) umask$(EXEEXT) \
+	umount$(EXEEXT) umount2$(EXEEXT) umoven-illptr$(EXEEXT) \
+	umovestr$(EXEEXT) umovestr-illptr$(EXEEXT) umovestr2$(EXEEXT) \
+	umovestr3$(EXEEXT) uname$(EXEEXT) unlink$(EXEEXT) \
+	unlinkat$(EXEEXT) unshare$(EXEEXT) userfaultfd$(EXEEXT) \
+	ustat$(EXEEXT) utime$(EXEEXT) utimensat$(EXEEXT) \
+	utimes$(EXEEXT) vhangup$(EXEEXT) vmsplice$(EXEEXT) \
+	wait4$(EXEEXT) waitid$(EXEEXT) waitpid$(EXEEXT) xattr$(EXEEXT) \
 	xattr-strings$(EXEEXT) xet_robust_list$(EXEEXT) \
 	xetitimer$(EXEEXT) xetpgid$(EXEEXT) xetpriority$(EXEEXT) \
 	xettimeofday$(EXEEXT)
@@ -379,6 +386,10 @@
 attach_p_cmd_p_OBJECTS = attach-p-cmd-p.$(OBJEXT)
 attach_p_cmd_p_LDADD = $(LDADD)
 attach_p_cmd_p_DEPENDENCIES = libtests.a
+block_reset_raise_run_SOURCES = block_reset_raise_run.c
+block_reset_raise_run_OBJECTS = block_reset_raise_run.$(OBJEXT)
+block_reset_raise_run_LDADD = $(LDADD)
+block_reset_raise_run_DEPENDENCIES = libtests.a
 bpf_SOURCES = bpf.c
 bpf_OBJECTS = bpf.$(OBJEXT)
 bpf_LDADD = $(LDADD)
@@ -1076,10 +1087,22 @@
 net_yy_unix_OBJECTS = net-yy-unix.$(OBJEXT)
 net_yy_unix_LDADD = $(LDADD)
 net_yy_unix_DEPENDENCIES = libtests.a
+netlink_audit_SOURCES = netlink_audit.c
+netlink_audit_OBJECTS = netlink_audit.$(OBJEXT)
+netlink_audit_LDADD = $(LDADD)
+netlink_audit_DEPENDENCIES = libtests.a
+netlink_generic_SOURCES = netlink_generic.c
+netlink_generic_OBJECTS = netlink_generic.$(OBJEXT)
+netlink_generic_LDADD = $(LDADD)
+netlink_generic_DEPENDENCIES = libtests.a
 netlink_inet_diag_SOURCES = netlink_inet_diag.c
 netlink_inet_diag_OBJECTS = netlink_inet_diag.$(OBJEXT)
 netlink_inet_diag_LDADD = $(LDADD)
 netlink_inet_diag_DEPENDENCIES = libtests.a
+netlink_netfilter_SOURCES = netlink_netfilter.c
+netlink_netfilter_OBJECTS = netlink_netfilter.$(OBJEXT)
+netlink_netfilter_LDADD = $(LDADD)
+netlink_netfilter_DEPENDENCIES = libtests.a
 netlink_netlink_diag_SOURCES = netlink_netlink_diag.c
 netlink_netlink_diag_OBJECTS = netlink_netlink_diag.$(OBJEXT)
 netlink_netlink_diag_LDADD = $(LDADD)
@@ -1088,14 +1111,46 @@
 netlink_protocol_OBJECTS = netlink_protocol.$(OBJEXT)
 netlink_protocol_LDADD = $(LDADD)
 netlink_protocol_DEPENDENCIES = libtests.a
+netlink_route_SOURCES = netlink_route.c
+netlink_route_OBJECTS = netlink_route.$(OBJEXT)
+netlink_route_LDADD = $(LDADD)
+netlink_route_DEPENDENCIES = libtests.a
+netlink_selinux_SOURCES = netlink_selinux.c
+netlink_selinux_OBJECTS = netlink_selinux.$(OBJEXT)
+netlink_selinux_LDADD = $(LDADD)
+netlink_selinux_DEPENDENCIES = libtests.a
+netlink_sock_diag_SOURCES = netlink_sock_diag.c
+netlink_sock_diag_OBJECTS = netlink_sock_diag.$(OBJEXT)
+netlink_sock_diag_LDADD = $(LDADD)
+netlink_sock_diag_DEPENDENCIES = libtests.a
 netlink_unix_diag_SOURCES = netlink_unix_diag.c
 netlink_unix_diag_OBJECTS = netlink_unix_diag.$(OBJEXT)
 netlink_unix_diag_LDADD = $(LDADD)
 netlink_unix_diag_DEPENDENCIES = libtests.a
+netlink_xfrm_SOURCES = netlink_xfrm.c
+netlink_xfrm_OBJECTS = netlink_xfrm.$(OBJEXT)
+netlink_xfrm_LDADD = $(LDADD)
+netlink_xfrm_DEPENDENCIES = libtests.a
 newfstatat_SOURCES = newfstatat.c
 newfstatat_OBJECTS = newfstatat-newfstatat.$(OBJEXT)
 newfstatat_LDADD = $(LDADD)
 newfstatat_DEPENDENCIES = libtests.a
+nlattr_SOURCES = nlattr.c
+nlattr_OBJECTS = nlattr.$(OBJEXT)
+nlattr_LDADD = $(LDADD)
+nlattr_DEPENDENCIES = libtests.a
+nlattr_inet_diag_msg_SOURCES = nlattr_inet_diag_msg.c
+nlattr_inet_diag_msg_OBJECTS = nlattr_inet_diag_msg.$(OBJEXT)
+nlattr_inet_diag_msg_LDADD = $(LDADD)
+nlattr_inet_diag_msg_DEPENDENCIES = libtests.a
+nlattr_netlink_diag_msg_SOURCES = nlattr_netlink_diag_msg.c
+nlattr_netlink_diag_msg_OBJECTS = nlattr_netlink_diag_msg.$(OBJEXT)
+nlattr_netlink_diag_msg_LDADD = $(LDADD)
+nlattr_netlink_diag_msg_DEPENDENCIES = libtests.a
+nlattr_unix_diag_msg_SOURCES = nlattr_unix_diag_msg.c
+nlattr_unix_diag_msg_OBJECTS = nlattr_unix_diag_msg.$(OBJEXT)
+nlattr_unix_diag_msg_LDADD = $(LDADD)
+nlattr_unix_diag_msg_DEPENDENCIES = libtests.a
 nsyscalls_SOURCES = nsyscalls.c
 nsyscalls_OBJECTS = nsyscalls.$(OBJEXT)
 nsyscalls_LDADD = $(LDADD)
@@ -1386,6 +1441,10 @@
 rmdir_OBJECTS = rmdir.$(OBJEXT)
 rmdir_LDADD = $(LDADD)
 rmdir_DEPENDENCIES = libtests.a
+rt_sigaction_SOURCES = rt_sigaction.c
+rt_sigaction_OBJECTS = rt_sigaction.$(OBJEXT)
+rt_sigaction_LDADD = $(LDADD)
+rt_sigaction_DEPENDENCIES = libtests.a
 rt_sigpending_SOURCES = rt_sigpending.c
 rt_sigpending_OBJECTS = rt_sigpending.$(OBJEXT)
 rt_sigpending_LDADD = $(LDADD)
@@ -1414,6 +1473,10 @@
 rt_tgsigqueueinfo_OBJECTS = rt_tgsigqueueinfo.$(OBJEXT)
 rt_tgsigqueueinfo_LDADD = $(LDADD)
 rt_tgsigqueueinfo_DEPENDENCIES = libtests.a
+run_expect_termsig_SOURCES = run_expect_termsig.c
+run_expect_termsig_OBJECTS = run_expect_termsig.$(OBJEXT)
+run_expect_termsig_LDADD = $(LDADD)
+run_expect_termsig_DEPENDENCIES = libtests.a
 sched_get_priority_mxx_SOURCES = sched_get_priority_mxx.c
 sched_get_priority_mxx_OBJECTS = sched_get_priority_mxx.$(OBJEXT)
 sched_get_priority_mxx_LDADD = $(LDADD)
@@ -1590,6 +1653,10 @@
 siginfo_OBJECTS = siginfo.$(OBJEXT)
 siginfo_LDADD = $(LDADD)
 siginfo_DEPENDENCIES = libtests.a
+signal_SOURCES = signal.c
+signal_OBJECTS = signal.$(OBJEXT)
+signal_LDADD = $(LDADD)
+signal_DEPENDENCIES = libtests.a
 signal_receive_SOURCES = signal_receive.c
 signal_receive_OBJECTS = signal_receive.$(OBJEXT)
 signal_receive_LDADD = $(LDADD)
@@ -1598,6 +1665,14 @@
 signalfd4_OBJECTS = signalfd4.$(OBJEXT)
 signalfd4_LDADD = $(LDADD)
 signalfd4_DEPENDENCIES = libtests.a
+sigpending_SOURCES = sigpending.c
+sigpending_OBJECTS = sigpending.$(OBJEXT)
+sigpending_LDADD = $(LDADD)
+sigpending_DEPENDENCIES = libtests.a
+sigprocmask_SOURCES = sigprocmask.c
+sigprocmask_OBJECTS = sigprocmask.$(OBJEXT)
+sigprocmask_LDADD = $(LDADD)
+sigprocmask_DEPENDENCIES = libtests.a
 sigreturn_SOURCES = sigreturn.c
 sigreturn_OBJECTS = sigreturn.$(OBJEXT)
 sigreturn_LDADD = $(LDADD)
@@ -1762,6 +1837,10 @@
 uname_OBJECTS = uname.$(OBJEXT)
 uname_LDADD = $(LDADD)
 uname_DEPENDENCIES = libtests.a
+unblock_reset_raise_SOURCES = unblock_reset_raise.c
+unblock_reset_raise_OBJECTS = unblock_reset_raise.$(OBJEXT)
+unblock_reset_raise_LDADD = $(LDADD)
+unblock_reset_raise_DEPENDENCIES = libtests.a
 unix_pair_send_recv_SOURCES = unix-pair-send-recv.c
 unix_pair_send_recv_OBJECTS = unix-pair-send-recv.$(OBJEXT)
 unix_pair_send_recv_LDADD = $(LDADD)
@@ -1863,6 +1942,10 @@
 xettimeofday_OBJECTS = xettimeofday.$(OBJEXT)
 xettimeofday_LDADD = $(LDADD)
 xettimeofday_DEPENDENCIES = libtests.a
+zeroargc_SOURCES = zeroargc.c
+zeroargc_OBJECTS = zeroargc.$(OBJEXT)
+zeroargc_LDADD = $(LDADD)
+zeroargc_DEPENDENCIES = libtests.a
 AM_V_P = $(am__v_P_@AM_V@)
 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
 am__v_P_0 = false
@@ -1898,47 +1981,51 @@
 SOURCES = $(libtests_a_SOURCES) _newselect.c accept.c accept4.c \
 	access.c acct.c add_key.c adjtimex.c aio.c alarm.c answer.c \
 	attach-f-p.c attach-f-p-cmd.c attach-p-cmd-cmd.c \
-	attach-p-cmd-p.c bpf.c brk.c btrfs.c caps.c caps-abbrev.c \
-	chmod.c chown.c chown32.c chroot.c clock_adjtime.c \
-	clock_nanosleep.c clock_xettime.c copy_file_range.c count-f.c \
-	creat.c delete_module.c dup.c dup2.c dup3.c epoll_create.c \
-	epoll_create1.c epoll_ctl.c epoll_pwait.c epoll_wait.c \
-	erestartsys.c eventfd.c execve.c execve-v.c execveat.c \
-	execveat-v.c faccessat.c fadvise64.c fadvise64_64.c \
-	fallocate.c fanotify_init.c fanotify_mark.c fchdir.c fchmod.c \
-	fchmodat.c fchown.c fchown32.c fchownat.c fcntl.c fcntl64.c \
-	fdatasync.c file_handle.c file_ioctl.c filter-unavailable.c \
-	finit_module.c flock.c fork-f.c fstat.c fstat64.c fstatat64.c \
-	fstatfs.c fstatfs64.c fsync.c ftruncate.c ftruncate64.c \
-	futex.c futimesat.c get_mempolicy.c getcpu.c getcwd.c \
-	getdents.c getdents64.c getegid.c getegid32.c geteuid.c \
-	geteuid32.c getgid.c getgid32.c getgroups.c getgroups32.c \
-	getpeername.c getpgrp.c getpid.c getppid.c getrandom.c \
-	getresgid.c getresgid32.c getresuid.c getresuid32.c \
-	getrlimit.c getrusage.c getsid.c getsockname.c gettid.c \
-	getuid.c getuid32.c getxxid.c inet-cmsg.c init_module.c \
-	inotify.c inotify_init1.c int_0x80.c ioctl.c ioctl_block.c \
-	ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-v.c \
-	ioctl_loop.c ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c \
-	ioctl_nsfs.c ioctl_rtc.c ioctl_rtc-v.c ioctl_scsi.c \
-	ioctl_sg_io_v3.c ioctl_sg_io_v4.c ioctl_sock_gifconf.c \
-	ioctl_uffdio.c ioctl_v4l2.c ioperm.c iopl.c ioprio.c ip_mreq.c \
-	ipc.c ipc_msg.c ipc_msgbuf.c ipc_sem.c ipc_shm.c kcmp.c \
-	kexec_file_load.c kexec_load.c keyctl.c kill.c ksysent.c \
-	lchown.c lchown32.c link.c linkat.c llseek.c lookup_dcookie.c \
-	lseek.c lstat.c lstat64.c madvise.c mbind.c membarrier.c \
-	memfd_create.c migrate_pages.c mincore.c mkdir.c mkdirat.c \
-	mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c mmap64.c \
-	mmsg.c mmsg-silent.c mmsg_name.c mmsg_name-v.c mount.c \
-	move_pages.c mq.c mq_sendrecv.c mq_sendrecv-read.c \
-	mq_sendrecv-write.c msg_control.c msg_control-v.c msg_name.c \
-	munlockall.c nanosleep.c net-accept-connect.c \
-	net-icmp_filter.c net-sockaddr.c net-y-unix.c net-yy-inet.c \
-	net-yy-netlink.c net-yy-unix.c netlink_inet_diag.c \
-	netlink_netlink_diag.c netlink_protocol.c netlink_unix_diag.c \
-	newfstatat.c nsyscalls.c old_mmap.c oldfstat.c oldlstat.c \
-	oldselect.c oldstat.c open.c openat.c osf_utimes.c pause.c \
-	pc.c perf_event_open.c perf_event_open_nonverbose.c \
+	attach-p-cmd-p.c block_reset_raise_run.c bpf.c brk.c btrfs.c \
+	caps.c caps-abbrev.c chmod.c chown.c chown32.c chroot.c \
+	clock_adjtime.c clock_nanosleep.c clock_xettime.c \
+	copy_file_range.c count-f.c creat.c delete_module.c dup.c \
+	dup2.c dup3.c epoll_create.c epoll_create1.c epoll_ctl.c \
+	epoll_pwait.c epoll_wait.c erestartsys.c eventfd.c execve.c \
+	execve-v.c execveat.c execveat-v.c faccessat.c fadvise64.c \
+	fadvise64_64.c fallocate.c fanotify_init.c fanotify_mark.c \
+	fchdir.c fchmod.c fchmodat.c fchown.c fchown32.c fchownat.c \
+	fcntl.c fcntl64.c fdatasync.c file_handle.c file_ioctl.c \
+	filter-unavailable.c finit_module.c flock.c fork-f.c fstat.c \
+	fstat64.c fstatat64.c fstatfs.c fstatfs64.c fsync.c \
+	ftruncate.c ftruncate64.c futex.c futimesat.c get_mempolicy.c \
+	getcpu.c getcwd.c getdents.c getdents64.c getegid.c \
+	getegid32.c geteuid.c geteuid32.c getgid.c getgid32.c \
+	getgroups.c getgroups32.c getpeername.c getpgrp.c getpid.c \
+	getppid.c getrandom.c getresgid.c getresgid32.c getresuid.c \
+	getresuid32.c getrlimit.c getrusage.c getsid.c getsockname.c \
+	gettid.c getuid.c getuid32.c getxxid.c inet-cmsg.c \
+	init_module.c inotify.c inotify_init1.c int_0x80.c ioctl.c \
+	ioctl_block.c ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c \
+	ioctl_evdev-v.c ioctl_loop.c ioctl_loop-nv.c ioctl_loop-v.c \
+	ioctl_mtd.c ioctl_nsfs.c ioctl_rtc.c ioctl_rtc-v.c \
+	ioctl_scsi.c ioctl_sg_io_v3.c ioctl_sg_io_v4.c \
+	ioctl_sock_gifconf.c ioctl_uffdio.c ioctl_v4l2.c ioperm.c \
+	iopl.c ioprio.c ip_mreq.c ipc.c ipc_msg.c ipc_msgbuf.c \
+	ipc_sem.c ipc_shm.c kcmp.c kexec_file_load.c kexec_load.c \
+	keyctl.c kill.c ksysent.c lchown.c lchown32.c link.c linkat.c \
+	llseek.c lookup_dcookie.c lseek.c lstat.c lstat64.c madvise.c \
+	mbind.c membarrier.c memfd_create.c migrate_pages.c mincore.c \
+	mkdir.c mkdirat.c mknod.c mknodat.c mlock.c mlock2.c \
+	mlockall.c mmap.c mmap64.c mmsg.c mmsg-silent.c mmsg_name.c \
+	mmsg_name-v.c mount.c move_pages.c mq.c mq_sendrecv.c \
+	mq_sendrecv-read.c mq_sendrecv-write.c msg_control.c \
+	msg_control-v.c msg_name.c munlockall.c nanosleep.c \
+	net-accept-connect.c net-icmp_filter.c net-sockaddr.c \
+	net-y-unix.c net-yy-inet.c net-yy-netlink.c net-yy-unix.c \
+	netlink_audit.c netlink_generic.c netlink_inet_diag.c \
+	netlink_netfilter.c netlink_netlink_diag.c netlink_protocol.c \
+	netlink_route.c netlink_selinux.c netlink_sock_diag.c \
+	netlink_unix_diag.c netlink_xfrm.c newfstatat.c nlattr.c \
+	nlattr_inet_diag_msg.c nlattr_netlink_diag_msg.c \
+	nlattr_unix_diag_msg.c nsyscalls.c old_mmap.c oldfstat.c \
+	oldlstat.c oldselect.c oldstat.c open.c openat.c osf_utimes.c \
+	pause.c pc.c perf_event_open.c perf_event_open_nonverbose.c \
 	perf_event_open_unabbrev.c personality.c pipe.c pipe2.c \
 	pkey_alloc.c pkey_free.c pkey_mprotect.c poll.c ppoll.c \
 	ppoll-v.c prctl-arg2-intptr.c prctl-dumpable.c prctl-name.c \
@@ -1954,21 +2041,22 @@
 	readv.c reboot.c recvfrom.c recvmmsg-timeout.c recvmsg.c \
 	redirect-fds.c remap_file_pages.c rename.c renameat.c \
 	renameat2.c request_key.c restart_syscall.c rmdir.c \
-	rt_sigpending.c rt_sigprocmask.c rt_sigqueueinfo.c \
-	rt_sigreturn.c rt_sigsuspend.c rt_sigtimedwait.c \
-	rt_tgsigqueueinfo.c sched_get_priority_mxx.c \
-	sched_rr_get_interval.c sched_xetaffinity.c sched_xetattr.c \
-	sched_xetparam.c sched_xetscheduler.c sched_yield.c \
-	scm_rights.c seccomp-filter.c seccomp-filter-v.c \
-	seccomp-strict.c select.c semop.c sendfile.c sendfile64.c \
-	set_mempolicy.c set_ptracer_any.c setdomainname.c setfsgid.c \
-	setfsgid32.c setfsuid.c setfsuid32.c setgid.c setgid32.c \
-	setgroups.c setgroups32.c sethostname.c setns.c setregid.c \
-	setregid32.c setresgid.c setresgid32.c setresuid.c \
-	setresuid32.c setreuid.c setreuid32.c setrlimit.c setuid.c \
-	setuid32.c shmxt.c shutdown.c sigaction.c sigaltstack.c \
-	siginfo.c signal_receive.c signalfd4.c sigreturn.c \
-	sigsuspend.c sleep.c socketcall.c splice.c \
+	rt_sigaction.c rt_sigpending.c rt_sigprocmask.c \
+	rt_sigqueueinfo.c rt_sigreturn.c rt_sigsuspend.c \
+	rt_sigtimedwait.c rt_tgsigqueueinfo.c run_expect_termsig.c \
+	sched_get_priority_mxx.c sched_rr_get_interval.c \
+	sched_xetaffinity.c sched_xetattr.c sched_xetparam.c \
+	sched_xetscheduler.c sched_yield.c scm_rights.c \
+	seccomp-filter.c seccomp-filter-v.c seccomp-strict.c select.c \
+	semop.c sendfile.c sendfile64.c set_mempolicy.c \
+	set_ptracer_any.c setdomainname.c setfsgid.c setfsgid32.c \
+	setfsuid.c setfsuid32.c setgid.c setgid32.c setgroups.c \
+	setgroups32.c sethostname.c setns.c setregid.c setregid32.c \
+	setresgid.c setresgid32.c setresuid.c setresuid32.c setreuid.c \
+	setreuid32.c setrlimit.c setuid.c setuid32.c shmxt.c \
+	shutdown.c sigaction.c sigaltstack.c siginfo.c signal.c \
+	signal_receive.c signalfd4.c sigpending.c sigprocmask.c \
+	sigreturn.c sigsuspend.c sleep.c socketcall.c splice.c \
 	$(stack_fcall_SOURCES) stat.c stat64.c statfs.c statfs64.c \
 	statx.c swap.c sxetmask.c symlink.c symlinkat.c sync.c \
 	sync_file_range.c sync_file_range2.c sysinfo.c syslog.c tee.c \
@@ -1976,56 +2064,60 @@
 	timerfd_xettime.c times.c times-fail.c truncate.c truncate64.c \
 	ugetrlimit.c uio.c umask.c umount.c umount2.c umoven-illptr.c \
 	umovestr.c umovestr-illptr.c umovestr2.c umovestr3.c uname.c \
-	unix-pair-send-recv.c unix-pair-sendto-recvfrom.c unlink.c \
-	unlinkat.c unshare.c userfaultfd.c ustat.c utime.c utimensat.c \
-	utimes.c vfork-f.c vhangup.c vmsplice.c wait4.c wait4-v.c \
-	waitid.c waitid-v.c waitpid.c xattr.c xattr-strings.c \
-	xet_robust_list.c xetitimer.c xetpgid.c xetpriority.c \
-	xettimeofday.c
+	unblock_reset_raise.c unix-pair-send-recv.c \
+	unix-pair-sendto-recvfrom.c unlink.c unlinkat.c unshare.c \
+	userfaultfd.c ustat.c utime.c utimensat.c utimes.c vfork-f.c \
+	vhangup.c vmsplice.c wait4.c wait4-v.c waitid.c waitid-v.c \
+	waitpid.c xattr.c xattr-strings.c xet_robust_list.c \
+	xetitimer.c xetpgid.c xetpriority.c xettimeofday.c zeroargc.c
 DIST_SOURCES = $(libtests_a_SOURCES) _newselect.c accept.c accept4.c \
 	access.c acct.c add_key.c adjtimex.c aio.c alarm.c answer.c \
 	attach-f-p.c attach-f-p-cmd.c attach-p-cmd-cmd.c \
-	attach-p-cmd-p.c bpf.c brk.c btrfs.c caps.c caps-abbrev.c \
-	chmod.c chown.c chown32.c chroot.c clock_adjtime.c \
-	clock_nanosleep.c clock_xettime.c copy_file_range.c count-f.c \
-	creat.c delete_module.c dup.c dup2.c dup3.c epoll_create.c \
-	epoll_create1.c epoll_ctl.c epoll_pwait.c epoll_wait.c \
-	erestartsys.c eventfd.c execve.c execve-v.c execveat.c \
-	execveat-v.c faccessat.c fadvise64.c fadvise64_64.c \
-	fallocate.c fanotify_init.c fanotify_mark.c fchdir.c fchmod.c \
-	fchmodat.c fchown.c fchown32.c fchownat.c fcntl.c fcntl64.c \
-	fdatasync.c file_handle.c file_ioctl.c filter-unavailable.c \
-	finit_module.c flock.c fork-f.c fstat.c fstat64.c fstatat64.c \
-	fstatfs.c fstatfs64.c fsync.c ftruncate.c ftruncate64.c \
-	futex.c futimesat.c get_mempolicy.c getcpu.c getcwd.c \
-	getdents.c getdents64.c getegid.c getegid32.c geteuid.c \
-	geteuid32.c getgid.c getgid32.c getgroups.c getgroups32.c \
-	getpeername.c getpgrp.c getpid.c getppid.c getrandom.c \
-	getresgid.c getresgid32.c getresuid.c getresuid32.c \
-	getrlimit.c getrusage.c getsid.c getsockname.c gettid.c \
-	getuid.c getuid32.c getxxid.c inet-cmsg.c init_module.c \
-	inotify.c inotify_init1.c int_0x80.c ioctl.c ioctl_block.c \
-	ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-v.c \
-	ioctl_loop.c ioctl_loop-nv.c ioctl_loop-v.c ioctl_mtd.c \
-	ioctl_nsfs.c ioctl_rtc.c ioctl_rtc-v.c ioctl_scsi.c \
-	ioctl_sg_io_v3.c ioctl_sg_io_v4.c ioctl_sock_gifconf.c \
-	ioctl_uffdio.c ioctl_v4l2.c ioperm.c iopl.c ioprio.c ip_mreq.c \
-	ipc.c ipc_msg.c ipc_msgbuf.c ipc_sem.c ipc_shm.c kcmp.c \
-	kexec_file_load.c kexec_load.c keyctl.c kill.c ksysent.c \
-	lchown.c lchown32.c link.c linkat.c llseek.c lookup_dcookie.c \
-	lseek.c lstat.c lstat64.c madvise.c mbind.c membarrier.c \
-	memfd_create.c migrate_pages.c mincore.c mkdir.c mkdirat.c \
-	mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c mmap64.c \
-	mmsg.c mmsg-silent.c mmsg_name.c mmsg_name-v.c mount.c \
-	move_pages.c mq.c mq_sendrecv.c mq_sendrecv-read.c \
-	mq_sendrecv-write.c msg_control.c msg_control-v.c msg_name.c \
-	munlockall.c nanosleep.c net-accept-connect.c \
-	net-icmp_filter.c net-sockaddr.c net-y-unix.c net-yy-inet.c \
-	net-yy-netlink.c net-yy-unix.c netlink_inet_diag.c \
-	netlink_netlink_diag.c netlink_protocol.c netlink_unix_diag.c \
-	newfstatat.c nsyscalls.c old_mmap.c oldfstat.c oldlstat.c \
-	oldselect.c oldstat.c open.c openat.c osf_utimes.c pause.c \
-	pc.c perf_event_open.c perf_event_open_nonverbose.c \
+	attach-p-cmd-p.c block_reset_raise_run.c bpf.c brk.c btrfs.c \
+	caps.c caps-abbrev.c chmod.c chown.c chown32.c chroot.c \
+	clock_adjtime.c clock_nanosleep.c clock_xettime.c \
+	copy_file_range.c count-f.c creat.c delete_module.c dup.c \
+	dup2.c dup3.c epoll_create.c epoll_create1.c epoll_ctl.c \
+	epoll_pwait.c epoll_wait.c erestartsys.c eventfd.c execve.c \
+	execve-v.c execveat.c execveat-v.c faccessat.c fadvise64.c \
+	fadvise64_64.c fallocate.c fanotify_init.c fanotify_mark.c \
+	fchdir.c fchmod.c fchmodat.c fchown.c fchown32.c fchownat.c \
+	fcntl.c fcntl64.c fdatasync.c file_handle.c file_ioctl.c \
+	filter-unavailable.c finit_module.c flock.c fork-f.c fstat.c \
+	fstat64.c fstatat64.c fstatfs.c fstatfs64.c fsync.c \
+	ftruncate.c ftruncate64.c futex.c futimesat.c get_mempolicy.c \
+	getcpu.c getcwd.c getdents.c getdents64.c getegid.c \
+	getegid32.c geteuid.c geteuid32.c getgid.c getgid32.c \
+	getgroups.c getgroups32.c getpeername.c getpgrp.c getpid.c \
+	getppid.c getrandom.c getresgid.c getresgid32.c getresuid.c \
+	getresuid32.c getrlimit.c getrusage.c getsid.c getsockname.c \
+	gettid.c getuid.c getuid32.c getxxid.c inet-cmsg.c \
+	init_module.c inotify.c inotify_init1.c int_0x80.c ioctl.c \
+	ioctl_block.c ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c \
+	ioctl_evdev-v.c ioctl_loop.c ioctl_loop-nv.c ioctl_loop-v.c \
+	ioctl_mtd.c ioctl_nsfs.c ioctl_rtc.c ioctl_rtc-v.c \
+	ioctl_scsi.c ioctl_sg_io_v3.c ioctl_sg_io_v4.c \
+	ioctl_sock_gifconf.c ioctl_uffdio.c ioctl_v4l2.c ioperm.c \
+	iopl.c ioprio.c ip_mreq.c ipc.c ipc_msg.c ipc_msgbuf.c \
+	ipc_sem.c ipc_shm.c kcmp.c kexec_file_load.c kexec_load.c \
+	keyctl.c kill.c ksysent.c lchown.c lchown32.c link.c linkat.c \
+	llseek.c lookup_dcookie.c lseek.c lstat.c lstat64.c madvise.c \
+	mbind.c membarrier.c memfd_create.c migrate_pages.c mincore.c \
+	mkdir.c mkdirat.c mknod.c mknodat.c mlock.c mlock2.c \
+	mlockall.c mmap.c mmap64.c mmsg.c mmsg-silent.c mmsg_name.c \
+	mmsg_name-v.c mount.c move_pages.c mq.c mq_sendrecv.c \
+	mq_sendrecv-read.c mq_sendrecv-write.c msg_control.c \
+	msg_control-v.c msg_name.c munlockall.c nanosleep.c \
+	net-accept-connect.c net-icmp_filter.c net-sockaddr.c \
+	net-y-unix.c net-yy-inet.c net-yy-netlink.c net-yy-unix.c \
+	netlink_audit.c netlink_generic.c netlink_inet_diag.c \
+	netlink_netfilter.c netlink_netlink_diag.c netlink_protocol.c \
+	netlink_route.c netlink_selinux.c netlink_sock_diag.c \
+	netlink_unix_diag.c netlink_xfrm.c newfstatat.c nlattr.c \
+	nlattr_inet_diag_msg.c nlattr_netlink_diag_msg.c \
+	nlattr_unix_diag_msg.c nsyscalls.c old_mmap.c oldfstat.c \
+	oldlstat.c oldselect.c oldstat.c open.c openat.c osf_utimes.c \
+	pause.c pc.c perf_event_open.c perf_event_open_nonverbose.c \
 	perf_event_open_unabbrev.c personality.c pipe.c pipe2.c \
 	pkey_alloc.c pkey_free.c pkey_mprotect.c poll.c ppoll.c \
 	ppoll-v.c prctl-arg2-intptr.c prctl-dumpable.c prctl-name.c \
@@ -2041,21 +2133,22 @@
 	readv.c reboot.c recvfrom.c recvmmsg-timeout.c recvmsg.c \
 	redirect-fds.c remap_file_pages.c rename.c renameat.c \
 	renameat2.c request_key.c restart_syscall.c rmdir.c \
-	rt_sigpending.c rt_sigprocmask.c rt_sigqueueinfo.c \
-	rt_sigreturn.c rt_sigsuspend.c rt_sigtimedwait.c \
-	rt_tgsigqueueinfo.c sched_get_priority_mxx.c \
-	sched_rr_get_interval.c sched_xetaffinity.c sched_xetattr.c \
-	sched_xetparam.c sched_xetscheduler.c sched_yield.c \
-	scm_rights.c seccomp-filter.c seccomp-filter-v.c \
-	seccomp-strict.c select.c semop.c sendfile.c sendfile64.c \
-	set_mempolicy.c set_ptracer_any.c setdomainname.c setfsgid.c \
-	setfsgid32.c setfsuid.c setfsuid32.c setgid.c setgid32.c \
-	setgroups.c setgroups32.c sethostname.c setns.c setregid.c \
-	setregid32.c setresgid.c setresgid32.c setresuid.c \
-	setresuid32.c setreuid.c setreuid32.c setrlimit.c setuid.c \
-	setuid32.c shmxt.c shutdown.c sigaction.c sigaltstack.c \
-	siginfo.c signal_receive.c signalfd4.c sigreturn.c \
-	sigsuspend.c sleep.c socketcall.c splice.c \
+	rt_sigaction.c rt_sigpending.c rt_sigprocmask.c \
+	rt_sigqueueinfo.c rt_sigreturn.c rt_sigsuspend.c \
+	rt_sigtimedwait.c rt_tgsigqueueinfo.c run_expect_termsig.c \
+	sched_get_priority_mxx.c sched_rr_get_interval.c \
+	sched_xetaffinity.c sched_xetattr.c sched_xetparam.c \
+	sched_xetscheduler.c sched_yield.c scm_rights.c \
+	seccomp-filter.c seccomp-filter-v.c seccomp-strict.c select.c \
+	semop.c sendfile.c sendfile64.c set_mempolicy.c \
+	set_ptracer_any.c setdomainname.c setfsgid.c setfsgid32.c \
+	setfsuid.c setfsuid32.c setgid.c setgid32.c setgroups.c \
+	setgroups32.c sethostname.c setns.c setregid.c setregid32.c \
+	setresgid.c setresgid32.c setresuid.c setresuid32.c setreuid.c \
+	setreuid32.c setrlimit.c setuid.c setuid32.c shmxt.c \
+	shutdown.c sigaction.c sigaltstack.c siginfo.c signal.c \
+	signal_receive.c signalfd4.c sigpending.c sigprocmask.c \
+	sigreturn.c sigsuspend.c sleep.c socketcall.c splice.c \
 	$(stack_fcall_SOURCES) stat.c stat64.c statfs.c statfs64.c \
 	statx.c swap.c sxetmask.c symlink.c symlinkat.c sync.c \
 	sync_file_range.c sync_file_range2.c sysinfo.c syslog.c tee.c \
@@ -2063,12 +2156,12 @@
 	timerfd_xettime.c times.c times-fail.c truncate.c truncate64.c \
 	ugetrlimit.c uio.c umask.c umount.c umount2.c umoven-illptr.c \
 	umovestr.c umovestr-illptr.c umovestr2.c umovestr3.c uname.c \
-	unix-pair-send-recv.c unix-pair-sendto-recvfrom.c unlink.c \
-	unlinkat.c unshare.c userfaultfd.c ustat.c utime.c utimensat.c \
-	utimes.c vfork-f.c vhangup.c vmsplice.c wait4.c wait4-v.c \
-	waitid.c waitid-v.c waitpid.c xattr.c xattr-strings.c \
-	xet_robust_list.c xetitimer.c xetpgid.c xetpriority.c \
-	xettimeofday.c
+	unblock_reset_raise.c unix-pair-send-recv.c \
+	unix-pair-sendto-recvfrom.c unlink.c unlinkat.c unshare.c \
+	userfaultfd.c ustat.c utime.c utimensat.c utimes.c vfork-f.c \
+	vhangup.c vmsplice.c wait4.c wait4-v.c waitid.c waitid-v.c \
+	waitpid.c xattr.c xattr-strings.c xet_robust_list.c \
+	xetitimer.c xetpgid.c xetpriority.c xettimeofday.c zeroargc.c
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -2450,6 +2543,7 @@
 
 AM_LDFLAGS = $(ARCH_MFLAGS)
 libtests_a_SOURCES = \
+	create_nl_socket.c \
 	errno2name.c \
 	error_msg.c \
 	fill_memory.c \
@@ -2470,6 +2564,7 @@
 	skip_unavailable.c \
 	sprintrc.c \
 	tail_alloc.c \
+	test_nlattr.h \
 	tests.h \
 	tprintf.c \
 	# end of libtests_a_SOURCES
@@ -2646,8 +2741,19 @@
   net-yy-inet \
   net-yy-netlink \
   net-yy-unix \
+  netlink_audit \
+  netlink_generic \
+  netlink_netfilter \
   netlink_protocol \
+  netlink_route \
+  netlink_selinux \
+  netlink_sock_diag \
+  netlink_xfrm \
   newfstatat \
+  nlattr \
+  nlattr_inet_diag_msg \
+  nlattr_netlink_diag_msg \
+  nlattr_unix_diag_msg \
   old_mmap \
   oldfstat \
   oldlstat \
@@ -2703,6 +2809,7 @@
   renameat2 \
   request_key \
   rmdir \
+  rt_sigaction \
   rt_sigpending \
   rt_sigprocmask \
   rt_sigqueueinfo \
@@ -2750,7 +2857,10 @@
   sigaction \
   sigaltstack \
   siginfo \
+  signal \
   signalfd4 \
+  sigpending \
+  sigprocmask \
   sigreturn \
   sigsuspend \
   socketcall \
@@ -2895,11 +3005,17 @@
 	mq_sendrecv-write.gen.test msg_control.gen.test \
 	msg_control-v.gen.test msg_name.gen.test munlockall.gen.test \
 	nanosleep.gen.test net-icmp_filter.gen.test \
-	net-sockaddr.gen.test netlink_protocol.gen.test \
-	newfstatat.gen.test old_mmap.gen.test oldfstat.gen.test \
-	oldlstat.gen.test oldstat.gen.test open.gen.test \
-	openat.gen.test osf_utimes.gen.test pause.gen.test \
-	perf_event_open.gen.test perf_event_open_nonverbose.gen.test \
+	net-sockaddr.gen.test netlink_audit.gen.test \
+	netlink_generic.gen.test netlink_netfilter.gen.test \
+	netlink_protocol.gen.test netlink_route.gen.test \
+	netlink_selinux.gen.test netlink_xfrm.gen.test \
+	newfstatat.gen.test nlattr.gen.test \
+	nlattr_inet_diag_msg.gen.test nlattr_netlink_diag_msg.gen.test \
+	nlattr_unix_diag_msg.gen.test old_mmap.gen.test \
+	oldfstat.gen.test oldlstat.gen.test oldstat.gen.test \
+	open.gen.test openat.gen.test osf_utimes.gen.test \
+	pause.gen.test perf_event_open.gen.test \
+	perf_event_open_nonverbose.gen.test \
 	perf_event_open_unabbrev.gen.test pipe2.gen.test \
 	pkey_alloc.gen.test pkey_free.gen.test pkey_mprotect.gen.test \
 	ppoll.gen.test ppoll-v.gen.test pread64-pwrite64.gen.test \
@@ -2932,22 +3048,23 @@
 	setresuid.gen.test setresuid32.gen.test setreuid.gen.test \
 	setreuid32.gen.test setrlimit.gen.test setuid.gen.test \
 	setuid32.gen.test shmxt.gen.test shutdown.gen.test \
-	siginfo.gen.test signal_receive.gen.test signalfd4.gen.test \
-	sigreturn.gen.test sigsuspend.gen.test socketcall.gen.test \
-	splice.gen.test stat.gen.test stat64.gen.test statfs.gen.test \
-	statfs64.gen.test statx.gen.test swap.gen.test \
-	sxetmask.gen.test symlink.gen.test symlinkat.gen.test \
-	sync.gen.test sync_file_range.gen.test \
-	sync_file_range2.gen.test sysinfo.gen.test syslog.gen.test \
-	tee.gen.test time.gen.test timer_create.gen.test \
-	timer_xettime.gen.test timerfd_xettime.gen.test times.gen.test \
-	times-fail.gen.test trace_fstat.gen.test \
-	trace_fstatfs.gen.test trace_lstat.gen.test \
-	trace_question.gen.test trace_stat.gen.test \
-	trace_stat_like.gen.test trace_statfs.gen.test \
-	trace_statfs_like.gen.test truncate.gen.test \
-	truncate64.gen.test ugetrlimit.gen.test umask.gen.test \
-	umoven-illptr.gen.test umovestr-illptr.gen.test \
+	sigaction.gen.test siginfo.gen.test signal.gen.test \
+	signal_receive.gen.test signalfd4.gen.test sigpending.gen.test \
+	sigprocmask.gen.test sigreturn.gen.test sigsuspend.gen.test \
+	socketcall.gen.test splice.gen.test stat.gen.test \
+	stat64.gen.test statfs.gen.test statfs64.gen.test \
+	statx.gen.test swap.gen.test sxetmask.gen.test \
+	symlink.gen.test symlinkat.gen.test sync.gen.test \
+	sync_file_range.gen.test sync_file_range2.gen.test \
+	sysinfo.gen.test syslog.gen.test tee.gen.test time.gen.test \
+	timer_create.gen.test timer_xettime.gen.test \
+	timerfd_xettime.gen.test times.gen.test times-fail.gen.test \
+	trace_fstat.gen.test trace_fstatfs.gen.test \
+	trace_lstat.gen.test trace_question.gen.test \
+	trace_stat.gen.test trace_stat_like.gen.test \
+	trace_statfs.gen.test trace_statfs_like.gen.test \
+	truncate.gen.test truncate64.gen.test ugetrlimit.gen.test \
+	umask.gen.test umoven-illptr.gen.test umovestr-illptr.gen.test \
 	umovestr3.gen.test unlink.gen.test unlinkat.gen.test \
 	unshare.gen.test userfaultfd.gen.test ustat.gen.test \
 	utime.gen.test utimensat.gen.test utimes.gen.test \
@@ -2987,6 +3104,7 @@
 	net-yy-netlink.test \
 	net-yy-unix.test \
 	net.test \
+	netlink_sock_diag.test \
 	nsyscalls.test \
 	oldselect.test \
 	personality.test \
@@ -3004,9 +3122,9 @@
 	prctl-tsc.test \
 	qual_fault-exit_group.test \
 	readv.test \
+	rt_sigaction.test \
 	scm_rights-fd.test \
 	seccomp-strict.test \
-	sigaction.test \
 	sigaltstack.test \
 	sun_path.test \
 	uio.test \
@@ -3030,6 +3148,7 @@
 	detach-stopped.test \
 	filter-unavailable.test \
 	get_regs.test \
+	interactive_block.test \
 	ksysent.test \
 	opipe.test \
 	options-syntax.test \
@@ -3055,6 +3174,7 @@
 	strace-t.test \
 	strace-tt.test \
 	strace-ttt.test \
+	termsig.test \
 	threads-execve.test \
 	# end of MISC_TESTS
 
@@ -3100,6 +3220,7 @@
 	qual_inject-signal.expected \
 	quotactl.h \
 	regex.in \
+	rt_sigaction.awk \
 	run.sh \
 	sched.in \
 	scno_tampering.sh \
@@ -3107,7 +3228,6 @@
 	setresugid.c \
 	setreugid.c \
 	setugid.c \
-	sigaction.awk \
 	sigaltstack.expected \
 	sockname.c \
 	strace-C.expected \
@@ -3253,6 +3373,10 @@
 	@rm -f attach-p-cmd-p$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(attach_p_cmd_p_OBJECTS) $(attach_p_cmd_p_LDADD) $(LIBS)
 
+block_reset_raise_run$(EXEEXT): $(block_reset_raise_run_OBJECTS) $(block_reset_raise_run_DEPENDENCIES) $(EXTRA_block_reset_raise_run_DEPENDENCIES) 
+	@rm -f block_reset_raise_run$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(block_reset_raise_run_OBJECTS) $(block_reset_raise_run_LDADD) $(LIBS)
+
 bpf$(EXEEXT): $(bpf_OBJECTS) $(bpf_DEPENDENCIES) $(EXTRA_bpf_DEPENDENCIES) 
 	@rm -f bpf$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(bpf_OBJECTS) $(bpf_LDADD) $(LIBS)
@@ -3957,10 +4081,22 @@
 	@rm -f net-yy-unix$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(net_yy_unix_OBJECTS) $(net_yy_unix_LDADD) $(LIBS)
 
+netlink_audit$(EXEEXT): $(netlink_audit_OBJECTS) $(netlink_audit_DEPENDENCIES) $(EXTRA_netlink_audit_DEPENDENCIES) 
+	@rm -f netlink_audit$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(netlink_audit_OBJECTS) $(netlink_audit_LDADD) $(LIBS)
+
+netlink_generic$(EXEEXT): $(netlink_generic_OBJECTS) $(netlink_generic_DEPENDENCIES) $(EXTRA_netlink_generic_DEPENDENCIES) 
+	@rm -f netlink_generic$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(netlink_generic_OBJECTS) $(netlink_generic_LDADD) $(LIBS)
+
 netlink_inet_diag$(EXEEXT): $(netlink_inet_diag_OBJECTS) $(netlink_inet_diag_DEPENDENCIES) $(EXTRA_netlink_inet_diag_DEPENDENCIES) 
 	@rm -f netlink_inet_diag$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(netlink_inet_diag_OBJECTS) $(netlink_inet_diag_LDADD) $(LIBS)
 
+netlink_netfilter$(EXEEXT): $(netlink_netfilter_OBJECTS) $(netlink_netfilter_DEPENDENCIES) $(EXTRA_netlink_netfilter_DEPENDENCIES) 
+	@rm -f netlink_netfilter$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(netlink_netfilter_OBJECTS) $(netlink_netfilter_LDADD) $(LIBS)
+
 netlink_netlink_diag$(EXEEXT): $(netlink_netlink_diag_OBJECTS) $(netlink_netlink_diag_DEPENDENCIES) $(EXTRA_netlink_netlink_diag_DEPENDENCIES) 
 	@rm -f netlink_netlink_diag$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(netlink_netlink_diag_OBJECTS) $(netlink_netlink_diag_LDADD) $(LIBS)
@@ -3969,14 +4105,46 @@
 	@rm -f netlink_protocol$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(netlink_protocol_OBJECTS) $(netlink_protocol_LDADD) $(LIBS)
 
+netlink_route$(EXEEXT): $(netlink_route_OBJECTS) $(netlink_route_DEPENDENCIES) $(EXTRA_netlink_route_DEPENDENCIES) 
+	@rm -f netlink_route$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(netlink_route_OBJECTS) $(netlink_route_LDADD) $(LIBS)
+
+netlink_selinux$(EXEEXT): $(netlink_selinux_OBJECTS) $(netlink_selinux_DEPENDENCIES) $(EXTRA_netlink_selinux_DEPENDENCIES) 
+	@rm -f netlink_selinux$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(netlink_selinux_OBJECTS) $(netlink_selinux_LDADD) $(LIBS)
+
+netlink_sock_diag$(EXEEXT): $(netlink_sock_diag_OBJECTS) $(netlink_sock_diag_DEPENDENCIES) $(EXTRA_netlink_sock_diag_DEPENDENCIES) 
+	@rm -f netlink_sock_diag$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(netlink_sock_diag_OBJECTS) $(netlink_sock_diag_LDADD) $(LIBS)
+
 netlink_unix_diag$(EXEEXT): $(netlink_unix_diag_OBJECTS) $(netlink_unix_diag_DEPENDENCIES) $(EXTRA_netlink_unix_diag_DEPENDENCIES) 
 	@rm -f netlink_unix_diag$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(netlink_unix_diag_OBJECTS) $(netlink_unix_diag_LDADD) $(LIBS)
 
+netlink_xfrm$(EXEEXT): $(netlink_xfrm_OBJECTS) $(netlink_xfrm_DEPENDENCIES) $(EXTRA_netlink_xfrm_DEPENDENCIES) 
+	@rm -f netlink_xfrm$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(netlink_xfrm_OBJECTS) $(netlink_xfrm_LDADD) $(LIBS)
+
 newfstatat$(EXEEXT): $(newfstatat_OBJECTS) $(newfstatat_DEPENDENCIES) $(EXTRA_newfstatat_DEPENDENCIES) 
 	@rm -f newfstatat$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(newfstatat_OBJECTS) $(newfstatat_LDADD) $(LIBS)
 
+nlattr$(EXEEXT): $(nlattr_OBJECTS) $(nlattr_DEPENDENCIES) $(EXTRA_nlattr_DEPENDENCIES) 
+	@rm -f nlattr$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(nlattr_OBJECTS) $(nlattr_LDADD) $(LIBS)
+
+nlattr_inet_diag_msg$(EXEEXT): $(nlattr_inet_diag_msg_OBJECTS) $(nlattr_inet_diag_msg_DEPENDENCIES) $(EXTRA_nlattr_inet_diag_msg_DEPENDENCIES) 
+	@rm -f nlattr_inet_diag_msg$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(nlattr_inet_diag_msg_OBJECTS) $(nlattr_inet_diag_msg_LDADD) $(LIBS)
+
+nlattr_netlink_diag_msg$(EXEEXT): $(nlattr_netlink_diag_msg_OBJECTS) $(nlattr_netlink_diag_msg_DEPENDENCIES) $(EXTRA_nlattr_netlink_diag_msg_DEPENDENCIES) 
+	@rm -f nlattr_netlink_diag_msg$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(nlattr_netlink_diag_msg_OBJECTS) $(nlattr_netlink_diag_msg_LDADD) $(LIBS)
+
+nlattr_unix_diag_msg$(EXEEXT): $(nlattr_unix_diag_msg_OBJECTS) $(nlattr_unix_diag_msg_DEPENDENCIES) $(EXTRA_nlattr_unix_diag_msg_DEPENDENCIES) 
+	@rm -f nlattr_unix_diag_msg$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(nlattr_unix_diag_msg_OBJECTS) $(nlattr_unix_diag_msg_LDADD) $(LIBS)
+
 nsyscalls$(EXEEXT): $(nsyscalls_OBJECTS) $(nsyscalls_DEPENDENCIES) $(EXTRA_nsyscalls_DEPENDENCIES) 
 	@rm -f nsyscalls$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(nsyscalls_OBJECTS) $(nsyscalls_LDADD) $(LIBS)
@@ -4265,6 +4433,10 @@
 	@rm -f rmdir$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(rmdir_OBJECTS) $(rmdir_LDADD) $(LIBS)
 
+rt_sigaction$(EXEEXT): $(rt_sigaction_OBJECTS) $(rt_sigaction_DEPENDENCIES) $(EXTRA_rt_sigaction_DEPENDENCIES) 
+	@rm -f rt_sigaction$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(rt_sigaction_OBJECTS) $(rt_sigaction_LDADD) $(LIBS)
+
 rt_sigpending$(EXEEXT): $(rt_sigpending_OBJECTS) $(rt_sigpending_DEPENDENCIES) $(EXTRA_rt_sigpending_DEPENDENCIES) 
 	@rm -f rt_sigpending$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(rt_sigpending_OBJECTS) $(rt_sigpending_LDADD) $(LIBS)
@@ -4293,6 +4465,10 @@
 	@rm -f rt_tgsigqueueinfo$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(rt_tgsigqueueinfo_OBJECTS) $(rt_tgsigqueueinfo_LDADD) $(LIBS)
 
+run_expect_termsig$(EXEEXT): $(run_expect_termsig_OBJECTS) $(run_expect_termsig_DEPENDENCIES) $(EXTRA_run_expect_termsig_DEPENDENCIES) 
+	@rm -f run_expect_termsig$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(run_expect_termsig_OBJECTS) $(run_expect_termsig_LDADD) $(LIBS)
+
 sched_get_priority_mxx$(EXEEXT): $(sched_get_priority_mxx_OBJECTS) $(sched_get_priority_mxx_DEPENDENCIES) $(EXTRA_sched_get_priority_mxx_DEPENDENCIES) 
 	@rm -f sched_get_priority_mxx$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(sched_get_priority_mxx_OBJECTS) $(sched_get_priority_mxx_LDADD) $(LIBS)
@@ -4469,6 +4645,10 @@
 	@rm -f siginfo$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(siginfo_OBJECTS) $(siginfo_LDADD) $(LIBS)
 
+signal$(EXEEXT): $(signal_OBJECTS) $(signal_DEPENDENCIES) $(EXTRA_signal_DEPENDENCIES) 
+	@rm -f signal$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(signal_OBJECTS) $(signal_LDADD) $(LIBS)
+
 signal_receive$(EXEEXT): $(signal_receive_OBJECTS) $(signal_receive_DEPENDENCIES) $(EXTRA_signal_receive_DEPENDENCIES) 
 	@rm -f signal_receive$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(signal_receive_OBJECTS) $(signal_receive_LDADD) $(LIBS)
@@ -4477,6 +4657,14 @@
 	@rm -f signalfd4$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(signalfd4_OBJECTS) $(signalfd4_LDADD) $(LIBS)
 
+sigpending$(EXEEXT): $(sigpending_OBJECTS) $(sigpending_DEPENDENCIES) $(EXTRA_sigpending_DEPENDENCIES) 
+	@rm -f sigpending$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(sigpending_OBJECTS) $(sigpending_LDADD) $(LIBS)
+
+sigprocmask$(EXEEXT): $(sigprocmask_OBJECTS) $(sigprocmask_DEPENDENCIES) $(EXTRA_sigprocmask_DEPENDENCIES) 
+	@rm -f sigprocmask$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(sigprocmask_OBJECTS) $(sigprocmask_LDADD) $(LIBS)
+
 sigreturn$(EXEEXT): $(sigreturn_OBJECTS) $(sigreturn_DEPENDENCIES) $(EXTRA_sigreturn_DEPENDENCIES) 
 	@rm -f sigreturn$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(sigreturn_OBJECTS) $(sigreturn_LDADD) $(LIBS)
@@ -4641,6 +4829,10 @@
 	@rm -f uname$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(uname_OBJECTS) $(uname_LDADD) $(LIBS)
 
+unblock_reset_raise$(EXEEXT): $(unblock_reset_raise_OBJECTS) $(unblock_reset_raise_DEPENDENCIES) $(EXTRA_unblock_reset_raise_DEPENDENCIES) 
+	@rm -f unblock_reset_raise$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(unblock_reset_raise_OBJECTS) $(unblock_reset_raise_LDADD) $(LIBS)
+
 unix-pair-send-recv$(EXEEXT): $(unix_pair_send_recv_OBJECTS) $(unix_pair_send_recv_DEPENDENCIES) $(EXTRA_unix_pair_send_recv_DEPENDENCIES) 
 	@rm -f unix-pair-send-recv$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(unix_pair_send_recv_OBJECTS) $(unix_pair_send_recv_LDADD) $(LIBS)
@@ -4741,6 +4933,10 @@
 	@rm -f xettimeofday$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(xettimeofday_OBJECTS) $(xettimeofday_LDADD) $(LIBS)
 
+zeroargc$(EXEEXT): $(zeroargc_OBJECTS) $(zeroargc_DEPENDENCIES) $(EXTRA_zeroargc_DEPENDENCIES) 
+	@rm -f zeroargc$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(zeroargc_OBJECTS) $(zeroargc_LDADD) $(LIBS)
+
 mostlyclean-compile:
 	-rm -f *.$(OBJEXT)
 
@@ -4761,6 +4957,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/attach-f-p.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/attach-p-cmd-cmd.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/attach-p-cmd-p.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/block_reset_raise_run.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bpf.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/brk.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/btrfs.Po@am__quote@
@@ -4893,6 +5090,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ksysent.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lchown.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lchown32.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-create_nl_socket.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-errno2name.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-error_msg.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-fill_memory.Po@am__quote@
@@ -4958,11 +5156,22 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-yy-inet.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-yy-netlink.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-yy-unix.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_audit.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_generic.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_inet_diag.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_netfilter.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_netlink_diag.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_protocol.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_route.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_selinux.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_sock_diag.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_unix_diag.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_xfrm.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/newfstatat-newfstatat.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_inet_diag_msg.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_netlink_diag_msg.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nlattr_unix_diag_msg.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nsyscalls.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/old_mmap.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oldfstat.Po@am__quote@
@@ -5035,6 +5244,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/request_key.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/restart_syscall.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rmdir.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigaction.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigpending.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigprocmask.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigqueueinfo.Po@am__quote@
@@ -5042,6 +5252,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigsuspend.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigtimedwait.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_tgsigqueueinfo.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/run_expect_termsig.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_get_priority_mxx.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_rr_get_interval.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetaffinity.Po@am__quote@
@@ -5086,8 +5297,11 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigaction.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigaltstack.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/siginfo.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal_receive.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signalfd4.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigpending.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigprocmask.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigreturn.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigsuspend.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sleep.Po@am__quote@
@@ -5133,6 +5347,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umovestr2.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/umovestr3.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uname.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unblock_reset_raise.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unix-pair-send-recv.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unix-pair-sendto-recvfrom.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unlink.Po@am__quote@
@@ -5158,6 +5373,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetpgid.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetpriority.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xettimeofday.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zeroargc.Po@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@@ -5173,6 +5389,20 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
+libtests_a-create_nl_socket.o: create_nl_socket.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-create_nl_socket.o -MD -MP -MF $(DEPDIR)/libtests_a-create_nl_socket.Tpo -c -o libtests_a-create_nl_socket.o `test -f 'create_nl_socket.c' || echo '$(srcdir)/'`create_nl_socket.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-create_nl_socket.Tpo $(DEPDIR)/libtests_a-create_nl_socket.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='create_nl_socket.c' object='libtests_a-create_nl_socket.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) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-create_nl_socket.o `test -f 'create_nl_socket.c' || echo '$(srcdir)/'`create_nl_socket.c
+
+libtests_a-create_nl_socket.obj: create_nl_socket.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-create_nl_socket.obj -MD -MP -MF $(DEPDIR)/libtests_a-create_nl_socket.Tpo -c -o libtests_a-create_nl_socket.obj `if test -f 'create_nl_socket.c'; then $(CYGPATH_W) 'create_nl_socket.c'; else $(CYGPATH_W) '$(srcdir)/create_nl_socket.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-create_nl_socket.Tpo $(DEPDIR)/libtests_a-create_nl_socket.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='create_nl_socket.c' object='libtests_a-create_nl_socket.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) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libtests_a-create_nl_socket.obj `if test -f 'create_nl_socket.c'; then $(CYGPATH_W) 'create_nl_socket.c'; else $(CYGPATH_W) '$(srcdir)/create_nl_socket.c'; fi`
+
 libtests_a-errno2name.o: errno2name.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-errno2name.o -MD -MP -MF $(DEPDIR)/libtests_a-errno2name.Tpo -c -o libtests_a-errno2name.o `test -f 'errno2name.c' || echo '$(srcdir)/'`errno2name.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-errno2name.Tpo $(DEPDIR)/libtests_a-errno2name.Po
@@ -6511,12 +6741,42 @@
 $(srcdir)/net-sockaddr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
 	$(AM_V_GEN) $^ $@
 
+$(srcdir)/netlink_audit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_generic.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_netfilter.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
 $(srcdir)/netlink_protocol.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
 	$(AM_V_GEN) $^ $@
 
+$(srcdir)/netlink_route.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_selinux.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_xfrm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
 $(srcdir)/newfstatat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
 	$(AM_V_GEN) $^ $@
 
+$(srcdir)/nlattr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/nlattr_inet_diag_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/nlattr_netlink_diag_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/nlattr_unix_diag_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
 $(srcdir)/old_mmap.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
 	$(AM_V_GEN) $^ $@
 
@@ -6799,15 +7059,27 @@
 $(srcdir)/shutdown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
 	$(AM_V_GEN) $^ $@
 
+$(srcdir)/sigaction.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
 $(srcdir)/siginfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
 	$(AM_V_GEN) $^ $@
 
+$(srcdir)/signal.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
 $(srcdir)/signal_receive.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
 	$(AM_V_GEN) $^ $@
 
 $(srcdir)/signalfd4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
 	$(AM_V_GEN) $^ $@
 
+$(srcdir)/sigpending.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sigprocmask.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
 $(srcdir)/sigreturn.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
 	$(AM_V_GEN) $^ $@
 
@@ -7014,8 +7286,8 @@
 clean-local-check:
 	-rm -rf -- $(TESTS:.test=.dir) $(GEN_TESTS:.gen.test=.dir)
 
-syscallent.i: $(top_srcdir)/$(OS)/$(ARCH)/syscallent.h
-	$(CPP) -P $(SCNO_CPPFLAGS) $^ -o $@
+syscallent.i: $(top_builddir)/config.h $(top_srcdir)/$(OS)/$(ARCH)/syscallent.h
+	$(CPP) -P $(SCNO_CPPFLAGS) -include $^ -o $@
 
 scno.h: $(top_srcdir)/scno.head syscallent.i
 	echo '/* Generated by Makefile from $^; do not edit. */' > $@-t
diff --git a/tests/add_key.c b/tests/add_key.c
index d2696f9..1de0cc3 100644
--- a/tests/add_key.c
+++ b/tests/add_key.c
@@ -70,8 +70,7 @@
 {
 	static const char unterminated1[] = { '\1', '\2', '\3', '\4', '\5' };
 	static const char unterminated2[] = { '\6', '\7', '\10', '\11', '\12' };
-	static const char unterminated3[] =
-		{ '\16', '\17', '\20', '\21', '\22' };
+	static const char unterminated3[] = { '\16', '\17', '\20', '\21', '\22' };
 
 	char *bogus_type = tail_memdup(unterminated1, sizeof(unterminated1));
 	char *bogus_desc = tail_memdup(unterminated2, sizeof(unterminated2));
diff --git a/tests/aio.c b/tests/aio.c
index 677a02b..77b6c05 100644
--- a/tests/aio.c
+++ b/tests/aio.c
@@ -240,9 +240,9 @@
 		perror_msg_and_skip("io_submit");
 	printf("io_submit(%#lx, %u, ["
 	       "{data=%#" PRI__x64 ", pread, reqprio=11, fildes=0, "
-	               "buf=%p, nbytes=%u, offset=%" PRI__d64 "}, "
+		"buf=%p, nbytes=%u, offset=%" PRI__d64 "}, "
 	       "{data=%#" PRI__x64 ", pread, reqprio=22, fildes=0, "
-	               "buf=%p, nbytes=%u, offset=%" PRI__d64 "}"
+		"buf=%p, nbytes=%u, offset=%" PRI__d64 "}"
 	       "]) = %s\n",
 	       *ctx, nr,
 	       cb[0].aio_data, data0, sizeof_data0, cb[0].aio_offset,
@@ -317,18 +317,18 @@
 	printf("io_submit(%#lx, %ld, ["
 	       "{data=%#" PRI__x64 ", key=%u, %hu /* SUB_??? */, fildes=%d}, "
 	       "{key=%u, pwrite, reqprio=%hd, fildes=%d, str=NULL"
-	               ", nbytes=%" PRI__u64 ", offset=%" PRI__d64
+		", nbytes=%" PRI__u64 ", offset=%" PRI__d64
 # ifdef IOCB_FLAG_RESFD
-	               ", resfd=%d, flags=%#x"
+		", resfd=%d, flags=%#x"
 # endif
-	               "}, "
+		"}, "
 	       "{key=%u, pwrite, reqprio=%hd, fildes=%d, buf=%#" PRI__x64
-	               ", nbytes=%" PRI__u64 ", offset=%" PRI__d64 "}, "
+		", nbytes=%" PRI__u64 ", offset=%" PRI__d64 "}, "
 	       "{key=%u, pwrite, reqprio=%hd, fildes=%d"
-	               ", str=\"\\0\\1\\2\\3%.28s\"..."
-	               ", nbytes=%" PRI__u64 ", offset=%" PRI__d64 "}, "
+		", str=\"\\0\\1\\2\\3%.28s\"..."
+		", nbytes=%" PRI__u64 ", offset=%" PRI__d64 "}, "
 	       "{key=%u, pwritev, reqprio=%hd, fildes=%d, buf=%#" PRI__x64
-	               ", nbytes=%" PRI__u64 ", offset=%" PRI__d64 "}"
+		", nbytes=%" PRI__u64 ", offset=%" PRI__d64 "}"
 	       ", {NULL}, {%#lx}, %p]) = %s\n",
 	       *ctx, 1057L,
 	       cbv2[0].aio_data, cbv2[0].aio_key,
@@ -351,11 +351,11 @@
 		perror_msg_and_skip("io_submit");
 	printf("io_submit(%#lx, %u, ["
 	       "{data=%#" PRI__x64 ", preadv, reqprio=%hd, fildes=0, "
-	               "iovec=[{iov_base=%p, iov_len=%u}"
-	               ", {iov_base=%p, iov_len=%u}], offset=%" PRI__d64 "}, "
+		"iovec=[{iov_base=%p, iov_len=%u}"
+		", {iov_base=%p, iov_len=%u}], offset=%" PRI__d64 "}, "
 	       "{data=%#" PRI__x64 ", preadv, reqprio=%hd, fildes=0, "
-	               "iovec=[{iov_base=%p, iov_len=%u}"
-	               ", {iov_base=%p, iov_len=%u}], offset=%" PRI__d64 "}"
+		"iovec=[{iov_base=%p, iov_len=%u}"
+		", {iov_base=%p, iov_len=%u}], offset=%" PRI__d64 "}"
 	       "]) = %s\n",
 	       *ctx, nr,
 	       cbv[0].aio_data, cbv[0].aio_reqprio,
diff --git a/tests/block_reset_raise_run.c b/tests/block_reset_raise_run.c
new file mode 100644
index 0000000..e2c5c99
--- /dev/null
+++ b/tests/block_reset_raise_run.c
@@ -0,0 +1,55 @@
+/*
+ * Execute a command with blocked, reset, and raised signal.
+ *
+ * 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 "tests.h"
+#include <signal.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+int
+main(int ac, char **av)
+{
+	if (ac < 3)
+		error_msg_and_fail("usage: block_reset_raise_run signo path...");
+
+	sigset_t mask;
+	sigemptyset(&mask);
+	const int signo = atoi(av[1]);
+	if (sigaddset(&mask, signo))
+		perror_msg_and_fail("sigaddset: %s", av[1]);
+	if (sigprocmask(SIG_BLOCK, &mask, NULL))
+		perror_msg_and_fail("sigprocmask");
+	if (signal(signo, SIG_DFL) == SIG_ERR)
+		perror_msg_and_fail("signal: %s", av[1]);
+	if (raise(signo))
+		perror_msg_and_fail("raise: %s", av[1]);
+
+	execvp(av[2], av + 2);
+	perror_msg_and_fail("execvp: %s", av[2]);
+}
diff --git a/tests/btrfs.c b/tests/btrfs.c
index 7e5ccff..710d763 100644
--- a/tests/btrfs.c
+++ b/tests/btrfs.c
@@ -61,8 +61,8 @@
 
 static const char *btrfs_test_root;
 static int btrfs_test_dir_fd;
-static bool verbose = false;
-static bool write_ok = false;
+static bool verbose;
+static bool write_ok;
 
 const unsigned char uuid_reference[BTRFS_UUID_SIZE] = {
 	0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef,
@@ -75,10 +75,10 @@
 struct btrfs_ioctl_quota_rescan_args {
 	uint64_t flags, progress, reserved[6];
 };
-# define BTRFS_IOC_QUOTA_RESCAN _IOW(BTRFS_IOCTL_MAGIC, 44, \
-					struct btrfs_ioctl_quota_rescan_args)
-# define BTRFS_IOC_QUOTA_RESCAN_STATUS _IOR(BTRFS_IOCTL_MAGIC, 45, \
-					struct btrfs_ioctl_quota_rescan_args)
+# define BTRFS_IOC_QUOTA_RESCAN			\
+	_IOW(BTRFS_IOCTL_MAGIC, 44, struct btrfs_ioctl_quota_rescan_args)
+# define BTRFS_IOC_QUOTA_RESCAN_STATUS		\
+	_IOR(BTRFS_IOCTL_MAGIC, 45, struct btrfs_ioctl_quota_rescan_args)
 #endif
 
 #ifndef BTRFS_IOC_QUOTA_RESCAN_WAIT
@@ -86,30 +86,30 @@
 #endif
 
 #ifndef BTRFS_IOC_GET_FEATURES
-# define BTRFS_IOC_GET_FEATURES _IOR(BTRFS_IOCTL_MAGIC, 57, \
-                                   struct btrfs_ioctl_feature_flags)
-# define BTRFS_IOC_SET_FEATURES _IOW(BTRFS_IOCTL_MAGIC, 57, \
-                                   struct btrfs_ioctl_feature_flags[2])
-# define BTRFS_IOC_GET_SUPPORTED_FEATURES _IOR(BTRFS_IOCTL_MAGIC, 57, \
-                                   struct btrfs_ioctl_feature_flags[3])
+# define BTRFS_IOC_GET_FEATURES			\
+	_IOR(BTRFS_IOCTL_MAGIC, 57, struct btrfs_ioctl_feature_flags)
+# define BTRFS_IOC_SET_FEATURES			\
+	_IOW(BTRFS_IOCTL_MAGIC, 57, struct btrfs_ioctl_feature_flags[2])
+# define BTRFS_IOC_GET_SUPPORTED_FEATURES	\
+	_IOR(BTRFS_IOCTL_MAGIC, 57, struct btrfs_ioctl_feature_flags[3])
 #endif
 
 #ifndef HAVE_STRUCT_BTRFS_IOCTL_FEATURE_FLAGS_COMPAT_FLAGS
 struct btrfs_ioctl_feature_flags {
-        uint64_t compat_flags;
-        uint64_t compat_ro_flags;
-        uint64_t incompat_flags;
+	uint64_t compat_flags;
+	uint64_t compat_ro_flags;
+	uint64_t incompat_flags;
 };
 #endif
 
 #ifndef HAVE_STRUCT_BTRFS_IOCTL_DEFRAG_RANGE_ARGS_START
 struct btrfs_ioctl_defrag_range_args {
-        uint64_t start;
-        uint64_t len;
-        uint64_t flags;
-        uint32_t extent_thresh;
-        uint32_t compress_type;
-        uint32_t unused[4];
+	uint64_t start;
+	uint64_t len;
+	uint64_t flags;
+	uint32_t extent_thresh;
+	uint32_t compress_type;
+	uint32_t unused[4];
 };
 #endif
 
@@ -140,14 +140,14 @@
 #endif
 
 #ifndef BTRFS_IOC_TREE_SEARCH_V2
-# define BTRFS_IOC_TREE_SEARCH_V2 _IOWR(BTRFS_IOCTL_MAGIC, 17, \
-                                           struct btrfs_ioctl_search_args_v2)
+# define BTRFS_IOC_TREE_SEARCH_V2	\
+	_IOWR(BTRFS_IOCTL_MAGIC, 17, struct btrfs_ioctl_search_args_v2)
 struct btrfs_ioctl_search_args_v2 {
 	struct btrfs_ioctl_search_key key; /* in/out - search parameters */
 	uint64_t buf_size;		   /* in - size of buffer
 					    * out - on EOVERFLOW: needed size
 					    *       to store item */
-        uint64_t buf[0];		   /* out - found items */
+	uint64_t buf[0];		   /* out - found items */
 };
 #endif
 
diff --git a/tests/create_nl_socket.c b/tests/create_nl_socket.c
new file mode 100644
index 0000000..c2708d8
--- /dev/null
+++ b/tests/create_nl_socket.c
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2015-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 "tests.h"
+#include <sys/socket.h>
+#include "netlink.h"
+
+int
+create_nl_socket_ext(const int proto, const char *const name)
+{
+	const int fd = socket(AF_NETLINK, SOCK_RAW, proto);
+	if (fd < 0)
+		perror_msg_and_skip("socket AF_NETLINK %s", name);
+
+	const struct sockaddr_nl addr = { .nl_family = AF_NETLINK };
+	socklen_t len = sizeof(addr);
+
+	if (bind(fd, (const struct sockaddr *) &addr, len))
+		perror_msg_and_skip("bind AF_NETLINK %s", name);
+
+	/* one more operation on this socket to win the race */
+	int listening;
+	len = sizeof(listening);
+	if (getsockopt(fd, SOL_SOCKET, SO_ACCEPTCONN, &listening, &len))
+		perror_msg_and_fail("getsockopt");
+
+	return fd;
+}
diff --git a/tests/dup3.c b/tests/dup3.c
index 252e846..7a65b61 100644
--- a/tests/dup3.c
+++ b/tests/dup3.c
@@ -23,6 +23,6 @@
 
 #else
 
-SKIP_MAIN_UNDEFINED("__NR_dup3 && && O_CLOEXEC")
+SKIP_MAIN_UNDEFINED("__NR_dup3 && O_CLOEXEC")
 
 #endif
diff --git a/tests/errno2name.c b/tests/errno2name.c
index 4a17699..d481e2e 100644
--- a/tests/errno2name.c
+++ b/tests/errno2name.c
@@ -476,6 +476,7 @@
 #ifdef EXFULL
 	CASE(EXFULL);
 #endif
-	default: perror_msg_and_fail("unknown errno %d", errno);
+	default:
+		perror_msg_and_fail("unknown errno %d", errno);
 	}
 }
diff --git a/tests/execve.c b/tests/execve.c
index c558dd3..da3bc52 100644
--- a/tests/execve.c
+++ b/tests/execve.c
@@ -127,9 +127,14 @@
 #endif
 	       );
 
-	char str_a[] = "012345678901234567890123456789012";
-	char str_b[] = "_abcdefghijklmnopqrstuvwxyz()[]{}";
-#define DEFAULT_STRLEN ((unsigned int) sizeof(str_a) - 2)
+	char *const str_a = tail_alloc(DEFAULT_STRLEN + 2);
+	fill_memory_ex(str_a, DEFAULT_STRLEN + 1, '0', 10);
+	str_a[DEFAULT_STRLEN + 1] = '\0';
+
+	char *const str_b = tail_alloc(DEFAULT_STRLEN + 2);
+	fill_memory_ex(str_b, DEFAULT_STRLEN + 1, '_', 32);
+	str_b[DEFAULT_STRLEN + 1] = '\0';
+
 	char **const a = tail_alloc(sizeof(*a) * (DEFAULT_STRLEN + 2));
 	char **const b = tail_alloc(sizeof(*b) * (DEFAULT_STRLEN + 2));
 	unsigned int i;
diff --git a/tests/execveat.c b/tests/execveat.c
index 8ffc4d5..566a59f 100644
--- a/tests/execveat.c
+++ b/tests/execveat.c
@@ -133,9 +133,14 @@
 #endif
 	       errno2name());
 
-	char str_a[] = "012345678901234567890123456789012";
-	char str_b[] = "_abcdefghijklmnopqrstuvwxyz()[]{}";
-#define DEFAULT_STRLEN ((unsigned int) sizeof(str_a) - 2)
+	char *const str_a = tail_alloc(DEFAULT_STRLEN + 2);
+	fill_memory_ex(str_a, DEFAULT_STRLEN + 1, '0', 10);
+	str_a[DEFAULT_STRLEN + 1] = '\0';
+
+	char *const str_b = tail_alloc(DEFAULT_STRLEN + 2);
+	fill_memory_ex(str_b, DEFAULT_STRLEN + 1, '_', 32);
+	str_b[DEFAULT_STRLEN + 1] = '\0';
+
 	char **const a = tail_alloc(sizeof(*a) * (DEFAULT_STRLEN + 2));
 	char **const b = tail_alloc(sizeof(*b) * (DEFAULT_STRLEN + 2));
 	unsigned int i;
diff --git a/tests/futex.c b/tests/futex.c
index 9a9ab66..b75ab33 100644
--- a/tests/futex.c
+++ b/tests/futex.c
@@ -254,7 +254,7 @@
 	       zero_extend_signed_to_ull(tmout->tv_nsec), sprintrc(rc));
 
 	CHECK_FUTEX_ENOSYS(uaddr,
-		FUTEX_CLOCK_REALTIME | FUTEX_PRIVATE_FLAG | FUTEX_WAIT ,
+		FUTEX_CLOCK_REALTIME | FUTEX_PRIVATE_FLAG | FUTEX_WAIT,
 		VAL, tmout, uaddr2, 0, (rc == -1) && (errno == EAGAIN));
 	printf("futex(%p, FUTEX_WAIT_PRIVATE|FUTEX_CLOCK_REALTIME, %u"
 	       ", {tv_sec=%lld, tv_nsec=%llu}) = %s\n",
@@ -612,7 +612,7 @@
 
 	CHECK_FUTEX_ENOSYS(uaddr + 1, FUTEX_PRIVATE_FLAG | FUTEX_UNLOCK_PI, VAL,
 		tmout, uaddr2 + 1, VAL3, (rc == -1) && (errno == EFAULT));
-	printf("futex(%p, FUTEX_UNLOCK_PI_PRIVATE) = %s\n", uaddr +1,
+	printf("futex(%p, FUTEX_UNLOCK_PI_PRIVATE) = %s\n", uaddr + 1,
 		sprintrc(rc));
 
 	CHECK_INVALID_CLOCKRT(FUTEX_UNLOCK_PI, 0);
diff --git a/tests/gen_tests.am b/tests/gen_tests.am
new file mode 100644
index 0000000..f1b34dd
--- /dev/null
+++ b/tests/gen_tests.am
@@ -0,0 +1,1007 @@
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in; do not edit.
+GEN_TESTS = _newselect.gen.test accept.gen.test accept4.gen.test access.gen.test acct.gen.test add_key.gen.test adjtimex.gen.test aio.gen.test alarm.gen.test bpf.gen.test btrfs.gen.test chmod.gen.test chown.gen.test chown32.gen.test chroot.gen.test clock.gen.test clock_adjtime.gen.test clock_nanosleep.gen.test clock_xettime.gen.test copy_file_range.gen.test creat.gen.test delete_module.gen.test dup.gen.test dup2.gen.test dup3.gen.test epoll_create.gen.test epoll_create1.gen.test epoll_ctl.gen.test epoll_pwait.gen.test epoll_wait.gen.test erestartsys.gen.test execveat.gen.test execveat-v.gen.test faccessat.gen.test fadvise64_64.gen.test fallocate.gen.test fanotify_init.gen.test fanotify_mark.gen.test fchdir.gen.test fchmod.gen.test fchmodat.gen.test fchown.gen.test fchown32.gen.test fchownat.gen.test fcntl.gen.test fcntl64.gen.test fdatasync.gen.test file_handle.gen.test file_ioctl.gen.test finit_module.gen.test flock.gen.test fork-f.gen.test fstat.gen.test fstat64.gen.test fstatat64.gen.test fstatfs.gen.test fstatfs64.gen.test fsync.gen.test ftruncate.gen.test ftruncate64.gen.test futimesat.gen.test get_mempolicy.gen.test getcpu.gen.test getcwd.gen.test getdents.gen.test getdents64.gen.test getegid.gen.test getegid32.gen.test geteuid.gen.test geteuid32.gen.test getgid.gen.test getgid32.gen.test getgroups.gen.test getgroups32.gen.test getpeername.gen.test getpgrp.gen.test getpid.gen.test getppid.gen.test getrandom.gen.test getresgid.gen.test getresgid32.gen.test getresuid.gen.test getresuid32.gen.test getrlimit.gen.test getrusage.gen.test getsid.gen.test getsockname.gen.test gettid.gen.test getuid32.gen.test getxxid.gen.test inet-cmsg.gen.test init_module.gen.test inotify.gen.test inotify_init1.gen.test int_0x80.gen.test ioctl_block.gen.test ioctl_evdev.gen.test ioctl_evdev-v.gen.test ioctl_loop.gen.test ioctl_loop-v.gen.test ioctl_mtd.gen.test ioctl_rtc.gen.test ioctl_rtc-v.gen.test ioctl_scsi.gen.test ioctl_sg_io_v3.gen.test ioctl_sg_io_v4.gen.test ioctl_uffdio.gen.test ioctl_v4l2.gen.test ioperm.gen.test iopl.gen.test ioprio.gen.test ip_mreq.gen.test ipc.gen.test ipc_msg.gen.test ipc_sem.gen.test ipc_shm.gen.test kcmp.gen.test kexec_file_load.gen.test kexec_load.gen.test keyctl.gen.test kill.gen.test lchown.gen.test lchown32.gen.test link.gen.test linkat.gen.test lookup_dcookie.gen.test lstat.gen.test lstat64.gen.test madvise.gen.test mbind.gen.test membarrier.gen.test memfd_create.gen.test migrate_pages.gen.test mincore.gen.test mkdir.gen.test mkdirat.gen.test mknod.gen.test mknodat.gen.test mlock.gen.test mlock2.gen.test mlockall.gen.test mmap64.gen.test mmsg.gen.test mmsg-silent.gen.test mmsg_name.gen.test mmsg_name-v.gen.test mount.gen.test move_pages.gen.test mq.gen.test mq_sendrecv.gen.test mq_sendrecv-read.gen.test mq_sendrecv-write.gen.test msg_control.gen.test msg_control-v.gen.test msg_name.gen.test munlockall.gen.test nanosleep.gen.test net-icmp_filter.gen.test net-sockaddr.gen.test netlink_audit.gen.test netlink_generic.gen.test netlink_netfilter.gen.test netlink_protocol.gen.test netlink_route.gen.test netlink_selinux.gen.test netlink_xfrm.gen.test newfstatat.gen.test nlattr.gen.test nlattr_inet_diag_msg.gen.test nlattr_netlink_diag_msg.gen.test nlattr_unix_diag_msg.gen.test old_mmap.gen.test oldfstat.gen.test oldlstat.gen.test oldstat.gen.test open.gen.test openat.gen.test osf_utimes.gen.test pause.gen.test perf_event_open.gen.test perf_event_open_nonverbose.gen.test perf_event_open_unabbrev.gen.test pipe2.gen.test pkey_alloc.gen.test pkey_free.gen.test pkey_mprotect.gen.test ppoll.gen.test ppoll-v.gen.test pread64-pwrite64.gen.test preadv.gen.test preadv-pwritev.gen.test preadv2-pwritev2.gen.test printstr.gen.test prlimit64.gen.test process_vm_readv.gen.test process_vm_writev.gen.test pselect6.gen.test ptrace.gen.test pwritev.gen.test quotactl.gen.test quotactl-v.gen.test quotactl-xfs.gen.test quotactl-xfs-v.gen.test read-write.gen.test readahead.gen.test readdir.gen.test readlink.gen.test readlinkat.gen.test reboot.gen.test recvfrom.gen.test recvmmsg-timeout.gen.test recvmsg.gen.test regex.gen.test remap_file_pages.gen.test rename.gen.test renameat.gen.test renameat2.gen.test request_key.gen.test rmdir.gen.test rt_sigpending.gen.test rt_sigprocmask.gen.test rt_sigqueueinfo.gen.test rt_sigreturn.gen.test rt_sigsuspend.gen.test rt_sigtimedwait.gen.test rt_tgsigqueueinfo.gen.test sched.gen.test sched_get_priority_mxx.gen.test sched_rr_get_interval.gen.test sched_xetaffinity.gen.test sched_xetattr.gen.test sched_xetparam.gen.test sched_xetscheduler.gen.test sched_yield.gen.test seccomp-filter.gen.test seccomp-filter-v.gen.test select.gen.test semop.gen.test sendfile.gen.test sendfile64.gen.test set_mempolicy.gen.test setdomainname.gen.test setfsgid.gen.test setfsgid32.gen.test setfsuid.gen.test setfsuid32.gen.test setgid.gen.test setgid32.gen.test setgroups.gen.test setgroups32.gen.test sethostname.gen.test setns.gen.test setregid.gen.test setregid32.gen.test setresgid.gen.test setresgid32.gen.test setresuid.gen.test setresuid32.gen.test setreuid.gen.test setreuid32.gen.test setrlimit.gen.test setuid.gen.test setuid32.gen.test shmxt.gen.test shutdown.gen.test sigaction.gen.test siginfo.gen.test signal.gen.test signal_receive.gen.test signalfd4.gen.test sigpending.gen.test sigprocmask.gen.test sigreturn.gen.test sigsuspend.gen.test socketcall.gen.test splice.gen.test stat.gen.test stat64.gen.test statfs.gen.test statfs64.gen.test statx.gen.test swap.gen.test sxetmask.gen.test symlink.gen.test symlinkat.gen.test sync.gen.test sync_file_range.gen.test sync_file_range2.gen.test sysinfo.gen.test syslog.gen.test tee.gen.test time.gen.test timer_create.gen.test timer_xettime.gen.test timerfd_xettime.gen.test times.gen.test times-fail.gen.test trace_fstat.gen.test trace_fstatfs.gen.test trace_lstat.gen.test trace_question.gen.test trace_stat.gen.test trace_stat_like.gen.test trace_statfs.gen.test trace_statfs_like.gen.test truncate.gen.test truncate64.gen.test ugetrlimit.gen.test umask.gen.test umoven-illptr.gen.test umovestr-illptr.gen.test umovestr3.gen.test unlink.gen.test unlinkat.gen.test unshare.gen.test userfaultfd.gen.test ustat.gen.test utime.gen.test utimensat.gen.test utimes.gen.test vfork-f.gen.test vhangup.gen.test vmsplice.gen.test wait4.gen.test wait4-v.gen.test waitid.gen.test waitid-v.gen.test waitpid.gen.test xattr.gen.test xattr-strings.gen.test xet_robust_list.gen.test xetitimer.gen.test xetpgid.gen.test xetpriority.gen.test xettimeofday.gen.test
+
+$(srcdir)/_newselect.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/accept.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/accept4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/access.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/acct.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/add_key.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/adjtimex.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/aio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/alarm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/bpf.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/btrfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/chmod.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/chown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/chown32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/chroot.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/clock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/clock_adjtime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/clock_nanosleep.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/clock_xettime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/copy_file_range.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/creat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/delete_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/dup.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/dup2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/dup3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/epoll_create.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/epoll_create1.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/epoll_ctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/epoll_pwait.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/epoll_wait.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/erestartsys.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/execveat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/execveat-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/faccessat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fadvise64_64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fallocate.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fanotify_init.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fanotify_mark.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fchdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fchmod.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fchmodat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fchown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fchown32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fchownat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fcntl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fcntl64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fdatasync.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/file_handle.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/file_ioctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/finit_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/flock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fork-f.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fstat64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fstatat64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fstatfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fstatfs64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/fsync.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ftruncate.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ftruncate64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/futimesat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/get_mempolicy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getcpu.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getcwd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getdents.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getdents64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getegid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getegid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/geteuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/geteuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getgroups.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getgroups32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getpeername.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getpgrp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getpid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getppid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getrandom.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getresgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getresgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getresuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getresuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getrlimit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getrusage.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getsid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getsockname.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/gettid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/getxxid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/inet-cmsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/init_module.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/inotify.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/inotify_init1.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/int_0x80.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_block.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_evdev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_evdev-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_loop.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_loop-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_mtd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_rtc.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_rtc-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_scsi.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_sg_io_v3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_sg_io_v4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_uffdio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioctl_v4l2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioperm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/iopl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ioprio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ip_mreq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_sem.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ipc_shm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/kcmp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/kexec_file_load.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/kexec_load.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/keyctl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/kill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/lchown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/lchown32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/link.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/linkat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/lookup_dcookie.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/lstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/lstat64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/madvise.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mbind.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/membarrier.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/memfd_create.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/migrate_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mincore.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mkdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mkdirat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mknod.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mknodat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mlock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mlock2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mlockall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mmap64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mmsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mmsg-silent.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mmsg_name.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mmsg_name-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mount.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/move_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mq.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mq_sendrecv.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mq_sendrecv-read.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/mq_sendrecv-write.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/msg_control.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/msg_control-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/msg_name.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/munlockall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/nanosleep.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/net-icmp_filter.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/net-sockaddr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_audit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_generic.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_netfilter.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_protocol.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_route.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_selinux.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/netlink_xfrm.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/newfstatat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/nlattr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/nlattr_inet_diag_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/nlattr_netlink_diag_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/nlattr_unix_diag_msg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/old_mmap.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/oldfstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/oldlstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/oldstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/open.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/openat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/osf_utimes.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/pause.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/perf_event_open.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/perf_event_open_nonverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/perf_event_open_unabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/pipe2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/pkey_alloc.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/pkey_free.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/pkey_mprotect.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ppoll.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ppoll-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/pread64-pwrite64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/preadv.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/preadv-pwritev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/preadv2-pwritev2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/printstr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/prlimit64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/process_vm_readv.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/process_vm_writev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/pselect6.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ptrace.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/pwritev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/quotactl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/quotactl-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/quotactl-xfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/quotactl-xfs-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/read-write.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/readahead.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/readdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/readlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/readlinkat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/reboot.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/recvfrom.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/recvmmsg-timeout.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/recvmsg.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/regex.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/remap_file_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/rename.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/renameat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/renameat2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/request_key.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/rmdir.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/rt_sigpending.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/rt_sigprocmask.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/rt_sigqueueinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/rt_sigreturn.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/rt_sigsuspend.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/rt_sigtimedwait.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/rt_tgsigqueueinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sched.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sched_get_priority_mxx.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sched_rr_get_interval.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sched_xetaffinity.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sched_xetattr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sched_xetparam.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sched_xetscheduler.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sched_yield.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/seccomp-filter.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/seccomp-filter-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/select.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/semop.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sendfile.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sendfile64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/set_mempolicy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setdomainname.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setfsgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setfsgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setfsuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setfsuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setgroups.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setgroups32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sethostname.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setns.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setregid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setregid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setresgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setresgid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setresuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setresuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setreuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setreuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setrlimit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setuid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/setuid32.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/shmxt.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/shutdown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sigaction.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/siginfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/signal.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/signal_receive.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/signalfd4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sigpending.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sigprocmask.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sigreturn.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sigsuspend.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/socketcall.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/splice.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/stat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/stat64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/statfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/statfs64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/statx.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/swap.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sxetmask.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/symlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/symlinkat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sync.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sync_file_range.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sync_file_range2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/sysinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/syslog.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/tee.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/time.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/timer_create.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/timer_xettime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/timerfd_xettime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/times.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/times-fail.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_fstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_fstatfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_lstat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_question.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_stat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_stat_like.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_statfs.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/trace_statfs_like.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/truncate.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/truncate64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ugetrlimit.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/umask.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/umoven-illptr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/umovestr-illptr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/umovestr3.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/unlink.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/unlinkat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/unshare.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/userfaultfd.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/ustat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/utime.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/utimensat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/utimes.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/vfork-f.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/vhangup.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/vmsplice.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/wait4.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/wait4-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/waitid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/waitid-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/waitpid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/xattr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/xattr-strings.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/xet_robust_list.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/xetitimer.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/xetpgid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/xetpriority.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
+
+$(srcdir)/xettimeofday.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+	$(AM_V_GEN) $^ $@
diff --git a/tests/gen_tests.in b/tests/gen_tests.in
index be0a3a2..57fd5fd 100644
--- a/tests/gen_tests.in
+++ b/tests/gen_tests.in
@@ -184,8 +184,18 @@
 nanosleep	-a20
 net-icmp_filter	-e trace=getsockopt,setsockopt
 net-sockaddr	-a24 -e trace=connect
-netlink_protocol	-e trace=%network
+netlink_audit	+netlink_sock_diag.test
+netlink_generic	+netlink_sock_diag.test
+netlink_netfilter	+netlink_sock_diag.test
+netlink_protocol	-e trace=sendto
+netlink_route	+netlink_sock_diag.test
+netlink_selinux	+netlink_sock_diag.test
+netlink_xfrm	+netlink_sock_diag.test
 newfstatat	-a32 -v -P stat.sample -P /dev/full
+nlattr		+netlink_sock_diag.test
+nlattr_inet_diag_msg		+netlink_sock_diag.test
+nlattr_netlink_diag_msg		+netlink_sock_diag.test
+nlattr_unix_diag_msg		+netlink_sock_diag.test
 old_mmap	-a11 -e trace=mmap
 oldfstat	-a18 -v -P stat.sample
 oldlstat	-a32 -v -P stat.sample -P /dev/full
@@ -280,9 +290,13 @@
 setuid32	-a12
 shmxt	-a11 -e trace='/(osf_)?shmat,shmdt'
 shutdown	-a24
+sigaction	-a31
 siginfo	-e trace=none
+signal	-a25 -e signal=none -e trace='/^signal$'
 signal_receive	-a16 -e trace=kill
 signalfd4
+sigpending	-a15
+sigprocmask	-a34
 sigreturn	-esignal='!USR1'
 sigsuspend	-a19 -esignal=none
 socketcall	-a20
diff --git a/tests/getcpu.c b/tests/getcpu.c
index 3cb49cb..2b15753 100644
--- a/tests/getcpu.c
+++ b/tests/getcpu.c
@@ -41,16 +41,16 @@
 main(void)
 {
 	unsigned *bogus_cpu =
-		(unsigned *) tail_alloc(sizeof(* bogus_cpu)) + 1;
+		(unsigned *) tail_alloc(sizeof(*bogus_cpu)) + 1;
 	unsigned *bogus_node =
-		(unsigned *) tail_alloc(sizeof(* bogus_node)) + 1;
+		(unsigned *) tail_alloc(sizeof(*bogus_node)) + 1;
 	unsigned *bogus_tcache =
-		(unsigned *) tail_alloc(sizeof(* bogus_tcache)) + 1;
+		(unsigned *) tail_alloc(sizeof(*bogus_tcache)) + 1;
 
 	long res;
 	TAIL_ALLOC_OBJECT_CONST_PTR(unsigned, cpu);
 	TAIL_ALLOC_OBJECT_CONST_PTR(unsigned, node);
-	long * tcache = tail_alloc(128);
+	long *tcache = tail_alloc(128);
 
 	res = syscall(__NR_getcpu, NULL, NULL, NULL);
 	printf("getcpu(NULL, NULL, NULL) = %s\n", sprintrc(res));
diff --git a/tests/init.sh b/tests/init.sh
index 2844765..2d4d0b4 100644
--- a/tests/init.sh
+++ b/tests/init.sh
@@ -169,7 +169,7 @@
 
 	check_prog diff
 
-	diff -- "$expected" "$output" ||
+	diff -u -- "$expected" "$output" ||
 		fail_ "$error"
 }
 
@@ -366,7 +366,7 @@
 		STRACE=../strace
 fi
 
-: "${TIMEOUT_DURATION:=120}"
+: "${TIMEOUT_DURATION:=300}"
 : "${SLEEP_A_BIT:=sleep 1}"
 
 [ -z "${VERBOSE-}" ] ||
diff --git a/tests/interactive_block.test b/tests/interactive_block.test
new file mode 100755
index 0000000..f8f8173
--- /dev/null
+++ b/tests/interactive_block.test
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# Check that in interactive mode those signals that were blocked
+# at strace startup will remain blocked.
+
+. "${srcdir=.}/init.sh"
+
+strace0="$STRACE"
+for signo in 1 2 3 13 14 15; do
+	blocksig="../block_reset_raise_run $signo"
+	run_prog $blocksig ../umovestr
+	STRACE="$blocksig $strace0"
+	run_strace -I2 -echdir ../umovestr
+	match_diff "$LOG" "$srcdir/umovestr.expected"
+done
diff --git a/tests/ioctl.c b/tests/ioctl.c
index 5dc0864..3c666b0 100644
--- a/tests/ioctl.c
+++ b/tests/ioctl.c
@@ -54,7 +54,7 @@
  && defined EV_KEY
 
 int
-main(void )
+main(void)
 {
 	uint64_t data = 0;
 
diff --git a/tests/ioctl_block.c b/tests/ioctl_block.c
index 8e883d4..e44c4c4 100644
--- a/tests/ioctl_block.c
+++ b/tests/ioctl_block.c
@@ -58,9 +58,11 @@
 #endif
 };
 
-#define TEST_NULL_ARG(cmd) \
-	ioctl(-1, cmd, 0); \
-	printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", #cmd)
+#define TEST_NULL_ARG(cmd)						\
+	do {								\
+		ioctl(-1, cmd, 0);					\
+		printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", #cmd);	\
+	} while (0)
 
 int
 main(void)
diff --git a/tests/ioctl_evdev.c b/tests/ioctl_evdev.c
index 6cbc09f..9d16cec 100644
--- a/tests/ioctl_evdev.c
+++ b/tests/ioctl_evdev.c
@@ -67,9 +67,11 @@
 # endif /* VERBOSE */
 }
 
-# define TEST_NULL_ARG(cmd) \
-	ioctl(-1, cmd, 0); \
-	printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", #cmd)
+# define TEST_NULL_ARG(cmd)						\
+	do {								\
+		ioctl(-1, cmd, 0);					\
+		printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", #cmd);	\
+	} while (0)
 
 int
 main(void)
diff --git a/tests/ioctl_mtd.c b/tests/ioctl_mtd.c
index 71d0c0d..6a7d94a 100644
--- a/tests/ioctl_mtd.c
+++ b/tests/ioctl_mtd.c
@@ -58,15 +58,17 @@
 			       (unsigned int) _IOC_NR(cmd), #cmd); \
 		else \
 			printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", #cmd); \
-		} while (0)
+	} while (0)
 
-#define TEST_erase_info_user(cmd, eiu) \
-	ioctl(-1, cmd, eiu); \
-	printf("ioctl(-1, MIXER_%s(%u) or %s, {start=%#x, length=%#x})" \
-	       " = -1 EBADF (%m)\n", \
-	       (_IOC_DIR(cmd) == _IOC_READ) ? "READ" : "WRITE", \
-	       (unsigned int) _IOC_NR(cmd), #cmd, \
-	       eiu->start, eiu->length)
+#define TEST_erase_info_user(cmd, eiu)						\
+	do {									\
+		ioctl(-1, cmd, eiu);						\
+		printf("ioctl(-1, MIXER_%s(%u) or %s, {start=%#x, length=%#x})"	\
+		       " = -1 EBADF (%m)\n",					\
+		       (_IOC_DIR(cmd) == _IOC_READ) ? "READ" : "WRITE",		\
+		       (unsigned int) _IOC_NR(cmd), #cmd,			\
+		       eiu->start, eiu->length);				\
+	} while (0)
 
 int
 main(void)
diff --git a/tests/ioctl_sg_io_v3.c b/tests/ioctl_sg_io_v3.c
index 3808b20..3385bca 100644
--- a/tests/ioctl_sg_io_v3.c
+++ b/tests/ioctl_sg_io_v3.c
@@ -198,12 +198,12 @@
 	       sg_io->iovec_count,
 	       sg_io->dxfer_len,
 	       sg_io->timeout,
-	       * (unsigned char *) (iov[0].iov_base + 0),
-	       * (unsigned char *) (iov[0].iov_base + 1),
+	       *(unsigned char *) (iov[0].iov_base + 0),
+	       *(unsigned char *) (iov[0].iov_base + 1),
 	       (unsigned int) iov[0].iov_len,
-	       * (unsigned char *) (iov[1].iov_base + 0),
-	       * (unsigned char *) (iov[1].iov_base + 1),
-	       * (unsigned char *) (iov[1].iov_base + 2),
+	       *(unsigned char *) (iov[1].iov_base + 0),
+	       *(unsigned char *) (iov[1].iov_base + 1),
+	       *(unsigned char *) (iov[1].iov_base + 2),
 	       (unsigned int) iov[1].iov_len,
 	       sg_io->status,
 	       sg_io->masked_status,
@@ -248,12 +248,12 @@
 	       sg_io->iovec_count,
 	       sg_io->dxfer_len,
 	       sg_io->timeout,
-	       * (unsigned char *) (iov[0].iov_base + 0),
-	       * (unsigned char *) (iov[0].iov_base + 1),
+	       *(unsigned char *) (iov[0].iov_base + 0),
+	       *(unsigned char *) (iov[0].iov_base + 1),
 	       (unsigned int) iov[0].iov_len,
-	       * (unsigned char *) (iov[1].iov_base + 0),
-	       * (unsigned char *) (iov[1].iov_base + 1),
-	       * (unsigned char *) (iov[1].iov_base + 2),
+	       *(unsigned char *) (iov[1].iov_base + 0),
+	       *(unsigned char *) (iov[1].iov_base + 1),
+	       *(unsigned char *) (iov[1].iov_base + 2),
 	       (unsigned int) iov[1].iov_len,
 	       sg_io->status,
 	       sg_io->masked_status,
@@ -300,10 +300,10 @@
 	       sg_io->iovec_count,
 	       sg_io->dxfer_len,
 	       sg_io->timeout,
-	       * (unsigned char *) (sg_io->dxferp + 0),
-	       * (unsigned char *) (sg_io->dxferp + 1),
-	       * (unsigned char *) (sg_io->dxferp + 2),
-	       * (unsigned char *) (sg_io->dxferp + 3),
+	       *(unsigned char *) (sg_io->dxferp + 0),
+	       *(unsigned char *) (sg_io->dxferp + 1),
+	       *(unsigned char *) (sg_io->dxferp + 2),
+	       *(unsigned char *) (sg_io->dxferp + 3),
 	       sg_io->status,
 	       sg_io->masked_status,
 	       sg_io->msg_status,
@@ -348,11 +348,11 @@
 	       sg_io->iovec_count,
 	       sg_io->dxfer_len,
 	       sg_io->timeout,
-	       * (unsigned char *) (sg_io->dxferp + 0),
-	       * (unsigned char *) (sg_io->dxferp + 1),
-	       * (unsigned char *) (sg_io->dxferp + 2),
-	       * (unsigned char *) (sg_io->dxferp + 0),
-	       * (unsigned char *) (sg_io->dxferp + 1),
+	       *(unsigned char *) (sg_io->dxferp + 0),
+	       *(unsigned char *) (sg_io->dxferp + 1),
+	       *(unsigned char *) (sg_io->dxferp + 2),
+	       *(unsigned char *) (sg_io->dxferp + 0),
+	       *(unsigned char *) (sg_io->dxferp + 1),
 	       sg_io->status,
 	       sg_io->masked_status,
 	       sg_io->msg_status,
@@ -394,9 +394,9 @@
 	       sg_io->iovec_count,
 	       sg_io->dxfer_len,
 	       sg_io->timeout,
-	       * (unsigned char *) (sg_io->dxferp + 0),
-	       * (unsigned char *) (sg_io->dxferp + 1),
-	       * (unsigned char *) (sg_io->dxferp + 2),
+	       *(unsigned char *) (sg_io->dxferp + 0),
+	       *(unsigned char *) (sg_io->dxferp + 1),
+	       *(unsigned char *) (sg_io->dxferp + 2),
 	       sg_io->status,
 	       sg_io->masked_status,
 	       sg_io->msg_status,
diff --git a/tests/ioctl_sg_io_v4.c b/tests/ioctl_sg_io_v4.c
index 9c1e9fa..d2f7b72 100644
--- a/tests/ioctl_sg_io_v4.c
+++ b/tests/ioctl_sg_io_v4.c
@@ -189,9 +189,9 @@
 	       ", dout_resid=%d"
 	       ", generated_tag=%#" PRI__x64 "}) = -1 EBADF (%m)\n",
 	       sg_io->request_len,
-	       * (unsigned char *) ((unsigned long) sg_io->request + 0),
-	       * (unsigned char *) ((unsigned long) sg_io->request + 1),
-	       * (unsigned char *) ((unsigned long) sg_io->request + 2),
+	       *(unsigned char *) ((unsigned long) sg_io->request + 0),
+	       *(unsigned char *) ((unsigned long) sg_io->request + 1),
+	       *(unsigned char *) ((unsigned long) sg_io->request + 2),
 	       sg_io->request_tag,
 	       sg_io->request_attr,
 	       sg_io->request_priority,
@@ -201,22 +201,22 @@
 	       sg_io->dout_xfer_len,
 	       sg_io->din_iovec_count,
 	       sg_io->din_xfer_len,
-	       * (unsigned char *) (iov[0].iov_base + 0),
-	       * (unsigned char *) (iov[0].iov_base + 1),
+	       *(unsigned char *) (iov[0].iov_base + 0),
+	       *(unsigned char *) (iov[0].iov_base + 1),
 	       (unsigned int) iov[0].iov_len,
-	       * (unsigned char *) (iov[1].iov_base + 0),
-	       * (unsigned char *) (iov[1].iov_base + 1),
-	       * (unsigned char *) (iov[1].iov_base + 2),
+	       *(unsigned char *) (iov[1].iov_base + 0),
+	       *(unsigned char *) (iov[1].iov_base + 1),
+	       *(unsigned char *) (iov[1].iov_base + 2),
 	       (unsigned int) iov[1].iov_len,
 	       sg_io->timeout,
 	       sg_io->usr_ptr,
 	       sg_io->response_len,
-	       * (unsigned char *) ((unsigned long) sg_io->response + 0),
-	       * (unsigned char *) ((unsigned long) sg_io->response + 1),
-	       * (unsigned char *) ((unsigned long) sg_io->din_xferp + 0),
-	       * (unsigned char *) ((unsigned long) sg_io->din_xferp + 1),
-	       * (unsigned char *) ((unsigned long) sg_io->din_xferp + 2),
-	       * (unsigned char *) ((unsigned long) sg_io->din_xferp + 3),
+	       *(unsigned char *) ((unsigned long) sg_io->response + 0),
+	       *(unsigned char *) ((unsigned long) sg_io->response + 1),
+	       *(unsigned char *) ((unsigned long) sg_io->din_xferp + 0),
+	       *(unsigned char *) ((unsigned long) sg_io->din_xferp + 1),
+	       *(unsigned char *) ((unsigned long) sg_io->din_xferp + 2),
+	       *(unsigned char *) ((unsigned long) sg_io->din_xferp + 3),
 	       sg_io->driver_status,
 	       sg_io->transport_status,
 	       sg_io->device_status,
diff --git a/tests/ioctl_sock_gifconf.c b/tests/ioctl_sock_gifconf.c
index f81faef..efa55a3 100644
--- a/tests/ioctl_sock_gifconf.c
+++ b/tests/ioctl_sock_gifconf.c
@@ -105,7 +105,7 @@
 static void
 gifconf_ioctl(int fd, struct ifconf *ifc, bool ifc_valid)
 {
-	const char * errstr;
+	const char *errstr;
 	int in_len;
 	char *in_buf;
 	long rc;
diff --git a/tests/ioctl_uffdio.c b/tests/ioctl_uffdio.c
index c98e4a0..817e3c7 100644
--- a/tests/ioctl_uffdio.c
+++ b/tests/ioctl_uffdio.c
@@ -71,7 +71,7 @@
 	api_struct->features = 0;
 	rc = ioctl(fd, UFFDIO_API, api_struct);
 	printf("ioctl(%d, UFFDIO_API, {api=0xaa, features=0, "
-	       "features.out=%#" PRIx64 ", " "ioctls=1<<_UFFDIO_REGISTER|"
+	       "features.out=%#" PRIx64 ", ioctls=1<<_UFFDIO_REGISTER|"
 	       "1<<_UFFDIO_UNREGISTER|1<<_UFFDIO_API",
 	       fd, (uint64_t)api_struct->features);
 	api_struct->ioctls &= ~(1ull<<_UFFDIO_REGISTER|
diff --git a/tests/ioctl_v4l2.c b/tests/ioctl_v4l2.c
index 921e7a8..cc5dee6 100644
--- a/tests/ioctl_v4l2.c
+++ b/tests/ioctl_v4l2.c
@@ -85,7 +85,7 @@
 		f->fmt.pix_mp.pixelformat = magic;
 		f->fmt.pix_mp.field = V4L2_FIELD_NONE;
 		f->fmt.pix_mp.colorspace = V4L2_COLORSPACE_JPEG;
-		struct v4l2_plane_pix_format* cur_pix =
+		struct v4l2_plane_pix_format *cur_pix =
 		       f->fmt.pix_mp.plane_fmt;
 		for (i = 0;
 		     i < ARRAY_SIZE(f->fmt.pix_mp.plane_fmt);
@@ -119,8 +119,8 @@
 		f->fmt.win.clips[1].c.width = 0x9e3a6fb3;
 		f->fmt.win.clips[1].c.height = 0x05617b76;
 
-		f->fmt.win.bitmap = (void*) -2UL;
-#if HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA
+		f->fmt.win.bitmap = (void *) -2UL;
+#ifdef HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA
 		f->fmt.win.global_alpha = 0xce;
 #endif
 		break;
@@ -158,7 +158,7 @@
 #if HAVE_DECL_V4L2_BUF_TYPE_SDR_CAPTURE
 	case V4L2_BUF_TYPE_SDR_CAPTURE:
 		f->fmt.sdr.pixelformat = magic;
-#if HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE
+#ifdef HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE
 		f->fmt.sdr.buffersize = 0x25afabfb;
 #endif
 		break;
@@ -168,8 +168,8 @@
 
 static void
 dprint_ioctl_v4l2(struct v4l2_format *const f,
-		  const char* request, const unsigned int buf_type,
-		  const char* buf_type_string)
+		  const char *request, const unsigned int buf_type,
+		  const char *buf_type_string)
 {
 	switch (buf_type) {
 	case V4L2_BUF_TYPE_VIDEO_CAPTURE:
@@ -225,7 +225,7 @@
 		       "[{left=%d, top=%d, width=%u, height=%u}, "
 		       "{left=%d, top=%d, width=%u, height=%u}]"
 		       ", clipcount=%u, bitmap=%p"
-#if HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA
+#ifdef HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA
 		       ", global_alpha=%#x"
 #endif
 		       "}}) = -1 EBADF (%m)\n",
@@ -243,7 +243,7 @@
 		       f->fmt.win.clips[1].c.width,
 		       f->fmt.win.clips[1].c.height,
 		       f->fmt.win.clipcount, f->fmt.win.bitmap
-#if HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA
+#ifdef HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA
 		       , f->fmt.win.global_alpha
 #endif
 		       );
@@ -304,14 +304,14 @@
 		printf("ioctl(-1, %s, {type=%s"
 		       ", fmt.sdr={pixelformat=v4l2_fourcc('\\x%x', '\\x%x',"
 		       " '\\x%x', '\\x%x')"
-#if HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE
+#ifdef HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE
 		       ", buffersize=%u"
 #endif
 		       "}}) = -1 EBADF (%m)\n",
 		       request,
 		       buf_type_string,
 		       cc0(magic), cc1(magic), cc2(magic), cc3(magic)
-#if HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE
+#ifdef HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE
 		       , f->fmt.sdr.buffersize
 #endif
 		       );
@@ -319,12 +319,11 @@
 #endif
 	}
 }
-#define print_ioctl_v4l2(v4l2_format, request, buf_type) do { \
-	dprint_ioctl_v4l2((v4l2_format), (request), (buf_type), #buf_type); \
-} while (0)
+#define print_ioctl_v4l2(v4l2_format, request, buf_type)	\
+	dprint_ioctl_v4l2((v4l2_format), (request), (buf_type), #buf_type)
 
 int
-main(void )
+main(void)
 {
 	const unsigned int size = get_page_size();
 	void *const page = tail_alloc(size);
@@ -689,7 +688,7 @@
 
 	TAIL_ALLOC_OBJECT_CONST_PTR(struct v4l2_tuner, p_tuner);
 	p_tuner->index = 0x4fb6df39;
-	strcpy((char*)p_tuner->name, "cum tacent clamant");
+	strcpy((char *) p_tuner->name, "cum tacent clamant");
 	p_tuner->type = V4L2_TUNER_RADIO;
 	p_tuner->capability = V4L2_TUNER_CAP_LOW;
 	p_tuner->rangelow = 0xa673bc29;
diff --git a/tests/ip_mreq.c b/tests/ip_mreq.c
index 4bcda09..4bfe00f 100644
--- a/tests/ip_mreq.c
+++ b/tests/ip_mreq.c
@@ -101,7 +101,7 @@
 				short_any[i].optval, 1);
 		printf("setsockopt(0, %s, %s, \"\\%hho\", 1) = %s\n",
 		       short_any[i].str_level, short_any[i].str_optname,
-		       * (unsigned char *) short_any[i].optval,
+		       *(unsigned char *) short_any[i].optval,
 		       sprintrc(rc));
 
 		rc = setsockopt(0, short_any[i].level, short_any[i].optname,
@@ -139,7 +139,7 @@
 		rc = setsockopt(0, SOL_IPV6, long_ipv6[i].optname,
 				m6, sizeof(*m6));
 		printf("setsockopt(0, SOL_IPV6, %s"
-		       ", {ipv6mr_multiaddr=inet_pton(\"%s\")"
+		       ", {inet_pton(AF_INET6, \"%s\", &ipv6mr_multiaddr)"
 		       ", ipv6mr_interface=if_nametoindex(\"lo\")}"
 		       ", %u) = %s\n",
 		       long_ipv6[i].str_optname, multi6addr,
diff --git a/tests/ipc_msgbuf.c b/tests/ipc_msgbuf.c
index 1c34494..9d149fa 100644
--- a/tests/ipc_msgbuf.c
+++ b/tests/ipc_msgbuf.c
@@ -45,7 +45,7 @@
 }
 
 int
-main (void)
+main(void)
 {
 	const long mtype = 0xdefaced;
 	struct {
diff --git a/tests/ipc_sem.c b/tests/ipc_sem.c
index 0b730c1..c883272 100644
--- a/tests/ipc_sem.c
+++ b/tests/ipc_sem.c
@@ -37,10 +37,10 @@
 #include "xlat/resource_flags.h"
 
 union semun {
-	int              val;    /* Value for SETVAL */
-	struct semid_ds *buf;    /* Buffer for IPC_STAT, IPC_SET */
-	unsigned short  *array;  /* Array for GETALL, SETALL */
-	struct seminfo  *__buf;  /* Buffer for IPC_INFO
+	int		 val;    /* Value for SETVAL */
+	struct semid_ds	*buf;    /* Buffer for IPC_STAT, IPC_SET */
+	unsigned short	*array;  /* Array for GETALL, SETALL */
+	struct seminfo	*__buf;  /* Buffer for IPC_INFO
 				    (Linux-specific) */
 };
 
diff --git a/tests/kexec_file_load.c b/tests/kexec_file_load.c
index c939e4f..7a9b64b 100644
--- a/tests/kexec_file_load.c
+++ b/tests/kexec_file_load.c
@@ -45,7 +45,7 @@
 	const char *str;
 };
 
-#define CMDLINE_STR "deadcodebaddatadefaced";
+#define CMDLINE_STR "deadcodebaddatadefaced"
 
 int
 main(void)
diff --git a/tests/keyctl.c b/tests/keyctl.c
index 2e26076..492c62a 100644
--- a/tests/keyctl.c
+++ b/tests/keyctl.c
@@ -74,7 +74,7 @@
  * significantly breaking interface.
  */
 bool nul_terminated_buf = true;
-bool buf_in_arg = false;
+bool buf_in_arg;
 
 /*
  * When this is called with positive size, the buffer provided is an "out"
diff --git a/tests/ksysent.c b/tests/ksysent.c
index f598664..860e21e 100644
--- a/tests/ksysent.c
+++ b/tests/ksysent.c
@@ -53,7 +53,7 @@
 #define SI 0
 #define SE 0
 #define CST 0
-#define SEN(arg) 0,0
+#define SEN(arg) 0, 0
 
 static const struct_sysent syscallent[] = {
 #include "syscallent.h"
diff --git a/tests/mincore.c b/tests/mincore.c
index ea2b49e..0ede687 100644
--- a/tests/mincore.c
+++ b/tests/mincore.c
@@ -29,8 +29,6 @@
 #include <stdio.h>
 #include <sys/mman.h>
 
-#define DEFAULT_STRLEN 32
-
 static void
 print_mincore(const unsigned int pages, void *const addr,
 	      const size_t size, unsigned char *const vec)
diff --git a/tests/mmsg.c b/tests/mmsg.c
index 88805d1..a5cf0e7 100644
--- a/tests/mmsg.c
+++ b/tests/mmsg.c
@@ -113,14 +113,16 @@
 		" | 00000 %-49s  %-16s |\n",
 		w0_c, LENGTH_OF(w0_c),
 		w1_c, LENGTH_OF(w1_c),
-		ARRAY_SIZE(w0_iov_),
+		(unsigned int) ARRAY_SIZE(w0_iov_),
 		LENGTH_OF(w0_c) + LENGTH_OF(w1_c),
-		w2_c, LENGTH_OF(w2_c), ARRAY_SIZE(w1_iov_),
+		w2_c, LENGTH_OF(w2_c), (unsigned int) ARRAY_SIZE(w1_iov_),
 		LENGTH_OF(w2_c),
 		n_w_mmh, r,
-		ARRAY_SIZE(w0_iov_), LENGTH_OF(w0_c), w0_d, w0_c,
+		(unsigned int) ARRAY_SIZE(w0_iov_),
+		LENGTH_OF(w0_c), w0_d, w0_c,
 		LENGTH_OF(w1_c), w1_d, w1_c,
-		ARRAY_SIZE(w1_iov_), LENGTH_OF(w2_c), w2_d, w2_c);
+		(unsigned int) ARRAY_SIZE(w1_iov_),
+		LENGTH_OF(w2_c), w2_d, w2_c);
 
 	const unsigned int w_len =
 		LENGTH_OF(w0_c) + LENGTH_OF(w1_c) + LENGTH_OF(w2_c);
@@ -184,11 +186,14 @@
 		" = %u buffers in vector 1\n"
 		" * %u bytes in buffer 0\n"
 		" | 00000 %-49s  %-16s |\n",
-		r0_c, r_len, ARRAY_SIZE(r0_iov_), LENGTH_OF(r0_c),
-		r1_c, r_len, r_len, ARRAY_SIZE(r1_iov_), LENGTH_OF(r1_c),
+		r0_c, r_len, (unsigned int) ARRAY_SIZE(r0_iov_),
+		LENGTH_OF(r0_c), r1_c, r_len, r_len,
+		(unsigned int) ARRAY_SIZE(r1_iov_), LENGTH_OF(r1_c),
 		n_r_mmh, r,
-		ARRAY_SIZE(r0_iov_), LENGTH_OF(r0_c), r0_d, r0_c,
-		ARRAY_SIZE(r1_iov_), LENGTH_OF(r1_c), r1_d, r1_c);
+		(unsigned int) ARRAY_SIZE(r0_iov_), LENGTH_OF(r0_c),
+		r0_d, r0_c,
+		(unsigned int) ARRAY_SIZE(r1_iov_), LENGTH_OF(r1_c),
+		r1_d, r1_c);
 
 	tprintf("+++ exited with 0 +++\n");
 	return 0;
diff --git a/tests/mmsg_name.c b/tests/mmsg_name.c
index a7a55c5..ad5a482 100644
--- a/tests/mmsg_name.c
+++ b/tests/mmsg_name.c
@@ -40,8 +40,6 @@
 
 #include "msghdr.h"
 
-#define DEFAULT_STRLEN 32
-
 #define IOV_MAX1 (IOV_MAX + 1)
 
 #ifndef TEST_NAME
@@ -77,7 +75,7 @@
 	}
 	printf("%d, msg_iov=[{iov_base=\"%c\", iov_len=1}]"
 	       ", msg_iovlen=1, msg_controllen=0, msg_flags=0}",
-	       (int) msg->msg_namelen, * (char *) msg->msg_iov[0].iov_base);
+	       (int) msg->msg_namelen, *(char *) msg->msg_iov[0].iov_base);
 }
 
 static void
diff --git a/tests/mq.c b/tests/mq.c
index ee2d059..cf1b730 100644
--- a/tests/mq.c
+++ b/tests/mq.c
@@ -39,7 +39,7 @@
 # include <sys/stat.h>
 
 int
-main (void)
+main(void)
 {
 	struct mq_attr attr;
 	(void) close(0);
diff --git a/tests/mq_sendrecv.c b/tests/mq_sendrecv.c
index e3ad0d5..f6f6bd2 100644
--- a/tests/mq_sendrecv.c
+++ b/tests/mq_sendrecv.c
@@ -228,7 +228,7 @@
 	static const struct timespec future_tmout_data = {
 		.tv_sec = (time_t) 0x7ea1fade7e57faceLL,
 		.tv_nsec = 999999999,
-	};;
+	};
 	struct_sigevent bogus_sev_data = {
 		.sigev_notify = 0xdefaced,
 		.sigev_signo = 0xfacefeed,
@@ -437,7 +437,7 @@
 	bogus_attrs[1] = 2;
 	bogus_attrs[2] = MSG_SIZE;
 	fd = rc = syscall(__NR_mq_open, mq_name,
-		          O_CREAT|O_RDWR|O_NONBLOCK, S_IRWXU, bogus_attrs);
+			  O_CREAT|O_RDWR|O_NONBLOCK, S_IRWXU, bogus_attrs);
 	errstr = sprintrc(rc);
 	if (rc < 0)
 		perror_msg_and_skip("mq_open");
diff --git a/tests/msg_control.c b/tests/msg_control.c
index 1e64f1a..b63f2d0 100644
--- a/tests/msg_control.c
+++ b/tests/msg_control.c
@@ -40,6 +40,9 @@
 #include <netinet/in.h>
 #include <arpa/inet.h>
 
+#include "xlat.h"
+#include "xlat/scmvals.h"
+
 #ifndef SOL_IP
 # define SOL_IP 0
 #endif
@@ -60,8 +63,6 @@
 	return page - CMSG_ALIGN(len);
 }
 
-#define DEFAULT_STRLEN 32
-
 static void
 print_fds(const struct cmsghdr *const cmsg, const size_t cmsg_len)
 {
@@ -230,6 +231,152 @@
 }
 
 static void
+test_scm_timestamp(struct msghdr *const mh, void *const page)
+{
+	size_t len = CMSG_SPACE(sizeof(struct timeval));
+	struct cmsghdr *cmsg = get_cmsghdr(page, len);
+
+	cmsg->cmsg_len = CMSG_LEN(sizeof(struct timeval));
+	cmsg->cmsg_level = SOL_SOCKET;
+	cmsg->cmsg_type = SCM_TIMESTAMP;
+	struct timeval *tv = (struct timeval *) CMSG_DATA(cmsg);
+	tv->tv_sec = 123456789;
+	tv->tv_usec = 987654;
+
+	mh->msg_control = cmsg;
+	mh->msg_controllen = len;
+
+	int rc = sendmsg(-1, mh, 0);
+	printf("sendmsg(-1, {msg_name=NULL, msg_namelen=0, msg_iov=NULL"
+	       ", msg_iovlen=0, msg_control=[{cmsg_len=%u"
+	       ", cmsg_level=SOL_SOCKET, cmsg_type=SCM_TIMESTAMP"
+	       ", cmsg_data={tv_sec=%lld, tv_usec=%llu}}]"
+	       ", msg_controllen=%lu, msg_flags=0}, 0) = %d %s (%m)\n",
+	       (unsigned) cmsg->cmsg_len,
+	       (long long) tv->tv_sec, zero_extend_signed_to_ull(tv->tv_usec),
+	       (unsigned long) len, rc, errno2name());
+
+	len = CMSG_SPACE(sizeof(struct timeval) - sizeof(long));
+	cmsg = get_cmsghdr(page, len);
+
+	cmsg->cmsg_len = CMSG_LEN(sizeof(struct timeval) - sizeof(long));
+	cmsg->cmsg_level = SOL_SOCKET;
+	cmsg->cmsg_type = SCM_TIMESTAMP;
+
+	mh->msg_control = cmsg;
+	mh->msg_controllen = len;
+
+	rc = sendmsg(-1, mh, 0);
+	printf("sendmsg(-1, {msg_name=NULL, msg_namelen=0, msg_iov=NULL"
+	       ", msg_iovlen=0, msg_control=[{cmsg_len=%u"
+	       ", cmsg_level=SOL_SOCKET, cmsg_type=SCM_TIMESTAMP, cmsg_data=?}]"
+	       ", msg_controllen=%lu, msg_flags=0}, 0) = %d %s (%m)\n",
+	       (unsigned) cmsg->cmsg_len,
+	       (unsigned long) len, rc, errno2name());
+}
+
+static void
+test_scm_timestampns(struct msghdr *const mh, void *const page)
+{
+	size_t len = CMSG_SPACE(sizeof(struct timespec));
+	struct cmsghdr *cmsg = get_cmsghdr(page, len);
+
+	cmsg->cmsg_len = CMSG_LEN(sizeof(struct timespec));
+	cmsg->cmsg_level = SOL_SOCKET;
+	cmsg->cmsg_type = SCM_TIMESTAMPNS;
+	struct timespec *ts = (struct timespec *) CMSG_DATA(cmsg);
+	ts->tv_sec = 123456789;
+	ts->tv_nsec = 987654321;
+
+	mh->msg_control = cmsg;
+	mh->msg_controllen = len;
+
+	int rc = sendmsg(-1, mh, 0);
+	printf("sendmsg(-1, {msg_name=NULL, msg_namelen=0, msg_iov=NULL"
+	       ", msg_iovlen=0, msg_control=[{cmsg_len=%u"
+	       ", cmsg_level=SOL_SOCKET, cmsg_type=SCM_TIMESTAMPNS"
+	       ", cmsg_data={tv_sec=%lld, tv_nsec=%llu}}]"
+	       ", msg_controllen=%lu, msg_flags=0}, 0) = %d %s (%m)\n",
+	       (unsigned) cmsg->cmsg_len,
+	       (long long) ts->tv_sec, zero_extend_signed_to_ull(ts->tv_nsec),
+	       (unsigned long) len, rc, errno2name());
+
+	len = CMSG_SPACE(sizeof(struct timespec) - sizeof(long));
+	cmsg = get_cmsghdr(page, len);
+
+	cmsg->cmsg_len = CMSG_LEN(sizeof(struct timespec) - sizeof(long));
+	cmsg->cmsg_level = SOL_SOCKET;
+	cmsg->cmsg_type = SCM_TIMESTAMPNS;
+
+	mh->msg_control = cmsg;
+	mh->msg_controllen = len;
+
+	rc = sendmsg(-1, mh, 0);
+	printf("sendmsg(-1, {msg_name=NULL, msg_namelen=0, msg_iov=NULL"
+	       ", msg_iovlen=0, msg_control=[{cmsg_len=%u"
+	       ", cmsg_level=SOL_SOCKET, cmsg_type=SCM_TIMESTAMPNS"
+	       ", cmsg_data=?}]"
+	       ", msg_controllen=%lu, msg_flags=0}, 0) = %d %s (%m)\n",
+	       (unsigned) cmsg->cmsg_len,
+	       (unsigned long) len, rc, errno2name());
+}
+
+static void
+test_scm_timestamping(struct msghdr *const mh, void *const page)
+{
+	size_t len = CMSG_SPACE(3 * sizeof(struct timespec));
+	struct cmsghdr *cmsg = get_cmsghdr(page, len);
+
+	cmsg->cmsg_len = CMSG_LEN(3 * sizeof(struct timespec));
+	cmsg->cmsg_level = SOL_SOCKET;
+	cmsg->cmsg_type = SCM_TIMESTAMPING;
+	struct timespec *ts = (struct timespec *) CMSG_DATA(cmsg);
+	ts[0].tv_sec = 123456789;
+	ts[0].tv_nsec = 987654321;
+	ts[1].tv_sec = 123456790;
+	ts[1].tv_nsec = 987654320;
+	ts[2].tv_sec = 123456791;
+	ts[2].tv_nsec = 987654319;
+
+	mh->msg_control = cmsg;
+	mh->msg_controllen = len;
+
+	int rc = sendmsg(-1, mh, 0);
+	printf("sendmsg(-1, {msg_name=NULL, msg_namelen=0, msg_iov=NULL"
+	       ", msg_iovlen=0, msg_control=[{cmsg_len=%u"
+	       ", cmsg_level=SOL_SOCKET, cmsg_type=SCM_TIMESTAMPING"
+	       ", cmsg_data=[{tv_sec=%lld, tv_nsec=%llu}"
+	       ", {tv_sec=%lld, tv_nsec=%llu}, {tv_sec=%lld, tv_nsec=%llu}]}]"
+	       ", msg_controllen=%lu, msg_flags=0}, 0) = %d %s (%m)\n",
+	       (unsigned) cmsg->cmsg_len, (long long) ts[0].tv_sec,
+	       zero_extend_signed_to_ull(ts[0].tv_nsec),
+	       (long long) ts[1].tv_sec,
+	       zero_extend_signed_to_ull(ts[1].tv_nsec),
+	       (long long) ts[2].tv_sec,
+	       zero_extend_signed_to_ull(ts[2].tv_nsec),
+	       (unsigned long) len, rc, errno2name());
+
+	len = CMSG_SPACE(3 * sizeof(struct timespec) - sizeof(long));
+	cmsg = get_cmsghdr(page, len);
+
+	cmsg->cmsg_len = CMSG_LEN(3 * sizeof(struct timespec) - sizeof(long));
+	cmsg->cmsg_level = SOL_SOCKET;
+	cmsg->cmsg_type = SCM_TIMESTAMPING;
+
+	mh->msg_control = cmsg;
+	mh->msg_controllen = len;
+
+	rc = sendmsg(-1, mh, 0);
+	printf("sendmsg(-1, {msg_name=NULL, msg_namelen=0, msg_iov=NULL"
+	       ", msg_iovlen=0, msg_control=[{cmsg_len=%u"
+	       ", cmsg_level=SOL_SOCKET, cmsg_type=SCM_TIMESTAMPING"
+	       ", cmsg_data=?}]"
+	       ", msg_controllen=%lu, msg_flags=0}, 0) = %d %s (%m)\n",
+	       (unsigned) cmsg->cmsg_len,
+	       (unsigned long) len, rc, errno2name());
+}
+
+static void
 print_security(const struct cmsghdr *const cmsg, const size_t cmsg_len)
 {
 	int n = cmsg_len > CMSG_LEN(0) ? cmsg_len - CMSG_LEN(0) : 0;
@@ -378,12 +525,16 @@
 	test_scm_rights3(mh, page, DEFAULT_STRLEN);
 	test_scm_rights3(mh, page, DEFAULT_STRLEN + 1);
 
+	test_scm_timestamp(mh, page);
+	test_scm_timestampns(mh, page);
+	test_scm_timestamping(mh, page);
+
 	test_unknown_type(mh, page, ARG_STR(SOL_SOCKET), "SCM_???");
 }
 
 static void
 test_ip_pktinfo(struct msghdr *const mh, void *const page,
-	        const int cmsg_type, const char *const cmsg_type_str)
+		const int cmsg_type, const char *const cmsg_type_str)
 {
 	const unsigned int len = CMSG_SPACE(sizeof(struct in_pktinfo));
 	struct cmsghdr *const cmsg = get_cmsghdr(page, len);
@@ -448,7 +599,7 @@
 
 static void
 test_ip_uint8_t(struct msghdr *const mh, void *const page,
-	        const int cmsg_type, const char *const cmsg_type_str)
+		const int cmsg_type, const char *const cmsg_type_str)
 {
 	const unsigned int len = CMSG_SPACE(1);
 	struct cmsghdr *const cmsg = get_cmsghdr(page, len);
@@ -530,7 +681,7 @@
 
 static void
 test_ip_recverr(struct msghdr *const mh, void *const page,
-	        const int cmsg_type, const char *const cmsg_type_str)
+		const int cmsg_type, const char *const cmsg_type_str)
 {
 	const unsigned int len = CMSG_SPACE(sizeof(struct sock_ee));
 	struct cmsghdr *const cmsg = get_cmsghdr(page, len);
diff --git a/tests/net-accept-connect.c b/tests/net-accept-connect.c
index 04c05a6..0050eeb 100644
--- a/tests/net-accept-connect.c
+++ b/tests/net-accept-connect.c
@@ -69,7 +69,7 @@
 	if (listen(0, 5))
 		perror_msg_and_skip("listen");
 
-	memset(&addr, 0, sizeof addr);
+	memset(&addr, 0, sizeof(addr));
 	assert(getsockname(0, (struct sockaddr *) &addr, &len) == 0);
 	if (len > sizeof(addr))
 		len = sizeof(addr);
diff --git a/tests/net-sockaddr.c b/tests/net-sockaddr.c
index 9dc9ecf..1d9bac3 100644
--- a/tests/net-sockaddr.c
+++ b/tests/net-sockaddr.c
@@ -37,11 +37,11 @@
 #include <sys/un.h>
 #include <arpa/inet.h>
 #include <netinet/in.h>
+#include "netlink.h"
 #include <linux/if_arp.h>
 #include <linux/if_ether.h>
 #include <linux/if_packet.h>
 #include <linux/ipx.h>
-#include <linux/netlink.h>
 #ifdef HAVE_BLUETOOTH_BLUETOOTH_H
 # include <bluetooth/bluetooth.h>
 # include <bluetooth/hci.h>
diff --git a/tests/net-y-unix.c b/tests/net-y-unix.c
index df56ad6..fbdf590 100644
--- a/tests/net-y-unix.c
+++ b/tests/net-y-unix.c
@@ -182,7 +182,7 @@
 		perror_msg_and_fail("accept");
 	accept_inode = inode_of_sockfd(accept_fd);
 	const char * const sun_path1 =
-		((struct sockaddr_un *) accept_sa) -> sun_path + 1;
+		((struct sockaddr_un *) accept_sa)->sun_path + 1;
 	printf("accept(%d<socket:[%lu]>, {sa_family=AF_UNIX"
 	       ", sun_path=@\"%s\"}, [%d->%d]) = %d<socket:[%lu]>\n",
 	       listen_fd, listen_inode, sun_path1,
diff --git a/tests/net-yy-inet.c b/tests/net-yy-inet.c
index af1262e..c043920 100644
--- a/tests/net-yy-inet.c
+++ b/tests/net-yy-inet.c
@@ -74,7 +74,7 @@
 	if (getsockname(listen_fd, listen_sa, len))
 		perror_msg_and_fail("getsockname");
 	const unsigned int listen_port =
-		ntohs(((struct sockaddr_in *) listen_sa) -> sin_port);
+		ntohs(((struct sockaddr_in *) listen_sa)->sin_port);
 	printf("getsockname(%d<TCP:[127.0.0.1:%u]>, {sa_family=AF_INET"
 	       ", sin_port=htons(%u), sin_addr=inet_addr(\"127.0.0.1\")}"
 	       ", [%u]) = 0\n",
@@ -109,7 +109,7 @@
 	if (accept_fd < 0)
 		perror_msg_and_fail("accept");
 	const unsigned int connect_port =
-		ntohs(((struct sockaddr_in *) accept_sa) -> sin_port);
+		ntohs(((struct sockaddr_in *) accept_sa)->sin_port);
 	printf("accept(%d<TCP:[127.0.0.1:%u]>, {sa_family=AF_INET"
 	       ", sin_port=htons(%u), sin_addr=inet_addr(\"127.0.0.1\")}"
 	       ", [%u]) = %d<TCP:[127.0.0.1:%u->127.0.0.1:%u]>\n",
diff --git a/tests/net-yy-netlink.c b/tests/net-yy-netlink.c
index 6539eda..8ccf5bc 100644
--- a/tests/net-yy-netlink.c
+++ b/tests/net-yy-netlink.c
@@ -36,14 +36,10 @@
 #include <string.h>
 #include <unistd.h>
 #include <sys/socket.h>
-#include <linux/netlink.h>
+#include "netlink.h"
 #include <linux/sock_diag.h>
 #include <linux/netlink_diag.h>
 
-#if !defined NETLINK_SOCK_DIAG && defined NETLINK_INET_DIAG
-# define NETLINK_SOCK_DIAG NETLINK_INET_DIAG
-#endif
-
 int
 main(void)
 {
diff --git a/tests/net-yy-unix.c b/tests/net-yy-unix.c
index f27cdc0..21822db 100644
--- a/tests/net-yy-unix.c
+++ b/tests/net-yy-unix.c
@@ -185,7 +185,7 @@
 		perror_msg_and_fail("accept");
 	accept_inode = inode_of_sockfd(accept_fd);
 	const char * const sun_path1 =
-		((struct sockaddr_un *) accept_sa) -> sun_path + 1;
+		((struct sockaddr_un *) accept_sa)->sun_path + 1;
 	printf("accept(%d<UNIX:[%lu,\"%s\"]>, {sa_family=AF_UNIX"
 	       ", sun_path=@\"%s\"}, [%d->%d]) = %d<UNIX:[%lu->%lu,\"%s\"]>\n",
 	       listen_fd, listen_inode, TEST_SOCKET, sun_path1,
diff --git a/tests/netlink_audit.c b/tests/netlink_audit.c
new file mode 100644
index 0000000..00ddc4f
--- /dev/null
+++ b/tests/netlink_audit.c
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@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.
+ */
+
+#include "tests.h"
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/socket.h>
+#include <linux/audit.h>
+#include "netlink.h"
+
+static void
+test_nlmsg_type(const int fd)
+{
+	long rc;
+	struct nlmsghdr nlh = {
+		.nlmsg_len = sizeof(nlh),
+		.nlmsg_type = AUDIT_GET,
+		.nlmsg_flags = NLM_F_REQUEST,
+	};
+
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=AUDIT_GET"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+}
+
+int main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	int fd = create_nl_socket(NETLINK_AUDIT);
+
+	test_nlmsg_type(fd);
+
+	printf("+++ exited with 0 +++\n");
+
+	return 0;
+}
diff --git a/tests/netlink_audit.gen.test b/tests/netlink_audit.gen.test
new file mode 100755
index 0000000..6511067
--- /dev/null
+++ b/tests/netlink_audit.gen.test
@@ -0,0 +1,3 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (netlink_audit +netlink_sock_diag.test); do not edit.
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests/netlink_generic.c b/tests/netlink_generic.c
new file mode 100644
index 0000000..4f80c8b
--- /dev/null
+++ b/tests/netlink_generic.c
@@ -0,0 +1,88 @@
+/*
+ * Copyright (c) 2017 The strace developers.
+ *
+ * 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.
+ */
+
+/* This test case is based on netlink_selinux.c */
+
+#include "tests.h"
+
+#ifdef HAVE_LINUX_GENETLINK_H
+
+# include <stdio.h>
+# include <string.h>
+# include <unistd.h>
+# include <sys/socket.h>
+# include "netlink.h"
+# include <linux/genetlink.h>
+
+static void
+test_nlmsg_type(const int fd)
+{
+	/*
+	 * Though GENL_ID_CTRL number is statically fixed in this test case,
+	 * strace does not have a builtin knowledge that the corresponding
+	 * string is "nlctrl".
+	 */
+	long rc;
+	struct {
+		const struct nlmsghdr nlh;
+		struct genlmsghdr gnlh;
+	} req = {
+		.nlh = {
+			.nlmsg_len = sizeof(req),
+			.nlmsg_type = GENL_ID_CTRL,
+			.nlmsg_flags = NLM_F_DUMP | NLM_F_REQUEST
+		},
+		.gnlh = {
+			.cmd = CTRL_CMD_GETFAMILY
+		}
+	};
+
+	rc = sendto(fd, &req, sizeof(req), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=nlctrl"
+	       ", flags=NLM_F_REQUEST|0x300, seq=0, pid=0}"
+	       ", \"\\3\\0\\0\\0\"}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, req.nlh.nlmsg_len,
+	       (unsigned int) sizeof(req), sprintrc(rc));
+}
+
+int main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	int fd = create_nl_socket(NETLINK_GENERIC);
+
+	test_nlmsg_type(fd);
+
+	printf("+++ exited with 0 +++\n");
+
+	return 0;
+}
+
+#else
+
+SKIP_MAIN_UNDEFINED("HAVE_LINUX_GENETLINK_H")
+
+#endif
diff --git a/tests/netlink_generic.gen.test b/tests/netlink_generic.gen.test
new file mode 100755
index 0000000..e51f15c
--- /dev/null
+++ b/tests/netlink_generic.gen.test
@@ -0,0 +1,3 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (netlink_generic +netlink_sock_diag.test); do not edit.
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests/netlink_inet_diag.c b/tests/netlink_inet_diag.c
index 2332e20..5f68cb3 100644
--- a/tests/netlink_inet_diag.c
+++ b/tests/netlink_inet_diag.c
@@ -32,7 +32,7 @@
 #include <string.h>
 #include <unistd.h>
 #include <netinet/in.h>
-#include <linux/netlink.h>
+#include "netlink.h"
 #include <linux/sock_diag.h>
 #include <linux/inet_diag.h>
 
diff --git a/tests/netlink_netfilter.c b/tests/netlink_netfilter.c
new file mode 100644
index 0000000..2907c26
--- /dev/null
+++ b/tests/netlink_netfilter.c
@@ -0,0 +1,90 @@
+/*
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@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.
+ */
+
+#include "tests.h"
+
+#ifdef HAVE_LINUX_NETFILTER_NFNETLINK_H
+
+# include <stdio.h>
+# include <string.h>
+# include <unistd.h>
+# include <sys/socket.h>
+# include "netlink.h"
+# include <linux/netfilter/nfnetlink.h>
+
+static void
+test_nlmsg_type(const int fd)
+{
+	long rc;
+	struct nlmsghdr nlh = {
+		.nlmsg_len = sizeof(nlh),
+		.nlmsg_flags = NLM_F_REQUEST,
+	};
+
+# ifdef NFNL_MSG_BATCH_BEGIN
+	nlh.nlmsg_type = NFNL_MSG_BATCH_BEGIN;
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=NFNL_MSG_BATCH_BEGIN"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+
+	nlh.nlmsg_type = (NFNL_SUBSYS_CTNETLINK << 8) | NFNL_MSG_BATCH_BEGIN;
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=NFNL_SUBSYS_CTNETLINK<<8|%#x"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, NFNL_MSG_BATCH_BEGIN,
+	       (unsigned) sizeof(nlh), sprintrc(rc));
+# endif
+
+	nlh.nlmsg_type = (NFNL_SUBSYS_CTNETLINK << 8);
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=NFNL_SUBSYS_CTNETLINK<<8|0"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+}
+
+int main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	int fd = create_nl_socket(NETLINK_NETFILTER);
+
+	test_nlmsg_type(fd);
+
+	printf("+++ exited with 0 +++\n");
+
+	return 0;
+}
+
+#else
+
+SKIP_MAIN_UNDEFINED("HAVE_LINUX_NETFILTER_NFNETLINK_H")
+
+#endif
diff --git a/tests/netlink_netfilter.gen.test b/tests/netlink_netfilter.gen.test
new file mode 100755
index 0000000..fffb72b
--- /dev/null
+++ b/tests/netlink_netfilter.gen.test
@@ -0,0 +1,3 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (netlink_netfilter +netlink_sock_diag.test); do not edit.
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests/netlink_netlink_diag.c b/tests/netlink_netlink_diag.c
index fc32822..d7e83f5 100644
--- a/tests/netlink_netlink_diag.c
+++ b/tests/netlink_netlink_diag.c
@@ -33,14 +33,10 @@
 #include <string.h>
 #include <unistd.h>
 #include <netinet/in.h>
-#include <linux/netlink.h>
+#include "netlink.h"
 #include <linux/sock_diag.h>
 #include <linux/netlink_diag.h>
 
-#if !defined NETLINK_SOCK_DIAG && defined NETLINK_INET_DIAG
-# define NETLINK_SOCK_DIAG NETLINK_INET_DIAG
-#endif
-
 static void
 send_query(const int fd)
 {
diff --git a/tests/netlink_protocol.c b/tests/netlink_protocol.c
index 35f954f..f09dd9a 100644
--- a/tests/netlink_protocol.c
+++ b/tests/netlink_protocol.c
@@ -38,14 +38,10 @@
 # include <unistd.h>
 # include <sys/xattr.h>
 # include <netinet/in.h>
-# include <linux/netlink.h>
+# include "netlink.h"
 # include <linux/sock_diag.h>
 # include <linux/netlink_diag.h>
 
-# if !defined NETLINK_SOCK_DIAG && defined NETLINK_INET_DIAG
-#  define NETLINK_SOCK_DIAG NETLINK_INET_DIAG
-# endif
-
 static void
 send_query(const int fd)
 {
@@ -100,8 +96,8 @@
 	/* a single message without data */
 	req->nlh.nlmsg_len = sizeof(req->nlh);
 	rc = sendto(fd, &req->nlh, sizeof(req->nlh), MSG_DONTWAIT, NULL, 0);
-	printf("sendto(%d, {{len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x"
-	       ", seq=0, pid=0}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	printf("sendto(%d, {len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x"
+	       ", seq=0, pid=0}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
 	       fd, req->nlh.nlmsg_len, NLM_F_DUMP,
 	       (unsigned) sizeof(req->nlh), sprintrc(rc));
 
@@ -116,8 +112,8 @@
 	/* nlmsg_len < sizeof(struct nlmsghdr) */
 	req->nlh.nlmsg_len = 8;
 	rc = sendto(fd, req, sizeof(*req), MSG_DONTWAIT, NULL, 0);
-	printf("sendto(%d, {{len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x"
-	       ", seq=0, pid=0}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	printf("sendto(%d, {len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x"
+	       ", seq=0, pid=0}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
 	       fd, req->nlh.nlmsg_len, NLM_F_DUMP,
 	       (unsigned) sizeof(*req), sprintrc(rc));
 
@@ -165,15 +161,14 @@
 	reqs->req2.nlh.nlmsg_len = 4;
 	rc = sendto(fd, reqs, sizeof(*reqs), MSG_DONTWAIT, NULL, 0);
 	printf("sendto(%d, [{{len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x"
-	       ", seq=0, pid=0}, \"abcd\"}, {{len=%u, type=NLMSG_NOOP"
-	       ", flags=NLM_F_REQUEST|0x%x, seq=0, pid=0}}], %u"
+	       ", seq=0, pid=0}, \"abcd\"}, {len=%u, type=NLMSG_NOOP"
+	       ", flags=NLM_F_REQUEST|0x%x, seq=0, pid=0}], %u"
 	       ", MSG_DONTWAIT, NULL, 0) = %s\n",
 	       fd, reqs->req1.nlh.nlmsg_len, NLM_F_DUMP,
 	       reqs->req2.nlh.nlmsg_len, NLM_F_DUMP,
 	       (unsigned) sizeof(*reqs), sprintrc(rc));
 
 	/* abbreviated output */
-# define DEFAULT_STRLEN 32
 # define ABBREV_LEN (DEFAULT_STRLEN + 1)
 	const unsigned int msg_len = sizeof(struct nlmsghdr) * ABBREV_LEN;
 	struct nlmsghdr *const msgs = tail_alloc(msg_len);
@@ -192,8 +187,8 @@
 	for (i = 0; i < DEFAULT_STRLEN; ++i) {
 		if (i)
 			printf(", ");
-		printf("{{len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x"
-		       ", seq=%u, pid=0}}",
+		printf("{len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x"
+		       ", seq=%u, pid=0}",
 		       msgs[i].nlmsg_len, NLM_F_DUMP, msgs[i].nlmsg_seq);
 	}
 	printf(", ...], %u, MSG_DONTWAIT, NULL, 0) = %s\n", msg_len, errstr);
@@ -281,8 +276,8 @@
 	rc = sendto(fd, nlh, nlh->nlmsg_len, MSG_DONTWAIT, NULL, 0);
 	printf("sendto(%d, {{len=%u, type=NLMSG_ERROR, flags=NLM_F_REQUEST"
 	       ", seq=0, pid=0}, {error=-EACCES"
-	       ", msg={{len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x"
-	       ", seq=%u, pid=%u}}}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       ", msg={len=%u, type=NLMSG_NOOP, flags=NLM_F_REQUEST|0x%x"
+	       ", seq=%u, pid=%u}}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
 	       fd, nlh->nlmsg_len, err->msg.nlmsg_len, NLM_F_DUMP,
 	       err->msg.nlmsg_seq, err->msg.nlmsg_pid,
 	       nlh->nlmsg_len, sprintrc(rc));
@@ -314,24 +309,58 @@
 	       nlh->nlmsg_len, sprintrc(rc));
 }
 
+static void
+test_nlmsg_done(const int fd)
+{
+	struct nlmsghdr *nlh;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+	const int num = 0xfacefeed;
+
+	/* NLMSG_DONE message without enough room for an integer payload */
+	nlh = nlh0;
+	*nlh = (struct nlmsghdr) {
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(num),
+		.nlmsg_type = NLMSG_DONE,
+		.nlmsg_flags = NLM_F_MULTI
+	};
+
+	rc = sendto(fd, nlh, nlh->nlmsg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=NLMSG_DONE, flags=NLM_F_MULTI"
+	       ", seq=0, pid=0}, %p}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh->nlmsg_len, nlh0 + NLMSG_HDRLEN,
+	       nlh->nlmsg_len, sprintrc(rc));
+
+	/* NLMSG_DONE message with enough room for an oddly short payload */
+	nlh->nlmsg_len = NLMSG_HDRLEN + 2;
+	nlh = nlh0 - 2;
+	/* Beware of unaligned access to nlh members. */
+	memmove(nlh, nlh0, sizeof(*nlh));
+	memcpy(NLMSG_DATA(nlh), "42", 2);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + 2, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=NLMSG_DONE, flags=NLM_F_MULTI"
+	       ", seq=0, pid=0}, \"42\"}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + 2, NLMSG_HDRLEN + 2, sprintrc(rc));
+
+	/* NLMSG_DONE message with enough room for an integer payload */
+	nlh = nlh0 - sizeof(num);
+	*nlh = (struct nlmsghdr) {
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(num),
+		.nlmsg_type = NLMSG_DONE,
+		.nlmsg_flags = NLM_F_MULTI
+	};
+	memcpy(NLMSG_DATA(nlh), &num, sizeof(num));
+
+	rc = sendto(fd, nlh, nlh->nlmsg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=NLMSG_DONE, flags=NLM_F_MULTI"
+	       ", seq=0, pid=0}, %d}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh->nlmsg_len, num, nlh->nlmsg_len, sprintrc(rc));
+}
+
 int main(void)
 {
-	struct sockaddr_nl addr;
-	socklen_t len = sizeof(addr);
-	int fd;
-
-	memset(&addr, 0, sizeof(addr));
-	addr.nl_family = AF_NETLINK;
-
-	if ((fd = socket(AF_NETLINK, SOCK_RAW, NETLINK_SOCK_DIAG)) == -1)
-		perror_msg_and_skip("socket AF_NETLINK");
-
-	printf("socket(AF_NETLINK, SOCK_RAW, NETLINK_SOCK_DIAG) = %d\n",
-	       fd);
-	if (bind(fd, (struct sockaddr *) &addr, len))
-		perror_msg_and_skip("bind");
-	printf("bind(%d, {sa_family=AF_NETLINK, nl_pid=0, nl_groups=00000000}"
-	       ", %u) = 0\n", fd, len);
+	const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
 
 	char *path;
 	if (asprintf(&path, "/proc/self/fd/%u", fd) < 0)
@@ -343,9 +372,9 @@
 
 	send_query(fd);
 	test_nlmsgerr(fd);
+	test_nlmsg_done(fd);
 
-	printf("+++ exited with 0 +++\n");
-
+	puts("+++ exited with 0 +++");
 	return 0;
 }
 
diff --git a/tests/netlink_protocol.gen.test b/tests/netlink_protocol.gen.test
index 9a132fa..18d0667 100755
--- a/tests/netlink_protocol.gen.test
+++ b/tests/netlink_protocol.gen.test
@@ -1,4 +1,4 @@
 #!/bin/sh -efu
-# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (netlink_protocol -e trace=%network); do not edit.
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (netlink_protocol -e trace=sendto); do not edit.
 . "${srcdir=.}/init.sh"
-run_strace_match_diff -e trace=%network
+run_strace_match_diff -e trace=sendto
diff --git a/tests/netlink_route.c b/tests/netlink_route.c
new file mode 100644
index 0000000..54a54b7
--- /dev/null
+++ b/tests/netlink_route.c
@@ -0,0 +1,107 @@
+/*
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@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.
+ */
+
+#include "tests.h"
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/socket.h>
+#include "netlink.h"
+#include <linux/rtnetlink.h>
+
+static void
+test_nlmsg_type(const int fd)
+{
+	long rc;
+	struct nlmsghdr nlh = {
+		.nlmsg_len = sizeof(nlh),
+		.nlmsg_type = RTM_GETLINK,
+		.nlmsg_flags = NLM_F_REQUEST,
+	};
+
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=RTM_GETLINK"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+}
+
+static void
+test_nlmsg_flags(const int fd)
+{
+	long rc;
+	struct nlmsghdr nlh = {
+		.nlmsg_len = sizeof(nlh),
+	};
+
+	nlh.nlmsg_type = RTM_GETLINK;
+	nlh.nlmsg_flags = NLM_F_REQUEST | NLM_F_DUMP;
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=RTM_GETLINK"
+	       ", flags=NLM_F_REQUEST|NLM_F_DUMP, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+
+	nlh.nlmsg_type = RTM_DELACTION;
+	nlh.nlmsg_flags = NLM_F_ROOT;
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=RTM_DELACTION"
+	       ", flags=NLM_F_ROOT, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+
+	nlh.nlmsg_type = RTM_NEWLINK;
+	nlh.nlmsg_flags = NLM_F_ECHO | NLM_F_REPLACE;
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=RTM_NEWLINK"
+	       ", flags=NLM_F_ECHO|NLM_F_REPLACE, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+
+	nlh.nlmsg_type = RTM_DELLINK;
+	nlh.nlmsg_flags = NLM_F_REPLACE;
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=RTM_DELLINK"
+	       ", flags=%#x /* NLM_F_??? */, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, NLM_F_REPLACE,
+	       (unsigned) sizeof(nlh), sprintrc(rc));
+}
+
+int main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	int fd = create_nl_socket(NETLINK_ROUTE);
+
+	test_nlmsg_type(fd);
+	test_nlmsg_flags(fd);
+
+	printf("+++ exited with 0 +++\n");
+
+	return 0;
+}
diff --git a/tests/netlink_route.gen.test b/tests/netlink_route.gen.test
new file mode 100755
index 0000000..298dbf1
--- /dev/null
+++ b/tests/netlink_route.gen.test
@@ -0,0 +1,3 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (netlink_route +netlink_sock_diag.test); do not edit.
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests/netlink_selinux.c b/tests/netlink_selinux.c
new file mode 100644
index 0000000..6494fda
--- /dev/null
+++ b/tests/netlink_selinux.c
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@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.
+ */
+
+#include "tests.h"
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/socket.h>
+#include "netlink.h"
+#include <linux/selinux_netlink.h>
+
+static void
+test_nlmsg_type(const int fd)
+{
+	long rc;
+	struct nlmsghdr nlh = {
+		.nlmsg_len = sizeof(nlh),
+		.nlmsg_type = SELNL_MSG_SETENFORCE,
+		.nlmsg_flags = NLM_F_REQUEST,
+	};
+
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=SELNL_MSG_SETENFORCE"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+}
+
+int main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	int fd = create_nl_socket(NETLINK_SELINUX);
+
+	test_nlmsg_type(fd);
+
+	printf("+++ exited with 0 +++\n");
+
+	return 0;
+}
diff --git a/tests/netlink_selinux.gen.test b/tests/netlink_selinux.gen.test
new file mode 100755
index 0000000..a8871d6
--- /dev/null
+++ b/tests/netlink_selinux.gen.test
@@ -0,0 +1,3 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (netlink_selinux +netlink_sock_diag.test); do not edit.
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests/netlink_sock_diag.c b/tests/netlink_sock_diag.c
new file mode 100644
index 0000000..b8d0190
--- /dev/null
+++ b/tests/netlink_sock_diag.c
@@ -0,0 +1,1606 @@
+/*
+ * Copyright (c) 2016 Fabien Siron <fabien.siron@epita.fr>
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@gmail.com>
+ * Copyright (c) 2017 The strace developers.
+ * 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 "tests.h"
+#include <stdio.h>
+#include <string.h>
+#include <stdint.h>
+#include <unistd.h>
+#include <sys/socket.h>
+#include <arpa/inet.h>
+#include <netinet/tcp.h>
+#include "netlink.h"
+#include <linux/if_ether.h>
+#include <linux/inet_diag.h>
+#include <linux/netlink_diag.h>
+#include <linux/packet_diag.h>
+#ifdef AF_SMC
+# include <linux/smc_diag.h>
+#endif
+#include <linux/sock_diag.h>
+#include <linux/unix_diag.h>
+
+#define SMC_ACTIVE 1
+
+static void
+test_nlmsg_type(const int fd)
+{
+	long rc;
+	struct nlmsghdr nlh = {
+		.nlmsg_len = sizeof(nlh),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST,
+	};
+
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+}
+
+static void
+test_nlmsg_flags(const int fd)
+{
+	long rc;
+	struct nlmsghdr nlh = {
+		.nlmsg_len = sizeof(nlh),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST | NLM_F_DUMP,
+	};
+
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST|NLM_F_DUMP, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+}
+
+static void
+test_odd_family_req(const int fd)
+{
+	struct nlmsghdr *nlh;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* unspecified family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	family = NLMSG_DATA(nlh);
+	*family = 0;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {family=AF_UNSPEC}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* unknown family only */
+	*family = 0xff;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {family=0xff /* AF_??? */}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* short read of family */
+	memmove(nlh0, nlh, NLMSG_HDRLEN);
+	nlh = nlh0;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}, %p}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_DATA(nlh),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* unspecified family and string */
+	nlh = nlh0 - (sizeof(*family) + 4);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	family = NLMSG_DATA(nlh);
+	*family = 0;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {family=AF_UNSPEC, \"1234\"}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* unknown family and string */
+	*family = 0xfd;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {family=0xfd /* AF_??? */, \"1234\"}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+}
+
+static void
+test_odd_family_msg(const int fd)
+{
+	struct nlmsghdr *nlh;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* unspecified family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	family = NLMSG_DATA(nlh);
+	*family = 0;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {family=AF_UNSPEC}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* unknown family only */
+	*family = 0xff;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {family=0xff /* AF_??? */}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* short read of family */
+	memmove(nlh0, nlh, NLMSG_HDRLEN);
+	nlh = nlh0;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, %p}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_DATA(nlh),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* unspecified family and string */
+	nlh = nlh0 - (sizeof(*family) + 4);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	family = NLMSG_DATA(nlh);
+	*family = 0;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {family=AF_UNSPEC, \"1234\"}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* unknown family and string */
+	*family = 0xfb;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {family=0xfb /* AF_??? */, \"1234\"}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+}
+
+static void
+test_unix_diag_req(const int fd)
+{
+	struct nlmsghdr *nlh;
+	struct unix_diag_req *req;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_UNIX;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}, {family=AF_UNIX}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - (sizeof(*family) + 4);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_UNIX;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_UNIX, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* unix_diag_req */
+	nlh = nlh0 - sizeof(*req);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*req),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	req = NLMSG_DATA(nlh);
+	*req = (struct unix_diag_req) {
+		.sdiag_family = AF_UNIX,
+		.sdiag_protocol = 253,
+		.udiag_states = 1 << TCP_ESTABLISHED | 1 << TCP_LISTEN,
+		.udiag_ino = 0xfacefeed,
+		.udiag_show = UDIAG_SHOW_NAME,
+		.udiag_cookie = { 0xdeadbeef, 0xbadc0ded }
+	};
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_UNIX, sdiag_protocol=%u"
+	       ", udiag_states=1<<TCP_ESTABLISHED|1<<TCP_LISTEN, udiag_ino=%u"
+	       ", udiag_show=UDIAG_SHOW_NAME, udiag_cookie=[%u, %u]}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       253, 0xfacefeed, 0xdeadbeef, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+
+	/* short read of unix_diag_req */
+	nlh = nlh0 - (sizeof(*req) - 1);
+	/* beware of unaligned access to nlh members */
+	memmove(nlh, nlh0 - sizeof(*req), NLMSG_HDRLEN + sizeof(*req) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}, {sdiag_family=AF_UNIX, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+}
+
+static void
+test_unix_diag_msg(const int fd)
+{
+	struct nlmsghdr *nlh;
+	struct unix_diag_msg *msg;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_UNIX;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {family=AF_UNIX}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - (sizeof(*family) + 4);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_UNIX;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {udiag_family=AF_UNIX, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* unix_diag_msg */
+	nlh = nlh0 - sizeof(*msg);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*msg),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	msg = NLMSG_DATA(nlh);
+	*msg = (struct unix_diag_msg) {
+		.udiag_family = AF_UNIX,
+		.udiag_type = SOCK_STREAM,
+		.udiag_state = TCP_FIN_WAIT1,
+		.udiag_ino = 0xfacefeed,
+		.udiag_cookie = { 0xdeadbeef, 0xbadc0ded }
+	};
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {udiag_family=AF_UNIX, udiag_type=SOCK_STREAM"
+	       ", udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=%u, udiag_cookie=[%u, %u]}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       0xfacefeed, 0xdeadbeef, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       sprintrc(rc));
+
+	/* short read of unix_diag_msg */
+	nlh = nlh0 - (sizeof(*msg) - 1);
+	/* beware of unaligned access to nlh members */
+	memmove(nlh, nlh0 - sizeof(*msg), NLMSG_HDRLEN + sizeof(*msg) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       sprintrc(rc));
+}
+
+static void
+test_netlink_diag_req(const int fd)
+{
+	struct nlmsghdr *nlh;
+	struct netlink_diag_req *req;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_NETLINK;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}, {family=AF_NETLINK}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - (sizeof(*family) + 4);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_NETLINK;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_NETLINK, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* netlink_diag_req */
+	nlh = nlh0 - sizeof(*req);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*req),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	req = NLMSG_DATA(nlh);
+	*req = (struct netlink_diag_req) {
+		.sdiag_family = AF_NETLINK,
+		.sdiag_protocol = NDIAG_PROTO_ALL,
+		.ndiag_ino = 0xfacefeed,
+		.ndiag_show = NDIAG_SHOW_MEMINFO,
+		.ndiag_cookie = { 0xdeadbeef, 0xbadc0ded }
+	};
+
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_NETLINK, sdiag_protocol=NDIAG_PROTO_ALL"
+	       ", ndiag_ino=%u, ndiag_show=NDIAG_SHOW_MEMINFO"
+	       ", ndiag_cookie=[%u, %u]}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       0xfacefeed, 0xdeadbeef, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+
+	req->sdiag_protocol = NETLINK_ROUTE;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_NETLINK, sdiag_protocol=NETLINK_ROUTE"
+	       ", ndiag_ino=%u, ndiag_show=NDIAG_SHOW_MEMINFO"
+	       ", ndiag_cookie=[%u, %u]}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       0xfacefeed, 0xdeadbeef, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+
+	/* short read of netlink_diag_req */
+	nlh = nlh0 - (sizeof(*req) - 1);
+	/* beware of unaligned access to nlh members */
+	memmove(nlh, nlh0 - sizeof(*req), NLMSG_HDRLEN + sizeof(*req) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_NETLINK, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+}
+
+static void
+test_netlink_diag_msg(const int fd)
+{
+	struct nlmsghdr *nlh;
+	struct netlink_diag_msg *msg;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_NETLINK;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {family=AF_NETLINK}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - (sizeof(*family) + 4);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_NETLINK;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {ndiag_family=AF_NETLINK, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* netlink_diag_msg */
+	nlh = nlh0 - sizeof(*msg);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*msg),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	msg = NLMSG_DATA(nlh);
+	*msg = (struct netlink_diag_msg) {
+		.ndiag_family = AF_NETLINK,
+		.ndiag_type = SOCK_RAW,
+		.ndiag_protocol = NETLINK_ROUTE,
+		.ndiag_state = NETLINK_CONNECTED,
+		.ndiag_portid = 0xbadc0ded,
+		.ndiag_dst_portid = 0xdeadbeef,
+		.ndiag_dst_group = 0xfacefeed,
+		.ndiag_ino = 0xdaeefacd,
+		.ndiag_cookie = { 0xbadc0ded, 0xdeadbeef }
+	};
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {ndiag_family=AF_NETLINK"
+	       ", ndiag_type=SOCK_RAW, ndiag_protocol=NETLINK_ROUTE"
+	       ", ndiag_state=NETLINK_CONNECTED, ndiag_portid=%u"
+	       ", ndiag_dst_portid=%u, ndiag_dst_group=%u, ndiag_ino=%u"
+	       ", ndiag_cookie=[%u, %u]}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       0xbadc0ded, 0xdeadbeef, 0xfacefeed,
+	       0xdaeefacd, 0xbadc0ded, 0xdeadbeef,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       sprintrc(rc));
+
+	/* short read of netlink_diag_msg */
+	nlh = nlh0 - (sizeof(*msg) - 1);
+	/* beware of unaligned access to nlh members */
+	memmove(nlh, nlh0 - sizeof(*msg), NLMSG_HDRLEN + sizeof(*msg) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {ndiag_family=AF_NETLINK, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       sprintrc(rc));
+}
+
+static void
+test_packet_diag_req(const int fd)
+{
+	struct nlmsghdr *nlh;
+	struct packet_diag_req *req;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_PACKET;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}, {family=AF_PACKET}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - (sizeof(*family) + 4);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_PACKET;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_PACKET, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* packet_diag_req */
+	nlh = nlh0 - sizeof(*req);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*req),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+	req = NLMSG_DATA(nlh);
+	*req = (struct packet_diag_req) {
+		.sdiag_family = AF_PACKET,
+		.sdiag_protocol = ETH_P_LOOP,
+		.pdiag_ino = 0xfacefeed,
+		.pdiag_show = PACKET_SHOW_INFO,
+		.pdiag_cookie = { 0xdeadbeef, 0xbadc0ded }
+	};
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_PACKET, sdiag_protocol=ETH_P_LOOP"
+	       ", pdiag_ino=%u, pdiag_show=PACKET_SHOW_INFO"
+	       ", pdiag_cookie=[%u, %u]}}, %u"
+	       ", MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       0xfacefeed, 0xdeadbeef, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+
+	/* short read of packet_diag_req */
+	nlh = nlh0 - (sizeof(*req) - 1);
+	memmove(nlh, nlh0 - sizeof(*req), NLMSG_HDRLEN + sizeof(*req) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_PACKET, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+}
+
+static void
+test_packet_diag_msg(const int fd)
+{
+	struct nlmsghdr *nlh;
+	struct packet_diag_msg *msg;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_PACKET;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {family=AF_PACKET}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - (sizeof(*family) + 4);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	family = NLMSG_DATA(nlh);
+	*family = AF_PACKET;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {pdiag_family=AF_PACKET, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* packet_diag_msg */
+	nlh = nlh0 - sizeof(*msg);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*msg),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+	msg = NLMSG_DATA(nlh);
+	*msg = (struct packet_diag_msg) {
+		.pdiag_family = AF_PACKET,
+		.pdiag_type = SOCK_STREAM,
+		.pdiag_num = 0xbadc,
+		.pdiag_ino = 0xfacefeed,
+		.pdiag_cookie = { 0xdeadbeef, 0xbadc0ded }
+	};
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {pdiag_family=AF_PACKET, pdiag_type=SOCK_STREAM"
+	       ", pdiag_num=%u, pdiag_ino=%u, pdiag_cookie=[%u, %u]}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       0xbadc, 0xfacefeed, 0xdeadbeef, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       sprintrc(rc));
+
+	/* short read of packet_diag_msg */
+	nlh = nlh0 - (sizeof(*msg) - 1);
+	memmove(nlh, nlh0 - sizeof(*msg), NLMSG_HDRLEN + sizeof(*msg) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {pdiag_family=AF_PACKET, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       sprintrc(rc));
+}
+
+static void
+test_inet_diag_sockid(const int fd)
+{
+	const char address[] = "12.34.56.78";
+	const char address6[] = "12:34:56:78:90:ab:cd:ef";
+	struct nlmsghdr *nlh;
+	struct inet_diag_req_v2 *req;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	nlh = nlh0 - sizeof(*req);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*req),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+
+	req = NLMSG_DATA(nlh);
+	*req = (struct inet_diag_req_v2) {
+		.sdiag_family = AF_INET,
+		.idiag_ext = 1 << (INET_DIAG_CONG - 1),
+		.sdiag_protocol = IPPROTO_TCP,
+		.idiag_states = 1 << TCP_CLOSE,
+		.id = {
+			.idiag_sport = 0xfacd,
+			.idiag_dport = 0xdead,
+			.idiag_if = 0xadcdfafc,
+			.idiag_cookie = { 0xdeadbeef, 0xbadc0ded }
+		},
+	};
+
+	if (!inet_pton(AF_INET, address, &req->id.idiag_src))
+		perror_msg_and_skip("sendto");
+	if (!inet_pton(AF_INET, address, &req->id.idiag_dst))
+		perror_msg_and_skip("sendto");
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_INET, sdiag_protocol=IPPROTO_TCP"
+	       ", idiag_ext=1<<(INET_DIAG_CONG-1)"
+	       ", idiag_states=1<<TCP_CLOSE, id={idiag_sport=htons(%u)"
+	       ", idiag_dport=htons(%u), inet_pton(AF_INET, \"%s\", &idiag_src)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_dst), idiag_if=%u"
+	       ", idiag_cookie=[%u, %u]}}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       ntohs(0xfacd), ntohs(0xdead), address, address,
+	       0xadcdfafc, 0xdeadbeef, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+
+	req->sdiag_family = AF_INET6;
+	if (!inet_pton(AF_INET6, address6, &req->id.idiag_src))
+		perror_msg_and_skip("sendto");
+	if (!inet_pton(AF_INET6, address6, &req->id.idiag_dst))
+		perror_msg_and_skip("sendto");
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_INET6, sdiag_protocol=IPPROTO_TCP"
+	       ", idiag_ext=1<<(INET_DIAG_CONG-1)"
+	       ", idiag_states=1<<TCP_CLOSE, id={idiag_sport=htons(%u)"
+	       ", idiag_dport=htons(%u), inet_pton(AF_INET6, \"%s\", &idiag_src)"
+	       ", inet_pton(AF_INET6, \"%s\", &idiag_dst), idiag_if=%u"
+	       ", idiag_cookie=[%u, %u]}}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       ntohs(0xfacd), ntohs(0xdead), address6, address6,
+	       0xadcdfafc, 0xdeadbeef, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+}
+
+static void
+test_inet_diag_req(const int fd)
+{
+	const char address[] = "12.34.56.78";
+	struct nlmsghdr *nlh;
+	struct inet_diag_req *req;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = TCPDIAG_GETSOCK,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+
+	family = NLMSG_DATA(nlh);
+	*family = AF_INET;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=TCPDIAG_GETSOCK"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}, {family=AF_INET}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - (sizeof(*family) + 4);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = TCPDIAG_GETSOCK,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+
+	family = NLMSG_DATA(nlh);
+	*family = AF_INET;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=TCPDIAG_GETSOCK"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {idiag_family=AF_INET, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* inet_diag_req */
+	nlh = nlh0 - sizeof(*req);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*req),
+		.nlmsg_type = TCPDIAG_GETSOCK,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+
+	req = NLMSG_DATA(nlh);
+	*req = (struct inet_diag_req) {
+		.idiag_family = AF_INET,
+		.idiag_ext = 1 << (INET_DIAG_TOS - 1),
+		.idiag_src_len = 0xde,
+		.idiag_dst_len = 0xba,
+		.id = {
+			.idiag_sport = 0xdead,
+			.idiag_dport = 0xadcd,
+			.idiag_if = 0xadcdfafc,
+			.idiag_cookie = { 0xdeadbeef, 0xbadc0ded }
+		},
+		.idiag_states = 1 << TCP_LAST_ACK,
+		.idiag_dbs = 0xfacefeed,
+	};
+
+	if (!inet_pton(AF_INET, address, &req->id.idiag_src))
+		perror_msg_and_skip("sendto");
+	if (!inet_pton(AF_INET, address, &req->id.idiag_dst))
+		perror_msg_and_skip("sendto");
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=TCPDIAG_GETSOCK"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {idiag_family=AF_INET, idiag_src_len=%u"
+	       ", idiag_dst_len=%u, idiag_ext=1<<(INET_DIAG_TOS-1)"
+	       ", id={idiag_sport=htons(%u), idiag_dport=htons(%u)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_src)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_dst)"
+	       ", idiag_if=%u, idiag_cookie=[%u, %u]}"
+	       ", idiag_states=1<<TCP_LAST_ACK, idiag_dbs=%u}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       0xde, 0xba, ntohs(0xdead), ntohs(0xadcd), address, address,
+	       0xadcdfafc, 0xdeadbeef, 0xbadc0ded, 0xfacefeed,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+
+	/* short read of inet_diag_req */
+	nlh = nlh0 - (sizeof(*req) - 1);
+	/* beware of unaligned access to nlh members */
+	memmove(nlh, nlh0 - sizeof(*req), NLMSG_HDRLEN + sizeof(*req) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=TCPDIAG_GETSOCK"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {idiag_family=AF_INET, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+}
+
+static void
+test_inet_diag_req_v2(const int fd)
+{
+	const char address[] = "87.65.43.21";
+	struct nlmsghdr *nlh;
+	struct inet_diag_req_v2 *req;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+
+	family = NLMSG_DATA(nlh);
+	*family = AF_INET;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}, {family=AF_INET}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - sizeof(*family) - 4;
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+
+	family = NLMSG_DATA(nlh);
+	*family = AF_INET;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_INET, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* inet_diag_req_v2 */
+	nlh = nlh0 - sizeof(*req);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*req),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+
+	req = NLMSG_DATA(nlh);
+	*req = (struct inet_diag_req_v2) {
+		.sdiag_family = AF_INET,
+		.idiag_ext = 1 << (INET_DIAG_CONG - 1),
+		.sdiag_protocol = IPPROTO_TCP,
+		.idiag_states = 1 << TCP_CLOSE,
+		.id = {
+			.idiag_sport = 0xfacd,
+			.idiag_dport = 0xdead,
+			.idiag_if = 0xadcdfafc,
+			.idiag_cookie = { 0xdeadbeef, 0xbadc0ded }
+		},
+	};
+
+	if (!inet_pton(AF_INET, address, &req->id.idiag_src))
+		perror_msg_and_skip("sendto");
+	if (!inet_pton(AF_INET, address, &req->id.idiag_dst))
+		perror_msg_and_skip("sendto");
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_INET, sdiag_protocol=IPPROTO_TCP"
+	       ", idiag_ext=1<<(INET_DIAG_CONG-1)"
+	       ", idiag_states=1<<TCP_CLOSE, id={idiag_sport=htons(%u)"
+	       ", idiag_dport=htons(%u), inet_pton(AF_INET, \"%s\", &idiag_src)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_dst), idiag_if=%u"
+	       ", idiag_cookie=[%u, %u]}}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       ntohs(0xfacd), ntohs(0xdead), address, address,
+	       0xadcdfafc, 0xdeadbeef, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+
+	/* short read of inet_diag_req_v2 */
+	nlh = nlh0 - (sizeof(*req) - 1);
+	/* beware of unaligned access to nlh members */
+	memmove(nlh, nlh0 - sizeof(*req), NLMSG_HDRLEN + sizeof(*req) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {sdiag_family=AF_INET, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+}
+
+static void
+test_inet_diag_msg(const int fd)
+{
+	const char address[] = "11.22.33.44";
+	struct nlmsghdr *nlh;
+	struct inet_diag_msg *msg;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+
+	family = NLMSG_DATA(nlh);
+	*family = AF_INET;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {family=AF_INET}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - sizeof(*family) - 4;
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+
+	family = NLMSG_DATA(nlh);
+	*family = AF_INET;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {idiag_family=AF_INET, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* inet_diag_msg */
+	nlh = nlh0 - sizeof(*msg);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*msg),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+
+	msg = NLMSG_DATA(nlh);
+	*msg = (struct inet_diag_msg) {
+		.idiag_family = AF_INET,
+		.idiag_state = TCP_LISTEN,
+		.idiag_timer = 0xfa,
+		.idiag_retrans = 0xde,
+		.id = {
+			.idiag_sport = 0xfacf,
+			.idiag_dport = 0xdead,
+			.idiag_if = 0xadcdfafc,
+			.idiag_cookie = { 0xdeadbeef, 0xbadc0ded }
+		},
+		.idiag_expires = 0xfacefeed,
+		.idiag_rqueue = 0xdeadbeef,
+		.idiag_wqueue = 0xadcdfafc,
+		.idiag_uid = 0xdecefaeb,
+		.idiag_inode = 0xbadc0ded,
+	};
+
+	if (!inet_pton(AF_INET, address, &msg->id.idiag_src))
+		perror_msg_and_skip("sendto");
+	if (!inet_pton(AF_INET, address, &msg->id.idiag_dst))
+		perror_msg_and_skip("sendto");
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {idiag_family=AF_INET, idiag_state=TCP_LISTEN"
+	       ", idiag_timer=%u, idiag_retrans=%u"
+	       ", id={idiag_sport=htons(%u), idiag_dport=htons(%u)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_src)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_dst)"
+	       ", idiag_if=%u, idiag_cookie=[%u, %u]}"
+	       ", idiag_expires=%u, idiag_rqueue=%u, idiag_wqueue=%u"
+	       ", idiag_uid=%u, idiag_inode=%u}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       0xfa, 0xde, ntohs(0xfacf), ntohs(0xdead),
+	       address, address, 0xadcdfafc, 0xdeadbeef, 0xbadc0ded,
+	       0xfacefeed, 0xdeadbeef, 0xadcdfafc, 0xdecefaeb, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       sprintrc(rc));
+
+	/* short read of inet_diag_msg */
+	nlh = nlh0 - (sizeof(*msg) - 1);
+	/* beware of unaligned access to nlh members */
+	memmove(nlh, nlh0 - sizeof(*msg), NLMSG_HDRLEN + sizeof(*msg) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,
+		    NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {idiag_family=AF_INET, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       sprintrc(rc));
+}
+
+#ifdef AF_SMC
+static void
+test_smc_diag_req(const int fd)
+{
+	const char address[] = "43.21.56.78";
+	struct nlmsghdr *nlh;
+	struct smc_diag_req *req;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+
+	family = NLMSG_DATA(nlh);
+	*family = AF_SMC;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}, {family=AF_SMC}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - sizeof(*family) - 4;
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+
+	family = NLMSG_DATA(nlh);
+	*family = AF_SMC;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {diag_family=AF_SMC, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* smc_diag_req */
+	nlh = nlh0 - sizeof(*req);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*req),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_REQUEST
+	);
+
+	req = NLMSG_DATA(nlh);
+	*req = (struct smc_diag_req) {
+		.diag_family = AF_SMC,
+		.diag_ext = 1 << (SMC_DIAG_CONNINFO - 1),
+		.id = {
+			.idiag_sport = 0xdead,
+			.idiag_dport = 0xadcd,
+			.idiag_if = 0xadcdfafc,
+			.idiag_cookie = { 0xdeadbeef, 0xbadc0ded },
+		},
+	};
+
+	if (!inet_pton(AF_INET, address, &req->id.idiag_src))
+		perror_msg_and_skip("sendto");
+	if (!inet_pton(AF_INET, address, &req->id.idiag_dst))
+		perror_msg_and_skip("sendto");
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}, {diag_family=AF_SMC"
+	       ", diag_ext=1<<(SMC_DIAG_CONNINFO-1)"
+	       ", id={idiag_sport=htons(%u), idiag_dport=htons(%u)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_src)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_dst)"
+	       ", idiag_if=%u, idiag_cookie=[%u, %u]}}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       htons(0xdead), htons(0xadcd), address, address,
+	       0xadcdfafc, 0xdeadbeef, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+
+	/* short read of smc_diag_req */
+	nlh = nlh0 - (sizeof(*req) - 1);
+	/* beware of unaligned access to nlh members */
+	memmove(nlh, nlh0 - sizeof(*req), NLMSG_HDRLEN + sizeof(*req) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*req), MSG_DONTWAIT,
+		    NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", {diag_family=AF_SMC, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*req),
+	       sprintrc(rc));
+}
+
+static void
+test_smc_diag_msg(const int fd)
+{
+	const char address[] = "34.87.12.90";
+	struct nlmsghdr *nlh;
+	struct smc_diag_msg *msg;
+	uint8_t *family;
+	void *const nlh0 = tail_alloc(NLMSG_HDRLEN);
+	long rc;
+
+	/* family only */
+	nlh = nlh0 - sizeof(*family);
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+
+	family = NLMSG_DATA(nlh);
+	*family = AF_SMC;
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {family=AF_SMC}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family),
+	       sprintrc(rc));
+
+	/* family and string */
+	nlh = nlh0 - sizeof(*family) - 4;
+	/* beware of unaligned access to nlh members */
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*family) + 4,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+
+	family = NLMSG_DATA(nlh);
+	*family = AF_SMC;
+	memcpy(family + 1, "1234", 4);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*family) + 4, MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {diag_family=AF_SMC, ...}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*family) + 4,
+	       sprintrc(rc));
+
+	/* smc_diag_msg */
+	nlh = nlh0 - sizeof(*msg);
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = NLMSG_HDRLEN + sizeof(*msg),
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+
+	msg = NLMSG_DATA(nlh);
+	*msg = (struct smc_diag_msg) {
+		.diag_family = AF_SMC,
+		.diag_state = SMC_ACTIVE,
+		.diag_fallback = 0xde,
+		.diag_shutdown = 0xba,
+		.id = {
+			.idiag_sport = 0xdead,
+			.idiag_dport = 0xadcd,
+			.idiag_if = 0xadcdfafc,
+			.idiag_cookie = { 0xdeadbeef, 0xbadc0ded },
+		},
+		.diag_uid = 0xadcdfafc,
+		.diag_inode = 0xbadc0ded,
+	};
+
+	if (!inet_pton(AF_INET, address, &msg->id.idiag_src))
+		perror_msg_and_skip("sendto");
+	if (!inet_pton(AF_INET, address, &msg->id.idiag_dst))
+		perror_msg_and_skip("sendto");
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,
+		    NULL, 0);
+
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {diag_family=AF_SMC"
+	       ", diag_state=SMC_ACTIVE, diag_fallback=%u, diag_shutdown=%u"
+	       ", id={idiag_sport=htons(%u), idiag_dport=htons(%u)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_src)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_dst)"
+	       ", idiag_if=%u, idiag_cookie=[%u, %u]}"
+	       ", diag_uid=%u, diag_inode=%u}}, %u"
+	       ", MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       0xde, 0xba, htons(0xdead), htons(0xadcd), address, address,
+	       0xadcdfafc, 0xdeadbeef, 0xbadc0ded, 0xadcdfafc, 0xbadc0ded,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       sprintrc(rc));
+
+	/* short read of smc_diag_msg */
+	nlh = nlh0 - (sizeof(*msg) - 1);
+	/* beware of unaligned access to nlh members */
+	memmove(nlh, nlh0 - sizeof(*msg), NLMSG_HDRLEN + sizeof(*msg) - 1);
+
+	rc = sendto(fd, nlh, NLMSG_HDRLEN + sizeof(*msg), MSG_DONTWAIT,
+		    NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {diag_family=AF_SMC, %p}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       NLMSG_DATA(nlh) + 1,
+	       NLMSG_HDRLEN + (unsigned int) sizeof(*msg),
+	       sprintrc(rc));
+}
+#endif
+
+int
+main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	int fd = create_nl_socket(NETLINK_SOCK_DIAG);
+
+	test_nlmsg_type(fd);
+	test_nlmsg_flags(fd);
+	test_odd_family_req(fd);
+	test_odd_family_msg(fd);
+	test_unix_diag_req(fd);
+	test_unix_diag_msg(fd);
+	test_netlink_diag_req(fd);
+	test_netlink_diag_msg(fd);
+	test_packet_diag_req(fd);
+	test_packet_diag_msg(fd);
+	test_inet_diag_sockid(fd);
+	test_inet_diag_req(fd);
+	test_inet_diag_req_v2(fd);
+	test_inet_diag_msg(fd);
+#ifdef AF_SMC
+	test_smc_diag_req(fd);
+	test_smc_diag_msg(fd);
+#endif
+
+	printf("+++ exited with 0 +++\n");
+
+	return 0;
+}
diff --git a/tests/netlink_sock_diag.test b/tests/netlink_sock_diag.test
new file mode 100755
index 0000000..0cf380e
--- /dev/null
+++ b/tests/netlink_sock_diag.test
@@ -0,0 +1,33 @@
+#!/bin/sh
+#
+# Check decoding of NETLINK_SOCK_DIAG protocol
+#
+# Copyright (c) 2017 The strace developers.
+# 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.
+
+. "${srcdir=.}/init.sh"
+
+run_prog ../netlink_netlink_diag
+run_strace_match_diff -e trace=sendto
diff --git a/tests/netlink_unix_diag.c b/tests/netlink_unix_diag.c
index 269adc6..119cc9e 100644
--- a/tests/netlink_unix_diag.c
+++ b/tests/netlink_unix_diag.c
@@ -36,14 +36,10 @@
 #include <unistd.h>
 #include <sys/socket.h>
 #include <sys/un.h>
-#include <linux/netlink.h>
+#include "netlink.h"
 #include <linux/sock_diag.h>
 #include <linux/unix_diag.h>
 
-#if !defined NETLINK_SOCK_DIAG && defined NETLINK_INET_DIAG
-# define NETLINK_SOCK_DIAG NETLINK_INET_DIAG
-#endif
-
 static void
 send_query(const int fd)
 {
diff --git a/tests/netlink_xfrm.c b/tests/netlink_xfrm.c
new file mode 100644
index 0000000..27f62d1
--- /dev/null
+++ b/tests/netlink_xfrm.c
@@ -0,0 +1,100 @@
+/*
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@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.
+ */
+
+#include "tests.h"
+#include <stdio.h>
+#include <string.h>
+#include <stdint.h>
+#include <unistd.h>
+#include <sys/socket.h>
+#include "netlink.h"
+#include <linux/xfrm.h>
+
+static void
+test_nlmsg_type(const int fd)
+{
+	long rc;
+	struct nlmsghdr nlh = {
+		.nlmsg_len = sizeof(nlh),
+		.nlmsg_type = XFRM_MSG_NEWSA,
+		.nlmsg_flags = NLM_F_REQUEST,
+	};
+
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=XFRM_MSG_NEWSA"
+	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+}
+
+static void
+test_nlmsg_flags(const int fd)
+{
+	long rc;
+	struct nlmsghdr nlh = {
+		.nlmsg_len = sizeof(nlh),
+	};
+
+	nlh.nlmsg_type = XFRM_MSG_GETSA;
+	nlh.nlmsg_flags = NLM_F_DUMP;
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=XFRM_MSG_GETSA"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+
+	nlh.nlmsg_type = XFRM_MSG_NEWSA;
+	nlh.nlmsg_flags = NLM_F_REPLACE;
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=XFRM_MSG_NEWSA"
+	       ", flags=NLM_F_REPLACE, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
+
+	nlh.nlmsg_type = XFRM_MSG_DELSA;
+	nlh.nlmsg_flags = NLM_F_ECHO | NLM_F_REPLACE;
+	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {len=%u, type=XFRM_MSG_DELSA"
+	       ", flags=NLM_F_ECHO|%#x, seq=0, pid=0}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, nlh.nlmsg_len, NLM_F_REPLACE,
+	       (unsigned) sizeof(nlh), sprintrc(rc));
+}
+
+int main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	int fd = create_nl_socket(NETLINK_XFRM);
+
+	test_nlmsg_type(fd);
+	test_nlmsg_flags(fd);
+
+	printf("+++ exited with 0 +++\n");
+
+	return 0;
+}
diff --git a/tests/netlink_xfrm.gen.test b/tests/netlink_xfrm.gen.test
new file mode 100755
index 0000000..17f7444
--- /dev/null
+++ b/tests/netlink_xfrm.gen.test
@@ -0,0 +1,3 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (netlink_xfrm +netlink_sock_diag.test); do not edit.
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests/nlattr.c b/tests/nlattr.c
new file mode 100644
index 0000000..7361ece
--- /dev/null
+++ b/tests/nlattr.c
@@ -0,0 +1,326 @@
+/*
+ * Check decoding of netlink attribute.
+ *
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@gmail.com>
+ * Copyright (c) 2017 The strace developers.
+ * 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 "tests.h"
+
+#include <stdio.h>
+#include <stdint.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/socket.h>
+#include <netinet/tcp.h>
+#include "netlink.h"
+#include <linux/rtnetlink.h>
+#include <linux/sock_diag.h>
+#include <linux/unix_diag.h>
+
+static void
+test_nlattr(const int fd)
+{
+	static const struct msg {
+		struct nlmsghdr nlh;
+		struct unix_diag_msg udm;
+	} c_msg = {
+		.nlh = {
+			.nlmsg_len = sizeof(struct msg),
+			.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+			.nlmsg_flags = NLM_F_DUMP
+		},
+		.udm = {
+			.udiag_family = AF_UNIX,
+			.udiag_type = SOCK_STREAM,
+			.udiag_state = TCP_FIN_WAIT1
+		}
+	};
+	struct msg *msg;
+	struct nlattr *nla;
+	unsigned int msg_len;
+	long rc;
+
+	/* fetch fail: len < sizeof(struct nlattr) */
+	msg_len = NLMSG_SPACE(sizeof(msg->udm)) + 2;
+	msg = tail_memdup(&c_msg, msg_len);
+	memcpy(&msg->nlh.nlmsg_len, &msg_len, sizeof(msg_len));
+	nla = NLMSG_ATTR(msg, sizeof(msg->udm));
+	memcpy(nla, "12", 2);
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, \"12\"}, %u"
+	       ", MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, msg_len, sprintrc(rc));
+
+	/* fetch fail: short read */
+	msg_len = NLMSG_SPACE(sizeof(msg->udm)) + sizeof(*nla);
+	msg = tail_memdup(&c_msg, msg_len - 1);
+	memcpy(&msg->nlh.nlmsg_len, &msg_len, sizeof(msg_len));
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, %p}, %u"
+	       ", MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, (void *) msg + NLMSG_SPACE(sizeof(msg->udm)),
+	       msg_len, sprintrc(rc));
+
+	/* print one struct nlattr */
+	msg_len = NLMSG_SPACE(sizeof(msg->udm)) + sizeof(*nla);
+	msg = tail_memdup(&c_msg, msg_len);
+	memcpy(&msg->nlh.nlmsg_len, &msg_len, sizeof(msg_len));
+	nla = NLMSG_ATTR(msg, sizeof(msg->udm));
+	*nla = (struct nlattr) {
+		.nla_len = sizeof(*nla),
+		.nla_type = UNIX_DIAG_NAME
+	};
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, {nla_len=%u"
+	       ", nla_type=UNIX_DIAG_NAME}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, nla->nla_len, msg_len, sprintrc(rc));
+
+	/* print one struct nlattr with nla_len out of msg_len bounds */
+	nla->nla_len += 8;
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, {nla_len=%u"
+	       ", nla_type=UNIX_DIAG_NAME}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, nla->nla_len, msg_len, sprintrc(rc));
+
+	/* print one struct nlattr and some data */
+	msg_len = NLMSG_SPACE(sizeof(msg->udm)) + NLA_HDRLEN + 4;
+	msg = tail_memdup(&c_msg, msg_len);
+	memcpy(&msg->nlh.nlmsg_len, &msg_len, sizeof(msg_len));
+	nla = NLMSG_ATTR(msg, sizeof(msg->udm));
+	*nla = (struct nlattr) {
+		.nla_len = NLA_HDRLEN + 4,
+		.nla_type = UNIX_DIAG_SHUTDOWN + 1
+	};
+	memcpy(RTA_DATA(nla), "1234", 4);
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, {{nla_len=%u"
+	       ", nla_type=%#x /* UNIX_DIAG_??? */}, \"1234\"}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, nla->nla_len, UNIX_DIAG_SHUTDOWN + 1,
+	       msg_len, sprintrc(rc));
+
+	/* print one struct nlattr and fetch fail second struct nlattr */
+	msg_len = NLMSG_SPACE(sizeof(msg->udm)) + NLA_HDRLEN + 2;
+	msg = tail_memdup(&c_msg, msg_len);
+	memcpy(&msg->nlh.nlmsg_len, &msg_len, sizeof(msg_len));
+	nla = NLMSG_ATTR(msg, sizeof(msg->udm));
+	*nla = (struct nlattr) {
+		.nla_len = NLA_HDRLEN,
+		.nla_type = UNIX_DIAG_NAME
+	};
+	memcpy(nla + 1, "12", 2);
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, [{nla_len=%u"
+	       ", nla_type=UNIX_DIAG_NAME}, \"12\"]}, %u"
+	       ", MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, nla->nla_len, msg_len, sprintrc(rc));
+
+	/* print one struct nlattr and short read of second struct nlattr */
+	msg_len = NLMSG_SPACE(sizeof(msg->udm)) + NLA_HDRLEN * 2;
+	msg = tail_memdup(&c_msg, msg_len - 1);
+	memcpy(&msg->nlh.nlmsg_len, &msg_len, sizeof(msg_len));
+	nla = NLMSG_ATTR(msg, sizeof(msg->udm));
+	*nla = (struct nlattr) {
+		.nla_len = NLA_HDRLEN,
+		.nla_type = UNIX_DIAG_NAME
+	};
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, [{nla_len=%u"
+	       ", nla_type=UNIX_DIAG_NAME}, %p]}, %u"
+	       ", MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, nla->nla_len, nla + 1, msg_len, sprintrc(rc));
+
+	/* print two struct nlattr */
+	msg_len = NLMSG_SPACE(sizeof(msg->udm)) + NLA_HDRLEN * 2;
+	msg = tail_memdup(&c_msg, msg_len);
+	memcpy(&msg->nlh.nlmsg_len, &msg_len, sizeof(msg_len));
+	nla = NLMSG_ATTR(msg, sizeof(msg->udm));
+	*nla = (struct nlattr) {
+		.nla_len = NLA_HDRLEN,
+		.nla_type = UNIX_DIAG_NAME
+	};
+	*(nla + 1) = (struct nlattr) {
+		.nla_len = NLA_HDRLEN,
+		.nla_type = UNIX_DIAG_PEER
+	};
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, [{nla_len=%u"
+	       ", nla_type=UNIX_DIAG_NAME}, {nla_len=%u"
+	       ", nla_type=UNIX_DIAG_PEER}]}, %u"
+	       ", MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, nla->nla_len, nla->nla_len,
+	       msg_len, sprintrc(rc));
+
+	/* print first nlattr only when its nla_len is less than NLA_HDRLEN */
+	nla->nla_len = NLA_HDRLEN - 1;
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, {nla_len=%u"
+	       ", nla_type=UNIX_DIAG_NAME}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, nla->nla_len, msg_len, sprintrc(rc));
+
+	/* abbreviated output */
+#define ABBREV_LEN (DEFAULT_STRLEN + 1)
+	msg_len = NLA_HDRLEN * ABBREV_LEN + NLMSG_SPACE(sizeof(msg->udm));
+	msg = tail_memdup(&c_msg, msg_len);
+	memcpy(&msg->nlh.nlmsg_len, &msg_len, sizeof(msg_len));
+	unsigned int i;
+	nla = NLMSG_ATTR(msg, sizeof(msg->udm));
+	for (i = 0; i < ABBREV_LEN; ++i)
+		nla[i] = (struct nlattr) {
+			.nla_len = NLA_HDRLEN,
+			.nla_type = UNIX_DIAG_SHUTDOWN + 1 + i
+		};
+
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}"
+	       ", {udiag_family=AF_UNIX, udiag_type=SOCK_STREAM"
+	       ", udiag_state=TCP_FIN_WAIT1, udiag_ino=0"
+	       ", udiag_cookie=[0, 0]}, [",
+	       fd, msg_len);
+	for (i = 0; i < DEFAULT_STRLEN; ++i) {
+		if (i)
+			printf(", ");
+		printf("{nla_len=%u, nla_type=%#x /* UNIX_DIAG_??? */}",
+		       nla->nla_len, UNIX_DIAG_SHUTDOWN + 1 + i);
+	}
+	printf(", ...]}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       msg_len, sprintrc(rc));
+}
+
+static void
+test_nla_type(const int fd)
+{
+	static const struct msg {
+		struct nlmsghdr nlh;
+		struct unix_diag_msg udm;
+	} c_msg = {
+		.nlh = {
+			.nlmsg_len = sizeof(struct msg),
+			.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+			.nlmsg_flags = NLM_F_DUMP
+		},
+		.udm = {
+			.udiag_family = AF_UNIX,
+			.udiag_type = SOCK_STREAM,
+			.udiag_state = TCP_FIN_WAIT1
+		}
+	};
+	struct msg *msg;
+	struct nlattr *nla;
+	unsigned int msg_len;
+	long rc;
+
+	msg_len = NLMSG_SPACE(sizeof(msg->udm)) + sizeof(*nla);
+	msg = tail_memdup(&c_msg, msg_len);
+	memcpy(&msg->nlh.nlmsg_len, &msg_len, sizeof(msg_len));
+	nla = NLMSG_ATTR(msg, sizeof(msg->udm));
+	*nla = (struct nlattr) {
+		.nla_len = sizeof(*nla),
+		.nla_type = NLA_F_NESTED | UNIX_DIAG_NAME
+	};
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, {nla_len=%u"
+	       ", nla_type=NLA_F_NESTED|UNIX_DIAG_NAME}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, nla->nla_len, msg_len, sprintrc(rc));
+
+	nla->nla_type = NLA_F_NET_BYTEORDER | UNIX_DIAG_NAME;
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, {nla_len=%u"
+	       ", nla_type=NLA_F_NET_BYTEORDER|UNIX_DIAG_NAME}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, nla->nla_len, msg_len, sprintrc(rc));
+
+	nla->nla_type = NLA_F_NESTED | NLA_F_NET_BYTEORDER | UNIX_DIAG_NAME;
+	rc = sendto(fd, msg, msg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, {nla_len=%u"
+	       ", nla_type=NLA_F_NESTED|NLA_F_NET_BYTEORDER|UNIX_DIAG_NAME}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg_len, nla->nla_len, msg_len, sprintrc(rc));
+
+	nla->nla_type = NLA_F_NESTED | (UNIX_DIAG_SHUTDOWN + 1);
+	rc = sendto(fd, msg, msg->nlh.nlmsg_len, MSG_DONTWAIT, NULL, 0);
+	printf("sendto(%d, {{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_FIN_WAIT1"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}, {nla_len=%u"
+	       ", nla_type=NLA_F_NESTED|%#x /* UNIX_DIAG_??? */}}"
+	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+	       fd, msg->nlh.nlmsg_len, nla->nla_len, UNIX_DIAG_SHUTDOWN + 1,
+	       msg->nlh.nlmsg_len, sprintrc(rc));
+}
+
+int main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
+
+	test_nlattr(fd);
+	test_nla_type(fd);
+
+	puts("+++ exited with 0 +++");
+
+	return 0;
+}
diff --git a/tests/nlattr.gen.test b/tests/nlattr.gen.test
new file mode 100755
index 0000000..105801b
--- /dev/null
+++ b/tests/nlattr.gen.test
@@ -0,0 +1,3 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (nlattr +netlink_sock_diag.test); do not edit.
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests/nlattr_inet_diag_msg.c b/tests/nlattr_inet_diag_msg.c
new file mode 100644
index 0000000..d9d564c
--- /dev/null
+++ b/tests/nlattr_inet_diag_msg.c
@@ -0,0 +1,198 @@
+/*
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@gmail.com>
+ * Copyright (c) 2017 The strace developers.
+ * 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 "tests.h"
+
+#include <stdio.h>
+#include <string.h>
+#include <arpa/inet.h>
+#include <net/if.h>
+#include <netinet/tcp.h>
+#include "test_nlattr.h"
+#include <linux/inet_diag.h>
+#include <linux/sock_diag.h>
+
+static const char address[] = "10.11.12.13";
+
+#ifdef HAVE_IF_INDEXTONAME
+# define IFINDEX_LO	(if_nametoindex("lo"))
+#else
+# define IFINDEX_LO	1
+#endif
+
+static void
+init_inet_diag_msg(struct nlmsghdr *const nlh, const unsigned int msg_len)
+{
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = msg_len,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+
+	struct inet_diag_msg *const msg = NLMSG_DATA(nlh);
+	SET_STRUCT(struct inet_diag_msg, msg,
+		.idiag_family = AF_INET,
+		.idiag_state = TCP_LISTEN,
+		.id.idiag_if = IFINDEX_LO
+	);
+
+	if (!inet_pton(AF_INET, address, msg->id.idiag_src) ||
+	    !inet_pton(AF_INET, address, msg->id.idiag_dst))
+		perror_msg_and_skip("inet_pton");
+}
+
+static void
+print_inet_diag_msg(const unsigned int msg_len)
+{
+	printf("{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {idiag_family=AF_INET"
+	       ", idiag_state=TCP_LISTEN, idiag_timer=0, idiag_retrans=0"
+	       ", id={idiag_sport=htons(0), idiag_dport=htons(0)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_src)"
+	       ", inet_pton(AF_INET, \"%s\", &idiag_dst)"
+	       ", idiag_if=if_nametoindex(\"lo\"), idiag_cookie=[0, 0]}"
+	       ", idiag_expires=0, idiag_rqueue=0, idiag_wqueue=0"
+	       ", idiag_uid=0, idiag_inode=0}",
+	       msg_len, address, address);
+}
+
+static void
+print_uint(const unsigned int *p)
+{
+	printf("%u", *p);
+}
+
+int
+main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
+	const unsigned int hdrlen = sizeof(struct inet_diag_msg);
+	void *const nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+
+	static char pattern[4096];
+	fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
+
+	static const struct inet_diag_meminfo minfo = {
+		.idiag_rmem = 0xfadcacdb,
+		.idiag_wmem = 0xbdabcada,
+		.idiag_fmem = 0xbadbfafb,
+		.idiag_tmem = 0xfdacdadf
+	};
+	TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+			   init_inet_diag_msg, print_inet_diag_msg,
+			   INET_DIAG_MEMINFO, pattern, minfo,
+			   PRINT_FIELD_U("{", minfo, idiag_rmem);
+			   PRINT_FIELD_U(", ", minfo, idiag_wmem);
+			   PRINT_FIELD_U(", ", minfo, idiag_fmem);
+			   PRINT_FIELD_U(", ", minfo, idiag_tmem);
+			   printf("}"));
+
+	static const struct tcpvegas_info vegas = {
+		.tcpv_enabled = 0xfadcacdb,
+		.tcpv_rttcnt = 0xbdabcada,
+		.tcpv_rtt = 0xbadbfafb,
+		.tcpv_minrtt = 0xfdacdadf
+	};
+	TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+			   init_inet_diag_msg, print_inet_diag_msg,
+			   INET_DIAG_VEGASINFO, pattern, vegas,
+			   PRINT_FIELD_U("{", vegas, tcpv_enabled);
+			   PRINT_FIELD_U(", ", vegas, tcpv_rttcnt);
+			   PRINT_FIELD_U(", ", vegas, tcpv_rtt);
+			   PRINT_FIELD_U(", ", vegas, tcpv_minrtt);
+			   printf("}"));
+
+
+	static const struct tcp_dctcp_info dctcp = {
+		.dctcp_enabled = 0xfdac,
+		.dctcp_ce_state = 0xfadc,
+		.dctcp_alpha = 0xbdabcada,
+		.dctcp_ab_ecn = 0xbadbfafb,
+		.dctcp_ab_tot = 0xfdacdadf
+	};
+	TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+			   init_inet_diag_msg, print_inet_diag_msg,
+			   INET_DIAG_DCTCPINFO, pattern, dctcp,
+			   PRINT_FIELD_U("{", dctcp, dctcp_enabled);
+			   PRINT_FIELD_U(", ", dctcp, dctcp_ce_state);
+			   PRINT_FIELD_U(", ", dctcp, dctcp_alpha);
+			   PRINT_FIELD_U(", ", dctcp, dctcp_ab_ecn);
+			   PRINT_FIELD_U(", ", dctcp, dctcp_ab_tot);
+			   printf("}"));
+
+	static const struct tcp_bbr_info bbr = {
+		.bbr_bw_lo = 0xfdacdadf,
+		.bbr_bw_hi = 0xfadcacdb,
+		.bbr_min_rtt = 0xbdabcada,
+		.bbr_pacing_gain = 0xbadbfafb,
+		.bbr_cwnd_gain = 0xfdacdadf
+	};
+	TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+			   init_inet_diag_msg, print_inet_diag_msg,
+			   INET_DIAG_BBRINFO, pattern, bbr,
+			   PRINT_FIELD_X("{", bbr, bbr_bw_lo);
+			   PRINT_FIELD_X(", ", bbr, bbr_bw_hi);
+			   PRINT_FIELD_U(", ", bbr, bbr_min_rtt);
+			   PRINT_FIELD_U(", ", bbr, bbr_pacing_gain);
+			   PRINT_FIELD_U(", ", bbr, bbr_cwnd_gain);
+			   printf("}"));
+
+	static const uint32_t mem[] = { 0xaffacbad, 0xffadbcab };
+	TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
+			  init_inet_diag_msg, print_inet_diag_msg,
+			  INET_DIAG_SKMEMINFO, pattern, mem, print_uint);
+
+	static const uint32_t mark = 0xabdfadca;
+	TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+			   init_inet_diag_msg, print_inet_diag_msg,
+			   INET_DIAG_MARK, pattern, mark,
+			   printf("%u", mark));
+
+	static const uint8_t shutdown = 0xcd;
+	TEST_NLATTR(fd, nlh0, hdrlen,
+		    init_inet_diag_msg, print_inet_diag_msg, INET_DIAG_SHUTDOWN,
+		    sizeof(shutdown), &shutdown, sizeof(shutdown),
+		    printf("%u", shutdown));
+
+	char *const str = tail_alloc(DEFAULT_STRLEN);
+	fill_memory_ex(str, DEFAULT_STRLEN, '0', 10);
+	TEST_NLATTR(fd, nlh0, hdrlen,
+		    init_inet_diag_msg, print_inet_diag_msg, INET_DIAG_CONG,
+		    DEFAULT_STRLEN, str, DEFAULT_STRLEN,
+		    printf("\"%.*s\"...", DEFAULT_STRLEN, str));
+	str[DEFAULT_STRLEN - 1] = '\0';
+	TEST_NLATTR(fd, nlh0, hdrlen,
+		    init_inet_diag_msg, print_inet_diag_msg, INET_DIAG_CONG,
+		    DEFAULT_STRLEN, str, DEFAULT_STRLEN,
+		    printf("\"%s\"", str));
+
+	puts("+++ exited with 0 +++");
+	return 0;
+}
diff --git a/tests/nlattr_inet_diag_msg.gen.test b/tests/nlattr_inet_diag_msg.gen.test
new file mode 100755
index 0000000..953a767
--- /dev/null
+++ b/tests/nlattr_inet_diag_msg.gen.test
@@ -0,0 +1,3 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (nlattr_inet_diag_msg +netlink_sock_diag.test); do not edit.
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests/nlattr_netlink_diag_msg.c b/tests/nlattr_netlink_diag_msg.c
new file mode 100644
index 0000000..76a2d19
--- /dev/null
+++ b/tests/nlattr_netlink_diag_msg.c
@@ -0,0 +1,118 @@
+/*
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@gmail.com>
+ * Copyright (c) 2017 The strace developers.
+ * 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 "tests.h"
+
+#include <stdio.h>
+#include <string.h>
+#include <stdint.h>
+#include "test_nlattr.h"
+#include <linux/netlink_diag.h>
+#include <linux/sock_diag.h>
+
+static void
+init_netlink_diag_msg(struct nlmsghdr *const nlh, const unsigned int msg_len)
+{
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = msg_len,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+
+	struct netlink_diag_msg *const msg = NLMSG_DATA(nlh);
+	SET_STRUCT(struct netlink_diag_msg, msg,
+		.ndiag_family = AF_NETLINK,
+		.ndiag_type = SOCK_RAW,
+		.ndiag_protocol = NETLINK_ROUTE,
+		.ndiag_state = NETLINK_CONNECTED
+	);
+}
+
+static void
+print_netlink_diag_msg(const unsigned int msg_len)
+{
+	printf("{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {ndiag_family=AF_NETLINK"
+	       ", ndiag_type=SOCK_RAW, ndiag_protocol=NETLINK_ROUTE"
+	       ", ndiag_state=NETLINK_CONNECTED, ndiag_portid=0"
+	       ", ndiag_dst_portid=0, ndiag_dst_group=0, ndiag_ino=0"
+	       ", ndiag_cookie=[0, 0]}",
+	       msg_len);
+}
+
+static void
+print_xlong(const unsigned long *p)
+{
+	printf("%#lx", *p);
+}
+
+int
+main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
+	const unsigned int hdrlen = sizeof(struct netlink_diag_msg);
+	void *const nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+
+	static char pattern[4096];
+	fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
+
+	static const unsigned long groups[] = {
+		(unsigned long) 0xdeadbeefbadc0dedULL,
+		(unsigned long) 0xdeadbeefbadc0dedULL
+	};
+	TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
+			  init_netlink_diag_msg, print_netlink_diag_msg,
+			  NETLINK_DIAG_GROUPS, pattern, groups, print_xlong);
+
+	static const struct netlink_diag_ring ndr = {
+		.ndr_block_size = 0xfabfabdc,
+		.ndr_block_nr = 0xabcdabda,
+		.ndr_frame_size = 0xcbadbafa,
+		.ndr_frame_nr = 0xdbcafadb
+	};
+	TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+			   init_netlink_diag_msg, print_netlink_diag_msg,
+			   NETLINK_DIAG_RX_RING, pattern, ndr,
+			   PRINT_FIELD_U("{", ndr, ndr_block_size);
+			   PRINT_FIELD_U(", ", ndr, ndr_block_nr);
+			   PRINT_FIELD_U(", ", ndr, ndr_frame_size);
+			   PRINT_FIELD_U(", ", ndr, ndr_frame_nr);
+			   printf("}"));
+
+	static const uint32_t flags =
+		NDIAG_FLAG_CB_RUNNING | NDIAG_FLAG_PKTINFO;
+	TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+			   init_netlink_diag_msg, print_netlink_diag_msg,
+			   NETLINK_DIAG_FLAGS, pattern, flags,
+			   printf("NDIAG_FLAG_CB_RUNNING|NDIAG_FLAG_PKTINFO"));
+
+	puts("+++ exited with 0 +++");
+	return 0;
+}
diff --git a/tests/nlattr_netlink_diag_msg.gen.test b/tests/nlattr_netlink_diag_msg.gen.test
new file mode 100755
index 0000000..aa6aabf
--- /dev/null
+++ b/tests/nlattr_netlink_diag_msg.gen.test
@@ -0,0 +1,3 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (nlattr_netlink_diag_msg +netlink_sock_diag.test); do not edit.
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests/nlattr_unix_diag_msg.c b/tests/nlattr_unix_diag_msg.c
new file mode 100644
index 0000000..2295404
--- /dev/null
+++ b/tests/nlattr_unix_diag_msg.c
@@ -0,0 +1,116 @@
+/*
+ * Copyright (c) 2017 JingPiao Chen <chenjingpiao@gmail.com>
+ * Copyright (c) 2017 The strace developers.
+ * 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 "tests.h"
+
+#include <stdio.h>
+#include <string.h>
+#include <stdint.h>
+#include <sys/sysmacros.h>
+#include <netinet/tcp.h>
+#include "test_nlattr.h"
+#include <linux/sock_diag.h>
+#include <linux/unix_diag.h>
+
+static void
+init_unix_diag_msg(struct nlmsghdr *const nlh, const unsigned int msg_len)
+{
+	SET_STRUCT(struct nlmsghdr, nlh,
+		.nlmsg_len = msg_len,
+		.nlmsg_type = SOCK_DIAG_BY_FAMILY,
+		.nlmsg_flags = NLM_F_DUMP
+	);
+
+	struct unix_diag_msg *const msg = NLMSG_DATA(nlh);
+	SET_STRUCT(struct unix_diag_msg, msg,
+		.udiag_family = AF_UNIX,
+		.udiag_type = SOCK_STREAM,
+		.udiag_state = TCP_ESTABLISHED
+	);
+}
+
+static void
+print_unix_diag_msg(const unsigned int msg_len)
+{
+	printf("{len=%u, type=SOCK_DIAG_BY_FAMILY"
+	       ", flags=NLM_F_DUMP, seq=0, pid=0}, {udiag_family=AF_UNIX"
+	       ", udiag_type=SOCK_STREAM, udiag_state=TCP_ESTABLISHED"
+	       ", udiag_ino=0, udiag_cookie=[0, 0]}",
+	       msg_len);
+}
+
+static void
+print_uint(const unsigned int *p)
+{
+	printf("%u", *p);
+}
+
+int
+main(void)
+{
+	skip_if_unavailable("/proc/self/fd/");
+
+	const int fd = create_nl_socket(NETLINK_SOCK_DIAG);
+	const unsigned int hdrlen = sizeof(struct unix_diag_msg);
+	void *const nlh0 = tail_alloc(NLMSG_SPACE(hdrlen));
+
+	static char pattern[4096];
+	fill_memory_ex(pattern, sizeof(pattern), 'a', 'z' - 'a' + 1);
+
+	static const struct unix_diag_vfs uv = {
+		.udiag_vfs_dev = 0xabcddafa,
+		.udiag_vfs_ino = 0xbafabcda
+	};
+	TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+			   init_unix_diag_msg, print_unix_diag_msg,
+			   UNIX_DIAG_VFS, pattern, uv,
+			   printf("{udiag_vfs_dev=makedev(%u, %u)",
+				  major(uv.udiag_vfs_dev),
+				  minor(uv.udiag_vfs_dev));
+			   PRINT_FIELD_U(", ", uv, udiag_vfs_ino);
+			   printf("}"));
+
+	static const struct unix_diag_rqlen rql = {
+		.udiag_rqueue = 0xfabdcdad,
+		.udiag_wqueue = 0xbacdadcf
+	};
+	TEST_NLATTR_OBJECT(fd, nlh0, hdrlen,
+			   init_unix_diag_msg, print_unix_diag_msg,
+			   UNIX_DIAG_RQLEN, pattern, rql,
+			   PRINT_FIELD_U("{", rql, udiag_rqueue);
+			   PRINT_FIELD_U(", ", rql, udiag_wqueue);
+			   printf("}"));
+
+	static const uint32_t inode[] = { 0xadbcadbc, 0xfabdcdac };
+	TEST_NLATTR_ARRAY(fd, nlh0, hdrlen,
+			  init_unix_diag_msg, print_unix_diag_msg,
+			  UNIX_DIAG_ICONS, pattern, inode, print_uint);
+
+	puts("+++ exited with 0 +++");
+	return 0;
+}
diff --git a/tests/nlattr_unix_diag_msg.gen.test b/tests/nlattr_unix_diag_msg.gen.test
new file mode 100755
index 0000000..d913afc
--- /dev/null
+++ b/tests/nlattr_unix_diag_msg.gen.test
@@ -0,0 +1,3 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (nlattr_unix_diag_msg +netlink_sock_diag.test); do not edit.
+. "${srcdir=.}/netlink_sock_diag.test"
diff --git a/tests/nsyscalls.c b/tests/nsyscalls.c
index 7fda5ba..d6b989c 100644
--- a/tests/nsyscalls.c
+++ b/tests/nsyscalls.c
@@ -54,7 +54,7 @@
 #define SI 0
 #define SE 0
 #define CST 0
-#define SEN(arg) 0,0
+#define SEN(arg) 0, 0
 
 static const struct_sysent syscallent[] = {
 #include "syscallent.h"
diff --git a/tests/options-syntax.test b/tests/options-syntax.test
index 4c778b3..7cfc579 100755
--- a/tests/options-syntax.test
+++ b/tests/options-syntax.test
@@ -127,8 +127,20 @@
 check_h "invalid -a argument: '-42'" -a -42
 check_h "invalid -O argument: '-42'" -O -42
 check_h "invalid -s argument: '-42'" -s -42
+check_h "invalid -s argument: '1073741824'" -s 1073741824
 check_h "invalid -I argument: '5'" -I 5
 
+cat > "$EXP" << '__EOF__'
+strace: must have PROG [ARGS] or -p PID
+Try 'strace -h' for more information.
+__EOF__
+../zeroargc "$strace_exp" /bin/true 2> "$LOG" &&
+	dump_log_and_fail_with \
+		'zeroargc strace failed to handle the error properly'
+match_diff "$LOG" "$EXP" ||
+	dump_log_and_fail_with \
+		'zeroargc strace failed to print expected diagnostics'
+
 if [ -n "${UID-}" ]; then
 	if [ "${UID-}" = 0 ]; then
 		umsg="Cannot find user ':nosuchuser:'"
diff --git a/tests/perf_event_open.c b/tests/perf_event_open.c
index 3f544a6..74ff952 100644
--- a/tests/perf_event_open.c
+++ b/tests/perf_event_open.c
@@ -73,36 +73,36 @@
 	const char *str;
 };
 
-/* In order to avoid endianess-specific hackery */
+/* In order to avoid endianness-specific hackery. */
 struct pea_flags {
-	uint64_t disabled                 :1,
-	         inherit                  :1,
-	         pinned                   :1,
-	         exclusive                :1,
-	         exclude_user             :1,
-	         exclude_kernel           :1,
-	         exclude_hv               :1,
-	         exclude_idle             :1,
-	         mmap                     :1,
-	         comm                     :1,
-	         freq                     :1,
-	         inherit_stat             :1,
-	         enable_on_exec           :1,
-	         task                     :1,
-	         watermark                :1,
-	         precise_ip               :2,
-	         mmap_data                :1,
-	         sample_id_all            :1,
-	         exclude_host             :1,
-	         exclude_guest            :1,
-	         exclude_callchain_kernel :1,
-	         exclude_callchain_user   :1,
-	         mmap2                    :1,
-	         comm_exec                :1,
-	         use_clockid              :1,
-	         context_switch           :1,
-	         write_backward           :1,
-	         __reserved_1             :36;
+	uint64_t disabled			:1,
+		 inherit			:1,
+		 pinned				:1,
+		 exclusive			:1,
+		 exclude_user			:1,
+		 exclude_kernel			:1,
+		 exclude_hv			:1,
+		 exclude_idle			:1,
+		 mmap				:1,
+		 comm				:1,
+		 freq				:1,
+		 inherit_stat			:1,
+		 enable_on_exec			:1,
+		 task				:1,
+		 watermark			:1,
+		 precise_ip			:2,
+		 mmap_data			:1,
+		 sample_id_all			:1,
+		 exclude_host			:1,
+		 exclude_guest			:1,
+		 exclude_callchain_kernel	:1,
+		 exclude_callchain_user		:1,
+		 mmap2				:1,
+		 comm_exec			:1,
+		 use_clockid			:1,
+		 context_switch			:1,
+		 write_backward			:1,
+		 __reserved_1			:36;
 };
 
 static const char *
@@ -458,7 +458,7 @@
 
 	/* End of version 4 of the structure */
 	if (size <= 104) {
-		cutoff =104;
+		cutoff = 104;
 		goto end;
 	}
 
@@ -471,7 +471,7 @@
 	printf(", aux_watermark=%" PRIu32, (uint32_t) val);
 
 	if (size <= 108) {
-		cutoff =108;
+		cutoff = 108;
 		goto end;
 	}
 
@@ -484,7 +484,7 @@
 	printf(", sample_max_stack=%" PRIu16, (uint16_t) val);
 
 	if (size <= 110) {
-		cutoff =110;
+		cutoff = 110;
 		goto end;
 	}
 
@@ -718,7 +718,7 @@
 
 	for (i = 0; i < ARRAY_SIZE(args); i++) {
 		rc = syscall(__NR_perf_event_open, args[i].attr, args[i].pid,
-		             args[i].cpu, args[i].group_fd, args[i].flags);
+			     args[i].cpu, args[i].group_fd, args[i].flags);
 		printf("perf_event_open(%s, %d, %d, %d, %s) = %s\n",
 		       printaddr(args[i].attr), args[i].pid, args[i].cpu,
 		       args[i].group_fd, args[i].flags_str, sprintrc(rc));
@@ -793,19 +793,19 @@
 			attr->size = 0;
 
 		rc = syscall(__NR_perf_event_open, attr, args[args_idx].pid,
-		             args[args_idx].cpu, args[args_idx].group_fd,
-		             args[args_idx].flags);
+			     args[args_idx].cpu, args[args_idx].group_fd,
+			     args[args_idx].flags);
 
 		printf("perf_event_open(");
 		print_event_attr(attr, i ? ((i == 1) ? 0 : size) : size + 8,
-		                 attr_types[type_idx].str,
-		                 attr_configs[type_idx][config_idx].str,
-		                 sample_types[sample_type_idx].str,
-		                 read_formats[read_format_idx].str,
-		                 ip_desc_str,
-		                 bp_types[bp_type_idx].str,
-		                 branch_sample_types[branch_sample_type_idx].str,
-		                 clockids[clockid_idx].str, size);
+				 attr_types[type_idx].str,
+				 attr_configs[type_idx][config_idx].str,
+				 sample_types[sample_type_idx].str,
+				 read_formats[read_format_idx].str,
+				 ip_desc_str,
+				 bp_types[bp_type_idx].str,
+				 branch_sample_types[branch_sample_type_idx].str,
+				 clockids[clockid_idx].str, size);
 		printf(", %d, %d, %d, %s) = %s\n", args[args_idx].pid,
 		       args[args_idx].cpu, args[args_idx].group_fd,
 		       args[args_idx].flags_str, sprintrc(rc));
diff --git a/tests/poll.c b/tests/poll.c
index c47c97e..af66e53 100644
--- a/tests/poll.c
+++ b/tests/poll.c
@@ -39,13 +39,15 @@
 # include <stdlib.h>
 # include <unistd.h>
 
-#define PRINT_EVENT(flag, member) \
-	if (member & flag) { \
-		if (member != pfd->member) \
-			tprintf("|"); \
-		tprintf(#flag); \
-		member &= ~flag; \
-	}
+#define PRINT_EVENT(flag, member)			\
+	do {						\
+		if (member & flag) {			\
+			if (member != pfd->member)	\
+				tprintf("|");		\
+			tprintf(#flag);			\
+			member &= ~flag;		\
+		}					\
+	} while (0)
 
 static void
 print_pollfd_entering(const struct pollfd *const pfd)
@@ -56,24 +58,24 @@
 		short events = pfd->events;
 
 		if (pfd->events) {
-			PRINT_EVENT(POLLIN, events)
-			PRINT_EVENT(POLLPRI, events)
-			PRINT_EVENT(POLLOUT, events)
+			PRINT_EVENT(POLLIN, events);
+			PRINT_EVENT(POLLPRI, events);
+			PRINT_EVENT(POLLOUT, events);
 #ifdef POLLRDNORM
-			PRINT_EVENT(POLLRDNORM, events)
+			PRINT_EVENT(POLLRDNORM, events);
 #endif
 #ifdef POLLWRNORM
-			PRINT_EVENT(POLLWRNORM, events)
+			PRINT_EVENT(POLLWRNORM, events);
 #endif
 #ifdef POLLRDBAND
-			PRINT_EVENT(POLLRDBAND, events)
+			PRINT_EVENT(POLLRDBAND, events);
 #endif
 #ifdef POLLWRBAND
-			PRINT_EVENT(POLLWRBAND, events)
+			PRINT_EVENT(POLLWRBAND, events);
 #endif
-			PRINT_EVENT(POLLERR, events)
-			PRINT_EVENT(POLLHUP, events)
-			PRINT_EVENT(POLLNVAL, events)
+			PRINT_EVENT(POLLERR, events);
+			PRINT_EVENT(POLLHUP, events);
+			PRINT_EVENT(POLLNVAL, events);
 		} else
 			tprintf("0");
 	}
@@ -123,24 +125,24 @@
 	tprintf("{fd=%d, revents=", pfd->fd);
 	short revents = pfd->revents;
 
-	PRINT_EVENT(POLLIN, revents)
-	PRINT_EVENT(POLLPRI, revents)
-	PRINT_EVENT(POLLOUT, revents)
+	PRINT_EVENT(POLLIN, revents);
+	PRINT_EVENT(POLLPRI, revents);
+	PRINT_EVENT(POLLOUT, revents);
 #ifdef POLLRDNORM
-	PRINT_EVENT(POLLRDNORM, revents)
+	PRINT_EVENT(POLLRDNORM, revents);
 #endif
 #ifdef POLLWRNORM
-	PRINT_EVENT(POLLWRNORM, revents)
+	PRINT_EVENT(POLLWRNORM, revents);
 #endif
 #ifdef POLLRDBAND
-	PRINT_EVENT(POLLRDBAND, revents)
+	PRINT_EVENT(POLLRDBAND, revents);
 #endif
 #ifdef POLLWRBAND
-	PRINT_EVENT(POLLWRBAND, revents)
+	PRINT_EVENT(POLLWRBAND, revents);
 #endif
-	PRINT_EVENT(POLLERR, revents)
-	PRINT_EVENT(POLLHUP, revents)
-	PRINT_EVENT(POLLNVAL, revents)
+	PRINT_EVENT(POLLERR, revents);
+	PRINT_EVENT(POLLHUP, revents);
+	PRINT_EVENT(POLLNVAL, revents);
 	tprintf("}");
 }
 
@@ -192,7 +194,8 @@
 	tprintf("poll(");
 	print_pollfd_array_entering(tail_fds0, ARRAY_SIZE(pfds0),
 				    ARRAY_SIZE(pfds0), abbrev);
-	tprintf(", %u, %d) = %d (", ARRAY_SIZE(pfds0), timeout, rc);
+	tprintf(", %u, %d) = %d (",
+		(unsigned int) ARRAY_SIZE(pfds0), timeout, rc);
 	print_pollfd_array_exiting(tail_fds0, ARRAY_SIZE(pfds0), abbrev);
 	tprintf(")\n");
 
@@ -205,7 +208,8 @@
 	tprintf("poll(");
 	print_pollfd_array_entering(tail_fds0, ARRAY_SIZE(pfds0),
 				    ARRAY_SIZE(pfds0), abbrev);
-	tprintf(", %u, %d) = %d (", ARRAY_SIZE(pfds0), timeout, rc);
+	tprintf(", %u, %d) = %d (",
+		(unsigned int) ARRAY_SIZE(pfds0), timeout, rc);
 	print_pollfd_array_exiting(tail_fds0, ARRAY_SIZE(pfds0), abbrev);
 	tprintf(")\n");
 
@@ -217,7 +221,8 @@
 	tprintf("poll(");
 	print_pollfd_array_entering(tail_fds0, ARRAY_SIZE(pfds0),
 				    ARRAY_SIZE(pfds0), abbrev);
-	tprintf(", %u, %d) = %d (", ARRAY_SIZE(pfds0), timeout, rc);
+	tprintf(", %u, %d) = %d (",
+		(unsigned int) ARRAY_SIZE(pfds0), timeout, rc);
 	print_pollfd_array_exiting(tail_fds0, ARRAY_SIZE(pfds0), abbrev);
 	tprintf(")\n");
 
@@ -232,7 +237,8 @@
 	tprintf("poll(");
 	print_pollfd_array_entering(tail_fds1, ARRAY_SIZE(pfds1),
 				    ARRAY_SIZE(pfds1), abbrev);
-	tprintf(", %u, %d) = %d (Timeout)\n", ARRAY_SIZE(pfds1), timeout, rc);
+	tprintf(", %u, %d) = %d (Timeout)\n",
+		(unsigned int) ARRAY_SIZE(pfds1), timeout, rc);
 
 	const void *const efault = tail_fds0 + ARRAY_SIZE(pfds0);
 	rc = syscall(__NR_poll, efault, 1, 0);
diff --git a/tests/ppoll.c b/tests/ppoll.c
index 85a7e0c..6224183 100644
--- a/tests/ppoll.c
+++ b/tests/ppoll.c
@@ -138,9 +138,10 @@
 #if VERBOSE
 	       pipe_fd[2], pipe_fd[3],
 #endif
-	       (unsigned) ARRAY_SIZE(fds1), USR2_CHLD_str,
-	       (unsigned) sigset_size, rc, pipe_fd[1], POLLWRNORM_str,
-	       pipe_fd[3], (unsigned ) ts->tv_sec, (unsigned) ts->tv_nsec);
+	       (unsigned int) ARRAY_SIZE(fds1), USR2_CHLD_str,
+	       (unsigned int) sigset_size, rc, pipe_fd[1], POLLWRNORM_str,
+	       pipe_fd[3], (unsigned int) ts->tv_sec,
+	       (unsigned int) ts->tv_nsec);
 
 	ts->tv_sec = 0;
 	ts->tv_nsec = 999;
diff --git a/tests/preadv-pwritev.c b/tests/preadv-pwritev.c
index b2d2a82..ddbd47f 100644
--- a/tests/preadv-pwritev.c
+++ b/tests/preadv-pwritev.c
@@ -121,7 +121,7 @@
 		" * %u bytes in buffer 2\n"
 		" | 00000 %-49s  %-16s |\n",
 		w0_c, LENGTH_OF(w0_c), w1_c, LENGTH_OF(w1_c),
-		w2_c, LENGTH_OF(w2_c), ARRAY_SIZE(w_iov_), w_len,
+		w2_c, LENGTH_OF(w2_c), (unsigned int) ARRAY_SIZE(w_iov_), w_len,
 		LENGTH_OF(w0_c), w0_d, w0_c,
 		LENGTH_OF(w1_c), w1_d, w1_c, LENGTH_OF(w2_c), w2_d, w2_c);
 
@@ -142,7 +142,8 @@
 	tprintf("preadv(0, [{iov_base=\"%s\", iov_len=%u}], %u, 0) = %u\n"
 		" * %u bytes in buffer 0\n"
 		" | 00000 %-49s  %-16s |\n",
-		r0_c, r_len, ARRAY_SIZE(r0_iov_), r_len, r_len, r0_d, r0_c);
+		r0_c, r_len, (unsigned int) ARRAY_SIZE(r0_iov_),
+		r_len, r_len, r0_d, r0_c);
 
 	void *r1 = tail_alloc(r_len);
 	void *r2 = tail_alloc(w_len);
@@ -166,7 +167,7 @@
 		", {iov_base=\"\", iov_len=%u}], %u, %u) = %u\n"
 		" * %u bytes in buffer 0\n"
 		" | 00000 %-49s  %-16s |\n",
-		r1_c, r_len, w_len, ARRAY_SIZE(r1_iov_),
+		r1_c, r_len, w_len, (unsigned int) ARRAY_SIZE(r1_iov_),
 		r_len, w_len - r_len,
 		w_len - r_len, r1_d, r1_c);
 	close(0);
diff --git a/tests/preadv.c b/tests/preadv.c
index a55909b..d5ad84f 100644
--- a/tests/preadv.c
+++ b/tests/preadv.c
@@ -125,7 +125,7 @@
 		perror_msg_and_fail("preadv: expected %u, returned %ld",
 				    r_len, rc);
 	printf("preadv(%d, [{iov_base=\"%s\", iov_len=%u}], %u, 0) = %u\n",
-	       fd, r0_c, r_len, ARRAY_SIZE(r0_iov_), r_len);
+	       fd, r0_c, r_len, (unsigned int) ARRAY_SIZE(r0_iov_), r_len);
 
 	void *r1 = tail_alloc(r_len);
 	void *r2 = tail_alloc(LENGTH_OF(w));
@@ -147,8 +147,9 @@
 				    (int) LENGTH_OF(w) - r_len, rc);
 	printf("preadv(%d, [{iov_base=\"%s\", iov_len=%u}"
 	       ", {iov_base=\"\", iov_len=%u}], %u, %u) = %u\n",
-	       fd, r1_c, r_len, LENGTH_OF(w), ARRAY_SIZE(r1_iov_),
-		r_len, LENGTH_OF(w) - r_len);
+	       fd, r1_c, r_len, LENGTH_OF(w),
+	       (unsigned int) ARRAY_SIZE(r1_iov_),
+	       r_len, LENGTH_OF(w) - r_len);
 
 	puts("+++ exited with 0 +++");
 	return 0;
diff --git a/tests/preadv2-pwritev2.c b/tests/preadv2-pwritev2.c
index e31e046..89f37dd 100644
--- a/tests/preadv2-pwritev2.c
+++ b/tests/preadv2-pwritev2.c
@@ -127,7 +127,7 @@
 		" * %u bytes in buffer 2\n"
 		" | 00000 %-49s  %-16s |\n",
 		w0_c, LENGTH_OF(w0_c), w1_c, LENGTH_OF(w1_c),
-		w2_c, LENGTH_OF(w2_c), ARRAY_SIZE(w_iov_), w_len,
+		w2_c, LENGTH_OF(w2_c), (unsigned int) ARRAY_SIZE(w_iov_), w_len,
 		LENGTH_OF(w0_c), w0_d, w0_c,
 		LENGTH_OF(w1_c), w1_d, w1_c, LENGTH_OF(w2_c), w2_d, w2_c);
 
@@ -148,7 +148,8 @@
 	tprintf("preadv2(0, [{iov_base=\"%s\", iov_len=%u}], %u, 0, 0) = %u\n"
 		" * %u bytes in buffer 0\n"
 		" | 00000 %-49s  %-16s |\n",
-		r0_c, r_len, ARRAY_SIZE(r0_iov_), r_len, r_len, r0_d, r0_c);
+		r0_c, r_len, (unsigned int) ARRAY_SIZE(r0_iov_),
+		r_len, r_len, r0_d, r0_c);
 
 	void *r1 = tail_alloc(r_len);
 	void *r2 = tail_alloc(w_len);
@@ -172,7 +173,7 @@
 		", {iov_base=\"\", iov_len=%u}], %u, %u, 0) = %u\n"
 		" * %u bytes in buffer 0\n"
 		" | 00000 %-49s  %-16s |\n",
-		r1_c, r_len, w_len, ARRAY_SIZE(r1_iov_),
+		r1_c, r_len, w_len, (unsigned int) ARRAY_SIZE(r1_iov_),
 		r_len, w_len - r_len,
 		w_len - r_len, r1_d, r1_c);
 	close(0);
diff --git a/tests/print_quoted_string.c b/tests/print_quoted_string.c
index 3ad8602..732fe3d 100644
--- a/tests/print_quoted_string.c
+++ b/tests/print_quoted_string.c
@@ -18,7 +18,7 @@
 void
 print_quoted_memory(const char *instr, const size_t len)
 {
-	const unsigned char *str = (const unsigned char*) instr;
+	const unsigned char *str = (const unsigned char *) instr;
 	size_t i;
 
 	for (i = 0; i < len; ++i) {
diff --git a/tests/print_time.c b/tests/print_time.c
index 4292329..e259242 100644
--- a/tests/print_time.c
+++ b/tests/print_time.c
@@ -58,8 +58,6 @@
 
 	if (comment)
 		fputs(" */", stdout);
-
-	return;
 }
 
 void
diff --git a/tests/printstr.c b/tests/printstr.c
index 330234f..8e22681 100644
--- a/tests/printstr.c
+++ b/tests/printstr.c
@@ -34,13 +34,11 @@
 #include <unistd.h>
 #include <sys/uio.h>
 
-#define DEFAULT_STRLEN 32
-
 int
 main(void)
 {
 	char *const buf = tail_alloc(DEFAULT_STRLEN + 1);
-	const struct iovec io = {
+	struct iovec io = {
 		.iov_base = buf,
 		.iov_len = -1
 	};
@@ -64,6 +62,11 @@
 	tprintf("writev(-1, [{iov_base=\"\\0%*s\"..., iov_len=%lu}], 1)"
 		" = %s\n", DEFAULT_STRLEN - 1, buf + 1, -1UL, sprintrc(rc));
 
+	++io.iov_base;
+	rc = writev(-1, &io, 1);
+	tprintf("writev(-1, [{iov_base=%p, iov_len=%lu}], 1) = %s\n",
+		io.iov_base, -1UL, sprintrc(rc));
+
 	tprintf("+++ exited with 0 +++\n");
 	return 0;
 }
diff --git a/tests/process_vm_readv_writev.c b/tests/process_vm_readv_writev.c
index 2a08939..c0f9c31 100644
--- a/tests/process_vm_readv_writev.c
+++ b/tests/process_vm_readv_writev.c
@@ -51,7 +51,7 @@
 struct print_iov_arg {
 	uint32_t count;
 	uint32_t valid    :1,
-	         string   :1,
+		 string   :1,
 		 addr_term:1,
 		 check_rc :1;
 	uint32_t str_segms;
@@ -247,14 +247,15 @@
 		2, {SEGM1_BASE, SEGM2_BASE}, {SIZE_1, SIZE_2} };
 	struct print_iov_arg rmt_arg     = { ARRAY_SIZE(rmt_iovec), 1 };
 
-	struct print_iov_arg bogus_arg_cut =
-		{ ARRAY_SIZE(bogus_iovec) - 2, 1, 0, 1 };
-	struct print_iov_arg lcl_arg_cut =
-		{ ARRAY_SIZE(lcl_iovec) - 2, 1, 1, 1, 0, 2,
-			{SEGM1_BASE + SIZE_11 + SIZE_12, SEGM2_BASE},
-			{SIZE_13, SIZE_2} };
-	struct print_iov_arg rmt_arg_cut =
-		{ ARRAY_SIZE(rmt_iovec) - 2, 1 };
+	struct print_iov_arg bogus_arg_cut = {
+		ARRAY_SIZE(bogus_iovec) - 2, 1, 0, 1
+	};
+	struct print_iov_arg lcl_arg_cut = {
+		ARRAY_SIZE(lcl_iovec) - 2, 1, 1, 1, 0, 2,
+		{ SEGM1_BASE + SIZE_11 + SIZE_12, SEGM2_BASE },
+		{SIZE_13, SIZE_2}
+	};
+	struct print_iov_arg rmt_arg_cut = { ARRAY_SIZE(rmt_iovec) - 2, 1 };
 
 
 	fill_memory_ex(data1_out, SIZE_1, SEGM1_BASE, SIZE_1);
diff --git a/tests/pselect6.c b/tests/pselect6.c
index f5939f3..0729808 100644
--- a/tests/pselect6.c
+++ b/tests/pselect6.c
@@ -109,7 +109,7 @@
 	 * but with a pointer to a large chunk of valid memory.
 	 */
 	FD_ZERO(set[0]);
-	FD_SET(fds[1],set[0]);
+	FD_SET(fds[1], set[0]);
 	assert(pselect(-1, NULL, set[0], NULL, NULL, &mask) == -1);
 	printf("pselect6(-1, NULL, %p, NULL, NULL, {[HUP CHLD], %u}) "
 	       "= -1 EINVAL (%m)\n", set[0], NSIG_BYTES);
@@ -118,7 +118,7 @@
 	 * Another variant, with nfds exceeding FD_SETSIZE limit.
 	 */
 	FD_ZERO(set[0]);
-	FD_SET(fds[0],set[0]);
+	FD_SET(fds[0], set[0]);
 	FD_ZERO(set[1]);
 	tm.ts.tv_sec = 0;
 	tm.ts.tv_nsec = 123;
diff --git a/tests/ptrace.c b/tests/ptrace.c
index 9e0ffdc..d776dcd 100644
--- a/tests/ptrace.c
+++ b/tests/ptrace.c
@@ -114,7 +114,7 @@
 			if (errno == EINTR)
 				continue;
 			saved = errno;
-			kill (pid, SIGKILL);
+			kill(pid, SIGKILL);
 			errno = saved;
 			perror_msg_and_fail("wait");
 		}
@@ -159,7 +159,7 @@
 
 		if (do_ptrace(PTRACE_CONT, pid, 0, 0)) {
 			saved = errno;
-			kill (pid, SIGKILL);
+			kill(pid, SIGKILL);
 			errno = saved;
 			perror_msg_and_fail("ptrace");
 		}
diff --git a/tests/pure_executables.am b/tests/pure_executables.am
new file mode 100644
index 0000000..8563488
--- /dev/null
+++ b/tests/pure_executables.am
@@ -0,0 +1,347 @@
+# Generated by ./tests/gen_pure_executables.sh from ./tests/pure_executables.list; do not edit.
+PURE_EXECUTABLES = \
+  _newselect \
+  accept \
+  accept4 \
+  access \
+  acct \
+  add_key \
+  adjtimex \
+  aio \
+  alarm \
+  bpf \
+  brk \
+  btrfs \
+  caps \
+  chmod \
+  chown \
+  chown32 \
+  chroot \
+  clock_adjtime \
+  clock_nanosleep \
+  clock_xettime \
+  copy_file_range \
+  creat \
+  delete_module \
+  dup \
+  dup2 \
+  dup3 \
+  epoll_create \
+  epoll_create1 \
+  epoll_ctl \
+  epoll_pwait \
+  epoll_wait \
+  erestartsys \
+  eventfd \
+  execve \
+  execveat \
+  faccessat \
+  fadvise64 \
+  fadvise64_64 \
+  fallocate \
+  fanotify_init \
+  fanotify_mark \
+  fchdir \
+  fchmod \
+  fchmodat \
+  fchown \
+  fchown32 \
+  fchownat \
+  fcntl \
+  fcntl64 \
+  fdatasync \
+  file_handle \
+  file_ioctl \
+  finit_module \
+  flock \
+  fstat \
+  fstat64 \
+  fstatat64 \
+  fstatfs \
+  fstatfs64 \
+  fsync \
+  ftruncate \
+  ftruncate64 \
+  futex \
+  futimesat \
+  get_mempolicy \
+  getcpu \
+  getcwd \
+  getdents \
+  getdents64 \
+  getegid \
+  getegid32 \
+  geteuid \
+  geteuid32 \
+  getgid \
+  getgid32 \
+  getgroups \
+  getgroups32 \
+  getpeername \
+  getpgrp \
+  getpid \
+  getppid \
+  getrandom \
+  getresgid \
+  getresgid32 \
+  getresuid \
+  getresuid32 \
+  getrlimit \
+  getrusage \
+  getsid \
+  getsockname \
+  getuid \
+  getuid32 \
+  getxxid \
+  inet-cmsg \
+  init_module \
+  inotify \
+  inotify_init1 \
+  ioctl \
+  ioctl_block \
+  ioctl_dm \
+  ioctl_evdev \
+  ioctl_loop \
+  ioctl_mtd \
+  ioctl_rtc \
+  ioctl_scsi \
+  ioctl_sg_io_v3 \
+  ioctl_sg_io_v4 \
+  ioctl_sock_gifconf \
+  ioctl_uffdio \
+  ioctl_v4l2 \
+  ioperm \
+  iopl \
+  ioprio \
+  ip_mreq \
+  ipc \
+  ipc_msg \
+  ipc_msgbuf \
+  ipc_sem \
+  ipc_shm \
+  kcmp \
+  kexec_file_load \
+  kexec_load \
+  keyctl \
+  kill \
+  lchown \
+  lchown32 \
+  link \
+  linkat \
+  llseek \
+  lookup_dcookie \
+  lseek \
+  lstat \
+  lstat64 \
+  madvise \
+  mbind \
+  membarrier \
+  memfd_create \
+  migrate_pages \
+  mincore \
+  mkdir \
+  mkdirat \
+  mknod \
+  mknodat \
+  mlock \
+  mlock2 \
+  mlockall \
+  mmap \
+  mmap64 \
+  mmsg \
+  mmsg_name \
+  mount \
+  move_pages \
+  mq \
+  mq_sendrecv \
+  mq_sendrecv-read \
+  mq_sendrecv-write \
+  msg_control \
+  msg_name \
+  munlockall \
+  nanosleep \
+  net-icmp_filter \
+  net-sockaddr \
+  net-y-unix \
+  net-yy-inet \
+  net-yy-netlink \
+  net-yy-unix \
+  netlink_audit \
+  netlink_generic \
+  netlink_netfilter \
+  netlink_protocol \
+  netlink_route \
+  netlink_selinux \
+  netlink_sock_diag \
+  netlink_xfrm \
+  newfstatat \
+  nlattr \
+  nlattr_inet_diag_msg \
+  nlattr_netlink_diag_msg \
+  nlattr_unix_diag_msg \
+  old_mmap \
+  oldfstat \
+  oldlstat \
+  oldselect \
+  oldstat \
+  open \
+  openat \
+  osf_utimes \
+  pause \
+  perf_event_open \
+  personality \
+  pipe \
+  pipe2 \
+  pkey_alloc \
+  pkey_free \
+  pkey_mprotect \
+  poll \
+  ppoll \
+  prctl-arg2-intptr \
+  prctl-dumpable \
+  prctl-name \
+  prctl-no-args \
+  prctl-pdeathsig \
+  prctl-securebits \
+  prctl-tid_address \
+  prctl-tsc \
+  pread64-pwrite64 \
+  preadv \
+  preadv-pwritev \
+  preadv2-pwritev2 \
+  printstr \
+  prlimit64 \
+  process_vm_readv \
+  process_vm_writev \
+  pselect6 \
+  ptrace \
+  pwritev \
+  quotactl \
+  quotactl-xfs \
+  read-write \
+  readahead \
+  readdir \
+  readlink \
+  readlinkat \
+  readv \
+  reboot \
+  recvfrom \
+  recvmmsg-timeout \
+  recvmsg \
+  remap_file_pages \
+  rename \
+  renameat \
+  renameat2 \
+  request_key \
+  rmdir \
+  rt_sigaction \
+  rt_sigpending \
+  rt_sigprocmask \
+  rt_sigqueueinfo \
+  rt_sigreturn \
+  rt_sigsuspend \
+  rt_sigtimedwait \
+  rt_tgsigqueueinfo \
+  sched_get_priority_mxx \
+  sched_rr_get_interval \
+  sched_xetaffinity \
+  sched_xetattr \
+  sched_xetparam \
+  sched_xetscheduler \
+  sched_yield \
+  seccomp-filter \
+  select \
+  semop \
+  sendfile \
+  sendfile64 \
+  set_mempolicy \
+  setdomainname \
+  setfsgid \
+  setfsgid32 \
+  setfsuid \
+  setfsuid32 \
+  setgid \
+  setgid32 \
+  setgroups \
+  setgroups32 \
+  sethostname \
+  setns \
+  setregid \
+  setregid32 \
+  setresgid \
+  setresgid32 \
+  setresuid \
+  setresuid32 \
+  setreuid \
+  setreuid32 \
+  setrlimit \
+  setuid \
+  setuid32 \
+  shmxt \
+  shutdown \
+  sigaction \
+  sigaltstack \
+  siginfo \
+  signal \
+  signalfd4 \
+  sigpending \
+  sigprocmask \
+  sigreturn \
+  sigsuspend \
+  socketcall \
+  splice \
+  stat \
+  stat64 \
+  statfs \
+  statfs64 \
+  statx \
+  swap \
+  sxetmask \
+  symlink \
+  symlinkat \
+  sync \
+  sync_file_range \
+  sync_file_range2 \
+  sysinfo \
+  syslog \
+  tee \
+  time \
+  timer_create \
+  timer_xettime \
+  timerfd_xettime \
+  times \
+  times-fail \
+  truncate \
+  truncate64 \
+  ugetrlimit \
+  uio \
+  umask \
+  umount \
+  umount2 \
+  umoven-illptr \
+  umovestr \
+  umovestr-illptr \
+  umovestr2 \
+  umovestr3 \
+  uname \
+  unlink \
+  unlinkat \
+  unshare \
+  userfaultfd \
+  ustat \
+  utime \
+  utimensat \
+  utimes \
+  vhangup \
+  vmsplice \
+  wait4 \
+  waitid \
+  waitpid \
+  xattr \
+  xattr-strings \
+  xet_robust_list \
+  xetitimer \
+  xetpgid \
+  xetpriority \
+  xettimeofday \
+  #
diff --git a/tests/pure_executables.list b/tests/pure_executables.list
index cc65614..033208e 100755
--- a/tests/pure_executables.list
+++ b/tests/pure_executables.list
@@ -165,8 +165,19 @@
 net-yy-inet
 net-yy-netlink
 net-yy-unix
+netlink_audit
+netlink_generic
+netlink_netfilter
 netlink_protocol
+netlink_route
+netlink_selinux
+netlink_sock_diag
+netlink_xfrm
 newfstatat
+nlattr
+nlattr_inet_diag_msg
+nlattr_netlink_diag_msg
+nlattr_unix_diag_msg
 old_mmap
 oldfstat
 oldlstat
@@ -222,6 +233,7 @@
 renameat2
 request_key
 rmdir
+rt_sigaction
 rt_sigpending
 rt_sigprocmask
 rt_sigqueueinfo
@@ -269,7 +281,10 @@
 sigaction
 sigaltstack
 siginfo
+signal
 signalfd4
+sigpending
+sigprocmask
 sigreturn
 sigsuspend
 socketcall
diff --git a/tests/qual_fault.c b/tests/qual_fault.c
index ab692cb..05401de 100644
--- a/tests/qual_fault.c
+++ b/tests/qual_fault.c
@@ -32,15 +32,19 @@
 
 #include <assert.h>
 #include <errno.h>
+#include <fcntl.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#include <sys/param.h>
 #include <sys/stat.h>
 #include <sys/uio.h>
+#include <sys/wait.h>
 
-static const int expfd = 4;
-static const int gotfd = 5;
+static int exp_fd;
+static int got_fd;
+static int out_fd;
 
 #define DEFAULT_ERRNO ENOSYS
 
@@ -58,13 +62,13 @@
 	int rc;
 
 	if (!fail) {
-		rc = write(expfd, io.iov_base, io.iov_len);
+		rc = write(exp_fd, io.iov_base, io.iov_len);
 		if (rc != (int) io.iov_len)
 			perror_msg_and_fail("write");
 	}
 
 	errno = 0;
-	rc = writev(gotfd, &io, 1);
+	rc = writev(got_fd, &io, 1);
 
 	if (fail) {
 		if (!(rc == -1 && errno == err))
@@ -74,11 +78,11 @@
 
 		if (is_raw)
 			tprintf("writev(%#x, %p, 0x1) = -1 (errno %d)"
-				" (INJECTED)\n", gotfd, &io, err);
+				" (INJECTED)\n", got_fd, &io, err);
 		else
 			tprintf("writev(%d, [{iov_base=\"%s\", iov_len=%d}], 1)"
 				" = -1 %s (%m) (INJECTED)\n",
-				gotfd, buf, (int) io.iov_len, errstr);
+				got_fd, buf, (int) io.iov_len, errstr);
 	} else {
 		if (rc != (int) io.iov_len)
 			perror_msg_and_fail("expected %d"
@@ -86,23 +90,35 @@
 					    (int) io.iov_len, rc, errno);
 
 		if (is_raw)
-			tprintf("writev(%#x, %p, 0x1) = %#x\n", gotfd, &io, rc);
+			tprintf("writev(%#x, %p, 0x1) = %#x\n",
+				got_fd, &io, rc);
 		else
 			tprintf("writev(%d, [{iov_base=\"%s\", iov_len=%d}], 1)"
 				" = %d\n",
-				gotfd, buf, (int) io.iov_len, (int) io.iov_len);
+				got_fd, buf, (int) io.iov_len,
+				(int) io.iov_len);
 	}
 }
 
+static int
+open_file(const char *prefix, int proc)
+{
+	static const int open_flags = O_WRONLY | O_TRUNC | O_CREAT;
+	static char path[PATH_MAX + 1];
+
+	snprintf(path, sizeof(path), "%s.%d", prefix, proc);
+
+	int fd = open(path, open_flags, 0600);
+	if (fd < 0)
+		perror_msg_and_fail("open: %s", path);
+
+	return fd;
+}
+
 int
 main(int argc, char *argv[])
 {
-	struct stat st;
-
-	assert(fstat(expfd, &st) == 0);
-	assert(fstat(gotfd, &st) == 0);
-
-	assert(argc == 6);
+	assert(argc == 11);
 
 	is_raw = !strcmp("raw", argv[1]);
 
@@ -125,25 +141,71 @@
 	first = atoi(argv[3]);
 	step = atoi(argv[4]);
 	iter = atoi(argv[5]);
+	int num_procs = atoi(argv[6]);
+	char *exp_prefix = argv[7];
+	char *got_prefix = argv[8];
+	char *out_prefix = argv[9];
+	char *pid_prefix = argv[10];
 
 	assert(first > 0);
 	assert(step >= 0);
+	assert(num_procs > 0);
 
-	tprintf("%s", "");
+	int proc;
+	for (proc = 0; proc < num_procs; ++proc) {
+		int ret = fork();
 
-	int i;
-	for (i = 1; i <= iter; ++i) {
-		int fail = 0;
-		if (first > 0) {
-			--first;
-			if (first == 0) {
-				fail = 1;
-				first = step;
-			}
+		if (ret < 0)
+			perror_msg_and_fail("fork");
+
+		if (ret > 0) {
+			int pidfd = open_file(pid_prefix, proc);
+
+			char pidstr[sizeof(ret) * 3];
+			int len = snprintf(pidstr, sizeof(pidstr), "%d", ret);
+			assert(len > 0 && len < (int) sizeof(pidstr));
+			assert(write(pidfd, pidstr, len) == len);
+
+			close(pidfd);
+
+			continue;
 		}
-		invoke(fail);
+
+		tprintf("%s", "");
+
+		exp_fd = open_file(exp_prefix, proc);
+		got_fd = open_file(got_prefix, proc);
+		out_fd = open_file(out_prefix, proc);
+
+		/* This magic forces tprintf to write where we want it. */
+		dup2(out_fd, 3);
+
+		int i;
+		for (i = 1; i <= iter; ++i) {
+			int fail = 0;
+			if (first > 0) {
+				--first;
+				if (first == 0) {
+					fail = 1;
+					first = step;
+				}
+			}
+			invoke(fail);
+		}
+
+		tprintf("%s\n", "+++ exited with 0 +++");
+		return 0;
 	}
 
-	tprintf("%s\n", "+++ exited with 0 +++");
+	for (proc = 0; proc < num_procs; ++proc) {
+		int status;
+		int ret = wait(&status);
+		if (ret <= 0)
+			perror_msg_and_fail("wait %d", proc);
+		if (status)
+			error_msg_and_fail("wait: pid=%d status=%d",
+					   ret, status);
+	}
+
 	return 0;
 }
diff --git a/tests/qual_fault.test b/tests/qual_fault.test
index f8e57d2..12b0a85 100755
--- a/tests/qual_fault.test
+++ b/tests/qual_fault.test
@@ -35,16 +35,17 @@
 # F+
 # F+S
 
-N=16
+N=100
 
 check_fault_injection()
 {
-	local trace fault err first step extra
+	local trace fault err first step procs extra
 	trace=$1; shift
 	fault=$1; shift
 	err=$1; shift
 	first=$1; shift
 	step=$1; shift
+	procs=$1; shift
 	extra="$*"
 
 	local when=
@@ -74,30 +75,39 @@
 
 	outexp="$NAME.out.exp"
 	outgot="$NAME.out.got"
+	outout="$NAME.out.out"
+	outpid="$NAME.pid"
 
-	run_strace -a11 -e trace=$trace \
+	run_strace -a11 -ff -e trace=$trace \
 		"$@" -e fault=$fault$when$error $extra \
 		../$NAME $raw "$err" "$first" "$step" $N \
-		> "$EXP" 4> "$outexp" 5> "$outgot"
+		"$procs" "$outexp" "$outgot" "$outout" "$outpid"
 
-	match_diff "$EXP" "$LOG"
-	match_diff "$outexp" "$outgot"
+	for i in $(seq 0 $((procs - 1)) )
+	do
+		pid=$(cat "$outpid.$i")
+
+		match_diff "$outout.$i" "$LOG.$pid"
+		match_diff "$outexp.$i" "$outgot.$i"
+	done
 }
 
 for err in '' ENOSYS 22 einval; do
 	for fault in writev desc,51; do
 		check_fault_injection \
-			writev $fault "$err" '' '' -efault=chdir
+			writev $fault "$err" '' '' 1 -efault=chdir
 		check_fault_injection \
-			writev $fault "$err" '' '' -efault=chdir -efault=none
+			writev $fault "$err" '' '' 1 -efault=chdir -efault=none
 		for F in 1 2 3 5 7 11; do
 			check_fault_injection \
-				writev $fault "$err" $F ''
+				writev $fault "$err" $F '' 1
 			check_fault_injection \
-				writev $fault "$err" $F +
+				writev $fault "$err" $F + 1
 			for S in 1 2 3 5 7 11; do
 				check_fault_injection \
-					writev $fault "$err" $F $S
+					writev $fault "$err" $F $S 1
+				check_fault_injection \
+					writev $fault "$err" $F $S 4
 			done
 		done
 	done
diff --git a/tests/quotactl-xfs.c b/tests/quotactl-xfs.c
index b2a884b..fab451e 100644
--- a/tests/quotactl-xfs.c
+++ b/tests/quotactl-xfs.c
@@ -71,7 +71,7 @@
 	struct fs_qfilestatv	qs_pquota;	/* project quota information */
 	int32_t		qs_btimelimit;		/* limit for blks timer */
 	int32_t		qs_itimelimit;		/* limit for inodes timer */
-	int32_t		qs_rtbtimelimit; 	/* limit for rt blks timer */
+	int32_t		qs_rtbtimelimit;	/* limit for rt blks timer */
 	uint16_t	qs_bwarnlimit;		/* limit for num warnings */
 	uint16_t	qs_iwarnlimit;		/* limit for num warnings */
 	uint64_t	qs_pad2[8];		/* for future proofing */
@@ -97,29 +97,29 @@
 		return;
 	}
 
-	PRINT_FIELD_D("{", dq, d_version);
+	PRINT_FIELD_D("{", *dq, d_version);
 	printf(", d_flags=");
 	printflags(xfs_dqblk_flags, (uint8_t) dq->d_flags, "XFS_???_QUOTA");
 
-	PRINT_FIELD_X(", ", dq, d_fieldmask);
-	PRINT_FIELD_U(", ", dq, d_id);
-	PRINT_FIELD_U(", ", dq, d_blk_hardlimit);
-	PRINT_FIELD_U(", ", dq, d_blk_softlimit);
-	PRINT_FIELD_U(", ", dq, d_ino_hardlimit);
-	PRINT_FIELD_U(", ", dq, d_ino_softlimit);
-	PRINT_FIELD_U(", ", dq, d_bcount);
-	PRINT_FIELD_U(", ", dq, d_icount);
+	PRINT_FIELD_X(", ", *dq, d_fieldmask);
+	PRINT_FIELD_U(", ", *dq, d_id);
+	PRINT_FIELD_U(", ", *dq, d_blk_hardlimit);
+	PRINT_FIELD_U(", ", *dq, d_blk_softlimit);
+	PRINT_FIELD_U(", ", *dq, d_ino_hardlimit);
+	PRINT_FIELD_U(", ", *dq, d_ino_softlimit);
+	PRINT_FIELD_U(", ", *dq, d_bcount);
+	PRINT_FIELD_U(", ", *dq, d_icount);
 
 # if VERBOSE
-	PRINT_FIELD_D(", ", dq, d_itimer);
-	PRINT_FIELD_D(", ", dq, d_btimer);
-	PRINT_FIELD_U(", ", dq, d_iwarns);
-	PRINT_FIELD_U(", ", dq, d_bwarns);
-	PRINT_FIELD_U(", ", dq, d_rtb_hardlimit);
-	PRINT_FIELD_U(", ", dq, d_rtb_softlimit);
-	PRINT_FIELD_U(", ", dq, d_rtbcount);
-	PRINT_FIELD_D(", ", dq, d_rtbtimer);
-	PRINT_FIELD_U(", ", dq, d_rtbwarns);
+	PRINT_FIELD_D(", ", *dq, d_itimer);
+	PRINT_FIELD_D(", ", *dq, d_btimer);
+	PRINT_FIELD_U(", ", *dq, d_iwarns);
+	PRINT_FIELD_U(", ", *dq, d_bwarns);
+	PRINT_FIELD_U(", ", *dq, d_rtb_hardlimit);
+	PRINT_FIELD_U(", ", *dq, d_rtb_softlimit);
+	PRINT_FIELD_U(", ", *dq, d_rtbcount);
+	PRINT_FIELD_D(", ", *dq, d_rtbtimer);
+	PRINT_FIELD_U(", ", *dq, d_rtbwarns);
 # else
 	printf(", ...");
 # endif /* !VERBOSE */
@@ -137,23 +137,23 @@
 		return;
 	}
 
-	PRINT_FIELD_D("{", qs, qs_version);
+	PRINT_FIELD_D("{", *qs, qs_version);
 
 # if VERBOSE
 	printf(", qs_flags=");
 	printflags(xfs_quota_flags, qs->qs_flags, "XFS_QUOTA_???");
-	PRINT_FIELD_U(", qs_uquota={", &qs->qs_uquota, qfs_ino);
-	PRINT_FIELD_U(", ", &qs->qs_uquota, qfs_nblks);
-	PRINT_FIELD_U(", ", &qs->qs_uquota, qfs_nextents);
-	PRINT_FIELD_U("}, qs_gquota={", &qs->qs_gquota, qfs_ino);
-	PRINT_FIELD_U(", ", &qs->qs_gquota, qfs_nblks);
-	PRINT_FIELD_U(", ", &qs->qs_gquota, qfs_nextents);
-	PRINT_FIELD_U("}, ", qs, qs_incoredqs);
-	PRINT_FIELD_D(", ", qs, qs_btimelimit);
-	PRINT_FIELD_D(", ", qs, qs_itimelimit);
-	PRINT_FIELD_D(", ", qs, qs_rtbtimelimit);
-	PRINT_FIELD_U(", ", qs, qs_bwarnlimit);
-	PRINT_FIELD_U(", ", qs, qs_iwarnlimit);
+	PRINT_FIELD_U(", qs_uquota={", qs->qs_uquota, qfs_ino);
+	PRINT_FIELD_U(", ", qs->qs_uquota, qfs_nblks);
+	PRINT_FIELD_U(", ", qs->qs_uquota, qfs_nextents);
+	PRINT_FIELD_U("}, qs_gquota={", qs->qs_gquota, qfs_ino);
+	PRINT_FIELD_U(", ", qs->qs_gquota, qfs_nblks);
+	PRINT_FIELD_U(", ", qs->qs_gquota, qfs_nextents);
+	PRINT_FIELD_U("}, ", *qs, qs_incoredqs);
+	PRINT_FIELD_D(", ", *qs, qs_btimelimit);
+	PRINT_FIELD_D(", ", *qs, qs_itimelimit);
+	PRINT_FIELD_D(", ", *qs, qs_rtbtimelimit);
+	PRINT_FIELD_U(", ", *qs, qs_bwarnlimit);
+	PRINT_FIELD_U(", ", *qs, qs_iwarnlimit);
 # else
 	printf(", ...");
 # endif /* !VERBOSE */
@@ -171,26 +171,26 @@
 		return;
 	}
 
-	PRINT_FIELD_D("{", qs, qs_version);
+	PRINT_FIELD_D("{", *qs, qs_version);
 
 # if VERBOSE
 	printf(", qs_flags=");
 	printflags(xfs_quota_flags, qs->qs_flags, "XFS_QUOTA_???");
-	PRINT_FIELD_U(", ", qs, qs_incoredqs);
-	PRINT_FIELD_U(", qs_uquota={", &qs->qs_uquota, qfs_ino);
-	PRINT_FIELD_U(", ", &qs->qs_uquota, qfs_nblks);
-	PRINT_FIELD_U(", ", &qs->qs_uquota, qfs_nextents);
-	PRINT_FIELD_U("}, qs_gquota={", &qs->qs_gquota, qfs_ino);
-	PRINT_FIELD_U(", ", &qs->qs_gquota, qfs_nblks);
-	PRINT_FIELD_U(", ", &qs->qs_gquota, qfs_nextents);
-	PRINT_FIELD_U("}, qs_pquota={", &qs->qs_pquota, qfs_ino);
-	PRINT_FIELD_U(", ", &qs->qs_pquota, qfs_nblks);
-	PRINT_FIELD_U(", ", &qs->qs_pquota, qfs_nextents);
-	PRINT_FIELD_D("}, ", qs, qs_btimelimit);
-	PRINT_FIELD_D(", ", qs, qs_itimelimit);
-	PRINT_FIELD_D(", ", qs, qs_rtbtimelimit);
-	PRINT_FIELD_U(", ", qs, qs_bwarnlimit);
-	PRINT_FIELD_U(", ", qs, qs_iwarnlimit);
+	PRINT_FIELD_U(", ", *qs, qs_incoredqs);
+	PRINT_FIELD_U(", qs_uquota={", qs->qs_uquota, qfs_ino);
+	PRINT_FIELD_U(", ", qs->qs_uquota, qfs_nblks);
+	PRINT_FIELD_U(", ", qs->qs_uquota, qfs_nextents);
+	PRINT_FIELD_U("}, qs_gquota={", qs->qs_gquota, qfs_ino);
+	PRINT_FIELD_U(", ", qs->qs_gquota, qfs_nblks);
+	PRINT_FIELD_U(", ", qs->qs_gquota, qfs_nextents);
+	PRINT_FIELD_U("}, qs_pquota={", qs->qs_pquota, qfs_ino);
+	PRINT_FIELD_U(", ", qs->qs_pquota, qfs_nblks);
+	PRINT_FIELD_U(", ", qs->qs_pquota, qfs_nextents);
+	PRINT_FIELD_D("}, ", *qs, qs_btimelimit);
+	PRINT_FIELD_D(", ", *qs, qs_itimelimit);
+	PRINT_FIELD_D(", ", *qs, qs_rtbtimelimit);
+	PRINT_FIELD_U(", ", *qs, qs_bwarnlimit);
+	PRINT_FIELD_U(", ", *qs, qs_iwarnlimit);
 # else
 	printf(", ...");
 # endif /* !VERBOSE */
diff --git a/tests/quotactl.c b/tests/quotactl.c
index 88c3fda..f1648d9 100644
--- a/tests/quotactl.c
+++ b/tests/quotactl.c
@@ -88,16 +88,16 @@
 		return;
 	}
 
-	PRINT_FIELD_U("{", db, dqb_bhardlimit);
-	PRINT_FIELD_U(", ", db, dqb_bsoftlimit);
-	PRINT_FIELD_U(", ", db, dqb_curspace);
-	PRINT_FIELD_U(", ", db, dqb_ihardlimit);
-	PRINT_FIELD_U(", ", db, dqb_isoftlimit);
-	PRINT_FIELD_U(", ", db, dqb_curinodes);
+	PRINT_FIELD_U("{", *db, dqb_bhardlimit);
+	PRINT_FIELD_U(", ", *db, dqb_bsoftlimit);
+	PRINT_FIELD_U(", ", *db, dqb_curspace);
+	PRINT_FIELD_U(", ", *db, dqb_ihardlimit);
+	PRINT_FIELD_U(", ", *db, dqb_isoftlimit);
+	PRINT_FIELD_U(", ", *db, dqb_curinodes);
 
 # if VERBOSE
-	PRINT_FIELD_U(", ", db, dqb_btime);
-	PRINT_FIELD_U(", ", db, dqb_itime);
+	PRINT_FIELD_U(", ", *db, dqb_btime);
+	PRINT_FIELD_U(", ", *db, dqb_itime);
 
 	printf(", dqb_valid=");
 	printflags(if_dqblk_valid, db->dqb_valid, "QIF_???");
@@ -118,23 +118,23 @@
 		return;
 	}
 
-	PRINT_FIELD_U("{", db, dqb_bhardlimit);
-	PRINT_FIELD_U(", ", db, dqb_bsoftlimit);
-	PRINT_FIELD_U(", ", db, dqb_curspace);
-	PRINT_FIELD_U(", ", db, dqb_ihardlimit);
-	PRINT_FIELD_U(", ", db, dqb_isoftlimit);
-	PRINT_FIELD_U(", ", db, dqb_curinodes);
+	PRINT_FIELD_U("{", *db, dqb_bhardlimit);
+	PRINT_FIELD_U(", ", *db, dqb_bsoftlimit);
+	PRINT_FIELD_U(", ", *db, dqb_curspace);
+	PRINT_FIELD_U(", ", *db, dqb_ihardlimit);
+	PRINT_FIELD_U(", ", *db, dqb_isoftlimit);
+	PRINT_FIELD_U(", ", *db, dqb_curinodes);
 
 # if VERBOSE
-	PRINT_FIELD_U(", ", db, dqb_btime);
-	PRINT_FIELD_U(", ", db, dqb_itime);
+	PRINT_FIELD_U(", ", *db, dqb_btime);
+	PRINT_FIELD_U(", ", *db, dqb_itime);
 
 	printf(", dqb_valid=");
 	printflags(if_dqblk_valid, db->dqb_valid, "QIF_???");
 
-	PRINT_FIELD_U(", ", db, dqb_id);
+	PRINT_FIELD_U(", ", *db, dqb_id);
 # else
-	PRINT_FIELD_U(", ", db, dqb_id);
+	PRINT_FIELD_U(", ", *db, dqb_id);
 	printf(", ...");
 # endif /* !VERBOSE */
 	printf("}");
@@ -151,8 +151,8 @@
 		return;
 	}
 
-	PRINT_FIELD_U("{", di, dqi_bgrace);
-	PRINT_FIELD_U(", ", di, dqi_igrace);
+	PRINT_FIELD_U("{", *di, dqi_bgrace);
+	PRINT_FIELD_U(", ", *di, dqi_igrace);
 
 	printf(", dqi_flags=");
 	printflags(if_dqinfo_flags, di->dqi_flags, "DQF_???");
diff --git a/tests/quotactl.h b/tests/quotactl.h
index 31eaec5..d3cf53b 100644
--- a/tests/quotactl.h
+++ b/tests/quotactl.h
@@ -34,6 +34,7 @@
 # include <inttypes.h>
 # include <stdarg.h>
 # include <stdio.h>
+# include "print_fields.h"
 
 # ifdef HAVE_LINUX_QUOTA_H
 /* Broken in CentOS 5: has extern spinlock_t dq_data_lock; declaration */
@@ -57,18 +58,6 @@
 #  define PRJQUOTA 2
 # endif
 
-# define PRINT_FIELD_D(prefix, where, field)	\
-	printf("%s%s=%lld", (prefix), #field,	\
-	       sign_extend_unsigned_to_ll((where)->field))
-
-# define PRINT_FIELD_U(prefix, where, field)	\
-	printf("%s%s=%llu", (prefix), #field,	\
-	       zero_extend_signed_to_ull((where)->field))
-
-# define PRINT_FIELD_X(prefix, where, field)	\
-	printf("%s%s=%#llx", (prefix), #field,	\
-	       zero_extend_signed_to_ull((where)->field))
-
 typedef void (*print_cb)(long rc, void *addr, void *arg);
 
 enum check_quotactl_flag_bits {
diff --git a/tests/readahead.c b/tests/readahead.c
index c243ae4..a3e5cb8 100644
--- a/tests/readahead.c
+++ b/tests/readahead.c
@@ -37,7 +37,7 @@
  * see https://sourceware.org/bugzilla/show_bug.cgi?id=5208
  */
 #  if !(defined __GLIBC_MINOR__ && \
-        (__GLIBC__ << 16) + __GLIBC_MINOR__ >= (2 << 16) + 8)
+	(__GLIBC__ << 16) + __GLIBC_MINOR__ >= (2 << 16) + 8)
 #   undef HAVE_READAHEAD
 #  endif /* glibc < 2.8 */
 /*
@@ -45,7 +45,7 @@
  * see https://sourceware.org/bugzilla/show_bug.cgi?id=21026
  */
 #  if defined LINUX_MIPSN64 && !(defined __GLIBC_MINOR__ && \
-        (__GLIBC__ << 16) + __GLIBC_MINOR__ >= (2 << 16) + 25)
+	(__GLIBC__ << 16) + __GLIBC_MINOR__ >= (2 << 16) + 25)
 #   undef HAVE_READAHEAD
 #  endif /* LINUX_MIPSN64 && glibc < 2.25 */
 # endif /* __GLIBC__ */
diff --git a/tests/readv.c b/tests/readv.c
index 0e5aab6..93f0760 100644
--- a/tests/readv.c
+++ b/tests/readv.c
@@ -108,7 +108,7 @@
 		" * %u bytes in buffer 2\n"
 		" | 00000 %-49s  %-16s |\n",
 		fds[1], w0_c, LENGTH_OF(w0_c), w1_c, LENGTH_OF(w1_c),
-		w2_c, LENGTH_OF(w2_c), ARRAY_SIZE(w_iov_), w_len,
+		w2_c, LENGTH_OF(w2_c), (unsigned int) ARRAY_SIZE(w_iov_), w_len,
 		LENGTH_OF(w0_c), w0_d, w0_c,
 		LENGTH_OF(w1_c), w1_d, w1_c, LENGTH_OF(w2_c), w2_d, w2_c);
 
@@ -126,8 +126,8 @@
 	tprintf("readv(%d, [{iov_base=\"%s\", iov_len=%u}], %u) = %u\n"
 		" * %u bytes in buffer 0\n"
 		" | 00000 %-49s  %-16s |\n",
-		fds[0],
-		r0_c, r_len, ARRAY_SIZE(r0_iov_), r_len, r_len, r0_d, r0_c);
+		fds[0], r0_c, r_len, (unsigned int) ARRAY_SIZE(r0_iov_),
+		r_len, r_len, r0_d, r0_c);
 
 	void *r1 = tail_alloc(r_len);
 	void *r2 = tail_alloc(w_len);
@@ -148,8 +148,8 @@
 		", {iov_base=\"\", iov_len=%u}], %u) = %u\n"
 		" * %u bytes in buffer 0\n"
 		" | 00000 %-49s  %-16s |\n",
-		fds[0], r1_c, r_len, w_len, ARRAY_SIZE(r1_iov_), w_len - r_len,
-		w_len - r_len, r1_d, r1_c);
+		fds[0], r1_c, r_len, w_len, (unsigned int) ARRAY_SIZE(r1_iov_),
+		w_len - r_len, w_len - r_len, r1_d, r1_c);
 	close(fds[0]);
 
 	tprintf("+++ exited with 0 +++\n");
diff --git a/tests/reboot.c b/tests/reboot.c
index 9b09e64..ce651dc 100644
--- a/tests/reboot.c
+++ b/tests/reboot.c
@@ -14,14 +14,14 @@
 main(void)
 {
 	static const char buf[] = "reboot";
-	long rc = syscall(__NR_reboot, LINUX_REBOOT_MAGIC1, \
-	          INVALID_MAGIC, LINUX_REBOOT_CMD_RESTART2, buf);
+	long rc = syscall(__NR_reboot, LINUX_REBOOT_MAGIC1,
+			  INVALID_MAGIC, LINUX_REBOOT_CMD_RESTART2, buf);
 	printf("reboot(LINUX_REBOOT_MAGIC1, %#x /* LINUX_REBOOT_MAGIC_??? */,"
 	       " LINUX_REBOOT_CMD_RESTART2, \"%s\") = %ld %s (%m)\n",
 	       INVALID_MAGIC, buf, rc, errno2name());
 
-	rc = syscall(__NR_reboot, LINUX_REBOOT_MAGIC1, \
-	     LINUX_REBOOT_MAGIC2, INVALID_CMD);
+	rc = syscall(__NR_reboot, LINUX_REBOOT_MAGIC1,
+		     LINUX_REBOOT_MAGIC2, INVALID_CMD);
 	printf("reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2,"
 	       " %#x /* LINUX_REBOOT_CMD_??? */) = %ld %s (%m)\n",
 	       INVALID_CMD, rc, errno2name());
diff --git a/tests/recvmsg.c b/tests/recvmsg.c
index fa41a9d..2d55d55 100644
--- a/tests/recvmsg.c
+++ b/tests/recvmsg.c
@@ -100,7 +100,7 @@
 		w0_c, LENGTH_OF(w0_c),
 		w1_c, LENGTH_OF(w1_c),
 		w2_c, LENGTH_OF(w2_c),
-		ARRAY_SIZE(w_iov_), w_len,
+		(unsigned int) ARRAY_SIZE(w_iov_), w_len,
 		LENGTH_OF(w0_c), w0_d, w0_c,
 		LENGTH_OF(w1_c), w1_d, w1_c,
 		LENGTH_OF(w2_c), w2_d, w2_c);
@@ -127,7 +127,8 @@
 		", msg_controllen=0, msg_flags=0}, 0) = %u\n"
 		" * %u bytes in buffer 0\n"
 		" | 00000 %-49s  %-16s |\n",
-		r0_c, r_len, ARRAY_SIZE(r0_iov_), r_len, r_len, r0_d, r0_c);
+		r0_c, r_len, (unsigned int) ARRAY_SIZE(r0_iov_),
+		r_len, r_len, r0_d, r0_c);
 
 	void *r1 = tail_alloc(r_len);
 	void *r2 = tail_alloc(w_len);
@@ -151,8 +152,8 @@
 		", msg_iovlen=%u, msg_controllen=0, msg_flags=0}, 0) = %u\n"
 		" * %u bytes in buffer 0\n"
 		" | 00000 %-49s  %-16s |\n",
-		r1_c, r_len, w_len, ARRAY_SIZE(r1_iov_), w_len - r_len,
-		w_len - r_len, r1_d, r1_c);
+		r1_c, r_len, w_len, (unsigned int) ARRAY_SIZE(r1_iov_),
+		w_len - r_len, w_len - r_len, r1_d, r1_c);
 	close(0);
 
 	tprintf("+++ exited with 0 +++\n");
diff --git a/tests/request_key.c b/tests/request_key.c
index fea977b..03c7a42 100644
--- a/tests/request_key.c
+++ b/tests/request_key.c
@@ -69,8 +69,7 @@
 {
 	static const char unterminated1[] = { '\1', '\2', '\3', '\4', '\5' };
 	static const char unterminated2[] = { '\6', '\7', '\10', '\11', '\12' };
-	static const char unterminated3[] =
-		{ '\16', '\17', '\20', '\21', '\22' };
+	static const char unterminated3[] = { '\16', '\17', '\20', '\21', '\22' };
 
 	char *bogus_type = tail_memdup(unterminated1, sizeof(unterminated1));
 	char *bogus_desc = tail_memdup(unterminated2, sizeof(unterminated2));
diff --git a/tests/sigaction.awk b/tests/rt_sigaction.awk
similarity index 100%
rename from tests/sigaction.awk
rename to tests/rt_sigaction.awk
diff --git a/tests/rt_sigaction.c b/tests/rt_sigaction.c
new file mode 100644
index 0000000..1c034ff
--- /dev/null
+++ b/tests/rt_sigaction.c
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2014-2015 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 <assert.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <signal.h>
+
+static void handle_signal(int no)
+{
+	_exit(128 + no);
+}
+
+int
+main(void)
+{
+	struct sigaction sa, sa0;
+
+	sa.sa_handler = SIG_IGN;
+	sigemptyset(&sa.sa_mask);
+	sigaddset(&sa.sa_mask, SIGHUP);
+	sigaddset(&sa.sa_mask, SIGINT);
+	sa.sa_flags = SA_RESTART;
+	assert(!sigaction(SIGUSR2, &sa, &sa0));
+
+	sa.sa_handler = handle_signal;
+	sigemptyset(&sa.sa_mask);
+	sigaddset(&sa.sa_mask, SIGQUIT);
+	sigaddset(&sa.sa_mask, SIGTERM);
+	sa.sa_flags = SA_SIGINFO;
+	assert(!sigaction(SIGUSR2, &sa, &sa0));
+
+	sa.sa_handler = SIG_DFL;
+	sigemptyset(&sa.sa_mask);
+	sa.sa_flags = 0;
+	assert(!sigaction(SIGUSR2, &sa, &sa0));
+
+	sigfillset(&sa.sa_mask);
+	sigdelset(&sa.sa_mask, SIGHUP);
+	assert(!sigaction(SIGUSR2, &sa, &sa0));
+
+	return 0;
+}
diff --git a/tests/sigaction.test b/tests/rt_sigaction.test
similarity index 100%
rename from tests/sigaction.test
rename to tests/rt_sigaction.test
diff --git a/tests/rt_sigqueueinfo.c b/tests/rt_sigqueueinfo.c
index f803d91..9681281 100644
--- a/tests/rt_sigqueueinfo.c
+++ b/tests/rt_sigqueueinfo.c
@@ -33,7 +33,7 @@
 #include <unistd.h>
 
 int
-main (void)
+main(void)
 {
 	struct sigaction sa = {
 		.sa_handler = SIG_IGN
diff --git a/tests/rt_tgsigqueueinfo.c b/tests/rt_tgsigqueueinfo.c
index 3b2da2a..3cff35a 100644
--- a/tests/rt_tgsigqueueinfo.c
+++ b/tests/rt_tgsigqueueinfo.c
@@ -50,7 +50,7 @@
 }
 
 int
-main (void)
+main(void)
 {
 	const struct sigaction sa = {
 		.sa_handler = SIG_IGN
@@ -65,7 +65,8 @@
 	info->si_code = SI_QUEUE;
 	info->si_pid = getpid();
 	info->si_uid = getuid();
-	info->si_value.sival_ptr = (void *) (unsigned long) 0xdeadbeeffacefeedULL;
+	info->si_value.sival_ptr =
+		(void *) (unsigned long) 0xdeadbeeffacefeedULL;
 
 	if (k_tgsigqueueinfo(info->si_pid, SIGUSR1, info))
 		(errno == ENOSYS ? perror_msg_and_skip : perror_msg_and_fail)(
diff --git a/tests/run_expect_termsig.c b/tests/run_expect_termsig.c
new file mode 100644
index 0000000..de81ccb
--- /dev/null
+++ b/tests/run_expect_termsig.c
@@ -0,0 +1,58 @@
+/*
+ * Execute a command, expect its termination with a specified signal.
+ *
+ * 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 "tests.h"
+#include <signal.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/wait.h>
+
+int
+main(int ac, char **av)
+{
+	if (ac < 3)
+		error_msg_and_fail("usage: run_expect_termsig signo path...");
+
+	signal(SIGCHLD, SIG_DFL);
+
+	pid_t pid = fork();
+	if (pid < 0)
+		perror_msg_and_fail("fork");
+
+	if (!pid) {
+		execvp(av[2], av + 2);
+		perror_msg_and_fail("execvp: %s", av[2]);
+	}
+
+	int status;
+	if (waitpid(pid, &status, 0) != pid)
+		perror_msg_and_fail("waitpid");
+
+	return !(WIFSIGNALED(status) && WTERMSIG(status) == atoi(av[1]));
+}
diff --git a/tests/sched_get_priority_mxx.c b/tests/sched_get_priority_mxx.c
index fc14b27..5224ff1 100644
--- a/tests/sched_get_priority_mxx.c
+++ b/tests/sched_get_priority_mxx.c
@@ -24,6 +24,6 @@
 #else
 
 SKIP_MAIN_UNDEFINED("__NR_sched_get_priority_min"
-                    " && defined __NR_sched_get_priority_max");
+		    " && defined __NR_sched_get_priority_max");
 
 #endif
diff --git a/tests/seccomp-filter-v.c b/tests/seccomp-filter-v.c
index fe88ac7..f65be7d 100644
--- a/tests/seccomp-filter-v.c
+++ b/tests/seccomp-filter-v.c
@@ -146,7 +146,7 @@
 	for (i = 0; i < BPF_MAXINSNS; ++i) {
 		if (i)
 			tprintf(", ");
-		switch(BPF_CLASS(i)) {
+		switch (BPF_CLASS(i)) {
 		case BPF_LD:
 			tprintf("BPF_STMT(BPF_LD|BPF_W|BPF_IMM, %#x)", i << 16);
 			break;
diff --git a/tests/semop.c b/tests/semop.c
index 3d1f384..2366d38 100644
--- a/tests/semop.c
+++ b/tests/semop.c
@@ -9,8 +9,7 @@
 #include "xlat.h"
 #include "xlat/semop_flags.h"
 
-union semun
-{
+union semun {
 	int val;
 	struct semid_ds *buf;
 	unsigned short *array;
diff --git a/tests/sendfile.c b/tests/sendfile.c
index 9253c10..b86565b 100644
--- a/tests/sendfile.c
+++ b/tests/sendfile.c
@@ -36,15 +36,13 @@
 # include <fcntl.h>
 # include <stdio.h>
 # include <stdint.h>
+# include <stdlib.h>
 # include <unistd.h>
 # include <sys/socket.h>
-# include <sys/stat.h>
 
 int
-main(int ac, const char **av)
+main(void)
 {
-	assert(ac == 1);
-
 	(void) close(0);
 	if (open("/dev/zero", O_RDONLY) != 0)
 		perror_msg_and_skip("open: %s", "/dev/zero");
@@ -53,58 +51,62 @@
 	if (socketpair(AF_UNIX, SOCK_STREAM, 0, sv))
 		perror_msg_and_skip("socketpair");
 
-	int reg_in = open(av[0], O_RDONLY);
-	if (reg_in < 0)
-		perror_msg_and_fail("open: %s", av[0]);
-
-	struct stat stb;
-	assert(fstat(reg_in, &stb) == 0);
-	const size_t blen = stb.st_size / 3;
-	const size_t alen = stb.st_size - blen;
-	assert(S_ISREG(stb.st_mode) && blen > 0);
-
-	const size_t page_len = get_page_size();
-	assert(syscall(__NR_sendfile, 0, 1, NULL, page_len) == -1);
+	const unsigned int page_size = get_page_size();
+	assert(syscall(__NR_sendfile, 0, 1, NULL, page_size) == -1);
 	if (EBADF != errno)
 		perror_msg_and_skip("sendfile");
-	printf("sendfile(0, 1, NULL, %lu) = -1 EBADF (%m)\n",
-	       (unsigned long) page_len);
+	printf("sendfile(0, 1, NULL, %u) = -1 EBADF (%m)\n", page_size);
+
+	unsigned int file_size = 0;
+	socklen_t optlen = sizeof(file_size);
+	if (getsockopt(sv[1], SOL_SOCKET, SO_SNDBUF, &file_size, &optlen))
+		perror_msg_and_fail("getsockopt");
+	if (file_size < 1024)
+		error_msg_and_skip("SO_SNDBUF too small: %u", file_size);
+
+	file_size /= 4;
+	if (file_size / 16 > page_size)
+		file_size = page_size * 16;
+	const unsigned int blen = file_size / 3;
+	const unsigned int alen = file_size - blen;
+
+	static const char fname[] = "sendfile-tmpfile";
+	int reg_in = open(fname, O_RDWR | O_CREAT | O_TRUNC, 0600);
+	if (reg_in < 0)
+		perror_msg_and_fail("open: %s", fname);
+	if (unlink(fname))
+		perror_msg_and_fail("unlink: %s", fname);
+	if (ftruncate(reg_in, file_size))
+		perror_msg_and_fail("ftruncate: %s", fname);
 
 	TAIL_ALLOC_OBJECT_VAR_PTR(uint32_t, p_off);
 	void *p = p_off + 1;
 	*p_off = 0;
 
-	assert(syscall(__NR_sendfile, 0, 1, p, page_len) == -1);
-	printf("sendfile(0, 1, %#lx, %lu) = -1 EFAULT (%m)\n",
-	       (unsigned long) p, (unsigned long) page_len);
+	assert(syscall(__NR_sendfile, 0, 1, p, page_size) == -1);
+	printf("sendfile(0, 1, %p, %u) = -1 EFAULT (%m)\n", p, page_size);
 
 	assert(syscall(__NR_sendfile, sv[1], reg_in, NULL, alen)
 	       == (long) alen);
-	printf("sendfile(%d, %d, NULL, %lu) = %lu\n",
-	       sv[1], reg_in, (unsigned long) alen,
-	       (unsigned long) alen);
+	printf("sendfile(%d, %d, NULL, %u) = %u\n",
+	       sv[1], reg_in, alen, alen);
 
 	p = p_off;
 	if (syscall(__NR_sendfile, sv[1], reg_in, p_off, alen) != (long) alen) {
-		printf("sendfile(%d, %d, %#lx, %lu) = -1 EFAULT (%m)\n",
-		       sv[1], reg_in, (unsigned long) p_off,
-		       (unsigned long) alen);
+		printf("sendfile(%d, %d, %#lx, %u) = -1 EFAULT (%m)\n",
+		       sv[1], reg_in, (unsigned long) p_off, alen);
 		--p_off;
 		*p_off = 0;
 		assert(syscall(__NR_sendfile, sv[1], reg_in, p_off, alen)
 		       == (long) alen);
 	}
-	printf("sendfile(%d, %d, [0] => [%lu], %lu) = %lu\n",
-	       sv[1], reg_in, (unsigned long) alen,
-	       (unsigned long) alen, (unsigned long) alen);
+	printf("sendfile(%d, %d, [0] => [%u], %u) = %u\n",
+	       sv[1], reg_in, alen, alen, alen);
 
-	assert(syscall(__NR_sendfile, sv[1], reg_in, p_off, stb.st_size + 1)
+	assert(syscall(__NR_sendfile, sv[1], reg_in, p_off, file_size + 1)
 	       == (long) blen);
-	printf("sendfile(%d, %d, [%lu] => [%lu], %lu) = %lu\n",
-	       sv[1], reg_in, (unsigned long) alen,
-	       (unsigned long) stb.st_size,
-	       (unsigned long) stb.st_size + 1,
-	       (unsigned long) blen);
+	printf("sendfile(%d, %d, [%u] => [%u], %u) = %u\n",
+	       sv[1], reg_in, alen, file_size, file_size + 1, blen);
 
 	if (p_off != p) {
 		uint64_t *p_off64 = (uint64_t *) p_off;
diff --git a/tests/sendfile64.c b/tests/sendfile64.c
index de02400..4c4da6d 100644
--- a/tests/sendfile64.c
+++ b/tests/sendfile64.c
@@ -36,15 +36,13 @@
 # include <fcntl.h>
 # include <stdio.h>
 # include <stdint.h>
+# include <stdlib.h>
 # include <unistd.h>
 # include <sys/socket.h>
-# include <sys/stat.h>
 
 int
-main(int ac, const char **av)
+main(void)
 {
-	assert(ac == 1);
-
 	(void) close(0);
 	if (open("/dev/zero", O_RDONLY) != 0)
 		perror_msg_and_skip("open: %s", "/dev/zero");
@@ -53,50 +51,55 @@
 	if (socketpair(AF_UNIX, SOCK_STREAM, 0, sv))
 		perror_msg_and_skip("socketpair");
 
-	int reg_in = open(av[0], O_RDONLY);
-	if (reg_in < 0)
-		perror_msg_and_fail("open: %s", av[0]);
-
-	struct stat stb;
-	assert(fstat(reg_in, &stb) == 0);
-	const size_t blen = stb.st_size / 3;
-	const size_t alen = stb.st_size - blen;
-	assert(S_ISREG(stb.st_mode) && blen > 0);
-
-	const size_t page_len = get_page_size();
-	assert(syscall(__NR_sendfile64, 0, 1, NULL, page_len) == -1);
+	const unsigned int page_size = get_page_size();
+	assert(syscall(__NR_sendfile64, 0, 1, NULL, page_size) == -1);
 	if (EBADF != errno)
 		perror_msg_and_skip("sendfile64");
-	printf("sendfile64(0, 1, NULL, %lu) = -1 EBADF (%m)\n",
-	       (unsigned long) page_len);
+	printf("sendfile64(0, 1, NULL, %u) = -1 EBADF (%m)\n", page_size);
+
+	unsigned int file_size = 0;
+	socklen_t optlen = sizeof(file_size);
+	if (getsockopt(sv[1], SOL_SOCKET, SO_SNDBUF, &file_size, &optlen))
+		perror_msg_and_fail("getsockopt");
+	if (file_size < 1024)
+		error_msg_and_skip("SO_SNDBUF too small: %u", file_size);
+
+	file_size /= 4;
+	if (file_size / 16 > page_size)
+		file_size = page_size * 16;
+	const unsigned int blen = file_size / 3;
+	const unsigned int alen = file_size - blen;
+
+	static const char fname[] = "sendfile64-tmpfile";
+	int reg_in = open(fname, O_RDWR | O_CREAT | O_TRUNC, 0600);
+	if (reg_in < 0)
+		perror_msg_and_fail("open: %s", fname);
+	if (unlink(fname))
+		perror_msg_and_fail("unlink: %s", fname);
+	if (ftruncate(reg_in, file_size))
+		perror_msg_and_fail("ftruncate: %s", fname);
 
 	TAIL_ALLOC_OBJECT_CONST_PTR(uint64_t, p_off);
 	void *p = p_off + 1;
 	*p_off = 0;
 
-	assert(syscall(__NR_sendfile64, 0, 1, p, page_len) == -1);
-	printf("sendfile64(0, 1, %#lx, %lu) = -1 EFAULT (%m)\n",
-	       (unsigned long) p, (unsigned long) page_len);
+	assert(syscall(__NR_sendfile64, 0, 1, p, page_size) == -1);
+	printf("sendfile64(0, 1, %p, %u) = -1 EFAULT (%m)\n", p, page_size);
 
 	assert(syscall(__NR_sendfile64, sv[1], reg_in, NULL, alen)
 	       == (long) alen);
-	printf("sendfile64(%d, %d, NULL, %lu) = %lu\n",
-	       sv[1], reg_in, (unsigned long) alen,
-	       (unsigned long) alen);
+	printf("sendfile64(%d, %d, NULL, %u) = %u\n",
+	       sv[1], reg_in, alen, alen);
 
 	assert(syscall(__NR_sendfile64, sv[1], reg_in, p_off, alen)
 	       == (long) alen);
-	printf("sendfile64(%d, %d, [0] => [%lu], %lu) = %lu\n",
-	       sv[1], reg_in, (unsigned long) alen,
-	       (unsigned long) alen, (unsigned long) alen);
+	printf("sendfile64(%d, %d, [0] => [%u], %u) = %u\n",
+	       sv[1], reg_in, alen, alen, alen);
 
-	assert(syscall(__NR_sendfile64, sv[1], reg_in, p_off, stb.st_size + 1)
+	assert(syscall(__NR_sendfile64, sv[1], reg_in, p_off, file_size + 1)
 	       == (long) blen);
-	printf("sendfile64(%d, %d, [%lu] => [%lu], %lu) = %lu\n",
-	       sv[1], reg_in, (unsigned long) alen,
-	       (unsigned long) stb.st_size,
-	       (unsigned long) stb.st_size + 1,
-	       (unsigned long) blen);
+	printf("sendfile64(%d, %d, [%u] => [%u], %u) = %u\n",
+	       sv[1], reg_in, alen, file_size, file_size + 1, blen);
 
 	*p_off = 0xcafef00dfacefeedULL;
 	assert(syscall(__NR_sendfile64, sv[1], reg_in, p_off, 1) == -1);
diff --git a/tests/sigaction.c b/tests/sigaction.c
index 1c034ff..7b46944 100644
--- a/tests/sigaction.c
+++ b/tests/sigaction.c
@@ -1,5 +1,7 @@
 /*
- * Copyright (c) 2014-2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Check decoding of sigaction syscall.
+ *
+ * Copyright (c) 2017 Dmitry V. Levin <ldv@altlinux.org>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -25,43 +27,173 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <assert.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <signal.h>
+#include "tests.h"
+#include <asm/unistd.h>
 
-static void handle_signal(int no)
-{
-	_exit(128 + no);
+#ifdef __NR_sigaction
+
+# include <signal.h>
+# include <stdint.h>
+# include <stdio.h>
+# include <string.h>
+# include <unistd.h>
+
+struct set_sa {
+#if defined MIPS
+	unsigned int flags;
+	unsigned long handler;
+	unsigned long mask[1];
+#elif defined ALPHA
+	unsigned long handler;
+	unsigned long mask[1];
+	unsigned int flags;
+#else
+	unsigned long handler;
+	unsigned long mask[1];
+	unsigned long flags;
+	unsigned long restorer;
+#endif
 }
+#ifdef ALPHA
+	ATTRIBUTE_PACKED
+#endif
+;
+
+typedef struct set_sa struct_set_sa;
+
+#ifdef MIPS
+
+struct get_sa {
+	unsigned int flags;
+	unsigned long handler;
+	unsigned long mask[4];
+};
+
+typedef struct get_sa struct_get_sa;
+
+#else
+
+typedef struct set_sa struct_get_sa;
+
+#endif
+
+static long
+k_sigaction(const kernel_ulong_t signum, const kernel_ulong_t new_act,
+	    const kernel_ulong_t old_act)
+{
+	return syscall(__NR_sigaction, signum, new_act, old_act);
+}
+
+#if defined SPARC || defined SPARC64
+static const kernel_ulong_t signo =
+	(kernel_ulong_t) 0xbadc0ded00000000ULL | (unsigned int) -SIGUSR1;
+# define SIG_STR "-SIGUSR1"
+#else
+static const kernel_ulong_t signo =
+	(kernel_ulong_t) 0xbadc0ded00000000ULL | SIGUSR1;
+# define SIG_STR "SIGUSR1"
+#endif
 
 int
 main(void)
 {
-	struct sigaction sa, sa0;
+	static const kernel_ulong_t addr =
+		(kernel_ulong_t) 0xfacefeed0defacedULL;
+	union {
+		sigset_t libc[1];
+		unsigned long old[1];
+	} mask;
 
-	sa.sa_handler = SIG_IGN;
-	sigemptyset(&sa.sa_mask);
-	sigaddset(&sa.sa_mask, SIGHUP);
-	sigaddset(&sa.sa_mask, SIGINT);
-	sa.sa_flags = SA_RESTART;
-	assert(!sigaction(SIGUSR2, &sa, &sa0));
+	TAIL_ALLOC_OBJECT_CONST_PTR(struct_set_sa, new_act);
+	TAIL_ALLOC_OBJECT_CONST_PTR(struct_get_sa, old_act);
 
-	sa.sa_handler = handle_signal;
-	sigemptyset(&sa.sa_mask);
-	sigaddset(&sa.sa_mask, SIGQUIT);
-	sigaddset(&sa.sa_mask, SIGTERM);
-	sa.sa_flags = SA_SIGINFO;
-	assert(!sigaction(SIGUSR2, &sa, &sa0));
+	if (k_sigaction(signo, 0, 0))
+		perror_msg_and_skip("sigaction");
+	puts("sigaction(" SIG_STR ", NULL, NULL) = 0");
 
-	sa.sa_handler = SIG_DFL;
-	sigemptyset(&sa.sa_mask);
-	sa.sa_flags = 0;
-	assert(!sigaction(SIGUSR2, &sa, &sa0));
+	k_sigaction(signo, 0, 0);
+	puts("sigaction(" SIG_STR ", NULL, NULL) = 0");
 
-	sigfillset(&sa.sa_mask);
-	sigdelset(&sa.sa_mask, SIGHUP);
-	assert(!sigaction(SIGUSR2, &sa, &sa0));
+	k_sigaction(signo, (uintptr_t) (new_act + 1), 0);
+	printf("sigaction(" SIG_STR ", %p, NULL) = -1 EFAULT (%m)\n",
+	       new_act + 1);
 
+	k_sigaction(signo, (uintptr_t) new_act + 2, 0);
+	printf("sigaction(" SIG_STR ", %#lx, NULL) = -1 EFAULT (%m)\n",
+	       (unsigned long) new_act + 2);
+
+	k_sigaction(signo, 0, (uintptr_t) (old_act + 1));
+	printf("sigaction(" SIG_STR ", NULL, %p) = -1 EFAULT (%m)\n",
+	       old_act + 1);
+
+	k_sigaction(signo, 0, (uintptr_t) old_act + 2);
+	printf("sigaction(" SIG_STR ", NULL, %#lx) = -1 EFAULT (%m)\n",
+	       (unsigned long) old_act + 2);
+
+	k_sigaction(addr, 0, 0);
+	printf("sigaction(%d, NULL, NULL) = -1 EINVAL (%m)\n", (int) addr);
+
+	memset(new_act, 0, sizeof(*new_act));
+
+	k_sigaction(signo, (uintptr_t) new_act, 0);
+	puts("sigaction(" SIG_STR ", {sa_handler=SIG_DFL, sa_mask=[]"
+	     ", sa_flags=0}, NULL) = 0");
+
+	sigemptyset(mask.libc);
+	sigaddset(mask.libc, SIGHUP);
+	sigaddset(mask.libc, SIGINT);
+
+	new_act->handler = (uintptr_t) SIG_IGN;
+	memcpy(new_act->mask, mask.old, sizeof(mask.old));
+	new_act->flags = SA_SIGINFO;
+
+	k_sigaction(signo, (uintptr_t) new_act, (uintptr_t) old_act);
+	puts("sigaction(" SIG_STR ", {sa_handler=SIG_IGN, sa_mask=[HUP INT]"
+	     ", sa_flags=SA_SIGINFO}, {sa_handler=SIG_DFL, sa_mask=[]"
+	     ", sa_flags=0}) = 0");
+
+	sigemptyset(mask.libc);
+	sigaddset(mask.libc, SIGQUIT);
+	sigaddset(mask.libc, SIGTERM);
+
+	new_act->handler = (unsigned long) addr;
+	memcpy(new_act->mask, mask.old, sizeof(mask.old));
+	new_act->flags = SA_ONSTACK | SA_RESTART;
+
+	k_sigaction(signo, (uintptr_t) new_act, (uintptr_t) old_act);
+	printf("sigaction(" SIG_STR ", {sa_handler=%#lx, sa_mask=[QUIT TERM]"
+	       ", sa_flags=SA_ONSTACK|SA_RESTART}, {sa_handler=SIG_IGN"
+	       ", sa_mask=[HUP INT], sa_flags=SA_SIGINFO}) = 0\n",
+	       new_act->handler);
+
+	memset(mask.old, -1, sizeof(mask.old));
+	sigdelset(mask.libc, SIGHUP);
+
+	memcpy(new_act->mask, mask.old, sizeof(mask.old));
+#ifdef SA_RESTORER
+	new_act->flags = SA_RESTORER;
+	new_act->restorer = (unsigned long) 0xdeadfacecafef00dULL;
+# define SA_RESTORER_FMT ", sa_flags=SA_RESTORER, sa_restorer=%#lx"
+# define SA_RESTORER_ARGS , new_act->restorer
+#else
+	new_act->flags = SA_NODEFER;
+# define SA_RESTORER_FMT ", sa_flags=SA_NODEFER"
+# define SA_RESTORER_ARGS
+#endif
+
+	k_sigaction(signo, (uintptr_t) new_act, (uintptr_t) old_act);
+	printf("sigaction(" SIG_STR ", {sa_handler=%#lx, sa_mask=~[HUP]"
+	       SA_RESTORER_FMT "}, {sa_handler=%#lx, sa_mask=[QUIT TERM]"
+	       ", sa_flags=SA_ONSTACK|SA_RESTART}) = 0\n",
+	       new_act->handler SA_RESTORER_ARGS,
+	       new_act->handler);
+
+	puts("+++ exited with 0 +++");
 	return 0;
 }
+
+#else
+
+SKIP_MAIN_UNDEFINED("__NR_sigaction")
+
+#endif
diff --git a/tests/sigaction.gen.test b/tests/sigaction.gen.test
new file mode 100755
index 0000000..dee340e
--- /dev/null
+++ b/tests/sigaction.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sigaction -a31); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a31
diff --git a/tests/signal.c b/tests/signal.c
new file mode 100644
index 0000000..edbc3d2
--- /dev/null
+++ b/tests/signal.c
@@ -0,0 +1,132 @@
+/*
+ * Check decoding of signal syscall.
+ *
+ * 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 "tests.h"
+#include <asm/unistd.h>
+
+#ifdef __NR_signal
+
+# include <errno.h>
+# include <signal.h>
+# include <stdio.h>
+# include <stdint.h>
+# include <string.h>
+# include <unistd.h>
+
+static long
+k_signal(const kernel_ulong_t signum, const kernel_ulong_t handler)
+{
+	return syscall(__NR_signal, signum, handler);
+}
+
+int
+main(void)
+{
+	static const uintptr_t sig_ign = (uintptr_t) SIG_IGN;
+	static const uintptr_t sig_dfl = (uintptr_t) SIG_DFL;
+	static const kernel_ulong_t sigusr1 =
+		(kernel_ulong_t) 0xfacefeed00000000ULL | SIGUSR1;
+	static const struct sigaction act = { .sa_handler = SIG_DFL };
+	long rc;
+
+	sigset_t mask;
+	sigemptyset(&mask);
+	sigaddset(&mask, SIGUSR1);
+	if (sigprocmask(SIG_BLOCK, &mask, NULL))
+		perror_msg_and_fail("sigprocmask SIG_BLOCK");
+
+	if (sigaction(SIGUSR1, &act, NULL))
+		perror_msg_and_fail("sigaction");
+
+	rc = k_signal(sigusr1, sig_ign);
+
+	if (rc == -1L) {
+		printf("signal(SIGUSR1, SIG_IGN) = %s\n", sprintrc(rc));
+	} else if (rc != (long) sig_dfl) {
+		error_msg_and_fail("signal(SIGUSR1, SIG_IGN) = %#lx\n", rc);
+	} else {
+		printf("signal(SIGUSR1, SIG_IGN) = %#lx (SIG_DFL)\n", rc);
+
+		/*
+		 * Raise and unblock SIGUSR1.
+		 * If signal syscall failed to set SIGUSR1 handler to SIG_IGN,
+		 * the process will be terminated by SIGUSR1.
+		 */
+		raise(SIGUSR1);
+		if (sigprocmask(SIG_UNBLOCK, &mask, NULL))
+			perror_msg_and_fail("sigprocmask SIG_UNBLOCK");
+
+		if (sigprocmask(SIG_BLOCK, &mask, NULL))
+			perror_msg_and_fail("sigprocmask SIG_BLOCK");
+	}
+
+	rc = k_signal(SIGUSR1, sig_dfl);
+
+	if (rc == -1L) {
+		printf("signal(SIGUSR1, SIG_DFL) = %s\n", sprintrc(rc));
+	} else if (rc != (long) sig_ign) {
+		error_msg_and_fail("signal(SIGUSR1, SIG_DFL) = %#lx\n", rc);
+	} else {
+		printf("signal(SIGUSR1, SIG_DFL) = %#lx (SIG_IGN)\n", rc);
+	}
+
+	const kernel_ulong_t addr = (kernel_ulong_t) 0xfacefeeddeadbeefULL;
+	rc = k_signal(SIGUSR1, addr);
+
+	if (rc == -1L) {
+		printf("signal(SIGUSR1, %#llx) = %s\n",
+		       (unsigned long long) addr, sprintrc(rc));
+	} else if (rc != (long) sig_dfl) {
+		error_msg_and_fail("signal(SIGUSR1, %#llx) = %#lx\n",
+				   (unsigned long long) addr, rc);
+	} else {
+		printf("signal(SIGUSR1, %#llx) = %#lx (SIG_DFL)\n",
+		       (unsigned long long) addr, rc);
+	}
+
+	rc = k_signal(SIGUSR1, sig_ign);
+
+	if (rc == -1L) {
+		printf("signal(SIGUSR1, SIG_IGN) = %s\n", sprintrc(rc));
+	} else {
+		printf("signal(SIGUSR1, SIG_IGN) = %#lx\n", rc);
+	}
+
+	rc = k_signal(addr, sig_ign);
+	printf("signal(%d, SIG_IGN) = %s\n", (int) addr, sprintrc(rc));
+
+	puts("+++ exited with 0 +++");
+	return 0;
+}
+
+#else
+
+SKIP_MAIN_UNDEFINED("__NR_signal")
+
+#endif
diff --git a/tests/signal.gen.test b/tests/signal.gen.test
new file mode 100755
index 0000000..81359ca
--- /dev/null
+++ b/tests/signal.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (signal -a25 -e signal=none -e trace='/^signal$'); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a25 -e signal=none -e trace='/^signal$'
diff --git a/tests/signal2name.c b/tests/signal2name.c
index e301f4e..73e93b2 100644
--- a/tests/signal2name.c
+++ b/tests/signal2name.c
@@ -50,6 +50,7 @@
 	CASE(SIGPWR);
 	CASE(SIGSTKFLT);
 #endif
-	default: perror_msg_and_fail("unknown signal number %d", sig);
+	default:
+		perror_msg_and_fail("unknown signal number %d", sig);
 	}
 }
diff --git a/tests/signal_receive.c b/tests/signal_receive.c
index 1c4293e..01c52e8 100644
--- a/tests/signal_receive.c
+++ b/tests/signal_receive.c
@@ -25,7 +25,7 @@
 	sigemptyset(&mask);
 
 	for (sig = 1; sig <= 31; sig++) {
-		if( sig != SIGKILL && sig != SIGSTOP) {
+		if (sig != SIGKILL && sig != SIGSTOP) {
 			sigaction(sig, &act, NULL);
 			sigaddset(&mask, sig);
 		}
@@ -33,7 +33,7 @@
 	sigprocmask(SIG_UNBLOCK, &mask, NULL);
 
 	for (sig = 1; sig <= 31; sig++) {
-		if(sig != SIGKILL && sig != SIGSTOP) {
+		if (sig != SIGKILL && sig != SIGSTOP) {
 			if (kill(pid, sig) != 0)
 				perror_msg_and_fail("kill: %d", sig);
 			sig_print(signal2name(sig), pid, uid);
diff --git a/tests/sigpending.c b/tests/sigpending.c
new file mode 100644
index 0000000..0ce4b21
--- /dev/null
+++ b/tests/sigpending.c
@@ -0,0 +1,106 @@
+/*
+ * Check decoding of sigpending syscall.
+ *
+ * Copyright (c) 2016-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 "tests.h"
+#include <asm/unistd.h>
+
+#ifdef __NR_sigpending
+
+# include <signal.h>
+# include <stdint.h>
+# include <stdio.h>
+# include <string.h>
+# include <unistd.h>
+
+static const char *errstr;
+
+static long
+k_sigpending(const kernel_ulong_t set)
+{
+	const long rc = syscall(__NR_sigpending, set);
+	errstr = sprintrc(rc);
+	return rc;
+}
+
+int
+main(void)
+{
+	TAIL_ALLOC_OBJECT_CONST_PTR(kernel_ulong_t, k_set);
+	TAIL_ALLOC_OBJECT_CONST_PTR(sigset_t, libc_set);
+
+	sigemptyset(libc_set);
+	if (sigprocmask(SIG_SETMASK, libc_set, NULL))
+		perror_msg_and_fail("sigprocmask");
+
+	if (k_sigpending((uintptr_t) libc_set))
+		perror_msg_and_skip("sigpending");
+	else
+		puts("sigpending([]) = 0");
+
+	k_sigpending((uintptr_t) k_set);
+	puts("sigpending([]) = 0");
+
+	k_sigpending((uintptr_t) (k_set + 1));
+	printf("sigpending(%p) = -1 EFAULT (%m)\n", k_set + 1);
+
+	uintptr_t efault = sizeof(*k_set) / 2 + (uintptr_t) k_set;
+	k_sigpending(efault);
+	printf("sigpending(%#jx) = -1 EFAULT (%m)\n", (uintmax_t) efault);
+
+	sigaddset(libc_set, SIGHUP);
+	if (sigprocmask(SIG_SETMASK, libc_set, NULL))
+		perror_msg_and_fail("sigprocmask");
+	raise(SIGHUP);
+
+	k_sigpending((uintptr_t) k_set);
+	puts("sigpending([HUP]) = 0");
+
+	sigaddset(libc_set, SIGINT);
+	if (sigprocmask(SIG_SETMASK, libc_set, NULL))
+		perror_msg_and_fail("sigprocmask");
+	raise(SIGINT);
+
+	k_sigpending((uintptr_t) k_set);
+	puts("sigpending([HUP INT]) = 0");
+
+	if (F8ILL_KULONG_SUPPORTED) {
+		k_sigpending(f8ill_ptr_to_kulong(k_set));
+		printf("sigpending(%#jx) = %s\n",
+		       (uintmax_t) f8ill_ptr_to_kulong(k_set), errstr);
+	}
+
+	puts("+++ exited with 0 +++");
+	return 0;
+}
+
+#else
+
+SKIP_MAIN_UNDEFINED("__NR_sigpending")
+
+#endif
diff --git a/tests/sigpending.gen.test b/tests/sigpending.gen.test
new file mode 100755
index 0000000..0f4259a
--- /dev/null
+++ b/tests/sigpending.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sigpending -a15); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a15
diff --git a/tests/sigprocmask.c b/tests/sigprocmask.c
new file mode 100644
index 0000000..92a34d7
--- /dev/null
+++ b/tests/sigprocmask.c
@@ -0,0 +1,151 @@
+/*
+ * Check decoding of sigprocmask syscall.
+ *
+ * Copyright (c) 2016-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 "tests.h"
+#include <asm/unistd.h>
+
+#ifdef __NR_sigprocmask
+
+# include <signal.h>
+# include <stdint.h>
+# include <stdio.h>
+# include <string.h>
+# include <unistd.h>
+
+static const char *errstr;
+
+static long
+k_sigprocmask(const kernel_ulong_t how, const kernel_ulong_t new_set,
+	      const kernel_ulong_t old_set)
+{
+	const long rc = syscall(__NR_sigprocmask, how, new_set, old_set);
+	errstr = sprintrc(rc);
+	return rc;
+}
+
+int
+main(void)
+{
+	static const kernel_ulong_t sig_block =
+		(kernel_ulong_t) 0xfacefeed00000000ULL | SIG_BLOCK;
+	static const kernel_ulong_t sig_unblock =
+		(kernel_ulong_t) 0xfacefeed00000000ULL | SIG_UNBLOCK;
+	static const kernel_ulong_t sig_setmask =
+		(kernel_ulong_t) 0xfacefeed00000000ULL | SIG_SETMASK;
+
+	if (k_sigprocmask(sig_setmask, 0, 0))
+		perror_msg_and_skip("sigprocmask");
+	puts("sigprocmask(SIG_SETMASK, NULL, NULL) = 0");
+
+	TAIL_ALLOC_OBJECT_CONST_PTR(kernel_ulong_t, new_set);
+	TAIL_ALLOC_OBJECT_CONST_PTR(kernel_ulong_t, old_set);
+	TAIL_ALLOC_OBJECT_CONST_PTR(sigset_t, libc_set);
+
+	memset(new_set, 0, sizeof(*new_set));
+	k_sigprocmask(sig_setmask, (uintptr_t) new_set, 0);
+	printf("sigprocmask(SIG_SETMASK, [], NULL) = %s\n", errstr);
+
+	k_sigprocmask(sig_unblock,
+		      (uintptr_t) (new_set - 1), (uintptr_t) old_set);
+	puts("sigprocmask(SIG_UNBLOCK, ~[], []) = 0");
+
+	if (F8ILL_KULONG_SUPPORTED) {
+		k_sigprocmask(sig_unblock, f8ill_ptr_to_kulong(new_set), 0);
+		printf("sigprocmask(SIG_UNBLOCK, %#jx, NULL) = %s\n",
+		       (uintmax_t) f8ill_ptr_to_kulong(new_set), errstr);
+
+		k_sigprocmask(sig_unblock, 0, f8ill_ptr_to_kulong(old_set));
+		printf("sigprocmask(SIG_UNBLOCK, NULL, %#jx) = %s\n",
+		       (uintmax_t) f8ill_ptr_to_kulong(old_set), errstr);
+	}
+
+	sigemptyset(libc_set);
+	sigaddset(libc_set, SIGHUP);
+	memcpy(new_set, libc_set, sizeof(*new_set));
+
+	k_sigprocmask(sig_block, (uintptr_t) new_set, (uintptr_t) old_set);
+	puts("sigprocmask(SIG_BLOCK, [HUP], []) = 0");
+
+	memset(libc_set, -1, sizeof(*libc_set));
+	sigdelset(libc_set, SIGHUP);
+	memcpy(new_set, libc_set, sizeof(*new_set));
+
+	k_sigprocmask(sig_unblock, (uintptr_t) new_set, (uintptr_t) old_set);
+	puts("sigprocmask(SIG_UNBLOCK, ~[HUP], [HUP]) = 0");
+
+	sigdelset(libc_set, SIGKILL);
+	memcpy(new_set, libc_set, sizeof(*new_set));
+
+	k_sigprocmask(sig_unblock, (uintptr_t) new_set, (uintptr_t) old_set);
+	puts("sigprocmask(SIG_UNBLOCK, ~[HUP KILL], [HUP]) = 0");
+
+	sigemptyset(libc_set);
+	sigaddset(libc_set, SIGHUP);
+	sigaddset(libc_set, SIGINT);
+	sigaddset(libc_set, SIGQUIT);
+	sigaddset(libc_set, SIGALRM);
+	sigaddset(libc_set, SIGTERM);
+	memcpy(new_set, libc_set, sizeof(*new_set));
+
+	k_sigprocmask(sig_block, (uintptr_t) new_set, (uintptr_t) old_set);
+	printf("sigprocmask(SIG_BLOCK, %s, [HUP]) = 0\n",
+	       "[HUP INT QUIT ALRM TERM]");
+
+	k_sigprocmask(sig_setmask, 0, (uintptr_t) old_set);
+	printf("sigprocmask(SIG_SETMASK, NULL, %s) = 0\n",
+	       "[HUP INT QUIT ALRM TERM]");
+
+	k_sigprocmask(sig_setmask, (uintptr_t) (new_set + 1), 0);
+	printf("sigprocmask(SIG_SETMASK, %p, NULL) = %s\n",
+	       new_set + 1, errstr);
+
+	k_sigprocmask(sig_setmask,
+		      (uintptr_t) new_set, (uintptr_t) (old_set + 1));
+	printf("sigprocmask(SIG_SETMASK, %s, %p) = %s\n",
+	       "[HUP INT QUIT ALRM TERM]", old_set + 1, errstr);
+
+	uintptr_t efault = sizeof(*new_set) / 2 + (uintptr_t) new_set;
+
+	k_sigprocmask(sig_setmask, efault, 0);
+	printf("sigprocmask(SIG_SETMASK, %#jx, NULL) = %s\n",
+	       (uintmax_t) efault, errstr);
+
+	k_sigprocmask(sig_setmask, 0, efault);
+	printf("sigprocmask(SIG_SETMASK, NULL, %#jx) = %s\n",
+	       (uintmax_t) efault, errstr);
+
+	puts("+++ exited with 0 +++");
+	return 0;
+}
+
+#else
+
+SKIP_MAIN_UNDEFINED("__NR_sigprocmask")
+
+#endif
diff --git a/tests/sigprocmask.gen.test b/tests/sigprocmask.gen.test
new file mode 100755
index 0000000..44a508c
--- /dev/null
+++ b/tests/sigprocmask.gen.test
@@ -0,0 +1,4 @@
+#!/bin/sh -efu
+# Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in (sigprocmask -a34); do not edit.
+. "${srcdir=.}/init.sh"
+run_strace_match_diff -a34
diff --git a/tests/sockname.c b/tests/sockname.c
index 9bab8ed..5872671 100644
--- a/tests/sockname.c
+++ b/tests/sockname.c
@@ -42,9 +42,7 @@
 # error TEST_SYSCALL_NAME must be defined
 #endif
 
-#define TEST_SYSCALL_STR__(a) #a
-#define TEST_SYSCALL_STR_(a) TEST_SYSCALL_STR__(a)
-#define TEST_SYSCALL_STR TEST_SYSCALL_STR_(TEST_SYSCALL_NAME)
+#define TEST_SYSCALL_STR STRINGIFY_VAL(TEST_SYSCALL_NAME)
 #define TEST_SOCKET TEST_SYSCALL_STR ".socket"
 
 #ifdef TEST_SYSCALL_PREPARE
diff --git a/tests/stack-fcall.c b/tests/stack-fcall.c
index 134d54f..fc9ee5f 100644
--- a/tests/stack-fcall.c
+++ b/tests/stack-fcall.c
@@ -1,6 +1,6 @@
 int f0(int i);
 
-int main(int argc, char** argv)
+int main(int argc, char **argv)
 {
 	f0(argc);
 	return 0;
diff --git a/tests/statx.c b/tests/statx.c
index f36fb0e..816b7eb 100644
--- a/tests/statx.c
+++ b/tests/statx.c
@@ -49,7 +49,7 @@
 
 # define TEST_SYSCALL_INVOKE(sample, pst) \
 	syscall(__NR_statx, AT_FDCWD, sample, TEST_SYSCALL_STATX_FLAGS, \
-	        TEST_SYSCALL_STATX_MASK, pst)
+		TEST_SYSCALL_STATX_MASK, pst)
 # define PRINT_SYSCALL_HEADER(sample) \
 	do { \
 		int saved_errno = errno; \
diff --git a/tests/strace-V.test b/tests/strace-V.test
index d5c3ac0..8db1395 100755
--- a/tests/strace-V.test
+++ b/tests/strace-V.test
@@ -23,7 +23,7 @@
 
 cat > "$EXP" << __EOF__
 $(getval PACKAGE_NAME) -- version $(getval PACKAGE_VERSION)
-Copyright (C) 1991-${config_year} The strace developers <$(getval PACKAGE_URL)>.
+Copyright (c) 1991-${config_year} The strace developers <$(getval PACKAGE_URL)>.
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 __EOF__
diff --git a/tests/termsig.test b/tests/termsig.test
new file mode 100755
index 0000000..fd8852c
--- /dev/null
+++ b/tests/termsig.test
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# Check termination signal forwarding.
+
+. "${srcdir=.}/init.sh"
+
+run_expect_termsig="../run_expect_termsig 15"
+unblock_reset_raise="../unblock_reset_raise 15"
+
+run_prog $run_expect_termsig $unblock_reset_raise
+STRACE="$run_expect_termsig $STRACE"
+
+for i in 1 2 3 4; do
+	run_strace -I$i -enone -esignal=none $unblock_reset_raise
+done
diff --git a/tests/test_nlattr.h b/tests/test_nlattr.h
new file mode 100644
index 0000000..8cbb211
--- /dev/null
+++ b/tests/test_nlattr.h
@@ -0,0 +1,183 @@
+/*
+ * Copyright (c) 2017 The strace developers.
+ * 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 "tests.h"
+#include "print_fields.h"
+
+#include <stdio.h>
+#include <string.h>
+#include <sys/socket.h>
+#include "netlink.h"
+#include <linux/rtnetlink.h>
+
+static void
+init_nlattr(struct nlattr *const nla,
+	    const uint16_t nla_len,
+	    const uint16_t nla_type,
+	    const void *const src,
+	    const size_t n)
+{
+	SET_STRUCT(struct nlattr, nla,
+		.nla_len = nla_len,
+		.nla_type = nla_type,
+	);
+
+	memcpy(RTA_DATA(nla), src, n);
+}
+
+static void
+print_nlattr(const unsigned int nla_len, const char *const nla_type)
+{
+	printf(", {{nla_len=%u, nla_type=%s}, ", nla_len, nla_type);
+}
+
+#define TEST_NLATTR_(fd_, nlh0_, hdrlen_,				\
+		     init_msg_, print_msg_,				\
+		     nla_type_, nla_type_str_,				\
+		     nla_data_len_, src_, slen_, ...)			\
+	do {								\
+		struct nlmsghdr *const nlh =				\
+			(nlh0_) - (NLA_HDRLEN + (slen_));		\
+		struct nlattr *const nla = NLMSG_ATTR(nlh, (hdrlen_));	\
+		const unsigned int nla_len =				\
+			NLA_HDRLEN + (nla_data_len_);			\
+		const unsigned int msg_len =				\
+			NLMSG_SPACE(hdrlen_) + nla_len;			\
+									\
+		(init_msg_)(nlh, msg_len);				\
+		init_nlattr(nla, nla_len, (nla_type_),			\
+			   (src_), (slen_));				\
+									\
+		const char *const errstr =				\
+			sprintrc(sendto((fd_), nlh, msg_len,		\
+					MSG_DONTWAIT, NULL, 0));	\
+									\
+		printf("sendto(%d, {", (fd_));				\
+		(print_msg_)(msg_len);					\
+		print_nlattr(nla_len, (nla_type_str_));			\
+									\
+		{ __VA_ARGS__; }					\
+									\
+		printf("}}, %u, MSG_DONTWAIT, NULL, 0) = %s\n",		\
+		       msg_len, errstr);				\
+	} while (0)
+
+#define TEST_NLATTR(fd_, nlh0_, hdrlen_,				\
+		    init_msg_, print_msg_,				\
+		    nla_type_,						\
+		    nla_data_len_, src_, slen_, ...)			\
+	TEST_NLATTR_((fd_), (nlh0_), (hdrlen_),				\
+		(init_msg_), (print_msg_),				\
+		(nla_type_), #nla_type_,				\
+		(nla_data_len_), (src_), (slen_), __VA_ARGS__)
+
+#define TEST_NLATTR_OBJECT(fd_, nlh0_, hdrlen_,				\
+			   init_msg_, print_msg_,			\
+			   nla_type_, pattern_, obj_, ...)		\
+	do {								\
+		const int plen = sizeof(obj_) - 1 > DEFAULT_STRLEN	\
+			? DEFAULT_STRLEN : (int) sizeof(obj_) - 1;	\
+		/* len < sizeof(obj_) */				\
+		TEST_NLATTR_((fd_), (nlh0_), (hdrlen_),			\
+			(init_msg_), (print_msg_),			\
+			(nla_type_), #nla_type_,			\
+			sizeof(obj_) - 1,				\
+			(pattern_), sizeof(obj_) - 1,			\
+			printf("\"%.*s\"", plen, (pattern_)));		\
+		/* short read of sizeof(obj_) */			\
+		TEST_NLATTR_((fd_), (nlh0_), (hdrlen_),			\
+			(init_msg_), (print_msg_),			\
+			(nla_type_), #nla_type_,			\
+			sizeof(obj_),					\
+			(pattern_), sizeof(obj_) - 1,			\
+			printf("%p",					\
+			       RTA_DATA(NLMSG_ATTR(nlh, (hdrlen_)))));	\
+		/* sizeof(obj_) */					\
+		TEST_NLATTR_((fd_), (nlh0_), (hdrlen_),			\
+			(init_msg_), (print_msg_),			\
+			(nla_type_), #nla_type_,			\
+			sizeof(obj_),					\
+			&(obj_), sizeof(obj_),				\
+			__VA_ARGS__);					\
+	} while (0)
+
+#define TEST_NLATTR_ARRAY(fd_, nlh0_, hdrlen_,				\
+			  init_msg_, print_msg_,			\
+			  nla_type_, pattern_, obj_, print_elem_)	\
+	do {								\
+		const int plen =					\
+			sizeof((obj_)[0]) - 1 > DEFAULT_STRLEN		\
+			? DEFAULT_STRLEN : (int) sizeof((obj_)[0]) - 1;	\
+		/* len < sizeof((obj_)[0]) */				\
+		TEST_NLATTR_((fd_), (nlh0_), (hdrlen_),			\
+			(init_msg_), (print_msg_),			\
+			(nla_type_), #nla_type_,			\
+			sizeof((obj_)[0]) - 1,				\
+			(pattern_), sizeof((obj_)[0]) - 1,		\
+			printf("\"%.*s\"", plen, (pattern_)));		\
+		/* sizeof((obj_)[0]) < len < sizeof(obj_) */		\
+		TEST_NLATTR_((fd_), (nlh0_), (hdrlen_),			\
+			(init_msg_), (print_msg_),			\
+			(nla_type_), #nla_type_,			\
+			sizeof(obj_) - 1,				\
+			&(obj_), sizeof(obj_) - 1,			\
+			printf("[");					\
+			size_t i;					\
+			for (i = 0; i < ARRAY_SIZE(obj_) - 1; ++i) {	\
+				if (i) printf(", ");			\
+				(print_elem_)(&(obj_)[i]);		\
+			}						\
+			printf("]"));					\
+		/* short read of sizeof(obj_) */			\
+		TEST_NLATTR_((fd_), (nlh0_), (hdrlen_),			\
+			(init_msg_), (print_msg_),			\
+			(nla_type_), #nla_type_,			\
+			sizeof(obj_),					\
+			&(obj_), sizeof(obj_) - 1,			\
+			printf("[");					\
+			size_t i;					\
+			for (i = 0; i < ARRAY_SIZE(obj_) - 1; ++i) {	\
+				if (i) printf(", ");			\
+				(print_elem_)(&(obj_)[i]);		\
+			}						\
+			printf(", %p]",					\
+			       RTA_DATA(NLMSG_ATTR(nlh, (hdrlen_)))	\
+			        + sizeof((obj_)[0])));			\
+		/* sizeof(obj_) */					\
+		TEST_NLATTR_((fd_), (nlh0_), (hdrlen_),			\
+			(init_msg_), (print_msg_),			\
+			(nla_type_), #nla_type_,			\
+			sizeof(obj_),					\
+			&(obj_), sizeof(obj_),				\
+			printf("[");					\
+			size_t i;					\
+			for (i = 0; i < ARRAY_SIZE(obj_); ++i) {	\
+				if (i) printf(", ");			\
+				(print_elem_)(&(obj_)[i]);		\
+			}						\
+			printf("]"));					\
+	} while (0)
diff --git a/tests/tests.h b/tests/tests.h
index dcc1057..094f365 100644
--- a/tests/tests.h
+++ b/tests/tests.h
@@ -36,12 +36,26 @@
 # include <sys/types.h>
 # include "kernel_types.h"
 # include "gcc_compat.h"
+# include "macros.h"
+
+/*
+ * The printf-like function to use in header files
+ * shared between strace and its tests.
+ */
+#ifndef STRACE_PRINTF
+# define STRACE_PRINTF printf
+#endif
 
 /* Tests of "strace -v" are expected to define VERBOSE to 1. */
 #ifndef VERBOSE
 # define VERBOSE 0
 #endif
 
+#ifndef DEFAULT_STRLEN
+/* Default maximum # of bytes printed in printstr et al. */
+# define DEFAULT_STRLEN 32
+#endif
+
 /* Cached sysconf(_SC_PAGESIZE). */
 size_t get_page_size(void);
 
@@ -66,7 +80,7 @@
 
 /*
  * Allocate memory that ends on the page boundary.
- * Pages allocated by this call are preceeded by an unmapped page
+ * Pages allocated by this call are preceded by an unmapped page
  * and followed also by an unmapped page.
  */
 void *tail_alloc(const size_t)
@@ -167,6 +181,10 @@
 int recv_mmsg(int, struct mmsghdr *, unsigned int, unsigned int, struct timespec *);
 int send_mmsg(int, struct mmsghdr *, unsigned int, unsigned int);
 
+/* Create a netlink socket. */
+int create_nl_socket_ext(int proto, const char *name);
+#define create_nl_socket(proto)	create_nl_socket_ext((proto), #proto)
+
 /* Create a pipe with maximized descriptor numbers. */
 void pipe_maxfd(int pipefd[2]);
 
@@ -186,7 +204,6 @@
 	       ? F8ILL_KULONG_MASK | uptr : (kernel_ulong_t) uptr;
 }
 
-# define ARRAY_SIZE(arg) ((unsigned int) (sizeof(arg) / sizeof((arg)[0])))
 # define LENGTH_OF(arg) ((unsigned int) sizeof(arg) - 1)
 
 /* Zero-extend a signed integer type to unsigned long long. */
@@ -239,4 +256,16 @@
 # define ARG_STR(_arg) (_arg), #_arg
 # define ARG_ULL_STR(_arg) _arg##ULL, #_arg
 
+/*
+ * Assign an object of type DEST_TYPE at address DEST_ADDR
+ * using memcpy to avoid potential unaligned access.
+ */
+#define SET_STRUCT(DEST_TYPE, DEST_ADDR, ...)						\
+	do {										\
+		DEST_TYPE dest_type_tmp_var = { __VA_ARGS__ };				\
+		memcpy(DEST_ADDR, &dest_type_tmp_var, sizeof(dest_type_tmp_var));	\
+	} while (0)
+
+#define NLMSG_ATTR(nlh, hdrlen) ((void *)(nlh) + NLMSG_SPACE(hdrlen))
+
 #endif /* !STRACE_TESTS_H */
diff --git a/tests/times-fail.c b/tests/times-fail.c
index cb69bd4..bc8b459 100644
--- a/tests/times-fail.c
+++ b/tests/times-fail.c
@@ -5,7 +5,7 @@
 #include <asm/unistd.h>
 
 int
-main (void)
+main(void)
 {
 	assert(syscall(__NR_times, 0x42) == -1);
 	printf("times(0x42) = -1 EFAULT (%m)\n");
diff --git a/tests/times.c b/tests/times.c
index 2c7b95e..c4cce0e 100644
--- a/tests/times.c
+++ b/tests/times.c
@@ -49,7 +49,7 @@
 };
 
 int
-main (void)
+main(void)
 {
 	struct timespec ts;
 	volatile int dummy = 0;
diff --git a/tests/uio.c b/tests/uio.c
index 6291f97..21f005d 100644
--- a/tests/uio.c
+++ b/tests/uio.c
@@ -39,16 +39,16 @@
 {
 	const off_t offset = 0xdefaceddeadbeefLL;
 	char buf[4];
-	struct iovec iov = { buf, sizeof buf };
+	struct iovec iov = { buf, sizeof(buf) };
 
 	(void) close(0);
 	assert(open("/dev/zero", O_RDONLY) == 0);
-	assert(pread(0, buf, sizeof buf, offset) == 4);
+	assert(pread(0, buf, sizeof(buf), offset) == 4);
 	assert(preadv(0, &iov, 1, offset) == 4);
 	assert(!close(0));
 
 	assert(open("/dev/null", O_WRONLY) == 0);
-	assert(pwrite(0, buf, sizeof buf, offset) == 4);
+	assert(pwrite(0, buf, sizeof(buf), offset) == 4);
 	assert(pwritev(0, &iov, 1, offset) == 4);
 	assert(!close(0));
 
diff --git a/tests/unblock_reset_raise.c b/tests/unblock_reset_raise.c
new file mode 100644
index 0000000..4182f12
--- /dev/null
+++ b/tests/unblock_reset_raise.c
@@ -0,0 +1,54 @@
+/*
+ * Unblock, reset, and raise a signal.
+ *
+ * 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 "tests.h"
+#include <signal.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+int
+main(int ac, char **av)
+{
+	if (ac != 2)
+		error_msg_and_fail("usage: unblock_raise signo");
+
+	sigset_t mask;
+	sigemptyset(&mask);
+	const int signo = atoi(av[1]);
+	if (sigaddset(&mask, signo))
+		perror_msg_and_fail("sigaddset: %s", av[1]);
+	if (sigprocmask(SIG_UNBLOCK, &mask, NULL))
+		perror_msg_and_fail("sigprocmask");
+	if (signal(signo, SIG_DFL) == SIG_ERR)
+		perror_msg_and_fail("signal: %s", av[1]);
+	if (raise(signo))
+		perror_msg_and_fail("raise: %s", av[1]);
+
+	return 0;
+}
diff --git a/tests/unix-pair-sendto-recvfrom.c b/tests/unix-pair-sendto-recvfrom.c
index cea382c..a0c710a 100644
--- a/tests/unix-pair-sendto-recvfrom.c
+++ b/tests/unix-pair-sendto-recvfrom.c
@@ -71,7 +71,7 @@
 		assert(recvfrom(0, av[1], len, MSG_WAITALL, NULL, NULL) == len);
 		assert(close(0) == 0);
 
-                int status;
+		int status;
 		assert(waitpid(pid, &status, 0) == pid);
 		assert(status == 0);
 	} else {
diff --git a/tests/vmsplice.c b/tests/vmsplice.c
index f29962e..4242d9e 100644
--- a/tests/vmsplice.c
+++ b/tests/vmsplice.c
@@ -86,7 +86,7 @@
 		" * %u bytes in buffer 2\n"
 		" | 00000 %-49s  %-16s |\n",
 		w0_c, LENGTH_OF(w0_c), w1_c, LENGTH_OF(w1_c),
-		w2_c, LENGTH_OF(w2_c), ARRAY_SIZE(iov_),
+		w2_c, LENGTH_OF(w2_c), (unsigned int) ARRAY_SIZE(iov_),
 		"SPLICE_F_NONBLOCK", len,
 		LENGTH_OF(w0_c), w0_d, w0_c,
 		LENGTH_OF(w1_c), w1_d, w1_c, LENGTH_OF(w2_c), w2_d, w2_c);
diff --git a/tests/waitid.c b/tests/waitid.c
index b56feea..26f5b86 100644
--- a/tests/waitid.c
+++ b/tests/waitid.c
@@ -111,7 +111,8 @@
 #ifdef CLD_CONTINUED
 	CASE(CLD_CONTINUED);
 #endif
-	default: perror_msg_and_fail("unknown si_code %d", code);
+	default:
+		perror_msg_and_fail("unknown si_code %d", code);
 	}
 }
 
diff --git a/tests/xattr.c b/tests/xattr.c
index a772ece..03b4270 100644
--- a/tests/xattr.c
+++ b/tests/xattr.c
@@ -36,8 +36,6 @@
 #  define XATTR_SIZE_MAX 65536
 # endif
 
-#define DEFAULT_STRLEN 32
-
 int
 main(void)
 {
diff --git a/tests/xchownx.c b/tests/xchownx.c
index fe58283..e415fef 100644
--- a/tests/xchownx.c
+++ b/tests/xchownx.c
@@ -45,10 +45,17 @@
 # define CHECK_OVERFLOWGID(arg)
 #endif
 
-#define UNLINK_SAMPLE \
-	if (unlink(sample)) perror_msg_and_fail("unlink")
-#define CLOSE_SAMPLE \
-	if (close(fd)) perror_msg_and_fail("close")
+#define UNLINK_SAMPLE					\
+	do {						\
+		if (unlink(sample))			\
+			perror_msg_and_fail("unlink");	\
+	} while (0)
+
+#define CLOSE_SAMPLE					\
+	do {						\
+		if (close(fd))				\
+			perror_msg_and_fail("close");	\
+	} while (0)
 
 #ifdef ACCESS_BY_DESCRIPTOR
 # define SYSCALL_ARG1 fd
diff --git a/tests/xselect.c b/tests/xselect.c
index e1638c8..6c8cd81 100644
--- a/tests/xselect.c
+++ b/tests/xselect.c
@@ -136,7 +136,7 @@
 	 * but with a pointer to a large chunk of valid memory.
 	 */
 	FD_ZERO(set);
-	FD_SET(fds[1],set);
+	FD_SET(fds[1], set);
 	assert(syscall(TEST_SYSCALL_NR, -1, NULL, set, NULL, NULL) == -1);
 	printf("%s(-1, NULL, %p, NULL, NULL) = -1 EINVAL (%m)\n",
 	       TEST_SYSCALL_STR, set);
@@ -145,7 +145,7 @@
 	 * Another variant, with nfds exceeding FD_SETSIZE limit.
 	 */
 	FD_ZERO(set);
-	FD_SET(fds[0],set);
+	FD_SET(fds[0], set);
 	tv->tv_sec = 0;
 	tv->tv_usec = 123;
 	assert(syscall(TEST_SYSCALL_NR, FD_SETSIZE + 1, set, set + 1, NULL, tv) == 0);
diff --git a/tests/xstatfsx.c b/tests/xstatfsx.c
index cb524ff..33254dd 100644
--- a/tests/xstatfsx.c
+++ b/tests/xstatfsx.c
@@ -38,12 +38,17 @@
 #include "xlat/statfs_flags.h"
 
 #define PRINT_NUM(arg)							\
-	if (sizeof(b->arg) == sizeof(int))				\
-		printf(", %s=%u", #arg, (unsigned int) b->arg);		\
-	else if (sizeof(b->arg) == sizeof(long))				\
-		printf(", %s=%lu", #arg, (unsigned long) b->arg);	\
-	else								\
-		printf(", %s=%llu", #arg, (unsigned long long) b->arg)
+	do {								\
+		if (sizeof(b->arg) == sizeof(int))			\
+			printf(", %s=%u", #arg,				\
+			       (unsigned int) b->arg);			\
+		else if (sizeof(b->arg) == sizeof(long))		\
+			printf(", %s=%lu", #arg,			\
+			       (unsigned long) b->arg);			\
+		else							\
+			printf(", %s=%llu", #arg,			\
+			       (unsigned long long) b->arg);		\
+	} while (0)
 
 static void
 print_statfs_type(const char *const prefix, const unsigned int magic)
diff --git a/tests/xstatx.c b/tests/xstatx.c
index 8758ef8..7fb9326 100644
--- a/tests/xstatx.c
+++ b/tests/xstatx.c
@@ -48,6 +48,7 @@
 # include <unistd.h>
 # include <sys/sysmacros.h>
 
+# include "print_fields.h"
 # include "statx.h"
 
 # ifndef STRUCT_STAT
@@ -178,14 +179,16 @@
 #   define HAVE_NSEC		0
 #  endif
 
-#define PRINT_ST_TIME(field)						\
-	printf(", st_" #field "=%lld",					\
-	       sign_extend_unsigned_to_ll(st->st_ ## field));		\
-	print_time_t_nsec(sign_extend_unsigned_to_ll(st->st_ ## field),	\
-			  TIME_NSEC(st->st_ ## field ## _nsec), 1);	\
-	if (HAVE_NSEC)							\
-		printf(", st_" #field "_nsec=%llu",			\
-		       TIME_NSEC(st->st_ ## field ## _nsec))
+#define PRINT_ST_TIME(field)							\
+	do {									\
+		printf(", st_" #field "=%lld",					\
+		       sign_extend_unsigned_to_ll(st->st_ ## field));		\
+		print_time_t_nsec(sign_extend_unsigned_to_ll(st->st_ ## field),	\
+				  TIME_NSEC(st->st_ ## field ## _nsec), 1);	\
+		if (HAVE_NSEC)							\
+			printf(", st_" #field "_nsec=%llu",			\
+			       TIME_NSEC(st->st_ ## field ## _nsec));		\
+	} while (0)
 
 	PRINT_ST_TIME(atime);
 	PRINT_ST_TIME(mtime);
@@ -198,31 +201,34 @@
 static void
 print_stat(const STRUCT_STAT *st)
 {
-#  define PRINT_FIELD_U(field) \
-	printf(", %s=%llu", #field, (unsigned long long) st->field)
+#  define PRINT_FIELD_U32_UID(field)					\
+	do {								\
+		if (st->field == (uint32_t) -1)				\
+			printf(", %s=-1", #field);			\
+		else							\
+			printf(", %s=%llu", #field,			\
+			       (unsigned long long) st->field);		\
+	} while (0)
 
-#  define PRINT_FIELD_U32_UID(field) \
-	if (st->field == (uint32_t) -1) \
-		printf(", %s=-1", #field); \
-	else \
-		printf(", %s=%llu", #field, (unsigned long long) st->field)
-
-#  define PRINT_FIELD_TIME(field)					\
-	printf(", %s={tv_sec=%lld, tv_nsec=%u}",			\
-	       #field, (long long) st->field.tv_sec,			\
-	       (unsigned) st->field.tv_nsec);				\
-	print_time_t_nsec(st->field.tv_sec,				\
-			  zero_extend_signed_to_ull(st->field.tv_nsec), 1);
+#  define PRINT_FIELD_TIME(field)						\
+	do {									\
+		printf(", %s={tv_sec=%lld, tv_nsec=%u}",			\
+		       #field, (long long) st->field.tv_sec,			\
+		       (unsigned) st->field.tv_nsec);				\
+		print_time_t_nsec(st->field.tv_sec,				\
+				  zero_extend_signed_to_ull(st->field.tv_nsec),	\
+				  1);						\
+	} while (0)
 
 	printf("{stx_mask=");
 	printflags(statx_masks, st->stx_mask, "STATX_???");
 
-	PRINT_FIELD_U(stx_blksize);
+	PRINT_FIELD_U(", ", *st, stx_blksize);
 
 	printf(", stx_attributes=");
 	printflags(statx_attrs, st->stx_attributes, "STATX_ATTR_???");
 
-	PRINT_FIELD_U(stx_nlink);
+	PRINT_FIELD_U(", ", *st, stx_nlink);
 	PRINT_FIELD_U32_UID(stx_uid);
 	PRINT_FIELD_U32_UID(stx_gid);
 
@@ -231,9 +237,9 @@
 	printf("|");
 	print_perms(st->stx_mode);
 
-	PRINT_FIELD_U(stx_ino);
-	PRINT_FIELD_U(stx_size);
-	PRINT_FIELD_U(stx_blocks);
+	PRINT_FIELD_U(", ", *st, stx_ino);
+	PRINT_FIELD_U(", ", *st, stx_size);
+	PRINT_FIELD_U(", ", *st, stx_blocks);
 
 	printf(", stx_attributes_mask=");
 	printflags(statx_attrs, st->stx_attributes_mask, "STATX_ATTR_???");
@@ -242,10 +248,10 @@
 	PRINT_FIELD_TIME(stx_btime);
 	PRINT_FIELD_TIME(stx_ctime);
 	PRINT_FIELD_TIME(stx_mtime);
-	PRINT_FIELD_U(stx_rdev_major);
-	PRINT_FIELD_U(stx_rdev_minor);
-	PRINT_FIELD_U(stx_dev_major);
-	PRINT_FIELD_U(stx_dev_minor);
+	PRINT_FIELD_U(", ", *st, stx_rdev_major);
+	PRINT_FIELD_U(", ", *st, stx_rdev_minor);
+	PRINT_FIELD_U(", ", *st, stx_dev_major);
+	PRINT_FIELD_U(", ", *st, stx_dev_minor);
 	printf("}");
 }
 
@@ -388,24 +394,30 @@
 
 # if IS_STATX
 
-#  define INVOKE() \
-	rc = TEST_SYSCALL_INVOKE(sample, st); \
-	PRINT_SYSCALL_HEADER(sample); \
-	if (rc) \
-		printf("%p", st); \
-	else \
-		print_stat(st); \
-	PRINT_SYSCALL_FOOTER(rc)
+#  define INVOKE()					\
+	do {						\
+		rc = TEST_SYSCALL_INVOKE(sample, st);	\
+		PRINT_SYSCALL_HEADER(sample);		\
+		if (rc)					\
+			printf("%p", st);		\
+		else					\
+			print_stat(st);			\
+		PRINT_SYSCALL_FOOTER(rc);		\
+	} while (0)
 
-#  define SET_FLAGS_INVOKE(flags, flags_str) \
-	TEST_SYSCALL_STATX_FLAGS = flags; \
-	TEST_SYSCALL_STATX_FLAGS_STR = flags_str; \
-	INVOKE()
+#  define SET_FLAGS_INVOKE(flags, flags_str)			\
+	do {							\
+		TEST_SYSCALL_STATX_FLAGS = flags;		\
+		TEST_SYSCALL_STATX_FLAGS_STR = flags_str;	\
+		INVOKE();					\
+	} while (0)
 
-#  define SET_MASK_INVOKE(mask, mask_str) \
-	TEST_SYSCALL_STATX_MASK = mask; \
-	TEST_SYSCALL_STATX_MASK_STR = mask_str; \
-	INVOKE()
+#  define SET_MASK_INVOKE(mask, mask_str)			\
+	do {							\
+		TEST_SYSCALL_STATX_MASK = mask;			\
+		TEST_SYSCALL_STATX_MASK_STR = mask_str;		\
+		INVOKE();					\
+	} while (0)
 
 	unsigned old_flags = TEST_SYSCALL_STATX_FLAGS;
 	const char *old_flags_str = TEST_SYSCALL_STATX_FLAGS_STR;
diff --git a/tests/zeroargc.c b/tests/zeroargc.c
new file mode 100644
index 0000000..05d47dc
--- /dev/null
+++ b/tests/zeroargc.c
@@ -0,0 +1,43 @@
+/*
+ * Execute an executable with zero argc and specified anvironment.
+ *
+ * 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 "tests.h"
+#include <stdlib.h>
+#include <unistd.h>
+
+int
+main(const int ac, char **const av)
+{
+	if (ac < 2)
+		error_msg_and_fail("missing operand");
+	const char *const path = av[1];
+	av[1] = 0;
+	execve(path, av + 1, av + 2);
+	perror_msg_and_fail("execve: %s", path);
+}
diff --git a/time.c b/time.c
index 6cba48c..31f44fc 100644
--- a/time.c
+++ b/time.c
@@ -198,15 +198,14 @@
 		if ((clockid & CLOCKFD_MASK) == CLOCKFD)
 			tprintf("FD_TO_CLOCKID(%d)", CLOCKID_TO_FD(clockid));
 		else {
-			if(CPUCLOCK_PERTHREAD(clockid))
+			if (CPUCLOCK_PERTHREAD(clockid))
 				tprintf("MAKE_THREAD_CPUCLOCK(%d,", CPUCLOCK_PID(clockid));
 			else
 				tprintf("MAKE_PROCESS_CPUCLOCK(%d,", CPUCLOCK_PID(clockid));
 			printxval(cpuclocknames, clockid & CLOCKFD_MASK, "CPUCLOCK_???");
 			tprints(")");
 		}
-	}
-	else
+	} else
 #endif
 		printxval(clocknames, clockid, "CLOCK_???");
 }
diff --git a/uid.c b/uid.c
index 80d81ce..0fb810c 100644
--- a/uid.c
+++ b/uid.c
@@ -34,9 +34,9 @@
 #  error invalid STRACE_UID_SIZE
 # endif
 
-# define SIZEIFY(x)		SIZEIFY_(x,STRACE_UID_SIZE)
-# define SIZEIFY_(x,size)	SIZEIFY__(x,size)
-# define SIZEIFY__(x,size)	x ## size
+# define SIZEIFY(x)		SIZEIFY_(x, STRACE_UID_SIZE)
+# define SIZEIFY_(x, size)	SIZEIFY__(x, size)
+# define SIZEIFY__(x, size)	x ## size
 
 # define printuid	SIZEIFY(printuid)
 # define sys_chown	SIZEIFY(sys_chown)
@@ -159,7 +159,7 @@
 static bool
 print_gid(struct tcb *tcp, void *elem_buf, size_t elem_size, void *data)
 {
-	printuid("", (* (uid_t *) elem_buf));
+	printuid("", (*(uid_t *) elem_buf));
 
 	return true;
 }
diff --git a/uname.c b/uname.c
index 3df11e8..a63295e 100644
--- a/uname.c
+++ b/uname.c
@@ -41,10 +41,12 @@
 		return 0;
 
 	if (!umove_or_printaddr(tcp, tcp->u_arg[0], &uname)) {
-#define PRINT_UTS_MEMBER(prefix, member) \
-		tprints(prefix #member "="); \
-		print_quoted_string(uname.member, sizeof(uname.member), \
-				    QUOTE_0_TERMINATED)
+#define PRINT_UTS_MEMBER(prefix, member)				\
+	do {								\
+		tprints(prefix #member "=");				\
+		print_quoted_string(uname.member, sizeof(uname.member),	\
+				    QUOTE_0_TERMINATED);		\
+	} while (0)
 
 		PRINT_UTS_MEMBER("{", sysname);
 		PRINT_UTS_MEMBER(", ", nodename);
diff --git a/unwind.c b/unwind.c
index 2451742..919b63c 100644
--- a/unwind.c
+++ b/unwind.c
@@ -39,7 +39,11 @@
 # define fopen_for_input fopen
 #endif
 
-#define DPRINTF(F, A, ...) if (debug_flag) error_msg("[unwind(" A ")] " F, __VA_ARGS__)
+#define DPRINTF(F, A, ...)						\
+	do {								\
+		if (debug_flag)						\
+			error_msg("[unwind(" A ")] " F, __VA_ARGS__);	\
+	} while (0)
 
 /*
  * Keep a sorted array of cache entries,
@@ -77,13 +81,13 @@
  * Type used in stacktrace capturing
  */
 struct call_t {
-       struct call_t* next;
-       char *output_line;
+	struct call_t *next;
+	char *output_line;
 };
 
 struct queue_t {
-       struct call_t *tail;
-       struct call_t *head;
+	struct call_t *tail;
+	struct call_t *head;
 };
 
 static void queue_print(struct queue_t *queue);
@@ -109,7 +113,7 @@
 
 	tcp->libunwind_ui = _UPT_create(tcp->pid);
 	if (!tcp->libunwind_ui)
-		die_out_of_memory();
+		perror_msg_and_die("_UPT_create");
 
 	tcp->queue = xmalloc(sizeof(*tcp->queue));
 	tcp->queue->head = NULL;
@@ -123,7 +127,7 @@
 	free(tcp->queue);
 	tcp->queue = NULL;
 
-	delete_mmap_cache(tcp, __FUNCTION__);
+	delete_mmap_cache(tcp, __func__);
 
 	_UPT_destroy(tcp->libunwind_ui);
 	tcp->libunwind_ui = NULL;
@@ -136,7 +140,7 @@
  * e.g. mmap, mprotect, munmap, execve.
  */
 static void
-build_mmap_cache(struct tcb* tcp)
+build_mmap_cache(struct tcb *tcp)
 {
 	FILE *fp;
 	struct mmap_cache_t *cache_head;
@@ -257,7 +261,7 @@
 }
 
 void
-unwind_cache_invalidate(struct tcb* tcp)
+unwind_cache_invalidate(struct tcb *tcp)
 {
 #if SUPPORTED_PERSONALITIES > 1
 	if (tcp->currpers != DEFAULT_PERSONALITY) {
@@ -330,8 +334,7 @@
 				    function_offset,
 				    true_offset);
 			return 0;
-		}
-		else if (ip < cur_mmap_cache->start_addr)
+		} else if (ip < cur_mmap_cache->start_addr)
 			upper = mid - 1;
 		else
 			lower = mid + 1;
@@ -342,7 +345,7 @@
 	 * after a set_tid_address syscall
 	 * unw_get_reg returns IP == 0
 	 */
-	if(ip)
+	if (ip)
 		error_action(data, "unexpected_backtracing_error", ip);
 	return -1;
 }
@@ -424,7 +427,7 @@
 	else if (binary_filename)
 		tprintf(STACK_ENTRY_NOSYMBOL_FMT);
 	else
-		tprintf(STACK_ENTRY_BUG_FMT, __FUNCTION__);
+		tprintf(STACK_ENTRY_BUG_FMT, __func__);
 
 	line_ended();
 }
@@ -449,24 +452,24 @@
 		     unsigned long true_offset,
 		     const char *error)
 {
-       char *output_line = NULL;
-       int n;
+	char *output_line = NULL;
+	int n;
 
-       if (symbol_name)
-               n = asprintf(&output_line, STACK_ENTRY_SYMBOL_FMT);
-       else if (binary_filename)
-               n = asprintf(&output_line, STACK_ENTRY_NOSYMBOL_FMT);
-       else if (error)
-               n = true_offset
-                       ? asprintf(&output_line, STACK_ENTRY_ERROR_WITH_OFFSET_FMT)
-                       : asprintf(&output_line, STACK_ENTRY_ERROR_FMT);
-       else
-               n = asprintf(&output_line, STACK_ENTRY_BUG_FMT, __FUNCTION__);
+	if (symbol_name)
+		n = asprintf(&output_line, STACK_ENTRY_SYMBOL_FMT);
+	else if (binary_filename)
+		n = asprintf(&output_line, STACK_ENTRY_NOSYMBOL_FMT);
+	else if (error)
+		n = true_offset
+			? asprintf(&output_line, STACK_ENTRY_ERROR_WITH_OFFSET_FMT)
+			: asprintf(&output_line, STACK_ENTRY_ERROR_FMT);
+	else
+		n = asprintf(&output_line, STACK_ENTRY_BUG_FMT, __func__);
 
-       if (n < 0)
-               error_msg_and_die("error in asprintf");
+	if (n < 0)
+		error_msg_and_die("error in asprintf");
 
-       return output_line;
+	return output_line;
 }
 
 /*
@@ -548,7 +551,7 @@
  * printing stack
  */
 void
-unwind_print_stacktrace(struct tcb* tcp)
+unwind_print_stacktrace(struct tcb *tcp)
 {
 #if SUPPORTED_PERSONALITIES > 1
 	if (tcp->currpers != DEFAULT_PERSONALITY) {
@@ -556,14 +559,13 @@
 		return;
 	}
 #endif
-       if (tcp->queue->head) {
-	       DPRINTF("tcp=%p, queue=%p", "queueprint", tcp, tcp->queue->head);
-	       queue_print(tcp->queue);
-       }
-       else if (rebuild_cache_if_invalid(tcp, __FUNCTION__)) {
-               DPRINTF("tcp=%p, queue=%p", "stackprint", tcp, tcp->queue->head);
-               stacktrace_walk(tcp, print_call_cb, print_error_cb, NULL);
-       }
+	if (tcp->queue->head) {
+		DPRINTF("tcp=%p, queue=%p", "queueprint", tcp, tcp->queue->head);
+		queue_print(tcp->queue);
+	} else if (rebuild_cache_if_invalid(tcp, __func__)) {
+		DPRINTF("tcp=%p, queue=%p", "stackprint", tcp, tcp->queue->head);
+		stacktrace_walk(tcp, print_call_cb, print_error_cb, NULL);
+	}
 }
 
 /*
@@ -581,7 +583,7 @@
 	if (tcp->queue->head)
 		error_msg_and_die("bug: unprinted entries in queue");
 
-	if (rebuild_cache_if_invalid(tcp, __FUNCTION__)) {
+	if (rebuild_cache_if_invalid(tcp, __func__)) {
 		stacktrace_walk(tcp, queue_put_call, queue_put_error,
 				tcp->queue);
 		DPRINTF("tcp=%p, queue=%p", "captured", tcp, tcp->queue->head);
diff --git a/util.c b/util.c
index 9b1c411..2ccfe4f 100644
--- a/util.c
+++ b/util.c
@@ -140,33 +140,6 @@
 	tv->tv_usec %= 1000000;
 }
 
-const char *
-xlookup(const struct xlat *xlat, const uint64_t val)
-{
-	for (; xlat->str != NULL; xlat++)
-		if (xlat->val == val)
-			return xlat->str;
-	return NULL;
-}
-
-static int
-xlat_bsearch_compare(const void *a, const void *b)
-{
-	const uint64_t val1 = *(const uint64_t *) a;
-	const uint64_t val2 = ((const struct xlat *) b)->val;
-	return (val1 > val2) ? 1 : (val1 < val2) ? -1 : 0;
-}
-
-const char *
-xlat_search(const struct xlat *xlat, const size_t nmemb, const uint64_t val)
-{
-	const struct xlat *e =
-		bsearch((const void*) &val,
-			xlat, nmemb, sizeof(*xlat), xlat_bsearch_compare);
-
-	return e ? e->str : NULL;
-}
-
 #if !defined HAVE_STPCPY
 char *
 stpcpy(char *dst, const char *src)
@@ -191,7 +164,7 @@
 next_set_bit(const void *bit_array, unsigned cur_bit, unsigned size_bits)
 {
 	const unsigned endian = 1;
-	int little_endian = * (char *) (void *) &endian;
+	int little_endian = *(char *) (void *) &endian;
 
 	const uint8_t *array = bit_array;
 	unsigned pos = cur_bit / 8;
@@ -225,71 +198,6 @@
 	}
 }
 
-/**
- * Print entry in struct xlat table, if there.
- *
- * @param val  Value to search a literal representation for.
- * @param dflt String (abbreviated in comment syntax) which should be emitted
- *             if no appropriate xlat value has been found.
- * @param xlat (And the following arguments) Pointers to arrays of xlat values.
- *             The last argument should be NULL.
- * @return     1 if appropriate xlat value has been found, 0 otherwise.
- */
-int
-printxvals(const uint64_t val, const char *dflt, const struct xlat *xlat, ...)
-{
-	va_list args;
-
-	va_start(args, xlat);
-	for (; xlat; xlat = va_arg(args, const struct xlat *)) {
-		const char *str = xlookup(xlat, val);
-
-		if (str) {
-			tprints(str);
-			va_end(args);
-			return 1;
-		}
-	}
-	/* No hits -- print raw # instead. */
-	tprintf("%#" PRIx64, val);
-	tprints_comment(dflt);
-
-	va_end(args);
-
-	return 0;
-}
-
-/**
- * Print entry in sorted struct xlat table, if it is there.
- *
- * @param xlat      Pointer to an array of xlat values (not terminated with
- *                  XLAT_END).
- * @param xlat_size Number of xlat elements present in array (usually ARRAY_SIZE
- *                  if array is declared in the unit's scope and not
- *                  terminated with XLAT_END).
- * @param val       Value to search literal representation for.
- * @param dflt      String (abbreviated in comment syntax) which should be
- *                  emitted if no appropriate xlat value has been found.
- * @return          1 if appropriate xlat value has been found, 0
- *                  otherwise.
- */
-int
-printxval_searchn(const struct xlat *xlat, size_t xlat_size, uint64_t val,
-	const char *dflt)
-{
-	const char *s = xlat_search(xlat, xlat_size, val);
-
-	if (s) {
-		tprints(s);
-		return 1;
-	}
-
-	tprintf("%#" PRIx64, val);
-	tprints_comment(dflt);
-
-	return 0;
-}
-
 /*
  * Fetch 64bit argument at position arg_no and
  * return the index of the next argument.
@@ -313,10 +221,10 @@
 		arg_no++;
 	}
 #else /* SIZEOF_KERNEL_LONG_T == 4 */
-# if defined __ARM_EABI__ || \
-     defined LINUX_MIPSO32 || \
-     defined POWERPC || \
-     defined XTENSA
+# if defined __ARM_EABI__	\
+  || defined LINUX_MIPSO32	\
+  || defined POWERPC		\
+  || defined XTENSA
 	/* Align arg_no to the next even number. */
 	arg_no = (arg_no + 1) & 0xe;
 # elif defined SH
@@ -351,102 +259,6 @@
 	return arg_no;
 }
 
-/*
- * Interpret `xlat' as an array of flags
- * print the entries whose bits are on in `flags'
- */
-void
-addflags(const struct xlat *xlat, uint64_t flags)
-{
-	for (; xlat->str; xlat++) {
-		if (xlat->val && (flags & xlat->val) == xlat->val) {
-			tprintf("|%s", xlat->str);
-			flags &= ~xlat->val;
-		}
-	}
-	if (flags) {
-		tprintf("|%#" PRIx64, flags);
-	}
-}
-
-/*
- * Interpret `xlat' as an array of flags.
- * Print to static string the entries whose bits are on in `flags'
- * Return static string.
- */
-const char *
-sprintflags(const char *prefix, const struct xlat *xlat, uint64_t flags)
-{
-	static char outstr[1024];
-	char *outptr;
-	int found = 0;
-
-	outptr = stpcpy(outstr, prefix);
-
-	if (flags == 0 && xlat->val == 0 && xlat->str) {
-		strcpy(outptr, xlat->str);
-		return outstr;
-	}
-
-	for (; xlat->str; xlat++) {
-		if (xlat->val && (flags & xlat->val) == xlat->val) {
-			if (found)
-				*outptr++ = '|';
-			outptr = stpcpy(outptr, xlat->str);
-			found = 1;
-			flags &= ~xlat->val;
-			if (!flags)
-				break;
-		}
-	}
-	if (flags) {
-		if (found)
-			*outptr++ = '|';
-		outptr += sprintf(outptr, "%#" PRIx64, flags);
-	}
-
-	return outstr;
-}
-
-int
-printflags64(const struct xlat *xlat, uint64_t flags, const char *dflt)
-{
-	int n;
-	const char *sep;
-
-	if (flags == 0 && xlat->val == 0 && xlat->str) {
-		tprints(xlat->str);
-		return 1;
-	}
-
-	sep = "";
-	for (n = 0; xlat->str; xlat++) {
-		if (xlat->val && (flags & xlat->val) == xlat->val) {
-			tprintf("%s%s", sep, xlat->str);
-			flags &= ~xlat->val;
-			sep = "|";
-			n++;
-		}
-	}
-
-	if (n) {
-		if (flags) {
-			tprintf("%s%#" PRIx64, sep, flags);
-			n++;
-		}
-	} else {
-		if (flags) {
-			tprintf("%#" PRIx64, flags);
-			tprints_comment(dflt);
-		} else {
-			if (dflt)
-				tprints("0");
-		}
-	}
-
-	return n;
-}
-
 void
 printaddr(const kernel_ulong_t addr)
 {
@@ -630,30 +442,41 @@
 #endif
 }
 
+unsigned long
+getfdinode(struct tcb *tcp, int fd)
+{
+	char path[PATH_MAX + 1];
+
+	if (getfdpath(tcp, fd, path, sizeof(path)) >= 0) {
+		const char *str = STR_STRIP_PREFIX(path, "socket:[");
+
+		if (str != path) {
+			const size_t str_len = strlen(str);
+			if (str_len && str[str_len - 1] == ']')
+				return strtoul(str, NULL, 10);
+		}
+	}
+
+	return 0;
+}
+
 void
 printfd(struct tcb *tcp, int fd)
 {
 	char path[PATH_MAX + 1];
 	if (show_fd_path && getfdpath(tcp, fd, path, sizeof(path)) >= 0) {
-		static const char socket_prefix[] = "socket:[";
-		const size_t socket_prefix_len = sizeof(socket_prefix) - 1;
-		const size_t path_len = strlen(path);
+		const char *str;
+		size_t len;
+		unsigned long inode;
 
 		tprintf("%d<", fd);
-		if (show_fd_path > 1 &&
-		    strncmp(path, socket_prefix, socket_prefix_len) == 0 &&
-		    path[path_len - 1] == ']') {
-			unsigned long inode =
-				strtoul(path + socket_prefix_len, NULL, 10);
-
-			if (!print_sockaddr_by_inode_cached(inode)) {
-				const enum sock_proto proto =
-					getfdproto(tcp, fd);
-				if (!print_sockaddr_by_inode(inode, proto))
-					tprints(path);
-			}
-		} else {
-			print_quoted_string(path, path_len,
+		if (show_fd_path <= 1
+		    || (str = STR_STRIP_PREFIX(path, "socket:[")) == path
+		    || !(len = strlen(str))
+		    || str[len - 1] != ']'
+		    || !(inode = strtoul(str, NULL, 10))
+		    || !print_sockaddr_by_inode(tcp, fd, inode)) {
+			print_quoted_string(path, strlen(path),
 					    QUOTE_OMIT_LEADING_TRAILING_QUOTES);
 		}
 		tprints(">");
@@ -888,8 +711,8 @@
 	}
 
 	/* Cap path length to the path buffer size */
-	if (n > sizeof path - 1)
-		n = sizeof path - 1;
+	if (n > sizeof(path) - 1)
+		n = sizeof(path) - 1;
 
 	/* Fetch one byte more to find out whether path length > n. */
 	nul_seen = umovestr(tcp, addr, n + 1, path);
@@ -922,8 +745,9 @@
 printstr_ex(struct tcb *const tcp, const kernel_ulong_t addr,
 	    const kernel_ulong_t len, const unsigned int user_style)
 {
-	static char *str = NULL;
+	static char *str;
 	static char *outstr;
+
 	unsigned int size;
 	unsigned int style = user_style;
 	int rc;
@@ -935,10 +759,13 @@
 	}
 	/* Allocate static buffers if they are not allocated yet. */
 	if (!str) {
-		unsigned int outstr_size = 4 * max_strlen + /*for quotes and NUL:*/ 3;
+		const unsigned int outstr_size =
+			4 * max_strlen + /* for quotes and NUL */ 3;
+		/*
+		 * We can assume that outstr_size / 4 == max_strlen
+		 * since we have a guarantee that max_strlen <= -1U / 4.
+		 */
 
-		if (outstr_size / 4 != max_strlen)
-			die_out_of_memory();
 		str = xmalloc(max_strlen + 1);
 		outstr = xmalloc(outstr_size);
 	}
@@ -1075,8 +902,7 @@
 			if (i < len) {
 				*dst++ = "0123456789abcdef"[*src >> 4];
 				*dst++ = "0123456789abcdef"[*src & 0xf];
-			}
-			else {
+			} else {
 				*dst++ = ' ';
 				*dst++ = ' ';
 			}
@@ -1101,7 +927,8 @@
 	}
 }
 
-static bool process_vm_readv_not_supported = 0;
+static bool process_vm_readv_not_supported;
+
 #ifndef HAVE_PROCESS_VM_READV
 /*
  * Need to do this since process_vm_readv() is not yet available in libc.
@@ -1162,7 +989,7 @@
 
 #if ANY_WORDSIZE_LESS_THAN_KERNEL_LONG
 	if (current_wordsize < sizeof(addr)
-	    && (addr & (~ (kernel_ulong_t) -1U))) {
+	    && (addr & (~(kernel_ulong_t) -1U))) {
 		return -1;
 	}
 #endif
@@ -1310,7 +1137,7 @@
 
 #if ANY_WORDSIZE_LESS_THAN_KERNEL_LONG
 	if (current_wordsize < sizeof(addr)
-	    && (addr & (~ (kernel_ulong_t) -1U))) {
+	    && (addr & (~(kernel_ulong_t) -1U))) {
 		return -1;
 	}
 #endif
diff --git a/v4l2.c b/v4l2.c
index ad29722..12750a6 100644
--- a/v4l2.c
+++ b/v4l2.c
@@ -207,7 +207,7 @@
 #include "xlat/v4l2_sliced_flags.h"
 
 static bool
-print_v4l2_clip(struct tcb *tcp, void *elem_buf, size_t elem_size, void* data)
+print_v4l2_clip(struct tcb *tcp, void *elem_buf, size_t elem_size, void *data)
 {
 	const struct_v4l2_clip *p = elem_buf;
 	tprintf(FMT_RECT, ARGS_RECT(p->c));
@@ -280,7 +280,7 @@
 				  umoven_or_printaddr, print_v4l2_clip, 0);
 		tprintf(", clipcount=%u, bitmap=", f->fmt.win.clipcount);
 		printaddr(ptr_to_kulong(f->fmt.win.bitmap));
-#if HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA
+#ifdef HAVE_STRUCT_V4L2_WINDOW_GLOBAL_ALPHA
 		tprintf(", global_alpha=%#x", f->fmt.win.global_alpha);
 #endif
 		tprints("}");
@@ -341,7 +341,7 @@
 		tprints(prefix);
 		tprints("fmt.sdr={pixelformat=");
 		print_pixelformat(f->fmt.sdr.pixelformat);
-#if HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE
+#ifdef HAVE_STRUCT_V4L2_SDR_FORMAT_BUFFERSIZE
 		tprintf(", buffersize=%u",
 			f->fmt.sdr.buffersize);
 #endif
diff --git a/wait.c b/wait.c
index fc51935..0f1aa00 100644
--- a/wait.c
+++ b/wait.c
@@ -77,14 +77,12 @@
 			signame(sig & 0x7f),
 			sig & 0x80 ? " | 0x80" : "");
 		status &= ~W_STOPCODE(sig);
-	}
-	else if (WIFSIGNALED(status)) {
+	} else if (WIFSIGNALED(status)) {
 		tprintf("[{WIFSIGNALED(s) && WTERMSIG(s) == %s%s}",
 			signame(WTERMSIG(status)),
 			WCOREDUMP(status) ? " && WCOREDUMP(s)" : "");
 		status &= ~(W_EXITCODE(0, WTERMSIG(status)) | WCOREFLAG);
-	}
-	else if (WIFEXITED(status)) {
+	} else if (WIFEXITED(status)) {
 		tprintf("[{WIFEXITED(s) && WEXITSTATUS(s) == %d}",
 			WEXITSTATUS(status));
 		exited = 1;
diff --git a/xlat.c b/xlat.c
new file mode 100644
index 0000000..ad49720
--- /dev/null
+++ b/xlat.c
@@ -0,0 +1,220 @@
+/*
+ * 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) 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
+ * 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 "defs.h"
+#include <stdarg.h>
+
+const char *
+xlookup(const struct xlat *xlat, const uint64_t val)
+{
+	for (; xlat->str != NULL; xlat++)
+		if (xlat->val == val)
+			return xlat->str;
+	return NULL;
+}
+
+static int
+xlat_bsearch_compare(const void *a, const void *b)
+{
+	const uint64_t val1 = *(const uint64_t *) a;
+	const uint64_t val2 = ((const struct xlat *) b)->val;
+	return (val1 > val2) ? 1 : (val1 < val2) ? -1 : 0;
+}
+
+const char *
+xlat_search(const struct xlat *xlat, const size_t nmemb, const uint64_t val)
+{
+	const struct xlat *e =
+		bsearch((const void *) &val,
+			xlat, nmemb, sizeof(*xlat), xlat_bsearch_compare);
+
+	return e ? e->str : NULL;
+}
+
+/**
+ * Print entry in struct xlat table, if there.
+ *
+ * @param val  Value to search a literal representation for.
+ * @param dflt String (abbreviated in comment syntax) which should be emitted
+ *             if no appropriate xlat value has been found.
+ * @param xlat (And the following arguments) Pointers to arrays of xlat values.
+ *             The last argument should be NULL.
+ * @return     1 if appropriate xlat value has been found, 0 otherwise.
+ */
+int
+printxvals(const uint64_t val, const char *dflt, const struct xlat *xlat, ...)
+{
+	va_list args;
+
+	va_start(args, xlat);
+	for (; xlat; xlat = va_arg(args, const struct xlat *)) {
+		const char *str = xlookup(xlat, val);
+
+		if (str) {
+			tprints(str);
+			va_end(args);
+			return 1;
+		}
+	}
+	/* No hits -- print raw # instead. */
+	tprintf("%#" PRIx64, val);
+	tprints_comment(dflt);
+
+	va_end(args);
+
+	return 0;
+}
+
+/**
+ * Print entry in sorted struct xlat table, if it is there.
+ *
+ * @param xlat      Pointer to an array of xlat values (not terminated with
+ *                  XLAT_END).
+ * @param xlat_size Number of xlat elements present in array (usually ARRAY_SIZE
+ *                  if array is declared in the unit's scope and not
+ *                  terminated with XLAT_END).
+ * @param val       Value to search literal representation for.
+ * @param dflt      String (abbreviated in comment syntax) which should be
+ *                  emitted if no appropriate xlat value has been found.
+ * @return          1 if appropriate xlat value has been found, 0
+ *                  otherwise.
+ */
+int
+printxval_searchn(const struct xlat *xlat, size_t xlat_size, uint64_t val,
+	const char *dflt)
+{
+	const char *s = xlat_search(xlat, xlat_size, val);
+
+	if (s) {
+		tprints(s);
+		return 1;
+	}
+
+	tprintf("%#" PRIx64, val);
+	tprints_comment(dflt);
+
+	return 0;
+}
+
+/*
+ * Interpret `xlat' as an array of flags
+ * print the entries whose bits are on in `flags'
+ */
+void
+addflags(const struct xlat *xlat, uint64_t flags)
+{
+	for (; xlat->str; xlat++) {
+		if (xlat->val && (flags & xlat->val) == xlat->val) {
+			tprintf("|%s", xlat->str);
+			flags &= ~xlat->val;
+		}
+	}
+	if (flags) {
+		tprintf("|%#" PRIx64, flags);
+	}
+}
+
+/*
+ * Interpret `xlat' as an array of flags.
+ * Print to static string the entries whose bits are on in `flags'
+ * Return static string.
+ */
+const char *
+sprintflags(const char *prefix, const struct xlat *xlat, uint64_t flags)
+{
+	static char outstr[1024];
+	char *outptr;
+	int found = 0;
+
+	outptr = stpcpy(outstr, prefix);
+
+	if (flags == 0 && xlat->val == 0 && xlat->str) {
+		strcpy(outptr, xlat->str);
+		return outstr;
+	}
+
+	for (; xlat->str; xlat++) {
+		if (xlat->val && (flags & xlat->val) == xlat->val) {
+			if (found)
+				*outptr++ = '|';
+			outptr = stpcpy(outptr, xlat->str);
+			found = 1;
+			flags &= ~xlat->val;
+			if (!flags)
+				break;
+		}
+	}
+	if (flags) {
+		if (found)
+			*outptr++ = '|';
+		outptr += sprintf(outptr, "%#" PRIx64, flags);
+	}
+
+	return outstr;
+}
+
+int
+printflags_ex(uint64_t flags, const char *dflt, const struct xlat *xlat, ...)
+{
+	unsigned int n = 0;
+	va_list args;
+
+	va_start(args, xlat);
+	for (; xlat; xlat = va_arg(args, const struct xlat *)) {
+		for (; (flags || !n) && xlat->str; ++xlat) {
+			if ((flags == xlat->val) ||
+			    (xlat->val && (flags & xlat->val) == xlat->val)) {
+				tprintf("%s%s", (n++ ? "|" : ""), xlat->str);
+				flags &= ~xlat->val;
+			}
+			if (!flags)
+				break;
+		}
+	}
+	va_end(args);
+
+	if (n) {
+		if (flags) {
+			tprintf("|%#" PRIx64, flags);
+			n++;
+		}
+	} else {
+		if (flags) {
+			tprintf("%#" PRIx64, flags);
+			tprints_comment(dflt);
+		} else {
+			if (dflt)
+				tprints("0");
+		}
+	}
+
+	return n;
+}
diff --git a/xlat/Makemodule.am b/xlat/Makemodule.am
new file mode 100644
index 0000000..f0f08f4
--- /dev/null
+++ b/xlat/Makemodule.am
@@ -0,0 +1,704 @@
+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/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 xlat/bpf_src.in xlat/bsg_flags.in xlat/bsg_protocol.in xlat/bsg_subprotocol.in xlat/bt_protocols.in xlat/btrfs_balance_args.in xlat/btrfs_balance_ctl_cmds.in xlat/btrfs_balance_flags.in xlat/btrfs_balance_state.in xlat/btrfs_compress_types.in xlat/btrfs_defrag_flags.in xlat/btrfs_dev_replace_cmds.in xlat/btrfs_dev_replace_results.in xlat/btrfs_dev_replace_state.in xlat/btrfs_dev_stats_flags.in xlat/btrfs_dev_stats_values.in xlat/btrfs_features_compat.in xlat/btrfs_features_compat_ro.in xlat/btrfs_features_incompat.in xlat/btrfs_key_types.in xlat/btrfs_qgroup_ctl_cmds.in xlat/btrfs_qgroup_inherit_flags.in xlat/btrfs_qgroup_limit_flags.in xlat/btrfs_qgroup_status_flags.in xlat/btrfs_scrub_flags.in xlat/btrfs_send_flags.in xlat/btrfs_snap_flags_v2.in xlat/btrfs_space_info_flags.in xlat/btrfs_tree_objectids.in xlat/cacheflush_scope.in xlat/cap.in xlat/cap_mask0.in xlat/cap_mask1.in xlat/cap_version.in xlat/clockflags.in xlat/clocknames.in xlat/clone_flags.in xlat/cpuclocknames.in xlat/delete_module_flags.in xlat/dirent_types.in xlat/dm_flags.in xlat/efd_flags.in xlat/epollctls.in xlat/epollevents.in xlat/epollflags.in xlat/ethernet_protocols.in xlat/evdev_abs.in xlat/evdev_autorepeat.in xlat/evdev_ev.in xlat/evdev_ff_status.in xlat/evdev_ff_types.in xlat/evdev_keycode.in xlat/evdev_leds.in xlat/evdev_misc.in xlat/evdev_mtslots.in xlat/evdev_prop.in xlat/evdev_relative_axes.in xlat/evdev_snd.in xlat/evdev_switch.in xlat/evdev_sync.in xlat/f_owner_types.in xlat/f_seals.in xlat/falloc_flags.in xlat/fan_classes.in xlat/fan_event_flags.in xlat/fan_init_flags.in xlat/fan_mark_flags.in xlat/fcntl64cmds.in xlat/fcntlcmds.in xlat/fdflags.in xlat/fiemap_extent_flags.in xlat/fiemap_flags.in xlat/flockcmds.in xlat/fsmagic.in xlat/futexops.in xlat/futexwakecmps.in xlat/futexwakeops.in xlat/getrandom_flags.in xlat/getsockipoptions.in xlat/getsockipv6options.in xlat/hci_channels.in xlat/hw_breakpoint_len.in xlat/hw_breakpoint_type.in xlat/icmpfilterflags.in xlat/if_dqblk_valid.in xlat/if_dqinfo_flags.in xlat/if_dqinfo_valid.in xlat/iffflags.in xlat/inet_diag_attrs.in xlat/inet_diag_extended_flags.in xlat/inet_diag_req_attrs.in xlat/inet_protocols.in xlat/inotify_flags.in xlat/inotify_init_flags.in xlat/ioctl_dirs.in xlat/ioprio_class.in xlat/ioprio_who.in xlat/ip_cmsg_types.in xlat/ipc_msg_flags.in xlat/ipccalls.in xlat/itimer_which.in xlat/kcmp_types.in xlat/kexec_arch_values.in xlat/kexec_file_load_flags.in xlat/kexec_load_flags.in xlat/key_perms.in xlat/key_reqkeys.in xlat/key_spec.in xlat/keyctl_commands.in xlat/lockfcmds.in xlat/loop_cmds.in xlat/loop_crypt_type_options.in xlat/loop_flags_options.in xlat/madvise_cmds.in xlat/mbindflags.in xlat/mctl_sync.in xlat/membarrier_cmds.in xlat/memfd_create_flags.in xlat/mempolicyflags.in xlat/mlock_flags.in xlat/mlockall_flags.in xlat/mmap_flags.in xlat/mmap_prot.in xlat/modem_flags.in xlat/modetypes.in xlat/module_init_flags.in xlat/mount_flags.in xlat/move_pages_flags.in xlat/mq_attr_flags.in xlat/mremap_flags.in xlat/msg_flags.in xlat/msgctl_flags.in xlat/mtd_file_mode_options.in xlat/mtd_flags_options.in xlat/mtd_mode_options.in xlat/mtd_nandecc_options.in xlat/mtd_otp_options.in xlat/mtd_type_options.in xlat/name_to_handle_at_flags.in xlat/netlink_diag_attrs.in xlat/netlink_diag_show.in xlat/netlink_flags.in xlat/netlink_get_flags.in xlat/netlink_new_flags.in xlat/netlink_protocols.in xlat/netlink_socket_flags.in xlat/netlink_states.in xlat/netlink_types.in xlat/nl_audit_types.in xlat/nl_netfilter_msg_types.in xlat/nl_netfilter_subsys_ids.in xlat/nl_route_types.in xlat/nl_selinux_types.in xlat/nl_sock_diag_types.in xlat/nl_xfrm_types.in xlat/notifyflags.in xlat/nt_descriptor_types.in xlat/open_access_modes.in xlat/open_mode_flags.in xlat/packet_diag_attrs.in xlat/packet_diag_show.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 xlat/personality_flags.in xlat/personality_types.in xlat/pkey_access.in xlat/policies.in xlat/pollflags.in xlat/pr_cap_ambient.in xlat/pr_dumpable.in xlat/pr_fp_mode.in xlat/pr_mce_kill.in xlat/pr_mce_kill_policy.in xlat/pr_set_mm.in xlat/pr_tsc.in xlat/pr_unalign_flags.in xlat/prctl_options.in xlat/priorities.in xlat/ptp_flags_options.in xlat/ptrace_cmds.in xlat/ptrace_events.in xlat/ptrace_peeksiginfo_flags.in xlat/ptrace_setoptions_flags.in xlat/quota_formats.in xlat/quotacmds.in xlat/quotatypes.in xlat/rename_flags.in xlat/resource_flags.in xlat/resources.in xlat/rwf_flags.in xlat/sa_handler_values.in xlat/sched_flags.in xlat/schedulers.in xlat/scmvals.in xlat/scsi_sg_commands.in xlat/secbits.in xlat/seccomp_filter_flags.in xlat/seccomp_mode.in xlat/seccomp_ops.in xlat/seccomp_ret_action.in xlat/semctl_flags.in xlat/semop_flags.in xlat/setns_types.in xlat/setsockipoptions.in xlat/setsockipv6options.in xlat/sfd_flags.in xlat/sg_io_dxfer_direction.in xlat/sg_io_flags.in xlat/sg_io_info.in xlat/sg_scsi_reset.in xlat/shm_flags.in xlat/shm_resource_flags.in xlat/shmctl_flags.in xlat/shutdown_modes.in xlat/sigact_flags.in xlat/sigaltstack_flags.in xlat/sigbus_codes.in xlat/sigchld_codes.in xlat/sigemt_codes.in xlat/sigev_value.in xlat/sigfpe_codes.in xlat/sigill_codes.in xlat/siginfo_codes.in xlat/sigpoll_codes.in xlat/sigprocmaskcmds.in xlat/sigprof_codes.in xlat/sigsegv_codes.in xlat/sigsys_codes.in xlat/sigtrap_codes.in xlat/smc_diag_attrs.in xlat/smc_diag_extended_flags.in xlat/smc_states.in xlat/sock_type_flags.in xlat/socketcalls.in xlat/socketlayers.in xlat/sockipoptions.in xlat/sockipv6options.in xlat/sockipxoptions.in xlat/sockoptions.in xlat/sockpacketoptions.in 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/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 xlat/sysctl_root.in xlat/sysctl_vm.in xlat/syslog_action_type.in xlat/sysmips_operations.in xlat/tcflsh_options.in xlat/tcp_state_flags.in xlat/tcp_states.in xlat/tcxonc_options.in xlat/timerfdflags.in xlat/ubi_volume_props.in xlat/ubi_volume_types.in xlat/uffd_api_flags.in xlat/uffd_copy_flags.in xlat/uffd_flags.in xlat/uffd_register_ioctl_flags.in xlat/uffd_register_mode_flags.in xlat/uffd_zeropage_flags.in xlat/umount_flags.in xlat/unix_diag_attrs.in xlat/unix_diag_show.in xlat/unshare_flags.in xlat/usagewho.in xlat/v4l2_buf_flags.in xlat/v4l2_buf_types.in xlat/v4l2_capture_modes.in xlat/v4l2_colorspaces.in xlat/v4l2_control_classes.in xlat/v4l2_control_flags.in xlat/v4l2_control_ids.in xlat/v4l2_control_types.in xlat/v4l2_device_capabilities_flags.in xlat/v4l2_fields.in 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_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/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/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 xlat/btrfs_dev_replace_cmds.h xlat/btrfs_dev_replace_results.h xlat/btrfs_dev_replace_state.h xlat/btrfs_dev_stats_flags.h xlat/btrfs_dev_stats_values.h xlat/btrfs_features_compat.h xlat/btrfs_features_compat_ro.h xlat/btrfs_features_incompat.h xlat/btrfs_key_types.h xlat/btrfs_qgroup_ctl_cmds.h xlat/btrfs_qgroup_inherit_flags.h xlat/btrfs_qgroup_limit_flags.h xlat/btrfs_qgroup_status_flags.h xlat/btrfs_scrub_flags.h xlat/btrfs_send_flags.h xlat/btrfs_snap_flags_v2.h xlat/btrfs_space_info_flags.h xlat/btrfs_tree_objectids.h xlat/cacheflush_scope.h xlat/cap.h xlat/cap_mask0.h xlat/cap_mask1.h xlat/cap_version.h xlat/clockflags.h xlat/clocknames.h xlat/clone_flags.h xlat/cpuclocknames.h xlat/delete_module_flags.h xlat/dirent_types.h xlat/dm_flags.h xlat/efd_flags.h xlat/epollctls.h xlat/epollevents.h xlat/epollflags.h xlat/ethernet_protocols.h xlat/evdev_abs.h xlat/evdev_autorepeat.h xlat/evdev_ev.h xlat/evdev_ff_status.h xlat/evdev_ff_types.h xlat/evdev_keycode.h xlat/evdev_leds.h xlat/evdev_misc.h xlat/evdev_mtslots.h xlat/evdev_prop.h xlat/evdev_relative_axes.h xlat/evdev_snd.h xlat/evdev_switch.h xlat/evdev_sync.h xlat/f_owner_types.h xlat/f_seals.h xlat/falloc_flags.h xlat/fan_classes.h xlat/fan_event_flags.h xlat/fan_init_flags.h xlat/fan_mark_flags.h xlat/fcntl64cmds.h xlat/fcntlcmds.h xlat/fdflags.h xlat/fiemap_extent_flags.h xlat/fiemap_flags.h xlat/flockcmds.h xlat/fsmagic.h xlat/futexops.h xlat/futexwakecmps.h xlat/futexwakeops.h xlat/getrandom_flags.h xlat/getsockipoptions.h xlat/getsockipv6options.h xlat/hci_channels.h xlat/hw_breakpoint_len.h xlat/hw_breakpoint_type.h xlat/icmpfilterflags.h xlat/if_dqblk_valid.h xlat/if_dqinfo_flags.h xlat/if_dqinfo_valid.h xlat/iffflags.h xlat/inet_diag_attrs.h xlat/inet_diag_extended_flags.h xlat/inet_diag_req_attrs.h xlat/inet_protocols.h xlat/inotify_flags.h xlat/inotify_init_flags.h xlat/ioctl_dirs.h xlat/ioprio_class.h xlat/ioprio_who.h xlat/ip_cmsg_types.h xlat/ipc_msg_flags.h xlat/ipccalls.h xlat/itimer_which.h xlat/kcmp_types.h xlat/kexec_arch_values.h xlat/kexec_file_load_flags.h xlat/kexec_load_flags.h xlat/key_perms.h xlat/key_reqkeys.h xlat/key_spec.h xlat/keyctl_commands.h xlat/lockfcmds.h xlat/loop_cmds.h xlat/loop_crypt_type_options.h xlat/loop_flags_options.h xlat/madvise_cmds.h xlat/mbindflags.h xlat/mctl_sync.h xlat/membarrier_cmds.h xlat/memfd_create_flags.h xlat/mempolicyflags.h xlat/mlock_flags.h xlat/mlockall_flags.h xlat/mmap_flags.h xlat/mmap_prot.h xlat/modem_flags.h xlat/modetypes.h xlat/module_init_flags.h xlat/mount_flags.h xlat/move_pages_flags.h xlat/mq_attr_flags.h xlat/mremap_flags.h xlat/msg_flags.h xlat/msgctl_flags.h xlat/mtd_file_mode_options.h xlat/mtd_flags_options.h xlat/mtd_mode_options.h xlat/mtd_nandecc_options.h xlat/mtd_otp_options.h xlat/mtd_type_options.h xlat/name_to_handle_at_flags.h xlat/netlink_diag_attrs.h xlat/netlink_diag_show.h xlat/netlink_flags.h xlat/netlink_get_flags.h xlat/netlink_new_flags.h xlat/netlink_protocols.h xlat/netlink_socket_flags.h xlat/netlink_states.h xlat/netlink_types.h xlat/nl_audit_types.h xlat/nl_netfilter_msg_types.h xlat/nl_netfilter_subsys_ids.h xlat/nl_route_types.h xlat/nl_selinux_types.h xlat/nl_sock_diag_types.h xlat/nl_xfrm_types.h xlat/notifyflags.h xlat/nt_descriptor_types.h xlat/open_access_modes.h xlat/open_mode_flags.h xlat/packet_diag_attrs.h xlat/packet_diag_show.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 xlat/pr_mce_kill.h xlat/pr_mce_kill_policy.h xlat/pr_set_mm.h xlat/pr_tsc.h xlat/pr_unalign_flags.h xlat/prctl_options.h xlat/priorities.h xlat/ptp_flags_options.h xlat/ptrace_cmds.h xlat/ptrace_events.h xlat/ptrace_peeksiginfo_flags.h xlat/ptrace_setoptions_flags.h xlat/quota_formats.h xlat/quotacmds.h xlat/quotatypes.h xlat/rename_flags.h xlat/resource_flags.h xlat/resources.h xlat/rwf_flags.h xlat/sa_handler_values.h xlat/sched_flags.h xlat/schedulers.h xlat/scmvals.h xlat/scsi_sg_commands.h xlat/secbits.h xlat/seccomp_filter_flags.h xlat/seccomp_mode.h xlat/seccomp_ops.h xlat/seccomp_ret_action.h xlat/semctl_flags.h xlat/semop_flags.h xlat/setns_types.h xlat/setsockipoptions.h xlat/setsockipv6options.h xlat/sfd_flags.h xlat/sg_io_dxfer_direction.h xlat/sg_io_flags.h xlat/sg_io_info.h xlat/sg_scsi_reset.h xlat/shm_flags.h xlat/shm_resource_flags.h xlat/shmctl_flags.h xlat/shutdown_modes.h xlat/sigact_flags.h xlat/sigaltstack_flags.h xlat/sigbus_codes.h xlat/sigchld_codes.h xlat/sigemt_codes.h xlat/sigev_value.h xlat/sigfpe_codes.h xlat/sigill_codes.h xlat/siginfo_codes.h xlat/sigpoll_codes.h xlat/sigprocmaskcmds.h xlat/sigprof_codes.h xlat/sigsegv_codes.h xlat/sigsys_codes.h xlat/sigtrap_codes.h xlat/smc_diag_attrs.h xlat/smc_diag_extended_flags.h xlat/smc_states.h xlat/sock_type_flags.h xlat/socketcalls.h xlat/socketlayers.h xlat/sockipoptions.h xlat/sockipv6options.h xlat/sockipxoptions.h 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/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 xlat/sysctl_net_ipv4_route.h xlat/sysctl_net_ipv6.h xlat/sysctl_net_ipv6_route.h xlat/sysctl_net_unix.h xlat/sysctl_root.h xlat/sysctl_vm.h xlat/syslog_action_type.h xlat/sysmips_operations.h xlat/tcflsh_options.h xlat/tcp_state_flags.h xlat/tcp_states.h xlat/tcxonc_options.h xlat/timerfdflags.h xlat/ubi_volume_props.h xlat/ubi_volume_types.h xlat/uffd_api_flags.h xlat/uffd_copy_flags.h xlat/uffd_flags.h xlat/uffd_register_ioctl_flags.h xlat/uffd_register_mode_flags.h xlat/uffd_zeropage_flags.h xlat/umount_flags.h xlat/unix_diag_attrs.h xlat/unix_diag_show.h xlat/unshare_flags.h xlat/usagewho.h xlat/v4l2_buf_flags.h xlat/v4l2_buf_types.h xlat/v4l2_capture_modes.h xlat/v4l2_colorspaces.h xlat/v4l2_control_classes.h xlat/v4l2_control_flags.h xlat/v4l2_control_ids.h xlat/v4l2_control_types.h xlat/v4l2_device_capabilities_flags.h xlat/v4l2_fields.h 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_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 
+$(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/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
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/adjtimex_state.h: $(top_srcdir)/xlat/adjtimex_state.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/adjtimex_status.h: $(top_srcdir)/xlat/adjtimex_status.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/advise.h: $(top_srcdir)/xlat/advise.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/af_packet_types.h: $(top_srcdir)/xlat/af_packet_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/archvals.h: $(top_srcdir)/xlat/archvals.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/arp_hardware_types.h: $(top_srcdir)/xlat/arp_hardware_types.in $(top_srcdir)/xlat/gen.sh
+	$(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
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/baud_options.h: $(top_srcdir)/xlat/baud_options.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/blkpg_ops.h: $(top_srcdir)/xlat/blkpg_ops.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bootflags1.h: $(top_srcdir)/xlat/bootflags1.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bootflags2.h: $(top_srcdir)/xlat/bootflags2.in $(top_srcdir)/xlat/gen.sh
+	$(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
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bpf_commands.h: $(top_srcdir)/xlat/bpf_commands.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bpf_map_types.h: $(top_srcdir)/xlat/bpf_map_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bpf_map_update_elem_flags.h: $(top_srcdir)/xlat/bpf_map_update_elem_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bpf_miscop.h: $(top_srcdir)/xlat/bpf_miscop.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bpf_mode.h: $(top_srcdir)/xlat/bpf_mode.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bpf_op_alu.h: $(top_srcdir)/xlat/bpf_op_alu.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bpf_op_jmp.h: $(top_srcdir)/xlat/bpf_op_jmp.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bpf_prog_types.h: $(top_srcdir)/xlat/bpf_prog_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bpf_rval.h: $(top_srcdir)/xlat/bpf_rval.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bpf_size.h: $(top_srcdir)/xlat/bpf_size.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bpf_src.h: $(top_srcdir)/xlat/bpf_src.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bsg_flags.h: $(top_srcdir)/xlat/bsg_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bsg_protocol.h: $(top_srcdir)/xlat/bsg_protocol.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bsg_subprotocol.h: $(top_srcdir)/xlat/bsg_subprotocol.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/bt_protocols.h: $(top_srcdir)/xlat/bt_protocols.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/btrfs_balance_args.h: $(top_srcdir)/xlat/btrfs_balance_args.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/btrfs_balance_ctl_cmds.h: $(top_srcdir)/xlat/btrfs_balance_ctl_cmds.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/btrfs_balance_flags.h: $(top_srcdir)/xlat/btrfs_balance_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/btrfs_balance_state.h: $(top_srcdir)/xlat/btrfs_balance_state.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/btrfs_compress_types.h: $(top_srcdir)/xlat/btrfs_compress_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/btrfs_defrag_flags.h: $(top_srcdir)/xlat/btrfs_defrag_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/btrfs_dev_replace_cmds.h: $(top_srcdir)/xlat/btrfs_dev_replace_cmds.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/btrfs_dev_replace_results.h: $(top_srcdir)/xlat/btrfs_dev_replace_results.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/btrfs_dev_replace_state.h: $(top_srcdir)/xlat/btrfs_dev_replace_state.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/btrfs_dev_stats_flags.h: $(top_srcdir)/xlat/btrfs_dev_stats_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/btrfs_dev_stats_values.h: $(top_srcdir)/xlat/btrfs_dev_stats_values.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/btrfs_features_compat.h: $(top_srcdir)/xlat/btrfs_features_compat.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/btrfs_features_compat_ro.h: $(top_srcdir)/xlat/btrfs_features_compat_ro.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/btrfs_features_incompat.h: $(top_srcdir)/xlat/btrfs_features_incompat.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/btrfs_key_types.h: $(top_srcdir)/xlat/btrfs_key_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/btrfs_qgroup_ctl_cmds.h: $(top_srcdir)/xlat/btrfs_qgroup_ctl_cmds.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/btrfs_qgroup_inherit_flags.h: $(top_srcdir)/xlat/btrfs_qgroup_inherit_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/btrfs_qgroup_limit_flags.h: $(top_srcdir)/xlat/btrfs_qgroup_limit_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/btrfs_qgroup_status_flags.h: $(top_srcdir)/xlat/btrfs_qgroup_status_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/btrfs_scrub_flags.h: $(top_srcdir)/xlat/btrfs_scrub_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/btrfs_send_flags.h: $(top_srcdir)/xlat/btrfs_send_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/btrfs_snap_flags_v2.h: $(top_srcdir)/xlat/btrfs_snap_flags_v2.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/btrfs_space_info_flags.h: $(top_srcdir)/xlat/btrfs_space_info_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/btrfs_tree_objectids.h: $(top_srcdir)/xlat/btrfs_tree_objectids.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/cacheflush_scope.h: $(top_srcdir)/xlat/cacheflush_scope.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/cap.h: $(top_srcdir)/xlat/cap.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/cap_mask0.h: $(top_srcdir)/xlat/cap_mask0.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/cap_mask1.h: $(top_srcdir)/xlat/cap_mask1.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/cap_version.h: $(top_srcdir)/xlat/cap_version.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/clockflags.h: $(top_srcdir)/xlat/clockflags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/clocknames.h: $(top_srcdir)/xlat/clocknames.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/clone_flags.h: $(top_srcdir)/xlat/clone_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/cpuclocknames.h: $(top_srcdir)/xlat/cpuclocknames.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/delete_module_flags.h: $(top_srcdir)/xlat/delete_module_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/dirent_types.h: $(top_srcdir)/xlat/dirent_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/dm_flags.h: $(top_srcdir)/xlat/dm_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/efd_flags.h: $(top_srcdir)/xlat/efd_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/epollctls.h: $(top_srcdir)/xlat/epollctls.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/epollevents.h: $(top_srcdir)/xlat/epollevents.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/epollflags.h: $(top_srcdir)/xlat/epollflags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ethernet_protocols.h: $(top_srcdir)/xlat/ethernet_protocols.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/evdev_abs.h: $(top_srcdir)/xlat/evdev_abs.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/evdev_autorepeat.h: $(top_srcdir)/xlat/evdev_autorepeat.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/evdev_ev.h: $(top_srcdir)/xlat/evdev_ev.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/evdev_ff_status.h: $(top_srcdir)/xlat/evdev_ff_status.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/evdev_ff_types.h: $(top_srcdir)/xlat/evdev_ff_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/evdev_keycode.h: $(top_srcdir)/xlat/evdev_keycode.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/evdev_leds.h: $(top_srcdir)/xlat/evdev_leds.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/evdev_misc.h: $(top_srcdir)/xlat/evdev_misc.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/evdev_mtslots.h: $(top_srcdir)/xlat/evdev_mtslots.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/evdev_prop.h: $(top_srcdir)/xlat/evdev_prop.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/evdev_relative_axes.h: $(top_srcdir)/xlat/evdev_relative_axes.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/evdev_snd.h: $(top_srcdir)/xlat/evdev_snd.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/evdev_switch.h: $(top_srcdir)/xlat/evdev_switch.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/evdev_sync.h: $(top_srcdir)/xlat/evdev_sync.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/f_owner_types.h: $(top_srcdir)/xlat/f_owner_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/f_seals.h: $(top_srcdir)/xlat/f_seals.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/falloc_flags.h: $(top_srcdir)/xlat/falloc_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/fan_classes.h: $(top_srcdir)/xlat/fan_classes.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/fan_event_flags.h: $(top_srcdir)/xlat/fan_event_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/fan_init_flags.h: $(top_srcdir)/xlat/fan_init_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/fan_mark_flags.h: $(top_srcdir)/xlat/fan_mark_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/fcntl64cmds.h: $(top_srcdir)/xlat/fcntl64cmds.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/fcntlcmds.h: $(top_srcdir)/xlat/fcntlcmds.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/fdflags.h: $(top_srcdir)/xlat/fdflags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/fiemap_extent_flags.h: $(top_srcdir)/xlat/fiemap_extent_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/fiemap_flags.h: $(top_srcdir)/xlat/fiemap_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/flockcmds.h: $(top_srcdir)/xlat/flockcmds.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/fsmagic.h: $(top_srcdir)/xlat/fsmagic.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/futexops.h: $(top_srcdir)/xlat/futexops.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/futexwakecmps.h: $(top_srcdir)/xlat/futexwakecmps.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/futexwakeops.h: $(top_srcdir)/xlat/futexwakeops.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/getrandom_flags.h: $(top_srcdir)/xlat/getrandom_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/getsockipoptions.h: $(top_srcdir)/xlat/getsockipoptions.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/getsockipv6options.h: $(top_srcdir)/xlat/getsockipv6options.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/hci_channels.h: $(top_srcdir)/xlat/hci_channels.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/hw_breakpoint_len.h: $(top_srcdir)/xlat/hw_breakpoint_len.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/hw_breakpoint_type.h: $(top_srcdir)/xlat/hw_breakpoint_type.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/icmpfilterflags.h: $(top_srcdir)/xlat/icmpfilterflags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/if_dqblk_valid.h: $(top_srcdir)/xlat/if_dqblk_valid.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/if_dqinfo_flags.h: $(top_srcdir)/xlat/if_dqinfo_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/if_dqinfo_valid.h: $(top_srcdir)/xlat/if_dqinfo_valid.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/iffflags.h: $(top_srcdir)/xlat/iffflags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/inet_diag_attrs.h: $(top_srcdir)/xlat/inet_diag_attrs.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/inet_diag_extended_flags.h: $(top_srcdir)/xlat/inet_diag_extended_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/inet_diag_req_attrs.h: $(top_srcdir)/xlat/inet_diag_req_attrs.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/inet_protocols.h: $(top_srcdir)/xlat/inet_protocols.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/inotify_flags.h: $(top_srcdir)/xlat/inotify_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/inotify_init_flags.h: $(top_srcdir)/xlat/inotify_init_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ioctl_dirs.h: $(top_srcdir)/xlat/ioctl_dirs.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ioprio_class.h: $(top_srcdir)/xlat/ioprio_class.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ioprio_who.h: $(top_srcdir)/xlat/ioprio_who.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ip_cmsg_types.h: $(top_srcdir)/xlat/ip_cmsg_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ipc_msg_flags.h: $(top_srcdir)/xlat/ipc_msg_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ipccalls.h: $(top_srcdir)/xlat/ipccalls.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/itimer_which.h: $(top_srcdir)/xlat/itimer_which.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/kcmp_types.h: $(top_srcdir)/xlat/kcmp_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/kexec_arch_values.h: $(top_srcdir)/xlat/kexec_arch_values.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/kexec_file_load_flags.h: $(top_srcdir)/xlat/kexec_file_load_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/kexec_load_flags.h: $(top_srcdir)/xlat/kexec_load_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/key_perms.h: $(top_srcdir)/xlat/key_perms.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/key_reqkeys.h: $(top_srcdir)/xlat/key_reqkeys.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/key_spec.h: $(top_srcdir)/xlat/key_spec.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/keyctl_commands.h: $(top_srcdir)/xlat/keyctl_commands.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/lockfcmds.h: $(top_srcdir)/xlat/lockfcmds.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/loop_cmds.h: $(top_srcdir)/xlat/loop_cmds.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/loop_crypt_type_options.h: $(top_srcdir)/xlat/loop_crypt_type_options.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/loop_flags_options.h: $(top_srcdir)/xlat/loop_flags_options.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/madvise_cmds.h: $(top_srcdir)/xlat/madvise_cmds.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/mbindflags.h: $(top_srcdir)/xlat/mbindflags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/mctl_sync.h: $(top_srcdir)/xlat/mctl_sync.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/membarrier_cmds.h: $(top_srcdir)/xlat/membarrier_cmds.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/memfd_create_flags.h: $(top_srcdir)/xlat/memfd_create_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/mempolicyflags.h: $(top_srcdir)/xlat/mempolicyflags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/mlock_flags.h: $(top_srcdir)/xlat/mlock_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/mlockall_flags.h: $(top_srcdir)/xlat/mlockall_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/mmap_flags.h: $(top_srcdir)/xlat/mmap_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/mmap_prot.h: $(top_srcdir)/xlat/mmap_prot.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/modem_flags.h: $(top_srcdir)/xlat/modem_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/modetypes.h: $(top_srcdir)/xlat/modetypes.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/module_init_flags.h: $(top_srcdir)/xlat/module_init_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/mount_flags.h: $(top_srcdir)/xlat/mount_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/move_pages_flags.h: $(top_srcdir)/xlat/move_pages_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/mq_attr_flags.h: $(top_srcdir)/xlat/mq_attr_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/mremap_flags.h: $(top_srcdir)/xlat/mremap_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/msg_flags.h: $(top_srcdir)/xlat/msg_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/msgctl_flags.h: $(top_srcdir)/xlat/msgctl_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/mtd_file_mode_options.h: $(top_srcdir)/xlat/mtd_file_mode_options.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/mtd_flags_options.h: $(top_srcdir)/xlat/mtd_flags_options.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/mtd_mode_options.h: $(top_srcdir)/xlat/mtd_mode_options.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/mtd_nandecc_options.h: $(top_srcdir)/xlat/mtd_nandecc_options.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/mtd_otp_options.h: $(top_srcdir)/xlat/mtd_otp_options.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/mtd_type_options.h: $(top_srcdir)/xlat/mtd_type_options.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/name_to_handle_at_flags.h: $(top_srcdir)/xlat/name_to_handle_at_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/netlink_diag_attrs.h: $(top_srcdir)/xlat/netlink_diag_attrs.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/netlink_diag_show.h: $(top_srcdir)/xlat/netlink_diag_show.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/netlink_flags.h: $(top_srcdir)/xlat/netlink_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/netlink_get_flags.h: $(top_srcdir)/xlat/netlink_get_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/netlink_new_flags.h: $(top_srcdir)/xlat/netlink_new_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/netlink_protocols.h: $(top_srcdir)/xlat/netlink_protocols.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/netlink_socket_flags.h: $(top_srcdir)/xlat/netlink_socket_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/netlink_states.h: $(top_srcdir)/xlat/netlink_states.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/netlink_types.h: $(top_srcdir)/xlat/netlink_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/nl_audit_types.h: $(top_srcdir)/xlat/nl_audit_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/nl_netfilter_msg_types.h: $(top_srcdir)/xlat/nl_netfilter_msg_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/nl_netfilter_subsys_ids.h: $(top_srcdir)/xlat/nl_netfilter_subsys_ids.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/nl_route_types.h: $(top_srcdir)/xlat/nl_route_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/nl_selinux_types.h: $(top_srcdir)/xlat/nl_selinux_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/nl_sock_diag_types.h: $(top_srcdir)/xlat/nl_sock_diag_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/nl_xfrm_types.h: $(top_srcdir)/xlat/nl_xfrm_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/notifyflags.h: $(top_srcdir)/xlat/notifyflags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/nt_descriptor_types.h: $(top_srcdir)/xlat/nt_descriptor_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/open_access_modes.h: $(top_srcdir)/xlat/open_access_modes.in $(top_srcdir)/xlat/gen.sh
+	$(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/packet_diag_attrs.h: $(top_srcdir)/xlat/packet_diag_attrs.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/packet_diag_show.h: $(top_srcdir)/xlat/packet_diag_show.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
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/perf_branch_sample_type.h: $(top_srcdir)/xlat/perf_branch_sample_type.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/perf_event_open_flags.h: $(top_srcdir)/xlat/perf_event_open_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/perf_event_read_format.h: $(top_srcdir)/xlat/perf_event_read_format.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/perf_event_sample_format.h: $(top_srcdir)/xlat/perf_event_sample_format.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/perf_hw_cache_id.h: $(top_srcdir)/xlat/perf_hw_cache_id.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/perf_hw_cache_op_id.h: $(top_srcdir)/xlat/perf_hw_cache_op_id.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/perf_hw_cache_op_result_id.h: $(top_srcdir)/xlat/perf_hw_cache_op_result_id.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/perf_hw_id.h: $(top_srcdir)/xlat/perf_hw_id.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/perf_sw_ids.h: $(top_srcdir)/xlat/perf_sw_ids.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/perf_type_id.h: $(top_srcdir)/xlat/perf_type_id.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/personality_flags.h: $(top_srcdir)/xlat/personality_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/personality_types.h: $(top_srcdir)/xlat/personality_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/pkey_access.h: $(top_srcdir)/xlat/pkey_access.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/policies.h: $(top_srcdir)/xlat/policies.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/pollflags.h: $(top_srcdir)/xlat/pollflags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/pr_cap_ambient.h: $(top_srcdir)/xlat/pr_cap_ambient.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/pr_dumpable.h: $(top_srcdir)/xlat/pr_dumpable.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/pr_fp_mode.h: $(top_srcdir)/xlat/pr_fp_mode.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/pr_mce_kill.h: $(top_srcdir)/xlat/pr_mce_kill.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/pr_mce_kill_policy.h: $(top_srcdir)/xlat/pr_mce_kill_policy.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/pr_set_mm.h: $(top_srcdir)/xlat/pr_set_mm.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/pr_tsc.h: $(top_srcdir)/xlat/pr_tsc.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/pr_unalign_flags.h: $(top_srcdir)/xlat/pr_unalign_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/prctl_options.h: $(top_srcdir)/xlat/prctl_options.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/priorities.h: $(top_srcdir)/xlat/priorities.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ptp_flags_options.h: $(top_srcdir)/xlat/ptp_flags_options.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ptrace_cmds.h: $(top_srcdir)/xlat/ptrace_cmds.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ptrace_events.h: $(top_srcdir)/xlat/ptrace_events.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ptrace_peeksiginfo_flags.h: $(top_srcdir)/xlat/ptrace_peeksiginfo_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ptrace_setoptions_flags.h: $(top_srcdir)/xlat/ptrace_setoptions_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/quota_formats.h: $(top_srcdir)/xlat/quota_formats.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/quotacmds.h: $(top_srcdir)/xlat/quotacmds.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/quotatypes.h: $(top_srcdir)/xlat/quotatypes.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/rename_flags.h: $(top_srcdir)/xlat/rename_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/resource_flags.h: $(top_srcdir)/xlat/resource_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/resources.h: $(top_srcdir)/xlat/resources.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/rwf_flags.h: $(top_srcdir)/xlat/rwf_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sa_handler_values.h: $(top_srcdir)/xlat/sa_handler_values.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sched_flags.h: $(top_srcdir)/xlat/sched_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/schedulers.h: $(top_srcdir)/xlat/schedulers.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/scmvals.h: $(top_srcdir)/xlat/scmvals.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/scsi_sg_commands.h: $(top_srcdir)/xlat/scsi_sg_commands.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/secbits.h: $(top_srcdir)/xlat/secbits.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/seccomp_filter_flags.h: $(top_srcdir)/xlat/seccomp_filter_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/seccomp_mode.h: $(top_srcdir)/xlat/seccomp_mode.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/seccomp_ops.h: $(top_srcdir)/xlat/seccomp_ops.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/seccomp_ret_action.h: $(top_srcdir)/xlat/seccomp_ret_action.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/semctl_flags.h: $(top_srcdir)/xlat/semctl_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/semop_flags.h: $(top_srcdir)/xlat/semop_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/setns_types.h: $(top_srcdir)/xlat/setns_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/setsockipoptions.h: $(top_srcdir)/xlat/setsockipoptions.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/setsockipv6options.h: $(top_srcdir)/xlat/setsockipv6options.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sfd_flags.h: $(top_srcdir)/xlat/sfd_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sg_io_dxfer_direction.h: $(top_srcdir)/xlat/sg_io_dxfer_direction.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sg_io_flags.h: $(top_srcdir)/xlat/sg_io_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sg_io_info.h: $(top_srcdir)/xlat/sg_io_info.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sg_scsi_reset.h: $(top_srcdir)/xlat/sg_scsi_reset.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/shm_flags.h: $(top_srcdir)/xlat/shm_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/shm_resource_flags.h: $(top_srcdir)/xlat/shm_resource_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/shmctl_flags.h: $(top_srcdir)/xlat/shmctl_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/shutdown_modes.h: $(top_srcdir)/xlat/shutdown_modes.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sigact_flags.h: $(top_srcdir)/xlat/sigact_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sigaltstack_flags.h: $(top_srcdir)/xlat/sigaltstack_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sigbus_codes.h: $(top_srcdir)/xlat/sigbus_codes.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sigchld_codes.h: $(top_srcdir)/xlat/sigchld_codes.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sigemt_codes.h: $(top_srcdir)/xlat/sigemt_codes.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sigev_value.h: $(top_srcdir)/xlat/sigev_value.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sigfpe_codes.h: $(top_srcdir)/xlat/sigfpe_codes.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sigill_codes.h: $(top_srcdir)/xlat/sigill_codes.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/siginfo_codes.h: $(top_srcdir)/xlat/siginfo_codes.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sigpoll_codes.h: $(top_srcdir)/xlat/sigpoll_codes.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sigprocmaskcmds.h: $(top_srcdir)/xlat/sigprocmaskcmds.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sigprof_codes.h: $(top_srcdir)/xlat/sigprof_codes.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sigsegv_codes.h: $(top_srcdir)/xlat/sigsegv_codes.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sigsys_codes.h: $(top_srcdir)/xlat/sigsys_codes.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sigtrap_codes.h: $(top_srcdir)/xlat/sigtrap_codes.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/smc_diag_attrs.h: $(top_srcdir)/xlat/smc_diag_attrs.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/smc_diag_extended_flags.h: $(top_srcdir)/xlat/smc_diag_extended_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/smc_states.h: $(top_srcdir)/xlat/smc_states.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sock_type_flags.h: $(top_srcdir)/xlat/sock_type_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/socketcalls.h: $(top_srcdir)/xlat/socketcalls.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/socketlayers.h: $(top_srcdir)/xlat/socketlayers.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sockipoptions.h: $(top_srcdir)/xlat/sockipoptions.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sockipv6options.h: $(top_srcdir)/xlat/sockipv6options.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sockipxoptions.h: $(top_srcdir)/xlat/sockipxoptions.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sockoptions.h: $(top_srcdir)/xlat/sockoptions.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sockpacketoptions.h: $(top_srcdir)/xlat/sockpacketoptions.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sockrawoptions.h: $(top_srcdir)/xlat/sockrawoptions.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/socksctpoptions.h: $(top_srcdir)/xlat/socksctpoptions.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/socktcpoptions.h: $(top_srcdir)/xlat/socktcpoptions.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/socktypes.h: $(top_srcdir)/xlat/socktypes.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/splice_flags.h: $(top_srcdir)/xlat/splice_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sram_alloc_flags.h: $(top_srcdir)/xlat/sram_alloc_flags.in $(top_srcdir)/xlat/gen.sh
+	$(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
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sysctl_kern.h: $(top_srcdir)/xlat/sysctl_kern.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sysctl_net.h: $(top_srcdir)/xlat/sysctl_net.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sysctl_net_core.h: $(top_srcdir)/xlat/sysctl_net_core.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sysctl_net_ipv4.h: $(top_srcdir)/xlat/sysctl_net_ipv4.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sysctl_net_ipv4_conf.h: $(top_srcdir)/xlat/sysctl_net_ipv4_conf.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sysctl_net_ipv4_route.h: $(top_srcdir)/xlat/sysctl_net_ipv4_route.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sysctl_net_ipv6.h: $(top_srcdir)/xlat/sysctl_net_ipv6.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sysctl_net_ipv6_route.h: $(top_srcdir)/xlat/sysctl_net_ipv6_route.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sysctl_net_unix.h: $(top_srcdir)/xlat/sysctl_net_unix.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sysctl_root.h: $(top_srcdir)/xlat/sysctl_root.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sysctl_vm.h: $(top_srcdir)/xlat/sysctl_vm.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/syslog_action_type.h: $(top_srcdir)/xlat/syslog_action_type.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/sysmips_operations.h: $(top_srcdir)/xlat/sysmips_operations.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/tcflsh_options.h: $(top_srcdir)/xlat/tcflsh_options.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/tcp_state_flags.h: $(top_srcdir)/xlat/tcp_state_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/tcp_states.h: $(top_srcdir)/xlat/tcp_states.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/tcxonc_options.h: $(top_srcdir)/xlat/tcxonc_options.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/timerfdflags.h: $(top_srcdir)/xlat/timerfdflags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ubi_volume_props.h: $(top_srcdir)/xlat/ubi_volume_props.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/ubi_volume_types.h: $(top_srcdir)/xlat/ubi_volume_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/uffd_api_flags.h: $(top_srcdir)/xlat/uffd_api_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/uffd_copy_flags.h: $(top_srcdir)/xlat/uffd_copy_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/uffd_flags.h: $(top_srcdir)/xlat/uffd_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/uffd_register_ioctl_flags.h: $(top_srcdir)/xlat/uffd_register_ioctl_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/uffd_register_mode_flags.h: $(top_srcdir)/xlat/uffd_register_mode_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/uffd_zeropage_flags.h: $(top_srcdir)/xlat/uffd_zeropage_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/umount_flags.h: $(top_srcdir)/xlat/umount_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/unix_diag_attrs.h: $(top_srcdir)/xlat/unix_diag_attrs.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/unix_diag_show.h: $(top_srcdir)/xlat/unix_diag_show.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/unshare_flags.h: $(top_srcdir)/xlat/unshare_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/usagewho.h: $(top_srcdir)/xlat/usagewho.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/v4l2_buf_flags.h: $(top_srcdir)/xlat/v4l2_buf_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/v4l2_buf_types.h: $(top_srcdir)/xlat/v4l2_buf_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/v4l2_capture_modes.h: $(top_srcdir)/xlat/v4l2_capture_modes.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/v4l2_colorspaces.h: $(top_srcdir)/xlat/v4l2_colorspaces.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/v4l2_control_classes.h: $(top_srcdir)/xlat/v4l2_control_classes.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/v4l2_control_flags.h: $(top_srcdir)/xlat/v4l2_control_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/v4l2_control_ids.h: $(top_srcdir)/xlat/v4l2_control_ids.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/v4l2_control_types.h: $(top_srcdir)/xlat/v4l2_control_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/v4l2_device_capabilities_flags.h: $(top_srcdir)/xlat/v4l2_device_capabilities_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/v4l2_fields.h: $(top_srcdir)/xlat/v4l2_fields.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/v4l2_format_description_flags.h: $(top_srcdir)/xlat/v4l2_format_description_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/v4l2_frameinterval_types.h: $(top_srcdir)/xlat/v4l2_frameinterval_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/v4l2_framesize_types.h: $(top_srcdir)/xlat/v4l2_framesize_types.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/v4l2_input_types.h: $(top_srcdir)/xlat/v4l2_input_types.in $(top_srcdir)/xlat/gen.sh
+	$(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
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/whence_codes.h: $(top_srcdir)/xlat/whence_codes.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/xattrflags.h: $(top_srcdir)/xlat/xattrflags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/xfs_dqblk_flags.h: $(top_srcdir)/xlat/xfs_dqblk_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+$(top_srcdir)/xlat/xfs_quota_flags.h: $(top_srcdir)/xlat/xfs_quota_flags.in $(top_srcdir)/xlat/gen.sh
+	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
diff --git a/xlat/archvals.h b/xlat/archvals.h
index 1f441d5..75969bb 100644
--- a/xlat/archvals.h
+++ b/xlat/archvals.h
@@ -1,4 +1,10 @@
 /* Generated by ./xlat/gen.sh from ./xlat/archvals.in; do not edit. */
+#if !(defined(ARCH_GET_CPUID) || (defined(HAVE_DECL_ARCH_GET_CPUID) && HAVE_DECL_ARCH_GET_CPUID))
+# define ARCH_GET_CPUID 0x1011
+#endif
+#if !(defined(ARCH_SET_CPUID) || (defined(HAVE_DECL_ARCH_SET_CPUID) && HAVE_DECL_ARCH_SET_CPUID))
+# define ARCH_SET_CPUID 0x1012
+#endif
 #if !(defined(ARCH_MAP_VDSO_X32) || (defined(HAVE_DECL_ARCH_MAP_VDSO_X32) && HAVE_DECL_ARCH_MAP_VDSO_X32))
 # define ARCH_MAP_VDSO_X32 0x2001
 #endif
@@ -29,6 +35,8 @@
 #if defined(ARCH_GET_GS) || (defined(HAVE_DECL_ARCH_GET_GS) && HAVE_DECL_ARCH_GET_GS)
   XLAT(ARCH_GET_GS),
 #endif
+ XLAT(ARCH_GET_CPUID),
+ XLAT(ARCH_SET_CPUID),
  XLAT(ARCH_MAP_VDSO_X32),
  XLAT(ARCH_MAP_VDSO_32),
  XLAT(ARCH_MAP_VDSO_64),
diff --git a/xlat/archvals.in b/xlat/archvals.in
index def419d..4bbcc0a 100644
--- a/xlat/archvals.in
+++ b/xlat/archvals.in
@@ -2,6 +2,8 @@
 ARCH_SET_FS
 ARCH_GET_FS
 ARCH_GET_GS
+ARCH_GET_CPUID	0x1011
+ARCH_SET_CPUID	0x1012
 ARCH_MAP_VDSO_X32	0x2001
 ARCH_MAP_VDSO_32	0x2002
 ARCH_MAP_VDSO_64	0x2003
diff --git a/xlat/arp_hardware_types.h b/xlat/arp_hardware_types.h
index 7e669b3..c862f2c 100644
--- a/xlat/arp_hardware_types.h
+++ b/xlat/arp_hardware_types.h
@@ -194,6 +194,9 @@
 #if defined(ARPHRD_6LOWPAN) || (defined(HAVE_DECL_ARPHRD_6LOWPAN) && HAVE_DECL_ARPHRD_6LOWPAN)
   XLAT(ARPHRD_6LOWPAN),
 #endif
+#if defined(ARPHRD_VSOCKMON) || (defined(HAVE_DECL_ARPHRD_VSOCKMON) && HAVE_DECL_ARPHRD_VSOCKMON)
+  XLAT(ARPHRD_VSOCKMON),
+#endif
 #if defined(ARPHRD_VOID) || (defined(HAVE_DECL_ARPHRD_VOID) && HAVE_DECL_ARPHRD_VOID)
   XLAT(ARPHRD_VOID),
 #endif
diff --git a/xlat/arp_hardware_types.in b/xlat/arp_hardware_types.in
index df8b4fc..744a672 100644
--- a/xlat/arp_hardware_types.in
+++ b/xlat/arp_hardware_types.in
@@ -60,5 +60,6 @@
 ARPHRD_IP6GRE
 ARPHRD_NETLINK
 ARPHRD_6LOWPAN
+ARPHRD_VSOCKMON
 ARPHRD_VOID
 ARPHRD_NONE
diff --git a/xlat/ethernet_protocols.h b/xlat/ethernet_protocols.h
index 035ca8c..7b5e86c 100644
--- a/xlat/ethernet_protocols.h
+++ b/xlat/ethernet_protocols.h
@@ -1,12 +1,7 @@
 /* Generated by ./xlat/gen.sh from ./xlat/ethernet_protocols.in; do not edit. */
 
-#ifdef IN_MPERS
+#ifndef IN_MPERS
 
-# error static const struct xlat ethernet_protocols in mpers mode
-
-#else
-
-static
 const struct xlat ethernet_protocols[] = {
 #if defined(ETH_P_LOOP) || (defined(HAVE_DECL_ETH_P_LOOP) && HAVE_DECL_ETH_P_LOOP)
   XLAT(ETH_P_LOOP),
diff --git a/xlat/inet_diag_attrs.h b/xlat/inet_diag_attrs.h
new file mode 100644
index 0000000..7afbc4e
--- /dev/null
+++ b/xlat/inet_diag_attrs.h
@@ -0,0 +1,31 @@
+/* Generated by ./xlat/gen.sh from ./xlat/inet_diag_attrs.in; do not edit. */
+
+#ifdef IN_MPERS
+
+# error static const struct xlat inet_diag_attrs in mpers mode
+
+#else
+
+static
+const struct xlat inet_diag_attrs[] = {
+ XLAT(INET_DIAG_NONE),
+ XLAT(INET_DIAG_MEMINFO),
+ XLAT(INET_DIAG_INFO),
+ XLAT(INET_DIAG_VEGASINFO),
+ XLAT(INET_DIAG_CONG),
+ XLAT(INET_DIAG_TOS),
+ XLAT(INET_DIAG_TCLASS),
+ XLAT(INET_DIAG_SKMEMINFO),
+ XLAT(INET_DIAG_SHUTDOWN),
+ XLAT(INET_DIAG_DCTCPINFO),
+ XLAT(INET_DIAG_PROTOCOL),
+ XLAT(INET_DIAG_SKV6ONLY),
+ XLAT(INET_DIAG_LOCALS),
+ XLAT(INET_DIAG_PEERS),
+ XLAT(INET_DIAG_PAD),
+ XLAT(INET_DIAG_MARK),
+ XLAT(INET_DIAG_BBRINFO),
+ XLAT_END
+};
+
+#endif /* !IN_MPERS */
diff --git a/xlat/inet_diag_attrs.in b/xlat/inet_diag_attrs.in
new file mode 100644
index 0000000..17519c8
--- /dev/null
+++ b/xlat/inet_diag_attrs.in
@@ -0,0 +1,18 @@
+#unconditional
+INET_DIAG_NONE
+INET_DIAG_MEMINFO
+INET_DIAG_INFO
+INET_DIAG_VEGASINFO
+INET_DIAG_CONG
+INET_DIAG_TOS
+INET_DIAG_TCLASS
+INET_DIAG_SKMEMINFO
+INET_DIAG_SHUTDOWN
+INET_DIAG_DCTCPINFO
+INET_DIAG_PROTOCOL
+INET_DIAG_SKV6ONLY
+INET_DIAG_LOCALS
+INET_DIAG_PEERS
+INET_DIAG_PAD
+INET_DIAG_MARK
+INET_DIAG_BBRINFO
diff --git a/xlat/inet_diag_extended_flags.h b/xlat/inet_diag_extended_flags.h
new file mode 100644
index 0000000..bf1bd3f
--- /dev/null
+++ b/xlat/inet_diag_extended_flags.h
@@ -0,0 +1,30 @@
+/* Generated by ./xlat/gen.sh from ./xlat/inet_diag_extended_flags.in; do not edit. */
+
+#ifdef IN_MPERS
+
+# error static const struct xlat inet_diag_extended_flags in mpers mode
+
+#else
+
+static
+const struct xlat inet_diag_extended_flags[] = {
+ XLAT(1<<(INET_DIAG_MEMINFO-1)),
+ XLAT(1<<(INET_DIAG_INFO-1)),
+ XLAT(1<<(INET_DIAG_VEGASINFO-1)),
+ XLAT(1<<(INET_DIAG_CONG-1)),
+ XLAT(1<<(INET_DIAG_TOS-1)),
+ XLAT(1<<(INET_DIAG_TCLASS-1)),
+ XLAT(1<<(INET_DIAG_SKMEMINFO-1)),
+ XLAT(1<<(INET_DIAG_SHUTDOWN-1)),
+ XLAT(1<<(INET_DIAG_DCTCPINFO-1)),
+ XLAT(1<<(INET_DIAG_PROTOCOL-1)),
+ XLAT(1<<(INET_DIAG_SKV6ONLY-1)),
+ XLAT(1<<(INET_DIAG_LOCALS-1)),
+ XLAT(1<<(INET_DIAG_PEERS-1)),
+ XLAT(1<<(INET_DIAG_PAD-1)),
+ XLAT(1<<(INET_DIAG_MARK-1)),
+ XLAT(1<<(INET_DIAG_BBRINFO-1)),
+ XLAT_END
+};
+
+#endif /* !IN_MPERS */
diff --git a/xlat/inet_diag_extended_flags.in b/xlat/inet_diag_extended_flags.in
new file mode 100644
index 0000000..05be3ca
--- /dev/null
+++ b/xlat/inet_diag_extended_flags.in
@@ -0,0 +1,17 @@
+#unconditional
+1<<(INET_DIAG_MEMINFO-1)
+1<<(INET_DIAG_INFO-1)
+1<<(INET_DIAG_VEGASINFO-1)
+1<<(INET_DIAG_CONG-1)
+1<<(INET_DIAG_TOS-1)
+1<<(INET_DIAG_TCLASS-1)
+1<<(INET_DIAG_SKMEMINFO-1)
+1<<(INET_DIAG_SHUTDOWN-1)
+1<<(INET_DIAG_DCTCPINFO-1)
+1<<(INET_DIAG_PROTOCOL-1)
+1<<(INET_DIAG_SKV6ONLY-1)
+1<<(INET_DIAG_LOCALS-1)
+1<<(INET_DIAG_PEERS-1)
+1<<(INET_DIAG_PAD-1)
+1<<(INET_DIAG_MARK-1)
+1<<(INET_DIAG_BBRINFO-1)
diff --git a/xlat/inet_diag_req_attrs.h b/xlat/inet_diag_req_attrs.h
new file mode 100644
index 0000000..6fc4bac
--- /dev/null
+++ b/xlat/inet_diag_req_attrs.h
@@ -0,0 +1,16 @@
+/* Generated by ./xlat/gen.sh from ./xlat/inet_diag_req_attrs.in; do not edit. */
+
+#ifdef IN_MPERS
+
+# error static const struct xlat inet_diag_req_attrs in mpers mode
+
+#else
+
+static
+const struct xlat inet_diag_req_attrs[] = {
+ XLAT(INET_DIAG_REQ_NONE),
+ XLAT(INET_DIAG_REQ_BYTECODE),
+ XLAT_END
+};
+
+#endif /* !IN_MPERS */
diff --git a/xlat/inet_diag_req_attrs.in b/xlat/inet_diag_req_attrs.in
new file mode 100644
index 0000000..c36369e
--- /dev/null
+++ b/xlat/inet_diag_req_attrs.in
@@ -0,0 +1,3 @@
+#unconditional
+INET_DIAG_REQ_NONE
+INET_DIAG_REQ_BYTECODE
diff --git a/xlat/inet_protocols.h b/xlat/inet_protocols.h
index 73d1133..47c0c0d 100644
--- a/xlat/inet_protocols.h
+++ b/xlat/inet_protocols.h
@@ -1,12 +1,7 @@
 /* Generated by ./xlat/gen.sh from ./xlat/inet_protocols.in; do not edit. */
 
-#ifdef IN_MPERS
+#ifndef IN_MPERS
 
-# error static const struct xlat inet_protocols in mpers mode
-
-#else
-
-static
 const struct xlat inet_protocols[] = {
 #if defined(IPPROTO_IP) || (defined(HAVE_DECL_IPPROTO_IP) && HAVE_DECL_IPPROTO_IP)
   XLAT(IPPROTO_IP),
diff --git a/xlat/keyctl_commands.h b/xlat/keyctl_commands.h
index 14a1e09..cbe760d 100644
--- a/xlat/keyctl_commands.h
+++ b/xlat/keyctl_commands.h
@@ -71,6 +71,9 @@
 #if !(defined(KEYCTL_DH_COMPUTE) || (defined(HAVE_DECL_KEYCTL_DH_COMPUTE) && HAVE_DECL_KEYCTL_DH_COMPUTE))
 # define KEYCTL_DH_COMPUTE 23
 #endif
+#if !(defined(KEYCTL_RESTRICT_KEYRING) || (defined(HAVE_DECL_KEYCTL_RESTRICT_KEYRING) && HAVE_DECL_KEYCTL_RESTRICT_KEYRING))
+# define KEYCTL_RESTRICT_KEYRING 29
+#endif
 
 #ifdef IN_MPERS
 
@@ -104,6 +107,7 @@
  XLAT(KEYCTL_INVALIDATE),
  XLAT(KEYCTL_GET_PERSISTENT),
  XLAT(KEYCTL_DH_COMPUTE),
+ XLAT(KEYCTL_RESTRICT_KEYRING),
  XLAT_END
 };
 
diff --git a/xlat/keyctl_commands.in b/xlat/keyctl_commands.in
index a30d139..5e1f447 100644
--- a/xlat/keyctl_commands.in
+++ b/xlat/keyctl_commands.in
@@ -22,3 +22,4 @@
 KEYCTL_INVALIDATE 21
 KEYCTL_GET_PERSISTENT 22
 KEYCTL_DH_COMPUTE 23
+KEYCTL_RESTRICT_KEYRING 29
diff --git a/xlat/netlink_diag_attrs.h b/xlat/netlink_diag_attrs.h
new file mode 100644
index 0000000..5dcc736
--- /dev/null
+++ b/xlat/netlink_diag_attrs.h
@@ -0,0 +1,19 @@
+/* Generated by ./xlat/gen.sh from ./xlat/netlink_diag_attrs.in; do not edit. */
+
+#ifdef IN_MPERS
+
+# error static const struct xlat netlink_diag_attrs in mpers mode
+
+#else
+
+static
+const struct xlat netlink_diag_attrs[] = {
+ XLAT(NETLINK_DIAG_MEMINFO),
+ XLAT(NETLINK_DIAG_GROUPS),
+ XLAT(NETLINK_DIAG_RX_RING),
+ XLAT(NETLINK_DIAG_TX_RING),
+ XLAT(NETLINK_DIAG_FLAGS),
+ XLAT_END
+};
+
+#endif /* !IN_MPERS */
diff --git a/xlat/netlink_diag_attrs.in b/xlat/netlink_diag_attrs.in
new file mode 100644
index 0000000..41e9a7a
--- /dev/null
+++ b/xlat/netlink_diag_attrs.in
@@ -0,0 +1,6 @@
+#unconditional
+NETLINK_DIAG_MEMINFO
+NETLINK_DIAG_GROUPS
+NETLINK_DIAG_RX_RING
+NETLINK_DIAG_TX_RING
+NETLINK_DIAG_FLAGS
diff --git a/xlat/netlink_diag_show.h b/xlat/netlink_diag_show.h
new file mode 100644
index 0000000..7d6f9be
--- /dev/null
+++ b/xlat/netlink_diag_show.h
@@ -0,0 +1,26 @@
+/* Generated by ./xlat/gen.sh from ./xlat/netlink_diag_show.in; do not edit. */
+
+#ifdef IN_MPERS
+
+# error static const struct xlat netlink_diag_show in mpers mode
+
+#else
+
+static
+const struct xlat netlink_diag_show[] = {
+#if defined(NDIAG_SHOW_MEMINFO) || (defined(HAVE_DECL_NDIAG_SHOW_MEMINFO) && HAVE_DECL_NDIAG_SHOW_MEMINFO)
+  XLAT(NDIAG_SHOW_MEMINFO),
+#endif
+#if defined(NDIAG_SHOW_GROUPS) || (defined(HAVE_DECL_NDIAG_SHOW_GROUPS) && HAVE_DECL_NDIAG_SHOW_GROUPS)
+  XLAT(NDIAG_SHOW_GROUPS),
+#endif
+#if defined(NDIAG_SHOW_RING_CFG) || (defined(HAVE_DECL_NDIAG_SHOW_RING_CFG) && HAVE_DECL_NDIAG_SHOW_RING_CFG)
+  XLAT(NDIAG_SHOW_RING_CFG),
+#endif
+#if defined(NDIAG_SHOW_FLAGS) || (defined(HAVE_DECL_NDIAG_SHOW_FLAGS) && HAVE_DECL_NDIAG_SHOW_FLAGS)
+  XLAT(NDIAG_SHOW_FLAGS),
+#endif
+ XLAT_END
+};
+
+#endif /* !IN_MPERS */
diff --git a/xlat/netlink_diag_show.in b/xlat/netlink_diag_show.in
new file mode 100644
index 0000000..eee9620
--- /dev/null
+++ b/xlat/netlink_diag_show.in
@@ -0,0 +1,4 @@
+NDIAG_SHOW_MEMINFO
+NDIAG_SHOW_GROUPS
+NDIAG_SHOW_RING_CFG
+NDIAG_SHOW_FLAGS
diff --git a/xlat/netlink_get_flags.h b/xlat/netlink_get_flags.h
new file mode 100644
index 0000000..3a4631c
--- /dev/null
+++ b/xlat/netlink_get_flags.h
@@ -0,0 +1,26 @@
+/* Generated by ./xlat/gen.sh from ./xlat/netlink_get_flags.in; do not edit. */
+
+#ifdef IN_MPERS
+
+# error static const struct xlat netlink_get_flags in mpers mode
+
+#else
+
+static
+const struct xlat netlink_get_flags[] = {
+#if defined(NLM_F_DUMP) || (defined(HAVE_DECL_NLM_F_DUMP) && HAVE_DECL_NLM_F_DUMP)
+  XLAT(NLM_F_DUMP),
+#endif
+#if defined(NLM_F_ROOT) || (defined(HAVE_DECL_NLM_F_ROOT) && HAVE_DECL_NLM_F_ROOT)
+  XLAT(NLM_F_ROOT),
+#endif
+#if defined(NLM_F_MATCH) || (defined(HAVE_DECL_NLM_F_MATCH) && HAVE_DECL_NLM_F_MATCH)
+  XLAT(NLM_F_MATCH),
+#endif
+#if defined(NLM_F_ATOMIC) || (defined(HAVE_DECL_NLM_F_ATOMIC) && HAVE_DECL_NLM_F_ATOMIC)
+  XLAT(NLM_F_ATOMIC),
+#endif
+ XLAT_END
+};
+
+#endif /* !IN_MPERS */
diff --git a/xlat/netlink_get_flags.in b/xlat/netlink_get_flags.in
new file mode 100644
index 0000000..96ab4a0
--- /dev/null
+++ b/xlat/netlink_get_flags.in
@@ -0,0 +1,4 @@
+NLM_F_DUMP
+NLM_F_ROOT
+NLM_F_MATCH
+NLM_F_ATOMIC
diff --git a/xlat/netlink_new_flags.h b/xlat/netlink_new_flags.h
new file mode 100644
index 0000000..61af6d5
--- /dev/null
+++ b/xlat/netlink_new_flags.h
@@ -0,0 +1,26 @@
+/* Generated by ./xlat/gen.sh from ./xlat/netlink_new_flags.in; do not edit. */
+
+#ifdef IN_MPERS
+
+# error static const struct xlat netlink_new_flags in mpers mode
+
+#else
+
+static
+const struct xlat netlink_new_flags[] = {
+#if defined(NLM_F_REPLACE) || (defined(HAVE_DECL_NLM_F_REPLACE) && HAVE_DECL_NLM_F_REPLACE)
+  XLAT(NLM_F_REPLACE),
+#endif
+#if defined(NLM_F_EXCL) || (defined(HAVE_DECL_NLM_F_EXCL) && HAVE_DECL_NLM_F_EXCL)
+  XLAT(NLM_F_EXCL),
+#endif
+#if defined(NLM_F_CREATE) || (defined(HAVE_DECL_NLM_F_CREATE) && HAVE_DECL_NLM_F_CREATE)
+  XLAT(NLM_F_CREATE),
+#endif
+#if defined(NLM_F_APPEND) || (defined(HAVE_DECL_NLM_F_APPEND) && HAVE_DECL_NLM_F_APPEND)
+  XLAT(NLM_F_APPEND),
+#endif
+ XLAT_END
+};
+
+#endif /* !IN_MPERS */
diff --git a/xlat/netlink_new_flags.in b/xlat/netlink_new_flags.in
new file mode 100644
index 0000000..4ef2fea
--- /dev/null
+++ b/xlat/netlink_new_flags.in
@@ -0,0 +1,4 @@
+NLM_F_REPLACE
+NLM_F_EXCL
+NLM_F_CREATE
+NLM_F_APPEND
diff --git a/xlat/netlink_socket_flags.h b/xlat/netlink_socket_flags.h
new file mode 100644
index 0000000..bd9a830
--- /dev/null
+++ b/xlat/netlink_socket_flags.h
@@ -0,0 +1,32 @@
+/* Generated by ./xlat/gen.sh from ./xlat/netlink_socket_flags.in; do not edit. */
+
+#ifdef IN_MPERS
+
+# error static const struct xlat netlink_socket_flags in mpers mode
+
+#else
+
+static
+const struct xlat netlink_socket_flags[] = {
+#if defined(NDIAG_FLAG_CB_RUNNING) || (defined(HAVE_DECL_NDIAG_FLAG_CB_RUNNING) && HAVE_DECL_NDIAG_FLAG_CB_RUNNING)
+  XLAT(NDIAG_FLAG_CB_RUNNING),
+#endif
+#if defined(NDIAG_FLAG_PKTINFO) || (defined(HAVE_DECL_NDIAG_FLAG_PKTINFO) && HAVE_DECL_NDIAG_FLAG_PKTINFO)
+  XLAT(NDIAG_FLAG_PKTINFO),
+#endif
+#if defined(NDIAG_FLAG_BROADCAST_ERROR) || (defined(HAVE_DECL_NDIAG_FLAG_BROADCAST_ERROR) && HAVE_DECL_NDIAG_FLAG_BROADCAST_ERROR)
+  XLAT(NDIAG_FLAG_BROADCAST_ERROR),
+#endif
+#if defined(NDIAG_FLAG_NO_ENOBUFS) || (defined(HAVE_DECL_NDIAG_FLAG_NO_ENOBUFS) && HAVE_DECL_NDIAG_FLAG_NO_ENOBUFS)
+  XLAT(NDIAG_FLAG_NO_ENOBUFS),
+#endif
+#if defined(NDIAG_FLAG_LISTEN_ALL_NSID) || (defined(HAVE_DECL_NDIAG_FLAG_LISTEN_ALL_NSID) && HAVE_DECL_NDIAG_FLAG_LISTEN_ALL_NSID)
+  XLAT(NDIAG_FLAG_LISTEN_ALL_NSID),
+#endif
+#if defined(NDIAG_FLAG_CAP_ACK) || (defined(HAVE_DECL_NDIAG_FLAG_CAP_ACK) && HAVE_DECL_NDIAG_FLAG_CAP_ACK)
+  XLAT(NDIAG_FLAG_CAP_ACK),
+#endif
+ XLAT_END
+};
+
+#endif /* !IN_MPERS */
diff --git a/xlat/netlink_socket_flags.in b/xlat/netlink_socket_flags.in
new file mode 100644
index 0000000..f36e35c
--- /dev/null
+++ b/xlat/netlink_socket_flags.in
@@ -0,0 +1,6 @@
+NDIAG_FLAG_CB_RUNNING
+NDIAG_FLAG_PKTINFO
+NDIAG_FLAG_BROADCAST_ERROR
+NDIAG_FLAG_NO_ENOBUFS
+NDIAG_FLAG_LISTEN_ALL_NSID
+NDIAG_FLAG_CAP_ACK
diff --git a/xlat/netlink_states.h b/xlat/netlink_states.h
new file mode 100644
index 0000000..600b52f
--- /dev/null
+++ b/xlat/netlink_states.h
@@ -0,0 +1,22 @@
+/* Generated by ./xlat/gen.sh from ./xlat/netlink_states.in; do not edit. */
+#if !(defined(NETLINK_UNCONNECTED) || (defined(HAVE_DECL_NETLINK_UNCONNECTED) && HAVE_DECL_NETLINK_UNCONNECTED))
+# define NETLINK_UNCONNECTED 0
+#endif
+#if !(defined(NETLINK_CONNECTED) || (defined(HAVE_DECL_NETLINK_CONNECTED) && HAVE_DECL_NETLINK_CONNECTED))
+# define NETLINK_CONNECTED 1
+#endif
+
+#ifdef IN_MPERS
+
+# error static const struct xlat netlink_states in mpers mode
+
+#else
+
+static
+const struct xlat netlink_states[] = {
+ XLAT(NETLINK_UNCONNECTED),
+ XLAT(NETLINK_CONNECTED),
+ XLAT_END
+};
+
+#endif /* !IN_MPERS */
diff --git a/xlat/netlink_states.in b/xlat/netlink_states.in
new file mode 100644
index 0000000..4d4aee7
--- /dev/null
+++ b/xlat/netlink_states.in
@@ -0,0 +1,2 @@
+NETLINK_UNCONNECTED	0
+NETLINK_CONNECTED	1
diff --git a/xlat/nl_audit_types.h b/xlat/nl_audit_types.h
new file mode 100644
index 0000000..37f658a
--- /dev/null
+++ b/xlat/nl_audit_types.h
@@ -0,0 +1,382 @@
+/* Generated by ./xlat/gen.sh from ./xlat/nl_audit_types.in; do not edit. */
+#if !(defined(AUDIT_GET) || (defined(HAVE_DECL_AUDIT_GET) && HAVE_DECL_AUDIT_GET))
+# define AUDIT_GET 1000
+#endif
+#if !(defined(AUDIT_SET) || (defined(HAVE_DECL_AUDIT_SET) && HAVE_DECL_AUDIT_SET))
+# define AUDIT_SET 1001
+#endif
+#if !(defined(AUDIT_LIST) || (defined(HAVE_DECL_AUDIT_LIST) && HAVE_DECL_AUDIT_LIST))
+# define AUDIT_LIST 1002
+#endif
+#if !(defined(AUDIT_ADD) || (defined(HAVE_DECL_AUDIT_ADD) && HAVE_DECL_AUDIT_ADD))
+# define AUDIT_ADD 1003
+#endif
+#if !(defined(AUDIT_DEL) || (defined(HAVE_DECL_AUDIT_DEL) && HAVE_DECL_AUDIT_DEL))
+# define AUDIT_DEL 1004
+#endif
+#if !(defined(AUDIT_USER) || (defined(HAVE_DECL_AUDIT_USER) && HAVE_DECL_AUDIT_USER))
+# define AUDIT_USER 1005
+#endif
+#if !(defined(AUDIT_LOGIN) || (defined(HAVE_DECL_AUDIT_LOGIN) && HAVE_DECL_AUDIT_LOGIN))
+# define AUDIT_LOGIN 1006
+#endif
+#if !(defined(AUDIT_WATCH_INS) || (defined(HAVE_DECL_AUDIT_WATCH_INS) && HAVE_DECL_AUDIT_WATCH_INS))
+# define AUDIT_WATCH_INS 1007
+#endif
+#if !(defined(AUDIT_WATCH_REM) || (defined(HAVE_DECL_AUDIT_WATCH_REM) && HAVE_DECL_AUDIT_WATCH_REM))
+# define AUDIT_WATCH_REM 1008
+#endif
+#if !(defined(AUDIT_WATCH_LIST) || (defined(HAVE_DECL_AUDIT_WATCH_LIST) && HAVE_DECL_AUDIT_WATCH_LIST))
+# define AUDIT_WATCH_LIST 1009
+#endif
+#if !(defined(AUDIT_SIGNAL_INFO) || (defined(HAVE_DECL_AUDIT_SIGNAL_INFO) && HAVE_DECL_AUDIT_SIGNAL_INFO))
+# define AUDIT_SIGNAL_INFO 1010
+#endif
+#if !(defined(AUDIT_ADD_RULE) || (defined(HAVE_DECL_AUDIT_ADD_RULE) && HAVE_DECL_AUDIT_ADD_RULE))
+# define AUDIT_ADD_RULE 1011
+#endif
+#if !(defined(AUDIT_DEL_RULE) || (defined(HAVE_DECL_AUDIT_DEL_RULE) && HAVE_DECL_AUDIT_DEL_RULE))
+# define AUDIT_DEL_RULE 1012
+#endif
+#if !(defined(AUDIT_LIST_RULES) || (defined(HAVE_DECL_AUDIT_LIST_RULES) && HAVE_DECL_AUDIT_LIST_RULES))
+# define AUDIT_LIST_RULES 1013
+#endif
+#if !(defined(AUDIT_TRIM) || (defined(HAVE_DECL_AUDIT_TRIM) && HAVE_DECL_AUDIT_TRIM))
+# define AUDIT_TRIM 1014
+#endif
+#if !(defined(AUDIT_MAKE_EQUIV) || (defined(HAVE_DECL_AUDIT_MAKE_EQUIV) && HAVE_DECL_AUDIT_MAKE_EQUIV))
+# define AUDIT_MAKE_EQUIV 1015
+#endif
+#if !(defined(AUDIT_TTY_GET) || (defined(HAVE_DECL_AUDIT_TTY_GET) && HAVE_DECL_AUDIT_TTY_GET))
+# define AUDIT_TTY_GET 1016
+#endif
+#if !(defined(AUDIT_TTY_SET) || (defined(HAVE_DECL_AUDIT_TTY_SET) && HAVE_DECL_AUDIT_TTY_SET))
+# define AUDIT_TTY_SET 1017
+#endif
+#if !(defined(AUDIT_SET_FEATURE) || (defined(HAVE_DECL_AUDIT_SET_FEATURE) && HAVE_DECL_AUDIT_SET_FEATURE))
+# define AUDIT_SET_FEATURE 1018
+#endif
+#if !(defined(AUDIT_GET_FEATURE) || (defined(HAVE_DECL_AUDIT_GET_FEATURE) && HAVE_DECL_AUDIT_GET_FEATURE))
+# define AUDIT_GET_FEATURE 1019
+#endif
+#if !(defined(AUDIT_FIRST_USER_MSG) || (defined(HAVE_DECL_AUDIT_FIRST_USER_MSG) && HAVE_DECL_AUDIT_FIRST_USER_MSG))
+# define AUDIT_FIRST_USER_MSG 1100
+#endif
+#if !(defined(AUDIT_USER_AVC) || (defined(HAVE_DECL_AUDIT_USER_AVC) && HAVE_DECL_AUDIT_USER_AVC))
+# define AUDIT_USER_AVC 1107
+#endif
+#if !(defined(AUDIT_USER_TTY) || (defined(HAVE_DECL_AUDIT_USER_TTY) && HAVE_DECL_AUDIT_USER_TTY))
+# define AUDIT_USER_TTY 1124
+#endif
+#if !(defined(AUDIT_LAST_USER_MSG) || (defined(HAVE_DECL_AUDIT_LAST_USER_MSG) && HAVE_DECL_AUDIT_LAST_USER_MSG))
+# define AUDIT_LAST_USER_MSG 1199
+#endif
+#if !(defined(AUDIT_DAEMON_START) || (defined(HAVE_DECL_AUDIT_DAEMON_START) && HAVE_DECL_AUDIT_DAEMON_START))
+# define AUDIT_DAEMON_START 1200
+#endif
+#if !(defined(AUDIT_DAEMON_END) || (defined(HAVE_DECL_AUDIT_DAEMON_END) && HAVE_DECL_AUDIT_DAEMON_END))
+# define AUDIT_DAEMON_END 1201
+#endif
+#if !(defined(AUDIT_DAEMON_ABORT) || (defined(HAVE_DECL_AUDIT_DAEMON_ABORT) && HAVE_DECL_AUDIT_DAEMON_ABORT))
+# define AUDIT_DAEMON_ABORT 1202
+#endif
+#if !(defined(AUDIT_DAEMON_CONFIG) || (defined(HAVE_DECL_AUDIT_DAEMON_CONFIG) && HAVE_DECL_AUDIT_DAEMON_CONFIG))
+# define AUDIT_DAEMON_CONFIG 1203
+#endif
+#if !(defined(AUDIT_SYSCALL) || (defined(HAVE_DECL_AUDIT_SYSCALL) && HAVE_DECL_AUDIT_SYSCALL))
+# define AUDIT_SYSCALL 1300
+#endif
+#if !(defined(AUDIT_FS_WATCH) || (defined(HAVE_DECL_AUDIT_FS_WATCH) && HAVE_DECL_AUDIT_FS_WATCH))
+# define AUDIT_FS_WATCH 1301
+#endif
+#if !(defined(AUDIT_PATH) || (defined(HAVE_DECL_AUDIT_PATH) && HAVE_DECL_AUDIT_PATH))
+# define AUDIT_PATH 1302
+#endif
+#if !(defined(AUDIT_IPC) || (defined(HAVE_DECL_AUDIT_IPC) && HAVE_DECL_AUDIT_IPC))
+# define AUDIT_IPC 1303
+#endif
+#if !(defined(AUDIT_SOCKETCALL) || (defined(HAVE_DECL_AUDIT_SOCKETCALL) && HAVE_DECL_AUDIT_SOCKETCALL))
+# define AUDIT_SOCKETCALL 1304
+#endif
+#if !(defined(AUDIT_CONFIG_CHANGE) || (defined(HAVE_DECL_AUDIT_CONFIG_CHANGE) && HAVE_DECL_AUDIT_CONFIG_CHANGE))
+# define AUDIT_CONFIG_CHANGE 1305
+#endif
+#if !(defined(AUDIT_SOCKADDR) || (defined(HAVE_DECL_AUDIT_SOCKADDR) && HAVE_DECL_AUDIT_SOCKADDR))
+# define AUDIT_SOCKADDR 1306
+#endif
+#if !(defined(AUDIT_CWD) || (defined(HAVE_DECL_AUDIT_CWD) && HAVE_DECL_AUDIT_CWD))
+# define AUDIT_CWD 1307
+#endif
+#if !(defined(AUDIT_EXECVE) || (defined(HAVE_DECL_AUDIT_EXECVE) && HAVE_DECL_AUDIT_EXECVE))
+# define AUDIT_EXECVE 1309
+#endif
+#if !(defined(AUDIT_IPC_SET_PERM) || (defined(HAVE_DECL_AUDIT_IPC_SET_PERM) && HAVE_DECL_AUDIT_IPC_SET_PERM))
+# define AUDIT_IPC_SET_PERM 1311
+#endif
+#if !(defined(AUDIT_MQ_OPEN) || (defined(HAVE_DECL_AUDIT_MQ_OPEN) && HAVE_DECL_AUDIT_MQ_OPEN))
+# define AUDIT_MQ_OPEN 1312
+#endif
+#if !(defined(AUDIT_MQ_SENDRECV) || (defined(HAVE_DECL_AUDIT_MQ_SENDRECV) && HAVE_DECL_AUDIT_MQ_SENDRECV))
+# define AUDIT_MQ_SENDRECV 1313
+#endif
+#if !(defined(AUDIT_MQ_NOTIFY) || (defined(HAVE_DECL_AUDIT_MQ_NOTIFY) && HAVE_DECL_AUDIT_MQ_NOTIFY))
+# define AUDIT_MQ_NOTIFY 1314
+#endif
+#if !(defined(AUDIT_MQ_GETSETATTR) || (defined(HAVE_DECL_AUDIT_MQ_GETSETATTR) && HAVE_DECL_AUDIT_MQ_GETSETATTR))
+# define AUDIT_MQ_GETSETATTR 1315
+#endif
+#if !(defined(AUDIT_KERNEL_OTHER) || (defined(HAVE_DECL_AUDIT_KERNEL_OTHER) && HAVE_DECL_AUDIT_KERNEL_OTHER))
+# define AUDIT_KERNEL_OTHER 1316
+#endif
+#if !(defined(AUDIT_FD_PAIR) || (defined(HAVE_DECL_AUDIT_FD_PAIR) && HAVE_DECL_AUDIT_FD_PAIR))
+# define AUDIT_FD_PAIR 1317
+#endif
+#if !(defined(AUDIT_OBJ_PID) || (defined(HAVE_DECL_AUDIT_OBJ_PID) && HAVE_DECL_AUDIT_OBJ_PID))
+# define AUDIT_OBJ_PID 1318
+#endif
+#if !(defined(AUDIT_TTY) || (defined(HAVE_DECL_AUDIT_TTY) && HAVE_DECL_AUDIT_TTY))
+# define AUDIT_TTY 1319
+#endif
+#if !(defined(AUDIT_EOE) || (defined(HAVE_DECL_AUDIT_EOE) && HAVE_DECL_AUDIT_EOE))
+# define AUDIT_EOE 1320
+#endif
+#if !(defined(AUDIT_BPRM_FCAPS) || (defined(HAVE_DECL_AUDIT_BPRM_FCAPS) && HAVE_DECL_AUDIT_BPRM_FCAPS))
+# define AUDIT_BPRM_FCAPS 1321
+#endif
+#if !(defined(AUDIT_CAPSET) || (defined(HAVE_DECL_AUDIT_CAPSET) && HAVE_DECL_AUDIT_CAPSET))
+# define AUDIT_CAPSET 1322
+#endif
+#if !(defined(AUDIT_MMAP) || (defined(HAVE_DECL_AUDIT_MMAP) && HAVE_DECL_AUDIT_MMAP))
+# define AUDIT_MMAP 1323
+#endif
+#if !(defined(AUDIT_NETFILTER_PKT) || (defined(HAVE_DECL_AUDIT_NETFILTER_PKT) && HAVE_DECL_AUDIT_NETFILTER_PKT))
+# define AUDIT_NETFILTER_PKT 1324
+#endif
+#if !(defined(AUDIT_NETFILTER_CFG) || (defined(HAVE_DECL_AUDIT_NETFILTER_CFG) && HAVE_DECL_AUDIT_NETFILTER_CFG))
+# define AUDIT_NETFILTER_CFG 1325
+#endif
+#if !(defined(AUDIT_SECCOMP) || (defined(HAVE_DECL_AUDIT_SECCOMP) && HAVE_DECL_AUDIT_SECCOMP))
+# define AUDIT_SECCOMP 1326
+#endif
+#if !(defined(AUDIT_PROCTITLE) || (defined(HAVE_DECL_AUDIT_PROCTITLE) && HAVE_DECL_AUDIT_PROCTITLE))
+# define AUDIT_PROCTITLE 1327
+#endif
+#if !(defined(AUDIT_FEATURE_CHANGE) || (defined(HAVE_DECL_AUDIT_FEATURE_CHANGE) && HAVE_DECL_AUDIT_FEATURE_CHANGE))
+# define AUDIT_FEATURE_CHANGE 1328
+#endif
+#if !(defined(AUDIT_REPLACE) || (defined(HAVE_DECL_AUDIT_REPLACE) && HAVE_DECL_AUDIT_REPLACE))
+# define AUDIT_REPLACE 1329
+#endif
+#if !(defined(AUDIT_KERN_MODULE) || (defined(HAVE_DECL_AUDIT_KERN_MODULE) && HAVE_DECL_AUDIT_KERN_MODULE))
+# define AUDIT_KERN_MODULE 1330
+#endif
+#if !(defined(AUDIT_AVC) || (defined(HAVE_DECL_AUDIT_AVC) && HAVE_DECL_AUDIT_AVC))
+# define AUDIT_AVC 1400
+#endif
+#if !(defined(AUDIT_SELINUX_ERR) || (defined(HAVE_DECL_AUDIT_SELINUX_ERR) && HAVE_DECL_AUDIT_SELINUX_ERR))
+# define AUDIT_SELINUX_ERR 1401
+#endif
+#if !(defined(AUDIT_AVC_PATH) || (defined(HAVE_DECL_AUDIT_AVC_PATH) && HAVE_DECL_AUDIT_AVC_PATH))
+# define AUDIT_AVC_PATH 1402
+#endif
+#if !(defined(AUDIT_MAC_POLICY_LOAD) || (defined(HAVE_DECL_AUDIT_MAC_POLICY_LOAD) && HAVE_DECL_AUDIT_MAC_POLICY_LOAD))
+# define AUDIT_MAC_POLICY_LOAD 1403
+#endif
+#if !(defined(AUDIT_MAC_STATUS) || (defined(HAVE_DECL_AUDIT_MAC_STATUS) && HAVE_DECL_AUDIT_MAC_STATUS))
+# define AUDIT_MAC_STATUS 1404
+#endif
+#if !(defined(AUDIT_MAC_CONFIG_CHANGE) || (defined(HAVE_DECL_AUDIT_MAC_CONFIG_CHANGE) && HAVE_DECL_AUDIT_MAC_CONFIG_CHANGE))
+# define AUDIT_MAC_CONFIG_CHANGE 1405
+#endif
+#if !(defined(AUDIT_MAC_UNLBL_ALLOW) || (defined(HAVE_DECL_AUDIT_MAC_UNLBL_ALLOW) && HAVE_DECL_AUDIT_MAC_UNLBL_ALLOW))
+# define AUDIT_MAC_UNLBL_ALLOW 1406
+#endif
+#if !(defined(AUDIT_MAC_CIPSOV4_ADD) || (defined(HAVE_DECL_AUDIT_MAC_CIPSOV4_ADD) && HAVE_DECL_AUDIT_MAC_CIPSOV4_ADD))
+# define AUDIT_MAC_CIPSOV4_ADD 1407
+#endif
+#if !(defined(AUDIT_MAC_CIPSOV4_DEL) || (defined(HAVE_DECL_AUDIT_MAC_CIPSOV4_DEL) && HAVE_DECL_AUDIT_MAC_CIPSOV4_DEL))
+# define AUDIT_MAC_CIPSOV4_DEL 1408
+#endif
+#if !(defined(AUDIT_MAC_MAP_ADD) || (defined(HAVE_DECL_AUDIT_MAC_MAP_ADD) && HAVE_DECL_AUDIT_MAC_MAP_ADD))
+# define AUDIT_MAC_MAP_ADD 1409
+#endif
+#if !(defined(AUDIT_MAC_MAP_DEL) || (defined(HAVE_DECL_AUDIT_MAC_MAP_DEL) && HAVE_DECL_AUDIT_MAC_MAP_DEL))
+# define AUDIT_MAC_MAP_DEL 1410
+#endif
+#if !(defined(AUDIT_MAC_IPSEC_ADDSA) || (defined(HAVE_DECL_AUDIT_MAC_IPSEC_ADDSA) && HAVE_DECL_AUDIT_MAC_IPSEC_ADDSA))
+# define AUDIT_MAC_IPSEC_ADDSA 1411
+#endif
+#if !(defined(AUDIT_MAC_IPSEC_DELSA) || (defined(HAVE_DECL_AUDIT_MAC_IPSEC_DELSA) && HAVE_DECL_AUDIT_MAC_IPSEC_DELSA))
+# define AUDIT_MAC_IPSEC_DELSA 1412
+#endif
+#if !(defined(AUDIT_MAC_IPSEC_ADDSPD) || (defined(HAVE_DECL_AUDIT_MAC_IPSEC_ADDSPD) && HAVE_DECL_AUDIT_MAC_IPSEC_ADDSPD))
+# define AUDIT_MAC_IPSEC_ADDSPD 1413
+#endif
+#if !(defined(AUDIT_MAC_IPSEC_DELSPD) || (defined(HAVE_DECL_AUDIT_MAC_IPSEC_DELSPD) && HAVE_DECL_AUDIT_MAC_IPSEC_DELSPD))
+# define AUDIT_MAC_IPSEC_DELSPD 1414
+#endif
+#if !(defined(AUDIT_MAC_IPSEC_EVENT) || (defined(HAVE_DECL_AUDIT_MAC_IPSEC_EVENT) && HAVE_DECL_AUDIT_MAC_IPSEC_EVENT))
+# define AUDIT_MAC_IPSEC_EVENT 1415
+#endif
+#if !(defined(AUDIT_MAC_UNLBL_STCADD) || (defined(HAVE_DECL_AUDIT_MAC_UNLBL_STCADD) && HAVE_DECL_AUDIT_MAC_UNLBL_STCADD))
+# define AUDIT_MAC_UNLBL_STCADD 1416
+#endif
+#if !(defined(AUDIT_MAC_UNLBL_STCDEL) || (defined(HAVE_DECL_AUDIT_MAC_UNLBL_STCDEL) && HAVE_DECL_AUDIT_MAC_UNLBL_STCDEL))
+# define AUDIT_MAC_UNLBL_STCDEL 1417
+#endif
+#if !(defined(AUDIT_MAC_CALIPSO_ADD) || (defined(HAVE_DECL_AUDIT_MAC_CALIPSO_ADD) && HAVE_DECL_AUDIT_MAC_CALIPSO_ADD))
+# define AUDIT_MAC_CALIPSO_ADD 1418
+#endif
+#if !(defined(AUDIT_MAC_CALIPSO_DEL) || (defined(HAVE_DECL_AUDIT_MAC_CALIPSO_DEL) && HAVE_DECL_AUDIT_MAC_CALIPSO_DEL))
+# define AUDIT_MAC_CALIPSO_DEL 1419
+#endif
+#if !(defined(AUDIT_ANOM_PROMISCUOUS) || (defined(HAVE_DECL_AUDIT_ANOM_PROMISCUOUS) && HAVE_DECL_AUDIT_ANOM_PROMISCUOUS))
+# define AUDIT_ANOM_PROMISCUOUS 1700
+#endif
+#if !(defined(AUDIT_ANOM_ABEND) || (defined(HAVE_DECL_AUDIT_ANOM_ABEND) && HAVE_DECL_AUDIT_ANOM_ABEND))
+# define AUDIT_ANOM_ABEND 1701
+#endif
+#if !(defined(AUDIT_ANOM_LINK) || (defined(HAVE_DECL_AUDIT_ANOM_LINK) && HAVE_DECL_AUDIT_ANOM_LINK))
+# define AUDIT_ANOM_LINK 1702
+#endif
+#if !(defined(AUDIT_LAST_KERN_ANOM_MSG) || (defined(HAVE_DECL_AUDIT_LAST_KERN_ANOM_MSG) && HAVE_DECL_AUDIT_LAST_KERN_ANOM_MSG))
+# define AUDIT_LAST_KERN_ANOM_MSG 1799
+#endif
+#if !(defined(AUDIT_INTEGRITY_DATA) || (defined(HAVE_DECL_AUDIT_INTEGRITY_DATA) && HAVE_DECL_AUDIT_INTEGRITY_DATA))
+# define AUDIT_INTEGRITY_DATA 1800
+#endif
+#if !(defined(AUDIT_INTEGRITY_METADATA) || (defined(HAVE_DECL_AUDIT_INTEGRITY_METADATA) && HAVE_DECL_AUDIT_INTEGRITY_METADATA))
+# define AUDIT_INTEGRITY_METADATA 1801
+#endif
+#if !(defined(AUDIT_INTEGRITY_STATUS) || (defined(HAVE_DECL_AUDIT_INTEGRITY_STATUS) && HAVE_DECL_AUDIT_INTEGRITY_STATUS))
+# define AUDIT_INTEGRITY_STATUS 1802
+#endif
+#if !(defined(AUDIT_INTEGRITY_HASH) || (defined(HAVE_DECL_AUDIT_INTEGRITY_HASH) && HAVE_DECL_AUDIT_INTEGRITY_HASH))
+# define AUDIT_INTEGRITY_HASH 1803
+#endif
+#if !(defined(AUDIT_INTEGRITY_PCR) || (defined(HAVE_DECL_AUDIT_INTEGRITY_PCR) && HAVE_DECL_AUDIT_INTEGRITY_PCR))
+# define AUDIT_INTEGRITY_PCR 1804
+#endif
+#if !(defined(AUDIT_INTEGRITY_RULE) || (defined(HAVE_DECL_AUDIT_INTEGRITY_RULE) && HAVE_DECL_AUDIT_INTEGRITY_RULE))
+# define AUDIT_INTEGRITY_RULE 1805
+#endif
+#if !(defined(AUDIT_KERNEL) || (defined(HAVE_DECL_AUDIT_KERNEL) && HAVE_DECL_AUDIT_KERNEL))
+# define AUDIT_KERNEL 2000
+#endif
+#if !(defined(AUDIT_FIRST_USER_MSG2) || (defined(HAVE_DECL_AUDIT_FIRST_USER_MSG2) && HAVE_DECL_AUDIT_FIRST_USER_MSG2))
+# define AUDIT_FIRST_USER_MSG2 2100
+#endif
+#if !(defined(AUDIT_LAST_USER_MSG2) || (defined(HAVE_DECL_AUDIT_LAST_USER_MSG2) && HAVE_DECL_AUDIT_LAST_USER_MSG2))
+# define AUDIT_LAST_USER_MSG2 2999
+#endif
+
+#ifdef IN_MPERS
+
+# error static const struct xlat nl_audit_types in mpers mode
+
+#else
+
+static
+const struct xlat nl_audit_types[] = {
+ XLAT(AUDIT_GET),
+ XLAT(AUDIT_SET),
+ XLAT(AUDIT_LIST),
+ XLAT(AUDIT_ADD),
+ XLAT(AUDIT_DEL),
+ XLAT(AUDIT_USER),
+ XLAT(AUDIT_LOGIN),
+ XLAT(AUDIT_WATCH_INS),
+ XLAT(AUDIT_WATCH_REM),
+ XLAT(AUDIT_WATCH_LIST),
+ XLAT(AUDIT_SIGNAL_INFO),
+ XLAT(AUDIT_ADD_RULE),
+ XLAT(AUDIT_DEL_RULE),
+ XLAT(AUDIT_LIST_RULES),
+ XLAT(AUDIT_TRIM),
+ XLAT(AUDIT_MAKE_EQUIV),
+ XLAT(AUDIT_TTY_GET),
+ XLAT(AUDIT_TTY_SET),
+ XLAT(AUDIT_SET_FEATURE),
+ XLAT(AUDIT_GET_FEATURE),
+
+ XLAT(AUDIT_FIRST_USER_MSG),
+ XLAT(AUDIT_USER_AVC),
+ XLAT(AUDIT_USER_TTY),
+ XLAT(AUDIT_LAST_USER_MSG),
+
+ XLAT(AUDIT_DAEMON_START),
+ XLAT(AUDIT_DAEMON_END),
+ XLAT(AUDIT_DAEMON_ABORT),
+ XLAT(AUDIT_DAEMON_CONFIG),
+
+ XLAT(AUDIT_SYSCALL),
+ XLAT(AUDIT_FS_WATCH),
+ XLAT(AUDIT_PATH),
+ XLAT(AUDIT_IPC),
+ XLAT(AUDIT_SOCKETCALL),
+ XLAT(AUDIT_CONFIG_CHANGE),
+ XLAT(AUDIT_SOCKADDR),
+ XLAT(AUDIT_CWD),
+ XLAT(AUDIT_EXECVE),
+ XLAT(AUDIT_IPC_SET_PERM),
+ XLAT(AUDIT_MQ_OPEN),
+ XLAT(AUDIT_MQ_SENDRECV),
+ XLAT(AUDIT_MQ_NOTIFY),
+ XLAT(AUDIT_MQ_GETSETATTR),
+ XLAT(AUDIT_KERNEL_OTHER),
+ XLAT(AUDIT_FD_PAIR),
+ XLAT(AUDIT_OBJ_PID),
+ XLAT(AUDIT_TTY),
+ XLAT(AUDIT_EOE),
+ XLAT(AUDIT_BPRM_FCAPS),
+ XLAT(AUDIT_CAPSET),
+ XLAT(AUDIT_MMAP),
+ XLAT(AUDIT_NETFILTER_PKT),
+ XLAT(AUDIT_NETFILTER_CFG),
+ XLAT(AUDIT_SECCOMP),
+ XLAT(AUDIT_PROCTITLE),
+ XLAT(AUDIT_FEATURE_CHANGE),
+ XLAT(AUDIT_REPLACE),
+ XLAT(AUDIT_KERN_MODULE),
+
+ XLAT(AUDIT_AVC),
+ XLAT(AUDIT_SELINUX_ERR),
+ XLAT(AUDIT_AVC_PATH),
+ XLAT(AUDIT_MAC_POLICY_LOAD),
+ XLAT(AUDIT_MAC_STATUS),
+ XLAT(AUDIT_MAC_CONFIG_CHANGE),
+ XLAT(AUDIT_MAC_UNLBL_ALLOW),
+ XLAT(AUDIT_MAC_CIPSOV4_ADD),
+ XLAT(AUDIT_MAC_CIPSOV4_DEL),
+ XLAT(AUDIT_MAC_MAP_ADD),
+ XLAT(AUDIT_MAC_MAP_DEL),
+ XLAT(AUDIT_MAC_IPSEC_ADDSA),
+ XLAT(AUDIT_MAC_IPSEC_DELSA),
+ XLAT(AUDIT_MAC_IPSEC_ADDSPD),
+ XLAT(AUDIT_MAC_IPSEC_DELSPD),
+ XLAT(AUDIT_MAC_IPSEC_EVENT),
+ XLAT(AUDIT_MAC_UNLBL_STCADD),
+ XLAT(AUDIT_MAC_UNLBL_STCDEL),
+ XLAT(AUDIT_MAC_CALIPSO_ADD),
+ XLAT(AUDIT_MAC_CALIPSO_DEL),
+
+ XLAT(AUDIT_ANOM_PROMISCUOUS),
+ XLAT(AUDIT_ANOM_ABEND),
+ XLAT(AUDIT_ANOM_LINK),
+ XLAT(AUDIT_LAST_KERN_ANOM_MSG),
+
+ XLAT(AUDIT_INTEGRITY_DATA),
+ XLAT(AUDIT_INTEGRITY_METADATA),
+ XLAT(AUDIT_INTEGRITY_STATUS),
+ XLAT(AUDIT_INTEGRITY_HASH),
+ XLAT(AUDIT_INTEGRITY_PCR),
+ XLAT(AUDIT_INTEGRITY_RULE),
+
+ XLAT(AUDIT_KERNEL),
+
+ XLAT(AUDIT_FIRST_USER_MSG2),
+ XLAT(AUDIT_LAST_USER_MSG2),
+ XLAT_END
+};
+
+#endif /* !IN_MPERS */
diff --git a/xlat/nl_audit_types.in b/xlat/nl_audit_types.in
new file mode 100644
index 0000000..8b52010
--- /dev/null
+++ b/xlat/nl_audit_types.in
@@ -0,0 +1,98 @@
+AUDIT_GET	1000
+AUDIT_SET	1001
+AUDIT_LIST	1002
+AUDIT_ADD	1003
+AUDIT_DEL	1004
+AUDIT_USER	1005
+AUDIT_LOGIN	1006
+AUDIT_WATCH_INS	1007
+AUDIT_WATCH_REM	1008
+AUDIT_WATCH_LIST	1009
+AUDIT_SIGNAL_INFO	1010
+AUDIT_ADD_RULE	1011
+AUDIT_DEL_RULE	1012
+AUDIT_LIST_RULES	1013
+AUDIT_TRIM	1014
+AUDIT_MAKE_EQUIV	1015
+AUDIT_TTY_GET	1016
+AUDIT_TTY_SET	1017
+AUDIT_SET_FEATURE	1018
+AUDIT_GET_FEATURE	1019
+
+AUDIT_FIRST_USER_MSG	1100
+AUDIT_USER_AVC	1107
+AUDIT_USER_TTY	1124
+AUDIT_LAST_USER_MSG	1199
+
+AUDIT_DAEMON_START	1200
+AUDIT_DAEMON_END	1201
+AUDIT_DAEMON_ABORT	1202
+AUDIT_DAEMON_CONFIG	1203
+
+AUDIT_SYSCALL	1300
+AUDIT_FS_WATCH	1301
+AUDIT_PATH	1302
+AUDIT_IPC	1303
+AUDIT_SOCKETCALL	1304
+AUDIT_CONFIG_CHANGE	1305
+AUDIT_SOCKADDR	1306
+AUDIT_CWD	1307
+AUDIT_EXECVE	1309
+AUDIT_IPC_SET_PERM	1311
+AUDIT_MQ_OPEN	1312
+AUDIT_MQ_SENDRECV	1313
+AUDIT_MQ_NOTIFY	1314
+AUDIT_MQ_GETSETATTR	1315
+AUDIT_KERNEL_OTHER	1316
+AUDIT_FD_PAIR	1317
+AUDIT_OBJ_PID	1318
+AUDIT_TTY	1319
+AUDIT_EOE	1320
+AUDIT_BPRM_FCAPS	1321
+AUDIT_CAPSET	1322
+AUDIT_MMAP	1323
+AUDIT_NETFILTER_PKT	1324
+AUDIT_NETFILTER_CFG	1325
+AUDIT_SECCOMP	1326
+AUDIT_PROCTITLE	1327
+AUDIT_FEATURE_CHANGE	1328
+AUDIT_REPLACE	1329
+AUDIT_KERN_MODULE	1330
+
+AUDIT_AVC	1400
+AUDIT_SELINUX_ERR	1401
+AUDIT_AVC_PATH	1402
+AUDIT_MAC_POLICY_LOAD	1403
+AUDIT_MAC_STATUS	1404
+AUDIT_MAC_CONFIG_CHANGE	1405
+AUDIT_MAC_UNLBL_ALLOW	1406
+AUDIT_MAC_CIPSOV4_ADD	1407
+AUDIT_MAC_CIPSOV4_DEL	1408
+AUDIT_MAC_MAP_ADD	1409
+AUDIT_MAC_MAP_DEL	1410
+AUDIT_MAC_IPSEC_ADDSA	1411
+AUDIT_MAC_IPSEC_DELSA	1412
+AUDIT_MAC_IPSEC_ADDSPD	1413
+AUDIT_MAC_IPSEC_DELSPD	1414
+AUDIT_MAC_IPSEC_EVENT	1415
+AUDIT_MAC_UNLBL_STCADD	1416
+AUDIT_MAC_UNLBL_STCDEL	1417
+AUDIT_MAC_CALIPSO_ADD	1418
+AUDIT_MAC_CALIPSO_DEL	1419
+
+AUDIT_ANOM_PROMISCUOUS	1700
+AUDIT_ANOM_ABEND	1701
+AUDIT_ANOM_LINK	1702
+AUDIT_LAST_KERN_ANOM_MSG	1799
+
+AUDIT_INTEGRITY_DATA	1800
+AUDIT_INTEGRITY_METADATA	1801
+AUDIT_INTEGRITY_STATUS	1802
+AUDIT_INTEGRITY_HASH	1803
+AUDIT_INTEGRITY_PCR	1804
+AUDIT_INTEGRITY_RULE	1805
+
+AUDIT_KERNEL	2000
+
+AUDIT_FIRST_USER_MSG2	2100
+AUDIT_LAST_USER_MSG2	2999
diff --git a/xlat/nl_netfilter_msg_types.h b/xlat/nl_netfilter_msg_types.h
new file mode 100644
index 0000000..ecc8e10
--- /dev/null
+++ b/xlat/nl_netfilter_msg_types.h
@@ -0,0 +1,22 @@
+/* Generated by ./xlat/gen.sh from ./xlat/nl_netfilter_msg_types.in; do not edit. */
+#if !(defined(NFNL_MSG_BATCH_BEGIN) || (defined(HAVE_DECL_NFNL_MSG_BATCH_BEGIN) && HAVE_DECL_NFNL_MSG_BATCH_BEGIN))
+# define NFNL_MSG_BATCH_BEGIN 0x10
+#endif
+#if !(defined(NFNL_MSG_BATCH_END) || (defined(HAVE_DECL_NFNL_MSG_BATCH_END) && HAVE_DECL_NFNL_MSG_BATCH_END))
+# define NFNL_MSG_BATCH_END 0x11
+#endif
+
+#ifdef IN_MPERS
+
+# error static const struct xlat nl_netfilter_msg_types in mpers mode
+
+#else
+
+static
+const struct xlat nl_netfilter_msg_types[] = {
+ XLAT(NFNL_MSG_BATCH_BEGIN),
+ XLAT(NFNL_MSG_BATCH_END),
+ XLAT_END
+};
+
+#endif /* !IN_MPERS */
diff --git a/xlat/nl_netfilter_msg_types.in b/xlat/nl_netfilter_msg_types.in
new file mode 100644
index 0000000..dd13207
--- /dev/null
+++ b/xlat/nl_netfilter_msg_types.in
@@ -0,0 +1,2 @@
+NFNL_MSG_BATCH_BEGIN	0x10
+NFNL_MSG_BATCH_END	0x11
diff --git a/xlat/nl_netfilter_subsys_ids.h b/xlat/nl_netfilter_subsys_ids.h
new file mode 100644
index 0000000..73b8cd4
--- /dev/null
+++ b/xlat/nl_netfilter_subsys_ids.h
@@ -0,0 +1,66 @@
+/* Generated by ./xlat/gen.sh from ./xlat/nl_netfilter_subsys_ids.in; do not edit. */
+#if !(defined(NFNL_SUBSYS_NONE) || (defined(HAVE_DECL_NFNL_SUBSYS_NONE) && HAVE_DECL_NFNL_SUBSYS_NONE))
+# define NFNL_SUBSYS_NONE 0
+#endif
+#if !(defined(NFNL_SUBSYS_CTNETLINK) || (defined(HAVE_DECL_NFNL_SUBSYS_CTNETLINK) && HAVE_DECL_NFNL_SUBSYS_CTNETLINK))
+# define NFNL_SUBSYS_CTNETLINK 1
+#endif
+#if !(defined(NFNL_SUBSYS_CTNETLINK_EXP) || (defined(HAVE_DECL_NFNL_SUBSYS_CTNETLINK_EXP) && HAVE_DECL_NFNL_SUBSYS_CTNETLINK_EXP))
+# define NFNL_SUBSYS_CTNETLINK_EXP 2
+#endif
+#if !(defined(NFNL_SUBSYS_QUEUE) || (defined(HAVE_DECL_NFNL_SUBSYS_QUEUE) && HAVE_DECL_NFNL_SUBSYS_QUEUE))
+# define NFNL_SUBSYS_QUEUE 3
+#endif
+#if !(defined(NFNL_SUBSYS_ULOG) || (defined(HAVE_DECL_NFNL_SUBSYS_ULOG) && HAVE_DECL_NFNL_SUBSYS_ULOG))
+# define NFNL_SUBSYS_ULOG 4
+#endif
+#if !(defined(NFNL_SUBSYS_OSF) || (defined(HAVE_DECL_NFNL_SUBSYS_OSF) && HAVE_DECL_NFNL_SUBSYS_OSF))
+# define NFNL_SUBSYS_OSF 5
+#endif
+#if !(defined(NFNL_SUBSYS_IPSET) || (defined(HAVE_DECL_NFNL_SUBSYS_IPSET) && HAVE_DECL_NFNL_SUBSYS_IPSET))
+# define NFNL_SUBSYS_IPSET 6
+#endif
+#if !(defined(NFNL_SUBSYS_ACCT) || (defined(HAVE_DECL_NFNL_SUBSYS_ACCT) && HAVE_DECL_NFNL_SUBSYS_ACCT))
+# define NFNL_SUBSYS_ACCT 7
+#endif
+#if !(defined(NFNL_SUBSYS_CTNETLINK_TIMEOUT) || (defined(HAVE_DECL_NFNL_SUBSYS_CTNETLINK_TIMEOUT) && HAVE_DECL_NFNL_SUBSYS_CTNETLINK_TIMEOUT))
+# define NFNL_SUBSYS_CTNETLINK_TIMEOUT 8
+#endif
+#if !(defined(NFNL_SUBSYS_CTHELPER) || (defined(HAVE_DECL_NFNL_SUBSYS_CTHELPER) && HAVE_DECL_NFNL_SUBSYS_CTHELPER))
+# define NFNL_SUBSYS_CTHELPER 9
+#endif
+#if !(defined(NFNL_SUBSYS_NFTABLES) || (defined(HAVE_DECL_NFNL_SUBSYS_NFTABLES) && HAVE_DECL_NFNL_SUBSYS_NFTABLES))
+# define NFNL_SUBSYS_NFTABLES 10
+#endif
+#if !(defined(NFNL_SUBSYS_NFT_COMPAT) || (defined(HAVE_DECL_NFNL_SUBSYS_NFT_COMPAT) && HAVE_DECL_NFNL_SUBSYS_NFT_COMPAT))
+# define NFNL_SUBSYS_NFT_COMPAT 11
+#endif
+#if !(defined(NFNL_SUBSYS_COUNT) || (defined(HAVE_DECL_NFNL_SUBSYS_COUNT) && HAVE_DECL_NFNL_SUBSYS_COUNT))
+# define NFNL_SUBSYS_COUNT 12
+#endif
+
+#ifdef IN_MPERS
+
+# error static const struct xlat nl_netfilter_subsys_ids in mpers mode
+
+#else
+
+static
+const struct xlat nl_netfilter_subsys_ids[] = {
+ XLAT(NFNL_SUBSYS_NONE),
+ XLAT(NFNL_SUBSYS_CTNETLINK),
+ XLAT(NFNL_SUBSYS_CTNETLINK_EXP),
+ XLAT(NFNL_SUBSYS_QUEUE),
+ XLAT(NFNL_SUBSYS_ULOG),
+ XLAT(NFNL_SUBSYS_OSF),
+ XLAT(NFNL_SUBSYS_IPSET),
+ XLAT(NFNL_SUBSYS_ACCT),
+ XLAT(NFNL_SUBSYS_CTNETLINK_TIMEOUT),
+ XLAT(NFNL_SUBSYS_CTHELPER),
+ XLAT(NFNL_SUBSYS_NFTABLES),
+ XLAT(NFNL_SUBSYS_NFT_COMPAT),
+ XLAT(NFNL_SUBSYS_COUNT),
+ XLAT_END
+};
+
+#endif /* !IN_MPERS */
diff --git a/xlat/nl_netfilter_subsys_ids.in b/xlat/nl_netfilter_subsys_ids.in
new file mode 100644
index 0000000..3c66eb5
--- /dev/null
+++ b/xlat/nl_netfilter_subsys_ids.in
@@ -0,0 +1,13 @@
+NFNL_SUBSYS_NONE		0
+NFNL_SUBSYS_CTNETLINK		1
+NFNL_SUBSYS_CTNETLINK_EXP	2
+NFNL_SUBSYS_QUEUE		3
+NFNL_SUBSYS_ULOG		4
+NFNL_SUBSYS_OSF			5
+NFNL_SUBSYS_IPSET		6
+NFNL_SUBSYS_ACCT		7
+NFNL_SUBSYS_CTNETLINK_TIMEOUT	8
+NFNL_SUBSYS_CTHELPER		9
+NFNL_SUBSYS_NFTABLES		10
+NFNL_SUBSYS_NFT_COMPAT		11
+NFNL_SUBSYS_COUNT		12
diff --git a/xlat/nl_route_types.h b/xlat/nl_route_types.h
new file mode 100644
index 0000000..b9ab36d
--- /dev/null
+++ b/xlat/nl_route_types.h
@@ -0,0 +1,241 @@
+/* Generated by ./xlat/gen.sh from ./xlat/nl_route_types.in; do not edit. */
+#if !(defined(RTM_NEWLINK) || (defined(HAVE_DECL_RTM_NEWLINK) && HAVE_DECL_RTM_NEWLINK))
+# define RTM_NEWLINK 16
+#endif
+#if !(defined(RTM_DELLINK) || (defined(HAVE_DECL_RTM_DELLINK) && HAVE_DECL_RTM_DELLINK))
+# define RTM_DELLINK 17
+#endif
+#if !(defined(RTM_GETLINK) || (defined(HAVE_DECL_RTM_GETLINK) && HAVE_DECL_RTM_GETLINK))
+# define RTM_GETLINK 18
+#endif
+#if !(defined(RTM_SETLINK) || (defined(HAVE_DECL_RTM_SETLINK) && HAVE_DECL_RTM_SETLINK))
+# define RTM_SETLINK 19
+#endif
+#if !(defined(RTM_NEWADDR) || (defined(HAVE_DECL_RTM_NEWADDR) && HAVE_DECL_RTM_NEWADDR))
+# define RTM_NEWADDR 20
+#endif
+#if !(defined(RTM_DELADDR) || (defined(HAVE_DECL_RTM_DELADDR) && HAVE_DECL_RTM_DELADDR))
+# define RTM_DELADDR 21
+#endif
+#if !(defined(RTM_GETADDR) || (defined(HAVE_DECL_RTM_GETADDR) && HAVE_DECL_RTM_GETADDR))
+# define RTM_GETADDR 22
+#endif
+#if !(defined(RTM_NEWROUTE) || (defined(HAVE_DECL_RTM_NEWROUTE) && HAVE_DECL_RTM_NEWROUTE))
+# define RTM_NEWROUTE 24
+#endif
+#if !(defined(RTM_DELROUTE) || (defined(HAVE_DECL_RTM_DELROUTE) && HAVE_DECL_RTM_DELROUTE))
+# define RTM_DELROUTE 25
+#endif
+#if !(defined(RTM_GETROUTE) || (defined(HAVE_DECL_RTM_GETROUTE) && HAVE_DECL_RTM_GETROUTE))
+# define RTM_GETROUTE 26
+#endif
+#if !(defined(RTM_NEWNEIGH) || (defined(HAVE_DECL_RTM_NEWNEIGH) && HAVE_DECL_RTM_NEWNEIGH))
+# define RTM_NEWNEIGH 28
+#endif
+#if !(defined(RTM_DELNEIGH) || (defined(HAVE_DECL_RTM_DELNEIGH) && HAVE_DECL_RTM_DELNEIGH))
+# define RTM_DELNEIGH 29
+#endif
+#if !(defined(RTM_GETNEIGH) || (defined(HAVE_DECL_RTM_GETNEIGH) && HAVE_DECL_RTM_GETNEIGH))
+# define RTM_GETNEIGH 30
+#endif
+#if !(defined(RTM_NEWRULE) || (defined(HAVE_DECL_RTM_NEWRULE) && HAVE_DECL_RTM_NEWRULE))
+# define RTM_NEWRULE 32
+#endif
+#if !(defined(RTM_DELRULE) || (defined(HAVE_DECL_RTM_DELRULE) && HAVE_DECL_RTM_DELRULE))
+# define RTM_DELRULE 33
+#endif
+#if !(defined(RTM_GETRULE) || (defined(HAVE_DECL_RTM_GETRULE) && HAVE_DECL_RTM_GETRULE))
+# define RTM_GETRULE 34
+#endif
+#if !(defined(RTM_NEWQDISC) || (defined(HAVE_DECL_RTM_NEWQDISC) && HAVE_DECL_RTM_NEWQDISC))
+# define RTM_NEWQDISC 36
+#endif
+#if !(defined(RTM_DELQDISC) || (defined(HAVE_DECL_RTM_DELQDISC) && HAVE_DECL_RTM_DELQDISC))
+# define RTM_DELQDISC 37
+#endif
+#if !(defined(RTM_GETQDISC) || (defined(HAVE_DECL_RTM_GETQDISC) && HAVE_DECL_RTM_GETQDISC))
+# define RTM_GETQDISC 38
+#endif
+#if !(defined(RTM_NEWTCLASS) || (defined(HAVE_DECL_RTM_NEWTCLASS) && HAVE_DECL_RTM_NEWTCLASS))
+# define RTM_NEWTCLASS 40
+#endif
+#if !(defined(RTM_DELTCLASS) || (defined(HAVE_DECL_RTM_DELTCLASS) && HAVE_DECL_RTM_DELTCLASS))
+# define RTM_DELTCLASS 41
+#endif
+#if !(defined(RTM_GETTCLASS) || (defined(HAVE_DECL_RTM_GETTCLASS) && HAVE_DECL_RTM_GETTCLASS))
+# define RTM_GETTCLASS 42
+#endif
+#if !(defined(RTM_NEWTFILTER) || (defined(HAVE_DECL_RTM_NEWTFILTER) && HAVE_DECL_RTM_NEWTFILTER))
+# define RTM_NEWTFILTER 44
+#endif
+#if !(defined(RTM_DELTFILTER) || (defined(HAVE_DECL_RTM_DELTFILTER) && HAVE_DECL_RTM_DELTFILTER))
+# define RTM_DELTFILTER 45
+#endif
+#if !(defined(RTM_GETTFILTER) || (defined(HAVE_DECL_RTM_GETTFILTER) && HAVE_DECL_RTM_GETTFILTER))
+# define RTM_GETTFILTER 46
+#endif
+#if !(defined(RTM_NEWACTION) || (defined(HAVE_DECL_RTM_NEWACTION) && HAVE_DECL_RTM_NEWACTION))
+# define RTM_NEWACTION 48
+#endif
+#if !(defined(RTM_DELACTION) || (defined(HAVE_DECL_RTM_DELACTION) && HAVE_DECL_RTM_DELACTION))
+# define RTM_DELACTION 49
+#endif
+#if !(defined(RTM_GETACTION) || (defined(HAVE_DECL_RTM_GETACTION) && HAVE_DECL_RTM_GETACTION))
+# define RTM_GETACTION 50
+#endif
+#if !(defined(RTM_NEWPREFIX) || (defined(HAVE_DECL_RTM_NEWPREFIX) && HAVE_DECL_RTM_NEWPREFIX))
+# define RTM_NEWPREFIX 52
+#endif
+#if !(defined(RTM_GETPREFIX) || (defined(HAVE_DECL_RTM_GETPREFIX) && HAVE_DECL_RTM_GETPREFIX))
+# define RTM_GETPREFIX 54
+#endif
+#if !(defined(RTM_GETMULTICAST) || (defined(HAVE_DECL_RTM_GETMULTICAST) && HAVE_DECL_RTM_GETMULTICAST))
+# define RTM_GETMULTICAST 58
+#endif
+#if !(defined(RTM_GETANYCAST) || (defined(HAVE_DECL_RTM_GETANYCAST) && HAVE_DECL_RTM_GETANYCAST))
+# define RTM_GETANYCAST 62
+#endif
+#if !(defined(RTM_NEWNEIGHTBL) || (defined(HAVE_DECL_RTM_NEWNEIGHTBL) && HAVE_DECL_RTM_NEWNEIGHTBL))
+# define RTM_NEWNEIGHTBL 64
+#endif
+#if !(defined(RTM_GETNEIGHTBL) || (defined(HAVE_DECL_RTM_GETNEIGHTBL) && HAVE_DECL_RTM_GETNEIGHTBL))
+# define RTM_GETNEIGHTBL 66
+#endif
+#if !(defined(RTM_SETNEIGHTBL) || (defined(HAVE_DECL_RTM_SETNEIGHTBL) && HAVE_DECL_RTM_SETNEIGHTBL))
+# define RTM_SETNEIGHTBL 67
+#endif
+#if !(defined(RTM_NEWNDUSEROPT) || (defined(HAVE_DECL_RTM_NEWNDUSEROPT) && HAVE_DECL_RTM_NEWNDUSEROPT))
+# define RTM_NEWNDUSEROPT 68
+#endif
+#if !(defined(RTM_NEWADDRLABEL) || (defined(HAVE_DECL_RTM_NEWADDRLABEL) && HAVE_DECL_RTM_NEWADDRLABEL))
+# define RTM_NEWADDRLABEL 72
+#endif
+#if !(defined(RTM_DELADDRLABEL) || (defined(HAVE_DECL_RTM_DELADDRLABEL) && HAVE_DECL_RTM_DELADDRLABEL))
+# define RTM_DELADDRLABEL 73
+#endif
+#if !(defined(RTM_GETADDRLABEL) || (defined(HAVE_DECL_RTM_GETADDRLABEL) && HAVE_DECL_RTM_GETADDRLABEL))
+# define RTM_GETADDRLABEL 74
+#endif
+#if !(defined(RTM_GETDCB) || (defined(HAVE_DECL_RTM_GETDCB) && HAVE_DECL_RTM_GETDCB))
+# define RTM_GETDCB 78
+#endif
+#if !(defined(RTM_SETDCB) || (defined(HAVE_DECL_RTM_SETDCB) && HAVE_DECL_RTM_SETDCB))
+# define RTM_SETDCB 79
+#endif
+#if !(defined(RTM_NEWNETCONF) || (defined(HAVE_DECL_RTM_NEWNETCONF) && HAVE_DECL_RTM_NEWNETCONF))
+# define RTM_NEWNETCONF 80
+#endif
+#if !(defined(RTM_DELNETCONF) || (defined(HAVE_DECL_RTM_DELNETCONF) && HAVE_DECL_RTM_DELNETCONF))
+# define RTM_DELNETCONF 81
+#endif
+#if !(defined(RTM_GETNETCONF) || (defined(HAVE_DECL_RTM_GETNETCONF) && HAVE_DECL_RTM_GETNETCONF))
+# define RTM_GETNETCONF 82
+#endif
+#if !(defined(RTM_NEWMDB) || (defined(HAVE_DECL_RTM_NEWMDB) && HAVE_DECL_RTM_NEWMDB))
+# define RTM_NEWMDB 84
+#endif
+#if !(defined(RTM_DELMDB) || (defined(HAVE_DECL_RTM_DELMDB) && HAVE_DECL_RTM_DELMDB))
+# define RTM_DELMDB 85
+#endif
+#if !(defined(RTM_GETMDB) || (defined(HAVE_DECL_RTM_GETMDB) && HAVE_DECL_RTM_GETMDB))
+# define RTM_GETMDB 86
+#endif
+#if !(defined(RTM_NEWNSID) || (defined(HAVE_DECL_RTM_NEWNSID) && HAVE_DECL_RTM_NEWNSID))
+# define RTM_NEWNSID 88
+#endif
+#if !(defined(RTM_DELNSID) || (defined(HAVE_DECL_RTM_DELNSID) && HAVE_DECL_RTM_DELNSID))
+# define RTM_DELNSID 89
+#endif
+#if !(defined(RTM_GETNSID) || (defined(HAVE_DECL_RTM_GETNSID) && HAVE_DECL_RTM_GETNSID))
+# define RTM_GETNSID 90
+#endif
+#if !(defined(RTM_NEWSTATS) || (defined(HAVE_DECL_RTM_NEWSTATS) && HAVE_DECL_RTM_NEWSTATS))
+# define RTM_NEWSTATS 92
+#endif
+#if !(defined(RTM_GETSTATS) || (defined(HAVE_DECL_RTM_GETSTATS) && HAVE_DECL_RTM_GETSTATS))
+# define RTM_GETSTATS 94
+#endif
+
+#ifdef IN_MPERS
+
+# error static const struct xlat nl_route_types in mpers mode
+
+#else
+
+static
+const struct xlat nl_route_types[] = {
+ XLAT(RTM_NEWLINK),
+ XLAT(RTM_DELLINK),
+ XLAT(RTM_GETLINK),
+ XLAT(RTM_SETLINK),
+
+ XLAT(RTM_NEWADDR),
+ XLAT(RTM_DELADDR),
+ XLAT(RTM_GETADDR),
+
+ XLAT(RTM_NEWROUTE),
+ XLAT(RTM_DELROUTE),
+ XLAT(RTM_GETROUTE),
+
+ XLAT(RTM_NEWNEIGH),
+ XLAT(RTM_DELNEIGH),
+ XLAT(RTM_GETNEIGH),
+
+ XLAT(RTM_NEWRULE),
+ XLAT(RTM_DELRULE),
+ XLAT(RTM_GETRULE),
+
+ XLAT(RTM_NEWQDISC),
+ XLAT(RTM_DELQDISC),
+ XLAT(RTM_GETQDISC),
+
+ XLAT(RTM_NEWTCLASS),
+ XLAT(RTM_DELTCLASS),
+ XLAT(RTM_GETTCLASS),
+
+ XLAT(RTM_NEWTFILTER),
+ XLAT(RTM_DELTFILTER),
+ XLAT(RTM_GETTFILTER),
+
+ XLAT(RTM_NEWACTION),
+ XLAT(RTM_DELACTION),
+ XLAT(RTM_GETACTION),
+
+ XLAT(RTM_NEWPREFIX),
+ XLAT(RTM_GETPREFIX),
+
+ XLAT(RTM_GETMULTICAST),
+
+ XLAT(RTM_GETANYCAST),
+
+ XLAT(RTM_NEWNEIGHTBL),
+ XLAT(RTM_GETNEIGHTBL),
+ XLAT(RTM_SETNEIGHTBL),
+
+ XLAT(RTM_NEWNDUSEROPT),
+
+ XLAT(RTM_NEWADDRLABEL),
+ XLAT(RTM_DELADDRLABEL),
+ XLAT(RTM_GETADDRLABEL),
+
+ XLAT(RTM_GETDCB),
+ XLAT(RTM_SETDCB),
+
+ XLAT(RTM_NEWNETCONF),
+ XLAT(RTM_DELNETCONF),
+ XLAT(RTM_GETNETCONF),
+
+ XLAT(RTM_NEWMDB),
+ XLAT(RTM_DELMDB),
+ XLAT(RTM_GETMDB),
+
+ XLAT(RTM_NEWNSID),
+ XLAT(RTM_DELNSID),
+ XLAT(RTM_GETNSID),
+
+ XLAT(RTM_NEWSTATS),
+ XLAT(RTM_GETSTATS),
+ XLAT_END
+};
+
+#endif /* !IN_MPERS */
diff --git a/xlat/nl_route_types.in b/xlat/nl_route_types.in
new file mode 100644
index 0000000..0356b61
--- /dev/null
+++ b/xlat/nl_route_types.in
@@ -0,0 +1,71 @@
+RTM_NEWLINK	16
+RTM_DELLINK	17
+RTM_GETLINK	18
+RTM_SETLINK	19
+
+RTM_NEWADDR	20
+RTM_DELADDR	21
+RTM_GETADDR	22
+
+RTM_NEWROUTE	24
+RTM_DELROUTE	25
+RTM_GETROUTE	26
+
+RTM_NEWNEIGH	28
+RTM_DELNEIGH	29
+RTM_GETNEIGH	30
+
+RTM_NEWRULE	32
+RTM_DELRULE	33
+RTM_GETRULE	34
+
+RTM_NEWQDISC	36
+RTM_DELQDISC	37
+RTM_GETQDISC	38
+
+RTM_NEWTCLASS	40
+RTM_DELTCLASS	41
+RTM_GETTCLASS	42
+
+RTM_NEWTFILTER	44
+RTM_DELTFILTER	45
+RTM_GETTFILTER	46
+
+RTM_NEWACTION	48
+RTM_DELACTION	49
+RTM_GETACTION	50
+
+RTM_NEWPREFIX	52
+RTM_GETPREFIX	54
+
+RTM_GETMULTICAST	58
+
+RTM_GETANYCAST	62
+
+RTM_NEWNEIGHTBL	64
+RTM_GETNEIGHTBL	66
+RTM_SETNEIGHTBL	67
+
+RTM_NEWNDUSEROPT	68
+
+RTM_NEWADDRLABEL	72
+RTM_DELADDRLABEL	73
+RTM_GETADDRLABEL	74
+
+RTM_GETDCB	78
+RTM_SETDCB	79
+
+RTM_NEWNETCONF	80
+RTM_DELNETCONF	81
+RTM_GETNETCONF	82
+
+RTM_NEWMDB	84
+RTM_DELMDB	85
+RTM_GETMDB	86
+
+RTM_NEWNSID	88
+RTM_DELNSID	89
+RTM_GETNSID	90
+
+RTM_NEWSTATS	92
+RTM_GETSTATS	94
diff --git a/xlat/nl_selinux_types.h b/xlat/nl_selinux_types.h
new file mode 100644
index 0000000..29903bc
--- /dev/null
+++ b/xlat/nl_selinux_types.h
@@ -0,0 +1,22 @@
+/* Generated by ./xlat/gen.sh from ./xlat/nl_selinux_types.in; do not edit. */
+#if !(defined(SELNL_MSG_SETENFORCE) || (defined(HAVE_DECL_SELNL_MSG_SETENFORCE) && HAVE_DECL_SELNL_MSG_SETENFORCE))
+# define SELNL_MSG_SETENFORCE 0x10
+#endif
+#if !(defined(SELNL_MSG_POLICYLOAD) || (defined(HAVE_DECL_SELNL_MSG_POLICYLOAD) && HAVE_DECL_SELNL_MSG_POLICYLOAD))
+# define SELNL_MSG_POLICYLOAD 0x11
+#endif
+
+#ifdef IN_MPERS
+
+# error static const struct xlat nl_selinux_types in mpers mode
+
+#else
+
+static
+const struct xlat nl_selinux_types[] = {
+ XLAT(SELNL_MSG_SETENFORCE),
+ XLAT(SELNL_MSG_POLICYLOAD),
+ XLAT_END
+};
+
+#endif /* !IN_MPERS */
diff --git a/xlat/nl_selinux_types.in b/xlat/nl_selinux_types.in
new file mode 100644
index 0000000..1ac4605
--- /dev/null
+++ b/xlat/nl_selinux_types.in
@@ -0,0 +1,2 @@
+SELNL_MSG_SETENFORCE	0x10
+SELNL_MSG_POLICYLOAD	0x11
diff --git a/xlat/nl_sock_diag_types.h b/xlat/nl_sock_diag_types.h
new file mode 100644
index 0000000..2469702
--- /dev/null
+++ b/xlat/nl_sock_diag_types.h
@@ -0,0 +1,30 @@
+/* Generated by ./xlat/gen.sh from ./xlat/nl_sock_diag_types.in; do not edit. */
+#if !(defined(TCPDIAG_GETSOCK) || (defined(HAVE_DECL_TCPDIAG_GETSOCK) && HAVE_DECL_TCPDIAG_GETSOCK))
+# define TCPDIAG_GETSOCK 18
+#endif
+#if !(defined(DCCPDIAG_GETSOCK) || (defined(HAVE_DECL_DCCPDIAG_GETSOCK) && HAVE_DECL_DCCPDIAG_GETSOCK))
+# define DCCPDIAG_GETSOCK 19
+#endif
+#if !(defined(SOCK_DIAG_BY_FAMILY) || (defined(HAVE_DECL_SOCK_DIAG_BY_FAMILY) && HAVE_DECL_SOCK_DIAG_BY_FAMILY))
+# define SOCK_DIAG_BY_FAMILY 20
+#endif
+#if !(defined(SOCK_DESTROY) || (defined(HAVE_DECL_SOCK_DESTROY) && HAVE_DECL_SOCK_DESTROY))
+# define SOCK_DESTROY 21
+#endif
+
+#ifdef IN_MPERS
+
+# error static const struct xlat nl_sock_diag_types in mpers mode
+
+#else
+
+static
+const struct xlat nl_sock_diag_types[] = {
+ XLAT(TCPDIAG_GETSOCK),
+ XLAT(DCCPDIAG_GETSOCK),
+ XLAT(SOCK_DIAG_BY_FAMILY),
+ XLAT(SOCK_DESTROY),
+ XLAT_END
+};
+
+#endif /* !IN_MPERS */
diff --git a/xlat/nl_sock_diag_types.in b/xlat/nl_sock_diag_types.in
new file mode 100644
index 0000000..5c176c8
--- /dev/null
+++ b/xlat/nl_sock_diag_types.in
@@ -0,0 +1,4 @@
+TCPDIAG_GETSOCK		18
+DCCPDIAG_GETSOCK	19
+SOCK_DIAG_BY_FAMILY	20
+SOCK_DESTROY		21
diff --git a/xlat/nl_xfrm_types.h b/xlat/nl_xfrm_types.h
new file mode 100644
index 0000000..28d6d8a
--- /dev/null
+++ b/xlat/nl_xfrm_types.h
@@ -0,0 +1,117 @@
+/* Generated by ./xlat/gen.sh from ./xlat/nl_xfrm_types.in; do not edit. */
+#if !(defined(XFRM_MSG_NEWSA) || (defined(HAVE_DECL_XFRM_MSG_NEWSA) && HAVE_DECL_XFRM_MSG_NEWSA))
+# define XFRM_MSG_NEWSA 0x10
+#endif
+#if !(defined(XFRM_MSG_DELSA) || (defined(HAVE_DECL_XFRM_MSG_DELSA) && HAVE_DECL_XFRM_MSG_DELSA))
+# define XFRM_MSG_DELSA 0x11
+#endif
+#if !(defined(XFRM_MSG_GETSA) || (defined(HAVE_DECL_XFRM_MSG_GETSA) && HAVE_DECL_XFRM_MSG_GETSA))
+# define XFRM_MSG_GETSA 0x12
+#endif
+#if !(defined(XFRM_MSG_NEWPOLICY) || (defined(HAVE_DECL_XFRM_MSG_NEWPOLICY) && HAVE_DECL_XFRM_MSG_NEWPOLICY))
+# define XFRM_MSG_NEWPOLICY 0x13
+#endif
+#if !(defined(XFRM_MSG_DELPOLICY) || (defined(HAVE_DECL_XFRM_MSG_DELPOLICY) && HAVE_DECL_XFRM_MSG_DELPOLICY))
+# define XFRM_MSG_DELPOLICY 0x14
+#endif
+#if !(defined(XFRM_MSG_GETPOLICY) || (defined(HAVE_DECL_XFRM_MSG_GETPOLICY) && HAVE_DECL_XFRM_MSG_GETPOLICY))
+# define XFRM_MSG_GETPOLICY 0x15
+#endif
+#if !(defined(XFRM_MSG_ALLOCSPI) || (defined(HAVE_DECL_XFRM_MSG_ALLOCSPI) && HAVE_DECL_XFRM_MSG_ALLOCSPI))
+# define XFRM_MSG_ALLOCSPI 0x16
+#endif
+#if !(defined(XFRM_MSG_ACQUIRE) || (defined(HAVE_DECL_XFRM_MSG_ACQUIRE) && HAVE_DECL_XFRM_MSG_ACQUIRE))
+# define XFRM_MSG_ACQUIRE 0x17
+#endif
+#if !(defined(XFRM_MSG_EXPIRE) || (defined(HAVE_DECL_XFRM_MSG_EXPIRE) && HAVE_DECL_XFRM_MSG_EXPIRE))
+# define XFRM_MSG_EXPIRE 0x18
+#endif
+#if !(defined(XFRM_MSG_UPDPOLICY) || (defined(HAVE_DECL_XFRM_MSG_UPDPOLICY) && HAVE_DECL_XFRM_MSG_UPDPOLICY))
+# define XFRM_MSG_UPDPOLICY 0x19
+#endif
+#if !(defined(XFRM_MSG_UPDSA) || (defined(HAVE_DECL_XFRM_MSG_UPDSA) && HAVE_DECL_XFRM_MSG_UPDSA))
+# define XFRM_MSG_UPDSA 0x1a
+#endif
+#if !(defined(XFRM_MSG_POLEXPIRE) || (defined(HAVE_DECL_XFRM_MSG_POLEXPIRE) && HAVE_DECL_XFRM_MSG_POLEXPIRE))
+# define XFRM_MSG_POLEXPIRE 0x1b
+#endif
+#if !(defined(XFRM_MSG_FLUSHSA) || (defined(HAVE_DECL_XFRM_MSG_FLUSHSA) && HAVE_DECL_XFRM_MSG_FLUSHSA))
+# define XFRM_MSG_FLUSHSA 0x1c
+#endif
+#if !(defined(XFRM_MSG_FLUSHPOLICY) || (defined(HAVE_DECL_XFRM_MSG_FLUSHPOLICY) && HAVE_DECL_XFRM_MSG_FLUSHPOLICY))
+# define XFRM_MSG_FLUSHPOLICY 0x1d
+#endif
+#if !(defined(XFRM_MSG_NEWAE) || (defined(HAVE_DECL_XFRM_MSG_NEWAE) && HAVE_DECL_XFRM_MSG_NEWAE))
+# define XFRM_MSG_NEWAE 0x1e
+#endif
+#if !(defined(XFRM_MSG_GETAE) || (defined(HAVE_DECL_XFRM_MSG_GETAE) && HAVE_DECL_XFRM_MSG_GETAE))
+# define XFRM_MSG_GETAE 0x1f
+#endif
+#if !(defined(XFRM_MSG_REPORT) || (defined(HAVE_DECL_XFRM_MSG_REPORT) && HAVE_DECL_XFRM_MSG_REPORT))
+# define XFRM_MSG_REPORT 0x20
+#endif
+#if !(defined(XFRM_MSG_MIGRATE) || (defined(HAVE_DECL_XFRM_MSG_MIGRATE) && HAVE_DECL_XFRM_MSG_MIGRATE))
+# define XFRM_MSG_MIGRATE 0x21
+#endif
+#if !(defined(XFRM_MSG_NEWSADINFO) || (defined(HAVE_DECL_XFRM_MSG_NEWSADINFO) && HAVE_DECL_XFRM_MSG_NEWSADINFO))
+# define XFRM_MSG_NEWSADINFO 0x22
+#endif
+#if !(defined(XFRM_MSG_GETSADINFO) || (defined(HAVE_DECL_XFRM_MSG_GETSADINFO) && HAVE_DECL_XFRM_MSG_GETSADINFO))
+# define XFRM_MSG_GETSADINFO 0x23
+#endif
+#if !(defined(XFRM_MSG_NEWSPDINFO) || (defined(HAVE_DECL_XFRM_MSG_NEWSPDINFO) && HAVE_DECL_XFRM_MSG_NEWSPDINFO))
+# define XFRM_MSG_NEWSPDINFO 0x24
+#endif
+#if !(defined(XFRM_MSG_GETSPDINFO) || (defined(HAVE_DECL_XFRM_MSG_GETSPDINFO) && HAVE_DECL_XFRM_MSG_GETSPDINFO))
+# define XFRM_MSG_GETSPDINFO 0x25
+#endif
+#if !(defined(XFRM_MSG_MAPPING) || (defined(HAVE_DECL_XFRM_MSG_MAPPING) && HAVE_DECL_XFRM_MSG_MAPPING))
+# define XFRM_MSG_MAPPING 0x26
+#endif
+
+#ifdef IN_MPERS
+
+# error static const struct xlat nl_xfrm_types in mpers mode
+
+#else
+
+static
+const struct xlat nl_xfrm_types[] = {
+ XLAT(XFRM_MSG_NEWSA),
+ XLAT(XFRM_MSG_DELSA),
+ XLAT(XFRM_MSG_GETSA),
+
+ XLAT(XFRM_MSG_NEWPOLICY),
+ XLAT(XFRM_MSG_DELPOLICY),
+ XLAT(XFRM_MSG_GETPOLICY),
+
+ XLAT(XFRM_MSG_ALLOCSPI),
+ XLAT(XFRM_MSG_ACQUIRE),
+ XLAT(XFRM_MSG_EXPIRE),
+
+ XLAT(XFRM_MSG_UPDPOLICY),
+ XLAT(XFRM_MSG_UPDSA),
+
+ XLAT(XFRM_MSG_POLEXPIRE),
+
+ XLAT(XFRM_MSG_FLUSHSA),
+ XLAT(XFRM_MSG_FLUSHPOLICY),
+
+ XLAT(XFRM_MSG_NEWAE),
+ XLAT(XFRM_MSG_GETAE),
+
+ XLAT(XFRM_MSG_REPORT),
+
+ XLAT(XFRM_MSG_MIGRATE),
+
+ XLAT(XFRM_MSG_NEWSADINFO),
+ XLAT(XFRM_MSG_GETSADINFO),
+
+ XLAT(XFRM_MSG_NEWSPDINFO),
+ XLAT(XFRM_MSG_GETSPDINFO),
+
+ XLAT(XFRM_MSG_MAPPING),
+ XLAT_END
+};
+
+#endif /* !IN_MPERS */
diff --git a/xlat/nl_xfrm_types.in b/xlat/nl_xfrm_types.in
new file mode 100644
index 0000000..ee81394
--- /dev/null
+++ b/xlat/nl_xfrm_types.in
@@ -0,0 +1,34 @@
+XFRM_MSG_NEWSA		0x10
+XFRM_MSG_DELSA		0x11
+XFRM_MSG_GETSA		0x12
+
+XFRM_MSG_NEWPOLICY	0x13
+XFRM_MSG_DELPOLICY	0x14
+XFRM_MSG_GETPOLICY	0x15
+
+XFRM_MSG_ALLOCSPI	0x16
+XFRM_MSG_ACQUIRE	0x17
+XFRM_MSG_EXPIRE		0x18
+
+XFRM_MSG_UPDPOLICY	0x19
+XFRM_MSG_UPDSA		0x1a
+
+XFRM_MSG_POLEXPIRE	0x1b
+
+XFRM_MSG_FLUSHSA	0x1c
+XFRM_MSG_FLUSHPOLICY	0x1d
+
+XFRM_MSG_NEWAE		0x1e
+XFRM_MSG_GETAE		0x1f
+
+XFRM_MSG_REPORT		0x20
+
+XFRM_MSG_MIGRATE	0x21
+
+XFRM_MSG_NEWSADINFO	0x22
+XFRM_MSG_GETSADINFO	0x23
+
+XFRM_MSG_NEWSPDINFO	0x24
+XFRM_MSG_GETSPDINFO	0x25
+
+XFRM_MSG_MAPPING	0x26
diff --git a/xlat/packet_diag_attrs.h b/xlat/packet_diag_attrs.h
new file mode 100644
index 0000000..83bf88a
--- /dev/null
+++ b/xlat/packet_diag_attrs.h
@@ -0,0 +1,22 @@
+/* Generated by ./xlat/gen.sh from ./xlat/packet_diag_attrs.in; do not edit. */
+
+#ifdef IN_MPERS
+
+# error static const struct xlat packet_diag_attrs in mpers mode
+
+#else
+
+static
+const struct xlat packet_diag_attrs[] = {
+ XLAT(PACKET_DIAG_INFO),
+ XLAT(PACKET_DIAG_MCLIST),
+ XLAT(PACKET_DIAG_RX_RING),
+ XLAT(PACKET_DIAG_TX_RING),
+ XLAT(PACKET_DIAG_FANOUT),
+ XLAT(PACKET_DIAG_UID),
+ XLAT(PACKET_DIAG_MEMINFO),
+ XLAT(PACKET_DIAG_FILTER),
+ XLAT_END
+};
+
+#endif /* !IN_MPERS */
diff --git a/xlat/packet_diag_attrs.in b/xlat/packet_diag_attrs.in
new file mode 100644
index 0000000..5e33871
--- /dev/null
+++ b/xlat/packet_diag_attrs.in
@@ -0,0 +1,9 @@
+#unconditional
+PACKET_DIAG_INFO
+PACKET_DIAG_MCLIST
+PACKET_DIAG_RX_RING
+PACKET_DIAG_TX_RING
+PACKET_DIAG_FANOUT
+PACKET_DIAG_UID
+PACKET_DIAG_MEMINFO
+PACKET_DIAG_FILTER
diff --git a/xlat/packet_diag_show.h b/xlat/packet_diag_show.h
new file mode 100644
index 0000000..76d84fa
--- /dev/null
+++ b/xlat/packet_diag_show.h
@@ -0,0 +1,32 @@
+/* Generated by ./xlat/gen.sh from ./xlat/packet_diag_show.in; do not edit. */
+
+#ifdef IN_MPERS
+
+# error static const struct xlat packet_diag_show in mpers mode
+
+#else
+
+static
+const struct xlat packet_diag_show[] = {
+#if defined(PACKET_SHOW_INFO) || (defined(HAVE_DECL_PACKET_SHOW_INFO) && HAVE_DECL_PACKET_SHOW_INFO)
+  XLAT(PACKET_SHOW_INFO),
+#endif
+#if defined(PACKET_SHOW_MCLIST) || (defined(HAVE_DECL_PACKET_SHOW_MCLIST) && HAVE_DECL_PACKET_SHOW_MCLIST)
+  XLAT(PACKET_SHOW_MCLIST),
+#endif
+#if defined(PACKET_SHOW_RING_CFG) || (defined(HAVE_DECL_PACKET_SHOW_RING_CFG) && HAVE_DECL_PACKET_SHOW_RING_CFG)
+  XLAT(PACKET_SHOW_RING_CFG),
+#endif
+#if defined(PACKET_SHOW_FANOUT) || (defined(HAVE_DECL_PACKET_SHOW_FANOUT) && HAVE_DECL_PACKET_SHOW_FANOUT)
+  XLAT(PACKET_SHOW_FANOUT),
+#endif
+#if defined(PACKET_SHOW_MEMINFO) || (defined(HAVE_DECL_PACKET_SHOW_MEMINFO) && HAVE_DECL_PACKET_SHOW_MEMINFO)
+  XLAT(PACKET_SHOW_MEMINFO),
+#endif
+#if defined(PACKET_SHOW_FILTER) || (defined(HAVE_DECL_PACKET_SHOW_FILTER) && HAVE_DECL_PACKET_SHOW_FILTER)
+  XLAT(PACKET_SHOW_FILTER),
+#endif
+ XLAT_END
+};
+
+#endif /* !IN_MPERS */
diff --git a/xlat/packet_diag_show.in b/xlat/packet_diag_show.in
new file mode 100644
index 0000000..b495af8
--- /dev/null
+++ b/xlat/packet_diag_show.in
@@ -0,0 +1,6 @@
+PACKET_SHOW_INFO
+PACKET_SHOW_MCLIST
+PACKET_SHOW_RING_CFG
+PACKET_SHOW_FANOUT
+PACKET_SHOW_MEMINFO
+PACKET_SHOW_FILTER
diff --git a/xlat/scmvals.h b/xlat/scmvals.h
index a7ca2f0..5f7c66a 100644
--- a/xlat/scmvals.h
+++ b/xlat/scmvals.h
@@ -8,6 +8,51 @@
 #if !(defined(SCM_SECURITY) || (defined(HAVE_DECL_SCM_SECURITY) && HAVE_DECL_SCM_SECURITY))
 # define SCM_SECURITY 3
 #endif
+#ifndef SCM_TIMESTAMP
+# if defined HPPA
+#  define SCM_TIMESTAMP 0x4012
+# elif defined SPARC || defined SPARC64
+#  define SCM_TIMESTAMP 0x001d
+# else
+#  define SCM_TIMESTAMP 29
+# endif
+#endif
+#ifndef SCM_TIMESTAMPNS
+# if defined HPPA
+#  define SCM_TIMESTAMPNS 0x4013
+# elif defined SPARC || defined SPARC64
+#  define SCM_TIMESTAMPNS 0x0021
+# else
+#  define SCM_TIMESTAMPNS 35
+# endif
+#endif
+#ifndef SCM_TIMESTAMPING
+# if defined HPPA
+#  define SCM_TIMESTAMPING 0x4020
+# elif defined SPARC || defined SPARC64
+#  define SCM_TIMESTAMPING 0x0023
+# else
+#  define SCM_TIMESTAMPING 37
+# endif
+#endif
+#ifndef SCM_WIFI_STATUS
+# if defined HPPA
+#  define SCM_WIFI_STATUS 0x4022
+# elif defined SPARC || defined SPARC64
+#  define SCM_WIFI_STATUS 0x0025
+# else
+#  define SCM_WIFI_STATUS 41
+# endif
+#endif
+#ifndef SCM_TIMESTAMPING_OPT_STATS
+# if defined HPPA
+#  define SCM_TIMESTAMPING_OPT_STATS 0x402f
+# elif defined SPARC || defined SPARC64
+#  define SCM_TIMESTAMPING_OPT_STATS 0x0038
+# else
+#  define SCM_TIMESTAMPING_OPT_STATS 54
+# endif
+#endif
 
 #ifdef IN_MPERS
 
@@ -20,6 +65,71 @@
  XLAT(SCM_RIGHTS),
  XLAT(SCM_CREDENTIALS),
  XLAT(SCM_SECURITY),
+
+#ifndef SCM_TIMESTAMP
+# if defined HPPA
+#  define SCM_TIMESTAMP 0x4012
+# elif defined SPARC || defined SPARC64
+#  define SCM_TIMESTAMP 0x001d
+# else
+#  define SCM_TIMESTAMP 29
+# endif
+#endif
+#if defined(SCM_TIMESTAMP) || (defined(HAVE_DECL_SCM_TIMESTAMP) && HAVE_DECL_SCM_TIMESTAMP)
+  XLAT(SCM_TIMESTAMP),
+#endif
+
+#ifndef SCM_TIMESTAMPNS
+# if defined HPPA
+#  define SCM_TIMESTAMPNS 0x4013
+# elif defined SPARC || defined SPARC64
+#  define SCM_TIMESTAMPNS 0x0021
+# else
+#  define SCM_TIMESTAMPNS 35
+# endif
+#endif
+#if defined(SCM_TIMESTAMPNS) || (defined(HAVE_DECL_SCM_TIMESTAMPNS) && HAVE_DECL_SCM_TIMESTAMPNS)
+  XLAT(SCM_TIMESTAMPNS),
+#endif
+
+#ifndef SCM_TIMESTAMPING
+# if defined HPPA
+#  define SCM_TIMESTAMPING 0x4020
+# elif defined SPARC || defined SPARC64
+#  define SCM_TIMESTAMPING 0x0023
+# else
+#  define SCM_TIMESTAMPING 37
+# endif
+#endif
+#if defined(SCM_TIMESTAMPING) || (defined(HAVE_DECL_SCM_TIMESTAMPING) && HAVE_DECL_SCM_TIMESTAMPING)
+  XLAT(SCM_TIMESTAMPING),
+#endif
+
+#ifndef SCM_WIFI_STATUS
+# if defined HPPA
+#  define SCM_WIFI_STATUS 0x4022
+# elif defined SPARC || defined SPARC64
+#  define SCM_WIFI_STATUS 0x0025
+# else
+#  define SCM_WIFI_STATUS 41
+# endif
+#endif
+#if defined(SCM_WIFI_STATUS) || (defined(HAVE_DECL_SCM_WIFI_STATUS) && HAVE_DECL_SCM_WIFI_STATUS)
+  XLAT(SCM_WIFI_STATUS),
+#endif
+
+#ifndef SCM_TIMESTAMPING_OPT_STATS
+# if defined HPPA
+#  define SCM_TIMESTAMPING_OPT_STATS 0x402f
+# elif defined SPARC || defined SPARC64
+#  define SCM_TIMESTAMPING_OPT_STATS 0x0038
+# else
+#  define SCM_TIMESTAMPING_OPT_STATS 54
+# endif
+#endif
+#if defined(SCM_TIMESTAMPING_OPT_STATS) || (defined(HAVE_DECL_SCM_TIMESTAMPING_OPT_STATS) && HAVE_DECL_SCM_TIMESTAMPING_OPT_STATS)
+  XLAT(SCM_TIMESTAMPING_OPT_STATS),
+#endif
  XLAT_END
 };
 
diff --git a/xlat/scmvals.in b/xlat/scmvals.in
index 3d61f9e..699068f 100644
--- a/xlat/scmvals.in
+++ b/xlat/scmvals.in
@@ -1,3 +1,58 @@
 SCM_RIGHTS	1
 SCM_CREDENTIALS	2
 SCM_SECURITY	3
+
+#ifndef SCM_TIMESTAMP
+# if defined HPPA
+#  define SCM_TIMESTAMP 0x4012
+# elif defined SPARC || defined SPARC64
+#  define SCM_TIMESTAMP 0x001d
+# else
+#  define SCM_TIMESTAMP 29
+# endif
+#endif
+SCM_TIMESTAMP
+
+#ifndef SCM_TIMESTAMPNS
+# if defined HPPA
+#  define SCM_TIMESTAMPNS 0x4013
+# elif defined SPARC || defined SPARC64
+#  define SCM_TIMESTAMPNS 0x0021
+# else
+#  define SCM_TIMESTAMPNS 35
+# endif
+#endif
+SCM_TIMESTAMPNS
+
+#ifndef SCM_TIMESTAMPING
+# if defined HPPA
+#  define SCM_TIMESTAMPING 0x4020
+# elif defined SPARC || defined SPARC64
+#  define SCM_TIMESTAMPING 0x0023
+# else
+#  define SCM_TIMESTAMPING 37
+# endif
+#endif
+SCM_TIMESTAMPING
+
+#ifndef SCM_WIFI_STATUS
+# if defined HPPA
+#  define SCM_WIFI_STATUS 0x4022
+# elif defined SPARC || defined SPARC64
+#  define SCM_WIFI_STATUS 0x0025
+# else
+#  define SCM_WIFI_STATUS 41
+# endif
+#endif
+SCM_WIFI_STATUS
+
+#ifndef SCM_TIMESTAMPING_OPT_STATS
+# if defined HPPA
+#  define SCM_TIMESTAMPING_OPT_STATS 0x402f
+# elif defined SPARC || defined SPARC64
+#  define SCM_TIMESTAMPING_OPT_STATS 0x0038
+# else
+#  define SCM_TIMESTAMPING_OPT_STATS 54
+# endif
+#endif
+SCM_TIMESTAMPING_OPT_STATS
diff --git a/xlat/sigact_flags.h b/xlat/sigact_flags.h
index 31debc4..7149b92 100644
--- a/xlat/sigact_flags.h
+++ b/xlat/sigact_flags.h
@@ -15,8 +15,8 @@
 #if defined(SA_RESTORER) || (defined(HAVE_DECL_SA_RESTORER) && HAVE_DECL_SA_RESTORER)
   XLAT(SA_RESTORER),
 #endif
-#if defined(SA_STACK) || (defined(HAVE_DECL_SA_STACK) && HAVE_DECL_SA_STACK)
-  XLAT(SA_STACK),
+#if defined(SA_ONSTACK) || (defined(HAVE_DECL_SA_ONSTACK) && HAVE_DECL_SA_ONSTACK)
+  XLAT(SA_ONSTACK),
 #endif
 #if defined(SA_RESTART) || (defined(HAVE_DECL_SA_RESTART) && HAVE_DECL_SA_RESTART)
   XLAT(SA_RESTART),
diff --git a/xlat/sigact_flags.in b/xlat/sigact_flags.in
index 27bcff8..00ad943 100644
--- a/xlat/sigact_flags.in
+++ b/xlat/sigact_flags.in
@@ -1,5 +1,5 @@
 SA_RESTORER
-SA_STACK
+SA_ONSTACK
 SA_RESTART
 SA_INTERRUPT
 SA_NODEFER
diff --git a/xlat/smc_diag_attrs.h b/xlat/smc_diag_attrs.h
new file mode 100644
index 0000000..84899ee
--- /dev/null
+++ b/xlat/smc_diag_attrs.h
@@ -0,0 +1,18 @@
+/* Generated by ./xlat/gen.sh from ./xlat/smc_diag_attrs.in; do not edit. */
+
+#ifdef IN_MPERS
+
+# error static const struct xlat smc_diag_attrs in mpers mode
+
+#else
+
+static
+const struct xlat smc_diag_attrs[] = {
+ XLAT(SMC_DIAG_NONE),
+ XLAT(SMC_DIAG_CONNINFO),
+ XLAT(SMC_DIAG_LGRINFO),
+ XLAT(SMC_DIAG_SHUTDOWN),
+ XLAT_END
+};
+
+#endif /* !IN_MPERS */
diff --git a/xlat/smc_diag_attrs.in b/xlat/smc_diag_attrs.in
new file mode 100644
index 0000000..cd6179b
--- /dev/null
+++ b/xlat/smc_diag_attrs.in
@@ -0,0 +1,5 @@
+#unconditional
+SMC_DIAG_NONE
+SMC_DIAG_CONNINFO
+SMC_DIAG_LGRINFO
+SMC_DIAG_SHUTDOWN
diff --git a/xlat/smc_diag_extended_flags.h b/xlat/smc_diag_extended_flags.h
new file mode 100644
index 0000000..988dc94
--- /dev/null
+++ b/xlat/smc_diag_extended_flags.h
@@ -0,0 +1,16 @@
+/* Generated by ./xlat/gen.sh from ./xlat/smc_diag_extended_flags.in; do not edit. */
+
+#ifdef IN_MPERS
+
+# error static const struct xlat smc_diag_extended_flags in mpers mode
+
+#else
+
+static
+const struct xlat smc_diag_extended_flags[] = {
+ XLAT(1<<(SMC_DIAG_CONNINFO-1)),
+ XLAT(1<<(SMC_DIAG_LGRINFO-1)),
+ XLAT_END
+};
+
+#endif /* !IN_MPERS */
diff --git a/xlat/smc_diag_extended_flags.in b/xlat/smc_diag_extended_flags.in
new file mode 100644
index 0000000..9bd3958
--- /dev/null
+++ b/xlat/smc_diag_extended_flags.in
@@ -0,0 +1,3 @@
+#unconditional
+1<<(SMC_DIAG_CONNINFO-1)
+1<<(SMC_DIAG_LGRINFO-1)
diff --git a/xlat/smc_states.h b/xlat/smc_states.h
new file mode 100644
index 0000000..a5371d7
--- /dev/null
+++ b/xlat/smc_states.h
@@ -0,0 +1,62 @@
+/* Generated by ./xlat/gen.sh from ./xlat/smc_states.in; do not edit. */
+#if !(defined(SMC_ACTIVE) || (defined(HAVE_DECL_SMC_ACTIVE) && HAVE_DECL_SMC_ACTIVE))
+# define SMC_ACTIVE 1
+#endif
+#if !(defined(SMC_INIT) || (defined(HAVE_DECL_SMC_INIT) && HAVE_DECL_SMC_INIT))
+# define SMC_INIT 2
+#endif
+#if !(defined(SMC_CLOSED) || (defined(HAVE_DECL_SMC_CLOSED) && HAVE_DECL_SMC_CLOSED))
+# define SMC_CLOSED 7
+#endif
+#if !(defined(SMC_LISTEN) || (defined(HAVE_DECL_SMC_LISTEN) && HAVE_DECL_SMC_LISTEN))
+# define SMC_LISTEN 10
+#endif
+#if !(defined(SMC_PEERCLOSEWAIT1) || (defined(HAVE_DECL_SMC_PEERCLOSEWAIT1) && HAVE_DECL_SMC_PEERCLOSEWAIT1))
+# define SMC_PEERCLOSEWAIT1 20
+#endif
+#if !(defined(SMC_PEERCLOSEWAIT2) || (defined(HAVE_DECL_SMC_PEERCLOSEWAIT2) && HAVE_DECL_SMC_PEERCLOSEWAIT2))
+# define SMC_PEERCLOSEWAIT2 21
+#endif
+#if !(defined(SMC_APPFINCLOSEWAIT) || (defined(HAVE_DECL_SMC_APPFINCLOSEWAIT) && HAVE_DECL_SMC_APPFINCLOSEWAIT))
+# define SMC_APPFINCLOSEWAIT 24
+#endif
+#if !(defined(SMC_APPCLOSEWAIT1) || (defined(HAVE_DECL_SMC_APPCLOSEWAIT1) && HAVE_DECL_SMC_APPCLOSEWAIT1))
+# define SMC_APPCLOSEWAIT1 22
+#endif
+#if !(defined(SMC_APPCLOSEWAIT2) || (defined(HAVE_DECL_SMC_APPCLOSEWAIT2) && HAVE_DECL_SMC_APPCLOSEWAIT2))
+# define SMC_APPCLOSEWAIT2 23
+#endif
+#if !(defined(SMC_PEERFINCLOSEWAIT) || (defined(HAVE_DECL_SMC_PEERFINCLOSEWAIT) && HAVE_DECL_SMC_PEERFINCLOSEWAIT))
+# define SMC_PEERFINCLOSEWAIT 25
+#endif
+#if !(defined(SMC_PEERABORTWAIT) || (defined(HAVE_DECL_SMC_PEERABORTWAIT) && HAVE_DECL_SMC_PEERABORTWAIT))
+# define SMC_PEERABORTWAIT 26
+#endif
+#if !(defined(SMC_PROCESSABORT) || (defined(HAVE_DECL_SMC_PROCESSABORT) && HAVE_DECL_SMC_PROCESSABORT))
+# define SMC_PROCESSABORT 27
+#endif
+
+#ifdef IN_MPERS
+
+# error static const struct xlat smc_states in mpers mode
+
+#else
+
+static
+const struct xlat smc_states[] = {
+ XLAT(SMC_ACTIVE),
+ XLAT(SMC_INIT),
+ XLAT(SMC_CLOSED),
+ XLAT(SMC_LISTEN),
+ XLAT(SMC_PEERCLOSEWAIT1),
+ XLAT(SMC_PEERCLOSEWAIT2),
+ XLAT(SMC_APPFINCLOSEWAIT),
+ XLAT(SMC_APPCLOSEWAIT1),
+ XLAT(SMC_APPCLOSEWAIT2),
+ XLAT(SMC_PEERFINCLOSEWAIT),
+ XLAT(SMC_PEERABORTWAIT),
+ XLAT(SMC_PROCESSABORT),
+ XLAT_END
+};
+
+#endif /* !IN_MPERS */
diff --git a/xlat/smc_states.in b/xlat/smc_states.in
new file mode 100644
index 0000000..d197b1f
--- /dev/null
+++ b/xlat/smc_states.in
@@ -0,0 +1,12 @@
+SMC_ACTIVE		1
+SMC_INIT		2
+SMC_CLOSED		7
+SMC_LISTEN		10
+SMC_PEERCLOSEWAIT1	20
+SMC_PEERCLOSEWAIT2	21
+SMC_APPFINCLOSEWAIT	24
+SMC_APPCLOSEWAIT1	22
+SMC_APPCLOSEWAIT2	23
+SMC_PEERFINCLOSEWAIT	25
+SMC_PEERABORTWAIT	26
+SMC_PROCESSABORT	27
diff --git a/xlat/sockoptions.h b/xlat/sockoptions.h
index 87d570f..715ffe7 100644
--- a/xlat/sockoptions.h
+++ b/xlat/sockoptions.h
@@ -173,6 +173,15 @@
 #if defined(SO_CNX_ADVICE) || (defined(HAVE_DECL_SO_CNX_ADVICE) && HAVE_DECL_SO_CNX_ADVICE)
   XLAT(SO_CNX_ADVICE),
 #endif
+#if defined(SO_MEMINFO) || (defined(HAVE_DECL_SO_MEMINFO) && HAVE_DECL_SO_MEMINFO)
+  XLAT(SO_MEMINFO),
+#endif
+#if defined(SO_INCOMING_NAPI_ID) || (defined(HAVE_DECL_SO_INCOMING_NAPI_ID) && HAVE_DECL_SO_INCOMING_NAPI_ID)
+  XLAT(SO_INCOMING_NAPI_ID),
+#endif
+#if defined(SO_COOKIE) || (defined(HAVE_DECL_SO_COOKIE) && HAVE_DECL_SO_COOKIE)
+  XLAT(SO_COOKIE),
+#endif
 
 #if defined(SO_ALLRAW) || (defined(HAVE_DECL_SO_ALLRAW) && HAVE_DECL_SO_ALLRAW)
   XLAT(SO_ALLRAW),
diff --git a/xlat/sockoptions.in b/xlat/sockoptions.in
index fce851a..5a0bb87 100644
--- a/xlat/sockoptions.in
+++ b/xlat/sockoptions.in
@@ -53,6 +53,9 @@
 SO_ATTACH_REUSEPORT_CBPF
 SO_ATTACH_REUSEPORT_EBPF
 SO_CNX_ADVICE
+SO_MEMINFO
+SO_INCOMING_NAPI_ID
+SO_COOKIE
 
 SO_ALLRAW
 SO_ICS
diff --git a/xlat/socksctpoptions.h b/xlat/socksctpoptions.h
index cb34b9b..886d53d 100644
--- a/xlat/socksctpoptions.h
+++ b/xlat/socksctpoptions.h
@@ -162,6 +162,24 @@
 #if defined(SCTP_PR_ASSOC_STATUS) || (defined(HAVE_DECL_SCTP_PR_ASSOC_STATUS) && HAVE_DECL_SCTP_PR_ASSOC_STATUS)
   XLAT(SCTP_PR_ASSOC_STATUS),
 #endif
+#if defined(SCTP_PR_STREAM_STATUS) || (defined(HAVE_DECL_SCTP_PR_STREAM_STATUS) && HAVE_DECL_SCTP_PR_STREAM_STATUS)
+  XLAT(SCTP_PR_STREAM_STATUS),
+#endif
+#if defined(SCTP_RECONFIG_SUPPORTED) || (defined(HAVE_DECL_SCTP_RECONFIG_SUPPORTED) && HAVE_DECL_SCTP_RECONFIG_SUPPORTED)
+  XLAT(SCTP_RECONFIG_SUPPORTED),
+#endif
+#if defined(SCTP_ENABLE_STREAM_RESET) || (defined(HAVE_DECL_SCTP_ENABLE_STREAM_RESET) && HAVE_DECL_SCTP_ENABLE_STREAM_RESET)
+  XLAT(SCTP_ENABLE_STREAM_RESET),
+#endif
+#if defined(SCTP_RESET_STREAMS) || (defined(HAVE_DECL_SCTP_RESET_STREAMS) && HAVE_DECL_SCTP_RESET_STREAMS)
+  XLAT(SCTP_RESET_STREAMS),
+#endif
+#if defined(SCTP_RESET_ASSOC) || (defined(HAVE_DECL_SCTP_RESET_ASSOC) && HAVE_DECL_SCTP_RESET_ASSOC)
+  XLAT(SCTP_RESET_ASSOC),
+#endif
+#if defined(SCTP_ADD_STREAMS) || (defined(HAVE_DECL_SCTP_ADD_STREAMS) && HAVE_DECL_SCTP_ADD_STREAMS)
+  XLAT(SCTP_ADD_STREAMS),
+#endif
  XLAT_END
 };
 
diff --git a/xlat/socksctpoptions.in b/xlat/socksctpoptions.in
index fa967a2..dfe8737 100644
--- a/xlat/socksctpoptions.in
+++ b/xlat/socksctpoptions.in
@@ -50,3 +50,9 @@
 SCTP_PR_SUPPORTED
 SCTP_DEFAULT_PRINFO
 SCTP_PR_ASSOC_STATUS
+SCTP_PR_STREAM_STATUS
+SCTP_RECONFIG_SUPPORTED
+SCTP_ENABLE_STREAM_RESET
+SCTP_RESET_STREAMS
+SCTP_RESET_ASSOC
+SCTP_ADD_STREAMS
diff --git a/xlat/socktypes.h b/xlat/socktypes.h
index f9db97b..8ca50dc 100644
--- a/xlat/socktypes.h
+++ b/xlat/socktypes.h
@@ -1,12 +1,7 @@
 /* Generated by ./xlat/gen.sh from ./xlat/socktypes.in; do not edit. */
 
-#ifdef IN_MPERS
+#ifndef IN_MPERS
 
-# error static const struct xlat socktypes in mpers mode
-
-#else
-
-static
 const struct xlat socktypes[] = {
 #if defined(SOCK_STREAM) || (defined(HAVE_DECL_SOCK_STREAM) && HAVE_DECL_SOCK_STREAM)
   XLAT(SOCK_STREAM),
diff --git a/xlat/tcp_state_flags.h b/xlat/tcp_state_flags.h
new file mode 100644
index 0000000..265fff3
--- /dev/null
+++ b/xlat/tcp_state_flags.h
@@ -0,0 +1,51 @@
+/* Generated by ./xlat/gen.sh from ./xlat/tcp_state_flags.in; do not edit. */
+
+#ifdef IN_MPERS
+
+# error static const struct xlat tcp_state_flags in mpers mode
+
+#else
+
+static
+const struct xlat tcp_state_flags[] = {
+/* this file should be included after xlat/tcp_states.h */
+#if defined(TCP_ESTABLISHED) || (defined(HAVE_DECL_TCP_ESTABLISHED) && HAVE_DECL_TCP_ESTABLISHED)
+  XLAT_PAIR(1ULL<<TCP_ESTABLISHED, "1<<TCP_ESTABLISHED"),
+#endif
+#if defined(TCP_SYN_SENT) || (defined(HAVE_DECL_TCP_SYN_SENT) && HAVE_DECL_TCP_SYN_SENT)
+  XLAT_PAIR(1ULL<<TCP_SYN_SENT, "1<<TCP_SYN_SENT"),
+#endif
+#if defined(TCP_SYN_RECV) || (defined(HAVE_DECL_TCP_SYN_RECV) && HAVE_DECL_TCP_SYN_RECV)
+  XLAT_PAIR(1ULL<<TCP_SYN_RECV, "1<<TCP_SYN_RECV"),
+#endif
+#if defined(TCP_FIN_WAIT1) || (defined(HAVE_DECL_TCP_FIN_WAIT1) && HAVE_DECL_TCP_FIN_WAIT1)
+  XLAT_PAIR(1ULL<<TCP_FIN_WAIT1, "1<<TCP_FIN_WAIT1"),
+#endif
+#if defined(TCP_FIN_WAIT2) || (defined(HAVE_DECL_TCP_FIN_WAIT2) && HAVE_DECL_TCP_FIN_WAIT2)
+  XLAT_PAIR(1ULL<<TCP_FIN_WAIT2, "1<<TCP_FIN_WAIT2"),
+#endif
+#if defined(TCP_TIME_WAIT) || (defined(HAVE_DECL_TCP_TIME_WAIT) && HAVE_DECL_TCP_TIME_WAIT)
+  XLAT_PAIR(1ULL<<TCP_TIME_WAIT, "1<<TCP_TIME_WAIT"),
+#endif
+#if defined(TCP_CLOSE) || (defined(HAVE_DECL_TCP_CLOSE) && HAVE_DECL_TCP_CLOSE)
+  XLAT_PAIR(1ULL<<TCP_CLOSE, "1<<TCP_CLOSE"),
+#endif
+#if defined(TCP_CLOSE_WAIT) || (defined(HAVE_DECL_TCP_CLOSE_WAIT) && HAVE_DECL_TCP_CLOSE_WAIT)
+  XLAT_PAIR(1ULL<<TCP_CLOSE_WAIT, "1<<TCP_CLOSE_WAIT"),
+#endif
+#if defined(TCP_LAST_ACK) || (defined(HAVE_DECL_TCP_LAST_ACK) && HAVE_DECL_TCP_LAST_ACK)
+  XLAT_PAIR(1ULL<<TCP_LAST_ACK, "1<<TCP_LAST_ACK"),
+#endif
+#if defined(TCP_LISTEN) || (defined(HAVE_DECL_TCP_LISTEN) && HAVE_DECL_TCP_LISTEN)
+  XLAT_PAIR(1ULL<<TCP_LISTEN, "1<<TCP_LISTEN"),
+#endif
+#if defined(TCP_CLOSING) || (defined(HAVE_DECL_TCP_CLOSING) && HAVE_DECL_TCP_CLOSING)
+  XLAT_PAIR(1ULL<<TCP_CLOSING, "1<<TCP_CLOSING"),
+#endif
+#if defined(TCP_NEW_SYN_RECV) || (defined(HAVE_DECL_TCP_NEW_SYN_RECV) && HAVE_DECL_TCP_NEW_SYN_RECV)
+  XLAT_PAIR(1ULL<<TCP_NEW_SYN_RECV, "1<<TCP_NEW_SYN_RECV"),
+#endif
+ XLAT_END
+};
+
+#endif /* !IN_MPERS */
diff --git a/xlat/tcp_state_flags.in b/xlat/tcp_state_flags.in
new file mode 100644
index 0000000..8b63c15
--- /dev/null
+++ b/xlat/tcp_state_flags.in
@@ -0,0 +1,13 @@
+/* this file should be included after xlat/tcp_states.h */
+1<<TCP_ESTABLISHED
+1<<TCP_SYN_SENT
+1<<TCP_SYN_RECV
+1<<TCP_FIN_WAIT1
+1<<TCP_FIN_WAIT2
+1<<TCP_TIME_WAIT
+1<<TCP_CLOSE
+1<<TCP_CLOSE_WAIT
+1<<TCP_LAST_ACK
+1<<TCP_LISTEN
+1<<TCP_CLOSING
+1<<TCP_NEW_SYN_RECV
diff --git a/xlat/tcp_states.h b/xlat/tcp_states.h
new file mode 100644
index 0000000..cf74abb
--- /dev/null
+++ b/xlat/tcp_states.h
@@ -0,0 +1,62 @@
+/* Generated by ./xlat/gen.sh from ./xlat/tcp_states.in; do not edit. */
+#if !(defined(TCP_ESTABLISHED) || (defined(HAVE_DECL_TCP_ESTABLISHED) && HAVE_DECL_TCP_ESTABLISHED))
+# define TCP_ESTABLISHED 1
+#endif
+#if !(defined(TCP_SYN_SENT) || (defined(HAVE_DECL_TCP_SYN_SENT) && HAVE_DECL_TCP_SYN_SENT))
+# define TCP_SYN_SENT 2
+#endif
+#if !(defined(TCP_SYN_RECV) || (defined(HAVE_DECL_TCP_SYN_RECV) && HAVE_DECL_TCP_SYN_RECV))
+# define TCP_SYN_RECV 3
+#endif
+#if !(defined(TCP_FIN_WAIT1) || (defined(HAVE_DECL_TCP_FIN_WAIT1) && HAVE_DECL_TCP_FIN_WAIT1))
+# define TCP_FIN_WAIT1 4
+#endif
+#if !(defined(TCP_FIN_WAIT2) || (defined(HAVE_DECL_TCP_FIN_WAIT2) && HAVE_DECL_TCP_FIN_WAIT2))
+# define TCP_FIN_WAIT2 5
+#endif
+#if !(defined(TCP_TIME_WAIT) || (defined(HAVE_DECL_TCP_TIME_WAIT) && HAVE_DECL_TCP_TIME_WAIT))
+# define TCP_TIME_WAIT 6
+#endif
+#if !(defined(TCP_CLOSE) || (defined(HAVE_DECL_TCP_CLOSE) && HAVE_DECL_TCP_CLOSE))
+# define TCP_CLOSE 7
+#endif
+#if !(defined(TCP_CLOSE_WAIT) || (defined(HAVE_DECL_TCP_CLOSE_WAIT) && HAVE_DECL_TCP_CLOSE_WAIT))
+# define TCP_CLOSE_WAIT 8
+#endif
+#if !(defined(TCP_LAST_ACK) || (defined(HAVE_DECL_TCP_LAST_ACK) && HAVE_DECL_TCP_LAST_ACK))
+# define TCP_LAST_ACK 9
+#endif
+#if !(defined(TCP_LISTEN) || (defined(HAVE_DECL_TCP_LISTEN) && HAVE_DECL_TCP_LISTEN))
+# define TCP_LISTEN 10
+#endif
+#if !(defined(TCP_CLOSING) || (defined(HAVE_DECL_TCP_CLOSING) && HAVE_DECL_TCP_CLOSING))
+# define TCP_CLOSING 11
+#endif
+#if !(defined(TCP_NEW_SYN_RECV) || (defined(HAVE_DECL_TCP_NEW_SYN_RECV) && HAVE_DECL_TCP_NEW_SYN_RECV))
+# define TCP_NEW_SYN_RECV 12
+#endif
+
+#ifdef IN_MPERS
+
+# error static const struct xlat tcp_states in mpers mode
+
+#else
+
+static
+const struct xlat tcp_states[] = {
+ XLAT(TCP_ESTABLISHED),
+ XLAT(TCP_SYN_SENT),
+ XLAT(TCP_SYN_RECV),
+ XLAT(TCP_FIN_WAIT1),
+ XLAT(TCP_FIN_WAIT2),
+ XLAT(TCP_TIME_WAIT),
+ XLAT(TCP_CLOSE),
+ XLAT(TCP_CLOSE_WAIT),
+ XLAT(TCP_LAST_ACK),
+ XLAT(TCP_LISTEN),
+ XLAT(TCP_CLOSING),
+ XLAT(TCP_NEW_SYN_RECV),
+ XLAT_END
+};
+
+#endif /* !IN_MPERS */
diff --git a/xlat/tcp_states.in b/xlat/tcp_states.in
new file mode 100644
index 0000000..287dc43
--- /dev/null
+++ b/xlat/tcp_states.in
@@ -0,0 +1,12 @@
+TCP_ESTABLISHED		1
+TCP_SYN_SENT		2
+TCP_SYN_RECV		3
+TCP_FIN_WAIT1		4
+TCP_FIN_WAIT2		5
+TCP_TIME_WAIT		6
+TCP_CLOSE		7
+TCP_CLOSE_WAIT		8
+TCP_LAST_ACK		9
+TCP_LISTEN		10
+TCP_CLOSING		11
+TCP_NEW_SYN_RECV	12
diff --git a/xlat/unix_diag_attrs.h b/xlat/unix_diag_attrs.h
new file mode 100644
index 0000000..bc18d1d
--- /dev/null
+++ b/xlat/unix_diag_attrs.h
@@ -0,0 +1,21 @@
+/* Generated by ./xlat/gen.sh from ./xlat/unix_diag_attrs.in; do not edit. */
+
+#ifdef IN_MPERS
+
+# error static const struct xlat unix_diag_attrs in mpers mode
+
+#else
+
+static
+const struct xlat unix_diag_attrs[] = {
+ XLAT(UNIX_DIAG_NAME),
+ XLAT(UNIX_DIAG_VFS),
+ XLAT(UNIX_DIAG_PEER),
+ XLAT(UNIX_DIAG_ICONS),
+ XLAT(UNIX_DIAG_RQLEN),
+ XLAT(UNIX_DIAG_MEMINFO),
+ XLAT(UNIX_DIAG_SHUTDOWN),
+ XLAT_END
+};
+
+#endif /* !IN_MPERS */
diff --git a/xlat/unix_diag_attrs.in b/xlat/unix_diag_attrs.in
new file mode 100644
index 0000000..4c3d9b2
--- /dev/null
+++ b/xlat/unix_diag_attrs.in
@@ -0,0 +1,8 @@
+#unconditional
+UNIX_DIAG_NAME
+UNIX_DIAG_VFS
+UNIX_DIAG_PEER
+UNIX_DIAG_ICONS
+UNIX_DIAG_RQLEN
+UNIX_DIAG_MEMINFO
+UNIX_DIAG_SHUTDOWN
diff --git a/xlat/unix_diag_show.h b/xlat/unix_diag_show.h
new file mode 100644
index 0000000..d3bb976
--- /dev/null
+++ b/xlat/unix_diag_show.h
@@ -0,0 +1,32 @@
+/* Generated by ./xlat/gen.sh from ./xlat/unix_diag_show.in; do not edit. */
+
+#ifdef IN_MPERS
+
+# error static const struct xlat unix_diag_show in mpers mode
+
+#else
+
+static
+const struct xlat unix_diag_show[] = {
+#if defined(UDIAG_SHOW_NAME) || (defined(HAVE_DECL_UDIAG_SHOW_NAME) && HAVE_DECL_UDIAG_SHOW_NAME)
+  XLAT(UDIAG_SHOW_NAME),
+#endif
+#if defined(UDIAG_SHOW_VFS) || (defined(HAVE_DECL_UDIAG_SHOW_VFS) && HAVE_DECL_UDIAG_SHOW_VFS)
+  XLAT(UDIAG_SHOW_VFS),
+#endif
+#if defined(UDIAG_SHOW_PEER) || (defined(HAVE_DECL_UDIAG_SHOW_PEER) && HAVE_DECL_UDIAG_SHOW_PEER)
+  XLAT(UDIAG_SHOW_PEER),
+#endif
+#if defined(UDIAG_SHOW_ICONS) || (defined(HAVE_DECL_UDIAG_SHOW_ICONS) && HAVE_DECL_UDIAG_SHOW_ICONS)
+  XLAT(UDIAG_SHOW_ICONS),
+#endif
+#if defined(UDIAG_SHOW_RQLEN) || (defined(HAVE_DECL_UDIAG_SHOW_RQLEN) && HAVE_DECL_UDIAG_SHOW_RQLEN)
+  XLAT(UDIAG_SHOW_RQLEN),
+#endif
+#if defined(UDIAG_SHOW_MEMINFO) || (defined(HAVE_DECL_UDIAG_SHOW_MEMINFO) && HAVE_DECL_UDIAG_SHOW_MEMINFO)
+  XLAT(UDIAG_SHOW_MEMINFO),
+#endif
+ XLAT_END
+};
+
+#endif /* !IN_MPERS */
diff --git a/xlat/unix_diag_show.in b/xlat/unix_diag_show.in
new file mode 100644
index 0000000..c7dbdfb
--- /dev/null
+++ b/xlat/unix_diag_show.in
@@ -0,0 +1,6 @@
+UDIAG_SHOW_NAME
+UDIAG_SHOW_VFS
+UDIAG_SHOW_PEER
+UDIAG_SHOW_ICONS
+UDIAG_SHOW_RQLEN
+UDIAG_SHOW_MEMINFO
diff --git a/xlat/v4l2_buf_types.h b/xlat/v4l2_buf_types.h
index 49753e5..5b206d9 100644
--- a/xlat/v4l2_buf_types.h
+++ b/xlat/v4l2_buf_types.h
@@ -46,6 +46,9 @@
 #if defined(V4L2_BUF_TYPE_SDR_OUTPUT) || (defined(HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT) && HAVE_DECL_V4L2_BUF_TYPE_SDR_OUTPUT)
   XLAT(V4L2_BUF_TYPE_SDR_OUTPUT),
 #endif
+#if defined(V4L2_BUF_TYPE_META_CAPTURE) || (defined(HAVE_DECL_V4L2_BUF_TYPE_META_CAPTURE) && HAVE_DECL_V4L2_BUF_TYPE_META_CAPTURE)
+  XLAT(V4L2_BUF_TYPE_META_CAPTURE),
+#endif
  XLAT_END
 };
 
diff --git a/xlat/v4l2_buf_types.in b/xlat/v4l2_buf_types.in
index 2b52561..41666ee 100644
--- a/xlat/v4l2_buf_types.in
+++ b/xlat/v4l2_buf_types.in
@@ -10,3 +10,4 @@
 V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY
 V4L2_BUF_TYPE_SDR_CAPTURE
 V4L2_BUF_TYPE_SDR_OUTPUT
+V4L2_BUF_TYPE_META_CAPTURE
diff --git a/xlat/v4l2_control_flags.h b/xlat/v4l2_control_flags.h
index a4c8a53..f541971 100644
--- a/xlat/v4l2_control_flags.h
+++ b/xlat/v4l2_control_flags.h
@@ -34,6 +34,15 @@
 #if defined(V4L2_CTRL_FLAG_VOLATILE) || (defined(HAVE_DECL_V4L2_CTRL_FLAG_VOLATILE) && HAVE_DECL_V4L2_CTRL_FLAG_VOLATILE)
   XLAT(V4L2_CTRL_FLAG_VOLATILE),
 #endif
+#if defined(V4L2_CTRL_FLAG_HAS_PAYLOAD) || (defined(HAVE_DECL_V4L2_CTRL_FLAG_HAS_PAYLOAD) && HAVE_DECL_V4L2_CTRL_FLAG_HAS_PAYLOAD)
+  XLAT(V4L2_CTRL_FLAG_HAS_PAYLOAD),
+#endif
+#if defined(V4L2_CTRL_FLAG_EXECUTE_ON_WRITE) || (defined(HAVE_DECL_V4L2_CTRL_FLAG_EXECUTE_ON_WRITE) && HAVE_DECL_V4L2_CTRL_FLAG_EXECUTE_ON_WRITE)
+  XLAT(V4L2_CTRL_FLAG_EXECUTE_ON_WRITE),
+#endif
+#if defined(V4L2_CTRL_FLAG_MODIFY_LAYOUT) || (defined(HAVE_DECL_V4L2_CTRL_FLAG_MODIFY_LAYOUT) && HAVE_DECL_V4L2_CTRL_FLAG_MODIFY_LAYOUT)
+  XLAT(V4L2_CTRL_FLAG_MODIFY_LAYOUT),
+#endif
  XLAT_END
 };
 
diff --git a/xlat/v4l2_control_flags.in b/xlat/v4l2_control_flags.in
index 18654de..154d7b0 100644
--- a/xlat/v4l2_control_flags.in
+++ b/xlat/v4l2_control_flags.in
@@ -6,3 +6,6 @@
 V4L2_CTRL_FLAG_SLIDER
 V4L2_CTRL_FLAG_WRITE_ONLY
 V4L2_CTRL_FLAG_VOLATILE
+V4L2_CTRL_FLAG_HAS_PAYLOAD
+V4L2_CTRL_FLAG_EXECUTE_ON_WRITE
+V4L2_CTRL_FLAG_MODIFY_LAYOUT
diff --git a/xlat/v4l2_control_types.h b/xlat/v4l2_control_types.h
index 37ac812..872d061 100644
--- a/xlat/v4l2_control_types.h
+++ b/xlat/v4l2_control_types.h
@@ -19,23 +19,32 @@
 #if defined(V4L2_CTRL_TYPE_MENU) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_MENU) && HAVE_DECL_V4L2_CTRL_TYPE_MENU)
   XLAT(V4L2_CTRL_TYPE_MENU),
 #endif
-#if defined(V4L2_CTRL_TYPE_INTEGER_MENU) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_INTEGER_MENU) && HAVE_DECL_V4L2_CTRL_TYPE_INTEGER_MENU)
-  XLAT(V4L2_CTRL_TYPE_INTEGER_MENU),
-#endif
-#if defined(V4L2_CTRL_TYPE_BITMASK) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_BITMASK) && HAVE_DECL_V4L2_CTRL_TYPE_BITMASK)
-  XLAT(V4L2_CTRL_TYPE_BITMASK),
-#endif
 #if defined(V4L2_CTRL_TYPE_BUTTON) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_BUTTON) && HAVE_DECL_V4L2_CTRL_TYPE_BUTTON)
   XLAT(V4L2_CTRL_TYPE_BUTTON),
 #endif
 #if defined(V4L2_CTRL_TYPE_INTEGER64) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_INTEGER64) && HAVE_DECL_V4L2_CTRL_TYPE_INTEGER64)
   XLAT(V4L2_CTRL_TYPE_INTEGER64),
 #endif
+#if defined(V4L2_CTRL_TYPE_CTRL_CLASS) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_CTRL_CLASS) && HAVE_DECL_V4L2_CTRL_TYPE_CTRL_CLASS)
+  XLAT(V4L2_CTRL_TYPE_CTRL_CLASS),
+#endif
 #if defined(V4L2_CTRL_TYPE_STRING) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_STRING) && HAVE_DECL_V4L2_CTRL_TYPE_STRING)
   XLAT(V4L2_CTRL_TYPE_STRING),
 #endif
-#if defined(V4L2_CTRL_TYPE_CTRL_CLASS) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_CTRL_CLASS) && HAVE_DECL_V4L2_CTRL_TYPE_CTRL_CLASS)
-  XLAT(V4L2_CTRL_TYPE_CTRL_CLASS),
+#if defined(V4L2_CTRL_TYPE_BITMASK) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_BITMASK) && HAVE_DECL_V4L2_CTRL_TYPE_BITMASK)
+  XLAT(V4L2_CTRL_TYPE_BITMASK),
+#endif
+#if defined(V4L2_CTRL_TYPE_INTEGER_MENU) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_INTEGER_MENU) && HAVE_DECL_V4L2_CTRL_TYPE_INTEGER_MENU)
+  XLAT(V4L2_CTRL_TYPE_INTEGER_MENU),
+#endif
+#if defined(V4L2_CTRL_TYPE_U8) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_U8) && HAVE_DECL_V4L2_CTRL_TYPE_U8)
+  XLAT(V4L2_CTRL_TYPE_U8),
+#endif
+#if defined(V4L2_CTRL_TYPE_U16) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_U16) && HAVE_DECL_V4L2_CTRL_TYPE_U16)
+  XLAT(V4L2_CTRL_TYPE_U16),
+#endif
+#if defined(V4L2_CTRL_TYPE_U32) || (defined(HAVE_DECL_V4L2_CTRL_TYPE_U32) && HAVE_DECL_V4L2_CTRL_TYPE_U32)
+  XLAT(V4L2_CTRL_TYPE_U32),
 #endif
  XLAT_END
 };
diff --git a/xlat/v4l2_control_types.in b/xlat/v4l2_control_types.in
index 26c587e..62cba6d 100644
--- a/xlat/v4l2_control_types.in
+++ b/xlat/v4l2_control_types.in
@@ -1,9 +1,12 @@
 V4L2_CTRL_TYPE_INTEGER
 V4L2_CTRL_TYPE_BOOLEAN
 V4L2_CTRL_TYPE_MENU
-V4L2_CTRL_TYPE_INTEGER_MENU
-V4L2_CTRL_TYPE_BITMASK
 V4L2_CTRL_TYPE_BUTTON
 V4L2_CTRL_TYPE_INTEGER64
-V4L2_CTRL_TYPE_STRING
 V4L2_CTRL_TYPE_CTRL_CLASS
+V4L2_CTRL_TYPE_STRING
+V4L2_CTRL_TYPE_BITMASK
+V4L2_CTRL_TYPE_INTEGER_MENU
+V4L2_CTRL_TYPE_U8
+V4L2_CTRL_TYPE_U16
+V4L2_CTRL_TYPE_U32
diff --git a/xlat/v4l2_device_capabilities_flags.h b/xlat/v4l2_device_capabilities_flags.h
index 70842c4..ef78c7a 100644
--- a/xlat/v4l2_device_capabilities_flags.h
+++ b/xlat/v4l2_device_capabilities_flags.h
@@ -91,6 +91,9 @@
 #if defined(V4L2_CAP_SDR_OUTPUT) || (defined(HAVE_DECL_V4L2_CAP_SDR_OUTPUT) && HAVE_DECL_V4L2_CAP_SDR_OUTPUT)
   XLAT(V4L2_CAP_SDR_OUTPUT),
 #endif
+#if defined(V4L2_CAP_META_CAPTURE) || (defined(HAVE_DECL_V4L2_CAP_META_CAPTURE) && HAVE_DECL_V4L2_CAP_META_CAPTURE)
+  XLAT(V4L2_CAP_META_CAPTURE),
+#endif
  XLAT_END
 };
 
diff --git a/xlat/v4l2_device_capabilities_flags.in b/xlat/v4l2_device_capabilities_flags.in
index d4e3292..4d36972 100644
--- a/xlat/v4l2_device_capabilities_flags.in
+++ b/xlat/v4l2_device_capabilities_flags.in
@@ -25,3 +25,4 @@
 V4L2_CAP_SDR_CAPTURE
 V4L2_CAP_EXT_PIX_FORMAT
 V4L2_CAP_SDR_OUTPUT
+V4L2_CAP_META_CAPTURE
diff --git a/xmalloc.c b/xmalloc.c
index 1158927..43e93eb 100644
--- a/xmalloc.c
+++ b/xmalloc.c
@@ -27,9 +27,9 @@
 
 #include "defs.h"
 
-void die_out_of_memory(void)
+static void die_out_of_memory(void)
 {
-	static bool recursed = false;
+	static bool recursed;
 
 	if (recursed)
 		exit(1);
@@ -85,3 +85,24 @@
 
 	return p;
 }
+
+char *xstrndup(const char *str, size_t n)
+{
+	char *p;
+
+#ifdef HAVE_STRNDUP
+	p = strndup(str, n);
+#else
+	p = xmalloc(n + 1);
+#endif
+
+	if (!p)
+		die_out_of_memory();
+
+#ifndef HAVE_STRNDUP
+	strncpy(p, str, n);
+	p[n] = '\0';
+#endif
+
+	return p;
+}
