release-request-ccd04736-6e66-4825-a227-ecd69d8b5337-for-git_oc-mr1-release-4163697 snap-temp-L79500000080559163

Change-Id: I98acc548cdc11ac59bd95a6b95b4849cf21456f2
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=''; \
-    grn=''; \
-    lgn=''; \
-    blu=''; \
-    mgn=''; \
-    brg=''; \
-    std=''; \
-  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=''; \
-    grn=''; \
-    lgn=''; \
-    blu=''; \
-    mgn=''; \
-    brg=''; \
-    std=''; \
-  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=''; \
-    grn=''; \
-    lgn=''; \
-    blu=''; \
-    mgn=''; \
-    brg=''; \
-    std=''; \
-  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;
+}