diff --git a/.gitignore b/.gitignore
index c283e23..137831d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/strace-5.1.tar.xz
+SOURCES/strace-5.7.tar.xz
diff --git a/.strace.metadata b/.strace.metadata
index aa6c4b8..cce1af2 100644
--- a/.strace.metadata
+++ b/.strace.metadata
@@ -1 +1 @@
-6474260dcc66aa1f591acee31ae6a1a457b34656 SOURCES/strace-5.1.tar.xz
+95c9d5aa664982d53ce1e5ab058d8fb73e200f0c SOURCES/strace-5.7.tar.xz
diff --git a/SOURCES/0030-evdev-avoid-bit-vector-decoding-on-non-successful-an.patch b/SOURCES/0030-evdev-avoid-bit-vector-decoding-on-non-successful-an.patch
deleted file mode 100644
index 3d21fae..0000000
--- a/SOURCES/0030-evdev-avoid-bit-vector-decoding-on-non-successful-an.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 7ada13f3a40e2f58aea335cf910666378e7dd99a Mon Sep 17 00:00:00 2001
-From: Eugene Syromyatnikov <evgsyr@gmail.com>
-Date: Fri, 12 Jul 2019 14:38:33 +0200
-Subject: [PATCH 1/3] evdev: avoid bit vector decoding on non-successful and 0
- return codes
-
-Reported by Clang.
-
-    strace/evdev.c:157:3: note: The value 0 is assigned to 'size'
-    #                size = tcp->u_rval * 8;
-    #                ^~~~~~~~~~~~~~~~~~~~~~
-    strace/evdev.c:158:2: warning: Declared variable-length array (VLA)
-    has zero size
-    #        char decoded_arg[size];
-    #        ^
-
-* evdev.c (decode_bitset_): Bail out before decoded_arg VLA definition.
----
- evdev.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/evdev.c b/evdev.c
-index e402d26e..4b811cf8 100644
---- a/evdev.c
-+++ b/evdev.c
-@@ -155,6 +155,13 @@ decode_bitset_(struct tcb *const tcp, const kernel_ulong_t arg,
- 		size = max_nr;
- 	else
- 		size = tcp->u_rval * 8;
-+
-+	if (syserror(tcp) || !size) {
-+		printaddr(arg);
-+
-+		return RVAL_IOCTL_DECODED;
-+	}
-+
- 	char decoded_arg[size];
- 
- 	if (umove_or_printaddr(tcp, arg, &decoded_arg))
--- 
-2.13.6
-
diff --git a/SOURCES/0031-evdev-fix-array-size-calculation-in-decode_bitset_.patch b/SOURCES/0031-evdev-fix-array-size-calculation-in-decode_bitset_.patch
deleted file mode 100644
index 18cf773..0000000
--- a/SOURCES/0031-evdev-fix-array-size-calculation-in-decode_bitset_.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 96194ed74158f0b9976fae43a910ad14eaea141e Mon Sep 17 00:00:00 2001
-From: Eugene Syromyatnikov <evgsyr@gmail.com>
-Date: Fri, 12 Jul 2019 14:57:28 +0200
-Subject: [PATCH 2/3] evdev: fix array size calculation in decode_bitset_
-
-max_nr is in bits (as it is a number of flags), result is in bytes, and
-the array allocation has to be in personality words.
-
-There's still an open question, however, what to do on big-endian
-architectures when a non-divisible-by-4 value is returned.
-
-* evdev.c (decode_bitset_): Declare size_bits, initialise it and use it
-later instead of size; round up size by personality's word boundary.
----
- evdev.c | 12 ++++++++----
- 1 file changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/evdev.c b/evdev.c
-index 4b811cf8..a3d9cb55 100644
---- a/evdev.c
-+++ b/evdev.c
-@@ -151,10 +151,14 @@ decode_bitset_(struct tcb *const tcp, const kernel_ulong_t arg,
- 	tprints(", ");
- 
- 	unsigned int size;
-+	unsigned int size_bits;
-+
- 	if ((kernel_ulong_t) tcp->u_rval > max_nr / 8)
--		size = max_nr;
-+		size_bits = max_nr;
- 	else
--		size = tcp->u_rval * 8;
-+		size_bits = tcp->u_rval * 8;
-+
-+	size = ROUNDUP(ROUNDUP_DIV(size_bits, 8), current_wordsize);
- 
- 	if (syserror(tcp) || !size) {
- 		printaddr(arg);
-@@ -170,13 +174,13 @@ decode_bitset_(struct tcb *const tcp, const kernel_ulong_t arg,
- 	tprints("[");
- 
- 	int bit_displayed = 0;
--	int i = next_set_bit(decoded_arg, 0, size);
-+	int i = next_set_bit(decoded_arg, 0, size_bits);
- 	if (i < 0) {
- 		tprints(" 0 ");
- 	} else {
- 		printxval_dispatch(decode_nr, decode_nr_size, i, dflt, xt);
- 
--		while ((i = next_set_bit(decoded_arg, i + 1, size)) > 0) {
-+		while ((i = next_set_bit(decoded_arg, i + 1, size_bits)) > 0) {
- 			if (abbrev(tcp) && bit_displayed >= 3) {
- 				tprints(", ...");
- 				break;
--- 
-2.13.6
-
diff --git a/SOURCES/0033-tests-test-evdev-bitset-decoding-more-thoroughly.patch b/SOURCES/0033-tests-test-evdev-bitset-decoding-more-thoroughly.patch
deleted file mode 100644
index e2abf52..0000000
--- a/SOURCES/0033-tests-test-evdev-bitset-decoding-more-thoroughly.patch
+++ /dev/null
@@ -1,795 +0,0 @@
-From cdd8206af74fcb961f0179e21eacf5d55d23f0ac Mon Sep 17 00:00:00 2001
-From: Eugene Syromyatnikov <evgsyr@gmail.com>
-Date: Fri, 12 Jul 2019 14:31:44 +0200
-Subject: [PATCH 3/3] tests: test evdev bitset decoding more thoroughly
-
-* tests/ioctl_evdev-success-v.test: Inject various values.
-* tests/ioctl_evdev-success.test: Likewise.
-* tests/ioctl_evdev-success.c (NUM_WORDS): New macro.
-(struct evdev_check): Constify arg_ptr and print_arg args.
-(invoke_test_syscall, test_evdev, print_input_absinfo, print_input_id,
-print_mtslots): Add const qualifiers.
-(print_getbit): Add const qualifiers, rewrite to expect trailing NULL
-in the string array instead of leading string count.
-(main): Set size for ev_more, ev_less, ev_zero arrays; replace leading
-count element in ev_more_str, ev_less_str, ev_zero_str with trailing
-NULL; replace ev_more_str and ev_less_str with ev_more_str_2/ev_less_str_2
-and ev_more_str_3/ev_less_str_3 that differ by presence of flags that reside
-beyond first two bytes; add static and const qualifiers where possible;
-add key/key_sts_8/key_str_16 values; update a to provide either ev_more_str_2
-or ev_more_str_3 and either key_str_8 or key_str_16 depending on inject_retval
-value.
----
- tests/ioctl_evdev-success-v.test |  15 +++---
- tests/ioctl_evdev-success.c      | 100 ++++++++++++++++++++++++++-------------
- tests/ioctl_evdev-success.test   |  15 +++---
- 3 files changed, 84 insertions(+), 46 deletions(-)
-
-Index: strace-4.24/tests/ioctl_evdev-success-v.test
-===================================================================
---- strace-4.24.orig/tests/ioctl_evdev-success-v.test	2019-08-01 18:40:58.009521546 +0200
-+++ strace-4.24/tests/ioctl_evdev-success-v.test	2019-08-01 19:21:32.297062218 +0200
-@@ -3,11 +3,14 @@
- . "${srcdir=.}/scno_tampering.sh"
- 
- : ${IOCTL_INJECT_START=256}
--: ${IOCTL_INJECT_RETVAL=8}
- 
- run_prog
--run_strace -a16 -v -e trace=ioctl \
--	-e inject=ioctl:retval="${IOCTL_INJECT_RETVAL}":when="${IOCTL_INJECT_START}+" \
--	../ioctl_evdev-success-v "${IOCTL_INJECT_START}" "${IOCTL_INJECT_RETVAL}"> "$EXP"
--grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT"
--match_diff "$OUT" "$EXP"
-+
-+for ret in 0 2 8 15 16; do
-+	run_strace -a16 -v -e trace=ioctl \
-+		-e inject=ioctl:retval="${ret}":when="${IOCTL_INJECT_START}+" \
-+		../ioctl_evdev-success-v \
-+		"${IOCTL_INJECT_START}" "${ret}"> "$EXP.$ret"
-+	grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT.$ret"
-+	match_diff "$OUT.$ret" "$EXP.$ret"
-+done
-Index: strace-4.24/tests/ioctl_evdev-success.c
-===================================================================
---- strace-4.24.orig/tests/ioctl_evdev-success.c	2019-08-01 18:40:58.009521546 +0200
-+++ strace-4.24/tests/ioctl_evdev-success.c	2019-08-01 19:21:32.297062218 +0200
-@@ -2,6 +2,7 @@
- 
- #ifdef HAVE_LINUX_INPUT_H
- 
-+# include <assert.h>
- # include <inttypes.h>
- # include <stdio.h>
- # include <stdlib.h>
-@@ -9,17 +10,19 @@
- # include <linux/input.h>
- # include "print_fields.h"
- 
-+# define NUM_WORDS 4
-+
- static const char *errstr;
- 
- struct evdev_check {
- 	unsigned long cmd;
- 	const char *cmd_str;
--	void *arg_ptr;
--	void (*print_arg)(long rc, void *ptr, void *arg);
-+	const void *arg_ptr;
-+	void (*print_arg)(long rc, const void *ptr, const void *arg);
- };
- 
- static long
--invoke_test_syscall(unsigned long cmd, void *p)
-+invoke_test_syscall(unsigned long cmd, const void *p)
- {
- 	long rc = ioctl(-1, cmd, p);
- 	errstr = sprintrc(rc);
-@@ -31,7 +34,7 @@
- }
- 
- static void
--test_evdev(struct evdev_check *check, void *arg)
-+test_evdev(struct evdev_check *check, const void *arg)
- {
- 	long rc = invoke_test_syscall(check->cmd, check->arg_ptr);
- 	printf("ioctl(-1, %s, ", check->cmd_str);
-@@ -43,9 +46,9 @@
- }
- 
- static void
--print_input_absinfo(long rc, void *ptr, void *arg)
-+print_input_absinfo(long rc, const void *ptr, const void *arg)
- {
--	struct input_absinfo *absinfo = ptr;
-+	const struct input_absinfo *absinfo = ptr;
- 
- 	if (rc < 0) {
- 		printf("%p", absinfo);
-@@ -67,9 +70,9 @@
- }
- 
- static void
--print_input_id(long rc, void *ptr, void *arg)
-+print_input_id(long rc, const void *ptr, const void *arg)
- {
--	struct input_id *id = ptr;
-+	const struct input_id *id = ptr;
- 
- 	if (rc < 0) {
- 		printf("%p", id);
-@@ -84,10 +87,10 @@
- 
- # ifdef EVIOCGMTSLOTS
- static void
--print_mtslots(long rc, void *ptr, void *arg)
-+print_mtslots(long rc, const void *ptr, const void *arg)
- {
--	int *buffer = ptr;
--	const char **str = arg;
-+	const int *buffer = ptr;
-+	const char * const * str = arg;
- 	int num = atoi(*(str + 1));
- 
- 	if (rc < 0) {
-@@ -104,27 +107,26 @@
- # endif
- 
- static void
--print_getbit(long rc, void *ptr, void *arg)
-+print_getbit(long rc, const void *ptr, const void *arg)
- {
--	const char **str = arg;
--	int num = atoi(*str);
-+	const char * const *str = arg;
- 
--	if (rc < 0) {
-+	if (rc <= 0) {
- 		printf("%p", ptr);
- 		return;
- 	}
- 
- 	printf("[");
--	printf("%s", *(str + 1));
--	for (unsigned int i = 2; i <= (unsigned) num; i++) {
-+	for (unsigned long i = 0; str[i]; i++) {
- # if ! VERBOSE
--		if (i > 4) {
-+		if (i >= 4) {
- 			printf(", ...");
- 			break;
- 		}
- # endif
--		printf(", ");
--		printf("%s", *(str + i));
-+		if (i)
-+			printf(", ");
-+		printf("%s", str[i]);
- 	}
- 	printf("]");
- }
-@@ -170,6 +172,7 @@
- 	TAIL_ALLOC_OBJECT_CONST_PTR(struct input_id, id);
- 	TAIL_ALLOC_OBJECT_CONST_PTR(struct input_absinfo, absinfo);
- 	TAIL_ALLOC_OBJECT_CONST_PTR(int, bad_addr_slot);
-+
- # ifdef EVIOCGMTSLOTS
- 	int mtslots[] = { ABS_MT_SLOT, 1, 3 };
- 	/* we use the second element to indicate the number of values */
-@@ -183,36 +186,65 @@
- 	const char *invalid_mtslot_str[] = { invalid_str, "1", "1" };
- # endif
- 
-+	enum { ULONG_BIT = sizeof(unsigned long) * 8 };
-+
- 	/* set more than 4 bits */
--	unsigned long ev_more[] = { 1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED | 1 << EV_SND | 1 << EV_PWR };
--	/* we use the first element to indicate the number of set bits */
--	/* ev_more_str[0] is "5" so the number of set bits is 5 */
--	const char *ev_more_str[] = { "5", "EV_ABS", "EV_MSC", "EV_LED", "EV_SND", "EV_PWR" };
-+	static const unsigned long ev_more[NUM_WORDS] = {
-+		1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED | 1 << EV_SND
-+		| 1 << EV_PWR };
-+	static const char * const ev_more_str_2[] = {
-+		"EV_ABS", "EV_MSC", NULL };
-+	static const char * const ev_more_str_3[] = {
-+		"EV_ABS", "EV_MSC", "EV_LED", "EV_SND", "EV_PWR", NULL };
- 
- 	/* set less than 4 bits */
--	unsigned long ev_less[] = { 1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED };
--	const char *ev_less_str[] = { "3", "EV_ABS", "EV_MSC", "EV_LED" };
-+	static const unsigned long ev_less[NUM_WORDS] = {
-+		1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED };
-+	static const char * const ev_less_str_2[] = {
-+		"EV_ABS", "EV_MSC", NULL };
-+	static const char * const ev_less_str_3[] = {
-+		"EV_ABS", "EV_MSC", "EV_LED", NULL };
- 
- 	/* set zero bit */
--	unsigned long ev_zero[] = { 0x0 };
--	const char *ev_zero_str[] = { "0", " 0 " };
-+	static const unsigned long ev_zero[NUM_WORDS] = { 0x0 };
-+	static const char * const ev_zero_str[] = { " 0 ", NULL };
- 
- 	/* KEY_MAX is 0x2ff which is greater than retval * 8 */
--	unsigned long key[] = { 1 << KEY_1 | 1 << KEY_2, 0 };
--	const char *key_str[] = { "2", "KEY_1", "KEY_2" };
-+	static const unsigned long key[NUM_WORDS] = {
-+		1 << KEY_1 | 1 << KEY_2,
-+		[ KEY_F12 / ULONG_BIT ] = 1 << (KEY_F12 % ULONG_BIT) };
-+
-+	static const char * const key_str_8[] = {
-+		"KEY_1", "KEY_2", NULL };
-+	static const char * const key_str_16[] = {
-+		"KEY_1", "KEY_2", "KEY_F12", NULL };
-+
-+	assert(sizeof(ev_more) >= (unsigned long) inject_retval);
-+	assert(sizeof(ev_less) >= (unsigned long) inject_retval);
-+	assert(sizeof(ev_zero) >= (unsigned long) inject_retval);
-+	assert(sizeof(key) >= (unsigned long) inject_retval);
- 
- 	struct {
- 		struct evdev_check check;
--		void *ptr;
-+		const void *ptr;
- 	} a[] = {
- 		{ { ARG_STR(EVIOCGID), id, print_input_id }, NULL },
- 		{ { ARG_STR(EVIOCGABS(ABS_X)), absinfo, print_input_absinfo }, NULL },
- 		{ { ARG_STR(EVIOCGABS(ABS_Y)), absinfo, print_input_absinfo }, NULL },
- 		{ { ARG_STR(EVIOCGABS(ABS_Y)), absinfo, print_input_absinfo }, NULL },
--		{ { ARG_STR(EVIOCGBIT(0, 0)), ev_more, print_getbit }, &ev_more_str },
--		{ { ARG_STR(EVIOCGBIT(0, 0)), ev_less, print_getbit }, &ev_less_str },
-+		{ { ARG_STR(EVIOCGBIT(0, 0)), ev_more, print_getbit },
-+			inject_retval * 8 <= EV_LED
-+				? (const void *) &ev_more_str_2
-+				: (const void *) &ev_more_str_3 },
-+		{ { ARG_STR(EVIOCGBIT(0, 0)), ev_less, print_getbit },
-+			inject_retval * 8 <= EV_LED
-+				? (const void *) &ev_less_str_2
-+				: (const void *) &ev_less_str_3 },
- 		{ { ARG_STR(EVIOCGBIT(0, 0)), ev_zero, print_getbit }, &ev_zero_str },
--		{ { ARG_STR(EVIOCGBIT(EV_KEY, 0)), key, print_getbit }, &key_str},
-+		{ { ARG_STR(EVIOCGBIT(EV_KEY, 0)), key, print_getbit },
-+			inject_retval * 8 <= KEY_F12
-+				? (const void *) &key_str_8
-+				: (const void *) &key_str_16 },
- # ifdef EVIOCGMTSLOTS
- 		{ { ARG_STR(EVIOCGMTSLOTS(12)), mtslots, print_mtslots }, &mtslots_str },
- 		{ { ARG_STR(EVIOCGMTSLOTS(8)), invalid_mtslot, print_mtslots }, &invalid_mtslot_str }
-Index: strace-4.24/tests/ioctl_evdev-success.test
-===================================================================
---- strace-4.24.orig/tests/ioctl_evdev-success.test	2019-08-01 18:40:58.009521546 +0200
-+++ strace-4.24/tests/ioctl_evdev-success.test	2019-08-01 19:21:32.298062205 +0200
-@@ -3,11 +3,14 @@
- . "${srcdir=.}/scno_tampering.sh"
- 
- : ${IOCTL_INJECT_START=256}
--: ${IOCTL_INJECT_RETVAL=8}
- 
- run_prog
--run_strace -a16 -e trace=ioctl \
--	-e inject=ioctl:retval="${IOCTL_INJECT_RETVAL}":when="${IOCTL_INJECT_START}+" \
--	../ioctl_evdev-success "${IOCTL_INJECT_START}" "${IOCTL_INJECT_RETVAL}"> "$EXP"
--grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT"
--match_diff "$OUT" "$EXP"
-+
-+for ret in 0 2 8 15 16; do
-+	run_strace -a16 -e trace=ioctl \
-+		-e inject=ioctl:retval="${ret}":when="${IOCTL_INJECT_START}+" \
-+		../ioctl_evdev-success \
-+		"${IOCTL_INJECT_START}" "${ret}"> "$EXP.${ret}"
-+	grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT.$ret"
-+	match_diff "$OUT.$ret" "$EXP.$ret"
-+done
-Index: strace-4.24/tests-m32/ioctl_evdev-success-v.test
-===================================================================
---- strace-4.24.orig/tests-m32/ioctl_evdev-success-v.test	2019-08-01 18:40:58.009521546 +0200
-+++ strace-4.24/tests-m32/ioctl_evdev-success-v.test	2019-08-01 19:21:32.298062205 +0200
-@@ -3,11 +3,14 @@
- . "${srcdir=.}/scno_tampering.sh"
- 
- : ${IOCTL_INJECT_START=256}
--: ${IOCTL_INJECT_RETVAL=8}
- 
- run_prog
--run_strace -a16 -v -e trace=ioctl \
--	-e inject=ioctl:retval="${IOCTL_INJECT_RETVAL}":when="${IOCTL_INJECT_START}+" \
--	../ioctl_evdev-success-v "${IOCTL_INJECT_START}" "${IOCTL_INJECT_RETVAL}"> "$EXP"
--grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT"
--match_diff "$OUT" "$EXP"
-+
-+for ret in 0 2 8 15 16; do
-+	run_strace -a16 -v -e trace=ioctl \
-+		-e inject=ioctl:retval="${ret}":when="${IOCTL_INJECT_START}+" \
-+		../ioctl_evdev-success-v \
-+		"${IOCTL_INJECT_START}" "${ret}"> "$EXP.$ret"
-+	grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT.$ret"
-+	match_diff "$OUT.$ret" "$EXP.$ret"
-+done
-Index: strace-4.24/tests-m32/ioctl_evdev-success.test
-===================================================================
---- strace-4.24.orig/tests-m32/ioctl_evdev-success.test	2019-08-01 18:40:58.009521546 +0200
-+++ strace-4.24/tests-m32/ioctl_evdev-success.test	2019-08-01 19:21:32.298062205 +0200
-@@ -3,11 +3,14 @@
- . "${srcdir=.}/scno_tampering.sh"
- 
- : ${IOCTL_INJECT_START=256}
--: ${IOCTL_INJECT_RETVAL=8}
- 
- run_prog
--run_strace -a16 -e trace=ioctl \
--	-e inject=ioctl:retval="${IOCTL_INJECT_RETVAL}":when="${IOCTL_INJECT_START}+" \
--	../ioctl_evdev-success "${IOCTL_INJECT_START}" "${IOCTL_INJECT_RETVAL}"> "$EXP"
--grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT"
--match_diff "$OUT" "$EXP"
-+
-+for ret in 0 2 8 15 16; do
-+	run_strace -a16 -e trace=ioctl \
-+		-e inject=ioctl:retval="${ret}":when="${IOCTL_INJECT_START}+" \
-+		../ioctl_evdev-success \
-+		"${IOCTL_INJECT_START}" "${ret}"> "$EXP.${ret}"
-+	grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT.$ret"
-+	match_diff "$OUT.$ret" "$EXP.$ret"
-+done
-Index: strace-4.24/tests-mx32/ioctl_evdev-success-v.test
-===================================================================
---- strace-4.24.orig/tests-mx32/ioctl_evdev-success-v.test	2019-08-01 18:40:58.009521546 +0200
-+++ strace-4.24/tests-mx32/ioctl_evdev-success-v.test	2019-08-01 19:21:32.298062205 +0200
-@@ -3,11 +3,14 @@
- . "${srcdir=.}/scno_tampering.sh"
- 
- : ${IOCTL_INJECT_START=256}
--: ${IOCTL_INJECT_RETVAL=8}
- 
- run_prog
--run_strace -a16 -v -e trace=ioctl \
--	-e inject=ioctl:retval="${IOCTL_INJECT_RETVAL}":when="${IOCTL_INJECT_START}+" \
--	../ioctl_evdev-success-v "${IOCTL_INJECT_START}" "${IOCTL_INJECT_RETVAL}"> "$EXP"
--grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT"
--match_diff "$OUT" "$EXP"
-+
-+for ret in 0 2 8 15 16; do
-+	run_strace -a16 -v -e trace=ioctl \
-+		-e inject=ioctl:retval="${ret}":when="${IOCTL_INJECT_START}+" \
-+		../ioctl_evdev-success-v \
-+		"${IOCTL_INJECT_START}" "${ret}"> "$EXP.$ret"
-+	grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT.$ret"
-+	match_diff "$OUT.$ret" "$EXP.$ret"
-+done
-Index: strace-4.24/tests-mx32/ioctl_evdev-success.test
-===================================================================
---- strace-4.24.orig/tests-mx32/ioctl_evdev-success.test	2019-08-01 18:40:58.009521546 +0200
-+++ strace-4.24/tests-mx32/ioctl_evdev-success.test	2019-08-01 19:21:32.299062192 +0200
-@@ -3,11 +3,14 @@
- . "${srcdir=.}/scno_tampering.sh"
- 
- : ${IOCTL_INJECT_START=256}
--: ${IOCTL_INJECT_RETVAL=8}
- 
- run_prog
--run_strace -a16 -e trace=ioctl \
--	-e inject=ioctl:retval="${IOCTL_INJECT_RETVAL}":when="${IOCTL_INJECT_START}+" \
--	../ioctl_evdev-success "${IOCTL_INJECT_START}" "${IOCTL_INJECT_RETVAL}"> "$EXP"
--grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT"
--match_diff "$OUT" "$EXP"
-+
-+for ret in 0 2 8 15 16; do
-+	run_strace -a16 -e trace=ioctl \
-+		-e inject=ioctl:retval="${ret}":when="${IOCTL_INJECT_START}+" \
-+		../ioctl_evdev-success \
-+		"${IOCTL_INJECT_START}" "${ret}"> "$EXP.${ret}"
-+	grep -v '^ioctl([012][,<]' < "$LOG" > "$OUT.$ret"
-+	match_diff "$OUT.$ret" "$EXP.$ret"
-+done
-Index: strace-4.24/tests-m32/ioctl_evdev-success.c
-===================================================================
---- strace-4.24.orig/tests-m32/ioctl_evdev-success.c	2019-08-01 18:40:58.009521546 +0200
-+++ strace-4.24/tests-m32/ioctl_evdev-success.c	2019-08-29 12:09:27.898700830 +0200
-@@ -2,6 +2,7 @@
- 
- #ifdef HAVE_LINUX_INPUT_H
- 
-+# include <assert.h>
- # include <inttypes.h>
- # include <stdio.h>
- # include <stdlib.h>
-@@ -9,17 +10,19 @@
- # include <linux/input.h>
- # include "print_fields.h"
- 
-+# define NUM_WORDS 4
-+
- static const char *errstr;
- 
- struct evdev_check {
- 	unsigned long cmd;
- 	const char *cmd_str;
--	void *arg_ptr;
--	void (*print_arg)(long rc, void *ptr, void *arg);
-+	const void *arg_ptr;
-+	void (*print_arg)(long rc, const void *ptr, const void *arg);
- };
- 
- static long
--invoke_test_syscall(unsigned long cmd, void *p)
-+invoke_test_syscall(unsigned long cmd, const void *p)
- {
- 	long rc = ioctl(-1, cmd, p);
- 	errstr = sprintrc(rc);
-@@ -31,7 +34,7 @@
- }
- 
- static void
--test_evdev(struct evdev_check *check, void *arg)
-+test_evdev(struct evdev_check *check, const void *arg)
- {
- 	long rc = invoke_test_syscall(check->cmd, check->arg_ptr);
- 	printf("ioctl(-1, %s, ", check->cmd_str);
-@@ -43,9 +46,9 @@
- }
- 
- static void
--print_input_absinfo(long rc, void *ptr, void *arg)
-+print_input_absinfo(long rc, const void *ptr, const void *arg)
- {
--	struct input_absinfo *absinfo = ptr;
-+	const struct input_absinfo *absinfo = ptr;
- 
- 	if (rc < 0) {
- 		printf("%p", absinfo);
-@@ -67,9 +70,9 @@
- }
- 
- static void
--print_input_id(long rc, void *ptr, void *arg)
-+print_input_id(long rc, const void *ptr, const void *arg)
- {
--	struct input_id *id = ptr;
-+	const struct input_id *id = ptr;
- 
- 	if (rc < 0) {
- 		printf("%p", id);
-@@ -84,10 +87,10 @@
- 
- # ifdef EVIOCGMTSLOTS
- static void
--print_mtslots(long rc, void *ptr, void *arg)
-+print_mtslots(long rc, const void *ptr, const void *arg)
- {
--	int *buffer = ptr;
--	const char **str = arg;
-+	const int *buffer = ptr;
-+	const char * const * str = arg;
- 	int num = atoi(*(str + 1));
- 
- 	if (rc < 0) {
-@@ -104,27 +107,26 @@
- # endif
- 
- static void
--print_getbit(long rc, void *ptr, void *arg)
-+print_getbit(long rc, const void *ptr, const void *arg)
- {
--	const char **str = arg;
--	int num = atoi(*str);
-+	const char * const *str = arg;
- 
--	if (rc < 0) {
-+	if (rc <= 0) {
- 		printf("%p", ptr);
- 		return;
- 	}
- 
- 	printf("[");
--	printf("%s", *(str + 1));
--	for (unsigned int i = 2; i <= (unsigned) num; i++) {
-+	for (unsigned long i = 0; str[i]; i++) {
- # if ! VERBOSE
--		if (i > 4) {
-+		if (i >= 4) {
- 			printf(", ...");
- 			break;
- 		}
- # endif
--		printf(", ");
--		printf("%s", *(str + i));
-+		if (i)
-+			printf(", ");
-+		printf("%s", str[i]);
- 	}
- 	printf("]");
- }
-@@ -170,6 +172,7 @@
- 	TAIL_ALLOC_OBJECT_CONST_PTR(struct input_id, id);
- 	TAIL_ALLOC_OBJECT_CONST_PTR(struct input_absinfo, absinfo);
- 	TAIL_ALLOC_OBJECT_CONST_PTR(int, bad_addr_slot);
-+
- # ifdef EVIOCGMTSLOTS
- 	int mtslots[] = { ABS_MT_SLOT, 1, 3 };
- 	/* we use the second element to indicate the number of values */
-@@ -183,36 +186,65 @@
- 	const char *invalid_mtslot_str[] = { invalid_str, "1", "1" };
- # endif
- 
-+	enum { ULONG_BIT = sizeof(unsigned long) * 8 };
-+
- 	/* set more than 4 bits */
--	unsigned long ev_more[] = { 1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED | 1 << EV_SND | 1 << EV_PWR };
--	/* we use the first element to indicate the number of set bits */
--	/* ev_more_str[0] is "5" so the number of set bits is 5 */
--	const char *ev_more_str[] = { "5", "EV_ABS", "EV_MSC", "EV_LED", "EV_SND", "EV_PWR" };
-+	static const unsigned long ev_more[NUM_WORDS] = {
-+		1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED | 1 << EV_SND
-+		| 1 << EV_PWR };
-+	static const char * const ev_more_str_2[] = {
-+		"EV_ABS", "EV_MSC", NULL };
-+	static const char * const ev_more_str_3[] = {
-+		"EV_ABS", "EV_MSC", "EV_LED", "EV_SND", "EV_PWR", NULL };
- 
- 	/* set less than 4 bits */
--	unsigned long ev_less[] = { 1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED };
--	const char *ev_less_str[] = { "3", "EV_ABS", "EV_MSC", "EV_LED" };
-+	static const unsigned long ev_less[NUM_WORDS] = {
-+		1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED };
-+	static const char * const ev_less_str_2[] = {
-+		"EV_ABS", "EV_MSC", NULL };
-+	static const char * const ev_less_str_3[] = {
-+		"EV_ABS", "EV_MSC", "EV_LED", NULL };
- 
- 	/* set zero bit */
--	unsigned long ev_zero[] = { 0x0 };
--	const char *ev_zero_str[] = { "0", " 0 " };
-+	static const unsigned long ev_zero[NUM_WORDS] = { 0x0 };
-+	static const char * const ev_zero_str[] = { " 0 ", NULL };
- 
- 	/* KEY_MAX is 0x2ff which is greater than retval * 8 */
--	unsigned long key[] = { 1 << KEY_1 | 1 << KEY_2, 0 };
--	const char *key_str[] = { "2", "KEY_1", "KEY_2" };
-+	static const unsigned long key[NUM_WORDS] = {
-+		1 << KEY_1 | 1 << KEY_2,
-+		[ KEY_F12 / ULONG_BIT ] = 1 << (KEY_F12 % ULONG_BIT) };
-+
-+	static const char * const key_str_8[] = {
-+		"KEY_1", "KEY_2", NULL };
-+	static const char * const key_str_16[] = {
-+		"KEY_1", "KEY_2", "KEY_F12", NULL };
-+
-+	assert(sizeof(ev_more) >= (unsigned long) inject_retval);
-+	assert(sizeof(ev_less) >= (unsigned long) inject_retval);
-+	assert(sizeof(ev_zero) >= (unsigned long) inject_retval);
-+	assert(sizeof(key) >= (unsigned long) inject_retval);
- 
- 	struct {
- 		struct evdev_check check;
--		void *ptr;
-+		const void *ptr;
- 	} a[] = {
- 		{ { ARG_STR(EVIOCGID), id, print_input_id }, NULL },
- 		{ { ARG_STR(EVIOCGABS(ABS_X)), absinfo, print_input_absinfo }, NULL },
- 		{ { ARG_STR(EVIOCGABS(ABS_Y)), absinfo, print_input_absinfo }, NULL },
- 		{ { ARG_STR(EVIOCGABS(ABS_Y)), absinfo, print_input_absinfo }, NULL },
--		{ { ARG_STR(EVIOCGBIT(0, 0)), ev_more, print_getbit }, &ev_more_str },
--		{ { ARG_STR(EVIOCGBIT(0, 0)), ev_less, print_getbit }, &ev_less_str },
-+		{ { ARG_STR(EVIOCGBIT(0, 0)), ev_more, print_getbit },
-+			inject_retval * 8 <= EV_LED
-+				? (const void *) &ev_more_str_2
-+				: (const void *) &ev_more_str_3 },
-+		{ { ARG_STR(EVIOCGBIT(0, 0)), ev_less, print_getbit },
-+			inject_retval * 8 <= EV_LED
-+				? (const void *) &ev_less_str_2
-+				: (const void *) &ev_less_str_3 },
- 		{ { ARG_STR(EVIOCGBIT(0, 0)), ev_zero, print_getbit }, &ev_zero_str },
--		{ { ARG_STR(EVIOCGBIT(EV_KEY, 0)), key, print_getbit }, &key_str},
-+		{ { ARG_STR(EVIOCGBIT(EV_KEY, 0)), key, print_getbit },
-+			inject_retval * 8 <= KEY_F12
-+				? (const void *) &key_str_8
-+				: (const void *) &key_str_16 },
- # ifdef EVIOCGMTSLOTS
- 		{ { ARG_STR(EVIOCGMTSLOTS(12)), mtslots, print_mtslots }, &mtslots_str },
- 		{ { ARG_STR(EVIOCGMTSLOTS(8)), invalid_mtslot, print_mtslots }, &invalid_mtslot_str }
-Index: strace-4.24/tests-mx32/ioctl_evdev-success.c
-===================================================================
---- strace-4.24.orig/tests-mx32/ioctl_evdev-success.c	2019-08-01 18:40:58.009521546 +0200
-+++ strace-4.24/tests-mx32/ioctl_evdev-success.c	2019-08-29 12:09:30.350669261 +0200
-@@ -2,6 +2,7 @@
- 
- #ifdef HAVE_LINUX_INPUT_H
- 
-+# include <assert.h>
- # include <inttypes.h>
- # include <stdio.h>
- # include <stdlib.h>
-@@ -9,17 +10,19 @@
- # include <linux/input.h>
- # include "print_fields.h"
- 
-+# define NUM_WORDS 4
-+
- static const char *errstr;
- 
- struct evdev_check {
- 	unsigned long cmd;
- 	const char *cmd_str;
--	void *arg_ptr;
--	void (*print_arg)(long rc, void *ptr, void *arg);
-+	const void *arg_ptr;
-+	void (*print_arg)(long rc, const void *ptr, const void *arg);
- };
- 
- static long
--invoke_test_syscall(unsigned long cmd, void *p)
-+invoke_test_syscall(unsigned long cmd, const void *p)
- {
- 	long rc = ioctl(-1, cmd, p);
- 	errstr = sprintrc(rc);
-@@ -31,7 +34,7 @@
- }
- 
- static void
--test_evdev(struct evdev_check *check, void *arg)
-+test_evdev(struct evdev_check *check, const void *arg)
- {
- 	long rc = invoke_test_syscall(check->cmd, check->arg_ptr);
- 	printf("ioctl(-1, %s, ", check->cmd_str);
-@@ -43,9 +46,9 @@
- }
- 
- static void
--print_input_absinfo(long rc, void *ptr, void *arg)
-+print_input_absinfo(long rc, const void *ptr, const void *arg)
- {
--	struct input_absinfo *absinfo = ptr;
-+	const struct input_absinfo *absinfo = ptr;
- 
- 	if (rc < 0) {
- 		printf("%p", absinfo);
-@@ -67,9 +70,9 @@
- }
- 
- static void
--print_input_id(long rc, void *ptr, void *arg)
-+print_input_id(long rc, const void *ptr, const void *arg)
- {
--	struct input_id *id = ptr;
-+	const struct input_id *id = ptr;
- 
- 	if (rc < 0) {
- 		printf("%p", id);
-@@ -84,10 +87,10 @@
- 
- # ifdef EVIOCGMTSLOTS
- static void
--print_mtslots(long rc, void *ptr, void *arg)
-+print_mtslots(long rc, const void *ptr, const void *arg)
- {
--	int *buffer = ptr;
--	const char **str = arg;
-+	const int *buffer = ptr;
-+	const char * const * str = arg;
- 	int num = atoi(*(str + 1));
- 
- 	if (rc < 0) {
-@@ -104,27 +107,26 @@
- # endif
- 
- static void
--print_getbit(long rc, void *ptr, void *arg)
-+print_getbit(long rc, const void *ptr, const void *arg)
- {
--	const char **str = arg;
--	int num = atoi(*str);
-+	const char * const *str = arg;
- 
--	if (rc < 0) {
-+	if (rc <= 0) {
- 		printf("%p", ptr);
- 		return;
- 	}
- 
- 	printf("[");
--	printf("%s", *(str + 1));
--	for (unsigned int i = 2; i <= (unsigned) num; i++) {
-+	for (unsigned long i = 0; str[i]; i++) {
- # if ! VERBOSE
--		if (i > 4) {
-+		if (i >= 4) {
- 			printf(", ...");
- 			break;
- 		}
- # endif
--		printf(", ");
--		printf("%s", *(str + i));
-+		if (i)
-+			printf(", ");
-+		printf("%s", str[i]);
- 	}
- 	printf("]");
- }
-@@ -170,6 +172,7 @@
- 	TAIL_ALLOC_OBJECT_CONST_PTR(struct input_id, id);
- 	TAIL_ALLOC_OBJECT_CONST_PTR(struct input_absinfo, absinfo);
- 	TAIL_ALLOC_OBJECT_CONST_PTR(int, bad_addr_slot);
-+
- # ifdef EVIOCGMTSLOTS
- 	int mtslots[] = { ABS_MT_SLOT, 1, 3 };
- 	/* we use the second element to indicate the number of values */
-@@ -183,36 +186,65 @@
- 	const char *invalid_mtslot_str[] = { invalid_str, "1", "1" };
- # endif
- 
-+	enum { ULONG_BIT = sizeof(unsigned long) * 8 };
-+
- 	/* set more than 4 bits */
--	unsigned long ev_more[] = { 1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED | 1 << EV_SND | 1 << EV_PWR };
--	/* we use the first element to indicate the number of set bits */
--	/* ev_more_str[0] is "5" so the number of set bits is 5 */
--	const char *ev_more_str[] = { "5", "EV_ABS", "EV_MSC", "EV_LED", "EV_SND", "EV_PWR" };
-+	static const unsigned long ev_more[NUM_WORDS] = {
-+		1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED | 1 << EV_SND
-+		| 1 << EV_PWR };
-+	static const char * const ev_more_str_2[] = {
-+		"EV_ABS", "EV_MSC", NULL };
-+	static const char * const ev_more_str_3[] = {
-+		"EV_ABS", "EV_MSC", "EV_LED", "EV_SND", "EV_PWR", NULL };
- 
- 	/* set less than 4 bits */
--	unsigned long ev_less[] = { 1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED };
--	const char *ev_less_str[] = { "3", "EV_ABS", "EV_MSC", "EV_LED" };
-+	static const unsigned long ev_less[NUM_WORDS] = {
-+		1 << EV_ABS | 1 << EV_MSC | 1 << EV_LED };
-+	static const char * const ev_less_str_2[] = {
-+		"EV_ABS", "EV_MSC", NULL };
-+	static const char * const ev_less_str_3[] = {
-+		"EV_ABS", "EV_MSC", "EV_LED", NULL };
- 
- 	/* set zero bit */
--	unsigned long ev_zero[] = { 0x0 };
--	const char *ev_zero_str[] = { "0", " 0 " };
-+	static const unsigned long ev_zero[NUM_WORDS] = { 0x0 };
-+	static const char * const ev_zero_str[] = { " 0 ", NULL };
- 
- 	/* KEY_MAX is 0x2ff which is greater than retval * 8 */
--	unsigned long key[] = { 1 << KEY_1 | 1 << KEY_2, 0 };
--	const char *key_str[] = { "2", "KEY_1", "KEY_2" };
-+	static const unsigned long key[NUM_WORDS] = {
-+		1 << KEY_1 | 1 << KEY_2,
-+		[ KEY_F12 / ULONG_BIT ] = 1 << (KEY_F12 % ULONG_BIT) };
-+
-+	static const char * const key_str_8[] = {
-+		"KEY_1", "KEY_2", NULL };
-+	static const char * const key_str_16[] = {
-+		"KEY_1", "KEY_2", "KEY_F12", NULL };
-+
-+	assert(sizeof(ev_more) >= (unsigned long) inject_retval);
-+	assert(sizeof(ev_less) >= (unsigned long) inject_retval);
-+	assert(sizeof(ev_zero) >= (unsigned long) inject_retval);
-+	assert(sizeof(key) >= (unsigned long) inject_retval);
- 
- 	struct {
- 		struct evdev_check check;
--		void *ptr;
-+		const void *ptr;
- 	} a[] = {
- 		{ { ARG_STR(EVIOCGID), id, print_input_id }, NULL },
- 		{ { ARG_STR(EVIOCGABS(ABS_X)), absinfo, print_input_absinfo }, NULL },
- 		{ { ARG_STR(EVIOCGABS(ABS_Y)), absinfo, print_input_absinfo }, NULL },
- 		{ { ARG_STR(EVIOCGABS(ABS_Y)), absinfo, print_input_absinfo }, NULL },
--		{ { ARG_STR(EVIOCGBIT(0, 0)), ev_more, print_getbit }, &ev_more_str },
--		{ { ARG_STR(EVIOCGBIT(0, 0)), ev_less, print_getbit }, &ev_less_str },
-+		{ { ARG_STR(EVIOCGBIT(0, 0)), ev_more, print_getbit },
-+			inject_retval * 8 <= EV_LED
-+				? (const void *) &ev_more_str_2
-+				: (const void *) &ev_more_str_3 },
-+		{ { ARG_STR(EVIOCGBIT(0, 0)), ev_less, print_getbit },
-+			inject_retval * 8 <= EV_LED
-+				? (const void *) &ev_less_str_2
-+				: (const void *) &ev_less_str_3 },
- 		{ { ARG_STR(EVIOCGBIT(0, 0)), ev_zero, print_getbit }, &ev_zero_str },
--		{ { ARG_STR(EVIOCGBIT(EV_KEY, 0)), key, print_getbit }, &key_str},
-+		{ { ARG_STR(EVIOCGBIT(EV_KEY, 0)), key, print_getbit },
-+			inject_retval * 8 <= KEY_F12
-+				? (const void *) &key_str_8
-+				: (const void *) &key_str_16 },
- # ifdef EVIOCGMTSLOTS
- 		{ { ARG_STR(EVIOCGMTSLOTS(12)), mtslots, print_mtslots }, &mtslots_str },
- 		{ { ARG_STR(EVIOCGMTSLOTS(8)), invalid_mtslot, print_mtslots }, &invalid_mtslot_str }
diff --git a/SOURCES/0035-v4l2-avoid-shifting-left-a-signed-number-by-31-bit.patch b/SOURCES/0035-v4l2-avoid-shifting-left-a-signed-number-by-31-bit.patch
deleted file mode 100644
index a2c85f9..0000000
--- a/SOURCES/0035-v4l2-avoid-shifting-left-a-signed-number-by-31-bit.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 91281fec7823f1cd3df3374fbcbd14af52a3fa1b Mon Sep 17 00:00:00 2001
-From: Eugene Syromyatnikov <evgsyr@gmail.com>
-Date: Wed, 14 Aug 2019 17:15:47 +0200
-Subject: [PATCH] v4l2: avoid shifting left a signed number by 31 bit
-
-cppcheck warns about it with the following diagnostics:
-
-    error[shiftTooManyBitsSigned]: Shifting signed 32-bit value by 31 bits is
-    undefined behaviour
-
-* v4l2.c [!v4l2_fourcc_be] (v4l2_fourcc_be): Shift left 1U and not 1 in
-order to get 0x80000000.
----
- v4l2.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/v4l2.c b/v4l2.c
-index 5da457c..505e7b8 100644
---- a/v4l2.c
-+++ b/v4l2.c
-@@ -47,7 +47,7 @@ typedef struct v4l2_standard struct_v4l2_standard;
- 
- /* v4l2_fourcc_be was added by Linux commit v3.18-rc1~101^2^2~127 */
- #ifndef v4l2_fourcc_be
--# define v4l2_fourcc_be(a, b, c, d) (v4l2_fourcc(a, b, c, d) | (1 << 31))
-+# define v4l2_fourcc_be(a, b, c, d) (v4l2_fourcc(a, b, c, d) | (1U << 31))
- #endif
- 
- #define FMT_FRACT "%u/%u"
--- 
-2.1.4
-
diff --git a/SOURCES/0036-syscall.c-avoid-infinite-loop-in-subcalls-parsing.patch b/SOURCES/0036-syscall.c-avoid-infinite-loop-in-subcalls-parsing.patch
deleted file mode 100644
index 9144dc1..0000000
--- a/SOURCES/0036-syscall.c-avoid-infinite-loop-in-subcalls-parsing.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 522ad3a0e73148dadd2480cd9cec84d9112b2e57 Mon Sep 17 00:00:00 2001
-From: Eugene Syromyatnikov <evgsyr@gmail.com>
-Date: Tue, 4 Sep 2018 14:48:13 +0200
-Subject: [PATCH] syscall.c: avoid infinite loop in subcalls parsing
-
-clang complains about it, so it might be a good reason to refactor it
-into something more linear.
-
-* syscall.c (syscall_entering_decode): Put syscall subcall decoding
-before ipc/socket subcall decoding, remove the loop.
----
- syscall.c | 19 ++++++-------------
- 1 file changed, 6 insertions(+), 13 deletions(-)
-
-diff --git a/syscall.c b/syscall.c
-index bae7343..a67d744 100644
---- a/syscall.c
-+++ b/syscall.c
-@@ -579,11 +579,13 @@ syscall_entering_decode(struct tcb *tcp)
- 		return res;
- 	}
- 
-+# ifdef SYS_syscall_subcall
-+	if (tcp_sysent(tcp)->sen == SEN_syscall)
-+		decode_syscall_subcall(tcp);
-+# endif
- #if defined SYS_ipc_subcall	\
-- || defined SYS_socket_subcall	\
-- || defined SYS_syscall_subcall
--	for (;;) {
--		switch (tcp_sysent(tcp)->sen) {
-+ || defined SYS_socket_subcall
-+	switch (tcp_sysent(tcp)->sen) {
- # ifdef SYS_ipc_subcall
- 		case SEN_ipc:
- 			decode_ipc_subcall(tcp);
-@@ -594,15 +596,6 @@ syscall_entering_decode(struct tcb *tcp)
- 			decode_socket_subcall(tcp);
- 			break;
- # endif
--# ifdef SYS_syscall_subcall
--		case SEN_syscall:
--			decode_syscall_subcall(tcp);
--			if (tcp_sysent(tcp)->sen != SEN_syscall)
--				continue;
--			break;
--# endif
--		}
--		break;
- 	}
- #endif
- 
--- 
-2.1.4
-
diff --git a/SOURCES/0037-kvm-avoid-bogus-vcpu_info-assignment-in-vcpu_registe.patch b/SOURCES/0037-kvm-avoid-bogus-vcpu_info-assignment-in-vcpu_registe.patch
deleted file mode 100644
index 7531868..0000000
--- a/SOURCES/0037-kvm-avoid-bogus-vcpu_info-assignment-in-vcpu_registe.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 9446038e9face3313373ca5f7539476789fd4660 Mon Sep 17 00:00:00 2001
-From: Eugene Syromyatnikov <evgsyr@gmail.com>
-Date: Tue, 18 Dec 2018 05:37:30 +0100
-Subject: [PATCH] kvm: avoid bogus vcpu_info assignment in vcpu_register
-
-Also reformat code a bit to make nesting a bit clearer.
-
-Reported by Clang.
-
-* kvm.c (vcpu_register): Do not assign vcpu_alloc result to vcpu_info
-as this value is not used afterwards in the function.
----
- kvm.c | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/kvm.c b/kvm.c
-index 984a75e..8bdf1cc 100644
---- a/kvm.c
-+++ b/kvm.c
-@@ -76,10 +76,9 @@ vcpu_register(struct tcb *const tcp, int fd, int cpuid)
- 
- 	struct vcpu_info *vcpu_info = vcpu_find(tcp, fd);
- 
--	if (!vcpu_info)
--		vcpu_info = vcpu_alloc(tcp, fd, cpuid);
--	else if (vcpu_info->cpuid != cpuid)
--	{
-+	if (!vcpu_info) {
-+		vcpu_alloc(tcp, fd, cpuid);
-+	} else if (vcpu_info->cpuid != cpuid) {
- 		vcpu_info->cpuid = cpuid;
- 		vcpu_info->resolved = false;
- 	}
--- 
-2.1.4
-
diff --git a/SOURCES/0038-xlat-use-unsgined-type-for-mount_flags-fallback-valu.patch b/SOURCES/0038-xlat-use-unsgined-type-for-mount_flags-fallback-valu.patch
deleted file mode 100644
index 5bc3768..0000000
--- a/SOURCES/0038-xlat-use-unsgined-type-for-mount_flags-fallback-valu.patch
+++ /dev/null
@@ -1,365 +0,0 @@
-From c26541c73c3b4be2977e719d77287255eb346cdf Mon Sep 17 00:00:00 2001
-From: Eugene Syromyatnikov <evgsyr@gmail.com>
-Date: Thu, 17 Oct 2019 13:13:45 +0200
-Subject: [PATCH] xlat: use unsgined type for mount_flags fallback values
-
-Reported by cppcheck:
-
-    strace/xlat/mount_flags.h:256: error[shiftTooManyBitsSigned]:
-    Shifting signed 32-bit value by 31 bits is undefined behaviour
-    #  254|    XLAT(MS_BORN),
-    #  255|    XLAT(MS_ACTIVE),
-    #  256|->  XLAT(MS_NOUSER),
-    #  257|    XLAT_END
-    #  258|   };
-
-* xlat/mount_flags.in: Use 1U instead of 1 as a bit shifting operand.
-
-References: https://bugzilla.redhat.com/show_bug.cgi?id=1747524
----
- xlat/mount_flags.in | 60 ++++++++++++++++++++++++++---------------------------
- 1 file changed, 30 insertions(+), 30 deletions(-)
-
-Index: strace-4.24/xlat/mount_flags.in
-===================================================================
---- strace-4.24.orig/xlat/mount_flags.in	2018-04-24 02:35:27.000000000 +0200
-+++ strace-4.24/xlat/mount_flags.in	2019-12-02 18:37:39.403710911 +0100
-@@ -1,30 +1,30 @@
--MS_RDONLY	1
--MS_NOSUID	2
--MS_NODEV	4
--MS_NOEXEC	8
--MS_SYNCHRONOUS	16
--MS_REMOUNT	32
--MS_MANDLOCK	64
--MS_DIRSYNC	128
--MS_NOATIME	1024
--MS_NODIRATIME	2048
--MS_BIND		4096
--MS_MOVE		8192
--MS_REC		16384
--MS_SILENT	32768
--MS_POSIXACL	(1<<16)
--MS_UNBINDABLE	(1<<17)
--MS_PRIVATE	(1<<18)
--MS_SLAVE	(1<<19)
--MS_SHARED	(1<<20)
--MS_RELATIME	(1<<21)
--MS_KERNMOUNT	(1<<22)
--MS_I_VERSION	(1<<23)
--MS_STRICTATIME	(1<<24)
--MS_LAZYTIME	(1<<25)
--MS_SUBMOUNT     (1<<26)
--MS_NOREMOTELOCK	(1<<27)
--MS_NOSEC	(1<<28)
--MS_BORN		(1<<29)
--MS_ACTIVE	(1<<30)
--MS_NOUSER	(1<<31)
-+MS_RDONLY	(1U<<0)
-+MS_NOSUID	(1U<<1)
-+MS_NODEV	(1U<<2)
-+MS_NOEXEC	(1U<<3)
-+MS_SYNCHRONOUS	(1U<<4)
-+MS_REMOUNT	(1U<<5)
-+MS_MANDLOCK	(1U<<6)
-+MS_DIRSYNC	(1U<<7)
-+MS_NOATIME	(1U<<10)
-+MS_NODIRATIME	(1U<<11)
-+MS_BIND		(1U<<12)
-+MS_MOVE		(1U<<13)
-+MS_REC		(1U<<14)
-+MS_SILENT	(1U<<15)
-+MS_POSIXACL	(1U<<16)
-+MS_UNBINDABLE	(1U<<17)
-+MS_PRIVATE	(1U<<18)
-+MS_SLAVE	(1U<<19)
-+MS_SHARED	(1U<<20)
-+MS_RELATIME	(1U<<21)
-+MS_KERNMOUNT	(1U<<22)
-+MS_I_VERSION	(1U<<23)
-+MS_STRICTATIME	(1U<<24)
-+MS_LAZYTIME	(1U<<25)
-+MS_SUBMOUNT     (1U<<26)
-+MS_NOREMOTELOCK	(1U<<27)
-+MS_NOSEC	(1U<<28)
-+MS_BORN		(1U<<29)
-+MS_ACTIVE	(1U<<30)
-+MS_NOUSER	(1U<<31)
-Index: strace-4.24/xlat/mount_flags.h
-===================================================================
---- strace-4.24.orig/xlat/mount_flags.h	2018-08-14 02:44:19.000000000 +0200
-+++ strace-4.24/xlat/mount_flags.h	2019-12-02 18:38:36.102900164 +0100
-@@ -5,213 +5,213 @@
- 
- #if defined(MS_RDONLY) || (defined(HAVE_DECL_MS_RDONLY) && HAVE_DECL_MS_RDONLY)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((MS_RDONLY) == (1), "MS_RDONLY != 1");
-+static_assert((MS_RDONLY) == ((1U<<0)), "MS_RDONLY != (1U<<0)");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define MS_RDONLY 1
-+# define MS_RDONLY (1U<<0)
- #endif
- #if defined(MS_NOSUID) || (defined(HAVE_DECL_MS_NOSUID) && HAVE_DECL_MS_NOSUID)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((MS_NOSUID) == (2), "MS_NOSUID != 2");
-+static_assert((MS_NOSUID) == ((1U<<1)), "MS_NOSUID != (1U<<1)");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define MS_NOSUID 2
-+# define MS_NOSUID (1U<<1)
- #endif
- #if defined(MS_NODEV) || (defined(HAVE_DECL_MS_NODEV) && HAVE_DECL_MS_NODEV)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((MS_NODEV) == (4), "MS_NODEV != 4");
-+static_assert((MS_NODEV) == ((1U<<2)), "MS_NODEV != (1U<<2)");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define MS_NODEV 4
-+# define MS_NODEV (1U<<2)
- #endif
- #if defined(MS_NOEXEC) || (defined(HAVE_DECL_MS_NOEXEC) && HAVE_DECL_MS_NOEXEC)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((MS_NOEXEC) == (8), "MS_NOEXEC != 8");
-+static_assert((MS_NOEXEC) == ((1U<<3)), "MS_NOEXEC != (1U<<3)");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define MS_NOEXEC 8
-+# define MS_NOEXEC (1U<<3)
- #endif
- #if defined(MS_SYNCHRONOUS) || (defined(HAVE_DECL_MS_SYNCHRONOUS) && HAVE_DECL_MS_SYNCHRONOUS)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((MS_SYNCHRONOUS) == (16), "MS_SYNCHRONOUS != 16");
-+static_assert((MS_SYNCHRONOUS) == ((1U<<4)), "MS_SYNCHRONOUS != (1U<<4)");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define MS_SYNCHRONOUS 16
-+# define MS_SYNCHRONOUS (1U<<4)
- #endif
- #if defined(MS_REMOUNT) || (defined(HAVE_DECL_MS_REMOUNT) && HAVE_DECL_MS_REMOUNT)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((MS_REMOUNT) == (32), "MS_REMOUNT != 32");
-+static_assert((MS_REMOUNT) == ((1U<<5)), "MS_REMOUNT != (1U<<5)");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define MS_REMOUNT 32
-+# define MS_REMOUNT (1U<<5)
- #endif
- #if defined(MS_MANDLOCK) || (defined(HAVE_DECL_MS_MANDLOCK) && HAVE_DECL_MS_MANDLOCK)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((MS_MANDLOCK) == (64), "MS_MANDLOCK != 64");
-+static_assert((MS_MANDLOCK) == ((1U<<6)), "MS_MANDLOCK != (1U<<6)");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define MS_MANDLOCK 64
-+# define MS_MANDLOCK (1U<<6)
- #endif
- #if defined(MS_DIRSYNC) || (defined(HAVE_DECL_MS_DIRSYNC) && HAVE_DECL_MS_DIRSYNC)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((MS_DIRSYNC) == (128), "MS_DIRSYNC != 128");
-+static_assert((MS_DIRSYNC) == ((1U<<7)), "MS_DIRSYNC != (1U<<7)");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define MS_DIRSYNC 128
-+# define MS_DIRSYNC (1U<<7)
- #endif
- #if defined(MS_NOATIME) || (defined(HAVE_DECL_MS_NOATIME) && HAVE_DECL_MS_NOATIME)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((MS_NOATIME) == (1024), "MS_NOATIME != 1024");
-+static_assert((MS_NOATIME) == ((1U<<10)), "MS_NOATIME != (1U<<10)");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define MS_NOATIME 1024
-+# define MS_NOATIME (1U<<10)
- #endif
- #if defined(MS_NODIRATIME) || (defined(HAVE_DECL_MS_NODIRATIME) && HAVE_DECL_MS_NODIRATIME)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((MS_NODIRATIME) == (2048), "MS_NODIRATIME != 2048");
-+static_assert((MS_NODIRATIME) == ((1U<<11)), "MS_NODIRATIME != (1U<<11)");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define MS_NODIRATIME 2048
-+# define MS_NODIRATIME (1U<<11)
- #endif
- #if defined(MS_BIND) || (defined(HAVE_DECL_MS_BIND) && HAVE_DECL_MS_BIND)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((MS_BIND) == (4096), "MS_BIND != 4096");
-+static_assert((MS_BIND) == ((1U<<12)), "MS_BIND != (1U<<12)");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define MS_BIND 4096
-+# define MS_BIND (1U<<12)
- #endif
- #if defined(MS_MOVE) || (defined(HAVE_DECL_MS_MOVE) && HAVE_DECL_MS_MOVE)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((MS_MOVE) == (8192), "MS_MOVE != 8192");
-+static_assert((MS_MOVE) == ((1U<<13)), "MS_MOVE != (1U<<13)");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define MS_MOVE 8192
-+# define MS_MOVE (1U<<13)
- #endif
- #if defined(MS_REC) || (defined(HAVE_DECL_MS_REC) && HAVE_DECL_MS_REC)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((MS_REC) == (16384), "MS_REC != 16384");
-+static_assert((MS_REC) == ((1U<<14)), "MS_REC != (1U<<14)");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define MS_REC 16384
-+# define MS_REC (1U<<14)
- #endif
- #if defined(MS_SILENT) || (defined(HAVE_DECL_MS_SILENT) && HAVE_DECL_MS_SILENT)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((MS_SILENT) == (32768), "MS_SILENT != 32768");
-+static_assert((MS_SILENT) == ((1U<<15)), "MS_SILENT != (1U<<15)");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define MS_SILENT 32768
-+# define MS_SILENT (1U<<15)
- #endif
- #if defined(MS_POSIXACL) || (defined(HAVE_DECL_MS_POSIXACL) && HAVE_DECL_MS_POSIXACL)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((MS_POSIXACL) == ((1<<16)), "MS_POSIXACL != (1<<16)");
-+static_assert((MS_POSIXACL) == ((1U<<16)), "MS_POSIXACL != (1U<<16)");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define MS_POSIXACL (1<<16)
-+# define MS_POSIXACL (1U<<16)
- #endif
- #if defined(MS_UNBINDABLE) || (defined(HAVE_DECL_MS_UNBINDABLE) && HAVE_DECL_MS_UNBINDABLE)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((MS_UNBINDABLE) == ((1<<17)), "MS_UNBINDABLE != (1<<17)");
-+static_assert((MS_UNBINDABLE) == ((1U<<17)), "MS_UNBINDABLE != (1U<<17)");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define MS_UNBINDABLE (1<<17)
-+# define MS_UNBINDABLE (1U<<17)
- #endif
- #if defined(MS_PRIVATE) || (defined(HAVE_DECL_MS_PRIVATE) && HAVE_DECL_MS_PRIVATE)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((MS_PRIVATE) == ((1<<18)), "MS_PRIVATE != (1<<18)");
-+static_assert((MS_PRIVATE) == ((1U<<18)), "MS_PRIVATE != (1U<<18)");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define MS_PRIVATE (1<<18)
-+# define MS_PRIVATE (1U<<18)
- #endif
- #if defined(MS_SLAVE) || (defined(HAVE_DECL_MS_SLAVE) && HAVE_DECL_MS_SLAVE)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((MS_SLAVE) == ((1<<19)), "MS_SLAVE != (1<<19)");
-+static_assert((MS_SLAVE) == ((1U<<19)), "MS_SLAVE != (1U<<19)");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define MS_SLAVE (1<<19)
-+# define MS_SLAVE (1U<<19)
- #endif
- #if defined(MS_SHARED) || (defined(HAVE_DECL_MS_SHARED) && HAVE_DECL_MS_SHARED)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((MS_SHARED) == ((1<<20)), "MS_SHARED != (1<<20)");
-+static_assert((MS_SHARED) == ((1U<<20)), "MS_SHARED != (1U<<20)");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define MS_SHARED (1<<20)
-+# define MS_SHARED (1U<<20)
- #endif
- #if defined(MS_RELATIME) || (defined(HAVE_DECL_MS_RELATIME) && HAVE_DECL_MS_RELATIME)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((MS_RELATIME) == ((1<<21)), "MS_RELATIME != (1<<21)");
-+static_assert((MS_RELATIME) == ((1U<<21)), "MS_RELATIME != (1U<<21)");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define MS_RELATIME (1<<21)
-+# define MS_RELATIME (1U<<21)
- #endif
- #if defined(MS_KERNMOUNT) || (defined(HAVE_DECL_MS_KERNMOUNT) && HAVE_DECL_MS_KERNMOUNT)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((MS_KERNMOUNT) == ((1<<22)), "MS_KERNMOUNT != (1<<22)");
-+static_assert((MS_KERNMOUNT) == ((1U<<22)), "MS_KERNMOUNT != (1U<<22)");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define MS_KERNMOUNT (1<<22)
-+# define MS_KERNMOUNT (1U<<22)
- #endif
- #if defined(MS_I_VERSION) || (defined(HAVE_DECL_MS_I_VERSION) && HAVE_DECL_MS_I_VERSION)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((MS_I_VERSION) == ((1<<23)), "MS_I_VERSION != (1<<23)");
-+static_assert((MS_I_VERSION) == ((1U<<23)), "MS_I_VERSION != (1U<<23)");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define MS_I_VERSION (1<<23)
-+# define MS_I_VERSION (1U<<23)
- #endif
- #if defined(MS_STRICTATIME) || (defined(HAVE_DECL_MS_STRICTATIME) && HAVE_DECL_MS_STRICTATIME)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((MS_STRICTATIME) == ((1<<24)), "MS_STRICTATIME != (1<<24)");
-+static_assert((MS_STRICTATIME) == ((1U<<24)), "MS_STRICTATIME != (1U<<24)");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define MS_STRICTATIME (1<<24)
-+# define MS_STRICTATIME (1U<<24)
- #endif
- #if defined(MS_LAZYTIME) || (defined(HAVE_DECL_MS_LAZYTIME) && HAVE_DECL_MS_LAZYTIME)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((MS_LAZYTIME) == ((1<<25)), "MS_LAZYTIME != (1<<25)");
-+static_assert((MS_LAZYTIME) == ((1U<<25)), "MS_LAZYTIME != (1U<<25)");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define MS_LAZYTIME (1<<25)
-+# define MS_LAZYTIME (1U<<25)
- #endif
- #if defined(MS_SUBMOUNT) || (defined(HAVE_DECL_MS_SUBMOUNT) && HAVE_DECL_MS_SUBMOUNT)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((MS_SUBMOUNT) == ((1<<26)), "MS_SUBMOUNT != (1<<26)");
-+static_assert((MS_SUBMOUNT) == ((1U<<26)), "MS_SUBMOUNT != (1U<<26)");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define MS_SUBMOUNT (1<<26)
-+# define MS_SUBMOUNT (1U<<26)
- #endif
- #if defined(MS_NOREMOTELOCK) || (defined(HAVE_DECL_MS_NOREMOTELOCK) && HAVE_DECL_MS_NOREMOTELOCK)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((MS_NOREMOTELOCK) == ((1<<27)), "MS_NOREMOTELOCK != (1<<27)");
-+static_assert((MS_NOREMOTELOCK) == ((1U<<27)), "MS_NOREMOTELOCK != (1U<<27)");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define MS_NOREMOTELOCK (1<<27)
-+# define MS_NOREMOTELOCK (1U<<27)
- #endif
- #if defined(MS_NOSEC) || (defined(HAVE_DECL_MS_NOSEC) && HAVE_DECL_MS_NOSEC)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((MS_NOSEC) == ((1<<28)), "MS_NOSEC != (1<<28)");
-+static_assert((MS_NOSEC) == ((1U<<28)), "MS_NOSEC != (1U<<28)");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define MS_NOSEC (1<<28)
-+# define MS_NOSEC (1U<<28)
- #endif
- #if defined(MS_BORN) || (defined(HAVE_DECL_MS_BORN) && HAVE_DECL_MS_BORN)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((MS_BORN) == ((1<<29)), "MS_BORN != (1<<29)");
-+static_assert((MS_BORN) == ((1U<<29)), "MS_BORN != (1U<<29)");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define MS_BORN (1<<29)
-+# define MS_BORN (1U<<29)
- #endif
- #if defined(MS_ACTIVE) || (defined(HAVE_DECL_MS_ACTIVE) && HAVE_DECL_MS_ACTIVE)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((MS_ACTIVE) == ((1<<30)), "MS_ACTIVE != (1<<30)");
-+static_assert((MS_ACTIVE) == ((1U<<30)), "MS_ACTIVE != (1U<<30)");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define MS_ACTIVE (1<<30)
-+# define MS_ACTIVE (1U<<30)
- #endif
- #if defined(MS_NOUSER) || (defined(HAVE_DECL_MS_NOUSER) && HAVE_DECL_MS_NOUSER)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((MS_NOUSER) == ((1<<31)), "MS_NOUSER != (1<<31)");
-+static_assert((MS_NOUSER) == ((1U<<31)), "MS_NOUSER != (1U<<31)");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define MS_NOUSER (1<<31)
-+# define MS_NOUSER (1U<<31)
- #endif
- 
- #ifndef XLAT_MACROS_ONLY
diff --git a/SOURCES/0039-unwind-libdw-fix-initialization-of-libdwfl-cache.patch b/SOURCES/0039-unwind-libdw-fix-initialization-of-libdwfl-cache.patch
deleted file mode 100644
index 17fd6cc..0000000
--- a/SOURCES/0039-unwind-libdw-fix-initialization-of-libdwfl-cache.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 69b2c33a77fa687feb41fafdbe187013aa812384 Mon Sep 17 00:00:00 2001
-From: "Dmitry V. Levin" <ldv@altlinux.org>
-Date: Tue, 7 Jan 2020 18:54:55 +0000
-Subject: [PATCH] unwind-libdw: fix initialization of libdwfl cache
-
-This fixes stack trace printing for early syscalls that precede
-the first syscall from memory mapping or execve families.
-
-* unwind-libdw.c (tcb_init): Set struct ctx.last_proc_updating
-to a value different from mapping_generation so that libdwfl cache
-is properly initialized before the first use.
-* NEWS: Mention this fix.
-
-Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1788636
----
-Backport changes:
- - NEWS hunk has been dropped.
-
----
- NEWS           | 2 ++
- unwind-libdw.c | 2 +-
- 2 files changed, 3 insertions(+), 1 deletion(-)
-
-Index: strace-4.24/unwind-libdw.c
-===================================================================
---- strace-4.24.orig/unwind-libdw.c	2020-01-23 12:55:01.922338273 +0100
-+++ strace-4.24/unwind-libdw.c	2020-01-23 12:55:06.131299136 +0100
-@@ -69,7 +69,7 @@
- 
- 	struct ctx *ctx = xmalloc(sizeof(*ctx));
- 	ctx->dwfl = dwfl;
--	ctx->last_proc_updating = 0;
-+	ctx->last_proc_updating = mapping_generation - 1;
- 	return ctx;
- }
- 
diff --git a/SOURCES/0040-syscall-do-not-capture-stack-trace-while-the-tracee-.patch b/SOURCES/0040-syscall-do-not-capture-stack-trace-while-the-tracee-.patch
deleted file mode 100644
index a9add6e..0000000
--- a/SOURCES/0040-syscall-do-not-capture-stack-trace-while-the-tracee-.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 35e080ae319d25c1df82855cda3a1bb014e90ba6 Mon Sep 17 00:00:00 2001
-From: "Dmitry V. Levin" <ldv@altlinux.org>
-Date: Wed, 8 Jan 2020 00:41:58 +0000
-Subject: [PATCH] syscall: do not capture stack trace while the tracee executes
- strace code
-
-* syscall.c (syscall_entering_trace) [ENABLE_STACKTRACE]: Do not capture
-stack trace when TCB_CHECK_EXEC_SYSCALL flag is set.
----
- syscall.c | 9 +++++----
- 1 file changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/syscall.c b/syscall.c
-index fadd3b5..a8fb4f1 100644
---- a/syscall.c
-+++ b/syscall.c
-@@ -620,7 +620,7 @@ syscall_entering_trace(struct tcb *tcp, unsigned int *sig)
- 	if (hide_log(tcp)) {
- 		/*
- 		 * Restrain from fault injection
--		 * while the trace executes strace code.
-+		 * while the tracee executes strace code.
- 		 */
- 		tcp->qual_flg &= ~QUAL_INJECT;
- 
-@@ -655,9 +655,10 @@ syscall_entering_trace(struct tcb *tcp, unsigned int *sig)
- 	}
- 
- #ifdef ENABLE_STACKTRACE
--	if (stack_trace_enabled) {
--		if (tcp_sysent(tcp)->sys_flags & STACKTRACE_CAPTURE_ON_ENTER)
--			unwind_tcb_capture(tcp);
-+	if (stack_trace_enabled &&
-+	    !check_exec_syscall(tcp) &&
-+	    tcp_sysent(tcp)->sys_flags & STACKTRACE_CAPTURE_ON_ENTER) {
-+		unwind_tcb_capture(tcp);
- 	}
- #endif
- 
--- 
-2.1.4
-
diff --git a/SOURCES/0041-tests-add-strace-k-p-test.patch b/SOURCES/0041-tests-add-strace-k-p-test.patch
deleted file mode 100644
index 3f56199..0000000
--- a/SOURCES/0041-tests-add-strace-k-p-test.patch
+++ /dev/null
@@ -1,761 +0,0 @@
-From 8e515c744935fe67e6a1b941f4c5414472c163b7 Mon Sep 17 00:00:00 2001
-From: Eugene Syromyatnikov <evgsyr@gmail.com>
-Date: Mon, 20 Jan 2020 16:19:40 +0100
-Subject: [PATCH] tests: add strace-k-p test
-
-Add a check of the stack unwinding for attached processes.
-
-* tests/stack-fcall-attach.c: New file.
-* tests/strace-k-p.expected: Likewise.
-* tests/strace-k-p.test: New test.
-* tests/Makefile.am (EXTRA_DIST): Add strace-k-p.expected and strace-k-p.test.
-(STACKTRACE_TESTS): Add strace-k-p.test
-(check_PROGRAMS): Add stack-fcall-attach.
-(stack_fcall_attach_SOURCES): New variable.
-* tests/stack-fcall.c: Include "tests.h" and <unistd.h>.
-[!ATTACH_MODE] (ATTACH_MODE): Define to 0.
-(main) [ATTACH_MODE]: Wait a bit.
-* tests/strace-k.test: Add attach mode.
-
-Complements: v5.4-18-g69b2c33 "unwind-libdw: fix initialization of libdwfl cache"
----
-Backport changes:
- * "SIGURG" line has been removed from tests/strace-k-p.expected, as it requires
-   v4.25~22 "Print stack traces on signals" and v4.25~21 "tests: check stack
-   unwinding for signals".
- * "chdir" usage in tests/strace-k-p.expected has been replaced with "getpid",
-    as it is the syscall that was used in the stack-fcall.c at the time.
- * Added the respective changes to tests/Makefile.in file.
- * The changes to tests/stack-fcall-attach.c, tests/strace-k-p.expected,
-   tests/strace-k-p.test, tests/Makefile.am, tests/stack-fcall.c,
-   and tests/strace-k.test have been copied over to tests-m32 and tests-mx32
-   directories.
-
----
- tests/Makefile.am          |  8 +++++++-
- tests/stack-fcall-attach.c |  2 ++
- tests/stack-fcall.c        | 11 +++++++++++
- tests/strace-k-p.expected  |  2 ++
- tests/strace-k-p.test      | 13 +++++++++++++
- tests/strace-k.test        | 17 ++++++++++++++++-
- 6 files changed, 51 insertions(+), 2 deletions(-)
- create mode 100644 tests/stack-fcall-attach.c
- create mode 100644 tests/strace-k-p.expected
- create mode 100755 tests/strace-k-p.test
-
-Index: strace-5.1/tests/Makefile.am
-===================================================================
---- strace-5.1.orig/tests/Makefile.am	2020-01-23 16:56:22.081268798 +0100
-+++ strace-5.1/tests/Makefile.am	2020-01-23 17:03:50.786051167 +0100
-@@ -156,6 +156,7 @@
- 	signal_receive \
- 	sleep \
- 	stack-fcall \
-+	stack-fcall-attach \
- 	stack-fcall-mangled \
- 	threads-execve \
- 	unblock_reset_raise \
-@@ -198,6 +199,9 @@
- stack_fcall_SOURCES = stack-fcall.c \
- 	stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
- 
-+stack_fcall_attach_SOURCES = stack-fcall-attach.c \
-+	stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
-+
- stack_fcall_mangled_SOURCES = stack-fcall-mangled.c \
- 	stack-fcall-mangled-0.c stack-fcall-mangled-1.c \
- 	stack-fcall-mangled-2.c stack-fcall-mangled-3.c
-@@ -205,7 +209,7 @@
- include gen_tests.am
- 
- if ENABLE_STACKTRACE
--STACKTRACE_TESTS = strace-k.test
-+STACKTRACE_TESTS = strace-k.test strace-k-p.test
- if USE_DEMANGLE
- STACKTRACE_TESTS += strace-k-demangle.test
- endif
-@@ -428,6 +432,8 @@
- 	strace-ff.expected \
- 	strace-k-demangle.expected \
- 	strace-k-demangle.test \
-+	strace-k-p.expected \
-+	strace-k-p.test \
- 	strace-k.expected \
- 	strace-k.test \
- 	strace-r.expected \
-Index: strace-5.1/tests/stack-fcall-attach.c
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ strace-5.1/tests/stack-fcall-attach.c	2020-01-23 17:03:50.786051167 +0100
-@@ -0,0 +1,2 @@
-+#define ATTACH_MODE 1
-+#include "stack-fcall.c"
-Index: strace-5.1/tests/stack-fcall.c
-===================================================================
---- strace-5.1.orig/tests/stack-fcall.c	2020-01-23 17:03:50.787051163 +0100
-+++ strace-5.1/tests/stack-fcall.c	2020-01-23 17:04:34.525868669 +0100
-@@ -5,10 +5,21 @@
-  * SPDX-License-Identifier: GPL-2.0-or-later
-  */
- 
-+#include "tests.h"
-+#include <unistd.h>
- #include "stack-fcall.h"
- 
-+#ifndef ATTACH_MODE
-+# define ATTACH_MODE 0
-+#endif
-+
- int main(void)
- {
-+#if ATTACH_MODE
-+	/* sleep a bit to let the tracer time to catch up */
-+	sleep(1);
-+#endif
-+
- 	f0(0);
- 	f0(1);
- 	return 0;
-Index: strace-5.1/tests/strace-k-p.expected
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ strace-5.1/tests/strace-k-p.expected	2020-01-23 17:14:13.570831178 +0100
-@@ -0,0 +1,2 @@
-+^chdir .*(__kernel_vsyscaln )?(__)?chdir f3 f2 f1 f0 main
-+^SIGURG .*(__kernel_vsyscaln )?(__)?kill f3 f2 f1 f0 main
-Index: strace-5.1/tests/strace-k-p.test
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ strace-5.1/tests/strace-k-p.test	2020-01-23 17:03:50.787051163 +0100
-@@ -0,0 +1,13 @@
-+#!/bin/sh
-+#
-+# Check strace -k for attached tracees.
-+#
-+# Copyright (c) 2020 The strace developers.
-+# All rights reserved.
-+#
-+# SPDX-License-Identifier: GPL-2.0-or-later
-+
-+ATTACH_MODE=1
-+test_prog=../stack-fcall-attach
-+
-+. "${srcdir=.}"/strace-k.test
-Index: strace-5.1/tests/strace-k.test
-===================================================================
---- strace-5.1.orig/tests/strace-k.test	2020-01-23 16:56:22.081268798 +0100
-+++ strace-5.1/tests/strace-k.test	2020-01-23 17:05:26.569651525 +0100
-@@ -11,6 +11,8 @@
- 
- . "${srcdir=.}/init.sh"
- 
-+: "${ATTACH_MODE=0}"
-+
- # strace -k is implemented using /proc/$pid/maps
- [ -f /proc/self/maps ] ||
- 	framework_skip_ '/proc/self/maps is not available'
-@@ -20,7 +22,19 @@
- check_prog tr
- 
- run_prog "${test_prog=../stack-fcall}"
--run_strace -e chdir -k $args
-+if [ "x${ATTACH_MODE}" = "x1" ]; then
-+	../set_ptracer_any "${test_prog}" >> "$EXP" &
-+	tracee_pid=$!
-+
-+	while ! [ -s "$EXP" ]; do
-+		kill -0 "$tracee_pid" 2> /dev/null ||
-+			fail_ 'set_ptracer_any failed'
-+	done
-+
-+	run_strace -e chdir -k -p "$tracee_pid"
-+else
-+	run_strace -e chdir -k $args
-+fi
- 
- expected="$srcdir/$NAME.expected"
- awk '
-Index: strace-5.1/tests/Makefile.in
-===================================================================
---- strace-5.1.orig/tests/Makefile.in	2020-01-23 16:56:22.086268802 +0100
-+++ strace-5.1/tests/Makefile.in	2020-01-23 17:07:45.456135366 +0100
-@@ -144,9 +144,9 @@
- 	seccomp-strict$(EXEEXT) select-P$(EXEEXT) \
- 	set_ptracer_any$(EXEEXT) set_sigblock$(EXEEXT) \
- 	set_sigign$(EXEEXT) signal_receive$(EXEEXT) sleep$(EXEEXT) \
--	stack-fcall$(EXEEXT) stack-fcall-mangled$(EXEEXT) \
--	threads-execve$(EXEEXT) unblock_reset_raise$(EXEEXT) \
--	unix-pair-send-recv$(EXEEXT) \
-+	stack-fcall$(EXEEXT) stack-fcall-attach$(EXEEXT) \
-+	stack-fcall-mangled$(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) zeroargc$(EXEEXT)
- @ENABLE_STACKTRACE_TRUE@@USE_DEMANGLE_TRUE@am__append_1 = strace-k-demangle.test
-@@ -2604,6 +2604,12 @@
- stack_fcall_OBJECTS = $(am_stack_fcall_OBJECTS)
- stack_fcall_LDADD = $(LDADD)
- stack_fcall_DEPENDENCIES = libtests.a
-+am_stack_fcall_attach_OBJECTS = stack-fcall-attach.$(OBJEXT) \
-+	stack-fcall-0.$(OBJEXT) stack-fcall-1.$(OBJEXT) \
-+	stack-fcall-2.$(OBJEXT) stack-fcall-3.$(OBJEXT)
-+stack_fcall_attach_OBJECTS = $(am_stack_fcall_attach_OBJECTS)
-+stack_fcall_attach_LDADD = $(LDADD)
-+stack_fcall_attach_DEPENDENCIES = libtests.a
- am_stack_fcall_mangled_OBJECTS = stack-fcall-mangled.$(OBJEXT) \
- 	stack-fcall-mangled-0.$(OBJEXT) \
- 	stack-fcall-mangled-1.$(OBJEXT) \
-@@ -3453,7 +3459,7 @@
- 	sock_filter-v-Xverbose.c sockaddr_xlat-Xabbrev.c \
- 	sockaddr_xlat-Xraw.c sockaddr_xlat-Xverbose.c socketcall.c \
- 	sockopt-sol_netlink.c sockopt-timestamp.c splice.c \
--	$(stack_fcall_SOURCES) $(stack_fcall_mangled_SOURCES) stat.c \
-+	$(stack_fcall_SOURCES) $(stack_fcall_attach_SOURCES) $(stack_fcall_mangled_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 \
-@@ -3620,7 +3626,7 @@
- 	sock_filter-v-Xverbose.c sockaddr_xlat-Xabbrev.c \
- 	sockaddr_xlat-Xraw.c sockaddr_xlat-Xverbose.c socketcall.c \
- 	sockopt-sol_netlink.c sockopt-timestamp.c splice.c \
--	$(stack_fcall_SOURCES) $(stack_fcall_mangled_SOURCES) stat.c \
-+	$(stack_fcall_SOURCES) $(stack_fcall_attach_SOURCES) $(stack_fcall_mangled_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 \
-@@ -3848,7 +3854,8 @@
-   bases=`echo $$bases`
- RECHECK_LOGS = $(TEST_LOGS)
- AM_RECURSIVE_TARGETS = check recheck
--@ENABLE_STACKTRACE_TRUE@am__EXEEXT_2 = strace-k.test $(am__append_1)
-+@ENABLE_STACKTRACE_TRUE@am__EXEEXT_2 = strace-k.test strace-k-p.test \
-+@ENABLE_STACKTRACE_TRUE@	$(am__append_1)
- TEST_SUITE_LOG = test-suite.log
- TEST_EXTENSIONS = @EXEEXT@ .test
- am__test_logs1 = $(TESTS:=.log)
-@@ -4634,6 +4641,9 @@
- stack_fcall_SOURCES = stack-fcall.c \
- 	stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
- 
-+stack_fcall_attach_SOURCES = stack-fcall-attach.c \
-+	stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
-+
- stack_fcall_mangled_SOURCES = stack-fcall-mangled.c \
- 	stack-fcall-mangled-0.c stack-fcall-mangled-1.c \
- 	stack-fcall-mangled-2.c stack-fcall-mangled-3.c
-@@ -4863,7 +4873,7 @@
- 	xettimeofday.gen.test
- @ENABLE_STACKTRACE_FALSE@STACKTRACE_TESTS = 
- @ENABLE_STACKTRACE_TRUE@STACKTRACE_TESTS = strace-k.test \
--@ENABLE_STACKTRACE_TRUE@	$(am__append_1)
-+@ENABLE_STACKTRACE_TRUE@	strace-k-p.test $(am__append_1)
- DECODER_TESTS = \
- 	bpf-success-v.test \
- 	bpf-success.test \
-@@ -5074,6 +5084,8 @@
- 	strace-ff.expected \
- 	strace-k-demangle.expected \
- 	strace-k-demangle.test \
-+	strace-k-p.expected \
-+	strace-k-p.test \
- 	strace-k.expected \
- 	strace-k.test \
- 	strace-r.expected \
-@@ -7345,6 +7357,10 @@
- 	@rm -f stack-fcall$(EXEEXT)
- 	$(AM_V_CCLD)$(LINK) $(stack_fcall_OBJECTS) $(stack_fcall_LDADD) $(LIBS)
- 
-+stack-fcall-attach$(EXEEXT): $(stack_fcall_attach_OBJECTS) $(stack_fcall_attach_DEPENDENCIES) $(EXTRA_stack_fcall_attach_DEPENDENCIES) 
-+	@rm -f stack-fcall-attach$(EXEEXT)
-+	$(AM_V_CCLD)$(LINK) $(stack_fcall_attach_OBJECTS) $(stack_fcall_attach_LDADD) $(LIBS)
-+
- stack-fcall-mangled$(EXEEXT): $(stack_fcall_mangled_OBJECTS) $(stack_fcall_mangled_DEPENDENCIES) $(EXTRA_stack_fcall_mangled_DEPENDENCIES) 
- 	@rm -f stack-fcall-mangled$(EXEEXT)
- 	$(AM_V_CCLD)$(LINK) $(stack_fcall_mangled_OBJECTS) $(stack_fcall_mangled_LDADD) $(LIBS)
-@@ -8193,6 +8209,7 @@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-1.Po@am__quote@ # am--include-marker
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-2.Po@am__quote@ # am--include-marker
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-3.Po@am__quote@ # am--include-marker
-+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-attach.Po@am__quote@ # am--include-marker
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-0.Po@am__quote@ # am--include-marker
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-1.Po@am__quote@ # am--include-marker
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-2.Po@am__quote@ # am--include-marker
-Index: strace-5.1/tests-m32/Makefile.am
-===================================================================
---- strace-5.1.orig/tests-m32/Makefile.am	2020-01-23 16:56:22.087268803 +0100
-+++ strace-5.1/tests-m32/Makefile.am	2020-01-23 17:03:50.790051150 +0100
-@@ -156,6 +156,7 @@
- 	signal_receive \
- 	sleep \
- 	stack-fcall \
-+	stack-fcall-attach \
- 	stack-fcall-mangled \
- 	threads-execve \
- 	unblock_reset_raise \
-@@ -198,6 +199,9 @@
- stack_fcall_SOURCES = stack-fcall.c \
- 	stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
- 
-+stack_fcall_attach_SOURCES = stack-fcall-attach.c \
-+	stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
-+
- stack_fcall_mangled_SOURCES = stack-fcall-mangled.c \
- 	stack-fcall-mangled-0.c stack-fcall-mangled-1.c \
- 	stack-fcall-mangled-2.c stack-fcall-mangled-3.c
-@@ -205,7 +209,7 @@
- include gen_tests.am
- 
- if ENABLE_STACKTRACE
--STACKTRACE_TESTS = strace-k.test
-+STACKTRACE_TESTS = strace-k.test strace-k-p.test
- if USE_DEMANGLE
- STACKTRACE_TESTS += strace-k-demangle.test
- endif
-@@ -428,6 +432,8 @@
- 	strace-ff.expected \
- 	strace-k-demangle.expected \
- 	strace-k-demangle.test \
-+	strace-k-p.expected \
-+	strace-k-p.test \
- 	strace-k.expected \
- 	strace-k.test \
- 	strace-r.expected \
-Index: strace-5.1/tests-m32/Makefile.in
-===================================================================
---- strace-5.1.orig/tests-m32/Makefile.in	2020-01-23 16:56:22.089268805 +0100
-+++ strace-5.1/tests-m32/Makefile.in	2020-01-23 18:24:15.534972421 +0100
-@@ -144,9 +144,9 @@
- 	seccomp-strict$(EXEEXT) select-P$(EXEEXT) \
- 	set_ptracer_any$(EXEEXT) set_sigblock$(EXEEXT) \
- 	set_sigign$(EXEEXT) signal_receive$(EXEEXT) sleep$(EXEEXT) \
--	stack-fcall$(EXEEXT) stack-fcall-mangled$(EXEEXT) \
--	threads-execve$(EXEEXT) unblock_reset_raise$(EXEEXT) \
--	unix-pair-send-recv$(EXEEXT) \
-+	stack-fcall$(EXEEXT) stack-fcall-attach$(EXEEXT) \
-+	stack-fcall-mangled$(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) zeroargc$(EXEEXT)
- @ENABLE_STACKTRACE_TRUE@@USE_DEMANGLE_TRUE@am__append_1 = strace-k-demangle.test
-@@ -2604,6 +2604,12 @@
- stack_fcall_OBJECTS = $(am_stack_fcall_OBJECTS)
- stack_fcall_LDADD = $(LDADD)
- stack_fcall_DEPENDENCIES = libtests.a
-+am_stack_fcall_attach_OBJECTS = stack-fcall-attach.$(OBJEXT) \
-+	stack-fcall-0.$(OBJEXT) stack-fcall-1.$(OBJEXT) \
-+	stack-fcall-2.$(OBJEXT) stack-fcall-3.$(OBJEXT)
-+stack_fcall_attach_OBJECTS = $(am_stack_fcall_attach_OBJECTS)
-+stack_fcall_attach_LDADD = $(LDADD)
-+stack_fcall_attach_DEPENDENCIES = libtests.a
- am_stack_fcall_mangled_OBJECTS = stack-fcall-mangled.$(OBJEXT) \
- 	stack-fcall-mangled-0.$(OBJEXT) \
- 	stack-fcall-mangled-1.$(OBJEXT) \
-@@ -3453,7 +3459,7 @@
- 	sock_filter-v-Xverbose.c sockaddr_xlat-Xabbrev.c \
- 	sockaddr_xlat-Xraw.c sockaddr_xlat-Xverbose.c socketcall.c \
- 	sockopt-sol_netlink.c sockopt-timestamp.c splice.c \
--	$(stack_fcall_SOURCES) $(stack_fcall_mangled_SOURCES) stat.c \
-+	$(stack_fcall_SOURCES)  $(stack_fcall_attach_SOURCES) $(stack_fcall_mangled_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 \
-@@ -3620,7 +3626,7 @@
- 	sock_filter-v-Xverbose.c sockaddr_xlat-Xabbrev.c \
- 	sockaddr_xlat-Xraw.c sockaddr_xlat-Xverbose.c socketcall.c \
- 	sockopt-sol_netlink.c sockopt-timestamp.c splice.c \
--	$(stack_fcall_SOURCES) $(stack_fcall_mangled_SOURCES) stat.c \
-+	$(stack_fcall_SOURCES)  $(stack_fcall_attach_SOURCES) $(stack_fcall_mangled_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 \
-@@ -3848,7 +3854,8 @@
-   bases=`echo $$bases`
- RECHECK_LOGS = $(TEST_LOGS)
- AM_RECURSIVE_TARGETS = check recheck
--@ENABLE_STACKTRACE_TRUE@am__EXEEXT_2 = strace-k.test $(am__append_1)
-+@ENABLE_STACKTRACE_TRUE@am__EXEEXT_2 = strace-k.test strace-k-p.test \
-+@ENABLE_STACKTRACE_TRUE@	$(am__append_1)
- TEST_SUITE_LOG = test-suite.log
- TEST_EXTENSIONS = @EXEEXT@ .test
- am__test_logs1 = $(TESTS:=.log)
-@@ -4634,6 +4641,9 @@
- stack_fcall_SOURCES = stack-fcall.c \
- 	stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
- 
-+stack_fcall_attach_SOURCES = stack-fcall-attach.c \
-+	stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
-+
- stack_fcall_mangled_SOURCES = stack-fcall-mangled.c \
- 	stack-fcall-mangled-0.c stack-fcall-mangled-1.c \
- 	stack-fcall-mangled-2.c stack-fcall-mangled-3.c
-@@ -4863,7 +4873,7 @@
- 	xettimeofday.gen.test
- @ENABLE_STACKTRACE_FALSE@STACKTRACE_TESTS = 
- @ENABLE_STACKTRACE_TRUE@STACKTRACE_TESTS = strace-k.test \
--@ENABLE_STACKTRACE_TRUE@	$(am__append_1)
-+@ENABLE_STACKTRACE_TRUE@	strace-k-p.test $(am__append_1)
- DECODER_TESTS = \
- 	bpf-success-v.test \
- 	bpf-success.test \
-@@ -5074,6 +5084,8 @@
- 	strace-ff.expected \
- 	strace-k-demangle.expected \
- 	strace-k-demangle.test \
-+	strace-k-p.expected \
-+	strace-k-p.test \
- 	strace-k.expected \
- 	strace-k.test \
- 	strace-r.expected \
-@@ -7345,6 +7357,10 @@
- 	@rm -f stack-fcall$(EXEEXT)
- 	$(AM_V_CCLD)$(LINK) $(stack_fcall_OBJECTS) $(stack_fcall_LDADD) $(LIBS)
- 
-+stack-fcall-attach$(EXEEXT): $(stack_fcall_attach_OBJECTS) $(stack_fcall_attach_DEPENDENCIES) $(EXTRA_stack_fcall_attach_DEPENDENCIES) 
-+	@rm -f stack-fcall-attach$(EXEEXT)
-+	$(AM_V_CCLD)$(LINK) $(stack_fcall_attach_OBJECTS) $(stack_fcall_attach_LDADD) $(LIBS)
-+
- stack-fcall-mangled$(EXEEXT): $(stack_fcall_mangled_OBJECTS) $(stack_fcall_mangled_DEPENDENCIES) $(EXTRA_stack_fcall_mangled_DEPENDENCIES) 
- 	@rm -f stack-fcall-mangled$(EXEEXT)
- 	$(AM_V_CCLD)$(LINK) $(stack_fcall_mangled_OBJECTS) $(stack_fcall_mangled_LDADD) $(LIBS)
-@@ -8193,6 +8209,7 @@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-1.Po@am__quote@ # am--include-marker
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-2.Po@am__quote@ # am--include-marker
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-3.Po@am__quote@ # am--include-marker
-+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-attach.Po@am__quote@ # am--include-marker
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-0.Po@am__quote@ # am--include-marker
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-1.Po@am__quote@ # am--include-marker
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-2.Po@am__quote@ # am--include-marker
-@@ -9777,6 +9794,7 @@
- 	-rm -f ./$(DEPDIR)/stack-fcall-1.Po
- 	-rm -f ./$(DEPDIR)/stack-fcall-2.Po
- 	-rm -f ./$(DEPDIR)/stack-fcall-3.Po
-+	-rm -f ./$(DEPDIR)/stack-fcall-attach.Po
- 	-rm -f ./$(DEPDIR)/stack-fcall-mangled-0.Po
- 	-rm -f ./$(DEPDIR)/stack-fcall-mangled-1.Po
- 	-rm -f ./$(DEPDIR)/stack-fcall-mangled-2.Po
-@@ -10468,6 +10486,7 @@
- 	-rm -f ./$(DEPDIR)/stack-fcall-1.Po
- 	-rm -f ./$(DEPDIR)/stack-fcall-2.Po
- 	-rm -f ./$(DEPDIR)/stack-fcall-3.Po
-+	-rm -f ./$(DEPDIR)/stack-fcall-attach.Po
- 	-rm -f ./$(DEPDIR)/stack-fcall-mangled-0.Po
- 	-rm -f ./$(DEPDIR)/stack-fcall-mangled-1.Po
- 	-rm -f ./$(DEPDIR)/stack-fcall-mangled-2.Po
-Index: strace-5.1/tests-mx32/Makefile.am
-===================================================================
---- strace-5.1.orig/tests-mx32/Makefile.am	2020-01-23 16:56:22.090268805 +0100
-+++ strace-5.1/tests-mx32/Makefile.am	2020-01-23 17:03:50.793051138 +0100
-@@ -156,6 +156,7 @@
- 	signal_receive \
- 	sleep \
- 	stack-fcall \
-+	stack-fcall-attach \
- 	stack-fcall-mangled \
- 	threads-execve \
- 	unblock_reset_raise \
-@@ -198,6 +199,9 @@
- stack_fcall_SOURCES = stack-fcall.c \
- 	stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
- 
-+stack_fcall_attach_SOURCES = stack-fcall-attach.c \
-+	stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
-+
- stack_fcall_mangled_SOURCES = stack-fcall-mangled.c \
- 	stack-fcall-mangled-0.c stack-fcall-mangled-1.c \
- 	stack-fcall-mangled-2.c stack-fcall-mangled-3.c
-@@ -205,7 +209,7 @@
- include gen_tests.am
- 
- if ENABLE_STACKTRACE
--STACKTRACE_TESTS = strace-k.test
-+STACKTRACE_TESTS = strace-k.test strace-k-p.test
- if USE_DEMANGLE
- STACKTRACE_TESTS += strace-k-demangle.test
- endif
-@@ -428,6 +432,8 @@
- 	strace-ff.expected \
- 	strace-k-demangle.expected \
- 	strace-k-demangle.test \
-+	strace-k-p.expected \
-+	strace-k-p.test \
- 	strace-k.expected \
- 	strace-k.test \
- 	strace-r.expected \
-Index: strace-5.1/tests-mx32/Makefile.in
-===================================================================
---- strace-5.1.orig/tests-mx32/Makefile.in	2020-01-23 16:56:22.092268807 +0100
-+++ strace-5.1/tests-mx32/Makefile.in	2020-01-23 17:13:00.583709367 +0100
-@@ -144,9 +144,9 @@
- 	seccomp-strict$(EXEEXT) select-P$(EXEEXT) \
- 	set_ptracer_any$(EXEEXT) set_sigblock$(EXEEXT) \
- 	set_sigign$(EXEEXT) signal_receive$(EXEEXT) sleep$(EXEEXT) \
--	stack-fcall$(EXEEXT) stack-fcall-mangled$(EXEEXT) \
--	threads-execve$(EXEEXT) unblock_reset_raise$(EXEEXT) \
--	unix-pair-send-recv$(EXEEXT) \
-+	stack-fcall$(EXEEXT) stack-fcall-attach$(EXEEXT) \
-+	stack-fcall-mangled$(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) zeroargc$(EXEEXT)
- @ENABLE_STACKTRACE_TRUE@@USE_DEMANGLE_TRUE@am__append_1 = strace-k-demangle.test
-@@ -2604,6 +2604,12 @@
- stack_fcall_OBJECTS = $(am_stack_fcall_OBJECTS)
- stack_fcall_LDADD = $(LDADD)
- stack_fcall_DEPENDENCIES = libtests.a
-+am_stack_fcall_attach_OBJECTS = stack-fcall-attach.$(OBJEXT) \
-+	stack-fcall-0.$(OBJEXT) stack-fcall-1.$(OBJEXT) \
-+	stack-fcall-2.$(OBJEXT) stack-fcall-3.$(OBJEXT)
-+stack_fcall_attach_OBJECTS = $(am_stack_fcall_attach_OBJECTS)
-+stack_fcall_attach_LDADD = $(LDADD)
-+stack_fcall_attach_DEPENDENCIES = libtests.a
- am_stack_fcall_mangled_OBJECTS = stack-fcall-mangled.$(OBJEXT) \
- 	stack-fcall-mangled-0.$(OBJEXT) \
- 	stack-fcall-mangled-1.$(OBJEXT) \
-@@ -3453,7 +3459,7 @@
- 	sock_filter-v-Xverbose.c sockaddr_xlat-Xabbrev.c \
- 	sockaddr_xlat-Xraw.c sockaddr_xlat-Xverbose.c socketcall.c \
- 	sockopt-sol_netlink.c sockopt-timestamp.c splice.c \
--	$(stack_fcall_SOURCES) $(stack_fcall_mangled_SOURCES) stat.c \
-+	$(stack_fcall_SOURCES)  $(stack_fcall_attach_SOURCES) $(stack_fcall_mangled_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 \
-@@ -3620,7 +3626,7 @@
- 	sock_filter-v-Xverbose.c sockaddr_xlat-Xabbrev.c \
- 	sockaddr_xlat-Xraw.c sockaddr_xlat-Xverbose.c socketcall.c \
- 	sockopt-sol_netlink.c sockopt-timestamp.c splice.c \
--	$(stack_fcall_SOURCES) $(stack_fcall_mangled_SOURCES) stat.c \
-+	$(stack_fcall_SOURCES)  $(stack_fcall_attach_SOURCES) $(stack_fcall_mangled_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 \
-@@ -4634,6 +4640,10 @@
- stack_fcall_SOURCES = stack-fcall.c \
- 	stack-fcall-0.c stack-fcall-1.c stack-fcall-2.c stack-fcall-3.c
- 
-+stack_fcall_attach_SOURCES = stack-fcall-attach.c \
-+	stack-fcall-0.c stack-fcall-1.c \
-+	stack-fcall-2.c stack-fcall-3.c
-+
- stack_fcall_mangled_SOURCES = stack-fcall-mangled.c \
- 	stack-fcall-mangled-0.c stack-fcall-mangled-1.c \
- 	stack-fcall-mangled-2.c stack-fcall-mangled-3.c
-@@ -7345,6 +7355,10 @@
- 	@rm -f stack-fcall$(EXEEXT)
- 	$(AM_V_CCLD)$(LINK) $(stack_fcall_OBJECTS) $(stack_fcall_LDADD) $(LIBS)
- 
-+stack-fcall-attach$(EXEEXT): $(stack_fcall_attach_OBJECTS) $(stack_fcall_attach_DEPENDENCIES) $(EXTRA_stack_fcall_attach_DEPENDENCIES) 
-+	@rm -f stack-fcall$(EXEEXT)
-+	$(AM_V_CCLD)$(LINK) $(stack_fcall_attach_OBJECTS) $(stack_fcall_attach_LDADD) $(LIBS)
-+
- stack-fcall-mangled$(EXEEXT): $(stack_fcall_mangled_OBJECTS) $(stack_fcall_mangled_DEPENDENCIES) $(EXTRA_stack_fcall_mangled_DEPENDENCIES) 
- 	@rm -f stack-fcall-mangled$(EXEEXT)
- 	$(AM_V_CCLD)$(LINK) $(stack_fcall_mangled_OBJECTS) $(stack_fcall_mangled_LDADD) $(LIBS)
-@@ -8193,6 +8207,7 @@
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-1.Po@am__quote@ # am--include-marker
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-2.Po@am__quote@ # am--include-marker
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-3.Po@am__quote@ # am--include-marker
-+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-attach.Po@am__quote@ # am--include-marker
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-0.Po@am__quote@ # am--include-marker
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-1.Po@am__quote@ # am--include-marker
- @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stack-fcall-mangled-2.Po@am__quote@ # am--include-marker
-@@ -9777,6 +9792,7 @@
- 	-rm -f ./$(DEPDIR)/stack-fcall-1.Po
- 	-rm -f ./$(DEPDIR)/stack-fcall-2.Po
- 	-rm -f ./$(DEPDIR)/stack-fcall-3.Po
-+	-rm -f ./$(DEPDIR)/stack-fcall-attach.Po
- 	-rm -f ./$(DEPDIR)/stack-fcall-mangled-0.Po
- 	-rm -f ./$(DEPDIR)/stack-fcall-mangled-1.Po
- 	-rm -f ./$(DEPDIR)/stack-fcall-mangled-2.Po
-@@ -10468,6 +10484,7 @@
- 	-rm -f ./$(DEPDIR)/stack-fcall-1.Po
- 	-rm -f ./$(DEPDIR)/stack-fcall-2.Po
- 	-rm -f ./$(DEPDIR)/stack-fcall-3.Po
-+	-rm -f ./$(DEPDIR)/stack-fcall-attach.Po
- 	-rm -f ./$(DEPDIR)/stack-fcall-mangled-0.Po
- 	-rm -f ./$(DEPDIR)/stack-fcall-mangled-1.Po
- 	-rm -f ./$(DEPDIR)/stack-fcall-mangled-2.Po
-Index: strace-5.1/tests-m32/stack-fcall-attach.c
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ strace-5.1/tests-m32/stack-fcall-attach.c	2020-01-23 17:03:50.796051125 +0100
-@@ -0,0 +1,2 @@
-+#define ATTACH_MODE 1
-+#include "stack-fcall.c"
-Index: strace-5.1/tests-m32/stack-fcall.c
-===================================================================
---- strace-5.1.orig/tests-m32/stack-fcall.c	2020-01-23 17:03:50.796051125 +0100
-+++ strace-5.1/tests-m32/stack-fcall.c	2020-01-23 17:08:04.027080020 +0100
-@@ -5,10 +5,21 @@
-  * SPDX-License-Identifier: GPL-2.0-or-later
-  */
- 
-+#include "tests.h"
-+#include <unistd.h>
- #include "stack-fcall.h"
- 
-+#ifndef ATTACH_MODE
-+# define ATTACH_MODE 0
-+#endif
-+
- int main(void)
- {
-+#if ATTACH_MODE
-+	/* sleep a bit to let the tracer time to catch up */
-+	sleep(1);
-+#endif
-+
- 	f0(0);
- 	f0(1);
- 	return 0;
-Index: strace-5.1/tests-m32/strace-k-p.expected
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ strace-5.1/tests-m32/strace-k-p.expected	2020-01-23 17:14:16.083835372 +0100
-@@ -0,0 +1,2 @@
-+^chdir .*(__kernel_vsyscaln )?(__)?chdir f3 f2 f1 f0 main
-+^SIGURG .*(__kernel_vsyscaln )?(__)?kill f3 f2 f1 f0 main
-Index: strace-5.1/tests-m32/strace-k-p.test
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ strace-5.1/tests-m32/strace-k-p.test	2020-01-23 17:03:50.796051125 +0100
-@@ -0,0 +1,13 @@
-+#!/bin/sh
-+#
-+# Check strace -k for attached tracees.
-+#
-+# Copyright (c) 2020 The strace developers.
-+# All rights reserved.
-+#
-+# SPDX-License-Identifier: GPL-2.0-or-later
-+
-+ATTACH_MODE=1
-+test_prog=../stack-fcall-attach
-+
-+. "${srcdir=.}"/strace-k.test
-Index: strace-5.1/tests-m32/strace-k.test
-===================================================================
---- strace-5.1.orig/tests-m32/strace-k.test	2020-01-23 17:03:50.797051121 +0100
-+++ strace-5.1/tests-m32/strace-k.test	2020-01-23 17:13:44.509782677 +0100
-@@ -11,6 +11,8 @@
- 
- . "${srcdir=.}/init.sh"
- 
-+: "${ATTACH_MODE=0}"
-+
- # strace -k is implemented using /proc/$pid/maps
- [ -f /proc/self/maps ] ||
- 	framework_skip_ '/proc/self/maps is not available'
-@@ -20,7 +22,19 @@
- check_prog tr
- 
- run_prog "${test_prog=../stack-fcall}"
--run_strace -e chdir -k $args
-+if [ "x${ATTACH_MODE}" = "x1" ]; then
-+	../set_ptracer_any "${test_prog}" >> "$EXP" &
-+	tracee_pid=$!
-+
-+	while ! [ -s "$EXP" ]; do
-+		kill -0 "$tracee_pid" 2> /dev/null ||
-+			fail_ 'set_ptracer_any failed'
-+	done
-+
-+	run_strace -e chdir -k -p "$tracee_pid"
-+else
-+	run_strace -e chdir -k $args
-+fi
- 
- expected="$srcdir/$NAME.expected"
- awk '
-Index: strace-5.1/tests-mx32/stack-fcall-attach.c
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ strace-5.1/tests-mx32/stack-fcall-attach.c	2020-01-23 17:03:50.797051121 +0100
-@@ -0,0 +1,2 @@
-+#define ATTACH_MODE 1
-+#include "stack-fcall.c"
-Index: strace-5.1/tests-mx32/stack-fcall.c
-===================================================================
---- strace-5.1.orig/tests-mx32/stack-fcall.c	2020-01-23 17:03:50.797051121 +0100
-+++ strace-5.1/tests-mx32/stack-fcall.c	2020-01-23 17:08:06.451072796 +0100
-@@ -5,10 +5,21 @@
-  * SPDX-License-Identifier: GPL-2.0-or-later
-  */
- 
-+#include "tests.h"
-+#include <unistd.h>
- #include "stack-fcall.h"
- 
-+#ifndef ATTACH_MODE
-+# define ATTACH_MODE 0
-+#endif
-+
- int main(void)
- {
-+#if ATTACH_MODE
-+	/* sleep a bit to let the tracer time to catch up */
-+	sleep(1);
-+#endif
-+
- 	f0(0);
- 	f0(1);
- 	return 0;
-Index: strace-5.1/tests-mx32/strace-k-p.expected
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ strace-5.1/tests-mx32/strace-k-p.expected	2020-01-23 17:14:17.786838214 +0100
-@@ -0,0 +1,2 @@
-+^chdir .*(__kernel_vsyscaln )?(__)?chdir f3 f2 f1 f0 main
-+^SIGURG .*(__kernel_vsyscaln )?(__)?kill f3 f2 f1 f0 main
-Index: strace-5.1/tests-mx32/strace-k-p.test
-===================================================================
---- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ strace-5.1/tests-mx32/strace-k-p.test	2020-01-23 17:03:50.797051121 +0100
-@@ -0,0 +1,13 @@
-+#!/bin/sh
-+#
-+# Check strace -k for attached tracees.
-+#
-+# Copyright (c) 2020 The strace developers.
-+# All rights reserved.
-+#
-+# SPDX-License-Identifier: GPL-2.0-or-later
-+
-+ATTACH_MODE=1
-+test_prog=../stack-fcall-attach
-+
-+. "${srcdir=.}"/strace-k.test
-Index: strace-5.1/tests-mx32/strace-k.test
-===================================================================
---- strace-5.1.orig/tests-mx32/strace-k.test	2020-01-23 17:03:50.797051121 +0100
-+++ strace-5.1/tests-mx32/strace-k.test	2020-01-23 17:13:41.793778144 +0100
-@@ -11,6 +11,8 @@
- 
- . "${srcdir=.}/init.sh"
- 
-+: "${ATTACH_MODE=0}"
-+
- # strace -k is implemented using /proc/$pid/maps
- [ -f /proc/self/maps ] ||
- 	framework_skip_ '/proc/self/maps is not available'
-@@ -20,7 +22,19 @@
- check_prog tr
- 
- run_prog "${test_prog=../stack-fcall}"
--run_strace -e chdir -k $args
-+if [ "x${ATTACH_MODE}" = "x1" ]; then
-+	../set_ptracer_any "${test_prog}" >> "$EXP" &
-+	tracee_pid=$!
-+
-+	while ! [ -s "$EXP" ]; do
-+		kill -0 "$tracee_pid" 2> /dev/null ||
-+			fail_ 'set_ptracer_any failed'
-+	done
-+
-+	run_strace -e chdir -k -p "$tracee_pid"
-+else
-+	run_strace -e chdir -k $args
-+fi
- 
- expected="$srcdir/$NAME.expected"
- awk '
diff --git a/SOURCES/0042-sockaddr-properly-decode-sockaddr_hci-addresses-with.patch b/SOURCES/0042-sockaddr-properly-decode-sockaddr_hci-addresses-with.patch
deleted file mode 100644
index f802107..0000000
--- a/SOURCES/0042-sockaddr-properly-decode-sockaddr_hci-addresses-with.patch
+++ /dev/null
@@ -1,225 +0,0 @@
-From 5a9b0f1ef83300f853e77ada03515c8542c1cfe0 Mon Sep 17 00:00:00 2001
-From: Eugene Syromyatnikov <evgsyr@gmail.com>
-Date: Thu, 29 Aug 2019 19:03:51 +0200
-Subject: [PATCH] sockaddr: properly decode sockaddr_hci addresses without
- hci_channel
-
-Before Linux commit v2.6.38-rc1~476^2~14^2~3^2~43^2~9,
-struct sockaddr_hci did not contain hci_channel field.
-
-* configure.ac (AC_CHECK_HEADERS([bluetooth/bluetooth.h])): Add check
-for struct sockaddr_hci.hci_channel.
-* sockaddr.c (print_sockaddr_data_bt): Decode struct sockaddr_hci
-without hci_channel field.
-* tests/net-sockaddr.c (check_hci): Add check for struct sockaddr_hci
-decoding without hci_channel field; guard hci_channel with #ifdef
-HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL.
-(check_raw): Remove "len++", as 4-byte AF_BLUETOOTH socket addresses are
-interpreted as struct sockaddr_hci without hci_channel field.
----
- configure.ac         |  3 +++
- sockaddr.c           | 16 +++++++++++++---
- tests/net-sockaddr.c | 18 ++++++++++++++----
- 3 files changed, 30 insertions(+), 7 deletions(-)
-
-Index: strace-5.1/configure.ac
-===================================================================
---- strace-5.1.orig/configure.ac	2019-08-29 19:10:22.380362280 +0200
-+++ strace-5.1/configure.ac	2019-08-29 19:11:11.240744864 +0200
-@@ -465,6 +465,9 @@
- ])
- 
- AC_CHECK_HEADERS([bluetooth/bluetooth.h], [
-+	AC_CHECK_MEMBERS([struct sockaddr_hci.hci_channel],,,
-+			 [#include <bluetooth/bluetooth.h>
-+			 #include <bluetooth/hci.h>])
- 	AC_CHECK_MEMBERS([struct sockaddr_l2.l2_bdaddr_type],,,
- 			 [#include <bluetooth/bluetooth.h>
- 			 #include <bluetooth/l2cap.h>])
-Index: strace-5.1/sockaddr.c
-===================================================================
---- strace-5.1.orig/sockaddr.c	2019-08-29 19:11:11.240744864 +0200
-+++ strace-5.1/sockaddr.c	2019-08-29 19:13:01.275354429 +0200
-@@ -599,12 +599,21 @@
- 	};
- 
- 	switch (addrlen) {
-+	case offsetofend(struct sockaddr_hci, hci_dev):
- 	case sizeof(struct sockaddr_hci): {
- 		const struct sockaddr_hci *const hci = buf;
--		tprintf("hci_dev=htobs(%hu), hci_channel=",
--			btohs(hci->hci_dev));
--		printxval_index(hci_channels, hci->hci_channel,
--				"HCI_CHANNEL_???");
-+		tprintf("hci_dev=htobs(%hu)", btohs(hci->hci_dev));
-+
-+		/*
-+		 * hci_channel field has been introduced
-+		 * Linux commit in v2.6.38-rc1~476^2~14^2~3^2~43^2~9.
-+		 */
-+		if (addrlen == sizeof(struct sockaddr_hci)) {
-+			tprints(", hci_channel=");
-+			printxval_index(hci_channels, hci->hci_channel,
-+					"HCI_CHANNEL_???");
-+		}
-+
- 		break;
- 	}
- 	case sizeof(struct sockaddr_sco): {
-Index: strace-5.1/tests/net-sockaddr.c
-===================================================================
---- strace-5.1.orig/tests/net-sockaddr.c	2019-08-29 19:10:22.380362280 +0200
-+++ strace-5.1/tests/net-sockaddr.c	2019-08-29 19:11:11.240744864 +0200
-@@ -543,11 +543,22 @@
- 	TAIL_ALLOC_OBJECT_VAR_PTR(struct sockaddr_hci, hci);
- 	hci->hci_family = AF_BLUETOOTH;
- 	hci->hci_dev = htobs(h_port);
-+# ifdef HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL
- 	hci->hci_channel = HCI_CHANNEL_RAW;
-+# endif
- 	unsigned int len = sizeof(*hci);
--	int ret = connect(-1, (void *) hci, len);
-+
-+	int ret = connect(-1, (void *) hci, 4);
-+	printf("connect(-1, {sa_family=AF_BLUETOOTH, hci_dev=htobs(%hu)"
-+	       "}, 4) = %d EBADF (%m)\n",
-+	       h_port, ret);
-+
-+	ret = connect(-1, (void *) hci, len);
- 	printf("connect(-1, {sa_family=AF_BLUETOOTH, hci_dev=htobs(%hu)"
--	       ", hci_channel=HCI_CHANNEL_RAW}, %u) = %d EBADF (%m)\n",
-+# ifdef HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL
-+	       ", hci_channel=HCI_CHANNEL_RAW"
-+# endif
-+	       "}, %u) = %d EBADF (%m)\n",
- 	       h_port, len, ret);
- }
- 
-@@ -700,9 +711,8 @@
- 	       " = %d EBADF (%m)\n", len, ret);
- 
- 	u.sa->sa_family = AF_BLUETOOTH;
--	++len;
- 	ret = connect(-1, (void *) u.st, len);
--	printf("connect(-1, {sa_family=AF_BLUETOOTH, sa_data=\"00\"}, %u)"
-+	printf("connect(-1, {sa_family=AF_BLUETOOTH, sa_data=\"0\"}, %u)"
- 	       " = %d EBADF (%m)\n", len, ret);
- }
- 
-Index: strace-5.1/tests-m32/net-sockaddr.c
-===================================================================
---- strace-5.1.orig/tests-m32/net-sockaddr.c	2019-03-18 03:40:16.000000000 +0100
-+++ strace-5.1/tests-m32/net-sockaddr.c	2019-08-29 19:16:28.327738043 +0200
-@@ -543,11 +543,22 @@
- 	TAIL_ALLOC_OBJECT_VAR_PTR(struct sockaddr_hci, hci);
- 	hci->hci_family = AF_BLUETOOTH;
- 	hci->hci_dev = htobs(h_port);
-+# ifdef HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL
- 	hci->hci_channel = HCI_CHANNEL_RAW;
-+# endif
- 	unsigned int len = sizeof(*hci);
--	int ret = connect(-1, (void *) hci, len);
-+
-+	int ret = connect(-1, (void *) hci, 4);
-+	printf("connect(-1, {sa_family=AF_BLUETOOTH, hci_dev=htobs(%hu)"
-+	       "}, 4) = %d EBADF (%m)\n",
-+	       h_port, ret);
-+
-+	ret = connect(-1, (void *) hci, len);
- 	printf("connect(-1, {sa_family=AF_BLUETOOTH, hci_dev=htobs(%hu)"
--	       ", hci_channel=HCI_CHANNEL_RAW}, %u) = %d EBADF (%m)\n",
-+# ifdef HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL
-+	       ", hci_channel=HCI_CHANNEL_RAW"
-+# endif
-+	       "}, %u) = %d EBADF (%m)\n",
- 	       h_port, len, ret);
- }
- 
-@@ -700,9 +711,8 @@
- 	       " = %d EBADF (%m)\n", len, ret);
- 
- 	u.sa->sa_family = AF_BLUETOOTH;
--	++len;
- 	ret = connect(-1, (void *) u.st, len);
--	printf("connect(-1, {sa_family=AF_BLUETOOTH, sa_data=\"00\"}, %u)"
-+	printf("connect(-1, {sa_family=AF_BLUETOOTH, sa_data=\"0\"}, %u)"
- 	       " = %d EBADF (%m)\n", len, ret);
- }
- 
-Index: strace-5.1/tests-mx32/net-sockaddr.c
-===================================================================
---- strace-5.1.orig/tests-mx32/net-sockaddr.c	2019-03-18 03:40:16.000000000 +0100
-+++ strace-5.1/tests-mx32/net-sockaddr.c	2019-08-29 19:16:30.805706731 +0200
-@@ -543,11 +543,22 @@
- 	TAIL_ALLOC_OBJECT_VAR_PTR(struct sockaddr_hci, hci);
- 	hci->hci_family = AF_BLUETOOTH;
- 	hci->hci_dev = htobs(h_port);
-+# ifdef HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL
- 	hci->hci_channel = HCI_CHANNEL_RAW;
-+# endif
- 	unsigned int len = sizeof(*hci);
--	int ret = connect(-1, (void *) hci, len);
-+
-+	int ret = connect(-1, (void *) hci, 4);
-+	printf("connect(-1, {sa_family=AF_BLUETOOTH, hci_dev=htobs(%hu)"
-+	       "}, 4) = %d EBADF (%m)\n",
-+	       h_port, ret);
-+
-+	ret = connect(-1, (void *) hci, len);
- 	printf("connect(-1, {sa_family=AF_BLUETOOTH, hci_dev=htobs(%hu)"
--	       ", hci_channel=HCI_CHANNEL_RAW}, %u) = %d EBADF (%m)\n",
-+# ifdef HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL
-+	       ", hci_channel=HCI_CHANNEL_RAW"
-+# endif
-+	       "}, %u) = %d EBADF (%m)\n",
- 	       h_port, len, ret);
- }
- 
-@@ -700,9 +711,8 @@
- 	       " = %d EBADF (%m)\n", len, ret);
- 
- 	u.sa->sa_family = AF_BLUETOOTH;
--	++len;
- 	ret = connect(-1, (void *) u.st, len);
--	printf("connect(-1, {sa_family=AF_BLUETOOTH, sa_data=\"00\"}, %u)"
-+	printf("connect(-1, {sa_family=AF_BLUETOOTH, sa_data=\"0\"}, %u)"
- 	       " = %d EBADF (%m)\n", len, ret);
- }
- 
-Index: strace-5.1/configure
-===================================================================
---- strace-5.1.orig/configure	2019-08-30 17:41:22.748513960 +0200
-+++ strace-5.1/configure	2019-08-30 17:41:43.118251704 +0200
-@@ -12037,6 +12037,18 @@
- #define HAVE_BLUETOOTH_BLUETOOTH_H 1
- _ACEOF
- 
-+	ac_fn_c_check_member "$LINENO" "struct sockaddr_hci" "hci_channel" "ac_cv_member_struct_sockaddr_hci_hci_channel" "#include <bluetooth/bluetooth.h>
-+			 #include <bluetooth/hci.h>
-+"
-+if test "x$ac_cv_member_struct_sockaddr_hci_hci_channel" = xyes; then :
-+
-+cat >>confdefs.h <<_ACEOF
-+#define HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL 1
-+_ACEOF
-+
-+
-+fi
-+
- 	ac_fn_c_check_member "$LINENO" "struct sockaddr_l2" "l2_bdaddr_type" "ac_cv_member_struct_sockaddr_l2_l2_bdaddr_type" "#include <bluetooth/bluetooth.h>
- 			 #include <bluetooth/l2cap.h>
- "
-Index: strace-5.1/config.h.in
-===================================================================
---- strace-5.1.orig/config.h.in	2019-05-22 15:08:39.000000000 +0200
-+++ strace-5.1/config.h.in	2019-08-30 18:32:25.431500194 +0200
-@@ -1391,6 +1391,9 @@
- /* Define to 1 if the system has the type `struct sigcontext'. */
- #undef HAVE_STRUCT_SIGCONTEXT
- 
-+/* Define to 1 if `hci_channel' is a member of `struct sockaddr_hci'. */
-+#undef HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL
-+
- /* Define to 1 if `l2_bdaddr_type' is a member of `struct sockaddr_l2'. */
- #undef HAVE_STRUCT_SOCKADDR_L2_L2_BDADDR_TYPE
- 
diff --git a/SOURCES/0043-tests-fix-expected-output-for-some-ipc-tests.patch b/SOURCES/0043-tests-fix-expected-output-for-some-ipc-tests.patch
deleted file mode 100644
index a05241d..0000000
--- a/SOURCES/0043-tests-fix-expected-output-for-some-ipc-tests.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From 4377e3a1535a0ec3a42da8a1366ad6943f4efa0e Mon Sep 17 00:00:00 2001
-From: "Dmitry V. Levin" <ldv@altlinux.org>
-Date: Sun, 4 Aug 2019 08:47:00 +0000
-Subject: [PATCH] tests: fix expected output for some ipc tests
-
-* tests/gen_tests.in (ipc_msgbuf-Xraw, ipc_shm, ipc_shm-Xabbrev,
-ipc_shm-Xverbose): Adjust -a argument.
----
-Backport changes:
- * tests/gen_tests.in change is copied over to tests-m32/gen_tests.in
-   and tests-m32/gen_tests.in
----
- tests/gen_tests.in | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-Index: strace-4.24/tests/gen_tests.in
-===================================================================
---- strace-4.24.orig/tests/gen_tests.in	2020-01-27 18:21:22.896068950 +0100
-+++ strace-4.24/tests/gen_tests.in	2020-01-27 18:21:42.169892032 +0100
-@@ -147,16 +147,16 @@
- ipc_msg-Xraw	+ipc.sh -Xraw -a16
- ipc_msg-Xverbose	+ipc.sh -Xverbose -a34
- ipc_msgbuf-Xabbrev	+ipc_msgbuf.test -Xabbrev
--ipc_msgbuf-Xraw	+ipc_msgbuf.test -Xraw -a22
-+ipc_msgbuf-Xraw	+ipc_msgbuf.test -Xraw -a20
- ipc_msgbuf-Xverbose	+ipc_msgbuf.test -Xverbose
- ipc_sem	+ipc.sh -a29
- ipc_sem-Xabbrev	+ipc.sh -Xabbrev -a29
- ipc_sem-Xraw	+ipc.sh -Xraw -a19
- ipc_sem-Xverbose	+ipc.sh -Xverbose -a36
--ipc_shm	+ipc.sh -a29
--ipc_shm-Xabbrev	+ipc.sh -Xabbrev -a29
-+ipc_shm	+ipc.sh -a26
-+ipc_shm-Xabbrev	+ipc.sh -Xabbrev -a26
- ipc_shm-Xraw	+ipc.sh -Xraw -a19
--ipc_shm-Xverbose	+ipc.sh -Xverbose -a36
-+ipc_shm-Xverbose	+ipc.sh -Xverbose -a34
- kcmp	-a22
- kcmp-y	-a22 -y -e trace=kcmp
- kern_features -a16
-Index: strace-4.24/tests-m32/gen_tests.in
-===================================================================
---- strace-4.24.orig/tests-m32/gen_tests.in	2020-01-27 18:21:36.149947290 +0100
-+++ strace-4.24/tests-m32/gen_tests.in	2020-01-27 18:38:00.954898561 +0100
-@@ -147,16 +147,16 @@
- ipc_msg-Xraw	+ipc.sh -Xraw -a16
- ipc_msg-Xverbose	+ipc.sh -Xverbose -a34
- ipc_msgbuf-Xabbrev	+ipc_msgbuf.test -Xabbrev
--ipc_msgbuf-Xraw	+ipc_msgbuf.test -Xraw -a22
-+ipc_msgbuf-Xraw	+ipc_msgbuf.test -Xraw -a20
- ipc_msgbuf-Xverbose	+ipc_msgbuf.test -Xverbose
- ipc_sem	+ipc.sh -a29
- ipc_sem-Xabbrev	+ipc.sh -Xabbrev -a29
- ipc_sem-Xraw	+ipc.sh -Xraw -a19
- ipc_sem-Xverbose	+ipc.sh -Xverbose -a36
--ipc_shm	+ipc.sh -a29
--ipc_shm-Xabbrev	+ipc.sh -Xabbrev -a29
-+ipc_shm	+ipc.sh -a26
-+ipc_shm-Xabbrev	+ipc.sh -Xabbrev -a26
- ipc_shm-Xraw	+ipc.sh -Xraw -a19
--ipc_shm-Xverbose	+ipc.sh -Xverbose -a36
-+ipc_shm-Xverbose	+ipc.sh -Xverbose -a34
- kcmp	-a22
- kcmp-y	-a22 -y -e trace=kcmp
- kern_features -a16
-Index: strace-4.24/tests-mx32/gen_tests.in
-===================================================================
---- strace-4.24.orig/tests-mx32/gen_tests.in	2020-01-27 18:21:37.445935394 +0100
-+++ strace-4.24/tests-mx32/gen_tests.in	2020-01-27 18:37:59.481911731 +0100
-@@ -147,16 +147,16 @@
- ipc_msg-Xraw	+ipc.sh -Xraw -a16
- ipc_msg-Xverbose	+ipc.sh -Xverbose -a34
- ipc_msgbuf-Xabbrev	+ipc_msgbuf.test -Xabbrev
--ipc_msgbuf-Xraw	+ipc_msgbuf.test -Xraw -a22
-+ipc_msgbuf-Xraw	+ipc_msgbuf.test -Xraw -a20
- ipc_msgbuf-Xverbose	+ipc_msgbuf.test -Xverbose
- ipc_sem	+ipc.sh -a29
- ipc_sem-Xabbrev	+ipc.sh -Xabbrev -a29
- ipc_sem-Xraw	+ipc.sh -Xraw -a19
- ipc_sem-Xverbose	+ipc.sh -Xverbose -a36
--ipc_shm	+ipc.sh -a29
--ipc_shm-Xabbrev	+ipc.sh -Xabbrev -a29
-+ipc_shm	+ipc.sh -a26
-+ipc_shm-Xabbrev	+ipc.sh -Xabbrev -a26
- ipc_shm-Xraw	+ipc.sh -Xraw -a19
--ipc_shm-Xverbose	+ipc.sh -Xverbose -a36
-+ipc_shm-Xverbose	+ipc.sh -Xverbose -a34
- kcmp	-a22
- kcmp-y	-a22 -y -e trace=kcmp
- kern_features -a16
diff --git a/SOURCES/0044-tests-fix-a-argument-in-ipc_msgbuf-Xraw-test.patch b/SOURCES/0044-tests-fix-a-argument-in-ipc_msgbuf-Xraw-test.patch
deleted file mode 100644
index 3ce20d2..0000000
--- a/SOURCES/0044-tests-fix-a-argument-in-ipc_msgbuf-Xraw-test.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From a75c7c4bcb6b48680275de3e99e17e0ebec811ec Mon Sep 17 00:00:00 2001
-From: "Dmitry V. Levin" <ldv@altlinux.org>
-Date: Thu, 7 Nov 2019 19:58:36 +0000
-Subject: [PATCH] tests: fix -a argument in ipc_msgbuf-Xraw test
-
-* tests/gen_tests.in (ipc_msgbuf-Xraw): Change -a argument from 20 to 19.
----
-Backport change:
- * tests/gen_tests.in change has been copied over to tests-m32/gen_tests.in
-   and tests-mx32/gen_tests.in.
----
- tests/gen_tests.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: strace-4.24/tests/gen_tests.in
-===================================================================
---- strace-4.24.orig/tests/gen_tests.in	2020-01-27 18:21:42.169892032 +0100
-+++ strace-4.24/tests/gen_tests.in	2020-01-27 18:38:14.935773561 +0100
-@@ -147,7 +147,7 @@
- ipc_msg-Xraw	+ipc.sh -Xraw -a16
- ipc_msg-Xverbose	+ipc.sh -Xverbose -a34
- ipc_msgbuf-Xabbrev	+ipc_msgbuf.test -Xabbrev
--ipc_msgbuf-Xraw	+ipc_msgbuf.test -Xraw -a20
-+ipc_msgbuf-Xraw	+ipc_msgbuf.test -Xraw -a19
- ipc_msgbuf-Xverbose	+ipc_msgbuf.test -Xverbose
- ipc_sem	+ipc.sh -a29
- ipc_sem-Xabbrev	+ipc.sh -Xabbrev -a29
-Index: strace-4.24/tests-m32/gen_tests.in
-===================================================================
---- strace-4.24.orig/tests-m32/gen_tests.in	2020-01-27 18:38:00.954898561 +0100
-+++ strace-4.24/tests-m32/gen_tests.in	2020-01-27 18:38:23.407697816 +0100
-@@ -147,7 +147,7 @@
- ipc_msg-Xraw	+ipc.sh -Xraw -a16
- ipc_msg-Xverbose	+ipc.sh -Xverbose -a34
- ipc_msgbuf-Xabbrev	+ipc_msgbuf.test -Xabbrev
--ipc_msgbuf-Xraw	+ipc_msgbuf.test -Xraw -a20
-+ipc_msgbuf-Xraw	+ipc_msgbuf.test -Xraw -a19
- ipc_msgbuf-Xverbose	+ipc_msgbuf.test -Xverbose
- ipc_sem	+ipc.sh -a29
- ipc_sem-Xabbrev	+ipc.sh -Xabbrev -a29
-Index: strace-4.24/tests-mx32/gen_tests.in
-===================================================================
---- strace-4.24.orig/tests-mx32/gen_tests.in	2020-01-27 18:37:59.481911731 +0100
-+++ strace-4.24/tests-mx32/gen_tests.in	2020-01-27 18:38:24.645686747 +0100
-@@ -147,7 +147,7 @@
- ipc_msg-Xraw	+ipc.sh -Xraw -a16
- ipc_msg-Xverbose	+ipc.sh -Xverbose -a34
- ipc_msgbuf-Xabbrev	+ipc_msgbuf.test -Xabbrev
--ipc_msgbuf-Xraw	+ipc_msgbuf.test -Xraw -a20
-+ipc_msgbuf-Xraw	+ipc_msgbuf.test -Xraw -a19
- ipc_msgbuf-Xverbose	+ipc_msgbuf.test -Xverbose
- ipc_sem	+ipc.sh -a29
- ipc_sem-Xabbrev	+ipc.sh -Xabbrev -a29
diff --git a/SOURCES/0113-io_uring-Remove-struct-io_cqring_offsets-compile-tim.patch b/SOURCES/0113-io_uring-Remove-struct-io_cqring_offsets-compile-tim.patch
new file mode 100644
index 0000000..5040cd6
--- /dev/null
+++ b/SOURCES/0113-io_uring-Remove-struct-io_cqring_offsets-compile-tim.patch
@@ -0,0 +1,44 @@
+From ff85f882bbd8a399e036b8465520d1ff0867f4f1 Mon Sep 17 00:00:00 2001
+From: Chris Packham <chris.packham@alliedtelesis.co.nz>
+Date: Mon, 15 Jun 2020 22:01:25 +1200
+Subject: [PATCH 113/115] io_uring: Remove struct io_cqring_offsets compile
+ time asserts
+
+The generated types/check-io_uring.c already checks the kernel's struct
+io_cqring_offsets for compatibility with the strace definition so
+there's no need for manual checks.
+
+* io_uring.c [HAVE_STRUCT_IO_CQRING_OFFSETS]: Remove static_asserts.
+---
+ io_uring.c | 15 ---------------
+ 1 file changed, 15 deletions(-)
+
+diff --git a/io_uring.c b/io_uring.c
+index ac1807b..fd83313 100644
+--- a/io_uring.c
++++ b/io_uring.c
+@@ -17,21 +17,6 @@
+ #include "xlat/uring_enter_flags.h"
+ #include "xlat/uring_register_opcodes.h"
+ 
+-#ifdef HAVE_STRUCT_IO_CQRING_OFFSETS
+-# ifdef HAVE_STRUCT_IO_CQRING_OFFSETS_RESV
+-static_assert(offsetof(struct_io_cqring_offsets, resv)
+-             >= offsetof(struct io_cqring_offsets, resv),
+-             "struct io_cqring_offsets.resv offset mismatch"
+-             ", please update the decoder");
+-static_assert(sizeof_field(struct_io_cqring_offsets, resv)
+-             <= sizeof_field(struct io_cqring_offsets, resv),
+-             "struct io_cqring_offsets.resv size mismatch"
+-             ", please update the decoder");
+-# else /* !HAVE_STRUCT_IO_CQRING_OFFSETS_RESV */
+-static_assert(0, "struct io_cqring_offsets.resv is missing"
+-		 ", please update the decoder");
+-# endif
+-#endif /* HAVE_STRUCT_IO_CQRING_OFFSETS */
+ #ifdef HAVE_STRUCT_IO_URING_PARAMS
+ # ifdef HAVE_STRUCT_IO_URING_PARAMS_RESV
+ static_assert(offsetof(struct_io_uring_params, resv)
+-- 
+2.1.4
+
diff --git a/SOURCES/0114-io_uring-Add-io_cqring_offset-flags.patch b/SOURCES/0114-io_uring-Add-io_cqring_offset-flags.patch
new file mode 100644
index 0000000..fc37a3f
--- /dev/null
+++ b/SOURCES/0114-io_uring-Add-io_cqring_offset-flags.patch
@@ -0,0 +1,383 @@
+From c51b292b237214ccfcae5a84085f8d0a7e85c8ba Mon Sep 17 00:00:00 2001
+From: Chris Packham <chris.packham@alliedtelesis.co.nz>
+Date: Mon, 15 Jun 2020 22:01:26 +1200
+Subject: [PATCH 114/115] io_uring: Add io_cqring_offset flags
+
+Add support for displaying struct io_cqring_offsets.flags introduced
+by Linux kernel commits v5.8-rc1~190^2~22 and v5.8-rc1~190^2~21.
+
+* types/io_uring.h (struct_io_cqring_offsets): Replace resv array
+with flags, resv1, and resv2 fields.
+* xlat/uring_cqring_flags.in: New file.
+* configure.ac (AC_CHECK_MEMBERS): Check struct io_cqring_offsets.flags.
+* io_uring.c: Include "xlat/uring_cqring_flags.h".
+(SYS_FUNC(io_uring_setup)): Replace printing of the resv array
+of struct io_cqring_offsets with flags, resv1, and resv2 fields.
+* tests/io_uring_setup.c: Check it.
+
+Co-authored-by: Dmitry V. Levin <ldv@altlinux.org>
+Resolves: https://github.com/strace/strace/issues/138
+---
+ configure.ac               |  1 +
+ io_uring.c                 | 11 +++++++----
+ tests/io_uring_setup.c     | 31 ++++++++++++++++++++++++++-----
+ types/io_uring.h           |  4 +++-
+ xlat/uring_cqring_flags.in |  1 +
+ 5 files changed, 38 insertions(+), 10 deletions(-)
+ create mode 100644 xlat/uring_cqring_flags.in
+
+Index: strace-5.7/configure.ac
+===================================================================
+--- strace-5.7.orig/configure.ac	2020-11-09 04:39:07.197892960 +0100
++++ strace-5.7/configure.ac	2020-11-09 04:39:14.943826575 +0100
+@@ -481,6 +481,7 @@
+ 
+ AC_CHECK_HEADERS([linux/io_uring.h], [
+ 	AC_CHECK_MEMBERS(m4_normalize([
++		struct io_cqring_offsets.flags,
+ 		struct io_uring_params.features,
+ 		struct io_uring_params.wq_fd,
+ 		struct io_uring_params.resv
+Index: strace-5.7/io_uring.c
+===================================================================
+--- strace-5.7.orig/io_uring.c	2020-11-09 04:39:07.197892960 +0100
++++ strace-5.7/io_uring.c	2020-11-09 04:39:14.943826575 +0100
+@@ -17,6 +17,7 @@
+ #include "xlat/uring_setup_flags.h"
+ #include "xlat/uring_enter_flags.h"
+ #include "xlat/uring_register_opcodes.h"
++#include "xlat/uring_cqring_flags.h"
+ 
+ #ifdef HAVE_STRUCT_IO_URING_PARAMS
+ # ifdef HAVE_STRUCT_IO_URING_PARAMS_RESV
+@@ -88,10 +89,12 @@
+ 		PRINT_FIELD_U(", ", params.cq_off, ring_entries);
+ 		PRINT_FIELD_U(", ", params.cq_off, overflow);
+ 		PRINT_FIELD_U(", ", params.cq_off, cqes);
+-		if (!IS_ARRAY_ZERO(params.cq_off.resv)) {
+-			PRINT_FIELD_ARRAY(", ", params.cq_off, resv, tcp,
+-					  print_xint64_array_member);
+-		}
++		PRINT_FIELD_FLAGS(", ", params.cq_off, flags,
++				  uring_cqring_flags, "IORING_CQ_???");
++		if (params.cq_off.resv1)
++			PRINT_FIELD_X(", ", params.cq_off, resv1);
++		if (params.cq_off.resv2)
++			PRINT_FIELD_X(", ", params.cq_off, resv2);
+ 		tprints("}");
+ 	}
+ 	tprints("}");
+Index: strace-5.7/tests/io_uring_setup.c
+===================================================================
+--- strace-5.7.orig/tests/io_uring_setup.c	2020-11-09 04:39:07.197892960 +0100
++++ strace-5.7/tests/io_uring_setup.c	2020-11-09 04:39:14.943826575 +0100
+@@ -27,6 +27,7 @@
+ # include "xlat.h"
+ 
+ # include "xlat/uring_setup_features.h"
++# include "xlat/uring_cqring_flags.h"
+ 
+ # ifdef HAVE_STRUCT_IO_URING_PARAMS_FEATURES
+ #  ifdef HAVE_STRUCT_IO_URING_PARAMS_WQ_FD
+@@ -144,20 +145,40 @@
+ 						params->sq_off.resv2);
+ 
+ 			printf("}, cq_off={head=%u, tail=%u, ring_mask=%u"
+-			       ", ring_entries=%u, overflow=%u, cqes=%u",
++			       ", ring_entries=%u, overflow=%u, cqes=%u, flags=",
+ 			       params->cq_off.head,
+ 			       params->cq_off.tail,
+ 			       params->cq_off.ring_mask,
+ 			       params->cq_off.ring_entries,
+ 			       params->cq_off.overflow,
+ 			       params->cq_off.cqes);
+-			if (params->cq_off.resv[0] || params->cq_off.resv[1]) {
+-				printf(", resv=[%#llx, %#llx]",
++#ifdef HAVE_STRUCT_IO_CQRING_OFFSETS_FLAGS
++			printflags(uring_cqring_flags,
++			       params->cq_off.flags,
++			       "IORING_CQ_???");
++			if (params->cq_off.resv1)
++				printf(", resv1=%#x", params->cq_off.resv1);
++			if (params->cq_off.resv2)
++				printf(", resv2=%#llx",
+ 				       (unsigned long long)
+-						params->cq_off.resv[0],
++						params->cq_off.resv2);
++#else
++			union {
++				struct {
++					uint32_t flags;
++					uint32_t resv1;
++				} s;
++				uint64_t v;
++			} u = { .v = params->cq_off.resv[0] };
++			printflags(uring_cqring_flags, u.s.flags,
++				   "IORING_CQ_???");
++			if (u.s.resv1)
++				printf(", resv1=%#x", u.s.resv1);
++			if (params->cq_off.resv[1])
++				printf(", resv2=%#llx",
+ 				       (unsigned long long)
+ 						params->cq_off.resv[1]);
+-			}
++#endif
+ 
+ 			printf("}}) = %ld<anon_inode:[io_uring]>\n", rc);
+ 		}
+Index: strace-5.7/types/io_uring.h
+===================================================================
+--- strace-5.7.orig/types/io_uring.h	2020-11-09 04:39:07.198892952 +0100
++++ strace-5.7/types/io_uring.h	2020-11-09 04:39:14.944826567 +0100
+@@ -31,7 +31,9 @@
+ 	uint32_t ring_entries;
+ 	uint32_t overflow;
+ 	uint32_t cqes;
+-	uint64_t resv[2];
++	/** Added by v5.8-rc1~190^2~22 */	uint32_t flags;
++	/** Added by v5.8-rc1~190^2~22 */	uint32_t resv1;
++	/** Added by v5.8-rc1~190^2~22 */	uint64_t resv2;
+ } struct_io_cqring_offsets;
+ 
+ typedef struct {
+Index: strace-5.7/xlat/uring_cqring_flags.in
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/xlat/uring_cqring_flags.in	2020-11-09 04:39:14.944826567 +0100
+@@ -0,0 +1 @@
++IORING_CQ_EVENTFD_DISABLED	1U
+Index: strace-5.7/Makefile.in
+===================================================================
+--- strace-5.7.orig/Makefile.in	2020-11-09 04:39:07.201892926 +0100
++++ strace-5.7/Makefile.in	2020-11-09 04:42:54.519945367 +0100
+@@ -1506,10 +1506,10 @@
+ 	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/uring_enter_flags.in xlat/uring_op_flags.in \
+-	xlat/uring_ops.in xlat/uring_register_opcodes.in \
+-	xlat/uring_setup_features.in xlat/uring_setup_flags.in \
+-	xlat/usagewho.in xlat/v4l2_buf_flags.in \
++	xlat/uring_cqring_flags.in xlat/uring_enter_flags.in \
++	xlat/uring_op_flags.in xlat/uring_ops.in \
++	xlat/uring_register_opcodes.in xlat/uring_setup_features.in \
++	xlat/uring_setup_flags.in xlat/usagewho.in xlat/v4l2_buf_flags.in \
+ 	xlat/v4l2_buf_flags_masks.in xlat/v4l2_buf_flags_ts_src.in \
+ 	xlat/v4l2_buf_flags_ts_type.in xlat/v4l2_buf_types.in \
+ 	xlat/v4l2_capture_modes.in xlat/v4l2_colorspaces.in \
+@@ -1755,10 +1755,10 @@
+ 	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/uring_enter_flags.h xlat/uring_op_flags.h \
+-	xlat/uring_ops.h xlat/uring_register_opcodes.h \
+-	xlat/uring_setup_features.h xlat/uring_setup_flags.h \
+-	xlat/usagewho.h xlat/v4l2_buf_flags.h \
++	xlat/uring_cqring_flags.h xlat/uring_enter_flags.h \
++	xlat/uring_op_flags.h xlat/uring_ops.h \
++	xlat/uring_register_opcodes.h xlat/uring_setup_features.h \
++	xlat/uring_setup_flags.h xlat/usagewho.h xlat/v4l2_buf_flags.h \
+ 	xlat/v4l2_buf_flags_masks.h xlat/v4l2_buf_flags_ts_src.h \
+ 	xlat/v4l2_buf_flags_ts_type.h xlat/v4l2_buf_types.h \
+ 	xlat/v4l2_capture_modes.h xlat/v4l2_colorspaces.h \
+@@ -9974,6 +9974,8 @@
+ 	$(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/uring_cqring_flags.h: $(top_srcdir)/xlat/uring_cqring_flags.in $(top_srcdir)/xlat/gen.sh
++	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+ $(top_srcdir)/xlat/uring_enter_flags.h: $(top_srcdir)/xlat/uring_enter_flags.in $(top_srcdir)/xlat/gen.sh
+ 	$(AM_V_GEN)$(top_srcdir)/xlat/gen.sh $< $@
+ $(top_srcdir)/xlat/uring_op_flags.h: $(top_srcdir)/xlat/uring_op_flags.in $(top_srcdir)/xlat/gen.sh
+Index: strace-5.7/configure
+===================================================================
+--- strace-5.7.orig/configure	2020-11-09 04:39:07.205892892 +0100
++++ strace-5.7/configure	2020-11-09 05:07:10.675485410 +0100
+@@ -12580,7 +12580,17 @@
+ #define HAVE_LINUX_IO_URING_H 1
+ _ACEOF
+ 
+-	ac_fn_c_check_member "$LINENO" "struct io_uring_params" "features" "ac_cv_member_struct_io_uring_params_features" "#include <linux/io_uring.h>
++	ac_fn_c_check_member "$LINENO" "struct io_cqring_offsets" "flags" "ac_cv_member_struct_io_cqring_offsets_flags" "#include <linux/io_uring.h>
++"
++if test "x$ac_cv_member_struct_io_cqring_offsets_flags" = xyes; then :
++
++cat >>confdefs.h <<_ACEOF
++#define HAVE_STRUCT_IO_CQRING_OFFSETS_FLAGS 1
++_ACEOF
++
++
++fi
++ac_fn_c_check_member "$LINENO" "struct io_uring_params" "features" "ac_cv_member_struct_io_uring_params_features" "#include <linux/io_uring.h>
+ "
+ if test "x$ac_cv_member_struct_io_uring_params_features" = xyes; then :
+ 
+Index: strace-5.7/tests-m32/io_uring_setup.c
+===================================================================
+--- strace-5.7.orig/tests-m32/io_uring_setup.c	2020-11-09 04:39:07.206892883 +0100
++++ strace-5.7/tests-m32/io_uring_setup.c	2020-11-09 04:39:14.951826507 +0100
+@@ -27,6 +27,7 @@
+ # include "xlat.h"
+ 
+ # include "xlat/uring_setup_features.h"
++# include "xlat/uring_cqring_flags.h"
+ 
+ # ifdef HAVE_STRUCT_IO_URING_PARAMS_FEATURES
+ #  ifdef HAVE_STRUCT_IO_URING_PARAMS_WQ_FD
+@@ -144,20 +145,40 @@
+ 						params->sq_off.resv2);
+ 
+ 			printf("}, cq_off={head=%u, tail=%u, ring_mask=%u"
+-			       ", ring_entries=%u, overflow=%u, cqes=%u",
++			       ", ring_entries=%u, overflow=%u, cqes=%u, flags=",
+ 			       params->cq_off.head,
+ 			       params->cq_off.tail,
+ 			       params->cq_off.ring_mask,
+ 			       params->cq_off.ring_entries,
+ 			       params->cq_off.overflow,
+ 			       params->cq_off.cqes);
+-			if (params->cq_off.resv[0] || params->cq_off.resv[1]) {
+-				printf(", resv=[%#llx, %#llx]",
++#ifdef HAVE_STRUCT_IO_CQRING_OFFSETS_FLAGS
++			printflags(uring_cqring_flags,
++			       params->cq_off.flags,
++			       "IORING_CQ_???");
++			if (params->cq_off.resv1)
++				printf(", resv1=%#x", params->cq_off.resv1);
++			if (params->cq_off.resv2)
++				printf(", resv2=%#llx",
+ 				       (unsigned long long)
+-						params->cq_off.resv[0],
++						params->cq_off.resv2);
++#else
++			union {
++				struct {
++					uint32_t flags;
++					uint32_t resv1;
++				} s;
++				uint64_t v;
++			} u = { .v = params->cq_off.resv[0] };
++			printflags(uring_cqring_flags, u.s.flags,
++				   "IORING_CQ_???");
++			if (u.s.resv1)
++				printf(", resv1=%#x", u.s.resv1);
++			if (params->cq_off.resv[1])
++				printf(", resv2=%#llx",
+ 				       (unsigned long long)
+ 						params->cq_off.resv[1]);
+-			}
++#endif
+ 
+ 			printf("}}) = %ld<anon_inode:[io_uring]>\n", rc);
+ 		}
+Index: strace-5.7/tests-mx32/io_uring_setup.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/io_uring_setup.c	2020-11-09 04:39:07.206892883 +0100
++++ strace-5.7/tests-mx32/io_uring_setup.c	2020-11-09 04:39:14.951826507 +0100
+@@ -27,6 +27,7 @@
+ # include "xlat.h"
+ 
+ # include "xlat/uring_setup_features.h"
++# include "xlat/uring_cqring_flags.h"
+ 
+ # ifdef HAVE_STRUCT_IO_URING_PARAMS_FEATURES
+ #  ifdef HAVE_STRUCT_IO_URING_PARAMS_WQ_FD
+@@ -144,20 +145,40 @@
+ 						params->sq_off.resv2);
+ 
+ 			printf("}, cq_off={head=%u, tail=%u, ring_mask=%u"
+-			       ", ring_entries=%u, overflow=%u, cqes=%u",
++			       ", ring_entries=%u, overflow=%u, cqes=%u, flags=",
+ 			       params->cq_off.head,
+ 			       params->cq_off.tail,
+ 			       params->cq_off.ring_mask,
+ 			       params->cq_off.ring_entries,
+ 			       params->cq_off.overflow,
+ 			       params->cq_off.cqes);
+-			if (params->cq_off.resv[0] || params->cq_off.resv[1]) {
+-				printf(", resv=[%#llx, %#llx]",
++#ifdef HAVE_STRUCT_IO_CQRING_OFFSETS_FLAGS
++			printflags(uring_cqring_flags,
++			       params->cq_off.flags,
++			       "IORING_CQ_???");
++			if (params->cq_off.resv1)
++				printf(", resv1=%#x", params->cq_off.resv1);
++			if (params->cq_off.resv2)
++				printf(", resv2=%#llx",
+ 				       (unsigned long long)
+-						params->cq_off.resv[0],
++						params->cq_off.resv2);
++#else
++			union {
++				struct {
++					uint32_t flags;
++					uint32_t resv1;
++				} s;
++				uint64_t v;
++			} u = { .v = params->cq_off.resv[0] };
++			printflags(uring_cqring_flags, u.s.flags,
++				   "IORING_CQ_???");
++			if (u.s.resv1)
++				printf(", resv1=%#x", u.s.resv1);
++			if (params->cq_off.resv[1])
++				printf(", resv2=%#llx",
+ 				       (unsigned long long)
+ 						params->cq_off.resv[1]);
+-			}
++#endif
+ 
+ 			printf("}}) = %ld<anon_inode:[io_uring]>\n", rc);
+ 		}
+Index: strace-5.7/xlat/uring_cqring_flags.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/xlat/uring_cqring_flags.h	2020-11-09 05:07:27.046345327 +0100
+@@ -0,0 +1,48 @@
++/* Generated by ./xlat/gen.sh from ./xlat/uring_cqring_flags.in; do not edit. */
++
++#include "gcc_compat.h"
++#include "static_assert.h"
++
++#if defined(IORING_CQ_EVENTFD_DISABLED) || (defined(HAVE_DECL_IORING_CQ_EVENTFD_DISABLED) && HAVE_DECL_IORING_CQ_EVENTFD_DISABLED)
++DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
++static_assert((IORING_CQ_EVENTFD_DISABLED) == (1U), "IORING_CQ_EVENTFD_DISABLED != 1U");
++DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
++#else
++# define IORING_CQ_EVENTFD_DISABLED 1U
++#endif
++
++#ifndef XLAT_MACROS_ONLY
++
++# ifdef IN_MPERS
++
++#  error static const struct xlat uring_cqring_flags in mpers mode
++
++# else
++
++static const struct xlat_data uring_cqring_flags_xdata[] = {
++ XLAT(IORING_CQ_EVENTFD_DISABLED),
++ #define XLAT_VAL_0 ((unsigned) (IORING_CQ_EVENTFD_DISABLED))
++ #define XLAT_STR_0 STRINGIFY(IORING_CQ_EVENTFD_DISABLED)
++};
++static
++const struct xlat uring_cqring_flags[1] = { {
++ .data = uring_cqring_flags_xdata,
++ .size = ARRAY_SIZE(uring_cqring_flags_xdata),
++ .type = XT_NORMAL,
++ .flags_mask = 0
++#  ifdef XLAT_VAL_0
++  | XLAT_VAL_0
++#  endif
++  ,
++ .flags_strsz = 0
++#  ifdef XLAT_STR_0
++  + sizeof(XLAT_STR_0)
++#  endif
++  ,
++} };
++
++#  undef XLAT_STR_0
++#  undef XLAT_VAL_0
++# endif /* !IN_MPERS */
++
++#endif /* !XLAT_MACROS_ONLY */
diff --git a/SOURCES/0115-xlat-update-IORING_-constants.patch b/SOURCES/0115-xlat-update-IORING_-constants.patch
new file mode 100644
index 0000000..34b14d1
--- /dev/null
+++ b/SOURCES/0115-xlat-update-IORING_-constants.patch
@@ -0,0 +1,217 @@
+From dd6b70f5d4db14b432f424071d262e87fa944c96 Mon Sep 17 00:00:00 2001
+From: "Dmitry V. Levin" <ldv@altlinux.org>
+Date: Sun, 28 Jun 2020 08:00:00 +0000
+Subject: [PATCH 115/115] xlat: update IORING_* constants
+
+* xlat/uring_ops.in (IORING_OP_TEE): New constant introduced by Linux
+kernel commit v5.8-rc1~190^2~14.
+* tests/io_uring_register.c: Update expected output.
+---
+ tests/io_uring_register.c | 12 ++++++------
+ xlat/uring_ops.in         |  1 +
+ 2 files changed, 7 insertions(+), 6 deletions(-)
+
+Index: strace-5.7/tests/io_uring_register.c
+===================================================================
+--- strace-5.7.orig/tests/io_uring_register.c	2020-11-09 04:44:38.311057254 +0100
++++ strace-5.7/tests/io_uring_register.c	2020-11-09 04:44:40.445038991 +0100
+@@ -225,12 +225,12 @@
+ 	probe->ops[0].flags = 0;
+ 	probe->ops[0].resv2 = 0xbeefface;
+ 
+-	probe->ops[1].op = 32;
++	probe->ops[1].op = 33;
+ 	probe->ops[1].resv = 0;
+ 	probe->ops[1].flags = IO_URING_OP_SUPPORTED;
+ 	probe->ops[1].resv2 = 0xdeadc0de;
+ 
+-	probe->ops[2].op = 33;
++	probe->ops[2].op = 34;
+ 	probe->ops[2].resv = 0xaf;
+ 	probe->ops[2].flags = 0xbeef;
+ 	probe->ops[2].resv2 = 0;
+@@ -245,22 +245,22 @@
+ 	       ", {last_op=IORING_OP_EPOLL_CTL, ops_len=%hhu"
+ 	       ", resv2=[0, %#x, 0], ops=["
+ 	       "{op=IORING_OP_NOP, resv=0xde, flags=0, resv2=0xbeefface}, "
+-	       "{op=IORING_OP_REMOVE_BUFFERS, flags=IO_URING_OP_SUPPORTED"
++	       "{op=IORING_OP_TEE, flags=IO_URING_OP_SUPPORTED"
+ 	       ", resv2=0xdeadc0de}, "
+-	       "{op=33 /* IORING_OP_??? */, resv=0xaf"
++	       "{op=34 /* IORING_OP_??? */, resv=0xaf"
+ 	       ", flags=IO_URING_OP_SUPPORTED|0xbeee}, "
+ 	       "{op=254 /* IORING_OP_??? */"
+ 	       ", flags=0xc0de /* IO_URING_OP_??? */}]}, 4) = %s\n",
+ 	       fd_null, path_null, probe->ops_len, probe->resv2[1], errstr);
+ 
+-	probe->last_op = 33;
++	probe->last_op = 34;
+ 	probe->resv2[1] = 0;
+ 	fill_memory_ex(probe->ops, sizeof(probe->ops[0]) * (DEFAULT_STRLEN + 1),
+ 		    0x40, 0x80);
+ 	sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, probe,
+ 			      DEFAULT_STRLEN + 1);
+ 	printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE"
+-	       ", {last_op=33 /* IORING_OP_??? */, ops_len=%hhu, ops=[",
++	       ", {last_op=34 /* IORING_OP_??? */, ops_len=%hhu, ops=[",
+ 	       fd_null, path_null, probe->ops_len);
+ 	for (size_t i = 0; i < DEFAULT_STRLEN; i++) {
+ 		printf("%s{op=%u /* IORING_OP_??? */, resv=%#hhx"
+Index: strace-5.7/xlat/uring_ops.in
+===================================================================
+--- strace-5.7.orig/xlat/uring_ops.in	2020-11-09 04:44:38.311057254 +0100
++++ strace-5.7/xlat/uring_ops.in	2020-11-09 04:44:40.445038991 +0100
+@@ -32,3 +32,4 @@
+ IORING_OP_SPLICE		30
+ IORING_OP_PROVIDE_BUFFERS	31
+ IORING_OP_REMOVE_BUFFERS	32
++IORING_OP_TEE			33
+Index: strace-5.7/tests-m32/io_uring_register.c
+===================================================================
+--- strace-5.7.orig/tests-m32/io_uring_register.c	2020-11-09 04:44:38.312057246 +0100
++++ strace-5.7/tests-m32/io_uring_register.c	2020-11-09 04:44:40.445038991 +0100
+@@ -225,12 +225,12 @@
+ 	probe->ops[0].flags = 0;
+ 	probe->ops[0].resv2 = 0xbeefface;
+ 
+-	probe->ops[1].op = 32;
++	probe->ops[1].op = 33;
+ 	probe->ops[1].resv = 0;
+ 	probe->ops[1].flags = IO_URING_OP_SUPPORTED;
+ 	probe->ops[1].resv2 = 0xdeadc0de;
+ 
+-	probe->ops[2].op = 33;
++	probe->ops[2].op = 34;
+ 	probe->ops[2].resv = 0xaf;
+ 	probe->ops[2].flags = 0xbeef;
+ 	probe->ops[2].resv2 = 0;
+@@ -245,22 +245,22 @@
+ 	       ", {last_op=IORING_OP_EPOLL_CTL, ops_len=%hhu"
+ 	       ", resv2=[0, %#x, 0], ops=["
+ 	       "{op=IORING_OP_NOP, resv=0xde, flags=0, resv2=0xbeefface}, "
+-	       "{op=IORING_OP_REMOVE_BUFFERS, flags=IO_URING_OP_SUPPORTED"
++	       "{op=IORING_OP_TEE, flags=IO_URING_OP_SUPPORTED"
+ 	       ", resv2=0xdeadc0de}, "
+-	       "{op=33 /* IORING_OP_??? */, resv=0xaf"
++	       "{op=34 /* IORING_OP_??? */, resv=0xaf"
+ 	       ", flags=IO_URING_OP_SUPPORTED|0xbeee}, "
+ 	       "{op=254 /* IORING_OP_??? */"
+ 	       ", flags=0xc0de /* IO_URING_OP_??? */}]}, 4) = %s\n",
+ 	       fd_null, path_null, probe->ops_len, probe->resv2[1], errstr);
+ 
+-	probe->last_op = 33;
++	probe->last_op = 34;
+ 	probe->resv2[1] = 0;
+ 	fill_memory_ex(probe->ops, sizeof(probe->ops[0]) * (DEFAULT_STRLEN + 1),
+ 		    0x40, 0x80);
+ 	sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, probe,
+ 			      DEFAULT_STRLEN + 1);
+ 	printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE"
+-	       ", {last_op=33 /* IORING_OP_??? */, ops_len=%hhu, ops=[",
++	       ", {last_op=34 /* IORING_OP_??? */, ops_len=%hhu, ops=[",
+ 	       fd_null, path_null, probe->ops_len);
+ 	for (size_t i = 0; i < DEFAULT_STRLEN; i++) {
+ 		printf("%s{op=%u /* IORING_OP_??? */, resv=%#hhx"
+Index: strace-5.7/tests-mx32/io_uring_register.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/io_uring_register.c	2020-11-09 04:44:38.312057246 +0100
++++ strace-5.7/tests-mx32/io_uring_register.c	2020-11-09 04:44:40.446038982 +0100
+@@ -225,12 +225,12 @@
+ 	probe->ops[0].flags = 0;
+ 	probe->ops[0].resv2 = 0xbeefface;
+ 
+-	probe->ops[1].op = 32;
++	probe->ops[1].op = 33;
+ 	probe->ops[1].resv = 0;
+ 	probe->ops[1].flags = IO_URING_OP_SUPPORTED;
+ 	probe->ops[1].resv2 = 0xdeadc0de;
+ 
+-	probe->ops[2].op = 33;
++	probe->ops[2].op = 34;
+ 	probe->ops[2].resv = 0xaf;
+ 	probe->ops[2].flags = 0xbeef;
+ 	probe->ops[2].resv2 = 0;
+@@ -245,22 +245,22 @@
+ 	       ", {last_op=IORING_OP_EPOLL_CTL, ops_len=%hhu"
+ 	       ", resv2=[0, %#x, 0], ops=["
+ 	       "{op=IORING_OP_NOP, resv=0xde, flags=0, resv2=0xbeefface}, "
+-	       "{op=IORING_OP_REMOVE_BUFFERS, flags=IO_URING_OP_SUPPORTED"
++	       "{op=IORING_OP_TEE, flags=IO_URING_OP_SUPPORTED"
+ 	       ", resv2=0xdeadc0de}, "
+-	       "{op=33 /* IORING_OP_??? */, resv=0xaf"
++	       "{op=34 /* IORING_OP_??? */, resv=0xaf"
+ 	       ", flags=IO_URING_OP_SUPPORTED|0xbeee}, "
+ 	       "{op=254 /* IORING_OP_??? */"
+ 	       ", flags=0xc0de /* IO_URING_OP_??? */}]}, 4) = %s\n",
+ 	       fd_null, path_null, probe->ops_len, probe->resv2[1], errstr);
+ 
+-	probe->last_op = 33;
++	probe->last_op = 34;
+ 	probe->resv2[1] = 0;
+ 	fill_memory_ex(probe->ops, sizeof(probe->ops[0]) * (DEFAULT_STRLEN + 1),
+ 		    0x40, 0x80);
+ 	sys_io_uring_register(fd_null, IORING_REGISTER_PROBE, probe,
+ 			      DEFAULT_STRLEN + 1);
+ 	printf("io_uring_register(%u<%s>, IORING_REGISTER_PROBE"
+-	       ", {last_op=33 /* IORING_OP_??? */, ops_len=%hhu, ops=[",
++	       ", {last_op=34 /* IORING_OP_??? */, ops_len=%hhu, ops=[",
+ 	       fd_null, path_null, probe->ops_len);
+ 	for (size_t i = 0; i < DEFAULT_STRLEN; i++) {
+ 		printf("%s{op=%u /* IORING_OP_??? */, resv=%#hhx"
+Index: strace-5.7/xlat/uring_ops.h
+===================================================================
+--- strace-5.7.orig/xlat/uring_ops.h	2020-11-09 04:44:38.313057237 +0100
++++ strace-5.7/xlat/uring_ops.h	2020-11-09 04:47:01.835829135 +0100
+@@ -234,6 +234,13 @@
+ #else
+ # define IORING_OP_REMOVE_BUFFERS 32
+ #endif
++#if defined(IORING_OP_TEE) || (defined(HAVE_DECL_IORING_OP_TEE) && HAVE_DECL_IORING_OP_TEE)
++DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
++static_assert((IORING_OP_TEE) == (33), "IORING_OP_TEE != 33");
++DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
++#else
++# define IORING_OP_TEE 33
++#endif
+ 
+ #ifndef XLAT_MACROS_ONLY
+ 
+@@ -343,6 +350,9 @@
+  [IORING_OP_REMOVE_BUFFERS] = XLAT(IORING_OP_REMOVE_BUFFERS),
+  #define XLAT_VAL_32 ((unsigned) (IORING_OP_REMOVE_BUFFERS))
+  #define XLAT_STR_32 STRINGIFY(IORING_OP_REMOVE_BUFFERS)
++ [IORING_OP_TEE] = XLAT(IORING_OP_TEE),
++ #define XLAT_VAL_33 ((unsigned) (IORING_OP_TEE))
++ #define XLAT_STR_33 STRINGIFY(IORING_OP_TEE)
+ };
+ static
+ const struct xlat uring_ops[1] = { {
+@@ -449,6 +459,9 @@
+ #  ifdef XLAT_VAL_32
+   | XLAT_VAL_32
+ #  endif
++#  ifdef XLAT_VAL_33
++  | XLAT_VAL_33
++#  endif
+   ,
+  .flags_strsz = 0
+ #  ifdef XLAT_STR_0
+@@ -550,6 +563,9 @@
+ #  ifdef XLAT_STR_32
+   + sizeof(XLAT_STR_32)
+ #  endif
++#  ifdef XLAT_STR_33
++  + sizeof(XLAT_STR_33)
++#  endif
+   ,
+ } };
+ 
+@@ -619,6 +635,8 @@
+ #  undef XLAT_VAL_31
+ #  undef XLAT_STR_32
+ #  undef XLAT_VAL_32
++#  undef XLAT_STR_33
++#  undef XLAT_VAL_33
+ # endif /* !IN_MPERS */
+ 
+ #endif /* !XLAT_MACROS_ONLY */
diff --git a/SOURCES/0118-types-skip-field-lines-that-start-with-comments.patch b/SOURCES/0118-types-skip-field-lines-that-start-with-comments.patch
new file mode 100644
index 0000000..b9a37cd
--- /dev/null
+++ b/SOURCES/0118-types-skip-field-lines-that-start-with-comments.patch
@@ -0,0 +1,84 @@
+From b0a361c0a9095b396ff7100203c767ec9ffd2cfa Mon Sep 17 00:00:00 2001
+From: "Dmitry V. Levin" <ldv@altlinux.org>
+Date: Tue, 16 Jun 2020 08:00:00 +0000
+Subject: [PATCH] types: skip field lines that start with comments
+
+This allows to exclude certain fields from type checks by placing
+comments at the beginning of the corresponding lines.
+
+* types/find_last_type_fields.awk: Skip lines starting with spaces
+followed by "/".
+---
+ types/find_last_type_fields.awk | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: strace-5.7/types/find_last_type_fields.awk
+===================================================================
+--- strace-5.7.orig/types/find_last_type_fields.awk	2020-01-21 19:02:38.000000000 +0100
++++ strace-5.7/types/find_last_type_fields.awk	2020-11-09 04:47:06.976785148 +0100
+@@ -17,7 +17,7 @@
+ 		print a[1] "." last_field
+ 		next
+ 	}
+-	if (match($0, /^[[:space:]]+[^];:[]+[[:space:]]+([^][:space:];:[]+)(\[[^];:[]*\])?;.*$/, a)) {
++	if (match($0, /^[[:space:]]+[^];[:space:]:\/[][^];:[]*[[:space:]]+([^][:space:];:[]+)(\[[^];:[]*\])?;.*$/, a)) {
+ 		last_field = a[1]
+ 		next
+ 	}
+Index: strace-5.7/types/check-io_uring.c
+===================================================================
+--- strace-5.7.orig/types/check-io_uring.c	2020-11-09 04:47:06.977785139 +0100
++++ strace-5.7/types/check-io_uring.c	2020-11-09 04:49:10.033732186 +0100
+@@ -14,13 +14,13 @@
+ #endif /* HAVE_STRUCT_IO_SQRING_OFFSETS */
+ 
+ #ifdef HAVE_STRUCT_IO_CQRING_OFFSETS
+-# ifdef HAVE_STRUCT_IO_CQRING_OFFSETS_RESV
++# ifdef HAVE_STRUCT_IO_CQRING_OFFSETS_CQES
+ static_assert(sizeof(struct io_cqring_offsets) == sizeof(struct_io_cqring_offsets),
+       "struct io_cqring_offsets size mismatch, please update the decoder or fix the kernel");
+ # else
+-static_assert(sizeof(struct io_cqring_offsets) <= offsetof(struct_io_cqring_offsets, resv),
++static_assert(sizeof(struct io_cqring_offsets) <= offsetof(struct_io_cqring_offsets, cqes),
+ "struct io_cqring_offsets size mismatch, please update the decoder or fix the kernel");
+-# endif /* HAVE_STRUCT_IO_CQRING_OFFSETS_RESV */
++# endif /* HAVE_STRUCT_IO_CQRING_OFFSETS_CQES */
+ #endif /* HAVE_STRUCT_IO_CQRING_OFFSETS */
+ 
+ #ifdef HAVE_STRUCT_IO_URING_PARAMS
+Index: strace-5.7/config.h.in
+===================================================================
+--- strace-5.7.orig/config.h.in	2020-11-09 04:47:06.980785114 +0100
++++ strace-5.7/config.h.in	2020-11-09 04:50:11.871203054 +0100
+@@ -2596,8 +2596,8 @@
+ /* Define to 1 if the system has the type `struct io_cqring_offsets'. */
+ #undef HAVE_STRUCT_IO_CQRING_OFFSETS
+ 
+-/* Define to 1 if `resv' is a member of `struct io_cqring_offsets'. */
+-#undef HAVE_STRUCT_IO_CQRING_OFFSETS_RESV
++/* Define to 1 if `cqes' is a member of `struct io_cqring_offsets'. */
++#undef HAVE_STRUCT_IO_CQRING_OFFSETS_CQES
+ 
+ /* Define to 1 if the system has the type `struct io_sqring_offsets'. */
+ #undef HAVE_STRUCT_IO_SQRING_OFFSETS
+Index: strace-5.7/configure
+===================================================================
+--- strace-5.7.orig/configure	2020-11-09 04:47:06.988785045 +0100
++++ strace-5.7/configure	2020-11-09 04:51:12.500684263 +0100
+@@ -13475,13 +13475,13 @@
+ #define HAVE_STRUCT_IO_CQRING_OFFSETS 1
+ _ACEOF
+ 
+-ac_fn_c_check_member "$LINENO" "struct io_cqring_offsets" "resv" "ac_cv_member_struct_io_cqring_offsets_resv" "$ac_includes_default
++ac_fn_c_check_member "$LINENO" "struct io_cqring_offsets" "cqes" "ac_cv_member_struct_io_cqring_offsets_cqes" "$ac_includes_default
+ #include <linux/io_uring.h>
+ "
+-if test "x$ac_cv_member_struct_io_cqring_offsets_resv" = xyes; then :
++if test "x$ac_cv_member_struct_io_cqring_offsets_cqes" = xyes; then :
+ 
+ cat >>confdefs.h <<_ACEOF
+-#define HAVE_STRUCT_IO_CQRING_OFFSETS_RESV 1
++#define HAVE_STRUCT_IO_CQRING_OFFSETS_CQES 1
+ _ACEOF
+ 
+ 
diff --git a/SOURCES/0119-print_fields.h-add-PRINT_FIELD_LEN-macro.patch b/SOURCES/0119-print_fields.h-add-PRINT_FIELD_LEN-macro.patch
new file mode 100644
index 0000000..c955bde
--- /dev/null
+++ b/SOURCES/0119-print_fields.h-add-PRINT_FIELD_LEN-macro.patch
@@ -0,0 +1,155 @@
+From 8806a21b612d76c8732d0df2ebaf52b62166ce51 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=81kos=20Uzonyi?= <uzonyi.akos@gmail.com>
+Date: Sat, 13 Jun 2020 18:18:31 +0200
+Subject: [PATCH 119/138] print_fields.h: add PRINT_FIELD_LEN macro
+
+* print_fields.h (PRINT_FIELD_LEN): New macro.
+* net.c: (print_get_linger, print_get_ucred, print_tpacket_stats):
+Rewrite using PRINT_FIELD_LEN.
+---
+ net.c          | 90 ++++++----------------------------------------------------
+ print_fields.h | 15 ++++++++++
+ 2 files changed, 23 insertions(+), 82 deletions(-)
+
+diff --git a/net.c b/net.c
+index a58fa92..9ea34b2 100644
+--- a/net.c
++++ b/net.c
+@@ -579,24 +579,8 @@ print_get_linger(struct tcb *const tcp, const kernel_ulong_t addr,
+ 	if (umoven_or_printaddr(tcp, addr, len, &linger))
+ 		return;
+ 
+-	if (len < sizeof(linger.l_onoff)) {
+-		tprints("{l_onoff=");
+-		print_quoted_string((void *) &linger.l_onoff,
+-				    len, QUOTE_FORCE_HEX);
+-	} else {
+-		PRINT_FIELD_D("{", linger, l_onoff);
+-
+-		if (len > offsetof(struct linger, l_linger)) {
+-			len -= offsetof(struct linger, l_linger);
+-			if (len < sizeof(linger.l_linger)) {
+-				tprints(", l_linger=");
+-				print_quoted_string((void *) &linger.l_linger,
+-						    len, QUOTE_FORCE_HEX);
+-			} else {
+-				PRINT_FIELD_D(", ", linger, l_linger);
+-			}
+-		}
+-	}
++	PRINT_FIELD_LEN("{", linger, l_onoff, len, PRINT_FIELD_D);
++	PRINT_FIELD_LEN(", ", linger, l_linger, len, PRINT_FIELD_D);
+ 	tprints("}");
+ }
+ 
+@@ -617,38 +601,9 @@ print_get_ucred(struct tcb *const tcp, const kernel_ulong_t addr,
+ 	if (umoven_or_printaddr(tcp, addr, len, &uc))
+ 		return;
+ 
+-	if (len < sizeof(uc.pid)) {
+-		tprints("{pid=");
+-		print_quoted_string((void *) &uc.pid,
+-				    len, QUOTE_FORCE_HEX);
+-	} else {
+-		PRINT_FIELD_D("{", uc, pid);
+-
+-		if (len > offsetof(struct ucred, uid)) {
+-			len -= offsetof(struct ucred, uid);
+-			if (len < sizeof(uc.uid)) {
+-				tprints(", uid=");
+-				print_quoted_string((void *) &uc.uid,
+-						    len, QUOTE_FORCE_HEX);
+-			} else {
+-				PRINT_FIELD_UID(", ", uc, uid);
+-
+-				if (len > offsetof(struct ucred, gid) -
+-					  offsetof(struct ucred, uid)) {
+-					len -= offsetof(struct ucred, gid) -
+-					       offsetof(struct ucred, uid);
+-					if (len < sizeof(uc.gid)) {
+-						tprints(", gid=");
+-						print_quoted_string((void *) &uc.gid,
+-								    len,
+-								    QUOTE_FORCE_HEX);
+-					} else {
+-						PRINT_FIELD_UID(", ", uc, gid);
+-					}
+-				}
+-			}
+-		}
+-	}
++	PRINT_FIELD_LEN("{", uc, pid, len, PRINT_FIELD_D);
++	PRINT_FIELD_LEN(", ", uc, uid, len, PRINT_FIELD_UID);
++	PRINT_FIELD_LEN(", ", uc, gid, len, PRINT_FIELD_UID);
+ 	tprints("}");
+ }
+ 
+@@ -688,38 +643,9 @@ print_tpacket_stats(struct tcb *const tcp, const kernel_ulong_t addr,
+ 	if (umoven_or_printaddr(tcp, addr, len, &stats))
+ 		return;
+ 
+-	if (len < sizeof(stats.tp_packets)) {
+-		tprints("{tp_packets=");
+-		print_quoted_string((void *) &stats.tp_packets,
+-				    len, QUOTE_FORCE_HEX);
+-	} else {
+-		PRINT_FIELD_U("{", stats, tp_packets);
+-
+-		if (len > offsetof(struct tp_stats, tp_drops)) {
+-			len -= offsetof(struct tp_stats, tp_drops);
+-			if (len < sizeof(stats.tp_drops)) {
+-				tprints(", tp_drops=");
+-				print_quoted_string((void *) &stats.tp_drops,
+-						    len, QUOTE_FORCE_HEX);
+-			} else {
+-				PRINT_FIELD_U(", ", stats, tp_drops);
+-
+-				if (len > offsetof(struct tp_stats, tp_freeze_q_cnt) -
+-					  offsetof(struct tp_stats, tp_drops)) {
+-					len -= offsetof(struct tp_stats, tp_freeze_q_cnt) -
+-					       offsetof(struct tp_stats, tp_drops);
+-					if (len < sizeof(stats.tp_freeze_q_cnt)) {
+-						tprints(", tp_freeze_q_cnt=");
+-						print_quoted_string((void *) &stats.tp_freeze_q_cnt,
+-								    len,
+-								    QUOTE_FORCE_HEX);
+-					} else {
+-						PRINT_FIELD_U(", ", stats, tp_freeze_q_cnt);
+-					}
+-				}
+-			}
+-		}
+-	}
++	PRINT_FIELD_LEN("{", stats, tp_packets, len, PRINT_FIELD_U);
++	PRINT_FIELD_LEN(", ", stats, tp_drops, len, PRINT_FIELD_U);
++	PRINT_FIELD_LEN(", ", stats, tp_freeze_q_cnt, len, PRINT_FIELD_U);
+ 	tprints("}");
+ }
+ #endif /* PACKET_STATISTICS */
+diff --git a/print_fields.h b/print_fields.h
+index 02c56bf..70dbbff 100644
+--- a/print_fields.h
++++ b/print_fields.h
+@@ -277,4 +277,19 @@
+ 			       (size_), (hwtype_));			\
+ 	} while (0)
+ 
++# define PRINT_FIELD_LEN(prefix_, where_, field_, 			\
++			len_, print_func_, ...)				\
++	do {								\
++		unsigned int start = offsetof(typeof(where_), field_);	\
++		unsigned int end = start + sizeof(where_.field_);	\
++		if (len_ >= end) {					\
++			print_func_(prefix_, where_, field_,		\
++					##__VA_ARGS__);			\
++		} else if (len_ > start) {				\
++			tprintf("%s%s=", prefix_, #field_);		\
++			print_quoted_string((void *)&where_.field_,	\
++					len_ - start, QUOTE_FORCE_HEX);	\
++		}							\
++	} while (0)
++
+ #endif /* !STRACE_PRINT_FIELDS_H */
+-- 
+2.1.4
+
diff --git a/SOURCES/0120-Move-ilog-functions-from-util.c-to-defs.h.patch b/SOURCES/0120-Move-ilog-functions-from-util.c-to-defs.h.patch
new file mode 100644
index 0000000..8d70014
--- /dev/null
+++ b/SOURCES/0120-Move-ilog-functions-from-util.c-to-defs.h.patch
@@ -0,0 +1,157 @@
+From c9e41cd3485fa1a65dc6206c5b210b4be4c5597c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=81kos=20Uzonyi?= <uzonyi.akos@gmail.com>
+Date: Sat, 13 Jun 2020 18:18:32 +0200
+Subject: [PATCH 120/138] Move ilog* functions from util.c to defs.h
+
+* util.c (ILOG2_ITER_, ilog2_klong, ilog2_64, ilog2_32): Move ...
+* defs.h: ... here.
+---
+ defs.h | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ util.c | 62 --------------------------------------------------------------
+ 2 files changed, 60 insertions(+), 62 deletions(-)
+
+diff --git a/defs.h b/defs.h
+index 3aa07fb..d8bd513 100644
+--- a/defs.h
++++ b/defs.h
+@@ -1698,4 +1698,64 @@ scno_is_valid(kernel_ulong_t scno)
+ 
+ # define SYS_FUNC(syscall_name) int SYS_FUNC_NAME(sys_ ## syscall_name)(struct tcb *tcp)
+ 
++#define ILOG2_ITER_(val_, ret_, bit_)					\
++	do {								\
++		typeof(ret_) shift_ =					\
++			((val_) > ((((typeof(val_)) 1)			\
++				   << (1 << (bit_))) - 1)) << (bit_);	\
++		(val_) >>= shift_;					\
++		(ret_) |= shift_;					\
++	} while (0)
++
++/**
++ * Calculate floor(log2(val)), with the exception of val == 0, for which 0
++ * is returned as well.
++ *
++ * @param val 64-bit value to calculate integer base-2 logarithm for.
++ * @return    (unsigned int) floor(log2(val)) if val > 0, 0 if val == 0.
++ */
++static inline unsigned int
++ilog2_64(uint64_t val)
++{
++	unsigned int ret = 0;
++
++	ILOG2_ITER_(val, ret, 5);
++	ILOG2_ITER_(val, ret, 4);
++	ILOG2_ITER_(val, ret, 3);
++	ILOG2_ITER_(val, ret, 2);
++	ILOG2_ITER_(val, ret, 1);
++	ILOG2_ITER_(val, ret, 0);
++
++	return ret;
++}
++
++/**
++ * Calculate floor(log2(val)), with the exception of val == 0, for which 0
++ * is returned as well.
++ *
++ * @param val 32-bit value to calculate integer base-2 logarithm for.
++ * @return    (unsigned int) floor(log2(val)) if val > 0, 0 if val == 0.
++ */
++static inline unsigned int
++ilog2_32(uint32_t val)
++{
++	unsigned int ret = 0;
++
++	ILOG2_ITER_(val, ret, 4);
++	ILOG2_ITER_(val, ret, 3);
++	ILOG2_ITER_(val, ret, 2);
++	ILOG2_ITER_(val, ret, 1);
++	ILOG2_ITER_(val, ret, 0);
++
++	return ret;
++}
++
++#if SIZEOF_KERNEL_LONG_T > 4
++# define ilog2_klong ilog2_64
++#else
++# define ilog2_klong ilog2_32
++#endif
++
++#undef ILOG2_ITER_
++
+ #endif /* !STRACE_DEFS_H */
+diff --git a/util.c b/util.c
+index 59696b5..cde76c1 100644
+--- a/util.c
++++ b/util.c
+@@ -1120,68 +1120,6 @@ dumpiov_upto(struct tcb *const tcp, const int len, const kernel_ulong_t addr,
+ #undef iov
+ }
+ 
+-#define ILOG2_ITER_(val_, ret_, bit_)					\
+-	do {								\
+-		typeof(ret_) shift_ =					\
+-			((val_) > ((((typeof(val_)) 1)			\
+-				   << (1 << (bit_))) - 1)) << (bit_);	\
+-		(val_) >>= shift_;					\
+-		(ret_) |= shift_;					\
+-	} while (0)
+-
+-#if SIZEOF_KERNEL_LONG_T > 4
+-
+-# define ilog2_klong ilog2_64
+-/**
+- * Calculate floor(log2(val)), with the exception of val == 0, for which 0
+- * is returned as well.
+- *
+- * @param val 64-bit value to calculate integer base-2 logarithm for.
+- * @return    (unsigned int) floor(log2(val)) if val > 0, 0 if val == 0.
+- */
+-static inline unsigned int
+-ilog2_64(uint64_t val)
+-{
+-	unsigned int ret = 0;
+-
+-	ILOG2_ITER_(val, ret, 5);
+-	ILOG2_ITER_(val, ret, 4);
+-	ILOG2_ITER_(val, ret, 3);
+-	ILOG2_ITER_(val, ret, 2);
+-	ILOG2_ITER_(val, ret, 1);
+-	ILOG2_ITER_(val, ret, 0);
+-
+-	return ret;
+-}
+-
+-#else /* SIZEOF_KERNEL_LONG_T == 4 */
+-
+-# define ilog2_klong ilog2_32
+-/**
+- * Calculate floor(log2(val)), with the exception of val == 0, for which 0
+- * is returned as well.
+- *
+- * @param val 32-bit value to calculate integer base-2 logarithm for.
+- * @return    (unsigned int) floor(log2(val)) if val > 0, 0 if val == 0.
+- */
+-static inline unsigned int
+-ilog2_32(uint32_t val)
+-{
+-	unsigned int ret = 0;
+-
+-	ILOG2_ITER_(val, ret, 4);
+-	ILOG2_ITER_(val, ret, 3);
+-	ILOG2_ITER_(val, ret, 2);
+-	ILOG2_ITER_(val, ret, 1);
+-	ILOG2_ITER_(val, ret, 0);
+-
+-	return ret;
+-}
+-
+-#endif /* SIZEOF_KERNEL_LONG_T */
+-
+-#undef ILOG2_ITER_
+-
+ void
+ dumpstr(struct tcb *const tcp, const kernel_ulong_t addr,
+ 	const kernel_ulong_t len)
+-- 
+2.1.4
+
diff --git a/SOURCES/0122-tests-inject-nf.test-replace-getpid-with-geteuid.patch b/SOURCES/0122-tests-inject-nf.test-replace-getpid-with-geteuid.patch
new file mode 100644
index 0000000..1b15526
--- /dev/null
+++ b/SOURCES/0122-tests-inject-nf.test-replace-getpid-with-geteuid.patch
@@ -0,0 +1,235 @@
+From c5be5bb949988c262012e7f4763b1d658c1769b9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=81kos=20Uzonyi?= <uzonyi.akos@gmail.com>
+Date: Fri, 19 Jun 2020 12:06:42 +0200
+Subject: [PATCH 122/138] tests/inject-nf.test: replace getpid with geteuid
+
+Since we treat PIDs as signed integers, large values (>=2^31) will
+cause overflow when we use printpid.
+UIDs are treated as unsigned integers, so geteuid is a good alternative.
+(getuid would be problematic, as it does not exists on alpha).
+Also, on systems where geteuid32 exists, geteuid returns maximum 16 bit
+values, so we have to use geteuid32 in this case.
+
+[ldv: geteuid syscall was introduced on Alpha by Linux kernel commit
+v5.1-rc1~160^2~3^2~1, so this test will not work on old Alpha kernels.]
+
+* tests/inject-nf.c: Replace getpid with either geteuid32 or geteuid.
+[__alpha__]: Remove.
+[__NR_geteuid32]: New condition.
+* tests/inject-nf.test (SYSCALL): Replace getpid with '/^geteuid(32)?$'.
+Remove alpha workaround.
+---
+ tests/inject-nf.c    | 20 +++++++++-----------
+ tests/inject-nf.test |  9 +--------
+ 2 files changed, 10 insertions(+), 19 deletions(-)
+
+Index: strace-5.7/tests/inject-nf.c
+===================================================================
+--- strace-5.7.orig/tests/inject-nf.c	2020-09-09 14:50:44.159739392 +0200
++++ strace-5.7/tests/inject-nf.c	2020-09-09 14:56:17.193937896 +0200
+@@ -16,28 +16,26 @@
+ 
+ #include "raw_syscall.h"
+ 
+-#ifdef __alpha__
+-/* alpha has no getpid */
+-# define SC_NR __NR_getpgrp
+-# define SC_NAME "getpgrp"
+-# define getpid getpgrp
++#ifdef __NR_geteuid32
++# define SC_NR __NR_geteuid32
++# define SC_NAME "geteuid32"
+ #else
+-# define SC_NR __NR_getpid
+-# define SC_NAME "getpid"
++# define SC_NR __NR_geteuid
++# define SC_NAME "geteuid"
+ #endif
+ 
+ #ifdef raw_syscall_0
+ # define INVOKE_SC(err) raw_syscall_0(SC_NR, &err)
+ #else
+-/* No raw_syscall_0, let's use getpid() and hope for the best.  */
+-# define INVOKE_SC(err) getpid()
++/* No raw_syscall_0, let's use geteuid() and hope for the best. */
++# define INVOKE_SC(err) geteuid()
+ #endif
+ 
+ /*
+  * This prototype is intentionally different
+  * from the prototype provided by <unistd.h>.
+  */
+-extern kernel_ulong_t getpid(void);
++extern kernel_ulong_t geteuid(void);
+ 
+ int
+ main(int ac, char **av)
+@@ -45,7 +43,7 @@
+ 	assert(ac == 1 || ac == 2);
+ 
+ 	kernel_ulong_t expected =
+-		(ac == 1) ? getpid() : strtoull(av[1], NULL, 0);
++		(ac == 1) ? geteuid() : strtoull(av[1], NULL, 0);
+ 	kernel_ulong_t err = 0;
+ 	kernel_ulong_t rc = INVOKE_SC(err);
+ 
+Index: strace-5.7/tests/inject-nf.test
+===================================================================
+--- strace-5.7.orig/tests/inject-nf.test	2020-09-09 14:50:44.159739392 +0200
++++ strace-5.7/tests/inject-nf.test	2020-09-09 14:56:17.194937896 +0200
+@@ -9,14 +9,7 @@
+ 
+ . "${srcdir=.}/scno_tampering.sh"
+ 
+-case "$STRACE_ARCH" in
+-alpha)
+-	SYSCALL=getpgrp
+-	;;
+-*)
+-	SYSCALL=getpid
+-	;;
+-esac
++SYSCALL='/^geteuid(32)?$'
+ 
+ run_prog
+ prog="$args"
+Index: strace-5.7/tests-m32/inject-nf.c
+===================================================================
+--- strace-5.7.orig/tests-m32/inject-nf.c	2019-09-25 03:02:03.000000000 +0200
++++ strace-5.7/tests-m32/inject-nf.c	2020-09-09 14:58:03.687001371 +0200
+@@ -16,28 +16,26 @@
+ 
+ #include "raw_syscall.h"
+ 
+-#ifdef __alpha__
+-/* alpha has no getpid */
+-# define SC_NR __NR_getpgrp
+-# define SC_NAME "getpgrp"
+-# define getpid getpgrp
++#ifdef __NR_geteuid32
++# define SC_NR __NR_geteuid32
++# define SC_NAME "geteuid32"
+ #else
+-# define SC_NR __NR_getpid
+-# define SC_NAME "getpid"
++# define SC_NR __NR_geteuid
++# define SC_NAME "geteuid"
+ #endif
+ 
+ #ifdef raw_syscall_0
+ # define INVOKE_SC(err) raw_syscall_0(SC_NR, &err)
+ #else
+-/* No raw_syscall_0, let's use getpid() and hope for the best.  */
+-# define INVOKE_SC(err) getpid()
++/* No raw_syscall_0, let's use geteuid() and hope for the best. */
++# define INVOKE_SC(err) geteuid()
+ #endif
+ 
+ /*
+  * This prototype is intentionally different
+  * from the prototype provided by <unistd.h>.
+  */
+-extern kernel_ulong_t getpid(void);
++extern kernel_ulong_t geteuid(void);
+ 
+ int
+ main(int ac, char **av)
+@@ -45,7 +43,7 @@
+ 	assert(ac == 1 || ac == 2);
+ 
+ 	kernel_ulong_t expected =
+-		(ac == 1) ? getpid() : strtoull(av[1], NULL, 0);
++		(ac == 1) ? geteuid() : strtoull(av[1], NULL, 0);
+ 	kernel_ulong_t err = 0;
+ 	kernel_ulong_t rc = INVOKE_SC(err);
+ 
+Index: strace-5.7/tests-m32/inject-nf.test
+===================================================================
+--- strace-5.7.orig/tests-m32/inject-nf.test	2018-12-25 00:46:43.000000000 +0100
++++ strace-5.7/tests-m32/inject-nf.test	2020-09-09 14:58:03.727001394 +0200
+@@ -9,14 +9,7 @@
+ 
+ . "${srcdir=.}/scno_tampering.sh"
+ 
+-case "$STRACE_ARCH" in
+-alpha)
+-	SYSCALL=getpgrp
+-	;;
+-*)
+-	SYSCALL=getpid
+-	;;
+-esac
++SYSCALL='/^geteuid(32)?$'
+ 
+ run_prog
+ prog="$args"
+Index: strace-5.7/tests-mx32/inject-nf.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/inject-nf.c	2019-09-25 03:02:03.000000000 +0200
++++ strace-5.7/tests-mx32/inject-nf.c	2020-09-09 14:58:03.708001383 +0200
+@@ -16,28 +16,26 @@
+ 
+ #include "raw_syscall.h"
+ 
+-#ifdef __alpha__
+-/* alpha has no getpid */
+-# define SC_NR __NR_getpgrp
+-# define SC_NAME "getpgrp"
+-# define getpid getpgrp
++#ifdef __NR_geteuid32
++# define SC_NR __NR_geteuid32
++# define SC_NAME "geteuid32"
+ #else
+-# define SC_NR __NR_getpid
+-# define SC_NAME "getpid"
++# define SC_NR __NR_geteuid
++# define SC_NAME "geteuid"
+ #endif
+ 
+ #ifdef raw_syscall_0
+ # define INVOKE_SC(err) raw_syscall_0(SC_NR, &err)
+ #else
+-/* No raw_syscall_0, let's use getpid() and hope for the best.  */
+-# define INVOKE_SC(err) getpid()
++/* No raw_syscall_0, let's use geteuid() and hope for the best. */
++# define INVOKE_SC(err) geteuid()
+ #endif
+ 
+ /*
+  * This prototype is intentionally different
+  * from the prototype provided by <unistd.h>.
+  */
+-extern kernel_ulong_t getpid(void);
++extern kernel_ulong_t geteuid(void);
+ 
+ int
+ main(int ac, char **av)
+@@ -45,7 +43,7 @@
+ 	assert(ac == 1 || ac == 2);
+ 
+ 	kernel_ulong_t expected =
+-		(ac == 1) ? getpid() : strtoull(av[1], NULL, 0);
++		(ac == 1) ? geteuid() : strtoull(av[1], NULL, 0);
+ 	kernel_ulong_t err = 0;
+ 	kernel_ulong_t rc = INVOKE_SC(err);
+ 
+Index: strace-5.7/tests-mx32/inject-nf.test
+===================================================================
+--- strace-5.7.orig/tests-mx32/inject-nf.test	2018-12-25 00:46:43.000000000 +0100
++++ strace-5.7/tests-mx32/inject-nf.test	2020-09-09 14:58:03.750001408 +0200
+@@ -9,14 +9,7 @@
+ 
+ . "${srcdir=.}/scno_tampering.sh"
+ 
+-case "$STRACE_ARCH" in
+-alpha)
+-	SYSCALL=getpgrp
+-	;;
+-*)
+-	SYSCALL=getpid
+-	;;
+-esac
++SYSCALL='/^geteuid(32)?$'
+ 
+ run_prog
+ prog="$args"
diff --git a/SOURCES/0123-fcntl-use-print_fields.h-macros.patch b/SOURCES/0123-fcntl-use-print_fields.h-macros.patch
new file mode 100644
index 0000000..9f4d96a
--- /dev/null
+++ b/SOURCES/0123-fcntl-use-print_fields.h-macros.patch
@@ -0,0 +1,60 @@
+From eba856eb0246ce2a2ba99d68611da1af7814080e Mon Sep 17 00:00:00 2001
+From: "Dmitry V. Levin" <ldv@altlinux.org>
+Date: Mon, 13 Jul 2020 08:00:00 +0000
+Subject: [PATCH 123/138] fcntl: use print_fields.h macros
+
+* fcntl.c: Include "print_fields.h".
+(print_struct_flock64, print_f_owner_ex): Use PRINT_FIELD_* macros
+from print_fields.h.
+---
+ fcntl.c | 19 +++++++++----------
+ 1 file changed, 9 insertions(+), 10 deletions(-)
+
+diff --git a/fcntl.c b/fcntl.c
+index 0b4221c..e84549e 100644
+--- a/fcntl.c
++++ b/fcntl.c
+@@ -11,6 +11,7 @@
+ 
+ #include "defs.h"
+ #include "flock.h"
++#include "print_fields.h"
+ 
+ #include "xlat/f_owner_types.h"
+ #include "xlat/f_seals.h"
+@@ -22,14 +23,12 @@
+ static void
+ print_struct_flock64(const struct_kernel_flock64 *fl, const int getlk)
+ {
+-	tprints("{l_type=");
+-	printxval(lockfcmds, (unsigned short) fl->l_type, "F_???");
+-	tprints(", l_whence=");
+-	printxval(whence_codes, (unsigned short) fl->l_whence, "SEEK_???");
+-	tprintf(", l_start=%" PRId64 ", l_len=%" PRId64,
+-		(int64_t) fl->l_start, (int64_t) fl->l_len);
++	PRINT_FIELD_XVAL("{", *fl, l_type, lockfcmds, "F_???");
++	PRINT_FIELD_XVAL(", ", *fl, l_whence, whence_codes, "SEEK_???");
++	PRINT_FIELD_D(", ", *fl, l_start);
++	PRINT_FIELD_D(", ", *fl, l_len);
+ 	if (getlk)
+-		tprintf(", l_pid=%lu", (unsigned long) fl->l_pid);
++		PRINT_FIELD_D(", ", *fl, l_pid);
+ 	tprints("}");
+ }
+ 
+@@ -59,9 +58,9 @@ print_f_owner_ex(struct tcb *const tcp, const kernel_ulong_t addr)
+ 	if (umove_or_printaddr(tcp, addr, &owner))
+ 		return;
+ 
+-	tprints("{type=");
+-	printxval(f_owner_types, owner.type, "F_OWNER_???");
+-	tprintf(", pid=%d}", owner.pid);
++	PRINT_FIELD_XVAL("{", owner, type, f_owner_types, "F_OWNER_???");
++	PRINT_FIELD_D(", ", owner, pid);
++	tprints("}");
+ }
+ 
+ static int
+-- 
+2.1.4
+
diff --git a/SOURCES/0124-kcmp-fix-KCMP_FILE-decoding.patch b/SOURCES/0124-kcmp-fix-KCMP_FILE-decoding.patch
new file mode 100644
index 0000000..b15613f
--- /dev/null
+++ b/SOURCES/0124-kcmp-fix-KCMP_FILE-decoding.patch
@@ -0,0 +1,28 @@
+From 86923d3a0a01c520ea25d22587143ad6b8dab18b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=81kos=20Uzonyi?= <uzonyi.akos@gmail.com>
+Date: Sat, 13 Jun 2020 18:18:28 +0200
+Subject: [PATCH 124/138] kcmp: fix KCMP_FILE decoding
+
+* kcmp.c (SYS_FUNC(kcmp)): Fix KCMP_FILE pid arguments.
+
+Fixes: v4.20~66 ("kcmp: output fds using a separate function")
+---
+ kcmp.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/kcmp.c b/kcmp.c
+index 6819265..6211555 100644
+--- a/kcmp.c
++++ b/kcmp.c
+@@ -38,7 +38,7 @@ SYS_FUNC(kcmp)
+ 			tprints(", ");
+ 			printfd_pid_tracee_ns(tcp, pid1, idx1);
+ 			tprints(", ");
+-			printfd_pid_tracee_ns(tcp, pid1, idx2);
++			printfd_pid_tracee_ns(tcp, pid2, idx2);
+ 
+ 			break;
+ 
+-- 
+2.1.4
+
diff --git a/SOURCES/0125-printsiginfo-fix-printing-of-siginfo_t.si_pid-and-si.patch b/SOURCES/0125-printsiginfo-fix-printing-of-siginfo_t.si_pid-and-si.patch
new file mode 100644
index 0000000..6ec6f26
--- /dev/null
+++ b/SOURCES/0125-printsiginfo-fix-printing-of-siginfo_t.si_pid-and-si.patch
@@ -0,0 +1,518 @@
+From 56a29d0e192b119c101146e2197246f51661b6b5 Mon Sep 17 00:00:00 2001
+From: "Dmitry V. Levin" <ldv@altlinux.org>
+Date: Fri, 17 Jul 2020 08:00:00 +0000
+Subject: [PATCH 125/138] printsiginfo: fix printing of siginfo_t.si_pid and
+ siginfo_t.si_uid
+
+* printsiginfo.c (printsigsource): Print siginfo_t.si_pid using
+PRINT_FIELD_D, print siginfo_t.si_uid using PRINT_FIELD_UID.
+* tests/clone_ptrace.c (main): Update expected output.
+* tests/orphaned_process_group.c (main): Likewise.
+* tests/pidfd_send_signal.c (main): Likewise.
+* tests/ptrace.c (test_peeksiginfo): Likewise.
+* tests/rt_sigqueueinfo.c (main): Likewise.
+* tests/rt_tgsigqueueinfo.c (main): Likewise.
+* tests/siginfo.c (main): Likewise.
+* tests/waitid.c (sprint_siginfo): Likewise.
+---
+ printsiginfo.c                 |  5 ++---
+ tests/clone_ptrace.c           |  2 +-
+ tests/orphaned_process_group.c |  2 +-
+ tests/pidfd_send_signal.c      |  2 +-
+ tests/ptrace.c                 | 12 ++++++------
+ tests/rt_sigqueueinfo.c        |  2 +-
+ tests/rt_tgsigqueueinfo.c      |  4 ++--
+ tests/siginfo.c                | 10 +++++-----
+ tests/waitid.c                 |  4 ++--
+ 9 files changed, 21 insertions(+), 22 deletions(-)
+
+Index: strace-5.7/printsiginfo.c
+===================================================================
+--- strace-5.7.orig/printsiginfo.c	2020-09-09 14:50:44.013739305 +0200
++++ strace-5.7/printsiginfo.c	2020-09-09 14:58:30.753017503 +0200
+@@ -58,9 +58,8 @@
+ static void
+ printsigsource(const siginfo_t *sip)
+ {
+-	tprintf(", si_pid=%u, si_uid=%u",
+-		(unsigned int) sip->si_pid,
+-		(unsigned int) sip->si_uid);
++	PRINT_FIELD_D(", ", *sip, si_pid);
++	PRINT_FIELD_UID(", ", *sip, si_uid);
+ }
+ 
+ static void
+Index: strace-5.7/tests/clone_ptrace.c
+===================================================================
+--- strace-5.7.orig/tests/clone_ptrace.c	2020-09-09 14:50:44.013739305 +0200
++++ strace-5.7/tests/clone_ptrace.c	2020-09-09 14:58:30.754017504 +0200
+@@ -96,7 +96,7 @@
+ 		error_msg_and_fail("unexpected child exit status %d", status);
+ 
+ 	printf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_KILLED, si_pid=%d"
+-	       ", si_uid=%u, si_status=%s, si_utime=%u, si_stime=%u} ---\n"
++	       ", si_uid=%d, si_status=%s, si_utime=%u, si_stime=%u} ---\n"
+ #if !QUIET_EXIT
+ 	       "+++ exited with 0 +++\n"
+ #endif
+Index: strace-5.7/tests/orphaned_process_group.c
+===================================================================
+--- strace-5.7.orig/tests/orphaned_process_group.c	2020-09-09 14:50:44.013739305 +0200
++++ strace-5.7/tests/orphaned_process_group.c	2020-09-09 14:58:30.754017504 +0200
+@@ -139,7 +139,7 @@
+ 	 */
+ 	leader = getpid();
+ 	printf("%-5d --- %s {si_signo=%s, si_code=SI_TKILL"
+-	       ", si_pid=%d, si_uid=%u} ---\n",
++	       ", si_pid=%d, si_uid=%d} ---\n",
+ 	       stopped, "SIGSTOP", "SIGSTOP", stopped, geteuid());
+ 	printf("%-5d --- stopped by SIGSTOP ---\n", stopped);
+ 	printf("%-5d +++ exited with 0 +++\n", leader);
+Index: strace-5.7/tests/pidfd_send_signal.c
+===================================================================
+--- strace-5.7.orig/tests/pidfd_send_signal.c	2020-09-09 14:50:44.013739305 +0200
++++ strace-5.7/tests/pidfd_send_signal.c	2020-09-09 14:58:30.754017504 +0200
+@@ -54,7 +54,7 @@
+ 
+ 	sys_pidfd_send_signal(fd, SIGUSR2, si, -1);
+ 	printf("pidfd_send_signal(%d, SIGUSR2, {si_signo=SIGUSR1"
+-	       ", si_code=SI_QUEUE, si_errno=%u, si_pid=%u, si_uid=%u"
++	       ", si_code=SI_QUEUE, si_errno=%u, si_pid=%d, si_uid=%d"
+ 	       ", si_value={int=%d, ptr=%p}}, %#x) = %s\n",
+ 	       fd, si->si_errno, si->si_pid, si->si_uid, si->si_int, si->si_ptr,
+ 	       -1U, errstr);
+Index: strace-5.7/tests/ptrace.c
+===================================================================
+--- strace-5.7.orig/tests/ptrace.c	2020-09-09 14:50:44.013739305 +0200
++++ strace-5.7/tests/ptrace.c	2020-09-09 14:58:30.754017504 +0200
+@@ -127,16 +127,16 @@
+ 			printf("ptrace(PTRACE_PEEKSIGINFO, %u"
+ 			       ", {off=%llu, flags=0, nr=%u}"
+ 			       ", [{si_signo=SIGUSR1, si_code=SI_TKILL"
+-			       ", si_pid=%u, si_uid=%u}"
++			       ", si_pid=%d, si_uid=%d}"
+ 			       ", {si_signo=SIGUSR2, si_code=SI_TKILL"
+-			       ", si_pid=%u, si_uid=%u}"
++			       ", si_pid=%d, si_uid=%d}"
+ 			       ", {si_signo=SIGALRM, si_code=SI_TKILL"
+-			       ", si_pid=%u, si_uid=%u}"
++			       ", si_pid=%d, si_uid=%d}"
+ 			       "]) = %s\n",
+ 			       (unsigned) pid, psi->off, psi->nr,
+-			       (unsigned) pid, (unsigned) uid,
+-			       (unsigned) pid, (unsigned) uid,
+-			       (unsigned) pid, (unsigned) uid,
++			       (int) pid, (int) uid,
++			       (int) pid, (int) uid,
++			       (int) pid, (int) uid,
+ 			       errstr);
+ 		}
+ 
+Index: strace-5.7/tests/rt_sigqueueinfo.c
+===================================================================
+--- strace-5.7.orig/tests/rt_sigqueueinfo.c	2020-09-09 14:50:44.013739305 +0200
++++ strace-5.7/tests/rt_sigqueueinfo.c	2020-09-09 14:58:30.754017504 +0200
+@@ -27,7 +27,7 @@
+ 	if (sigqueue(pid, SIGUSR1, value))
+ 		perror_msg_and_skip("sigqueue");
+ 	printf("rt_sigqueueinfo(%u, SIGUSR1, {si_signo=SIGUSR1, "
+-		"si_code=SI_QUEUE, si_pid=%u, si_uid=%u, "
++		"si_code=SI_QUEUE, si_pid=%d, si_uid=%d, "
+ 		"si_value={int=%d, ptr=%p}}) = 0\n",
+ 		pid, pid, getuid(), value.sival_int, value.sival_ptr);
+ 	printf("+++ exited with 0 +++\n");
+Index: strace-5.7/tests/rt_tgsigqueueinfo.c
+===================================================================
+--- strace-5.7.orig/tests/rt_tgsigqueueinfo.c	2020-09-09 14:50:44.013739305 +0200
++++ strace-5.7/tests/rt_tgsigqueueinfo.c	2020-09-09 14:58:30.755017504 +0200
+@@ -53,8 +53,8 @@
+ 			"rt_tgsigqueueinfo");
+ 
+ 	printf("rt_tgsigqueueinfo(%u, %u, %s, {si_signo=%s"
+-		", si_code=SI_QUEUE, si_errno=ENOENT, si_pid=%u"
+-		", si_uid=%u, si_value={int=%d, ptr=%p}}) = 0\n",
++		", si_code=SI_QUEUE, si_errno=ENOENT, si_pid=%d"
++		", si_uid=%d, si_value={int=%d, ptr=%p}}) = 0\n",
+ 		info->si_pid, info->si_pid, "SIGUSR1", "SIGUSR1",
+ 		info->si_pid, info->si_uid, info->si_value.sival_int,
+ 		info->si_value.sival_ptr);
+Index: strace-5.7/tests/siginfo.c
+===================================================================
+--- strace-5.7.orig/tests/siginfo.c	2020-09-09 14:50:44.013739305 +0200
++++ strace-5.7/tests/siginfo.c	2020-09-09 14:58:30.755017504 +0200
+@@ -63,7 +63,7 @@
+ 
+ 	sigsuspend(&unblock_mask);
+ 	tprintf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED"
+-		", si_pid=%d, si_uid=%u, si_status=%d"
++		", si_pid=%d, si_uid=%d, si_status=%d"
+ 		", si_utime=%llu, si_stime=%llu} ---\n",
+ 		sinfo.si_pid, sinfo.si_uid, sinfo.si_status,
+ 		zero_extend_signed_to_ull(sinfo.si_utime),
+@@ -94,7 +94,7 @@
+ 
+ 	sigsuspend(&unblock_mask);
+ 	tprintf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_KILLED"
+-		", si_pid=%d, si_uid=%u, si_status=SIGUSR1"
++		", si_pid=%d, si_uid=%d, si_status=SIGUSR1"
+ 		", si_utime=%llu, si_stime=%llu} ---\n",
+ 		sinfo.si_pid, sinfo.si_uid,
+ 		zero_extend_signed_to_ull(sinfo.si_utime),
+@@ -121,7 +121,7 @@
+ 
+ 	sigsuspend(&unblock_mask);
+ 	tprintf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_STOPPED"
+-		", si_pid=%d, si_uid=%u, si_status=SIGSTOP"
++		", si_pid=%d, si_uid=%d, si_status=SIGSTOP"
+ 		", si_utime=%llu, si_stime=%llu} ---\n",
+ 		sinfo.si_pid, sinfo.si_uid,
+ 		zero_extend_signed_to_ull(sinfo.si_utime),
+@@ -131,7 +131,7 @@
+ 
+ 	sigsuspend(&unblock_mask);
+ 	tprintf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_CONTINUED"
+-		", si_pid=%d, si_uid=%u, si_status=SIGCONT"
++		", si_pid=%d, si_uid=%d, si_status=SIGCONT"
+ 		", si_utime=%llu, si_stime=%llu} ---\n",
+ 		sinfo.si_pid, sinfo.si_uid,
+ 		zero_extend_signed_to_ull(sinfo.si_utime),
+@@ -142,7 +142,7 @@
+ 
+ 	sigsuspend(&unblock_mask);
+ 	tprintf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED"
+-		", si_pid=%d, si_uid=%u, si_status=0"
++		", si_pid=%d, si_uid=%d, si_status=0"
+ 		", si_utime=%llu, si_stime=%llu} ---\n",
+ 		sinfo.si_pid, sinfo.si_uid,
+ 		zero_extend_signed_to_ull(sinfo.si_utime),
+Index: strace-5.7/tests/waitid.c
+===================================================================
+--- strace-5.7.orig/tests/waitid.c	2020-09-09 14:50:44.013739305 +0200
++++ strace-5.7/tests/waitid.c	2020-09-09 14:58:30.755017504 +0200
+@@ -103,8 +103,8 @@
+ 	snprintf(buf, sizeof(buf),
+ 		 "{si_signo=SIGCHLD"
+ 		 ", si_code=%s"
+-		 ", si_pid=%u"
+-		 ", si_uid=%u"
++		 ", si_pid=%d"
++		 ", si_uid=%d"
+ 		 ", si_status=%s"
+ 		 ", si_utime=%llu"
+ 		 ", si_stime=%llu}",
+Index: strace-5.7/tests-m32/clone_ptrace.c
+===================================================================
+--- strace-5.7.orig/tests-m32/clone_ptrace.c	2020-04-04 00:58:26.000000000 +0200
++++ strace-5.7/tests-m32/clone_ptrace.c	2020-09-09 14:59:06.931039067 +0200
+@@ -96,7 +96,7 @@
+ 		error_msg_and_fail("unexpected child exit status %d", status);
+ 
+ 	printf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_KILLED, si_pid=%d"
+-	       ", si_uid=%u, si_status=%s, si_utime=%u, si_stime=%u} ---\n"
++	       ", si_uid=%d, si_status=%s, si_utime=%u, si_stime=%u} ---\n"
+ #if !QUIET_EXIT
+ 	       "+++ exited with 0 +++\n"
+ #endif
+Index: strace-5.7/tests-m32/orphaned_process_group.c
+===================================================================
+--- strace-5.7.orig/tests-m32/orphaned_process_group.c	2019-03-06 17:02:38.000000000 +0100
++++ strace-5.7/tests-m32/orphaned_process_group.c	2020-09-09 14:59:07.012039115 +0200
+@@ -139,7 +139,7 @@
+ 	 */
+ 	leader = getpid();
+ 	printf("%-5d --- %s {si_signo=%s, si_code=SI_TKILL"
+-	       ", si_pid=%d, si_uid=%u} ---\n",
++	       ", si_pid=%d, si_uid=%d} ---\n",
+ 	       stopped, "SIGSTOP", "SIGSTOP", stopped, geteuid());
+ 	printf("%-5d --- stopped by SIGSTOP ---\n", stopped);
+ 	printf("%-5d +++ exited with 0 +++\n", leader);
+Index: strace-5.7/tests-m32/pidfd_send_signal.c
+===================================================================
+--- strace-5.7.orig/tests-m32/pidfd_send_signal.c	2019-08-14 13:22:32.000000000 +0200
++++ strace-5.7/tests-m32/pidfd_send_signal.c	2020-09-09 14:59:07.077039154 +0200
+@@ -54,7 +54,7 @@
+ 
+ 	sys_pidfd_send_signal(fd, SIGUSR2, si, -1);
+ 	printf("pidfd_send_signal(%d, SIGUSR2, {si_signo=SIGUSR1"
+-	       ", si_code=SI_QUEUE, si_errno=%u, si_pid=%u, si_uid=%u"
++	       ", si_code=SI_QUEUE, si_errno=%u, si_pid=%d, si_uid=%d"
+ 	       ", si_value={int=%d, ptr=%p}}, %#x) = %s\n",
+ 	       fd, si->si_errno, si->si_pid, si->si_uid, si->si_int, si->si_ptr,
+ 	       -1U, errstr);
+Index: strace-5.7/tests-m32/ptrace.c
+===================================================================
+--- strace-5.7.orig/tests-m32/ptrace.c	2019-09-25 03:02:03.000000000 +0200
++++ strace-5.7/tests-m32/ptrace.c	2020-09-09 14:59:07.142039193 +0200
+@@ -127,16 +127,16 @@
+ 			printf("ptrace(PTRACE_PEEKSIGINFO, %u"
+ 			       ", {off=%llu, flags=0, nr=%u}"
+ 			       ", [{si_signo=SIGUSR1, si_code=SI_TKILL"
+-			       ", si_pid=%u, si_uid=%u}"
++			       ", si_pid=%d, si_uid=%d}"
+ 			       ", {si_signo=SIGUSR2, si_code=SI_TKILL"
+-			       ", si_pid=%u, si_uid=%u}"
++			       ", si_pid=%d, si_uid=%d}"
+ 			       ", {si_signo=SIGALRM, si_code=SI_TKILL"
+-			       ", si_pid=%u, si_uid=%u}"
++			       ", si_pid=%d, si_uid=%d}"
+ 			       "]) = %s\n",
+ 			       (unsigned) pid, psi->off, psi->nr,
+-			       (unsigned) pid, (unsigned) uid,
+-			       (unsigned) pid, (unsigned) uid,
+-			       (unsigned) pid, (unsigned) uid,
++			       (int) pid, (int) uid,
++			       (int) pid, (int) uid,
++			       (int) pid, (int) uid,
+ 			       errstr);
+ 		}
+ 
+Index: strace-5.7/tests-m32/rt_sigqueueinfo.c
+===================================================================
+--- strace-5.7.orig/tests-m32/rt_sigqueueinfo.c	2018-12-25 00:46:43.000000000 +0100
++++ strace-5.7/tests-m32/rt_sigqueueinfo.c	2020-09-09 14:59:07.204039230 +0200
+@@ -27,7 +27,7 @@
+ 	if (sigqueue(pid, SIGUSR1, value))
+ 		perror_msg_and_skip("sigqueue");
+ 	printf("rt_sigqueueinfo(%u, SIGUSR1, {si_signo=SIGUSR1, "
+-		"si_code=SI_QUEUE, si_pid=%u, si_uid=%u, "
++		"si_code=SI_QUEUE, si_pid=%d, si_uid=%d, "
+ 		"si_value={int=%d, ptr=%p}}) = 0\n",
+ 		pid, pid, getuid(), value.sival_int, value.sival_ptr);
+ 	printf("+++ exited with 0 +++\n");
+Index: strace-5.7/tests-m32/rt_tgsigqueueinfo.c
+===================================================================
+--- strace-5.7.orig/tests-m32/rt_tgsigqueueinfo.c	2019-09-25 03:02:03.000000000 +0200
++++ strace-5.7/tests-m32/rt_tgsigqueueinfo.c	2020-09-09 14:59:07.258039262 +0200
+@@ -53,8 +53,8 @@
+ 			"rt_tgsigqueueinfo");
+ 
+ 	printf("rt_tgsigqueueinfo(%u, %u, %s, {si_signo=%s"
+-		", si_code=SI_QUEUE, si_errno=ENOENT, si_pid=%u"
+-		", si_uid=%u, si_value={int=%d, ptr=%p}}) = 0\n",
++		", si_code=SI_QUEUE, si_errno=ENOENT, si_pid=%d"
++		", si_uid=%d, si_value={int=%d, ptr=%p}}) = 0\n",
+ 		info->si_pid, info->si_pid, "SIGUSR1", "SIGUSR1",
+ 		info->si_pid, info->si_uid, info->si_value.sival_int,
+ 		info->si_value.sival_ptr);
+Index: strace-5.7/tests-m32/siginfo.c
+===================================================================
+--- strace-5.7.orig/tests-m32/siginfo.c	2018-12-25 00:46:43.000000000 +0100
++++ strace-5.7/tests-m32/siginfo.c	2020-09-09 14:59:07.311039293 +0200
+@@ -63,7 +63,7 @@
+ 
+ 	sigsuspend(&unblock_mask);
+ 	tprintf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED"
+-		", si_pid=%d, si_uid=%u, si_status=%d"
++		", si_pid=%d, si_uid=%d, si_status=%d"
+ 		", si_utime=%llu, si_stime=%llu} ---\n",
+ 		sinfo.si_pid, sinfo.si_uid, sinfo.si_status,
+ 		zero_extend_signed_to_ull(sinfo.si_utime),
+@@ -94,7 +94,7 @@
+ 
+ 	sigsuspend(&unblock_mask);
+ 	tprintf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_KILLED"
+-		", si_pid=%d, si_uid=%u, si_status=SIGUSR1"
++		", si_pid=%d, si_uid=%d, si_status=SIGUSR1"
+ 		", si_utime=%llu, si_stime=%llu} ---\n",
+ 		sinfo.si_pid, sinfo.si_uid,
+ 		zero_extend_signed_to_ull(sinfo.si_utime),
+@@ -121,7 +121,7 @@
+ 
+ 	sigsuspend(&unblock_mask);
+ 	tprintf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_STOPPED"
+-		", si_pid=%d, si_uid=%u, si_status=SIGSTOP"
++		", si_pid=%d, si_uid=%d, si_status=SIGSTOP"
+ 		", si_utime=%llu, si_stime=%llu} ---\n",
+ 		sinfo.si_pid, sinfo.si_uid,
+ 		zero_extend_signed_to_ull(sinfo.si_utime),
+@@ -131,7 +131,7 @@
+ 
+ 	sigsuspend(&unblock_mask);
+ 	tprintf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_CONTINUED"
+-		", si_pid=%d, si_uid=%u, si_status=SIGCONT"
++		", si_pid=%d, si_uid=%d, si_status=SIGCONT"
+ 		", si_utime=%llu, si_stime=%llu} ---\n",
+ 		sinfo.si_pid, sinfo.si_uid,
+ 		zero_extend_signed_to_ull(sinfo.si_utime),
+@@ -142,7 +142,7 @@
+ 
+ 	sigsuspend(&unblock_mask);
+ 	tprintf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED"
+-		", si_pid=%d, si_uid=%u, si_status=0"
++		", si_pid=%d, si_uid=%d, si_status=0"
+ 		", si_utime=%llu, si_stime=%llu} ---\n",
+ 		sinfo.si_pid, sinfo.si_uid,
+ 		zero_extend_signed_to_ull(sinfo.si_utime),
+Index: strace-5.7/tests-m32/waitid.c
+===================================================================
+--- strace-5.7.orig/tests-m32/waitid.c	2020-04-19 03:22:29.000000000 +0200
++++ strace-5.7/tests-m32/waitid.c	2020-09-09 14:59:07.371039329 +0200
+@@ -103,8 +103,8 @@
+ 	snprintf(buf, sizeof(buf),
+ 		 "{si_signo=SIGCHLD"
+ 		 ", si_code=%s"
+-		 ", si_pid=%u"
+-		 ", si_uid=%u"
++		 ", si_pid=%d"
++		 ", si_uid=%d"
+ 		 ", si_status=%s"
+ 		 ", si_utime=%llu"
+ 		 ", si_stime=%llu}",
+Index: strace-5.7/tests-mx32/clone_ptrace.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/clone_ptrace.c	2020-04-04 00:58:26.000000000 +0200
++++ strace-5.7/tests-mx32/clone_ptrace.c	2020-09-09 14:59:06.978039095 +0200
+@@ -96,7 +96,7 @@
+ 		error_msg_and_fail("unexpected child exit status %d", status);
+ 
+ 	printf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_KILLED, si_pid=%d"
+-	       ", si_uid=%u, si_status=%s, si_utime=%u, si_stime=%u} ---\n"
++	       ", si_uid=%d, si_status=%s, si_utime=%u, si_stime=%u} ---\n"
+ #if !QUIET_EXIT
+ 	       "+++ exited with 0 +++\n"
+ #endif
+Index: strace-5.7/tests-mx32/orphaned_process_group.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/orphaned_process_group.c	2019-03-06 17:02:38.000000000 +0100
++++ strace-5.7/tests-mx32/orphaned_process_group.c	2020-09-09 14:59:07.046039135 +0200
+@@ -139,7 +139,7 @@
+ 	 */
+ 	leader = getpid();
+ 	printf("%-5d --- %s {si_signo=%s, si_code=SI_TKILL"
+-	       ", si_pid=%d, si_uid=%u} ---\n",
++	       ", si_pid=%d, si_uid=%d} ---\n",
+ 	       stopped, "SIGSTOP", "SIGSTOP", stopped, geteuid());
+ 	printf("%-5d --- stopped by SIGSTOP ---\n", stopped);
+ 	printf("%-5d +++ exited with 0 +++\n", leader);
+Index: strace-5.7/tests-mx32/pidfd_send_signal.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/pidfd_send_signal.c	2019-08-14 13:22:32.000000000 +0200
++++ strace-5.7/tests-mx32/pidfd_send_signal.c	2020-09-09 14:59:07.110039174 +0200
+@@ -54,7 +54,7 @@
+ 
+ 	sys_pidfd_send_signal(fd, SIGUSR2, si, -1);
+ 	printf("pidfd_send_signal(%d, SIGUSR2, {si_signo=SIGUSR1"
+-	       ", si_code=SI_QUEUE, si_errno=%u, si_pid=%u, si_uid=%u"
++	       ", si_code=SI_QUEUE, si_errno=%u, si_pid=%d, si_uid=%d"
+ 	       ", si_value={int=%d, ptr=%p}}, %#x) = %s\n",
+ 	       fd, si->si_errno, si->si_pid, si->si_uid, si->si_int, si->si_ptr,
+ 	       -1U, errstr);
+Index: strace-5.7/tests-mx32/ptrace.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/ptrace.c	2019-09-25 03:02:03.000000000 +0200
++++ strace-5.7/tests-mx32/ptrace.c	2020-09-09 14:59:07.174039212 +0200
+@@ -127,16 +127,16 @@
+ 			printf("ptrace(PTRACE_PEEKSIGINFO, %u"
+ 			       ", {off=%llu, flags=0, nr=%u}"
+ 			       ", [{si_signo=SIGUSR1, si_code=SI_TKILL"
+-			       ", si_pid=%u, si_uid=%u}"
++			       ", si_pid=%d, si_uid=%d}"
+ 			       ", {si_signo=SIGUSR2, si_code=SI_TKILL"
+-			       ", si_pid=%u, si_uid=%u}"
++			       ", si_pid=%d, si_uid=%d}"
+ 			       ", {si_signo=SIGALRM, si_code=SI_TKILL"
+-			       ", si_pid=%u, si_uid=%u}"
++			       ", si_pid=%d, si_uid=%d}"
+ 			       "]) = %s\n",
+ 			       (unsigned) pid, psi->off, psi->nr,
+-			       (unsigned) pid, (unsigned) uid,
+-			       (unsigned) pid, (unsigned) uid,
+-			       (unsigned) pid, (unsigned) uid,
++			       (int) pid, (int) uid,
++			       (int) pid, (int) uid,
++			       (int) pid, (int) uid,
+ 			       errstr);
+ 		}
+ 
+Index: strace-5.7/tests-mx32/rt_sigqueueinfo.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/rt_sigqueueinfo.c	2018-12-25 00:46:43.000000000 +0100
++++ strace-5.7/tests-mx32/rt_sigqueueinfo.c	2020-09-09 14:59:07.232039246 +0200
+@@ -27,7 +27,7 @@
+ 	if (sigqueue(pid, SIGUSR1, value))
+ 		perror_msg_and_skip("sigqueue");
+ 	printf("rt_sigqueueinfo(%u, SIGUSR1, {si_signo=SIGUSR1, "
+-		"si_code=SI_QUEUE, si_pid=%u, si_uid=%u, "
++		"si_code=SI_QUEUE, si_pid=%d, si_uid=%d, "
+ 		"si_value={int=%d, ptr=%p}}) = 0\n",
+ 		pid, pid, getuid(), value.sival_int, value.sival_ptr);
+ 	printf("+++ exited with 0 +++\n");
+Index: strace-5.7/tests-mx32/rt_tgsigqueueinfo.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/rt_tgsigqueueinfo.c	2019-09-25 03:02:03.000000000 +0200
++++ strace-5.7/tests-mx32/rt_tgsigqueueinfo.c	2020-09-09 14:59:07.284039277 +0200
+@@ -53,8 +53,8 @@
+ 			"rt_tgsigqueueinfo");
+ 
+ 	printf("rt_tgsigqueueinfo(%u, %u, %s, {si_signo=%s"
+-		", si_code=SI_QUEUE, si_errno=ENOENT, si_pid=%u"
+-		", si_uid=%u, si_value={int=%d, ptr=%p}}) = 0\n",
++		", si_code=SI_QUEUE, si_errno=ENOENT, si_pid=%d"
++		", si_uid=%d, si_value={int=%d, ptr=%p}}) = 0\n",
+ 		info->si_pid, info->si_pid, "SIGUSR1", "SIGUSR1",
+ 		info->si_pid, info->si_uid, info->si_value.sival_int,
+ 		info->si_value.sival_ptr);
+Index: strace-5.7/tests-mx32/siginfo.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/siginfo.c	2018-12-25 00:46:43.000000000 +0100
++++ strace-5.7/tests-mx32/siginfo.c	2020-09-09 14:59:07.338039310 +0200
+@@ -63,7 +63,7 @@
+ 
+ 	sigsuspend(&unblock_mask);
+ 	tprintf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED"
+-		", si_pid=%d, si_uid=%u, si_status=%d"
++		", si_pid=%d, si_uid=%d, si_status=%d"
+ 		", si_utime=%llu, si_stime=%llu} ---\n",
+ 		sinfo.si_pid, sinfo.si_uid, sinfo.si_status,
+ 		zero_extend_signed_to_ull(sinfo.si_utime),
+@@ -94,7 +94,7 @@
+ 
+ 	sigsuspend(&unblock_mask);
+ 	tprintf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_KILLED"
+-		", si_pid=%d, si_uid=%u, si_status=SIGUSR1"
++		", si_pid=%d, si_uid=%d, si_status=SIGUSR1"
+ 		", si_utime=%llu, si_stime=%llu} ---\n",
+ 		sinfo.si_pid, sinfo.si_uid,
+ 		zero_extend_signed_to_ull(sinfo.si_utime),
+@@ -121,7 +121,7 @@
+ 
+ 	sigsuspend(&unblock_mask);
+ 	tprintf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_STOPPED"
+-		", si_pid=%d, si_uid=%u, si_status=SIGSTOP"
++		", si_pid=%d, si_uid=%d, si_status=SIGSTOP"
+ 		", si_utime=%llu, si_stime=%llu} ---\n",
+ 		sinfo.si_pid, sinfo.si_uid,
+ 		zero_extend_signed_to_ull(sinfo.si_utime),
+@@ -131,7 +131,7 @@
+ 
+ 	sigsuspend(&unblock_mask);
+ 	tprintf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_CONTINUED"
+-		", si_pid=%d, si_uid=%u, si_status=SIGCONT"
++		", si_pid=%d, si_uid=%d, si_status=SIGCONT"
+ 		", si_utime=%llu, si_stime=%llu} ---\n",
+ 		sinfo.si_pid, sinfo.si_uid,
+ 		zero_extend_signed_to_ull(sinfo.si_utime),
+@@ -142,7 +142,7 @@
+ 
+ 	sigsuspend(&unblock_mask);
+ 	tprintf("--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED"
+-		", si_pid=%d, si_uid=%u, si_status=0"
++		", si_pid=%d, si_uid=%d, si_status=0"
+ 		", si_utime=%llu, si_stime=%llu} ---\n",
+ 		sinfo.si_pid, sinfo.si_uid,
+ 		zero_extend_signed_to_ull(sinfo.si_utime),
+Index: strace-5.7/tests-mx32/waitid.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/waitid.c	2020-04-19 03:22:29.000000000 +0200
++++ strace-5.7/tests-mx32/waitid.c	2020-09-09 14:59:07.398039345 +0200
+@@ -103,8 +103,8 @@
+ 	snprintf(buf, sizeof(buf),
+ 		 "{si_signo=SIGCHLD"
+ 		 ", si_code=%s"
+-		 ", si_pid=%u"
+-		 ", si_uid=%u"
++		 ", si_pid=%d"
++		 ", si_uid=%d"
+ 		 ", si_status=%s"
+ 		 ", si_utime=%llu"
+ 		 ", si_stime=%llu}",
diff --git a/SOURCES/0126-Use-PRINT_FIELD_UID-instead-of-printuid-where-approp.patch b/SOURCES/0126-Use-PRINT_FIELD_UID-instead-of-printuid-where-approp.patch
new file mode 100644
index 0000000..16d23fd
--- /dev/null
+++ b/SOURCES/0126-Use-PRINT_FIELD_UID-instead-of-printuid-where-approp.patch
@@ -0,0 +1,105 @@
+From 64d04198d3c64756ae8a51646b6eac3dff419cb6 Mon Sep 17 00:00:00 2001
+From: "Dmitry V. Levin" <ldv@altlinux.org>
+Date: Fri, 17 Jul 2020 08:00:00 +0000
+Subject: [PATCH 126/138] Use PRINT_FIELD_UID instead of printuid where
+ appropriate
+
+* ipc_msgctl.c: Include "print_fields.h".
+(print_msqid_ds): Use PRINT_FIELD_UID instead of printuid.
+* ipc_shmctl.c: Include "print_fields.h".
+(print_shmid_ds): Use PRINT_FIELD_UID instead of printuid.
+* statx.c (SYS_FUNC(statx)): Use PRINT_FIELD_UID instead of printuid.
+---
+ ipc_msgctl.c | 10 +++++-----
+ ipc_shmctl.c | 10 +++++-----
+ statx.c      |  4 ++--
+ 3 files changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/ipc_msgctl.c b/ipc_msgctl.c
+index 92eda11..920ed72 100644
+--- a/ipc_msgctl.c
++++ b/ipc_msgctl.c
+@@ -22,6 +22,7 @@ typedef struct NAME_OF_STRUCT_MSQID_DS msqid_ds_t;
+ 
+ #include MPERS_DEFS
+ 
++#include "print_fields.h"
+ #include "xlat/msgctl_flags.h"
+ 
+ static void
+@@ -37,9 +38,8 @@ print_msqid_ds(struct tcb *const tcp, const kernel_ulong_t addr, int cmd)
+ 		if (umove_or_printaddr(tcp, addr, &msqid_ds))
+ 			return;
+ 
+-		tprints("{msg_perm={");
+-		printuid("uid=", msqid_ds.msg_perm.uid);
+-		printuid(", gid=", msqid_ds.msg_perm.gid);
++		PRINT_FIELD_UID("{msg_perm={", msqid_ds.msg_perm, uid);
++		PRINT_FIELD_UID(", ", msqid_ds.msg_perm, gid);
+ 		tprints(", mode=");
+ 		print_numeric_umode_t(msqid_ds.msg_perm.mode);
+ 
+@@ -50,8 +50,8 @@ print_msqid_ds(struct tcb *const tcp, const kernel_ulong_t addr, int cmd)
+ 
+ 		tprintf(", key=%u",
+ 			(unsigned) msqid_ds.msg_perm.NAME_OF_STRUCT_IPC_PERM_KEY);
+-		printuid(", cuid=", msqid_ds.msg_perm.cuid);
+-		printuid(", cgid=", msqid_ds.msg_perm.cgid);
++		PRINT_FIELD_UID(", ", msqid_ds.msg_perm, cuid);
++		PRINT_FIELD_UID(", ", msqid_ds.msg_perm, cgid);
+ 		tprints("}");
+ 		tprintf(", msg_stime=%u", (unsigned) msqid_ds.msg_stime);
+ 		tprintf(", msg_rtime=%u", (unsigned) msqid_ds.msg_rtime);
+diff --git a/ipc_shmctl.c b/ipc_shmctl.c
+index 0fb584e..83e36f3 100644
+--- a/ipc_shmctl.c
++++ b/ipc_shmctl.c
+@@ -22,6 +22,7 @@ typedef struct NAME_OF_STRUCT_SHMID_DS shmid_ds_t;
+ 
+ #include MPERS_DEFS
+ 
++#include "print_fields.h"
+ #include "xlat/shmctl_flags.h"
+ 
+ static void
+@@ -37,9 +38,8 @@ print_shmid_ds(struct tcb *const tcp, const kernel_ulong_t addr, int cmd)
+ 		if (umove_or_printaddr(tcp, addr, &shmid_ds))
+ 			return;
+ 
+-		tprints("{shm_perm={");
+-		printuid("uid=", shmid_ds.shm_perm.uid);
+-		printuid(", gid=", shmid_ds.shm_perm.gid);
++		PRINT_FIELD_UID("{shm_perm={", shmid_ds.shm_perm, uid);
++		PRINT_FIELD_UID(", ", shmid_ds.shm_perm, gid);
+ 		tprints(", mode=");
+ 		print_numeric_umode_t(shmid_ds.shm_perm.mode);
+ 
+@@ -50,8 +50,8 @@ print_shmid_ds(struct tcb *const tcp, const kernel_ulong_t addr, int cmd)
+ 
+ 		tprintf(", key=%u",
+ 			(unsigned) shmid_ds.shm_perm.NAME_OF_STRUCT_IPC_PERM_KEY);
+-		printuid(", cuid=", shmid_ds.shm_perm.cuid);
+-		printuid(", cgid=", shmid_ds.shm_perm.cgid);
++		PRINT_FIELD_UID(", ", shmid_ds.shm_perm, cuid);
++		PRINT_FIELD_UID(", ", shmid_ds.shm_perm, cgid);
+ 		tprints("}");
+ 		tprintf(", shm_segsz=%u", (unsigned) shmid_ds.shm_segsz);
+ 		tprintf(", shm_cpid=%u", (unsigned) shmid_ds.shm_cpid);
+diff --git a/statx.c b/statx.c
+index 54b6d7c..7b00b8e 100644
+--- a/statx.c
++++ b/statx.c
+@@ -60,8 +60,8 @@ SYS_FUNC(statx)
+ 
+ 		if (!abbrev(tcp)) {
+ 			PRINT_FIELD_U(", ", stx, stx_nlink);
+-			printuid(", stx_uid=", stx.stx_uid);
+-			printuid(", stx_gid=", stx.stx_gid);
++			PRINT_FIELD_UID(", ", stx, stx_uid);
++			PRINT_FIELD_UID(", ", stx, stx_gid);
+ 		}
+ 
+ 		tprints(", stx_mode=");
+-- 
+2.1.4
+
diff --git a/SOURCES/0127-Consistently-print-process-ids-as-signed-integers.patch b/SOURCES/0127-Consistently-print-process-ids-as-signed-integers.patch
new file mode 100644
index 0000000..c93332f
--- /dev/null
+++ b/SOURCES/0127-Consistently-print-process-ids-as-signed-integers.patch
@@ -0,0 +1,525 @@
+From edf6f95bd19f5ce7ac0ef62f923cd17fb6052f51 Mon Sep 17 00:00:00 2001
+From: "Dmitry V. Levin" <ldv@altlinux.org>
+Date: Sat, 18 Jul 2020 08:00:00 +0000
+Subject: [PATCH 127/138] Consistently print process ids as signed integers
+
+* block.c (block_ioctl): Print struct_blk_user_trace_setup.pid using
+PRINT_FIELD_D instead of PRINT_FIELD_U.
+* bpf.c (BPF_TASK_FD_QUERY): Print task_fd_query.pid using PRINT_FIELD_D
+instead of PRINT_FIELD_U.
+* ipc_msgctl.c (print_msqid_ds): Print msqid_ds.msg_lspid
+and msqid_ds.msg_lrpid using PRINT_FIELD_D.
+* ipc_shmctl.c (print_shmid_ds): Print shmid_ds.shm_cpid and shm_lpid
+using PRINT_FIELD_D.
+* msghdr.c (print_scm_creds): Print ucred.pid using PRINT_FIELD_D
+instead of PRINT_FIELD_U.
+* netlink.c (print_nlmsghdr): Print nlmsghdr.nlmsg_pid using %d format
+instead of %u.
+* tests/bpf.c (BPF_TASK_FD_QUERY_checks): Update expected output.
+* tests/ioctl_block.c (main): Update expected output.
+* tests/ipc_msg.c (main): Likewise.
+* tests/ipc_shm.c (main): Likewise.
+* tests/net-yy-netlink.c (main): Likewise.
+* tests/netlink_protocol.c (test_nlmsgerr): Likewise.
+---
+ block.c                  | 2 +-
+ bpf.c                    | 2 +-
+ ipc_msgctl.c             | 4 ++--
+ ipc_shmctl.c             | 4 ++--
+ msghdr.c                 | 2 +-
+ netlink.c                | 2 +-
+ tests/bpf.c              | 8 ++++----
+ tests/ioctl_block.c      | 2 +-
+ tests/ipc_msg.c          | 6 +++---
+ tests/ipc_shm.c          | 8 ++++----
+ tests/net-yy-netlink.c   | 4 ++--
+ tests/netlink_protocol.c | 4 ++--
+ 12 files changed, 24 insertions(+), 24 deletions(-)
+
+Index: strace-5.7/block.c
+===================================================================
+--- strace-5.7.orig/block.c	2020-09-09 14:50:43.878739225 +0200
++++ strace-5.7/block.c	2020-09-09 14:59:14.715043707 +0200
+@@ -179,7 +179,7 @@
+ 			PRINT_FIELD_U(", ", buts, buf_nr);
+ 			PRINT_FIELD_U(", ", buts, start_lba);
+ 			PRINT_FIELD_U(", ", buts, end_lba);
+-			PRINT_FIELD_U(", ", buts, pid);
++			PRINT_FIELD_D(", ", buts, pid);
+ 			return 0;
+ 		} else {
+ 			struct_blk_user_trace_setup buts;
+Index: strace-5.7/bpf.c
+===================================================================
+--- strace-5.7.orig/bpf.c	2020-09-09 14:50:43.878739225 +0200
++++ strace-5.7/bpf.c	2020-09-09 14:59:14.715043707 +0200
+@@ -927,7 +927,7 @@
+ 	if (entering(tcp)) {
+ 		set_tcb_priv_ulong(tcp, attr.buf_len);
+ 
+-		PRINT_FIELD_U("{task_fd_query={", attr, pid);
++		PRINT_FIELD_D("{task_fd_query={", attr, pid);
+ 		PRINT_FIELD_FD(", ", attr, fd, tcp);
+ 		PRINT_FIELD_U(", ", attr, flags);
+ 		PRINT_FIELD_U(", ", attr, buf_len);
+Index: strace-5.7/ipc_msgctl.c
+===================================================================
+--- strace-5.7.orig/ipc_msgctl.c	2020-09-09 14:59:12.909042630 +0200
++++ strace-5.7/ipc_msgctl.c	2020-09-09 14:59:14.715043707 +0200
+@@ -58,8 +58,8 @@
+ 		tprintf(", msg_ctime=%u", (unsigned) msqid_ds.msg_ctime);
+ 		tprintf(", msg_qnum=%u", (unsigned) msqid_ds.msg_qnum);
+ 		tprintf(", msg_qbytes=%u", (unsigned) msqid_ds.msg_qbytes);
+-		tprintf(", msg_lspid=%u", (unsigned) msqid_ds.msg_lspid);
+-		tprintf(", msg_lrpid=%u", (unsigned) msqid_ds.msg_lrpid);
++		PRINT_FIELD_D(", ", msqid_ds, msg_lspid);
++		PRINT_FIELD_D(", ", msqid_ds, msg_lrpid);
+ 		tprints("}");
+ 		break;
+ 
+Index: strace-5.7/ipc_shmctl.c
+===================================================================
+--- strace-5.7.orig/ipc_shmctl.c	2020-09-09 14:59:12.909042630 +0200
++++ strace-5.7/ipc_shmctl.c	2020-09-09 14:59:14.716043707 +0200
+@@ -54,8 +54,8 @@
+ 		PRINT_FIELD_UID(", ", shmid_ds.shm_perm, cgid);
+ 		tprints("}");
+ 		tprintf(", shm_segsz=%u", (unsigned) shmid_ds.shm_segsz);
+-		tprintf(", shm_cpid=%u", (unsigned) shmid_ds.shm_cpid);
+-		tprintf(", shm_lpid=%u", (unsigned) shmid_ds.shm_lpid);
++		PRINT_FIELD_D(", ", shmid_ds, shm_cpid);
++		PRINT_FIELD_D(", ", shmid_ds, shm_lpid);
+ 		tprintf(", shm_nattch=%u", (unsigned) shmid_ds.shm_nattch);
+ 		tprintf(", shm_atime=%u", (unsigned) shmid_ds.shm_atime);
+ 		tprintf(", shm_dtime=%u", (unsigned) shmid_ds.shm_dtime);
+Index: strace-5.7/msghdr.c
+===================================================================
+--- strace-5.7.orig/msghdr.c	2020-09-09 14:50:43.878739225 +0200
++++ strace-5.7/msghdr.c	2020-09-09 14:59:14.717043708 +0200
+@@ -69,7 +69,7 @@
+ {
+ 	const struct ucred *uc = cmsg_data;
+ 
+-	PRINT_FIELD_U("{", *uc, pid);
++	PRINT_FIELD_D("{", *uc, pid);
+ 	PRINT_FIELD_UID(", ", *uc, uid);
+ 	PRINT_FIELD_UID(", ", *uc, gid);
+ 	tprints("}");
+Index: strace-5.7/netlink.c
+===================================================================
+--- strace-5.7.orig/netlink.c	2020-09-09 14:50:43.878739225 +0200
++++ strace-5.7/netlink.c	2020-09-09 14:59:14.717043708 +0200
+@@ -446,7 +446,7 @@
+ 	decode_nlmsg_flags(nlmsghdr->nlmsg_flags,
+ 			   nlmsghdr->nlmsg_type, family);
+ 
+-	tprintf(", seq=%u, pid=%u}", nlmsghdr->nlmsg_seq,
++	tprintf(", seq=%u, pid=%d}", nlmsghdr->nlmsg_seq,
+ 		nlmsghdr->nlmsg_pid);
+ }
+ 
+Index: strace-5.7/tests/bpf.c
+===================================================================
+--- strace-5.7.orig/tests/bpf.c	2020-09-09 14:50:43.878739225 +0200
++++ strace-5.7/tests/bpf.c	2020-09-09 14:59:14.717043708 +0200
+@@ -1289,16 +1289,16 @@
+ 
+ static const struct bpf_attr_check BPF_TASK_FD_QUERY_checks[] = {
+ 	{
+-		.data = { .BPF_TASK_FD_QUERY_data = { .pid = 0xdeadbeef } },
++		.data = { .BPF_TASK_FD_QUERY_data = { .pid = 1735928559 } },
+ 		.size = offsetofend(struct BPF_TASK_FD_QUERY_struct, pid),
+-		.str = "task_fd_query={pid=3735928559, fd=0" FD0_PATH
++		.str = "task_fd_query={pid=1735928559, fd=0" FD0_PATH
+ 		       ", flags=0, buf_len=0, buf=NULL, prog_id=0"
+ 		       ", fd_type=BPF_FD_TYPE_RAW_TRACEPOINT"
+ 		       ", probe_offset=0, probe_addr=0}"
+ 	},
+ 	{ /* 1 */
+ 		.data = { .BPF_TASK_FD_QUERY_data = {
+-			.pid = 0xcafef00d,
++			.pid = 1405705229,
+ 			.fd = 0xdeadbeef,
+ 			.flags = 0xfacefeed,
+ 			.buf_len = 0xdefaced,
+@@ -1309,7 +1309,7 @@
+ 			.probe_addr = 0xfac5fed5fac7fed8
+ 		} },
+ 		.size = offsetofend(struct BPF_TASK_FD_QUERY_struct, probe_addr),
+-		.str = "task_fd_query={pid=3405705229"
++		.str = "task_fd_query={pid=1405705229"
+ 		       ", fd=-559038737"
+ 		       ", flags=4207869677"
+ 		       ", buf_len=233811181"
+Index: strace-5.7/tests/ioctl_block.c
+===================================================================
+--- strace-5.7.orig/tests/ioctl_block.c	2020-09-09 14:50:43.878739225 +0200
++++ strace-5.7/tests/ioctl_block.c	2020-09-09 14:59:14.717043708 +0200
+@@ -165,7 +165,7 @@
+ 
+ 	ioctl(-1, BLKTRACESETUP, buts);
+ 	printf("ioctl(-1, BLKTRACESETUP, {act_mask=%hu, buf_size=%u, buf_nr=%u"
+-	       ", start_lba=%" PRI__u64 ", end_lba=%" PRI__u64 ", pid=%u})"
++	       ", start_lba=%" PRI__u64 ", end_lba=%" PRI__u64 ", pid=%d})"
+ 	       " = -1 EBADF (%m)\n",
+ 	       buts->act_mask, buts->buf_size, buts->buf_nr,
+ 	       buts->start_lba, buts->end_lba, buts->pid);
+Index: strace-5.7/tests/ipc_msg.c
+===================================================================
+--- strace-5.7.orig/tests/ipc_msg.c	2020-09-09 14:50:43.878739225 +0200
++++ strace-5.7/tests/ipc_msg.c	2020-09-09 14:59:14.717043708 +0200
+@@ -128,15 +128,15 @@
+ 	printf("msgctl\\(%d, (%s\\|)?%s, \\{msg_perm=\\{uid=%u"
+ 	       ", gid=%u, mode=%#o, key=%u, cuid=%u, cgid=%u\\}, msg_stime=%u"
+ 	       ", msg_rtime=%u, msg_ctime=%u, msg_qnum=%u, msg_qbytes=%u"
+-	       ", msg_lspid=%u, msg_lrpid=%u\\}\\) = 0\n",
++	       ", msg_lspid=%d, msg_lrpid=%d\\}\\) = 0\n",
+ 	       id, str_ipc_64, str_ipc_stat,
+ 	       (unsigned) ds.msg_perm.uid, (unsigned) ds.msg_perm.gid,
+ 	       (unsigned) ds.msg_perm.mode, (unsigned) ds.msg_perm.__key,
+ 	       (unsigned) ds.msg_perm.cuid, (unsigned) ds.msg_perm.cgid,
+ 	       (unsigned) ds.msg_stime, (unsigned) ds.msg_rtime,
+ 	       (unsigned) ds.msg_ctime, (unsigned) ds.msg_qnum,
+-	       (unsigned) ds.msg_qbytes, (unsigned) ds.msg_lspid,
+-	       (unsigned) ds.msg_lrpid);
++	       (unsigned) ds.msg_qbytes, (int) ds.msg_lspid,
++	       (int) ds.msg_lrpid);
+ 
+ 	if (msgctl(id, IPC_SET, &ds))
+ 		perror_msg_and_skip("msgctl IPC_SET");
+Index: strace-5.7/tests/ipc_shm.c
+===================================================================
+--- strace-5.7.orig/tests/ipc_shm.c	2020-09-09 14:50:43.878739225 +0200
++++ strace-5.7/tests/ipc_shm.c	2020-09-09 14:59:14.718043708 +0200
+@@ -168,15 +168,15 @@
+ 	if (shmctl(id, IPC_STAT, &ds))
+ 		perror_msg_and_skip("shmctl IPC_STAT");
+ 	printf("shmctl\\(%d, (%s\\|)?%s, \\{shm_perm=\\{uid=%u, gid=%u, "
+-		"mode=%#o, key=%u, cuid=%u, cgid=%u\\}, shm_segsz=%u, shm_cpid=%u, "
+-		"shm_lpid=%u, shm_nattch=%u, shm_atime=%u, shm_dtime=%u, "
++		"mode=%#o, key=%u, cuid=%u, cgid=%u\\}, shm_segsz=%u, shm_cpid=%d, "
++		"shm_lpid=%d, shm_nattch=%u, shm_atime=%u, shm_dtime=%u, "
+ 		"shm_ctime=%u\\}\\) = 0\n",
+ 		id, str_ipc_64, str_ipc_stat,
+ 		(unsigned) ds.shm_perm.uid, (unsigned) ds.shm_perm.gid,
+ 		(unsigned) ds.shm_perm.mode, (unsigned) ds.shm_perm.__key,
+ 		(unsigned) ds.shm_perm.cuid, (unsigned) ds.shm_perm.cgid,
+-		(unsigned) ds.shm_segsz, (unsigned) ds.shm_cpid,
+-		(unsigned) ds.shm_lpid, (unsigned) ds.shm_nattch,
++		(unsigned) ds.shm_segsz, (int) ds.shm_cpid,
++		(int) ds.shm_lpid, (unsigned) ds.shm_nattch,
+ 		(unsigned) ds.shm_atime, (unsigned) ds.shm_dtime,
+ 		(unsigned) ds. shm_ctime);
+ 
+Index: strace-5.7/tests/net-yy-netlink.c
+===================================================================
+--- strace-5.7.orig/tests/net-yy-netlink.c	2020-09-09 14:50:43.878739225 +0200
++++ strace-5.7/tests/net-yy-netlink.c	2020-09-09 14:59:14.718043708 +0200
+@@ -67,13 +67,13 @@
+ 	if (bind(fd, sa, *len))
+ 		perror_msg_and_skip("bind");
+ 	printf("bind(%d" FMT_UNBOUND ", {sa_family=AF_NETLINK"
+-	       ", nl_pid=%u, nl_groups=00000000}, %u) = 0\n",
++	       ", nl_pid=%d, nl_groups=00000000}, %u) = 0\n",
+ 	       fd, ARG_UNBOUND, addr.nl_pid, (unsigned) *len);
+ 
+ 	if (getsockname(fd, sa, len))
+ 		perror_msg_and_fail("getsockname");
+ 	printf("getsockname(%d" FMT_BOUND ", {sa_family=AF_NETLINK"
+-	       ", nl_pid=%u, nl_groups=00000000}, [%u]) = 0\n",
++	       ", nl_pid=%d, nl_groups=00000000}, [%u]) = 0\n",
+ 	       fd, ARG_BOUND, addr.nl_pid, (unsigned) *len);
+ 
+ 	if (close(fd))
+Index: strace-5.7/tests/netlink_protocol.c
+===================================================================
+--- strace-5.7.orig/tests/netlink_protocol.c	2020-09-09 14:50:43.878739225 +0200
++++ strace-5.7/tests/netlink_protocol.c	2020-09-09 14:59:14.718043708 +0200
+@@ -264,7 +264,7 @@
+ 	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",
++	       ", seq=%u, pid=%d}}}, %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));
+@@ -289,7 +289,7 @@
+ 	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}, \"\\x61\\x62\\x63\\x64\"}}}"
++	       ", seq=%u, pid=%d}, \"\\x61\\x62\\x63\\x64\"}}}"
+ 	       ", %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,
+Index: strace-5.7/tests-m32/bpf.c
+===================================================================
+--- strace-5.7.orig/tests-m32/bpf.c	2020-04-18 15:47:17.000000000 +0200
++++ strace-5.7/tests-m32/bpf.c	2020-09-09 14:59:52.229066067 +0200
+@@ -1289,16 +1289,16 @@
+ 
+ static const struct bpf_attr_check BPF_TASK_FD_QUERY_checks[] = {
+ 	{
+-		.data = { .BPF_TASK_FD_QUERY_data = { .pid = 0xdeadbeef } },
++		.data = { .BPF_TASK_FD_QUERY_data = { .pid = 1735928559 } },
+ 		.size = offsetofend(struct BPF_TASK_FD_QUERY_struct, pid),
+-		.str = "task_fd_query={pid=3735928559, fd=0" FD0_PATH
++		.str = "task_fd_query={pid=1735928559, fd=0" FD0_PATH
+ 		       ", flags=0, buf_len=0, buf=NULL, prog_id=0"
+ 		       ", fd_type=BPF_FD_TYPE_RAW_TRACEPOINT"
+ 		       ", probe_offset=0, probe_addr=0}"
+ 	},
+ 	{ /* 1 */
+ 		.data = { .BPF_TASK_FD_QUERY_data = {
+-			.pid = 0xcafef00d,
++			.pid = 1405705229,
+ 			.fd = 0xdeadbeef,
+ 			.flags = 0xfacefeed,
+ 			.buf_len = 0xdefaced,
+@@ -1309,7 +1309,7 @@
+ 			.probe_addr = 0xfac5fed5fac7fed8
+ 		} },
+ 		.size = offsetofend(struct BPF_TASK_FD_QUERY_struct, probe_addr),
+-		.str = "task_fd_query={pid=3405705229"
++		.str = "task_fd_query={pid=1405705229"
+ 		       ", fd=-559038737"
+ 		       ", flags=4207869677"
+ 		       ", buf_len=233811181"
+Index: strace-5.7/tests-m32/ioctl_block.c
+===================================================================
+--- strace-5.7.orig/tests-m32/ioctl_block.c	2019-07-24 19:12:18.000000000 +0200
++++ strace-5.7/tests-m32/ioctl_block.c	2020-09-09 14:59:52.290066103 +0200
+@@ -165,7 +165,7 @@
+ 
+ 	ioctl(-1, BLKTRACESETUP, buts);
+ 	printf("ioctl(-1, BLKTRACESETUP, {act_mask=%hu, buf_size=%u, buf_nr=%u"
+-	       ", start_lba=%" PRI__u64 ", end_lba=%" PRI__u64 ", pid=%u})"
++	       ", start_lba=%" PRI__u64 ", end_lba=%" PRI__u64 ", pid=%d})"
+ 	       " = -1 EBADF (%m)\n",
+ 	       buts->act_mask, buts->buf_size, buts->buf_nr,
+ 	       buts->start_lba, buts->end_lba, buts->pid);
+Index: strace-5.7/tests-m32/ipc_msg.c
+===================================================================
+--- strace-5.7.orig/tests-m32/ipc_msg.c	2019-09-25 03:02:03.000000000 +0200
++++ strace-5.7/tests-m32/ipc_msg.c	2020-09-09 14:59:52.349066138 +0200
+@@ -128,15 +128,15 @@
+ 	printf("msgctl\\(%d, (%s\\|)?%s, \\{msg_perm=\\{uid=%u"
+ 	       ", gid=%u, mode=%#o, key=%u, cuid=%u, cgid=%u\\}, msg_stime=%u"
+ 	       ", msg_rtime=%u, msg_ctime=%u, msg_qnum=%u, msg_qbytes=%u"
+-	       ", msg_lspid=%u, msg_lrpid=%u\\}\\) = 0\n",
++	       ", msg_lspid=%d, msg_lrpid=%d\\}\\) = 0\n",
+ 	       id, str_ipc_64, str_ipc_stat,
+ 	       (unsigned) ds.msg_perm.uid, (unsigned) ds.msg_perm.gid,
+ 	       (unsigned) ds.msg_perm.mode, (unsigned) ds.msg_perm.__key,
+ 	       (unsigned) ds.msg_perm.cuid, (unsigned) ds.msg_perm.cgid,
+ 	       (unsigned) ds.msg_stime, (unsigned) ds.msg_rtime,
+ 	       (unsigned) ds.msg_ctime, (unsigned) ds.msg_qnum,
+-	       (unsigned) ds.msg_qbytes, (unsigned) ds.msg_lspid,
+-	       (unsigned) ds.msg_lrpid);
++	       (unsigned) ds.msg_qbytes, (int) ds.msg_lspid,
++	       (int) ds.msg_lrpid);
+ 
+ 	if (msgctl(id, IPC_SET, &ds))
+ 		perror_msg_and_skip("msgctl IPC_SET");
+Index: strace-5.7/tests-m32/ipc_shm.c
+===================================================================
+--- strace-5.7.orig/tests-m32/ipc_shm.c	2019-11-28 20:30:05.000000000 +0100
++++ strace-5.7/tests-m32/ipc_shm.c	2020-09-09 14:59:52.406066172 +0200
+@@ -168,15 +168,15 @@
+ 	if (shmctl(id, IPC_STAT, &ds))
+ 		perror_msg_and_skip("shmctl IPC_STAT");
+ 	printf("shmctl\\(%d, (%s\\|)?%s, \\{shm_perm=\\{uid=%u, gid=%u, "
+-		"mode=%#o, key=%u, cuid=%u, cgid=%u\\}, shm_segsz=%u, shm_cpid=%u, "
+-		"shm_lpid=%u, shm_nattch=%u, shm_atime=%u, shm_dtime=%u, "
++		"mode=%#o, key=%u, cuid=%u, cgid=%u\\}, shm_segsz=%u, shm_cpid=%d, "
++		"shm_lpid=%d, shm_nattch=%u, shm_atime=%u, shm_dtime=%u, "
+ 		"shm_ctime=%u\\}\\) = 0\n",
+ 		id, str_ipc_64, str_ipc_stat,
+ 		(unsigned) ds.shm_perm.uid, (unsigned) ds.shm_perm.gid,
+ 		(unsigned) ds.shm_perm.mode, (unsigned) ds.shm_perm.__key,
+ 		(unsigned) ds.shm_perm.cuid, (unsigned) ds.shm_perm.cgid,
+-		(unsigned) ds.shm_segsz, (unsigned) ds.shm_cpid,
+-		(unsigned) ds.shm_lpid, (unsigned) ds.shm_nattch,
++		(unsigned) ds.shm_segsz, (int) ds.shm_cpid,
++		(int) ds.shm_lpid, (unsigned) ds.shm_nattch,
+ 		(unsigned) ds.shm_atime, (unsigned) ds.shm_dtime,
+ 		(unsigned) ds. shm_ctime);
+ 
+Index: strace-5.7/tests-m32/net-yy-netlink.c
+===================================================================
+--- strace-5.7.orig/tests-m32/net-yy-netlink.c	2020-04-04 00:58:26.000000000 +0200
++++ strace-5.7/tests-m32/net-yy-netlink.c	2020-09-09 14:59:52.464066207 +0200
+@@ -67,13 +67,13 @@
+ 	if (bind(fd, sa, *len))
+ 		perror_msg_and_skip("bind");
+ 	printf("bind(%d" FMT_UNBOUND ", {sa_family=AF_NETLINK"
+-	       ", nl_pid=%u, nl_groups=00000000}, %u) = 0\n",
++	       ", nl_pid=%d, nl_groups=00000000}, %u) = 0\n",
+ 	       fd, ARG_UNBOUND, addr.nl_pid, (unsigned) *len);
+ 
+ 	if (getsockname(fd, sa, len))
+ 		perror_msg_and_fail("getsockname");
+ 	printf("getsockname(%d" FMT_BOUND ", {sa_family=AF_NETLINK"
+-	       ", nl_pid=%u, nl_groups=00000000}, [%u]) = 0\n",
++	       ", nl_pid=%d, nl_groups=00000000}, [%u]) = 0\n",
+ 	       fd, ARG_BOUND, addr.nl_pid, (unsigned) *len);
+ 
+ 	if (close(fd))
+Index: strace-5.7/tests-m32/netlink_protocol.c
+===================================================================
+--- strace-5.7.orig/tests-m32/netlink_protocol.c	2018-12-30 16:35:21.000000000 +0100
++++ strace-5.7/tests-m32/netlink_protocol.c	2020-09-09 14:59:52.524066242 +0200
+@@ -264,7 +264,7 @@
+ 	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",
++	       ", seq=%u, pid=%d}}}, %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));
+@@ -289,7 +289,7 @@
+ 	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}, \"\\x61\\x62\\x63\\x64\"}}}"
++	       ", seq=%u, pid=%d}, \"\\x61\\x62\\x63\\x64\"}}}"
+ 	       ", %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,
+Index: strace-5.7/tests-mx32/bpf.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/bpf.c	2020-04-18 15:47:17.000000000 +0200
++++ strace-5.7/tests-mx32/bpf.c	2020-09-09 14:59:52.261066086 +0200
+@@ -1289,16 +1289,16 @@
+ 
+ static const struct bpf_attr_check BPF_TASK_FD_QUERY_checks[] = {
+ 	{
+-		.data = { .BPF_TASK_FD_QUERY_data = { .pid = 0xdeadbeef } },
++		.data = { .BPF_TASK_FD_QUERY_data = { .pid = 1735928559 } },
+ 		.size = offsetofend(struct BPF_TASK_FD_QUERY_struct, pid),
+-		.str = "task_fd_query={pid=3735928559, fd=0" FD0_PATH
++		.str = "task_fd_query={pid=1735928559, fd=0" FD0_PATH
+ 		       ", flags=0, buf_len=0, buf=NULL, prog_id=0"
+ 		       ", fd_type=BPF_FD_TYPE_RAW_TRACEPOINT"
+ 		       ", probe_offset=0, probe_addr=0}"
+ 	},
+ 	{ /* 1 */
+ 		.data = { .BPF_TASK_FD_QUERY_data = {
+-			.pid = 0xcafef00d,
++			.pid = 1405705229,
+ 			.fd = 0xdeadbeef,
+ 			.flags = 0xfacefeed,
+ 			.buf_len = 0xdefaced,
+@@ -1309,7 +1309,7 @@
+ 			.probe_addr = 0xfac5fed5fac7fed8
+ 		} },
+ 		.size = offsetofend(struct BPF_TASK_FD_QUERY_struct, probe_addr),
+-		.str = "task_fd_query={pid=3405705229"
++		.str = "task_fd_query={pid=1405705229"
+ 		       ", fd=-559038737"
+ 		       ", flags=4207869677"
+ 		       ", buf_len=233811181"
+Index: strace-5.7/tests-mx32/ioctl_block.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/ioctl_block.c	2019-07-24 19:12:18.000000000 +0200
++++ strace-5.7/tests-mx32/ioctl_block.c	2020-09-09 14:59:52.319066120 +0200
+@@ -165,7 +165,7 @@
+ 
+ 	ioctl(-1, BLKTRACESETUP, buts);
+ 	printf("ioctl(-1, BLKTRACESETUP, {act_mask=%hu, buf_size=%u, buf_nr=%u"
+-	       ", start_lba=%" PRI__u64 ", end_lba=%" PRI__u64 ", pid=%u})"
++	       ", start_lba=%" PRI__u64 ", end_lba=%" PRI__u64 ", pid=%d})"
+ 	       " = -1 EBADF (%m)\n",
+ 	       buts->act_mask, buts->buf_size, buts->buf_nr,
+ 	       buts->start_lba, buts->end_lba, buts->pid);
+Index: strace-5.7/tests-mx32/ipc_msg.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/ipc_msg.c	2019-09-25 03:02:03.000000000 +0200
++++ strace-5.7/tests-mx32/ipc_msg.c	2020-09-09 14:59:52.377066155 +0200
+@@ -128,15 +128,15 @@
+ 	printf("msgctl\\(%d, (%s\\|)?%s, \\{msg_perm=\\{uid=%u"
+ 	       ", gid=%u, mode=%#o, key=%u, cuid=%u, cgid=%u\\}, msg_stime=%u"
+ 	       ", msg_rtime=%u, msg_ctime=%u, msg_qnum=%u, msg_qbytes=%u"
+-	       ", msg_lspid=%u, msg_lrpid=%u\\}\\) = 0\n",
++	       ", msg_lspid=%d, msg_lrpid=%d\\}\\) = 0\n",
+ 	       id, str_ipc_64, str_ipc_stat,
+ 	       (unsigned) ds.msg_perm.uid, (unsigned) ds.msg_perm.gid,
+ 	       (unsigned) ds.msg_perm.mode, (unsigned) ds.msg_perm.__key,
+ 	       (unsigned) ds.msg_perm.cuid, (unsigned) ds.msg_perm.cgid,
+ 	       (unsigned) ds.msg_stime, (unsigned) ds.msg_rtime,
+ 	       (unsigned) ds.msg_ctime, (unsigned) ds.msg_qnum,
+-	       (unsigned) ds.msg_qbytes, (unsigned) ds.msg_lspid,
+-	       (unsigned) ds.msg_lrpid);
++	       (unsigned) ds.msg_qbytes, (int) ds.msg_lspid,
++	       (int) ds.msg_lrpid);
+ 
+ 	if (msgctl(id, IPC_SET, &ds))
+ 		perror_msg_and_skip("msgctl IPC_SET");
+Index: strace-5.7/tests-mx32/ipc_shm.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/ipc_shm.c	2019-11-28 20:30:05.000000000 +0100
++++ strace-5.7/tests-mx32/ipc_shm.c	2020-09-09 14:59:52.435066189 +0200
+@@ -168,15 +168,15 @@
+ 	if (shmctl(id, IPC_STAT, &ds))
+ 		perror_msg_and_skip("shmctl IPC_STAT");
+ 	printf("shmctl\\(%d, (%s\\|)?%s, \\{shm_perm=\\{uid=%u, gid=%u, "
+-		"mode=%#o, key=%u, cuid=%u, cgid=%u\\}, shm_segsz=%u, shm_cpid=%u, "
+-		"shm_lpid=%u, shm_nattch=%u, shm_atime=%u, shm_dtime=%u, "
++		"mode=%#o, key=%u, cuid=%u, cgid=%u\\}, shm_segsz=%u, shm_cpid=%d, "
++		"shm_lpid=%d, shm_nattch=%u, shm_atime=%u, shm_dtime=%u, "
+ 		"shm_ctime=%u\\}\\) = 0\n",
+ 		id, str_ipc_64, str_ipc_stat,
+ 		(unsigned) ds.shm_perm.uid, (unsigned) ds.shm_perm.gid,
+ 		(unsigned) ds.shm_perm.mode, (unsigned) ds.shm_perm.__key,
+ 		(unsigned) ds.shm_perm.cuid, (unsigned) ds.shm_perm.cgid,
+-		(unsigned) ds.shm_segsz, (unsigned) ds.shm_cpid,
+-		(unsigned) ds.shm_lpid, (unsigned) ds.shm_nattch,
++		(unsigned) ds.shm_segsz, (int) ds.shm_cpid,
++		(int) ds.shm_lpid, (unsigned) ds.shm_nattch,
+ 		(unsigned) ds.shm_atime, (unsigned) ds.shm_dtime,
+ 		(unsigned) ds. shm_ctime);
+ 
+Index: strace-5.7/tests-mx32/net-yy-netlink.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/net-yy-netlink.c	2020-04-04 00:58:26.000000000 +0200
++++ strace-5.7/tests-mx32/net-yy-netlink.c	2020-09-09 14:59:52.494066225 +0200
+@@ -67,13 +67,13 @@
+ 	if (bind(fd, sa, *len))
+ 		perror_msg_and_skip("bind");
+ 	printf("bind(%d" FMT_UNBOUND ", {sa_family=AF_NETLINK"
+-	       ", nl_pid=%u, nl_groups=00000000}, %u) = 0\n",
++	       ", nl_pid=%d, nl_groups=00000000}, %u) = 0\n",
+ 	       fd, ARG_UNBOUND, addr.nl_pid, (unsigned) *len);
+ 
+ 	if (getsockname(fd, sa, len))
+ 		perror_msg_and_fail("getsockname");
+ 	printf("getsockname(%d" FMT_BOUND ", {sa_family=AF_NETLINK"
+-	       ", nl_pid=%u, nl_groups=00000000}, [%u]) = 0\n",
++	       ", nl_pid=%d, nl_groups=00000000}, [%u]) = 0\n",
+ 	       fd, ARG_BOUND, addr.nl_pid, (unsigned) *len);
+ 
+ 	if (close(fd))
+Index: strace-5.7/tests-mx32/netlink_protocol.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/netlink_protocol.c	2018-12-30 16:35:21.000000000 +0100
++++ strace-5.7/tests-mx32/netlink_protocol.c	2020-09-09 14:59:52.553066260 +0200
+@@ -264,7 +264,7 @@
+ 	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",
++	       ", seq=%u, pid=%d}}}, %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));
+@@ -289,7 +289,7 @@
+ 	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}, \"\\x61\\x62\\x63\\x64\"}}}"
++	       ", seq=%u, pid=%d}, \"\\x61\\x62\\x63\\x64\"}}}"
+ 	       ", %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,
diff --git a/SOURCES/0128-Remove-tcb-parameter-of-read_int_from_file.patch b/SOURCES/0128-Remove-tcb-parameter-of-read_int_from_file.patch
new file mode 100644
index 0000000..d2a21d3
--- /dev/null
+++ b/SOURCES/0128-Remove-tcb-parameter-of-read_int_from_file.patch
@@ -0,0 +1,56 @@
+From 924f71a4296be54e109784dfdb487b732bfc9bbf Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=81kos=20Uzonyi?= <uzonyi.akos@gmail.com>
+Date: Fri, 17 Jul 2020 23:24:36 +0200
+Subject: [PATCH 128/138] Remove tcb parameter of read_int_from_file
+
+* defs.h (read_int_from_file): Remove tcb parameter.
+* util.c (read_int_from_file): Likewise.
+* msghdr.c (get_optmem_max): Remove tcb parameter of read_int_from_file.
+---
+ defs.h   | 2 +-
+ msghdr.c | 2 +-
+ util.c   | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/defs.h b/defs.h
+index d8bd513..dae1cd9 100644
+--- a/defs.h
++++ b/defs.h
+@@ -498,7 +498,7 @@ extern unsigned os_release;
+ # undef KERNEL_VERSION
+ # define KERNEL_VERSION(a, b, c) (((a) << 16) + ((b) << 8) + (c))
+ 
+-extern int read_int_from_file(struct tcb *, const char *, int *);
++extern int read_int_from_file(const char *, int *);
+ 
+ extern void set_sortby(const char *);
+ extern int set_overhead(const char *);
+diff --git a/msghdr.c b/msghdr.c
+index becbb51..1ab4c6e 100644
+--- a/msghdr.c
++++ b/msghdr.c
+@@ -293,7 +293,7 @@ get_optmem_max(struct tcb *tcp)
+ 	static int optmem_max;
+ 
+ 	if (!optmem_max) {
+-		if (read_int_from_file(tcp, "/proc/sys/net/core/optmem_max",
++		if (read_int_from_file("/proc/sys/net/core/optmem_max",
+ 				       &optmem_max) || optmem_max <= 0) {
+ 			optmem_max = sizeof(long long) * (2 * IOV_MAX + 512);
+ 		} else {
+diff --git a/util.c b/util.c
+index cde76c1..286c690 100644
+--- a/util.c
++++ b/util.c
+@@ -1517,7 +1517,7 @@ print_abnormal_hi(const kernel_ulong_t val)
+ }
+ 
+ int
+-read_int_from_file(struct tcb *tcp, const char *const fname, int *const pvalue)
++read_int_from_file(const char *const fname, int *const pvalue)
+ {
+ 	const int fd = open_file(fname, O_RDONLY);
+ 	if (fd < 0)
+-- 
+2.1.4
+
diff --git a/SOURCES/0129-Add-struct-tcb-parameters-to-various-functions.patch b/SOURCES/0129-Add-struct-tcb-parameters-to-various-functions.patch
new file mode 100644
index 0000000..64e70e3
--- /dev/null
+++ b/SOURCES/0129-Add-struct-tcb-parameters-to-various-functions.patch
@@ -0,0 +1,417 @@
+From 09ca090db1a67eaf590372ae85a94ba8b41223c2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=81kos=20Uzonyi?= <uzonyi.akos@gmail.com>
+Date: Mon, 27 Jul 2020 20:54:06 +0200
+Subject: [PATCH 129/138] Add "struct tcb *" parameters to various functions
+
+This is going to be needed to implement pidns support.
+
+* defs.h (print_sockaddr): Add a "struct tcb *" parameter.
+* printsiginfo.h (printsiginfo): Likewise.
+* fcntl.c (print_struct_flock64): Likewise.  All callers updated.
+* print_fields.h (PRINT_FIELD_SOCKADDR): Likewise.   All callers updated.
+* printsiginfo.c (printsigsource, print_si_info, printsiginfo): Likewise.
+All callers updated.
+* sockaddr.c (print_sockaddr_data_un, print_sockaddr_data_in,
+print_sockaddr_data_in6, print_sockaddr_data_ax25,
+print_sockaddr_data_ipx, print_sockaddr_data_x25,
+print_sockaddr_data_nl, print_sockaddr_data_ll,
+print_sockaddr_data_bt, sockaddr_printer, print_sockaddr): Likewise.
+All callers updated.
+---
+ defs.h            |  2 +-
+ fcntl.c           |  6 +++---
+ msghdr.c          |  4 ++--
+ print_fields.h    |  4 ++--
+ print_group_req.c |  2 +-
+ printsiginfo.c    | 22 +++++++++++-----------
+ printsiginfo.h    |  2 +-
+ sock.c            | 10 +++++-----
+ sockaddr.c        | 33 ++++++++++++++++++++-------------
+ strace.c          |  2 +-
+ 10 files changed, 47 insertions(+), 40 deletions(-)
+
+diff --git a/defs.h b/defs.h
+index dae1cd9..48987f9 100644
+--- a/defs.h
++++ b/defs.h
+@@ -1059,7 +1059,7 @@ printfd(struct tcb *tcp, int fd)
+  * of the tracee the descriptor tcp).  This is a stub.
+  */
+ extern void printfd_pid_tracee_ns(struct tcb *tcp, pid_t pid, int fd);
+-extern void print_sockaddr(const void *sa, int len);
++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 bool
+diff --git a/fcntl.c b/fcntl.c
+index e84549e..345634c 100644
+--- a/fcntl.c
++++ b/fcntl.c
+@@ -21,7 +21,7 @@
+ #include "xlat/notifyflags.h"
+ 
+ static void
+-print_struct_flock64(const struct_kernel_flock64 *fl, const int getlk)
++print_struct_flock64(struct tcb *const tcp, const struct_kernel_flock64 *fl, const int getlk)
+ {
+ 	PRINT_FIELD_XVAL("{", *fl, l_type, lockfcmds, "F_???");
+ 	PRINT_FIELD_XVAL(", ", *fl, l_whence, whence_codes, "SEEK_???");
+@@ -38,7 +38,7 @@ printflock64(struct tcb *const tcp, const kernel_ulong_t addr, const int getlk)
+ 	struct_kernel_flock64 fl;
+ 
+ 	if (fetch_struct_flock64(tcp, addr, &fl))
+-		print_struct_flock64(&fl, getlk);
++		print_struct_flock64(tcp, &fl, getlk);
+ }
+ 
+ static void
+@@ -47,7 +47,7 @@ printflock(struct tcb *const tcp, const kernel_ulong_t addr, const int getlk)
+ 	struct_kernel_flock64 fl;
+ 
+ 	if (fetch_struct_flock(tcp, addr, &fl))
+-		print_struct_flock64(&fl, getlk);
++		print_struct_flock64(tcp, &fl, getlk);
+ }
+ 
+ static void
+diff --git a/msghdr.c b/msghdr.c
+index 1ab4c6e..ef6dc24 100644
+--- a/msghdr.c
++++ b/msghdr.c
+@@ -216,7 +216,7 @@ print_cmsg_ip_recverr(struct tcb *tcp, const void *cmsg_data,
+ 	PRINT_FIELD_U(", ", *err, ee_code);
+ 	PRINT_FIELD_U(", ", *err, ee_info);
+ 	PRINT_FIELD_U(", ", *err, ee_data);
+-	PRINT_FIELD_SOCKADDR(", ", *err, offender);
++	PRINT_FIELD_SOCKADDR(", ", *err, offender, tcp);
+ 	tprints("}");
+ }
+ 
+@@ -228,7 +228,7 @@ print_cmsg_ip_origdstaddr(struct tcb *tcp, const void *cmsg_data,
+ 		data_len > sizeof(struct sockaddr_storage)
+ 		? sizeof(struct sockaddr_storage) : data_len;
+ 
+-	print_sockaddr(cmsg_data, addr_len);
++	print_sockaddr(tcp, cmsg_data, addr_len);
+ }
+ 
+ typedef void (* const cmsg_printer)(struct tcb *, const void *, unsigned int);
+diff --git a/print_fields.h b/print_fields.h
+index 70dbbff..2413398 100644
+--- a/print_fields.h
++++ b/print_fields.h
+@@ -211,10 +211,10 @@
+ 		print_ifindex((where_).field_);				\
+ 	} while (0)
+ 
+-# define PRINT_FIELD_SOCKADDR(prefix_, where_, field_)			\
++# define PRINT_FIELD_SOCKADDR(prefix_, where_, field_, tcp_)			\
+ 	do {								\
+ 		STRACE_PRINTF("%s%s=", (prefix_), #field_);		\
+-		print_sockaddr(&(where_).field_,			\
++		print_sockaddr(tcp_, &(where_).field_,			\
+ 			       sizeof((where_).field_));		\
+ 	} while (0)
+ 
+diff --git a/print_group_req.c b/print_group_req.c
+index f0ce58b..9e8ce60 100644
+--- a/print_group_req.c
++++ b/print_group_req.c
+@@ -30,7 +30,7 @@ MPERS_PRINTER_DECL(void, print_group_req, struct tcb *const tcp,
+ 		printaddr(addr);
+ 	} else if (!umove_or_printaddr(tcp, addr, &greq)) {
+ 		PRINT_FIELD_IFINDEX("{", greq, gr_interface);
+-		PRINT_FIELD_SOCKADDR(", ", greq, gr_group);
++		PRINT_FIELD_SOCKADDR(", ", greq, gr_group, tcp);
+ 		tprints("}");
+ 	}
+ }
+diff --git a/printsiginfo.c b/printsiginfo.c
+index 0a9932d..8ed1e7b 100644
+--- a/printsiginfo.c
++++ b/printsiginfo.c
+@@ -56,7 +56,7 @@
+ #endif
+ 
+ static void
+-printsigsource(const siginfo_t *sip)
++printsigsource(struct tcb *tcp, const siginfo_t *sip)
+ {
+ 	PRINT_FIELD_D(", ", *sip, si_pid);
+ 	PRINT_FIELD_UID(", ", *sip, si_uid);
+@@ -116,7 +116,7 @@ print_si_code(int si_signo, unsigned int si_code)
+ }
+ 
+ static void
+-print_si_info(const siginfo_t *sip)
++print_si_info(struct tcb *tcp, const siginfo_t *sip)
+ {
+ 	if (sip->si_errno)
+ 		PRINT_FIELD_ERR_U(", ", *sip, si_errno);
+@@ -124,10 +124,10 @@ print_si_info(const siginfo_t *sip)
+ 	if (SI_FROMUSER(sip)) {
+ 		switch (sip->si_code) {
+ 		case SI_USER:
+-			printsigsource(sip);
++			printsigsource(tcp, sip);
+ 			break;
+ 		case SI_TKILL:
+-			printsigsource(sip);
++			printsigsource(tcp, sip);
+ 			break;
+ #if defined HAVE_SIGINFO_T_SI_TIMERID && defined HAVE_SIGINFO_T_SI_OVERRUN
+ 		case SI_TIMER:
+@@ -137,7 +137,7 @@ print_si_info(const siginfo_t *sip)
+ 			break;
+ #endif
+ 		default:
+-			printsigsource(sip);
++			printsigsource(tcp, sip);
+ 			if (sip->si_ptr)
+ 				printsigval(sip);
+ 			break;
+@@ -145,7 +145,7 @@ print_si_info(const siginfo_t *sip)
+ 	} else {
+ 		switch (sip->si_signo) {
+ 		case SIGCHLD:
+-			printsigsource(sip);
++			printsigsource(tcp, sip);
+ 			tprints(", si_status=");
+ 			if (sip->si_code == CLD_EXITED)
+ 				tprintf("%d", sip->si_status);
+@@ -204,7 +204,7 @@ print_si_info(const siginfo_t *sip)
+ #endif
+ 		default:
+ 			if (sip->si_pid || sip->si_uid)
+-				printsigsource(sip);
++				printsigsource(tcp, sip);
+ 			if (sip->si_ptr)
+ 				printsigval(sip);
+ 		}
+@@ -215,7 +215,7 @@ print_si_info(const siginfo_t *sip)
+ static
+ #endif
+ void
+-printsiginfo(const siginfo_t *sip)
++printsiginfo(struct tcb *tcp, const siginfo_t *sip)
+ {
+ 	if (sip->si_signo == 0) {
+ 		tprints("{}");
+@@ -230,7 +230,7 @@ printsiginfo(const siginfo_t *sip)
+ #ifdef SI_NOINFO
+ 	if (sip->si_code != SI_NOINFO)
+ #endif
+-		print_si_info(sip);
++		print_si_info(tcp, sip);
+ 
+ 	tprints("}");
+ }
+@@ -241,13 +241,13 @@ MPERS_PRINTER_DECL(void, printsiginfo_at,
+ 	siginfo_t si;
+ 
+ 	if (!umove_or_printaddr(tcp, addr, &si))
+-		printsiginfo(&si);
++		printsiginfo(tcp, &si);
+ }
+ 
+ static bool
+ print_siginfo_t(struct tcb *tcp, void *elem_buf, size_t elem_size, void *data)
+ {
+-	printsiginfo((const siginfo_t *) elem_buf);
++	printsiginfo(tcp, (const siginfo_t *) elem_buf);
+ 	return true;
+ }
+ 
+diff --git a/printsiginfo.h b/printsiginfo.h
+index 4088cb5..3fec2ab 100644
+--- a/printsiginfo.h
++++ b/printsiginfo.h
+@@ -8,6 +8,6 @@
+ #ifndef STRACE_PRINTSIGINFO_H
+ # define STRACE_PRINTSIGINFO_H
+ 
+-extern void printsiginfo(const siginfo_t *);
++extern void printsiginfo(struct tcb *, const siginfo_t *);
+ 
+ #endif /* !STRACE_PRINTSIGINFO_H */
+diff --git a/sock.c b/sock.c
+index 5b14007..99a3190 100644
+--- a/sock.c
++++ b/sock.c
+@@ -44,19 +44,19 @@ print_ifreq(struct tcb *const tcp, const unsigned int code,
+ 	switch (code) {
+ 	case SIOCSIFADDR:
+ 	case SIOCGIFADDR:
+-		PRINT_FIELD_SOCKADDR("", *ifr, ifr_addr);
++		PRINT_FIELD_SOCKADDR("", *ifr, ifr_addr, tcp);
+ 		break;
+ 	case SIOCSIFDSTADDR:
+ 	case SIOCGIFDSTADDR:
+-		PRINT_FIELD_SOCKADDR("", *ifr, ifr_dstaddr);
++		PRINT_FIELD_SOCKADDR("", *ifr, ifr_dstaddr, tcp);
+ 		break;
+ 	case SIOCSIFBRDADDR:
+ 	case SIOCGIFBRDADDR:
+-		PRINT_FIELD_SOCKADDR("", *ifr, ifr_broadaddr);
++		PRINT_FIELD_SOCKADDR("", *ifr, ifr_broadaddr, tcp);
+ 		break;
+ 	case SIOCSIFNETMASK:
+ 	case SIOCGIFNETMASK:
+-		PRINT_FIELD_SOCKADDR("", *ifr, ifr_netmask);
++		PRINT_FIELD_SOCKADDR("", *ifr, ifr_netmask, tcp);
+ 		break;
+ 	case SIOCSIFHWADDR:
+ 	case SIOCGIFHWADDR: {
+@@ -126,7 +126,7 @@ print_ifconf_ifreq(struct tcb *tcp, void *elem_buf, size_t elem_size,
+ 
+ 	tprints("{ifr_name=");
+ 	print_ifname(ifr->ifr_name);
+-	PRINT_FIELD_SOCKADDR(", ", *ifr, ifr_addr);
++	PRINT_FIELD_SOCKADDR(", ", *ifr, ifr_addr, tcp);
+ 	tprints("}");
+ 
+ 	return true;
+diff --git a/sockaddr.c b/sockaddr.c
+index b6b9aa7..b004633 100644
+--- a/sockaddr.c
++++ b/sockaddr.c
+@@ -47,7 +47,7 @@ const size_t arp_hardware_types_size = ARRAY_SIZE(arp_hardware_types) - 1;
+ const size_t ethernet_protocols_size = ARRAY_SIZE(ethernet_protocols) - 1;
+ 
+ static void
+-print_sockaddr_data_un(const void *const buf, const int addrlen)
++print_sockaddr_data_un(struct tcb *tcp, const void *const buf, const int addrlen)
+ {
+ 	const struct sockaddr_un *const sa_un = buf;
+ 	const int un_len = addrlen > (int) sizeof(*sa_un)
+@@ -172,7 +172,8 @@ decode_inet_addr(struct tcb *const tcp,
+ }
+ 
+ static void
+-print_sockaddr_data_in(const void *const buf, const int addrlen)
++print_sockaddr_data_in(struct tcb *tcp, const void *const buf,
++		       const int addrlen)
+ {
+ 	const struct sockaddr_in *const sa_in = buf;
+ 
+@@ -183,7 +184,8 @@ print_sockaddr_data_in(const void *const buf, const int addrlen)
+ #define SIN6_MIN_LEN offsetof(struct sockaddr_in6, sin6_scope_id)
+ 
+ static void
+-print_sockaddr_data_in6(const void *const buf, const int addrlen)
++print_sockaddr_data_in6(struct tcb *tcp, const void *const buf,
++			const int addrlen)
+ {
+ 	const struct sockaddr_in6 *const sa_in6 = buf;
+ 
+@@ -322,7 +324,8 @@ print_ax25_addr(const void /* ax25_address */ *addr_void)
+ }
+ 
+ static void
+-print_sockaddr_data_ax25(const void *const buf, const int addrlen)
++print_sockaddr_data_ax25(struct tcb *tcp, const void *const buf,
++			 const int addrlen)
+ {
+ 	const struct full_sockaddr_ax25 *const sax25 = buf;
+ 	size_t addrlen_us = MAX(addrlen, 0);
+@@ -372,7 +375,8 @@ digis_end:
+ }
+ 
+ static void
+-print_sockaddr_data_ipx(const void *const buf, const int addrlen)
++print_sockaddr_data_ipx(struct tcb *tcp, const void *const buf,
++			const int addrlen)
+ {
+ 	const struct sockaddr_ipx *const sa_ipx = buf;
+ 	unsigned int i;
+@@ -399,7 +403,8 @@ print_x25_addr(const void /* struct x25_address */ *addr_void)
+ }
+ 
+ static void
+-print_sockaddr_data_x25(const void *const buf, const int addrlen)
++print_sockaddr_data_x25(struct tcb *tcp, const void *const buf,
++			const int addrlen)
+ {
+ 	const struct sockaddr_x25 *const sa_x25 = buf;
+ 
+@@ -407,7 +412,7 @@ print_sockaddr_data_x25(const void *const buf, const int addrlen)
+ }
+ 
+ static void
+-print_sockaddr_data_nl(const void *const buf, const int addrlen)
++print_sockaddr_data_nl(struct tcb *tcp, const void *const buf, const int addrlen)
+ {
+ 	const struct sockaddr_nl *const sa_nl = buf;
+ 
+@@ -442,7 +447,8 @@ print_sll_protocol(const struct sockaddr_ll *const sa_ll)
+ }
+ 
+ static void
+-print_sockaddr_data_ll(const void *const buf, const int addrlen)
++print_sockaddr_data_ll(struct tcb *tcp, const void *const buf,
++		       const int addrlen)
+ {
+ 	const struct sockaddr_ll *const sa_ll = buf;
+ 
+@@ -567,7 +573,8 @@ print_bluetooth_l2_cid_end:
+ }
+ 
+ static void
+-print_sockaddr_data_bt(const void *const buf, const int addrlen)
++print_sockaddr_data_bt(struct tcb *tcp, const void *const buf,
++		       const int addrlen)
+ {
+ 	struct sockaddr_hci {
+ 		/* sa_family_t */ uint16_t	hci_family;
+@@ -651,7 +658,7 @@ print_sockaddr_data_bt(const void *const buf, const int addrlen)
+ 	}
+ }
+ 
+-typedef void (* const sockaddr_printer)(const void *const, const int);
++typedef void (* const sockaddr_printer)(struct tcb *tcp, const void *const, const int);
+ 
+ static const struct {
+ 	const sockaddr_printer printer;
+@@ -669,7 +676,7 @@ static const struct {
+ };
+ 
+ void
+-print_sockaddr(const void *const buf, const int addrlen)
++print_sockaddr(struct tcb *tcp, const void *const buf, const int addrlen)
+ {
+ 	const struct sockaddr *const sa = buf;
+ 
+@@ -682,7 +689,7 @@ print_sockaddr(const void *const buf, const int addrlen)
+ 		if (sa->sa_family < ARRAY_SIZE(sa_printers)
+ 		    && sa_printers[sa->sa_family].printer
+ 		    && addrlen >= sa_printers[sa->sa_family].min_len) {
+-			sa_printers[sa->sa_family].printer(buf, addrlen);
++			sa_printers[sa->sa_family].printer(tcp, buf, addrlen);
+ 		} else {
+ 			print_sockaddr_data_raw(buf, addrlen);
+ 		}
+@@ -713,7 +720,7 @@ decode_sockaddr(struct tcb *const tcp, const kernel_ulong_t addr, int addrlen)
+ 
+ 	memset(&addrbuf.pad[addrlen], 0, sizeof(addrbuf.pad) - addrlen);
+ 
+-	print_sockaddr(&addrbuf, addrlen);
++	print_sockaddr(tcp, &addrbuf, addrlen);
+ 
+ 	return addrbuf.sa.sa_family;
+ }
+diff --git a/strace.c b/strace.c
+index 311e4d6..4c96a98 100644
+--- a/strace.c
++++ b/strace.c
+@@ -2941,7 +2941,7 @@ print_stopped(struct tcb *tcp, const siginfo_t *si, const unsigned int sig)
+ 		printleader(tcp);
+ 		if (si) {
+ 			tprintf("--- %s ", sprintsigname(sig));
+-			printsiginfo(si);
++			printsiginfo(tcp, si);
+ 			tprints(" ---\n");
+ 		} else
+ 			tprintf("--- stopped by %s ---\n", sprintsigname(sig));
+-- 
+2.1.4
+
diff --git a/SOURCES/0130-Modify-process-class-trace-syscalls-associated-with-.patch b/SOURCES/0130-Modify-process-class-trace-syscalls-associated-with-.patch
new file mode 100644
index 0000000..89f4358
--- /dev/null
+++ b/SOURCES/0130-Modify-process-class-trace-syscalls-associated-with-.patch
@@ -0,0 +1,1391 @@
+From 2313eb7158479646ec9f85893453951c3b4b58df Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=81kos=20Uzonyi?= <uzonyi.akos@gmail.com>
+Date: Fri, 19 Jun 2020 12:06:43 +0200
+Subject: [PATCH 130/138] Modify %process class: trace syscalls associated with
+ process lifecycle
+
+The description is rephrased as:
+"Trace system calls associated with process lifecycle
+(creation, exec, termination)."
+
+kill, tkill, tgkill, pidfd_send_signal and rt_sigqueueinfo are added,
+arch_prctl and unshare are removed from the %process class.
+
+syscallent*.h files are updated automatically by:
+find linux -name syscallent*.h -exec \
+sed -i -r -e '
+    /(arch_prctl|unshare)/ {
+        s/(\{[^,]*,\t[^,]*)TP\|/\1/
+        s/(\{[^,]*,\t[^,]*)\|TP/\1/
+        s/(\{[^,]*,\t[^,]*)TP,/\10,/
+    }
+' -e '
+    /(kill|pidfd_send_signal|rt_sigqueueinfo)/ {
+        s/(\{[^,]*,\t[^0][^,]*)/\1|TP/
+        s/(\{[^,]*,\s*)0/\1TP/
+    }
+' {} +
+
+[ldv: document this change in NEWS.]
+
+* strace.1.in: Rephrase %process description.
+* linux/32/syscallent.h: Add TP flag to *kill, pidfd_send_signal and
+rt_sigqueueinfo; remove TP flag from arch_prctl and unshare.
+* linux/64/syscallent.h: Likewise.
+* linux/alpha/syscallent.h: Likewise.
+* linux/arm/syscallent.h: Likewise.
+* linux/avr32/syscallent.h: Likewise.
+* linux/bfin/syscallent.h: Likewise.
+* linux/hppa/syscallent.h: Likewise.
+* linux/i386/syscallent.h: Likewise.
+* linux/ia64/syscallent.h: Likewise.
+* linux/m68k/syscallent.h: Likewise.
+* linux/microblaze/syscallent.h: Likewise.
+* linux/mips/syscallent-compat.h: Likewise.
+* linux/mips/syscallent-n32.h: Likewise.
+* linux/mips/syscallent-n64.h: Likewise.
+* linux/mips/syscallent-o32.h: Likewise.
+* linux/powerpc/syscallent.h: Likewise.
+* linux/powerpc64/syscallent.h: Likewise.
+* linux/s390/syscallent.h: Likewise.
+* linux/s390x/syscallent.h: Likewise.
+* linux/sh/syscallent.h: Likewise.
+* linux/sh64/syscallent.h: Likewise.
+* linux/sparc/syscallent.h: Likewise.
+* linux/sparc64/syscallent.h: Likewise.
+* linux/syscallent-common.h: Likewise.
+* linux/x32/syscallent.h: Likewise.
+* linux/x86_64/syscallent.h: Likewise.
+* linux/xtensa/syscallent.h: Likewise.
+* NEWS: Mention this change.
+
+Conflicts:
+	NEWS
+	linux/i386/syscallent.h
+---
+ linux/32/syscallent.h          | 10 +++++-----
+ linux/64/syscallent.h          | 10 +++++-----
+ linux/alpha/syscallent.h       | 12 ++++++------
+ linux/arm/syscallent.h         | 10 +++++-----
+ linux/avr32/syscallent.h       | 10 +++++-----
+ linux/bfin/syscallent.h        | 10 +++++-----
+ linux/hppa/syscallent.h        | 10 +++++-----
+ linux/i386/syscallent.h        | 12 ++++++------
+ linux/ia64/syscallent.h        | 10 +++++-----
+ linux/m68k/syscallent.h        | 10 +++++-----
+ linux/microblaze/syscallent.h  | 10 +++++-----
+ linux/mips/syscallent-compat.h | 10 +++++-----
+ linux/mips/syscallent-n32.h    | 10 +++++-----
+ linux/mips/syscallent-n64.h    | 10 +++++-----
+ linux/mips/syscallent-o32.h    | 10 +++++-----
+ linux/powerpc/syscallent.h     | 10 +++++-----
+ linux/powerpc64/syscallent.h   | 10 +++++-----
+ linux/s390/syscallent.h        | 10 +++++-----
+ linux/s390x/syscallent.h       | 10 +++++-----
+ linux/sh/syscallent.h          | 10 +++++-----
+ linux/sh64/syscallent.h        | 10 +++++-----
+ linux/sparc/syscallent.h       | 10 +++++-----
+ linux/sparc64/syscallent.h     | 10 +++++-----
+ linux/syscallent-common.h      |  2 +-
+ linux/x32/syscallent.h         | 14 +++++++-------
+ linux/x86_64/syscallent.h      | 12 ++++++------
+ linux/xtensa/syscallent.h      | 10 +++++-----
+ strace.1.in                    |  4 ++--
+ 28 files changed, 138 insertions(+), 138 deletions(-)
+
+diff --git a/linux/32/syscallent.h b/linux/32/syscallent.h
+index 5e1f06d..c74ab18 100644
+--- a/linux/32/syscallent.h
++++ b/linux/32/syscallent.h
+@@ -109,7 +109,7 @@
+ [ 94] = { 1,	TP|SE,		SEN(exit),			"exit_group"		},
+ [ 95] = { 5,	TP,		SEN(waitid),			"waitid"		},
+ [ 96] = { 1,	0,		SEN(set_tid_address),		"set_tid_address"	},
+-[ 97] = { 1,	TP,		SEN(unshare),			"unshare"		},
++[ 97] = { 1,	0,		SEN(unshare),			"unshare"		},
+ /* [ 98] futex */
+ [ 99] = { 2,	0,		SEN(set_robust_list),		"set_robust_list"	},
+ [100] = { 3,	0,		SEN(get_robust_list),		"get_robust_list"	},
+@@ -141,16 +141,16 @@
+ [126] = { 1,	0,		SEN(sched_get_priority_min),	"sched_get_priority_min"},
+ /* [127] sched_rr_get_interval */
+ [128] = { 0,	0,		SEN(restart_syscall),		"restart_syscall"	},
+-[129] = { 2,	TS,		SEN(kill),			"kill"			},
+-[130] = { 2,	TS,		SEN(kill),			"tkill"			},
+-[131] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
++[129] = { 2,	TS|TP,		SEN(kill),			"kill"			},
++[130] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
++[131] = { 3,	TS|TP,		SEN(tgkill),			"tgkill"		},
+ [132] = { 2,	TS,		SEN(sigaltstack),		"sigaltstack"		},
+ [133] = { 2,	TS,		SEN(rt_sigsuspend),		"rt_sigsuspend"		},
+ [134] = { 4,	TS,		SEN(rt_sigaction),		"rt_sigaction"		},
+ [135] = { 4,	TS,		SEN(rt_sigprocmask),		"rt_sigprocmask"	},
+ [136] = { 2,	TS,		SEN(rt_sigpending),		"rt_sigpending"		},
+ /* [137] rt_sigtimedwait */
+-[138] = { 3,	TS,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
++[138] = { 3,	TS|TP,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
+ [139] = { 0,	TS,		SEN(rt_sigreturn),		"rt_sigreturn"		},
+ [140] = { 3,	0,		SEN(setpriority),		"setpriority"		},
+ [141] = { 2,	0,		SEN(getpriority),		"getpriority"		},
+diff --git a/linux/64/syscallent.h b/linux/64/syscallent.h
+index 9531a05..3fb1305 100644
+--- a/linux/64/syscallent.h
++++ b/linux/64/syscallent.h
+@@ -102,7 +102,7 @@
+ [ 94] = { 1,	TP|SE,		SEN(exit),			"exit_group"		},
+ [ 95] = { 5,	TP,		SEN(waitid),			"waitid"		},
+ [ 96] = { 1,	0,		SEN(set_tid_address),		"set_tid_address"	},
+-[ 97] = { 1,	TP,		SEN(unshare),			"unshare"		},
++[ 97] = { 1,	0,		SEN(unshare),			"unshare"		},
+ [ 98] = { 6,	0,		SEN(futex_time64),		"futex"			},
+ [ 99] = { 2,	0,		SEN(set_robust_list),		"set_robust_list"	},
+ [100] = { 3,	0,		SEN(get_robust_list),		"get_robust_list"	},
+@@ -134,16 +134,16 @@
+ [126] = { 1,	0,		SEN(sched_get_priority_min),	"sched_get_priority_min"},
+ [127] = { 2,	0,		SEN(sched_rr_get_interval_time64),"sched_rr_get_interval"},
+ [128] = { 0,	0,		SEN(restart_syscall),		"restart_syscall"	},
+-[129] = { 2,	TS,		SEN(kill),			"kill"			},
+-[130] = { 2,	TS,		SEN(kill),			"tkill"			},
+-[131] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
++[129] = { 2,	TS|TP,		SEN(kill),			"kill"			},
++[130] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
++[131] = { 3,	TS|TP,		SEN(tgkill),			"tgkill"		},
+ [132] = { 2,	TS,		SEN(sigaltstack),		"sigaltstack"		},
+ [133] = { 2,	TS,		SEN(rt_sigsuspend),		"rt_sigsuspend"		},
+ [134] = { 4,	TS,		SEN(rt_sigaction),		"rt_sigaction"		},
+ [135] = { 4,	TS,		SEN(rt_sigprocmask),		"rt_sigprocmask"	},
+ [136] = { 2,	TS,		SEN(rt_sigpending),		"rt_sigpending"		},
+ [137] = { 4,	TS,		SEN(rt_sigtimedwait_time64),	"rt_sigtimedwait"	},
+-[138] = { 3,	TS,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
++[138] = { 3,	TS|TP,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
+ [139] = { 0,	TS,		SEN(rt_sigreturn),		"rt_sigreturn"		},
+ [140] = { 3,	0,		SEN(setpriority),		"setpriority"		},
+ [141] = { 2,	0,		SEN(getpriority),		"getpriority"		},
+diff --git a/linux/alpha/syscallent.h b/linux/alpha/syscallent.h
+index b0d680b..93f0b0e 100644
+--- a/linux/alpha/syscallent.h
++++ b/linux/alpha/syscallent.h
+@@ -44,7 +44,7 @@
+ [ 34] = { 5,	0,		SEN(printargs),			"osf_chflags"		}, /* not implemented */
+ [ 35] = { 5,	0,		SEN(printargs),			"osf_fchflags"		}, /* not implemented */
+ [ 36] = { 0,	0,		SEN(sync),			"sync"			},
+-[ 37] = { 2,	TS,		SEN(kill),			"kill"			},
++[ 37] = { 2,	TS|TP,		SEN(kill),			"kill"			},
+ [ 38] = { 5,	TF|TST|TSTA,	SEN(printargs),			"osf_old_stat"		}, /* not implemented */
+ [ 39] = { 2,	0,		SEN(setpgid),			"setpgid"		},
+ [ 40] = { 5,	TF|TLST|TSTA,	SEN(printargs),			"osf_old_lstat"		}, /* not implemented */
+@@ -153,7 +153,7 @@
+ [143] = { 5,	0,		SEN(printargs),			"osf_sethostid"		}, /* not implemented */
+ [144] = { 2,	0,		SEN(getrlimit),			"getrlimit"		},
+ [145] = { 2,	0,		SEN(setrlimit),			"setrlimit"		},
+-[146] = { 5,	0,		SEN(printargs),			"osf_old_killpg"	}, /* not implemented */
++[146] = { 5,	TP,		SEN(printargs),			"osf_old_killpg"	}, /* not implemented */
+ [147] = { 0,	0,		SEN(setsid),			"setsid"		},
+ [148] = { 4,	TF,		SEN(quotactl),			"quotactl"		},
+ [149] = { 5,	0,		SEN(printargs),			"osf_oldquota"		}, /* not implemented */
+@@ -300,7 +300,7 @@
+ [353] = { 4,	TS,		SEN(rt_sigprocmask),		"rt_sigprocmask"	},
+ [354] = { 2,	TS,		SEN(rt_sigpending),		"rt_sigpending"		},
+ [355] = { 4,	TS,		SEN(rt_sigtimedwait_time64),	"rt_sigtimedwait"	},
+-[356] = { 3,	TS,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
++[356] = { 3,	TS|TP,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
+ [357] = { 2,	TS,		SEN(rt_sigsuspend),		"rt_sigsuspend"		},
+ [358] = { 5,	TD,		SEN(select),			"select"		},
+ [359] = { 2,	TCL,		SEN(gettimeofday),		"gettimeofday"		},
+@@ -325,7 +325,7 @@
+ [378] = { 0,	PU|NF,		SEN(gettid),			"gettid"		},
+ [379] = { 3,	TD,		SEN(readahead),			"readahead"		},
+ [380] = { },
+-[381] = { 2,	TS,		SEN(kill),			"tkill"			},
++[381] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
+ [382] = { 5,	TF,		SEN(setxattr),			"setxattr"		},
+ [383] = { 5,	TF,		SEN(setxattr),			"lsetxattr"		},
+ [384] = { 5,	TD,		SEN(fsetxattr),			"fsetxattr"		},
+@@ -367,7 +367,7 @@
+ [421] = { 2,	TCL,		SEN(clock_getres_time64),	"clock_getres"		},
+ [422] = { 4,	0,		SEN(clock_nanosleep_time64),	"clock_nanosleep"	},
+ [423] = { 4,	TI,		SEN(semtimedop_time64),		"semtimedop"		},
+-[424] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
++[424] = { 3,	TS|TP,		SEN(tgkill),			"tgkill"		},
+ [425] = { 2,	TF|TST|TSTA,	SEN(stat64),			"stat64"		},
+ [426] = { 2,	TF|TLST|TSTA,	SEN(lstat64),			"lstat64"		},
+ [427] = { 2,	TD|TFST|TSTA,	SEN(fstat64),			"fstat64"		},
+@@ -408,7 +408,7 @@
+ [462] = { 3,	TD|TF,		SEN(faccessat),			"faccessat"		},
+ [463] = { 6,	TD,		SEN(pselect6_time64),		"pselect6"		},
+ [464] = { 5,	TD,		SEN(ppoll_time64),		"ppoll"			},
+-[465] = { 1,	TP,		SEN(unshare),			"unshare"		},
++[465] = { 1,	0,		SEN(unshare),			"unshare"		},
+ [466] = { 2,	0,		SEN(set_robust_list),		"set_robust_list"	},
+ [467] = { 3,	0,		SEN(get_robust_list),		"get_robust_list"	},
+ [468] = { 6,	TD,		SEN(splice),			"splice"		},
+diff --git a/linux/arm/syscallent.h b/linux/arm/syscallent.h
+index e9eee9f..73497b6 100644
+--- a/linux/arm/syscallent.h
++++ b/linux/arm/syscallent.h
+@@ -44,7 +44,7 @@
+ [ 34] = { 1,	0,		SEN(nice),			"nice"			},
+ [ 35] = { 0,	0,		SEN(ftime),			"ftime"			},
+ [ 36] = { 0,	0,		SEN(sync),			"sync"			},
+-[ 37] = { 2,	TS,		SEN(kill),			"kill"			},
++[ 37] = { 2,	TS|TP,		SEN(kill),			"kill"			},
+ [ 38] = { 2,	TF,		SEN(rename),			"rename"		},
+ [ 39] = { 2,	TF,		SEN(mkdir),			"mkdir"			},
+ [ 40] = { 1,	TF,		SEN(rmdir),			"rmdir"			},
+@@ -185,7 +185,7 @@
+ [175] = { 4,	TS,		SEN(rt_sigprocmask),		"rt_sigprocmask"	},
+ [176] = { 2,	TS,		SEN(rt_sigpending),		"rt_sigpending"		},
+ [177] = { 4,	TS,		SEN(rt_sigtimedwait_time32),	"rt_sigtimedwait"	},
+-[178] = { 3,	TS,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
++[178] = { 3,	TS|TP,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
+ [179] = { 2,	TS,		SEN(rt_sigsuspend),		"rt_sigsuspend"		},
+ [180] = { 6,	TD,		SEN(pread),			"pread64"		},
+ [181] = { 6,	TD,		SEN(pwrite),			"pwrite64"		},
+@@ -245,7 +245,7 @@
+ [235] = { 2,	TF,		SEN(removexattr),		"removexattr"		},
+ [236] = { 2,	TF,		SEN(removexattr),		"lremovexattr"		},
+ [237] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+-[238] = { 2,	TS,		SEN(kill),			"tkill"			},
++[238] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
+ [239] = { 4,	TD|TN,		SEN(sendfile64),		"sendfile64"		},
+ [240] = { 6,	0,		SEN(futex_time32),		"futex"			},
+ [241] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+@@ -275,7 +275,7 @@
+ [265] = { 4,	0,		SEN(clock_nanosleep_time32),	"clock_nanosleep"	},
+ [266] = { 3,	TF|TSF|TSFA,	SEN(statfs64),			"statfs64"		},
+ [267] = { 3,	TD|TFSF|TSFA,	SEN(fstatfs64),			"fstatfs64"		},
+-[268] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
++[268] = { 3,	TS|TP,		SEN(tgkill),			"tgkill"		},
+ [269] = { 2,	TF,		SEN(utimes),			"utimes"		},
+ [270] = { 6,	TD,		SEN(fadvise64_64),		"fadvise64_64"		},
+ [271] = { 3,	0,		SEN(printargs),			"pciconfig_iobase"	},
+@@ -344,7 +344,7 @@
+ [334] = { 3,	TD|TF,		SEN(faccessat),			"faccessat"		},
+ [335] = { 6,	TD,		SEN(pselect6_time32),		"pselect6"		},
+ [336] = { 5,	TD,		SEN(ppoll_time32),		"ppoll"			},
+-[337] = { 1,	TP,		SEN(unshare),			"unshare"		},
++[337] = { 1,	0,		SEN(unshare),			"unshare"		},
+ [338] = { 2,	0,		SEN(set_robust_list),		"set_robust_list"	},
+ [339] = { 3,	0,		SEN(get_robust_list),		"get_robust_list"	},
+ [340] = { 6,	TD,		SEN(splice),			"splice"		},
+diff --git a/linux/avr32/syscallent.h b/linux/avr32/syscallent.h
+index 0b24353..b3cf2da 100644
+--- a/linux/avr32/syscallent.h
++++ b/linux/avr32/syscallent.h
+@@ -43,7 +43,7 @@
+ [ 34] = { 1,	TF,		SEN(chroot),			"chroot"		},
+ [ 35] = { 0,	0,		SEN(sync),			"sync"			},
+ [ 36] = { 1,	TD,		SEN(fsync),			"fsync"			},
+-[ 37] = { 2,	TS,		SEN(kill),			"kill"			},
++[ 37] = { 2,	TS|TP,		SEN(kill),			"kill"			},
+ [ 38] = { 2,	TF,		SEN(rename),			"rename"		},
+ [ 39] = { 2,	TF,		SEN(mkdir),			"mkdir"			},
+ [ 40] = { 1,	TF,		SEN(rmdir),			"rmdir"			},
+@@ -78,7 +78,7 @@
+ [ 69] = { 4,	TS,		SEN(rt_sigprocmask),		"rt_sigprocmask"	},
+ [ 70] = { 2,	TS,		SEN(rt_sigpending),		"rt_sigpending"		},
+ [ 71] = { 4,	TS,		SEN(rt_sigtimedwait_time32),	"rt_sigtimedwait"	},
+-[ 72] = { 3,	TS,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
++[ 72] = { 3,	TS|TP,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
+ [ 73] = { 2,	TS,		SEN(rt_sigsuspend),		"rt_sigsuspend"		},
+ [ 74] = { 2,	0,		SEN(sethostname),		"sethostname"		},
+ [ 75] = { 2,	0,		SEN(setrlimit),			"setrlimit"		},
+@@ -196,7 +196,7 @@
+ [187] = { 2,	TF,		SEN(removexattr),		"removexattr"		},
+ [188] = { 2,	TF,		SEN(removexattr),		"lremovexattr"		},
+ [189] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+-[190] = { 2,	TS,		SEN(kill),			"tkill"			},
++[190] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
+ [191] = { 4,	TD|TN,		SEN(sendfile64),		"sendfile64"		},
+ [192] = { 6,	0,		SEN(futex_time32),		"futex"			},
+ [193] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+@@ -227,7 +227,7 @@
+ [218] = { 4,	0,		SEN(clock_nanosleep_time32),	"clock_nanosleep"	},
+ [219] = { 3,	TF|TSF|TSFA,	SEN(statfs64),			"statfs64"		},
+ [220] = { 3,	TD|TFSF|TSFA,	SEN(fstatfs64),			"fstatfs64"		},
+-[221] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
++[221] = { 3,	TS|TP,		SEN(tgkill),			"tgkill"		},
+ [222] = { },
+ [223] = { 2,	TF,		SEN(utimes),			"utimes"		},
+ [224] = { 6,	TD,		SEN(fadvise64_64),		"fadvise64_64"		},
+@@ -264,7 +264,7 @@
+ [255] = { 3,	TD|TF,		SEN(faccessat),			"faccessat"		},
+ [256] = { 6,	TD,		SEN(pselect6_time32),		"pselect6"		},
+ [257] = { 5,	TD,		SEN(ppoll_time32),		"ppoll"			},
+-[258] = { 1,	TP,		SEN(unshare),			"unshare"		},
++[258] = { 1,	0,		SEN(unshare),			"unshare"		},
+ [259] = { 2,	0,		SEN(set_robust_list),		"set_robust_list"	},
+ [260] = { 3,	0,		SEN(get_robust_list),		"get_robust_list"	},
+ [261] = { 6,	TD,		SEN(splice),			"splice"		},
+diff --git a/linux/bfin/syscallent.h b/linux/bfin/syscallent.h
+index 4deafe0..b93a844 100644
+--- a/linux/bfin/syscallent.h
++++ b/linux/bfin/syscallent.h
+@@ -44,7 +44,7 @@
+ [ 34] = { 1,	0,		SEN(nice),			"nice"			},
+ [ 35] = { 0,	0,		SEN(ftime),			"ftime"			},
+ [ 36] = { 0,	0,		SEN(sync),			"sync"			},
+-[ 37] = { 2,	TS,		SEN(kill),			"kill"			},
++[ 37] = { 2,	TS|TP,		SEN(kill),			"kill"			},
+ [ 38] = { 2,	TF,		SEN(rename),			"rename"		},
+ [ 39] = { 2,	TF,		SEN(mkdir),			"mkdir"			},
+ [ 40] = { 1,	TF,		SEN(rmdir),			"rmdir"			},
+@@ -185,7 +185,7 @@
+ [175] = { 4,	TS,		SEN(rt_sigprocmask),		"rt_sigprocmask"	},
+ [176] = { 2,	TS,		SEN(rt_sigpending),		"rt_sigpending"		},
+ [177] = { 4,	TS,		SEN(rt_sigtimedwait_time32),	"rt_sigtimedwait"	},
+-[178] = { 3,	TS,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
++[178] = { 3,	TS|TP,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
+ [179] = { 2,	TS,		SEN(rt_sigsuspend),		"rt_sigsuspend"		},
+ [180] = { 5,	TD,		SEN(pread),			"pread"			},
+ [181] = { 5,	TD,		SEN(pwrite),			"pwrite"		},
+@@ -244,7 +244,7 @@
+ [235] = { 2,	TF,		SEN(removexattr),		"removexattr"		},
+ [236] = { 2,	TF,		SEN(removexattr),		"lremovexattr"		},
+ [237] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+-[238] = { 2,	TS,		SEN(kill),			"tkill"			},
++[238] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
+ [239] = { 4,	TD|TN,		SEN(sendfile64),		"sendfile64"		},
+ [240] = { 6,	0,		SEN(futex_time32),		"futex"			},
+ [241] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+@@ -277,7 +277,7 @@
+ [268] = { 4,	0,		SEN(clock_nanosleep_time32),	"clock_nanosleep"	},
+ [269] = { 3,	TF|TSF|TSFA,	SEN(statfs64),			"statfs64"		},
+ [270] = { 3,	TD|TFSF|TSFA,	SEN(fstatfs64),			"fstatfs64"		},
+-[271] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
++[271] = { 3,	TS|TP,		SEN(tgkill),			"tgkill"		},
+ [272] = { 2,	TF,		SEN(utimes),			"utimes"		},
+ [273] = { 6,	TD,		SEN(fadvise64_64),		"fadvise64_64"		},
+ [274] = { 5,	0,		SEN(vserver),			"vserver"		},
+@@ -316,7 +316,7 @@
+ [307] = { 3,	TD|TF,		SEN(faccessat),			"faccessat"		},
+ [308] = { 6,	TD,		SEN(pselect6_time32),		"pselect6"		},
+ [309] = { 5,	TD,		SEN(ppoll_time32),		"ppoll"			},
+-[310] = { 1,	TP,		SEN(unshare),			"unshare"		},
++[310] = { 1,	0,		SEN(unshare),			"unshare"		},
+ [311] = { 2,	0,		SEN(sram_alloc),		"sram_alloc"		},
+ [312] = { 1,	0,		SEN(printargs),			"sram_free"		},
+ [313] = { 3,	0,		SEN(printargs),			"dma_memcpy"		},
+diff --git a/linux/hppa/syscallent.h b/linux/hppa/syscallent.h
+index dca6c41..31341d4 100644
+--- a/linux/hppa/syscallent.h
++++ b/linux/hppa/syscallent.h
+@@ -40,7 +40,7 @@
+ [ 34] = { 1,	0,		SEN(nice),			"nice"			},
+ [ 35] = { 3,	TN,		SEN(accept),			"accept"		},
+ [ 36] = { 0,	0,		SEN(sync),			"sync"			},
+-[ 37] = { 2,	TS,		SEN(kill),			"kill"			},
++[ 37] = { 2,	TS|TP,		SEN(kill),			"kill"			},
+ [ 38] = { 2,	TF,		SEN(rename),			"rename"		},
+ [ 39] = { 2,	TF,		SEN(mkdir),			"mkdir"			},
+ [ 40] = { 1,	TF,		SEN(rmdir),			"rmdir"			},
+@@ -181,7 +181,7 @@
+ [175] = { 4,	TS,		SEN(rt_sigprocmask),		"rt_sigprocmask"	},
+ [176] = { 2,	TS,		SEN(rt_sigpending),		"rt_sigpending"		},
+ [177] = { 4,	TS,		SEN(rt_sigtimedwait_time32),	"rt_sigtimedwait"	},
+-[178] = { 3,	TS,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
++[178] = { 3,	TS|TP,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
+ [179] = { 2,	TS,		SEN(rt_sigsuspend),		"rt_sigsuspend"		},
+ [180] = { 3,	TF,		SEN(chown),			"chown"			},
+ [181] = { 5,	TN,		SEN(setsockopt),		"setsockopt"		},
+@@ -211,7 +211,7 @@
+ [205] = { 5,	0,		SEN(printargs),			"acl_set"		},
+ [206] = { 0,	PU|NF,		SEN(gettid),			"gettid"		},
+ [207] = { 4,	TD,		SEN(readahead),			"readahead"		},
+-[208] = { 2,	TS,		SEN(kill),			"tkill"			},
++[208] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
+ [209] = { 4,	TD|TN,		SEN(sendfile64),		"sendfile64"		},
+ [210] = { 6,	0,		SEN(futex_time32),		"futex"			},
+ [211] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+@@ -262,7 +262,7 @@
+ [256] = { 2,	TCL,		SEN(clock_gettime32),		"clock_gettime"		},
+ [257] = { 2,	TCL,		SEN(clock_getres_time32),	"clock_getres"		},
+ [258] = { 4,	0,		SEN(clock_nanosleep_time32),	"clock_nanosleep"	},
+-[259] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
++[259] = { 3,	TS|TP,		SEN(tgkill),			"tgkill"		},
+ [260] = { 6,	TM,		SEN(mbind),			"mbind"			},
+ [261] = { 5,	TM,		SEN(get_mempolicy),		"get_mempolicy"		},
+ [262] = { 3,	TM,		SEN(set_mempolicy),		"set_mempolicy"		},
+@@ -291,7 +291,7 @@
+ [285] = { 4,	TD|TF,		SEN(readlinkat),		"readlinkat"		},
+ [286] = { 3,	TD|TF,		SEN(fchmodat),			"fchmodat"		},
+ [287] = { 3,	TD|TF,		SEN(faccessat),			"faccessat"		},
+-[288] = { 1,	TP,		SEN(unshare),			"unshare"		},
++[288] = { 1,	0,		SEN(unshare),			"unshare"		},
+ [289] = { 2,	0,		SEN(set_robust_list),		"set_robust_list"	},
+ [290] = { 3,	0,		SEN(get_robust_list),		"get_robust_list"	},
+ [291] = { 6,	TD,		SEN(splice),			"splice"		},
+diff --git a/linux/i386/syscallent.h b/linux/i386/syscallent.h
+index 0427870..efe0ff7 100644
+--- a/linux/i386/syscallent.h
++++ b/linux/i386/syscallent.h
+@@ -44,7 +44,7 @@
+ [ 34] = { 1,	0,		SEN(nice),			"nice"			},
+ [ 35] = { 0,	0,		SEN(ftime),			"ftime"			},
+ [ 36] = { 0,	0,		SEN(sync),			"sync"			},
+-[ 37] = { 2,	TS,		SEN(kill),			"kill"			},
++[ 37] = { 2,	TS|TP,		SEN(kill),			"kill"			},
+ [ 38] = { 2,	TF,		SEN(rename),			"rename"		},
+ [ 39] = { 2,	TF,		SEN(mkdir),			"mkdir"			},
+ [ 40] = { 1,	TF,		SEN(rmdir),			"rmdir"			},
+@@ -185,7 +185,7 @@
+ [175] = { 4,	TS,		SEN(rt_sigprocmask),		"rt_sigprocmask"	},
+ [176] = { 2,	TS,		SEN(rt_sigpending),		"rt_sigpending"		},
+ [177] = { 4,	TS,		SEN(rt_sigtimedwait_time32),	"rt_sigtimedwait"	},
+-[178] = { 3,	TS,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
++[178] = { 3,	TS|TP,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
+ [179] = { 2,	TS,		SEN(rt_sigsuspend),		"rt_sigsuspend"		},
+ [180] = { 5,	TD,		SEN(pread),			"pread64"		},
+ [181] = { 5,	TD,		SEN(pwrite),			"pwrite64"		},
+@@ -244,7 +244,7 @@
+ [235] = { 2,	TF,		SEN(removexattr),		"removexattr"		},
+ [236] = { 2,	TF,		SEN(removexattr),		"lremovexattr"		},
+ [237] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+-[238] = { 2,	TS,		SEN(kill),			"tkill"			},
++[238] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
+ [239] = { 4,	TD|TN,		SEN(sendfile64),		"sendfile64"		},
+ [240] = { 6,	0,		SEN(futex_time32),		"futex"			},
+ [241] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+@@ -276,7 +276,7 @@
+ [267] = { 4,	0,		SEN(clock_nanosleep_time32),	"clock_nanosleep"	},
+ [268] = { 3,	TF|TSF|TSFA,	SEN(statfs64),			"statfs64"		},
+ [269] = { 3,	TD|TFSF|TSFA,	SEN(fstatfs64),			"fstatfs64"		},
+-[270] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
++[270] = { 3,	TS|TP,		SEN(tgkill),			"tgkill"		},
+ [271] = { 2,	TF,		SEN(utimes),			"utimes"		},
+ [272] = { 6,	TD,		SEN(fadvise64_64),		"fadvise64_64"		},
+ [273] = { 5,	0,		SEN(vserver),			"vserver"		},
+@@ -316,7 +316,7 @@
+ [307] = { 3,	TD|TF,		SEN(faccessat),			"faccessat"		},
+ [308] = { 6,	TD,		SEN(pselect6_time32),		"pselect6"		},
+ [309] = { 5,	TD,		SEN(ppoll_time32),		"ppoll"			},
+-[310] = { 1,	TP,		SEN(unshare),			"unshare"		},
++[310] = { 1,	0,		SEN(unshare),			"unshare"		},
+ [311] = { 2,	0,		SEN(set_robust_list),		"set_robust_list"	},
+ [312] = { 3,	0,		SEN(get_robust_list),		"get_robust_list"	},
+ [313] = { 6,	TD,		SEN(splice),			"splice"		},
+@@ -390,7 +390,7 @@
+ [381] = { 2,	0,		SEN(pkey_alloc),		"pkey_alloc"		},
+ [382] = { 1,	0,		SEN(pkey_free),			"pkey_free"		},
+ [383] = { 5,	TD|TF|TSTA,	SEN(statx),			"statx"			},
+-[384] = { 2,	TP,		SEN(arch_prctl),		"arch_prctl"		},
++[384] = { 2,	0,		SEN(arch_prctl),		"arch_prctl"		},
+ [385] = { 6,	0,		SEN(io_pgetevents_time32),	"io_pgetevents"		},
+ [386] = { 4,	0,		SEN(rseq),			"rseq"			},
+ /* room for arch specific calls */
+diff --git a/linux/ia64/syscallent.h b/linux/ia64/syscallent.h
+index 9098488..8aeda41 100644
+--- a/linux/ia64/syscallent.h
++++ b/linux/ia64/syscallent.h
+@@ -49,7 +49,7 @@
+ [BASE_NR +  26] = { 0,	0,		SEN(sync),			"sync"			},
+ [BASE_NR +  27] = { 1,	TD,		SEN(fsync),			"fsync"			},
+ [BASE_NR +  28] = { 1,	TD,		SEN(fdatasync),			"fdatasync"		},
+-[BASE_NR +  29] = { 2,	TS,		SEN(kill),			"kill"			},
++[BASE_NR +  29] = { 2,	TS|TP,		SEN(kill),			"kill"			},
+ [BASE_NR +  30] = { 2,	TF,		SEN(rename),			"rename"		},
+ [BASE_NR +  31] = { 2,	TF,		SEN(mkdir),			"mkdir"			},
+ [BASE_NR +  32] = { 1,	TF,		SEN(rmdir),			"rmdir"			},
+@@ -176,7 +176,7 @@
+ [BASE_NR + 153] = { 4,	TS,		SEN(rt_sigaction),		"rt_sigaction"		},
+ [BASE_NR + 154] = { 2,	TS,		SEN(rt_sigpending),		"rt_sigpending"		},
+ [BASE_NR + 155] = { 4,	TS,		SEN(rt_sigprocmask),		"rt_sigprocmask"	},
+-[BASE_NR + 156] = { 3,	TS,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
++[BASE_NR + 156] = { 3,	TS|TP,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
+ [BASE_NR + 157] = { 0,	TS,		SEN(rt_sigreturn),		"rt_sigreturn"		},
+ [BASE_NR + 158] = { 2,	TS,		SEN(rt_sigsuspend),		"rt_sigsuspend"		},
+ [BASE_NR + 159] = { 4,	TS,		SEN(rt_sigtimedwait_time64),	"rt_sigtimedwait"	},
+@@ -225,13 +225,13 @@
+ [BASE_NR + 202] = { 2,	TF,		SEN(removexattr),		"removexattr"		},
+ [BASE_NR + 203] = { 2,	TF,		SEN(removexattr),		"lremovexattr"		},
+ [BASE_NR + 204] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+-[BASE_NR + 205] = { 2,	TS,		SEN(kill),			"tkill"			},
++[BASE_NR + 205] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
+ [BASE_NR + 206] = { 6,	0,		SEN(futex_time64),		"futex"			},
+ [BASE_NR + 207] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+ [BASE_NR + 208] = { 3,	0,		SEN(sched_getaffinity),		"sched_getaffinity"	},
+ [BASE_NR + 209] = { 1,	0,		SEN(set_tid_address),		"set_tid_address"	},
+ [BASE_NR + 210] = { 4,	TD,		SEN(fadvise64),			"fadvise64"		},
+-[BASE_NR + 211] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
++[BASE_NR + 211] = { 3,	TS|TP,		SEN(tgkill),			"tgkill"		},
+ [BASE_NR + 212] = { 1,	TP|SE,		SEN(exit),			"exit_group"		},
+ [BASE_NR + 213] = { 3,	0,		SEN(lookup_dcookie),		"lookup_dcookie"	},
+ [BASE_NR + 214] = { 2,	TM,		SEN(io_setup),			"io_setup"		},
+@@ -292,7 +292,7 @@
+ [BASE_NR + 269] = { 3,	TD|TF,		SEN(faccessat),			"faccessat"		},
+ [BASE_NR + 270] = { 6,	TD,		SEN(pselect6_time64),		"pselect6"		},
+ [BASE_NR + 271] = { 5,	TD,		SEN(ppoll_time64),		"ppoll"			},
+-[BASE_NR + 272] = { 1,	TP,		SEN(unshare),			"unshare"		},
++[BASE_NR + 272] = { 1,	0,		SEN(unshare),			"unshare"		},
+ [BASE_NR + 273] = { 6,	TD,		SEN(splice),			"splice"		},
+ [BASE_NR + 274] = { 2,	0,		SEN(set_robust_list),		"set_robust_list"	},
+ [BASE_NR + 275] = { 3,	0,		SEN(get_robust_list),		"get_robust_list"	},
+diff --git a/linux/m68k/syscallent.h b/linux/m68k/syscallent.h
+index 315dbb6..1876bed 100644
+--- a/linux/m68k/syscallent.h
++++ b/linux/m68k/syscallent.h
+@@ -44,7 +44,7 @@
+ [ 34] = { 1,	0,		SEN(nice),			"nice"			},
+ [ 35] = { 0,	0,		SEN(ftime),			"ftime"			},
+ [ 36] = { 0,	0,		SEN(sync),			"sync"			},
+-[ 37] = { 2,	TS,		SEN(kill),			"kill"			},
++[ 37] = { 2,	TS|TP,		SEN(kill),			"kill"			},
+ [ 38] = { 2,	TF,		SEN(rename),			"rename"		},
+ [ 39] = { 2,	TF,		SEN(mkdir),			"mkdir"			},
+ [ 40] = { 1,	TF,		SEN(rmdir),			"rmdir"			},
+@@ -185,7 +185,7 @@
+ [175] = { 4,	TS,		SEN(rt_sigprocmask),		"rt_sigprocmask"	},
+ [176] = { 2,	TS,		SEN(rt_sigpending),		"rt_sigpending"		},
+ [177] = { 4,	TS,		SEN(rt_sigtimedwait_time32),	"rt_sigtimedwait"	},
+-[178] = { 3,	TS,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
++[178] = { 3,	TS|TP,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
+ [179] = { 2,	TS,		SEN(rt_sigsuspend),		"rt_sigsuspend"		},
+ [180] = { 5,	TD,		SEN(pread),			"pread64"		},
+ [181] = { 5,	TD,		SEN(pwrite),			"pwrite64"		},
+@@ -228,7 +228,7 @@
+ [218 ... 219] = { },
+ [220] = { 3,	TD,		SEN(getdents64),		"getdents64"		},
+ [221] = { 0,	PU|NF,		SEN(gettid),			"gettid"		},
+-[222] = { 2,	TS,		SEN(kill),			"tkill"			},
++[222] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
+ [223] = { 5,	TF,		SEN(setxattr),			"setxattr"		},
+ [224] = { 5,	TF,		SEN(setxattr),			"lsetxattr"		},
+ [225] = { 5,	TD,		SEN(fsetxattr),			"fsetxattr"		},
+@@ -271,7 +271,7 @@
+ [262] = { 4,	0,		SEN(clock_nanosleep_time32),	"clock_nanosleep"	},
+ [263] = { 3,	TF|TSF|TSFA,	SEN(statfs64),			"statfs64"		},
+ [264] = { 3,	TD|TFSF|TSFA,	SEN(fstatfs64),			"fstatfs64"		},
+-[265] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
++[265] = { 3,	TS|TP,		SEN(tgkill),			"tgkill"		},
+ [266] = { 2,	TF,		SEN(utimes),			"utimes"		},
+ [267] = { 6,	TD,		SEN(fadvise64_64),		"fadvise64_64"		},
+ [268] = { 6,	TM,		SEN(mbind),			"mbind"			},
+@@ -309,7 +309,7 @@
+ [300] = { 3,	TD|TF,		SEN(faccessat),			"faccessat"		},
+ [301] = { 6,	TD,		SEN(pselect6_time32),		"pselect6"		},
+ [302] = { 5,	TD,		SEN(ppoll_time32),		"ppoll"			},
+-[303] = { 1,	TP,		SEN(unshare),			"unshare"		},
++[303] = { 1,	0,		SEN(unshare),			"unshare"		},
+ [304] = { 2,	0,		SEN(set_robust_list),		"set_robust_list"	},
+ [305] = { 3,	0,		SEN(get_robust_list),		"get_robust_list"	},
+ [306] = { 6,	TD,		SEN(splice),			"splice"		},
+diff --git a/linux/microblaze/syscallent.h b/linux/microblaze/syscallent.h
+index c17aad1..5d071bc 100644
+--- a/linux/microblaze/syscallent.h
++++ b/linux/microblaze/syscallent.h
+@@ -44,7 +44,7 @@
+ [ 34] = { 1,	0,		SEN(nice),			"nice"			},
+ [ 35] = { 0,	0,		SEN(ftime),			"ftime"			},
+ [ 36] = { 0,	0,		SEN(sync),			"sync"			},
+-[ 37] = { 2,	TS,		SEN(kill),			"kill"			},
++[ 37] = { 2,	TS|TP,		SEN(kill),			"kill"			},
+ [ 38] = { 2,	TF,		SEN(rename),			"rename"		},
+ [ 39] = { 2,	TF,		SEN(mkdir),			"mkdir"			},
+ [ 40] = { 1,	TF,		SEN(rmdir),			"rmdir"			},
+@@ -185,7 +185,7 @@
+ [175] = { 4,	TS,		SEN(rt_sigprocmask),		"rt_sigprocmask"	},
+ [176] = { 2,	TS,		SEN(rt_sigpending),		"rt_sigpending"		},
+ [177] = { 4,	TS,		SEN(rt_sigtimedwait_time32),	"rt_sigtimedwait"	},
+-[178] = { 3,	TS,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
++[178] = { 3,	TS|TP,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
+ [179] = { 2,	TS,		SEN(rt_sigsuspend),		"rt_sigsuspend"		},
+ [180] = { 5,	TD,		SEN(pread),			"pread64"		},
+ [181] = { 5,	TD,		SEN(pwrite),			"pwrite64"		},
+@@ -244,7 +244,7 @@
+ [235] = { 2,	TF,		SEN(removexattr),		"removexattr"		},
+ [236] = { 2,	TF,		SEN(removexattr),		"lremovexattr"		},
+ [237] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+-[238] = { 2,	TS,		SEN(kill),			"tkill"			},
++[238] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
+ [239] = { 4,	TD|TN,		SEN(sendfile64),		"sendfile64"		},
+ [240] = { 6,	0,		SEN(futex_time32),		"futex"			},
+ [241] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+@@ -276,7 +276,7 @@
+ [267] = { 4,	0,		SEN(clock_nanosleep_time32),	"clock_nanosleep"	},
+ [268] = { 3,	TF|TSF|TSFA,	SEN(statfs64),			"statfs64"		},
+ [269] = { 3,	TD|TFSF|TSFA,	SEN(fstatfs64),			"fstatfs64"		},
+-[270] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
++[270] = { 3,	TS|TP,		SEN(tgkill),			"tgkill"		},
+ [271] = { 2,	TF,		SEN(utimes),			"utimes"		},
+ [272] = { 6,	TD,		SEN(fadvise64_64),		"fadvise64_64"		},
+ [273] = { 5,	0,		SEN(vserver),			"vserver"		},
+@@ -316,7 +316,7 @@
+ [307] = { 3,	TD|TF,		SEN(faccessat),			"faccessat"		},
+ [308] = { 6,	TD,		SEN(pselect6_time32),		"pselect6"		},
+ [309] = { 5,	TD,		SEN(ppoll_time32),		"ppoll"			},
+-[310] = { 1,	TP,		SEN(unshare),			"unshare"		},
++[310] = { 1,	0,		SEN(unshare),			"unshare"		},
+ [311] = { 2,	0,		SEN(set_robust_list),		"set_robust_list"	},
+ [312] = { 3,	0,		SEN(get_robust_list),		"get_robust_list"	},
+ [313] = { 6,	TD,		SEN(splice),			"splice"		},
+diff --git a/linux/mips/syscallent-compat.h b/linux/mips/syscallent-compat.h
+index 918f110..61ccfe4 100644
+--- a/linux/mips/syscallent-compat.h
++++ b/linux/mips/syscallent-compat.h
+@@ -42,7 +42,7 @@
+ [  34] = { 0,	0,	SEN(printargs),		"svr4_nice"	},
+ [  35] = { 0,	TF|TSF|TSFA,SEN(printargs),		"svr4_statfs"	},
+ [  36] = { 0,	0,	SEN(printargs),		"svr4_sync"	},
+-[  37] = { 0,	0,	SEN(printargs),		"svr4_kill"	},
++[  37] = { 0,	TP,	SEN(printargs),		"svr4_kill"	},
+ [  38] = { 0,	TD|TFSF|TSFA,SEN(printargs),		"svr4_fstatfs"	},
+ [  39] = { 0,	0,	SEN(printargs),		"svr4_setpgrp"	},
+ [  40] = { 0,	0,	SEN(printargs),		"svr4_cxenix"	},
+@@ -193,7 +193,7 @@
+ [1034] = { 0,	0,	SEN(printargs),		"sysv_nice"	},
+ [1035] = { 0,	TF|TSF|TSFA,SEN(printargs),		"sysv_statfs"	},
+ [1036] = { 0,	0,	SEN(printargs),		"sysv_sync"	},
+-[1037] = { 0,	0,	SEN(printargs),		"sysv_kill"	},
++[1037] = { 0,	TP,	SEN(printargs),		"sysv_kill"	},
+ [1038] = { 0,	TD|TFSF|TSFA,SEN(printargs),		"sysv_fstatfs"	},
+ [1039] = { 0,	0,	SEN(printargs),		"sysv_setpgrp"	},
+ [1040] = { 0,	0,	SEN(printargs),		"sysv_syssgi"	},
+@@ -378,7 +378,7 @@
+ [2034] = { 0,	0,	SEN(printargs),		"bsd43_nice"	},
+ [2035] = { 0,	0,	SEN(printargs),		"bsd43_ftime"	},
+ [2036] = { 0,	0,	SEN(printargs),		"bsd43_sync"	},
+-[2037] = { 0,	0,	SEN(printargs),		"bsd43_kill"	},
++[2037] = { 0,	TP,	SEN(printargs),		"bsd43_kill"	},
+ [2038] = { 0,	TF|TST|TSTA,SEN(printargs),		"bsd43_stat"	},
+ [2039] = { 0,	0,	SEN(printargs),		"bsd43_oldsetpgrp"	},
+ [2040] = { 0,	TF|TLST|TSTA,SEN(printargs),		"bsd43_lstat"	},
+@@ -487,7 +487,7 @@
+ [2143] = { 0,	0,	SEN(printargs),		"bsd43_sethostid"	},
+ [2144] = { 0,	0,	SEN(printargs),		"bsd43_getrlimit"	},
+ [2145] = { 0,	0,	SEN(printargs),		"bsd43_setrlimit"	},
+-[2146] = { 0,	0,	SEN(printargs),		"bsd43_killpg"	},
++[2146] = { 0,	TP,	SEN(printargs),		"bsd43_killpg"	},
+ [2147] = { 0,	0,	SEN(printargs),		"bsd43_shmsys"	},
+ [2148] = { 0,	0,	SEN(printargs),		"bsd43_quota"	},
+ [2149] = { 0,	0,	SEN(printargs),		"bsd43_qquota"	},
+@@ -571,7 +571,7 @@
+ [3034] = { 0,	0,	SEN(printargs),		"posix_nice"	},
+ [3035] = { 0,	TF|TSF|TSFA,SEN(printargs),		"posix_statfs"	},
+ [3036] = { 0,	0,	SEN(printargs),		"posix_sync"	},
+-[3037] = { 0,	0,	SEN(printargs),		"posix_kill"	},
++[3037] = { 0,	TP,	SEN(printargs),		"posix_kill"	},
+ [3038] = { 0,	TD|TFSF|TSFA,SEN(printargs),		"posix_fstatfs"	},
+ [3039] = { 0,	0,	SEN(printargs),		"posix_getpgrp"	},
+ [3040] = { 0,	0,	SEN(printargs),		"posix_syssgi"	},
+diff --git a/linux/mips/syscallent-n32.h b/linux/mips/syscallent-n32.h
+index 38773f8..cfd199d 100644
+--- a/linux/mips/syscallent-n32.h
++++ b/linux/mips/syscallent-n32.h
+@@ -68,7 +68,7 @@
+ [BASE_NR +  57] = { 3,	TF|TP|TSD|SE|SI,	SEN(execve),			"execve"		},
+ [BASE_NR +  58] = { 1,	TP|SE,		SEN(exit),			"exit"			},
+ [BASE_NR +  59] = { 4,	TP,		SEN(wait4),			"wait4"			},
+-[BASE_NR +  60] = { 2,	TS,		SEN(kill),			"kill"			},
++[BASE_NR +  60] = { 2,	TS|TP,		SEN(kill),			"kill"			},
+ [BASE_NR +  61] = { 1,	0,		SEN(uname),			"uname"			},
+ [BASE_NR +  62] = { 3,	TI,		SEN(semget),			"semget"		},
+ [BASE_NR +  63] = { 3,	TI,		SEN(semop),			"semop"			},
+@@ -135,7 +135,7 @@
+ [BASE_NR + 124] = { 2,	TC,		SEN(capset),			"capset"		},
+ [BASE_NR + 125] = { 2,	TS,		SEN(rt_sigpending),		"rt_sigpending"		},
+ [BASE_NR + 126] = { 4,	TS,		SEN(rt_sigtimedwait_time32),	"rt_sigtimedwait"	},
+-[BASE_NR + 127] = { 3,	TS,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
++[BASE_NR + 127] = { 3,	TS|TP,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
+ [BASE_NR + 128] = { 2,	TS,		SEN(rt_sigsuspend),		"rt_sigsuspend"		},
+ [BASE_NR + 129] = { 2,	TS,		SEN(sigaltstack),		"sigaltstack"		},
+ [BASE_NR + 130] = { 2,	TF,		SEN(utime),			"utime"			},
+@@ -200,7 +200,7 @@
+ [BASE_NR + 189] = { 2,	TF,		SEN(removexattr),		"removexattr"		},
+ [BASE_NR + 190] = { 2,	TF,		SEN(removexattr),		"lremovexattr"		},
+ [BASE_NR + 191] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+-[BASE_NR + 192] = { 2,	TS,		SEN(kill),			"tkill"			},
++[BASE_NR + 192] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
+ [BASE_NR + 193] = { 1,	TCL,		SEN(time),			"time"			},
+ [BASE_NR + 194] = { 6,	0,		SEN(futex_time32),		"futex"			},
+ [BASE_NR + 195] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+@@ -237,7 +237,7 @@
+ [BASE_NR + 226] = { 2,	TCL,		SEN(clock_gettime32),		"clock_gettime"		},
+ [BASE_NR + 227] = { 2,	TCL,		SEN(clock_getres_time32),	"clock_getres"		},
+ [BASE_NR + 228] = { 4,	0,		SEN(clock_nanosleep_time32),	"clock_nanosleep"	},
+-[BASE_NR + 229] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
++[BASE_NR + 229] = { 3,	TS|TP,		SEN(tgkill),			"tgkill"		},
+ [BASE_NR + 230] = { 2,	TF,		SEN(utimes),			"utimes"		},
+ [BASE_NR + 231] = { 6,	TM,		SEN(mbind),			"mbind"			},
+ [BASE_NR + 232] = { 5,	TM,		SEN(get_mempolicy),		"get_mempolicy"		},
+@@ -274,7 +274,7 @@
+ [BASE_NR + 263] = { 3,	TD|TF,		SEN(faccessat),			"faccessat"		},
+ [BASE_NR + 264] = { 6,	TD,		SEN(pselect6_time32),		"pselect6"		},
+ [BASE_NR + 265] = { 5,	TD,		SEN(ppoll_time32),		"ppoll"			},
+-[BASE_NR + 266] = { 1,	TP,		SEN(unshare),			"unshare"		},
++[BASE_NR + 266] = { 1,	0,		SEN(unshare),			"unshare"		},
+ [BASE_NR + 267] = { 6,	TD,		SEN(splice),			"splice"		},
+ [BASE_NR + 268] = { 4,	TD,		SEN(sync_file_range),		"sync_file_range"	},
+ [BASE_NR + 269] = { 4,	TD,		SEN(tee),			"tee"			},
+diff --git a/linux/mips/syscallent-n64.h b/linux/mips/syscallent-n64.h
+index 0dfd64e..7ef6700 100644
+--- a/linux/mips/syscallent-n64.h
++++ b/linux/mips/syscallent-n64.h
+@@ -68,7 +68,7 @@
+ [BASE_NR +  57] = { 3,	TF|TP|TSD|SE|SI,	SEN(execve),			"execve"		},
+ [BASE_NR +  58] = { 1,	TP|SE,		SEN(exit),			"exit"			},
+ [BASE_NR +  59] = { 4,	TP,		SEN(wait4),			"wait4"			},
+-[BASE_NR +  60] = { 2,	TS,		SEN(kill),			"kill"			},
++[BASE_NR +  60] = { 2,	TS|TP,		SEN(kill),			"kill"			},
+ [BASE_NR +  61] = { 1,	0,		SEN(uname),			"uname"			},
+ [BASE_NR +  62] = { 3,	TI,		SEN(semget),			"semget"		},
+ [BASE_NR +  63] = { 3,	TI,		SEN(semop),			"semop"			},
+@@ -135,7 +135,7 @@
+ [BASE_NR + 124] = { 2,	TC,		SEN(capset),			"capset"		},
+ [BASE_NR + 125] = { 2,	TS,		SEN(rt_sigpending),		"rt_sigpending"		},
+ [BASE_NR + 126] = { 4,	TS,		SEN(rt_sigtimedwait_time64),	"rt_sigtimedwait"	},
+-[BASE_NR + 127] = { 3,	TS,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
++[BASE_NR + 127] = { 3,	TS|TP,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
+ [BASE_NR + 128] = { 2,	TS,		SEN(rt_sigsuspend),		"rt_sigsuspend"		},
+ [BASE_NR + 129] = { 2,	TS,		SEN(sigaltstack),		"sigaltstack"		},
+ [BASE_NR + 130] = { 2,	TF,		SEN(utime),			"utime"			},
+@@ -200,7 +200,7 @@
+ [BASE_NR + 189] = { 2,	TF,		SEN(removexattr),		"removexattr"		},
+ [BASE_NR + 190] = { 2,	TF,		SEN(removexattr),		"lremovexattr"		},
+ [BASE_NR + 191] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+-[BASE_NR + 192] = { 2,	TS,		SEN(kill),			"tkill"			},
++[BASE_NR + 192] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
+ [BASE_NR + 193] = { 1,	TCL,		SEN(time),			"time"			},
+ [BASE_NR + 194] = { 6,	0,		SEN(futex_time64),		"futex"			},
+ [BASE_NR + 195] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+@@ -233,7 +233,7 @@
+ [BASE_NR + 222] = { 2,	TCL,		SEN(clock_gettime64),		"clock_gettime"		},
+ [BASE_NR + 223] = { 2,	TCL,		SEN(clock_getres_time64),	"clock_getres"		},
+ [BASE_NR + 224] = { 4,	0,		SEN(clock_nanosleep_time64),	"clock_nanosleep"	},
+-[BASE_NR + 225] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
++[BASE_NR + 225] = { 3,	TS|TP,		SEN(tgkill),			"tgkill"		},
+ [BASE_NR + 226] = { 2,	TF,		SEN(utimes),			"utimes"		},
+ [BASE_NR + 227] = { 6,	TM,		SEN(mbind),			"mbind"			},
+ [BASE_NR + 228] = { 5,	TM,		SEN(get_mempolicy),		"get_mempolicy"		},
+@@ -270,7 +270,7 @@
+ [BASE_NR + 259] = { 3,	TD|TF,		SEN(faccessat),			"faccessat"		},
+ [BASE_NR + 260] = { 6,	TD,		SEN(pselect6_time64),		"pselect6"		},
+ [BASE_NR + 261] = { 5,	TD,		SEN(ppoll_time64),		"ppoll"			},
+-[BASE_NR + 262] = { 1,	TP,		SEN(unshare),			"unshare"		},
++[BASE_NR + 262] = { 1,	0,		SEN(unshare),			"unshare"		},
+ [BASE_NR + 263] = { 6,	TD,		SEN(splice),			"splice"		},
+ [BASE_NR + 264] = { 4,	TD,		SEN(sync_file_range),		"sync_file_range"	},
+ [BASE_NR + 265] = { 4,	TD,		SEN(tee),			"tee"			},
+diff --git a/linux/mips/syscallent-o32.h b/linux/mips/syscallent-o32.h
+index f4e67e8..d2b26f7 100644
+--- a/linux/mips/syscallent-o32.h
++++ b/linux/mips/syscallent-o32.h
+@@ -46,7 +46,7 @@
+ [BASE_NR +  34] = { 1,	0,		SEN(nice),			"nice"			},
+ [BASE_NR +  35] = { 1,	0,		SEN(ftime),			"ftime"			},
+ [BASE_NR +  36] = { 0,	0,		SEN(sync),			"sync"			},
+-[BASE_NR +  37] = { 2,	TS,		SEN(kill),			"kill"			},
++[BASE_NR +  37] = { 2,	TS|TP,		SEN(kill),			"kill"			},
+ [BASE_NR +  38] = { 2,	TF,		SEN(rename),			"rename"		},
+ [BASE_NR +  39] = { 2,	TF,		SEN(mkdir),			"mkdir"			},
+ [BASE_NR +  40] = { 1,	TF,		SEN(rmdir),			"rmdir"			},
+@@ -207,7 +207,7 @@
+ [BASE_NR + 195] = { 4,	TS,		SEN(rt_sigprocmask),		"rt_sigprocmask"	},
+ [BASE_NR + 196] = { 2,	TS,		SEN(rt_sigpending),		"rt_sigpending"		},
+ [BASE_NR + 197] = { 4,	TS,		SEN(rt_sigtimedwait_time32),	"rt_sigtimedwait"	},
+-[BASE_NR + 198] = { 3,	TS,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
++[BASE_NR + 198] = { 3,	TS|TP,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
+ [BASE_NR + 199] = { 2,	TS,		SEN(rt_sigsuspend),		"rt_sigsuspend"		},
+ [BASE_NR + 200] = { 6,	TD,		SEN(pread),			"pread64"		},
+ [BASE_NR + 201] = { 6,	TD,		SEN(pwrite),			"pwrite64"		},
+@@ -245,7 +245,7 @@
+ [BASE_NR + 233] = { 2,	TF,		SEN(removexattr),		"removexattr"		},
+ [BASE_NR + 234] = { 2,	TF,		SEN(removexattr),		"lremovexattr"		},
+ [BASE_NR + 235] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+-[BASE_NR + 236] = { 2,	TS,		SEN(kill),			"tkill"			},
++[BASE_NR + 236] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
+ [BASE_NR + 237] = { 4,	TD|TN,		SEN(sendfile64),		"sendfile64"		},
+ [BASE_NR + 238] = { 6,	0,		SEN(futex_time32),		"futex"			},
+ [BASE_NR + 239] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+@@ -275,7 +275,7 @@
+ [BASE_NR + 263] = { 2,	TCL,		SEN(clock_gettime32),		"clock_gettime"		},
+ [BASE_NR + 264] = { 2,	TCL,		SEN(clock_getres_time32),	"clock_getres"		},
+ [BASE_NR + 265] = { 4,	0,		SEN(clock_nanosleep_time32),	"clock_nanosleep"	},
+-[BASE_NR + 266] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
++[BASE_NR + 266] = { 3,	TS|TP,		SEN(tgkill),			"tgkill"		},
+ [BASE_NR + 267] = { 2,	TF,		SEN(utimes),			"utimes"		},
+ [BASE_NR + 268] = { 6,	TM,		SEN(mbind),			"mbind"			},
+ [BASE_NR + 269] = { 5,	TM,		SEN(get_mempolicy),		"get_mempolicy"		},
+@@ -312,7 +312,7 @@
+ [BASE_NR + 300] = { 3,	TD|TF,		SEN(faccessat),			"faccessat"		},
+ [BASE_NR + 301] = { 6,	TD,		SEN(pselect6_time32),		"pselect6"		},
+ [BASE_NR + 302] = { 5,	TD,		SEN(ppoll_time32),		"ppoll"			},
+-[BASE_NR + 303] = { 1,	TP,		SEN(unshare),			"unshare"		},
++[BASE_NR + 303] = { 1,	0,		SEN(unshare),			"unshare"		},
+ [BASE_NR + 304] = { 6,	TD,		SEN(splice),			"splice"		},
+ [BASE_NR + 305] = { 7,	TD,		SEN(sync_file_range),		"sync_file_range"	},
+ [BASE_NR + 306] = { 4,	TD,		SEN(tee),			"tee"			},
+diff --git a/linux/powerpc/syscallent.h b/linux/powerpc/syscallent.h
+index 6958eda..b0962b4 100644
+--- a/linux/powerpc/syscallent.h
++++ b/linux/powerpc/syscallent.h
+@@ -44,7 +44,7 @@
+ [ 34] = { 1,	0,		SEN(nice),			"nice"			},
+ [ 35] = { 0,	0,		SEN(ftime),			"ftime"			},
+ [ 36] = { 0,	0,		SEN(sync),			"sync"			},
+-[ 37] = { 2,	TS,		SEN(kill),			"kill"			},
++[ 37] = { 2,	TS|TP,		SEN(kill),			"kill"			},
+ [ 38] = { 2,	TF,		SEN(rename),			"rename"		},
+ [ 39] = { 2,	TF,		SEN(mkdir),			"mkdir"			},
+ [ 40] = { 1,	TF,		SEN(rmdir),			"rmdir"			},
+@@ -184,7 +184,7 @@
+ [174] = { 4,	TS,		SEN(rt_sigprocmask),		"rt_sigprocmask"	},
+ [175] = { 2,	TS,		SEN(rt_sigpending),		"rt_sigpending"		},
+ [176] = { 4,	TS,		SEN(rt_sigtimedwait_time32),	"rt_sigtimedwait"	},
+-[177] = { 3,	TS,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
++[177] = { 3,	TS|TP,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
+ [178] = { 2,	TS,		SEN(rt_sigsuspend),		"rt_sigsuspend"		},
+ [179] = { 6,	TD,		SEN(pread),			"pread64"		},
+ [180] = { 6,	TD,		SEN(pwrite),			"pwrite64"		},
+@@ -215,7 +215,7 @@
+ [205] = { 3,	TM,		SEN(madvise),			"madvise"		},
+ [206] = { 3,	TM,		SEN(mincore),			"mincore"		},
+ [207] = { 0,	PU|NF,		SEN(gettid),			"gettid"		},
+-[208] = { 2,	TS,		SEN(kill),			"tkill"			},
++[208] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
+ [209] = { 5,	TF,		SEN(setxattr),			"setxattr"		},
+ [210] = { 5,	TF,		SEN(setxattr),			"lsetxattr"		},
+ [211] = { 5,	TD,		SEN(fsetxattr),			"fsetxattr"		},
+@@ -257,7 +257,7 @@
+ [247] = { 2,	TCL,		SEN(clock_getres_time32),	"clock_getres"		},
+ [248] = { 4,	0,		SEN(clock_nanosleep_time32),	"clock_nanosleep"	},
+ [249] = { 2,	0,		SEN(printargs),			"swapcontext"		},
+-[250] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
++[250] = { 3,	TS|TP,		SEN(tgkill),			"tgkill"		},
+ [251] = { 2,	TF,		SEN(utimes),			"utimes"		},
+ [252] = { 3,	TF|TSF|TSFA,	SEN(statfs64),			"statfs64"		},
+ [253] = { 3,	TD|TFSF|TSFA,	SEN(fstatfs64),			"fstatfs64"		},
+@@ -289,7 +289,7 @@
+ [279] = { 4,	0,		SEN(printargs),			"spu_create"		},
+ [280] = { 6,	TD,		SEN(pselect6_time32),		"pselect6"		},
+ [281] = { 5,	TD,		SEN(ppoll_time32),		"ppoll"			},
+-[282] = { 1,	TP,		SEN(unshare),			"unshare"		},
++[282] = { 1,	0,		SEN(unshare),			"unshare"		},
+ [283] = { 6,	TD,		SEN(splice),			"splice"		},
+ [284] = { 4,	TD,		SEN(tee),			"tee"			},
+ [285] = { 4,	TD,		SEN(vmsplice),			"vmsplice"		},
+diff --git a/linux/powerpc64/syscallent.h b/linux/powerpc64/syscallent.h
+index 608caed..1a0dfb5 100644
+--- a/linux/powerpc64/syscallent.h
++++ b/linux/powerpc64/syscallent.h
+@@ -44,7 +44,7 @@
+ [ 34] = { 1,	0,		SEN(nice),			"nice"			},
+ [ 35] = { 0,	0,		SEN(ftime),			"ftime"			},
+ [ 36] = { 0,	0,		SEN(sync),			"sync"			},
+-[ 37] = { 2,	TS,		SEN(kill),			"kill"			},
++[ 37] = { 2,	TS|TP,		SEN(kill),			"kill"			},
+ [ 38] = { 2,	TF,		SEN(rename),			"rename"		},
+ [ 39] = { 2,	TF,		SEN(mkdir),			"mkdir"			},
+ [ 40] = { 1,	TF,		SEN(rmdir),			"rmdir"			},
+@@ -184,7 +184,7 @@
+ [174] = { 4,	TS,		SEN(rt_sigprocmask),		"rt_sigprocmask"	},
+ [175] = { 2,	TS,		SEN(rt_sigpending),		"rt_sigpending"		},
+ [176] = { 4,	TS,		SEN(rt_sigtimedwait_time64),	"rt_sigtimedwait"	},
+-[177] = { 3,	TS,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
++[177] = { 3,	TS|TP,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
+ [178] = { 2,	TS,		SEN(rt_sigsuspend),		"rt_sigsuspend"		},
+ [179] = { 4,	TD,		SEN(pread),			"pread64"		},
+ [180] = { 4,	TD,		SEN(pwrite),			"pwrite64"		},
+@@ -210,7 +210,7 @@
+ [205] = { 3,	TM,		SEN(madvise),			"madvise"		},
+ [206] = { 3,	TM,		SEN(mincore),			"mincore"		},
+ [207] = { 0,	PU|NF,		SEN(gettid),			"gettid"		},
+-[208] = { 2,	TS,		SEN(kill),			"tkill"			},
++[208] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
+ [209] = { 5,	TF,		SEN(setxattr),			"setxattr"		},
+ [210] = { 5,	TF,		SEN(setxattr),			"lsetxattr"		},
+ [211] = { 5,	TD,		SEN(fsetxattr),			"fsetxattr"		},
+@@ -252,7 +252,7 @@
+ [247] = { 2,	TCL,		SEN(clock_getres_time64),	"clock_getres"		},
+ [248] = { 4,	0,		SEN(clock_nanosleep_time64),	"clock_nanosleep"	},
+ [249] = { 2,	0,		SEN(printargs),			"swapcontext"		},
+-[250] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
++[250] = { 3,	TS|TP,		SEN(tgkill),			"tgkill"		},
+ [251] = { 2,	TF,		SEN(utimes),			"utimes"		},
+ [252] = { 3,	TF|TSF|TSFA,	SEN(statfs64),			"statfs64"		},
+ [253] = { 3,	TD|TFSF|TSFA,	SEN(fstatfs64),			"fstatfs64"		},
+@@ -284,7 +284,7 @@
+ [279] = { 4,	0,		SEN(printargs),			"spu_create"		},
+ [280] = { 6,	TD,		SEN(pselect6_time64),		"pselect6"		},
+ [281] = { 5,	TD,		SEN(ppoll_time64),		"ppoll"			},
+-[282] = { 1,	TP,		SEN(unshare),			"unshare"		},
++[282] = { 1,	0,		SEN(unshare),			"unshare"		},
+ [283] = { 6,	TD,		SEN(splice),			"splice"		},
+ [284] = { 4,	TD,		SEN(tee),			"tee"			},
+ [285] = { 4,	TD,		SEN(vmsplice),			"vmsplice"		},
+diff --git a/linux/s390/syscallent.h b/linux/s390/syscallent.h
+index c61ad77..105089f 100644
+--- a/linux/s390/syscallent.h
++++ b/linux/s390/syscallent.h
+@@ -46,7 +46,7 @@
+ [ 34] = { 1,	0,		SEN(nice),			"nice"			},
+ [ 35] = { },
+ [ 36] = { 0,	0,		SEN(sync),			"sync"			},
+-[ 37] = { 2,	TS,		SEN(kill),			"kill"			},
++[ 37] = { 2,	TS|TP,		SEN(kill),			"kill"			},
+ [ 38] = { 2,	TF,		SEN(rename),			"rename"		},
+ [ 39] = { 2,	TF,		SEN(mkdir),			"mkdir"			},
+ [ 40] = { 1,	TF,		SEN(rmdir),			"rmdir"			},
+@@ -187,7 +187,7 @@
+ [175] = { 4,	TS,		SEN(rt_sigprocmask),		"rt_sigprocmask"	},
+ [176] = { 2,	TS,		SEN(rt_sigpending),		"rt_sigpending"		},
+ [177] = { 4,	TS,		SEN(rt_sigtimedwait_time32),	"rt_sigtimedwait"	},
+-[178] = { 3,	TS,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
++[178] = { 3,	TS|TP,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
+ [179] = { 2,	TS,		SEN(rt_sigsuspend),		"rt_sigsuspend"		},
+ [180] = { 5,	TD,		SEN(pread),			"pread64"		},
+ [181] = { 5,	TD,		SEN(pwrite),			"pwrite64"		},
+@@ -246,11 +246,11 @@
+ [234] = { 2,	TF,		SEN(removexattr),		"lremovexattr"		},
+ [235] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+ [236] = { 0,	PU|NF,		SEN(gettid),			"gettid"		},
+-[237] = { 2,	TS,		SEN(kill),			"tkill"			},
++[237] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
+ [238] = { 6,	0,		SEN(futex_time32),		"futex"			},
+ [239] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+ [240] = { 3,	0,		SEN(sched_getaffinity),		"sched_getaffinity"	},
+-[241] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
++[241] = { 3,	TS|TP,		SEN(tgkill),			"tgkill"		},
+ [242] = { },
+ [243] = { 2,	TM,		SEN(io_setup),			"io_setup"		},
+ [244] = { 1,	TM,		SEN(io_destroy),		"io_destroy"		},
+@@ -312,7 +312,7 @@
+ [300] = { 3,	TD|TF,		SEN(faccessat),			"faccessat"		},
+ [301] = { 6,	TD,		SEN(pselect6_time32),		"pselect6"		},
+ [302] = { 5,	TD,		SEN(ppoll_time32),		"ppoll"			},
+-[303] = { 1,	TP,		SEN(unshare),			"unshare"		},
++[303] = { 1,	0,		SEN(unshare),			"unshare"		},
+ [304] = { 2,	0,		SEN(set_robust_list),		"set_robust_list"	},
+ [305] = { 3,	0,		SEN(get_robust_list),		"get_robust_list"	},
+ [306] = { 6,	TD,		SEN(splice),			"splice"		},
+diff --git a/linux/s390x/syscallent.h b/linux/s390x/syscallent.h
+index c493757..e9cf57a 100644
+--- a/linux/s390x/syscallent.h
++++ b/linux/s390x/syscallent.h
+@@ -45,7 +45,7 @@
+ [ 34] = { 1,	0,		SEN(nice),			"nice"			},
+ [ 35] = { },
+ [ 36] = { 0,	0,		SEN(sync),			"sync"			},
+-[ 37] = { 2,	TS,		SEN(kill),			"kill"			},
++[ 37] = { 2,	TS|TP,		SEN(kill),			"kill"			},
+ [ 38] = { 2,	TF,		SEN(rename),			"rename"		},
+ [ 39] = { 2,	TF,		SEN(mkdir),			"mkdir"			},
+ [ 40] = { 1,	TF,		SEN(rmdir),			"rmdir"			},
+@@ -176,7 +176,7 @@
+ [175] = { 4,	TS,		SEN(rt_sigprocmask),		"rt_sigprocmask"	},
+ [176] = { 2,	TS,		SEN(rt_sigpending),		"rt_sigpending"		},
+ [177] = { 4,	TS,		SEN(rt_sigtimedwait_time64),	"rt_sigtimedwait"	},
+-[178] = { 3,	TS,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
++[178] = { 3,	TS|TP,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
+ [179] = { 2,	TS,		SEN(rt_sigsuspend),		"rt_sigsuspend"		},
+ [180] = { 4,	TD,		SEN(pread),			"pread64"		},
+ [181] = { 4,	TD,		SEN(pwrite),			"pwrite64"		},
+@@ -230,11 +230,11 @@
+ [234] = { 2,	TF,		SEN(removexattr),		"lremovexattr"		},
+ [235] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+ [236] = { 0,	PU|NF,		SEN(gettid),			"gettid"		},
+-[237] = { 2,	TS,		SEN(kill),			"tkill"			},
++[237] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
+ [238] = { 6,	0,		SEN(futex_time64),		"futex"			},
+ [239] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+ [240] = { 3,	0,		SEN(sched_getaffinity),		"sched_getaffinity"	},
+-[241] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
++[241] = { 3,	TS|TP,		SEN(tgkill),			"tgkill"		},
+ [242] = { },
+ [243] = { 2,	TM,		SEN(io_setup),			"io_setup"		},
+ [244] = { 1,	TM,		SEN(io_destroy),		"io_destroy"		},
+@@ -296,7 +296,7 @@
+ [300] = { 3,	TD|TF,		SEN(faccessat),			"faccessat"		},
+ [301] = { 6,	TD,		SEN(pselect6_time64),		"pselect6"		},
+ [302] = { 5,	TD,		SEN(ppoll_time64),		"ppoll"			},
+-[303] = { 1,	TP,		SEN(unshare),			"unshare"		},
++[303] = { 1,	0,		SEN(unshare),			"unshare"		},
+ [304] = { 2,	0,		SEN(set_robust_list),		"set_robust_list"	},
+ [305] = { 3,	0,		SEN(get_robust_list),		"get_robust_list"	},
+ [306] = { 6,	TD,		SEN(splice),			"splice"		},
+diff --git a/linux/sh/syscallent.h b/linux/sh/syscallent.h
+index 61eb728..70dc7da 100644
+--- a/linux/sh/syscallent.h
++++ b/linux/sh/syscallent.h
+@@ -46,7 +46,7 @@
+ [ 34] = { 1,	0,		SEN(nice),			"nice"			},
+ [ 35] = { 0,	0,		SEN(ftime),			"ftime"			},
+ [ 36] = { 0,	0,		SEN(sync),			"sync"			},
+-[ 37] = { 2,	TS,		SEN(kill),			"kill"			},
++[ 37] = { 2,	TS|TP,		SEN(kill),			"kill"			},
+ [ 38] = { 2,	TF,		SEN(rename),			"rename"		},
+ [ 39] = { 2,	TF,		SEN(mkdir),			"mkdir"			},
+ [ 40] = { 1,	TF,		SEN(rmdir),			"rmdir"			},
+@@ -187,7 +187,7 @@
+ [175] = { 4,	TS,		SEN(rt_sigprocmask),		"rt_sigprocmask"	},
+ [176] = { 2,	TS,		SEN(rt_sigpending),		"rt_sigpending"		},
+ [177] = { 4,	TS,		SEN(rt_sigtimedwait_time32),	"rt_sigtimedwait"	},
+-[178] = { 3,	TS,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
++[178] = { 3,	TS|TP,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
+ [179] = { 2,	TS,		SEN(rt_sigsuspend),		"rt_sigsuspend"		},
+ [180] = { 6,	TD,		SEN(pread),			"pread64"		},
+ [181] = { 6,	TD,		SEN(pwrite),			"pwrite64"		},
+@@ -245,7 +245,7 @@
+ [235] = { 2,	TF,		SEN(removexattr),		"removexattr"		},
+ [236] = { 2,	TF,		SEN(removexattr),		"lremovexattr"		},
+ [237] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+-[238] = { 2,	TS,		SEN(kill),			"tkill"			},
++[238] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
+ [239] = { 4,	TD|TN,		SEN(sendfile64),		"sendfile64"		},
+ [240] = { 6,	0,		SEN(futex_time32),		"futex"			},
+ [241] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+@@ -276,7 +276,7 @@
+ [267] = { 4,	0,		SEN(clock_nanosleep_time32),	"clock_nanosleep"	},
+ [268] = { 3,	TF|TSF|TSFA,	SEN(statfs64),			"statfs64"		},
+ [269] = { 3,	TD|TFSF|TSFA,	SEN(fstatfs64),			"fstatfs64"		},
+-[270] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
++[270] = { 3,	TS|TP,		SEN(tgkill),			"tgkill"		},
+ [271] = { 2,	TF,		SEN(utimes),			"utimes"		},
+ [272] = { 6,	TD,		SEN(fadvise64_64),		"fadvise64_64"		},
+ [273] = { },
+@@ -316,7 +316,7 @@
+ [307] = { 3,	TD|TF,		SEN(faccessat),			"faccessat"		},
+ [308] = { 6,	TD,		SEN(pselect6_time32),		"pselect6"		},
+ [309] = { 5,	TD,		SEN(ppoll_time32),		"ppoll"			},
+-[310] = { 1,	TP,		SEN(unshare),			"unshare"		},
++[310] = { 1,	0,		SEN(unshare),			"unshare"		},
+ [311] = { 2,	0,		SEN(set_robust_list),		"set_robust_list"	},
+ [312] = { 3,	0,		SEN(get_robust_list),		"get_robust_list"	},
+ [313] = { 6,	TD,		SEN(splice),			"splice"		},
+diff --git a/linux/sh64/syscallent.h b/linux/sh64/syscallent.h
+index f681635..eff5dc0 100644
+--- a/linux/sh64/syscallent.h
++++ b/linux/sh64/syscallent.h
+@@ -44,7 +44,7 @@
+ [ 34] = { 1,	0,		SEN(nice),			"nice"			},
+ [ 35] = { 0,	0,		SEN(ftime),			"ftime"			},
+ [ 36] = { 0,	0,		SEN(sync),			"sync"			},
+-[ 37] = { 2,	TS,		SEN(kill),			"kill"			},
++[ 37] = { 2,	TS|TP,		SEN(kill),			"kill"			},
+ [ 38] = { 2,	TF,		SEN(rename),			"rename"		},
+ [ 39] = { 2,	TF,		SEN(mkdir),			"mkdir"			},
+ [ 40] = { 1,	TF,		SEN(rmdir),			"rmdir"			},
+@@ -185,7 +185,7 @@
+ [175] = { 4,	TS,		SEN(rt_sigprocmask),		"rt_sigprocmask"	},
+ [176] = { 2,	TS,		SEN(rt_sigpending),		"rt_sigpending"		},
+ [177] = { 4,	TS,		SEN(rt_sigtimedwait_time64),	"rt_sigtimedwait"	},
+-[178] = { 3,	TS,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
++[178] = { 3,	TS|TP,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
+ [179] = { 2,	TS,		SEN(rt_sigsuspend),		"rt_sigsuspend"		},
+ [180] = { 4,	TD,		SEN(pread),			"pread64"		},
+ [181] = { 4,	TD,		SEN(pwrite),			"pwrite64"		},
+@@ -271,7 +271,7 @@
+ [263] = { 2,	TF,		SEN(removexattr),		"removexattr"		},
+ [264] = { 2,	TF,		SEN(removexattr),		"lremovexattr"		},
+ [265] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+-[266] = { 2,	TS,		SEN(kill),			"tkill"			},
++[266] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
+ [267] = { 4,	TD|TN,		SEN(sendfile64),		"sendfile64"		},
+ [268] = { 6,	0,		SEN(futex_time64),		"futex"			},
+ [269] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+@@ -302,7 +302,7 @@
+ [295] = { 4,	0,		SEN(clock_nanosleep_time64),	"clock_nanosleep"	},
+ [296] = { 3,	TF|TSF|TSFA,	SEN(statfs64),			"statfs64"		},
+ [297] = { 3,	TD|TFSF|TSFA,	SEN(fstatfs64),			"fstatfs64"		},
+-[298] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
++[298] = { 3,	TS|TP,		SEN(tgkill),			"tgkill"		},
+ [299] = { 2,	TF,		SEN(utimes),			"utimes"		},
+ [300] = { 4,	TD,		SEN(fadvise64_64),		"fadvise64_64"		},
+ [301] = { },
+@@ -342,7 +342,7 @@
+ [335] = { 3,	TD|TF,		SEN(faccessat),			"faccessat"		},
+ [336] = { 6,	TD,		SEN(pselect6_time64),		"pselect6"		},
+ [337] = { 5,	TD,		SEN(ppoll_time64),		"ppoll"			},
+-[338] = { 1,	TP,		SEN(unshare),			"unshare"		},
++[338] = { 1,	0,		SEN(unshare),			"unshare"		},
+ [339] = { 2,	0,		SEN(set_robust_list),		"set_robust_list"	},
+ [340] = { 3,	0,		SEN(get_robust_list),		"get_robust_list"	},
+ [341] = { 6,	TD,		SEN(splice),			"splice"		},
+diff --git a/linux/sparc/syscallent.h b/linux/sparc/syscallent.h
+index 3417e7f..8c8bd18 100644
+--- a/linux/sparc/syscallent.h
++++ b/linux/sparc/syscallent.h
+@@ -42,7 +42,7 @@
+ [ 34] = { 1,	0,		SEN(nice),			"nice"			},
+ [ 35] = { 3,	TF,		SEN(chown),			"chown32"		},
+ [ 36] = { 0,	0,		SEN(sync),			"sync"			},
+-[ 37] = { 2,	TS,		SEN(kill),			"kill"			},
++[ 37] = { 2,	TS|TP,		SEN(kill),			"kill"			},
+ [ 38] = { 2,	TF|TST|TSTA,	SEN(stat),			"stat"			},
+ [ 39] = { 4,	TD|TN,		SEN(sendfile),			"sendfile"		},
+ [ 40] = { 2,	TF|TLST|TSTA,	SEN(lstat),			"lstat"			},
+@@ -111,7 +111,7 @@
+ [103] = { 4,	TS,		SEN(rt_sigprocmask),		"rt_sigprocmask"	},
+ [104] = { 2,	TS,		SEN(rt_sigpending),		"rt_sigpending"		},
+ [105] = { 4,	TS,		SEN(rt_sigtimedwait_time32),	"rt_sigtimedwait"	},
+-[106] = { 3,	TS,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
++[106] = { 3,	TS|TP,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
+ [107] = { 2,	TS,		SEN(rt_sigsuspend),		"rt_sigsuspend"		},
+ [108] = { 3,	TC,		SEN(setresuid),			"setresuid32"		},
+ [109] = { 3,	TC,		SEN(getresuid),			"getresuid32"		},
+@@ -192,7 +192,7 @@
+ [184] = { 5,	0,		SEN(query_module),		"query_module"		},
+ [185] = { 2,	0,		SEN(setpgid),			"setpgid"		},
+ [186] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+-[187] = { 2,	TS,		SEN(kill),			"tkill"			},
++[187] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
+ [188] = { 1,	TP|SE,		SEN(exit),			"exit_group"		},
+ [189] = { 1,	0,		SEN(uname),			"uname"			},
+ [190] = { 3,	0,		SEN(init_module),		"init_module"		},
+@@ -216,7 +216,7 @@
+ [208] = { 4,	0,		SEN(lookup_dcookie),		"lookup_dcookie"	},
+ [209] = { 5,	TD,		SEN(fadvise64),			"fadvise64"		},
+ [210] = { 6,	TD,		SEN(fadvise64_64),		"fadvise64_64"		},
+-[211] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
++[211] = { 3,	TS|TP,		SEN(tgkill),			"tgkill"		},
+ [212] = { 3,	TP,		SEN(waitpid),			"waitpid"		},
+ [213] = { 1,	TF,		SEN(swapoff),			"swapoff"		},
+ [214] = { 1,	0,		SEN(sysinfo),			"sysinfo"		},
+@@ -304,7 +304,7 @@
+ [296] = { 3,	TD|TF,		SEN(faccessat),			"faccessat"		},
+ [297] = { 6,	TD,		SEN(pselect6_time32),		"pselect6"		},
+ [298] = { 5,	TD,		SEN(ppoll_time32),		"ppoll"			},
+-[299] = { 1,	TP,		SEN(unshare),			"unshare"		},
++[299] = { 1,	0,		SEN(unshare),			"unshare"		},
+ [300] = { 2,	0,		SEN(set_robust_list),		"set_robust_list"	},
+ [301] = { 3,	0,		SEN(get_robust_list),		"get_robust_list"	},
+ [302] = { 4,	TM,		SEN(migrate_pages),		"migrate_pages"		},
+diff --git a/linux/sparc64/syscallent.h b/linux/sparc64/syscallent.h
+index dd77685..0e0e0c4 100644
+--- a/linux/sparc64/syscallent.h
++++ b/linux/sparc64/syscallent.h
+@@ -41,7 +41,7 @@
+ [ 34] = { 1,	0,		SEN(nice),			"nice"			},
+ [ 35] = { },
+ [ 36] = { 0,	0,		SEN(sync),			"sync"			},
+-[ 37] = { 2,	TS,		SEN(kill),			"kill"			},
++[ 37] = { 2,	TS|TP,		SEN(kill),			"kill"			},
+ [ 38] = { 2,	TF|TST|TSTA,	SEN(stat),			"stat"			},
+ [ 39] = { 4,	TD|TN,		SEN(sendfile),			"sendfile"		},
+ [ 40] = { 2,	TF|TLST|TSTA,	SEN(lstat),			"lstat"			},
+@@ -109,7 +109,7 @@
+ [103] = { 4,	TS,		SEN(rt_sigprocmask),		"rt_sigprocmask"	},
+ [104] = { 2,	TS,		SEN(rt_sigpending),		"rt_sigpending"		},
+ [105] = { 4,	TS,		SEN(rt_sigtimedwait_time64),	"rt_sigtimedwait"	},
+-[106] = { 3,	TS,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
++[106] = { 3,	TS|TP,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
+ [107] = { 2,	TS,		SEN(rt_sigsuspend),		"rt_sigsuspend"		},
+ [108] = { 3,	TC,		SEN(setresuid),			"setresuid"		},
+ [109] = { 3,	TC,		SEN(getresuid),			"getresuid"		},
+@@ -190,7 +190,7 @@
+ [184] = { 5,	0,		SEN(query_module),		"query_module"		},
+ [185] = { 2,	0,		SEN(setpgid),			"setpgid"		},
+ [186] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+-[187] = { 2,	TS,		SEN(kill),			"tkill"			},
++[187] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
+ [188] = { 1,	TP|SE,		SEN(exit),			"exit_group"		},
+ [189] = { 1,	0,		SEN(uname),			"uname"			},
+ [190] = { 3,	0,		SEN(init_module),		"init_module"		},
+@@ -214,7 +214,7 @@
+ [208] = { 3,	0,		SEN(lookup_dcookie),		"lookup_dcookie"	},
+ [209] = { 4,	TD,		SEN(fadvise64),			"fadvise64"		},
+ [210] = { 4,	TD,		SEN(fadvise64_64),		"fadvise64_64"		},
+-[211] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
++[211] = { 3,	TS|TP,		SEN(tgkill),			"tgkill"		},
+ [212] = { 3,	TP,		SEN(waitpid),			"waitpid"		},
+ [213] = { 1,	TF,		SEN(swapoff),			"swapoff"		},
+ [214] = { 1,	0,		SEN(sysinfo),			"sysinfo"		},
+@@ -302,7 +302,7 @@
+ [296] = { 3,	TD|TF,		SEN(faccessat),			"faccessat"		},
+ [297] = { 6,	TD,		SEN(pselect6_time64),		"pselect6"		},
+ [298] = { 5,	TD,		SEN(ppoll_time64),		"ppoll"			},
+-[299] = { 1,	TP,		SEN(unshare),			"unshare"		},
++[299] = { 1,	0,		SEN(unshare),			"unshare"		},
+ [300] = { 2,	0,		SEN(set_robust_list),		"set_robust_list"	},
+ [301] = { 3,	0,		SEN(get_robust_list),		"get_robust_list"	},
+ [302] = { 4,	TM,		SEN(migrate_pages),		"migrate_pages"		},
+diff --git a/linux/syscallent-common.h b/linux/syscallent-common.h
+index 0d3a4db..0ff671e 100644
+--- a/linux/syscallent-common.h
++++ b/linux/syscallent-common.h
+@@ -8,7 +8,7 @@
+ #ifndef BASE_NR
+ # define BASE_NR 0
+ #endif
+-[BASE_NR + 424] = { 4,	TD|TS,		SEN(pidfd_send_signal),		"pidfd_send_signal"	},
++[BASE_NR + 424] = { 4,	TD|TS|TP,		SEN(pidfd_send_signal),		"pidfd_send_signal"	},
+ [BASE_NR + 425] = { 2,	TD,		SEN(io_uring_setup),		"io_uring_setup"	},
+ [BASE_NR + 426] = { 6,	TD|TS,		SEN(io_uring_enter),		"io_uring_enter"	},
+ [BASE_NR + 427] = { 4,	TD|TM,		SEN(io_uring_register),		"io_uring_register"	},
+diff --git a/linux/x32/syscallent.h b/linux/x32/syscallent.h
+index 30e295f..db8ecfd 100644
+--- a/linux/x32/syscallent.h
++++ b/linux/x32/syscallent.h
+@@ -67,7 +67,7 @@
+ [ 59] = { 3,	TF|TP|SE|SI,	SEN(printargs),			"execve#64"		},
+ [ 60] = { 1,	TP|SE,		SEN(exit),			"exit"			},
+ [ 61] = { 4,	TP,		SEN(wait4),			"wait4"			},
+-[ 62] = { 2,	TS,		SEN(kill),			"kill"			},
++[ 62] = { 2,	TS|TP,		SEN(kill),			"kill"			},
+ [ 63] = { 1,	0,		SEN(uname),			"uname"			},
+ [ 64] = { 3,	TI,		SEN(semget),			"semget"		},
+ [ 65] = { 3,	TI,		SEN(semop),			"semop"			},
+@@ -134,7 +134,7 @@
+ [126] = { 2,	TC,		SEN(capset),			"capset"		},
+ [127] = { 2,	TS,		SEN(printargs),			"rt_sigpending#64"	},
+ [128] = { 4,	TS,		SEN(printargs),			"rt_sigtimedwait#64"	},
+-[129] = { 3,	TS,		SEN(printargs),			"rt_sigqueueinfo#64"	},
++[129] = { 3,	TS|TP,		SEN(printargs),			"rt_sigqueueinfo#64"	},
+ [130] = { 2,	TS,		SEN(rt_sigsuspend),		"rt_sigsuspend"		},
+ [131] = { 2,	TS,		SEN(printargs),			"sigaltstack#64"	},
+ [132] = { 2,	TF,		SEN(utime),			"utime"			},
+@@ -163,7 +163,7 @@
+ [155] = { 2,	TF,		SEN(pivotroot),			"pivot_root"		},
+ [156] = { 1,	0,		SEN(printargs),			"_sysctl#64"		},
+ [157] = { 5,	TC,		SEN(prctl),			"prctl"			},
+-[158] = { 2,	TP,		SEN(arch_prctl),		"arch_prctl"		},
++[158] = { 2,	0,		SEN(arch_prctl),		"arch_prctl"		},
+ [159] = { 1,	TCL,		SEN(adjtimex64),		"adjtimex"		},
+ [160] = { 2,	0,		SEN(setrlimit),			"setrlimit"		},
+ [161] = { 1,	TF,		SEN(chroot),			"chroot"		},
+@@ -205,7 +205,7 @@
+ [197] = { 2,	TF,		SEN(removexattr),		"removexattr"		},
+ [198] = { 2,	TF,		SEN(removexattr),		"lremovexattr"		},
+ [199] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+-[200] = { 2,	TS,		SEN(kill),			"tkill"			},
++[200] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
+ [201] = { 1,	TCL,		SEN(time),			"time"			},
+ [202] = { 6,	0,		SEN(futex_time64),		"futex"			},
+ [203] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+@@ -239,7 +239,7 @@
+ [231] = { 1,	TP|SE,		SEN(exit),			"exit_group"		},
+ [232] = { 4,	TD,		SEN(epoll_wait),		"epoll_wait"		},
+ [233] = { 4,	TD,		SEN(epoll_ctl),			"epoll_ctl"		},
+-[234] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
++[234] = { 3,	TS|TP,		SEN(tgkill),			"tgkill"		},
+ [235] = { 2,	TF,		SEN(utimes),			"utimes"		},
+ [236] = { 5,	0,		SEN(printargs),			"vserver#64"		},
+ [237] = { 6,	TM,		SEN(mbind),			"mbind"			},
+@@ -277,7 +277,7 @@
+ [269] = { 3,	TD|TF,		SEN(faccessat),			"faccessat"		},
+ [270] = { 6,	TD,		SEN(pselect6_time64),		"pselect6"		},
+ [271] = { 5,	TD,		SEN(ppoll_time64),		"ppoll"			},
+-[272] = { 1,	TP,		SEN(unshare),			"unshare"		},
++[272] = { 1,	0,		SEN(unshare),			"unshare"		},
+ [273] = { 2,	0,		SEN(printargs),			"set_robust_list#64"	},
+ [274] = { 3,	0,		SEN(printargs),			"get_robust_list#64"	},
+ [275] = { 6,	TD,		SEN(splice),			"splice"		},
+@@ -358,7 +358,7 @@
+ [521] = { 4,	CST,		SEN(ptrace),			"ptrace"		},
+ [522] = { 2,	CST|TS,		SEN(rt_sigpending),		"rt_sigpending"		},
+ [523] = { 4,	CST|TS,		SEN(rt_sigtimedwait_time64),	"rt_sigtimedwait"	},
+-[524] = { 3,	CST|TS,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
++[524] = { 3,	CST|TS|TP,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
+ [525] = { 2,	CST|TS,		SEN(sigaltstack),		"sigaltstack"		},
+ [526] = { 3,	CST,		SEN(timer_create),		"timer_create"		},
+ [527] = { 2,	CST|TD,		SEN(mq_notify),			"mq_notify"		},
+diff --git a/linux/x86_64/syscallent.h b/linux/x86_64/syscallent.h
+index 8423c7d..c69a5aa 100644
+--- a/linux/x86_64/syscallent.h
++++ b/linux/x86_64/syscallent.h
+@@ -67,7 +67,7 @@
+ [ 59] = { 3,	TF|TP|TSD|SE|SI,	SEN(execve),			"execve"		},
+ [ 60] = { 1,	TP|SE,		SEN(exit),			"exit"			},
+ [ 61] = { 4,	TP,		SEN(wait4),			"wait4"			},
+-[ 62] = { 2,	TS,		SEN(kill),			"kill"			},
++[ 62] = { 2,	TS|TP,		SEN(kill),			"kill"			},
+ [ 63] = { 1,	0,		SEN(uname),			"uname"			},
+ [ 64] = { 3,	TI,		SEN(semget),			"semget"		},
+ [ 65] = { 3,	TI,		SEN(semop),			"semop"			},
+@@ -134,7 +134,7 @@
+ [126] = { 2,	TC,		SEN(capset),			"capset"		},
+ [127] = { 2,	TS,		SEN(rt_sigpending),		"rt_sigpending"		},
+ [128] = { 4,	TS,		SEN(rt_sigtimedwait_time64),	"rt_sigtimedwait"	},
+-[129] = { 3,	TS,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
++[129] = { 3,	TS|TP,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
+ [130] = { 2,	TS,		SEN(rt_sigsuspend),		"rt_sigsuspend"		},
+ [131] = { 2,	TS,		SEN(sigaltstack),		"sigaltstack"		},
+ [132] = { 2,	TF,		SEN(utime),			"utime"			},
+@@ -163,7 +163,7 @@
+ [155] = { 2,	TF,		SEN(pivotroot),			"pivot_root"		},
+ [156] = { 1,	0,		SEN(sysctl),			"_sysctl"		},
+ [157] = { 5,	TC,		SEN(prctl),			"prctl"			},
+-[158] = { 2,	TP,		SEN(arch_prctl),		"arch_prctl"		},
++[158] = { 2,	0,		SEN(arch_prctl),		"arch_prctl"		},
+ [159] = { 1,	TCL,		SEN(adjtimex64),		"adjtimex"		},
+ [160] = { 2,	0,		SEN(setrlimit),			"setrlimit"		},
+ [161] = { 1,	TF,		SEN(chroot),			"chroot"		},
+@@ -205,7 +205,7 @@
+ [197] = { 2,	TF,		SEN(removexattr),		"removexattr"		},
+ [198] = { 2,	TF,		SEN(removexattr),		"lremovexattr"		},
+ [199] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+-[200] = { 2,	TS,		SEN(kill),			"tkill"			},
++[200] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
+ [201] = { 1,	TCL,		SEN(time),			"time"			},
+ [202] = { 6,	0,		SEN(futex_time64),		"futex"			},
+ [203] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+@@ -239,7 +239,7 @@
+ [231] = { 1,	TP|SE,		SEN(exit),			"exit_group"		},
+ [232] = { 4,	TD,		SEN(epoll_wait),		"epoll_wait"		},
+ [233] = { 4,	TD,		SEN(epoll_ctl),			"epoll_ctl"		},
+-[234] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
++[234] = { 3,	TS|TP,		SEN(tgkill),			"tgkill"		},
+ [235] = { 2,	TF,		SEN(utimes),			"utimes"		},
+ [236] = { 5,	0,		SEN(vserver),			"vserver"		},
+ [237] = { 6,	TM,		SEN(mbind),			"mbind"			},
+@@ -277,7 +277,7 @@
+ [269] = { 3,	TD|TF,		SEN(faccessat),			"faccessat"		},
+ [270] = { 6,	TD,		SEN(pselect6_time64),		"pselect6"		},
+ [271] = { 5,	TD,		SEN(ppoll_time64),		"ppoll"			},
+-[272] = { 1,	TP,		SEN(unshare),			"unshare"		},
++[272] = { 1,	0,		SEN(unshare),			"unshare"		},
+ [273] = { 2,	0,		SEN(set_robust_list),		"set_robust_list"	},
+ [274] = { 3,	0,		SEN(get_robust_list),		"get_robust_list"	},
+ [275] = { 6,	TD,		SEN(splice),			"splice"		},
+diff --git a/linux/xtensa/syscallent.h b/linux/xtensa/syscallent.h
+index 385630a..61f1dd4 100644
+--- a/linux/xtensa/syscallent.h
++++ b/linux/xtensa/syscallent.h
+@@ -123,9 +123,9 @@
+ [120] = { 0,	PU|NF,		SEN(getpid),			"getpid"		},
+ [121] = { 4,	TP,		SEN(wait4),			"wait4"			},
+ [122] = { 5,	TP,		SEN(waitid),			"waitid"		},
+-[123] = { 2,	TS,		SEN(kill),			"kill"			},
+-[124] = { 2,	TS,		SEN(kill),			"tkill"			},
+-[125] = { 3,	TS,		SEN(tgkill),			"tgkill"		},
++[123] = { 2,	TS|TP,		SEN(kill),			"kill"			},
++[124] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
++[125] = { 3,	TS|TP,		SEN(tgkill),			"tgkill"		},
+ [126] = { 1,	0,		SEN(set_tid_address),		"set_tid_address"	},
+ [127] = { 0,	PU|NF,		SEN(gettid),			"gettid"		},
+ [128] = { 0,	0,		SEN(setsid),			"setsid"		},
+@@ -227,7 +227,7 @@
+ [227] = { 4,	TS,		SEN(rt_sigprocmask),		"rt_sigprocmask"	},
+ [228] = { 2,	TS,		SEN(rt_sigpending),		"rt_sigpending"		},
+ [229] = { 4,	TS,		SEN(rt_sigtimedwait_time32),	"rt_sigtimedwait"	},
+-[230] = { 3,	TS,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
++[230] = { 3,	TS|TP,		SEN(rt_sigqueueinfo),		"rt_sigqueueinfo"	},
+ [231] = { 2,	TS,		SEN(rt_sigsuspend),		"rt_sigsuspend"		},
+ [232] = { 4,	TD,		SEN(mq_open),			"mq_open"		},
+ [233] = { 1,	0,		SEN(mq_unlink),			"mq_unlink"		},
+@@ -263,7 +263,7 @@
+ [263] = { 6,	TM,		SEN(mbind),			"mbind"			},
+ [264] = { 5,	TM,		SEN(get_mempolicy),		"get_mempolicy"		},
+ [265] = { 3,	TM,		SEN(set_mempolicy),		"set_mempolicy"		},
+-[266] = { 1,	TP,		SEN(unshare),			"unshare"		},
++[266] = { 1,	0,		SEN(unshare),			"unshare"		},
+ [267] = { 6,	TM,		SEN(move_pages),		"move_pages"		},
+ [268] = { 6,	TD,		SEN(splice),			"splice"		},
+ [269] = { 4,	TD,		SEN(tee),			"tee"			},
+diff --git a/strace.1.in b/strace.1.in
+index 7564fc2..fed8b5a 100644
+--- a/strace.1.in
++++ b/strace.1.in
+@@ -518,8 +518,8 @@ is deprecated.
+ .B %process
+ .TQ
+ .B process
+-Trace all system calls which involve process management.  This
+-is useful for watching the fork, wait, and exec steps of a process.
++Trace system calls associated with process lifecycle
++(creation, exec, termination).
+ The syntax without a preceding percent sign
+ .RB (\[dq] "-e trace" = process \[dq])
+ is deprecated.
+-- 
+2.1.4
+
diff --git a/SOURCES/0131-Introduce-SYS_FUNC-tkill.patch b/SOURCES/0131-Introduce-SYS_FUNC-tkill.patch
new file mode 100644
index 0000000..c62a050
--- /dev/null
+++ b/SOURCES/0131-Introduce-SYS_FUNC-tkill.patch
@@ -0,0 +1,415 @@
+From 98cb4de5002be3b81c45489200bcab0ae323123d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=81kos=20Uzonyi?= <uzonyi.akos@gmail.com>
+Date: Mon, 27 Jul 2020 20:54:07 +0200
+Subject: [PATCH 131/138] Introduce SYS_FUNC(tkill)
+
+This is going to be needed to implement pidns support
+in tkill syscall decoder.
+
+syscallent*.h files are updated automatically by:
+  git grep -l 'SEN(kill).*"tkill"' |
+  xargs sed -i '/"tkill"/ s/SEN(kill)/SEN(tkill)/'
+
+* signal.c (SYS_FUNC(tkill)): New syscall decoder.
+* linux/32/syscallent.h: Use SEN(tkill) for "tkill" syscall.
+* linux/64/syscallent.h: Likewise.
+* linux/alpha/syscallent.h: Likewise.
+* linux/arm/syscallent.h: Likewise.
+* linux/avr32/syscallent.h: Likewise.
+* linux/bfin/syscallent.h: Likewise.
+* linux/hppa/syscallent.h: Likewise.
+* linux/i386/syscallent.h: Likewise.
+* linux/ia64/syscallent.h: Likewise.
+* linux/m68k/syscallent.h: Likewise.
+* linux/microblaze/syscallent.h: Likewise.
+* linux/mips/syscallent-n32.h: Likewise.
+* linux/mips/syscallent-n64.h: Likewise.
+* linux/mips/syscallent-o32.h: Likewise.
+* linux/powerpc/syscallent.h: Likewise.
+* linux/powerpc64/syscallent.h: Likewise.
+* linux/s390/syscallent.h: Likewise.
+* linux/s390x/syscallent.h: Likewise.
+* linux/sh/syscallent.h: Likewise.
+* linux/sh64/syscallent.h: Likewise.
+* linux/sparc/syscallent.h: Likewise.
+* linux/sparc64/syscallent.h: Likewise.
+* linux/x32/syscallent.h: Likewise.
+* linux/x86_64/syscallent.h: Likewise.
+* linux/xtensa/syscallent.h: Likewise.
+---
+ linux/32/syscallent.h         | 2 +-
+ linux/64/syscallent.h         | 2 +-
+ linux/alpha/syscallent.h      | 2 +-
+ linux/arm/syscallent.h        | 2 +-
+ linux/avr32/syscallent.h      | 2 +-
+ linux/bfin/syscallent.h       | 2 +-
+ linux/hppa/syscallent.h       | 2 +-
+ linux/i386/syscallent.h       | 2 +-
+ linux/ia64/syscallent.h       | 2 +-
+ linux/m68k/syscallent.h       | 2 +-
+ linux/microblaze/syscallent.h | 2 +-
+ linux/mips/syscallent-n32.h   | 2 +-
+ linux/mips/syscallent-n64.h   | 2 +-
+ linux/mips/syscallent-o32.h   | 2 +-
+ linux/powerpc/syscallent.h    | 2 +-
+ linux/powerpc64/syscallent.h  | 2 +-
+ linux/s390/syscallent.h       | 2 +-
+ linux/s390x/syscallent.h      | 2 +-
+ linux/sh/syscallent.h         | 2 +-
+ linux/sh64/syscallent.h       | 2 +-
+ linux/sparc/syscallent.h      | 2 +-
+ linux/sparc64/syscallent.h    | 2 +-
+ linux/x32/syscallent.h        | 2 +-
+ linux/x86_64/syscallent.h     | 2 +-
+ linux/xtensa/syscallent.h     | 2 +-
+ signal.c                      | 9 +++++++++
+ 26 files changed, 34 insertions(+), 25 deletions(-)
+
+diff --git a/linux/32/syscallent.h b/linux/32/syscallent.h
+index c74ab18..79c36e0 100644
+--- a/linux/32/syscallent.h
++++ b/linux/32/syscallent.h
+@@ -142,7 +142,7 @@
+ /* [127] sched_rr_get_interval */
+ [128] = { 0,	0,		SEN(restart_syscall),		"restart_syscall"	},
+ [129] = { 2,	TS|TP,		SEN(kill),			"kill"			},
+-[130] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
++[130] = { 2,	TS|TP,		SEN(tkill),			"tkill"			},
+ [131] = { 3,	TS|TP,		SEN(tgkill),			"tgkill"		},
+ [132] = { 2,	TS,		SEN(sigaltstack),		"sigaltstack"		},
+ [133] = { 2,	TS,		SEN(rt_sigsuspend),		"rt_sigsuspend"		},
+diff --git a/linux/64/syscallent.h b/linux/64/syscallent.h
+index 3fb1305..ce5602e 100644
+--- a/linux/64/syscallent.h
++++ b/linux/64/syscallent.h
+@@ -135,7 +135,7 @@
+ [127] = { 2,	0,		SEN(sched_rr_get_interval_time64),"sched_rr_get_interval"},
+ [128] = { 0,	0,		SEN(restart_syscall),		"restart_syscall"	},
+ [129] = { 2,	TS|TP,		SEN(kill),			"kill"			},
+-[130] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
++[130] = { 2,	TS|TP,		SEN(tkill),			"tkill"			},
+ [131] = { 3,	TS|TP,		SEN(tgkill),			"tgkill"		},
+ [132] = { 2,	TS,		SEN(sigaltstack),		"sigaltstack"		},
+ [133] = { 2,	TS,		SEN(rt_sigsuspend),		"rt_sigsuspend"		},
+diff --git a/linux/alpha/syscallent.h b/linux/alpha/syscallent.h
+index 93f0b0e..7859b9c 100644
+--- a/linux/alpha/syscallent.h
++++ b/linux/alpha/syscallent.h
+@@ -325,7 +325,7 @@
+ [378] = { 0,	PU|NF,		SEN(gettid),			"gettid"		},
+ [379] = { 3,	TD,		SEN(readahead),			"readahead"		},
+ [380] = { },
+-[381] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
++[381] = { 2,	TS|TP,		SEN(tkill),			"tkill"			},
+ [382] = { 5,	TF,		SEN(setxattr),			"setxattr"		},
+ [383] = { 5,	TF,		SEN(setxattr),			"lsetxattr"		},
+ [384] = { 5,	TD,		SEN(fsetxattr),			"fsetxattr"		},
+diff --git a/linux/arm/syscallent.h b/linux/arm/syscallent.h
+index 73497b6..87b0687 100644
+--- a/linux/arm/syscallent.h
++++ b/linux/arm/syscallent.h
+@@ -245,7 +245,7 @@
+ [235] = { 2,	TF,		SEN(removexattr),		"removexattr"		},
+ [236] = { 2,	TF,		SEN(removexattr),		"lremovexattr"		},
+ [237] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+-[238] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
++[238] = { 2,	TS|TP,		SEN(tkill),			"tkill"			},
+ [239] = { 4,	TD|TN,		SEN(sendfile64),		"sendfile64"		},
+ [240] = { 6,	0,		SEN(futex_time32),		"futex"			},
+ [241] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+diff --git a/linux/avr32/syscallent.h b/linux/avr32/syscallent.h
+index b3cf2da..491ff8e 100644
+--- a/linux/avr32/syscallent.h
++++ b/linux/avr32/syscallent.h
+@@ -196,7 +196,7 @@
+ [187] = { 2,	TF,		SEN(removexattr),		"removexattr"		},
+ [188] = { 2,	TF,		SEN(removexattr),		"lremovexattr"		},
+ [189] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+-[190] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
++[190] = { 2,	TS|TP,		SEN(tkill),			"tkill"			},
+ [191] = { 4,	TD|TN,		SEN(sendfile64),		"sendfile64"		},
+ [192] = { 6,	0,		SEN(futex_time32),		"futex"			},
+ [193] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+diff --git a/linux/bfin/syscallent.h b/linux/bfin/syscallent.h
+index b93a844..53d5c23 100644
+--- a/linux/bfin/syscallent.h
++++ b/linux/bfin/syscallent.h
+@@ -244,7 +244,7 @@
+ [235] = { 2,	TF,		SEN(removexattr),		"removexattr"		},
+ [236] = { 2,	TF,		SEN(removexattr),		"lremovexattr"		},
+ [237] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+-[238] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
++[238] = { 2,	TS|TP,		SEN(tkill),			"tkill"			},
+ [239] = { 4,	TD|TN,		SEN(sendfile64),		"sendfile64"		},
+ [240] = { 6,	0,		SEN(futex_time32),		"futex"			},
+ [241] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+diff --git a/linux/hppa/syscallent.h b/linux/hppa/syscallent.h
+index 31341d4..20cae3c 100644
+--- a/linux/hppa/syscallent.h
++++ b/linux/hppa/syscallent.h
+@@ -211,7 +211,7 @@
+ [205] = { 5,	0,		SEN(printargs),			"acl_set"		},
+ [206] = { 0,	PU|NF,		SEN(gettid),			"gettid"		},
+ [207] = { 4,	TD,		SEN(readahead),			"readahead"		},
+-[208] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
++[208] = { 2,	TS|TP,		SEN(tkill),			"tkill"			},
+ [209] = { 4,	TD|TN,		SEN(sendfile64),		"sendfile64"		},
+ [210] = { 6,	0,		SEN(futex_time32),		"futex"			},
+ [211] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+diff --git a/linux/i386/syscallent.h b/linux/i386/syscallent.h
+index efe0ff7..521e7ba 100644
+--- a/linux/i386/syscallent.h
++++ b/linux/i386/syscallent.h
+@@ -244,7 +244,7 @@
+ [235] = { 2,	TF,		SEN(removexattr),		"removexattr"		},
+ [236] = { 2,	TF,		SEN(removexattr),		"lremovexattr"		},
+ [237] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+-[238] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
++[238] = { 2,	TS|TP,		SEN(tkill),			"tkill"			},
+ [239] = { 4,	TD|TN,		SEN(sendfile64),		"sendfile64"		},
+ [240] = { 6,	0,		SEN(futex_time32),		"futex"			},
+ [241] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+diff --git a/linux/ia64/syscallent.h b/linux/ia64/syscallent.h
+index 8aeda41..c5088e1 100644
+--- a/linux/ia64/syscallent.h
++++ b/linux/ia64/syscallent.h
+@@ -225,7 +225,7 @@
+ [BASE_NR + 202] = { 2,	TF,		SEN(removexattr),		"removexattr"		},
+ [BASE_NR + 203] = { 2,	TF,		SEN(removexattr),		"lremovexattr"		},
+ [BASE_NR + 204] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+-[BASE_NR + 205] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
++[BASE_NR + 205] = { 2,	TS|TP,		SEN(tkill),			"tkill"			},
+ [BASE_NR + 206] = { 6,	0,		SEN(futex_time64),		"futex"			},
+ [BASE_NR + 207] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+ [BASE_NR + 208] = { 3,	0,		SEN(sched_getaffinity),		"sched_getaffinity"	},
+diff --git a/linux/m68k/syscallent.h b/linux/m68k/syscallent.h
+index 1876bed..107780c 100644
+--- a/linux/m68k/syscallent.h
++++ b/linux/m68k/syscallent.h
+@@ -228,7 +228,7 @@
+ [218 ... 219] = { },
+ [220] = { 3,	TD,		SEN(getdents64),		"getdents64"		},
+ [221] = { 0,	PU|NF,		SEN(gettid),			"gettid"		},
+-[222] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
++[222] = { 2,	TS|TP,		SEN(tkill),			"tkill"			},
+ [223] = { 5,	TF,		SEN(setxattr),			"setxattr"		},
+ [224] = { 5,	TF,		SEN(setxattr),			"lsetxattr"		},
+ [225] = { 5,	TD,		SEN(fsetxattr),			"fsetxattr"		},
+diff --git a/linux/microblaze/syscallent.h b/linux/microblaze/syscallent.h
+index 5d071bc..d830a3e 100644
+--- a/linux/microblaze/syscallent.h
++++ b/linux/microblaze/syscallent.h
+@@ -244,7 +244,7 @@
+ [235] = { 2,	TF,		SEN(removexattr),		"removexattr"		},
+ [236] = { 2,	TF,		SEN(removexattr),		"lremovexattr"		},
+ [237] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+-[238] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
++[238] = { 2,	TS|TP,		SEN(tkill),			"tkill"			},
+ [239] = { 4,	TD|TN,		SEN(sendfile64),		"sendfile64"		},
+ [240] = { 6,	0,		SEN(futex_time32),		"futex"			},
+ [241] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+diff --git a/linux/mips/syscallent-n32.h b/linux/mips/syscallent-n32.h
+index cfd199d..5ab0c53 100644
+--- a/linux/mips/syscallent-n32.h
++++ b/linux/mips/syscallent-n32.h
+@@ -200,7 +200,7 @@
+ [BASE_NR + 189] = { 2,	TF,		SEN(removexattr),		"removexattr"		},
+ [BASE_NR + 190] = { 2,	TF,		SEN(removexattr),		"lremovexattr"		},
+ [BASE_NR + 191] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+-[BASE_NR + 192] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
++[BASE_NR + 192] = { 2,	TS|TP,		SEN(tkill),			"tkill"			},
+ [BASE_NR + 193] = { 1,	TCL,		SEN(time),			"time"			},
+ [BASE_NR + 194] = { 6,	0,		SEN(futex_time32),		"futex"			},
+ [BASE_NR + 195] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+diff --git a/linux/mips/syscallent-n64.h b/linux/mips/syscallent-n64.h
+index 7ef6700..1964872 100644
+--- a/linux/mips/syscallent-n64.h
++++ b/linux/mips/syscallent-n64.h
+@@ -200,7 +200,7 @@
+ [BASE_NR + 189] = { 2,	TF,		SEN(removexattr),		"removexattr"		},
+ [BASE_NR + 190] = { 2,	TF,		SEN(removexattr),		"lremovexattr"		},
+ [BASE_NR + 191] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+-[BASE_NR + 192] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
++[BASE_NR + 192] = { 2,	TS|TP,		SEN(tkill),			"tkill"			},
+ [BASE_NR + 193] = { 1,	TCL,		SEN(time),			"time"			},
+ [BASE_NR + 194] = { 6,	0,		SEN(futex_time64),		"futex"			},
+ [BASE_NR + 195] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+diff --git a/linux/mips/syscallent-o32.h b/linux/mips/syscallent-o32.h
+index d2b26f7..eb8908e 100644
+--- a/linux/mips/syscallent-o32.h
++++ b/linux/mips/syscallent-o32.h
+@@ -245,7 +245,7 @@
+ [BASE_NR + 233] = { 2,	TF,		SEN(removexattr),		"removexattr"		},
+ [BASE_NR + 234] = { 2,	TF,		SEN(removexattr),		"lremovexattr"		},
+ [BASE_NR + 235] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+-[BASE_NR + 236] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
++[BASE_NR + 236] = { 2,	TS|TP,		SEN(tkill),			"tkill"			},
+ [BASE_NR + 237] = { 4,	TD|TN,		SEN(sendfile64),		"sendfile64"		},
+ [BASE_NR + 238] = { 6,	0,		SEN(futex_time32),		"futex"			},
+ [BASE_NR + 239] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+diff --git a/linux/powerpc/syscallent.h b/linux/powerpc/syscallent.h
+index b0962b4..7a77979 100644
+--- a/linux/powerpc/syscallent.h
++++ b/linux/powerpc/syscallent.h
+@@ -215,7 +215,7 @@
+ [205] = { 3,	TM,		SEN(madvise),			"madvise"		},
+ [206] = { 3,	TM,		SEN(mincore),			"mincore"		},
+ [207] = { 0,	PU|NF,		SEN(gettid),			"gettid"		},
+-[208] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
++[208] = { 2,	TS|TP,		SEN(tkill),			"tkill"			},
+ [209] = { 5,	TF,		SEN(setxattr),			"setxattr"		},
+ [210] = { 5,	TF,		SEN(setxattr),			"lsetxattr"		},
+ [211] = { 5,	TD,		SEN(fsetxattr),			"fsetxattr"		},
+diff --git a/linux/powerpc64/syscallent.h b/linux/powerpc64/syscallent.h
+index 1a0dfb5..f20fd78 100644
+--- a/linux/powerpc64/syscallent.h
++++ b/linux/powerpc64/syscallent.h
+@@ -210,7 +210,7 @@
+ [205] = { 3,	TM,		SEN(madvise),			"madvise"		},
+ [206] = { 3,	TM,		SEN(mincore),			"mincore"		},
+ [207] = { 0,	PU|NF,		SEN(gettid),			"gettid"		},
+-[208] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
++[208] = { 2,	TS|TP,		SEN(tkill),			"tkill"			},
+ [209] = { 5,	TF,		SEN(setxattr),			"setxattr"		},
+ [210] = { 5,	TF,		SEN(setxattr),			"lsetxattr"		},
+ [211] = { 5,	TD,		SEN(fsetxattr),			"fsetxattr"		},
+diff --git a/linux/s390/syscallent.h b/linux/s390/syscallent.h
+index 105089f..6844c7e 100644
+--- a/linux/s390/syscallent.h
++++ b/linux/s390/syscallent.h
+@@ -246,7 +246,7 @@
+ [234] = { 2,	TF,		SEN(removexattr),		"lremovexattr"		},
+ [235] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+ [236] = { 0,	PU|NF,		SEN(gettid),			"gettid"		},
+-[237] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
++[237] = { 2,	TS|TP,		SEN(tkill),			"tkill"			},
+ [238] = { 6,	0,		SEN(futex_time32),		"futex"			},
+ [239] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+ [240] = { 3,	0,		SEN(sched_getaffinity),		"sched_getaffinity"	},
+diff --git a/linux/s390x/syscallent.h b/linux/s390x/syscallent.h
+index e9cf57a..c805204 100644
+--- a/linux/s390x/syscallent.h
++++ b/linux/s390x/syscallent.h
+@@ -230,7 +230,7 @@
+ [234] = { 2,	TF,		SEN(removexattr),		"lremovexattr"		},
+ [235] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+ [236] = { 0,	PU|NF,		SEN(gettid),			"gettid"		},
+-[237] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
++[237] = { 2,	TS|TP,		SEN(tkill),			"tkill"			},
+ [238] = { 6,	0,		SEN(futex_time64),		"futex"			},
+ [239] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+ [240] = { 3,	0,		SEN(sched_getaffinity),		"sched_getaffinity"	},
+diff --git a/linux/sh/syscallent.h b/linux/sh/syscallent.h
+index 70dc7da..6a89f75 100644
+--- a/linux/sh/syscallent.h
++++ b/linux/sh/syscallent.h
+@@ -245,7 +245,7 @@
+ [235] = { 2,	TF,		SEN(removexattr),		"removexattr"		},
+ [236] = { 2,	TF,		SEN(removexattr),		"lremovexattr"		},
+ [237] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+-[238] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
++[238] = { 2,	TS|TP,		SEN(tkill),			"tkill"			},
+ [239] = { 4,	TD|TN,		SEN(sendfile64),		"sendfile64"		},
+ [240] = { 6,	0,		SEN(futex_time32),		"futex"			},
+ [241] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+diff --git a/linux/sh64/syscallent.h b/linux/sh64/syscallent.h
+index eff5dc0..4ec35d3 100644
+--- a/linux/sh64/syscallent.h
++++ b/linux/sh64/syscallent.h
+@@ -271,7 +271,7 @@
+ [263] = { 2,	TF,		SEN(removexattr),		"removexattr"		},
+ [264] = { 2,	TF,		SEN(removexattr),		"lremovexattr"		},
+ [265] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+-[266] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
++[266] = { 2,	TS|TP,		SEN(tkill),			"tkill"			},
+ [267] = { 4,	TD|TN,		SEN(sendfile64),		"sendfile64"		},
+ [268] = { 6,	0,		SEN(futex_time64),		"futex"			},
+ [269] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+diff --git a/linux/sparc/syscallent.h b/linux/sparc/syscallent.h
+index 8c8bd18..a274791 100644
+--- a/linux/sparc/syscallent.h
++++ b/linux/sparc/syscallent.h
+@@ -192,7 +192,7 @@
+ [184] = { 5,	0,		SEN(query_module),		"query_module"		},
+ [185] = { 2,	0,		SEN(setpgid),			"setpgid"		},
+ [186] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+-[187] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
++[187] = { 2,	TS|TP,		SEN(tkill),			"tkill"			},
+ [188] = { 1,	TP|SE,		SEN(exit),			"exit_group"		},
+ [189] = { 1,	0,		SEN(uname),			"uname"			},
+ [190] = { 3,	0,		SEN(init_module),		"init_module"		},
+diff --git a/linux/sparc64/syscallent.h b/linux/sparc64/syscallent.h
+index 0e0e0c4..61c32f9 100644
+--- a/linux/sparc64/syscallent.h
++++ b/linux/sparc64/syscallent.h
+@@ -190,7 +190,7 @@
+ [184] = { 5,	0,		SEN(query_module),		"query_module"		},
+ [185] = { 2,	0,		SEN(setpgid),			"setpgid"		},
+ [186] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+-[187] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
++[187] = { 2,	TS|TP,		SEN(tkill),			"tkill"			},
+ [188] = { 1,	TP|SE,		SEN(exit),			"exit_group"		},
+ [189] = { 1,	0,		SEN(uname),			"uname"			},
+ [190] = { 3,	0,		SEN(init_module),		"init_module"		},
+diff --git a/linux/x32/syscallent.h b/linux/x32/syscallent.h
+index db8ecfd..d64060d 100644
+--- a/linux/x32/syscallent.h
++++ b/linux/x32/syscallent.h
+@@ -205,7 +205,7 @@
+ [197] = { 2,	TF,		SEN(removexattr),		"removexattr"		},
+ [198] = { 2,	TF,		SEN(removexattr),		"lremovexattr"		},
+ [199] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+-[200] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
++[200] = { 2,	TS|TP,		SEN(tkill),			"tkill"			},
+ [201] = { 1,	TCL,		SEN(time),			"time"			},
+ [202] = { 6,	0,		SEN(futex_time64),		"futex"			},
+ [203] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+diff --git a/linux/x86_64/syscallent.h b/linux/x86_64/syscallent.h
+index c69a5aa..027093a 100644
+--- a/linux/x86_64/syscallent.h
++++ b/linux/x86_64/syscallent.h
+@@ -205,7 +205,7 @@
+ [197] = { 2,	TF,		SEN(removexattr),		"removexattr"		},
+ [198] = { 2,	TF,		SEN(removexattr),		"lremovexattr"		},
+ [199] = { 2,	TD,		SEN(fremovexattr),		"fremovexattr"		},
+-[200] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
++[200] = { 2,	TS|TP,		SEN(tkill),			"tkill"			},
+ [201] = { 1,	TCL,		SEN(time),			"time"			},
+ [202] = { 6,	0,		SEN(futex_time64),		"futex"			},
+ [203] = { 3,	0,		SEN(sched_setaffinity),		"sched_setaffinity"	},
+diff --git a/linux/xtensa/syscallent.h b/linux/xtensa/syscallent.h
+index 61f1dd4..6de03d2 100644
+--- a/linux/xtensa/syscallent.h
++++ b/linux/xtensa/syscallent.h
+@@ -124,7 +124,7 @@
+ [121] = { 4,	TP,		SEN(wait4),			"wait4"			},
+ [122] = { 5,	TP,		SEN(waitid),			"waitid"		},
+ [123] = { 2,	TS|TP,		SEN(kill),			"kill"			},
+-[124] = { 2,	TS|TP,		SEN(kill),			"tkill"			},
++[124] = { 2,	TS|TP,		SEN(tkill),			"tkill"			},
+ [125] = { 3,	TS|TP,		SEN(tgkill),			"tgkill"		},
+ [126] = { 1,	0,		SEN(set_tid_address),		"set_tid_address"	},
+ [127] = { 0,	PU|NF,		SEN(gettid),			"gettid"		},
+diff --git a/signal.c b/signal.c
+index 3cb54bb..5f1acac 100644
+--- a/signal.c
++++ b/signal.c
+@@ -446,6 +446,15 @@ SYS_FUNC(kill)
+ 	return RVAL_DECODED;
+ }
+ 
++SYS_FUNC(tkill)
++{
++	tprintf("%d", (int) tcp->u_arg[0]);
++	tprints(", ");
++	printsignal(tcp->u_arg[1]);
++
++	return RVAL_DECODED;
++}
++
+ SYS_FUNC(tgkill)
+ {
+ 	/* tgid, tid */
+-- 
+2.1.4
+
diff --git a/SOURCES/0132-tests-check-decoding-of-tkill-syscall.patch b/SOURCES/0132-tests-check-decoding-of-tkill-syscall.patch
new file mode 100644
index 0000000..0d9bb80
--- /dev/null
+++ b/SOURCES/0132-tests-check-decoding-of-tkill-syscall.patch
@@ -0,0 +1,683 @@
+From 24119509205a17c71de10e913cfc38dc52aa6563 Mon Sep 17 00:00:00 2001
+From: "Dmitry V. Levin" <ldv@altlinux.org>
+Date: Sat, 1 Aug 2020 08:00:00 +0000
+Subject: [PATCH 132/138] tests: check decoding of tkill syscall
+
+* tests/tkill.c: New file.
+* tests/gen_tests.in (tkill): New entry.
+* tests/pure_executables.list: Add tkill.
+* tests/.gitignore: Likewise.
+---
+ tests/.gitignore            |  1 +
+ tests/gen_tests.in          |  1 +
+ tests/pure_executables.list |  1 +
+ tests/tkill.c               | 60 +++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 63 insertions(+)
+ create mode 100644 tests/tkill.c
+
+Index: strace-5.7/tests/gen_tests.in
+===================================================================
+--- strace-5.7.orig/tests/gen_tests.in	2020-09-09 15:47:07.671767616 +0200
++++ strace-5.7/tests/gen_tests.in	2020-09-09 19:30:36.780885588 +0200
+@@ -668,6 +668,7 @@
+ timerfd_xettime	-e trace=timerfd_create,timerfd_settime,timerfd_gettime
+ times	-esignal=none
+ times-fail	-a12 -e trace=times
++tkill	-a12 --signal='!cont'
+ trace_clock	test_trace_expr 'clock_nanosleep|times' -e%clock
+ trace_creds	test_trace_expr '([gs]et[^p]*([gu]id|groups)|caps|prctl|[fl]?chown|print(path-umovestr|strn-umoven)-undumpable|ptrace|quotactl|rt_sigtimedwait|rt_(tg)?sigqueueinfo).*' -e%creds
+ trace_fstat	test_trace_expr '' -e%fstat -v -P stat.sample -P /dev/full
+Index: strace-5.7/tests/pure_executables.list
+===================================================================
+--- strace-5.7.orig/tests/pure_executables.list	2020-09-09 15:47:07.671767616 +0200
++++ strace-5.7/tests/pure_executables.list	2020-09-09 19:30:36.780885588 +0200
+@@ -589,6 +589,7 @@
+ timerfd_xettime
+ times
+ times-fail
++tkill
+ truncate
+ truncate64
+ ugetrlimit
+Index: strace-5.7/tests/tkill.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/tkill.c	2020-09-09 19:21:10.469548041 +0200
+@@ -0,0 +1,60 @@
++/*
++ * Check decoding of tkill syscall.
++ *
++ * Copyright (c) 2020 Dmitry V. Levin <ldv@altlinux.org>
++ * All rights reserved.
++ *
++ * SPDX-License-Identifier: GPL-2.0-or-later
++ */
++
++#include "tests.h"
++#include "scno.h"
++
++#ifdef __NR_tkill
++
++# include <signal.h>
++# include <stdio.h>
++# include <unistd.h>
++
++static const char *errstr;
++
++static long
++k_tkill(const unsigned int tid, const unsigned int sig)
++{
++        const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL;
++        const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL;
++        const kernel_ulong_t arg1 = fill | tid;
++        const kernel_ulong_t arg2 = fill | sig;
++        const long rc = syscall(__NR_tkill, arg1, arg2, bad, bad, bad, bad);
++        errstr = sprintrc(rc);
++        return rc;
++}
++
++int
++main(void)
++{
++	const int pid = getpid();
++	const int bad_pid = -1;
++	const int bad_sig = 0xface;
++
++	k_tkill(pid, 0);
++	printf("tkill(%d, 0) = %s\n", pid, errstr);
++
++	k_tkill(pid, SIGCONT);
++	printf("tkill(%d, SIGCONT) = %s\n", pid, errstr);
++
++	k_tkill(bad_pid, bad_sig);
++	printf("tkill(%d, %d) = %s\n", bad_pid, bad_sig, errstr);
++
++	k_tkill(bad_pid, -bad_sig);
++	printf("tkill(%d, %d) = %s\n", bad_pid, -bad_sig, errstr);
++
++	puts("+++ exited with 0 +++");
++	return 0;
++}
++
++#else
++
++SKIP_MAIN_UNDEFINED("__NR_tkill")
++
++#endif
+Index: strace-5.7/tests-m32/gen_tests.in
+===================================================================
+--- strace-5.7.orig/tests-m32/gen_tests.in	2020-09-09 15:47:07.671767616 +0200
++++ strace-5.7/tests-m32/gen_tests.in	2020-09-09 19:30:36.780885588 +0200
+@@ -668,6 +668,7 @@
+ timerfd_xettime	-e trace=timerfd_create,timerfd_settime,timerfd_gettime
+ times	-esignal=none
+ times-fail	-a12 -e trace=times
++tkill	-a12 --signal='!cont'
+ trace_clock	test_trace_expr 'clock_nanosleep|times' -e%clock
+ trace_creds	test_trace_expr '([gs]et[^p]*([gu]id|groups)|caps|prctl|[fl]?chown|print(path-umovestr|strn-umoven)-undumpable|ptrace|quotactl|rt_sigtimedwait|rt_(tg)?sigqueueinfo).*' -e%creds
+ trace_fstat	test_trace_expr '' -e%fstat -v -P stat.sample -P /dev/full
+Index: strace-5.7/tests-m32/pure_executables.list
+===================================================================
+--- strace-5.7.orig/tests-m32/pure_executables.list	2020-09-09 15:47:07.671767616 +0200
++++ strace-5.7/tests-m32/pure_executables.list	2020-09-09 19:30:36.780885588 +0200
+@@ -589,6 +589,7 @@
+ timerfd_xettime
+ times
+ times-fail
++tkill
+ truncate
+ truncate64
+ ugetrlimit
+Index: strace-5.7/tests-m32/tkill.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/tkill.c	2020-09-09 19:21:10.469548041 +0200
+@@ -0,0 +1,60 @@
++/*
++ * Check decoding of tkill syscall.
++ *
++ * Copyright (c) 2020 Dmitry V. Levin <ldv@altlinux.org>
++ * All rights reserved.
++ *
++ * SPDX-License-Identifier: GPL-2.0-or-later
++ */
++
++#include "tests.h"
++#include "scno.h"
++
++#ifdef __NR_tkill
++
++# include <signal.h>
++# include <stdio.h>
++# include <unistd.h>
++
++static const char *errstr;
++
++static long
++k_tkill(const unsigned int tid, const unsigned int sig)
++{
++        const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL;
++        const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL;
++        const kernel_ulong_t arg1 = fill | tid;
++        const kernel_ulong_t arg2 = fill | sig;
++        const long rc = syscall(__NR_tkill, arg1, arg2, bad, bad, bad, bad);
++        errstr = sprintrc(rc);
++        return rc;
++}
++
++int
++main(void)
++{
++	const int pid = getpid();
++	const int bad_pid = -1;
++	const int bad_sig = 0xface;
++
++	k_tkill(pid, 0);
++	printf("tkill(%d, 0) = %s\n", pid, errstr);
++
++	k_tkill(pid, SIGCONT);
++	printf("tkill(%d, SIGCONT) = %s\n", pid, errstr);
++
++	k_tkill(bad_pid, bad_sig);
++	printf("tkill(%d, %d) = %s\n", bad_pid, bad_sig, errstr);
++
++	k_tkill(bad_pid, -bad_sig);
++	printf("tkill(%d, %d) = %s\n", bad_pid, -bad_sig, errstr);
++
++	puts("+++ exited with 0 +++");
++	return 0;
++}
++
++#else
++
++SKIP_MAIN_UNDEFINED("__NR_tkill")
++
++#endif
+Index: strace-5.7/tests-mx32/gen_tests.in
+===================================================================
+--- strace-5.7.orig/tests-mx32/gen_tests.in	2020-09-09 15:47:07.671767616 +0200
++++ strace-5.7/tests-mx32/gen_tests.in	2020-09-09 19:30:36.780885588 +0200
+@@ -668,6 +668,7 @@
+ timerfd_xettime	-e trace=timerfd_create,timerfd_settime,timerfd_gettime
+ times	-esignal=none
+ times-fail	-a12 -e trace=times
++tkill	-a12 --signal='!cont'
+ trace_clock	test_trace_expr 'clock_nanosleep|times' -e%clock
+ trace_creds	test_trace_expr '([gs]et[^p]*([gu]id|groups)|caps|prctl|[fl]?chown|print(path-umovestr|strn-umoven)-undumpable|ptrace|quotactl|rt_sigtimedwait|rt_(tg)?sigqueueinfo).*' -e%creds
+ trace_fstat	test_trace_expr '' -e%fstat -v -P stat.sample -P /dev/full
+Index: strace-5.7/tests-mx32/pure_executables.list
+===================================================================
+--- strace-5.7.orig/tests-mx32/pure_executables.list	2020-09-09 15:47:07.671767616 +0200
++++ strace-5.7/tests-mx32/pure_executables.list	2020-09-09 19:30:36.780885588 +0200
+@@ -589,6 +589,7 @@
+ timerfd_xettime
+ times
+ times-fail
++tkill
+ truncate
+ truncate64
+ ugetrlimit
+Index: strace-5.7/tests-mx32/tkill.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/tkill.c	2020-09-09 19:21:10.469548041 +0200
+@@ -0,0 +1,60 @@
++/*
++ * Check decoding of tkill syscall.
++ *
++ * Copyright (c) 2020 Dmitry V. Levin <ldv@altlinux.org>
++ * All rights reserved.
++ *
++ * SPDX-License-Identifier: GPL-2.0-or-later
++ */
++
++#include "tests.h"
++#include "scno.h"
++
++#ifdef __NR_tkill
++
++# include <signal.h>
++# include <stdio.h>
++# include <unistd.h>
++
++static const char *errstr;
++
++static long
++k_tkill(const unsigned int tid, const unsigned int sig)
++{
++        const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL;
++        const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL;
++        const kernel_ulong_t arg1 = fill | tid;
++        const kernel_ulong_t arg2 = fill | sig;
++        const long rc = syscall(__NR_tkill, arg1, arg2, bad, bad, bad, bad);
++        errstr = sprintrc(rc);
++        return rc;
++}
++
++int
++main(void)
++{
++	const int pid = getpid();
++	const int bad_pid = -1;
++	const int bad_sig = 0xface;
++
++	k_tkill(pid, 0);
++	printf("tkill(%d, 0) = %s\n", pid, errstr);
++
++	k_tkill(pid, SIGCONT);
++	printf("tkill(%d, SIGCONT) = %s\n", pid, errstr);
++
++	k_tkill(bad_pid, bad_sig);
++	printf("tkill(%d, %d) = %s\n", bad_pid, bad_sig, errstr);
++
++	k_tkill(bad_pid, -bad_sig);
++	printf("tkill(%d, %d) = %s\n", bad_pid, -bad_sig, errstr);
++
++	puts("+++ exited with 0 +++");
++	return 0;
++}
++
++#else
++
++SKIP_MAIN_UNDEFINED("__NR_tkill")
++
++#endif
+Index: strace-5.7/tests-m32/Makefile.in
+===================================================================
+--- strace-5.7.orig/tests-m32/Makefile.in	2020-09-09 15:47:07.671767616 +0200
++++ strace-5.7/tests-m32/Makefile.in	2020-09-09 19:32:14.800944013 +0200
+@@ -496,14 +496,15 @@
+ 	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) \
+-	umovestr_cached$(EXEEXT) umovestr_cached_adjacent$(EXEEXT) \
+-	uname$(EXEEXT) unlink$(EXEEXT) unlinkat$(EXEEXT) \
+-	unshare$(EXEEXT) userfaultfd$(EXEEXT) ustat$(EXEEXT) \
+-	utime$(EXEEXT) utimensat$(EXEEXT) utimensat-Xabbrev$(EXEEXT) \
++	tkill$(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) umovestr_cached$(EXEEXT) \
++	umovestr_cached_adjacent$(EXEEXT) uname$(EXEEXT) \
++	unlink$(EXEEXT) unlinkat$(EXEEXT) unshare$(EXEEXT) \
++	userfaultfd$(EXEEXT) ustat$(EXEEXT) utime$(EXEEXT) \
++	utimensat$(EXEEXT) utimensat-Xabbrev$(EXEEXT) \
+ 	utimensat-Xraw$(EXEEXT) utimensat-Xverbose$(EXEEXT) \
+ 	utimes$(EXEEXT) vhangup$(EXEEXT) vmsplice$(EXEEXT) \
+ 	wait4$(EXEEXT) waitid$(EXEEXT) waitpid$(EXEEXT) xattr$(EXEEXT) \
+@@ -3484,6 +3485,10 @@
+ times_fail_OBJECTS = times-fail.$(OBJEXT)
+ times_fail_LDADD = $(LDADD)
+ times_fail_DEPENDENCIES = libtests.a
++tkill_SOURCES = tkill.c
++tkill_OBJECTS = tkill.$(OBJEXT)
++tkill_LDADD = $(LDADD)
++tkill_DEPENDENCIES = libtests.a
+ tracer_ppid_pgid_sid_SOURCES = tracer_ppid_pgid_sid.c
+ tracer_ppid_pgid_sid_OBJECTS = tracer_ppid_pgid_sid.$(OBJEXT)
+ tracer_ppid_pgid_sid_LDADD = $(LDADD)
+@@ -4184,7 +4189,7 @@
+ 	./$(DEPDIR)/threads-execve.Po ./$(DEPDIR)/time.Po \
+ 	./$(DEPDIR)/timer_create.Po ./$(DEPDIR)/timer_xettime.Po \
+ 	./$(DEPDIR)/timerfd_xettime.Po ./$(DEPDIR)/times-fail.Po \
+-	./$(DEPDIR)/times.Po ./$(DEPDIR)/tracer_ppid_pgid_sid.Po \
++	./$(DEPDIR)/times.Po ./$(DEPDIR)/tkill.Po ./$(DEPDIR)/tracer_ppid_pgid_sid.Po \
+ 	./$(DEPDIR)/truncate.Po ./$(DEPDIR)/truncate64-truncate64.Po \
+ 	./$(DEPDIR)/ugetrlimit.Po ./$(DEPDIR)/uio-uio.Po \
+ 	./$(DEPDIR)/umask.Po ./$(DEPDIR)/umount.Po \
+@@ -4441,7 +4446,7 @@
+ 	syslog-success.c tee.c threads-execve.c \
+ 	threads-execve--quiet-thread-execve.c threads-execve-q.c \
+ 	threads-execve-qq.c threads-execve-qqq.c time.c timer_create.c \
+-	timer_xettime.c timerfd_xettime.c times.c times-fail.c \
++	timer_xettime.c timerfd_xettime.c times.c times-fail.c tkill.c \
+ 	tracer_ppid_pgid_sid.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 umovestr_cached.c \
+@@ -4667,7 +4672,7 @@
+ 	syslog-success.c tee.c threads-execve.c \
+ 	threads-execve--quiet-thread-execve.c threads-execve-q.c \
+ 	threads-execve-qq.c threads-execve-qqq.c time.c timer_create.c \
+-	timer_xettime.c timerfd_xettime.c times.c times-fail.c \
++	timer_xettime.c timerfd_xettime.c times.c times-fail.c tkill.c \
+ 	tracer_ppid_pgid_sid.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 umovestr_cached.c \
+@@ -5725,6 +5730,7 @@
+   timerfd_xettime \
+   times \
+   times-fail \
++  tkill \
+   truncate \
+   truncate64 \
+   ugetrlimit \
+@@ -6133,9 +6139,10 @@
+ 	threads-execve-qqq.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_clock.gen.test trace_creds.gen.test trace_fstat.gen.test \
+-	trace_fstatfs.gen.test trace_lstat.gen.test \
+-	trace_personality_32.gen.test trace_personality_64.gen.test \
++	tkill.gen.test trace_clock.gen.test trace_creds.gen.test \
++	trace_fstat.gen.test trace_fstatfs.gen.test \
++	trace_lstat.gen.test trace_personality_32.gen.test \
++	trace_personality_64.gen.test \
+ 	trace_personality_regex_32.gen.test \
+ 	trace_personality_regex_64.gen.test \
+ 	trace_personality_regex_x32.gen.test \
+@@ -9392,6 +9399,10 @@
+ 	@rm -f times-fail$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(times_fail_OBJECTS) $(times_fail_LDADD) $(LIBS)
+ 
++tkill$(EXEEXT): $(tkill_OBJECTS) $(tkill_DEPENDENCIES) $(EXTRA_tkill_DEPENDENCIES) 
++	@rm -f tkill$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(tkill_OBJECTS) $(tkill_LDADD) $(LIBS)
++
+ tracer_ppid_pgid_sid$(EXEEXT): $(tracer_ppid_pgid_sid_OBJECTS) $(tracer_ppid_pgid_sid_DEPENDENCIES) $(EXTRA_tracer_ppid_pgid_sid_DEPENDENCIES) 
+ 	@rm -f tracer_ppid_pgid_sid$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(tracer_ppid_pgid_sid_OBJECTS) $(tracer_ppid_pgid_sid_LDADD) $(LIBS)
+@@ -10349,6 +10360,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timerfd_xettime.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/times-fail.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/times.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tkill.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tracer_ppid_pgid_sid.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/truncate.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/truncate64-truncate64.Po@am__quote@ # am--include-marker
+@@ -12169,6 +12181,7 @@
+ 	-rm -f ./$(DEPDIR)/timerfd_xettime.Po
+ 	-rm -f ./$(DEPDIR)/times-fail.Po
+ 	-rm -f ./$(DEPDIR)/times.Po
++	-rm -f ./$(DEPDIR)/tkill.Po
+ 	-rm -f ./$(DEPDIR)/tracer_ppid_pgid_sid.Po
+ 	-rm -f ./$(DEPDIR)/truncate.Po
+ 	-rm -f ./$(DEPDIR)/truncate64-truncate64.Po
+@@ -13024,6 +13037,7 @@
+ 	-rm -f ./$(DEPDIR)/timerfd_xettime.Po
+ 	-rm -f ./$(DEPDIR)/times-fail.Po
+ 	-rm -f ./$(DEPDIR)/times.Po
++	-rm -f ./$(DEPDIR)/tkill.Po
+ 	-rm -f ./$(DEPDIR)/tracer_ppid_pgid_sid.Po
+ 	-rm -f ./$(DEPDIR)/truncate.Po
+ 	-rm -f ./$(DEPDIR)/truncate64-truncate64.Po
+@@ -15101,6 +15115,9 @@
+ $(srcdir)/times-fail.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/tkill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/trace_clock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+Index: strace-5.7/tests-mx32/Makefile.in
+===================================================================
+--- strace-5.7.orig/tests-mx32/Makefile.in	2020-09-09 15:47:07.671767616 +0200
++++ strace-5.7/tests-mx32/Makefile.in	2020-09-09 19:32:39.854958946 +0200
+@@ -496,14 +496,15 @@
+ 	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) \
+-	umovestr_cached$(EXEEXT) umovestr_cached_adjacent$(EXEEXT) \
+-	uname$(EXEEXT) unlink$(EXEEXT) unlinkat$(EXEEXT) \
+-	unshare$(EXEEXT) userfaultfd$(EXEEXT) ustat$(EXEEXT) \
+-	utime$(EXEEXT) utimensat$(EXEEXT) utimensat-Xabbrev$(EXEEXT) \
++	tkill$(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) umovestr_cached$(EXEEXT) \
++	umovestr_cached_adjacent$(EXEEXT) uname$(EXEEXT) \
++	unlink$(EXEEXT) unlinkat$(EXEEXT) unshare$(EXEEXT) \
++	userfaultfd$(EXEEXT) ustat$(EXEEXT) utime$(EXEEXT) \
++	utimensat$(EXEEXT) utimensat-Xabbrev$(EXEEXT) \
+ 	utimensat-Xraw$(EXEEXT) utimensat-Xverbose$(EXEEXT) \
+ 	utimes$(EXEEXT) vhangup$(EXEEXT) vmsplice$(EXEEXT) \
+ 	wait4$(EXEEXT) waitid$(EXEEXT) waitpid$(EXEEXT) xattr$(EXEEXT) \
+@@ -3484,6 +3485,10 @@
+ times_fail_OBJECTS = times-fail.$(OBJEXT)
+ times_fail_LDADD = $(LDADD)
+ times_fail_DEPENDENCIES = libtests.a
++tkill_SOURCES = tkill.c
++tkill_OBJECTS = tkill.$(OBJEXT)
++tkill_LDADD = $(LDADD)
++tkill_DEPENDENCIES = libtests.a
+ tracer_ppid_pgid_sid_SOURCES = tracer_ppid_pgid_sid.c
+ tracer_ppid_pgid_sid_OBJECTS = tracer_ppid_pgid_sid.$(OBJEXT)
+ tracer_ppid_pgid_sid_LDADD = $(LDADD)
+@@ -4184,7 +4189,7 @@
+ 	./$(DEPDIR)/threads-execve.Po ./$(DEPDIR)/time.Po \
+ 	./$(DEPDIR)/timer_create.Po ./$(DEPDIR)/timer_xettime.Po \
+ 	./$(DEPDIR)/timerfd_xettime.Po ./$(DEPDIR)/times-fail.Po \
+-	./$(DEPDIR)/times.Po ./$(DEPDIR)/tracer_ppid_pgid_sid.Po \
++	./$(DEPDIR)/times.Po ./$(DEPDIR)/tkill.Po ./$(DEPDIR)/tracer_ppid_pgid_sid.Po \
+ 	./$(DEPDIR)/truncate.Po ./$(DEPDIR)/truncate64-truncate64.Po \
+ 	./$(DEPDIR)/ugetrlimit.Po ./$(DEPDIR)/uio-uio.Po \
+ 	./$(DEPDIR)/umask.Po ./$(DEPDIR)/umount.Po \
+@@ -4441,7 +4446,7 @@
+ 	syslog-success.c tee.c threads-execve.c \
+ 	threads-execve--quiet-thread-execve.c threads-execve-q.c \
+ 	threads-execve-qq.c threads-execve-qqq.c time.c timer_create.c \
+-	timer_xettime.c timerfd_xettime.c times.c times-fail.c \
++	timer_xettime.c timerfd_xettime.c times.c times-fail.c tkill.c \
+ 	tracer_ppid_pgid_sid.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 umovestr_cached.c \
+@@ -4667,7 +4672,7 @@
+ 	syslog-success.c tee.c threads-execve.c \
+ 	threads-execve--quiet-thread-execve.c threads-execve-q.c \
+ 	threads-execve-qq.c threads-execve-qqq.c time.c timer_create.c \
+-	timer_xettime.c timerfd_xettime.c times.c times-fail.c \
++	timer_xettime.c timerfd_xettime.c times.c times-fail.c tkill.c \
+ 	tracer_ppid_pgid_sid.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 umovestr_cached.c \
+@@ -5725,6 +5730,7 @@
+   timerfd_xettime \
+   times \
+   times-fail \
++  tkill \
+   truncate \
+   truncate64 \
+   ugetrlimit \
+@@ -6133,9 +6139,10 @@
+ 	threads-execve-qqq.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_clock.gen.test trace_creds.gen.test trace_fstat.gen.test \
+-	trace_fstatfs.gen.test trace_lstat.gen.test \
+-	trace_personality_32.gen.test trace_personality_64.gen.test \
++	tkill.gen.test trace_clock.gen.test trace_creds.gen.test \
++	trace_fstat.gen.test trace_fstatfs.gen.test \
++	trace_lstat.gen.test trace_personality_32.gen.test \
++	trace_personality_64.gen.test \
+ 	trace_personality_regex_32.gen.test \
+ 	trace_personality_regex_64.gen.test \
+ 	trace_personality_regex_x32.gen.test \
+@@ -9392,6 +9399,10 @@
+ 	@rm -f times-fail$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(times_fail_OBJECTS) $(times_fail_LDADD) $(LIBS)
+ 
++tkill$(EXEEXT): $(tkill_OBJECTS) $(tkill_DEPENDENCIES) $(EXTRA_tkill_DEPENDENCIES) 
++	@rm -f tkill$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(tkill_OBJECTS) $(tkill_LDADD) $(LIBS)
++
+ tracer_ppid_pgid_sid$(EXEEXT): $(tracer_ppid_pgid_sid_OBJECTS) $(tracer_ppid_pgid_sid_DEPENDENCIES) $(EXTRA_tracer_ppid_pgid_sid_DEPENDENCIES) 
+ 	@rm -f tracer_ppid_pgid_sid$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(tracer_ppid_pgid_sid_OBJECTS) $(tracer_ppid_pgid_sid_LDADD) $(LIBS)
+@@ -10349,6 +10360,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timerfd_xettime.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/times-fail.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/times.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tkill.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tracer_ppid_pgid_sid.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/truncate.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/truncate64-truncate64.Po@am__quote@ # am--include-marker
+@@ -12169,6 +12181,7 @@
+ 	-rm -f ./$(DEPDIR)/timerfd_xettime.Po
+ 	-rm -f ./$(DEPDIR)/times-fail.Po
+ 	-rm -f ./$(DEPDIR)/times.Po
++	-rm -f ./$(DEPDIR)/tkill.Po
+ 	-rm -f ./$(DEPDIR)/tracer_ppid_pgid_sid.Po
+ 	-rm -f ./$(DEPDIR)/truncate.Po
+ 	-rm -f ./$(DEPDIR)/truncate64-truncate64.Po
+@@ -13024,6 +13037,7 @@
+ 	-rm -f ./$(DEPDIR)/timerfd_xettime.Po
+ 	-rm -f ./$(DEPDIR)/times-fail.Po
+ 	-rm -f ./$(DEPDIR)/times.Po
++	-rm -f ./$(DEPDIR)/tkill.Po
+ 	-rm -f ./$(DEPDIR)/tracer_ppid_pgid_sid.Po
+ 	-rm -f ./$(DEPDIR)/truncate.Po
+ 	-rm -f ./$(DEPDIR)/truncate64-truncate64.Po
+@@ -15101,6 +15115,9 @@
+ $(srcdir)/times-fail.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/tkill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/trace_clock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+Index: strace-5.7/tests/Makefile.in
+===================================================================
+--- strace-5.7.orig/tests/Makefile.in	2020-09-09 15:47:07.671767616 +0200
++++ strace-5.7/tests/Makefile.in	2020-09-09 19:30:36.780885588 +0200
+@@ -496,14 +496,15 @@
+ 	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) \
+-	umovestr_cached$(EXEEXT) umovestr_cached_adjacent$(EXEEXT) \
+-	uname$(EXEEXT) unlink$(EXEEXT) unlinkat$(EXEEXT) \
+-	unshare$(EXEEXT) userfaultfd$(EXEEXT) ustat$(EXEEXT) \
+-	utime$(EXEEXT) utimensat$(EXEEXT) utimensat-Xabbrev$(EXEEXT) \
++	tkill$(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) umovestr_cached$(EXEEXT) \
++	umovestr_cached_adjacent$(EXEEXT) uname$(EXEEXT) \
++	unlink$(EXEEXT) unlinkat$(EXEEXT) unshare$(EXEEXT) \
++	userfaultfd$(EXEEXT) ustat$(EXEEXT) utime$(EXEEXT) \
++	utimensat$(EXEEXT) utimensat-Xabbrev$(EXEEXT) \
+ 	utimensat-Xraw$(EXEEXT) utimensat-Xverbose$(EXEEXT) \
+ 	utimes$(EXEEXT) vhangup$(EXEEXT) vmsplice$(EXEEXT) \
+ 	wait4$(EXEEXT) waitid$(EXEEXT) waitpid$(EXEEXT) xattr$(EXEEXT) \
+@@ -3484,6 +3485,10 @@
+ times_fail_OBJECTS = times-fail.$(OBJEXT)
+ times_fail_LDADD = $(LDADD)
+ times_fail_DEPENDENCIES = libtests.a
++tkill_SOURCES = tkill.c
++tkill_OBJECTS = tkill.$(OBJEXT)
++tkill_LDADD = $(LDADD)
++tkill_DEPENDENCIES = libtests.a
+ tracer_ppid_pgid_sid_SOURCES = tracer_ppid_pgid_sid.c
+ tracer_ppid_pgid_sid_OBJECTS = tracer_ppid_pgid_sid.$(OBJEXT)
+ tracer_ppid_pgid_sid_LDADD = $(LDADD)
+@@ -4184,7 +4189,7 @@
+ 	./$(DEPDIR)/threads-execve.Po ./$(DEPDIR)/time.Po \
+ 	./$(DEPDIR)/timer_create.Po ./$(DEPDIR)/timer_xettime.Po \
+ 	./$(DEPDIR)/timerfd_xettime.Po ./$(DEPDIR)/times-fail.Po \
+-	./$(DEPDIR)/times.Po ./$(DEPDIR)/tracer_ppid_pgid_sid.Po \
++	./$(DEPDIR)/times.Po ./$(DEPDIR)/tkill.Po ./$(DEPDIR)/tracer_ppid_pgid_sid.Po \
+ 	./$(DEPDIR)/truncate.Po ./$(DEPDIR)/truncate64-truncate64.Po \
+ 	./$(DEPDIR)/ugetrlimit.Po ./$(DEPDIR)/uio-uio.Po \
+ 	./$(DEPDIR)/umask.Po ./$(DEPDIR)/umount.Po \
+@@ -4441,7 +4446,7 @@
+ 	syslog-success.c tee.c threads-execve.c \
+ 	threads-execve--quiet-thread-execve.c threads-execve-q.c \
+ 	threads-execve-qq.c threads-execve-qqq.c time.c timer_create.c \
+-	timer_xettime.c timerfd_xettime.c times.c times-fail.c \
++	timer_xettime.c timerfd_xettime.c times.c times-fail.c tkill.c \
+ 	tracer_ppid_pgid_sid.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 umovestr_cached.c \
+@@ -4667,7 +4672,7 @@
+ 	syslog-success.c tee.c threads-execve.c \
+ 	threads-execve--quiet-thread-execve.c threads-execve-q.c \
+ 	threads-execve-qq.c threads-execve-qqq.c time.c timer_create.c \
+-	timer_xettime.c timerfd_xettime.c times.c times-fail.c \
++	timer_xettime.c timerfd_xettime.c times.c times-fail.c tkill.c \
+ 	tracer_ppid_pgid_sid.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 umovestr_cached.c \
+@@ -5725,6 +5730,7 @@
+   timerfd_xettime \
+   times \
+   times-fail \
++  tkill \
+   truncate \
+   truncate64 \
+   ugetrlimit \
+@@ -6133,9 +6139,10 @@
+ 	threads-execve-qqq.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_clock.gen.test trace_creds.gen.test trace_fstat.gen.test \
+-	trace_fstatfs.gen.test trace_lstat.gen.test \
+-	trace_personality_32.gen.test trace_personality_64.gen.test \
++	tkill.gen.test trace_clock.gen.test trace_creds.gen.test \
++	trace_fstat.gen.test trace_fstatfs.gen.test \
++	trace_lstat.gen.test trace_personality_32.gen.test \
++	trace_personality_64.gen.test \
+ 	trace_personality_regex_32.gen.test \
+ 	trace_personality_regex_64.gen.test \
+ 	trace_personality_regex_x32.gen.test \
+@@ -9392,6 +9399,10 @@
+ 	@rm -f times-fail$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(times_fail_OBJECTS) $(times_fail_LDADD) $(LIBS)
+ 
++tkill$(EXEEXT): $(tkill_OBJECTS) $(tkill_DEPENDENCIES) $(EXTRA_tkill_DEPENDENCIES) 
++	@rm -f tkill$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(tkill_OBJECTS) $(tkill_LDADD) $(LIBS)
++
+ tracer_ppid_pgid_sid$(EXEEXT): $(tracer_ppid_pgid_sid_OBJECTS) $(tracer_ppid_pgid_sid_DEPENDENCIES) $(EXTRA_tracer_ppid_pgid_sid_DEPENDENCIES) 
+ 	@rm -f tracer_ppid_pgid_sid$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(tracer_ppid_pgid_sid_OBJECTS) $(tracer_ppid_pgid_sid_LDADD) $(LIBS)
+@@ -10349,6 +10360,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timerfd_xettime.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/times-fail.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/times.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tkill.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tracer_ppid_pgid_sid.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/truncate.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/truncate64-truncate64.Po@am__quote@ # am--include-marker
+@@ -12169,6 +12181,7 @@
+ 	-rm -f ./$(DEPDIR)/timerfd_xettime.Po
+ 	-rm -f ./$(DEPDIR)/times-fail.Po
+ 	-rm -f ./$(DEPDIR)/times.Po
++	-rm -f ./$(DEPDIR)/tkill.Po
+ 	-rm -f ./$(DEPDIR)/tracer_ppid_pgid_sid.Po
+ 	-rm -f ./$(DEPDIR)/truncate.Po
+ 	-rm -f ./$(DEPDIR)/truncate64-truncate64.Po
+@@ -13024,6 +13037,7 @@
+ 	-rm -f ./$(DEPDIR)/timerfd_xettime.Po
+ 	-rm -f ./$(DEPDIR)/times-fail.Po
+ 	-rm -f ./$(DEPDIR)/times.Po
++	-rm -f ./$(DEPDIR)/tkill.Po
+ 	-rm -f ./$(DEPDIR)/tracer_ppid_pgid_sid.Po
+ 	-rm -f ./$(DEPDIR)/truncate.Po
+ 	-rm -f ./$(DEPDIR)/truncate64-truncate64.Po
+@@ -15101,6 +15115,9 @@
+ $(srcdir)/times-fail.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/tkill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/trace_clock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
diff --git a/SOURCES/0133-tests-check-decoding-of-tgkill-syscall.patch b/SOURCES/0133-tests-check-decoding-of-tgkill-syscall.patch
new file mode 100644
index 0000000..70bae9e
--- /dev/null
+++ b/SOURCES/0133-tests-check-decoding-of-tgkill-syscall.patch
@@ -0,0 +1,656 @@
+From 9d4d64f6fdfcae908aec455888e92a69c9c81c64 Mon Sep 17 00:00:00 2001
+From: "Dmitry V. Levin" <ldv@altlinux.org>
+Date: Sat, 1 Aug 2020 08:00:00 +0000
+Subject: [PATCH 133/138] tests: check decoding of tgkill syscall
+
+* tests/tgkill.c: New file.
+* tests/gen_tests.in (tgkill): New entry.
+* tests/pure_executables.list: Add tgkill.
+* tests/.gitignore: Likewise.
+---
+ tests/.gitignore            |  1 +
+ tests/gen_tests.in          |  1 +
+ tests/pure_executables.list |  1 +
+ tests/tgkill.c              | 69 +++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 72 insertions(+)
+ create mode 100644 tests/tgkill.c
+
+Index: strace-5.7/tests/gen_tests.in
+===================================================================
+--- strace-5.7.orig/tests/gen_tests.in	2020-09-09 19:30:36.780885588 +0200
++++ strace-5.7/tests/gen_tests.in	2020-09-09 19:32:50.740965435 +0200
+@@ -658,6 +658,7 @@
+ sysinfo	-a14
+ syslog	-a35
+ tee
++tgkill	-a15 --signal='!cont'
+ threads-execve--quiet-thread-execve +threads-execve.test -s40 --quiet=personality,thread-execve
+ threads-execve-q +threads-execve.test -q
+ threads-execve-qq +threads-execve.test -qq
+Index: strace-5.7/tests/pure_executables.list
+===================================================================
+--- strace-5.7.orig/tests/pure_executables.list	2020-09-09 19:30:36.780885588 +0200
++++ strace-5.7/tests/pure_executables.list	2020-09-09 19:32:45.308962197 +0200
+@@ -583,6 +583,7 @@
+ sysinfo
+ syslog
+ tee
++tgkill
+ time
+ timer_create
+ timer_xettime
+Index: strace-5.7/tests/tgkill.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/tgkill.c	2020-09-09 19:32:50.740965435 +0200
+@@ -0,0 +1,69 @@
++/*
++ * Check decoding of tgkill syscall.
++ *
++ * Copyright (c) 2020 Dmitry V. Levin <ldv@altlinux.org>
++ * All rights reserved.
++ *
++ * SPDX-License-Identifier: GPL-2.0-or-later
++ */
++
++#include "tests.h"
++#include "scno.h"
++
++#ifdef __NR_tgkill
++
++# include <signal.h>
++# include <stdio.h>
++# include <unistd.h>
++
++static const char *errstr;
++
++static long
++k_tgkill(const unsigned int tgid,
++	 const unsigned int tid,
++	 const unsigned int sig)
++{
++        const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL;
++        const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL;
++        const kernel_ulong_t arg1 = fill | tgid;
++        const kernel_ulong_t arg2 = fill | tid;
++        const kernel_ulong_t arg3 = fill | sig;
++        const long rc = syscall(__NR_tgkill, arg1, arg2, arg3, bad, bad, bad);
++        errstr = sprintrc(rc);
++        return rc;
++}
++
++int
++main(void)
++{
++	const int pid = getpid();
++	const int bad_pid = -1;
++	const int bad_sig = 0xface;
++
++	k_tgkill(pid, pid, 0);
++	printf("tgkill(%d, %d, 0) = %s\n", pid, pid, errstr);
++
++	k_tgkill(pid, bad_pid, 0);
++	printf("tgkill(%d, %d, 0) = %s\n", pid, bad_pid, errstr);
++
++	k_tgkill(bad_pid, pid, 0);
++	printf("tgkill(%d, %d, 0) = %s\n", bad_pid, pid, errstr);
++
++	k_tgkill(pid, pid, SIGCONT);
++	printf("tgkill(%d, %d, SIGCONT) = %s\n", pid, pid, errstr);
++
++	k_tgkill(pid, pid, bad_sig);
++	printf("tgkill(%d, %d, %d) = %s\n", pid, pid, bad_sig, errstr);
++
++	k_tgkill(pid, pid, -bad_sig);
++	printf("tgkill(%d, %d, %d) = %s\n", pid, pid, -bad_sig, errstr);
++
++	puts("+++ exited with 0 +++");
++	return 0;
++}
++
++#else
++
++SKIP_MAIN_UNDEFINED("__NR_tgkill")
++
++#endif
+Index: strace-5.7/tests-m32/gen_tests.in
+===================================================================
+--- strace-5.7.orig/tests-m32/gen_tests.in	2020-09-09 19:30:36.780885588 +0200
++++ strace-5.7/tests-m32/gen_tests.in	2020-09-09 19:32:50.740965435 +0200
+@@ -658,6 +658,7 @@
+ sysinfo	-a14
+ syslog	-a35
+ tee
++tgkill	-a15 --signal='!cont'
+ threads-execve--quiet-thread-execve +threads-execve.test -s40 --quiet=personality,thread-execve
+ threads-execve-q +threads-execve.test -q
+ threads-execve-qq +threads-execve.test -qq
+Index: strace-5.7/tests-m32/pure_executables.list
+===================================================================
+--- strace-5.7.orig/tests-m32/pure_executables.list	2020-09-09 19:30:36.780885588 +0200
++++ strace-5.7/tests-m32/pure_executables.list	2020-09-09 19:32:45.309962197 +0200
+@@ -583,6 +583,7 @@
+ sysinfo
+ syslog
+ tee
++tgkill
+ time
+ timer_create
+ timer_xettime
+Index: strace-5.7/tests-m32/tgkill.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/tgkill.c	2020-09-09 19:32:50.740965435 +0200
+@@ -0,0 +1,69 @@
++/*
++ * Check decoding of tgkill syscall.
++ *
++ * Copyright (c) 2020 Dmitry V. Levin <ldv@altlinux.org>
++ * All rights reserved.
++ *
++ * SPDX-License-Identifier: GPL-2.0-or-later
++ */
++
++#include "tests.h"
++#include "scno.h"
++
++#ifdef __NR_tgkill
++
++# include <signal.h>
++# include <stdio.h>
++# include <unistd.h>
++
++static const char *errstr;
++
++static long
++k_tgkill(const unsigned int tgid,
++	 const unsigned int tid,
++	 const unsigned int sig)
++{
++        const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL;
++        const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL;
++        const kernel_ulong_t arg1 = fill | tgid;
++        const kernel_ulong_t arg2 = fill | tid;
++        const kernel_ulong_t arg3 = fill | sig;
++        const long rc = syscall(__NR_tgkill, arg1, arg2, arg3, bad, bad, bad);
++        errstr = sprintrc(rc);
++        return rc;
++}
++
++int
++main(void)
++{
++	const int pid = getpid();
++	const int bad_pid = -1;
++	const int bad_sig = 0xface;
++
++	k_tgkill(pid, pid, 0);
++	printf("tgkill(%d, %d, 0) = %s\n", pid, pid, errstr);
++
++	k_tgkill(pid, bad_pid, 0);
++	printf("tgkill(%d, %d, 0) = %s\n", pid, bad_pid, errstr);
++
++	k_tgkill(bad_pid, pid, 0);
++	printf("tgkill(%d, %d, 0) = %s\n", bad_pid, pid, errstr);
++
++	k_tgkill(pid, pid, SIGCONT);
++	printf("tgkill(%d, %d, SIGCONT) = %s\n", pid, pid, errstr);
++
++	k_tgkill(pid, pid, bad_sig);
++	printf("tgkill(%d, %d, %d) = %s\n", pid, pid, bad_sig, errstr);
++
++	k_tgkill(pid, pid, -bad_sig);
++	printf("tgkill(%d, %d, %d) = %s\n", pid, pid, -bad_sig, errstr);
++
++	puts("+++ exited with 0 +++");
++	return 0;
++}
++
++#else
++
++SKIP_MAIN_UNDEFINED("__NR_tgkill")
++
++#endif
+Index: strace-5.7/tests-mx32/gen_tests.in
+===================================================================
+--- strace-5.7.orig/tests-mx32/gen_tests.in	2020-09-09 19:30:36.780885588 +0200
++++ strace-5.7/tests-mx32/gen_tests.in	2020-09-09 19:32:50.740965435 +0200
+@@ -658,6 +658,7 @@
+ sysinfo	-a14
+ syslog	-a35
+ tee
++tgkill	-a15 --signal='!cont'
+ threads-execve--quiet-thread-execve +threads-execve.test -s40 --quiet=personality,thread-execve
+ threads-execve-q +threads-execve.test -q
+ threads-execve-qq +threads-execve.test -qq
+Index: strace-5.7/tests-mx32/pure_executables.list
+===================================================================
+--- strace-5.7.orig/tests-mx32/pure_executables.list	2020-09-09 19:30:36.780885588 +0200
++++ strace-5.7/tests-mx32/pure_executables.list	2020-09-09 19:32:45.310962198 +0200
+@@ -583,6 +583,7 @@
+ sysinfo
+ syslog
+ tee
++tgkill
+ time
+ timer_create
+ timer_xettime
+Index: strace-5.7/tests-mx32/tgkill.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/tgkill.c	2020-09-09 19:32:50.740965435 +0200
+@@ -0,0 +1,69 @@
++/*
++ * Check decoding of tgkill syscall.
++ *
++ * Copyright (c) 2020 Dmitry V. Levin <ldv@altlinux.org>
++ * All rights reserved.
++ *
++ * SPDX-License-Identifier: GPL-2.0-or-later
++ */
++
++#include "tests.h"
++#include "scno.h"
++
++#ifdef __NR_tgkill
++
++# include <signal.h>
++# include <stdio.h>
++# include <unistd.h>
++
++static const char *errstr;
++
++static long
++k_tgkill(const unsigned int tgid,
++	 const unsigned int tid,
++	 const unsigned int sig)
++{
++        const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL;
++        const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL;
++        const kernel_ulong_t arg1 = fill | tgid;
++        const kernel_ulong_t arg2 = fill | tid;
++        const kernel_ulong_t arg3 = fill | sig;
++        const long rc = syscall(__NR_tgkill, arg1, arg2, arg3, bad, bad, bad);
++        errstr = sprintrc(rc);
++        return rc;
++}
++
++int
++main(void)
++{
++	const int pid = getpid();
++	const int bad_pid = -1;
++	const int bad_sig = 0xface;
++
++	k_tgkill(pid, pid, 0);
++	printf("tgkill(%d, %d, 0) = %s\n", pid, pid, errstr);
++
++	k_tgkill(pid, bad_pid, 0);
++	printf("tgkill(%d, %d, 0) = %s\n", pid, bad_pid, errstr);
++
++	k_tgkill(bad_pid, pid, 0);
++	printf("tgkill(%d, %d, 0) = %s\n", bad_pid, pid, errstr);
++
++	k_tgkill(pid, pid, SIGCONT);
++	printf("tgkill(%d, %d, SIGCONT) = %s\n", pid, pid, errstr);
++
++	k_tgkill(pid, pid, bad_sig);
++	printf("tgkill(%d, %d, %d) = %s\n", pid, pid, bad_sig, errstr);
++
++	k_tgkill(pid, pid, -bad_sig);
++	printf("tgkill(%d, %d, %d) = %s\n", pid, pid, -bad_sig, errstr);
++
++	puts("+++ exited with 0 +++");
++	return 0;
++}
++
++#else
++
++SKIP_MAIN_UNDEFINED("__NR_tgkill")
++
++#endif
+Index: strace-5.7/tests-m32/Makefile.in
+===================================================================
+--- strace-5.7.orig/tests-m32/Makefile.in	2020-09-09 19:32:14.800944013 +0200
++++ strace-5.7/tests-m32/Makefile.in	2020-09-09 19:49:34.530563739 +0200
+@@ -493,8 +493,8 @@
+ 	strace-xx$(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) \
++	sysinfo$(EXEEXT) syslog$(EXEEXT) tee$(EXEEXT) tgkill$(EXEEXT) \
++	time$(EXEEXT) timer_create$(EXEEXT) timer_xettime$(EXEEXT) \
+ 	timerfd_xettime$(EXEEXT) times$(EXEEXT) times-fail$(EXEEXT) \
+ 	tkill$(EXEEXT) truncate$(EXEEXT) truncate64$(EXEEXT) \
+ 	ugetrlimit$(EXEEXT) uio$(EXEEXT) umask$(EXEEXT) \
+@@ -3444,6 +3444,10 @@
+ tee_OBJECTS = tee.$(OBJEXT)
+ tee_LDADD = $(LDADD)
+ tee_DEPENDENCIES = libtests.a
++tgkill_SOURCES = tgkill.c
++tgkill_OBJECTS = tgkill.$(OBJEXT)
++tgkill_LDADD = $(LDADD)
++tgkill_DEPENDENCIES = libtests.a
+ threads_execve_SOURCES = threads-execve.c
+ threads_execve_OBJECTS = threads-execve.$(OBJEXT)
+ threads_execve_DEPENDENCIES = $(am__DEPENDENCIES_1) $(LDADD)
+@@ -4181,7 +4185,7 @@
+ 	./$(DEPDIR)/symlinkat.Po ./$(DEPDIR)/sync.Po \
+ 	./$(DEPDIR)/sync_file_range.Po ./$(DEPDIR)/sync_file_range2.Po \
+ 	./$(DEPDIR)/sysinfo.Po ./$(DEPDIR)/syslog-success.Po \
+-	./$(DEPDIR)/syslog.Po ./$(DEPDIR)/tee.Po \
++	./$(DEPDIR)/syslog.Po ./$(DEPDIR)/tee.Po ./$(DEPDIR)/tgkill.Po \
+ 	./$(DEPDIR)/threads-execve--quiet-thread-execve.Po \
+ 	./$(DEPDIR)/threads-execve-q.Po \
+ 	./$(DEPDIR)/threads-execve-qq.Po \
+@@ -4443,7 +4447,7 @@
+ 	strace--strings-in-hex-non-ascii.c strace-x.c strace-xx.c \
+ 	swap.c sxetmask.c symlink.c symlinkat.c sync.c \
+ 	sync_file_range.c sync_file_range2.c sysinfo.c syslog.c \
+-	syslog-success.c tee.c threads-execve.c \
++	syslog-success.c tee.c tgkill.c threads-execve.c \
+ 	threads-execve--quiet-thread-execve.c threads-execve-q.c \
+ 	threads-execve-qq.c threads-execve-qqq.c time.c timer_create.c \
+ 	timer_xettime.c timerfd_xettime.c times.c times-fail.c tkill.c \
+@@ -4669,7 +4673,7 @@
+ 	strace--strings-in-hex-non-ascii.c strace-x.c strace-xx.c \
+ 	swap.c sxetmask.c symlink.c symlinkat.c sync.c \
+ 	sync_file_range.c sync_file_range2.c sysinfo.c syslog.c \
+-	syslog-success.c tee.c threads-execve.c \
++	syslog-success.c tee.c tgkill.c threads-execve.c \
+ 	threads-execve--quiet-thread-execve.c threads-execve-q.c \
+ 	threads-execve-qq.c threads-execve-qqq.c time.c timer_create.c \
+ 	timer_xettime.c timerfd_xettime.c times.c times-fail.c tkill.c \
+@@ -5724,6 +5728,7 @@
+   sysinfo \
+   syslog \
+   tee \
++  tgkill \
+   time \
+   timer_create \
+   timer_xettime \
+@@ -6133,7 +6138,7 @@
+ 	strace-xx.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 \
++	sysinfo.gen.test syslog.gen.test tee.gen.test tgkill.gen.test \
+ 	threads-execve--quiet-thread-execve.gen.test \
+ 	threads-execve-q.gen.test threads-execve-qq.gen.test \
+ 	threads-execve-qqq.gen.test time.gen.test \
+@@ -9355,6 +9360,10 @@
+ 	@rm -f tee$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(tee_OBJECTS) $(tee_LDADD) $(LIBS)
+ 
++tgkill$(EXEEXT): $(tgkill_OBJECTS) $(tgkill_DEPENDENCIES) $(EXTRA_tgkill_DEPENDENCIES) 
++	@rm -f tgkill$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(tgkill_OBJECTS) $(tgkill_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)
+@@ -10349,6 +10358,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/syslog-success.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/syslog.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tee.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tgkill.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads-execve--quiet-thread-execve.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads-execve-q.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads-execve-qq.Po@am__quote@ # am--include-marker
+@@ -12170,6 +12180,7 @@
+ 	-rm -f ./$(DEPDIR)/syslog-success.Po
+ 	-rm -f ./$(DEPDIR)/syslog.Po
+ 	-rm -f ./$(DEPDIR)/tee.Po
++	-rm -f ./$(DEPDIR)/tgkill.Po
+ 	-rm -f ./$(DEPDIR)/threads-execve--quiet-thread-execve.Po
+ 	-rm -f ./$(DEPDIR)/threads-execve-q.Po
+ 	-rm -f ./$(DEPDIR)/threads-execve-qq.Po
+@@ -13026,6 +13037,7 @@
+ 	-rm -f ./$(DEPDIR)/syslog-success.Po
+ 	-rm -f ./$(DEPDIR)/syslog.Po
+ 	-rm -f ./$(DEPDIR)/tee.Po
++	-rm -f ./$(DEPDIR)/tgkill.Po
+ 	-rm -f ./$(DEPDIR)/threads-execve--quiet-thread-execve.Po
+ 	-rm -f ./$(DEPDIR)/threads-execve-q.Po
+ 	-rm -f ./$(DEPDIR)/threads-execve-qq.Po
+@@ -15085,6 +15097,9 @@
+ $(srcdir)/tee.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/tgkill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/threads-execve--quiet-thread-execve.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+Index: strace-5.7/tests-mx32/Makefile.in
+===================================================================
+--- strace-5.7.orig/tests-mx32/Makefile.in	2020-09-09 19:32:39.854958946 +0200
++++ strace-5.7/tests-mx32/Makefile.in	2020-09-09 19:49:39.557566736 +0200
+@@ -493,8 +493,8 @@
+ 	strace-xx$(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) \
++	sysinfo$(EXEEXT) syslog$(EXEEXT) tee$(EXEEXT) tgkill$(EXEEXT) \
++	time$(EXEEXT) timer_create$(EXEEXT) timer_xettime$(EXEEXT) \
+ 	timerfd_xettime$(EXEEXT) times$(EXEEXT) times-fail$(EXEEXT) \
+ 	tkill$(EXEEXT) truncate$(EXEEXT) truncate64$(EXEEXT) \
+ 	ugetrlimit$(EXEEXT) uio$(EXEEXT) umask$(EXEEXT) \
+@@ -3444,6 +3444,10 @@
+ tee_OBJECTS = tee.$(OBJEXT)
+ tee_LDADD = $(LDADD)
+ tee_DEPENDENCIES = libtests.a
++tgkill_SOURCES = tgkill.c
++tgkill_OBJECTS = tgkill.$(OBJEXT)
++tgkill_LDADD = $(LDADD)
++tgkill_DEPENDENCIES = libtests.a
+ threads_execve_SOURCES = threads-execve.c
+ threads_execve_OBJECTS = threads-execve.$(OBJEXT)
+ threads_execve_DEPENDENCIES = $(am__DEPENDENCIES_1) $(LDADD)
+@@ -4181,7 +4185,7 @@
+ 	./$(DEPDIR)/symlinkat.Po ./$(DEPDIR)/sync.Po \
+ 	./$(DEPDIR)/sync_file_range.Po ./$(DEPDIR)/sync_file_range2.Po \
+ 	./$(DEPDIR)/sysinfo.Po ./$(DEPDIR)/syslog-success.Po \
+-	./$(DEPDIR)/syslog.Po ./$(DEPDIR)/tee.Po \
++	./$(DEPDIR)/syslog.Po ./$(DEPDIR)/tee.Po ./$(DEPDIR)/tgkill.Po \
+ 	./$(DEPDIR)/threads-execve--quiet-thread-execve.Po \
+ 	./$(DEPDIR)/threads-execve-q.Po \
+ 	./$(DEPDIR)/threads-execve-qq.Po \
+@@ -4443,7 +4447,7 @@
+ 	strace--strings-in-hex-non-ascii.c strace-x.c strace-xx.c \
+ 	swap.c sxetmask.c symlink.c symlinkat.c sync.c \
+ 	sync_file_range.c sync_file_range2.c sysinfo.c syslog.c \
+-	syslog-success.c tee.c threads-execve.c \
++	syslog-success.c tee.c tgkill.c threads-execve.c \
+ 	threads-execve--quiet-thread-execve.c threads-execve-q.c \
+ 	threads-execve-qq.c threads-execve-qqq.c time.c timer_create.c \
+ 	timer_xettime.c timerfd_xettime.c times.c times-fail.c tkill.c \
+@@ -4669,7 +4673,7 @@
+ 	strace--strings-in-hex-non-ascii.c strace-x.c strace-xx.c \
+ 	swap.c sxetmask.c symlink.c symlinkat.c sync.c \
+ 	sync_file_range.c sync_file_range2.c sysinfo.c syslog.c \
+-	syslog-success.c tee.c threads-execve.c \
++	syslog-success.c tee.c tgkill.c threads-execve.c \
+ 	threads-execve--quiet-thread-execve.c threads-execve-q.c \
+ 	threads-execve-qq.c threads-execve-qqq.c time.c timer_create.c \
+ 	timer_xettime.c timerfd_xettime.c times.c times-fail.c tkill.c \
+@@ -5724,6 +5728,7 @@
+   sysinfo \
+   syslog \
+   tee \
++  tgkill \
+   time \
+   timer_create \
+   timer_xettime \
+@@ -6133,7 +6138,7 @@
+ 	strace-xx.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 \
++	sysinfo.gen.test syslog.gen.test tee.gen.test tgkill.gen.test \
+ 	threads-execve--quiet-thread-execve.gen.test \
+ 	threads-execve-q.gen.test threads-execve-qq.gen.test \
+ 	threads-execve-qqq.gen.test time.gen.test \
+@@ -9355,6 +9360,10 @@
+ 	@rm -f tee$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(tee_OBJECTS) $(tee_LDADD) $(LIBS)
+ 
++tgkill$(EXEEXT): $(tgkill_OBJECTS) $(tgkill_DEPENDENCIES) $(EXTRA_tgkill_DEPENDENCIES) 
++	@rm -f tgkill$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(tgkill_OBJECTS) $(tgkill_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)
+@@ -10349,6 +10358,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/syslog-success.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/syslog.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tee.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tgkill.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads-execve--quiet-thread-execve.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads-execve-q.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads-execve-qq.Po@am__quote@ # am--include-marker
+@@ -12170,6 +12180,7 @@
+ 	-rm -f ./$(DEPDIR)/syslog-success.Po
+ 	-rm -f ./$(DEPDIR)/syslog.Po
+ 	-rm -f ./$(DEPDIR)/tee.Po
++	-rm -f ./$(DEPDIR)/tgkill.Po
+ 	-rm -f ./$(DEPDIR)/threads-execve--quiet-thread-execve.Po
+ 	-rm -f ./$(DEPDIR)/threads-execve-q.Po
+ 	-rm -f ./$(DEPDIR)/threads-execve-qq.Po
+@@ -13026,6 +13037,7 @@
+ 	-rm -f ./$(DEPDIR)/syslog-success.Po
+ 	-rm -f ./$(DEPDIR)/syslog.Po
+ 	-rm -f ./$(DEPDIR)/tee.Po
++	-rm -f ./$(DEPDIR)/tgkill.Po
+ 	-rm -f ./$(DEPDIR)/threads-execve--quiet-thread-execve.Po
+ 	-rm -f ./$(DEPDIR)/threads-execve-q.Po
+ 	-rm -f ./$(DEPDIR)/threads-execve-qq.Po
+@@ -15085,6 +15097,9 @@
+ $(srcdir)/tee.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/tgkill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/threads-execve--quiet-thread-execve.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+Index: strace-5.7/tests/Makefile.in
+===================================================================
+--- strace-5.7.orig/tests/Makefile.in	2020-09-09 19:30:36.780885588 +0200
++++ strace-5.7/tests/Makefile.in	2020-09-09 19:46:24.904450714 +0200
+@@ -493,8 +493,8 @@
+ 	strace-xx$(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) \
++	sysinfo$(EXEEXT) syslog$(EXEEXT) tee$(EXEEXT) tgkill$(EXEEXT) \
++	time$(EXEEXT) timer_create$(EXEEXT) timer_xettime$(EXEEXT) \
+ 	timerfd_xettime$(EXEEXT) times$(EXEEXT) times-fail$(EXEEXT) \
+ 	tkill$(EXEEXT) truncate$(EXEEXT) truncate64$(EXEEXT) \
+ 	ugetrlimit$(EXEEXT) uio$(EXEEXT) umask$(EXEEXT) \
+@@ -3444,6 +3444,10 @@
+ tee_OBJECTS = tee.$(OBJEXT)
+ tee_LDADD = $(LDADD)
+ tee_DEPENDENCIES = libtests.a
++tgkill_SOURCES = tgkill.c
++tgkill_OBJECTS = tgkill.$(OBJEXT)
++tgkill_LDADD = $(LDADD)
++tgkill_DEPENDENCIES = libtests.a
+ threads_execve_SOURCES = threads-execve.c
+ threads_execve_OBJECTS = threads-execve.$(OBJEXT)
+ threads_execve_DEPENDENCIES = $(am__DEPENDENCIES_1) $(LDADD)
+@@ -4181,7 +4185,7 @@
+ 	./$(DEPDIR)/symlinkat.Po ./$(DEPDIR)/sync.Po \
+ 	./$(DEPDIR)/sync_file_range.Po ./$(DEPDIR)/sync_file_range2.Po \
+ 	./$(DEPDIR)/sysinfo.Po ./$(DEPDIR)/syslog-success.Po \
+-	./$(DEPDIR)/syslog.Po ./$(DEPDIR)/tee.Po \
++	./$(DEPDIR)/syslog.Po ./$(DEPDIR)/tee.Po ./$(DEPDIR)/tgkill.Po \
+ 	./$(DEPDIR)/threads-execve--quiet-thread-execve.Po \
+ 	./$(DEPDIR)/threads-execve-q.Po \
+ 	./$(DEPDIR)/threads-execve-qq.Po \
+@@ -4443,7 +4447,7 @@
+ 	strace--strings-in-hex-non-ascii.c strace-x.c strace-xx.c \
+ 	swap.c sxetmask.c symlink.c symlinkat.c sync.c \
+ 	sync_file_range.c sync_file_range2.c sysinfo.c syslog.c \
+-	syslog-success.c tee.c threads-execve.c \
++	syslog-success.c tee.c tgkill.c threads-execve.c \
+ 	threads-execve--quiet-thread-execve.c threads-execve-q.c \
+ 	threads-execve-qq.c threads-execve-qqq.c time.c timer_create.c \
+ 	timer_xettime.c timerfd_xettime.c times.c times-fail.c tkill.c \
+@@ -4669,7 +4673,7 @@
+ 	strace--strings-in-hex-non-ascii.c strace-x.c strace-xx.c \
+ 	swap.c sxetmask.c symlink.c symlinkat.c sync.c \
+ 	sync_file_range.c sync_file_range2.c sysinfo.c syslog.c \
+-	syslog-success.c tee.c threads-execve.c \
++	syslog-success.c tee.c tgkill.c threads-execve.c \
+ 	threads-execve--quiet-thread-execve.c threads-execve-q.c \
+ 	threads-execve-qq.c threads-execve-qqq.c time.c timer_create.c \
+ 	timer_xettime.c timerfd_xettime.c times.c times-fail.c tkill.c \
+@@ -5724,6 +5728,7 @@
+   sysinfo \
+   syslog \
+   tee \
++  tgkill \
+   time \
+   timer_create \
+   timer_xettime \
+@@ -6133,7 +6138,7 @@
+ 	strace-xx.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 \
++	sysinfo.gen.test syslog.gen.test tee.gen.test tgkill.gen.test \
+ 	threads-execve--quiet-thread-execve.gen.test \
+ 	threads-execve-q.gen.test threads-execve-qq.gen.test \
+ 	threads-execve-qqq.gen.test time.gen.test \
+@@ -9355,6 +9360,10 @@
+ 	@rm -f tee$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(tee_OBJECTS) $(tee_LDADD) $(LIBS)
+ 
++tgkill$(EXEEXT): $(tgkill_OBJECTS) $(tgkill_DEPENDENCIES) $(EXTRA_tgkill_DEPENDENCIES) 
++	@rm -f tgkill$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(tgkill_OBJECTS) $(tgkill_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)
+@@ -10349,6 +10358,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/syslog-success.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/syslog.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tee.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tgkill.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads-execve--quiet-thread-execve.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads-execve-q.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads-execve-qq.Po@am__quote@ # am--include-marker
+@@ -12170,6 +12180,7 @@
+ 	-rm -f ./$(DEPDIR)/syslog-success.Po
+ 	-rm -f ./$(DEPDIR)/syslog.Po
+ 	-rm -f ./$(DEPDIR)/tee.Po
++	-rm -f ./$(DEPDIR)/tgkill.Po
+ 	-rm -f ./$(DEPDIR)/threads-execve--quiet-thread-execve.Po
+ 	-rm -f ./$(DEPDIR)/threads-execve-q.Po
+ 	-rm -f ./$(DEPDIR)/threads-execve-qq.Po
+@@ -13026,6 +13037,7 @@
+ 	-rm -f ./$(DEPDIR)/syslog-success.Po
+ 	-rm -f ./$(DEPDIR)/syslog.Po
+ 	-rm -f ./$(DEPDIR)/tee.Po
++	-rm -f ./$(DEPDIR)/tgkill.Po
+ 	-rm -f ./$(DEPDIR)/threads-execve--quiet-thread-execve.Po
+ 	-rm -f ./$(DEPDIR)/threads-execve-q.Po
+ 	-rm -f ./$(DEPDIR)/threads-execve-qq.Po
+@@ -15085,6 +15097,9 @@
+ $(srcdir)/tee.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/tgkill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/threads-execve--quiet-thread-execve.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
diff --git a/SOURCES/0134-PID-namespace-translation-support.patch b/SOURCES/0134-PID-namespace-translation-support.patch
new file mode 100644
index 0000000..0938d16
--- /dev/null
+++ b/SOURCES/0134-PID-namespace-translation-support.patch
@@ -0,0 +1,1478 @@
+From bf533b84fd7200399c9b0e68fdf10c6aaf8b1a7a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=81kos=20Uzonyi?= <uzonyi.akos@gmail.com>
+Date: Mon, 8 Jun 2020 19:01:03 +0200
+Subject: [PATCH 134/138] PID namespace translation support
+
+* defs.h (pidns_translation): New variable.
+(tcb): Add pid_ns field.
+(RVAL_MASK): Change value from 013 to 017.
+(RVAL_TID, RVAL_SID, RVAL_TGID, RVAL_PGID): New definitions.
+(pid_type): New enum.
+(pidns_init, translate_pid, get_proc_pid, printpid, printpid_tgid_pgid):
+New function declarations.
+* largefile_wrappers.h (fstat_fd): New macro.
+* pidns.c: New file.
+* trie.c: New file.
+* trie.h: New file.
+* Makefile.am (libstrace_a_SOURCES): Add trie.c, trie.h, pidns.c.
+* strace.c (pidns_translation): New variable.
+(init): Add --pidns-translation option.
+* syscall.c (syscall_exiting_trace): Handle RVAL_* return values.
+* NEWS: Mention this.
+* strace.1.in: Add description for new option.
+
+Co-Authored-by: Eugene Syromyatnikov <evgsyr@gmail.com>
+
+Conflicts:
+	NEWS
+---
+ Makefile.am          |   3 +
+ defs.h               |  56 ++++-
+ largefile_wrappers.h |   2 +
+ pidns.c              | 608 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ strace.1.in          |   4 +
+ strace.c             |   9 +
+ syscall.c            |  15 ++
+ trie.c               | 290 ++++++++++++++++++++++++
+ trie.h               |  92 ++++++++
+ 9 files changed, 1078 insertions(+), 1 deletion(-)
+ create mode 100644 pidns.c
+ create mode 100644 trie.c
+ create mode 100644 trie.h
+
+Index: strace-5.7/Makefile.am
+===================================================================
+--- strace-5.7.orig/Makefile.am	2020-09-09 15:50:13.471900510 +0200
++++ strace-5.7/Makefile.am	2020-09-09 15:52:09.159983257 +0200
+@@ -233,6 +233,7 @@
+ 	personality.c	\
+ 	pidfd_getfd.c	\
+ 	pidfd_open.c	\
++	pidns.c		\
+ 	pkeys.c		\
+ 	poll.c		\
+ 	prctl.c		\
+@@ -344,6 +345,8 @@
+ 	time.c		\
+ 	times.c		\
+ 	trace_event.h	\
++	trie.c 		\
++	trie.h 		\
+ 	truncate.c	\
+ 	ubi.c		\
+ 	ucopy.c		\
+Index: strace-5.7/defs.h
+===================================================================
+--- strace-5.7.orig/defs.h	2020-09-09 15:50:13.473900511 +0200
++++ strace-5.7/defs.h	2020-09-09 15:52:09.159983257 +0200
+@@ -280,6 +280,13 @@
+ 	struct timespec etime;	/* Syscall entry time (CLOCK_MONOTONIC) */
+ 	struct timespec delay_expiration_time; /* When does the delay end */
+ 
++	/*
++	 * The ID of the PID namespace of this process
++	 * (inode number of /proc/<pid>/ns/pid)
++	 * (0: not initialized)
++	 */
++	unsigned int pid_ns;
++
+ 	struct mmap_cache_t *mmap_cache;
+ 
+ 	/*
+@@ -413,7 +420,11 @@
+ # define RVAL_HEX	001	/* hex format */
+ # define RVAL_OCTAL	002	/* octal format */
+ # define RVAL_FD		010	/* file descriptor */
+-# define RVAL_MASK	013	/* mask for these values */
++# define RVAL_TID	011	/* task ID */
++# define RVAL_SID	012	/* session ID */
++# define RVAL_TGID	013	/* thread group ID */
++# define RVAL_PGID	014	/* process group ID */
++# define RVAL_MASK	017	/* mask for these values */
+ 
+ # define RVAL_STR	020	/* Print `auxstr' field after return val */
+ # define RVAL_NONE	040	/* Print nothing */
+@@ -428,6 +439,16 @@
+ 
+ # define indirect_ipccall(tcp) (tcp_sysent(tcp)->sys_flags & TRACE_INDIRECT_SUBCALL)
+ 
++enum pid_type {
++	PT_TID,
++	PT_TGID,
++	PT_PGID,
++	PT_SID,
++
++	PT_COUNT,
++	PT_NONE = -1
++};
++
+ enum sock_proto {
+ 	SOCK_PROTO_UNKNOWN,
+ 	SOCK_PROTO_UNIX,
+@@ -469,6 +490,7 @@
+ extern int Tflag_width;
+ extern bool iflag;
+ extern bool count_wallclock;
++extern unsigned int pidns_translation;
+ /* are we filtering traces based on paths? */
+ extern struct path_set {
+ 	const char **paths_selected;
+@@ -984,6 +1006,29 @@
+ extern kernel_ulong_t *
+ fetch_indirect_syscall_args(struct tcb *, kernel_ulong_t addr, unsigned int n_args);
+ 
++extern void pidns_init(void);
++
++/**
++ * Returns the pid of the tracee as present in /proc of the tracer (can be
++ * different from tcp->pid if /proc and the tracer process are in different PID
++ * namespaces).
++ */
++extern int get_proc_pid(struct tcb *);
++
++/**
++ * Translates a pid from tracee's namespace to our namepace.
++ *
++ * @param tcp             The tcb of the tracee
++ *                        (NULL: from_id is in strace's namespace. Useful for
++ *                         getting the proc PID of from_id)
++ * @param from_id         The id to be translated
++ * @param type            The PID type of from_id
++ * @param proc_pid_ptr    If not NULL, writes the proc PID to this location
++ * @return                The translated id, or 0 if translation fails.
++ */
++extern int translate_pid(struct tcb *, int dest_id, enum pid_type type,
++		    int *proc_pid_ptr);
++
+ extern void
+ dumpiov_in_msghdr(struct tcb *, kernel_ulong_t addr, kernel_ulong_t data_size);
+ 
+@@ -1059,6 +1104,15 @@
+  * of the tracee the descriptor tcp).  This is a stub.
+  */
+ extern void printfd_pid_tracee_ns(struct tcb *tcp, pid_t pid, int fd);
++
++/** Prints a PID specified in the tracee's PID namespace */
++extern void printpid(struct tcb *, int pid, enum pid_type type);
++
++/**
++ * Prints pid as a TGID if positive, and PGID if negative
++ * (like the first argument of kill).
++ */
++extern void printpid_tgid_pgid(struct tcb *, int pid);
+ 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);
+Index: strace-5.7/largefile_wrappers.h
+===================================================================
+--- strace-5.7.orig/largefile_wrappers.h	2020-09-09 15:50:13.473900511 +0200
++++ strace-5.7/largefile_wrappers.h	2020-09-09 15:50:18.017903762 +0200
+@@ -29,6 +29,7 @@
+ #  else
+ #   define fcntl_fd fcntl
+ #  endif
++#  define fstat_fd fstat64
+ #  define strace_stat_t struct stat64
+ #  define stat_file stat64
+ #  define struct_dirent struct dirent64
+@@ -39,6 +40,7 @@
+ #  define open_file open
+ #  define fopen_stream fopen
+ #  define fcntl_fd fcntl
++#  define fstat_fd fstat
+ #  define strace_stat_t struct stat
+ #  define stat_file stat
+ #  define struct_dirent struct dirent
+Index: strace-5.7/pidns.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/pidns.c	2020-09-09 15:50:18.018903762 +0200
+@@ -0,0 +1,608 @@
++/*
++ * Copyright (c) 2020 Ákos Uzonyi <uzonyi.akos@gmail.com>
++ * All rights reserved.
++ *
++ * SPDX-License-Identifier: LGPL-2.1-or-later
++ */
++
++#include "defs.h"
++
++
++#include <dirent.h>
++#include <fcntl.h>
++#include <stdint.h>
++#include <string.h>
++#include <unistd.h>
++
++#include <asm/unistd.h>
++
++#include <sys/ioctl.h>
++#include <sys/param.h>
++#include <sys/types.h>
++#include <sys/stat.h>
++
++#include "largefile_wrappers.h"
++#include "trie.h"
++#include "nsfs.h"
++#include "xmalloc.h"
++#include "xstring.h"
++
++/**
++ * Key:   PID NS ID
++ * Value: a btree:
++ *           Key:   a process PID in NS
++ *           Value: the process's PID as present in /proc
++ */
++static struct trie *ns_pid_to_proc_pid[PT_COUNT];
++
++/**
++ * Key:   Proc PID
++ * Value: struct proc_data
++ */
++static struct trie *proc_data_cache;
++
++static bool ns_get_parent_enotty = false;
++
++static const char tid_str[]  = "NSpid:\t";
++static const char tgid_str[] = "NStgid:\t";
++static const char pgid_str[] = "NSpgid:\t";
++static const char sid_str[]  = "NSsid:\t";
++
++static const struct {
++	const char *str;
++	size_t size;
++} id_strs[PT_COUNT] = {
++	[PT_TID] =  { tid_str,  sizeof(tid_str)  - 1 },
++	[PT_TGID] = { tgid_str, sizeof(tgid_str) - 1 },
++	[PT_PGID] = { pgid_str, sizeof(pgid_str) - 1 },
++	[PT_SID] =  { sid_str,  sizeof(sid_str)  - 1 },
++};
++
++
++/**
++ * Limit on PID NS hierarchy depth, imposed since Linux 3.7. NS traversal
++ * is not possible before Linux 4.9, so we consider this limit pretty universal.
++ */
++#define MAX_NS_DEPTH 32
++
++static const size_t ns_id_size = sizeof(unsigned int) * 8;
++static const uint8_t ptr_sz_lg = (sizeof(void *) == 8 ? 6 : 5);
++
++static int pid_max;
++static uint8_t pid_max_size, pid_max_size_lg;
++
++struct proc_data {
++	int proc_pid;
++	int ns_count;
++	unsigned int ns_hierarchy[MAX_NS_DEPTH];
++	int id_count[PT_COUNT];
++	int id_hierarchy[PT_COUNT][MAX_NS_DEPTH];
++};
++
++/**
++ * Helper function for creating a trie.
++ *
++ * For node_key_bits and data_block_key_bits 4 is used (so trie height is 32 / 4
++ * = 8, and node sizes are 8 byte * 2^4 = 128 bytes), which seems to be a good
++ * tradeoff between memory usage and lookup time. It should not be too large,
++ * since there can be large holes between PIDs, and it would be just a waste of
++ * memory having large nodes with lot of NULL pointers in them.
++ */
++static struct trie *
++create_trie_4(uint8_t key_size, uint8_t item_size_lg, uint64_t empty_value)
++{
++	struct trie *t = trie_create(key_size, item_size_lg, 4, 4, empty_value);
++	if (!t)
++		error_msg_and_die("creating trie failed");
++
++	return t;
++}
++
++void
++pidns_init(void)
++{
++	if (proc_data_cache)
++		return;
++
++	pid_max = INT_MAX;
++	if (read_int_from_file("/proc/sys/kernel/pid_max", &pid_max) < 0)
++		debug_func_perror_msg("reading /proc/sys/kernel/pid_max");
++	pid_max_size = ilog2_32(pid_max - 1) + 1;
++	pid_max_size_lg = ilog2_32(pid_max_size - 1) + 1;
++
++	for (int i = 0; i < PT_COUNT; i++)
++		ns_pid_to_proc_pid[i] = create_trie_4(ns_id_size, ptr_sz_lg, 0);
++
++	proc_data_cache = create_trie_4(pid_max_size, ptr_sz_lg, 0);
++}
++
++static void
++put_proc_pid(unsigned int ns, int ns_pid, enum pid_type type, int proc_pid)
++{
++	struct trie *b = (struct trie *) (uintptr_t) trie_get(ns_pid_to_proc_pid[type], ns);
++	if (!b) {
++		b = create_trie_4(pid_max_size, pid_max_size_lg, 0);
++		trie_set(ns_pid_to_proc_pid[type], ns, (uint64_t) (uintptr_t) b);
++	}
++	trie_set(b, ns_pid, proc_pid);
++}
++
++static int
++get_cached_proc_pid(unsigned int ns, int ns_pid, enum pid_type type)
++{
++	struct trie *b = (struct trie *) (uintptr_t)
++		trie_get(ns_pid_to_proc_pid[type], ns);
++	if (!b)
++		return 0;
++
++	return trie_get(b, ns_pid);
++}
++
++/**
++ * Helper function, converts pid to string, or to "self" for pid == 0.
++ * Uses static buffer for operation.
++ */
++static const char *
++pid_to_str(pid_t pid)
++{
++	if (!pid)
++		return "self";
++
++	static char buf[sizeof("-2147483648")];
++	xsprintf(buf, "%d", pid);
++	return buf;
++}
++
++/**
++ * Returns a list of PID NS IDs for the specified PID.
++ *
++ * @param proc_pid PID (as present in /proc) to get information for.
++ * @param ns_buf   Pointer to buffer that is able to contain at least
++ *                 ns_buf_size items.
++ * @return         Amount of NS in list. 0 indicates error.
++ */
++static size_t
++get_ns_hierarchy(int proc_pid, unsigned int *ns_buf, size_t ns_buf_size)
++{
++	char path[PATH_MAX + 1];
++	xsprintf(path, "/proc/%s/ns/pid", pid_to_str(proc_pid));
++
++	int fd = open_file(path, O_RDONLY);
++	if (fd < 0)
++		return 0;
++
++	size_t n = 0;
++	while (n < ns_buf_size) {
++		strace_stat_t st;
++		if (fstat_fd(fd, &st))
++			break;
++
++		ns_buf[n++] = st.st_ino;
++		if (n >= ns_buf_size)
++			break;
++
++		if (ns_get_parent_enotty)
++			break;
++
++		int parent_fd = ioctl(fd, NS_GET_PARENT);
++		if (parent_fd < 0) {
++			switch (errno) {
++			case EPERM:
++				break;
++
++			case ENOTTY:
++				ns_get_parent_enotty = true;
++				error_msg("NS_* ioctl commands are not "
++					  "supported by the kernel");
++				break;
++
++			default:
++				perror_func_msg("ioctl(NS_GET_PARENT)");
++				break;
++			}
++
++			break;
++		}
++
++		close(fd);
++		fd = parent_fd;
++	}
++
++	close(fd);
++
++	return n;
++}
++
++/**
++ * Get list of IDs present in NS* proc status record. IDs are placed as they are
++ * stored in /proc (from top to bottom of NS hierarchy).
++ *
++ * @param proc_pid    PID (as present in /proc) to get information for.
++ * @param id_buf      Pointer to buffer that is able to contain at least
++ *                    MAX_NS_DEPTH items. Can be NULL.
++ * @param type        Type of ID requested.
++ * @return            Number of items stored in id_list. 0 indicates error.
++ */
++static size_t
++get_id_list(int proc_pid, int *id_buf, enum pid_type type)
++{
++	const char *ns_str = id_strs[type].str;
++	size_t ns_str_size = id_strs[type].size;
++
++	size_t n = 0;
++
++	char status_path[PATH_MAX + 1];
++	xsprintf(status_path, "/proc/%s/status", pid_to_str(proc_pid));
++	FILE *f = fopen_stream(status_path, "r");
++	if (!f)
++		return 0;
++
++	char *line = NULL;
++	size_t linesize = 0;
++	char *p = NULL;
++
++	while (getline(&line, &linesize, f) > 0) {
++		if (strncmp(line, ns_str, ns_str_size) == 0) {
++			p = line + ns_str_size;
++			break;
++		}
++	}
++
++	while (p) {
++		errno = 0;
++		long id = strtol(p, NULL, 10);
++
++		if (id < 0 || id > INT_MAX || errno) {
++			perror_func_msg("converting pid (%ld) to int", id);
++			break;
++		}
++
++		if (id_buf)
++			id_buf[n] = (int) id;
++
++		n++;
++		strsep(&p, "\t");
++	}
++
++	free(line);
++	fclose(f);
++
++	return n;
++}
++
++/**
++ * Returns whether the /proc filesystem's PID namespace is the same as strace's.
++ */
++static bool
++is_proc_ours(void)
++{
++	static int cached_val = -1;
++
++	if (cached_val < 0)
++		cached_val = get_id_list(0, NULL, PT_TID) <= 1;
++
++	return cached_val;
++}
++
++/**
++ * Returns the PID namespace of the tracee
++ */
++static unsigned int
++get_ns(struct tcb *tcp)
++{
++	if (!tcp->pid_ns) {
++		int proc_pid = 0;
++		translate_pid(NULL, tcp->pid, PT_TID, &proc_pid);
++
++		if (proc_pid)
++			get_ns_hierarchy(proc_pid, &tcp->pid_ns, 1);
++	}
++
++	return tcp->pid_ns;
++}
++
++/**
++ * Returns the PID namespace of strace
++ */
++static unsigned int
++get_our_ns(void)
++{
++	static unsigned int our_ns = 0;
++	static bool our_ns_initialised = false;
++
++	if (!our_ns_initialised) {
++		get_ns_hierarchy(0, &our_ns, 1);
++		our_ns_initialised = true;
++	}
++
++	return our_ns;
++}
++
++/**
++ * Returns the cached proc_data struct associated with proc_pid.
++ * If none found, allocates a new proc_data.
++ */
++static struct proc_data *
++get_or_create_proc_data(int proc_pid)
++{
++	struct proc_data *pd = (struct proc_data *) (uintptr_t)
++		trie_get(proc_data_cache, proc_pid);
++
++	if (!pd) {
++		pd = calloc(1, sizeof(*pd));
++		if (!pd)
++			return NULL;
++
++		pd->proc_pid = proc_pid;
++		trie_set(proc_data_cache, proc_pid, (uint64_t) (uintptr_t) pd);
++	}
++
++	return pd;
++}
++
++/**
++ * Updates the proc_data from /proc
++ * If the process does not exists, returns false, and frees the proc_data
++ */
++static bool
++update_proc_data(struct proc_data *pd, enum pid_type type)
++{
++	pd->ns_count = get_ns_hierarchy(pd->proc_pid,
++		pd->ns_hierarchy, MAX_NS_DEPTH);
++	if (!pd->ns_count)
++		goto fail;
++
++	pd->id_count[type] = get_id_list(pd->proc_pid,
++		pd->id_hierarchy[type], type);
++	if (!pd->id_count[type])
++		goto fail;
++
++	return true;
++
++fail:
++	trie_set(proc_data_cache, pd->proc_pid, (uint64_t) (uintptr_t) NULL);
++	free(pd);
++	return false;
++}
++
++/**
++ * Paramters for id translation
++ */
++struct translate_id_params {
++	/* The result (output) */
++	int result_id;
++	/* The proc data of the process (output) */
++	struct proc_data *pd;
++
++	/* The namespace to be translated from */
++	unsigned int from_ns;
++	/* The id to be translated */
++	int from_id;
++	/* The type of the id */
++	enum pid_type type;
++};
++
++/**
++ * Translates an id to our namespace, given the proc_pid of the process,
++ * by reading files in /proc.
++ *
++ * @param tip      The parameters
++ * @param proc_pid The proc pid of the process.
++ *                 If 0, use the cached values in tip->pd.
++ */
++static void
++translate_id_proc_pid(struct translate_id_params *tip, int proc_pid)
++{
++	struct proc_data *pd = proc_pid ?
++		get_or_create_proc_data(proc_pid) :
++		tip->pd;
++
++	tip->result_id = 0;
++	tip->pd = NULL;
++
++	if (!pd)
++		return;
++
++	if (proc_pid && !update_proc_data(pd, tip->type))
++		return;
++
++	if (!pd->ns_count || pd->id_count[tip->type] < pd->ns_count)
++		return;
++
++	int *id_hierarchy = pd->id_hierarchy[tip->type];
++	int id_count = pd->id_count[tip->type];
++
++	for (int i = 0; i < pd->ns_count; i++) {
++		unsigned int ns = pd->ns_hierarchy[i];
++		int ns_id = id_hierarchy[id_count - i - 1];
++		int our_id = id_hierarchy[id_count - pd->ns_count];
++
++		if (ns != tip->from_ns)
++			continue;
++
++		if (ns_id != tip->from_id)
++			return;
++
++		tip->result_id = our_id;
++		tip->pd = pd;
++		return;
++	}
++}
++
++/**
++ * Translates an id to our namespace by reading all proc entries in a directory.
++ * The directory is either /proc or /proc/<pid>/task.
++ *
++ *
++ * @param tip            The parameters
++ * @param path           The path of the directory to be read.
++ * @param read_task_dir  Whether recurse to "task" subdirectory.
++ */
++static void
++translate_id_dir(struct translate_id_params *tip, const char *path,
++                 bool read_task_dir)
++{
++	DIR *dir = opendir(path);
++	if (!dir) {
++		debug_func_perror_msg("opening dir: %s", path);
++		return;
++	}
++
++	while (!tip->result_id) {
++		errno = 0;
++		struct_dirent *entry = read_dir(dir);
++		if (!entry) {
++			if (errno)
++				perror_func_msg("readdir");
++
++			break;
++		}
++
++		if (entry->d_type != DT_DIR)
++			continue;
++
++		errno = 0;
++		long proc_pid = strtol(entry->d_name, NULL, 10);
++		if (proc_pid < 1 || proc_pid > INT_MAX || errno)
++			continue;
++
++		if (read_task_dir) {
++			char task_dir_path[PATH_MAX + 1];
++			xsprintf(task_dir_path, "/proc/%ld/task", proc_pid);
++			translate_id_dir(tip, task_dir_path, false);
++		}
++
++		if (tip->result_id)
++			break;
++
++		translate_id_proc_pid(tip, proc_pid);
++	}
++
++	closedir(dir);
++}
++
++/**
++ * Iterator function of the proc_data_cache for id translation.
++ * If the cache contains the id we are looking for, reads the corresponding
++ * directory in /proc, and if cache is valid, saves the result.
++ */
++static void
++proc_data_cache_iterator_fn(void* fn_data, uint64_t key, uint64_t val)
++{
++	struct translate_id_params *tip = (struct translate_id_params *)fn_data;
++	struct proc_data *pd = (struct proc_data *) (uintptr_t) val;
++
++	if (!pd)
++		return;
++
++	/* Result already found in an earlier iteration */
++	if (tip->result_id)
++		return;
++
++	/* Translate from cache */
++	tip->pd = pd;
++	translate_id_proc_pid(tip, 0);
++	if (!tip->result_id)
++		return;
++
++	/* Now translate from actual data in /proc, to check cache validity */
++	translate_id_proc_pid(tip, pd->proc_pid);
++}
++
++int
++translate_pid(struct tcb *tcp, int from_id, enum pid_type type,
++              int *proc_pid_ptr)
++{
++	if (from_id <= 0 || type < 0 || type >= PT_COUNT)
++		return 0;
++
++	/* If translation is trivial */
++	if ((!tcp || get_ns(tcp) == get_our_ns()) &&
++	    (!proc_pid_ptr || is_proc_ours())) {
++		if (proc_pid_ptr)
++			*proc_pid_ptr = from_id;
++
++		return from_id;
++	}
++
++	struct translate_id_params tip = {
++		.result_id = 0,
++		.pd = NULL,
++		.from_ns = tcp ? get_ns(tcp) : get_our_ns(),
++		.from_id = from_id,
++		.type = type,
++	};
++
++	if (!tip.from_ns)
++		return 0;
++
++	if (ns_get_parent_enotty)
++		return 0;
++
++	/* Look for a cached proc_pid for this (from_ns, from_id) pair */
++	int cached_proc_pid = get_cached_proc_pid(tip.from_ns, tip.from_id,
++		tip.type);
++	if (cached_proc_pid) {
++		translate_id_proc_pid(&tip, cached_proc_pid);
++		if (tip.result_id)
++			goto exit;
++	}
++
++	/* Iterate through the cache, find potential proc_data */
++	trie_iterate_keys(proc_data_cache, 0, pid_max - 1,
++		proc_data_cache_iterator_fn, &tip);
++	/* (proc_data_cache_iterator_fn takes care about updating proc_data) */
++	if (tip.result_id)
++		goto exit;
++
++	/* No cache helped, read all entries in /proc */
++	translate_id_dir(&tip, "/proc", true);
++
++exit:
++	if (tip.pd) {
++		if (tip.pd->proc_pid)
++			put_proc_pid(tip.from_ns, tip.from_id, tip.type,
++				tip.pd->proc_pid);
++
++		if (proc_pid_ptr)
++			*proc_pid_ptr = tip.pd->proc_pid;
++	}
++
++	return tip.result_id;
++}
++
++int
++get_proc_pid(struct tcb *tcp)
++{
++	int proc_pid = 0;
++	translate_pid(NULL, tcp->pid, PT_TID, &proc_pid);
++	return proc_pid;
++}
++
++static void
++printpid_translation(struct tcb *tcp, int pid, enum pid_type type)
++{
++	if (!pidns_translation)
++		return;
++
++	int strace_pid = translate_pid(tcp, pid, type, NULL);
++	if (strace_pid && strace_pid != pid)
++		tprintf_comment("%d in strace's PID NS", strace_pid);
++}
++
++void
++printpid(struct tcb *tcp, int pid, enum pid_type type)
++{
++	tprintf("%d", pid);
++	printpid_translation(tcp, pid, type);
++}
++
++void
++printpid_tgid_pgid(struct tcb *tcp, int pid)
++{
++	tprintf("%d", pid);
++	if (pid > 0)
++		printpid_translation(tcp,  pid, PT_TGID);
++	else if (pid < -1)
++		printpid_translation(tcp, -pid, PT_PGID);
++}
+Index: strace-5.7/strace.1.in
+===================================================================
+--- strace-5.7.orig/strace.1.in	2020-09-09 15:50:13.475900513 +0200
++++ strace-5.7/strace.1.in	2020-09-09 15:50:18.018903762 +0200
+@@ -1075,6 +1075,10 @@
+ protocol-specific information associated with socket file descriptors,
+ block/character device number associated with device file descriptors,
+ and PIDs asociated with pidfd file descriptors.
++.TP
++.B \-\-pidns\-translation
++If strace and tracee are in different PID namespaces, print PIDs in
++strace's namespace, too.
+ .SS Statistics
+ .TP 12
+ .B \-c
+Index: strace-5.7/strace.c
+===================================================================
+--- strace-5.7.orig/strace.c	2020-09-09 15:50:13.476900514 +0200
++++ strace-5.7/strace.c	2020-09-09 15:52:08.646982890 +0200
+@@ -133,6 +133,8 @@
+ static int post_attach_sigstop = TCB_IGNORE_ONE_SIGSTOP;
+ #define use_seize (post_attach_sigstop == 0)
+ 
++unsigned int pidns_translation;
++
+ static bool detach_on_execve;
+ 
+ static int exit_code;
+@@ -1998,6 +2000,8 @@
+ 
+ 	os_release = get_os_release();
+ 
++	pidns_init();
++
+ 	shared_log = stderr;
+ 	set_sortby(DEFAULT_SORTBY);
+ 	set_personality(DEFAULT_PERSONALITY);
+@@ -2022,6 +2026,7 @@
+ 		GETOPT_FOLLOWFORKS,
+ 		GETOPT_OUTPUT_SEPARATELY,
+ 		GETOPT_TS,
++		GETOPT_PIDNS_TRANSLATION,
+ 
+ 		GETOPT_QUAL_TRACE,
+ 		GETOPT_QUAL_ABBREV,
+@@ -2072,6 +2077,7 @@
+ 		{ "summary-wall-clock", no_argument,	   0, 'w' },
+ 		{ "strings-in-hex",	optional_argument, 0, GETOPT_HEX_STR },
+ 		{ "const-print-style",	required_argument, 0, 'X' },
++		{ "pidns-translation",	no_argument      , 0, GETOPT_PIDNS_TRANSLATION },
+ 		{ "successful-only",	no_argument,	   0, 'z' },
+ 		{ "failed-only",	no_argument,	   0, 'Z' },
+ 		{ "failing-only",	no_argument,	   0, 'Z' },
+@@ -2285,6 +2291,9 @@
+ 		case 'y':
+ 			yflag_short++;
+ 			break;
++		case GETOPT_PIDNS_TRANSLATION:
++			pidns_translation++;
++			break;
+ 		case 'z':
+ 			clear_number_set_array(status_set, 1);
+ 			add_number_to_set(STATUS_SUCCESSFUL, status_set);
+Index: strace-5.7/syscall.c
+===================================================================
+--- strace-5.7.orig/syscall.c	2020-09-09 15:50:13.477900514 +0200
++++ strace-5.7/syscall.c	2020-09-09 15:50:18.019903763 +0200
+@@ -930,6 +930,21 @@
+ 					tprintf("= %" PRI_kld, tcp->u_rval);
+ 				}
+ 				break;
++			case RVAL_TID:
++			case RVAL_SID:
++			case RVAL_TGID:
++			case RVAL_PGID: {
++				#define _(_t) [RVAL_##_t - RVAL_TID] = PT_##_t
++				static const enum pid_type types[] = {
++					_(TID), _(SID), _(TGID), _(PGID),
++				};
++				#undef _
++
++				tprints("= ");
++				printpid(tcp, tcp->u_rval,
++					 types[(sys_res & RVAL_MASK) - RVAL_TID]);
++				break;
++			}
+ 			default:
+ 				error_msg("invalid rval format");
+ 				break;
+Index: strace-5.7/trie.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/trie.c	2020-09-09 15:50:18.019903763 +0200
+@@ -0,0 +1,290 @@
++/*
++ * Simple trie implementation for key-value mapping storage
++ *
++ * Copyright (c) 2020 Ákos Uzonyi <uzonyi.akos@gmail.com>
++ * All rights reserved.
++ *
++ * SPDX-License-Identifier: LGPL-2.1-or-later
++ */
++
++#ifdef HAVE_CONFIG_H
++# include "config.h"
++#endif
++
++#include <stdlib.h>
++#include <stdio.h>
++
++#include "trie.h"
++#include "xmalloc.h"
++
++static const uint8_t ptr_sz_lg = (sizeof(void *) == 8 ? 6 : 5);
++
++/**
++ * Returns lg2 of node size in bits for the specific level of the trie.
++ */
++static uint8_t
++trie_get_node_size(struct trie *t, uint8_t depth)
++{
++	/* Last level contains data and we allow it having a different size */
++	if (depth == t->max_depth)
++		return t->data_block_key_bits + t->item_size_lg;
++	/* Last level of the tree can be smaller */
++	if (depth == t->max_depth - 1)
++		return (t->key_size - t->data_block_key_bits - 1) %
++		t->node_key_bits + 1 + ptr_sz_lg;
++
++	return t->node_key_bits + ptr_sz_lg;
++}
++
++/**
++ * Provides starting offset of bits in key corresponding to the node index
++ * at the specific level.
++ */
++static uint8_t
++trie_get_node_bit_offs(struct trie *t, uint8_t depth)
++{
++	uint8_t offs;
++
++	if (depth == t->max_depth)
++		return 0;
++
++	offs = t->data_block_key_bits;
++
++	if (depth == t->max_depth - 1)
++		return offs;
++
++	/* data_block_size + remainder */
++	offs += trie_get_node_size(t, t->max_depth - 1) - ptr_sz_lg;
++	offs += (t->max_depth - depth - 2) * t->node_key_bits;
++
++	return offs;
++}
++
++struct trie *
++trie_create(uint8_t key_size, uint8_t item_size_lg, uint8_t node_key_bits,
++            uint8_t data_block_key_bits, uint64_t empty_value)
++{
++	if (item_size_lg > 6)
++		return NULL;
++	if (key_size > 64)
++		return NULL;
++	if (node_key_bits < 1)
++		return NULL;
++	if (data_block_key_bits < 1 || data_block_key_bits > key_size)
++		return NULL;
++
++	struct trie *t = malloc(sizeof(*t));
++	if (!t)
++		return NULL;
++
++	t->empty_value = empty_value;
++	t->data = NULL;
++	t->item_size_lg = item_size_lg;
++	t->node_key_bits = node_key_bits;
++	t->data_block_key_bits = data_block_key_bits;
++	t->key_size = key_size;
++	t->max_depth = (key_size - data_block_key_bits + node_key_bits - 1)
++		/ t->node_key_bits;
++
++	if (item_size_lg != 6)
++		t->empty_value &= (((uint64_t) 1 << (1 << t->item_size_lg)) - 1);
++
++	return t;
++}
++
++static void *
++trie_create_data_block(struct trie *t)
++{
++	uint64_t fill_value = t->empty_value;
++	for (int i = 1; i < 1 << (6 - t->item_size_lg); i++) {
++		fill_value <<= (1 << t->item_size_lg);
++		fill_value |= t->empty_value;
++	}
++
++	uint8_t sz = t->data_block_key_bits + t->item_size_lg;
++	if (sz < 6)
++		sz = 6;
++
++	size_t count = 1 << (sz - 6);
++	uint64_t *data_block = xcalloc(count, 8);
++
++	for (size_t i = 0; i < count; i++)
++		data_block[i] = fill_value;
++
++	return data_block;
++}
++
++static uint64_t *
++trie_get_node(struct trie *t, uint64_t key, bool auto_create)
++{
++	void **cur_node = &(t->data);
++
++	if (t->key_size < 64 && key > (uint64_t) 1 << t->key_size)
++		return NULL;
++
++	for (uint8_t cur_depth = 0; cur_depth <= t->max_depth; cur_depth++) {
++		uint8_t offs = trie_get_node_bit_offs(t, cur_depth);
++		uint8_t sz = trie_get_node_size(t, cur_depth);
++
++		if (!*cur_node) {
++			if (!auto_create)
++				return NULL;
++
++			if (cur_depth == t->max_depth)
++				*cur_node = trie_create_data_block(t);
++			else
++				*cur_node = xcalloc(1 << sz, 1);
++		}
++
++		if (cur_depth == t->max_depth)
++			break;
++
++		size_t pos = (key >> offs) & ((1 << (sz - ptr_sz_lg)) - 1);
++		cur_node = (((void **) (*cur_node)) + pos);
++	}
++
++	return (uint64_t *) (*cur_node);
++}
++
++static void
++trie_data_block_calc_pos(struct trie *t, uint64_t key,
++                         uint64_t *pos, uint64_t *mask, uint64_t *offs)
++{
++	uint64_t key_mask;
++
++	key_mask = (1 << t->data_block_key_bits) - 1;
++	*pos = (key & key_mask) >> (6 - t->item_size_lg);
++
++	if (t->item_size_lg == 6) {
++		*offs = 0;
++		*mask = -1;
++		return;
++	}
++
++	key_mask = (1 << (6 - t->item_size_lg)) - 1;
++	*offs = (key & key_mask) * (1 << t->item_size_lg);
++
++	*mask = (((uint64_t) 1 << (1 << t->item_size_lg)) - 1) << *offs;
++}
++
++bool
++trie_set(struct trie *t, uint64_t key, uint64_t val)
++{
++	uint64_t *data = trie_get_node(t, key, true);
++	if (!data)
++		return false;
++
++	uint64_t pos, mask, offs;
++	trie_data_block_calc_pos(t, key, &pos, &mask, &offs);
++
++	data[pos] &= ~mask;
++	data[pos] |= (val << offs) & mask;
++
++	return true;
++}
++
++static uint64_t
++trie_data_block_get(struct trie *t, uint64_t *data, uint64_t key)
++{
++	if (!data)
++		return t->empty_value;
++
++	uint64_t pos, mask, offs;
++	trie_data_block_calc_pos(t, key, &pos, &mask, &offs);
++
++	return (data[pos] & mask) >> offs;
++}
++
++uint64_t
++trie_get(struct trie *b, uint64_t key)
++{
++	return trie_data_block_get(b, trie_get_node(b, key, false), key);
++}
++
++static uint64_t
++trie_iterate_keys_node(struct trie *t,
++                       trie_iterate_fn fn, void *fn_data,
++                       void *node, uint64_t start, uint64_t end,
++                       uint8_t depth)
++{
++	if (start > end || !node)
++		return 0;
++
++	if (t->key_size < 64) {
++		uint64_t key_max = ((uint64_t) 1 << t->key_size) - 1;
++		if (end > key_max)
++			end = key_max;
++	}
++
++	if (depth == t->max_depth) {
++		for (uint64_t i = start; i <= end; i++)
++			fn(fn_data, i, trie_data_block_get(t,
++				(uint64_t *) node, i));
++
++		return end - start + 1;
++	}
++
++	uint8_t parent_node_bit_off = depth == 0 ?
++		t->key_size :
++		trie_get_node_bit_offs(t, depth - 1);
++
++	uint64_t first_key_in_node = start &
++		(uint64_t) -1 << parent_node_bit_off;
++
++	uint8_t node_bit_off = trie_get_node_bit_offs(t, depth);
++	uint8_t node_key_bits = parent_node_bit_off - node_bit_off;
++	uint64_t mask = ((uint64_t) 1 << (node_key_bits)) - 1;
++	uint64_t start_index = (start >> node_bit_off) & mask;
++	uint64_t end_index = (end >> node_bit_off) & mask;
++	uint64_t child_key_count = (uint64_t) 1 << node_bit_off;
++
++	uint64_t count = 0;
++
++	for (uint64_t i = start_index; i <= end_index; i++) {
++		uint64_t child_start = first_key_in_node + i * child_key_count;
++		uint64_t child_end = first_key_in_node +
++			(i + 1) * child_key_count - 1;
++
++		if (child_start < start)
++			child_start = start;
++		if (child_end > end)
++			child_end = end;
++
++		count += trie_iterate_keys_node(t, fn, fn_data,
++			((void **) node)[i], child_start, child_end,
++			depth + 1);
++	}
++
++	return count;
++}
++
++uint64_t trie_iterate_keys(struct trie *t, uint64_t start, uint64_t end,
++                           trie_iterate_fn fn, void *fn_data)
++{
++	return trie_iterate_keys_node(t, fn, fn_data, t->data,
++		start, end, 0);
++}
++
++static void
++trie_free_node(struct trie *t, void *node, uint8_t depth)
++{
++	if (!node)
++		return;
++
++	if (depth >= t->max_depth)
++		goto free_node;
++
++	size_t sz = 1 << (trie_get_node_size(t, depth) - ptr_sz_lg);
++	for (size_t i = 0; i < sz; i++)
++		trie_free_node(t, ((void **) node)[i], depth + 1);
++
++free_node:
++	free(node);
++}
++
++void
++trie_free(struct trie *t)
++{
++	trie_free_node(t, t->data, 0);
++	free(t);
++}
+Index: strace-5.7/trie.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/trie.h	2020-09-09 15:50:18.019903763 +0200
+@@ -0,0 +1,92 @@
++/*
++ * Simple trie interface
++ *
++ * Copyright (c) 2020 Ákos Uzonyi <uzonyi.akos@gmail.com>
++ * All rights reserved.
++ *
++ * SPDX-License-Identifier: LGPL-2.1-or-later
++ */
++
++#ifndef STRACE_TRIE_H
++#define STRACE_TRIE_H
++
++#include <stdbool.h>
++#include <stdint.h>
++
++/**
++ * Trie control structure.
++ * Trie implemented here has the following properties:
++ *  * It allows storing values of the same size, the size can vary from 1 bit to
++ *    64 bit values (only power of 2 sizes are allowed).
++ *  * The key can be up to 64 bits in size.
++ *  * It has separate configuration for node size and data block size.
++ *
++ * How bits of key are used for different node levels:
++ *
++ *   highest bits                                                  lowest bits
++ *  | node_key_bits | node_key_bits | ... | <remainder> | data_block_key_bits |
++ *  \_________________________________________________________________________/
++ *                                 key_size
++ *
++ * So, the remainder is used on the lowest non-data node level.
++ *
++ * As of now, it doesn't implement any mechanisms for resizing/changing key
++ * size.  De-fragmentation is also unsupported currently.
++ */
++struct trie {
++	/** Return value of trie_get if key is not found */
++	uint64_t empty_value;
++
++	/** Pointer to root node */
++	void *data;
++
++	/** Key size in bits (0..64). */
++	uint8_t key_size;
++
++	/**
++	 * Size of the stored values in log2 bits (0..6).
++	 * (6: 64 bit values, 5: 32 bit values, ...)
++	 */
++	uint8_t item_size_lg;
++
++	/**
++	 * Number of bits in the key that make a symbol for a node.
++	 * (equals to log2 of the child count of the node)
++	 */
++	uint8_t node_key_bits;
++
++	/**
++	 * Number of bits in the key that make a symbol for the data block (leaf).
++	 * (equals to log2 of the value count stored in a data block)
++	 */
++	uint8_t data_block_key_bits;
++
++	/** The depth of the data block. Calculated from the values above */
++	uint8_t max_depth;
++};
++
++struct trie* trie_create(uint8_t key_size, uint8_t item_size_lg,
++			uint8_t node_key_bits, uint8_t data_block_key_bits,
++			uint64_t empty_value);
++
++bool trie_set(struct trie *t, uint64_t key, uint64_t val);
++uint64_t trie_get(struct trie *t, uint64_t key);
++
++typedef void (*trie_iterate_fn)(void *data, uint64_t key, uint64_t val);
++
++/**
++ * Calls trie_iterate_fn for each key-value pair where
++ * key is inside the [start, end] interval (inclusive).
++ *
++ * @param t        The trie.
++ * @param start    The start of the key interval (inclusive).
++ * @param end      The end of the key interval (inclusive).
++ * @param fn       The function to be called.
++ * @param fn_data  The value to be passed to fn.
++ */
++uint64_t trie_iterate_keys(struct trie *t, uint64_t start, uint64_t end,
++			    trie_iterate_fn fn, void *fn_data);
++
++void trie_free(struct trie *t);
++
++#endif /* !STRACE_TRIE_H */
+Index: strace-5.7/Makefile.in
+===================================================================
+--- strace-5.7.orig/Makefile.in	2020-09-09 15:50:13.484900519 +0200
++++ strace-5.7/Makefile.in	2020-09-09 15:54:59.569105143 +0200
+@@ -344,8 +344,8 @@
+ 	nlattr.c nlattr.h nsfs.c nsfs.h nsig.h numa.c number_set.c \
+ 	number_set.h oldstat.c open.c open_tree.c or1k_atomic.c \
+ 	pathtrace.c perf.c perf_event_struct.h perf_ioctl.c \
+-	personality.c pidfd_getfd.c pidfd_open.c pkeys.c poll.c \
+-	prctl.c print_aio_sigset.c print_dev_t.c print_fields.h \
++	personality.c pidfd_getfd.c pidfd_open.c pidns.c pkeys.c \
++	poll.c prctl.c print_aio_sigset.c print_dev_t.c print_fields.h \
+ 	print_group_req.c print_ifindex.c print_instruction_pointer.c \
+ 	print_kernel_version.c print_mac.c print_mq_attr.c \
+ 	print_msgbuf.c print_sg_req_info.c print_sigevent.c \
+@@ -369,10 +369,10 @@
+ 	string_to_uint.h swapon.c sync_file_range.c sync_file_range2.c \
+ 	syscall.c sysctl.c sysent.h sysent_shorthand_defs.h \
+ 	sysent_shorthand_undefs.h sysinfo.c syslog.c sysmips.c term.c \
+-	time.c times.c trace_event.h truncate.c ubi.c ucopy.c uid.c \
+-	uid16.c umask.c umount.c uname.c upeek.c upoke.c userfaultfd.c \
+-	ustat.c util.c utime.c utimes.c v4l2.c wait.c wait.h \
+-	watchdog_ioctl.c xattr.c xfs_quota_stat.h xgetdents.c \
++	time.c times.c trace_event.h trie.c trie.h truncate.c ubi.c \
++	ucopy.c uid.c uid16.c umask.c umount.c uname.c upeek.c upoke.c \
++	userfaultfd.c ustat.c util.c utime.c utimes.c v4l2.c wait.c \
++	wait.h watchdog_ioctl.c xattr.c xfs_quota_stat.h xgetdents.c \
+ 	xgetdents.h xlat.c xlat.h xmalloc.c xmalloc.h xstring.h \
+ 	types/cryptouser.h types/evdev.h types/io_uring.h \
+ 	types/openat2.h types/rtnl_link.h types/rtnl_mdb.h \
+@@ -487,8 +487,9 @@
+ 	libstrace_a-perf_ioctl.$(OBJEXT) \
+ 	libstrace_a-personality.$(OBJEXT) \
+ 	libstrace_a-pidfd_getfd.$(OBJEXT) \
+-	libstrace_a-pidfd_open.$(OBJEXT) libstrace_a-pkeys.$(OBJEXT) \
+-	libstrace_a-poll.$(OBJEXT) libstrace_a-prctl.$(OBJEXT) \
++	libstrace_a-pidfd_open.$(OBJEXT) libstrace_a-pidns.$(OBJEXT) \
++	libstrace_a-pkeys.$(OBJEXT) libstrace_a-poll.$(OBJEXT) \
++	libstrace_a-prctl.$(OBJEXT) \
+ 	libstrace_a-print_aio_sigset.$(OBJEXT) \
+ 	libstrace_a-print_dev_t.$(OBJEXT) \
+ 	libstrace_a-print_group_req.$(OBJEXT) \
+@@ -553,15 +554,15 @@
+ 	libstrace_a-sysinfo.$(OBJEXT) libstrace_a-syslog.$(OBJEXT) \
+ 	libstrace_a-sysmips.$(OBJEXT) libstrace_a-term.$(OBJEXT) \
+ 	libstrace_a-time.$(OBJEXT) libstrace_a-times.$(OBJEXT) \
+-	libstrace_a-truncate.$(OBJEXT) libstrace_a-ubi.$(OBJEXT) \
+-	libstrace_a-ucopy.$(OBJEXT) libstrace_a-uid.$(OBJEXT) \
+-	libstrace_a-uid16.$(OBJEXT) libstrace_a-umask.$(OBJEXT) \
+-	libstrace_a-umount.$(OBJEXT) libstrace_a-uname.$(OBJEXT) \
+-	libstrace_a-upeek.$(OBJEXT) libstrace_a-upoke.$(OBJEXT) \
+-	libstrace_a-userfaultfd.$(OBJEXT) libstrace_a-ustat.$(OBJEXT) \
+-	libstrace_a-util.$(OBJEXT) libstrace_a-utime.$(OBJEXT) \
+-	libstrace_a-utimes.$(OBJEXT) libstrace_a-v4l2.$(OBJEXT) \
+-	libstrace_a-wait.$(OBJEXT) \
++	libstrace_a-trie.$(OBJEXT) libstrace_a-truncate.$(OBJEXT) \
++	libstrace_a-ubi.$(OBJEXT) libstrace_a-ucopy.$(OBJEXT) \
++	libstrace_a-uid.$(OBJEXT) libstrace_a-uid16.$(OBJEXT) \
++	libstrace_a-umask.$(OBJEXT) libstrace_a-umount.$(OBJEXT) \
++	libstrace_a-uname.$(OBJEXT) libstrace_a-upeek.$(OBJEXT) \
++	libstrace_a-upoke.$(OBJEXT) libstrace_a-userfaultfd.$(OBJEXT) \
++	libstrace_a-ustat.$(OBJEXT) libstrace_a-util.$(OBJEXT) \
++	libstrace_a-utime.$(OBJEXT) libstrace_a-utimes.$(OBJEXT) \
++	libstrace_a-v4l2.$(OBJEXT) libstrace_a-wait.$(OBJEXT) \
+ 	libstrace_a-watchdog_ioctl.$(OBJEXT) \
+ 	libstrace_a-xattr.$(OBJEXT) libstrace_a-xgetdents.$(OBJEXT) \
+ 	libstrace_a-xlat.$(OBJEXT) libstrace_a-xmalloc.$(OBJEXT) \
+@@ -834,6 +835,7 @@
+ 	./$(DEPDIR)/libstrace_a-personality.Po \
+ 	./$(DEPDIR)/libstrace_a-pidfd_getfd.Po \
+ 	./$(DEPDIR)/libstrace_a-pidfd_open.Po \
++	./$(DEPDIR)/libstrace_a-pidns.Po \
+ 	./$(DEPDIR)/libstrace_a-pkeys.Po \
+ 	./$(DEPDIR)/libstrace_a-poll.Po \
+ 	./$(DEPDIR)/libstrace_a-prctl.Po \
+@@ -924,6 +926,7 @@
+ 	./$(DEPDIR)/libstrace_a-term.Po \
+ 	./$(DEPDIR)/libstrace_a-time.Po \
+ 	./$(DEPDIR)/libstrace_a-times.Po \
++	./$(DEPDIR)/libstrace_a-trie.Po \
+ 	./$(DEPDIR)/libstrace_a-truncate.Po \
+ 	./$(DEPDIR)/libstrace_a-ubi.Po \
+ 	./$(DEPDIR)/libstrace_a-ucopy.Po \
+@@ -1829,8 +1832,8 @@
+ 	nlattr.c nlattr.h nsfs.c nsfs.h nsig.h numa.c number_set.c \
+ 	number_set.h oldstat.c open.c open_tree.c or1k_atomic.c \
+ 	pathtrace.c perf.c perf_event_struct.h perf_ioctl.c \
+-	personality.c pidfd_getfd.c pidfd_open.c pkeys.c poll.c \
+-	prctl.c print_aio_sigset.c print_dev_t.c print_fields.h \
++	personality.c pidfd_getfd.c pidfd_open.c pidns.c pkeys.c \
++	poll.c prctl.c print_aio_sigset.c print_dev_t.c print_fields.h \
+ 	print_group_req.c print_ifindex.c print_instruction_pointer.c \
+ 	print_kernel_version.c print_mac.c print_mq_attr.c \
+ 	print_msgbuf.c print_sg_req_info.c print_sigevent.c \
+@@ -1854,10 +1857,10 @@
+ 	string_to_uint.h swapon.c sync_file_range.c sync_file_range2.c \
+ 	syscall.c sysctl.c sysent.h sysent_shorthand_defs.h \
+ 	sysent_shorthand_undefs.h sysinfo.c syslog.c sysmips.c term.c \
+-	time.c times.c trace_event.h truncate.c ubi.c ucopy.c uid.c \
+-	uid16.c umask.c umount.c uname.c upeek.c upoke.c userfaultfd.c \
+-	ustat.c util.c utime.c utimes.c v4l2.c wait.c wait.h \
+-	watchdog_ioctl.c xattr.c xfs_quota_stat.h xgetdents.c \
++	time.c times.c trace_event.h trie.c trie.h truncate.c ubi.c \
++	ucopy.c uid.c uid16.c umask.c umount.c uname.c upeek.c upoke.c \
++	userfaultfd.c ustat.c util.c utime.c utimes.c v4l2.c wait.c \
++	wait.h watchdog_ioctl.c xattr.c xfs_quota_stat.h xgetdents.c \
+ 	xgetdents.h xlat.c xlat.h xmalloc.c xmalloc.h xstring.h \
+ 	$(TYPES_HEADER_FILES) $(strace_SOURCES_check) $(am__append_1) \
+ 	$(am__append_2) $(am__append_7)
+@@ -2899,6 +2902,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-personality.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-pidfd_getfd.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-pidfd_open.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-pidns.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-pkeys.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-poll.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-prctl.Po@am__quote@ # am--include-marker
+@@ -2989,6 +2993,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-term.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-time.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-times.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-trie.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-truncate.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-ubi.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-ucopy.Po@am__quote@ # am--include-marker
+@@ -6015,6 +6020,20 @@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-pidfd_open.obj `if test -f 'pidfd_open.c'; then $(CYGPATH_W) 'pidfd_open.c'; else $(CYGPATH_W) '$(srcdir)/pidfd_open.c'; fi`
+ 
++libstrace_a-pidns.o: pidns.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-pidns.o -MD -MP -MF $(DEPDIR)/libstrace_a-pidns.Tpo -c -o libstrace_a-pidns.o `test -f 'pidns.c' || echo '$(srcdir)/'`pidns.c
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-pidns.Tpo $(DEPDIR)/libstrace_a-pidns.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pidns.c' object='libstrace_a-pidns.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-pidns.o `test -f 'pidns.c' || echo '$(srcdir)/'`pidns.c
++
++libstrace_a-pidns.obj: pidns.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-pidns.obj -MD -MP -MF $(DEPDIR)/libstrace_a-pidns.Tpo -c -o libstrace_a-pidns.obj `if test -f 'pidns.c'; then $(CYGPATH_W) 'pidns.c'; else $(CYGPATH_W) '$(srcdir)/pidns.c'; fi`
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-pidns.Tpo $(DEPDIR)/libstrace_a-pidns.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pidns.c' object='libstrace_a-pidns.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-pidns.obj `if test -f 'pidns.c'; then $(CYGPATH_W) 'pidns.c'; else $(CYGPATH_W) '$(srcdir)/pidns.c'; fi`
++
+ libstrace_a-pkeys.o: pkeys.c
+ @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-pkeys.o -MD -MP -MF $(DEPDIR)/libstrace_a-pkeys.Tpo -c -o libstrace_a-pkeys.o `test -f 'pkeys.c' || echo '$(srcdir)/'`pkeys.c
+ @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-pkeys.Tpo $(DEPDIR)/libstrace_a-pkeys.Po
+@@ -7275,6 +7294,20 @@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-times.obj `if test -f 'times.c'; then $(CYGPATH_W) 'times.c'; else $(CYGPATH_W) '$(srcdir)/times.c'; fi`
+ 
++libstrace_a-trie.o: trie.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-trie.o -MD -MP -MF $(DEPDIR)/libstrace_a-trie.Tpo -c -o libstrace_a-trie.o `test -f 'trie.c' || echo '$(srcdir)/'`trie.c
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-trie.Tpo $(DEPDIR)/libstrace_a-trie.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='trie.c' object='libstrace_a-trie.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-trie.o `test -f 'trie.c' || echo '$(srcdir)/'`trie.c
++
++libstrace_a-trie.obj: trie.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-trie.obj -MD -MP -MF $(DEPDIR)/libstrace_a-trie.Tpo -c -o libstrace_a-trie.obj `if test -f 'trie.c'; then $(CYGPATH_W) 'trie.c'; else $(CYGPATH_W) '$(srcdir)/trie.c'; fi`
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-trie.Tpo $(DEPDIR)/libstrace_a-trie.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='trie.c' object='libstrace_a-trie.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-trie.obj `if test -f 'trie.c'; then $(CYGPATH_W) 'trie.c'; else $(CYGPATH_W) '$(srcdir)/trie.c'; fi`
++
+ libstrace_a-truncate.o: truncate.c
+ @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-truncate.o -MD -MP -MF $(DEPDIR)/libstrace_a-truncate.Tpo -c -o libstrace_a-truncate.o `test -f 'truncate.c' || echo '$(srcdir)/'`truncate.c
+ @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-truncate.Tpo $(DEPDIR)/libstrace_a-truncate.Po
+@@ -8411,6 +8444,7 @@
+ 	-rm -f ./$(DEPDIR)/libstrace_a-personality.Po
+ 	-rm -f ./$(DEPDIR)/libstrace_a-pidfd_getfd.Po
+ 	-rm -f ./$(DEPDIR)/libstrace_a-pidfd_open.Po
++	-rm -f ./$(DEPDIR)/libstrace_a-pidns.Po
+ 	-rm -f ./$(DEPDIR)/libstrace_a-pkeys.Po
+ 	-rm -f ./$(DEPDIR)/libstrace_a-poll.Po
+ 	-rm -f ./$(DEPDIR)/libstrace_a-prctl.Po
+@@ -8501,6 +8535,7 @@
+ 	-rm -f ./$(DEPDIR)/libstrace_a-term.Po
+ 	-rm -f ./$(DEPDIR)/libstrace_a-time.Po
+ 	-rm -f ./$(DEPDIR)/libstrace_a-times.Po
++	-rm -f ./$(DEPDIR)/libstrace_a-trie.Po
+ 	-rm -f ./$(DEPDIR)/libstrace_a-truncate.Po
+ 	-rm -f ./$(DEPDIR)/libstrace_a-ubi.Po
+ 	-rm -f ./$(DEPDIR)/libstrace_a-ucopy.Po
+@@ -8796,6 +8831,7 @@
+ 	-rm -f ./$(DEPDIR)/libstrace_a-personality.Po
+ 	-rm -f ./$(DEPDIR)/libstrace_a-pidfd_getfd.Po
+ 	-rm -f ./$(DEPDIR)/libstrace_a-pidfd_open.Po
++	-rm -f ./$(DEPDIR)/libstrace_a-pidns.Po
+ 	-rm -f ./$(DEPDIR)/libstrace_a-pkeys.Po
+ 	-rm -f ./$(DEPDIR)/libstrace_a-poll.Po
+ 	-rm -f ./$(DEPDIR)/libstrace_a-prctl.Po
+@@ -8886,6 +8922,7 @@
+ 	-rm -f ./$(DEPDIR)/libstrace_a-term.Po
+ 	-rm -f ./$(DEPDIR)/libstrace_a-time.Po
+ 	-rm -f ./$(DEPDIR)/libstrace_a-times.Po
++	-rm -f ./$(DEPDIR)/libstrace_a-trie.Po
+ 	-rm -f ./$(DEPDIR)/libstrace_a-truncate.Po
+ 	-rm -f ./$(DEPDIR)/libstrace_a-ubi.Po
+ 	-rm -f ./$(DEPDIR)/libstrace_a-ucopy.Po
diff --git a/SOURCES/0135-Use-printpid-in-decoders.patch b/SOURCES/0135-Use-printpid-in-decoders.patch
new file mode 100644
index 0000000..dd4291b
--- /dev/null
+++ b/SOURCES/0135-Use-printpid-in-decoders.patch
@@ -0,0 +1,1212 @@
+From 4d1964761ad04028a0e6288821ee0feef5ca8fc1 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=81kos=20Uzonyi?= <uzonyi.akos@gmail.com>
+Date: Wed, 10 Jun 2020 13:18:50 +0200
+Subject: [PATCH 135/138] Use printpid in decoders
+
+* getpid.c: New file.
+* Makefile.am (libstrace_a_SOURCES): Add it.
+* linux/dummy.h (sys_getpid, sys_getppid, sys_gettid,
+sys_setpgid, sys_setpgrp): Remove.
+* util.c (printfd_pid_tracee_ns): Implement using translate_pid.
+* defs.h (printnum_pid): New function definition.
+(printfd_pid_tracee_ns): Update documentation
+* util.c: (printnum_pid): New function.
+* print_fields.h (PRINT_FIELD_TID): New macro.
+(PRINT_FIELD_TGID): Likewise.
+(PRINT_FIELD_PGID): Likewise.
+(PRINT_FIELD_SID): Likewise.
+* affinity.c: Print PIDs with printpid.
+* block.c: Likewise.
+* bpf.c: Likewise.
+* capability.c: Likewise.
+* clone.c: Likewise.
+* fcntl.c: Likewise.
+* get_robust_list.c: Likewise.
+* ioprio.c: Likewise.
+* kcmp.c: Likewise.
+* msghdr.c: Likewise.
+* net.c: Likewise.
+* netlink.c: Likewise.
+* numa.c: Likewise.
+* pidfd_open.c: Likewise.
+* printsiginfo.c: Likewise.
+* process.c: Likewise.
+* process_vm.c: Likewise.
+* resource.c: Likewise.
+* sched.c: Likewise.
+* signal.c: Likewise.
+* sockaddr.c: Likewise.
+* wait.c: Likewise.
+* kcmp.c (SYS_FUNC(kcmp)): Fix KCMP_FILE pid arguments.
+* tests/kcmp.c (printpidfd): Print path if VERBOSE_FD.
+(main): Use our real pid if real fds are used.
+---
+ Makefile.am       |  1 +
+ affinity.c        |  6 ++++--
+ block.c           |  2 +-
+ bpf.c             |  2 +-
+ capability.c      |  4 +++-
+ clone.c           | 14 +++++++-------
+ defs.h            |  5 ++++-
+ fcntl.c           | 24 ++++++++++++++++++++++--
+ get_robust_list.c |  3 ++-
+ getpid.c          | 46 ++++++++++++++++++++++++++++++++++++++++++++++
+ ioprio.c          | 26 ++++++++++++++++++++++----
+ ipc_shmctl.c      |  4 ++--
+ kcmp.c            |  5 ++++-
+ linux/dummy.h     |  8 +-------
+ msghdr.c          |  2 +-
+ net.c             |  2 +-
+ netlink.c         |  5 +++--
+ numa.c            |  6 ++++--
+ pidfd_open.c      |  2 +-
+ print_fields.h    | 24 ++++++++++++++++++++++++
+ printsiginfo.c    |  2 +-
+ process.c         |  3 ++-
+ process_vm.c      |  6 ++++--
+ resource.c        | 27 ++++++++++++++++++++++++---
+ sched.c           | 25 ++++++++++++++++---------
+ signal.c          | 21 +++++++++++++++------
+ sockaddr.c        |  2 +-
+ tests/kcmp.c      | 25 ++++++++++++++++++++++---
+ util.c            | 22 +++++++++++++++-------
+ wait.c            | 36 ++++++++++++++++++++++++------------
+ 30 files changed, 278 insertions(+), 82 deletions(-)
+ create mode 100644 getpid.c
+
+Index: strace-5.7/Makefile.am
+===================================================================
+--- strace-5.7.orig/Makefile.am	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/Makefile.am	2020-09-09 18:49:06.780401433 +0200
+@@ -135,6 +135,7 @@
+ 	getcpu.c	\
+ 	getcwd.c	\
+ 	getpagesize.c \
++	getpid.c	\
+ 	getrandom.c	\
+ 	hdio.c		\
+ 	hostname.c	\
+Index: strace-5.7/affinity.c
+===================================================================
+--- strace-5.7.orig/affinity.c	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/affinity.c	2020-09-09 15:55:03.979108297 +0200
+@@ -82,7 +82,8 @@
+ 	const int pid = tcp->u_arg[0];
+ 	const unsigned int len = tcp->u_arg[1];
+ 
+-	tprintf("%d, %u, ", pid, len);
++	printpid(tcp, pid, PT_TGID);
++	tprintf(", %u, ", len);
+ 	print_affinitylist(tcp, tcp->u_arg[2], len);
+ 
+ 	return RVAL_DECODED;
+@@ -94,7 +95,8 @@
+ 	const unsigned int len = tcp->u_arg[1];
+ 
+ 	if (entering(tcp)) {
+-		tprintf("%d, %u, ", pid, len);
++		printpid(tcp, pid, PT_TGID);
++		tprintf(", %u, ", len);
+ 	} else {
+ 		print_affinitylist(tcp, tcp->u_arg[2], tcp->u_rval);
+ 	}
+Index: strace-5.7/block.c
+===================================================================
+--- strace-5.7.orig/block.c	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/block.c	2020-09-09 15:55:03.979108297 +0200
+@@ -179,7 +179,7 @@
+ 			PRINT_FIELD_U(", ", buts, buf_nr);
+ 			PRINT_FIELD_U(", ", buts, start_lba);
+ 			PRINT_FIELD_U(", ", buts, end_lba);
+-			PRINT_FIELD_D(", ", buts, pid);
++			PRINT_FIELD_TGID(", ", buts, pid, tcp);
+ 			return 0;
+ 		} else {
+ 			struct_blk_user_trace_setup buts;
+Index: strace-5.7/bpf.c
+===================================================================
+--- strace-5.7.orig/bpf.c	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/bpf.c	2020-09-09 15:55:03.980108298 +0200
+@@ -927,7 +927,7 @@
+ 	if (entering(tcp)) {
+ 		set_tcb_priv_ulong(tcp, attr.buf_len);
+ 
+-		PRINT_FIELD_D("{task_fd_query={", attr, pid);
++		PRINT_FIELD_TGID("{task_fd_query={", attr, pid, tcp);
+ 		PRINT_FIELD_FD(", ", attr, fd, tcp);
+ 		PRINT_FIELD_U(", ", attr, flags);
+ 		PRINT_FIELD_U(", ", attr, buf_len);
+Index: strace-5.7/capability.c
+===================================================================
+--- strace-5.7.orig/capability.c	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/capability.c	2020-09-09 15:55:03.980108298 +0200
+@@ -70,7 +70,9 @@
+ 	tprints("{version=");
+ 	printxval(cap_version, h->version,
+ 		  "_LINUX_CAPABILITY_VERSION_???");
+-	tprintf(", pid=%d}", h->pid);
++	tprints(", pid=");
++	printpid(tcp, h->pid, PT_TGID);
++	tprints("}");
+ }
+ 
+ static void
+Index: strace-5.7/clone.c
+===================================================================
+--- strace-5.7.orig/clone.c	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/clone.c	2020-09-09 15:55:03.980108298 +0200
+@@ -114,14 +114,14 @@
+ 		 */
+ 		if ((flags & (CLONE_PARENT_SETTID|CLONE_PIDFD|CLONE_CHILD_SETTID
+ 			      |CLONE_CHILD_CLEARTID|CLONE_SETTLS)) == 0)
+-			return RVAL_DECODED;
++			return RVAL_DECODED | RVAL_TID;
+ 	} else {
+ 		if (flags & (CLONE_PARENT_SETTID|CLONE_PIDFD)) {
+ 			kernel_ulong_t addr = tcp->u_arg[ARG_PTID];
+ 
+ 			tprints(", parent_tid=");
+ 			if (flags & CLONE_PARENT_SETTID)
+-				printnum_int(tcp, addr, "%u");
++				printnum_pid(tcp, addr, PT_TID);
+ 			else
+ 				printnum_fd(tcp, addr);
+ 		}
+@@ -134,7 +134,7 @@
+ 			printaddr(tcp->u_arg[ARG_CTID]);
+ 		}
+ 	}
+-	return 0;
++	return RVAL_TID;
+ }
+ 
+ 
+@@ -229,7 +229,7 @@
+ 
+ 		if ((arg.flags & (CLONE_PIDFD | CLONE_PARENT_SETTID)) ||
+ 		    (size > fetch_size))
+-			return 0;
++			return RVAL_TID;
+ 
+ 		goto out;
+ 	}
+@@ -256,7 +256,7 @@
+ 
+ 	if (arg.flags & CLONE_PARENT_SETTID) {
+ 		tprintf("%sparent_tid=", pfx);
+-		printnum_int(tcp, arg.parent_tid, "%d"); /* TID */
++		printnum_pid(tcp, arg.parent_tid, PT_TID);
+ 		pfx = ", ";
+ 	}
+ 
+@@ -279,7 +279,7 @@
+ out:
+ 	tprintf(", %" PRI_klu, size);
+ 
+-	return RVAL_DECODED;
++	return RVAL_DECODED | RVAL_TID;
+ }
+ 
+ 
+@@ -300,5 +300,5 @@
+ 
+ SYS_FUNC(fork)
+ {
+-	return RVAL_DECODED;
++	return RVAL_DECODED | RVAL_TGID;
+ }
+Index: strace-5.7/defs.h
+===================================================================
+--- strace-5.7.orig/defs.h	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/defs.h	2020-09-09 15:55:03.980108298 +0200
+@@ -1101,7 +1101,7 @@
+ 
+ /**
+  * Print file descriptor fd owned by process with ID pid (from the PID NS
+- * of the tracee the descriptor tcp).  This is a stub.
++ * of the tracee).
+  */
+ extern void printfd_pid_tracee_ns(struct tcb *tcp, pid_t pid, int fd);
+ 
+@@ -1562,6 +1562,9 @@
+ extern bool
+ printnum_fd(struct tcb *, kernel_ulong_t addr);
+ 
++extern bool
++printnum_pid(struct tcb *const tcp, const kernel_ulong_t addr, enum pid_type type);
++
+ static inline bool
+ printnum_slong(struct tcb *tcp, kernel_ulong_t addr)
+ {
+Index: strace-5.7/fcntl.c
+===================================================================
+--- strace-5.7.orig/fcntl.c	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/fcntl.c	2020-09-09 15:55:03.981108298 +0200
+@@ -28,7 +28,7 @@
+ 	PRINT_FIELD_D(", ", *fl, l_start);
+ 	PRINT_FIELD_D(", ", *fl, l_len);
+ 	if (getlk)
+-		PRINT_FIELD_D(", ", *fl, l_pid);
++		PRINT_FIELD_TGID(", ", *fl, l_pid, tcp);
+ 	tprints("}");
+ }
+ 
+@@ -59,7 +59,22 @@
+ 		return;
+ 
+ 	PRINT_FIELD_XVAL("{", owner, type, f_owner_types, "F_OWNER_???");
+-	PRINT_FIELD_D(", ", owner, pid);
++
++	enum pid_type pid_type = PT_NONE;
++	switch (owner.type)
++	{
++	case F_OWNER_TID:
++		pid_type = PT_TID;
++		break;
++	case F_OWNER_PID:
++		pid_type = PT_TGID;
++		break;
++	case F_OWNER_PGRP:
++		pid_type = PT_PGID;
++		break;
++	}
++	tprints(", pid=");
++	printpid(tcp, owner.pid, pid_type);
+ 	tprints("}");
+ }
+ 
+@@ -74,6 +89,9 @@
+ 		printflags(fdflags, tcp->u_arg[2], "FD_???");
+ 		break;
+ 	case F_SETOWN:
++		tprints(", ");
++		printpid_tgid_pgid(tcp, tcp->u_arg[2]);
++		break;
+ 	case F_SETPIPE_SZ:
+ 		tprintf(", %" PRI_kld, tcp->u_arg[2]);
+ 		break;
+@@ -116,6 +134,8 @@
+ 		printsignal(tcp->u_arg[2]);
+ 		break;
+ 	case F_GETOWN:
++		return RVAL_DECODED |
++		       ((int) tcp->u_rval < 0 ? RVAL_PGID : RVAL_TGID);
+ 	case F_GETPIPE_SZ:
+ 		break;
+ 	case F_GETFD:
+Index: strace-5.7/get_robust_list.c
+===================================================================
+--- strace-5.7.orig/get_robust_list.c	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/get_robust_list.c	2020-09-09 15:55:03.981108298 +0200
+@@ -10,7 +10,8 @@
+ SYS_FUNC(get_robust_list)
+ {
+ 	if (entering(tcp)) {
+-		tprintf("%d, ", (int) tcp->u_arg[0]);
++		printpid(tcp, tcp->u_arg[0], PT_TID);
++		tprints(", ");
+ 	} else {
+ 		printnum_ptr(tcp, tcp->u_arg[1]);
+ 		tprints(", ");
+Index: strace-5.7/getpid.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/getpid.c	2020-09-09 15:55:03.981108298 +0200
+@@ -0,0 +1,46 @@
++/*
++ * Copyright (c) 2020 Ákos Uzonyi <uzonyi.akos@gmail.com>
++ * All rights reserved.
++ *
++ * SPDX-License-Identifier: LGPL-2.1-or-later
++ */
++
++#include "defs.h"
++
++SYS_FUNC(getpid)
++{
++	return RVAL_DECODED | RVAL_TGID;
++}
++
++SYS_FUNC(gettid)
++{
++	return RVAL_DECODED | RVAL_TID;
++}
++
++SYS_FUNC(getpgrp)
++{
++	return RVAL_DECODED | RVAL_PGID;
++}
++
++SYS_FUNC(getpgid)
++{
++	printpid(tcp, tcp->u_arg[0], PT_TGID);
++
++	return RVAL_DECODED | RVAL_PGID;
++}
++
++SYS_FUNC(getsid)
++{
++	printpid(tcp, tcp->u_arg[0], PT_TGID);
++
++	return RVAL_DECODED | RVAL_SID;
++}
++
++SYS_FUNC(setpgid)
++{
++	printpid(tcp, tcp->u_arg[0], PT_TGID);
++	tprints(", ");
++	printpid(tcp, tcp->u_arg[1], PT_PGID);
++
++	return RVAL_DECODED;
++}
+Index: strace-5.7/ioprio.c
+===================================================================
+--- strace-5.7.orig/ioprio.c	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/ioprio.c	2020-09-09 15:55:03.981108298 +0200
+@@ -49,13 +49,30 @@
+ 		? tprints_comment : tprints)(str);
+ }
+ 
++static void
++ioprio_print_who(struct tcb *tcp, int which, int who)
++{
++	switch (which)
++	{
++	case IOPRIO_WHO_PROCESS:
++		printpid(tcp, who, PT_TGID);
++		break;
++	case IOPRIO_WHO_PGRP:
++		printpid(tcp, who, PT_PGID);
++		break;
++	default:
++		tprintf("%d", who);
++		break;
++	}
++}
++
+ SYS_FUNC(ioprio_get)
+ {
+ 	if (entering(tcp)) {
+ 		/* int which */
+ 		printxval(ioprio_who, tcp->u_arg[0], "IOPRIO_WHO_???");
+-		/* int who */
+-		tprintf(", %d", (int) tcp->u_arg[1]);
++		tprints(", ");
++		ioprio_print_who(tcp, tcp->u_arg[0], tcp->u_arg[1]);
+ 		return 0;
+ 	} else {
+ 		if (syserror(tcp))
+@@ -72,8 +89,9 @@
+ {
+ 	/* int which */
+ 	printxval(ioprio_who, tcp->u_arg[0], "IOPRIO_WHO_???");
+-	/* int who */
+-	tprintf(", %d, ", (int) tcp->u_arg[1]);
++	tprints(", ");
++	ioprio_print_who(tcp, tcp->u_arg[0], tcp->u_arg[1]);
++	tprints(", ");
+ 	/* int ioprio */
+ 	if (xlat_verbose(xlat_verbosity) != XLAT_STYLE_ABBREV)
+ 		tprintf("%d", (int) tcp->u_arg[2]);
+Index: strace-5.7/ipc_shmctl.c
+===================================================================
+--- strace-5.7.orig/ipc_shmctl.c	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/ipc_shmctl.c	2020-09-09 15:55:03.981108298 +0200
+@@ -54,8 +54,8 @@
+ 		PRINT_FIELD_UID(", ", shmid_ds.shm_perm, cgid);
+ 		tprints("}");
+ 		tprintf(", shm_segsz=%u", (unsigned) shmid_ds.shm_segsz);
+-		PRINT_FIELD_D(", ", shmid_ds, shm_cpid);
+-		PRINT_FIELD_D(", ", shmid_ds, shm_lpid);
++		PRINT_FIELD_TGID(", ", shmid_ds, shm_cpid, tcp);
++		PRINT_FIELD_TGID(", ", shmid_ds, shm_lpid, tcp);
+ 		tprintf(", shm_nattch=%u", (unsigned) shmid_ds.shm_nattch);
+ 		tprintf(", shm_atime=%u", (unsigned) shmid_ds.shm_atime);
+ 		tprintf(", shm_dtime=%u", (unsigned) shmid_ds.shm_dtime);
+Index: strace-5.7/kcmp.c
+===================================================================
+--- strace-5.7.orig/kcmp.c	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/kcmp.c	2020-09-09 15:55:03.981108298 +0200
+@@ -30,7 +30,10 @@
+ 	kernel_ulong_t idx1 = tcp->u_arg[3];
+ 	kernel_ulong_t idx2 = tcp->u_arg[4];
+ 
+-	tprintf("%d, %d, ", pid1, pid2);
++	printpid(tcp, pid1, PT_TGID);
++	tprints(", ");
++	printpid(tcp, pid2, PT_TGID);
++	tprints(", ");
+ 	printxval(kcmp_types, type, "KCMP_???");
+ 
+ 	switch (type) {
+Index: strace-5.7/linux/dummy.h
+===================================================================
+--- strace-5.7.orig/linux/dummy.h	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/linux/dummy.h	2020-09-09 15:55:03.982108299 +0200
+@@ -53,6 +53,7 @@
+ # define sys_getgid		sys_getuid
+ # define sys_getgid16		sys_getuid16
+ # define sys_getpeername		sys_getsockname
++# define sys_getppid		sys_getpid
+ # define sys_getresgid		sys_getresuid
+ # define sys_getresgid16		sys_getresuid16
+ # define sys_lstat		sys_stat
+@@ -87,10 +88,6 @@
+ # define sys_vfork		sys_fork
+ 
+ /* printargs does the right thing */
+-# define sys_getpgrp		printargs
+-# define sys_getpid		printargs
+-# define sys_getppid		printargs
+-# define sys_gettid		printargs
+ # define sys_idle		printargs
+ # define sys_munlockall		printargs
+ # define sys_pause		printargs
+@@ -108,10 +105,7 @@
+ 
+ /* printargs_d does the right thing */
+ # define sys_exit		printargs_d
+-# define sys_getpgid		printargs_d
+-# define sys_getsid		printargs_d
+ # define sys_nice		printargs_d
+-# define sys_setpgid		printargs_d
+ # define sys_setpgrp		printargs_d
+ # define sys_timer_delete	printargs_d
+ # define sys_timer_getoverrun	printargs_d
+Index: strace-5.7/msghdr.c
+===================================================================
+--- strace-5.7.orig/msghdr.c	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/msghdr.c	2020-09-09 15:55:03.982108299 +0200
+@@ -69,7 +69,7 @@
+ {
+ 	const struct ucred *uc = cmsg_data;
+ 
+-	PRINT_FIELD_D("{", *uc, pid);
++	PRINT_FIELD_TGID("{", *uc, pid, tcp);
+ 	PRINT_FIELD_UID(", ", *uc, uid);
+ 	PRINT_FIELD_UID(", ", *uc, gid);
+ 	tprints("}");
+Index: strace-5.7/net.c
+===================================================================
+--- strace-5.7.orig/net.c	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/net.c	2020-09-09 15:55:03.982108299 +0200
+@@ -601,7 +601,7 @@
+ 	if (umoven_or_printaddr(tcp, addr, len, &uc))
+ 		return;
+ 
+-	PRINT_FIELD_LEN("{", uc, pid, len, PRINT_FIELD_D);
++	PRINT_FIELD_LEN("{", uc, pid, len, PRINT_FIELD_TGID, tcp);
+ 	PRINT_FIELD_LEN(", ", uc, uid, len, PRINT_FIELD_UID);
+ 	PRINT_FIELD_LEN(", ", uc, gid, len, PRINT_FIELD_UID);
+ 	tprints("}");
+Index: strace-5.7/netlink.c
+===================================================================
+--- strace-5.7.orig/netlink.c	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/netlink.c	2020-09-09 15:55:03.982108299 +0200
+@@ -446,8 +446,9 @@
+ 	decode_nlmsg_flags(nlmsghdr->nlmsg_flags,
+ 			   nlmsghdr->nlmsg_type, family);
+ 
+-	tprintf(", seq=%u, pid=%d}", nlmsghdr->nlmsg_seq,
+-		nlmsghdr->nlmsg_pid);
++	tprintf(", seq=%u, pid=", nlmsghdr->nlmsg_seq);
++	printpid(tcp, nlmsghdr->nlmsg_pid, PT_TGID);
++	tprints("}");
+ }
+ 
+ static bool
+Index: strace-5.7/numa.c
+===================================================================
+--- strace-5.7.orig/numa.c	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/numa.c	2020-09-09 15:55:03.982108299 +0200
+@@ -44,7 +44,8 @@
+ 
+ SYS_FUNC(migrate_pages)
+ {
+-	tprintf("%d, %" PRI_klu ", ", (int) tcp->u_arg[0], tcp->u_arg[1]);
++	printpid(tcp, tcp->u_arg[0], PT_TGID);
++	tprintf(", %" PRI_klu ", ", tcp->u_arg[1]);
+ 	print_nodemask(tcp, tcp->u_arg[2], tcp->u_arg[1]);
+ 	tprints(", ");
+ 	print_nodemask(tcp, tcp->u_arg[3], tcp->u_arg[1]);
+@@ -170,7 +171,8 @@
+ 	kernel_ulong_t buf;
+ 
+ 	if (entering(tcp)) {
+-		tprintf("%d, %" PRI_klu ", ", (int) tcp->u_arg[0], npages);
++		printpid(tcp, tcp->u_arg[0], PT_TGID);
++		tprintf(", %" PRI_klu ", ", npages);
+ 		print_array(tcp, tcp->u_arg[2], npages, &buf, current_wordsize,
+ 			    tfetch_mem, print_addr, 0);
+ 		tprints(", ");
+Index: strace-5.7/pidfd_open.c
+===================================================================
+--- strace-5.7.orig/pidfd_open.c	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/pidfd_open.c	2020-09-09 15:55:03.983108300 +0200
+@@ -10,7 +10,7 @@
+ SYS_FUNC(pidfd_open)
+ {
+ 	/* pid_t pid */
+-	tprintf("%d", (int) tcp->u_arg[0]);
++	printpid(tcp, tcp->u_arg[0], PT_TGID);
+ 
+ 	/* unsigned int flags */
+ 	tprintf(", %#x", (unsigned int) tcp->u_arg[1]);
+Index: strace-5.7/print_fields.h
+===================================================================
+--- strace-5.7.orig/print_fields.h	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/print_fields.h	2020-09-09 15:55:03.983108300 +0200
+@@ -236,6 +236,30 @@
+ 		printfd((tcp_), (where_).field_);			\
+ 	} while (0)
+ 
++# define PRINT_FIELD_TID(prefix_, where_, field_, tcp_)			\
++	do {								\
++		STRACE_PRINTF("%s%s=", (prefix_), #field_);		\
++		printpid((tcp_), (where_).field_, PT_TID);			\
++	} while (0)
++
++# define PRINT_FIELD_TGID(prefix_, where_, field_, tcp_)			\
++	do {								\
++		STRACE_PRINTF("%s%s=", (prefix_), #field_);		\
++		printpid((tcp_), (where_).field_, PT_TGID);			\
++	} while (0)
++
++# define PRINT_FIELD_PGID(prefix_, where_, field_, tcp_)			\
++	do {								\
++		STRACE_PRINTF("%s%s=", (prefix_), #field_);		\
++		printpid((tcp_), (where_).field_, PT_PGID);			\
++	} while (0)
++
++# define PRINT_FIELD_SID(prefix_, where_, field_, tcp_)			\
++	do {								\
++		STRACE_PRINTF("%s%s=", (prefix_), #field_);		\
++		printpid((tcp_), (where_).field_, PT_SID);			\
++	} while (0)
++
+ # define PRINT_FIELD_STRN(prefix_, where_, field_, len_, tcp_)		\
+ 	do {								\
+ 		STRACE_PRINTF("%s%s=", (prefix_), #field_);		\
+Index: strace-5.7/printsiginfo.c
+===================================================================
+--- strace-5.7.orig/printsiginfo.c	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/printsiginfo.c	2020-09-09 15:55:03.983108300 +0200
+@@ -58,7 +58,7 @@
+ static void
+ printsigsource(struct tcb *tcp, const siginfo_t *sip)
+ {
+-	PRINT_FIELD_D(", ", *sip, si_pid);
++	PRINT_FIELD_TGID(", ", *sip, si_pid, tcp);
+ 	PRINT_FIELD_UID(", ", *sip, si_uid);
+ }
+ 
+Index: strace-5.7/process.c
+===================================================================
+--- strace-5.7.orig/process.c	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/process.c	2020-09-09 15:55:03.983108300 +0200
+@@ -92,7 +92,8 @@
+ 		}
+ 
+ 		/* pid */
+-		tprintf(", %d", pid);
++		tprints(", ");
++		printpid(tcp, pid, PT_TGID);
+ 
+ 		/* addr */
+ 		switch (request) {
+Index: strace-5.7/process_vm.c
+===================================================================
+--- strace-5.7.orig/process_vm.c	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/process_vm.c	2020-09-09 15:55:03.983108300 +0200
+@@ -13,7 +13,8 @@
+ {
+ 	if (entering(tcp)) {
+ 		/* arg 1: pid */
+-		tprintf("%d, ", (int) tcp->u_arg[0]);
++		printpid(tcp, tcp->u_arg[0], PT_TGID);
++		tprints(", ");
+ 	} else {
+ 		kernel_ulong_t local_iovcnt = tcp->u_arg[2];
+ 		kernel_ulong_t remote_iovcnt = tcp->u_arg[4];
+@@ -42,7 +43,8 @@
+ 	kernel_ulong_t flags = tcp->u_arg[5];
+ 
+ 	/* arg 1: pid */
+-	tprintf("%d, ", (int) tcp->u_arg[0]);
++	printpid(tcp, tcp->u_arg[0], PT_TGID);
++	tprints(", ");
+ 	/* arg 2: local iov */
+ 	tprint_iov(tcp, local_iovcnt, tcp->u_arg[1], IOV_DECODE_STR);
+ 	/* arg 3: local iovcnt */
+Index: strace-5.7/resource.c
+===================================================================
+--- strace-5.7.orig/resource.c	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/resource.c	2020-09-09 15:55:03.984108300 +0200
+@@ -142,7 +142,8 @@
+ SYS_FUNC(prlimit64)
+ {
+ 	if (entering(tcp)) {
+-		tprintf("%d, ", (int) tcp->u_arg[0]);
++		printpid(tcp, tcp->u_arg[0], PT_TGID);
++		tprints(", ");
+ 		printxval(resources, tcp->u_arg[1], "RLIMIT_???");
+ 		tprints(", ");
+ 		print_rlimit64(tcp, tcp->u_arg[2]);
+@@ -179,10 +180,28 @@
+ 
+ #include "xlat/priorities.h"
+ 
++static void
++priority_print_who(struct tcb *tcp, int which, int who)
++{
++	switch (which)
++	{
++	case PRIO_PROCESS:
++		printpid(tcp, who, PT_TGID);
++		break;
++	case PRIO_PGRP:
++		printpid(tcp, who, PT_PGID);
++		break;
++	default:
++		tprintf("%d", who);
++		break;
++	}
++}
++
+ SYS_FUNC(getpriority)
+ {
+ 	printxval(priorities, tcp->u_arg[0], "PRIO_???");
+-	tprintf(", %d", (int) tcp->u_arg[1]);
++	tprints(", ");
++	priority_print_who(tcp, tcp->u_arg[0], tcp->u_arg[1]);
+ 
+ 	return RVAL_DECODED;
+ }
+@@ -190,7 +209,9 @@
+ SYS_FUNC(setpriority)
+ {
+ 	printxval(priorities, tcp->u_arg[0], "PRIO_???");
+-	tprintf(", %d, %d", (int) tcp->u_arg[1], (int) tcp->u_arg[2]);
++	tprints(", ");
++	priority_print_who(tcp, tcp->u_arg[0], tcp->u_arg[1]);
++	tprintf(", %d", (int) tcp->u_arg[2]);
+ 
+ 	return RVAL_DECODED;
+ }
+Index: strace-5.7/sched.c
+===================================================================
+--- strace-5.7.orig/sched.c	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/sched.c	2020-09-09 15:55:03.984108300 +0200
+@@ -21,7 +21,7 @@
+ SYS_FUNC(sched_getscheduler)
+ {
+ 	if (entering(tcp)) {
+-		tprintf("%d", (int) tcp->u_arg[0]);
++		printpid(tcp, tcp->u_arg[0], PT_TGID);
+ 	} else if (!syserror(tcp)) {
+ 		tcp->auxstr = xlookup(schedulers, (kernel_ulong_t) tcp->u_rval);
+ 		return RVAL_STR;
+@@ -31,7 +31,8 @@
+ 
+ SYS_FUNC(sched_setscheduler)
+ {
+-	tprintf("%d, ", (int) tcp->u_arg[0]);
++	printpid(tcp, tcp->u_arg[0], PT_TGID);
++	tprints(", ");
+ 	printxval(schedulers, tcp->u_arg[1], "SCHED_???");
+ 	tprints(", ");
+ 	printnum_int(tcp, tcp->u_arg[2], "%d");
+@@ -41,16 +42,19 @@
+ 
+ SYS_FUNC(sched_getparam)
+ {
+-	if (entering(tcp))
+-		tprintf("%d, ", (int) tcp->u_arg[0]);
+-	else
++	if (entering(tcp)) {
++		printpid(tcp, tcp->u_arg[0], PT_TGID);
++		tprints(", ");
++	} else {
+ 		printnum_int(tcp, tcp->u_arg[1], "%d");
++	}
+ 	return 0;
+ }
+ 
+ SYS_FUNC(sched_setparam)
+ {
+-	tprintf("%d, ", (int) tcp->u_arg[0]);
++	printpid(tcp, tcp->u_arg[0], PT_TGID);
++	tprints(", ");
+ 	printnum_int(tcp, tcp->u_arg[1], "%d");
+ 
+ 	return RVAL_DECODED;
+@@ -68,7 +72,8 @@
+ 			 const print_obj_by_addr_fn print_ts)
+ {
+ 	if (entering(tcp)) {
+-		tprintf("%d, ", (int) tcp->u_arg[0]);
++		printpid(tcp, tcp->u_arg[0], PT_TGID);
++		tprints(", ");
+ 	} else {
+ 		if (syserror(tcp))
+ 			printaddr(tcp->u_arg[1]);
+@@ -160,7 +165,8 @@
+ SYS_FUNC(sched_setattr)
+ {
+ 	if (entering(tcp)) {
+-		tprintf("%d, ", (int) tcp->u_arg[0]);
++		printpid(tcp, tcp->u_arg[0], PT_TGID);
++		tprints(", ");
+ 		print_sched_attr(tcp, tcp->u_arg[1], 0);
+ 	} else {
+ 		struct sched_attr attr;
+@@ -179,7 +185,8 @@
+ SYS_FUNC(sched_getattr)
+ {
+ 	if (entering(tcp)) {
+-		tprintf("%d, ", (int) tcp->u_arg[0]);
++		printpid(tcp, tcp->u_arg[0], PT_TGID);
++		tprints(", ");
+ 	} else {
+ 		const unsigned int size = tcp->u_arg[2];
+ 
+Index: strace-5.7/signal.c
+===================================================================
+--- strace-5.7.orig/signal.c	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/signal.c	2020-09-09 15:55:03.984108300 +0200
+@@ -439,7 +439,8 @@
+ SYS_FUNC(kill)
+ {
+ 	/* pid */
+-	tprintf("%d, ", (int) tcp->u_arg[0]);
++	printpid_tgid_pgid(tcp, tcp->u_arg[0]);
++	tprints(", ");
+ 	/* signal */
+ 	printsignal(tcp->u_arg[1]);
+ 
+@@ -448,7 +449,7 @@
+ 
+ SYS_FUNC(tkill)
+ {
+-	tprintf("%d", (int) tcp->u_arg[0]);
++	printpid(tcp, tcp->u_arg[0], PT_TID);
+ 	tprints(", ");
+ 	printsignal(tcp->u_arg[1]);
+ 
+@@ -457,8 +458,12 @@
+ 
+ SYS_FUNC(tgkill)
+ {
+-	/* tgid, tid */
+-	tprintf("%d, %d, ", (int) tcp->u_arg[0], (int) tcp->u_arg[1]);
++	/* tgid */
++	printpid(tcp, tcp->u_arg[0], PT_TGID);
++	tprints(", ");
++	/* tid */
++	printpid(tcp, tcp->u_arg[1], PT_TID);
++	tprints(", ");
+ 	/* signal */
+ 	printsignal(tcp->u_arg[2]);
+ 
+@@ -624,7 +629,8 @@
+ 
+ SYS_FUNC(rt_sigqueueinfo)
+ {
+-	tprintf("%d, ", (int) tcp->u_arg[0]);
++	printpid(tcp, tcp->u_arg[0], PT_TGID);
++	tprints(", ");
+ 	print_sigqueueinfo(tcp, tcp->u_arg[1], tcp->u_arg[2]);
+ 
+ 	return RVAL_DECODED;
+@@ -632,7 +638,10 @@
+ 
+ SYS_FUNC(rt_tgsigqueueinfo)
+ {
+-	tprintf("%d, %d, ", (int) tcp->u_arg[0], (int) tcp->u_arg[1]);
++	printpid(tcp, tcp->u_arg[0], PT_TGID);
++	tprints(", ");
++	printpid(tcp, tcp->u_arg[1], PT_TID);
++	tprints(", ");
+ 	print_sigqueueinfo(tcp, tcp->u_arg[2], tcp->u_arg[3]);
+ 
+ 	return RVAL_DECODED;
+Index: strace-5.7/sockaddr.c
+===================================================================
+--- strace-5.7.orig/sockaddr.c	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/sockaddr.c	2020-09-09 15:55:03.984108300 +0200
+@@ -416,7 +416,7 @@
+ {
+ 	const struct sockaddr_nl *const sa_nl = buf;
+ 
+-	PRINT_FIELD_D("", *sa_nl, nl_pid);
++	PRINT_FIELD_TGID("", *sa_nl, nl_pid, tcp);
+ 	PRINT_FIELD_0X(", ", *sa_nl, nl_groups);
+ }
+ 
+Index: strace-5.7/tests/kcmp.c
+===================================================================
+--- strace-5.7.orig/tests/kcmp.c	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/tests/kcmp.c	2020-09-09 18:49:06.780401433 +0200
+@@ -64,7 +64,26 @@
+ static void
+ printpidfd(const char *prefix, pid_t pid, unsigned fd)
+ {
+-	printf("%s%d", prefix, fd);
++	const char *path = NULL;
++
++# if VERBOSE_FD
++	if (pid == getpid()) {
++		switch (fd)
++		{
++		case NULL_FD:
++			path = null_path;
++			break;
++		case ZERO_FD:
++			path = zero_path;
++			break;
++		}
++	}
++# endif
++
++	if (path)
++		printf("%s%d<%s>", prefix, fd, path);
++	else
++		printf("%s%d", prefix, fd);
+ }
+ 
+ /*
+@@ -179,7 +198,7 @@
+ 	/* KCMP_FILE is the only type which has additional args */
+ 	do_kcmp(3141592653U, 2718281828U, ARG_STR(KCMP_FILE), bogus_idx1,
+ 		bogus_idx2);
+-	do_kcmp(-1, -1, ARG_STR(KCMP_FILE), NULL_FD, ZERO_FD);
++	do_kcmp(getpid(), getpid(), ARG_STR(KCMP_FILE), NULL_FD, ZERO_FD);
+ 
+ 	/* Types without additional args */
+ 	do_kcmp(-1, -1, ARG_STR(KCMP_VM), bogus_idx1, bogus_idx2);
+@@ -198,7 +217,7 @@
+ 	for (i = 0; i < ARRAY_SIZE(slot_data); i++) {
+ 		memcpy(slot, slot_data + i, sizeof(*slot));
+ 
+-		do_kcmp(getpid(), getppid(), ARG_STR(KCMP_EPOLL_TFD), NULL_FD,
++		do_kcmp(getpid(), -1, ARG_STR(KCMP_EPOLL_TFD), NULL_FD,
+ 			(uintptr_t) slot, 1);
+ 	}
+ 
+Index: strace-5.7/util.c
+===================================================================
+--- strace-5.7.orig/util.c	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/util.c	2020-09-09 18:49:07.951402131 +0200
+@@ -392,6 +392,18 @@
+ 	return true;
+ }
+ 
++bool
++printnum_pid(struct tcb *const tcp, const kernel_ulong_t addr, enum pid_type type)
++{
++	int pid;
++	if (umove_or_printaddr(tcp, addr, &pid))
++		return false;
++	tprints("[");
++	printpid(tcp, pid, type);
++	tprints("]");
++	return true;
++}
++
+ /**
+  * Prints time to a (static internal) buffer and returns pointer to it.
+  * Returns NULL if the provided time specification is not correct.
+@@ -616,7 +628,7 @@
+ printfd_pid(struct tcb *tcp, pid_t pid, int fd)
+ {
+ 	char path[PATH_MAX + 1];
+-	if (!number_set_array_is_empty(decode_fd_set, 0)
++	if (pid > 0 && !number_set_array_is_empty(decode_fd_set, 0)
+ 	    && getfdpath_pid(pid, fd, path, sizeof(path)) >= 0) {
+ 		tprintf("%d<", (int) fd);
+ 		if (is_number_in_set(DECODE_FD_SOCKET, decode_fd_set) &&
+@@ -641,12 +653,8 @@
+ void
+ printfd_pid_tracee_ns(struct tcb *tcp, pid_t pid, int fd)
+ {
+-	/*
+-	 * TODO: We want to have the same formatting as printfd here,
+-	 *       but we should figure out first which process in strace's
+-	 *       PID NS is referred to by pid in tracee's PID NS.
+-	 */
+-	tprintf("%d", fd);
++	int strace_pid = translate_pid(tcp, pid, PT_TGID, NULL);
++	printfd_pid(tcp, strace_pid, fd);
+ }
+ 
+ /*
+Index: strace-5.7/wait.c
+===================================================================
+--- strace-5.7.orig/wait.c	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/wait.c	2020-09-09 15:55:03.985108301 +0200
+@@ -80,14 +80,8 @@
+ 	   void (*const print_rusage)(struct tcb *, kernel_ulong_t))
+ {
+ 	if (entering(tcp)) {
+-		/* On Linux, kernel-side pid_t is typedef'ed to int
+-		 * on all arches. Also, glibc-2.8 truncates wait3 and wait4
+-		 * pid argument to int on 64bit arches, producing,
+-		 * for example, wait4(4294967295, ...) instead of -1
+-		 * in strace. We have to use int here, not long.
+-		 */
+-		int pid = tcp->u_arg[0];
+-		tprintf("%d, ", pid);
++		printpid_tgid_pgid(tcp, tcp->u_arg[0]);
++		tprintf(", ");
+ 	} else {
+ 		int status;
+ 
+@@ -108,7 +102,7 @@
+ 				printaddr(tcp->u_arg[3]);
+ 		}
+ 	}
+-	return 0;
++	return RVAL_TGID;
+ }
+ 
+ SYS_FUNC(waitpid)
+@@ -134,10 +128,28 @@
+ 
+ SYS_FUNC(waitid)
+ {
++	unsigned int idtype = (unsigned int) tcp->u_arg[0];
++	int id = tcp->u_arg[1];
++
+ 	if (entering(tcp)) {
+-		printxval(waitid_types, tcp->u_arg[0], "P_???");
+-		int pid = tcp->u_arg[1];
+-		tprintf(", %d, ", pid);
++		printxval(waitid_types, idtype, "P_???");
++		tprints(", ");
++		switch (idtype)
++		{
++		case P_PID:
++			printpid(tcp, id, PT_TGID);
++			break;
++		case P_PIDFD:
++			printfd(tcp, id);
++			break;
++		case P_PGID:
++			printpid(tcp, id, PT_PGID);
++			break;
++		default:
++			tprintf("%d", id);
++			break;
++		}
++		tprints(", ");
+ 	} else {
+ 		/* siginfo */
+ 		printsiginfo_at(tcp, tcp->u_arg[2]);
+Index: strace-5.7/tests-m32/kcmp.c
+===================================================================
+--- strace-5.7.orig/tests-m32/kcmp.c	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/tests-m32/kcmp.c	2020-09-09 18:49:06.780401433 +0200
+@@ -64,7 +64,26 @@
+ static void
+ printpidfd(const char *prefix, pid_t pid, unsigned fd)
+ {
+-	printf("%s%d", prefix, fd);
++	const char *path = NULL;
++
++# if VERBOSE_FD
++	if (pid == getpid()) {
++		switch (fd)
++		{
++		case NULL_FD:
++			path = null_path;
++			break;
++		case ZERO_FD:
++			path = zero_path;
++			break;
++		}
++	}
++# endif
++
++	if (path)
++		printf("%s%d<%s>", prefix, fd, path);
++	else
++		printf("%s%d", prefix, fd);
+ }
+ 
+ /*
+@@ -179,7 +198,7 @@
+ 	/* KCMP_FILE is the only type which has additional args */
+ 	do_kcmp(3141592653U, 2718281828U, ARG_STR(KCMP_FILE), bogus_idx1,
+ 		bogus_idx2);
+-	do_kcmp(-1, -1, ARG_STR(KCMP_FILE), NULL_FD, ZERO_FD);
++	do_kcmp(getpid(), getpid(), ARG_STR(KCMP_FILE), NULL_FD, ZERO_FD);
+ 
+ 	/* Types without additional args */
+ 	do_kcmp(-1, -1, ARG_STR(KCMP_VM), bogus_idx1, bogus_idx2);
+@@ -198,7 +217,7 @@
+ 	for (i = 0; i < ARRAY_SIZE(slot_data); i++) {
+ 		memcpy(slot, slot_data + i, sizeof(*slot));
+ 
+-		do_kcmp(getpid(), getppid(), ARG_STR(KCMP_EPOLL_TFD), NULL_FD,
++		do_kcmp(getpid(), -1, ARG_STR(KCMP_EPOLL_TFD), NULL_FD,
+ 			(uintptr_t) slot, 1);
+ 	}
+ 
+Index: strace-5.7/tests-mx32/kcmp.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/kcmp.c	2020-09-09 15:52:09.159983257 +0200
++++ strace-5.7/tests-mx32/kcmp.c	2020-09-09 18:49:06.780401433 +0200
+@@ -64,7 +64,26 @@
+ static void
+ printpidfd(const char *prefix, pid_t pid, unsigned fd)
+ {
+-	printf("%s%d", prefix, fd);
++	const char *path = NULL;
++
++# if VERBOSE_FD
++	if (pid == getpid()) {
++		switch (fd)
++		{
++		case NULL_FD:
++			path = null_path;
++			break;
++		case ZERO_FD:
++			path = zero_path;
++			break;
++		}
++	}
++# endif
++
++	if (path)
++		printf("%s%d<%s>", prefix, fd, path);
++	else
++		printf("%s%d", prefix, fd);
+ }
+ 
+ /*
+@@ -179,7 +198,7 @@
+ 	/* KCMP_FILE is the only type which has additional args */
+ 	do_kcmp(3141592653U, 2718281828U, ARG_STR(KCMP_FILE), bogus_idx1,
+ 		bogus_idx2);
+-	do_kcmp(-1, -1, ARG_STR(KCMP_FILE), NULL_FD, ZERO_FD);
++	do_kcmp(getpid(), getpid(), ARG_STR(KCMP_FILE), NULL_FD, ZERO_FD);
+ 
+ 	/* Types without additional args */
+ 	do_kcmp(-1, -1, ARG_STR(KCMP_VM), bogus_idx1, bogus_idx2);
+@@ -198,7 +217,7 @@
+ 	for (i = 0; i < ARRAY_SIZE(slot_data); i++) {
+ 		memcpy(slot, slot_data + i, sizeof(*slot));
+ 
+-		do_kcmp(getpid(), getppid(), ARG_STR(KCMP_EPOLL_TFD), NULL_FD,
++		do_kcmp(getpid(), -1, ARG_STR(KCMP_EPOLL_TFD), NULL_FD,
+ 			(uintptr_t) slot, 1);
+ 	}
+ 
+Index: strace-5.7/Makefile.in
+===================================================================
+--- strace-5.7.orig/Makefile.in	2020-09-09 15:54:59.569105143 +0200
++++ strace-5.7/Makefile.in	2020-09-09 19:06:15.159014394 +0200
+@@ -322,13 +322,13 @@
+ 	flock.c flock.h fs_x_ioctl.c fsconfig.c fsmount.c fsopen.c \
+ 	fspick.c fstatfs.c fstatfs64.c futex.c gcc_compat.h \
+ 	get_personality.c get_personality.h get_robust_list.c getcpu.c \
+-	getcwd.c getpagesize.c getrandom.c hdio.c hostname.c inotify.c \
+-	inotify_ioctl.c io.c io_uring.c ioctl.c ioperm.c iopl.c \
+-	ioprio.c ipc.c ipc_defs.h ipc_msg.c ipc_msgctl.c ipc_sem.c \
+-	ipc_shm.c ipc_shmctl.c kcmp.c kernel_dirent.h kernel_rusage.h \
+-	kernel_timespec.h kernel_timeval.h kernel_timex.h \
+-	kernel_types.h kernel_v4l2_types.h kexec.c keyctl.c \
+-	keyctl_kdf_params.h kill_save_errno.h kvm.c \
++	getcwd.c getpagesize.c getpid.c getrandom.c hdio.c hostname.c \
++	inotify.c inotify_ioctl.c io.c io_uring.c ioctl.c ioperm.c \
++	iopl.c ioprio.c ipc.c ipc_defs.h ipc_msg.c ipc_msgctl.c \
++	ipc_sem.c ipc_shm.c ipc_shmctl.c kcmp.c kernel_dirent.h \
++	kernel_rusage.h kernel_timespec.h kernel_timeval.h \
++	kernel_timex.h kernel_types.h kernel_v4l2_types.h kexec.c \
++	keyctl.c keyctl_kdf_params.h kill_save_errno.h kvm.c \
+ 	largefile_wrappers.h ldt.c link.c linux/asm_stat.h \
+ 	linux/x32/asm_stat.h linux/x86_64/asm_stat.h list.h listen.c \
+ 	lookup_dcookie.c loop.c lseek.c macros.h mem.c membarrier.c \
+@@ -443,7 +443,7 @@
+ 	libstrace_a-get_personality.$(OBJEXT) \
+ 	libstrace_a-get_robust_list.$(OBJEXT) \
+ 	libstrace_a-getcpu.$(OBJEXT) libstrace_a-getcwd.$(OBJEXT) \
+-	libstrace_a-getpagesize.$(OBJEXT) \
++	libstrace_a-getpagesize.$(OBJEXT) libstrace_a-getpid.$(OBJEXT) \
+ 	libstrace_a-getrandom.$(OBJEXT) libstrace_a-hdio.$(OBJEXT) \
+ 	libstrace_a-hostname.$(OBJEXT) libstrace_a-inotify.$(OBJEXT) \
+ 	libstrace_a-inotify_ioctl.$(OBJEXT) libstrace_a-io.$(OBJEXT) \
+@@ -769,6 +769,7 @@
+ 	./$(DEPDIR)/libstrace_a-getcpu.Po \
+ 	./$(DEPDIR)/libstrace_a-getcwd.Po \
+ 	./$(DEPDIR)/libstrace_a-getpagesize.Po \
++	./$(DEPDIR)/libstrace_a-getpid.Po \
+ 	./$(DEPDIR)/libstrace_a-getrandom.Po \
+ 	./$(DEPDIR)/libstrace_a-hdio.Po \
+ 	./$(DEPDIR)/libstrace_a-hostname.Po \
+@@ -1810,13 +1811,13 @@
+ 	flock.c flock.h fs_x_ioctl.c fsconfig.c fsmount.c fsopen.c \
+ 	fspick.c fstatfs.c fstatfs64.c futex.c gcc_compat.h \
+ 	get_personality.c get_personality.h get_robust_list.c getcpu.c \
+-	getcwd.c getpagesize.c getrandom.c hdio.c hostname.c inotify.c \
+-	inotify_ioctl.c io.c io_uring.c ioctl.c ioperm.c iopl.c \
+-	ioprio.c ipc.c ipc_defs.h ipc_msg.c ipc_msgctl.c ipc_sem.c \
+-	ipc_shm.c ipc_shmctl.c kcmp.c kernel_dirent.h kernel_rusage.h \
+-	kernel_timespec.h kernel_timeval.h kernel_timex.h \
+-	kernel_types.h kernel_v4l2_types.h kexec.c keyctl.c \
+-	keyctl_kdf_params.h kill_save_errno.h kvm.c \
++	getcwd.c getpagesize.c getpid.c getrandom.c hdio.c hostname.c \
++	inotify.c inotify_ioctl.c io.c io_uring.c ioctl.c ioperm.c \
++	iopl.c ioprio.c ipc.c ipc_defs.h ipc_msg.c ipc_msgctl.c \
++	ipc_sem.c ipc_shm.c ipc_shmctl.c kcmp.c kernel_dirent.h \
++	kernel_rusage.h kernel_timespec.h kernel_timeval.h \
++	kernel_timex.h kernel_types.h kernel_v4l2_types.h kexec.c \
++	keyctl.c keyctl_kdf_params.h kill_save_errno.h kvm.c \
+ 	largefile_wrappers.h ldt.c link.c linux/asm_stat.h \
+ 	linux/x32/asm_stat.h linux/x86_64/asm_stat.h list.h listen.c \
+ 	lookup_dcookie.c loop.c lseek.c macros.h mem.c membarrier.c \
+@@ -2835,6 +2836,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-getcpu.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-getcwd.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-getpagesize.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-getpid.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-getrandom.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-hdio.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libstrace_a-hostname.Po@am__quote@ # am--include-marker
+@@ -5082,6 +5084,20 @@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-getpagesize.obj `if test -f 'getpagesize.c'; then $(CYGPATH_W) 'getpagesize.c'; else $(CYGPATH_W) '$(srcdir)/getpagesize.c'; fi`
+ 
++libstrace_a-getpid.o: getpid.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-getpid.o -MD -MP -MF $(DEPDIR)/libstrace_a-getpid.Tpo -c -o libstrace_a-getpid.o `test -f 'getpid.c' || echo '$(srcdir)/'`getpid.c
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-getpid.Tpo $(DEPDIR)/libstrace_a-getpid.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='getpid.c' object='libstrace_a-getpid.o' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-getpid.o `test -f 'getpid.c' || echo '$(srcdir)/'`getpid.c
++
++libstrace_a-getpid.obj: getpid.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-getpid.obj -MD -MP -MF $(DEPDIR)/libstrace_a-getpid.Tpo -c -o libstrace_a-getpid.obj `if test -f 'getpid.c'; then $(CYGPATH_W) 'getpid.c'; else $(CYGPATH_W) '$(srcdir)/getpid.c'; fi`
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-getpid.Tpo $(DEPDIR)/libstrace_a-getpid.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='getpid.c' object='libstrace_a-getpid.obj' libtool=no @AMDEPBACKSLASH@
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
++@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -c -o libstrace_a-getpid.obj `if test -f 'getpid.c'; then $(CYGPATH_W) 'getpid.c'; else $(CYGPATH_W) '$(srcdir)/getpid.c'; fi`
++
+ libstrace_a-getrandom.o: getrandom.c
+ @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libstrace_a_CPPFLAGS) $(CPPFLAGS) $(libstrace_a_CFLAGS) $(CFLAGS) -MT libstrace_a-getrandom.o -MD -MP -MF $(DEPDIR)/libstrace_a-getrandom.Tpo -c -o libstrace_a-getrandom.o `test -f 'getrandom.c' || echo '$(srcdir)/'`getrandom.c
+ @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libstrace_a-getrandom.Tpo $(DEPDIR)/libstrace_a-getrandom.Po
+@@ -8377,6 +8393,7 @@
+ 	-rm -f ./$(DEPDIR)/libstrace_a-getcpu.Po
+ 	-rm -f ./$(DEPDIR)/libstrace_a-getcwd.Po
+ 	-rm -f ./$(DEPDIR)/libstrace_a-getpagesize.Po
++	-rm -f ./$(DEPDIR)/libstrace_a-getpid.Po
+ 	-rm -f ./$(DEPDIR)/libstrace_a-getrandom.Po
+ 	-rm -f ./$(DEPDIR)/libstrace_a-hdio.Po
+ 	-rm -f ./$(DEPDIR)/libstrace_a-hostname.Po
+@@ -8764,6 +8781,7 @@
+ 	-rm -f ./$(DEPDIR)/libstrace_a-getcpu.Po
+ 	-rm -f ./$(DEPDIR)/libstrace_a-getcwd.Po
+ 	-rm -f ./$(DEPDIR)/libstrace_a-getpagesize.Po
++	-rm -f ./$(DEPDIR)/libstrace_a-getpid.Po
+ 	-rm -f ./$(DEPDIR)/libstrace_a-getrandom.Po
+ 	-rm -f ./$(DEPDIR)/libstrace_a-hdio.Po
+ 	-rm -f ./$(DEPDIR)/libstrace_a-hostname.Po
diff --git a/SOURCES/0136-Use-get_proc_pid-for-proc-paths.patch b/SOURCES/0136-Use-get_proc_pid-for-proc-paths.patch
new file mode 100644
index 0000000..de978f1
--- /dev/null
+++ b/SOURCES/0136-Use-get_proc_pid-for-proc-paths.patch
@@ -0,0 +1,93 @@
+From bba566504901b2c07885ecf325829875a96381a7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=81kos=20Uzonyi?= <uzonyi.akos@gmail.com>
+Date: Tue, 30 Jun 2020 17:20:12 +0200
+Subject: [PATCH 136/138] Use get_proc_pid for /proc paths
+
+* mmap_cache.c (mmap_cache_rebuild_if_invalid): Use proc pid instead of
+tcp->pid for /proc path.
+* util.c (getfdproto): Likewise.
+(pidfd_get_pid): Likewise.
+* pathtrace.c (getfdpath_pid): Likewise.
+* strace.c (attach_tcb): Likewise.
+---
+ mmap_cache.c | 2 +-
+ pathtrace.c  | 7 ++++++-
+ strace.c     | 2 +-
+ util.c       | 9 +++++++--
+ 4 files changed, 15 insertions(+), 5 deletions(-)
+
+diff --git a/mmap_cache.c b/mmap_cache.c
+index 89c6225..9825df2 100644
+--- a/mmap_cache.c
++++ b/mmap_cache.c
+@@ -84,7 +84,7 @@ mmap_cache_rebuild_if_invalid(struct tcb *tcp, const char *caller)
+ 		return MMAP_CACHE_REBUILD_READY;
+ 
+ 	char filename[sizeof("/proc/4294967296/maps")];
+-	xsprintf(filename, "/proc/%u/maps", tcp->pid);
++	xsprintf(filename, "/proc/%u/maps", get_proc_pid(tcp));
+ 
+ 	FILE *fp = fopen_stream(filename, "r");
+ 	if (!fp) {
+diff --git a/pathtrace.c b/pathtrace.c
+index f85cf14..87dc64b 100644
+--- a/pathtrace.c
++++ b/pathtrace.c
+@@ -87,7 +87,12 @@ getfdpath_pid(pid_t pid, int fd, char *buf, unsigned bufsize)
+ 	if (fd < 0)
+ 		return -1;
+ 
+-	xsprintf(linkpath, "/proc/%u/fd/%u", pid, fd);
++	int proc_pid = 0;
++	translate_pid(NULL, pid, PT_TID, &proc_pid);
++	if (!proc_pid)
++		return -1;
++
++	xsprintf(linkpath, "/proc/%u/fd/%u", proc_pid, fd);
+ 	n = readlink(linkpath, buf, bufsize - 1);
+ 	/*
+ 	 * NB: if buf is too small, readlink doesn't fail,
+diff --git a/strace.c b/strace.c
+index 249533e..ef23f08 100644
+--- a/strace.c
++++ b/strace.c
+@@ -1196,7 +1196,7 @@ attach_tcb(struct tcb *const tcp)
+ 	unsigned int ntid = 0, nerr = 0;
+ 
+ 	if (followfork && tcp->pid != strace_child &&
+-	    xsprintf(procdir, task_path, tcp->pid) > 0 &&
++	    xsprintf(procdir, task_path, get_proc_pid(tcp)) > 0 &&
+ 	    (dir = opendir(procdir)) != NULL) {
+ 		struct_dirent *de;
+ 
+diff --git a/util.c b/util.c
+index 2568021..481144b 100644
+--- a/util.c
++++ b/util.c
+@@ -501,7 +501,7 @@ getfdproto(struct tcb *tcp, int fd)
+ 	if (fd < 0)
+ 		return SOCK_PROTO_UNKNOWN;
+ 
+-	xsprintf(path, "/proc/%u/fd/%u", tcp->pid, fd);
++	xsprintf(path, "/proc/%u/fd/%u", get_proc_pid(tcp), fd);
+ 	r = getxattr(path, "system.sockprotoname", buf, bufsize - 1);
+ 	if (r <= 0)
+ 		return SOCK_PROTO_UNKNOWN;
+@@ -582,8 +582,13 @@ printdev(struct tcb *tcp, int fd, const char *path)
+ pid_t
+ pidfd_get_pid(pid_t pid_of_fd, int fd)
+ {
++	int proc_pid = 0;
++	translate_pid(NULL, pid_of_fd, PT_TID, &proc_pid);
++	if (!proc_pid)
++		return -1;
++
+ 	char fdi_path[sizeof("/proc/%u/fdinfo/%u") + 2 * sizeof(int) * 3];
+-	xsprintf(fdi_path, "/proc/%u/fdinfo/%u", pid_of_fd, fd);
++	xsprintf(fdi_path, "/proc/%u/fdinfo/%u", proc_pid, fd);
+ 
+ 	FILE *f = fopen_stream(fdi_path, "r");
+ 	if (!f)
+-- 
+2.1.4
+
diff --git a/SOURCES/0137-Implement-testing-framework-for-pidns.patch b/SOURCES/0137-Implement-testing-framework-for-pidns.patch
new file mode 100644
index 0000000..b9b1317
--- /dev/null
+++ b/SOURCES/0137-Implement-testing-framework-for-pidns.patch
@@ -0,0 +1,1360 @@
+From 4362ddaba8634a5ac6b4add0eaf25eec5f7315f5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=81kos=20Uzonyi?= <uzonyi.akos@gmail.com>
+Date: Fri, 26 Jun 2020 20:13:28 +0200
+Subject: [PATCH 137/138] Implement testing framework for pidns
+
+* tests/pidns.c: New file.
+* tests/pidns.h: New file.
+* tests/Makefile.am (libtests_a_SOURCES): Add pidns.c, pidns.h.
+* tests/init.sh (test_pidns, test_pidns_run_strace): New functions.
+---
+ tests/Makefile.am |   2 +
+ tests/init.sh     |  30 +++++++
+ tests/pidns.c     | 237 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ tests/pidns.h     |  56 +++++++++++++
+ 4 files changed, 325 insertions(+)
+ create mode 100644 tests/pidns.c
+ create mode 100644 tests/pidns.h
+
+Index: strace-5.7/tests/Makefile.am
+===================================================================
+--- strace-5.7.orig/tests/Makefile.am	2020-09-09 19:32:50.846965498 +0200
++++ strace-5.7/tests/Makefile.am	2020-09-09 19:49:54.008575349 +0200
+@@ -44,6 +44,8 @@
+ 	libsocketcall.c \
+ 	lock_file.c \
+ 	overflowuid.c \
++	pidns.c \
++	pidns.h \
+ 	pipe_maxfd.c \
+ 	print_quoted_string.c \
+ 	print_time.c \
+Index: strace-5.7/tests/init.sh
+===================================================================
+--- strace-5.7.orig/tests/init.sh	2020-09-09 19:32:50.846965498 +0200
++++ strace-5.7/tests/init.sh	2020-09-09 19:49:54.008575349 +0200
+@@ -387,6 +387,36 @@
+ 	test_pure_prog_set "$@" < "$srcdir/$NAME.in"
+ }
+ 
++test_pidns_run_strace()
++{
++	local parent_pid init_pid
++
++	check_prog tail
++	check_prog cut
++	check_prog grep
++
++	run_prog > /dev/null
++	run_strace --pidns-translation -f $@ $args > "$EXP"
++
++	# filter out logs made by the parent or init process of the pidns test
++	parent_pid="$(tail -n 2 $LOG | head -n 1 | cut -d' ' -f1)"
++	init_pid="$(tail -n 1 $LOG | cut -d' ' -f1)"
++	grep -E -v "^($parent_pid|$init_pid) " "$LOG" > "$OUT"
++	match_diff "$OUT" "$EXP"
++}
++
++test_pidns()
++{
++	check_prog unshare
++	unshare -Urpf true || framework_skip_ "unshare -Urpf true failed"
++
++	test_pidns_run_strace "$@"
++
++	# test PID translation when /proc is mounted from an other namespace
++	STRACE="unshare -Urpf $STRACE"
++	test_pidns_run_strace "$@"
++}
++
+ check_prog cat
+ check_prog rm
+ 
+Index: strace-5.7/tests/pidns.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/pidns.c	2020-09-09 19:49:54.009575350 +0200
+@@ -0,0 +1,237 @@
++/*
++ * Testing framework for PID namespace translation
++ *
++ * Copyright (c) 2020 Ákos Uzonyi <uzonyi.akos@gmail.com>
++ * All rights reserved.
++ *
++ * SPDX-License-Identifier: LGPL-2.1-or-later
++ */
++#include "tests.h"
++#include "pidns.h"
++#include "nsfs.h"
++
++#include <errno.h>
++#include <stdio.h>
++#include <string.h>
++#include <sys/types.h>
++#include <signal.h>
++#include <stdlib.h>
++#include <sched.h>
++#include <unistd.h>
++#include <sys/wait.h>
++#include <linux/sched.h>
++#include <fcntl.h>
++#include <sys/ioctl.h>
++
++#ifndef CLONE_NEWUSER
++# define CLONE_NEWUSER 0x10000000
++#endif
++
++#ifndef CLONE_NEWPID
++# define CLONE_NEWPID 0x20000000
++#endif
++
++static bool pidns_translation = false;
++static bool pidns_unshared = false;
++
++/* Our PIDs in strace's namespace */
++static pid_t pidns_strace_ids[PT_COUNT];
++
++void
++pidns_print_leader(void)
++{
++	if (pidns_translation)
++		printf("%-5d ", pidns_strace_ids[PT_TID]);
++}
++
++const char *
++pidns_pid2str(enum pid_type type)
++{
++	static const char format[] = " /* %d in strace's PID NS */";
++	static char buf[PT_COUNT][sizeof(format) + sizeof(int) * 3];
++
++	if (type < 0 || type >= PT_COUNT)
++		return "";
++
++	if (!pidns_unshared || !pidns_strace_ids[type])
++		return "";
++
++	snprintf(buf[type], sizeof(buf[type]), format, pidns_strace_ids[type]);
++	return buf[type];
++}
++
++/**
++ * This function is like fork, but does a few more things. It sets up the
++ * child's PGID and SID according to the parameters. Also it fills the
++ * pidns_strace_ids array in the child's memory with the PIDs of the child in
++ * parent's PID namespace. In the parent it waits for the child to terminate
++ * (but leaves the zombie to use it later as a process group). If the child
++ * terminates with nonzero exit status, the test is failed.
++ *
++ * @param pgid     The process group the child should be moved to. It's expected
++ *                 to be a PID of a zombie process (will be reaped). If
++ *                 negative, leave the child in the process group of the parent.
++ *                 If 0, move the process to its own process group.
++ * @param new_sid  Wheather child should be moved to a new session.
++ */
++static pid_t
++pidns_fork(pid_t pgid, bool new_sid)
++{
++	int strace_ids_pipe[2];
++	if (pipe(strace_ids_pipe) < 0)
++		perror_msg_and_fail("pipe");
++
++	fflush(stdout);
++	pid_t pid = fork();
++	if (pid < 0)
++		perror_msg_and_fail("fork");
++
++	if (!pid) {
++		close(strace_ids_pipe[1]);
++
++		ssize_t len = read(strace_ids_pipe[0], pidns_strace_ids,
++				sizeof(pidns_strace_ids));
++		if (len < 0)
++			perror_msg_and_fail("read");
++		if (len != sizeof(pidns_strace_ids))
++			error_msg_and_fail("read returned < sizeof(pidns_strace_ids)");
++
++		close(strace_ids_pipe[0]);
++
++		if (pidns_strace_ids[PT_SID])
++			setsid();
++
++		return 0;
++	}
++
++	pidns_strace_ids[PT_TID] = pid;
++	pidns_strace_ids[PT_TGID] = pid;
++	pidns_strace_ids[PT_PGID] = 0;
++	pidns_strace_ids[PT_SID] = 0;
++
++	if (!pgid)
++		pgid = pid;
++
++	if (pgid > 0) {
++		if (setpgid(pid, pgid) < 0)
++			perror_msg_and_fail("setpgid");
++
++		pidns_strace_ids[PT_PGID] = pgid;
++	}
++
++	/* Reap group leader to test PGID decoding */
++	if (pgid > 0 && pgid != pid) {
++		int ret = waitpid(pgid, NULL, WNOHANG);
++		if (ret < 0)
++			perror_msg_and_fail("wait");
++		if (!ret)
++			error_msg_and_fail("could not reap group leader");
++	}
++
++	if (new_sid) {
++		pidns_strace_ids[PT_SID] = pid;
++		pidns_strace_ids[PT_PGID] = pid;
++	}
++
++	ssize_t len = write(strace_ids_pipe[1], pidns_strace_ids,
++	                     sizeof(pidns_strace_ids));
++	if (len < 0)
++		perror_msg_and_fail("write");
++	if (len != sizeof(pidns_strace_ids))
++		error_msg_and_fail("write returned < sizeof(pidns_strace_ids)");
++
++	close(strace_ids_pipe[0]);
++	close(strace_ids_pipe[1]);
++
++	/* WNOWAIT: leave the zombie, to be able to use it as a process group */
++	siginfo_t siginfo;
++	if (waitid(P_PID, pid, &siginfo, WEXITED | WNOWAIT) < 0)
++		perror_msg_and_fail("wait");
++	if (siginfo.si_code != CLD_EXITED || siginfo.si_status)
++		error_msg_and_fail("child terminated with nonzero exit status");
++
++	return pid;
++}
++
++static void
++create_init_process(void)
++{
++	int child_pipe[2];
++	if (pipe(child_pipe) < 0)
++		perror_msg_and_fail("pipe");
++
++	pid_t pid = fork();
++	if (pid < 0)
++		perror_msg_and_fail("fork");
++
++	if (!pid) {
++		close(child_pipe[1]);
++		if (read(child_pipe[0], &child_pipe[1], sizeof(int)) != 0)
++			_exit(1);
++		_exit(0);
++	}
++
++	close(child_pipe[0]);
++}
++
++void
++check_ns_ioctl(void)
++{
++	int fd = open("/proc/self/ns/pid", O_RDONLY);
++	if (fd < 0) {
++		if (errno == ENOENT)
++			perror_msg_and_skip("opening /proc/self/ns/pid");
++		else
++			perror_msg_and_fail("opening /proc/self/ns/pid");
++	}
++
++	int userns_fd = ioctl(fd, NS_GET_USERNS);
++	if (userns_fd < 0) {
++		if (errno == ENOTTY)
++			error_msg_and_skip("NS_* ioctl commands are not "
++			                   "supported by the kernel");
++		else
++			perror_msg_and_fail("ioctl(NS_GET_USERNS)");
++	}
++
++	close(userns_fd);
++	close(fd);
++}
++
++void
++pidns_test_init(void)
++{
++	pidns_translation = true;
++
++	check_ns_ioctl();
++
++	if (!pidns_fork(-1, false))
++		return;
++
++	/* Unshare user namespace too, so we do not need to be root */
++	if (unshare(CLONE_NEWUSER | CLONE_NEWPID) < 0) {
++		if (errno == EPERM)
++			perror_msg_and_skip("unshare");
++
++		perror_msg_and_fail("unshare");
++	}
++
++	pidns_unshared = true;
++
++	create_init_process();
++
++	if (!pidns_fork(-1, false))
++		return;
++
++	if (!pidns_fork(-1, true))
++		return;
++
++	pid_t pgid;
++	if (!(pgid = pidns_fork(0, false)))
++		return;
++
++	if (!pidns_fork(pgid, false))
++		return;
++
++	exit(0);
++}
+Index: strace-5.7/tests/pidns.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/pidns.h	2020-09-09 19:49:54.009575350 +0200
+@@ -0,0 +1,56 @@
++/*
++ * Test PID namespace translation
++ *
++ * Copyright (c) 2020 Ákos Uzonyi <uzonyi.akos@gmail.com>
++ * All rights reserved.
++ *
++ * SPDX-License-Identifier: LGPL-2.1-or-later
++ */
++#ifndef STRACE_PIDNS_H
++#define STRACE_PIDNS_H
++
++#ifdef PIDNS_TRANSLATION
++# define PIDNS_TEST_INIT pidns_test_init()
++#else
++# define PIDNS_TEST_INIT
++#endif
++
++#include <sys/types.h>
++
++enum pid_type {
++	PT_TID,
++	PT_TGID,
++	PT_PGID,
++	PT_SID,
++
++	PT_COUNT,
++	PT_NONE = -1
++};
++
++/* Prints leader (process tid) if pidns_test_init was called */
++void pidns_print_leader(void);
++
++/*
++ * Returns a static buffer containing the translation string of our PID.
++ */
++const char *pidns_pid2str(enum pid_type type);
++
++/**
++ * Skips the test if NS_* ioctl commands are not supported by the kernel.
++ */
++void check_ns_ioctl(void);
++
++/**
++ * Init pidns testing.
++ *
++ * Should be called at the beginning of the test's main function
++ *
++ * This function calls fork a couple of times, and returns in the child
++ * processes. These child processes are in a new PID namespace with different
++ * PID configurations (group leader, session leader, ...). If any child
++ * terminates with nonzero exit status the test is failed. Otherwise the test is
++ * succesful, and the parent process exits with 0.
++ */
++void pidns_test_init(void);
++
++#endif
+\ No newline at end of file
+Index: strace-5.7/tests-m32/Makefile.am
+===================================================================
+--- strace-5.7.orig/tests-m32/Makefile.am	2020-09-09 19:32:50.846965498 +0200
++++ strace-5.7/tests-m32/Makefile.am	2020-09-09 19:49:54.009575350 +0200
+@@ -7,14 +7,14 @@
+ # SPDX-License-Identifier: GPL-2.0-or-later
+ 
+ OS = linux
+-CC = @CC_FOR_M32@
+-ARCH = @arch_m32@
++CC = @CC@
++ARCH = @arch@
+ NATIVE_ARCH = @arch_native@
+-SIZEOF_KERNEL_LONG_T = 4
+-SIZEOF_LONG = 4
+-MPERS_NAME = m32
+-MPERS_CC_FLAGS = @CFLAGS_FOR_M32@ @cc_flags_m32@
+-ARCH_MFLAGS = -DMPERS_IS_$(MPERS_NAME) $(MPERS_CC_FLAGS)
++SIZEOF_KERNEL_LONG_T = @SIZEOF_KERNEL_LONG_T@
++SIZEOF_LONG = @SIZEOF_LONG@
++MPERS_NAME =
++MPERS_CC_FLAGS =
++ARCH_MFLAGS =
+ AM_CFLAGS = $(WARN_CFLAGS)
+ AM_CPPFLAGS = $(ARCH_MFLAGS) \
+ 	      -I$(builddir) \
+@@ -44,6 +44,8 @@
+ 	libsocketcall.c \
+ 	lock_file.c \
+ 	overflowuid.c \
++	pidns.c \
++	pidns.h \
+ 	pipe_maxfd.c \
+ 	print_quoted_string.c \
+ 	print_time.c \
+Index: strace-5.7/tests-m32/init.sh
+===================================================================
+--- strace-5.7.orig/tests-m32/init.sh	2020-09-09 19:32:50.846965498 +0200
++++ strace-5.7/tests-m32/init.sh	2020-09-09 19:49:54.009575350 +0200
+@@ -387,6 +387,36 @@
+ 	test_pure_prog_set "$@" < "$srcdir/$NAME.in"
+ }
+ 
++test_pidns_run_strace()
++{
++	local parent_pid init_pid
++
++	check_prog tail
++	check_prog cut
++	check_prog grep
++
++	run_prog > /dev/null
++	run_strace --pidns-translation -f $@ $args > "$EXP"
++
++	# filter out logs made by the parent or init process of the pidns test
++	parent_pid="$(tail -n 2 $LOG | head -n 1 | cut -d' ' -f1)"
++	init_pid="$(tail -n 1 $LOG | cut -d' ' -f1)"
++	grep -E -v "^($parent_pid|$init_pid) " "$LOG" > "$OUT"
++	match_diff "$OUT" "$EXP"
++}
++
++test_pidns()
++{
++	check_prog unshare
++	unshare -Urpf true || framework_skip_ "unshare -Urpf true failed"
++
++	test_pidns_run_strace "$@"
++
++	# test PID translation when /proc is mounted from an other namespace
++	STRACE="unshare -Urpf $STRACE"
++	test_pidns_run_strace "$@"
++}
++
+ check_prog cat
+ check_prog rm
+ 
+Index: strace-5.7/tests-m32/pidns.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/pidns.c	2020-09-09 19:49:54.009575350 +0200
+@@ -0,0 +1,237 @@
++/*
++ * Testing framework for PID namespace translation
++ *
++ * Copyright (c) 2020 Ákos Uzonyi <uzonyi.akos@gmail.com>
++ * All rights reserved.
++ *
++ * SPDX-License-Identifier: LGPL-2.1-or-later
++ */
++#include "tests.h"
++#include "pidns.h"
++#include "nsfs.h"
++
++#include <errno.h>
++#include <stdio.h>
++#include <string.h>
++#include <sys/types.h>
++#include <signal.h>
++#include <stdlib.h>
++#include <sched.h>
++#include <unistd.h>
++#include <sys/wait.h>
++#include <linux/sched.h>
++#include <fcntl.h>
++#include <sys/ioctl.h>
++
++#ifndef CLONE_NEWUSER
++# define CLONE_NEWUSER 0x10000000
++#endif
++
++#ifndef CLONE_NEWPID
++# define CLONE_NEWPID 0x20000000
++#endif
++
++static bool pidns_translation = false;
++static bool pidns_unshared = false;
++
++/* Our PIDs in strace's namespace */
++static pid_t pidns_strace_ids[PT_COUNT];
++
++void
++pidns_print_leader(void)
++{
++	if (pidns_translation)
++		printf("%-5d ", pidns_strace_ids[PT_TID]);
++}
++
++const char *
++pidns_pid2str(enum pid_type type)
++{
++	static const char format[] = " /* %d in strace's PID NS */";
++	static char buf[PT_COUNT][sizeof(format) + sizeof(int) * 3];
++
++	if (type < 0 || type >= PT_COUNT)
++		return "";
++
++	if (!pidns_unshared || !pidns_strace_ids[type])
++		return "";
++
++	snprintf(buf[type], sizeof(buf[type]), format, pidns_strace_ids[type]);
++	return buf[type];
++}
++
++/**
++ * This function is like fork, but does a few more things. It sets up the
++ * child's PGID and SID according to the parameters. Also it fills the
++ * pidns_strace_ids array in the child's memory with the PIDs of the child in
++ * parent's PID namespace. In the parent it waits for the child to terminate
++ * (but leaves the zombie to use it later as a process group). If the child
++ * terminates with nonzero exit status, the test is failed.
++ *
++ * @param pgid     The process group the child should be moved to. It's expected
++ *                 to be a PID of a zombie process (will be reaped). If
++ *                 negative, leave the child in the process group of the parent.
++ *                 If 0, move the process to its own process group.
++ * @param new_sid  Wheather child should be moved to a new session.
++ */
++static pid_t
++pidns_fork(pid_t pgid, bool new_sid)
++{
++	int strace_ids_pipe[2];
++	if (pipe(strace_ids_pipe) < 0)
++		perror_msg_and_fail("pipe");
++
++	fflush(stdout);
++	pid_t pid = fork();
++	if (pid < 0)
++		perror_msg_and_fail("fork");
++
++	if (!pid) {
++		close(strace_ids_pipe[1]);
++
++		ssize_t len = read(strace_ids_pipe[0], pidns_strace_ids,
++				sizeof(pidns_strace_ids));
++		if (len < 0)
++			perror_msg_and_fail("read");
++		if (len != sizeof(pidns_strace_ids))
++			error_msg_and_fail("read returned < sizeof(pidns_strace_ids)");
++
++		close(strace_ids_pipe[0]);
++
++		if (pidns_strace_ids[PT_SID])
++			setsid();
++
++		return 0;
++	}
++
++	pidns_strace_ids[PT_TID] = pid;
++	pidns_strace_ids[PT_TGID] = pid;
++	pidns_strace_ids[PT_PGID] = 0;
++	pidns_strace_ids[PT_SID] = 0;
++
++	if (!pgid)
++		pgid = pid;
++
++	if (pgid > 0) {
++		if (setpgid(pid, pgid) < 0)
++			perror_msg_and_fail("setpgid");
++
++		pidns_strace_ids[PT_PGID] = pgid;
++	}
++
++	/* Reap group leader to test PGID decoding */
++	if (pgid > 0 && pgid != pid) {
++		int ret = waitpid(pgid, NULL, WNOHANG);
++		if (ret < 0)
++			perror_msg_and_fail("wait");
++		if (!ret)
++			error_msg_and_fail("could not reap group leader");
++	}
++
++	if (new_sid) {
++		pidns_strace_ids[PT_SID] = pid;
++		pidns_strace_ids[PT_PGID] = pid;
++	}
++
++	ssize_t len = write(strace_ids_pipe[1], pidns_strace_ids,
++	                     sizeof(pidns_strace_ids));
++	if (len < 0)
++		perror_msg_and_fail("write");
++	if (len != sizeof(pidns_strace_ids))
++		error_msg_and_fail("write returned < sizeof(pidns_strace_ids)");
++
++	close(strace_ids_pipe[0]);
++	close(strace_ids_pipe[1]);
++
++	/* WNOWAIT: leave the zombie, to be able to use it as a process group */
++	siginfo_t siginfo;
++	if (waitid(P_PID, pid, &siginfo, WEXITED | WNOWAIT) < 0)
++		perror_msg_and_fail("wait");
++	if (siginfo.si_code != CLD_EXITED || siginfo.si_status)
++		error_msg_and_fail("child terminated with nonzero exit status");
++
++	return pid;
++}
++
++static void
++create_init_process(void)
++{
++	int child_pipe[2];
++	if (pipe(child_pipe) < 0)
++		perror_msg_and_fail("pipe");
++
++	pid_t pid = fork();
++	if (pid < 0)
++		perror_msg_and_fail("fork");
++
++	if (!pid) {
++		close(child_pipe[1]);
++		if (read(child_pipe[0], &child_pipe[1], sizeof(int)) != 0)
++			_exit(1);
++		_exit(0);
++	}
++
++	close(child_pipe[0]);
++}
++
++void
++check_ns_ioctl(void)
++{
++	int fd = open("/proc/self/ns/pid", O_RDONLY);
++	if (fd < 0) {
++		if (errno == ENOENT)
++			perror_msg_and_skip("opening /proc/self/ns/pid");
++		else
++			perror_msg_and_fail("opening /proc/self/ns/pid");
++	}
++
++	int userns_fd = ioctl(fd, NS_GET_USERNS);
++	if (userns_fd < 0) {
++		if (errno == ENOTTY)
++			error_msg_and_skip("NS_* ioctl commands are not "
++			                   "supported by the kernel");
++		else
++			perror_msg_and_fail("ioctl(NS_GET_USERNS)");
++	}
++
++	close(userns_fd);
++	close(fd);
++}
++
++void
++pidns_test_init(void)
++{
++	pidns_translation = true;
++
++	check_ns_ioctl();
++
++	if (!pidns_fork(-1, false))
++		return;
++
++	/* Unshare user namespace too, so we do not need to be root */
++	if (unshare(CLONE_NEWUSER | CLONE_NEWPID) < 0) {
++		if (errno == EPERM)
++			perror_msg_and_skip("unshare");
++
++		perror_msg_and_fail("unshare");
++	}
++
++	pidns_unshared = true;
++
++	create_init_process();
++
++	if (!pidns_fork(-1, false))
++		return;
++
++	if (!pidns_fork(-1, true))
++		return;
++
++	pid_t pgid;
++	if (!(pgid = pidns_fork(0, false)))
++		return;
++
++	if (!pidns_fork(pgid, false))
++		return;
++
++	exit(0);
++}
+Index: strace-5.7/tests-m32/pidns.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/pidns.h	2020-09-09 19:49:54.010575350 +0200
+@@ -0,0 +1,56 @@
++/*
++ * Test PID namespace translation
++ *
++ * Copyright (c) 2020 Ákos Uzonyi <uzonyi.akos@gmail.com>
++ * All rights reserved.
++ *
++ * SPDX-License-Identifier: LGPL-2.1-or-later
++ */
++#ifndef STRACE_PIDNS_H
++#define STRACE_PIDNS_H
++
++#ifdef PIDNS_TRANSLATION
++# define PIDNS_TEST_INIT pidns_test_init()
++#else
++# define PIDNS_TEST_INIT
++#endif
++
++#include <sys/types.h>
++
++enum pid_type {
++	PT_TID,
++	PT_TGID,
++	PT_PGID,
++	PT_SID,
++
++	PT_COUNT,
++	PT_NONE = -1
++};
++
++/* Prints leader (process tid) if pidns_test_init was called */
++void pidns_print_leader(void);
++
++/*
++ * Returns a static buffer containing the translation string of our PID.
++ */
++const char *pidns_pid2str(enum pid_type type);
++
++/**
++ * Skips the test if NS_* ioctl commands are not supported by the kernel.
++ */
++void check_ns_ioctl(void);
++
++/**
++ * Init pidns testing.
++ *
++ * Should be called at the beginning of the test's main function
++ *
++ * This function calls fork a couple of times, and returns in the child
++ * processes. These child processes are in a new PID namespace with different
++ * PID configurations (group leader, session leader, ...). If any child
++ * terminates with nonzero exit status the test is failed. Otherwise the test is
++ * succesful, and the parent process exits with 0.
++ */
++void pidns_test_init(void);
++
++#endif
+\ No newline at end of file
+Index: strace-5.7/tests-mx32/Makefile.am
+===================================================================
+--- strace-5.7.orig/tests-mx32/Makefile.am	2020-09-09 19:32:50.846965498 +0200
++++ strace-5.7/tests-mx32/Makefile.am	2020-09-09 19:49:54.010575350 +0200
+@@ -7,14 +7,14 @@
+ # SPDX-License-Identifier: GPL-2.0-or-later
+ 
+ OS = linux
+-CC = @CC_FOR_MX32@
+-ARCH = @arch_mx32@
++CC = @CC@
++ARCH = @arch@
+ NATIVE_ARCH = @arch_native@
+ SIZEOF_KERNEL_LONG_T = @SIZEOF_KERNEL_LONG_T@
+-SIZEOF_LONG = 4
+-MPERS_NAME = mx32
+-MPERS_CC_FLAGS = @CFLAGS_FOR_MX32@ @cc_flags_mx32@
+-ARCH_MFLAGS = -DMPERS_IS_$(MPERS_NAME) $(MPERS_CC_FLAGS)
++SIZEOF_LONG = @SIZEOF_LONG@
++MPERS_NAME =
++MPERS_CC_FLAGS =
++ARCH_MFLAGS =
+ AM_CFLAGS = $(WARN_CFLAGS)
+ AM_CPPFLAGS = $(ARCH_MFLAGS) \
+ 	      -I$(builddir) \
+@@ -44,6 +44,8 @@
+ 	libsocketcall.c \
+ 	lock_file.c \
+ 	overflowuid.c \
++	pidns.c \
++	pidns.h \
+ 	pipe_maxfd.c \
+ 	print_quoted_string.c \
+ 	print_time.c \
+Index: strace-5.7/tests-mx32/init.sh
+===================================================================
+--- strace-5.7.orig/tests-mx32/init.sh	2020-09-09 19:32:50.846965498 +0200
++++ strace-5.7/tests-mx32/init.sh	2020-09-09 19:49:54.010575350 +0200
+@@ -387,6 +387,36 @@
+ 	test_pure_prog_set "$@" < "$srcdir/$NAME.in"
+ }
+ 
++test_pidns_run_strace()
++{
++	local parent_pid init_pid
++
++	check_prog tail
++	check_prog cut
++	check_prog grep
++
++	run_prog > /dev/null
++	run_strace --pidns-translation -f $@ $args > "$EXP"
++
++	# filter out logs made by the parent or init process of the pidns test
++	parent_pid="$(tail -n 2 $LOG | head -n 1 | cut -d' ' -f1)"
++	init_pid="$(tail -n 1 $LOG | cut -d' ' -f1)"
++	grep -E -v "^($parent_pid|$init_pid) " "$LOG" > "$OUT"
++	match_diff "$OUT" "$EXP"
++}
++
++test_pidns()
++{
++	check_prog unshare
++	unshare -Urpf true || framework_skip_ "unshare -Urpf true failed"
++
++	test_pidns_run_strace "$@"
++
++	# test PID translation when /proc is mounted from an other namespace
++	STRACE="unshare -Urpf $STRACE"
++	test_pidns_run_strace "$@"
++}
++
+ check_prog cat
+ check_prog rm
+ 
+Index: strace-5.7/tests-mx32/pidns.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/pidns.c	2020-09-09 19:49:54.010575350 +0200
+@@ -0,0 +1,237 @@
++/*
++ * Testing framework for PID namespace translation
++ *
++ * Copyright (c) 2020 Ákos Uzonyi <uzonyi.akos@gmail.com>
++ * All rights reserved.
++ *
++ * SPDX-License-Identifier: LGPL-2.1-or-later
++ */
++#include "tests.h"
++#include "pidns.h"
++#include "nsfs.h"
++
++#include <errno.h>
++#include <stdio.h>
++#include <string.h>
++#include <sys/types.h>
++#include <signal.h>
++#include <stdlib.h>
++#include <sched.h>
++#include <unistd.h>
++#include <sys/wait.h>
++#include <linux/sched.h>
++#include <fcntl.h>
++#include <sys/ioctl.h>
++
++#ifndef CLONE_NEWUSER
++# define CLONE_NEWUSER 0x10000000
++#endif
++
++#ifndef CLONE_NEWPID
++# define CLONE_NEWPID 0x20000000
++#endif
++
++static bool pidns_translation = false;
++static bool pidns_unshared = false;
++
++/* Our PIDs in strace's namespace */
++static pid_t pidns_strace_ids[PT_COUNT];
++
++void
++pidns_print_leader(void)
++{
++	if (pidns_translation)
++		printf("%-5d ", pidns_strace_ids[PT_TID]);
++}
++
++const char *
++pidns_pid2str(enum pid_type type)
++{
++	static const char format[] = " /* %d in strace's PID NS */";
++	static char buf[PT_COUNT][sizeof(format) + sizeof(int) * 3];
++
++	if (type < 0 || type >= PT_COUNT)
++		return "";
++
++	if (!pidns_unshared || !pidns_strace_ids[type])
++		return "";
++
++	snprintf(buf[type], sizeof(buf[type]), format, pidns_strace_ids[type]);
++	return buf[type];
++}
++
++/**
++ * This function is like fork, but does a few more things. It sets up the
++ * child's PGID and SID according to the parameters. Also it fills the
++ * pidns_strace_ids array in the child's memory with the PIDs of the child in
++ * parent's PID namespace. In the parent it waits for the child to terminate
++ * (but leaves the zombie to use it later as a process group). If the child
++ * terminates with nonzero exit status, the test is failed.
++ *
++ * @param pgid     The process group the child should be moved to. It's expected
++ *                 to be a PID of a zombie process (will be reaped). If
++ *                 negative, leave the child in the process group of the parent.
++ *                 If 0, move the process to its own process group.
++ * @param new_sid  Wheather child should be moved to a new session.
++ */
++static pid_t
++pidns_fork(pid_t pgid, bool new_sid)
++{
++	int strace_ids_pipe[2];
++	if (pipe(strace_ids_pipe) < 0)
++		perror_msg_and_fail("pipe");
++
++	fflush(stdout);
++	pid_t pid = fork();
++	if (pid < 0)
++		perror_msg_and_fail("fork");
++
++	if (!pid) {
++		close(strace_ids_pipe[1]);
++
++		ssize_t len = read(strace_ids_pipe[0], pidns_strace_ids,
++				sizeof(pidns_strace_ids));
++		if (len < 0)
++			perror_msg_and_fail("read");
++		if (len != sizeof(pidns_strace_ids))
++			error_msg_and_fail("read returned < sizeof(pidns_strace_ids)");
++
++		close(strace_ids_pipe[0]);
++
++		if (pidns_strace_ids[PT_SID])
++			setsid();
++
++		return 0;
++	}
++
++	pidns_strace_ids[PT_TID] = pid;
++	pidns_strace_ids[PT_TGID] = pid;
++	pidns_strace_ids[PT_PGID] = 0;
++	pidns_strace_ids[PT_SID] = 0;
++
++	if (!pgid)
++		pgid = pid;
++
++	if (pgid > 0) {
++		if (setpgid(pid, pgid) < 0)
++			perror_msg_and_fail("setpgid");
++
++		pidns_strace_ids[PT_PGID] = pgid;
++	}
++
++	/* Reap group leader to test PGID decoding */
++	if (pgid > 0 && pgid != pid) {
++		int ret = waitpid(pgid, NULL, WNOHANG);
++		if (ret < 0)
++			perror_msg_and_fail("wait");
++		if (!ret)
++			error_msg_and_fail("could not reap group leader");
++	}
++
++	if (new_sid) {
++		pidns_strace_ids[PT_SID] = pid;
++		pidns_strace_ids[PT_PGID] = pid;
++	}
++
++	ssize_t len = write(strace_ids_pipe[1], pidns_strace_ids,
++	                     sizeof(pidns_strace_ids));
++	if (len < 0)
++		perror_msg_and_fail("write");
++	if (len != sizeof(pidns_strace_ids))
++		error_msg_and_fail("write returned < sizeof(pidns_strace_ids)");
++
++	close(strace_ids_pipe[0]);
++	close(strace_ids_pipe[1]);
++
++	/* WNOWAIT: leave the zombie, to be able to use it as a process group */
++	siginfo_t siginfo;
++	if (waitid(P_PID, pid, &siginfo, WEXITED | WNOWAIT) < 0)
++		perror_msg_and_fail("wait");
++	if (siginfo.si_code != CLD_EXITED || siginfo.si_status)
++		error_msg_and_fail("child terminated with nonzero exit status");
++
++	return pid;
++}
++
++static void
++create_init_process(void)
++{
++	int child_pipe[2];
++	if (pipe(child_pipe) < 0)
++		perror_msg_and_fail("pipe");
++
++	pid_t pid = fork();
++	if (pid < 0)
++		perror_msg_and_fail("fork");
++
++	if (!pid) {
++		close(child_pipe[1]);
++		if (read(child_pipe[0], &child_pipe[1], sizeof(int)) != 0)
++			_exit(1);
++		_exit(0);
++	}
++
++	close(child_pipe[0]);
++}
++
++void
++check_ns_ioctl(void)
++{
++	int fd = open("/proc/self/ns/pid", O_RDONLY);
++	if (fd < 0) {
++		if (errno == ENOENT)
++			perror_msg_and_skip("opening /proc/self/ns/pid");
++		else
++			perror_msg_and_fail("opening /proc/self/ns/pid");
++	}
++
++	int userns_fd = ioctl(fd, NS_GET_USERNS);
++	if (userns_fd < 0) {
++		if (errno == ENOTTY)
++			error_msg_and_skip("NS_* ioctl commands are not "
++			                   "supported by the kernel");
++		else
++			perror_msg_and_fail("ioctl(NS_GET_USERNS)");
++	}
++
++	close(userns_fd);
++	close(fd);
++}
++
++void
++pidns_test_init(void)
++{
++	pidns_translation = true;
++
++	check_ns_ioctl();
++
++	if (!pidns_fork(-1, false))
++		return;
++
++	/* Unshare user namespace too, so we do not need to be root */
++	if (unshare(CLONE_NEWUSER | CLONE_NEWPID) < 0) {
++		if (errno == EPERM)
++			perror_msg_and_skip("unshare");
++
++		perror_msg_and_fail("unshare");
++	}
++
++	pidns_unshared = true;
++
++	create_init_process();
++
++	if (!pidns_fork(-1, false))
++		return;
++
++	if (!pidns_fork(-1, true))
++		return;
++
++	pid_t pgid;
++	if (!(pgid = pidns_fork(0, false)))
++		return;
++
++	if (!pidns_fork(pgid, false))
++		return;
++
++	exit(0);
++}
+Index: strace-5.7/tests-mx32/pidns.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/pidns.h	2020-09-09 19:49:54.010575350 +0200
+@@ -0,0 +1,56 @@
++/*
++ * Test PID namespace translation
++ *
++ * Copyright (c) 2020 Ákos Uzonyi <uzonyi.akos@gmail.com>
++ * All rights reserved.
++ *
++ * SPDX-License-Identifier: LGPL-2.1-or-later
++ */
++#ifndef STRACE_PIDNS_H
++#define STRACE_PIDNS_H
++
++#ifdef PIDNS_TRANSLATION
++# define PIDNS_TEST_INIT pidns_test_init()
++#else
++# define PIDNS_TEST_INIT
++#endif
++
++#include <sys/types.h>
++
++enum pid_type {
++	PT_TID,
++	PT_TGID,
++	PT_PGID,
++	PT_SID,
++
++	PT_COUNT,
++	PT_NONE = -1
++};
++
++/* Prints leader (process tid) if pidns_test_init was called */
++void pidns_print_leader(void);
++
++/*
++ * Returns a static buffer containing the translation string of our PID.
++ */
++const char *pidns_pid2str(enum pid_type type);
++
++/**
++ * Skips the test if NS_* ioctl commands are not supported by the kernel.
++ */
++void check_ns_ioctl(void);
++
++/**
++ * Init pidns testing.
++ *
++ * Should be called at the beginning of the test's main function
++ *
++ * This function calls fork a couple of times, and returns in the child
++ * processes. These child processes are in a new PID namespace with different
++ * PID configurations (group leader, session leader, ...). If any child
++ * terminates with nonzero exit status the test is failed. Otherwise the test is
++ * succesful, and the parent process exits with 0.
++ */
++void pidns_test_init(void);
++
++#endif
+\ No newline at end of file
+Index: strace-5.7/tests/Makefile.in
+===================================================================
+--- strace-5.7.orig/tests/Makefile.in	2020-09-09 19:46:24.904450714 +0200
++++ strace-5.7/tests/Makefile.in	2020-09-09 19:51:23.607628754 +0200
+@@ -531,7 +531,7 @@
+ 	libtests_a-libmmsg.$(OBJEXT) \
+ 	libtests_a-libsocketcall.$(OBJEXT) \
+ 	libtests_a-lock_file.$(OBJEXT) \
+-	libtests_a-overflowuid.$(OBJEXT) \
++	libtests_a-overflowuid.$(OBJEXT) libtests_a-pidns.$(OBJEXT) \
+ 	libtests_a-pipe_maxfd.$(OBJEXT) \
+ 	libtests_a-print_quoted_string.$(OBJEXT) \
+ 	libtests_a-print_time.$(OBJEXT) \
+@@ -3899,6 +3899,7 @@
+ 	./$(DEPDIR)/libtests_a-libsocketcall.Po \
+ 	./$(DEPDIR)/libtests_a-lock_file.Po \
+ 	./$(DEPDIR)/libtests_a-overflowuid.Po \
++	./$(DEPDIR)/libtests_a-pidns.Po \
+ 	./$(DEPDIR)/libtests_a-pipe_maxfd.Po \
+ 	./$(DEPDIR)/libtests_a-print_quoted_string.Po \
+ 	./$(DEPDIR)/libtests_a-print_time.Po \
+@@ -5122,6 +5123,8 @@
+ 	libsocketcall.c \
+ 	lock_file.c \
+ 	overflowuid.c \
++	pidns.c \
++	pidns.h \
+ 	pipe_maxfd.c \
+ 	print_quoted_string.c \
+ 	print_time.c \
+@@ -9926,6 +9929,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-libsocketcall.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-lock_file.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-overflowuid.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-pidns.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-pipe_maxfd.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-print_quoted_string.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-print_time.Po@am__quote@ # am--include-marker
+@@ -10651,6 +10655,20 @@
+ @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-overflowuid.obj `if test -f 'overflowuid.c'; then $(CYGPATH_W) 'overflowuid.c'; else $(CYGPATH_W) '$(srcdir)/overflowuid.c'; fi`
+ 
++libtests_a-pidns.o: pidns.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-pidns.o -MD -MP -MF $(DEPDIR)/libtests_a-pidns.Tpo -c -o libtests_a-pidns.o `test -f 'pidns.c' || echo '$(srcdir)/'`pidns.c
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-pidns.Tpo $(DEPDIR)/libtests_a-pidns.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pidns.c' object='libtests_a-pidns.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-pidns.o `test -f 'pidns.c' || echo '$(srcdir)/'`pidns.c
++
++libtests_a-pidns.obj: pidns.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-pidns.obj -MD -MP -MF $(DEPDIR)/libtests_a-pidns.Tpo -c -o libtests_a-pidns.obj `if test -f 'pidns.c'; then $(CYGPATH_W) 'pidns.c'; else $(CYGPATH_W) '$(srcdir)/pidns.c'; fi`
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-pidns.Tpo $(DEPDIR)/libtests_a-pidns.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pidns.c' object='libtests_a-pidns.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-pidns.obj `if test -f 'pidns.c'; then $(CYGPATH_W) 'pidns.c'; else $(CYGPATH_W) '$(srcdir)/pidns.c'; fi`
++
+ libtests_a-pipe_maxfd.o: pipe_maxfd.c
+ @am__fastdepCC_TRUE@	$(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__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-pipe_maxfd.Tpo $(DEPDIR)/libtests_a-pipe_maxfd.Po
+@@ -11748,6 +11766,7 @@
+ 	-rm -f ./$(DEPDIR)/libtests_a-libsocketcall.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-lock_file.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-overflowuid.Po
++	-rm -f ./$(DEPDIR)/libtests_a-pidns.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-pipe_maxfd.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-print_quoted_string.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-print_time.Po
+@@ -12605,6 +12624,7 @@
+ 	-rm -f ./$(DEPDIR)/libtests_a-libsocketcall.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-lock_file.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-overflowuid.Po
++	-rm -f ./$(DEPDIR)/libtests_a-pidns.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-pipe_maxfd.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-print_quoted_string.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-print_time.Po
+Index: strace-5.7/tests-m32/Makefile.in
+===================================================================
+--- strace-5.7.orig/tests-m32/Makefile.in	2020-09-09 19:49:34.530563739 +0200
++++ strace-5.7/tests-m32/Makefile.in	2020-09-09 19:52:01.333651241 +0200
+@@ -531,7 +531,7 @@
+ 	libtests_a-libmmsg.$(OBJEXT) \
+ 	libtests_a-libsocketcall.$(OBJEXT) \
+ 	libtests_a-lock_file.$(OBJEXT) \
+-	libtests_a-overflowuid.$(OBJEXT) \
++	libtests_a-overflowuid.$(OBJEXT) libtests_a-pidns.$(OBJEXT) \
+ 	libtests_a-pipe_maxfd.$(OBJEXT) \
+ 	libtests_a-print_quoted_string.$(OBJEXT) \
+ 	libtests_a-print_time.$(OBJEXT) \
+@@ -3899,6 +3899,7 @@
+ 	./$(DEPDIR)/libtests_a-libsocketcall.Po \
+ 	./$(DEPDIR)/libtests_a-lock_file.Po \
+ 	./$(DEPDIR)/libtests_a-overflowuid.Po \
++	./$(DEPDIR)/libtests_a-pidns.Po \
+ 	./$(DEPDIR)/libtests_a-pipe_maxfd.Po \
+ 	./$(DEPDIR)/libtests_a-print_quoted_string.Po \
+ 	./$(DEPDIR)/libtests_a-print_time.Po \
+@@ -5122,6 +5123,8 @@
+ 	libsocketcall.c \
+ 	lock_file.c \
+ 	overflowuid.c \
++	pidns.c \
++	pidns.h \
+ 	pipe_maxfd.c \
+ 	print_quoted_string.c \
+ 	print_time.c \
+@@ -9926,6 +9929,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-libsocketcall.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-lock_file.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-overflowuid.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-pidns.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-pipe_maxfd.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-print_quoted_string.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-print_time.Po@am__quote@ # am--include-marker
+@@ -10651,6 +10655,20 @@
+ @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-overflowuid.obj `if test -f 'overflowuid.c'; then $(CYGPATH_W) 'overflowuid.c'; else $(CYGPATH_W) '$(srcdir)/overflowuid.c'; fi`
+ 
++libtests_a-pidns.o: pidns.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-pidns.o -MD -MP -MF $(DEPDIR)/libtests_a-pidns.Tpo -c -o libtests_a-pidns.o `test -f 'pidns.c' || echo '$(srcdir)/'`pidns.c
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-pidns.Tpo $(DEPDIR)/libtests_a-pidns.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pidns.c' object='libtests_a-pidns.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-pidns.o `test -f 'pidns.c' || echo '$(srcdir)/'`pidns.c
++
++libtests_a-pidns.obj: pidns.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-pidns.obj -MD -MP -MF $(DEPDIR)/libtests_a-pidns.Tpo -c -o libtests_a-pidns.obj `if test -f 'pidns.c'; then $(CYGPATH_W) 'pidns.c'; else $(CYGPATH_W) '$(srcdir)/pidns.c'; fi`
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-pidns.Tpo $(DEPDIR)/libtests_a-pidns.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pidns.c' object='libtests_a-pidns.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-pidns.obj `if test -f 'pidns.c'; then $(CYGPATH_W) 'pidns.c'; else $(CYGPATH_W) '$(srcdir)/pidns.c'; fi`
++
+ libtests_a-pipe_maxfd.o: pipe_maxfd.c
+ @am__fastdepCC_TRUE@	$(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__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-pipe_maxfd.Tpo $(DEPDIR)/libtests_a-pipe_maxfd.Po
+@@ -11748,6 +11766,7 @@
+ 	-rm -f ./$(DEPDIR)/libtests_a-libsocketcall.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-lock_file.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-overflowuid.Po
++	-rm -f ./$(DEPDIR)/libtests_a-pidns.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-pipe_maxfd.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-print_quoted_string.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-print_time.Po
+@@ -12605,6 +12624,7 @@
+ 	-rm -f ./$(DEPDIR)/libtests_a-libsocketcall.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-lock_file.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-overflowuid.Po
++	-rm -f ./$(DEPDIR)/libtests_a-pidns.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-pipe_maxfd.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-print_quoted_string.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-print_time.Po
+Index: strace-5.7/tests-mx32/Makefile.in
+===================================================================
+--- strace-5.7.orig/tests-mx32/Makefile.in	2020-09-09 19:49:39.557566736 +0200
++++ strace-5.7/tests-mx32/Makefile.in	2020-09-09 19:52:26.062665980 +0200
+@@ -531,7 +531,7 @@
+ 	libtests_a-libmmsg.$(OBJEXT) \
+ 	libtests_a-libsocketcall.$(OBJEXT) \
+ 	libtests_a-lock_file.$(OBJEXT) \
+-	libtests_a-overflowuid.$(OBJEXT) \
++	libtests_a-overflowuid.$(OBJEXT) libtests_a-pidns.$(OBJEXT) \
+ 	libtests_a-pipe_maxfd.$(OBJEXT) \
+ 	libtests_a-print_quoted_string.$(OBJEXT) \
+ 	libtests_a-print_time.$(OBJEXT) \
+@@ -3899,6 +3899,7 @@
+ 	./$(DEPDIR)/libtests_a-libsocketcall.Po \
+ 	./$(DEPDIR)/libtests_a-lock_file.Po \
+ 	./$(DEPDIR)/libtests_a-overflowuid.Po \
++	./$(DEPDIR)/libtests_a-pidns.Po \
+ 	./$(DEPDIR)/libtests_a-pipe_maxfd.Po \
+ 	./$(DEPDIR)/libtests_a-print_quoted_string.Po \
+ 	./$(DEPDIR)/libtests_a-print_time.Po \
+@@ -5122,6 +5123,8 @@
+ 	libsocketcall.c \
+ 	lock_file.c \
+ 	overflowuid.c \
++	pidns.c \
++	pidns.h \
+ 	pipe_maxfd.c \
+ 	print_quoted_string.c \
+ 	print_time.c \
+@@ -9926,6 +9929,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-libsocketcall.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-lock_file.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-overflowuid.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-pidns.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-pipe_maxfd.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-print_quoted_string.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-print_time.Po@am__quote@ # am--include-marker
+@@ -10651,6 +10655,20 @@
+ @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-overflowuid.obj `if test -f 'overflowuid.c'; then $(CYGPATH_W) 'overflowuid.c'; else $(CYGPATH_W) '$(srcdir)/overflowuid.c'; fi`
+ 
++libtests_a-pidns.o: pidns.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-pidns.o -MD -MP -MF $(DEPDIR)/libtests_a-pidns.Tpo -c -o libtests_a-pidns.o `test -f 'pidns.c' || echo '$(srcdir)/'`pidns.c
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-pidns.Tpo $(DEPDIR)/libtests_a-pidns.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pidns.c' object='libtests_a-pidns.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-pidns.o `test -f 'pidns.c' || echo '$(srcdir)/'`pidns.c
++
++libtests_a-pidns.obj: pidns.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-pidns.obj -MD -MP -MF $(DEPDIR)/libtests_a-pidns.Tpo -c -o libtests_a-pidns.obj `if test -f 'pidns.c'; then $(CYGPATH_W) 'pidns.c'; else $(CYGPATH_W) '$(srcdir)/pidns.c'; fi`
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-pidns.Tpo $(DEPDIR)/libtests_a-pidns.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='pidns.c' object='libtests_a-pidns.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-pidns.obj `if test -f 'pidns.c'; then $(CYGPATH_W) 'pidns.c'; else $(CYGPATH_W) '$(srcdir)/pidns.c'; fi`
++
+ libtests_a-pipe_maxfd.o: pipe_maxfd.c
+ @am__fastdepCC_TRUE@	$(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__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-pipe_maxfd.Tpo $(DEPDIR)/libtests_a-pipe_maxfd.Po
+@@ -11748,6 +11766,7 @@
+ 	-rm -f ./$(DEPDIR)/libtests_a-libsocketcall.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-lock_file.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-overflowuid.Po
++	-rm -f ./$(DEPDIR)/libtests_a-pidns.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-pipe_maxfd.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-print_quoted_string.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-print_time.Po
+@@ -12605,6 +12624,7 @@
+ 	-rm -f ./$(DEPDIR)/libtests_a-libsocketcall.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-lock_file.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-overflowuid.Po
++	-rm -f ./$(DEPDIR)/libtests_a-pidns.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-pipe_maxfd.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-print_quoted_string.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-print_time.Po
diff --git a/SOURCES/0138-Add-tests-for-PID-namespace-translation.patch b/SOURCES/0138-Add-tests-for-PID-namespace-translation.patch
new file mode 100644
index 0000000..45ed9b0
--- /dev/null
+++ b/SOURCES/0138-Add-tests-for-PID-namespace-translation.patch
@@ -0,0 +1,20054 @@
+From 83e40ec53c3d32ee605930127fa376b1d257c934 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=81kos=20Uzonyi?= <uzonyi.akos@gmail.com>
+Date: Sat, 11 Jul 2020 17:29:58 +0200
+Subject: [PATCH 138/138] Add tests for PID namespace translation
+
+* Makefile.am (CODE_COVERAGE_IGNORE_PATTERN): Add test directories.
+* tests/.gitignore: Add new test executables.
+* tests/Makefile.am (check_PROGRAMS): Add new test executables.
+(DECODER_TESTS) Add new test files.
+(libtests_a_SOURCES): Add trie_for_tests.c, xmalloc_for_tests.c.
+* tests/gen_tests.in: Add new tests.
+* tests/trie_test.c: New file.
+* tests/trie_for_tests.c: New file.
+* tests/xmalloc_for_tests.c: New file.
+* tests/pidns-cache.c: New file.
+* tests/pidns-cache.test: New file.
+* tests/fcntl--pidns-translation.c: New file.
+* tests/fcntl64--pidns-translation.c: New file.
+* tests/fork--pidns-translation.awk: New file.
+* tests/fork--pidns-translation.c: New file.
+* tests/fork--pidns-translation.test: New file.
+* tests/getpgrp--pidns-translation.c: New file.
+* tests/getpid--pidns-translation.c: New file.
+* tests/getsid--pidns-translation.c: New file.
+* tests/gettid--pidns-translation.c: New file.
+* tests/gettid--pidns-translation.test: New file.
+* tests/ioctl_block--pidns-translation.c: New file.
+* tests/ioctl_block--pidns-translation.test: New file.
+* tests/ioprio--pidns-translation.c: New file.
+* tests/kill--pidns-translation.c: New file.
+* tests/migrate_pages--pidns-translation.c: New file.
+* tests/move_pages--pidns-translation.c: New file.
+* tests/net-sockaddr--pidns-translation.c: New file.
+* tests/netlink_audit--pidns-translation.c: New file.
+* tests/netlink_audit--pidns-translation.test: New file.
+* tests/pidfd_open--pidns-translation.c: New file.
+* tests/pidfd_send_signal--pidns-translation.c: New file.
+* tests/prlimit64--pidns-translation.c: New file.
+* tests/process_vm_readv--pidns-translation.c: New file.
+* tests/process_vm_writev--pidns-translation.c: New file.
+* tests/rt_sigqueueinfo--pidns-translation.c: New file.
+* tests/rt_tgsigqueueinfo--pidns-translation.c: New file.
+* tests/sched_xetaffinity--pidns-translation.c: New file.
+* tests/sched_xetattr--pidns-translation.c: New file.
+* tests/sched_xetparam--pidns-translation.c: New file.
+* tests/sched_xetscheduler--pidns-translation.c: New file.
+* tests/signal_receive--pidns-translation.c: New file.
+* tests/so_peercred--pidns-translation.c: New file.
+* tests/tkill--pidns-translation.c: New file.
+* tests/tgkill--pidns-translation.c: New file.
+* tests/xet_robust_list--pidns-translation.c: New file.
+* tests/xetpgid--pidns-translation.c: New file.
+* tests/xetpriority--pidns-translation.c: New file.
+* tests/fcntl-common.c: Print PID translation string after PIDs.
+* tests/fcntl.c: Likewise.
+* tests/fcntl64.c: Likewise.
+* tests/getpgrp.c: Likewise.
+* tests/getpid.c: Likewise.
+* tests/getsid.c: Likewise.
+* tests/gettid.c: Likewise.
+* tests/ioctl_block.c: Likewise.
+* tests/ioprio.c: Likewise.
+* tests/kcmp.c: Likewise.
+* tests/kill.c: Likewise.
+* tests/migrate_pages.c: Likewise.
+* tests/move_pages.c: Likewise.
+* tests/net-sockaddr.c: Likewise.
+* tests/netlink_audit.c: Likewise.
+* tests/pidfd_open.c: Likewise.
+* tests/pidfd_send_signal.c: Likewise.
+* tests/prlimit64.c: Likewise.
+* tests/process_vm_readv_writev.c: Likewise.
+* tests/rt_sigqueueinfo.c: Likewise.
+* tests/rt_tgsigqueueinfo.c: Likewise.
+* tests/sched_xetaffinity.c: Likewise.
+* tests/sched_xetattr.c: Likewise.
+* tests/sched_xetparam.c: Likewise.
+* tests/sched_xetscheduler.c: Likewise.
+* tests/signal_receive.c: Likewise.
+* tests/so_peercred.c: Likewise.
+* tests/tgkill.c: Likewise.
+* tests/tkill.c: Likewise.
+* tests/xet_robust_list.c: Likewise.
+* tests/xetpgid.c: Likewise.
+* tests/xetpriority.c: Likewise.
+---
+ Makefile.am                                   |   2 +-
+ tests/.gitignore                              |  35 ++++++++
+ tests/Makefile.am                             |  47 ++++++++++
+ tests/fcntl--pidns-translation.c              |   2 +
+ tests/fcntl-common.c                          |  78 ++++++++++++-----
+ tests/fcntl.c                                 |   1 +
+ tests/fcntl64--pidns-translation.c            |   2 +
+ tests/fcntl64.c                               |   3 +
+ tests/fork--pidns-translation.awk             |  15 ++++
+ tests/fork--pidns-translation.c               |  78 +++++++++++++++++
+ tests/fork--pidns-translation.test            |  14 +++
+ tests/gen_tests.in                            |  32 ++++++-
+ tests/getpgrp--pidns-translation.c            |   2 +
+ tests/getpgrp.c                               |   8 +-
+ tests/getpid--pidns-translation.c             |   2 +
+ tests/getpid.c                                |   8 +-
+ tests/getsid--pidns-translation.c             |   2 +
+ tests/getsid.c                                |   9 +-
+ tests/gettid--pidns-translation.c             |   2 +
+ tests/gettid--pidns-translation.test          |  18 ++++
+ tests/gettid.c                                |   8 +-
+ tests/ioctl_block--pidns-translation.c        |   2 +
+ tests/ioctl_block--pidns-translation.test     |  22 +++++
+ tests/ioctl_block.c                           |  24 ++++-
+ tests/ioprio--pidns-translation.c             |   2 +
+ tests/ioprio.c                                |  54 ++++++++----
+ tests/kcmp-y--pidns-translation.c             |   2 +
+ tests/kcmp.c                                  |  11 ++-
+ tests/kill--pidns-translation.c               |   2 +
+ tests/kill.c                                  |  12 ++-
+ tests/migrate_pages--pidns-translation.c      |   2 +
+ tests/migrate_pages.c                         |  17 +++-
+ tests/move_pages--pidns-translation.c         |   2 +
+ tests/move_pages.c                            |  51 +++++++----
+ tests/net-sockaddr--pidns-translation.c       |   2 +
+ tests/net-sockaddr.c                          |  60 ++++++++++++-
+ tests/netlink_audit--pidns-translation.c      |   2 +
+ tests/netlink_audit--pidns-translation.test   |  13 +++
+ tests/netlink_audit.c                         |  11 ++-
+ tests/pidfd_open--pidns-translation.c         |   2 +
+ tests/pidfd_open.c                            |  21 +++--
+ tests/pidfd_send_signal--pidns-translation.c  |   2 +
+ tests/pidfd_send_signal.c                     |  13 ++-
+ tests/pidns-cache.c                           |  62 +++++++++++++
+ tests/pidns-cache.test                        |  15 ++++
+ tests/prlimit64--pidns-translation.c          |   2 +
+ tests/prlimit64.c                             |  17 +++-
+ tests/process_vm_readv--pidns-translation.c   |   2 +
+ tests/process_vm_readv_writev.c               |  27 +++---
+ tests/process_vm_writev--pidns-translation.c  |   2 +
+ tests/rt_sigqueueinfo--pidns-translation.c    |   2 +
+ tests/rt_sigqueueinfo.c                       |  15 +++-
+ tests/rt_tgsigqueueinfo--pidns-translation.c  |   2 +
+ tests/rt_tgsigqueueinfo.c                     |  26 ++++--
+ tests/sched_xetaffinity--pidns-translation.c  |   2 +
+ tests/sched_xetaffinity.c                     |  31 ++++---
+ tests/sched_xetattr--pidns-translation.c      |   2 +
+ tests/sched_xetattr.c                         |  47 +++++++++-
+ tests/sched_xetparam--pidns-translation.c     |   2 +
+ tests/sched_xetparam.c                        |  20 +++--
+ tests/sched_xetscheduler--pidns-translation.c |   2 +
+ tests/sched_xetscheduler.c                    |  44 +++++++---
+ tests/signal_receive--pidns-translation.c     |   2 +
+ tests/signal_receive.c                        |  22 +++--
+ tests/so_peercred--pidns-translation.c        |   2 +
+ tests/so_peercred.c                           |  22 +++++
+ tests/tgkill--pidns-translation.c             |   2 +
+ tests/tgkill.c                                |  51 +++++++----
+ tests/tkill--pidns-translation.c              |   2 +
+ tests/tkill.c                                 |  19 ++--
+ tests/trie_for_tests.c                        |   1 +
+ tests/trie_test.c                             | 121 ++++++++++++++++++++++++++
+ tests/xet_robust_list--pidns-translation.c    |   2 +
+ tests/xet_robust_list.c                       |  18 +++-
+ tests/xetpgid--pidns-translation.c            |   2 +
+ tests/xetpgid.c                               |  21 +++--
+ tests/xetpriority--pidns-translation.c        |   2 +
+ tests/xetpriority.c                           |  20 ++++-
+ tests/xmalloc_for_tests.c                     |   2 +
+ 79 files changed, 1143 insertions(+), 187 deletions(-)
+ create mode 100644 tests/fcntl--pidns-translation.c
+ create mode 100644 tests/fcntl64--pidns-translation.c
+ create mode 100644 tests/fork--pidns-translation.awk
+ create mode 100644 tests/fork--pidns-translation.c
+ create mode 100755 tests/fork--pidns-translation.test
+ create mode 100644 tests/getpgrp--pidns-translation.c
+ create mode 100644 tests/getpid--pidns-translation.c
+ create mode 100644 tests/getsid--pidns-translation.c
+ create mode 100644 tests/gettid--pidns-translation.c
+ create mode 100755 tests/gettid--pidns-translation.test
+ create mode 100644 tests/ioctl_block--pidns-translation.c
+ create mode 100755 tests/ioctl_block--pidns-translation.test
+ create mode 100644 tests/ioprio--pidns-translation.c
+ create mode 100644 tests/kcmp-y--pidns-translation.c
+ create mode 100644 tests/kill--pidns-translation.c
+ create mode 100644 tests/migrate_pages--pidns-translation.c
+ create mode 100644 tests/move_pages--pidns-translation.c
+ create mode 100644 tests/net-sockaddr--pidns-translation.c
+ create mode 100644 tests/netlink_audit--pidns-translation.c
+ create mode 100755 tests/netlink_audit--pidns-translation.test
+ create mode 100644 tests/pidfd_open--pidns-translation.c
+ create mode 100644 tests/pidfd_send_signal--pidns-translation.c
+ create mode 100644 tests/pidns-cache.c
+ create mode 100755 tests/pidns-cache.test
+ create mode 100644 tests/prlimit64--pidns-translation.c
+ create mode 100644 tests/process_vm_readv--pidns-translation.c
+ create mode 100644 tests/process_vm_writev--pidns-translation.c
+ create mode 100644 tests/rt_sigqueueinfo--pidns-translation.c
+ create mode 100644 tests/rt_tgsigqueueinfo--pidns-translation.c
+ create mode 100644 tests/sched_xetaffinity--pidns-translation.c
+ create mode 100644 tests/sched_xetattr--pidns-translation.c
+ create mode 100644 tests/sched_xetparam--pidns-translation.c
+ create mode 100644 tests/sched_xetscheduler--pidns-translation.c
+ create mode 100644 tests/signal_receive--pidns-translation.c
+ create mode 100644 tests/so_peercred--pidns-translation.c
+ create mode 100644 tests/tgkill--pidns-translation.c
+ create mode 100644 tests/tkill--pidns-translation.c
+ create mode 100644 tests/trie_for_tests.c
+ create mode 100644 tests/trie_test.c
+ create mode 100644 tests/xet_robust_list--pidns-translation.c
+ create mode 100644 tests/xetpgid--pidns-translation.c
+ create mode 100644 tests/xetpriority--pidns-translation.c
+ create mode 100644 tests/xmalloc_for_tests.c
+
+Index: strace-5.7/Makefile.am
+===================================================================
+--- strace-5.7.orig/Makefile.am	2020-09-09 19:52:30.590668679 +0200
++++ strace-5.7/Makefile.am	2020-09-09 19:52:38.872673616 +0200
+@@ -408,7 +408,7 @@
+ 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/*'
++CODE_COVERAGE_IGNORE_PATTERN = '/usr/include/*' '*/tests/*' '*/tests-m32/*' '*/tests-mx32/*'
+ strace_CPPFLAGS += $(CODE_COVERAGE_CPPFLAGS)
+ strace_CFLAGS += $(CODE_COVERAGE_CFLAGS)
+ strace_LDADD += $(CODE_COVERAGE_LIBS)
+Index: strace-5.7/tests/Makefile.am
+===================================================================
+--- strace-5.7.orig/tests/Makefile.am	2020-09-09 19:52:30.590668679 +0200
++++ strace-5.7/tests/Makefile.am	2020-09-09 19:52:38.872673616 +0200
+@@ -66,6 +66,7 @@
+ 	test_ucopy.h \
+ 	tests.h \
+ 	tprintf.c \
++	xmalloc_for_tests.c \
+ 	# end of libtests_a_SOURCES
+ libtests_a_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+ check_LIBRARIES = libtests.a
+@@ -109,17 +110,25 @@
+ 	delay \
+ 	execve-v \
+ 	execveat-v \
++	fcntl--pidns-translation \
++	fcntl64--pidns-translation \
+ 	filter_seccomp-flag \
+ 	filter_seccomp-perf \
+ 	filter-unavailable \
+ 	fork-f \
++	fork--pidns-translation \
+ 	fsync-y \
+ 	get_process_reaper \
++	getpgrp--pidns-translation	\
+ 	getpid	\
++	getpid--pidns-translation	\
+ 	getppid	\
++	getsid--pidns-translation \
+ 	gettid \
++	gettid--pidns-translation \
+ 	inject-nf \
+ 	int_0x80 \
++	ioctl_block--pidns-translation \
+ 	ioctl_dm-v \
+ 	ioctl_evdev-success \
+ 	ioctl_evdev-success-Xabbrev \
+@@ -150,18 +159,25 @@
+ 	ioctl_v4l2-success-v-Xabbrev \
+ 	ioctl_v4l2-success-v-Xraw \
+ 	ioctl_v4l2-success-v-Xverbose \
++	ioprio--pidns-translation \
+ 	is_linux_mips_n64 \
++	kcmp-y--pidns-translation \
+ 	kill_child \
++	kill--pidns-translation \
+ 	ksysent \
+ 	list_sigaction_signum \
+ 	localtime \
+ 	looping_threads \
++	migrate_pages--pidns-translation \
+ 	mmsg-silent \
+ 	mmsg_name-v \
++	move_pages--pidns-translation \
+ 	msg_control-v \
+ 	net-accept-connect \
++	net-sockaddr--pidns-translation \
+ 	net-tpacket_stats-success \
+ 	nlattr_ifla_xdp-y \
++	netlink_audit--pidns-translation \
+ 	netlink_inet_diag \
+ 	netlink_netlink_diag \
+ 	netlink_unix_diag \
+@@ -173,14 +189,20 @@
+ 	pc \
+ 	perf_event_open_nonverbose \
+ 	perf_event_open_unabbrev \
++	pidfd_open--pidns-translation \
++	pidfd_send_signal--pidns-translation \
++	pidns-cache \
+ 	poll-P \
+ 	ppoll-P \
+ 	ppoll-v \
++	prlimit64--pidns-translation \
+ 	prctl-seccomp-filter-v \
+ 	prctl-seccomp-strict \
+ 	prctl-spec-inject \
+ 	print_maxfd \
+ 	print_ppid_tracerpid \
++	process_vm_readv--pidns-translation \
++	process_vm_writev--pidns-translation \
+ 	qual_fault \
+ 	qual_inject-error-signal \
+ 	qual_inject-retval \
+@@ -194,7 +216,13 @@
+ 	quotactl-xfs-v \
+ 	redirect-fds \
+ 	restart_syscall \
++	rt_sigqueueinfo--pidns-translation \
++	rt_tgsigqueueinfo--pidns-translation \
+ 	run_expect_termsig \
++	sched_xetaffinity--pidns-translation \
++	sched_xetattr--pidns-translation \
++	sched_xetparam--pidns-translation \
++	sched_xetscheduler--pidns-translation \
+ 	scm_rights \
+ 	seccomp-filter-v \
+ 	seccomp-strict \
+@@ -204,25 +232,33 @@
+ 	set_sigign \
+ 	setpgrp-exec \
+ 	signal_receive \
++	signal_receive--pidns-translation \
+ 	sleep \
+ 	stack-fcall \
+ 	stack-fcall-attach \
+ 	stack-fcall-mangled \
+ 	status-none-threads \
+ 	status-unfinished-threads \
++	so_peercred--pidns-translation \
+ 	syslog-success \
++	tgkill--pidns-translation \
+ 	threads-execve \
+ 	threads-execve--quiet-thread-execve \
+ 	threads-execve-q \
+ 	threads-execve-qq \
+ 	threads-execve-qqq \
++	tkill--pidns-translation \
+ 	tracer_ppid_pgid_sid \
++	trie_test \
+ 	unblock_reset_raise \
+ 	unix-pair-send-recv \
+ 	unix-pair-sendto-recvfrom \
+ 	vfork-f \
+ 	wait4-v \
+ 	waitid-v \
++	xetpgid--pidns-translation \
++	xetpriority--pidns-translation \
++	xet_robust_list--pidns-translation \
+ 	zeroargc \
+ 	# end of check_PROGRAMS
+ 
+@@ -272,6 +308,11 @@
+ 	stack-fcall-mangled-0.c stack-fcall-mangled-1.c \
+ 	stack-fcall-mangled-2.c stack-fcall-mangled-3.c
+ 
++trie_test_SOURCES = trie_test.c trie_for_tests.c
++trie_test_CPPFLAGS = $(AM_CPPFLAGS) $(CODE_COVERAGE_CPPFLAGS)
++trie_test_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS)
++trie_test_LDADD = $(LDADD) $(CODE_COVERAGE_LIBS)
++
+ include gen_tests.am
+ 
+ if ENABLE_STACKTRACE
+@@ -308,6 +349,7 @@
+ 	int_0x80.test \
+ 	inotify_init-y.test \
+ 	ioctl.test \
++	ioctl_block--pidns-translation.test \
+ 	ioctl_evdev-success.test \
+ 	ipc_msgbuf.test \
+ 	kern_features-fault.test \
+@@ -379,15 +421,19 @@
+ 	filtering_fd-syntax.test \
+ 	filtering_syscall-syntax.test \
+ 	first_exec_failure.test \
++	fork--pidns-translation.test \
+ 	get_regs.test \
++	gettid--pidns-translation.test \
+ 	inject-nf.test \
+ 	interactive_block.test \
+ 	kill_child.test \
+ 	localtime.test \
+ 	looping_threads.test \
++	netlink_audit--pidns-translation.test \
+ 	opipe.test \
+ 	options-syntax.test \
+ 	pc.test \
++	pidns-cache.test \
+ 	printpath-umovestr-legacy.test \
+ 	printstrn-umoven-legacy.test \
+ 	qual_fault-syntax.test \
+@@ -465,6 +511,7 @@
+ 	filter_seccomp.in \
+ 	filter_seccomp.sh \
+ 	filter-unavailable.expected \
++	fork--pidns-translation.awk \
+ 	fstatat.c \
+ 	fstatx.c \
+ 	gen_pure_executables.sh \
+Index: strace-5.7/tests/fcntl--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/fcntl--pidns-translation.c	2020-09-09 19:52:38.872673616 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "fcntl.c"
+Index: strace-5.7/tests/fcntl-common.c
+===================================================================
+--- strace-5.7.orig/tests/fcntl-common.c	2020-09-09 19:52:30.591668680 +0200
++++ strace-5.7/tests/fcntl-common.c	2020-09-09 19:52:38.873673616 +0200
+@@ -13,6 +13,8 @@
+ #include <unistd.h>
+ #include <assert.h>
+ #include "flock.h"
++#include "pidns.h"
++#include "scno.h"
+ 
+ #define FILE_LEN 4096
+ 
+@@ -48,12 +50,14 @@
+ 	fl->l_len = (TYPEOF_FLOCK_OFF_T) 0xdefaced2cafef00dULL;
+ 
+ 	invoke_test_syscall(0, cmd, fl);
++	pidns_print_leader();
+ 	printf("%s(0, %s, {l_type=F_RDLCK, l_whence=SEEK_SET"
+ 	       ", l_start=%jd, l_len=%jd}) = %s\n", TEST_SYSCALL_STR, name,
+ 	       (intmax_t) fl->l_start, (intmax_t) fl->l_len, errstr);
+ 
+ 	void *const bad_addr = (void *) fl + 1;
+ 	invoke_test_syscall(0, cmd, bad_addr);
++	pidns_print_leader();
+ 	printf("%s(0, %s, %p) = %s\n",
+ 	       TEST_SYSCALL_STR, name, bad_addr, errstr);
+ }
+@@ -72,12 +76,14 @@
+ 	fl->l_len = (TYPEOF_FLOCK_OFF_T) 0xdefaced2cafef00dULL;
+ 
+ 	invoke_test_syscall(0, cmd, fl);
++	pidns_print_leader();
+ 	printf("%s(0, %s, {l_type=F_RDLCK, l_whence=SEEK_SET"
+ 	       ", l_start=%jd, l_len=%jd}) = %s\n", TEST_SYSCALL_STR, name,
+ 	       (intmax_t) fl->l_start, (intmax_t) fl->l_len, errstr);
+ 
+ 	void *const bad_addr = (void *) fl + 1;
+ 	invoke_test_syscall(0, cmd, bad_addr);
++	pidns_print_leader();
+ 	printf("%s(0, %s, %p) = %s\n",
+ 	       TEST_SYSCALL_STR, name, bad_addr, errstr);
+ }
+@@ -94,6 +100,7 @@
+ 	fl->l_len = FILE_LEN;
+ 
+ 	long rc = invoke_test_syscall(0, F_SETLK, fl);
++	pidns_print_leader();
+ 	printf("%s(0, F_SETLK, {l_type=F_RDLCK, l_whence=SEEK_SET"
+ 	       ", l_start=0, l_len=%d}) = %s\n",
+ 	       TEST_SYSCALL_STR, FILE_LEN, errstr);
+@@ -101,11 +108,13 @@
+ 		return;
+ 
+ 	invoke_test_syscall(0, F_GETLK, fl);
++	pidns_print_leader();
+ 	printf("%s(0, F_GETLK, {l_type=F_UNLCK, l_whence=SEEK_SET"
+ 	       ", l_start=0, l_len=%d, l_pid=0}) = 0\n",
+ 	       TEST_SYSCALL_STR, FILE_LEN);
+ 
+ 	invoke_test_syscall(0, F_SETLKW, fl);
++	pidns_print_leader();
+ 	printf("%s(0, F_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET"
+ 	       ", l_start=0, l_len=%d}) = 0\n",
+ 	       TEST_SYSCALL_STR, FILE_LEN);
+@@ -124,6 +133,7 @@
+ 	fl->l_len = FILE_LEN;
+ 
+ 	long rc = invoke_test_syscall(0, F_OFD_SETLK, fl);
++	pidns_print_leader();
+ 	printf("%s(0, F_OFD_SETLK, {l_type=F_RDLCK, l_whence=SEEK_SET"
+ 	       ", l_start=0, l_len=%d}) = %s\n",
+ 	       TEST_SYSCALL_STR, FILE_LEN, errstr);
+@@ -131,11 +141,13 @@
+ 		return;
+ 
+ 	invoke_test_syscall(0, F_OFD_GETLK, fl);
++	pidns_print_leader();
+ 	printf("%s(0, F_OFD_GETLK, {l_type=F_UNLCK, l_whence=SEEK_SET"
+ 	       ", l_start=0, l_len=%d, l_pid=0}) = 0\n",
+ 	       TEST_SYSCALL_STR, FILE_LEN);
+ 
+ 	invoke_test_syscall(0, F_OFD_SETLKW, fl);
++	pidns_print_leader();
+ 	printf("%s(0, F_OFD_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET"
+ 	       ", l_start=0, l_len=%d}) = 0\n",
+ 	       TEST_SYSCALL_STR, FILE_LEN);
+@@ -167,18 +179,21 @@
+ static long
+ test_f_owner_ex_type_pid(const int cmd, const char *const cmd_name,
+ 			 const int type, const char *const type_name,
+-			 pid_t pid)
++			 enum pid_type pid_type, pid_t pid)
+ {
+ 	TAIL_ALLOC_OBJECT_CONST_PTR(struct_kernel_f_owner_ex, fo);
+ 
+ 	fo->type = type;
+ 	fo->pid = pid;
+ 	long rc = invoke_test_syscall(0, cmd, fo);
+-	printf("%s(0, %s, {type=%s, pid=%d}) = %s\n",
+-	       TEST_SYSCALL_STR, cmd_name, type_name, fo->pid, errstr);
++	pidns_print_leader();
++	printf("%s(0, %s, {type=%s, pid=%d%s}) = %s\n",
++	       TEST_SYSCALL_STR, cmd_name, type_name,
++	       fo->pid, pidns_pid2str(pid_type), errstr);
+ 
+ 	void *bad_addr = (void *) fo + 1;
+ 	invoke_test_syscall(0, cmd, bad_addr);
++	pidns_print_leader();
+ 	printf("%s(0, %s, %p) = %s\n",
+ 	       TEST_SYSCALL_STR, cmd_name, bad_addr, errstr);
+ 
+@@ -187,35 +202,35 @@
+ 
+ static void
+ test_f_owner_ex_umove_or_printaddr(const int type, const char *const type_name,
+-				   pid_t pid)
++				   enum pid_type pid_type, pid_t pid)
+ {
+ 	long rc = test_f_owner_ex_type_pid(ARG_STR(F_SETOWN_EX),
+-					   type, type_name, pid);
++					   type, type_name, pid_type, pid);
+ 	if (!rc)
+ 		test_f_owner_ex_type_pid(ARG_STR(F_GETOWN_EX),
+-					 type, type_name, pid);
++					 type, type_name, pid_type, pid);
+ }
+ 
+ static void
+ test_f_owner_ex(void)
+ {
+-	static const struct {
++	struct {
+ 		int type;
+ 		const char *type_name;
+-		pid_t pid[2];
++		enum pid_type pid_type;
++		pid_t pid;
+ 	} a[] = {
+-		{ ARG_STR(F_OWNER_TID), { 1234567890, 20 } },
+-		{ ARG_STR(F_OWNER_PID), { 1298126790, 30 } },
+-		{ ARG_STR(F_OWNER_PGRP), { 1294567890, 40 } }
++		{ ARG_STR(F_OWNER_TID), PT_NONE, 1234567890 },
++		{ ARG_STR(F_OWNER_PID), PT_NONE, 1234567890 },
++		{ ARG_STR(F_OWNER_PGRP), PT_NONE, 1234567890 },
++		{ ARG_STR(F_OWNER_TID), PT_TID, syscall(__NR_gettid) },
++		{ ARG_STR(F_OWNER_PID), PT_TGID, getpid() },
++		{ ARG_STR(F_OWNER_PGRP), PT_PGID, getpgid(0) },
+ 	};
+ 
+-	for (unsigned int i = 0; i < ARRAY_SIZE(a); i++) {
+-		for (unsigned int j = 0; j < ARRAY_SIZE(a[0].pid); j++) {
+-			test_f_owner_ex_umove_or_printaddr(a[i].type,
+-							   a[i].type_name,
+-							   a[i].pid[j]);
+-		}
+-	}
++	for (unsigned int i = 0; i < ARRAY_SIZE(a); i++)
++		test_f_owner_ex_umove_or_printaddr(a[i].type, a[i].type_name,
++			a[i].pid_type, a[i].pid);
+ }
+ #endif /* TEST_F_OWNER_EX */
+ 
+@@ -229,6 +244,23 @@
+ };
+ 
+ static void
++test_xetown(void)
++{
++	const int pid = getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
++
++	invoke_test_syscall(0, F_SETOWN, (void *) (intptr_t) pid);
++	pidns_print_leader();
++	printf("%s(0, F_SETOWN, %d%s) = %s\n",
++		TEST_SYSCALL_STR, pid, pid_str, errstr);
++
++	invoke_test_syscall(0, F_GETOWN, NULL);
++	pidns_print_leader();
++	printf("%s(0, F_GETOWN) = %d%s\n",
++		TEST_SYSCALL_STR, pid, pid_str);
++}
++
++static void
+ print_retval_flags(const struct fcntl_cmd_check *check, long rc)
+ {
+ 	if (check->print_flags) {
+@@ -243,12 +275,14 @@
+ test_other_set_cmd(const struct fcntl_cmd_check *check)
+ {
+ 	invoke_test_syscall(check->fd, check->cmd, (void *) check->arg);
++	pidns_print_leader();
+ 	printf("%s(%d, %s, %s) = %s\n",
+ 	       TEST_SYSCALL_STR, check->fd,
+ 	       check->cmd_str, check->arg_str, errstr);
+ 
+ 	/* bad file fd */
+ 	invoke_test_syscall(-1, check->cmd, (void *) check->arg);
++	pidns_print_leader();
+ 	printf("%s(-1, %s, %s) = %s\n",
+ 	       TEST_SYSCALL_STR, check->cmd_str,
+ 	       check->arg_str, errstr);
+@@ -258,12 +292,14 @@
+ test_other_get_cmd(const struct fcntl_cmd_check *check)
+ {
+ 	long rc = invoke_test_syscall(check->fd, check->cmd, NULL);
++	pidns_print_leader();
+ 	printf("%s(%d, %s) = ",
+ 	       TEST_SYSCALL_STR, check->fd, check->cmd_str);
+ 	print_retval_flags(check, rc);
+ 
+ 	/* bad file fd */
+ 	invoke_test_syscall(-1, check->cmd, NULL);
++	pidns_print_leader();
+ 	printf("%s(-1, %s) = %s\n",
+ 	       TEST_SYSCALL_STR, check->cmd_str, errstr);
+ }
+@@ -315,7 +351,6 @@
+ {
+ 	static const struct fcntl_cmd_check set_checks[] = {
+ 		{ 0, ARG_STR(F_SETFD), ARG_STR(FD_CLOEXEC) },
+-		{ 0, ARG_STR(F_SETOWN), ARG_STR(20) },
+ #ifdef F_SETPIPE_SZ
+ 		{ 0, ARG_STR(F_SETPIPE_SZ), ARG_STR(4097) },
+ #endif
+@@ -336,7 +371,6 @@
+ 	static const struct fcntl_cmd_check get_checks[] = {
+ 		{ 0, ARG_STR(F_GETFD), .print_flags = print_flags_getfd },
+ 		{ 1, ARG_STR(F_GETFD), .print_flags = print_flags_getfd },
+-		{ 0, ARG_STR(F_GETOWN) },
+ #ifdef F_GETPIPE_SZ
+ 		{ 0, ARG_STR(F_GETPIPE_SZ) },
+ #endif
+@@ -360,6 +394,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	create_sample();
+ 	test_flock();
+ 	test_flock64();
+@@ -367,7 +403,9 @@
+ 	test_f_owner_ex();
+ #endif
+ 	test_fcntl_others();
++	test_xetown();
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests/fcntl.c
+===================================================================
+--- strace-5.7.orig/tests/fcntl.c	2020-09-09 19:52:30.591668680 +0200
++++ strace-5.7/tests/fcntl.c	2020-09-09 19:52:38.873673616 +0200
+@@ -24,6 +24,7 @@
+ 		.l_len = 0xdefaced2cafef00dULL
+ 	};
+ 	invoke_test_syscall(0, cmd, &fl);
++	pidns_print_leader();
+ 	printf("%s(0, %s, %p) = %s\n",
+ 	       TEST_SYSCALL_STR, name, &fl, errstr);
+ }
+Index: strace-5.7/tests/fcntl64--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/fcntl64--pidns-translation.c	2020-09-09 19:52:38.873673616 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "fcntl64.c"
+Index: strace-5.7/tests/fcntl64.c
+===================================================================
+--- strace-5.7.orig/tests/fcntl64.c	2020-09-09 19:52:30.592668681 +0200
++++ strace-5.7/tests/fcntl64.c	2020-09-09 19:52:38.873673616 +0200
+@@ -27,6 +27,7 @@
+ 	fl->l_len = FILE_LEN;
+ 
+ 	long rc = invoke_test_syscall(0, F_SETLK64, fl);
++	pidns_print_leader();
+ 	printf("%s(0, F_SETLK64, {l_type=F_RDLCK, l_whence=SEEK_SET"
+ 	       ", l_start=0, l_len=%d}) = %s\n",
+ 	       TEST_SYSCALL_STR, FILE_LEN, errstr);
+@@ -35,11 +36,13 @@
+ 		return;
+ 
+ 	invoke_test_syscall(0, F_GETLK64, fl);
++	pidns_print_leader();
+ 	printf("%s(0, F_GETLK64, {l_type=F_UNLCK, l_whence=SEEK_SET"
+ 	       ", l_start=0, l_len=%d, l_pid=0}) = 0\n",
+ 	       TEST_SYSCALL_STR, FILE_LEN);
+ 
+ 	invoke_test_syscall(0, F_SETLKW64, fl);
++	pidns_print_leader();
+ 	printf("%s(0, F_SETLKW64, {l_type=F_UNLCK, l_whence=SEEK_SET"
+ 	       ", l_start=0, l_len=%d}) = 0\n",
+ 	       TEST_SYSCALL_STR, FILE_LEN);
+Index: strace-5.7/tests/fork--pidns-translation.awk
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/fork--pidns-translation.awk	2020-09-09 19:52:38.873673616 +0200
+@@ -0,0 +1,15 @@
++/fork/ {
++        match($0, "([0-9]+) in strace\x27s PID NS", a);
++        if (a[1])
++                fork_pid = a[1]
++}
++
++/exited with 0/ {
++        if (!exit_pid)
++                exit_pid = $1
++}
++
++END {
++        if (!fork_pid || !exit_pid || fork_pid != exit_pid)
++                exit 1
++}
+Index: strace-5.7/tests/fork--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/fork--pidns-translation.c	2020-09-09 19:52:38.874673617 +0200
+@@ -0,0 +1,78 @@
++/*
++ * Test PID namespace translation
++ *
++ * Copyright (c) 2020 Ákos Uzonyi <uzonyi.akos@gmail.com>
++ * All rights reserved.
++ *
++ * SPDX-License-Identifier: LGPL-2.1-or-later
++ */
++
++#include "tests.h"
++#include "scno.h"
++#include "pidns.h"
++
++#ifdef __NR_fork
++
++#include <errno.h>
++#include <limits.h>
++#include <sched.h>
++#include <signal.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <sys/wait.h>
++#include <unistd.h>
++#include <linux/sched.h>
++#include "nsfs.h"
++
++#ifndef CLONE_NEWUSER
++# define CLONE_NEWUSER 0x10000000
++#endif
++
++#ifndef CLONE_NEWPID
++# define CLONE_NEWPID 0x20000000
++#endif
++
++static int
++fork_chain(int depth)
++{
++	if (!depth)
++		return 0;
++
++	int pid = syscall(__NR_fork);
++	if (pid < 0)
++		return errno;
++
++	if (!pid)
++		_exit(fork_chain(depth - 1));
++
++	int status;
++	if (wait(&status) < 0)
++		return errno;
++
++	if (!WIFEXITED(status))
++		return -1;
++
++	return WEXITSTATUS(status);
++}
++
++int main(void)
++{
++	check_ns_ioctl();
++
++	if (unshare(CLONE_NEWPID | CLONE_NEWUSER) < 0) {
++		if (errno == EPERM)
++			perror_msg_and_skip("unshare");
++
++		perror_msg_and_fail("unshare");
++	}
++
++	errno = fork_chain(2);
++	if (errno)
++		perror("fork_chain");
++}
++
++#else
++
++SKIP_MAIN_UNDEFINED("__NR_fork")
++
++#endif
+Index: strace-5.7/tests/fork--pidns-translation.test
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/fork--pidns-translation.test	2020-09-09 19:52:38.874673617 +0200
+@@ -0,0 +1,14 @@
++#!/bin/sh
++#
++# Check pidns translation of fork's return value.
++#
++# Copyright (c) 2020 The strace developers.
++# All rights reserved.
++#
++# SPDX-License-Identifier: LGPL-2.1-or-later
++
++. "${srcdir=.}/init.sh"
++
++run_prog
++run_strace -a6 --pidns-translation -f -e trace=fork $args
++match_awk
+Index: strace-5.7/tests/gen_tests.in
+===================================================================
+--- strace-5.7.orig/tests/gen_tests.in	2020-09-09 19:52:30.593668681 +0200
++++ strace-5.7/tests/gen_tests.in	2020-09-09 19:52:38.874673617 +0200
+@@ -88,7 +88,9 @@
+ fchown32	-a18
+ fchownat
+ fcntl	-a8
++fcntl--pidns-translation	test_pidns -a8 -e trace=fcntl
+ fcntl64	-a8
++fcntl64--pidns-translation	test_pidns -a8 -e trace=fcntl64
+ fdatasync	-a14
+ file_handle	-e trace=name_to_handle_at,open_by_handle_at
+ file_ioctl	+ioctl.test
+@@ -142,7 +144,9 @@
+ getgroups32	-a19
+ getpeername	-a27
+ getpgrp	-a10
++getpgrp--pidns-translation	test_pidns -e trace=getpgrp -a10
+ getpid	-a9
++getpid--pidns-translation	test_pidns -e trace=getpid -a9
+ getppid	-a10
+ getrandom	-a32 -s3
+ getresgid	-a25
+@@ -152,6 +156,7 @@
+ getrlimit	-a27
+ getrusage	-v
+ getsid	-a10
++getsid--pidns-translation	test_pidns -e trace=getsid -a10
+ getsockname	-a27
+ gettid	-a9
+ getuid-creds	+getuid.test
+@@ -245,6 +250,7 @@
+ ioperm	-a27
+ iopl	-a8
+ ioprio	-a18 -e trace=ioprio_get,ioprio_set
++ioprio--pidns-translation	test_pidns -a18 -e trace=ioprio_get,ioprio_set
+ ioprio-Xabbrev	-a18 -e trace=ioprio_get,ioprio_set -Xabbrev
+ ioprio-Xraw	-a18 -e trace=ioprio_get,ioprio_set -Xraw
+ ioprio-Xverbose	-a18 -e trace=ioprio_get,ioprio_set -Xverbose
+@@ -267,6 +273,7 @@
+ ipc_shm-Xverbose	+ipc.sh -Xverbose -a34
+ kcmp	-a22
+ kcmp-y	-a22 -y -e trace=kcmp
++kcmp-y--pidns-translation	test_pidns -a22 -y -e trace=kcmp
+ kern_features -a16
+ kernel_version	-a16 -v -e trace=bpf
+ kernel_version-Xabbrev	-a16 -Xabbrev -v -e trace=bpf
+@@ -279,6 +286,7 @@
+ keyctl-Xraw	-a13 -s10 -e trace=keyctl -Xraw
+ keyctl-Xverbose	-a41 -s10 -e trace=keyctl -Xverbose
+ kill	-a12 -esignal=none
++kill--pidns-translation	test_pidns -a12 -e trace=kill -esignal=none
+ ksysent	../$NAME
+ lchown	-a30
+ lchown32	-a32
+@@ -300,6 +308,7 @@
+ memfd_create-Xraw	-a30 -Xraw -e trace=memfd_create
+ memfd_create-Xverbose	-Xverbose -e trace=memfd_create
+ migrate_pages	-a33
++migrate_pages--pidns-translation	test_pidns -a33 -e trace=migrate_pages
+ mincore	-a22
+ mkdir	-a20
+ mkdirat	-a28
+@@ -330,6 +339,7 @@
+ move_pages-Xabbrev	-s3 -e trace=move_pages -Xabbrev
+ move_pages-Xraw	-s3 -a36 -e trace=move_pages -Xraw
+ move_pages-Xverbose	-s3 -e trace=move_pages -Xverbose
++move_pages--pidns-translation	test_pidns -s3 -e trace=move_pages
+ mq	-a32 -e trace=mq_getsetattr,mq_open,mq_unlink
+ mq_sendrecv	-a14 -e trace=mq_open,mq_notify,mq_timedsend,mq_timedreceive,mq_unlink
+ mq_sendrecv-read	-eread=0 -a14 -e trace=mq_open,mq_notify,mq_timedsend,mq_timedreceive,mq_unlink
+@@ -349,6 +359,7 @@
+ net-packet_mreq-Xraw	-e trace=setsockopt -Xraw
+ net-packet_mreq-Xverbose	-e trace=setsockopt -Xverbose
+ net-sockaddr	-a24 -e trace=connect
++net-sockaddr--pidns-translation	test_pidns -a24 -e trace=connect
+ net-tpacket_req -e trace=setsockopt
+ net-tpacket_stats -e trace=getsockopt
+ net-yy-inet6	+net-yy-inet.test
+@@ -452,7 +463,9 @@
+ pidfd_open-P	-a17 -P /dev/full -e trace=pidfd_open
+ pidfd_open-y	-a17 -y -e trace=pidfd_open
+ pidfd_open-yy	-a17 -yy -e trace=pidfd_open
++pidfd_open--pidns-translation	test_pidns -a17 -e trace=pidfd_open
+ pidfd_send_signal
++pidfd_send_signal--pidns-translation test_pidns -e trace=pidfd_send_signal
+ pipe2	-a15
+ pkey_alloc	-a17
+ pkey_free	-a13
+@@ -475,8 +488,11 @@
+ printstrn-umoven-peekdata	-e signal=none -e trace=add_key
+ printstrn-umoven-undumpable	-e signal=none -e trace=add_key
+ prlimit64
++prlimit64--pidns-translation     test_pidns -e trace=prlimit64
+ process_vm_readv	-s5 -a37
++process_vm_readv--pidns-translation	test_pidns -s5 -a37 -e trace=process_vm_readv
+ process_vm_writev	-s5 -a38
++process_vm_writev--pidns-translation	test_pidns -s5 -a38 -e trace=process_vm_writev
+ pselect6
+ ptrace	-a23 -e signal=none
+ ptrace_syscall_info	-a35 -e signal=none -e trace=ptrace
+@@ -513,10 +529,12 @@
+ rt_sigpending	-a20
+ rt_sigprocmask
+ rt_sigqueueinfo	-esignal=none
++rt_sigqueueinfo--pidns-translation	test_pidns -esignal=none -e trace=rt_sigqueueinfo
+ rt_sigreturn	-esignal='!USR1'
+ rt_sigsuspend	-a20 -esignal=none
+ rt_sigtimedwait	-a38
+ rt_tgsigqueueinfo	-esignal=none
++rt_tgsigqueueinfo--pidns-translation	test_pidns -esignal=none -e trace=rt_tgsigqueueinfo
+ s390_guarded_storage	-a32
+ s390_guarded_storage-v	-e trace=s390_guarded_storage -a32 -v
+ s390_pci_mmio_read_write	-e trace=s390_pci_mmio_read,s390_pci_mmio_write -a30
+@@ -527,9 +545,13 @@
+ sched_get_priority_mxx	-a33 -e trace=sched_get_priority_min,sched_get_priority_max
+ sched_rr_get_interval	-a31
+ sched_xetaffinity	-a28 -e trace=sched_getaffinity,sched_setaffinity
++sched_xetaffinity--pidns-translation	test_pidns -a28 -e trace=sched_getaffinity,sched_setaffinity
+ sched_xetattr	-a29 -e trace=sched_getattr,sched_setattr
++sched_xetattr--pidns-translation	test_pidns -a29 -e trace=sched_getattr,sched_setattr
+ sched_xetparam	-a23 -e trace=sched_getparam,sched_setparam
++sched_xetparam--pidns-translation	test_pidns -a23 -e trace=sched_getparam,sched_setparam
+ sched_xetscheduler	-a22 -e trace=sched_getscheduler,sched_setscheduler
++sched_xetscheduler--pidns-translation	test_pidns -a22 -e trace=sched_getscheduler,sched_setscheduler
+ sched_yield	-a14
+ seccomp-filter	-e trace=seccomp
+ seccomp-filter-v	-v -e trace=seccomp
+@@ -576,6 +598,7 @@
+ siginfo	-e trace=none
+ signal	-a25 -e signal=none -e trace='/^signal$'
+ signal_receive	-a16 -e trace=kill
++signal_receive--pidns-translation	test_pidns -a16 -e trace=kill
+ signalfd4
+ sigpending	-a15
+ sigprocmask	-a34
+@@ -587,6 +610,7 @@
+ so_peercred-Xabbrev	-e trace=getsockopt -Xabbrev
+ so_peercred-Xraw	-e trace=getsockopt -Xraw -a39
+ so_peercred-Xverbose	-e trace=getsockopt -Xverbose
++so_peercred--pidns-translation	test_pidns -e trace=getsockopt
+ sock_filter-v	-v -e trace=getsockopt,setsockopt
+ sock_filter-v-Xabbrev	-v -e trace=getsockopt,setsockopt -X abbrev
+ sock_filter-v-Xraw	-a 37 -v -e trace=getsockopt,setsockopt -X raw
+@@ -659,6 +683,7 @@
+ syslog	-a35
+ tee
+ tgkill	-a15 --signal='!cont'
++tgkill--pidns-translation       test_pidns -a15 --signal='!cont' -e trace=tgkill
+ threads-execve--quiet-thread-execve +threads-execve.test -s40 --quiet=personality,thread-execve
+ threads-execve-q +threads-execve.test -q
+ threads-execve-qq +threads-execve.test -qq
+@@ -670,6 +695,7 @@
+ times	-esignal=none
+ times-fail	-a12 -e trace=times
+ tkill	-a12 --signal='!cont'
++tkill--pidns-translation       test_pidns --signal='!cont' -a12 -e trace=tkill
+ trace_clock	test_trace_expr 'clock_nanosleep|times' -e%clock
+ trace_creds	test_trace_expr '([gs]et[^p]*([gu]id|groups)|caps|prctl|[fl]?chown|print(path-umovestr|strn-umoven)-undumpable|ptrace|quotactl|rt_sigtimedwait|rt_(tg)?sigqueueinfo).*' -e%creds
+ trace_fstat	test_trace_expr '' -e%fstat -v -P stat.sample -P /dev/full
+@@ -686,6 +712,7 @@
+ trace_stat_like	test_trace_expr '' -e%%stat -v -P stat.sample -P /dev/full
+ trace_statfs	test_trace_expr '' -e%statfs
+ trace_statfs_like	test_trace_expr '' -e%%statfs
++trie_test    run_prog
+ truncate
+ truncate64
+ ugetrlimit	-a28
+@@ -716,7 +743,10 @@
+ xattr	-a22 -e trace=getxattr,fgetxattr,lgetxattr,setxattr,fsetxattr,lsetxattr,listxattr,flistxattr,llistxattr,removexattr,fremovexattr,lremovexattr
+ xattr-strings	-a22 -s 4 -e trace=fsetxattr
+ xet_robust_list	-a24 -e trace=get_robust_list,set_robust_list
++xet_robust_list--pidns-translation	test_pidns -a24 -e trace=get_robust_list,set_robust_list
+ xetitimer	-a29 -e trace=setitimer,getitimer
+ xetpgid	-a11 -e trace=getpgid,setpgid
+-xetpriority	-a29 -e trace=getpriority,setpriority
++xetpgid--pidns-translation	test_pidns -a11 -e trace=getpgid,setpgid
++xetpriority	-a27 -e trace=getpriority,setpriority
++xetpriority--pidns-translation	test_pidns -a27 -e trace=getpriority,setpriority
+ xettimeofday	-a20 -e trace=gettimeofday,settimeofday
+Index: strace-5.7/tests/getpgrp--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/getpgrp--pidns-translation.c	2020-09-09 19:52:38.875673618 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "getpgrp.c"
+Index: strace-5.7/tests/getpgrp.c
+===================================================================
+--- strace-5.7.orig/tests/getpgrp.c	2020-09-09 19:52:30.593668681 +0200
++++ strace-5.7/tests/getpgrp.c	2020-09-09 19:52:38.875673618 +0200
+@@ -7,6 +7,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #ifdef __NR_getpgrp
+ 
+@@ -16,8 +17,13 @@
+ int
+ main(void)
+ {
+-	printf("getpgrp() = %ld\n", syscall(__NR_getpgrp));
++	PIDNS_TEST_INIT;
+ 
++	pidns_print_leader();
++	printf("getpgrp() = %d%s\n", (int) syscall(__NR_getpgrp),
++		pidns_pid2str(PT_PGID));
++
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests/getpid--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/getpid--pidns-translation.c	2020-09-09 19:52:38.875673618 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "getpid.c"
+Index: strace-5.7/tests/getpid.c
+===================================================================
+--- strace-5.7.orig/tests/getpid.c	2020-09-09 19:52:30.593668681 +0200
++++ strace-5.7/tests/getpid.c	2020-09-09 19:52:38.875673618 +0200
+@@ -7,6 +7,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #if defined __NR_getpid && (!defined __NR_getxpid || __NR_getxpid != __NR_getpid)
+ 
+@@ -16,7 +17,12 @@
+ int
+ main(void)
+ {
+-	printf("getpid() = %ld\n", syscall(__NR_getpid));
++	PIDNS_TEST_INIT;
++
++	pidns_print_leader();
++	printf("getpid() = %d%s\n", (int) syscall(__NR_getpid),
++		pidns_pid2str(PT_TGID));
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests/getsid--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/getsid--pidns-translation.c	2020-09-09 19:52:38.875673618 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "getsid.c"
+Index: strace-5.7/tests/getsid.c
+===================================================================
+--- strace-5.7.orig/tests/getsid.c	2020-09-09 19:52:30.594668682 +0200
++++ strace-5.7/tests/getsid.c	2020-09-09 19:52:38.876673618 +0200
+@@ -6,15 +6,22 @@
+  */
+ 
+ #include "tests.h"
++#include "pidns.h"
++
+ #include <stdio.h>
+ #include <unistd.h>
+ 
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	pid_t pid = getpid();
+-	printf("getsid(%d) = %d\n", pid, getsid(pid));
++	pidns_print_leader();
++	printf("getsid(%d%s) = %d%s\n", pid, pidns_pid2str(PT_TGID),
++		getsid(pid), pidns_pid2str(PT_SID));
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests/gettid--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/gettid--pidns-translation.c	2020-09-09 19:52:38.876673618 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "gettid.c"
+Index: strace-5.7/tests/gettid--pidns-translation.test
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/gettid--pidns-translation.test	2020-09-09 19:52:38.876673618 +0200
+@@ -0,0 +1,18 @@
++#!/bin/sh
++#
++# Check pidns translation of gettid's return value.
++#
++# Copyright (c) 2020 The strace developers.
++# All rights reserved.
++#
++# SPDX-License-Identifier: LGPL-2.1-or-later
++
++. "${srcdir=.}/init.sh"
++
++run_prog > /dev/null
++run_strace -a9 --pidns-translation -f -e trace=gettid $args > "$EXP"
++parent_pid="$(tail -n 2 $LOG | head -n 1 | cut -d' ' -f1)"
++init_pid="$(tail -n 1 $LOG | cut -d' ' -f1)"
++# uniq: filter out extra gettid calls made by musl libc
++grep -E -v "^($parent_pid|$init_pid) |unfinished|resumed" "$LOG" | uniq > "$OUT"
++match_diff "$OUT" "$EXP"
+Index: strace-5.7/tests/gettid.c
+===================================================================
+--- strace-5.7.orig/tests/gettid.c	2020-09-09 19:52:30.594668682 +0200
++++ strace-5.7/tests/gettid.c	2020-09-09 19:52:38.876673618 +0200
+@@ -9,11 +9,17 @@
+ #include <stdio.h>
+ #include <unistd.h>
+ #include "scno.h"
++#include "pidns.h"
+ 
+ int
+ main(void)
+ {
+-	printf("gettid() = %ld\n", syscall(__NR_gettid));
++	PIDNS_TEST_INIT;
++
++	pidns_print_leader();
++	printf("gettid() = %d%s\n", (int) syscall(__NR_gettid),
++		pidns_pid2str(PT_TID));
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests/ioctl_block--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/ioctl_block--pidns-translation.c	2020-09-09 19:52:38.876673618 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "ioctl_block.c"
+Index: strace-5.7/tests/ioctl_block--pidns-translation.test
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/ioctl_block--pidns-translation.test	2020-09-09 19:52:38.877673619 +0200
+@@ -0,0 +1,22 @@
++#!/bin/sh
++#
++# Check pidns translation of ioctl(BLK*) syscall decoding.
++#
++# Copyright (c) 2020 The strace developers.
++# All rights reserved.
++#
++# SPDX-License-Identifier: LGPL-2.1-or-later
++
++. "${srcdir=.}/init.sh"
++
++check_prog head
++check_prog tail
++check_prog cut
++check_prog grep
++
++run_prog > /dev/null
++run_strace --pidns-translation -f -a16 -e trace=ioctl $@ $args > "$EXP"
++parent_pid="$(tail -n 2 $LOG | head -n 1 | cut -d' ' -f1)"
++init_pid="$(tail -n 1 $LOG | cut -d' ' -f1)"
++grep -E -v "^($parent_pid|$init_pid) |ioctl\([0123][,<]" "$LOG" > "$OUT"
++match_diff "$OUT" "$EXP"
+Index: strace-5.7/tests/ioctl_block.c
+===================================================================
+--- strace-5.7.orig/tests/ioctl_block.c	2020-09-09 19:52:30.595668682 +0200
++++ strace-5.7/tests/ioctl_block.c	2020-09-09 19:52:38.877673619 +0200
+@@ -9,7 +9,9 @@
+  */
+ 
+ #include "tests.h"
++#include "pidns.h"
+ #include <errno.h>
++#include <unistd.h>
+ #include <inttypes.h>
+ #include <stdio.h>
+ #include <string.h>
+@@ -41,12 +43,15 @@
+ #define TEST_NULL_ARG(cmd)						\
+ 	do {								\
+ 		ioctl(-1, cmd, 0);					\
++		pidns_print_leader();					\
+ 		printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", #cmd);	\
+ 	} while (0)
+ 
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	TEST_NULL_ARG(BLKBSZGET);
+ 	TEST_NULL_ARG(BLKBSZSET);
+ 	TEST_NULL_ARG(BLKFRAGET);
+@@ -91,18 +96,22 @@
+ #endif
+ 
+ 	ioctl(-1, BLKRASET, lmagic);
++	pidns_print_leader();
+ 	printf("ioctl(-1, BLKRASET, %lu) = -1 EBADF (%m)\n", lmagic);
+ 
+ 	ioctl(-1, BLKFRASET, lmagic);
++	pidns_print_leader();
+ 	printf("ioctl(-1, BLKFRASET, %lu) = -1 EBADF (%m)\n", lmagic);
+ 
+ 	TAIL_ALLOC_OBJECT_CONST_PTR(int, val_int);
+ 	*val_int = magic;
+ 
+ 	ioctl(-1, BLKROSET, val_int);
++	pidns_print_leader();
+ 	printf("ioctl(-1, BLKROSET, [%d]) = -1 EBADF (%m)\n", *val_int);
+ 
+ 	ioctl(-1, BLKBSZSET, val_int);
++	pidns_print_leader();
+ 	printf("ioctl(-1, BLKBSZSET, [%d]) = -1 EBADF (%m)\n", *val_int);
+ 
+ 	uint64_t *pair_int64 = tail_alloc(sizeof(*pair_int64) * 2);
+@@ -111,18 +120,21 @@
+ 
+ #ifdef BLKDISCARD
+ 	ioctl(-1, BLKDISCARD, pair_int64);
++	pidns_print_leader();
+ 	printf("ioctl(-1, BLKDISCARD, [%" PRIu64 ", %" PRIu64 "])"
+ 	       " = -1 EBADF (%m)\n", pair_int64[0], pair_int64[1]);
+ #endif
+ 
+ #ifdef BLKSECDISCARD
+ 	ioctl(-1, BLKSECDISCARD, pair_int64);
++	pidns_print_leader();
+ 	printf("ioctl(-1, BLKSECDISCARD, [%" PRIu64 ", %" PRIu64 "])"
+ 	       " = -1 EBADF (%m)\n", pair_int64[0], pair_int64[1]);
+ #endif
+ 
+ #ifdef BLKZEROOUT
+ 	ioctl(-1, BLKZEROOUT, pair_int64);
++	pidns_print_leader();
+ 	printf("ioctl(-1, BLKZEROOUT, [%" PRIu64 ", %" PRIu64 "])"
+ 	       " = -1 EBADF (%m)\n", pair_int64[0], pair_int64[1]);
+ #endif
+@@ -134,6 +146,7 @@
+ 	blkpg->data = (void *) (unsigned long) 0xcafef00dfffffeedULL;
+ 
+ 	ioctl(-1, BLKPG, blkpg);
++	pidns_print_leader();
+ 	printf("ioctl(-1, BLKPG, {op=%s, flags=%d, datalen=%d"
+ 	       ", data=%#lx}) = -1 EBADF (%m)\n",
+ 	       "BLKPG_RESIZE_PARTITION", blkpg->flags, blkpg->datalen,
+@@ -149,6 +162,7 @@
+ 	blkpg->data = bp;
+ 
+ 	ioctl(-1, BLKPG, blkpg);
++	pidns_print_leader();
+ 	printf("ioctl(-1, BLKPG, {op=%s, flags=%d, datalen=%d"
+ 	       ", data={start=%lld, length=%lld, pno=%d"
+ 	       ", devname=\"%.*s\"..., volname=\"%.*s\"...}})"
+@@ -162,25 +176,31 @@
+ #if defined BLKTRACESETUP && defined HAVE_STRUCT_BLK_USER_TRACE_SETUP
+ 	TAIL_ALLOC_OBJECT_CONST_PTR(struct blk_user_trace_setup, buts);
+ 	fill_memory(buts, sizeof(*buts));
++	buts->pid = getpid();
+ 
+ 	ioctl(-1, BLKTRACESETUP, buts);
++	pidns_print_leader();
+ 	printf("ioctl(-1, BLKTRACESETUP, {act_mask=%hu, buf_size=%u, buf_nr=%u"
+-	       ", start_lba=%" PRI__u64 ", end_lba=%" PRI__u64 ", pid=%d})"
++	       ", start_lba=%" PRI__u64 ", end_lba=%" PRI__u64 ", pid=%d%s})"
+ 	       " = -1 EBADF (%m)\n",
+ 	       buts->act_mask, buts->buf_size, buts->buf_nr,
+-	       buts->start_lba, buts->end_lba, buts->pid);
++	       buts->start_lba, buts->end_lba, buts->pid,
++	       pidns_pid2str(PT_TGID));
+ #endif
+ 
+ 	unsigned int i;
+ 	for (i = 0; i < ARRAY_SIZE(block_argless); ++i) {
+ 		ioctl(-1, (unsigned long) block_argless[i].val, lmagic);
++		pidns_print_leader();
+ 		printf("ioctl(-1, %s) = -1 EBADF (%m)\n", block_argless[i].str);
+ 	}
+ 
+ 	ioctl(-1, _IOC(_IOC_READ, 0x12, 0xfe, 0xff), lmagic);
++	pidns_print_leader();
+ 	printf("ioctl(-1, %s, %#lx) = -1 EBADF (%m)\n",
+ 	       "_IOC(_IOC_READ, 0x12, 0xfe, 0xff)", lmagic);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests/ioprio--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/ioprio--pidns-translation.c	2020-09-09 19:52:38.877673619 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "ioprio.c"
+Index: strace-5.7/tests/ioprio.c
+===================================================================
+--- strace-5.7.orig/tests/ioprio.c	2020-09-09 19:52:30.595668682 +0200
++++ strace-5.7/tests/ioprio.c	2020-09-09 19:52:38.878673619 +0200
+@@ -9,8 +9,8 @@
+  */
+ 
+ #include "tests.h"
+-
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #if defined(__NR_ioprio_get) && defined(__NR_ioprio_set)
+ 
+@@ -30,12 +30,18 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	static const kernel_ulong_t bogus_which =
+ 		(kernel_ulong_t) 0xdeadfacefa57beefULL;
+ 	static const kernel_ulong_t bogus_who =
+ 		(kernel_ulong_t) 0xbadc0dedda7a1057ULL;
+ 	static const kernel_ulong_t bogus_ioprio =
+ 		(kernel_ulong_t) 0xdec0ded1facefeedULL;
++
++	const int pid = getpid();
++	const int pgid = getpgid(0);
++
+ # if !XLAT_RAW
+ 	static const char * const bogus_ioprio_str =
+ 		"IOPRIO_PRIO_VALUE(0x7d677 /* IOPRIO_CLASS_??? */, 7917)";
+@@ -46,6 +52,7 @@
+ 
+ 	rc = syscall(__NR_ioprio_get, bogus_which, bogus_who);
+ 	errstr = sprintrc(rc);
++	pidns_print_leader();
+ # if XLAT_RAW
+ 	printf("ioprio_get(%#x, %d) = %s\n",
+ 	       (int) bogus_which, (int) bogus_who, errstr);
+@@ -54,42 +61,52 @@
+ 	       (int) bogus_which, (int) bogus_who, errstr);
+ # endif
+ 
+-	rc = syscall(__NR_ioprio_get, 1, 0);
++	rc = syscall(__NR_ioprio_get, 1, pid);
+ 	errstr = sprintrc(rc);
++	pidns_print_leader();
++	printf("ioprio_get(");
+ # if XLAT_RAW
+-	printf("ioprio_get(0x1, 0) = %s\n", errstr);
++	printf("0x1, ");
++# elif XLAT_VERBOSE
++	printf("0x1 /* IOPRIO_WHO_PROCESS */, ");
+ # else /* XLAT_ABBREV */
+-#  if XLAT_VERBOSE
+-	printf("ioprio_get(0x1 /* IOPRIO_WHO_PROCESS */, 0) = %s", errstr);
+-#  else
+-	printf("ioprio_get(IOPRIO_WHO_PROCESS, 0) = %s", errstr);
+-#  endif
++	printf("IOPRIO_WHO_PROCESS, ");
++# endif
++	printf("%d%s) = %s", pid, pidns_pid2str(PT_TGID), errstr);
++# if !XLAT_RAW
+ 	if (rc >= 0) {
+ 		printf(" (IOPRIO_PRIO_VALUE(");
+ 		printxval(ioprio_class, (unsigned int) rc >> 13,
+ 			  "IOPRIO_CLASS_???");
+ 		printf(", %u))", (unsigned int) rc & 0x1fff);
+ 	}
+-	puts("");
+ # endif
++	puts("");
+ 
+-	rc = syscall(__NR_ioprio_set, 2, 0, 8191);
++	rc = syscall(__NR_ioprio_set, 2, pgid, 8191);
+ 	errstr = sprintrc(rc);
++	pidns_print_leader();
++	printf("ioprio_set(");
+ # if XLAT_RAW
+-	printf("ioprio_set(%#x, 0, 8191) = %s\n", 2, errstr);
++	printf("%#x", 2);
+ # elif XLAT_VERBOSE
+-	printf("ioprio_set(%#x /* IOPRIO_WHO_PGRP */, 0, 8191"
+-	       " /* IOPRIO_PRIO_VALUE(0 /* IOPRIO_CLASS_NONE */, 8191) */)"
+-	       " = %s\n",
+-	       2, errstr);
++	printf("%#x /* IOPRIO_WHO_PGRP */", 2);
+ # else /* XLAT_ABBREV */
+-	printf("ioprio_set(IOPRIO_WHO_PGRP, 0"
+-	       ", IOPRIO_PRIO_VALUE(IOPRIO_CLASS_NONE, 8191)) = %s\n",
+-	       errstr);
++	printf("IOPRIO_WHO_PGRP");
++# endif
++	printf(", %d%s", pgid, pidns_pid2str(PT_PGID));
++# if XLAT_RAW
++	printf(", 8191)");
++# elif XLAT_VERBOSE
++	printf(", 8191 /* IOPRIO_PRIO_VALUE(0 /* IOPRIO_CLASS_NONE */, 8191) */)");
++# else /* XLAT_ABBREV */
++	printf(", IOPRIO_PRIO_VALUE(IOPRIO_CLASS_NONE, 8191))");
+ # endif
++	printf(" = %s\n", errstr);
+ 
+ 	rc = syscall(__NR_ioprio_set, bogus_which, bogus_who, bogus_ioprio);
+ 	errstr = sprintrc(rc);
++	pidns_print_leader();
+ # if XLAT_RAW
+ 	printf("ioprio_set(%#x, %d, %d) = %s\n",
+ 	       (int) bogus_which, (int) bogus_who, (int) bogus_ioprio,
+@@ -104,6 +121,7 @@
+ 	       errstr);
+ # endif
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 
+ 	return 0;
+Index: strace-5.7/tests/kcmp-y--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/kcmp-y--pidns-translation.c	2020-09-09 19:52:38.878673619 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "kcmp-y.c"
+Index: strace-5.7/tests/kcmp.c
+===================================================================
+--- strace-5.7.orig/tests/kcmp.c	2020-09-09 19:52:30.596668683 +0200
++++ strace-5.7/tests/kcmp.c	2020-09-09 19:52:38.878673619 +0200
+@@ -9,8 +9,8 @@
+  */
+ 
+ #include "tests.h"
+-
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #ifdef __NR_kcmp
+ 
+@@ -101,7 +101,11 @@
+ 	rc = syscall(__NR_kcmp, pid1, pid2, type, idx1, idx2);
+ 	errstr = sprintrc(rc);
+ 
+-	printf("kcmp(%d, %d, ", (int) pid1, (int) pid2);
++	const char *pid_str = pidns_pid2str(PT_TGID);
++	pidns_print_leader();
++	printf("kcmp(%d%s, %d%s, ",
++		(int) pid1, (int) pid1 == getpid() ? pid_str : "",
++		(int) pid2, (int) pid2 == getpid() ? pid_str : "");
+ 
+ 	if (type_str)
+ 		printf("%s", type_str);
+@@ -146,6 +150,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	static const kernel_ulong_t bogus_pid1 =
+ 		(kernel_ulong_t) 0xdeadca75face1057ULL;
+ 	static const kernel_ulong_t bogus_pid2 =
+@@ -221,6 +227,7 @@
+ 			(uintptr_t) slot, 1);
+ 	}
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 
+ 	return 0;
+Index: strace-5.7/tests/kill--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/kill--pidns-translation.c	2020-09-09 19:52:38.878673619 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "kill.c"
+Index: strace-5.7/tests/kill.c
+===================================================================
+--- strace-5.7.orig/tests/kill.c	2020-09-09 19:52:30.596668683 +0200
++++ strace-5.7/tests/kill.c	2020-09-09 19:52:38.878673619 +0200
+@@ -11,6 +11,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #ifdef __NR_kill
+ 
+@@ -26,6 +27,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	const struct sigaction act = { .sa_handler = handler };
+ 	if (sigaction(SIGALRM, &act, NULL))
+ 		perror_msg_and_fail("sigaction");
+@@ -37,18 +40,23 @@
+ 		perror_msg_and_fail("sigprocmask");
+ 
+ 	const int pid = getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
+ 	long rc = syscall(__NR_kill, pid, (long) 0xdefaced00000000ULL | SIGALRM);
+-	printf("kill(%d, SIGALRM) = %ld\n", pid, rc);
++	pidns_print_leader();
++	printf("kill(%d%s, SIGALRM) = %ld\n", pid, pid_str, rc);
+ 
+ 	const long big_pid = (long) 0xfacefeedbadc0dedULL;
+ 	const long big_sig = (long) 0xdeadbeefcafef00dULL;
+ 	rc = syscall(__NR_kill, big_pid, big_sig);
++	pidns_print_leader();
+ 	printf("kill(%d, %d) = %ld %s (%m)\n",
+ 	       (int) big_pid, (int) big_sig, rc, errno2name());
+ 
+ 	rc = syscall(__NR_kill, (long) 0xdefaced00000000ULL | pid, 0);
+-	printf("kill(%d, 0) = %ld\n", pid, rc);
++	pidns_print_leader();
++	printf("kill(%d%s, 0) = %ld\n", pid, pid_str, rc);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests/migrate_pages--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/migrate_pages--pidns-translation.c	2020-09-09 19:52:38.879673620 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "migrate_pages.c"
+Index: strace-5.7/tests/migrate_pages.c
+===================================================================
+--- strace-5.7.orig/tests/migrate_pages.c	2020-09-09 19:52:30.596668683 +0200
++++ strace-5.7/tests/migrate_pages.c	2020-09-09 19:52:38.879673620 +0200
+@@ -10,6 +10,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #ifdef __NR_migrate_pages
+ 
+@@ -19,11 +20,21 @@
+ int
+ main(void)
+ {
+-	const long pid = (long) 0xfacefeedffffffffULL;
++	PIDNS_TEST_INIT;
++
++	const long pid = (long) 0xfacefeed00000000ULL | getpid();
+ 	long rc = syscall(__NR_migrate_pages, pid, 0, 0, 0);
+-	printf("migrate_pages(%d, 0, NULL, NULL) = %ld %s (%m)\n",
+-	       (int) pid, rc, errno2name());
+ 
++	pidns_print_leader();
++	printf("migrate_pages(%d%s, 0, NULL, NULL) = %ld",
++		(int) pid, pidns_pid2str(PT_TGID), rc);
++
++	if (rc < 0)
++		printf(" %s (%m)\n", errno2name());
++	else
++		printf("\n");
++
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests/move_pages--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/move_pages--pidns-translation.c	2020-09-09 19:52:38.879673620 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "move_pages.c"
+Index: strace-5.7/tests/move_pages.c
+===================================================================
+--- strace-5.7.orig/tests/move_pages.c	2020-09-09 19:52:30.597668684 +0200
++++ strace-5.7/tests/move_pages.c	2020-09-09 19:52:38.879673620 +0200
+@@ -10,6 +10,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #ifdef __NR_move_pages
+ 
+@@ -122,15 +123,20 @@
+ }
+ 
+ static void
+-print_stat_pages(const unsigned long pid, const unsigned long count,
+-		 const void **const pages, int *const status)
++print_stat_pages(const unsigned long pid,
++		 const char *pid_str,
++		 const unsigned long count,
++		 const void **const pages,
++		 int *const status)
+ {
+ 	const unsigned long flags = (unsigned long) 0xfacefeed00000002ULL;
+ 
+ 	long rc = syscall(__NR_move_pages,
+ 			  pid, count, pages, NULL, status, flags);
+ 	const char *errstr = sprintrc(rc);
+-	printf("move_pages(%d, %lu, ", (int) pid, count);
++	pidns_print_leader();
++	printf("move_pages(%d%s, %lu, ", (int) pid, pid_str,
++		count);
+ 	print_page_array(pages, count, 0);
+ 	printf(", NULL, ");
+ 	if (rc) {
+@@ -152,6 +158,7 @@
+ 
+ static void
+ print_move_pages(const unsigned long pid,
++		 const char *pid_str,
+ 		 unsigned long count,
+ 		 const unsigned int offset,
+ 		 const void **const pages,
+@@ -164,7 +171,9 @@
+ 	long rc = syscall(__NR_move_pages,
+ 			  pid, count, pages, nodes, status, flags);
+ 	const char *errstr = sprintrc(rc);
+-	printf("move_pages(%d, %lu, ", (int) pid, count);
++	pidns_print_leader();
++	printf("move_pages(%d%s, %lu, ", (int) pid, pid_str,
++		count);
+ 	print_page_array(pages, count, offset);
+ 	printf(", ");
+ 	print_node_array(nodes, count, offset);
+@@ -185,8 +194,11 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	const unsigned long pid =
+ 		(unsigned long) 0xfacefeed00000000ULL | getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
+ 	unsigned long count = 1;
+ 	const unsigned page_size = get_page_size();
+ 	const void *const page = tail_alloc(page_size);
+@@ -195,40 +207,41 @@
+ 	TAIL_ALLOC_OBJECT_VAR_PTR(int, nodes);
+ 	TAIL_ALLOC_OBJECT_VAR_PTR(int, status);
+ 
+-	print_stat_pages(pid, 0, pages, status);
+-	print_move_pages(pid, 0, 0, pages, nodes, status);
+-	print_move_pages(pid, 0, 1, pages + 1, nodes + 1, status + 1);
++	print_stat_pages(pid, pid_str, 0, pages, status);
++	print_move_pages(pid, pid_str, 0, 0, pages, nodes, status);
++	print_move_pages(pid, pid_str, 0, 1, pages + 1, nodes + 1, status + 1);
+ 
+ 	*pages = page;
+-	print_stat_pages(pid, count, pages, status);
++	print_stat_pages(pid, pid_str, count, pages, status);
+ 	*nodes = 0xdeadbee1;
+-	print_move_pages(pid, count, 0, pages, nodes, status);
+-	print_move_pages(pid, count, 1, pages, nodes, status);
++	print_move_pages(pid, pid_str, count, 0, pages, nodes, status);
++	print_move_pages(pid, pid_str, count, 1, pages, nodes, status);
+ 
+ 	++count;
+ 	--status;
+ 	*(--pages) = efault;
+-	print_stat_pages(pid, count, pages, status);
++	print_stat_pages(pid, pid_str, count, pages, status);
+ 	*(--nodes) = 0xdeadbee2;
+-	print_move_pages(pid, count, 0, pages, nodes, status);
+-	print_move_pages(pid, count, 1, pages, nodes, status);
++	print_move_pages(pid, pid_str, count, 0, pages, nodes, status);
++	print_move_pages(pid, pid_str, count, 1, pages, nodes, status);
+ 
+ 	++count;
+ 	--status;
+ 	*(--pages) = nodes;
+-	print_stat_pages(pid, count, pages, status);
++	print_stat_pages(pid, pid_str, count, pages, status);
+ 	*(--nodes) = 0xdeadbee3;
+-	print_move_pages(pid, count, 0, pages, nodes, status);
+-	print_move_pages(pid, count, 1, pages, nodes, status);
++	print_move_pages(pid, pid_str, count, 0, pages, nodes, status);
++	print_move_pages(pid, pid_str, count, 1, pages, nodes, status);
+ 
+ 	++count;
+ 	--status;
+ 	*(--pages) = status;
+-	print_stat_pages(pid, count, pages, status);
++	print_stat_pages(pid, pid_str, count, pages, status);
+ 	*(--nodes) = 0xdeadbee4;
+-	print_move_pages(pid, count, 0, pages, nodes, status);
+-	print_move_pages(pid, count, 1, pages, nodes, status);
++	print_move_pages(pid, pid_str, count, 0, pages, nodes, status);
++	print_move_pages(pid, pid_str, count, 1, pages, nodes, status);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests/net-sockaddr--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/net-sockaddr--pidns-translation.c	2020-09-09 19:52:38.879673620 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "net-sockaddr.c"
+Index: strace-5.7/tests/net-sockaddr.c
+===================================================================
+--- strace-5.7.orig/tests/net-sockaddr.c	2020-09-09 19:52:30.598668684 +0200
++++ strace-5.7/tests/net-sockaddr.c	2020-09-09 19:52:38.880673621 +0200
+@@ -9,6 +9,7 @@
+  */
+ 
+ #include "tests.h"
++#include "pidns.h"
+ #include <stddef.h>
+ #include <stdio.h>
+ #include <string.h>
+@@ -40,18 +41,21 @@
+ 	memset(un->sun_path, '0', sizeof(un->sun_path));
+ 	unsigned int len = sizeof(*un);
+ 	int ret = connect(-1, (void *) un, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_UNIX, sun_path=\"%.*u\"}"
+ 	       ", %u) = %d EBADF (%m)\n",
+ 	       (int) sizeof(un->sun_path), 0, len, ret);
+ 
+ 	un->sun_path[1] = 0;
+ 	ret = connect(-1, (void *) un, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_UNIX, sun_path=\"%u\"}, %u)"
+ 	       " = %d EBADF (%m)\n", 0, len, ret);
+ 
+ 	un->sun_path[0] = 0;
+ 	un->sun_path[2] = 1;
+ 	ret = connect(-1, (void *) un, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_UNIX, sun_path=@\"\\0\\001%.*u\"}"
+ 	       ", %u) = %d EBADF (%m)\n",
+ 	       (int) sizeof(un->sun_path) - 3, 0, len, ret);
+@@ -61,12 +65,14 @@
+ 	memset(un->sun_path, '0', sizeof(un->sun_path));
+ 	len = sizeof(*un) + 2;
+ 	ret = connect(-1, (void *) un, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_UNIX, sun_path=\"%.*u\"}"
+ 	       ", %u) = %d EBADF (%m)\n",
+ 	       (int) sizeof(un->sun_path), 0, len, ret);
+ 
+ 	un->sun_path[0] = 0;
+ 	ret = connect(-1, (void *) un, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_UNIX, sun_path=@\"%.*u\"}"
+ 	       ", %u) = %d EBADF (%m)\n",
+ 	       (int) sizeof(un->sun_path) - 1, 0, len, ret);
+@@ -75,18 +81,21 @@
+ 	un->sun_family = AF_UNIX;
+ 	len = sizeof(*un) - 2;
+ 	ret = connect(-1, (void *) un, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_UNIX, sun_path=\"%.*u\"}"
+ 	       ", %u) = %d EBADF (%m)\n",
+ 	       (int) sizeof(un->sun_path) - 2, 0, len, ret);
+ 
+ 	un->sun_path[0] = 0;
+ 	ret = connect(-1, (void *) un, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_UNIX, sun_path=@\"%.*u\"}"
+ 	       ", %u) = %d EBADF (%m)\n",
+ 	       (int) sizeof(un->sun_path) - 3, 0, len, ret);
+ 
+ 	len = sizeof(*un);
+ 	ret = connect(-1, (void *) un, len);
++	pidns_print_leader();
+ 	printf("connect(-1, %p, %u) = %d EBADF (%m)\n", un, len, ret);
+ 
+ 	un = tail_alloc(sizeof(struct sockaddr_storage));
+@@ -94,12 +103,14 @@
+ 	memset(un->sun_path, '0', sizeof(un->sun_path));
+ 	len = sizeof(struct sockaddr_storage) + 1;
+ 	ret = connect(-1, (void *) un, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_UNIX, sun_path=\"%.*u\"}"
+ 	       ", %u) = %d EBADF (%m)\n",
+ 	       (int) sizeof(un->sun_path), 0, len, ret);
+ 
+ 	un->sun_path[0] = 0;
+ 	ret = connect(-1, (void *) un, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_UNIX, sun_path=@\"%.*u\"}"
+ 	       ", %u) = %d EBADF (%m)\n",
+ 	       (int) sizeof(un->sun_path) - 1, 0, len, ret);
+@@ -117,6 +128,7 @@
+ 	in->sin_addr.s_addr = inet_addr(h_addr);
+ 	unsigned int len = sizeof(*in);
+ 	int ret = connect(-1, (void *) in, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_INET, sin_port=htons(%hu)"
+ 	       ", sin_addr=inet_addr(\"%s\")}, %u) = %d EBADF (%m)\n",
+ 	       h_port, h_addr, len, ret);
+@@ -127,6 +139,7 @@
+ 	in->sin_addr.s_addr = inet_addr(h_addr);
+ 	len = sizeof(*in) + 4;
+ 	ret = connect(-1, (void *) in, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_INET, sin_port=htons(%hu)"
+ 	       ", sin_addr=inet_addr(\"%s\")}, %u) = %d EBADF (%m)\n",
+ 	       h_port, h_addr, len, ret);
+@@ -137,6 +150,7 @@
+ 	in->sin_addr.s_addr = 0;
+ 	len = sizeof(*in) - 4;
+ 	ret = connect(-1, (void *) in, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_INET, sa_data=\"%s\"}, %u)"
+ 	       " = %d EBADF (%m)\n",
+ 	       "\\0\\0\\0\\0\\0\\0\\377\\377\\377\\377",
+@@ -144,6 +158,7 @@
+ 
+ 	len = sizeof(*in);
+ 	ret = connect(-1, (void *) in, len);
++	pidns_print_leader();
+ 	printf("connect(-1, %p, %u) = %d EBADF (%m)\n", in, len, ret);
+ }
+ 
+@@ -155,6 +170,7 @@
+ 	in6->sin6_scope_id = 0xfacefeed;
+ 	unsigned int len = sizeof(*in6);
+ 	int ret = connect(-1, (void *) in6, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)"
+ 	       ", sin6_flowinfo=htonl(%u)"
+ 	       ", inet_pton(AF_INET6, \"%s\", &sin6_addr)"
+@@ -166,7 +182,8 @@
+ 	in6->sin6_scope_id = ifindex_lo();
+ 	if (in6->sin6_scope_id) {
+ 		ret = connect(-1, (void *) in6, len);
+-		printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)"
++		pidns_print_leader();
++	printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)"
+ 		       ", sin6_flowinfo=htonl(%u)"
+ 		       ", inet_pton(AF_INET6, \"%s\", &sin6_addr)"
+ 		       ", sin6_scope_id=%s}, %u)"
+@@ -191,6 +208,7 @@
+ 	in6->sin6_scope_id = 0xfacefeed;
+ 	unsigned int len = sizeof(*in6);
+ 	int ret = connect(-1, (void *) in6, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)"
+ 	       ", sin6_flowinfo=htonl(%u)"
+ 	       ", inet_pton(AF_INET6, \"%s\", &sin6_addr)"
+@@ -209,6 +227,7 @@
+ 	in6->sin6_scope_id = 0xfacefeed;
+ 	len = sizeof(*in6) + 4;
+ 	ret = connect(-1, (void *) in6, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)"
+ 	       ", sin6_flowinfo=htonl(%u)"
+ 	       ", inet_pton(AF_INET6, \"%s\", &sin6_addr)"
+@@ -223,6 +242,7 @@
+ 	inet_pton(AF_INET6, h_addr, &in6->sin6_addr);
+ 	len = sizeof(*in6) - sizeof(in6->sin6_scope_id);
+ 	ret = connect(-1, (void *) in6, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)"
+ 	       ", sin6_flowinfo=htonl(%u)"
+ 	       ", inet_pton(AF_INET6, \"%s\", &sin6_addr)}, %u)"
+@@ -236,6 +256,7 @@
+ 	memset(&in6->sin6_addr, '0', sizeof(in6->sin6_addr) - 4);
+ 	len = sizeof(*in6) - sizeof(in6->sin6_scope_id) - 4;
+ 	ret = connect(-1, (void *) in6, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_INET6"
+ 	       ", sa_data=\"\\0\\0\\0\\0\\0\\000%.*u\"}, %u)"
+ 	       " = %d EBADF (%m)\n",
+@@ -244,6 +265,7 @@
+ 
+ 	len = sizeof(*in6) - sizeof(in6->sin6_scope_id);
+ 	ret = connect(-1, (void *) in6, len);
++	pidns_print_leader();
+ 	printf("connect(-1, %p, %u) = %d EBADF (%m)\n", in6, len, ret);
+ }
+ 
+@@ -262,6 +284,7 @@
+ 	void *ipx = tail_memdup(&c_ipx, sizeof(c_ipx));
+ 	unsigned int len = sizeof(c_ipx);
+ 	int ret = connect(-1, ipx, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_IPX, sipx_port=htons(%u)"
+ 	       ", sipx_network=htonl(%#x)"
+ 	       ", sipx_node=[%#02x, %#02x, %#02x, %#02x, %#02x, %#02x]"
+@@ -316,18 +339,21 @@
+ 	fill_memory(sax, size);
+ 	sax->fsa_ax25.sax25_family = AF_AX25;
+ 	rc = connect(-1, sax_void, sizeof(struct sockaddr_ax25) - 1);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_AX25, sa_data=\"\\202\\203\\204\\205"
+ 	       "\\206\\207\\210\\211\\212\\213\\214\\215\\216\"}, %zu) = %s\n",
+ 	       sizeof(struct sockaddr_ax25) - 1, sprintrc(rc));
+ 
+ 	memcpy(sax, &ax25, sizeof(ax25));
+ 	rc = connect(-1, sax_void, sizeof(struct sockaddr_ax25));
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_AX25, fsa_ax25={sax25_call=VALID-13"
+ 	       ", sax25_ndigis=8}, fsa_digipeater=[/* ??? */]}, %zu) = %s\n",
+ 	       sizeof(struct sockaddr_ax25), sprintrc(rc));
+ 
+ 	sax->fsa_ax25.sax25_ndigis = 0;
+ 	rc = connect(-1, sax_void, sizeof(struct sockaddr_ax25));
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_AX25, sax25_call=VALID-13"
+ 	       ", sax25_ndigis=0}, %zu) = %s\n",
+ 	       sizeof(struct sockaddr_ax25), sprintrc(rc));
+@@ -335,6 +361,7 @@
+ 	sax->fsa_ax25.sax25_ndigis = 8;
+ 	size = sizeof(struct sockaddr_ax25) + sizeof(ax25_address) * 3 + 1;
+ 	rc = connect(-1, sax_void, size);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_AX25, fsa_ax25={sax25_call=VALID-13"
+ 	       ", sax25_ndigis=8}, fsa_digipeater"
+ 	       "=[{ax25_call=\"\\xa6\\xa0\\x82\\x40\\x86\\x8a\\x00\""
+@@ -348,6 +375,7 @@
+ 	sax->fsa_digipeater[2].ax25_call[6] = 0x4;
+ 	size = sizeof(struct sockaddr_ax25) + sizeof(ax25_address) * 4;
+ 	rc = connect(-1, sax_void, size);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_AX25, fsa_ax25={sax25_call=VALID-13"
+ 	       ", sax25_ndigis=8}, fsa_digipeater"
+ 	       "=[{ax25_call=\"\\xa6\\xa0\\x82\\x40\\x86\\x8a\\x00\""
+@@ -365,6 +393,7 @@
+ 	for (size_t i = 0; i < 3; i++) {
+ 		size = sizeof(ax25) + sizeof(ax25_address) * (i / 2);
+ 		rc = connect(-1, sax_void, size);
++		pidns_print_leader();
+ 		printf("connect(-1, {sa_family=AF_AX25"
+ 		       ", fsa_ax25={sax25_call=VALID-13, sax25_ndigis=%d}"
+ 		       ", fsa_digipeater=[VALID2-7, OK-15, %s /* FINE-2 */"
+@@ -427,12 +456,14 @@
+ 	long rc;
+ 
+ 	rc = connect(-1, x25_void, sizeof(c_x25) - 1);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_X25"
+ 	       ", sa_data=\"0123456789abcde\"}, %zu) = %s\n",
+ 	       sizeof(c_x25) - 1, sprintrc(rc));
+ 
+ 	for (size_t i = 0; i < 2; i++) {
+ 		rc = connect(-1, x25_void, sizeof(c_x25) + i);
++		pidns_print_leader();
+ 		printf("connect(-1, {sa_family=AF_X25"
+ 		       ", sx25_addr={x25_addr=\"0123456789abcde\"...}"
+ 		       "}, %zu) = %s\n",
+@@ -442,6 +473,7 @@
+ 	struct sockaddr_x25 *const x25 = x25_void;
+ 	x25->sx25_addr.x25_addr[10] = '\0';
+ 	rc = connect(-1, x25_void, sizeof(c_x25));
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_X25"
+ 	       ", sx25_addr={x25_addr=\"0123456789\"}"
+ 	       "}, %zu) = %s\n",
+@@ -457,19 +489,21 @@
+ 	nl->nl_groups = 0xfacefeed;
+ 	unsigned int len = sizeof(*nl);
+ 	int ret = connect(-1, (void *) nl, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_NETLINK, nl_pid=%d"
+ 	       ", nl_groups=%#08x}, %u) = %d EBADF (%m)\n",
+ 	       nl->nl_pid, nl->nl_groups, len, ret);
+ 
+ 	nl = ((void *) nl) - 4;
+ 	nl->nl_family = AF_NETLINK;
+-	nl->nl_pid = 1234567890;
++	nl->nl_pid = getpid();
+ 	nl->nl_groups = 0xfacefeed;
+ 	len = sizeof(*nl) + 4;
+ 	ret = connect(-1, (void *) nl, len);
+-	printf("connect(-1, {sa_family=AF_NETLINK, nl_pid=%d"
++	pidns_print_leader();
++	printf("connect(-1, {sa_family=AF_NETLINK, nl_pid=%d%s"
+ 	       ", nl_groups=%#08x}, %u) = %d EBADF (%m)\n",
+-	       nl->nl_pid, nl->nl_groups, len, ret);
++	       nl->nl_pid, pidns_pid2str(PT_TGID), nl->nl_groups, len, ret);
+ }
+ 
+ static void
+@@ -487,6 +521,7 @@
+ 	void *ll = tail_memdup(&c_ll, sizeof(c_ll));
+ 	unsigned int len = sizeof(c_ll);
+ 	int ret = connect(-1, ll, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_PACKET"
+ 	       ", sll_protocol=htons(ETH_P_ALL)"
+ 	       ", sll_ifindex=%u, sll_hatype=ARPHRD_ETHER"
+@@ -502,6 +537,7 @@
+ 
+ 	((struct sockaddr_ll *) ll)->sll_halen++;
+ 	ret = connect(-1, ll, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_PACKET"
+ 	       ", sll_protocol=htons(ETH_P_ALL)"
+ 	       ", sll_ifindex=%u, sll_hatype=ARPHRD_ETHER"
+@@ -517,6 +553,7 @@
+ 
+ 	((struct sockaddr_ll *) ll)->sll_halen = 0;
+ 	ret = connect(-1, ll, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_PACKET"
+ 	       ", sll_protocol=htons(ETH_P_ALL)"
+ 	       ", sll_ifindex=%u, sll_hatype=ARPHRD_ETHER"
+@@ -526,6 +563,7 @@
+ 	((struct sockaddr_ll *) ll)->sll_ifindex = ifindex_lo();
+ 	if (((struct sockaddr_ll *) ll)->sll_ifindex) {
+ 		ret = connect(-1, ll, len);
++	pidns_print_leader();
+ 		printf("connect(-1, {sa_family=AF_PACKET"
+ 		       ", sll_protocol=htons(ETH_P_ALL)"
+ 		       ", sll_ifindex=%s"
+@@ -549,11 +587,13 @@
+ 	unsigned int len = sizeof(*hci);
+ 
+ 	int ret = connect(-1, (void *) hci, 4);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_BLUETOOTH, hci_dev=htobs(%hu)"
+ 	       "}, 4) = %d EBADF (%m)\n",
+ 	       h_port, ret);
+ 
+ 	ret = connect(-1, (void *) hci, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_BLUETOOTH, hci_dev=htobs(%hu)"
+ # ifdef HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL
+ 	       ", hci_channel=HCI_CHANNEL_RAW"
+@@ -572,6 +612,7 @@
+ 	void *sco = tail_memdup(&c_sco, sizeof(c_sco));
+ 	unsigned int len = sizeof(c_sco);
+ 	int ret = connect(-1, sco, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_BLUETOOTH"
+ 	       ", sco_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
+ 	       "}, %u) = %d EBADF (%m)\n",
+@@ -592,6 +633,7 @@
+ 	void *rc = tail_memdup(&c_rc, sizeof(c_rc));
+ 	unsigned int len = sizeof(c_rc);
+ 	int ret = connect(-1, rc, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_BLUETOOTH"
+ 	       ", rc_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
+ 	       ", rc_channel=%u}, %u) = %d EBADF (%m)\n",
+@@ -619,6 +661,7 @@
+ 	unsigned int len = sizeof(c_l2);
+ 
+ 	int ret = connect(-1, l2, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_BLUETOOTH"
+ 	       ", l2_psm=htobs(L2CAP_PSM_DYN_START + %hu)"
+ 	       ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
+@@ -640,6 +683,7 @@
+ # endif
+ 	memcpy(l2, &c_l2, sizeof(c_l2));
+ 	ret = connect(-1, l2, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_BLUETOOTH"
+ 	       ", l2_psm=htobs(L2CAP_PSM_SDP)"
+ 	       ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
+@@ -660,6 +704,7 @@
+ # endif
+ 	memcpy(l2, &c_l2, sizeof(c_l2));
+ 	ret = connect(-1, l2, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_BLUETOOTH"
+ 	       ", l2_psm=htobs(0xbad /* L2CAP_PSM_??? */)"
+ 	       ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
+@@ -677,6 +722,7 @@
+ 	c_l2.l2_cid = htobs(0xffff);
+ 	memcpy(l2, &c_l2, 12);
+ 	ret = connect(-1, l2, 12);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_BLUETOOTH"
+ 	       ", l2_psm=htobs(L2CAP_PSM_AUTO_END)"
+ 	       ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
+@@ -700,6 +746,7 @@
+ 	u.sa->sa_family = 0xff;
+ 	unsigned int len = sizeof(*u.st) + 8;
+ 	int ret = connect(-1, (void *) u.st, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=%#x /* AF_??? */, sa_data=\"%.*u\"}"
+ 	       ", %u) = %d EBADF (%m)\n", u.sa->sa_family,
+ 	       (int) (sizeof(*u.st) - sizeof(u.sa->sa_family)), 0, len, ret);
+@@ -707,11 +754,13 @@
+ 	u.sa->sa_family = 0;
+ 	len = sizeof(u.sa->sa_family) + 1;
+ 	ret = connect(-1, (void *) u.st, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_UNSPEC, sa_data=\"0\"}, %u)"
+ 	       " = %d EBADF (%m)\n", len, ret);
+ 
+ 	u.sa->sa_family = AF_BLUETOOTH;
+ 	ret = connect(-1, (void *) u.st, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_BLUETOOTH, sa_data=\"0\"}, %u)"
+ 	       " = %d EBADF (%m)\n", len, ret);
+ }
+@@ -719,6 +768,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	check_un();
+ 	check_in();
+ 	check_in6();
+@@ -735,6 +786,7 @@
+ #endif
+ 	check_raw();
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests/netlink_audit--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/netlink_audit--pidns-translation.c	2020-09-09 19:52:38.880673621 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "netlink_audit.c"
+Index: strace-5.7/tests/netlink_audit--pidns-translation.test
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/netlink_audit--pidns-translation.test	2020-09-09 19:52:38.880673621 +0200
+@@ -0,0 +1,13 @@
++#!/bin/sh
++#
++# Check pidns translation of NETLINK_SOCK_DIAG protocol decoding
++#
++# Copyright (c) 2020 The strace developers.
++# All rights reserved.
++#
++# SPDX-License-Identifier: LGPL-2.1-or-later
++
++. "${srcdir=.}/init.sh"
++
++run_prog ../netlink_netlink_diag
++test_pidns -e trace=sendto "$@"
+Index: strace-5.7/tests/netlink_audit.c
+===================================================================
+--- strace-5.7.orig/tests/netlink_audit.c	2020-09-09 19:52:30.599668685 +0200
++++ strace-5.7/tests/netlink_audit.c	2020-09-09 19:52:38.881673621 +0200
+@@ -7,6 +7,7 @@
+  */
+ 
+ #include "tests.h"
++#include "pidns.h"
+ #include <stdio.h>
+ #include <string.h>
+ #include <unistd.h>
+@@ -17,18 +18,23 @@
+ static void
+ test_nlmsg_type(const int fd)
+ {
++	PIDNS_TEST_INIT;
++
+ 	long rc;
+ 	struct nlmsghdr nlh = {
+ 		.nlmsg_len = sizeof(nlh),
+ 		.nlmsg_type = AUDIT_GET,
+ 		.nlmsg_flags = NLM_F_REQUEST,
++		.nlmsg_pid = getpid(),
+ 	};
+ 
+ 	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
++	pidns_print_leader();
+ 	printf("sendto(%d, {len=%u, type=AUDIT_GET"
+-	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
++	       ", flags=NLM_F_REQUEST, seq=0, pid=%d%s}"
+ 	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+-	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
++	       fd, nlh.nlmsg_len, nlh.nlmsg_pid, pidns_pid2str(PT_TGID),
++	       (unsigned) sizeof(nlh), sprintrc(rc));
+ }
+ 
+ int main(void)
+@@ -39,6 +45,7 @@
+ 
+ 	test_nlmsg_type(fd);
+ 
++	pidns_print_leader();
+ 	printf("+++ exited with 0 +++\n");
+ 
+ 	return 0;
+Index: strace-5.7/tests/pidfd_open--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/pidfd_open--pidns-translation.c	2020-09-09 19:52:38.881673621 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "pidfd_open.c"
+Index: strace-5.7/tests/pidfd_open.c
+===================================================================
+--- strace-5.7.orig/tests/pidfd_open.c	2020-09-09 19:52:30.599668685 +0200
++++ strace-5.7/tests/pidfd_open.c	2020-09-09 19:52:38.881673621 +0200
+@@ -10,6 +10,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #ifdef __NR_pidfd_open
+ 
+@@ -37,6 +38,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ # if defined PATH_TRACING || defined PRINT_PATHS
+ 	skip_if_unavailable("/proc/self/fd/");
+ # endif
+@@ -50,16 +53,19 @@
+ 
+ 	k_pidfd_open(0, 0);
+ # ifndef PATH_TRACING
++	pidns_print_leader();
+ 	printf("pidfd_open(0, 0) = %s\n", errstr);
+ # endif
+ 
+ 	k_pidfd_open(-1U, 0);
+ # ifndef PATH_TRACING
++	pidns_print_leader();
+ 	printf("pidfd_open(-1, 0) = %s\n", errstr);
+ # endif
+ 
+ 	k_pidfd_open(0, -1U);
+ # ifndef PATH_TRACING
++	pidns_print_leader();
+ 	printf("pidfd_open(0, %#x) = %s\n", -1U, errstr);
+ # endif
+ 
+@@ -68,7 +74,10 @@
+ 
+ 	k_pidfd_open(pid, flags);
+ # ifndef PATH_TRACING
+-	printf("pidfd_open(%d, %#x) = %s\n", pid, flags, errstr);
++	const char *pid_str = pidns_pid2str(PT_TGID);
++	pidns_print_leader();
++	printf("pidfd_open(%d%s, %#x) = %s\n",
++		pid, pid_str, flags, errstr);
+ # endif
+ 
+ # ifdef PRINT_PATHS
+@@ -80,17 +89,19 @@
+ # endif
+ 
+ # ifndef PATH_TRACING
+-	printf("pidfd_open(%d, 0) = "
++	pidns_print_leader();
++	printf("pidfd_open(%d%s, 0) = "
+ #  if defined PRINT_PIDFD
+-	       "%ld<pid:%d>\n", pid, rc, pid
++	       "%ld<pid:%d>\n", pid, pid_str, rc, pid
+ #  elif defined PRINT_PATHS
+-	       "%ld<anon_inode:[pidfd]>\n", pid, rc
++	       "%ld<anon_inode:[pidfd]>\n", pid, pid_str, rc
+ #  else
+-	       "%s\n", pid, errstr
++	       "%s\n", pid, pid_str, errstr
+ #  endif
+ 	       );
+ # endif
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests/pidfd_send_signal--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/pidfd_send_signal--pidns-translation.c	2020-09-09 19:52:38.881673621 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "pidfd_send_signal.c"
+Index: strace-5.7/tests/pidfd_send_signal.c
+===================================================================
+--- strace-5.7.orig/tests/pidfd_send_signal.c	2020-09-09 19:52:30.600668685 +0200
++++ strace-5.7/tests/pidfd_send_signal.c	2020-09-09 19:52:38.881673621 +0200
+@@ -10,6 +10,7 @@
+ #include "tests.h"
+ #include <unistd.h>
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #ifdef __NR_pidfd_send_signal
+ 
+@@ -36,6 +37,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	static const char null_path[] = "/dev/null";
+ 
+ 	int fd = open(null_path, O_RDONLY);
+@@ -46,19 +49,23 @@
+ 	const void *esi = (const void *) si + 1;
+ 
+ 	sys_pidfd_send_signal(fd, SIGUSR1, esi, 0);
++	pidns_print_leader();
+ 	printf("pidfd_send_signal(%d, SIGUSR1, %p, 0) = %s\n",
+ 	       fd, esi, errstr);
+ 
+ 	si->si_signo = SIGUSR1;
+ 	si->si_code = SI_QUEUE;
++	si->si_pid = getpid();
+ 
+ 	sys_pidfd_send_signal(fd, SIGUSR2, si, -1);
++	pidns_print_leader();
+ 	printf("pidfd_send_signal(%d, SIGUSR2, {si_signo=SIGUSR1"
+-	       ", si_code=SI_QUEUE, si_errno=%u, si_pid=%d, si_uid=%d"
++	       ", si_code=SI_QUEUE, si_errno=%u, si_pid=%d%s, si_uid=%d"
+ 	       ", si_value={int=%d, ptr=%p}}, %#x) = %s\n",
+-	       fd, si->si_errno, si->si_pid, si->si_uid, si->si_int, si->si_ptr,
+-	       -1U, errstr);
++	       fd, si->si_errno, si->si_pid, pidns_pid2str(PT_TGID), si->si_uid,
++	       si->si_int, si->si_ptr, -1U, errstr);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests/pidns-cache.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/pidns-cache.c	2020-09-09 19:52:38.882673622 +0200
+@@ -0,0 +1,62 @@
++/*
++ * Copyright (c) 2020 The strace developers.
++ * All rights reserved.
++ *
++ * SPDX-License-Identifier: GPL-2.0-or-later
++ */
++
++#include "tests.h"
++#include "scno.h"
++#include "pidns.h"
++
++#if defined __NR_getpid && (!defined __NR_getxpid || __NR_getxpid != __NR_getpid)
++
++# include <stdio.h>
++# include <unistd.h>
++# include <sys/time.h>
++
++# define SYSCALL_COUNT 1000
++
++/**
++ * Max ratio of the execution time with and without pidns translation.
++ */
++# define MAX_TIME_RATIO 20
++
++static long
++execute_syscalls(void)
++{
++	/* Load our PID in the cache */
++	syscall(__NR_getpid);
++
++	struct timeval stop, start;
++	gettimeofday(&start, NULL);
++
++	for (int i = 0; i < SYSCALL_COUNT; i++)
++	       syscall(__NR_getpid);
++
++	gettimeofday(&stop, NULL);
++
++	return (stop.tv_usec - start.tv_usec) +
++		(stop.tv_sec - start.tv_sec) * 1000000;
++}
++
++int
++main(void)
++{
++	long max_us = execute_syscalls() * MAX_TIME_RATIO;
++
++	pidns_test_init();
++
++	long us = execute_syscalls();
++	if (us > max_us)
++		error_msg_and_fail("pidns translation took too long: %ld us "
++		                   "(max: %ld us)", us, max_us);
++
++	return 0;
++}
++
++#else
++
++SKIP_MAIN_UNDEFINED("__NR_getpid")
++
++#endif
+Index: strace-5.7/tests/pidns-cache.test
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/pidns-cache.test	2020-09-09 19:52:38.882673622 +0200
+@@ -0,0 +1,15 @@
++#!/bin/sh
++#
++# Test pidns translation cache.
++#
++# Copyright (c) 2020 The strace developers.
++# All rights reserved.
++#
++# SPDX-License-Identifier: GPL-2.0-or-later
++
++. "${srcdir=.}/init.sh"
++
++check_prog timeout
++
++run_prog > /dev/null
++run_strace --pidns-translation -f -e trace=getpid $args
+Index: strace-5.7/tests/prlimit64--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/prlimit64--pidns-translation.c	2020-09-09 19:52:38.882673622 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "prlimit64.c"
+Index: strace-5.7/tests/prlimit64.c
+===================================================================
+--- strace-5.7.orig/tests/prlimit64.c	2020-09-09 19:52:30.600668685 +0200
++++ strace-5.7/tests/prlimit64.c	2020-09-09 19:52:38.882673622 +0200
+@@ -19,6 +19,7 @@
+ # include <sys/resource.h>
+ # include <unistd.h>
+ 
++# include "pidns.h"
+ # include "xlat.h"
+ # include "xlat/resources.h"
+ 
+@@ -42,8 +43,11 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	unsigned long pid =
+ 		(unsigned long) 0xdefaced00000000ULL | (unsigned) getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
+ 	uint64_t *const rlimit = tail_alloc(sizeof(*rlimit) * 2);
+ 	const struct xlat_data *xlat;
+ 	size_t i = 0;
+@@ -54,18 +58,23 @@
+ 
+ 		unsigned long res = 0xfacefeed00000000ULL | xlat->val;
+ 		long rc = syscall(__NR_prlimit64, pid, res, 0, rlimit);
++		pidns_print_leader();
+ 		if (rc)
+-			printf("prlimit64(%d, %s, NULL, %p) = %ld %s (%m)\n",
+-			       (unsigned) pid, xlat->str, rlimit,
++			printf("prlimit64(%d%s, %s, NULL, %p) ="
++				     " %ld %s (%m)\n",
++			       (unsigned) pid, pid_str,
++			       xlat->str, rlimit,
+ 			       rc, errno2name());
+ 		else
+-			printf("prlimit64(%d, %s, NULL"
++			printf("prlimit64(%d%s, %s, NULL"
+ 			       ", {rlim_cur=%s, rlim_max=%s}) = 0\n",
+-			       (unsigned) pid, xlat->str,
++			       (unsigned) pid, pid_str,
++			       xlat->str,
+ 			       sprint_rlim(rlimit[0]),
+ 			       sprint_rlim(rlimit[1]));
+ 	}
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests/process_vm_readv--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/process_vm_readv--pidns-translation.c	2020-09-09 19:52:38.882673622 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "process_vm_readv.c"
+Index: strace-5.7/tests/process_vm_readv_writev.c
+===================================================================
+--- strace-5.7.orig/tests/process_vm_readv_writev.c	2020-09-09 19:52:30.601668686 +0200
++++ strace-5.7/tests/process_vm_readv_writev.c	2020-09-09 19:52:38.883673622 +0200
+@@ -12,6 +12,7 @@
+ #include <stdio.h>
+ #include <unistd.h>
+ #include <sys/uio.h>
++#include "pidns.h"
+ 
+ #if OP_WR
+ # define in_iovec  rmt_iovec
+@@ -121,7 +122,7 @@
+ }
+ 
+ static void
+-do_call(kernel_ulong_t pid,
++do_call(kernel_ulong_t pid, enum pid_type pid_type,
+ 	kernel_ulong_t local_iov, const char *local_arg,
+ 	kernel_ulong_t liovcnt,
+ 	kernel_ulong_t remote_iov, const char *remote_arg,
+@@ -135,7 +136,8 @@
+ 		flags);
+ 	errstr = sprintrc(rc);
+ 
+-	printf("%s(%d, ", OP_STR, (int) pid);
++	pidns_print_leader();
++	printf("%s(%d%s, ", OP_STR, (int) pid, pidns_pid2str(pid_type));
+ 
+ 	if (pr_iov)
+ 		pr_iov((const struct iovec *) (uintptr_t) local_iov, local_arg,
+@@ -164,6 +166,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	enum {
+ 		SIZE_11 = 2,
+ 		SIZE_12 = 3,
+@@ -243,18 +247,18 @@
+ 	fill_memory_ex(data2_out, SIZE_2, SEGM2_BASE, SIZE_2);
+ 
+ 
+-	do_call(bogus_pid, (kernel_ulong_t) (uintptr_t) ARG_STR(NULL),
++	do_call(bogus_pid, PT_NONE, (kernel_ulong_t) (uintptr_t) ARG_STR(NULL),
+ 		bogus_iovcnt1, (kernel_ulong_t) (uintptr_t) ARG_STR(NULL),
+ 		bogus_iovcnt2, bogus_flags, NULL);
+ 
+-	do_call(my_pid, ptr_cast(bogus_iov + ARRAY_SIZE(bogus_iovec)),
++	do_call(my_pid, PT_TGID, ptr_cast(bogus_iov + ARRAY_SIZE(bogus_iovec)),
+ 		"[]", 0, ptr_cast(in_iov + ARRAY_SIZE(in_iovec)), "[]",
+ 		0, 0, NULL);
+-	do_call(my_pid, ptr_cast(bogus_iov + ARRAY_SIZE(bogus_iovec)), NULL,
+-		bogus_iovcnt1, ptr_cast(in_iov + ARRAY_SIZE(in_iovec)), NULL,
+-		bogus_iovcnt2, 0, print_iov);
++	do_call(my_pid, PT_TGID, ptr_cast(bogus_iov + ARRAY_SIZE(bogus_iovec)),
++		NULL, bogus_iovcnt1, ptr_cast(in_iov + ARRAY_SIZE(in_iovec)),
++		NULL, bogus_iovcnt2, 0, print_iov);
+ 
+-	do_call(my_pid, ptr_cast(bogus_iov), (char *) &bogus_arg,
++	do_call(my_pid, PT_TGID, ptr_cast(bogus_iov), (char *) &bogus_arg,
+ 		ARRAY_SIZE(bogus_iovec), ptr_cast(rmt_iov + 2),
+ 		(char *) &rmt_arg_cut, ARRAY_SIZE(rmt_iovec) - 2, 0, print_iov);
+ 
+@@ -263,7 +267,7 @@
+ 	lcl_arg_cut.check_rc = 1;
+ #endif
+ 
+-	do_call(my_pid, ptr_cast(lcl_iov + 2), (char *) &lcl_arg_cut,
++	do_call(my_pid, PT_TGID, ptr_cast(lcl_iov + 2), (char *) &lcl_arg_cut,
+ 		ARRAY_SIZE(lcl_iovec) - 1, ptr_cast(bogus_iov + 2),
+ 		(char *) &bogus_arg_cut, ARRAY_SIZE(bogus_iovec) - 1, 0,
+ 		print_iov);
+@@ -273,15 +277,16 @@
+ 	rmt_arg_cut.addr_term = 1;
+ 	rmt_arg_cut.count = 5;
+ 
+-	do_call(my_pid, ptr_cast(lcl_iov + 2), (char *) &lcl_arg_cut,
++	do_call(my_pid, PT_TGID, ptr_cast(lcl_iov + 2), (char *) &lcl_arg_cut,
+ 		ARRAY_SIZE(lcl_iovec) - 2, ptr_cast(rmt_iov + 1),
+ 		(char *) &rmt_arg_cut, ARRAY_SIZE(rmt_iovec), 0, print_iov);
+ 
+ 	/* Correct call */
+-	do_call(my_pid, ptr_cast(lcl_iov), (char *) &lcl_arg,
++	do_call(my_pid, PT_TGID, ptr_cast(lcl_iov), (char *) &lcl_arg,
+ 		ARRAY_SIZE(lcl_iovec), ptr_cast(rmt_iov), (char *) &rmt_arg,
+ 		ARRAY_SIZE(rmt_iovec), 0, print_iov);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 
+ 	return 0;
+Index: strace-5.7/tests/process_vm_writev--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/process_vm_writev--pidns-translation.c	2020-09-09 19:52:38.883673622 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "process_vm_writev.c"
+Index: strace-5.7/tests/rt_sigqueueinfo--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/rt_sigqueueinfo--pidns-translation.c	2020-09-09 19:52:38.883673622 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "rt_sigqueueinfo.c"
+Index: strace-5.7/tests/rt_sigqueueinfo.c
+===================================================================
+--- strace-5.7.orig/tests/rt_sigqueueinfo.c	2020-09-09 19:52:30.601668686 +0200
++++ strace-5.7/tests/rt_sigqueueinfo.c	2020-09-09 19:52:38.883673622 +0200
+@@ -7,6 +7,7 @@
+  */
+ 
+ #include "tests.h"
++#include "pidns.h"
+ #include <assert.h>
+ #include <stdio.h>
+ #include <signal.h>
+@@ -15,6 +16,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	struct sigaction sa = {
+ 		.sa_handler = SIG_IGN
+ 	};
+@@ -22,15 +25,19 @@
+ 		.sival_ptr = (void *) (unsigned long) 0xdeadbeefbadc0dedULL
+ 	};
+ 	pid_t pid = getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
+ 
+ 	assert(sigaction(SIGUSR1, &sa, NULL) == 0);
+ 	if (sigqueue(pid, SIGUSR1, value))
+ 		perror_msg_and_skip("sigqueue");
+-	printf("rt_sigqueueinfo(%u, SIGUSR1, {si_signo=SIGUSR1, "
+-		"si_code=SI_QUEUE, si_pid=%d, si_uid=%d, "
++	pidns_print_leader();
++	printf("rt_sigqueueinfo(%d%s, SIGUSR1, {si_signo=SIGUSR1, "
++		"si_code=SI_QUEUE, si_pid=%d%s, si_uid=%u, "
+ 		"si_value={int=%d, ptr=%p}}) = 0\n",
+-		pid, pid, getuid(), value.sival_int, value.sival_ptr);
+-	printf("+++ exited with 0 +++\n");
++		pid, pid_str, pid, pid_str,
++		getuid(), value.sival_int, value.sival_ptr);
++	pidns_print_leader();
++	puts("+++ exited with 0 +++");
+ 
+ 	return 0;
+ }
+Index: strace-5.7/tests/rt_tgsigqueueinfo--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/rt_tgsigqueueinfo--pidns-translation.c	2020-09-09 19:52:38.883673622 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "rt_tgsigqueueinfo.c"
+Index: strace-5.7/tests/rt_tgsigqueueinfo.c
+===================================================================
+--- strace-5.7.orig/tests/rt_tgsigqueueinfo.c	2020-09-09 19:52:30.601668686 +0200
++++ strace-5.7/tests/rt_tgsigqueueinfo.c	2020-09-09 19:52:38.884673623 +0200
+@@ -10,8 +10,9 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+-#ifdef __NR_rt_tgsigqueueinfo
++#if defined __NR_rt_tgsigqueueinfo && defined __NR_gettid
+ 
+ # include <errno.h>
+ # include <signal.h>
+@@ -20,11 +21,11 @@
+ # include <unistd.h>
+ 
+ static long
+-k_tgsigqueueinfo(const pid_t pid, const int sig, const void *const info)
++k_tgsigqueueinfo(const pid_t tgid, const int tid, const int sig, const void *const info)
+ {
+ 	return syscall(__NR_rt_tgsigqueueinfo,
+-		       F8ILL_KULONG_MASK | pid,
+-		       F8ILL_KULONG_MASK | pid,
++		       F8ILL_KULONG_MASK | tgid,
++		       F8ILL_KULONG_MASK | tid,
+ 		       F8ILL_KULONG_MASK | sig,
+ 		       info);
+ }
+@@ -32,6 +33,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	const struct sigaction sa = {
+ 		.sa_handler = SIG_IGN
+ 	};
+@@ -48,17 +51,22 @@
+ 	info->si_value.sival_ptr =
+ 		(void *) (unsigned long) 0xdeadbeeffacefeedULL;
+ 
+-	if (k_tgsigqueueinfo(info->si_pid, SIGUSR1, info))
++	if (k_tgsigqueueinfo(getpid(), syscall(__NR_gettid), SIGUSR1, info))
+ 		(errno == ENOSYS ? perror_msg_and_skip : perror_msg_and_fail)(
+ 			"rt_tgsigqueueinfo");
+ 
+-	printf("rt_tgsigqueueinfo(%u, %u, %s, {si_signo=%s"
+-		", si_code=SI_QUEUE, si_errno=ENOENT, si_pid=%d"
++	pidns_print_leader();
++	printf("rt_tgsigqueueinfo(%d%s, %d%s, %s, {si_signo=%s"
++		", si_code=SI_QUEUE, si_errno=ENOENT, si_pid=%d%s"
+ 		", si_uid=%d, si_value={int=%d, ptr=%p}}) = 0\n",
+-		info->si_pid, info->si_pid, "SIGUSR1", "SIGUSR1",
+-		info->si_pid, info->si_uid, info->si_value.sival_int,
++		info->si_pid, pidns_pid2str(PT_TGID),
++		info->si_pid, pidns_pid2str(PT_TID),
++		"SIGUSR1", "SIGUSR1",
++		info->si_pid, pidns_pid2str(PT_TGID),
++		info->si_uid, info->si_value.sival_int,
+ 		info->si_value.sival_ptr);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests/sched_xetaffinity--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/sched_xetaffinity--pidns-translation.c	2020-09-09 19:52:38.884673623 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "sched_xetaffinity.c"
+Index: strace-5.7/tests/sched_xetaffinity.c
+===================================================================
+--- strace-5.7.orig/tests/sched_xetaffinity.c	2020-09-09 19:52:30.602668687 +0200
++++ strace-5.7/tests/sched_xetaffinity.c	2020-09-09 19:52:38.884673623 +0200
+@@ -10,6 +10,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ #include <sched.h>
+ 
+ #if defined __NR_sched_getaffinity && defined __NR_sched_setaffinity \
+@@ -41,8 +42,11 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	unsigned int cpuset_size = 1;
+ 	const pid_t pid = getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
+ 
+ 	while (cpuset_size) {
+ 		assert(getaffinity(pid, cpuset_size, NULL) == -1);
+@@ -50,18 +54,21 @@
+ 			break;
+ 		if (EINVAL != errno)
+ 			perror_msg_and_skip("sched_getaffinity");
+-		printf("sched_getaffinity(%d, %u, NULL) = %s\n",
+-		       pid, cpuset_size, errstr);
++		pidns_print_leader();
++		printf("sched_getaffinity(%d%s, %u, NULL) = %s\n",
++		       pid, pid_str, cpuset_size, errstr);
+ 		cpuset_size <<= 1;
+ 	}
+ 	assert(cpuset_size);
+-	printf("sched_getaffinity(%d, %u, NULL) = %s\n",
+-	       pid, cpuset_size, errstr);
++	pidns_print_leader();
++	printf("sched_getaffinity(%d%s, %u, NULL) = %s\n",
++	       pid, pid_str, cpuset_size, errstr);
+ 
+ 	cpu_set_t *cpuset = tail_alloc(cpuset_size);
+ 	getaffinity(pid, cpuset_size, cpuset + 1);
+-	printf("sched_getaffinity(%d, %u, %p) = %s\n",
+-	       pid, cpuset_size, cpuset + 1, errstr);
++	pidns_print_leader();
++	printf("sched_getaffinity(%d%s, %u, %p) = %s\n",
++	       pid, pid_str, cpuset_size, cpuset + 1, errstr);
+ 
+ 	int ret_size = getaffinity(pid, cpuset_size, cpuset);
+ 	if (ret_size < 0)
+@@ -69,7 +76,8 @@
+ 				    pid, (unsigned) cpuset_size, cpuset, errstr);
+ 	assert(ret_size <= (int) cpuset_size);
+ 
+-	printf("sched_getaffinity(%d, %u, [", pid, cpuset_size);
++	pidns_print_leader();
++	printf("sched_getaffinity(%d%s, %u, [", pid, pid_str, cpuset_size);
+ 	const char *sep;
+ 	unsigned int i, cpu;
+ 	for (i = 0, cpu = 0, sep = ""; i < (unsigned) ret_size * 8; ++i) {
+@@ -85,8 +93,9 @@
+ 	CPU_SET_S(cpu, cpuset_size, cpuset);
+ 	if (setaffinity(pid, cpuset_size, cpuset))
+ 		perror_msg_and_skip("sched_setaffinity");
+-	printf("sched_setaffinity(%d, %u, [%u]) = 0\n",
+-	       pid, cpuset_size, cpu);
++	pidns_print_leader();
++	printf("sched_setaffinity(%d%s, %u, [%u]) = 0\n",
++	       pid, pid_str, cpuset_size, cpu);
+ 
+ 	const unsigned int big_size = cpuset_size < 128 ? 128 : cpuset_size * 2;
+ 	cpuset = tail_alloc(big_size);
+@@ -95,7 +104,8 @@
+ 		perror_msg_and_fail("sched_getaffinity(%d, %u, %p) = %s\n",
+ 				    pid, big_size, cpuset, errstr);
+ 	assert(ret_size <= (int) big_size);
+-	printf("sched_getaffinity(%d, %u, [", pid, big_size);
++	pidns_print_leader();
++	printf("sched_getaffinity(%d%s, %u, [", pid, pid_str, big_size);
+ 	for (i = 0, sep = ""; i < (unsigned) ret_size * 8; ++i) {
+ 		if (CPU_ISSET_S(i, (unsigned) ret_size, cpuset)) {
+ 			printf("%s%u", sep, i);
+@@ -104,6 +114,7 @@
+ 	}
+ 	printf("]) = %s\n", errstr);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests/sched_xetattr--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/sched_xetattr--pidns-translation.c	2020-09-09 19:52:38.884673623 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "sched_xetattr.c"
+Index: strace-5.7/tests/sched_xetattr.c
+===================================================================
+--- strace-5.7.orig/tests/sched_xetattr.c	2020-09-09 19:52:30.603668687 +0200
++++ strace-5.7/tests/sched_xetattr.c	2020-09-09 19:52:38.885673624 +0200
+@@ -15,6 +15,7 @@
+ # include <stdio.h>
+ # include <sched.h>
+ # include <unistd.h>
++# include "pidns.h"
+ # include "sched_attr.h"
+ # include "xlat.h"
+ # include "xlat/schedulers.h"
+@@ -41,6 +42,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	static const kernel_ulong_t bogus_pid =
+ 		(kernel_ulong_t) 0xdefacedfacefeedULL;
+ 	static const kernel_ulong_t bogus_size =
+@@ -48,20 +51,28 @@
+ 	static const kernel_ulong_t bogus_flags =
+ 		(kernel_ulong_t) 0xdefaceddeadc0deULL;
+ 
++	const int pid = getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
++
+ 	TAIL_ALLOC_OBJECT_CONST_PTR(struct sched_attr, attr);
+ 	TAIL_ALLOC_OBJECT_CONST_PTR(unsigned int, psize);
+ 	void *const efault = attr + 1;
+ 
+-	sys_sched_getattr(0, 0, 0, 0);
+-	printf("sched_getattr(0, NULL, 0, 0) = %s\n", errstr);
++	sys_sched_getattr(pid, 0, 0, 0);
++	pidns_print_leader();
++	printf("sched_getattr(%d%s, NULL, 0, 0) = %s\n",
++		pid, pid_str, errstr);
+ 
+ 	sys_sched_getattr(0, (unsigned long) attr, 0, 0);
++	pidns_print_leader();
+ 	printf("sched_getattr(0, %p, 0, 0) = %s\n", attr, errstr);
+ 
+ 	sys_sched_getattr(bogus_pid, 0, 0, 0);
++	pidns_print_leader();
+ 	printf("sched_getattr(%d, NULL, 0, 0) = %s\n", (int) bogus_pid, errstr);
+ 
+ 	sys_sched_getattr(-1U, (unsigned long) attr, bogus_size, bogus_flags);
++	pidns_print_leader();
+ 	printf("sched_getattr(-1, %p, %s%u, %u) = %s\n",
+ 	       attr,
+ # if defined __arm64__ || defined __aarch64__
+@@ -72,11 +83,13 @@
+ 	       (unsigned) bogus_size, (unsigned) bogus_flags, errstr);
+ 
+ 	sys_sched_getattr(0, (unsigned long) efault, SCHED_ATTR_MIN_SIZE, 0);
++	pidns_print_leader();
+ 	printf("sched_getattr(0, %p, %u, 0) = %s\n",
+ 	       efault, (unsigned) SCHED_ATTR_MIN_SIZE, errstr);
+ 
+ 	if (sys_sched_getattr(0, (unsigned long) attr, SCHED_ATTR_MIN_SIZE, 0))
+ 		perror_msg_and_skip("sched_getattr");
++	pidns_print_leader();
+ 	printf("sched_getattr(0, {size=%u, sched_policy=", attr->size);
+ 	printxval(schedulers, attr->sched_policy, NULL);
+ 	printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u"
+@@ -91,11 +104,13 @@
+ 	       (unsigned) SCHED_ATTR_MIN_SIZE);
+ 
+ 	sys_sched_getattr(0, (unsigned long) efault, sizeof(*attr), 0);
++	pidns_print_leader();
+ 	printf("sched_getattr(0, %p, %u, 0) = %s\n",
+ 	       efault, (unsigned) sizeof(*attr), errstr);
+ 
+ 	if (sys_sched_getattr(0, (unsigned long) attr, sizeof(*attr), 0))
+ 		perror_msg_and_skip("sched_getattr");
++	pidns_print_leader();
+ 	printf("sched_getattr(0, {size=%u, sched_policy=", attr->size);
+ 	printxval(schedulers, attr->sched_policy, NULL);
+ 	printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u"
+@@ -121,11 +136,13 @@
+ 			  F8ILL_KULONG_MASK | sizeof(*attr), F8ILL_KULONG_MASK);
+ # if defined __arm64__ || defined __aarch64__
+ 	if (rc) {
++		pidns_print_leader();
+ 		printf("sched_getattr(0, %p, 0xffffffff<<32|%u, 0) = %s\n",
+ 		       attr, (unsigned) sizeof(*attr), errstr);
+ 	} else
+ # endif
+ 	{
++		pidns_print_leader();
+ 		printf("sched_getattr(0, {size=%u, sched_policy=", attr->size);
+ 		printxval(schedulers, attr->sched_policy, NULL);
+ 		printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u"
+@@ -146,13 +163,16 @@
+ 	}
+ 
+ 	sys_sched_setattr(bogus_pid, 0, 0);
++	pidns_print_leader();
+ 	printf("sched_setattr(%d, NULL, 0) = %s\n", (int) bogus_pid, errstr);
+ 
+ 	attr->sched_flags |= 1;
+ 
+-	if (sys_sched_setattr(0, (unsigned long) attr, 0))
++	if (sys_sched_setattr(pid, (unsigned long) attr, 0))
+ 		perror_msg_and_skip("sched_setattr");
+-	printf("sched_setattr(0, {size=%u, sched_policy=", attr->size);
++	pidns_print_leader();
++	printf("sched_setattr(%d%s, {size=%u, sched_policy=",
++		pid, pid_str, attr->size);
+ 	printxval(schedulers, attr->sched_policy, NULL);
+ 	printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u"
+ 	       ", sched_runtime=%" PRIu64 ", sched_deadline=%" PRIu64
+@@ -172,6 +192,7 @@
+ 
+ 	sys_sched_setattr(F8ILL_KULONG_MASK, (unsigned long) attr,
+ 			  F8ILL_KULONG_MASK);
++	pidns_print_leader();
+ 	printf("sched_setattr(0, {size=%u, sched_policy=", attr->size);
+ 	printxval(schedulers, attr->sched_policy, NULL);
+ 	printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u"
+@@ -193,11 +214,13 @@
+ 	*psize = attr->size;
+ 
+ 	sys_sched_setattr(0, (unsigned long) psize, 0);
++	pidns_print_leader();
+ 	printf("sched_setattr(0, %p, 0) = %s\n", psize, errstr);
+ 
+ 	attr->size = 0;
+ 
+ 	sys_sched_setattr(0, (unsigned long) attr, 0);
++	pidns_print_leader();
+ 	printf("sched_setattr(0, {size=%u, sched_policy=", attr->size);
+ 	printxval(schedulers, attr->sched_policy, NULL);
+ 	printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u"
+@@ -213,12 +236,14 @@
+ 	attr->size = 1;
+ 
+ 	sys_sched_setattr(0, (unsigned long) attr, 0);
++	pidns_print_leader();
+ 	printf("sched_setattr(0, {size=%u} => {size=%u}, 0) = %s\n",
+ 	       1, attr->size, errstr);
+ 
+ 	attr->size = SCHED_ATTR_MIN_SIZE - 1;
+ 
+ 	sys_sched_setattr(0, (unsigned long) attr, 0);
++	pidns_print_leader();
+ 	printf("sched_setattr(0, {size=%u} => {size=%u}, 0) = %s\n",
+ 	       SCHED_ATTR_MIN_SIZE - 1, attr->size, errstr);
+ 
+@@ -232,6 +257,7 @@
+ 	attr->sched_period = 0xded1ca7edda7aca7ULL;
+ 
+ 	sys_sched_setattr(bogus_pid, (unsigned long) attr, bogus_flags);
++	pidns_print_leader();
+ 	printf("sched_setattr(%d, {size=%u, sched_policy=%#x /* SCHED_??? */, "
+ 	       "sched_flags=%#" PRIx64 " /* SCHED_FLAG_??? */, "
+ 	       "sched_nice=%d, sched_priority=%u, sched_runtime=%" PRIu64 ", "
+@@ -274,6 +300,7 @@
+ 	attr->sched_period = 0xded1ca7edda7aca7ULL;
+ 
+ 	sys_sched_setattr(bogus_pid, (unsigned long) attr, bogus_flags);
++	pidns_print_leader();
+ 	printf("sched_setattr(%d, {size=%u, sched_policy=%#x /* SCHED_??? */, "
+ 	       "sched_flags=SCHED_FLAG_RESET_ON_FORK|SCHED_FLAG_RECLAIM|"
+ 	       "SCHED_FLAG_DL_OVERRUN|0x80, "
+@@ -296,11 +323,13 @@
+ 		const kernel_ulong_t ill = f8ill_ptr_to_kulong(attr);
+ 
+ 		sys_sched_getattr(0, ill, sizeof(*attr), 0);
++		pidns_print_leader();
+ 		printf("sched_getattr(0, %#llx, %u, 0) = %s\n",
+ 		       (unsigned long long) ill, (unsigned) sizeof(*attr),
+ 		       errstr);
+ 
+ 		sys_sched_setattr(0, ill, 0);
++		pidns_print_leader();
+ 		printf("sched_setattr(0, %#llx, 0) = %s\n",
+ 		       (unsigned long long) ill, errstr);
+ 	}
+@@ -310,6 +339,7 @@
+ 	attr->sched_flags = 0x8fULL;
+ 
+ 	sys_sched_setattr(bogus_pid, (unsigned long) attr, bogus_flags);
++	pidns_print_leader();
+ 	printf("sched_setattr(%d, {size=%u, "
+ 	       "sched_flags=SCHED_FLAG_RESET_ON_FORK|SCHED_FLAG_RECLAIM|"
+ 	       "SCHED_FLAG_DL_OVERRUN|SCHED_FLAG_KEEP_POLICY|0x80, "
+@@ -329,11 +359,13 @@
+ 		const kernel_ulong_t ill = f8ill_ptr_to_kulong(attr);
+ 
+ 		sys_sched_getattr(0, ill, sizeof(*attr), 0);
++		pidns_print_leader();
+ 		printf("sched_getattr(0, %#llx, %u, 0) = %s\n",
+ 		       (unsigned long long) ill, (unsigned) sizeof(*attr),
+ 		       errstr);
+ 
+ 		sys_sched_setattr(0, ill, 0);
++		pidns_print_leader();
+ 		printf("sched_setattr(0, %#llx, 0) = %s\n",
+ 		       (unsigned long long) ill, errstr);
+ 	}
+@@ -342,6 +374,7 @@
+ 	attr->sched_flags = 0xe7ULL;
+ 
+ 	sys_sched_setattr(bogus_pid, (unsigned long) attr, bogus_flags);
++	pidns_print_leader();
+ 	printf("sched_setattr(%d, {size=%u, sched_policy=%#x /* SCHED_??? */, "
+ 	       "sched_flags=SCHED_FLAG_RESET_ON_FORK|SCHED_FLAG_RECLAIM|"
+ 	       "SCHED_FLAG_DL_OVERRUN|SCHED_FLAG_UTIL_CLAMP_MIN"
+@@ -365,11 +398,13 @@
+ 		const kernel_ulong_t ill = f8ill_ptr_to_kulong(attr);
+ 
+ 		sys_sched_getattr(0, ill, sizeof(*attr), 0);
++		pidns_print_leader();
+ 		printf("sched_getattr(0, %#llx, %u, 0) = %s\n",
+ 		       (unsigned long long) ill, (unsigned) sizeof(*attr),
+ 		       errstr);
+ 
+ 		sys_sched_setattr(0, ill, 0);
++		pidns_print_leader();
+ 		printf("sched_setattr(0, %#llx, 0) = %s\n",
+ 		       (unsigned long long) ill, errstr);
+ 	}
+@@ -377,6 +412,7 @@
+ 	attr->sched_flags = 0xcaffee90LL;
+ 
+ 	sys_sched_setattr(bogus_pid, (unsigned long) attr, bogus_flags);
++	pidns_print_leader();
+ 	printf("sched_setattr(%d, {size=%u, sched_flags=SCHED_FLAG_KEEP_PARAMS"
+ 	       "|0xcaffee80, sched_util_min=%u, sched_util_max=%u}, %u) = %s\n",
+ 	       (int) bogus_pid,
+@@ -389,15 +425,18 @@
+ 		const kernel_ulong_t ill = f8ill_ptr_to_kulong(attr);
+ 
+ 		sys_sched_getattr(0, ill, sizeof(*attr), 0);
++		pidns_print_leader();
+ 		printf("sched_getattr(0, %#llx, %u, 0) = %s\n",
+ 		       (unsigned long long) ill, (unsigned) sizeof(*attr),
+ 		       errstr);
+ 
+ 		sys_sched_setattr(0, ill, 0);
++		pidns_print_leader();
+ 		printf("sched_setattr(0, %#llx, 0) = %s\n",
+ 		       (unsigned long long) ill, errstr);
+ 	}
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests/sched_xetparam--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/sched_xetparam--pidns-translation.c	2020-09-09 19:52:38.885673624 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "sched_xetparam.c"
+Index: strace-5.7/tests/sched_xetparam.c
+===================================================================
+--- strace-5.7.orig/tests/sched_xetparam.c	2020-09-09 19:52:30.603668687 +0200
++++ strace-5.7/tests/sched_xetparam.c	2020-09-09 19:52:38.885673624 +0200
+@@ -7,6 +7,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++# include "pidns.h"
+ 
+ #if defined __NR_sched_getparam && defined __NR_sched_setparam
+ 
+@@ -17,18 +18,27 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	struct sched_param *const param =
+ 		tail_alloc(sizeof(struct sched_param));
+ 
+-	long rc = syscall(__NR_sched_getparam, 0, param);
+-	printf("sched_getparam(0, [%d]) = %ld\n",
+-	       param->sched_priority, rc);
++	const int pid = getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
++
++	long rc = syscall(__NR_sched_getparam, pid, param);
++	pidns_print_leader();
++	printf("sched_getparam(%d%s, [%d]) = %ld\n",
++	       pid, pid_str, param->sched_priority, rc);
+ 
+ 	param->sched_priority = -1;
+-	rc = syscall(__NR_sched_setparam, 0, param);
+-	printf("sched_setparam(0, [%d]) = %ld %s (%m)\n",
++	rc = syscall(__NR_sched_setparam, pid, param);
++	pidns_print_leader();
++	printf("sched_setparam(%d%s, [%d]) = %ld %s (%m)\n",
++	       pid, pid_str,
+ 	       param->sched_priority, rc, errno2name());
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests/sched_xetscheduler--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/sched_xetscheduler--pidns-translation.c	2020-09-09 19:52:38.885673624 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "sched_xetscheduler.c"
+Index: strace-5.7/tests/sched_xetscheduler.c
+===================================================================
+--- strace-5.7.orig/tests/sched_xetscheduler.c	2020-09-09 19:52:30.603668687 +0200
++++ strace-5.7/tests/sched_xetscheduler.c	2020-09-09 19:52:38.886673624 +0200
+@@ -7,6 +7,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #if defined __NR_sched_getscheduler && defined __NR_sched_setscheduler
+ 
+@@ -17,8 +18,13 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	TAIL_ALLOC_OBJECT_CONST_PTR(struct sched_param, param);
+-	long rc = syscall(__NR_sched_getscheduler, 0);
++	const int pid = getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
++
++	long rc = syscall(__NR_sched_getscheduler, pid);
+ 	const char *scheduler;
+ 	switch (rc) {
+ 		case SCHED_FIFO:
+@@ -50,33 +56,43 @@
+ 		default:
+ 			scheduler = "SCHED_OTHER";
+ 	}
+-	printf("sched_getscheduler(0) = %ld (%s)\n",
+-	       rc, scheduler);
++	pidns_print_leader();
++	printf("sched_getscheduler(%d%s) = %ld (%s)\n",
++	       pid, pid_str, rc, scheduler);
+ 
+ 	rc = syscall(__NR_sched_getscheduler, -1);
++	pidns_print_leader();
+ 	printf("sched_getscheduler(-1) = %s\n", sprintrc(rc));
+ 
+ 	param->sched_priority = -1;
+ 
+-	rc = syscall(__NR_sched_setscheduler, 0, SCHED_FIFO, NULL);
+-	printf("sched_setscheduler(0, SCHED_FIFO, NULL) = %s\n", sprintrc(rc));
+-
+-	rc = syscall(__NR_sched_setscheduler, 0, SCHED_FIFO, param + 1);
+-	printf("sched_setscheduler(0, SCHED_FIFO, %p) = %s\n", param + 1,
+-	       sprintrc(rc));
+-
+-	rc = syscall(__NR_sched_setscheduler, 0, 0xfaceda7a, param);
+-	printf("sched_setscheduler(0, %#x /* SCHED_??? */, [%d]) = %s\n",
+-	       0xfaceda7a, param->sched_priority, sprintrc(rc));
++	rc = syscall(__NR_sched_setscheduler, pid, SCHED_FIFO, NULL);
++	pidns_print_leader();
++	printf("sched_setscheduler(%d%s, SCHED_FIFO, NULL) = %s\n",
++	       pid, pid_str, sprintrc(rc));
++
++	rc = syscall(__NR_sched_setscheduler, pid, SCHED_FIFO, param + 1);
++	pidns_print_leader();
++	printf("sched_setscheduler(%d%s, SCHED_FIFO, %p) = %s\n",
++	       pid, pid_str, param + 1, sprintrc(rc));
++
++	rc = syscall(__NR_sched_setscheduler, pid, 0xfaceda7a, param);
++	pidns_print_leader();
++	printf("sched_setscheduler(%d%s, %#x /* SCHED_??? */, [%d]) = %s\n",
++	       pid, pid_str, 0xfaceda7a,
++	       param->sched_priority, sprintrc(rc));
+ 
+ 	rc = syscall(__NR_sched_setscheduler, -1, SCHED_FIFO, param);
++	pidns_print_leader();
+ 	printf("sched_setscheduler(-1, SCHED_FIFO, [%d]) = %s\n",
+ 	       param->sched_priority, sprintrc(rc));
+ 
+-	rc = syscall(__NR_sched_setscheduler, 0, SCHED_FIFO, param);
+-	printf("sched_setscheduler(0, SCHED_FIFO, [%d]) = %s\n",
+-	       param->sched_priority, sprintrc(rc));
++	rc = syscall(__NR_sched_setscheduler, pid, SCHED_FIFO, param);
++	pidns_print_leader();
++	printf("sched_setscheduler(%d%s, SCHED_FIFO, [%d]) = %s\n",
++	       pid, pid_str, param->sched_priority, sprintrc(rc));
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests/signal_receive--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/signal_receive--pidns-translation.c	2020-09-09 19:52:38.886673624 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "signal_receive.c"
+Index: strace-5.7/tests/signal_receive.c
+===================================================================
+--- strace-5.7.orig/tests/signal_receive.c	2020-09-09 19:52:30.604668688 +0200
++++ strace-5.7/tests/signal_receive.c	2020-09-09 19:52:38.886673624 +0200
+@@ -8,6 +8,7 @@
+  */
+ 
+ #include "tests.h"
++#include "pidns.h"
+ #include <signal.h>
+ #include <stdio.h>
+ #include <unistd.h>
+@@ -26,10 +27,13 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	static const char prefix[] = "KERNEL BUG";
+ 	int printed = 0;
+ 
+ 	const int pid = getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
+ 	const int uid = geteuid();
+ 
+ 	for (int sig = 1; sig <= 31; ++sig) {
+@@ -73,10 +77,13 @@
+ 		const int e_pid = s_pid;
+ 		const int e_uid = s_uid;
+ #endif
+-		printf("kill(%d, %s) = 0\n", pid, signal2name(sig));
+-		printf("--- %s {si_signo=%s, si_code=SI_USER, si_pid=%d"
++		pidns_print_leader();
++		printf("kill(%d%s, %s) = 0\n", pid, pid_str, signal2name(sig));
++		pidns_print_leader();
++		printf("--- %s {si_signo=%s, si_code=SI_USER, si_pid=%d%s"
+ 		       ", si_uid=%d} ---\n",
+-		       signal2name(sig), signal2name(e_sig), e_pid, e_uid);
++		       signal2name(sig), signal2name(e_sig),
++		       e_pid, pid_str, e_uid);
+ 
+ 		if (s_code || sig != s_sig || pid != s_pid || uid != s_uid) {
+ 			/*
+@@ -91,11 +98,11 @@
+ 			}
+ 			fprintf(stderr,
+ 				"%s: expected: si_signo=%d, si_code=%d"
+-				", si_pid=%d, si_uid=%d\n"
++				", si_pid=%d%s, si_uid=%d\n"
+ 				"%s: received: si_signo=%d, si_code=%d"
+-				", si_pid=%d, si_uid=%d\n",
+-				prefix, sig, SI_USER, pid, uid,
+-				prefix, sig, s_code, s_pid, s_uid);
++				", si_pid=%d%s, si_uid=%d\n",
++				prefix, sig, SI_USER, pid, pid_str, uid,
++				prefix, sig, s_code, s_pid, pid_str, s_uid);
+ 		}
+ 	}
+ 
+@@ -104,6 +111,7 @@
+ 			"*** PLEASE FIX THE KERNEL ***\n", prefix);
+ 	}
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests/so_peercred--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/so_peercred--pidns-translation.c	2020-09-09 19:52:38.886673624 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "so_peercred.c"
+Index: strace-5.7/tests/so_peercred.c
+===================================================================
+--- strace-5.7.orig/tests/so_peercred.c	2020-09-09 19:52:30.604668688 +0200
++++ strace-5.7/tests/so_peercred.c	2020-09-09 19:52:38.886673624 +0200
+@@ -9,6 +9,7 @@
+  */
+ 
+ #include "tests.h"
++#include "pidns.h"
+ 
+ #include <stddef.h>
+ #include <stdio.h>
+@@ -53,6 +54,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	TAIL_ALLOC_OBJECT_CONST_PTR(struct ucred, peercred);
+ 	TAIL_ALLOC_OBJECT_CONST_PTR(socklen_t, len);
+ 
+@@ -75,6 +78,8 @@
+ 	struct ucred *const gid_truncated =
+ 		tail_alloc(sizeof_gid_truncated);
+ 
++	const char *pid_str = pidns_pid2str(PT_TGID);
++
+ 	int sv[2];
+ 	if (socketpair(AF_UNIX, SOCK_STREAM, 0, sv))
+                 perror_msg_and_skip("socketpair AF_UNIX SOCK_STREAM");
+@@ -82,8 +87,10 @@
+ 	/* classic getsockopt */
+ 	*len = sizeof(*peercred);
+ 	get_peercred(sv[0], peercred, len);
++	pidns_print_leader();
+ 	printf("getsockopt(%d, %s", sv[0], so_str());
+ 	PRINT_FIELD_D(", {", *peercred, pid);
++	printf("%s", pid_str);
+ 	PRINT_FIELD_UID(", ", *peercred, uid);
+ 	PRINT_FIELD_UID(", ", *peercred, gid);
+ 	printf("}, [%d]) = %s\n", *len, errstr);
+@@ -91,14 +98,17 @@
+ 	/* getsockopt with zero optlen */
+ 	*len = 0;
+ 	get_peercred(sv[0], peercred, len);
++	pidns_print_leader();
+ 	printf("getsockopt(%d, %s, %p, [0]) = %s\n",
+ 	       sv[0], so_str(), peercred, errstr);
+ 
+ 	/* getsockopt with optlen larger than necessary - shortened */
+ 	*len = sizeof(*peercred) + 1;
+ 	get_peercred(sv[0], peercred, len);
++	pidns_print_leader();
+ 	printf("getsockopt(%d, %s", sv[0], so_str());
+ 	PRINT_FIELD_D(", {", *peercred, pid);
++	printf("%s", pid_str);
+ 	PRINT_FIELD_UID(", ", *peercred, uid);
+ 	PRINT_FIELD_UID(", ", *peercred, gid);
+ 	printf("}, [%u->%d]) = %s\n",
+@@ -110,6 +120,7 @@
+ 	 */
+ 	*len = sizeof_pid_truncated;
+ 	get_peercred(sv[0], pid_truncated, len);
++	pidns_print_leader();
+ 	printf("getsockopt(%d, %s, {pid=", sv[0], so_str());
+ 	print_quoted_hex(pid_truncated, *len);
+ 	printf("}, [%d]) = %s\n", *len, errstr);
+@@ -120,8 +131,10 @@
+ 	 */
+ 	*len = sizeof_pid;
+ 	get_peercred(sv[0], pid, len);
++	pidns_print_leader();
+ 	printf("getsockopt(%d, %s", sv[0], so_str());
+ 	PRINT_FIELD_D(", {", *pid, pid);
++	printf("%s", pid_str);
+ 	printf("}, [%d]) = %s\n", *len, errstr);
+ 
+ 	/*
+@@ -136,8 +149,10 @@
+ 	 * to struct ucred.pid field.
+ 	 */
+ 	memcpy(uid, uid_truncated, sizeof_uid_truncated);
++	pidns_print_leader();
+ 	printf("getsockopt(%d, %s", sv[0], so_str());
+ 	PRINT_FIELD_D(", {", *uid, pid);
++	printf("%s", pid_str);
+ 	printf(", uid=");
+ 	print_quoted_hex(&uid->uid, sizeof_uid_truncated -
+ 				    offsetof(struct ucred, uid));
+@@ -149,8 +164,10 @@
+ 	 */
+ 	*len = sizeof_uid;
+ 	get_peercred(sv[0], uid, len);
++	pidns_print_leader();
+ 	printf("getsockopt(%d, %s", sv[0], so_str());
+ 	PRINT_FIELD_D(", {", *uid, pid);
++	printf("%s", pid_str);
+ 	PRINT_FIELD_UID(", ", *uid, uid);
+ 	printf("}, [%d]) = %s\n", *len, errstr);
+ 
+@@ -166,8 +183,10 @@
+ 	 * to struct ucred.pid and struct ucred.uid fields.
+ 	 */
+ 	memcpy(peercred, gid_truncated, sizeof_gid_truncated);
++	pidns_print_leader();
+ 	printf("getsockopt(%d, %s", sv[0], so_str());
+ 	PRINT_FIELD_D(", {", *peercred, pid);
++	printf("%s", pid_str);
+ 	PRINT_FIELD_UID(", ", *peercred, uid);
+ 	printf(", gid=");
+ 	print_quoted_hex(&peercred->gid, sizeof_gid_truncated -
+@@ -177,14 +196,17 @@
+ 	/* getsockopt optval EFAULT */
+ 	*len = sizeof(*peercred);
+ 	get_peercred(sv[0], &peercred->uid, len);
++	pidns_print_leader();
+ 	printf("getsockopt(%d, %s, %p, [%d]) = %s\n",
+ 	       sv[0], so_str(), &peercred->uid, *len, errstr);
+ 
+ 	/* getsockopt optlen EFAULT */
+ 	get_peercred(sv[0], peercred, len + 1);
++	pidns_print_leader();
+ 	printf("getsockopt(%d, %s, %p, %p) = %s\n",
+ 	       sv[0], so_str(), peercred, len + 1, errstr);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests/tgkill--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/tgkill--pidns-translation.c	2020-09-09 19:52:38.887673625 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "tgkill.c"
+Index: strace-5.7/tests/tgkill.c
+===================================================================
+--- strace-5.7.orig/tests/tgkill.c	2020-09-09 19:52:30.604668688 +0200
++++ strace-5.7/tests/tgkill.c	2020-09-09 19:52:38.887673625 +0200
+@@ -9,6 +9,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #ifdef __NR_tgkill
+ 
+@@ -36,28 +37,46 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	const int pid = getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
++	const int tid = syscall(__NR_gettid);
++	const char *tid_str = pidns_pid2str(PT_TID);
+ 	const int bad_pid = -1;
+ 	const int bad_sig = 0xface;
+ 
+-	k_tgkill(pid, pid, 0);
+-	printf("tgkill(%d, %d, 0) = %s\n", pid, pid, errstr);
++	k_tgkill(pid, tid, 0);
++	pidns_print_leader();
++	printf("tgkill(%d%s, %d%s, 0) = %s\n",
++		pid, pid_str, tid, tid_str, errstr);
+ 
+ 	k_tgkill(pid, bad_pid, 0);
+-	printf("tgkill(%d, %d, 0) = %s\n", pid, bad_pid, errstr);
+-
+-	k_tgkill(bad_pid, pid, 0);
+-	printf("tgkill(%d, %d, 0) = %s\n", bad_pid, pid, errstr);
+-
+-	k_tgkill(pid, pid, SIGCONT);
+-	printf("tgkill(%d, %d, SIGCONT) = %s\n", pid, pid, errstr);
+-
+-	k_tgkill(pid, pid, bad_sig);
+-	printf("tgkill(%d, %d, %d) = %s\n", pid, pid, bad_sig, errstr);
+-
+-	k_tgkill(pid, pid, -bad_sig);
+-	printf("tgkill(%d, %d, %d) = %s\n", pid, pid, -bad_sig, errstr);
++	pidns_print_leader();
++	printf("tgkill(%d%s, %d, 0) = %s\n",
++		pid, pid_str, bad_pid, errstr);
++
++	k_tgkill(bad_pid, tid, 0);
++	pidns_print_leader();
++	printf("tgkill(%d, %d%s, 0) = %s\n",
++		bad_pid, tid, tid_str, errstr);
++
++	k_tgkill(pid, tid, SIGCONT);
++	pidns_print_leader();
++	printf("tgkill(%d%s, %d%s, SIGCONT) = %s\n",
++		pid, pid_str, tid, tid_str, errstr);
++
++	k_tgkill(pid, tid, bad_sig);
++	pidns_print_leader();
++	printf("tgkill(%d%s, %d%s, %d) = %s\n",
++		pid, pid_str, tid, tid_str, bad_sig, errstr);
++
++	k_tgkill(pid, tid, -bad_sig);
++	pidns_print_leader();
++	printf("tgkill(%d%s, %d%s, %d) = %s\n",
++		pid, pid_str, tid, tid_str, -bad_sig, errstr);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests/tkill--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/tkill--pidns-translation.c	2020-09-09 19:52:38.887673625 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "tkill.c"
+Index: strace-5.7/tests/tkill.c
+===================================================================
+--- strace-5.7.orig/tests/tkill.c	2020-09-09 19:52:30.605668688 +0200
++++ strace-5.7/tests/tkill.c	2020-09-09 19:52:38.887673625 +0200
+@@ -9,6 +9,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #ifdef __NR_tkill
+ 
+@@ -33,22 +34,30 @@
+ int
+ main(void)
+ {
+-	const int pid = getpid();
++	PIDNS_TEST_INIT;
++
++	const int tid = syscall(__NR_gettid);
++	const char *tid_str = pidns_pid2str(PT_TID);
+ 	const int bad_pid = -1;
+ 	const int bad_sig = 0xface;
+ 
+-	k_tkill(pid, 0);
+-	printf("tkill(%d, 0) = %s\n", pid, errstr);
+-
+-	k_tkill(pid, SIGCONT);
+-	printf("tkill(%d, SIGCONT) = %s\n", pid, errstr);
++	k_tkill(tid, 0);
++	pidns_print_leader();
++	printf("tkill(%d%s, 0) = %s\n", tid, tid_str, errstr);
++
++	k_tkill(tid, SIGCONT);
++	pidns_print_leader();
++	printf("tkill(%d%s, SIGCONT) = %s\n", tid, tid_str, errstr);
+ 
+ 	k_tkill(bad_pid, bad_sig);
++	pidns_print_leader();
+ 	printf("tkill(%d, %d) = %s\n", bad_pid, bad_sig, errstr);
+ 
+ 	k_tkill(bad_pid, -bad_sig);
++	pidns_print_leader();
+ 	printf("tkill(%d, %d) = %s\n", bad_pid, -bad_sig, errstr);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests/trie_for_tests.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/trie_for_tests.c	2020-09-09 19:52:38.887673625 +0200
+@@ -0,0 +1 @@
++#include "trie.c"
+Index: strace-5.7/tests/trie_test.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/trie_test.c	2020-09-09 19:52:38.888673625 +0200
+@@ -0,0 +1,121 @@
++/*
++ * Copyright (c) 2017-2019 The strace developers.
++ * All rights reserved.
++ *
++ * SPDX-License-Identifier: GPL-2.0-or-later
++ */
++
++#include "tests.h"
++#include "trie.h"
++
++#include <stdio.h>
++#include <inttypes.h>
++
++static void
++assert_equals(const char *msg, uint64_t expected, uint64_t actual) {
++	if (actual != expected)
++		error_msg_and_fail("%s: expected: %" PRIu64
++		                   ", actual: %" PRIu64, msg, expected, actual);
++}
++
++static void
++iterate_fn(void *data, uint64_t key, uint64_t value)
++{
++	uint64_t expected = key < 256 && key % 10 == 0 ? key + 42 : -1ULL;
++	assert_equals("iterate_fn", expected, value);
++
++	int *count = (int *) data;
++	if (value != -1ULL)
++		(*count)++;
++}
++
++static void
++test_trie_iterate_fn(void)
++{
++	struct trie *t = trie_create(8, 6, 3, 3, -1);
++	for (int i = 0; i < 26; i++)
++		trie_set(t, i * 10, i * 10 + 42);
++
++	static const struct {
++		uint64_t start;
++		uint64_t end;
++		int expected_count;
++	} iterate_params[] = {
++		{0, 256, 26},
++		{0, UINT64_MAX, 26},
++		{20, 90, 8},
++		{99, 999, 16},
++		{10000, 100000, 0},
++		{200, 100, 0},
++	};
++
++	for (size_t i = 0; i < ARRAY_SIZE(iterate_params); i++) {
++		int count = 0;
++		trie_iterate_keys(t, iterate_params[i].start, iterate_params[i].end, iterate_fn, &count);
++		assert_equals("iteration count", iterate_params[i].expected_count, count);
++	}
++}
++
++struct key_value_pair {
++	uint64_t key, value;
++};
++
++static void
++test_trie_get(void)
++{
++	static const struct {
++		uint8_t key_size;
++		uint8_t item_size_lg;
++		uint8_t node_key_bits;
++		uint8_t data_block_key_bits;
++		uint64_t empty_value;
++
++		struct key_value_pair set_values[3], get_values[3];
++	} params[] = {
++		{64, 6, 10, 10, 0,
++			{{300, 1}, {0xfacefeed, 0xabcdef123456}, {-1ULL, -1ULL}},
++			{{301, 0}, {0xfacefeed, 0xabcdef123456}, {-1ULL, -1ULL}}},
++		{8, 2, 4, 4, 10,
++			{{0xab, 0xcd}, {0xface, 2}, {0, 3}},
++			{{0xab, 0xd}, {0xface, 10}, {0, 3}}},
++		{30, 0, 6, 3, -1,
++			{{0xaaaa, 127}, {0xface, 0}, {0, 0}},
++			{{0xaaaa, 1}, {0xface, 0}, {1, 1}}},
++		{16, 4, 5, 11, 0xffffff,
++			{{0xabcdef, 42}, {0xabcd, 42}, {0xffff, 0}},
++			{{0xabcdef, 0xffff}, {0xabcd, 42}, {0xffff, 0}}},
++		{41, 5, 1, 1, -1,
++			{{0xabcdef01, 0x22222222}, {-1, 0x33333333}, {10, 10}},
++			{{0xabcdef01, 0x22222222}, {-1, 0xffffffff}, {10, 10}}},
++	};
++
++	for (size_t i = 0; i < ARRAY_SIZE(params); i++) {
++		struct trie *t = trie_create(params[i].key_size,
++		                             params[i].item_size_lg,
++					     params[i].node_key_bits,
++					     params[i].data_block_key_bits,
++					     params[i].empty_value);
++
++		if (!t)
++			error_msg_and_fail("trie creation failed");
++
++		for (size_t j = 0; j < ARRAY_SIZE(params[i].set_values); j++) {
++			struct key_value_pair kv = params[i].set_values[j];
++			trie_set(t, kv.key, kv.value);
++		}
++		for (size_t j = 0; j < ARRAY_SIZE(params[i].get_values); j++) {
++			struct key_value_pair kv = params[i].get_values[j];
++			assert_equals("trie_get", kv.value, trie_get(t, kv.key));
++		}
++
++		trie_free(t);
++	}
++}
++
++int
++main(void)
++{
++	test_trie_get();
++	test_trie_iterate_fn();
++	return 0;
++}
+Index: strace-5.7/tests/xet_robust_list--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/xet_robust_list--pidns-translation.c	2020-09-09 19:52:38.888673625 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "xet_robust_list.c"
+Index: strace-5.7/tests/xet_robust_list.c
+===================================================================
+--- strace-5.7.orig/tests/xet_robust_list.c	2020-09-09 19:52:30.605668688 +0200
++++ strace-5.7/tests/xet_robust_list.c	2020-09-09 19:52:38.888673625 +0200
+@@ -8,6 +8,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #if defined __NR_get_robust_list && defined __NR_set_robust_list
+ 
+@@ -30,27 +31,36 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	const pid_t pid = getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
+ 	const long long_pid = (unsigned long) (0xdeadbeef00000000LL | pid);
+ 	TAIL_ALLOC_OBJECT_CONST_PTR(void *, p_head);
+ 	TAIL_ALLOC_OBJECT_CONST_PTR(size_t, p_len);
+ 
+ 	if (syscall(__NR_get_robust_list, long_pid, p_head, p_len))
+ 		perror_msg_and_skip("get_robust_list");
+-	printf("get_robust_list(%d, [%s], [%lu]) = 0\n",
+-	       (int) pid, sprintaddr(*p_head), (unsigned long) *p_len);
++	pidns_print_leader();
++	printf("get_robust_list(%d%s, [%s], [%lu]) = 0\n",
++	       pid, pid_str, sprintaddr(*p_head),
++	       (unsigned long) *p_len);
+ 
+ 	void *head = tail_alloc(*p_len);
+ 	if (syscall(__NR_set_robust_list, head, *p_len))
+ 		perror_msg_and_skip("set_robust_list");
++	pidns_print_leader();
+ 	printf("set_robust_list(%p, %lu) = 0\n",
+ 	       head, (unsigned long) *p_len);
+ 
+ 	if (syscall(__NR_get_robust_list, long_pid, p_head, p_len))
+ 		perror_msg_and_skip("get_robust_list");
+-	printf("get_robust_list(%d, [%s], [%lu]) = 0\n",
+-	       (int) pid, sprintaddr(*p_head), (unsigned long) *p_len);
++	pidns_print_leader();
++	printf("get_robust_list(%d%s, [%s], [%lu]) = 0\n",
++	       pid, pid_str, sprintaddr(*p_head),
++	       (unsigned long) *p_len);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests/xetpgid--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/xetpgid--pidns-translation.c	2020-09-09 19:52:38.888673625 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "xetpgid.c"
+Index: strace-5.7/tests/xetpgid.c
+===================================================================
+--- strace-5.7.orig/tests/xetpgid.c	2020-09-09 19:52:30.606668689 +0200
++++ strace-5.7/tests/xetpgid.c	2020-09-09 19:52:38.888673625 +0200
+@@ -10,6 +10,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #if defined __NR_getpgid && defined __NR_setpgid
+ 
+@@ -19,13 +20,21 @@
+ int
+ main(void)
+ {
+-	const int pid = getpid();
+-	long rc = syscall(__NR_getpgid, F8ILL_KULONG_MASK | pid);
+-	printf("getpgid(%d) = %ld\n", pid, rc);
++	PIDNS_TEST_INIT;
+ 
+-	rc = syscall(__NR_setpgid, F8ILL_KULONG_MASK, F8ILL_KULONG_MASK | pid);
+-	printf("setpgid(0, %d) = %ld\n", pid, rc);
++	const int pid = getpid();
++	long pgid = syscall(__NR_getpgid, F8ILL_KULONG_MASK | pid);
++	pidns_print_leader();
++	printf("getpgid(%d%s) = %ld%s\n", pid, pidns_pid2str(PT_TGID),
++		pgid, pidns_pid2str(PT_PGID));
++
++	long rc = syscall(__NR_setpgid, F8ILL_KULONG_MASK,
++		F8ILL_KULONG_MASK | pgid);
++	pidns_print_leader();
++	printf("setpgid(0, %ld%s) = %s\n", pgid, pidns_pid2str(PT_PGID),
++		sprintrc(rc));
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests/xetpriority--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/xetpriority--pidns-translation.c	2020-09-09 19:52:38.889673626 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "xetpriority.c"
+Index: strace-5.7/tests/xetpriority.c
+===================================================================
+--- strace-5.7.orig/tests/xetpriority.c	2020-09-09 19:52:30.606668689 +0200
++++ strace-5.7/tests/xetpriority.c	2020-09-09 19:52:38.889673626 +0200
+@@ -7,6 +7,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #if defined __NR_getpriority && defined __NR_setpriority
+ 
+@@ -17,15 +18,30 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	const int pid = getpid();
++	const int pgid = getpgid(0);
++
+ 	long rc = syscall(__NR_getpriority, PRIO_PROCESS,
+ 			  F8ILL_KULONG_MASK | pid);
+-	printf("getpriority(PRIO_PROCESS, %d) = %ld\n", pid, rc);
++	pidns_print_leader();
++	printf("getpriority(PRIO_PROCESS, %d%s) = %ld\n",
++		pid, pidns_pid2str(PT_TGID), rc);
+ 
+ 	rc = syscall(__NR_setpriority, PRIO_PROCESS,
+ 		     F8ILL_KULONG_MASK | pid, F8ILL_KULONG_MASK);
+-	printf("setpriority(PRIO_PROCESS, %d, 0) = %s\n", pid, sprintrc(rc));
++	pidns_print_leader();
++	printf("setpriority(PRIO_PROCESS, %d%s, 0) = %s\n",
++		pid, pidns_pid2str(PT_TGID), sprintrc(rc));
++
++	rc = syscall(__NR_getpriority, PRIO_PGRP,
++			  F8ILL_KULONG_MASK | pgid);
++	pidns_print_leader();
++	printf("getpriority(PRIO_PGRP, %d%s) = %ld\n",
++		pgid, pidns_pid2str(PT_PGID), rc);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests/xmalloc_for_tests.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests/xmalloc_for_tests.c	2020-09-09 19:52:38.889673626 +0200
+@@ -0,0 +1,2 @@
++#define error_msg_and_die error_msg_and_fail
++#include "xmalloc.c"
+Index: strace-5.7/tests-m32/Makefile.am
+===================================================================
+--- strace-5.7.orig/tests-m32/Makefile.am	2020-09-09 19:52:30.607668690 +0200
++++ strace-5.7/tests-m32/Makefile.am	2020-09-09 19:52:38.889673626 +0200
+@@ -66,6 +66,7 @@
+ 	test_ucopy.h \
+ 	tests.h \
+ 	tprintf.c \
++	xmalloc_for_tests.c \
+ 	# end of libtests_a_SOURCES
+ libtests_a_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+ check_LIBRARIES = libtests.a
+@@ -109,17 +110,25 @@
+ 	delay \
+ 	execve-v \
+ 	execveat-v \
++	fcntl--pidns-translation \
++	fcntl64--pidns-translation \
+ 	filter_seccomp-flag \
+ 	filter_seccomp-perf \
+ 	filter-unavailable \
+ 	fork-f \
++	fork--pidns-translation \
+ 	fsync-y \
+ 	get_process_reaper \
++	getpgrp--pidns-translation	\
+ 	getpid	\
++	getpid--pidns-translation	\
+ 	getppid	\
++	getsid--pidns-translation \
+ 	gettid \
++	gettid--pidns-translation \
+ 	inject-nf \
+ 	int_0x80 \
++	ioctl_block--pidns-translation \
+ 	ioctl_dm-v \
+ 	ioctl_evdev-success \
+ 	ioctl_evdev-success-Xabbrev \
+@@ -150,18 +159,25 @@
+ 	ioctl_v4l2-success-v-Xabbrev \
+ 	ioctl_v4l2-success-v-Xraw \
+ 	ioctl_v4l2-success-v-Xverbose \
++	ioprio--pidns-translation \
+ 	is_linux_mips_n64 \
++	kcmp-y--pidns-translation \
+ 	kill_child \
++	kill--pidns-translation \
+ 	ksysent \
+ 	list_sigaction_signum \
+ 	localtime \
+ 	looping_threads \
++	migrate_pages--pidns-translation \
+ 	mmsg-silent \
+ 	mmsg_name-v \
++	move_pages--pidns-translation \
+ 	msg_control-v \
+ 	net-accept-connect \
++	net-sockaddr--pidns-translation \
+ 	net-tpacket_stats-success \
+ 	nlattr_ifla_xdp-y \
++	netlink_audit--pidns-translation \
+ 	netlink_inet_diag \
+ 	netlink_netlink_diag \
+ 	netlink_unix_diag \
+@@ -173,14 +189,20 @@
+ 	pc \
+ 	perf_event_open_nonverbose \
+ 	perf_event_open_unabbrev \
++	pidfd_open--pidns-translation \
++	pidfd_send_signal--pidns-translation \
++	pidns-cache \
+ 	poll-P \
+ 	ppoll-P \
+ 	ppoll-v \
++	prlimit64--pidns-translation \
+ 	prctl-seccomp-filter-v \
+ 	prctl-seccomp-strict \
+ 	prctl-spec-inject \
+ 	print_maxfd \
+ 	print_ppid_tracerpid \
++	process_vm_readv--pidns-translation \
++	process_vm_writev--pidns-translation \
+ 	qual_fault \
+ 	qual_inject-error-signal \
+ 	qual_inject-retval \
+@@ -194,7 +216,13 @@
+ 	quotactl-xfs-v \
+ 	redirect-fds \
+ 	restart_syscall \
++	rt_sigqueueinfo--pidns-translation \
++	rt_tgsigqueueinfo--pidns-translation \
+ 	run_expect_termsig \
++	sched_xetaffinity--pidns-translation \
++	sched_xetattr--pidns-translation \
++	sched_xetparam--pidns-translation \
++	sched_xetscheduler--pidns-translation \
+ 	scm_rights \
+ 	seccomp-filter-v \
+ 	seccomp-strict \
+@@ -204,25 +232,33 @@
+ 	set_sigign \
+ 	setpgrp-exec \
+ 	signal_receive \
++	signal_receive--pidns-translation \
+ 	sleep \
+ 	stack-fcall \
+ 	stack-fcall-attach \
+ 	stack-fcall-mangled \
+ 	status-none-threads \
+ 	status-unfinished-threads \
++	so_peercred--pidns-translation \
+ 	syslog-success \
++	tgkill--pidns-translation \
+ 	threads-execve \
+ 	threads-execve--quiet-thread-execve \
+ 	threads-execve-q \
+ 	threads-execve-qq \
+ 	threads-execve-qqq \
++	tkill--pidns-translation \
+ 	tracer_ppid_pgid_sid \
++	trie_test \
+ 	unblock_reset_raise \
+ 	unix-pair-send-recv \
+ 	unix-pair-sendto-recvfrom \
+ 	vfork-f \
+ 	wait4-v \
+ 	waitid-v \
++	xetpgid--pidns-translation \
++	xetpriority--pidns-translation \
++	xet_robust_list--pidns-translation \
+ 	zeroargc \
+ 	# end of check_PROGRAMS
+ 
+@@ -272,6 +308,11 @@
+ 	stack-fcall-mangled-0.c stack-fcall-mangled-1.c \
+ 	stack-fcall-mangled-2.c stack-fcall-mangled-3.c
+ 
++trie_test_SOURCES = trie_test.c trie_for_tests.c
++trie_test_CPPFLAGS = $(AM_CPPFLAGS) $(CODE_COVERAGE_CPPFLAGS)
++trie_test_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS)
++trie_test_LDADD = $(LDADD) $(CODE_COVERAGE_LIBS)
++
+ include gen_tests.am
+ 
+ if ENABLE_STACKTRACE
+@@ -308,6 +349,7 @@
+ 	int_0x80.test \
+ 	inotify_init-y.test \
+ 	ioctl.test \
++	ioctl_block--pidns-translation.test \
+ 	ioctl_evdev-success.test \
+ 	ipc_msgbuf.test \
+ 	kern_features-fault.test \
+@@ -379,15 +421,19 @@
+ 	filtering_fd-syntax.test \
+ 	filtering_syscall-syntax.test \
+ 	first_exec_failure.test \
++	fork--pidns-translation.test \
+ 	get_regs.test \
++	gettid--pidns-translation.test \
+ 	inject-nf.test \
+ 	interactive_block.test \
+ 	kill_child.test \
+ 	localtime.test \
+ 	looping_threads.test \
++	netlink_audit--pidns-translation.test \
+ 	opipe.test \
+ 	options-syntax.test \
+ 	pc.test \
++	pidns-cache.test \
+ 	printpath-umovestr-legacy.test \
+ 	printstrn-umoven-legacy.test \
+ 	qual_fault-syntax.test \
+@@ -465,6 +511,7 @@
+ 	filter_seccomp.in \
+ 	filter_seccomp.sh \
+ 	filter-unavailable.expected \
++	fork--pidns-translation.awk \
+ 	fstatat.c \
+ 	fstatx.c \
+ 	gen_pure_executables.sh \
+Index: strace-5.7/tests-m32/fcntl--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/fcntl--pidns-translation.c	2020-09-09 19:52:38.890673627 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "fcntl.c"
+Index: strace-5.7/tests-m32/fcntl-common.c
+===================================================================
+--- strace-5.7.orig/tests-m32/fcntl-common.c	2020-09-09 19:52:30.607668690 +0200
++++ strace-5.7/tests-m32/fcntl-common.c	2020-09-09 19:52:38.890673627 +0200
+@@ -13,6 +13,8 @@
+ #include <unistd.h>
+ #include <assert.h>
+ #include "flock.h"
++#include "pidns.h"
++#include "scno.h"
+ 
+ #define FILE_LEN 4096
+ 
+@@ -48,12 +50,14 @@
+ 	fl->l_len = (TYPEOF_FLOCK_OFF_T) 0xdefaced2cafef00dULL;
+ 
+ 	invoke_test_syscall(0, cmd, fl);
++	pidns_print_leader();
+ 	printf("%s(0, %s, {l_type=F_RDLCK, l_whence=SEEK_SET"
+ 	       ", l_start=%jd, l_len=%jd}) = %s\n", TEST_SYSCALL_STR, name,
+ 	       (intmax_t) fl->l_start, (intmax_t) fl->l_len, errstr);
+ 
+ 	void *const bad_addr = (void *) fl + 1;
+ 	invoke_test_syscall(0, cmd, bad_addr);
++	pidns_print_leader();
+ 	printf("%s(0, %s, %p) = %s\n",
+ 	       TEST_SYSCALL_STR, name, bad_addr, errstr);
+ }
+@@ -72,12 +76,14 @@
+ 	fl->l_len = (TYPEOF_FLOCK_OFF_T) 0xdefaced2cafef00dULL;
+ 
+ 	invoke_test_syscall(0, cmd, fl);
++	pidns_print_leader();
+ 	printf("%s(0, %s, {l_type=F_RDLCK, l_whence=SEEK_SET"
+ 	       ", l_start=%jd, l_len=%jd}) = %s\n", TEST_SYSCALL_STR, name,
+ 	       (intmax_t) fl->l_start, (intmax_t) fl->l_len, errstr);
+ 
+ 	void *const bad_addr = (void *) fl + 1;
+ 	invoke_test_syscall(0, cmd, bad_addr);
++	pidns_print_leader();
+ 	printf("%s(0, %s, %p) = %s\n",
+ 	       TEST_SYSCALL_STR, name, bad_addr, errstr);
+ }
+@@ -94,6 +100,7 @@
+ 	fl->l_len = FILE_LEN;
+ 
+ 	long rc = invoke_test_syscall(0, F_SETLK, fl);
++	pidns_print_leader();
+ 	printf("%s(0, F_SETLK, {l_type=F_RDLCK, l_whence=SEEK_SET"
+ 	       ", l_start=0, l_len=%d}) = %s\n",
+ 	       TEST_SYSCALL_STR, FILE_LEN, errstr);
+@@ -101,11 +108,13 @@
+ 		return;
+ 
+ 	invoke_test_syscall(0, F_GETLK, fl);
++	pidns_print_leader();
+ 	printf("%s(0, F_GETLK, {l_type=F_UNLCK, l_whence=SEEK_SET"
+ 	       ", l_start=0, l_len=%d, l_pid=0}) = 0\n",
+ 	       TEST_SYSCALL_STR, FILE_LEN);
+ 
+ 	invoke_test_syscall(0, F_SETLKW, fl);
++	pidns_print_leader();
+ 	printf("%s(0, F_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET"
+ 	       ", l_start=0, l_len=%d}) = 0\n",
+ 	       TEST_SYSCALL_STR, FILE_LEN);
+@@ -124,6 +133,7 @@
+ 	fl->l_len = FILE_LEN;
+ 
+ 	long rc = invoke_test_syscall(0, F_OFD_SETLK, fl);
++	pidns_print_leader();
+ 	printf("%s(0, F_OFD_SETLK, {l_type=F_RDLCK, l_whence=SEEK_SET"
+ 	       ", l_start=0, l_len=%d}) = %s\n",
+ 	       TEST_SYSCALL_STR, FILE_LEN, errstr);
+@@ -131,11 +141,13 @@
+ 		return;
+ 
+ 	invoke_test_syscall(0, F_OFD_GETLK, fl);
++	pidns_print_leader();
+ 	printf("%s(0, F_OFD_GETLK, {l_type=F_UNLCK, l_whence=SEEK_SET"
+ 	       ", l_start=0, l_len=%d, l_pid=0}) = 0\n",
+ 	       TEST_SYSCALL_STR, FILE_LEN);
+ 
+ 	invoke_test_syscall(0, F_OFD_SETLKW, fl);
++	pidns_print_leader();
+ 	printf("%s(0, F_OFD_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET"
+ 	       ", l_start=0, l_len=%d}) = 0\n",
+ 	       TEST_SYSCALL_STR, FILE_LEN);
+@@ -167,18 +179,21 @@
+ static long
+ test_f_owner_ex_type_pid(const int cmd, const char *const cmd_name,
+ 			 const int type, const char *const type_name,
+-			 pid_t pid)
++			 enum pid_type pid_type, pid_t pid)
+ {
+ 	TAIL_ALLOC_OBJECT_CONST_PTR(struct_kernel_f_owner_ex, fo);
+ 
+ 	fo->type = type;
+ 	fo->pid = pid;
+ 	long rc = invoke_test_syscall(0, cmd, fo);
+-	printf("%s(0, %s, {type=%s, pid=%d}) = %s\n",
+-	       TEST_SYSCALL_STR, cmd_name, type_name, fo->pid, errstr);
++	pidns_print_leader();
++	printf("%s(0, %s, {type=%s, pid=%d%s}) = %s\n",
++	       TEST_SYSCALL_STR, cmd_name, type_name,
++	       fo->pid, pidns_pid2str(pid_type), errstr);
+ 
+ 	void *bad_addr = (void *) fo + 1;
+ 	invoke_test_syscall(0, cmd, bad_addr);
++	pidns_print_leader();
+ 	printf("%s(0, %s, %p) = %s\n",
+ 	       TEST_SYSCALL_STR, cmd_name, bad_addr, errstr);
+ 
+@@ -187,35 +202,35 @@
+ 
+ static void
+ test_f_owner_ex_umove_or_printaddr(const int type, const char *const type_name,
+-				   pid_t pid)
++				   enum pid_type pid_type, pid_t pid)
+ {
+ 	long rc = test_f_owner_ex_type_pid(ARG_STR(F_SETOWN_EX),
+-					   type, type_name, pid);
++					   type, type_name, pid_type, pid);
+ 	if (!rc)
+ 		test_f_owner_ex_type_pid(ARG_STR(F_GETOWN_EX),
+-					 type, type_name, pid);
++					 type, type_name, pid_type, pid);
+ }
+ 
+ static void
+ test_f_owner_ex(void)
+ {
+-	static const struct {
++	struct {
+ 		int type;
+ 		const char *type_name;
+-		pid_t pid[2];
++		enum pid_type pid_type;
++		pid_t pid;
+ 	} a[] = {
+-		{ ARG_STR(F_OWNER_TID), { 1234567890, 20 } },
+-		{ ARG_STR(F_OWNER_PID), { 1298126790, 30 } },
+-		{ ARG_STR(F_OWNER_PGRP), { 1294567890, 40 } }
++		{ ARG_STR(F_OWNER_TID), PT_NONE, 1234567890 },
++		{ ARG_STR(F_OWNER_PID), PT_NONE, 1234567890 },
++		{ ARG_STR(F_OWNER_PGRP), PT_NONE, 1234567890 },
++		{ ARG_STR(F_OWNER_TID), PT_TID, syscall(__NR_gettid) },
++		{ ARG_STR(F_OWNER_PID), PT_TGID, getpid() },
++		{ ARG_STR(F_OWNER_PGRP), PT_PGID, getpgid(0) },
+ 	};
+ 
+-	for (unsigned int i = 0; i < ARRAY_SIZE(a); i++) {
+-		for (unsigned int j = 0; j < ARRAY_SIZE(a[0].pid); j++) {
+-			test_f_owner_ex_umove_or_printaddr(a[i].type,
+-							   a[i].type_name,
+-							   a[i].pid[j]);
+-		}
+-	}
++	for (unsigned int i = 0; i < ARRAY_SIZE(a); i++)
++		test_f_owner_ex_umove_or_printaddr(a[i].type, a[i].type_name,
++			a[i].pid_type, a[i].pid);
+ }
+ #endif /* TEST_F_OWNER_EX */
+ 
+@@ -229,6 +244,23 @@
+ };
+ 
+ static void
++test_xetown(void)
++{
++	const int pid = getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
++
++	invoke_test_syscall(0, F_SETOWN, (void *) (intptr_t) pid);
++	pidns_print_leader();
++	printf("%s(0, F_SETOWN, %d%s) = %s\n",
++		TEST_SYSCALL_STR, pid, pid_str, errstr);
++
++	invoke_test_syscall(0, F_GETOWN, NULL);
++	pidns_print_leader();
++	printf("%s(0, F_GETOWN) = %d%s\n",
++		TEST_SYSCALL_STR, pid, pid_str);
++}
++
++static void
+ print_retval_flags(const struct fcntl_cmd_check *check, long rc)
+ {
+ 	if (check->print_flags) {
+@@ -243,12 +275,14 @@
+ test_other_set_cmd(const struct fcntl_cmd_check *check)
+ {
+ 	invoke_test_syscall(check->fd, check->cmd, (void *) check->arg);
++	pidns_print_leader();
+ 	printf("%s(%d, %s, %s) = %s\n",
+ 	       TEST_SYSCALL_STR, check->fd,
+ 	       check->cmd_str, check->arg_str, errstr);
+ 
+ 	/* bad file fd */
+ 	invoke_test_syscall(-1, check->cmd, (void *) check->arg);
++	pidns_print_leader();
+ 	printf("%s(-1, %s, %s) = %s\n",
+ 	       TEST_SYSCALL_STR, check->cmd_str,
+ 	       check->arg_str, errstr);
+@@ -258,12 +292,14 @@
+ test_other_get_cmd(const struct fcntl_cmd_check *check)
+ {
+ 	long rc = invoke_test_syscall(check->fd, check->cmd, NULL);
++	pidns_print_leader();
+ 	printf("%s(%d, %s) = ",
+ 	       TEST_SYSCALL_STR, check->fd, check->cmd_str);
+ 	print_retval_flags(check, rc);
+ 
+ 	/* bad file fd */
+ 	invoke_test_syscall(-1, check->cmd, NULL);
++	pidns_print_leader();
+ 	printf("%s(-1, %s) = %s\n",
+ 	       TEST_SYSCALL_STR, check->cmd_str, errstr);
+ }
+@@ -315,7 +351,6 @@
+ {
+ 	static const struct fcntl_cmd_check set_checks[] = {
+ 		{ 0, ARG_STR(F_SETFD), ARG_STR(FD_CLOEXEC) },
+-		{ 0, ARG_STR(F_SETOWN), ARG_STR(20) },
+ #ifdef F_SETPIPE_SZ
+ 		{ 0, ARG_STR(F_SETPIPE_SZ), ARG_STR(4097) },
+ #endif
+@@ -336,7 +371,6 @@
+ 	static const struct fcntl_cmd_check get_checks[] = {
+ 		{ 0, ARG_STR(F_GETFD), .print_flags = print_flags_getfd },
+ 		{ 1, ARG_STR(F_GETFD), .print_flags = print_flags_getfd },
+-		{ 0, ARG_STR(F_GETOWN) },
+ #ifdef F_GETPIPE_SZ
+ 		{ 0, ARG_STR(F_GETPIPE_SZ) },
+ #endif
+@@ -360,6 +394,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	create_sample();
+ 	test_flock();
+ 	test_flock64();
+@@ -367,7 +403,9 @@
+ 	test_f_owner_ex();
+ #endif
+ 	test_fcntl_others();
++	test_xetown();
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-m32/fcntl.c
+===================================================================
+--- strace-5.7.orig/tests-m32/fcntl.c	2020-09-09 19:52:30.608668690 +0200
++++ strace-5.7/tests-m32/fcntl.c	2020-09-09 19:52:38.890673627 +0200
+@@ -24,6 +24,7 @@
+ 		.l_len = 0xdefaced2cafef00dULL
+ 	};
+ 	invoke_test_syscall(0, cmd, &fl);
++	pidns_print_leader();
+ 	printf("%s(0, %s, %p) = %s\n",
+ 	       TEST_SYSCALL_STR, name, &fl, errstr);
+ }
+Index: strace-5.7/tests-m32/fcntl64--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/fcntl64--pidns-translation.c	2020-09-09 19:52:38.890673627 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "fcntl64.c"
+Index: strace-5.7/tests-m32/fcntl64.c
+===================================================================
+--- strace-5.7.orig/tests-m32/fcntl64.c	2020-09-09 19:52:30.608668690 +0200
++++ strace-5.7/tests-m32/fcntl64.c	2020-09-09 19:52:38.890673627 +0200
+@@ -27,6 +27,7 @@
+ 	fl->l_len = FILE_LEN;
+ 
+ 	long rc = invoke_test_syscall(0, F_SETLK64, fl);
++	pidns_print_leader();
+ 	printf("%s(0, F_SETLK64, {l_type=F_RDLCK, l_whence=SEEK_SET"
+ 	       ", l_start=0, l_len=%d}) = %s\n",
+ 	       TEST_SYSCALL_STR, FILE_LEN, errstr);
+@@ -35,11 +36,13 @@
+ 		return;
+ 
+ 	invoke_test_syscall(0, F_GETLK64, fl);
++	pidns_print_leader();
+ 	printf("%s(0, F_GETLK64, {l_type=F_UNLCK, l_whence=SEEK_SET"
+ 	       ", l_start=0, l_len=%d, l_pid=0}) = 0\n",
+ 	       TEST_SYSCALL_STR, FILE_LEN);
+ 
+ 	invoke_test_syscall(0, F_SETLKW64, fl);
++	pidns_print_leader();
+ 	printf("%s(0, F_SETLKW64, {l_type=F_UNLCK, l_whence=SEEK_SET"
+ 	       ", l_start=0, l_len=%d}) = 0\n",
+ 	       TEST_SYSCALL_STR, FILE_LEN);
+Index: strace-5.7/tests-m32/fork--pidns-translation.awk
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/fork--pidns-translation.awk	2020-09-09 19:52:38.891673627 +0200
+@@ -0,0 +1,15 @@
++/fork/ {
++        match($0, "([0-9]+) in strace\x27s PID NS", a);
++        if (a[1])
++                fork_pid = a[1]
++}
++
++/exited with 0/ {
++        if (!exit_pid)
++                exit_pid = $1
++}
++
++END {
++        if (!fork_pid || !exit_pid || fork_pid != exit_pid)
++                exit 1
++}
+Index: strace-5.7/tests-m32/fork--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/fork--pidns-translation.c	2020-09-09 19:52:38.891673627 +0200
+@@ -0,0 +1,78 @@
++/*
++ * Test PID namespace translation
++ *
++ * Copyright (c) 2020 Ákos Uzonyi <uzonyi.akos@gmail.com>
++ * All rights reserved.
++ *
++ * SPDX-License-Identifier: LGPL-2.1-or-later
++ */
++
++#include "tests.h"
++#include "scno.h"
++#include "pidns.h"
++
++#ifdef __NR_fork
++
++#include <errno.h>
++#include <limits.h>
++#include <sched.h>
++#include <signal.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <sys/wait.h>
++#include <unistd.h>
++#include <linux/sched.h>
++#include "nsfs.h"
++
++#ifndef CLONE_NEWUSER
++# define CLONE_NEWUSER 0x10000000
++#endif
++
++#ifndef CLONE_NEWPID
++# define CLONE_NEWPID 0x20000000
++#endif
++
++static int
++fork_chain(int depth)
++{
++	if (!depth)
++		return 0;
++
++	int pid = syscall(__NR_fork);
++	if (pid < 0)
++		return errno;
++
++	if (!pid)
++		_exit(fork_chain(depth - 1));
++
++	int status;
++	if (wait(&status) < 0)
++		return errno;
++
++	if (!WIFEXITED(status))
++		return -1;
++
++	return WEXITSTATUS(status);
++}
++
++int main(void)
++{
++	check_ns_ioctl();
++
++	if (unshare(CLONE_NEWPID | CLONE_NEWUSER) < 0) {
++		if (errno == EPERM)
++			perror_msg_and_skip("unshare");
++
++		perror_msg_and_fail("unshare");
++	}
++
++	errno = fork_chain(2);
++	if (errno)
++		perror("fork_chain");
++}
++
++#else
++
++SKIP_MAIN_UNDEFINED("__NR_fork")
++
++#endif
+Index: strace-5.7/tests-m32/fork--pidns-translation.test
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/fork--pidns-translation.test	2020-09-09 19:52:38.891673627 +0200
+@@ -0,0 +1,14 @@
++#!/bin/sh
++#
++# Check pidns translation of fork's return value.
++#
++# Copyright (c) 2020 The strace developers.
++# All rights reserved.
++#
++# SPDX-License-Identifier: LGPL-2.1-or-later
++
++. "${srcdir=.}/init.sh"
++
++run_prog
++run_strace -a6 --pidns-translation -f -e trace=fork $args
++match_awk
+Index: strace-5.7/tests-m32/gen_tests.in
+===================================================================
+--- strace-5.7.orig/tests-m32/gen_tests.in	2020-09-09 19:52:30.609668691 +0200
++++ strace-5.7/tests-m32/gen_tests.in	2020-09-09 19:52:38.891673627 +0200
+@@ -88,7 +88,9 @@
+ fchown32	-a18
+ fchownat
+ fcntl	-a8
++fcntl--pidns-translation	test_pidns -a8 -e trace=fcntl
+ fcntl64	-a8
++fcntl64--pidns-translation	test_pidns -a8 -e trace=fcntl64
+ fdatasync	-a14
+ file_handle	-e trace=name_to_handle_at,open_by_handle_at
+ file_ioctl	+ioctl.test
+@@ -142,7 +144,9 @@
+ getgroups32	-a19
+ getpeername	-a27
+ getpgrp	-a10
++getpgrp--pidns-translation	test_pidns -e trace=getpgrp -a10
+ getpid	-a9
++getpid--pidns-translation	test_pidns -e trace=getpid -a9
+ getppid	-a10
+ getrandom	-a32 -s3
+ getresgid	-a25
+@@ -152,6 +156,7 @@
+ getrlimit	-a27
+ getrusage	-v
+ getsid	-a10
++getsid--pidns-translation	test_pidns -e trace=getsid -a10
+ getsockname	-a27
+ gettid	-a9
+ getuid-creds	+getuid.test
+@@ -245,6 +250,7 @@
+ ioperm	-a27
+ iopl	-a8
+ ioprio	-a18 -e trace=ioprio_get,ioprio_set
++ioprio--pidns-translation	test_pidns -a18 -e trace=ioprio_get,ioprio_set
+ ioprio-Xabbrev	-a18 -e trace=ioprio_get,ioprio_set -Xabbrev
+ ioprio-Xraw	-a18 -e trace=ioprio_get,ioprio_set -Xraw
+ ioprio-Xverbose	-a18 -e trace=ioprio_get,ioprio_set -Xverbose
+@@ -267,6 +273,7 @@
+ ipc_shm-Xverbose	+ipc.sh -Xverbose -a34
+ kcmp	-a22
+ kcmp-y	-a22 -y -e trace=kcmp
++kcmp-y--pidns-translation	test_pidns -a22 -y -e trace=kcmp
+ kern_features -a16
+ kernel_version	-a16 -v -e trace=bpf
+ kernel_version-Xabbrev	-a16 -Xabbrev -v -e trace=bpf
+@@ -279,6 +286,7 @@
+ keyctl-Xraw	-a13 -s10 -e trace=keyctl -Xraw
+ keyctl-Xverbose	-a41 -s10 -e trace=keyctl -Xverbose
+ kill	-a12 -esignal=none
++kill--pidns-translation	test_pidns -a12 -e trace=kill -esignal=none
+ ksysent	../$NAME
+ lchown	-a30
+ lchown32	-a32
+@@ -300,6 +308,7 @@
+ memfd_create-Xraw	-a30 -Xraw -e trace=memfd_create
+ memfd_create-Xverbose	-Xverbose -e trace=memfd_create
+ migrate_pages	-a33
++migrate_pages--pidns-translation	test_pidns -a33 -e trace=migrate_pages
+ mincore	-a22
+ mkdir	-a20
+ mkdirat	-a28
+@@ -330,6 +339,7 @@
+ move_pages-Xabbrev	-s3 -e trace=move_pages -Xabbrev
+ move_pages-Xraw	-s3 -a36 -e trace=move_pages -Xraw
+ move_pages-Xverbose	-s3 -e trace=move_pages -Xverbose
++move_pages--pidns-translation	test_pidns -s3 -e trace=move_pages
+ mq	-a32 -e trace=mq_getsetattr,mq_open,mq_unlink
+ mq_sendrecv	-a14 -e trace=mq_open,mq_notify,mq_timedsend,mq_timedreceive,mq_unlink
+ mq_sendrecv-read	-eread=0 -a14 -e trace=mq_open,mq_notify,mq_timedsend,mq_timedreceive,mq_unlink
+@@ -349,6 +359,7 @@
+ net-packet_mreq-Xraw	-e trace=setsockopt -Xraw
+ net-packet_mreq-Xverbose	-e trace=setsockopt -Xverbose
+ net-sockaddr	-a24 -e trace=connect
++net-sockaddr--pidns-translation	test_pidns -a24 -e trace=connect
+ net-tpacket_req -e trace=setsockopt
+ net-tpacket_stats -e trace=getsockopt
+ net-yy-inet6	+net-yy-inet.test
+@@ -452,7 +463,9 @@
+ pidfd_open-P	-a17 -P /dev/full -e trace=pidfd_open
+ pidfd_open-y	-a17 -y -e trace=pidfd_open
+ pidfd_open-yy	-a17 -yy -e trace=pidfd_open
++pidfd_open--pidns-translation	test_pidns -a17 -e trace=pidfd_open
+ pidfd_send_signal
++pidfd_send_signal--pidns-translation test_pidns -e trace=pidfd_send_signal
+ pipe2	-a15
+ pkey_alloc	-a17
+ pkey_free	-a13
+@@ -475,8 +488,11 @@
+ printstrn-umoven-peekdata	-e signal=none -e trace=add_key
+ printstrn-umoven-undumpable	-e signal=none -e trace=add_key
+ prlimit64
++prlimit64--pidns-translation     test_pidns -e trace=prlimit64
+ process_vm_readv	-s5 -a37
++process_vm_readv--pidns-translation	test_pidns -s5 -a37 -e trace=process_vm_readv
+ process_vm_writev	-s5 -a38
++process_vm_writev--pidns-translation	test_pidns -s5 -a38 -e trace=process_vm_writev
+ pselect6
+ ptrace	-a23 -e signal=none
+ ptrace_syscall_info	-a35 -e signal=none -e trace=ptrace
+@@ -513,10 +529,12 @@
+ rt_sigpending	-a20
+ rt_sigprocmask
+ rt_sigqueueinfo	-esignal=none
++rt_sigqueueinfo--pidns-translation	test_pidns -esignal=none -e trace=rt_sigqueueinfo
+ rt_sigreturn	-esignal='!USR1'
+ rt_sigsuspend	-a20 -esignal=none
+ rt_sigtimedwait	-a38
+ rt_tgsigqueueinfo	-esignal=none
++rt_tgsigqueueinfo--pidns-translation	test_pidns -esignal=none -e trace=rt_tgsigqueueinfo
+ s390_guarded_storage	-a32
+ s390_guarded_storage-v	-e trace=s390_guarded_storage -a32 -v
+ s390_pci_mmio_read_write	-e trace=s390_pci_mmio_read,s390_pci_mmio_write -a30
+@@ -527,9 +545,13 @@
+ sched_get_priority_mxx	-a33 -e trace=sched_get_priority_min,sched_get_priority_max
+ sched_rr_get_interval	-a31
+ sched_xetaffinity	-a28 -e trace=sched_getaffinity,sched_setaffinity
++sched_xetaffinity--pidns-translation	test_pidns -a28 -e trace=sched_getaffinity,sched_setaffinity
+ sched_xetattr	-a29 -e trace=sched_getattr,sched_setattr
++sched_xetattr--pidns-translation	test_pidns -a29 -e trace=sched_getattr,sched_setattr
+ sched_xetparam	-a23 -e trace=sched_getparam,sched_setparam
++sched_xetparam--pidns-translation	test_pidns -a23 -e trace=sched_getparam,sched_setparam
+ sched_xetscheduler	-a22 -e trace=sched_getscheduler,sched_setscheduler
++sched_xetscheduler--pidns-translation	test_pidns -a22 -e trace=sched_getscheduler,sched_setscheduler
+ sched_yield	-a14
+ seccomp-filter	-e trace=seccomp
+ seccomp-filter-v	-v -e trace=seccomp
+@@ -576,6 +598,7 @@
+ siginfo	-e trace=none
+ signal	-a25 -e signal=none -e trace='/^signal$'
+ signal_receive	-a16 -e trace=kill
++signal_receive--pidns-translation	test_pidns -a16 -e trace=kill
+ signalfd4
+ sigpending	-a15
+ sigprocmask	-a34
+@@ -587,6 +610,7 @@
+ so_peercred-Xabbrev	-e trace=getsockopt -Xabbrev
+ so_peercred-Xraw	-e trace=getsockopt -Xraw -a39
+ so_peercred-Xverbose	-e trace=getsockopt -Xverbose
++so_peercred--pidns-translation	test_pidns -e trace=getsockopt
+ sock_filter-v	-v -e trace=getsockopt,setsockopt
+ sock_filter-v-Xabbrev	-v -e trace=getsockopt,setsockopt -X abbrev
+ sock_filter-v-Xraw	-a 37 -v -e trace=getsockopt,setsockopt -X raw
+@@ -659,6 +683,7 @@
+ syslog	-a35
+ tee
+ tgkill	-a15 --signal='!cont'
++tgkill--pidns-translation       test_pidns -a15 --signal='!cont' -e trace=tgkill
+ threads-execve--quiet-thread-execve +threads-execve.test -s40 --quiet=personality,thread-execve
+ threads-execve-q +threads-execve.test -q
+ threads-execve-qq +threads-execve.test -qq
+@@ -670,6 +695,7 @@
+ times	-esignal=none
+ times-fail	-a12 -e trace=times
+ tkill	-a12 --signal='!cont'
++tkill--pidns-translation       test_pidns --signal='!cont' -a12 -e trace=tkill
+ trace_clock	test_trace_expr 'clock_nanosleep|times' -e%clock
+ trace_creds	test_trace_expr '([gs]et[^p]*([gu]id|groups)|caps|prctl|[fl]?chown|print(path-umovestr|strn-umoven)-undumpable|ptrace|quotactl|rt_sigtimedwait|rt_(tg)?sigqueueinfo).*' -e%creds
+ trace_fstat	test_trace_expr '' -e%fstat -v -P stat.sample -P /dev/full
+@@ -686,6 +712,7 @@
+ trace_stat_like	test_trace_expr '' -e%%stat -v -P stat.sample -P /dev/full
+ trace_statfs	test_trace_expr '' -e%statfs
+ trace_statfs_like	test_trace_expr '' -e%%statfs
++trie_test    run_prog
+ truncate
+ truncate64
+ ugetrlimit	-a28
+@@ -716,7 +743,10 @@
+ xattr	-a22 -e trace=getxattr,fgetxattr,lgetxattr,setxattr,fsetxattr,lsetxattr,listxattr,flistxattr,llistxattr,removexattr,fremovexattr,lremovexattr
+ xattr-strings	-a22 -s 4 -e trace=fsetxattr
+ xet_robust_list	-a24 -e trace=get_robust_list,set_robust_list
++xet_robust_list--pidns-translation	test_pidns -a24 -e trace=get_robust_list,set_robust_list
+ xetitimer	-a29 -e trace=setitimer,getitimer
+ xetpgid	-a11 -e trace=getpgid,setpgid
+-xetpriority	-a29 -e trace=getpriority,setpriority
++xetpgid--pidns-translation	test_pidns -a11 -e trace=getpgid,setpgid
++xetpriority	-a27 -e trace=getpriority,setpriority
++xetpriority--pidns-translation	test_pidns -a27 -e trace=getpriority,setpriority
+ xettimeofday	-a20 -e trace=gettimeofday,settimeofday
+Index: strace-5.7/tests-m32/getpgrp--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/getpgrp--pidns-translation.c	2020-09-09 19:52:38.892673628 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "getpgrp.c"
+Index: strace-5.7/tests-m32/getpgrp.c
+===================================================================
+--- strace-5.7.orig/tests-m32/getpgrp.c	2020-09-09 19:52:30.609668691 +0200
++++ strace-5.7/tests-m32/getpgrp.c	2020-09-09 19:52:38.892673628 +0200
+@@ -7,6 +7,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #ifdef __NR_getpgrp
+ 
+@@ -16,8 +17,13 @@
+ int
+ main(void)
+ {
+-	printf("getpgrp() = %ld\n", syscall(__NR_getpgrp));
++	PIDNS_TEST_INIT;
+ 
++	pidns_print_leader();
++	printf("getpgrp() = %d%s\n", (int) syscall(__NR_getpgrp),
++		pidns_pid2str(PT_PGID));
++
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-m32/getpid--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/getpid--pidns-translation.c	2020-09-09 19:52:38.892673628 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "getpid.c"
+Index: strace-5.7/tests-m32/getpid.c
+===================================================================
+--- strace-5.7.orig/tests-m32/getpid.c	2020-09-09 19:52:30.610668691 +0200
++++ strace-5.7/tests-m32/getpid.c	2020-09-09 19:52:38.892673628 +0200
+@@ -7,6 +7,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #if defined __NR_getpid && (!defined __NR_getxpid || __NR_getxpid != __NR_getpid)
+ 
+@@ -16,7 +17,12 @@
+ int
+ main(void)
+ {
+-	printf("getpid() = %ld\n", syscall(__NR_getpid));
++	PIDNS_TEST_INIT;
++
++	pidns_print_leader();
++	printf("getpid() = %d%s\n", (int) syscall(__NR_getpid),
++		pidns_pid2str(PT_TGID));
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-m32/getsid--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/getsid--pidns-translation.c	2020-09-09 19:52:38.892673628 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "getsid.c"
+Index: strace-5.7/tests-m32/getsid.c
+===================================================================
+--- strace-5.7.orig/tests-m32/getsid.c	2020-09-09 19:52:30.610668691 +0200
++++ strace-5.7/tests-m32/getsid.c	2020-09-09 19:52:38.892673628 +0200
+@@ -6,15 +6,22 @@
+  */
+ 
+ #include "tests.h"
++#include "pidns.h"
++
+ #include <stdio.h>
+ #include <unistd.h>
+ 
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	pid_t pid = getpid();
+-	printf("getsid(%d) = %d\n", pid, getsid(pid));
++	pidns_print_leader();
++	printf("getsid(%d%s) = %d%s\n", pid, pidns_pid2str(PT_TGID),
++		getsid(pid), pidns_pid2str(PT_SID));
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-m32/gettid--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/gettid--pidns-translation.c	2020-09-09 19:52:38.893673628 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "gettid.c"
+Index: strace-5.7/tests-m32/gettid--pidns-translation.test
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/gettid--pidns-translation.test	2020-09-09 19:52:38.893673628 +0200
+@@ -0,0 +1,18 @@
++#!/bin/sh
++#
++# Check pidns translation of gettid's return value.
++#
++# Copyright (c) 2020 The strace developers.
++# All rights reserved.
++#
++# SPDX-License-Identifier: LGPL-2.1-or-later
++
++. "${srcdir=.}/init.sh"
++
++run_prog > /dev/null
++run_strace -a9 --pidns-translation -f -e trace=gettid $args > "$EXP"
++parent_pid="$(tail -n 2 $LOG | head -n 1 | cut -d' ' -f1)"
++init_pid="$(tail -n 1 $LOG | cut -d' ' -f1)"
++# uniq: filter out extra gettid calls made by musl libc
++grep -E -v "^($parent_pid|$init_pid) |unfinished|resumed" "$LOG" | uniq > "$OUT"
++match_diff "$OUT" "$EXP"
+Index: strace-5.7/tests-m32/gettid.c
+===================================================================
+--- strace-5.7.orig/tests-m32/gettid.c	2020-09-09 19:52:30.610668691 +0200
++++ strace-5.7/tests-m32/gettid.c	2020-09-09 19:52:38.893673628 +0200
+@@ -9,11 +9,17 @@
+ #include <stdio.h>
+ #include <unistd.h>
+ #include "scno.h"
++#include "pidns.h"
+ 
+ int
+ main(void)
+ {
+-	printf("gettid() = %ld\n", syscall(__NR_gettid));
++	PIDNS_TEST_INIT;
++
++	pidns_print_leader();
++	printf("gettid() = %d%s\n", (int) syscall(__NR_gettid),
++		pidns_pid2str(PT_TID));
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-m32/ioctl_block--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/ioctl_block--pidns-translation.c	2020-09-09 19:52:38.893673628 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "ioctl_block.c"
+Index: strace-5.7/tests-m32/ioctl_block--pidns-translation.test
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/ioctl_block--pidns-translation.test	2020-09-09 19:52:38.893673628 +0200
+@@ -0,0 +1,22 @@
++#!/bin/sh
++#
++# Check pidns translation of ioctl(BLK*) syscall decoding.
++#
++# Copyright (c) 2020 The strace developers.
++# All rights reserved.
++#
++# SPDX-License-Identifier: LGPL-2.1-or-later
++
++. "${srcdir=.}/init.sh"
++
++check_prog head
++check_prog tail
++check_prog cut
++check_prog grep
++
++run_prog > /dev/null
++run_strace --pidns-translation -f -a16 -e trace=ioctl $@ $args > "$EXP"
++parent_pid="$(tail -n 2 $LOG | head -n 1 | cut -d' ' -f1)"
++init_pid="$(tail -n 1 $LOG | cut -d' ' -f1)"
++grep -E -v "^($parent_pid|$init_pid) |ioctl\([0123][,<]" "$LOG" > "$OUT"
++match_diff "$OUT" "$EXP"
+Index: strace-5.7/tests-m32/ioctl_block.c
+===================================================================
+--- strace-5.7.orig/tests-m32/ioctl_block.c	2020-09-09 19:52:30.611668692 +0200
++++ strace-5.7/tests-m32/ioctl_block.c	2020-09-09 19:52:38.893673628 +0200
+@@ -9,7 +9,9 @@
+  */
+ 
+ #include "tests.h"
++#include "pidns.h"
+ #include <errno.h>
++#include <unistd.h>
+ #include <inttypes.h>
+ #include <stdio.h>
+ #include <string.h>
+@@ -41,12 +43,15 @@
+ #define TEST_NULL_ARG(cmd)						\
+ 	do {								\
+ 		ioctl(-1, cmd, 0);					\
++		pidns_print_leader();					\
+ 		printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", #cmd);	\
+ 	} while (0)
+ 
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	TEST_NULL_ARG(BLKBSZGET);
+ 	TEST_NULL_ARG(BLKBSZSET);
+ 	TEST_NULL_ARG(BLKFRAGET);
+@@ -91,18 +96,22 @@
+ #endif
+ 
+ 	ioctl(-1, BLKRASET, lmagic);
++	pidns_print_leader();
+ 	printf("ioctl(-1, BLKRASET, %lu) = -1 EBADF (%m)\n", lmagic);
+ 
+ 	ioctl(-1, BLKFRASET, lmagic);
++	pidns_print_leader();
+ 	printf("ioctl(-1, BLKFRASET, %lu) = -1 EBADF (%m)\n", lmagic);
+ 
+ 	TAIL_ALLOC_OBJECT_CONST_PTR(int, val_int);
+ 	*val_int = magic;
+ 
+ 	ioctl(-1, BLKROSET, val_int);
++	pidns_print_leader();
+ 	printf("ioctl(-1, BLKROSET, [%d]) = -1 EBADF (%m)\n", *val_int);
+ 
+ 	ioctl(-1, BLKBSZSET, val_int);
++	pidns_print_leader();
+ 	printf("ioctl(-1, BLKBSZSET, [%d]) = -1 EBADF (%m)\n", *val_int);
+ 
+ 	uint64_t *pair_int64 = tail_alloc(sizeof(*pair_int64) * 2);
+@@ -111,18 +120,21 @@
+ 
+ #ifdef BLKDISCARD
+ 	ioctl(-1, BLKDISCARD, pair_int64);
++	pidns_print_leader();
+ 	printf("ioctl(-1, BLKDISCARD, [%" PRIu64 ", %" PRIu64 "])"
+ 	       " = -1 EBADF (%m)\n", pair_int64[0], pair_int64[1]);
+ #endif
+ 
+ #ifdef BLKSECDISCARD
+ 	ioctl(-1, BLKSECDISCARD, pair_int64);
++	pidns_print_leader();
+ 	printf("ioctl(-1, BLKSECDISCARD, [%" PRIu64 ", %" PRIu64 "])"
+ 	       " = -1 EBADF (%m)\n", pair_int64[0], pair_int64[1]);
+ #endif
+ 
+ #ifdef BLKZEROOUT
+ 	ioctl(-1, BLKZEROOUT, pair_int64);
++	pidns_print_leader();
+ 	printf("ioctl(-1, BLKZEROOUT, [%" PRIu64 ", %" PRIu64 "])"
+ 	       " = -1 EBADF (%m)\n", pair_int64[0], pair_int64[1]);
+ #endif
+@@ -134,6 +146,7 @@
+ 	blkpg->data = (void *) (unsigned long) 0xcafef00dfffffeedULL;
+ 
+ 	ioctl(-1, BLKPG, blkpg);
++	pidns_print_leader();
+ 	printf("ioctl(-1, BLKPG, {op=%s, flags=%d, datalen=%d"
+ 	       ", data=%#lx}) = -1 EBADF (%m)\n",
+ 	       "BLKPG_RESIZE_PARTITION", blkpg->flags, blkpg->datalen,
+@@ -149,6 +162,7 @@
+ 	blkpg->data = bp;
+ 
+ 	ioctl(-1, BLKPG, blkpg);
++	pidns_print_leader();
+ 	printf("ioctl(-1, BLKPG, {op=%s, flags=%d, datalen=%d"
+ 	       ", data={start=%lld, length=%lld, pno=%d"
+ 	       ", devname=\"%.*s\"..., volname=\"%.*s\"...}})"
+@@ -162,25 +176,31 @@
+ #if defined BLKTRACESETUP && defined HAVE_STRUCT_BLK_USER_TRACE_SETUP
+ 	TAIL_ALLOC_OBJECT_CONST_PTR(struct blk_user_trace_setup, buts);
+ 	fill_memory(buts, sizeof(*buts));
++	buts->pid = getpid();
+ 
+ 	ioctl(-1, BLKTRACESETUP, buts);
++	pidns_print_leader();
+ 	printf("ioctl(-1, BLKTRACESETUP, {act_mask=%hu, buf_size=%u, buf_nr=%u"
+-	       ", start_lba=%" PRI__u64 ", end_lba=%" PRI__u64 ", pid=%d})"
++	       ", start_lba=%" PRI__u64 ", end_lba=%" PRI__u64 ", pid=%d%s})"
+ 	       " = -1 EBADF (%m)\n",
+ 	       buts->act_mask, buts->buf_size, buts->buf_nr,
+-	       buts->start_lba, buts->end_lba, buts->pid);
++	       buts->start_lba, buts->end_lba, buts->pid,
++	       pidns_pid2str(PT_TGID));
+ #endif
+ 
+ 	unsigned int i;
+ 	for (i = 0; i < ARRAY_SIZE(block_argless); ++i) {
+ 		ioctl(-1, (unsigned long) block_argless[i].val, lmagic);
++		pidns_print_leader();
+ 		printf("ioctl(-1, %s) = -1 EBADF (%m)\n", block_argless[i].str);
+ 	}
+ 
+ 	ioctl(-1, _IOC(_IOC_READ, 0x12, 0xfe, 0xff), lmagic);
++	pidns_print_leader();
+ 	printf("ioctl(-1, %s, %#lx) = -1 EBADF (%m)\n",
+ 	       "_IOC(_IOC_READ, 0x12, 0xfe, 0xff)", lmagic);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-m32/ioprio--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/ioprio--pidns-translation.c	2020-09-09 19:52:38.894673629 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "ioprio.c"
+Index: strace-5.7/tests-m32/ioprio.c
+===================================================================
+--- strace-5.7.orig/tests-m32/ioprio.c	2020-09-09 19:52:30.611668692 +0200
++++ strace-5.7/tests-m32/ioprio.c	2020-09-09 19:52:38.894673629 +0200
+@@ -9,8 +9,8 @@
+  */
+ 
+ #include "tests.h"
+-
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #if defined(__NR_ioprio_get) && defined(__NR_ioprio_set)
+ 
+@@ -30,12 +30,18 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	static const kernel_ulong_t bogus_which =
+ 		(kernel_ulong_t) 0xdeadfacefa57beefULL;
+ 	static const kernel_ulong_t bogus_who =
+ 		(kernel_ulong_t) 0xbadc0dedda7a1057ULL;
+ 	static const kernel_ulong_t bogus_ioprio =
+ 		(kernel_ulong_t) 0xdec0ded1facefeedULL;
++
++	const int pid = getpid();
++	const int pgid = getpgid(0);
++
+ # if !XLAT_RAW
+ 	static const char * const bogus_ioprio_str =
+ 		"IOPRIO_PRIO_VALUE(0x7d677 /* IOPRIO_CLASS_??? */, 7917)";
+@@ -46,6 +52,7 @@
+ 
+ 	rc = syscall(__NR_ioprio_get, bogus_which, bogus_who);
+ 	errstr = sprintrc(rc);
++	pidns_print_leader();
+ # if XLAT_RAW
+ 	printf("ioprio_get(%#x, %d) = %s\n",
+ 	       (int) bogus_which, (int) bogus_who, errstr);
+@@ -54,42 +61,52 @@
+ 	       (int) bogus_which, (int) bogus_who, errstr);
+ # endif
+ 
+-	rc = syscall(__NR_ioprio_get, 1, 0);
++	rc = syscall(__NR_ioprio_get, 1, pid);
+ 	errstr = sprintrc(rc);
++	pidns_print_leader();
++	printf("ioprio_get(");
+ # if XLAT_RAW
+-	printf("ioprio_get(0x1, 0) = %s\n", errstr);
++	printf("0x1, ");
++# elif XLAT_VERBOSE
++	printf("0x1 /* IOPRIO_WHO_PROCESS */, ");
+ # else /* XLAT_ABBREV */
+-#  if XLAT_VERBOSE
+-	printf("ioprio_get(0x1 /* IOPRIO_WHO_PROCESS */, 0) = %s", errstr);
+-#  else
+-	printf("ioprio_get(IOPRIO_WHO_PROCESS, 0) = %s", errstr);
+-#  endif
++	printf("IOPRIO_WHO_PROCESS, ");
++# endif
++	printf("%d%s) = %s", pid, pidns_pid2str(PT_TGID), errstr);
++# if !XLAT_RAW
+ 	if (rc >= 0) {
+ 		printf(" (IOPRIO_PRIO_VALUE(");
+ 		printxval(ioprio_class, (unsigned int) rc >> 13,
+ 			  "IOPRIO_CLASS_???");
+ 		printf(", %u))", (unsigned int) rc & 0x1fff);
+ 	}
+-	puts("");
+ # endif
++	puts("");
+ 
+-	rc = syscall(__NR_ioprio_set, 2, 0, 8191);
++	rc = syscall(__NR_ioprio_set, 2, pgid, 8191);
+ 	errstr = sprintrc(rc);
++	pidns_print_leader();
++	printf("ioprio_set(");
+ # if XLAT_RAW
+-	printf("ioprio_set(%#x, 0, 8191) = %s\n", 2, errstr);
++	printf("%#x", 2);
+ # elif XLAT_VERBOSE
+-	printf("ioprio_set(%#x /* IOPRIO_WHO_PGRP */, 0, 8191"
+-	       " /* IOPRIO_PRIO_VALUE(0 /* IOPRIO_CLASS_NONE */, 8191) */)"
+-	       " = %s\n",
+-	       2, errstr);
++	printf("%#x /* IOPRIO_WHO_PGRP */", 2);
+ # else /* XLAT_ABBREV */
+-	printf("ioprio_set(IOPRIO_WHO_PGRP, 0"
+-	       ", IOPRIO_PRIO_VALUE(IOPRIO_CLASS_NONE, 8191)) = %s\n",
+-	       errstr);
++	printf("IOPRIO_WHO_PGRP");
++# endif
++	printf(", %d%s", pgid, pidns_pid2str(PT_PGID));
++# if XLAT_RAW
++	printf(", 8191)");
++# elif XLAT_VERBOSE
++	printf(", 8191 /* IOPRIO_PRIO_VALUE(0 /* IOPRIO_CLASS_NONE */, 8191) */)");
++# else /* XLAT_ABBREV */
++	printf(", IOPRIO_PRIO_VALUE(IOPRIO_CLASS_NONE, 8191))");
+ # endif
++	printf(" = %s\n", errstr);
+ 
+ 	rc = syscall(__NR_ioprio_set, bogus_which, bogus_who, bogus_ioprio);
+ 	errstr = sprintrc(rc);
++	pidns_print_leader();
+ # if XLAT_RAW
+ 	printf("ioprio_set(%#x, %d, %d) = %s\n",
+ 	       (int) bogus_which, (int) bogus_who, (int) bogus_ioprio,
+@@ -104,6 +121,7 @@
+ 	       errstr);
+ # endif
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 
+ 	return 0;
+Index: strace-5.7/tests-m32/kcmp-y--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/kcmp-y--pidns-translation.c	2020-09-09 19:52:38.894673629 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "kcmp-y.c"
+Index: strace-5.7/tests-m32/kcmp.c
+===================================================================
+--- strace-5.7.orig/tests-m32/kcmp.c	2020-09-09 19:52:30.612668693 +0200
++++ strace-5.7/tests-m32/kcmp.c	2020-09-09 19:52:38.894673629 +0200
+@@ -9,8 +9,8 @@
+  */
+ 
+ #include "tests.h"
+-
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #ifdef __NR_kcmp
+ 
+@@ -101,7 +101,11 @@
+ 	rc = syscall(__NR_kcmp, pid1, pid2, type, idx1, idx2);
+ 	errstr = sprintrc(rc);
+ 
+-	printf("kcmp(%d, %d, ", (int) pid1, (int) pid2);
++	const char *pid_str = pidns_pid2str(PT_TGID);
++	pidns_print_leader();
++	printf("kcmp(%d%s, %d%s, ",
++		(int) pid1, (int) pid1 == getpid() ? pid_str : "",
++		(int) pid2, (int) pid2 == getpid() ? pid_str : "");
+ 
+ 	if (type_str)
+ 		printf("%s", type_str);
+@@ -146,6 +150,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	static const kernel_ulong_t bogus_pid1 =
+ 		(kernel_ulong_t) 0xdeadca75face1057ULL;
+ 	static const kernel_ulong_t bogus_pid2 =
+@@ -221,6 +227,7 @@
+ 			(uintptr_t) slot, 1);
+ 	}
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 
+ 	return 0;
+Index: strace-5.7/tests-m32/kill--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/kill--pidns-translation.c	2020-09-09 19:52:38.894673629 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "kill.c"
+Index: strace-5.7/tests-m32/kill.c
+===================================================================
+--- strace-5.7.orig/tests-m32/kill.c	2020-09-09 19:52:30.612668693 +0200
++++ strace-5.7/tests-m32/kill.c	2020-09-09 19:52:38.895673630 +0200
+@@ -11,6 +11,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #ifdef __NR_kill
+ 
+@@ -26,6 +27,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	const struct sigaction act = { .sa_handler = handler };
+ 	if (sigaction(SIGALRM, &act, NULL))
+ 		perror_msg_and_fail("sigaction");
+@@ -37,18 +40,23 @@
+ 		perror_msg_and_fail("sigprocmask");
+ 
+ 	const int pid = getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
+ 	long rc = syscall(__NR_kill, pid, (long) 0xdefaced00000000ULL | SIGALRM);
+-	printf("kill(%d, SIGALRM) = %ld\n", pid, rc);
++	pidns_print_leader();
++	printf("kill(%d%s, SIGALRM) = %ld\n", pid, pid_str, rc);
+ 
+ 	const long big_pid = (long) 0xfacefeedbadc0dedULL;
+ 	const long big_sig = (long) 0xdeadbeefcafef00dULL;
+ 	rc = syscall(__NR_kill, big_pid, big_sig);
++	pidns_print_leader();
+ 	printf("kill(%d, %d) = %ld %s (%m)\n",
+ 	       (int) big_pid, (int) big_sig, rc, errno2name());
+ 
+ 	rc = syscall(__NR_kill, (long) 0xdefaced00000000ULL | pid, 0);
+-	printf("kill(%d, 0) = %ld\n", pid, rc);
++	pidns_print_leader();
++	printf("kill(%d%s, 0) = %ld\n", pid, pid_str, rc);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-m32/migrate_pages--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/migrate_pages--pidns-translation.c	2020-09-09 19:52:38.895673630 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "migrate_pages.c"
+Index: strace-5.7/tests-m32/migrate_pages.c
+===================================================================
+--- strace-5.7.orig/tests-m32/migrate_pages.c	2020-09-09 19:52:30.612668693 +0200
++++ strace-5.7/tests-m32/migrate_pages.c	2020-09-09 19:52:38.895673630 +0200
+@@ -10,6 +10,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #ifdef __NR_migrate_pages
+ 
+@@ -19,11 +20,21 @@
+ int
+ main(void)
+ {
+-	const long pid = (long) 0xfacefeedffffffffULL;
++	PIDNS_TEST_INIT;
++
++	const long pid = (long) 0xfacefeed00000000ULL | getpid();
+ 	long rc = syscall(__NR_migrate_pages, pid, 0, 0, 0);
+-	printf("migrate_pages(%d, 0, NULL, NULL) = %ld %s (%m)\n",
+-	       (int) pid, rc, errno2name());
+ 
++	pidns_print_leader();
++	printf("migrate_pages(%d%s, 0, NULL, NULL) = %ld",
++		(int) pid, pidns_pid2str(PT_TGID), rc);
++
++	if (rc < 0)
++		printf(" %s (%m)\n", errno2name());
++	else
++		printf("\n");
++
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-m32/move_pages--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/move_pages--pidns-translation.c	2020-09-09 19:52:38.895673630 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "move_pages.c"
+Index: strace-5.7/tests-m32/move_pages.c
+===================================================================
+--- strace-5.7.orig/tests-m32/move_pages.c	2020-09-09 19:52:30.613668693 +0200
++++ strace-5.7/tests-m32/move_pages.c	2020-09-09 19:52:38.895673630 +0200
+@@ -10,6 +10,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #ifdef __NR_move_pages
+ 
+@@ -122,15 +123,20 @@
+ }
+ 
+ static void
+-print_stat_pages(const unsigned long pid, const unsigned long count,
+-		 const void **const pages, int *const status)
++print_stat_pages(const unsigned long pid,
++		 const char *pid_str,
++		 const unsigned long count,
++		 const void **const pages,
++		 int *const status)
+ {
+ 	const unsigned long flags = (unsigned long) 0xfacefeed00000002ULL;
+ 
+ 	long rc = syscall(__NR_move_pages,
+ 			  pid, count, pages, NULL, status, flags);
+ 	const char *errstr = sprintrc(rc);
+-	printf("move_pages(%d, %lu, ", (int) pid, count);
++	pidns_print_leader();
++	printf("move_pages(%d%s, %lu, ", (int) pid, pid_str,
++		count);
+ 	print_page_array(pages, count, 0);
+ 	printf(", NULL, ");
+ 	if (rc) {
+@@ -152,6 +158,7 @@
+ 
+ static void
+ print_move_pages(const unsigned long pid,
++		 const char *pid_str,
+ 		 unsigned long count,
+ 		 const unsigned int offset,
+ 		 const void **const pages,
+@@ -164,7 +171,9 @@
+ 	long rc = syscall(__NR_move_pages,
+ 			  pid, count, pages, nodes, status, flags);
+ 	const char *errstr = sprintrc(rc);
+-	printf("move_pages(%d, %lu, ", (int) pid, count);
++	pidns_print_leader();
++	printf("move_pages(%d%s, %lu, ", (int) pid, pid_str,
++		count);
+ 	print_page_array(pages, count, offset);
+ 	printf(", ");
+ 	print_node_array(nodes, count, offset);
+@@ -185,8 +194,11 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	const unsigned long pid =
+ 		(unsigned long) 0xfacefeed00000000ULL | getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
+ 	unsigned long count = 1;
+ 	const unsigned page_size = get_page_size();
+ 	const void *const page = tail_alloc(page_size);
+@@ -195,40 +207,41 @@
+ 	TAIL_ALLOC_OBJECT_VAR_PTR(int, nodes);
+ 	TAIL_ALLOC_OBJECT_VAR_PTR(int, status);
+ 
+-	print_stat_pages(pid, 0, pages, status);
+-	print_move_pages(pid, 0, 0, pages, nodes, status);
+-	print_move_pages(pid, 0, 1, pages + 1, nodes + 1, status + 1);
++	print_stat_pages(pid, pid_str, 0, pages, status);
++	print_move_pages(pid, pid_str, 0, 0, pages, nodes, status);
++	print_move_pages(pid, pid_str, 0, 1, pages + 1, nodes + 1, status + 1);
+ 
+ 	*pages = page;
+-	print_stat_pages(pid, count, pages, status);
++	print_stat_pages(pid, pid_str, count, pages, status);
+ 	*nodes = 0xdeadbee1;
+-	print_move_pages(pid, count, 0, pages, nodes, status);
+-	print_move_pages(pid, count, 1, pages, nodes, status);
++	print_move_pages(pid, pid_str, count, 0, pages, nodes, status);
++	print_move_pages(pid, pid_str, count, 1, pages, nodes, status);
+ 
+ 	++count;
+ 	--status;
+ 	*(--pages) = efault;
+-	print_stat_pages(pid, count, pages, status);
++	print_stat_pages(pid, pid_str, count, pages, status);
+ 	*(--nodes) = 0xdeadbee2;
+-	print_move_pages(pid, count, 0, pages, nodes, status);
+-	print_move_pages(pid, count, 1, pages, nodes, status);
++	print_move_pages(pid, pid_str, count, 0, pages, nodes, status);
++	print_move_pages(pid, pid_str, count, 1, pages, nodes, status);
+ 
+ 	++count;
+ 	--status;
+ 	*(--pages) = nodes;
+-	print_stat_pages(pid, count, pages, status);
++	print_stat_pages(pid, pid_str, count, pages, status);
+ 	*(--nodes) = 0xdeadbee3;
+-	print_move_pages(pid, count, 0, pages, nodes, status);
+-	print_move_pages(pid, count, 1, pages, nodes, status);
++	print_move_pages(pid, pid_str, count, 0, pages, nodes, status);
++	print_move_pages(pid, pid_str, count, 1, pages, nodes, status);
+ 
+ 	++count;
+ 	--status;
+ 	*(--pages) = status;
+-	print_stat_pages(pid, count, pages, status);
++	print_stat_pages(pid, pid_str, count, pages, status);
+ 	*(--nodes) = 0xdeadbee4;
+-	print_move_pages(pid, count, 0, pages, nodes, status);
+-	print_move_pages(pid, count, 1, pages, nodes, status);
++	print_move_pages(pid, pid_str, count, 0, pages, nodes, status);
++	print_move_pages(pid, pid_str, count, 1, pages, nodes, status);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-m32/net-sockaddr--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/net-sockaddr--pidns-translation.c	2020-09-09 19:52:38.896673630 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "net-sockaddr.c"
+Index: strace-5.7/tests-m32/net-sockaddr.c
+===================================================================
+--- strace-5.7.orig/tests-m32/net-sockaddr.c	2020-09-09 19:52:30.614668694 +0200
++++ strace-5.7/tests-m32/net-sockaddr.c	2020-09-09 19:52:38.896673630 +0200
+@@ -9,6 +9,7 @@
+  */
+ 
+ #include "tests.h"
++#include "pidns.h"
+ #include <stddef.h>
+ #include <stdio.h>
+ #include <string.h>
+@@ -40,18 +41,21 @@
+ 	memset(un->sun_path, '0', sizeof(un->sun_path));
+ 	unsigned int len = sizeof(*un);
+ 	int ret = connect(-1, (void *) un, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_UNIX, sun_path=\"%.*u\"}"
+ 	       ", %u) = %d EBADF (%m)\n",
+ 	       (int) sizeof(un->sun_path), 0, len, ret);
+ 
+ 	un->sun_path[1] = 0;
+ 	ret = connect(-1, (void *) un, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_UNIX, sun_path=\"%u\"}, %u)"
+ 	       " = %d EBADF (%m)\n", 0, len, ret);
+ 
+ 	un->sun_path[0] = 0;
+ 	un->sun_path[2] = 1;
+ 	ret = connect(-1, (void *) un, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_UNIX, sun_path=@\"\\0\\001%.*u\"}"
+ 	       ", %u) = %d EBADF (%m)\n",
+ 	       (int) sizeof(un->sun_path) - 3, 0, len, ret);
+@@ -61,12 +65,14 @@
+ 	memset(un->sun_path, '0', sizeof(un->sun_path));
+ 	len = sizeof(*un) + 2;
+ 	ret = connect(-1, (void *) un, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_UNIX, sun_path=\"%.*u\"}"
+ 	       ", %u) = %d EBADF (%m)\n",
+ 	       (int) sizeof(un->sun_path), 0, len, ret);
+ 
+ 	un->sun_path[0] = 0;
+ 	ret = connect(-1, (void *) un, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_UNIX, sun_path=@\"%.*u\"}"
+ 	       ", %u) = %d EBADF (%m)\n",
+ 	       (int) sizeof(un->sun_path) - 1, 0, len, ret);
+@@ -75,18 +81,21 @@
+ 	un->sun_family = AF_UNIX;
+ 	len = sizeof(*un) - 2;
+ 	ret = connect(-1, (void *) un, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_UNIX, sun_path=\"%.*u\"}"
+ 	       ", %u) = %d EBADF (%m)\n",
+ 	       (int) sizeof(un->sun_path) - 2, 0, len, ret);
+ 
+ 	un->sun_path[0] = 0;
+ 	ret = connect(-1, (void *) un, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_UNIX, sun_path=@\"%.*u\"}"
+ 	       ", %u) = %d EBADF (%m)\n",
+ 	       (int) sizeof(un->sun_path) - 3, 0, len, ret);
+ 
+ 	len = sizeof(*un);
+ 	ret = connect(-1, (void *) un, len);
++	pidns_print_leader();
+ 	printf("connect(-1, %p, %u) = %d EBADF (%m)\n", un, len, ret);
+ 
+ 	un = tail_alloc(sizeof(struct sockaddr_storage));
+@@ -94,12 +103,14 @@
+ 	memset(un->sun_path, '0', sizeof(un->sun_path));
+ 	len = sizeof(struct sockaddr_storage) + 1;
+ 	ret = connect(-1, (void *) un, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_UNIX, sun_path=\"%.*u\"}"
+ 	       ", %u) = %d EBADF (%m)\n",
+ 	       (int) sizeof(un->sun_path), 0, len, ret);
+ 
+ 	un->sun_path[0] = 0;
+ 	ret = connect(-1, (void *) un, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_UNIX, sun_path=@\"%.*u\"}"
+ 	       ", %u) = %d EBADF (%m)\n",
+ 	       (int) sizeof(un->sun_path) - 1, 0, len, ret);
+@@ -117,6 +128,7 @@
+ 	in->sin_addr.s_addr = inet_addr(h_addr);
+ 	unsigned int len = sizeof(*in);
+ 	int ret = connect(-1, (void *) in, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_INET, sin_port=htons(%hu)"
+ 	       ", sin_addr=inet_addr(\"%s\")}, %u) = %d EBADF (%m)\n",
+ 	       h_port, h_addr, len, ret);
+@@ -127,6 +139,7 @@
+ 	in->sin_addr.s_addr = inet_addr(h_addr);
+ 	len = sizeof(*in) + 4;
+ 	ret = connect(-1, (void *) in, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_INET, sin_port=htons(%hu)"
+ 	       ", sin_addr=inet_addr(\"%s\")}, %u) = %d EBADF (%m)\n",
+ 	       h_port, h_addr, len, ret);
+@@ -137,6 +150,7 @@
+ 	in->sin_addr.s_addr = 0;
+ 	len = sizeof(*in) - 4;
+ 	ret = connect(-1, (void *) in, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_INET, sa_data=\"%s\"}, %u)"
+ 	       " = %d EBADF (%m)\n",
+ 	       "\\0\\0\\0\\0\\0\\0\\377\\377\\377\\377",
+@@ -144,6 +158,7 @@
+ 
+ 	len = sizeof(*in);
+ 	ret = connect(-1, (void *) in, len);
++	pidns_print_leader();
+ 	printf("connect(-1, %p, %u) = %d EBADF (%m)\n", in, len, ret);
+ }
+ 
+@@ -155,6 +170,7 @@
+ 	in6->sin6_scope_id = 0xfacefeed;
+ 	unsigned int len = sizeof(*in6);
+ 	int ret = connect(-1, (void *) in6, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)"
+ 	       ", sin6_flowinfo=htonl(%u)"
+ 	       ", inet_pton(AF_INET6, \"%s\", &sin6_addr)"
+@@ -166,7 +182,8 @@
+ 	in6->sin6_scope_id = ifindex_lo();
+ 	if (in6->sin6_scope_id) {
+ 		ret = connect(-1, (void *) in6, len);
+-		printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)"
++		pidns_print_leader();
++	printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)"
+ 		       ", sin6_flowinfo=htonl(%u)"
+ 		       ", inet_pton(AF_INET6, \"%s\", &sin6_addr)"
+ 		       ", sin6_scope_id=%s}, %u)"
+@@ -191,6 +208,7 @@
+ 	in6->sin6_scope_id = 0xfacefeed;
+ 	unsigned int len = sizeof(*in6);
+ 	int ret = connect(-1, (void *) in6, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)"
+ 	       ", sin6_flowinfo=htonl(%u)"
+ 	       ", inet_pton(AF_INET6, \"%s\", &sin6_addr)"
+@@ -209,6 +227,7 @@
+ 	in6->sin6_scope_id = 0xfacefeed;
+ 	len = sizeof(*in6) + 4;
+ 	ret = connect(-1, (void *) in6, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)"
+ 	       ", sin6_flowinfo=htonl(%u)"
+ 	       ", inet_pton(AF_INET6, \"%s\", &sin6_addr)"
+@@ -223,6 +242,7 @@
+ 	inet_pton(AF_INET6, h_addr, &in6->sin6_addr);
+ 	len = sizeof(*in6) - sizeof(in6->sin6_scope_id);
+ 	ret = connect(-1, (void *) in6, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)"
+ 	       ", sin6_flowinfo=htonl(%u)"
+ 	       ", inet_pton(AF_INET6, \"%s\", &sin6_addr)}, %u)"
+@@ -236,6 +256,7 @@
+ 	memset(&in6->sin6_addr, '0', sizeof(in6->sin6_addr) - 4);
+ 	len = sizeof(*in6) - sizeof(in6->sin6_scope_id) - 4;
+ 	ret = connect(-1, (void *) in6, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_INET6"
+ 	       ", sa_data=\"\\0\\0\\0\\0\\0\\000%.*u\"}, %u)"
+ 	       " = %d EBADF (%m)\n",
+@@ -244,6 +265,7 @@
+ 
+ 	len = sizeof(*in6) - sizeof(in6->sin6_scope_id);
+ 	ret = connect(-1, (void *) in6, len);
++	pidns_print_leader();
+ 	printf("connect(-1, %p, %u) = %d EBADF (%m)\n", in6, len, ret);
+ }
+ 
+@@ -262,6 +284,7 @@
+ 	void *ipx = tail_memdup(&c_ipx, sizeof(c_ipx));
+ 	unsigned int len = sizeof(c_ipx);
+ 	int ret = connect(-1, ipx, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_IPX, sipx_port=htons(%u)"
+ 	       ", sipx_network=htonl(%#x)"
+ 	       ", sipx_node=[%#02x, %#02x, %#02x, %#02x, %#02x, %#02x]"
+@@ -316,18 +339,21 @@
+ 	fill_memory(sax, size);
+ 	sax->fsa_ax25.sax25_family = AF_AX25;
+ 	rc = connect(-1, sax_void, sizeof(struct sockaddr_ax25) - 1);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_AX25, sa_data=\"\\202\\203\\204\\205"
+ 	       "\\206\\207\\210\\211\\212\\213\\214\\215\\216\"}, %zu) = %s\n",
+ 	       sizeof(struct sockaddr_ax25) - 1, sprintrc(rc));
+ 
+ 	memcpy(sax, &ax25, sizeof(ax25));
+ 	rc = connect(-1, sax_void, sizeof(struct sockaddr_ax25));
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_AX25, fsa_ax25={sax25_call=VALID-13"
+ 	       ", sax25_ndigis=8}, fsa_digipeater=[/* ??? */]}, %zu) = %s\n",
+ 	       sizeof(struct sockaddr_ax25), sprintrc(rc));
+ 
+ 	sax->fsa_ax25.sax25_ndigis = 0;
+ 	rc = connect(-1, sax_void, sizeof(struct sockaddr_ax25));
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_AX25, sax25_call=VALID-13"
+ 	       ", sax25_ndigis=0}, %zu) = %s\n",
+ 	       sizeof(struct sockaddr_ax25), sprintrc(rc));
+@@ -335,6 +361,7 @@
+ 	sax->fsa_ax25.sax25_ndigis = 8;
+ 	size = sizeof(struct sockaddr_ax25) + sizeof(ax25_address) * 3 + 1;
+ 	rc = connect(-1, sax_void, size);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_AX25, fsa_ax25={sax25_call=VALID-13"
+ 	       ", sax25_ndigis=8}, fsa_digipeater"
+ 	       "=[{ax25_call=\"\\xa6\\xa0\\x82\\x40\\x86\\x8a\\x00\""
+@@ -348,6 +375,7 @@
+ 	sax->fsa_digipeater[2].ax25_call[6] = 0x4;
+ 	size = sizeof(struct sockaddr_ax25) + sizeof(ax25_address) * 4;
+ 	rc = connect(-1, sax_void, size);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_AX25, fsa_ax25={sax25_call=VALID-13"
+ 	       ", sax25_ndigis=8}, fsa_digipeater"
+ 	       "=[{ax25_call=\"\\xa6\\xa0\\x82\\x40\\x86\\x8a\\x00\""
+@@ -365,6 +393,7 @@
+ 	for (size_t i = 0; i < 3; i++) {
+ 		size = sizeof(ax25) + sizeof(ax25_address) * (i / 2);
+ 		rc = connect(-1, sax_void, size);
++		pidns_print_leader();
+ 		printf("connect(-1, {sa_family=AF_AX25"
+ 		       ", fsa_ax25={sax25_call=VALID-13, sax25_ndigis=%d}"
+ 		       ", fsa_digipeater=[VALID2-7, OK-15, %s /* FINE-2 */"
+@@ -427,12 +456,14 @@
+ 	long rc;
+ 
+ 	rc = connect(-1, x25_void, sizeof(c_x25) - 1);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_X25"
+ 	       ", sa_data=\"0123456789abcde\"}, %zu) = %s\n",
+ 	       sizeof(c_x25) - 1, sprintrc(rc));
+ 
+ 	for (size_t i = 0; i < 2; i++) {
+ 		rc = connect(-1, x25_void, sizeof(c_x25) + i);
++		pidns_print_leader();
+ 		printf("connect(-1, {sa_family=AF_X25"
+ 		       ", sx25_addr={x25_addr=\"0123456789abcde\"...}"
+ 		       "}, %zu) = %s\n",
+@@ -442,6 +473,7 @@
+ 	struct sockaddr_x25 *const x25 = x25_void;
+ 	x25->sx25_addr.x25_addr[10] = '\0';
+ 	rc = connect(-1, x25_void, sizeof(c_x25));
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_X25"
+ 	       ", sx25_addr={x25_addr=\"0123456789\"}"
+ 	       "}, %zu) = %s\n",
+@@ -457,19 +489,21 @@
+ 	nl->nl_groups = 0xfacefeed;
+ 	unsigned int len = sizeof(*nl);
+ 	int ret = connect(-1, (void *) nl, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_NETLINK, nl_pid=%d"
+ 	       ", nl_groups=%#08x}, %u) = %d EBADF (%m)\n",
+ 	       nl->nl_pid, nl->nl_groups, len, ret);
+ 
+ 	nl = ((void *) nl) - 4;
+ 	nl->nl_family = AF_NETLINK;
+-	nl->nl_pid = 1234567890;
++	nl->nl_pid = getpid();
+ 	nl->nl_groups = 0xfacefeed;
+ 	len = sizeof(*nl) + 4;
+ 	ret = connect(-1, (void *) nl, len);
+-	printf("connect(-1, {sa_family=AF_NETLINK, nl_pid=%d"
++	pidns_print_leader();
++	printf("connect(-1, {sa_family=AF_NETLINK, nl_pid=%d%s"
+ 	       ", nl_groups=%#08x}, %u) = %d EBADF (%m)\n",
+-	       nl->nl_pid, nl->nl_groups, len, ret);
++	       nl->nl_pid, pidns_pid2str(PT_TGID), nl->nl_groups, len, ret);
+ }
+ 
+ static void
+@@ -487,6 +521,7 @@
+ 	void *ll = tail_memdup(&c_ll, sizeof(c_ll));
+ 	unsigned int len = sizeof(c_ll);
+ 	int ret = connect(-1, ll, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_PACKET"
+ 	       ", sll_protocol=htons(ETH_P_ALL)"
+ 	       ", sll_ifindex=%u, sll_hatype=ARPHRD_ETHER"
+@@ -502,6 +537,7 @@
+ 
+ 	((struct sockaddr_ll *) ll)->sll_halen++;
+ 	ret = connect(-1, ll, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_PACKET"
+ 	       ", sll_protocol=htons(ETH_P_ALL)"
+ 	       ", sll_ifindex=%u, sll_hatype=ARPHRD_ETHER"
+@@ -517,6 +553,7 @@
+ 
+ 	((struct sockaddr_ll *) ll)->sll_halen = 0;
+ 	ret = connect(-1, ll, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_PACKET"
+ 	       ", sll_protocol=htons(ETH_P_ALL)"
+ 	       ", sll_ifindex=%u, sll_hatype=ARPHRD_ETHER"
+@@ -526,6 +563,7 @@
+ 	((struct sockaddr_ll *) ll)->sll_ifindex = ifindex_lo();
+ 	if (((struct sockaddr_ll *) ll)->sll_ifindex) {
+ 		ret = connect(-1, ll, len);
++	pidns_print_leader();
+ 		printf("connect(-1, {sa_family=AF_PACKET"
+ 		       ", sll_protocol=htons(ETH_P_ALL)"
+ 		       ", sll_ifindex=%s"
+@@ -549,11 +587,13 @@
+ 	unsigned int len = sizeof(*hci);
+ 
+ 	int ret = connect(-1, (void *) hci, 4);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_BLUETOOTH, hci_dev=htobs(%hu)"
+ 	       "}, 4) = %d EBADF (%m)\n",
+ 	       h_port, ret);
+ 
+ 	ret = connect(-1, (void *) hci, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_BLUETOOTH, hci_dev=htobs(%hu)"
+ # ifdef HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL
+ 	       ", hci_channel=HCI_CHANNEL_RAW"
+@@ -572,6 +612,7 @@
+ 	void *sco = tail_memdup(&c_sco, sizeof(c_sco));
+ 	unsigned int len = sizeof(c_sco);
+ 	int ret = connect(-1, sco, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_BLUETOOTH"
+ 	       ", sco_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
+ 	       "}, %u) = %d EBADF (%m)\n",
+@@ -592,6 +633,7 @@
+ 	void *rc = tail_memdup(&c_rc, sizeof(c_rc));
+ 	unsigned int len = sizeof(c_rc);
+ 	int ret = connect(-1, rc, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_BLUETOOTH"
+ 	       ", rc_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
+ 	       ", rc_channel=%u}, %u) = %d EBADF (%m)\n",
+@@ -619,6 +661,7 @@
+ 	unsigned int len = sizeof(c_l2);
+ 
+ 	int ret = connect(-1, l2, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_BLUETOOTH"
+ 	       ", l2_psm=htobs(L2CAP_PSM_DYN_START + %hu)"
+ 	       ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
+@@ -640,6 +683,7 @@
+ # endif
+ 	memcpy(l2, &c_l2, sizeof(c_l2));
+ 	ret = connect(-1, l2, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_BLUETOOTH"
+ 	       ", l2_psm=htobs(L2CAP_PSM_SDP)"
+ 	       ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
+@@ -660,6 +704,7 @@
+ # endif
+ 	memcpy(l2, &c_l2, sizeof(c_l2));
+ 	ret = connect(-1, l2, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_BLUETOOTH"
+ 	       ", l2_psm=htobs(0xbad /* L2CAP_PSM_??? */)"
+ 	       ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
+@@ -677,6 +722,7 @@
+ 	c_l2.l2_cid = htobs(0xffff);
+ 	memcpy(l2, &c_l2, 12);
+ 	ret = connect(-1, l2, 12);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_BLUETOOTH"
+ 	       ", l2_psm=htobs(L2CAP_PSM_AUTO_END)"
+ 	       ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
+@@ -700,6 +746,7 @@
+ 	u.sa->sa_family = 0xff;
+ 	unsigned int len = sizeof(*u.st) + 8;
+ 	int ret = connect(-1, (void *) u.st, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=%#x /* AF_??? */, sa_data=\"%.*u\"}"
+ 	       ", %u) = %d EBADF (%m)\n", u.sa->sa_family,
+ 	       (int) (sizeof(*u.st) - sizeof(u.sa->sa_family)), 0, len, ret);
+@@ -707,11 +754,13 @@
+ 	u.sa->sa_family = 0;
+ 	len = sizeof(u.sa->sa_family) + 1;
+ 	ret = connect(-1, (void *) u.st, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_UNSPEC, sa_data=\"0\"}, %u)"
+ 	       " = %d EBADF (%m)\n", len, ret);
+ 
+ 	u.sa->sa_family = AF_BLUETOOTH;
+ 	ret = connect(-1, (void *) u.st, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_BLUETOOTH, sa_data=\"0\"}, %u)"
+ 	       " = %d EBADF (%m)\n", len, ret);
+ }
+@@ -719,6 +768,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	check_un();
+ 	check_in();
+ 	check_in6();
+@@ -735,6 +786,7 @@
+ #endif
+ 	check_raw();
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-m32/netlink_audit--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/netlink_audit--pidns-translation.c	2020-09-09 19:52:38.896673630 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "netlink_audit.c"
+Index: strace-5.7/tests-m32/netlink_audit--pidns-translation.test
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/netlink_audit--pidns-translation.test	2020-09-09 19:52:38.897673631 +0200
+@@ -0,0 +1,13 @@
++#!/bin/sh
++#
++# Check pidns translation of NETLINK_SOCK_DIAG protocol decoding
++#
++# Copyright (c) 2020 The strace developers.
++# All rights reserved.
++#
++# SPDX-License-Identifier: LGPL-2.1-or-later
++
++. "${srcdir=.}/init.sh"
++
++run_prog ../netlink_netlink_diag
++test_pidns -e trace=sendto "$@"
+Index: strace-5.7/tests-m32/netlink_audit.c
+===================================================================
+--- strace-5.7.orig/tests-m32/netlink_audit.c	2020-09-09 19:52:30.615668694 +0200
++++ strace-5.7/tests-m32/netlink_audit.c	2020-09-09 19:52:38.897673631 +0200
+@@ -7,6 +7,7 @@
+  */
+ 
+ #include "tests.h"
++#include "pidns.h"
+ #include <stdio.h>
+ #include <string.h>
+ #include <unistd.h>
+@@ -17,18 +18,23 @@
+ static void
+ test_nlmsg_type(const int fd)
+ {
++	PIDNS_TEST_INIT;
++
+ 	long rc;
+ 	struct nlmsghdr nlh = {
+ 		.nlmsg_len = sizeof(nlh),
+ 		.nlmsg_type = AUDIT_GET,
+ 		.nlmsg_flags = NLM_F_REQUEST,
++		.nlmsg_pid = getpid(),
+ 	};
+ 
+ 	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
++	pidns_print_leader();
+ 	printf("sendto(%d, {len=%u, type=AUDIT_GET"
+-	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
++	       ", flags=NLM_F_REQUEST, seq=0, pid=%d%s}"
+ 	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+-	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
++	       fd, nlh.nlmsg_len, nlh.nlmsg_pid, pidns_pid2str(PT_TGID),
++	       (unsigned) sizeof(nlh), sprintrc(rc));
+ }
+ 
+ int main(void)
+@@ -39,6 +45,7 @@
+ 
+ 	test_nlmsg_type(fd);
+ 
++	pidns_print_leader();
+ 	printf("+++ exited with 0 +++\n");
+ 
+ 	return 0;
+Index: strace-5.7/tests-m32/pidfd_open--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/pidfd_open--pidns-translation.c	2020-09-09 19:52:38.897673631 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "pidfd_open.c"
+Index: strace-5.7/tests-m32/pidfd_open.c
+===================================================================
+--- strace-5.7.orig/tests-m32/pidfd_open.c	2020-09-09 19:52:30.615668694 +0200
++++ strace-5.7/tests-m32/pidfd_open.c	2020-09-09 19:52:38.897673631 +0200
+@@ -10,6 +10,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #ifdef __NR_pidfd_open
+ 
+@@ -37,6 +38,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ # if defined PATH_TRACING || defined PRINT_PATHS
+ 	skip_if_unavailable("/proc/self/fd/");
+ # endif
+@@ -50,16 +53,19 @@
+ 
+ 	k_pidfd_open(0, 0);
+ # ifndef PATH_TRACING
++	pidns_print_leader();
+ 	printf("pidfd_open(0, 0) = %s\n", errstr);
+ # endif
+ 
+ 	k_pidfd_open(-1U, 0);
+ # ifndef PATH_TRACING
++	pidns_print_leader();
+ 	printf("pidfd_open(-1, 0) = %s\n", errstr);
+ # endif
+ 
+ 	k_pidfd_open(0, -1U);
+ # ifndef PATH_TRACING
++	pidns_print_leader();
+ 	printf("pidfd_open(0, %#x) = %s\n", -1U, errstr);
+ # endif
+ 
+@@ -68,7 +74,10 @@
+ 
+ 	k_pidfd_open(pid, flags);
+ # ifndef PATH_TRACING
+-	printf("pidfd_open(%d, %#x) = %s\n", pid, flags, errstr);
++	const char *pid_str = pidns_pid2str(PT_TGID);
++	pidns_print_leader();
++	printf("pidfd_open(%d%s, %#x) = %s\n",
++		pid, pid_str, flags, errstr);
+ # endif
+ 
+ # ifdef PRINT_PATHS
+@@ -80,17 +89,19 @@
+ # endif
+ 
+ # ifndef PATH_TRACING
+-	printf("pidfd_open(%d, 0) = "
++	pidns_print_leader();
++	printf("pidfd_open(%d%s, 0) = "
+ #  if defined PRINT_PIDFD
+-	       "%ld<pid:%d>\n", pid, rc, pid
++	       "%ld<pid:%d>\n", pid, pid_str, rc, pid
+ #  elif defined PRINT_PATHS
+-	       "%ld<anon_inode:[pidfd]>\n", pid, rc
++	       "%ld<anon_inode:[pidfd]>\n", pid, pid_str, rc
+ #  else
+-	       "%s\n", pid, errstr
++	       "%s\n", pid, pid_str, errstr
+ #  endif
+ 	       );
+ # endif
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-m32/pidfd_send_signal--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/pidfd_send_signal--pidns-translation.c	2020-09-09 19:52:38.897673631 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "pidfd_send_signal.c"
+Index: strace-5.7/tests-m32/pidfd_send_signal.c
+===================================================================
+--- strace-5.7.orig/tests-m32/pidfd_send_signal.c	2020-09-09 19:52:30.615668694 +0200
++++ strace-5.7/tests-m32/pidfd_send_signal.c	2020-09-09 19:52:38.898673631 +0200
+@@ -10,6 +10,7 @@
+ #include "tests.h"
+ #include <unistd.h>
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #ifdef __NR_pidfd_send_signal
+ 
+@@ -36,6 +37,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	static const char null_path[] = "/dev/null";
+ 
+ 	int fd = open(null_path, O_RDONLY);
+@@ -46,19 +49,23 @@
+ 	const void *esi = (const void *) si + 1;
+ 
+ 	sys_pidfd_send_signal(fd, SIGUSR1, esi, 0);
++	pidns_print_leader();
+ 	printf("pidfd_send_signal(%d, SIGUSR1, %p, 0) = %s\n",
+ 	       fd, esi, errstr);
+ 
+ 	si->si_signo = SIGUSR1;
+ 	si->si_code = SI_QUEUE;
++	si->si_pid = getpid();
+ 
+ 	sys_pidfd_send_signal(fd, SIGUSR2, si, -1);
++	pidns_print_leader();
+ 	printf("pidfd_send_signal(%d, SIGUSR2, {si_signo=SIGUSR1"
+-	       ", si_code=SI_QUEUE, si_errno=%u, si_pid=%d, si_uid=%d"
++	       ", si_code=SI_QUEUE, si_errno=%u, si_pid=%d%s, si_uid=%d"
+ 	       ", si_value={int=%d, ptr=%p}}, %#x) = %s\n",
+-	       fd, si->si_errno, si->si_pid, si->si_uid, si->si_int, si->si_ptr,
+-	       -1U, errstr);
++	       fd, si->si_errno, si->si_pid, pidns_pid2str(PT_TGID), si->si_uid,
++	       si->si_int, si->si_ptr, -1U, errstr);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-m32/pidns-cache.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/pidns-cache.c	2020-09-09 19:52:38.898673631 +0200
+@@ -0,0 +1,62 @@
++/*
++ * Copyright (c) 2020 The strace developers.
++ * All rights reserved.
++ *
++ * SPDX-License-Identifier: GPL-2.0-or-later
++ */
++
++#include "tests.h"
++#include "scno.h"
++#include "pidns.h"
++
++#if defined __NR_getpid && (!defined __NR_getxpid || __NR_getxpid != __NR_getpid)
++
++# include <stdio.h>
++# include <unistd.h>
++# include <sys/time.h>
++
++# define SYSCALL_COUNT 1000
++
++/**
++ * Max ratio of the execution time with and without pidns translation.
++ */
++# define MAX_TIME_RATIO 20
++
++static long
++execute_syscalls(void)
++{
++	/* Load our PID in the cache */
++	syscall(__NR_getpid);
++
++	struct timeval stop, start;
++	gettimeofday(&start, NULL);
++
++	for (int i = 0; i < SYSCALL_COUNT; i++)
++	       syscall(__NR_getpid);
++
++	gettimeofday(&stop, NULL);
++
++	return (stop.tv_usec - start.tv_usec) +
++		(stop.tv_sec - start.tv_sec) * 1000000;
++}
++
++int
++main(void)
++{
++	long max_us = execute_syscalls() * MAX_TIME_RATIO;
++
++	pidns_test_init();
++
++	long us = execute_syscalls();
++	if (us > max_us)
++		error_msg_and_fail("pidns translation took too long: %ld us "
++		                   "(max: %ld us)", us, max_us);
++
++	return 0;
++}
++
++#else
++
++SKIP_MAIN_UNDEFINED("__NR_getpid")
++
++#endif
+Index: strace-5.7/tests-m32/pidns-cache.test
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/pidns-cache.test	2020-09-09 19:52:38.898673631 +0200
+@@ -0,0 +1,15 @@
++#!/bin/sh
++#
++# Test pidns translation cache.
++#
++# Copyright (c) 2020 The strace developers.
++# All rights reserved.
++#
++# SPDX-License-Identifier: GPL-2.0-or-later
++
++. "${srcdir=.}/init.sh"
++
++check_prog timeout
++
++run_prog > /dev/null
++run_strace --pidns-translation -f -e trace=getpid $args
+Index: strace-5.7/tests-m32/prlimit64--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/prlimit64--pidns-translation.c	2020-09-09 19:52:38.898673631 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "prlimit64.c"
+Index: strace-5.7/tests-m32/prlimit64.c
+===================================================================
+--- strace-5.7.orig/tests-m32/prlimit64.c	2020-09-09 19:52:30.616668695 +0200
++++ strace-5.7/tests-m32/prlimit64.c	2020-09-09 19:52:38.898673631 +0200
+@@ -19,6 +19,7 @@
+ # include <sys/resource.h>
+ # include <unistd.h>
+ 
++# include "pidns.h"
+ # include "xlat.h"
+ # include "xlat/resources.h"
+ 
+@@ -42,8 +43,11 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	unsigned long pid =
+ 		(unsigned long) 0xdefaced00000000ULL | (unsigned) getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
+ 	uint64_t *const rlimit = tail_alloc(sizeof(*rlimit) * 2);
+ 	const struct xlat_data *xlat;
+ 	size_t i = 0;
+@@ -54,18 +58,23 @@
+ 
+ 		unsigned long res = 0xfacefeed00000000ULL | xlat->val;
+ 		long rc = syscall(__NR_prlimit64, pid, res, 0, rlimit);
++		pidns_print_leader();
+ 		if (rc)
+-			printf("prlimit64(%d, %s, NULL, %p) = %ld %s (%m)\n",
+-			       (unsigned) pid, xlat->str, rlimit,
++			printf("prlimit64(%d%s, %s, NULL, %p) ="
++				     " %ld %s (%m)\n",
++			       (unsigned) pid, pid_str,
++			       xlat->str, rlimit,
+ 			       rc, errno2name());
+ 		else
+-			printf("prlimit64(%d, %s, NULL"
++			printf("prlimit64(%d%s, %s, NULL"
+ 			       ", {rlim_cur=%s, rlim_max=%s}) = 0\n",
+-			       (unsigned) pid, xlat->str,
++			       (unsigned) pid, pid_str,
++			       xlat->str,
+ 			       sprint_rlim(rlimit[0]),
+ 			       sprint_rlim(rlimit[1]));
+ 	}
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-m32/process_vm_readv--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/process_vm_readv--pidns-translation.c	2020-09-09 19:52:38.899673632 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "process_vm_readv.c"
+Index: strace-5.7/tests-m32/process_vm_readv_writev.c
+===================================================================
+--- strace-5.7.orig/tests-m32/process_vm_readv_writev.c	2020-09-09 19:52:30.616668695 +0200
++++ strace-5.7/tests-m32/process_vm_readv_writev.c	2020-09-09 19:52:38.899673632 +0200
+@@ -12,6 +12,7 @@
+ #include <stdio.h>
+ #include <unistd.h>
+ #include <sys/uio.h>
++#include "pidns.h"
+ 
+ #if OP_WR
+ # define in_iovec  rmt_iovec
+@@ -121,7 +122,7 @@
+ }
+ 
+ static void
+-do_call(kernel_ulong_t pid,
++do_call(kernel_ulong_t pid, enum pid_type pid_type,
+ 	kernel_ulong_t local_iov, const char *local_arg,
+ 	kernel_ulong_t liovcnt,
+ 	kernel_ulong_t remote_iov, const char *remote_arg,
+@@ -135,7 +136,8 @@
+ 		flags);
+ 	errstr = sprintrc(rc);
+ 
+-	printf("%s(%d, ", OP_STR, (int) pid);
++	pidns_print_leader();
++	printf("%s(%d%s, ", OP_STR, (int) pid, pidns_pid2str(pid_type));
+ 
+ 	if (pr_iov)
+ 		pr_iov((const struct iovec *) (uintptr_t) local_iov, local_arg,
+@@ -164,6 +166,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	enum {
+ 		SIZE_11 = 2,
+ 		SIZE_12 = 3,
+@@ -243,18 +247,18 @@
+ 	fill_memory_ex(data2_out, SIZE_2, SEGM2_BASE, SIZE_2);
+ 
+ 
+-	do_call(bogus_pid, (kernel_ulong_t) (uintptr_t) ARG_STR(NULL),
++	do_call(bogus_pid, PT_NONE, (kernel_ulong_t) (uintptr_t) ARG_STR(NULL),
+ 		bogus_iovcnt1, (kernel_ulong_t) (uintptr_t) ARG_STR(NULL),
+ 		bogus_iovcnt2, bogus_flags, NULL);
+ 
+-	do_call(my_pid, ptr_cast(bogus_iov + ARRAY_SIZE(bogus_iovec)),
++	do_call(my_pid, PT_TGID, ptr_cast(bogus_iov + ARRAY_SIZE(bogus_iovec)),
+ 		"[]", 0, ptr_cast(in_iov + ARRAY_SIZE(in_iovec)), "[]",
+ 		0, 0, NULL);
+-	do_call(my_pid, ptr_cast(bogus_iov + ARRAY_SIZE(bogus_iovec)), NULL,
+-		bogus_iovcnt1, ptr_cast(in_iov + ARRAY_SIZE(in_iovec)), NULL,
+-		bogus_iovcnt2, 0, print_iov);
++	do_call(my_pid, PT_TGID, ptr_cast(bogus_iov + ARRAY_SIZE(bogus_iovec)),
++		NULL, bogus_iovcnt1, ptr_cast(in_iov + ARRAY_SIZE(in_iovec)),
++		NULL, bogus_iovcnt2, 0, print_iov);
+ 
+-	do_call(my_pid, ptr_cast(bogus_iov), (char *) &bogus_arg,
++	do_call(my_pid, PT_TGID, ptr_cast(bogus_iov), (char *) &bogus_arg,
+ 		ARRAY_SIZE(bogus_iovec), ptr_cast(rmt_iov + 2),
+ 		(char *) &rmt_arg_cut, ARRAY_SIZE(rmt_iovec) - 2, 0, print_iov);
+ 
+@@ -263,7 +267,7 @@
+ 	lcl_arg_cut.check_rc = 1;
+ #endif
+ 
+-	do_call(my_pid, ptr_cast(lcl_iov + 2), (char *) &lcl_arg_cut,
++	do_call(my_pid, PT_TGID, ptr_cast(lcl_iov + 2), (char *) &lcl_arg_cut,
+ 		ARRAY_SIZE(lcl_iovec) - 1, ptr_cast(bogus_iov + 2),
+ 		(char *) &bogus_arg_cut, ARRAY_SIZE(bogus_iovec) - 1, 0,
+ 		print_iov);
+@@ -273,15 +277,16 @@
+ 	rmt_arg_cut.addr_term = 1;
+ 	rmt_arg_cut.count = 5;
+ 
+-	do_call(my_pid, ptr_cast(lcl_iov + 2), (char *) &lcl_arg_cut,
++	do_call(my_pid, PT_TGID, ptr_cast(lcl_iov + 2), (char *) &lcl_arg_cut,
+ 		ARRAY_SIZE(lcl_iovec) - 2, ptr_cast(rmt_iov + 1),
+ 		(char *) &rmt_arg_cut, ARRAY_SIZE(rmt_iovec), 0, print_iov);
+ 
+ 	/* Correct call */
+-	do_call(my_pid, ptr_cast(lcl_iov), (char *) &lcl_arg,
++	do_call(my_pid, PT_TGID, ptr_cast(lcl_iov), (char *) &lcl_arg,
+ 		ARRAY_SIZE(lcl_iovec), ptr_cast(rmt_iov), (char *) &rmt_arg,
+ 		ARRAY_SIZE(rmt_iovec), 0, print_iov);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 
+ 	return 0;
+Index: strace-5.7/tests-m32/process_vm_writev--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/process_vm_writev--pidns-translation.c	2020-09-09 19:52:38.899673632 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "process_vm_writev.c"
+Index: strace-5.7/tests-m32/rt_sigqueueinfo--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/rt_sigqueueinfo--pidns-translation.c	2020-09-09 19:52:38.899673632 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "rt_sigqueueinfo.c"
+Index: strace-5.7/tests-m32/rt_sigqueueinfo.c
+===================================================================
+--- strace-5.7.orig/tests-m32/rt_sigqueueinfo.c	2020-09-09 19:52:30.617668695 +0200
++++ strace-5.7/tests-m32/rt_sigqueueinfo.c	2020-09-09 19:52:38.899673632 +0200
+@@ -7,6 +7,7 @@
+  */
+ 
+ #include "tests.h"
++#include "pidns.h"
+ #include <assert.h>
+ #include <stdio.h>
+ #include <signal.h>
+@@ -15,6 +16,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	struct sigaction sa = {
+ 		.sa_handler = SIG_IGN
+ 	};
+@@ -22,15 +25,19 @@
+ 		.sival_ptr = (void *) (unsigned long) 0xdeadbeefbadc0dedULL
+ 	};
+ 	pid_t pid = getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
+ 
+ 	assert(sigaction(SIGUSR1, &sa, NULL) == 0);
+ 	if (sigqueue(pid, SIGUSR1, value))
+ 		perror_msg_and_skip("sigqueue");
+-	printf("rt_sigqueueinfo(%u, SIGUSR1, {si_signo=SIGUSR1, "
+-		"si_code=SI_QUEUE, si_pid=%d, si_uid=%d, "
++	pidns_print_leader();
++	printf("rt_sigqueueinfo(%d%s, SIGUSR1, {si_signo=SIGUSR1, "
++		"si_code=SI_QUEUE, si_pid=%d%s, si_uid=%u, "
+ 		"si_value={int=%d, ptr=%p}}) = 0\n",
+-		pid, pid, getuid(), value.sival_int, value.sival_ptr);
+-	printf("+++ exited with 0 +++\n");
++		pid, pid_str, pid, pid_str,
++		getuid(), value.sival_int, value.sival_ptr);
++	pidns_print_leader();
++	puts("+++ exited with 0 +++");
+ 
+ 	return 0;
+ }
+Index: strace-5.7/tests-m32/rt_tgsigqueueinfo--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/rt_tgsigqueueinfo--pidns-translation.c	2020-09-09 19:52:38.900673633 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "rt_tgsigqueueinfo.c"
+Index: strace-5.7/tests-m32/rt_tgsigqueueinfo.c
+===================================================================
+--- strace-5.7.orig/tests-m32/rt_tgsigqueueinfo.c	2020-09-09 19:52:30.617668695 +0200
++++ strace-5.7/tests-m32/rt_tgsigqueueinfo.c	2020-09-09 19:52:38.900673633 +0200
+@@ -10,8 +10,9 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+-#ifdef __NR_rt_tgsigqueueinfo
++#if defined __NR_rt_tgsigqueueinfo && defined __NR_gettid
+ 
+ # include <errno.h>
+ # include <signal.h>
+@@ -20,11 +21,11 @@
+ # include <unistd.h>
+ 
+ static long
+-k_tgsigqueueinfo(const pid_t pid, const int sig, const void *const info)
++k_tgsigqueueinfo(const pid_t tgid, const int tid, const int sig, const void *const info)
+ {
+ 	return syscall(__NR_rt_tgsigqueueinfo,
+-		       F8ILL_KULONG_MASK | pid,
+-		       F8ILL_KULONG_MASK | pid,
++		       F8ILL_KULONG_MASK | tgid,
++		       F8ILL_KULONG_MASK | tid,
+ 		       F8ILL_KULONG_MASK | sig,
+ 		       info);
+ }
+@@ -32,6 +33,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	const struct sigaction sa = {
+ 		.sa_handler = SIG_IGN
+ 	};
+@@ -48,17 +51,22 @@
+ 	info->si_value.sival_ptr =
+ 		(void *) (unsigned long) 0xdeadbeeffacefeedULL;
+ 
+-	if (k_tgsigqueueinfo(info->si_pid, SIGUSR1, info))
++	if (k_tgsigqueueinfo(getpid(), syscall(__NR_gettid), SIGUSR1, info))
+ 		(errno == ENOSYS ? perror_msg_and_skip : perror_msg_and_fail)(
+ 			"rt_tgsigqueueinfo");
+ 
+-	printf("rt_tgsigqueueinfo(%u, %u, %s, {si_signo=%s"
+-		", si_code=SI_QUEUE, si_errno=ENOENT, si_pid=%d"
++	pidns_print_leader();
++	printf("rt_tgsigqueueinfo(%d%s, %d%s, %s, {si_signo=%s"
++		", si_code=SI_QUEUE, si_errno=ENOENT, si_pid=%d%s"
+ 		", si_uid=%d, si_value={int=%d, ptr=%p}}) = 0\n",
+-		info->si_pid, info->si_pid, "SIGUSR1", "SIGUSR1",
+-		info->si_pid, info->si_uid, info->si_value.sival_int,
++		info->si_pid, pidns_pid2str(PT_TGID),
++		info->si_pid, pidns_pid2str(PT_TID),
++		"SIGUSR1", "SIGUSR1",
++		info->si_pid, pidns_pid2str(PT_TGID),
++		info->si_uid, info->si_value.sival_int,
+ 		info->si_value.sival_ptr);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-m32/sched_xetaffinity--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/sched_xetaffinity--pidns-translation.c	2020-09-09 19:52:38.900673633 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "sched_xetaffinity.c"
+Index: strace-5.7/tests-m32/sched_xetaffinity.c
+===================================================================
+--- strace-5.7.orig/tests-m32/sched_xetaffinity.c	2020-09-09 19:52:30.618668696 +0200
++++ strace-5.7/tests-m32/sched_xetaffinity.c	2020-09-09 19:52:38.900673633 +0200
+@@ -10,6 +10,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ #include <sched.h>
+ 
+ #if defined __NR_sched_getaffinity && defined __NR_sched_setaffinity \
+@@ -41,8 +42,11 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	unsigned int cpuset_size = 1;
+ 	const pid_t pid = getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
+ 
+ 	while (cpuset_size) {
+ 		assert(getaffinity(pid, cpuset_size, NULL) == -1);
+@@ -50,18 +54,21 @@
+ 			break;
+ 		if (EINVAL != errno)
+ 			perror_msg_and_skip("sched_getaffinity");
+-		printf("sched_getaffinity(%d, %u, NULL) = %s\n",
+-		       pid, cpuset_size, errstr);
++		pidns_print_leader();
++		printf("sched_getaffinity(%d%s, %u, NULL) = %s\n",
++		       pid, pid_str, cpuset_size, errstr);
+ 		cpuset_size <<= 1;
+ 	}
+ 	assert(cpuset_size);
+-	printf("sched_getaffinity(%d, %u, NULL) = %s\n",
+-	       pid, cpuset_size, errstr);
++	pidns_print_leader();
++	printf("sched_getaffinity(%d%s, %u, NULL) = %s\n",
++	       pid, pid_str, cpuset_size, errstr);
+ 
+ 	cpu_set_t *cpuset = tail_alloc(cpuset_size);
+ 	getaffinity(pid, cpuset_size, cpuset + 1);
+-	printf("sched_getaffinity(%d, %u, %p) = %s\n",
+-	       pid, cpuset_size, cpuset + 1, errstr);
++	pidns_print_leader();
++	printf("sched_getaffinity(%d%s, %u, %p) = %s\n",
++	       pid, pid_str, cpuset_size, cpuset + 1, errstr);
+ 
+ 	int ret_size = getaffinity(pid, cpuset_size, cpuset);
+ 	if (ret_size < 0)
+@@ -69,7 +76,8 @@
+ 				    pid, (unsigned) cpuset_size, cpuset, errstr);
+ 	assert(ret_size <= (int) cpuset_size);
+ 
+-	printf("sched_getaffinity(%d, %u, [", pid, cpuset_size);
++	pidns_print_leader();
++	printf("sched_getaffinity(%d%s, %u, [", pid, pid_str, cpuset_size);
+ 	const char *sep;
+ 	unsigned int i, cpu;
+ 	for (i = 0, cpu = 0, sep = ""; i < (unsigned) ret_size * 8; ++i) {
+@@ -85,8 +93,9 @@
+ 	CPU_SET_S(cpu, cpuset_size, cpuset);
+ 	if (setaffinity(pid, cpuset_size, cpuset))
+ 		perror_msg_and_skip("sched_setaffinity");
+-	printf("sched_setaffinity(%d, %u, [%u]) = 0\n",
+-	       pid, cpuset_size, cpu);
++	pidns_print_leader();
++	printf("sched_setaffinity(%d%s, %u, [%u]) = 0\n",
++	       pid, pid_str, cpuset_size, cpu);
+ 
+ 	const unsigned int big_size = cpuset_size < 128 ? 128 : cpuset_size * 2;
+ 	cpuset = tail_alloc(big_size);
+@@ -95,7 +104,8 @@
+ 		perror_msg_and_fail("sched_getaffinity(%d, %u, %p) = %s\n",
+ 				    pid, big_size, cpuset, errstr);
+ 	assert(ret_size <= (int) big_size);
+-	printf("sched_getaffinity(%d, %u, [", pid, big_size);
++	pidns_print_leader();
++	printf("sched_getaffinity(%d%s, %u, [", pid, pid_str, big_size);
+ 	for (i = 0, sep = ""; i < (unsigned) ret_size * 8; ++i) {
+ 		if (CPU_ISSET_S(i, (unsigned) ret_size, cpuset)) {
+ 			printf("%s%u", sep, i);
+@@ -104,6 +114,7 @@
+ 	}
+ 	printf("]) = %s\n", errstr);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-m32/sched_xetattr--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/sched_xetattr--pidns-translation.c	2020-09-09 19:52:38.900673633 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "sched_xetattr.c"
+Index: strace-5.7/tests-m32/sched_xetattr.c
+===================================================================
+--- strace-5.7.orig/tests-m32/sched_xetattr.c	2020-09-09 19:52:30.618668696 +0200
++++ strace-5.7/tests-m32/sched_xetattr.c	2020-09-09 19:52:38.901673633 +0200
+@@ -15,6 +15,7 @@
+ # include <stdio.h>
+ # include <sched.h>
+ # include <unistd.h>
++# include "pidns.h"
+ # include "sched_attr.h"
+ # include "xlat.h"
+ # include "xlat/schedulers.h"
+@@ -41,6 +42,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	static const kernel_ulong_t bogus_pid =
+ 		(kernel_ulong_t) 0xdefacedfacefeedULL;
+ 	static const kernel_ulong_t bogus_size =
+@@ -48,20 +51,28 @@
+ 	static const kernel_ulong_t bogus_flags =
+ 		(kernel_ulong_t) 0xdefaceddeadc0deULL;
+ 
++	const int pid = getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
++
+ 	TAIL_ALLOC_OBJECT_CONST_PTR(struct sched_attr, attr);
+ 	TAIL_ALLOC_OBJECT_CONST_PTR(unsigned int, psize);
+ 	void *const efault = attr + 1;
+ 
+-	sys_sched_getattr(0, 0, 0, 0);
+-	printf("sched_getattr(0, NULL, 0, 0) = %s\n", errstr);
++	sys_sched_getattr(pid, 0, 0, 0);
++	pidns_print_leader();
++	printf("sched_getattr(%d%s, NULL, 0, 0) = %s\n",
++		pid, pid_str, errstr);
+ 
+ 	sys_sched_getattr(0, (unsigned long) attr, 0, 0);
++	pidns_print_leader();
+ 	printf("sched_getattr(0, %p, 0, 0) = %s\n", attr, errstr);
+ 
+ 	sys_sched_getattr(bogus_pid, 0, 0, 0);
++	pidns_print_leader();
+ 	printf("sched_getattr(%d, NULL, 0, 0) = %s\n", (int) bogus_pid, errstr);
+ 
+ 	sys_sched_getattr(-1U, (unsigned long) attr, bogus_size, bogus_flags);
++	pidns_print_leader();
+ 	printf("sched_getattr(-1, %p, %s%u, %u) = %s\n",
+ 	       attr,
+ # if defined __arm64__ || defined __aarch64__
+@@ -72,11 +83,13 @@
+ 	       (unsigned) bogus_size, (unsigned) bogus_flags, errstr);
+ 
+ 	sys_sched_getattr(0, (unsigned long) efault, SCHED_ATTR_MIN_SIZE, 0);
++	pidns_print_leader();
+ 	printf("sched_getattr(0, %p, %u, 0) = %s\n",
+ 	       efault, (unsigned) SCHED_ATTR_MIN_SIZE, errstr);
+ 
+ 	if (sys_sched_getattr(0, (unsigned long) attr, SCHED_ATTR_MIN_SIZE, 0))
+ 		perror_msg_and_skip("sched_getattr");
++	pidns_print_leader();
+ 	printf("sched_getattr(0, {size=%u, sched_policy=", attr->size);
+ 	printxval(schedulers, attr->sched_policy, NULL);
+ 	printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u"
+@@ -91,11 +104,13 @@
+ 	       (unsigned) SCHED_ATTR_MIN_SIZE);
+ 
+ 	sys_sched_getattr(0, (unsigned long) efault, sizeof(*attr), 0);
++	pidns_print_leader();
+ 	printf("sched_getattr(0, %p, %u, 0) = %s\n",
+ 	       efault, (unsigned) sizeof(*attr), errstr);
+ 
+ 	if (sys_sched_getattr(0, (unsigned long) attr, sizeof(*attr), 0))
+ 		perror_msg_and_skip("sched_getattr");
++	pidns_print_leader();
+ 	printf("sched_getattr(0, {size=%u, sched_policy=", attr->size);
+ 	printxval(schedulers, attr->sched_policy, NULL);
+ 	printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u"
+@@ -121,11 +136,13 @@
+ 			  F8ILL_KULONG_MASK | sizeof(*attr), F8ILL_KULONG_MASK);
+ # if defined __arm64__ || defined __aarch64__
+ 	if (rc) {
++		pidns_print_leader();
+ 		printf("sched_getattr(0, %p, 0xffffffff<<32|%u, 0) = %s\n",
+ 		       attr, (unsigned) sizeof(*attr), errstr);
+ 	} else
+ # endif
+ 	{
++		pidns_print_leader();
+ 		printf("sched_getattr(0, {size=%u, sched_policy=", attr->size);
+ 		printxval(schedulers, attr->sched_policy, NULL);
+ 		printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u"
+@@ -146,13 +163,16 @@
+ 	}
+ 
+ 	sys_sched_setattr(bogus_pid, 0, 0);
++	pidns_print_leader();
+ 	printf("sched_setattr(%d, NULL, 0) = %s\n", (int) bogus_pid, errstr);
+ 
+ 	attr->sched_flags |= 1;
+ 
+-	if (sys_sched_setattr(0, (unsigned long) attr, 0))
++	if (sys_sched_setattr(pid, (unsigned long) attr, 0))
+ 		perror_msg_and_skip("sched_setattr");
+-	printf("sched_setattr(0, {size=%u, sched_policy=", attr->size);
++	pidns_print_leader();
++	printf("sched_setattr(%d%s, {size=%u, sched_policy=",
++		pid, pid_str, attr->size);
+ 	printxval(schedulers, attr->sched_policy, NULL);
+ 	printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u"
+ 	       ", sched_runtime=%" PRIu64 ", sched_deadline=%" PRIu64
+@@ -172,6 +192,7 @@
+ 
+ 	sys_sched_setattr(F8ILL_KULONG_MASK, (unsigned long) attr,
+ 			  F8ILL_KULONG_MASK);
++	pidns_print_leader();
+ 	printf("sched_setattr(0, {size=%u, sched_policy=", attr->size);
+ 	printxval(schedulers, attr->sched_policy, NULL);
+ 	printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u"
+@@ -193,11 +214,13 @@
+ 	*psize = attr->size;
+ 
+ 	sys_sched_setattr(0, (unsigned long) psize, 0);
++	pidns_print_leader();
+ 	printf("sched_setattr(0, %p, 0) = %s\n", psize, errstr);
+ 
+ 	attr->size = 0;
+ 
+ 	sys_sched_setattr(0, (unsigned long) attr, 0);
++	pidns_print_leader();
+ 	printf("sched_setattr(0, {size=%u, sched_policy=", attr->size);
+ 	printxval(schedulers, attr->sched_policy, NULL);
+ 	printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u"
+@@ -213,12 +236,14 @@
+ 	attr->size = 1;
+ 
+ 	sys_sched_setattr(0, (unsigned long) attr, 0);
++	pidns_print_leader();
+ 	printf("sched_setattr(0, {size=%u} => {size=%u}, 0) = %s\n",
+ 	       1, attr->size, errstr);
+ 
+ 	attr->size = SCHED_ATTR_MIN_SIZE - 1;
+ 
+ 	sys_sched_setattr(0, (unsigned long) attr, 0);
++	pidns_print_leader();
+ 	printf("sched_setattr(0, {size=%u} => {size=%u}, 0) = %s\n",
+ 	       SCHED_ATTR_MIN_SIZE - 1, attr->size, errstr);
+ 
+@@ -232,6 +257,7 @@
+ 	attr->sched_period = 0xded1ca7edda7aca7ULL;
+ 
+ 	sys_sched_setattr(bogus_pid, (unsigned long) attr, bogus_flags);
++	pidns_print_leader();
+ 	printf("sched_setattr(%d, {size=%u, sched_policy=%#x /* SCHED_??? */, "
+ 	       "sched_flags=%#" PRIx64 " /* SCHED_FLAG_??? */, "
+ 	       "sched_nice=%d, sched_priority=%u, sched_runtime=%" PRIu64 ", "
+@@ -274,6 +300,7 @@
+ 	attr->sched_period = 0xded1ca7edda7aca7ULL;
+ 
+ 	sys_sched_setattr(bogus_pid, (unsigned long) attr, bogus_flags);
++	pidns_print_leader();
+ 	printf("sched_setattr(%d, {size=%u, sched_policy=%#x /* SCHED_??? */, "
+ 	       "sched_flags=SCHED_FLAG_RESET_ON_FORK|SCHED_FLAG_RECLAIM|"
+ 	       "SCHED_FLAG_DL_OVERRUN|0x80, "
+@@ -296,11 +323,13 @@
+ 		const kernel_ulong_t ill = f8ill_ptr_to_kulong(attr);
+ 
+ 		sys_sched_getattr(0, ill, sizeof(*attr), 0);
++		pidns_print_leader();
+ 		printf("sched_getattr(0, %#llx, %u, 0) = %s\n",
+ 		       (unsigned long long) ill, (unsigned) sizeof(*attr),
+ 		       errstr);
+ 
+ 		sys_sched_setattr(0, ill, 0);
++		pidns_print_leader();
+ 		printf("sched_setattr(0, %#llx, 0) = %s\n",
+ 		       (unsigned long long) ill, errstr);
+ 	}
+@@ -310,6 +339,7 @@
+ 	attr->sched_flags = 0x8fULL;
+ 
+ 	sys_sched_setattr(bogus_pid, (unsigned long) attr, bogus_flags);
++	pidns_print_leader();
+ 	printf("sched_setattr(%d, {size=%u, "
+ 	       "sched_flags=SCHED_FLAG_RESET_ON_FORK|SCHED_FLAG_RECLAIM|"
+ 	       "SCHED_FLAG_DL_OVERRUN|SCHED_FLAG_KEEP_POLICY|0x80, "
+@@ -329,11 +359,13 @@
+ 		const kernel_ulong_t ill = f8ill_ptr_to_kulong(attr);
+ 
+ 		sys_sched_getattr(0, ill, sizeof(*attr), 0);
++		pidns_print_leader();
+ 		printf("sched_getattr(0, %#llx, %u, 0) = %s\n",
+ 		       (unsigned long long) ill, (unsigned) sizeof(*attr),
+ 		       errstr);
+ 
+ 		sys_sched_setattr(0, ill, 0);
++		pidns_print_leader();
+ 		printf("sched_setattr(0, %#llx, 0) = %s\n",
+ 		       (unsigned long long) ill, errstr);
+ 	}
+@@ -342,6 +374,7 @@
+ 	attr->sched_flags = 0xe7ULL;
+ 
+ 	sys_sched_setattr(bogus_pid, (unsigned long) attr, bogus_flags);
++	pidns_print_leader();
+ 	printf("sched_setattr(%d, {size=%u, sched_policy=%#x /* SCHED_??? */, "
+ 	       "sched_flags=SCHED_FLAG_RESET_ON_FORK|SCHED_FLAG_RECLAIM|"
+ 	       "SCHED_FLAG_DL_OVERRUN|SCHED_FLAG_UTIL_CLAMP_MIN"
+@@ -365,11 +398,13 @@
+ 		const kernel_ulong_t ill = f8ill_ptr_to_kulong(attr);
+ 
+ 		sys_sched_getattr(0, ill, sizeof(*attr), 0);
++		pidns_print_leader();
+ 		printf("sched_getattr(0, %#llx, %u, 0) = %s\n",
+ 		       (unsigned long long) ill, (unsigned) sizeof(*attr),
+ 		       errstr);
+ 
+ 		sys_sched_setattr(0, ill, 0);
++		pidns_print_leader();
+ 		printf("sched_setattr(0, %#llx, 0) = %s\n",
+ 		       (unsigned long long) ill, errstr);
+ 	}
+@@ -377,6 +412,7 @@
+ 	attr->sched_flags = 0xcaffee90LL;
+ 
+ 	sys_sched_setattr(bogus_pid, (unsigned long) attr, bogus_flags);
++	pidns_print_leader();
+ 	printf("sched_setattr(%d, {size=%u, sched_flags=SCHED_FLAG_KEEP_PARAMS"
+ 	       "|0xcaffee80, sched_util_min=%u, sched_util_max=%u}, %u) = %s\n",
+ 	       (int) bogus_pid,
+@@ -389,15 +425,18 @@
+ 		const kernel_ulong_t ill = f8ill_ptr_to_kulong(attr);
+ 
+ 		sys_sched_getattr(0, ill, sizeof(*attr), 0);
++		pidns_print_leader();
+ 		printf("sched_getattr(0, %#llx, %u, 0) = %s\n",
+ 		       (unsigned long long) ill, (unsigned) sizeof(*attr),
+ 		       errstr);
+ 
+ 		sys_sched_setattr(0, ill, 0);
++		pidns_print_leader();
+ 		printf("sched_setattr(0, %#llx, 0) = %s\n",
+ 		       (unsigned long long) ill, errstr);
+ 	}
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-m32/sched_xetparam--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/sched_xetparam--pidns-translation.c	2020-09-09 19:52:38.901673633 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "sched_xetparam.c"
+Index: strace-5.7/tests-m32/sched_xetparam.c
+===================================================================
+--- strace-5.7.orig/tests-m32/sched_xetparam.c	2020-09-09 19:52:30.619668697 +0200
++++ strace-5.7/tests-m32/sched_xetparam.c	2020-09-09 19:52:38.901673633 +0200
+@@ -7,6 +7,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++# include "pidns.h"
+ 
+ #if defined __NR_sched_getparam && defined __NR_sched_setparam
+ 
+@@ -17,18 +18,27 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	struct sched_param *const param =
+ 		tail_alloc(sizeof(struct sched_param));
+ 
+-	long rc = syscall(__NR_sched_getparam, 0, param);
+-	printf("sched_getparam(0, [%d]) = %ld\n",
+-	       param->sched_priority, rc);
++	const int pid = getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
++
++	long rc = syscall(__NR_sched_getparam, pid, param);
++	pidns_print_leader();
++	printf("sched_getparam(%d%s, [%d]) = %ld\n",
++	       pid, pid_str, param->sched_priority, rc);
+ 
+ 	param->sched_priority = -1;
+-	rc = syscall(__NR_sched_setparam, 0, param);
+-	printf("sched_setparam(0, [%d]) = %ld %s (%m)\n",
++	rc = syscall(__NR_sched_setparam, pid, param);
++	pidns_print_leader();
++	printf("sched_setparam(%d%s, [%d]) = %ld %s (%m)\n",
++	       pid, pid_str,
+ 	       param->sched_priority, rc, errno2name());
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-m32/sched_xetscheduler--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/sched_xetscheduler--pidns-translation.c	2020-09-09 19:52:38.901673633 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "sched_xetscheduler.c"
+Index: strace-5.7/tests-m32/sched_xetscheduler.c
+===================================================================
+--- strace-5.7.orig/tests-m32/sched_xetscheduler.c	2020-09-09 19:52:30.619668697 +0200
++++ strace-5.7/tests-m32/sched_xetscheduler.c	2020-09-09 19:52:38.902673634 +0200
+@@ -7,6 +7,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #if defined __NR_sched_getscheduler && defined __NR_sched_setscheduler
+ 
+@@ -17,8 +18,13 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	TAIL_ALLOC_OBJECT_CONST_PTR(struct sched_param, param);
+-	long rc = syscall(__NR_sched_getscheduler, 0);
++	const int pid = getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
++
++	long rc = syscall(__NR_sched_getscheduler, pid);
+ 	const char *scheduler;
+ 	switch (rc) {
+ 		case SCHED_FIFO:
+@@ -50,33 +56,43 @@
+ 		default:
+ 			scheduler = "SCHED_OTHER";
+ 	}
+-	printf("sched_getscheduler(0) = %ld (%s)\n",
+-	       rc, scheduler);
++	pidns_print_leader();
++	printf("sched_getscheduler(%d%s) = %ld (%s)\n",
++	       pid, pid_str, rc, scheduler);
+ 
+ 	rc = syscall(__NR_sched_getscheduler, -1);
++	pidns_print_leader();
+ 	printf("sched_getscheduler(-1) = %s\n", sprintrc(rc));
+ 
+ 	param->sched_priority = -1;
+ 
+-	rc = syscall(__NR_sched_setscheduler, 0, SCHED_FIFO, NULL);
+-	printf("sched_setscheduler(0, SCHED_FIFO, NULL) = %s\n", sprintrc(rc));
+-
+-	rc = syscall(__NR_sched_setscheduler, 0, SCHED_FIFO, param + 1);
+-	printf("sched_setscheduler(0, SCHED_FIFO, %p) = %s\n", param + 1,
+-	       sprintrc(rc));
+-
+-	rc = syscall(__NR_sched_setscheduler, 0, 0xfaceda7a, param);
+-	printf("sched_setscheduler(0, %#x /* SCHED_??? */, [%d]) = %s\n",
+-	       0xfaceda7a, param->sched_priority, sprintrc(rc));
++	rc = syscall(__NR_sched_setscheduler, pid, SCHED_FIFO, NULL);
++	pidns_print_leader();
++	printf("sched_setscheduler(%d%s, SCHED_FIFO, NULL) = %s\n",
++	       pid, pid_str, sprintrc(rc));
++
++	rc = syscall(__NR_sched_setscheduler, pid, SCHED_FIFO, param + 1);
++	pidns_print_leader();
++	printf("sched_setscheduler(%d%s, SCHED_FIFO, %p) = %s\n",
++	       pid, pid_str, param + 1, sprintrc(rc));
++
++	rc = syscall(__NR_sched_setscheduler, pid, 0xfaceda7a, param);
++	pidns_print_leader();
++	printf("sched_setscheduler(%d%s, %#x /* SCHED_??? */, [%d]) = %s\n",
++	       pid, pid_str, 0xfaceda7a,
++	       param->sched_priority, sprintrc(rc));
+ 
+ 	rc = syscall(__NR_sched_setscheduler, -1, SCHED_FIFO, param);
++	pidns_print_leader();
+ 	printf("sched_setscheduler(-1, SCHED_FIFO, [%d]) = %s\n",
+ 	       param->sched_priority, sprintrc(rc));
+ 
+-	rc = syscall(__NR_sched_setscheduler, 0, SCHED_FIFO, param);
+-	printf("sched_setscheduler(0, SCHED_FIFO, [%d]) = %s\n",
+-	       param->sched_priority, sprintrc(rc));
++	rc = syscall(__NR_sched_setscheduler, pid, SCHED_FIFO, param);
++	pidns_print_leader();
++	printf("sched_setscheduler(%d%s, SCHED_FIFO, [%d]) = %s\n",
++	       pid, pid_str, param->sched_priority, sprintrc(rc));
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-m32/signal_receive--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/signal_receive--pidns-translation.c	2020-09-09 19:52:38.902673634 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "signal_receive.c"
+Index: strace-5.7/tests-m32/signal_receive.c
+===================================================================
+--- strace-5.7.orig/tests-m32/signal_receive.c	2020-09-09 19:52:30.619668697 +0200
++++ strace-5.7/tests-m32/signal_receive.c	2020-09-09 19:52:38.902673634 +0200
+@@ -8,6 +8,7 @@
+  */
+ 
+ #include "tests.h"
++#include "pidns.h"
+ #include <signal.h>
+ #include <stdio.h>
+ #include <unistd.h>
+@@ -26,10 +27,13 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	static const char prefix[] = "KERNEL BUG";
+ 	int printed = 0;
+ 
+ 	const int pid = getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
+ 	const int uid = geteuid();
+ 
+ 	for (int sig = 1; sig <= 31; ++sig) {
+@@ -73,10 +77,13 @@
+ 		const int e_pid = s_pid;
+ 		const int e_uid = s_uid;
+ #endif
+-		printf("kill(%d, %s) = 0\n", pid, signal2name(sig));
+-		printf("--- %s {si_signo=%s, si_code=SI_USER, si_pid=%d"
++		pidns_print_leader();
++		printf("kill(%d%s, %s) = 0\n", pid, pid_str, signal2name(sig));
++		pidns_print_leader();
++		printf("--- %s {si_signo=%s, si_code=SI_USER, si_pid=%d%s"
+ 		       ", si_uid=%d} ---\n",
+-		       signal2name(sig), signal2name(e_sig), e_pid, e_uid);
++		       signal2name(sig), signal2name(e_sig),
++		       e_pid, pid_str, e_uid);
+ 
+ 		if (s_code || sig != s_sig || pid != s_pid || uid != s_uid) {
+ 			/*
+@@ -91,11 +98,11 @@
+ 			}
+ 			fprintf(stderr,
+ 				"%s: expected: si_signo=%d, si_code=%d"
+-				", si_pid=%d, si_uid=%d\n"
++				", si_pid=%d%s, si_uid=%d\n"
+ 				"%s: received: si_signo=%d, si_code=%d"
+-				", si_pid=%d, si_uid=%d\n",
+-				prefix, sig, SI_USER, pid, uid,
+-				prefix, sig, s_code, s_pid, s_uid);
++				", si_pid=%d%s, si_uid=%d\n",
++				prefix, sig, SI_USER, pid, pid_str, uid,
++				prefix, sig, s_code, s_pid, pid_str, s_uid);
+ 		}
+ 	}
+ 
+@@ -104,6 +111,7 @@
+ 			"*** PLEASE FIX THE KERNEL ***\n", prefix);
+ 	}
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-m32/so_peercred--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/so_peercred--pidns-translation.c	2020-09-09 19:52:38.902673634 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "so_peercred.c"
+Index: strace-5.7/tests-m32/so_peercred.c
+===================================================================
+--- strace-5.7.orig/tests-m32/so_peercred.c	2020-09-09 19:52:30.620668697 +0200
++++ strace-5.7/tests-m32/so_peercred.c	2020-09-09 19:52:38.902673634 +0200
+@@ -9,6 +9,7 @@
+  */
+ 
+ #include "tests.h"
++#include "pidns.h"
+ 
+ #include <stddef.h>
+ #include <stdio.h>
+@@ -53,6 +54,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	TAIL_ALLOC_OBJECT_CONST_PTR(struct ucred, peercred);
+ 	TAIL_ALLOC_OBJECT_CONST_PTR(socklen_t, len);
+ 
+@@ -75,6 +78,8 @@
+ 	struct ucred *const gid_truncated =
+ 		tail_alloc(sizeof_gid_truncated);
+ 
++	const char *pid_str = pidns_pid2str(PT_TGID);
++
+ 	int sv[2];
+ 	if (socketpair(AF_UNIX, SOCK_STREAM, 0, sv))
+                 perror_msg_and_skip("socketpair AF_UNIX SOCK_STREAM");
+@@ -82,8 +87,10 @@
+ 	/* classic getsockopt */
+ 	*len = sizeof(*peercred);
+ 	get_peercred(sv[0], peercred, len);
++	pidns_print_leader();
+ 	printf("getsockopt(%d, %s", sv[0], so_str());
+ 	PRINT_FIELD_D(", {", *peercred, pid);
++	printf("%s", pid_str);
+ 	PRINT_FIELD_UID(", ", *peercred, uid);
+ 	PRINT_FIELD_UID(", ", *peercred, gid);
+ 	printf("}, [%d]) = %s\n", *len, errstr);
+@@ -91,14 +98,17 @@
+ 	/* getsockopt with zero optlen */
+ 	*len = 0;
+ 	get_peercred(sv[0], peercred, len);
++	pidns_print_leader();
+ 	printf("getsockopt(%d, %s, %p, [0]) = %s\n",
+ 	       sv[0], so_str(), peercred, errstr);
+ 
+ 	/* getsockopt with optlen larger than necessary - shortened */
+ 	*len = sizeof(*peercred) + 1;
+ 	get_peercred(sv[0], peercred, len);
++	pidns_print_leader();
+ 	printf("getsockopt(%d, %s", sv[0], so_str());
+ 	PRINT_FIELD_D(", {", *peercred, pid);
++	printf("%s", pid_str);
+ 	PRINT_FIELD_UID(", ", *peercred, uid);
+ 	PRINT_FIELD_UID(", ", *peercred, gid);
+ 	printf("}, [%u->%d]) = %s\n",
+@@ -110,6 +120,7 @@
+ 	 */
+ 	*len = sizeof_pid_truncated;
+ 	get_peercred(sv[0], pid_truncated, len);
++	pidns_print_leader();
+ 	printf("getsockopt(%d, %s, {pid=", sv[0], so_str());
+ 	print_quoted_hex(pid_truncated, *len);
+ 	printf("}, [%d]) = %s\n", *len, errstr);
+@@ -120,8 +131,10 @@
+ 	 */
+ 	*len = sizeof_pid;
+ 	get_peercred(sv[0], pid, len);
++	pidns_print_leader();
+ 	printf("getsockopt(%d, %s", sv[0], so_str());
+ 	PRINT_FIELD_D(", {", *pid, pid);
++	printf("%s", pid_str);
+ 	printf("}, [%d]) = %s\n", *len, errstr);
+ 
+ 	/*
+@@ -136,8 +149,10 @@
+ 	 * to struct ucred.pid field.
+ 	 */
+ 	memcpy(uid, uid_truncated, sizeof_uid_truncated);
++	pidns_print_leader();
+ 	printf("getsockopt(%d, %s", sv[0], so_str());
+ 	PRINT_FIELD_D(", {", *uid, pid);
++	printf("%s", pid_str);
+ 	printf(", uid=");
+ 	print_quoted_hex(&uid->uid, sizeof_uid_truncated -
+ 				    offsetof(struct ucred, uid));
+@@ -149,8 +164,10 @@
+ 	 */
+ 	*len = sizeof_uid;
+ 	get_peercred(sv[0], uid, len);
++	pidns_print_leader();
+ 	printf("getsockopt(%d, %s", sv[0], so_str());
+ 	PRINT_FIELD_D(", {", *uid, pid);
++	printf("%s", pid_str);
+ 	PRINT_FIELD_UID(", ", *uid, uid);
+ 	printf("}, [%d]) = %s\n", *len, errstr);
+ 
+@@ -166,8 +183,10 @@
+ 	 * to struct ucred.pid and struct ucred.uid fields.
+ 	 */
+ 	memcpy(peercred, gid_truncated, sizeof_gid_truncated);
++	pidns_print_leader();
+ 	printf("getsockopt(%d, %s", sv[0], so_str());
+ 	PRINT_FIELD_D(", {", *peercred, pid);
++	printf("%s", pid_str);
+ 	PRINT_FIELD_UID(", ", *peercred, uid);
+ 	printf(", gid=");
+ 	print_quoted_hex(&peercred->gid, sizeof_gid_truncated -
+@@ -177,14 +196,17 @@
+ 	/* getsockopt optval EFAULT */
+ 	*len = sizeof(*peercred);
+ 	get_peercred(sv[0], &peercred->uid, len);
++	pidns_print_leader();
+ 	printf("getsockopt(%d, %s, %p, [%d]) = %s\n",
+ 	       sv[0], so_str(), &peercred->uid, *len, errstr);
+ 
+ 	/* getsockopt optlen EFAULT */
+ 	get_peercred(sv[0], peercred, len + 1);
++	pidns_print_leader();
+ 	printf("getsockopt(%d, %s, %p, %p) = %s\n",
+ 	       sv[0], so_str(), peercred, len + 1, errstr);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-m32/tgkill--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/tgkill--pidns-translation.c	2020-09-09 19:52:38.902673634 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "tgkill.c"
+Index: strace-5.7/tests-m32/tgkill.c
+===================================================================
+--- strace-5.7.orig/tests-m32/tgkill.c	2020-09-09 19:52:30.620668697 +0200
++++ strace-5.7/tests-m32/tgkill.c	2020-09-09 19:52:38.903673634 +0200
+@@ -9,6 +9,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #ifdef __NR_tgkill
+ 
+@@ -36,28 +37,46 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	const int pid = getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
++	const int tid = syscall(__NR_gettid);
++	const char *tid_str = pidns_pid2str(PT_TID);
+ 	const int bad_pid = -1;
+ 	const int bad_sig = 0xface;
+ 
+-	k_tgkill(pid, pid, 0);
+-	printf("tgkill(%d, %d, 0) = %s\n", pid, pid, errstr);
++	k_tgkill(pid, tid, 0);
++	pidns_print_leader();
++	printf("tgkill(%d%s, %d%s, 0) = %s\n",
++		pid, pid_str, tid, tid_str, errstr);
+ 
+ 	k_tgkill(pid, bad_pid, 0);
+-	printf("tgkill(%d, %d, 0) = %s\n", pid, bad_pid, errstr);
+-
+-	k_tgkill(bad_pid, pid, 0);
+-	printf("tgkill(%d, %d, 0) = %s\n", bad_pid, pid, errstr);
+-
+-	k_tgkill(pid, pid, SIGCONT);
+-	printf("tgkill(%d, %d, SIGCONT) = %s\n", pid, pid, errstr);
+-
+-	k_tgkill(pid, pid, bad_sig);
+-	printf("tgkill(%d, %d, %d) = %s\n", pid, pid, bad_sig, errstr);
+-
+-	k_tgkill(pid, pid, -bad_sig);
+-	printf("tgkill(%d, %d, %d) = %s\n", pid, pid, -bad_sig, errstr);
++	pidns_print_leader();
++	printf("tgkill(%d%s, %d, 0) = %s\n",
++		pid, pid_str, bad_pid, errstr);
++
++	k_tgkill(bad_pid, tid, 0);
++	pidns_print_leader();
++	printf("tgkill(%d, %d%s, 0) = %s\n",
++		bad_pid, tid, tid_str, errstr);
++
++	k_tgkill(pid, tid, SIGCONT);
++	pidns_print_leader();
++	printf("tgkill(%d%s, %d%s, SIGCONT) = %s\n",
++		pid, pid_str, tid, tid_str, errstr);
++
++	k_tgkill(pid, tid, bad_sig);
++	pidns_print_leader();
++	printf("tgkill(%d%s, %d%s, %d) = %s\n",
++		pid, pid_str, tid, tid_str, bad_sig, errstr);
++
++	k_tgkill(pid, tid, -bad_sig);
++	pidns_print_leader();
++	printf("tgkill(%d%s, %d%s, %d) = %s\n",
++		pid, pid_str, tid, tid_str, -bad_sig, errstr);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-m32/tkill--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/tkill--pidns-translation.c	2020-09-09 19:52:38.903673634 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "tkill.c"
+Index: strace-5.7/tests-m32/tkill.c
+===================================================================
+--- strace-5.7.orig/tests-m32/tkill.c	2020-09-09 19:52:30.620668697 +0200
++++ strace-5.7/tests-m32/tkill.c	2020-09-09 19:52:38.903673634 +0200
+@@ -9,6 +9,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #ifdef __NR_tkill
+ 
+@@ -33,22 +34,30 @@
+ int
+ main(void)
+ {
+-	const int pid = getpid();
++	PIDNS_TEST_INIT;
++
++	const int tid = syscall(__NR_gettid);
++	const char *tid_str = pidns_pid2str(PT_TID);
+ 	const int bad_pid = -1;
+ 	const int bad_sig = 0xface;
+ 
+-	k_tkill(pid, 0);
+-	printf("tkill(%d, 0) = %s\n", pid, errstr);
+-
+-	k_tkill(pid, SIGCONT);
+-	printf("tkill(%d, SIGCONT) = %s\n", pid, errstr);
++	k_tkill(tid, 0);
++	pidns_print_leader();
++	printf("tkill(%d%s, 0) = %s\n", tid, tid_str, errstr);
++
++	k_tkill(tid, SIGCONT);
++	pidns_print_leader();
++	printf("tkill(%d%s, SIGCONT) = %s\n", tid, tid_str, errstr);
+ 
+ 	k_tkill(bad_pid, bad_sig);
++	pidns_print_leader();
+ 	printf("tkill(%d, %d) = %s\n", bad_pid, bad_sig, errstr);
+ 
+ 	k_tkill(bad_pid, -bad_sig);
++	pidns_print_leader();
+ 	printf("tkill(%d, %d) = %s\n", bad_pid, -bad_sig, errstr);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-m32/trie_for_tests.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/trie_for_tests.c	2020-09-09 19:52:38.903673634 +0200
+@@ -0,0 +1 @@
++#include "trie.c"
+Index: strace-5.7/tests-m32/trie_test.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/trie_test.c	2020-09-09 19:52:38.903673634 +0200
+@@ -0,0 +1,121 @@
++/*
++ * Copyright (c) 2017-2019 The strace developers.
++ * All rights reserved.
++ *
++ * SPDX-License-Identifier: GPL-2.0-or-later
++ */
++
++#include "tests.h"
++#include "trie.h"
++
++#include <stdio.h>
++#include <inttypes.h>
++
++static void
++assert_equals(const char *msg, uint64_t expected, uint64_t actual) {
++	if (actual != expected)
++		error_msg_and_fail("%s: expected: %" PRIu64
++		                   ", actual: %" PRIu64, msg, expected, actual);
++}
++
++static void
++iterate_fn(void *data, uint64_t key, uint64_t value)
++{
++	uint64_t expected = key < 256 && key % 10 == 0 ? key + 42 : -1ULL;
++	assert_equals("iterate_fn", expected, value);
++
++	int *count = (int *) data;
++	if (value != -1ULL)
++		(*count)++;
++}
++
++static void
++test_trie_iterate_fn(void)
++{
++	struct trie *t = trie_create(8, 6, 3, 3, -1);
++	for (int i = 0; i < 26; i++)
++		trie_set(t, i * 10, i * 10 + 42);
++
++	static const struct {
++		uint64_t start;
++		uint64_t end;
++		int expected_count;
++	} iterate_params[] = {
++		{0, 256, 26},
++		{0, UINT64_MAX, 26},
++		{20, 90, 8},
++		{99, 999, 16},
++		{10000, 100000, 0},
++		{200, 100, 0},
++	};
++
++	for (size_t i = 0; i < ARRAY_SIZE(iterate_params); i++) {
++		int count = 0;
++		trie_iterate_keys(t, iterate_params[i].start, iterate_params[i].end, iterate_fn, &count);
++		assert_equals("iteration count", iterate_params[i].expected_count, count);
++	}
++}
++
++struct key_value_pair {
++	uint64_t key, value;
++};
++
++static void
++test_trie_get(void)
++{
++	static const struct {
++		uint8_t key_size;
++		uint8_t item_size_lg;
++		uint8_t node_key_bits;
++		uint8_t data_block_key_bits;
++		uint64_t empty_value;
++
++		struct key_value_pair set_values[3], get_values[3];
++	} params[] = {
++		{64, 6, 10, 10, 0,
++			{{300, 1}, {0xfacefeed, 0xabcdef123456}, {-1ULL, -1ULL}},
++			{{301, 0}, {0xfacefeed, 0xabcdef123456}, {-1ULL, -1ULL}}},
++		{8, 2, 4, 4, 10,
++			{{0xab, 0xcd}, {0xface, 2}, {0, 3}},
++			{{0xab, 0xd}, {0xface, 10}, {0, 3}}},
++		{30, 0, 6, 3, -1,
++			{{0xaaaa, 127}, {0xface, 0}, {0, 0}},
++			{{0xaaaa, 1}, {0xface, 0}, {1, 1}}},
++		{16, 4, 5, 11, 0xffffff,
++			{{0xabcdef, 42}, {0xabcd, 42}, {0xffff, 0}},
++			{{0xabcdef, 0xffff}, {0xabcd, 42}, {0xffff, 0}}},
++		{41, 5, 1, 1, -1,
++			{{0xabcdef01, 0x22222222}, {-1, 0x33333333}, {10, 10}},
++			{{0xabcdef01, 0x22222222}, {-1, 0xffffffff}, {10, 10}}},
++	};
++
++	for (size_t i = 0; i < ARRAY_SIZE(params); i++) {
++		struct trie *t = trie_create(params[i].key_size,
++		                             params[i].item_size_lg,
++					     params[i].node_key_bits,
++					     params[i].data_block_key_bits,
++					     params[i].empty_value);
++
++		if (!t)
++			error_msg_and_fail("trie creation failed");
++
++		for (size_t j = 0; j < ARRAY_SIZE(params[i].set_values); j++) {
++			struct key_value_pair kv = params[i].set_values[j];
++			trie_set(t, kv.key, kv.value);
++		}
++		for (size_t j = 0; j < ARRAY_SIZE(params[i].get_values); j++) {
++			struct key_value_pair kv = params[i].get_values[j];
++			assert_equals("trie_get", kv.value, trie_get(t, kv.key));
++		}
++
++		trie_free(t);
++	}
++}
++
++int
++main(void)
++{
++	test_trie_get();
++	test_trie_iterate_fn();
++	return 0;
++}
+Index: strace-5.7/tests-m32/xet_robust_list--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/xet_robust_list--pidns-translation.c	2020-09-09 19:52:38.903673634 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "xet_robust_list.c"
+Index: strace-5.7/tests-m32/xet_robust_list.c
+===================================================================
+--- strace-5.7.orig/tests-m32/xet_robust_list.c	2020-09-09 19:52:30.621668698 +0200
++++ strace-5.7/tests-m32/xet_robust_list.c	2020-09-09 19:52:38.904673635 +0200
+@@ -8,6 +8,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #if defined __NR_get_robust_list && defined __NR_set_robust_list
+ 
+@@ -30,27 +31,36 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	const pid_t pid = getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
+ 	const long long_pid = (unsigned long) (0xdeadbeef00000000LL | pid);
+ 	TAIL_ALLOC_OBJECT_CONST_PTR(void *, p_head);
+ 	TAIL_ALLOC_OBJECT_CONST_PTR(size_t, p_len);
+ 
+ 	if (syscall(__NR_get_robust_list, long_pid, p_head, p_len))
+ 		perror_msg_and_skip("get_robust_list");
+-	printf("get_robust_list(%d, [%s], [%lu]) = 0\n",
+-	       (int) pid, sprintaddr(*p_head), (unsigned long) *p_len);
++	pidns_print_leader();
++	printf("get_robust_list(%d%s, [%s], [%lu]) = 0\n",
++	       pid, pid_str, sprintaddr(*p_head),
++	       (unsigned long) *p_len);
+ 
+ 	void *head = tail_alloc(*p_len);
+ 	if (syscall(__NR_set_robust_list, head, *p_len))
+ 		perror_msg_and_skip("set_robust_list");
++	pidns_print_leader();
+ 	printf("set_robust_list(%p, %lu) = 0\n",
+ 	       head, (unsigned long) *p_len);
+ 
+ 	if (syscall(__NR_get_robust_list, long_pid, p_head, p_len))
+ 		perror_msg_and_skip("get_robust_list");
+-	printf("get_robust_list(%d, [%s], [%lu]) = 0\n",
+-	       (int) pid, sprintaddr(*p_head), (unsigned long) *p_len);
++	pidns_print_leader();
++	printf("get_robust_list(%d%s, [%s], [%lu]) = 0\n",
++	       pid, pid_str, sprintaddr(*p_head),
++	       (unsigned long) *p_len);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-m32/xetpgid--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/xetpgid--pidns-translation.c	2020-09-09 19:52:38.904673635 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "xetpgid.c"
+Index: strace-5.7/tests-m32/xetpgid.c
+===================================================================
+--- strace-5.7.orig/tests-m32/xetpgid.c	2020-09-09 19:52:30.621668698 +0200
++++ strace-5.7/tests-m32/xetpgid.c	2020-09-09 19:52:38.904673635 +0200
+@@ -10,6 +10,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #if defined __NR_getpgid && defined __NR_setpgid
+ 
+@@ -19,13 +20,21 @@
+ int
+ main(void)
+ {
+-	const int pid = getpid();
+-	long rc = syscall(__NR_getpgid, F8ILL_KULONG_MASK | pid);
+-	printf("getpgid(%d) = %ld\n", pid, rc);
++	PIDNS_TEST_INIT;
+ 
+-	rc = syscall(__NR_setpgid, F8ILL_KULONG_MASK, F8ILL_KULONG_MASK | pid);
+-	printf("setpgid(0, %d) = %ld\n", pid, rc);
++	const int pid = getpid();
++	long pgid = syscall(__NR_getpgid, F8ILL_KULONG_MASK | pid);
++	pidns_print_leader();
++	printf("getpgid(%d%s) = %ld%s\n", pid, pidns_pid2str(PT_TGID),
++		pgid, pidns_pid2str(PT_PGID));
++
++	long rc = syscall(__NR_setpgid, F8ILL_KULONG_MASK,
++		F8ILL_KULONG_MASK | pgid);
++	pidns_print_leader();
++	printf("setpgid(0, %ld%s) = %s\n", pgid, pidns_pid2str(PT_PGID),
++		sprintrc(rc));
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-m32/xetpriority--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/xetpriority--pidns-translation.c	2020-09-09 19:52:38.904673635 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "xetpriority.c"
+Index: strace-5.7/tests-m32/xetpriority.c
+===================================================================
+--- strace-5.7.orig/tests-m32/xetpriority.c	2020-09-09 19:52:30.622668698 +0200
++++ strace-5.7/tests-m32/xetpriority.c	2020-09-09 19:52:38.904673635 +0200
+@@ -7,6 +7,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #if defined __NR_getpriority && defined __NR_setpriority
+ 
+@@ -17,15 +18,30 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	const int pid = getpid();
++	const int pgid = getpgid(0);
++
+ 	long rc = syscall(__NR_getpriority, PRIO_PROCESS,
+ 			  F8ILL_KULONG_MASK | pid);
+-	printf("getpriority(PRIO_PROCESS, %d) = %ld\n", pid, rc);
++	pidns_print_leader();
++	printf("getpriority(PRIO_PROCESS, %d%s) = %ld\n",
++		pid, pidns_pid2str(PT_TGID), rc);
+ 
+ 	rc = syscall(__NR_setpriority, PRIO_PROCESS,
+ 		     F8ILL_KULONG_MASK | pid, F8ILL_KULONG_MASK);
+-	printf("setpriority(PRIO_PROCESS, %d, 0) = %s\n", pid, sprintrc(rc));
++	pidns_print_leader();
++	printf("setpriority(PRIO_PROCESS, %d%s, 0) = %s\n",
++		pid, pidns_pid2str(PT_TGID), sprintrc(rc));
++
++	rc = syscall(__NR_getpriority, PRIO_PGRP,
++			  F8ILL_KULONG_MASK | pgid);
++	pidns_print_leader();
++	printf("getpriority(PRIO_PGRP, %d%s) = %ld\n",
++		pgid, pidns_pid2str(PT_PGID), rc);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-m32/xmalloc_for_tests.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-m32/xmalloc_for_tests.c	2020-09-09 19:52:38.905673636 +0200
+@@ -0,0 +1,2 @@
++#define error_msg_and_die error_msg_and_fail
++#include "xmalloc.c"
+Index: strace-5.7/tests-mx32/Makefile.am
+===================================================================
+--- strace-5.7.orig/tests-mx32/Makefile.am	2020-09-09 19:52:30.622668698 +0200
++++ strace-5.7/tests-mx32/Makefile.am	2020-09-09 19:52:38.905673636 +0200
+@@ -66,6 +66,7 @@
+ 	test_ucopy.h \
+ 	tests.h \
+ 	tprintf.c \
++	xmalloc_for_tests.c \
+ 	# end of libtests_a_SOURCES
+ libtests_a_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+ check_LIBRARIES = libtests.a
+@@ -109,17 +110,25 @@
+ 	delay \
+ 	execve-v \
+ 	execveat-v \
++	fcntl--pidns-translation \
++	fcntl64--pidns-translation \
+ 	filter_seccomp-flag \
+ 	filter_seccomp-perf \
+ 	filter-unavailable \
+ 	fork-f \
++	fork--pidns-translation \
+ 	fsync-y \
+ 	get_process_reaper \
++	getpgrp--pidns-translation	\
+ 	getpid	\
++	getpid--pidns-translation	\
+ 	getppid	\
++	getsid--pidns-translation \
+ 	gettid \
++	gettid--pidns-translation \
+ 	inject-nf \
+ 	int_0x80 \
++	ioctl_block--pidns-translation \
+ 	ioctl_dm-v \
+ 	ioctl_evdev-success \
+ 	ioctl_evdev-success-Xabbrev \
+@@ -150,18 +159,25 @@
+ 	ioctl_v4l2-success-v-Xabbrev \
+ 	ioctl_v4l2-success-v-Xraw \
+ 	ioctl_v4l2-success-v-Xverbose \
++	ioprio--pidns-translation \
+ 	is_linux_mips_n64 \
++	kcmp-y--pidns-translation \
+ 	kill_child \
++	kill--pidns-translation \
+ 	ksysent \
+ 	list_sigaction_signum \
+ 	localtime \
+ 	looping_threads \
++	migrate_pages--pidns-translation \
+ 	mmsg-silent \
+ 	mmsg_name-v \
++	move_pages--pidns-translation \
+ 	msg_control-v \
+ 	net-accept-connect \
++	net-sockaddr--pidns-translation \
+ 	net-tpacket_stats-success \
+ 	nlattr_ifla_xdp-y \
++	netlink_audit--pidns-translation \
+ 	netlink_inet_diag \
+ 	netlink_netlink_diag \
+ 	netlink_unix_diag \
+@@ -173,14 +189,20 @@
+ 	pc \
+ 	perf_event_open_nonverbose \
+ 	perf_event_open_unabbrev \
++	pidfd_open--pidns-translation \
++	pidfd_send_signal--pidns-translation \
++	pidns-cache \
+ 	poll-P \
+ 	ppoll-P \
+ 	ppoll-v \
++	prlimit64--pidns-translation \
+ 	prctl-seccomp-filter-v \
+ 	prctl-seccomp-strict \
+ 	prctl-spec-inject \
+ 	print_maxfd \
+ 	print_ppid_tracerpid \
++	process_vm_readv--pidns-translation \
++	process_vm_writev--pidns-translation \
+ 	qual_fault \
+ 	qual_inject-error-signal \
+ 	qual_inject-retval \
+@@ -194,7 +216,13 @@
+ 	quotactl-xfs-v \
+ 	redirect-fds \
+ 	restart_syscall \
++	rt_sigqueueinfo--pidns-translation \
++	rt_tgsigqueueinfo--pidns-translation \
+ 	run_expect_termsig \
++	sched_xetaffinity--pidns-translation \
++	sched_xetattr--pidns-translation \
++	sched_xetparam--pidns-translation \
++	sched_xetscheduler--pidns-translation \
+ 	scm_rights \
+ 	seccomp-filter-v \
+ 	seccomp-strict \
+@@ -204,25 +232,33 @@
+ 	set_sigign \
+ 	setpgrp-exec \
+ 	signal_receive \
++	signal_receive--pidns-translation \
+ 	sleep \
+ 	stack-fcall \
+ 	stack-fcall-attach \
+ 	stack-fcall-mangled \
+ 	status-none-threads \
+ 	status-unfinished-threads \
++	so_peercred--pidns-translation \
+ 	syslog-success \
++	tgkill--pidns-translation \
+ 	threads-execve \
+ 	threads-execve--quiet-thread-execve \
+ 	threads-execve-q \
+ 	threads-execve-qq \
+ 	threads-execve-qqq \
++	tkill--pidns-translation \
+ 	tracer_ppid_pgid_sid \
++	trie_test \
+ 	unblock_reset_raise \
+ 	unix-pair-send-recv \
+ 	unix-pair-sendto-recvfrom \
+ 	vfork-f \
+ 	wait4-v \
+ 	waitid-v \
++	xetpgid--pidns-translation \
++	xetpriority--pidns-translation \
++	xet_robust_list--pidns-translation \
+ 	zeroargc \
+ 	# end of check_PROGRAMS
+ 
+@@ -272,6 +308,11 @@
+ 	stack-fcall-mangled-0.c stack-fcall-mangled-1.c \
+ 	stack-fcall-mangled-2.c stack-fcall-mangled-3.c
+ 
++trie_test_SOURCES = trie_test.c trie_for_tests.c
++trie_test_CPPFLAGS = $(AM_CPPFLAGS) $(CODE_COVERAGE_CPPFLAGS)
++trie_test_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS)
++trie_test_LDADD = $(LDADD) $(CODE_COVERAGE_LIBS)
++
+ include gen_tests.am
+ 
+ if ENABLE_STACKTRACE
+@@ -308,6 +349,7 @@
+ 	int_0x80.test \
+ 	inotify_init-y.test \
+ 	ioctl.test \
++	ioctl_block--pidns-translation.test \
+ 	ioctl_evdev-success.test \
+ 	ipc_msgbuf.test \
+ 	kern_features-fault.test \
+@@ -379,15 +421,19 @@
+ 	filtering_fd-syntax.test \
+ 	filtering_syscall-syntax.test \
+ 	first_exec_failure.test \
++	fork--pidns-translation.test \
+ 	get_regs.test \
++	gettid--pidns-translation.test \
+ 	inject-nf.test \
+ 	interactive_block.test \
+ 	kill_child.test \
+ 	localtime.test \
+ 	looping_threads.test \
++	netlink_audit--pidns-translation.test \
+ 	opipe.test \
+ 	options-syntax.test \
+ 	pc.test \
++	pidns-cache.test \
+ 	printpath-umovestr-legacy.test \
+ 	printstrn-umoven-legacy.test \
+ 	qual_fault-syntax.test \
+@@ -465,6 +511,7 @@
+ 	filter_seccomp.in \
+ 	filter_seccomp.sh \
+ 	filter-unavailable.expected \
++	fork--pidns-translation.awk \
+ 	fstatat.c \
+ 	fstatx.c \
+ 	gen_pure_executables.sh \
+Index: strace-5.7/tests-mx32/fcntl--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/fcntl--pidns-translation.c	2020-09-09 19:52:38.905673636 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "fcntl.c"
+Index: strace-5.7/tests-mx32/fcntl-common.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/fcntl-common.c	2020-09-09 19:52:30.623668699 +0200
++++ strace-5.7/tests-mx32/fcntl-common.c	2020-09-09 19:52:38.905673636 +0200
+@@ -13,6 +13,8 @@
+ #include <unistd.h>
+ #include <assert.h>
+ #include "flock.h"
++#include "pidns.h"
++#include "scno.h"
+ 
+ #define FILE_LEN 4096
+ 
+@@ -48,12 +50,14 @@
+ 	fl->l_len = (TYPEOF_FLOCK_OFF_T) 0xdefaced2cafef00dULL;
+ 
+ 	invoke_test_syscall(0, cmd, fl);
++	pidns_print_leader();
+ 	printf("%s(0, %s, {l_type=F_RDLCK, l_whence=SEEK_SET"
+ 	       ", l_start=%jd, l_len=%jd}) = %s\n", TEST_SYSCALL_STR, name,
+ 	       (intmax_t) fl->l_start, (intmax_t) fl->l_len, errstr);
+ 
+ 	void *const bad_addr = (void *) fl + 1;
+ 	invoke_test_syscall(0, cmd, bad_addr);
++	pidns_print_leader();
+ 	printf("%s(0, %s, %p) = %s\n",
+ 	       TEST_SYSCALL_STR, name, bad_addr, errstr);
+ }
+@@ -72,12 +76,14 @@
+ 	fl->l_len = (TYPEOF_FLOCK_OFF_T) 0xdefaced2cafef00dULL;
+ 
+ 	invoke_test_syscall(0, cmd, fl);
++	pidns_print_leader();
+ 	printf("%s(0, %s, {l_type=F_RDLCK, l_whence=SEEK_SET"
+ 	       ", l_start=%jd, l_len=%jd}) = %s\n", TEST_SYSCALL_STR, name,
+ 	       (intmax_t) fl->l_start, (intmax_t) fl->l_len, errstr);
+ 
+ 	void *const bad_addr = (void *) fl + 1;
+ 	invoke_test_syscall(0, cmd, bad_addr);
++	pidns_print_leader();
+ 	printf("%s(0, %s, %p) = %s\n",
+ 	       TEST_SYSCALL_STR, name, bad_addr, errstr);
+ }
+@@ -94,6 +100,7 @@
+ 	fl->l_len = FILE_LEN;
+ 
+ 	long rc = invoke_test_syscall(0, F_SETLK, fl);
++	pidns_print_leader();
+ 	printf("%s(0, F_SETLK, {l_type=F_RDLCK, l_whence=SEEK_SET"
+ 	       ", l_start=0, l_len=%d}) = %s\n",
+ 	       TEST_SYSCALL_STR, FILE_LEN, errstr);
+@@ -101,11 +108,13 @@
+ 		return;
+ 
+ 	invoke_test_syscall(0, F_GETLK, fl);
++	pidns_print_leader();
+ 	printf("%s(0, F_GETLK, {l_type=F_UNLCK, l_whence=SEEK_SET"
+ 	       ", l_start=0, l_len=%d, l_pid=0}) = 0\n",
+ 	       TEST_SYSCALL_STR, FILE_LEN);
+ 
+ 	invoke_test_syscall(0, F_SETLKW, fl);
++	pidns_print_leader();
+ 	printf("%s(0, F_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET"
+ 	       ", l_start=0, l_len=%d}) = 0\n",
+ 	       TEST_SYSCALL_STR, FILE_LEN);
+@@ -124,6 +133,7 @@
+ 	fl->l_len = FILE_LEN;
+ 
+ 	long rc = invoke_test_syscall(0, F_OFD_SETLK, fl);
++	pidns_print_leader();
+ 	printf("%s(0, F_OFD_SETLK, {l_type=F_RDLCK, l_whence=SEEK_SET"
+ 	       ", l_start=0, l_len=%d}) = %s\n",
+ 	       TEST_SYSCALL_STR, FILE_LEN, errstr);
+@@ -131,11 +141,13 @@
+ 		return;
+ 
+ 	invoke_test_syscall(0, F_OFD_GETLK, fl);
++	pidns_print_leader();
+ 	printf("%s(0, F_OFD_GETLK, {l_type=F_UNLCK, l_whence=SEEK_SET"
+ 	       ", l_start=0, l_len=%d, l_pid=0}) = 0\n",
+ 	       TEST_SYSCALL_STR, FILE_LEN);
+ 
+ 	invoke_test_syscall(0, F_OFD_SETLKW, fl);
++	pidns_print_leader();
+ 	printf("%s(0, F_OFD_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET"
+ 	       ", l_start=0, l_len=%d}) = 0\n",
+ 	       TEST_SYSCALL_STR, FILE_LEN);
+@@ -167,18 +179,21 @@
+ static long
+ test_f_owner_ex_type_pid(const int cmd, const char *const cmd_name,
+ 			 const int type, const char *const type_name,
+-			 pid_t pid)
++			 enum pid_type pid_type, pid_t pid)
+ {
+ 	TAIL_ALLOC_OBJECT_CONST_PTR(struct_kernel_f_owner_ex, fo);
+ 
+ 	fo->type = type;
+ 	fo->pid = pid;
+ 	long rc = invoke_test_syscall(0, cmd, fo);
+-	printf("%s(0, %s, {type=%s, pid=%d}) = %s\n",
+-	       TEST_SYSCALL_STR, cmd_name, type_name, fo->pid, errstr);
++	pidns_print_leader();
++	printf("%s(0, %s, {type=%s, pid=%d%s}) = %s\n",
++	       TEST_SYSCALL_STR, cmd_name, type_name,
++	       fo->pid, pidns_pid2str(pid_type), errstr);
+ 
+ 	void *bad_addr = (void *) fo + 1;
+ 	invoke_test_syscall(0, cmd, bad_addr);
++	pidns_print_leader();
+ 	printf("%s(0, %s, %p) = %s\n",
+ 	       TEST_SYSCALL_STR, cmd_name, bad_addr, errstr);
+ 
+@@ -187,35 +202,35 @@
+ 
+ static void
+ test_f_owner_ex_umove_or_printaddr(const int type, const char *const type_name,
+-				   pid_t pid)
++				   enum pid_type pid_type, pid_t pid)
+ {
+ 	long rc = test_f_owner_ex_type_pid(ARG_STR(F_SETOWN_EX),
+-					   type, type_name, pid);
++					   type, type_name, pid_type, pid);
+ 	if (!rc)
+ 		test_f_owner_ex_type_pid(ARG_STR(F_GETOWN_EX),
+-					 type, type_name, pid);
++					 type, type_name, pid_type, pid);
+ }
+ 
+ static void
+ test_f_owner_ex(void)
+ {
+-	static const struct {
++	struct {
+ 		int type;
+ 		const char *type_name;
+-		pid_t pid[2];
++		enum pid_type pid_type;
++		pid_t pid;
+ 	} a[] = {
+-		{ ARG_STR(F_OWNER_TID), { 1234567890, 20 } },
+-		{ ARG_STR(F_OWNER_PID), { 1298126790, 30 } },
+-		{ ARG_STR(F_OWNER_PGRP), { 1294567890, 40 } }
++		{ ARG_STR(F_OWNER_TID), PT_NONE, 1234567890 },
++		{ ARG_STR(F_OWNER_PID), PT_NONE, 1234567890 },
++		{ ARG_STR(F_OWNER_PGRP), PT_NONE, 1234567890 },
++		{ ARG_STR(F_OWNER_TID), PT_TID, syscall(__NR_gettid) },
++		{ ARG_STR(F_OWNER_PID), PT_TGID, getpid() },
++		{ ARG_STR(F_OWNER_PGRP), PT_PGID, getpgid(0) },
+ 	};
+ 
+-	for (unsigned int i = 0; i < ARRAY_SIZE(a); i++) {
+-		for (unsigned int j = 0; j < ARRAY_SIZE(a[0].pid); j++) {
+-			test_f_owner_ex_umove_or_printaddr(a[i].type,
+-							   a[i].type_name,
+-							   a[i].pid[j]);
+-		}
+-	}
++	for (unsigned int i = 0; i < ARRAY_SIZE(a); i++)
++		test_f_owner_ex_umove_or_printaddr(a[i].type, a[i].type_name,
++			a[i].pid_type, a[i].pid);
+ }
+ #endif /* TEST_F_OWNER_EX */
+ 
+@@ -229,6 +244,23 @@
+ };
+ 
+ static void
++test_xetown(void)
++{
++	const int pid = getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
++
++	invoke_test_syscall(0, F_SETOWN, (void *) (intptr_t) pid);
++	pidns_print_leader();
++	printf("%s(0, F_SETOWN, %d%s) = %s\n",
++		TEST_SYSCALL_STR, pid, pid_str, errstr);
++
++	invoke_test_syscall(0, F_GETOWN, NULL);
++	pidns_print_leader();
++	printf("%s(0, F_GETOWN) = %d%s\n",
++		TEST_SYSCALL_STR, pid, pid_str);
++}
++
++static void
+ print_retval_flags(const struct fcntl_cmd_check *check, long rc)
+ {
+ 	if (check->print_flags) {
+@@ -243,12 +275,14 @@
+ test_other_set_cmd(const struct fcntl_cmd_check *check)
+ {
+ 	invoke_test_syscall(check->fd, check->cmd, (void *) check->arg);
++	pidns_print_leader();
+ 	printf("%s(%d, %s, %s) = %s\n",
+ 	       TEST_SYSCALL_STR, check->fd,
+ 	       check->cmd_str, check->arg_str, errstr);
+ 
+ 	/* bad file fd */
+ 	invoke_test_syscall(-1, check->cmd, (void *) check->arg);
++	pidns_print_leader();
+ 	printf("%s(-1, %s, %s) = %s\n",
+ 	       TEST_SYSCALL_STR, check->cmd_str,
+ 	       check->arg_str, errstr);
+@@ -258,12 +292,14 @@
+ test_other_get_cmd(const struct fcntl_cmd_check *check)
+ {
+ 	long rc = invoke_test_syscall(check->fd, check->cmd, NULL);
++	pidns_print_leader();
+ 	printf("%s(%d, %s) = ",
+ 	       TEST_SYSCALL_STR, check->fd, check->cmd_str);
+ 	print_retval_flags(check, rc);
+ 
+ 	/* bad file fd */
+ 	invoke_test_syscall(-1, check->cmd, NULL);
++	pidns_print_leader();
+ 	printf("%s(-1, %s) = %s\n",
+ 	       TEST_SYSCALL_STR, check->cmd_str, errstr);
+ }
+@@ -315,7 +351,6 @@
+ {
+ 	static const struct fcntl_cmd_check set_checks[] = {
+ 		{ 0, ARG_STR(F_SETFD), ARG_STR(FD_CLOEXEC) },
+-		{ 0, ARG_STR(F_SETOWN), ARG_STR(20) },
+ #ifdef F_SETPIPE_SZ
+ 		{ 0, ARG_STR(F_SETPIPE_SZ), ARG_STR(4097) },
+ #endif
+@@ -336,7 +371,6 @@
+ 	static const struct fcntl_cmd_check get_checks[] = {
+ 		{ 0, ARG_STR(F_GETFD), .print_flags = print_flags_getfd },
+ 		{ 1, ARG_STR(F_GETFD), .print_flags = print_flags_getfd },
+-		{ 0, ARG_STR(F_GETOWN) },
+ #ifdef F_GETPIPE_SZ
+ 		{ 0, ARG_STR(F_GETPIPE_SZ) },
+ #endif
+@@ -360,6 +394,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	create_sample();
+ 	test_flock();
+ 	test_flock64();
+@@ -367,7 +403,9 @@
+ 	test_f_owner_ex();
+ #endif
+ 	test_fcntl_others();
++	test_xetown();
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-mx32/fcntl.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/fcntl.c	2020-09-09 19:52:30.623668699 +0200
++++ strace-5.7/tests-mx32/fcntl.c	2020-09-09 19:52:38.906673636 +0200
+@@ -24,6 +24,7 @@
+ 		.l_len = 0xdefaced2cafef00dULL
+ 	};
+ 	invoke_test_syscall(0, cmd, &fl);
++	pidns_print_leader();
+ 	printf("%s(0, %s, %p) = %s\n",
+ 	       TEST_SYSCALL_STR, name, &fl, errstr);
+ }
+Index: strace-5.7/tests-mx32/fcntl64--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/fcntl64--pidns-translation.c	2020-09-09 19:52:38.906673636 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "fcntl64.c"
+Index: strace-5.7/tests-mx32/fcntl64.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/fcntl64.c	2020-09-09 19:52:30.623668699 +0200
++++ strace-5.7/tests-mx32/fcntl64.c	2020-09-09 19:52:38.906673636 +0200
+@@ -27,6 +27,7 @@
+ 	fl->l_len = FILE_LEN;
+ 
+ 	long rc = invoke_test_syscall(0, F_SETLK64, fl);
++	pidns_print_leader();
+ 	printf("%s(0, F_SETLK64, {l_type=F_RDLCK, l_whence=SEEK_SET"
+ 	       ", l_start=0, l_len=%d}) = %s\n",
+ 	       TEST_SYSCALL_STR, FILE_LEN, errstr);
+@@ -35,11 +36,13 @@
+ 		return;
+ 
+ 	invoke_test_syscall(0, F_GETLK64, fl);
++	pidns_print_leader();
+ 	printf("%s(0, F_GETLK64, {l_type=F_UNLCK, l_whence=SEEK_SET"
+ 	       ", l_start=0, l_len=%d, l_pid=0}) = 0\n",
+ 	       TEST_SYSCALL_STR, FILE_LEN);
+ 
+ 	invoke_test_syscall(0, F_SETLKW64, fl);
++	pidns_print_leader();
+ 	printf("%s(0, F_SETLKW64, {l_type=F_UNLCK, l_whence=SEEK_SET"
+ 	       ", l_start=0, l_len=%d}) = 0\n",
+ 	       TEST_SYSCALL_STR, FILE_LEN);
+Index: strace-5.7/tests-mx32/fork--pidns-translation.awk
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/fork--pidns-translation.awk	2020-09-09 19:52:38.906673636 +0200
+@@ -0,0 +1,15 @@
++/fork/ {
++        match($0, "([0-9]+) in strace\x27s PID NS", a);
++        if (a[1])
++                fork_pid = a[1]
++}
++
++/exited with 0/ {
++        if (!exit_pid)
++                exit_pid = $1
++}
++
++END {
++        if (!fork_pid || !exit_pid || fork_pid != exit_pid)
++                exit 1
++}
+Index: strace-5.7/tests-mx32/fork--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/fork--pidns-translation.c	2020-09-09 19:52:38.906673636 +0200
+@@ -0,0 +1,78 @@
++/*
++ * Test PID namespace translation
++ *
++ * Copyright (c) 2020 Ákos Uzonyi <uzonyi.akos@gmail.com>
++ * All rights reserved.
++ *
++ * SPDX-License-Identifier: LGPL-2.1-or-later
++ */
++
++#include "tests.h"
++#include "scno.h"
++#include "pidns.h"
++
++#ifdef __NR_fork
++
++#include <errno.h>
++#include <limits.h>
++#include <sched.h>
++#include <signal.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <sys/wait.h>
++#include <unistd.h>
++#include <linux/sched.h>
++#include "nsfs.h"
++
++#ifndef CLONE_NEWUSER
++# define CLONE_NEWUSER 0x10000000
++#endif
++
++#ifndef CLONE_NEWPID
++# define CLONE_NEWPID 0x20000000
++#endif
++
++static int
++fork_chain(int depth)
++{
++	if (!depth)
++		return 0;
++
++	int pid = syscall(__NR_fork);
++	if (pid < 0)
++		return errno;
++
++	if (!pid)
++		_exit(fork_chain(depth - 1));
++
++	int status;
++	if (wait(&status) < 0)
++		return errno;
++
++	if (!WIFEXITED(status))
++		return -1;
++
++	return WEXITSTATUS(status);
++}
++
++int main(void)
++{
++	check_ns_ioctl();
++
++	if (unshare(CLONE_NEWPID | CLONE_NEWUSER) < 0) {
++		if (errno == EPERM)
++			perror_msg_and_skip("unshare");
++
++		perror_msg_and_fail("unshare");
++	}
++
++	errno = fork_chain(2);
++	if (errno)
++		perror("fork_chain");
++}
++
++#else
++
++SKIP_MAIN_UNDEFINED("__NR_fork")
++
++#endif
+Index: strace-5.7/tests-mx32/fork--pidns-translation.test
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/fork--pidns-translation.test	2020-09-09 19:52:38.906673636 +0200
+@@ -0,0 +1,14 @@
++#!/bin/sh
++#
++# Check pidns translation of fork's return value.
++#
++# Copyright (c) 2020 The strace developers.
++# All rights reserved.
++#
++# SPDX-License-Identifier: LGPL-2.1-or-later
++
++. "${srcdir=.}/init.sh"
++
++run_prog
++run_strace -a6 --pidns-translation -f -e trace=fork $args
++match_awk
+Index: strace-5.7/tests-mx32/gen_tests.in
+===================================================================
+--- strace-5.7.orig/tests-mx32/gen_tests.in	2020-09-09 19:52:30.625668700 +0200
++++ strace-5.7/tests-mx32/gen_tests.in	2020-09-09 19:52:38.907673637 +0200
+@@ -88,7 +88,9 @@
+ fchown32	-a18
+ fchownat
+ fcntl	-a8
++fcntl--pidns-translation	test_pidns -a8 -e trace=fcntl
+ fcntl64	-a8
++fcntl64--pidns-translation	test_pidns -a8 -e trace=fcntl64
+ fdatasync	-a14
+ file_handle	-e trace=name_to_handle_at,open_by_handle_at
+ file_ioctl	+ioctl.test
+@@ -142,7 +144,9 @@
+ getgroups32	-a19
+ getpeername	-a27
+ getpgrp	-a10
++getpgrp--pidns-translation	test_pidns -e trace=getpgrp -a10
+ getpid	-a9
++getpid--pidns-translation	test_pidns -e trace=getpid -a9
+ getppid	-a10
+ getrandom	-a32 -s3
+ getresgid	-a25
+@@ -152,6 +156,7 @@
+ getrlimit	-a27
+ getrusage	-v
+ getsid	-a10
++getsid--pidns-translation	test_pidns -e trace=getsid -a10
+ getsockname	-a27
+ gettid	-a9
+ getuid-creds	+getuid.test
+@@ -245,6 +250,7 @@
+ ioperm	-a27
+ iopl	-a8
+ ioprio	-a18 -e trace=ioprio_get,ioprio_set
++ioprio--pidns-translation	test_pidns -a18 -e trace=ioprio_get,ioprio_set
+ ioprio-Xabbrev	-a18 -e trace=ioprio_get,ioprio_set -Xabbrev
+ ioprio-Xraw	-a18 -e trace=ioprio_get,ioprio_set -Xraw
+ ioprio-Xverbose	-a18 -e trace=ioprio_get,ioprio_set -Xverbose
+@@ -267,6 +273,7 @@
+ ipc_shm-Xverbose	+ipc.sh -Xverbose -a34
+ kcmp	-a22
+ kcmp-y	-a22 -y -e trace=kcmp
++kcmp-y--pidns-translation	test_pidns -a22 -y -e trace=kcmp
+ kern_features -a16
+ kernel_version	-a16 -v -e trace=bpf
+ kernel_version-Xabbrev	-a16 -Xabbrev -v -e trace=bpf
+@@ -279,6 +286,7 @@
+ keyctl-Xraw	-a13 -s10 -e trace=keyctl -Xraw
+ keyctl-Xverbose	-a41 -s10 -e trace=keyctl -Xverbose
+ kill	-a12 -esignal=none
++kill--pidns-translation	test_pidns -a12 -e trace=kill -esignal=none
+ ksysent	../$NAME
+ lchown	-a30
+ lchown32	-a32
+@@ -300,6 +308,7 @@
+ memfd_create-Xraw	-a30 -Xraw -e trace=memfd_create
+ memfd_create-Xverbose	-Xverbose -e trace=memfd_create
+ migrate_pages	-a33
++migrate_pages--pidns-translation	test_pidns -a33 -e trace=migrate_pages
+ mincore	-a22
+ mkdir	-a20
+ mkdirat	-a28
+@@ -330,6 +339,7 @@
+ move_pages-Xabbrev	-s3 -e trace=move_pages -Xabbrev
+ move_pages-Xraw	-s3 -a36 -e trace=move_pages -Xraw
+ move_pages-Xverbose	-s3 -e trace=move_pages -Xverbose
++move_pages--pidns-translation	test_pidns -s3 -e trace=move_pages
+ mq	-a32 -e trace=mq_getsetattr,mq_open,mq_unlink
+ mq_sendrecv	-a14 -e trace=mq_open,mq_notify,mq_timedsend,mq_timedreceive,mq_unlink
+ mq_sendrecv-read	-eread=0 -a14 -e trace=mq_open,mq_notify,mq_timedsend,mq_timedreceive,mq_unlink
+@@ -349,6 +359,7 @@
+ net-packet_mreq-Xraw	-e trace=setsockopt -Xraw
+ net-packet_mreq-Xverbose	-e trace=setsockopt -Xverbose
+ net-sockaddr	-a24 -e trace=connect
++net-sockaddr--pidns-translation	test_pidns -a24 -e trace=connect
+ net-tpacket_req -e trace=setsockopt
+ net-tpacket_stats -e trace=getsockopt
+ net-yy-inet6	+net-yy-inet.test
+@@ -452,7 +463,9 @@
+ pidfd_open-P	-a17 -P /dev/full -e trace=pidfd_open
+ pidfd_open-y	-a17 -y -e trace=pidfd_open
+ pidfd_open-yy	-a17 -yy -e trace=pidfd_open
++pidfd_open--pidns-translation	test_pidns -a17 -e trace=pidfd_open
+ pidfd_send_signal
++pidfd_send_signal--pidns-translation test_pidns -e trace=pidfd_send_signal
+ pipe2	-a15
+ pkey_alloc	-a17
+ pkey_free	-a13
+@@ -475,8 +488,11 @@
+ printstrn-umoven-peekdata	-e signal=none -e trace=add_key
+ printstrn-umoven-undumpable	-e signal=none -e trace=add_key
+ prlimit64
++prlimit64--pidns-translation     test_pidns -e trace=prlimit64
+ process_vm_readv	-s5 -a37
++process_vm_readv--pidns-translation	test_pidns -s5 -a37 -e trace=process_vm_readv
+ process_vm_writev	-s5 -a38
++process_vm_writev--pidns-translation	test_pidns -s5 -a38 -e trace=process_vm_writev
+ pselect6
+ ptrace	-a23 -e signal=none
+ ptrace_syscall_info	-a35 -e signal=none -e trace=ptrace
+@@ -513,10 +529,12 @@
+ rt_sigpending	-a20
+ rt_sigprocmask
+ rt_sigqueueinfo	-esignal=none
++rt_sigqueueinfo--pidns-translation	test_pidns -esignal=none -e trace=rt_sigqueueinfo
+ rt_sigreturn	-esignal='!USR1'
+ rt_sigsuspend	-a20 -esignal=none
+ rt_sigtimedwait	-a38
+ rt_tgsigqueueinfo	-esignal=none
++rt_tgsigqueueinfo--pidns-translation	test_pidns -esignal=none -e trace=rt_tgsigqueueinfo
+ s390_guarded_storage	-a32
+ s390_guarded_storage-v	-e trace=s390_guarded_storage -a32 -v
+ s390_pci_mmio_read_write	-e trace=s390_pci_mmio_read,s390_pci_mmio_write -a30
+@@ -527,9 +545,13 @@
+ sched_get_priority_mxx	-a33 -e trace=sched_get_priority_min,sched_get_priority_max
+ sched_rr_get_interval	-a31
+ sched_xetaffinity	-a28 -e trace=sched_getaffinity,sched_setaffinity
++sched_xetaffinity--pidns-translation	test_pidns -a28 -e trace=sched_getaffinity,sched_setaffinity
+ sched_xetattr	-a29 -e trace=sched_getattr,sched_setattr
++sched_xetattr--pidns-translation	test_pidns -a29 -e trace=sched_getattr,sched_setattr
+ sched_xetparam	-a23 -e trace=sched_getparam,sched_setparam
++sched_xetparam--pidns-translation	test_pidns -a23 -e trace=sched_getparam,sched_setparam
+ sched_xetscheduler	-a22 -e trace=sched_getscheduler,sched_setscheduler
++sched_xetscheduler--pidns-translation	test_pidns -a22 -e trace=sched_getscheduler,sched_setscheduler
+ sched_yield	-a14
+ seccomp-filter	-e trace=seccomp
+ seccomp-filter-v	-v -e trace=seccomp
+@@ -576,6 +598,7 @@
+ siginfo	-e trace=none
+ signal	-a25 -e signal=none -e trace='/^signal$'
+ signal_receive	-a16 -e trace=kill
++signal_receive--pidns-translation	test_pidns -a16 -e trace=kill
+ signalfd4
+ sigpending	-a15
+ sigprocmask	-a34
+@@ -587,6 +610,7 @@
+ so_peercred-Xabbrev	-e trace=getsockopt -Xabbrev
+ so_peercred-Xraw	-e trace=getsockopt -Xraw -a39
+ so_peercred-Xverbose	-e trace=getsockopt -Xverbose
++so_peercred--pidns-translation	test_pidns -e trace=getsockopt
+ sock_filter-v	-v -e trace=getsockopt,setsockopt
+ sock_filter-v-Xabbrev	-v -e trace=getsockopt,setsockopt -X abbrev
+ sock_filter-v-Xraw	-a 37 -v -e trace=getsockopt,setsockopt -X raw
+@@ -659,6 +683,7 @@
+ syslog	-a35
+ tee
+ tgkill	-a15 --signal='!cont'
++tgkill--pidns-translation       test_pidns -a15 --signal='!cont' -e trace=tgkill
+ threads-execve--quiet-thread-execve +threads-execve.test -s40 --quiet=personality,thread-execve
+ threads-execve-q +threads-execve.test -q
+ threads-execve-qq +threads-execve.test -qq
+@@ -670,6 +695,7 @@
+ times	-esignal=none
+ times-fail	-a12 -e trace=times
+ tkill	-a12 --signal='!cont'
++tkill--pidns-translation       test_pidns --signal='!cont' -a12 -e trace=tkill
+ trace_clock	test_trace_expr 'clock_nanosleep|times' -e%clock
+ trace_creds	test_trace_expr '([gs]et[^p]*([gu]id|groups)|caps|prctl|[fl]?chown|print(path-umovestr|strn-umoven)-undumpable|ptrace|quotactl|rt_sigtimedwait|rt_(tg)?sigqueueinfo).*' -e%creds
+ trace_fstat	test_trace_expr '' -e%fstat -v -P stat.sample -P /dev/full
+@@ -686,6 +712,7 @@
+ trace_stat_like	test_trace_expr '' -e%%stat -v -P stat.sample -P /dev/full
+ trace_statfs	test_trace_expr '' -e%statfs
+ trace_statfs_like	test_trace_expr '' -e%%statfs
++trie_test    run_prog
+ truncate
+ truncate64
+ ugetrlimit	-a28
+@@ -716,7 +743,10 @@
+ xattr	-a22 -e trace=getxattr,fgetxattr,lgetxattr,setxattr,fsetxattr,lsetxattr,listxattr,flistxattr,llistxattr,removexattr,fremovexattr,lremovexattr
+ xattr-strings	-a22 -s 4 -e trace=fsetxattr
+ xet_robust_list	-a24 -e trace=get_robust_list,set_robust_list
++xet_robust_list--pidns-translation	test_pidns -a24 -e trace=get_robust_list,set_robust_list
+ xetitimer	-a29 -e trace=setitimer,getitimer
+ xetpgid	-a11 -e trace=getpgid,setpgid
+-xetpriority	-a29 -e trace=getpriority,setpriority
++xetpgid--pidns-translation	test_pidns -a11 -e trace=getpgid,setpgid
++xetpriority	-a27 -e trace=getpriority,setpriority
++xetpriority--pidns-translation	test_pidns -a27 -e trace=getpriority,setpriority
+ xettimeofday	-a20 -e trace=gettimeofday,settimeofday
+Index: strace-5.7/tests-mx32/getpgrp--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/getpgrp--pidns-translation.c	2020-09-09 19:52:38.907673637 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "getpgrp.c"
+Index: strace-5.7/tests-mx32/getpgrp.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/getpgrp.c	2020-09-09 19:52:30.625668700 +0200
++++ strace-5.7/tests-mx32/getpgrp.c	2020-09-09 19:52:38.907673637 +0200
+@@ -7,6 +7,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #ifdef __NR_getpgrp
+ 
+@@ -16,8 +17,13 @@
+ int
+ main(void)
+ {
+-	printf("getpgrp() = %ld\n", syscall(__NR_getpgrp));
++	PIDNS_TEST_INIT;
+ 
++	pidns_print_leader();
++	printf("getpgrp() = %d%s\n", (int) syscall(__NR_getpgrp),
++		pidns_pid2str(PT_PGID));
++
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-mx32/getpid--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/getpid--pidns-translation.c	2020-09-09 19:52:38.907673637 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "getpid.c"
+Index: strace-5.7/tests-mx32/getpid.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/getpid.c	2020-09-09 19:52:30.625668700 +0200
++++ strace-5.7/tests-mx32/getpid.c	2020-09-09 19:52:38.907673637 +0200
+@@ -7,6 +7,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #if defined __NR_getpid && (!defined __NR_getxpid || __NR_getxpid != __NR_getpid)
+ 
+@@ -16,7 +17,12 @@
+ int
+ main(void)
+ {
+-	printf("getpid() = %ld\n", syscall(__NR_getpid));
++	PIDNS_TEST_INIT;
++
++	pidns_print_leader();
++	printf("getpid() = %d%s\n", (int) syscall(__NR_getpid),
++		pidns_pid2str(PT_TGID));
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-mx32/getsid--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/getsid--pidns-translation.c	2020-09-09 19:52:38.907673637 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "getsid.c"
+Index: strace-5.7/tests-mx32/getsid.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/getsid.c	2020-09-09 19:52:30.625668700 +0200
++++ strace-5.7/tests-mx32/getsid.c	2020-09-09 19:52:38.907673637 +0200
+@@ -6,15 +6,22 @@
+  */
+ 
+ #include "tests.h"
++#include "pidns.h"
++
+ #include <stdio.h>
+ #include <unistd.h>
+ 
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	pid_t pid = getpid();
+-	printf("getsid(%d) = %d\n", pid, getsid(pid));
++	pidns_print_leader();
++	printf("getsid(%d%s) = %d%s\n", pid, pidns_pid2str(PT_TGID),
++		getsid(pid), pidns_pid2str(PT_SID));
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-mx32/gettid--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/gettid--pidns-translation.c	2020-09-09 19:52:38.908673637 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "gettid.c"
+Index: strace-5.7/tests-mx32/gettid--pidns-translation.test
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/gettid--pidns-translation.test	2020-09-09 19:52:38.908673637 +0200
+@@ -0,0 +1,18 @@
++#!/bin/sh
++#
++# Check pidns translation of gettid's return value.
++#
++# Copyright (c) 2020 The strace developers.
++# All rights reserved.
++#
++# SPDX-License-Identifier: LGPL-2.1-or-later
++
++. "${srcdir=.}/init.sh"
++
++run_prog > /dev/null
++run_strace -a9 --pidns-translation -f -e trace=gettid $args > "$EXP"
++parent_pid="$(tail -n 2 $LOG | head -n 1 | cut -d' ' -f1)"
++init_pid="$(tail -n 1 $LOG | cut -d' ' -f1)"
++# uniq: filter out extra gettid calls made by musl libc
++grep -E -v "^($parent_pid|$init_pid) |unfinished|resumed" "$LOG" | uniq > "$OUT"
++match_diff "$OUT" "$EXP"
+Index: strace-5.7/tests-mx32/gettid.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/gettid.c	2020-09-09 19:52:30.626668701 +0200
++++ strace-5.7/tests-mx32/gettid.c	2020-09-09 19:52:38.908673637 +0200
+@@ -9,11 +9,17 @@
+ #include <stdio.h>
+ #include <unistd.h>
+ #include "scno.h"
++#include "pidns.h"
+ 
+ int
+ main(void)
+ {
+-	printf("gettid() = %ld\n", syscall(__NR_gettid));
++	PIDNS_TEST_INIT;
++
++	pidns_print_leader();
++	printf("gettid() = %d%s\n", (int) syscall(__NR_gettid),
++		pidns_pid2str(PT_TID));
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-mx32/ioctl_block--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/ioctl_block--pidns-translation.c	2020-09-09 19:52:38.908673637 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "ioctl_block.c"
+Index: strace-5.7/tests-mx32/ioctl_block--pidns-translation.test
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/ioctl_block--pidns-translation.test	2020-09-09 19:52:38.908673637 +0200
+@@ -0,0 +1,22 @@
++#!/bin/sh
++#
++# Check pidns translation of ioctl(BLK*) syscall decoding.
++#
++# Copyright (c) 2020 The strace developers.
++# All rights reserved.
++#
++# SPDX-License-Identifier: LGPL-2.1-or-later
++
++. "${srcdir=.}/init.sh"
++
++check_prog head
++check_prog tail
++check_prog cut
++check_prog grep
++
++run_prog > /dev/null
++run_strace --pidns-translation -f -a16 -e trace=ioctl $@ $args > "$EXP"
++parent_pid="$(tail -n 2 $LOG | head -n 1 | cut -d' ' -f1)"
++init_pid="$(tail -n 1 $LOG | cut -d' ' -f1)"
++grep -E -v "^($parent_pid|$init_pid) |ioctl\([0123][,<]" "$LOG" > "$OUT"
++match_diff "$OUT" "$EXP"
+Index: strace-5.7/tests-mx32/ioctl_block.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/ioctl_block.c	2020-09-09 19:52:30.626668701 +0200
++++ strace-5.7/tests-mx32/ioctl_block.c	2020-09-09 19:52:38.908673637 +0200
+@@ -9,7 +9,9 @@
+  */
+ 
+ #include "tests.h"
++#include "pidns.h"
+ #include <errno.h>
++#include <unistd.h>
+ #include <inttypes.h>
+ #include <stdio.h>
+ #include <string.h>
+@@ -41,12 +43,15 @@
+ #define TEST_NULL_ARG(cmd)						\
+ 	do {								\
+ 		ioctl(-1, cmd, 0);					\
++		pidns_print_leader();					\
+ 		printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n", #cmd);	\
+ 	} while (0)
+ 
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	TEST_NULL_ARG(BLKBSZGET);
+ 	TEST_NULL_ARG(BLKBSZSET);
+ 	TEST_NULL_ARG(BLKFRAGET);
+@@ -91,18 +96,22 @@
+ #endif
+ 
+ 	ioctl(-1, BLKRASET, lmagic);
++	pidns_print_leader();
+ 	printf("ioctl(-1, BLKRASET, %lu) = -1 EBADF (%m)\n", lmagic);
+ 
+ 	ioctl(-1, BLKFRASET, lmagic);
++	pidns_print_leader();
+ 	printf("ioctl(-1, BLKFRASET, %lu) = -1 EBADF (%m)\n", lmagic);
+ 
+ 	TAIL_ALLOC_OBJECT_CONST_PTR(int, val_int);
+ 	*val_int = magic;
+ 
+ 	ioctl(-1, BLKROSET, val_int);
++	pidns_print_leader();
+ 	printf("ioctl(-1, BLKROSET, [%d]) = -1 EBADF (%m)\n", *val_int);
+ 
+ 	ioctl(-1, BLKBSZSET, val_int);
++	pidns_print_leader();
+ 	printf("ioctl(-1, BLKBSZSET, [%d]) = -1 EBADF (%m)\n", *val_int);
+ 
+ 	uint64_t *pair_int64 = tail_alloc(sizeof(*pair_int64) * 2);
+@@ -111,18 +120,21 @@
+ 
+ #ifdef BLKDISCARD
+ 	ioctl(-1, BLKDISCARD, pair_int64);
++	pidns_print_leader();
+ 	printf("ioctl(-1, BLKDISCARD, [%" PRIu64 ", %" PRIu64 "])"
+ 	       " = -1 EBADF (%m)\n", pair_int64[0], pair_int64[1]);
+ #endif
+ 
+ #ifdef BLKSECDISCARD
+ 	ioctl(-1, BLKSECDISCARD, pair_int64);
++	pidns_print_leader();
+ 	printf("ioctl(-1, BLKSECDISCARD, [%" PRIu64 ", %" PRIu64 "])"
+ 	       " = -1 EBADF (%m)\n", pair_int64[0], pair_int64[1]);
+ #endif
+ 
+ #ifdef BLKZEROOUT
+ 	ioctl(-1, BLKZEROOUT, pair_int64);
++	pidns_print_leader();
+ 	printf("ioctl(-1, BLKZEROOUT, [%" PRIu64 ", %" PRIu64 "])"
+ 	       " = -1 EBADF (%m)\n", pair_int64[0], pair_int64[1]);
+ #endif
+@@ -134,6 +146,7 @@
+ 	blkpg->data = (void *) (unsigned long) 0xcafef00dfffffeedULL;
+ 
+ 	ioctl(-1, BLKPG, blkpg);
++	pidns_print_leader();
+ 	printf("ioctl(-1, BLKPG, {op=%s, flags=%d, datalen=%d"
+ 	       ", data=%#lx}) = -1 EBADF (%m)\n",
+ 	       "BLKPG_RESIZE_PARTITION", blkpg->flags, blkpg->datalen,
+@@ -149,6 +162,7 @@
+ 	blkpg->data = bp;
+ 
+ 	ioctl(-1, BLKPG, blkpg);
++	pidns_print_leader();
+ 	printf("ioctl(-1, BLKPG, {op=%s, flags=%d, datalen=%d"
+ 	       ", data={start=%lld, length=%lld, pno=%d"
+ 	       ", devname=\"%.*s\"..., volname=\"%.*s\"...}})"
+@@ -162,25 +176,31 @@
+ #if defined BLKTRACESETUP && defined HAVE_STRUCT_BLK_USER_TRACE_SETUP
+ 	TAIL_ALLOC_OBJECT_CONST_PTR(struct blk_user_trace_setup, buts);
+ 	fill_memory(buts, sizeof(*buts));
++	buts->pid = getpid();
+ 
+ 	ioctl(-1, BLKTRACESETUP, buts);
++	pidns_print_leader();
+ 	printf("ioctl(-1, BLKTRACESETUP, {act_mask=%hu, buf_size=%u, buf_nr=%u"
+-	       ", start_lba=%" PRI__u64 ", end_lba=%" PRI__u64 ", pid=%d})"
++	       ", start_lba=%" PRI__u64 ", end_lba=%" PRI__u64 ", pid=%d%s})"
+ 	       " = -1 EBADF (%m)\n",
+ 	       buts->act_mask, buts->buf_size, buts->buf_nr,
+-	       buts->start_lba, buts->end_lba, buts->pid);
++	       buts->start_lba, buts->end_lba, buts->pid,
++	       pidns_pid2str(PT_TGID));
+ #endif
+ 
+ 	unsigned int i;
+ 	for (i = 0; i < ARRAY_SIZE(block_argless); ++i) {
+ 		ioctl(-1, (unsigned long) block_argless[i].val, lmagic);
++		pidns_print_leader();
+ 		printf("ioctl(-1, %s) = -1 EBADF (%m)\n", block_argless[i].str);
+ 	}
+ 
+ 	ioctl(-1, _IOC(_IOC_READ, 0x12, 0xfe, 0xff), lmagic);
++	pidns_print_leader();
+ 	printf("ioctl(-1, %s, %#lx) = -1 EBADF (%m)\n",
+ 	       "_IOC(_IOC_READ, 0x12, 0xfe, 0xff)", lmagic);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-mx32/ioprio--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/ioprio--pidns-translation.c	2020-09-09 19:52:38.908673637 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "ioprio.c"
+Index: strace-5.7/tests-mx32/ioprio.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/ioprio.c	2020-09-09 19:52:30.627668701 +0200
++++ strace-5.7/tests-mx32/ioprio.c	2020-09-09 19:52:38.909673638 +0200
+@@ -9,8 +9,8 @@
+  */
+ 
+ #include "tests.h"
+-
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #if defined(__NR_ioprio_get) && defined(__NR_ioprio_set)
+ 
+@@ -30,12 +30,18 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	static const kernel_ulong_t bogus_which =
+ 		(kernel_ulong_t) 0xdeadfacefa57beefULL;
+ 	static const kernel_ulong_t bogus_who =
+ 		(kernel_ulong_t) 0xbadc0dedda7a1057ULL;
+ 	static const kernel_ulong_t bogus_ioprio =
+ 		(kernel_ulong_t) 0xdec0ded1facefeedULL;
++
++	const int pid = getpid();
++	const int pgid = getpgid(0);
++
+ # if !XLAT_RAW
+ 	static const char * const bogus_ioprio_str =
+ 		"IOPRIO_PRIO_VALUE(0x7d677 /* IOPRIO_CLASS_??? */, 7917)";
+@@ -46,6 +52,7 @@
+ 
+ 	rc = syscall(__NR_ioprio_get, bogus_which, bogus_who);
+ 	errstr = sprintrc(rc);
++	pidns_print_leader();
+ # if XLAT_RAW
+ 	printf("ioprio_get(%#x, %d) = %s\n",
+ 	       (int) bogus_which, (int) bogus_who, errstr);
+@@ -54,42 +61,52 @@
+ 	       (int) bogus_which, (int) bogus_who, errstr);
+ # endif
+ 
+-	rc = syscall(__NR_ioprio_get, 1, 0);
++	rc = syscall(__NR_ioprio_get, 1, pid);
+ 	errstr = sprintrc(rc);
++	pidns_print_leader();
++	printf("ioprio_get(");
+ # if XLAT_RAW
+-	printf("ioprio_get(0x1, 0) = %s\n", errstr);
++	printf("0x1, ");
++# elif XLAT_VERBOSE
++	printf("0x1 /* IOPRIO_WHO_PROCESS */, ");
+ # else /* XLAT_ABBREV */
+-#  if XLAT_VERBOSE
+-	printf("ioprio_get(0x1 /* IOPRIO_WHO_PROCESS */, 0) = %s", errstr);
+-#  else
+-	printf("ioprio_get(IOPRIO_WHO_PROCESS, 0) = %s", errstr);
+-#  endif
++	printf("IOPRIO_WHO_PROCESS, ");
++# endif
++	printf("%d%s) = %s", pid, pidns_pid2str(PT_TGID), errstr);
++# if !XLAT_RAW
+ 	if (rc >= 0) {
+ 		printf(" (IOPRIO_PRIO_VALUE(");
+ 		printxval(ioprio_class, (unsigned int) rc >> 13,
+ 			  "IOPRIO_CLASS_???");
+ 		printf(", %u))", (unsigned int) rc & 0x1fff);
+ 	}
+-	puts("");
+ # endif
++	puts("");
+ 
+-	rc = syscall(__NR_ioprio_set, 2, 0, 8191);
++	rc = syscall(__NR_ioprio_set, 2, pgid, 8191);
+ 	errstr = sprintrc(rc);
++	pidns_print_leader();
++	printf("ioprio_set(");
+ # if XLAT_RAW
+-	printf("ioprio_set(%#x, 0, 8191) = %s\n", 2, errstr);
++	printf("%#x", 2);
+ # elif XLAT_VERBOSE
+-	printf("ioprio_set(%#x /* IOPRIO_WHO_PGRP */, 0, 8191"
+-	       " /* IOPRIO_PRIO_VALUE(0 /* IOPRIO_CLASS_NONE */, 8191) */)"
+-	       " = %s\n",
+-	       2, errstr);
++	printf("%#x /* IOPRIO_WHO_PGRP */", 2);
+ # else /* XLAT_ABBREV */
+-	printf("ioprio_set(IOPRIO_WHO_PGRP, 0"
+-	       ", IOPRIO_PRIO_VALUE(IOPRIO_CLASS_NONE, 8191)) = %s\n",
+-	       errstr);
++	printf("IOPRIO_WHO_PGRP");
++# endif
++	printf(", %d%s", pgid, pidns_pid2str(PT_PGID));
++# if XLAT_RAW
++	printf(", 8191)");
++# elif XLAT_VERBOSE
++	printf(", 8191 /* IOPRIO_PRIO_VALUE(0 /* IOPRIO_CLASS_NONE */, 8191) */)");
++# else /* XLAT_ABBREV */
++	printf(", IOPRIO_PRIO_VALUE(IOPRIO_CLASS_NONE, 8191))");
+ # endif
++	printf(" = %s\n", errstr);
+ 
+ 	rc = syscall(__NR_ioprio_set, bogus_which, bogus_who, bogus_ioprio);
+ 	errstr = sprintrc(rc);
++	pidns_print_leader();
+ # if XLAT_RAW
+ 	printf("ioprio_set(%#x, %d, %d) = %s\n",
+ 	       (int) bogus_which, (int) bogus_who, (int) bogus_ioprio,
+@@ -104,6 +121,7 @@
+ 	       errstr);
+ # endif
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 
+ 	return 0;
+Index: strace-5.7/tests-mx32/kcmp-y--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/kcmp-y--pidns-translation.c	2020-09-09 19:52:38.909673638 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "kcmp-y.c"
+Index: strace-5.7/tests-mx32/kcmp.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/kcmp.c	2020-09-09 19:52:30.627668701 +0200
++++ strace-5.7/tests-mx32/kcmp.c	2020-09-09 19:52:38.909673638 +0200
+@@ -9,8 +9,8 @@
+  */
+ 
+ #include "tests.h"
+-
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #ifdef __NR_kcmp
+ 
+@@ -101,7 +101,11 @@
+ 	rc = syscall(__NR_kcmp, pid1, pid2, type, idx1, idx2);
+ 	errstr = sprintrc(rc);
+ 
+-	printf("kcmp(%d, %d, ", (int) pid1, (int) pid2);
++	const char *pid_str = pidns_pid2str(PT_TGID);
++	pidns_print_leader();
++	printf("kcmp(%d%s, %d%s, ",
++		(int) pid1, (int) pid1 == getpid() ? pid_str : "",
++		(int) pid2, (int) pid2 == getpid() ? pid_str : "");
+ 
+ 	if (type_str)
+ 		printf("%s", type_str);
+@@ -146,6 +150,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	static const kernel_ulong_t bogus_pid1 =
+ 		(kernel_ulong_t) 0xdeadca75face1057ULL;
+ 	static const kernel_ulong_t bogus_pid2 =
+@@ -221,6 +227,7 @@
+ 			(uintptr_t) slot, 1);
+ 	}
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 
+ 	return 0;
+Index: strace-5.7/tests-mx32/kill--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/kill--pidns-translation.c	2020-09-09 19:52:38.909673638 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "kill.c"
+Index: strace-5.7/tests-mx32/kill.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/kill.c	2020-09-09 19:52:30.628668702 +0200
++++ strace-5.7/tests-mx32/kill.c	2020-09-09 19:52:38.909673638 +0200
+@@ -11,6 +11,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #ifdef __NR_kill
+ 
+@@ -26,6 +27,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	const struct sigaction act = { .sa_handler = handler };
+ 	if (sigaction(SIGALRM, &act, NULL))
+ 		perror_msg_and_fail("sigaction");
+@@ -37,18 +40,23 @@
+ 		perror_msg_and_fail("sigprocmask");
+ 
+ 	const int pid = getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
+ 	long rc = syscall(__NR_kill, pid, (long) 0xdefaced00000000ULL | SIGALRM);
+-	printf("kill(%d, SIGALRM) = %ld\n", pid, rc);
++	pidns_print_leader();
++	printf("kill(%d%s, SIGALRM) = %ld\n", pid, pid_str, rc);
+ 
+ 	const long big_pid = (long) 0xfacefeedbadc0dedULL;
+ 	const long big_sig = (long) 0xdeadbeefcafef00dULL;
+ 	rc = syscall(__NR_kill, big_pid, big_sig);
++	pidns_print_leader();
+ 	printf("kill(%d, %d) = %ld %s (%m)\n",
+ 	       (int) big_pid, (int) big_sig, rc, errno2name());
+ 
+ 	rc = syscall(__NR_kill, (long) 0xdefaced00000000ULL | pid, 0);
+-	printf("kill(%d, 0) = %ld\n", pid, rc);
++	pidns_print_leader();
++	printf("kill(%d%s, 0) = %ld\n", pid, pid_str, rc);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-mx32/migrate_pages--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/migrate_pages--pidns-translation.c	2020-09-09 19:52:38.909673638 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "migrate_pages.c"
+Index: strace-5.7/tests-mx32/migrate_pages.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/migrate_pages.c	2020-09-09 19:52:30.628668702 +0200
++++ strace-5.7/tests-mx32/migrate_pages.c	2020-09-09 19:52:38.909673638 +0200
+@@ -10,6 +10,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #ifdef __NR_migrate_pages
+ 
+@@ -19,11 +20,21 @@
+ int
+ main(void)
+ {
+-	const long pid = (long) 0xfacefeedffffffffULL;
++	PIDNS_TEST_INIT;
++
++	const long pid = (long) 0xfacefeed00000000ULL | getpid();
+ 	long rc = syscall(__NR_migrate_pages, pid, 0, 0, 0);
+-	printf("migrate_pages(%d, 0, NULL, NULL) = %ld %s (%m)\n",
+-	       (int) pid, rc, errno2name());
+ 
++	pidns_print_leader();
++	printf("migrate_pages(%d%s, 0, NULL, NULL) = %ld",
++		(int) pid, pidns_pid2str(PT_TGID), rc);
++
++	if (rc < 0)
++		printf(" %s (%m)\n", errno2name());
++	else
++		printf("\n");
++
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-mx32/move_pages--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/move_pages--pidns-translation.c	2020-09-09 19:52:38.910673638 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "move_pages.c"
+Index: strace-5.7/tests-mx32/move_pages.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/move_pages.c	2020-09-09 19:52:30.629668703 +0200
++++ strace-5.7/tests-mx32/move_pages.c	2020-09-09 19:52:38.910673638 +0200
+@@ -10,6 +10,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #ifdef __NR_move_pages
+ 
+@@ -122,15 +123,20 @@
+ }
+ 
+ static void
+-print_stat_pages(const unsigned long pid, const unsigned long count,
+-		 const void **const pages, int *const status)
++print_stat_pages(const unsigned long pid,
++		 const char *pid_str,
++		 const unsigned long count,
++		 const void **const pages,
++		 int *const status)
+ {
+ 	const unsigned long flags = (unsigned long) 0xfacefeed00000002ULL;
+ 
+ 	long rc = syscall(__NR_move_pages,
+ 			  pid, count, pages, NULL, status, flags);
+ 	const char *errstr = sprintrc(rc);
+-	printf("move_pages(%d, %lu, ", (int) pid, count);
++	pidns_print_leader();
++	printf("move_pages(%d%s, %lu, ", (int) pid, pid_str,
++		count);
+ 	print_page_array(pages, count, 0);
+ 	printf(", NULL, ");
+ 	if (rc) {
+@@ -152,6 +158,7 @@
+ 
+ static void
+ print_move_pages(const unsigned long pid,
++		 const char *pid_str,
+ 		 unsigned long count,
+ 		 const unsigned int offset,
+ 		 const void **const pages,
+@@ -164,7 +171,9 @@
+ 	long rc = syscall(__NR_move_pages,
+ 			  pid, count, pages, nodes, status, flags);
+ 	const char *errstr = sprintrc(rc);
+-	printf("move_pages(%d, %lu, ", (int) pid, count);
++	pidns_print_leader();
++	printf("move_pages(%d%s, %lu, ", (int) pid, pid_str,
++		count);
+ 	print_page_array(pages, count, offset);
+ 	printf(", ");
+ 	print_node_array(nodes, count, offset);
+@@ -185,8 +194,11 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	const unsigned long pid =
+ 		(unsigned long) 0xfacefeed00000000ULL | getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
+ 	unsigned long count = 1;
+ 	const unsigned page_size = get_page_size();
+ 	const void *const page = tail_alloc(page_size);
+@@ -195,40 +207,41 @@
+ 	TAIL_ALLOC_OBJECT_VAR_PTR(int, nodes);
+ 	TAIL_ALLOC_OBJECT_VAR_PTR(int, status);
+ 
+-	print_stat_pages(pid, 0, pages, status);
+-	print_move_pages(pid, 0, 0, pages, nodes, status);
+-	print_move_pages(pid, 0, 1, pages + 1, nodes + 1, status + 1);
++	print_stat_pages(pid, pid_str, 0, pages, status);
++	print_move_pages(pid, pid_str, 0, 0, pages, nodes, status);
++	print_move_pages(pid, pid_str, 0, 1, pages + 1, nodes + 1, status + 1);
+ 
+ 	*pages = page;
+-	print_stat_pages(pid, count, pages, status);
++	print_stat_pages(pid, pid_str, count, pages, status);
+ 	*nodes = 0xdeadbee1;
+-	print_move_pages(pid, count, 0, pages, nodes, status);
+-	print_move_pages(pid, count, 1, pages, nodes, status);
++	print_move_pages(pid, pid_str, count, 0, pages, nodes, status);
++	print_move_pages(pid, pid_str, count, 1, pages, nodes, status);
+ 
+ 	++count;
+ 	--status;
+ 	*(--pages) = efault;
+-	print_stat_pages(pid, count, pages, status);
++	print_stat_pages(pid, pid_str, count, pages, status);
+ 	*(--nodes) = 0xdeadbee2;
+-	print_move_pages(pid, count, 0, pages, nodes, status);
+-	print_move_pages(pid, count, 1, pages, nodes, status);
++	print_move_pages(pid, pid_str, count, 0, pages, nodes, status);
++	print_move_pages(pid, pid_str, count, 1, pages, nodes, status);
+ 
+ 	++count;
+ 	--status;
+ 	*(--pages) = nodes;
+-	print_stat_pages(pid, count, pages, status);
++	print_stat_pages(pid, pid_str, count, pages, status);
+ 	*(--nodes) = 0xdeadbee3;
+-	print_move_pages(pid, count, 0, pages, nodes, status);
+-	print_move_pages(pid, count, 1, pages, nodes, status);
++	print_move_pages(pid, pid_str, count, 0, pages, nodes, status);
++	print_move_pages(pid, pid_str, count, 1, pages, nodes, status);
+ 
+ 	++count;
+ 	--status;
+ 	*(--pages) = status;
+-	print_stat_pages(pid, count, pages, status);
++	print_stat_pages(pid, pid_str, count, pages, status);
+ 	*(--nodes) = 0xdeadbee4;
+-	print_move_pages(pid, count, 0, pages, nodes, status);
+-	print_move_pages(pid, count, 1, pages, nodes, status);
++	print_move_pages(pid, pid_str, count, 0, pages, nodes, status);
++	print_move_pages(pid, pid_str, count, 1, pages, nodes, status);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-mx32/net-sockaddr--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/net-sockaddr--pidns-translation.c	2020-09-09 19:52:38.910673638 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "net-sockaddr.c"
+Index: strace-5.7/tests-mx32/net-sockaddr.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/net-sockaddr.c	2020-09-09 19:52:30.630668703 +0200
++++ strace-5.7/tests-mx32/net-sockaddr.c	2020-09-09 19:52:38.910673638 +0200
+@@ -9,6 +9,7 @@
+  */
+ 
+ #include "tests.h"
++#include "pidns.h"
+ #include <stddef.h>
+ #include <stdio.h>
+ #include <string.h>
+@@ -40,18 +41,21 @@
+ 	memset(un->sun_path, '0', sizeof(un->sun_path));
+ 	unsigned int len = sizeof(*un);
+ 	int ret = connect(-1, (void *) un, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_UNIX, sun_path=\"%.*u\"}"
+ 	       ", %u) = %d EBADF (%m)\n",
+ 	       (int) sizeof(un->sun_path), 0, len, ret);
+ 
+ 	un->sun_path[1] = 0;
+ 	ret = connect(-1, (void *) un, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_UNIX, sun_path=\"%u\"}, %u)"
+ 	       " = %d EBADF (%m)\n", 0, len, ret);
+ 
+ 	un->sun_path[0] = 0;
+ 	un->sun_path[2] = 1;
+ 	ret = connect(-1, (void *) un, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_UNIX, sun_path=@\"\\0\\001%.*u\"}"
+ 	       ", %u) = %d EBADF (%m)\n",
+ 	       (int) sizeof(un->sun_path) - 3, 0, len, ret);
+@@ -61,12 +65,14 @@
+ 	memset(un->sun_path, '0', sizeof(un->sun_path));
+ 	len = sizeof(*un) + 2;
+ 	ret = connect(-1, (void *) un, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_UNIX, sun_path=\"%.*u\"}"
+ 	       ", %u) = %d EBADF (%m)\n",
+ 	       (int) sizeof(un->sun_path), 0, len, ret);
+ 
+ 	un->sun_path[0] = 0;
+ 	ret = connect(-1, (void *) un, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_UNIX, sun_path=@\"%.*u\"}"
+ 	       ", %u) = %d EBADF (%m)\n",
+ 	       (int) sizeof(un->sun_path) - 1, 0, len, ret);
+@@ -75,18 +81,21 @@
+ 	un->sun_family = AF_UNIX;
+ 	len = sizeof(*un) - 2;
+ 	ret = connect(-1, (void *) un, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_UNIX, sun_path=\"%.*u\"}"
+ 	       ", %u) = %d EBADF (%m)\n",
+ 	       (int) sizeof(un->sun_path) - 2, 0, len, ret);
+ 
+ 	un->sun_path[0] = 0;
+ 	ret = connect(-1, (void *) un, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_UNIX, sun_path=@\"%.*u\"}"
+ 	       ", %u) = %d EBADF (%m)\n",
+ 	       (int) sizeof(un->sun_path) - 3, 0, len, ret);
+ 
+ 	len = sizeof(*un);
+ 	ret = connect(-1, (void *) un, len);
++	pidns_print_leader();
+ 	printf("connect(-1, %p, %u) = %d EBADF (%m)\n", un, len, ret);
+ 
+ 	un = tail_alloc(sizeof(struct sockaddr_storage));
+@@ -94,12 +103,14 @@
+ 	memset(un->sun_path, '0', sizeof(un->sun_path));
+ 	len = sizeof(struct sockaddr_storage) + 1;
+ 	ret = connect(-1, (void *) un, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_UNIX, sun_path=\"%.*u\"}"
+ 	       ", %u) = %d EBADF (%m)\n",
+ 	       (int) sizeof(un->sun_path), 0, len, ret);
+ 
+ 	un->sun_path[0] = 0;
+ 	ret = connect(-1, (void *) un, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_UNIX, sun_path=@\"%.*u\"}"
+ 	       ", %u) = %d EBADF (%m)\n",
+ 	       (int) sizeof(un->sun_path) - 1, 0, len, ret);
+@@ -117,6 +128,7 @@
+ 	in->sin_addr.s_addr = inet_addr(h_addr);
+ 	unsigned int len = sizeof(*in);
+ 	int ret = connect(-1, (void *) in, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_INET, sin_port=htons(%hu)"
+ 	       ", sin_addr=inet_addr(\"%s\")}, %u) = %d EBADF (%m)\n",
+ 	       h_port, h_addr, len, ret);
+@@ -127,6 +139,7 @@
+ 	in->sin_addr.s_addr = inet_addr(h_addr);
+ 	len = sizeof(*in) + 4;
+ 	ret = connect(-1, (void *) in, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_INET, sin_port=htons(%hu)"
+ 	       ", sin_addr=inet_addr(\"%s\")}, %u) = %d EBADF (%m)\n",
+ 	       h_port, h_addr, len, ret);
+@@ -137,6 +150,7 @@
+ 	in->sin_addr.s_addr = 0;
+ 	len = sizeof(*in) - 4;
+ 	ret = connect(-1, (void *) in, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_INET, sa_data=\"%s\"}, %u)"
+ 	       " = %d EBADF (%m)\n",
+ 	       "\\0\\0\\0\\0\\0\\0\\377\\377\\377\\377",
+@@ -144,6 +158,7 @@
+ 
+ 	len = sizeof(*in);
+ 	ret = connect(-1, (void *) in, len);
++	pidns_print_leader();
+ 	printf("connect(-1, %p, %u) = %d EBADF (%m)\n", in, len, ret);
+ }
+ 
+@@ -155,6 +170,7 @@
+ 	in6->sin6_scope_id = 0xfacefeed;
+ 	unsigned int len = sizeof(*in6);
+ 	int ret = connect(-1, (void *) in6, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)"
+ 	       ", sin6_flowinfo=htonl(%u)"
+ 	       ", inet_pton(AF_INET6, \"%s\", &sin6_addr)"
+@@ -166,7 +182,8 @@
+ 	in6->sin6_scope_id = ifindex_lo();
+ 	if (in6->sin6_scope_id) {
+ 		ret = connect(-1, (void *) in6, len);
+-		printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)"
++		pidns_print_leader();
++	printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)"
+ 		       ", sin6_flowinfo=htonl(%u)"
+ 		       ", inet_pton(AF_INET6, \"%s\", &sin6_addr)"
+ 		       ", sin6_scope_id=%s}, %u)"
+@@ -191,6 +208,7 @@
+ 	in6->sin6_scope_id = 0xfacefeed;
+ 	unsigned int len = sizeof(*in6);
+ 	int ret = connect(-1, (void *) in6, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)"
+ 	       ", sin6_flowinfo=htonl(%u)"
+ 	       ", inet_pton(AF_INET6, \"%s\", &sin6_addr)"
+@@ -209,6 +227,7 @@
+ 	in6->sin6_scope_id = 0xfacefeed;
+ 	len = sizeof(*in6) + 4;
+ 	ret = connect(-1, (void *) in6, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)"
+ 	       ", sin6_flowinfo=htonl(%u)"
+ 	       ", inet_pton(AF_INET6, \"%s\", &sin6_addr)"
+@@ -223,6 +242,7 @@
+ 	inet_pton(AF_INET6, h_addr, &in6->sin6_addr);
+ 	len = sizeof(*in6) - sizeof(in6->sin6_scope_id);
+ 	ret = connect(-1, (void *) in6, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_INET6, sin6_port=htons(%hu)"
+ 	       ", sin6_flowinfo=htonl(%u)"
+ 	       ", inet_pton(AF_INET6, \"%s\", &sin6_addr)}, %u)"
+@@ -236,6 +256,7 @@
+ 	memset(&in6->sin6_addr, '0', sizeof(in6->sin6_addr) - 4);
+ 	len = sizeof(*in6) - sizeof(in6->sin6_scope_id) - 4;
+ 	ret = connect(-1, (void *) in6, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_INET6"
+ 	       ", sa_data=\"\\0\\0\\0\\0\\0\\000%.*u\"}, %u)"
+ 	       " = %d EBADF (%m)\n",
+@@ -244,6 +265,7 @@
+ 
+ 	len = sizeof(*in6) - sizeof(in6->sin6_scope_id);
+ 	ret = connect(-1, (void *) in6, len);
++	pidns_print_leader();
+ 	printf("connect(-1, %p, %u) = %d EBADF (%m)\n", in6, len, ret);
+ }
+ 
+@@ -262,6 +284,7 @@
+ 	void *ipx = tail_memdup(&c_ipx, sizeof(c_ipx));
+ 	unsigned int len = sizeof(c_ipx);
+ 	int ret = connect(-1, ipx, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_IPX, sipx_port=htons(%u)"
+ 	       ", sipx_network=htonl(%#x)"
+ 	       ", sipx_node=[%#02x, %#02x, %#02x, %#02x, %#02x, %#02x]"
+@@ -316,18 +339,21 @@
+ 	fill_memory(sax, size);
+ 	sax->fsa_ax25.sax25_family = AF_AX25;
+ 	rc = connect(-1, sax_void, sizeof(struct sockaddr_ax25) - 1);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_AX25, sa_data=\"\\202\\203\\204\\205"
+ 	       "\\206\\207\\210\\211\\212\\213\\214\\215\\216\"}, %zu) = %s\n",
+ 	       sizeof(struct sockaddr_ax25) - 1, sprintrc(rc));
+ 
+ 	memcpy(sax, &ax25, sizeof(ax25));
+ 	rc = connect(-1, sax_void, sizeof(struct sockaddr_ax25));
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_AX25, fsa_ax25={sax25_call=VALID-13"
+ 	       ", sax25_ndigis=8}, fsa_digipeater=[/* ??? */]}, %zu) = %s\n",
+ 	       sizeof(struct sockaddr_ax25), sprintrc(rc));
+ 
+ 	sax->fsa_ax25.sax25_ndigis = 0;
+ 	rc = connect(-1, sax_void, sizeof(struct sockaddr_ax25));
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_AX25, sax25_call=VALID-13"
+ 	       ", sax25_ndigis=0}, %zu) = %s\n",
+ 	       sizeof(struct sockaddr_ax25), sprintrc(rc));
+@@ -335,6 +361,7 @@
+ 	sax->fsa_ax25.sax25_ndigis = 8;
+ 	size = sizeof(struct sockaddr_ax25) + sizeof(ax25_address) * 3 + 1;
+ 	rc = connect(-1, sax_void, size);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_AX25, fsa_ax25={sax25_call=VALID-13"
+ 	       ", sax25_ndigis=8}, fsa_digipeater"
+ 	       "=[{ax25_call=\"\\xa6\\xa0\\x82\\x40\\x86\\x8a\\x00\""
+@@ -348,6 +375,7 @@
+ 	sax->fsa_digipeater[2].ax25_call[6] = 0x4;
+ 	size = sizeof(struct sockaddr_ax25) + sizeof(ax25_address) * 4;
+ 	rc = connect(-1, sax_void, size);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_AX25, fsa_ax25={sax25_call=VALID-13"
+ 	       ", sax25_ndigis=8}, fsa_digipeater"
+ 	       "=[{ax25_call=\"\\xa6\\xa0\\x82\\x40\\x86\\x8a\\x00\""
+@@ -365,6 +393,7 @@
+ 	for (size_t i = 0; i < 3; i++) {
+ 		size = sizeof(ax25) + sizeof(ax25_address) * (i / 2);
+ 		rc = connect(-1, sax_void, size);
++		pidns_print_leader();
+ 		printf("connect(-1, {sa_family=AF_AX25"
+ 		       ", fsa_ax25={sax25_call=VALID-13, sax25_ndigis=%d}"
+ 		       ", fsa_digipeater=[VALID2-7, OK-15, %s /* FINE-2 */"
+@@ -427,12 +456,14 @@
+ 	long rc;
+ 
+ 	rc = connect(-1, x25_void, sizeof(c_x25) - 1);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_X25"
+ 	       ", sa_data=\"0123456789abcde\"}, %zu) = %s\n",
+ 	       sizeof(c_x25) - 1, sprintrc(rc));
+ 
+ 	for (size_t i = 0; i < 2; i++) {
+ 		rc = connect(-1, x25_void, sizeof(c_x25) + i);
++		pidns_print_leader();
+ 		printf("connect(-1, {sa_family=AF_X25"
+ 		       ", sx25_addr={x25_addr=\"0123456789abcde\"...}"
+ 		       "}, %zu) = %s\n",
+@@ -442,6 +473,7 @@
+ 	struct sockaddr_x25 *const x25 = x25_void;
+ 	x25->sx25_addr.x25_addr[10] = '\0';
+ 	rc = connect(-1, x25_void, sizeof(c_x25));
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_X25"
+ 	       ", sx25_addr={x25_addr=\"0123456789\"}"
+ 	       "}, %zu) = %s\n",
+@@ -457,19 +489,21 @@
+ 	nl->nl_groups = 0xfacefeed;
+ 	unsigned int len = sizeof(*nl);
+ 	int ret = connect(-1, (void *) nl, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_NETLINK, nl_pid=%d"
+ 	       ", nl_groups=%#08x}, %u) = %d EBADF (%m)\n",
+ 	       nl->nl_pid, nl->nl_groups, len, ret);
+ 
+ 	nl = ((void *) nl) - 4;
+ 	nl->nl_family = AF_NETLINK;
+-	nl->nl_pid = 1234567890;
++	nl->nl_pid = getpid();
+ 	nl->nl_groups = 0xfacefeed;
+ 	len = sizeof(*nl) + 4;
+ 	ret = connect(-1, (void *) nl, len);
+-	printf("connect(-1, {sa_family=AF_NETLINK, nl_pid=%d"
++	pidns_print_leader();
++	printf("connect(-1, {sa_family=AF_NETLINK, nl_pid=%d%s"
+ 	       ", nl_groups=%#08x}, %u) = %d EBADF (%m)\n",
+-	       nl->nl_pid, nl->nl_groups, len, ret);
++	       nl->nl_pid, pidns_pid2str(PT_TGID), nl->nl_groups, len, ret);
+ }
+ 
+ static void
+@@ -487,6 +521,7 @@
+ 	void *ll = tail_memdup(&c_ll, sizeof(c_ll));
+ 	unsigned int len = sizeof(c_ll);
+ 	int ret = connect(-1, ll, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_PACKET"
+ 	       ", sll_protocol=htons(ETH_P_ALL)"
+ 	       ", sll_ifindex=%u, sll_hatype=ARPHRD_ETHER"
+@@ -502,6 +537,7 @@
+ 
+ 	((struct sockaddr_ll *) ll)->sll_halen++;
+ 	ret = connect(-1, ll, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_PACKET"
+ 	       ", sll_protocol=htons(ETH_P_ALL)"
+ 	       ", sll_ifindex=%u, sll_hatype=ARPHRD_ETHER"
+@@ -517,6 +553,7 @@
+ 
+ 	((struct sockaddr_ll *) ll)->sll_halen = 0;
+ 	ret = connect(-1, ll, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_PACKET"
+ 	       ", sll_protocol=htons(ETH_P_ALL)"
+ 	       ", sll_ifindex=%u, sll_hatype=ARPHRD_ETHER"
+@@ -526,6 +563,7 @@
+ 	((struct sockaddr_ll *) ll)->sll_ifindex = ifindex_lo();
+ 	if (((struct sockaddr_ll *) ll)->sll_ifindex) {
+ 		ret = connect(-1, ll, len);
++	pidns_print_leader();
+ 		printf("connect(-1, {sa_family=AF_PACKET"
+ 		       ", sll_protocol=htons(ETH_P_ALL)"
+ 		       ", sll_ifindex=%s"
+@@ -549,11 +587,13 @@
+ 	unsigned int len = sizeof(*hci);
+ 
+ 	int ret = connect(-1, (void *) hci, 4);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_BLUETOOTH, hci_dev=htobs(%hu)"
+ 	       "}, 4) = %d EBADF (%m)\n",
+ 	       h_port, ret);
+ 
+ 	ret = connect(-1, (void *) hci, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_BLUETOOTH, hci_dev=htobs(%hu)"
+ # ifdef HAVE_STRUCT_SOCKADDR_HCI_HCI_CHANNEL
+ 	       ", hci_channel=HCI_CHANNEL_RAW"
+@@ -572,6 +612,7 @@
+ 	void *sco = tail_memdup(&c_sco, sizeof(c_sco));
+ 	unsigned int len = sizeof(c_sco);
+ 	int ret = connect(-1, sco, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_BLUETOOTH"
+ 	       ", sco_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
+ 	       "}, %u) = %d EBADF (%m)\n",
+@@ -592,6 +633,7 @@
+ 	void *rc = tail_memdup(&c_rc, sizeof(c_rc));
+ 	unsigned int len = sizeof(c_rc);
+ 	int ret = connect(-1, rc, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_BLUETOOTH"
+ 	       ", rc_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
+ 	       ", rc_channel=%u}, %u) = %d EBADF (%m)\n",
+@@ -619,6 +661,7 @@
+ 	unsigned int len = sizeof(c_l2);
+ 
+ 	int ret = connect(-1, l2, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_BLUETOOTH"
+ 	       ", l2_psm=htobs(L2CAP_PSM_DYN_START + %hu)"
+ 	       ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
+@@ -640,6 +683,7 @@
+ # endif
+ 	memcpy(l2, &c_l2, sizeof(c_l2));
+ 	ret = connect(-1, l2, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_BLUETOOTH"
+ 	       ", l2_psm=htobs(L2CAP_PSM_SDP)"
+ 	       ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
+@@ -660,6 +704,7 @@
+ # endif
+ 	memcpy(l2, &c_l2, sizeof(c_l2));
+ 	ret = connect(-1, l2, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_BLUETOOTH"
+ 	       ", l2_psm=htobs(0xbad /* L2CAP_PSM_??? */)"
+ 	       ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
+@@ -677,6 +722,7 @@
+ 	c_l2.l2_cid = htobs(0xffff);
+ 	memcpy(l2, &c_l2, 12);
+ 	ret = connect(-1, l2, 12);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_BLUETOOTH"
+ 	       ", l2_psm=htobs(L2CAP_PSM_AUTO_END)"
+ 	       ", l2_bdaddr=%02x:%02x:%02x:%02x:%02x:%02x"
+@@ -700,6 +746,7 @@
+ 	u.sa->sa_family = 0xff;
+ 	unsigned int len = sizeof(*u.st) + 8;
+ 	int ret = connect(-1, (void *) u.st, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=%#x /* AF_??? */, sa_data=\"%.*u\"}"
+ 	       ", %u) = %d EBADF (%m)\n", u.sa->sa_family,
+ 	       (int) (sizeof(*u.st) - sizeof(u.sa->sa_family)), 0, len, ret);
+@@ -707,11 +754,13 @@
+ 	u.sa->sa_family = 0;
+ 	len = sizeof(u.sa->sa_family) + 1;
+ 	ret = connect(-1, (void *) u.st, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_UNSPEC, sa_data=\"0\"}, %u)"
+ 	       " = %d EBADF (%m)\n", len, ret);
+ 
+ 	u.sa->sa_family = AF_BLUETOOTH;
+ 	ret = connect(-1, (void *) u.st, len);
++	pidns_print_leader();
+ 	printf("connect(-1, {sa_family=AF_BLUETOOTH, sa_data=\"0\"}, %u)"
+ 	       " = %d EBADF (%m)\n", len, ret);
+ }
+@@ -719,6 +768,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	check_un();
+ 	check_in();
+ 	check_in6();
+@@ -735,6 +786,7 @@
+ #endif
+ 	check_raw();
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-mx32/netlink_audit--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/netlink_audit--pidns-translation.c	2020-09-09 19:52:38.910673638 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "netlink_audit.c"
+Index: strace-5.7/tests-mx32/netlink_audit--pidns-translation.test
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/netlink_audit--pidns-translation.test	2020-09-09 19:52:38.911673639 +0200
+@@ -0,0 +1,13 @@
++#!/bin/sh
++#
++# Check pidns translation of NETLINK_SOCK_DIAG protocol decoding
++#
++# Copyright (c) 2020 The strace developers.
++# All rights reserved.
++#
++# SPDX-License-Identifier: LGPL-2.1-or-later
++
++. "${srcdir=.}/init.sh"
++
++run_prog ../netlink_netlink_diag
++test_pidns -e trace=sendto "$@"
+Index: strace-5.7/tests-mx32/netlink_audit.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/netlink_audit.c	2020-09-09 19:52:30.630668703 +0200
++++ strace-5.7/tests-mx32/netlink_audit.c	2020-09-09 19:52:38.911673639 +0200
+@@ -7,6 +7,7 @@
+  */
+ 
+ #include "tests.h"
++#include "pidns.h"
+ #include <stdio.h>
+ #include <string.h>
+ #include <unistd.h>
+@@ -17,18 +18,23 @@
+ static void
+ test_nlmsg_type(const int fd)
+ {
++	PIDNS_TEST_INIT;
++
+ 	long rc;
+ 	struct nlmsghdr nlh = {
+ 		.nlmsg_len = sizeof(nlh),
+ 		.nlmsg_type = AUDIT_GET,
+ 		.nlmsg_flags = NLM_F_REQUEST,
++		.nlmsg_pid = getpid(),
+ 	};
+ 
+ 	rc = sendto(fd, &nlh, sizeof(nlh), MSG_DONTWAIT, NULL, 0);
++	pidns_print_leader();
+ 	printf("sendto(%d, {len=%u, type=AUDIT_GET"
+-	       ", flags=NLM_F_REQUEST, seq=0, pid=0}"
++	       ", flags=NLM_F_REQUEST, seq=0, pid=%d%s}"
+ 	       ", %u, MSG_DONTWAIT, NULL, 0) = %s\n",
+-	       fd, nlh.nlmsg_len, (unsigned) sizeof(nlh), sprintrc(rc));
++	       fd, nlh.nlmsg_len, nlh.nlmsg_pid, pidns_pid2str(PT_TGID),
++	       (unsigned) sizeof(nlh), sprintrc(rc));
+ }
+ 
+ int main(void)
+@@ -39,6 +45,7 @@
+ 
+ 	test_nlmsg_type(fd);
+ 
++	pidns_print_leader();
+ 	printf("+++ exited with 0 +++\n");
+ 
+ 	return 0;
+Index: strace-5.7/tests-mx32/pidfd_open--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/pidfd_open--pidns-translation.c	2020-09-09 19:52:38.911673639 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "pidfd_open.c"
+Index: strace-5.7/tests-mx32/pidfd_open.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/pidfd_open.c	2020-09-09 19:52:30.631668704 +0200
++++ strace-5.7/tests-mx32/pidfd_open.c	2020-09-09 19:52:38.911673639 +0200
+@@ -10,6 +10,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #ifdef __NR_pidfd_open
+ 
+@@ -37,6 +38,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ # if defined PATH_TRACING || defined PRINT_PATHS
+ 	skip_if_unavailable("/proc/self/fd/");
+ # endif
+@@ -50,16 +53,19 @@
+ 
+ 	k_pidfd_open(0, 0);
+ # ifndef PATH_TRACING
++	pidns_print_leader();
+ 	printf("pidfd_open(0, 0) = %s\n", errstr);
+ # endif
+ 
+ 	k_pidfd_open(-1U, 0);
+ # ifndef PATH_TRACING
++	pidns_print_leader();
+ 	printf("pidfd_open(-1, 0) = %s\n", errstr);
+ # endif
+ 
+ 	k_pidfd_open(0, -1U);
+ # ifndef PATH_TRACING
++	pidns_print_leader();
+ 	printf("pidfd_open(0, %#x) = %s\n", -1U, errstr);
+ # endif
+ 
+@@ -68,7 +74,10 @@
+ 
+ 	k_pidfd_open(pid, flags);
+ # ifndef PATH_TRACING
+-	printf("pidfd_open(%d, %#x) = %s\n", pid, flags, errstr);
++	const char *pid_str = pidns_pid2str(PT_TGID);
++	pidns_print_leader();
++	printf("pidfd_open(%d%s, %#x) = %s\n",
++		pid, pid_str, flags, errstr);
+ # endif
+ 
+ # ifdef PRINT_PATHS
+@@ -80,17 +89,19 @@
+ # endif
+ 
+ # ifndef PATH_TRACING
+-	printf("pidfd_open(%d, 0) = "
++	pidns_print_leader();
++	printf("pidfd_open(%d%s, 0) = "
+ #  if defined PRINT_PIDFD
+-	       "%ld<pid:%d>\n", pid, rc, pid
++	       "%ld<pid:%d>\n", pid, pid_str, rc, pid
+ #  elif defined PRINT_PATHS
+-	       "%ld<anon_inode:[pidfd]>\n", pid, rc
++	       "%ld<anon_inode:[pidfd]>\n", pid, pid_str, rc
+ #  else
+-	       "%s\n", pid, errstr
++	       "%s\n", pid, pid_str, errstr
+ #  endif
+ 	       );
+ # endif
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-mx32/pidfd_send_signal--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/pidfd_send_signal--pidns-translation.c	2020-09-09 19:52:38.911673639 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "pidfd_send_signal.c"
+Index: strace-5.7/tests-mx32/pidfd_send_signal.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/pidfd_send_signal.c	2020-09-09 19:52:30.631668704 +0200
++++ strace-5.7/tests-mx32/pidfd_send_signal.c	2020-09-09 19:52:38.911673639 +0200
+@@ -10,6 +10,7 @@
+ #include "tests.h"
+ #include <unistd.h>
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #ifdef __NR_pidfd_send_signal
+ 
+@@ -36,6 +37,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	static const char null_path[] = "/dev/null";
+ 
+ 	int fd = open(null_path, O_RDONLY);
+@@ -46,19 +49,23 @@
+ 	const void *esi = (const void *) si + 1;
+ 
+ 	sys_pidfd_send_signal(fd, SIGUSR1, esi, 0);
++	pidns_print_leader();
+ 	printf("pidfd_send_signal(%d, SIGUSR1, %p, 0) = %s\n",
+ 	       fd, esi, errstr);
+ 
+ 	si->si_signo = SIGUSR1;
+ 	si->si_code = SI_QUEUE;
++	si->si_pid = getpid();
+ 
+ 	sys_pidfd_send_signal(fd, SIGUSR2, si, -1);
++	pidns_print_leader();
+ 	printf("pidfd_send_signal(%d, SIGUSR2, {si_signo=SIGUSR1"
+-	       ", si_code=SI_QUEUE, si_errno=%u, si_pid=%d, si_uid=%d"
++	       ", si_code=SI_QUEUE, si_errno=%u, si_pid=%d%s, si_uid=%d"
+ 	       ", si_value={int=%d, ptr=%p}}, %#x) = %s\n",
+-	       fd, si->si_errno, si->si_pid, si->si_uid, si->si_int, si->si_ptr,
+-	       -1U, errstr);
++	       fd, si->si_errno, si->si_pid, pidns_pid2str(PT_TGID), si->si_uid,
++	       si->si_int, si->si_ptr, -1U, errstr);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-mx32/pidns-cache.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/pidns-cache.c	2020-09-09 19:52:38.912673640 +0200
+@@ -0,0 +1,62 @@
++/*
++ * Copyright (c) 2020 The strace developers.
++ * All rights reserved.
++ *
++ * SPDX-License-Identifier: GPL-2.0-or-later
++ */
++
++#include "tests.h"
++#include "scno.h"
++#include "pidns.h"
++
++#if defined __NR_getpid && (!defined __NR_getxpid || __NR_getxpid != __NR_getpid)
++
++# include <stdio.h>
++# include <unistd.h>
++# include <sys/time.h>
++
++# define SYSCALL_COUNT 1000
++
++/**
++ * Max ratio of the execution time with and without pidns translation.
++ */
++# define MAX_TIME_RATIO 20
++
++static long
++execute_syscalls(void)
++{
++	/* Load our PID in the cache */
++	syscall(__NR_getpid);
++
++	struct timeval stop, start;
++	gettimeofday(&start, NULL);
++
++	for (int i = 0; i < SYSCALL_COUNT; i++)
++	       syscall(__NR_getpid);
++
++	gettimeofday(&stop, NULL);
++
++	return (stop.tv_usec - start.tv_usec) +
++		(stop.tv_sec - start.tv_sec) * 1000000;
++}
++
++int
++main(void)
++{
++	long max_us = execute_syscalls() * MAX_TIME_RATIO;
++
++	pidns_test_init();
++
++	long us = execute_syscalls();
++	if (us > max_us)
++		error_msg_and_fail("pidns translation took too long: %ld us "
++		                   "(max: %ld us)", us, max_us);
++
++	return 0;
++}
++
++#else
++
++SKIP_MAIN_UNDEFINED("__NR_getpid")
++
++#endif
+Index: strace-5.7/tests-mx32/pidns-cache.test
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/pidns-cache.test	2020-09-09 19:52:38.912673640 +0200
+@@ -0,0 +1,15 @@
++#!/bin/sh
++#
++# Test pidns translation cache.
++#
++# Copyright (c) 2020 The strace developers.
++# All rights reserved.
++#
++# SPDX-License-Identifier: GPL-2.0-or-later
++
++. "${srcdir=.}/init.sh"
++
++check_prog timeout
++
++run_prog > /dev/null
++run_strace --pidns-translation -f -e trace=getpid $args
+Index: strace-5.7/tests-mx32/prlimit64--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/prlimit64--pidns-translation.c	2020-09-09 19:52:38.912673640 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "prlimit64.c"
+Index: strace-5.7/tests-mx32/prlimit64.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/prlimit64.c	2020-09-09 19:52:30.632668704 +0200
++++ strace-5.7/tests-mx32/prlimit64.c	2020-09-09 19:52:38.912673640 +0200
+@@ -19,6 +19,7 @@
+ # include <sys/resource.h>
+ # include <unistd.h>
+ 
++# include "pidns.h"
+ # include "xlat.h"
+ # include "xlat/resources.h"
+ 
+@@ -42,8 +43,11 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	unsigned long pid =
+ 		(unsigned long) 0xdefaced00000000ULL | (unsigned) getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
+ 	uint64_t *const rlimit = tail_alloc(sizeof(*rlimit) * 2);
+ 	const struct xlat_data *xlat;
+ 	size_t i = 0;
+@@ -54,18 +58,23 @@
+ 
+ 		unsigned long res = 0xfacefeed00000000ULL | xlat->val;
+ 		long rc = syscall(__NR_prlimit64, pid, res, 0, rlimit);
++		pidns_print_leader();
+ 		if (rc)
+-			printf("prlimit64(%d, %s, NULL, %p) = %ld %s (%m)\n",
+-			       (unsigned) pid, xlat->str, rlimit,
++			printf("prlimit64(%d%s, %s, NULL, %p) ="
++				     " %ld %s (%m)\n",
++			       (unsigned) pid, pid_str,
++			       xlat->str, rlimit,
+ 			       rc, errno2name());
+ 		else
+-			printf("prlimit64(%d, %s, NULL"
++			printf("prlimit64(%d%s, %s, NULL"
+ 			       ", {rlim_cur=%s, rlim_max=%s}) = 0\n",
+-			       (unsigned) pid, xlat->str,
++			       (unsigned) pid, pid_str,
++			       xlat->str,
+ 			       sprint_rlim(rlimit[0]),
+ 			       sprint_rlim(rlimit[1]));
+ 	}
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-mx32/process_vm_readv--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/process_vm_readv--pidns-translation.c	2020-09-09 19:52:38.912673640 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "process_vm_readv.c"
+Index: strace-5.7/tests-mx32/process_vm_readv_writev.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/process_vm_readv_writev.c	2020-09-09 19:52:30.632668704 +0200
++++ strace-5.7/tests-mx32/process_vm_readv_writev.c	2020-09-09 19:52:38.913673640 +0200
+@@ -12,6 +12,7 @@
+ #include <stdio.h>
+ #include <unistd.h>
+ #include <sys/uio.h>
++#include "pidns.h"
+ 
+ #if OP_WR
+ # define in_iovec  rmt_iovec
+@@ -121,7 +122,7 @@
+ }
+ 
+ static void
+-do_call(kernel_ulong_t pid,
++do_call(kernel_ulong_t pid, enum pid_type pid_type,
+ 	kernel_ulong_t local_iov, const char *local_arg,
+ 	kernel_ulong_t liovcnt,
+ 	kernel_ulong_t remote_iov, const char *remote_arg,
+@@ -135,7 +136,8 @@
+ 		flags);
+ 	errstr = sprintrc(rc);
+ 
+-	printf("%s(%d, ", OP_STR, (int) pid);
++	pidns_print_leader();
++	printf("%s(%d%s, ", OP_STR, (int) pid, pidns_pid2str(pid_type));
+ 
+ 	if (pr_iov)
+ 		pr_iov((const struct iovec *) (uintptr_t) local_iov, local_arg,
+@@ -164,6 +166,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	enum {
+ 		SIZE_11 = 2,
+ 		SIZE_12 = 3,
+@@ -243,18 +247,18 @@
+ 	fill_memory_ex(data2_out, SIZE_2, SEGM2_BASE, SIZE_2);
+ 
+ 
+-	do_call(bogus_pid, (kernel_ulong_t) (uintptr_t) ARG_STR(NULL),
++	do_call(bogus_pid, PT_NONE, (kernel_ulong_t) (uintptr_t) ARG_STR(NULL),
+ 		bogus_iovcnt1, (kernel_ulong_t) (uintptr_t) ARG_STR(NULL),
+ 		bogus_iovcnt2, bogus_flags, NULL);
+ 
+-	do_call(my_pid, ptr_cast(bogus_iov + ARRAY_SIZE(bogus_iovec)),
++	do_call(my_pid, PT_TGID, ptr_cast(bogus_iov + ARRAY_SIZE(bogus_iovec)),
+ 		"[]", 0, ptr_cast(in_iov + ARRAY_SIZE(in_iovec)), "[]",
+ 		0, 0, NULL);
+-	do_call(my_pid, ptr_cast(bogus_iov + ARRAY_SIZE(bogus_iovec)), NULL,
+-		bogus_iovcnt1, ptr_cast(in_iov + ARRAY_SIZE(in_iovec)), NULL,
+-		bogus_iovcnt2, 0, print_iov);
++	do_call(my_pid, PT_TGID, ptr_cast(bogus_iov + ARRAY_SIZE(bogus_iovec)),
++		NULL, bogus_iovcnt1, ptr_cast(in_iov + ARRAY_SIZE(in_iovec)),
++		NULL, bogus_iovcnt2, 0, print_iov);
+ 
+-	do_call(my_pid, ptr_cast(bogus_iov), (char *) &bogus_arg,
++	do_call(my_pid, PT_TGID, ptr_cast(bogus_iov), (char *) &bogus_arg,
+ 		ARRAY_SIZE(bogus_iovec), ptr_cast(rmt_iov + 2),
+ 		(char *) &rmt_arg_cut, ARRAY_SIZE(rmt_iovec) - 2, 0, print_iov);
+ 
+@@ -263,7 +267,7 @@
+ 	lcl_arg_cut.check_rc = 1;
+ #endif
+ 
+-	do_call(my_pid, ptr_cast(lcl_iov + 2), (char *) &lcl_arg_cut,
++	do_call(my_pid, PT_TGID, ptr_cast(lcl_iov + 2), (char *) &lcl_arg_cut,
+ 		ARRAY_SIZE(lcl_iovec) - 1, ptr_cast(bogus_iov + 2),
+ 		(char *) &bogus_arg_cut, ARRAY_SIZE(bogus_iovec) - 1, 0,
+ 		print_iov);
+@@ -273,15 +277,16 @@
+ 	rmt_arg_cut.addr_term = 1;
+ 	rmt_arg_cut.count = 5;
+ 
+-	do_call(my_pid, ptr_cast(lcl_iov + 2), (char *) &lcl_arg_cut,
++	do_call(my_pid, PT_TGID, ptr_cast(lcl_iov + 2), (char *) &lcl_arg_cut,
+ 		ARRAY_SIZE(lcl_iovec) - 2, ptr_cast(rmt_iov + 1),
+ 		(char *) &rmt_arg_cut, ARRAY_SIZE(rmt_iovec), 0, print_iov);
+ 
+ 	/* Correct call */
+-	do_call(my_pid, ptr_cast(lcl_iov), (char *) &lcl_arg,
++	do_call(my_pid, PT_TGID, ptr_cast(lcl_iov), (char *) &lcl_arg,
+ 		ARRAY_SIZE(lcl_iovec), ptr_cast(rmt_iov), (char *) &rmt_arg,
+ 		ARRAY_SIZE(rmt_iovec), 0, print_iov);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 
+ 	return 0;
+Index: strace-5.7/tests-mx32/process_vm_writev--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/process_vm_writev--pidns-translation.c	2020-09-09 19:52:38.913673640 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "process_vm_writev.c"
+Index: strace-5.7/tests-mx32/rt_sigqueueinfo--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/rt_sigqueueinfo--pidns-translation.c	2020-09-09 19:52:38.913673640 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "rt_sigqueueinfo.c"
+Index: strace-5.7/tests-mx32/rt_sigqueueinfo.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/rt_sigqueueinfo.c	2020-09-09 19:52:30.633668705 +0200
++++ strace-5.7/tests-mx32/rt_sigqueueinfo.c	2020-09-09 19:52:38.913673640 +0200
+@@ -7,6 +7,7 @@
+  */
+ 
+ #include "tests.h"
++#include "pidns.h"
+ #include <assert.h>
+ #include <stdio.h>
+ #include <signal.h>
+@@ -15,6 +16,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	struct sigaction sa = {
+ 		.sa_handler = SIG_IGN
+ 	};
+@@ -22,15 +25,19 @@
+ 		.sival_ptr = (void *) (unsigned long) 0xdeadbeefbadc0dedULL
+ 	};
+ 	pid_t pid = getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
+ 
+ 	assert(sigaction(SIGUSR1, &sa, NULL) == 0);
+ 	if (sigqueue(pid, SIGUSR1, value))
+ 		perror_msg_and_skip("sigqueue");
+-	printf("rt_sigqueueinfo(%u, SIGUSR1, {si_signo=SIGUSR1, "
+-		"si_code=SI_QUEUE, si_pid=%d, si_uid=%d, "
++	pidns_print_leader();
++	printf("rt_sigqueueinfo(%d%s, SIGUSR1, {si_signo=SIGUSR1, "
++		"si_code=SI_QUEUE, si_pid=%d%s, si_uid=%u, "
+ 		"si_value={int=%d, ptr=%p}}) = 0\n",
+-		pid, pid, getuid(), value.sival_int, value.sival_ptr);
+-	printf("+++ exited with 0 +++\n");
++		pid, pid_str, pid, pid_str,
++		getuid(), value.sival_int, value.sival_ptr);
++	pidns_print_leader();
++	puts("+++ exited with 0 +++");
+ 
+ 	return 0;
+ }
+Index: strace-5.7/tests-mx32/rt_tgsigqueueinfo--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/rt_tgsigqueueinfo--pidns-translation.c	2020-09-09 19:52:38.913673640 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "rt_tgsigqueueinfo.c"
+Index: strace-5.7/tests-mx32/rt_tgsigqueueinfo.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/rt_tgsigqueueinfo.c	2020-09-09 19:52:30.633668705 +0200
++++ strace-5.7/tests-mx32/rt_tgsigqueueinfo.c	2020-09-09 19:52:38.913673640 +0200
+@@ -10,8 +10,9 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+-#ifdef __NR_rt_tgsigqueueinfo
++#if defined __NR_rt_tgsigqueueinfo && defined __NR_gettid
+ 
+ # include <errno.h>
+ # include <signal.h>
+@@ -20,11 +21,11 @@
+ # include <unistd.h>
+ 
+ static long
+-k_tgsigqueueinfo(const pid_t pid, const int sig, const void *const info)
++k_tgsigqueueinfo(const pid_t tgid, const int tid, const int sig, const void *const info)
+ {
+ 	return syscall(__NR_rt_tgsigqueueinfo,
+-		       F8ILL_KULONG_MASK | pid,
+-		       F8ILL_KULONG_MASK | pid,
++		       F8ILL_KULONG_MASK | tgid,
++		       F8ILL_KULONG_MASK | tid,
+ 		       F8ILL_KULONG_MASK | sig,
+ 		       info);
+ }
+@@ -32,6 +33,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	const struct sigaction sa = {
+ 		.sa_handler = SIG_IGN
+ 	};
+@@ -48,17 +51,22 @@
+ 	info->si_value.sival_ptr =
+ 		(void *) (unsigned long) 0xdeadbeeffacefeedULL;
+ 
+-	if (k_tgsigqueueinfo(info->si_pid, SIGUSR1, info))
++	if (k_tgsigqueueinfo(getpid(), syscall(__NR_gettid), SIGUSR1, info))
+ 		(errno == ENOSYS ? perror_msg_and_skip : perror_msg_and_fail)(
+ 			"rt_tgsigqueueinfo");
+ 
+-	printf("rt_tgsigqueueinfo(%u, %u, %s, {si_signo=%s"
+-		", si_code=SI_QUEUE, si_errno=ENOENT, si_pid=%d"
++	pidns_print_leader();
++	printf("rt_tgsigqueueinfo(%d%s, %d%s, %s, {si_signo=%s"
++		", si_code=SI_QUEUE, si_errno=ENOENT, si_pid=%d%s"
+ 		", si_uid=%d, si_value={int=%d, ptr=%p}}) = 0\n",
+-		info->si_pid, info->si_pid, "SIGUSR1", "SIGUSR1",
+-		info->si_pid, info->si_uid, info->si_value.sival_int,
++		info->si_pid, pidns_pid2str(PT_TGID),
++		info->si_pid, pidns_pid2str(PT_TID),
++		"SIGUSR1", "SIGUSR1",
++		info->si_pid, pidns_pid2str(PT_TGID),
++		info->si_uid, info->si_value.sival_int,
+ 		info->si_value.sival_ptr);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-mx32/sched_xetaffinity--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/sched_xetaffinity--pidns-translation.c	2020-09-09 19:52:38.914673641 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "sched_xetaffinity.c"
+Index: strace-5.7/tests-mx32/sched_xetaffinity.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/sched_xetaffinity.c	2020-09-09 19:52:30.633668705 +0200
++++ strace-5.7/tests-mx32/sched_xetaffinity.c	2020-09-09 19:52:38.914673641 +0200
+@@ -10,6 +10,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ #include <sched.h>
+ 
+ #if defined __NR_sched_getaffinity && defined __NR_sched_setaffinity \
+@@ -41,8 +42,11 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	unsigned int cpuset_size = 1;
+ 	const pid_t pid = getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
+ 
+ 	while (cpuset_size) {
+ 		assert(getaffinity(pid, cpuset_size, NULL) == -1);
+@@ -50,18 +54,21 @@
+ 			break;
+ 		if (EINVAL != errno)
+ 			perror_msg_and_skip("sched_getaffinity");
+-		printf("sched_getaffinity(%d, %u, NULL) = %s\n",
+-		       pid, cpuset_size, errstr);
++		pidns_print_leader();
++		printf("sched_getaffinity(%d%s, %u, NULL) = %s\n",
++		       pid, pid_str, cpuset_size, errstr);
+ 		cpuset_size <<= 1;
+ 	}
+ 	assert(cpuset_size);
+-	printf("sched_getaffinity(%d, %u, NULL) = %s\n",
+-	       pid, cpuset_size, errstr);
++	pidns_print_leader();
++	printf("sched_getaffinity(%d%s, %u, NULL) = %s\n",
++	       pid, pid_str, cpuset_size, errstr);
+ 
+ 	cpu_set_t *cpuset = tail_alloc(cpuset_size);
+ 	getaffinity(pid, cpuset_size, cpuset + 1);
+-	printf("sched_getaffinity(%d, %u, %p) = %s\n",
+-	       pid, cpuset_size, cpuset + 1, errstr);
++	pidns_print_leader();
++	printf("sched_getaffinity(%d%s, %u, %p) = %s\n",
++	       pid, pid_str, cpuset_size, cpuset + 1, errstr);
+ 
+ 	int ret_size = getaffinity(pid, cpuset_size, cpuset);
+ 	if (ret_size < 0)
+@@ -69,7 +76,8 @@
+ 				    pid, (unsigned) cpuset_size, cpuset, errstr);
+ 	assert(ret_size <= (int) cpuset_size);
+ 
+-	printf("sched_getaffinity(%d, %u, [", pid, cpuset_size);
++	pidns_print_leader();
++	printf("sched_getaffinity(%d%s, %u, [", pid, pid_str, cpuset_size);
+ 	const char *sep;
+ 	unsigned int i, cpu;
+ 	for (i = 0, cpu = 0, sep = ""; i < (unsigned) ret_size * 8; ++i) {
+@@ -85,8 +93,9 @@
+ 	CPU_SET_S(cpu, cpuset_size, cpuset);
+ 	if (setaffinity(pid, cpuset_size, cpuset))
+ 		perror_msg_and_skip("sched_setaffinity");
+-	printf("sched_setaffinity(%d, %u, [%u]) = 0\n",
+-	       pid, cpuset_size, cpu);
++	pidns_print_leader();
++	printf("sched_setaffinity(%d%s, %u, [%u]) = 0\n",
++	       pid, pid_str, cpuset_size, cpu);
+ 
+ 	const unsigned int big_size = cpuset_size < 128 ? 128 : cpuset_size * 2;
+ 	cpuset = tail_alloc(big_size);
+@@ -95,7 +104,8 @@
+ 		perror_msg_and_fail("sched_getaffinity(%d, %u, %p) = %s\n",
+ 				    pid, big_size, cpuset, errstr);
+ 	assert(ret_size <= (int) big_size);
+-	printf("sched_getaffinity(%d, %u, [", pid, big_size);
++	pidns_print_leader();
++	printf("sched_getaffinity(%d%s, %u, [", pid, pid_str, big_size);
+ 	for (i = 0, sep = ""; i < (unsigned) ret_size * 8; ++i) {
+ 		if (CPU_ISSET_S(i, (unsigned) ret_size, cpuset)) {
+ 			printf("%s%u", sep, i);
+@@ -104,6 +114,7 @@
+ 	}
+ 	printf("]) = %s\n", errstr);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-mx32/sched_xetattr--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/sched_xetattr--pidns-translation.c	2020-09-09 19:52:38.914673641 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "sched_xetattr.c"
+Index: strace-5.7/tests-mx32/sched_xetattr.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/sched_xetattr.c	2020-09-09 19:52:30.634668706 +0200
++++ strace-5.7/tests-mx32/sched_xetattr.c	2020-09-09 19:52:38.914673641 +0200
+@@ -15,6 +15,7 @@
+ # include <stdio.h>
+ # include <sched.h>
+ # include <unistd.h>
++# include "pidns.h"
+ # include "sched_attr.h"
+ # include "xlat.h"
+ # include "xlat/schedulers.h"
+@@ -41,6 +42,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	static const kernel_ulong_t bogus_pid =
+ 		(kernel_ulong_t) 0xdefacedfacefeedULL;
+ 	static const kernel_ulong_t bogus_size =
+@@ -48,20 +51,28 @@
+ 	static const kernel_ulong_t bogus_flags =
+ 		(kernel_ulong_t) 0xdefaceddeadc0deULL;
+ 
++	const int pid = getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
++
+ 	TAIL_ALLOC_OBJECT_CONST_PTR(struct sched_attr, attr);
+ 	TAIL_ALLOC_OBJECT_CONST_PTR(unsigned int, psize);
+ 	void *const efault = attr + 1;
+ 
+-	sys_sched_getattr(0, 0, 0, 0);
+-	printf("sched_getattr(0, NULL, 0, 0) = %s\n", errstr);
++	sys_sched_getattr(pid, 0, 0, 0);
++	pidns_print_leader();
++	printf("sched_getattr(%d%s, NULL, 0, 0) = %s\n",
++		pid, pid_str, errstr);
+ 
+ 	sys_sched_getattr(0, (unsigned long) attr, 0, 0);
++	pidns_print_leader();
+ 	printf("sched_getattr(0, %p, 0, 0) = %s\n", attr, errstr);
+ 
+ 	sys_sched_getattr(bogus_pid, 0, 0, 0);
++	pidns_print_leader();
+ 	printf("sched_getattr(%d, NULL, 0, 0) = %s\n", (int) bogus_pid, errstr);
+ 
+ 	sys_sched_getattr(-1U, (unsigned long) attr, bogus_size, bogus_flags);
++	pidns_print_leader();
+ 	printf("sched_getattr(-1, %p, %s%u, %u) = %s\n",
+ 	       attr,
+ # if defined __arm64__ || defined __aarch64__
+@@ -72,11 +83,13 @@
+ 	       (unsigned) bogus_size, (unsigned) bogus_flags, errstr);
+ 
+ 	sys_sched_getattr(0, (unsigned long) efault, SCHED_ATTR_MIN_SIZE, 0);
++	pidns_print_leader();
+ 	printf("sched_getattr(0, %p, %u, 0) = %s\n",
+ 	       efault, (unsigned) SCHED_ATTR_MIN_SIZE, errstr);
+ 
+ 	if (sys_sched_getattr(0, (unsigned long) attr, SCHED_ATTR_MIN_SIZE, 0))
+ 		perror_msg_and_skip("sched_getattr");
++	pidns_print_leader();
+ 	printf("sched_getattr(0, {size=%u, sched_policy=", attr->size);
+ 	printxval(schedulers, attr->sched_policy, NULL);
+ 	printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u"
+@@ -91,11 +104,13 @@
+ 	       (unsigned) SCHED_ATTR_MIN_SIZE);
+ 
+ 	sys_sched_getattr(0, (unsigned long) efault, sizeof(*attr), 0);
++	pidns_print_leader();
+ 	printf("sched_getattr(0, %p, %u, 0) = %s\n",
+ 	       efault, (unsigned) sizeof(*attr), errstr);
+ 
+ 	if (sys_sched_getattr(0, (unsigned long) attr, sizeof(*attr), 0))
+ 		perror_msg_and_skip("sched_getattr");
++	pidns_print_leader();
+ 	printf("sched_getattr(0, {size=%u, sched_policy=", attr->size);
+ 	printxval(schedulers, attr->sched_policy, NULL);
+ 	printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u"
+@@ -121,11 +136,13 @@
+ 			  F8ILL_KULONG_MASK | sizeof(*attr), F8ILL_KULONG_MASK);
+ # if defined __arm64__ || defined __aarch64__
+ 	if (rc) {
++		pidns_print_leader();
+ 		printf("sched_getattr(0, %p, 0xffffffff<<32|%u, 0) = %s\n",
+ 		       attr, (unsigned) sizeof(*attr), errstr);
+ 	} else
+ # endif
+ 	{
++		pidns_print_leader();
+ 		printf("sched_getattr(0, {size=%u, sched_policy=", attr->size);
+ 		printxval(schedulers, attr->sched_policy, NULL);
+ 		printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u"
+@@ -146,13 +163,16 @@
+ 	}
+ 
+ 	sys_sched_setattr(bogus_pid, 0, 0);
++	pidns_print_leader();
+ 	printf("sched_setattr(%d, NULL, 0) = %s\n", (int) bogus_pid, errstr);
+ 
+ 	attr->sched_flags |= 1;
+ 
+-	if (sys_sched_setattr(0, (unsigned long) attr, 0))
++	if (sys_sched_setattr(pid, (unsigned long) attr, 0))
+ 		perror_msg_and_skip("sched_setattr");
+-	printf("sched_setattr(0, {size=%u, sched_policy=", attr->size);
++	pidns_print_leader();
++	printf("sched_setattr(%d%s, {size=%u, sched_policy=",
++		pid, pid_str, attr->size);
+ 	printxval(schedulers, attr->sched_policy, NULL);
+ 	printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u"
+ 	       ", sched_runtime=%" PRIu64 ", sched_deadline=%" PRIu64
+@@ -172,6 +192,7 @@
+ 
+ 	sys_sched_setattr(F8ILL_KULONG_MASK, (unsigned long) attr,
+ 			  F8ILL_KULONG_MASK);
++	pidns_print_leader();
+ 	printf("sched_setattr(0, {size=%u, sched_policy=", attr->size);
+ 	printxval(schedulers, attr->sched_policy, NULL);
+ 	printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u"
+@@ -193,11 +214,13 @@
+ 	*psize = attr->size;
+ 
+ 	sys_sched_setattr(0, (unsigned long) psize, 0);
++	pidns_print_leader();
+ 	printf("sched_setattr(0, %p, 0) = %s\n", psize, errstr);
+ 
+ 	attr->size = 0;
+ 
+ 	sys_sched_setattr(0, (unsigned long) attr, 0);
++	pidns_print_leader();
+ 	printf("sched_setattr(0, {size=%u, sched_policy=", attr->size);
+ 	printxval(schedulers, attr->sched_policy, NULL);
+ 	printf(", sched_flags=%s, sched_nice=%d, sched_priority=%u"
+@@ -213,12 +236,14 @@
+ 	attr->size = 1;
+ 
+ 	sys_sched_setattr(0, (unsigned long) attr, 0);
++	pidns_print_leader();
+ 	printf("sched_setattr(0, {size=%u} => {size=%u}, 0) = %s\n",
+ 	       1, attr->size, errstr);
+ 
+ 	attr->size = SCHED_ATTR_MIN_SIZE - 1;
+ 
+ 	sys_sched_setattr(0, (unsigned long) attr, 0);
++	pidns_print_leader();
+ 	printf("sched_setattr(0, {size=%u} => {size=%u}, 0) = %s\n",
+ 	       SCHED_ATTR_MIN_SIZE - 1, attr->size, errstr);
+ 
+@@ -232,6 +257,7 @@
+ 	attr->sched_period = 0xded1ca7edda7aca7ULL;
+ 
+ 	sys_sched_setattr(bogus_pid, (unsigned long) attr, bogus_flags);
++	pidns_print_leader();
+ 	printf("sched_setattr(%d, {size=%u, sched_policy=%#x /* SCHED_??? */, "
+ 	       "sched_flags=%#" PRIx64 " /* SCHED_FLAG_??? */, "
+ 	       "sched_nice=%d, sched_priority=%u, sched_runtime=%" PRIu64 ", "
+@@ -274,6 +300,7 @@
+ 	attr->sched_period = 0xded1ca7edda7aca7ULL;
+ 
+ 	sys_sched_setattr(bogus_pid, (unsigned long) attr, bogus_flags);
++	pidns_print_leader();
+ 	printf("sched_setattr(%d, {size=%u, sched_policy=%#x /* SCHED_??? */, "
+ 	       "sched_flags=SCHED_FLAG_RESET_ON_FORK|SCHED_FLAG_RECLAIM|"
+ 	       "SCHED_FLAG_DL_OVERRUN|0x80, "
+@@ -296,11 +323,13 @@
+ 		const kernel_ulong_t ill = f8ill_ptr_to_kulong(attr);
+ 
+ 		sys_sched_getattr(0, ill, sizeof(*attr), 0);
++		pidns_print_leader();
+ 		printf("sched_getattr(0, %#llx, %u, 0) = %s\n",
+ 		       (unsigned long long) ill, (unsigned) sizeof(*attr),
+ 		       errstr);
+ 
+ 		sys_sched_setattr(0, ill, 0);
++		pidns_print_leader();
+ 		printf("sched_setattr(0, %#llx, 0) = %s\n",
+ 		       (unsigned long long) ill, errstr);
+ 	}
+@@ -310,6 +339,7 @@
+ 	attr->sched_flags = 0x8fULL;
+ 
+ 	sys_sched_setattr(bogus_pid, (unsigned long) attr, bogus_flags);
++	pidns_print_leader();
+ 	printf("sched_setattr(%d, {size=%u, "
+ 	       "sched_flags=SCHED_FLAG_RESET_ON_FORK|SCHED_FLAG_RECLAIM|"
+ 	       "SCHED_FLAG_DL_OVERRUN|SCHED_FLAG_KEEP_POLICY|0x80, "
+@@ -329,11 +359,13 @@
+ 		const kernel_ulong_t ill = f8ill_ptr_to_kulong(attr);
+ 
+ 		sys_sched_getattr(0, ill, sizeof(*attr), 0);
++		pidns_print_leader();
+ 		printf("sched_getattr(0, %#llx, %u, 0) = %s\n",
+ 		       (unsigned long long) ill, (unsigned) sizeof(*attr),
+ 		       errstr);
+ 
+ 		sys_sched_setattr(0, ill, 0);
++		pidns_print_leader();
+ 		printf("sched_setattr(0, %#llx, 0) = %s\n",
+ 		       (unsigned long long) ill, errstr);
+ 	}
+@@ -342,6 +374,7 @@
+ 	attr->sched_flags = 0xe7ULL;
+ 
+ 	sys_sched_setattr(bogus_pid, (unsigned long) attr, bogus_flags);
++	pidns_print_leader();
+ 	printf("sched_setattr(%d, {size=%u, sched_policy=%#x /* SCHED_??? */, "
+ 	       "sched_flags=SCHED_FLAG_RESET_ON_FORK|SCHED_FLAG_RECLAIM|"
+ 	       "SCHED_FLAG_DL_OVERRUN|SCHED_FLAG_UTIL_CLAMP_MIN"
+@@ -365,11 +398,13 @@
+ 		const kernel_ulong_t ill = f8ill_ptr_to_kulong(attr);
+ 
+ 		sys_sched_getattr(0, ill, sizeof(*attr), 0);
++		pidns_print_leader();
+ 		printf("sched_getattr(0, %#llx, %u, 0) = %s\n",
+ 		       (unsigned long long) ill, (unsigned) sizeof(*attr),
+ 		       errstr);
+ 
+ 		sys_sched_setattr(0, ill, 0);
++		pidns_print_leader();
+ 		printf("sched_setattr(0, %#llx, 0) = %s\n",
+ 		       (unsigned long long) ill, errstr);
+ 	}
+@@ -377,6 +412,7 @@
+ 	attr->sched_flags = 0xcaffee90LL;
+ 
+ 	sys_sched_setattr(bogus_pid, (unsigned long) attr, bogus_flags);
++	pidns_print_leader();
+ 	printf("sched_setattr(%d, {size=%u, sched_flags=SCHED_FLAG_KEEP_PARAMS"
+ 	       "|0xcaffee80, sched_util_min=%u, sched_util_max=%u}, %u) = %s\n",
+ 	       (int) bogus_pid,
+@@ -389,15 +425,18 @@
+ 		const kernel_ulong_t ill = f8ill_ptr_to_kulong(attr);
+ 
+ 		sys_sched_getattr(0, ill, sizeof(*attr), 0);
++		pidns_print_leader();
+ 		printf("sched_getattr(0, %#llx, %u, 0) = %s\n",
+ 		       (unsigned long long) ill, (unsigned) sizeof(*attr),
+ 		       errstr);
+ 
+ 		sys_sched_setattr(0, ill, 0);
++		pidns_print_leader();
+ 		printf("sched_setattr(0, %#llx, 0) = %s\n",
+ 		       (unsigned long long) ill, errstr);
+ 	}
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-mx32/sched_xetparam--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/sched_xetparam--pidns-translation.c	2020-09-09 19:52:38.914673641 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "sched_xetparam.c"
+Index: strace-5.7/tests-mx32/sched_xetparam.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/sched_xetparam.c	2020-09-09 19:52:30.635668706 +0200
++++ strace-5.7/tests-mx32/sched_xetparam.c	2020-09-09 19:52:38.914673641 +0200
+@@ -7,6 +7,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++# include "pidns.h"
+ 
+ #if defined __NR_sched_getparam && defined __NR_sched_setparam
+ 
+@@ -17,18 +18,27 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	struct sched_param *const param =
+ 		tail_alloc(sizeof(struct sched_param));
+ 
+-	long rc = syscall(__NR_sched_getparam, 0, param);
+-	printf("sched_getparam(0, [%d]) = %ld\n",
+-	       param->sched_priority, rc);
++	const int pid = getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
++
++	long rc = syscall(__NR_sched_getparam, pid, param);
++	pidns_print_leader();
++	printf("sched_getparam(%d%s, [%d]) = %ld\n",
++	       pid, pid_str, param->sched_priority, rc);
+ 
+ 	param->sched_priority = -1;
+-	rc = syscall(__NR_sched_setparam, 0, param);
+-	printf("sched_setparam(0, [%d]) = %ld %s (%m)\n",
++	rc = syscall(__NR_sched_setparam, pid, param);
++	pidns_print_leader();
++	printf("sched_setparam(%d%s, [%d]) = %ld %s (%m)\n",
++	       pid, pid_str,
+ 	       param->sched_priority, rc, errno2name());
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-mx32/sched_xetscheduler--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/sched_xetscheduler--pidns-translation.c	2020-09-09 19:52:38.915673641 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "sched_xetscheduler.c"
+Index: strace-5.7/tests-mx32/sched_xetscheduler.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/sched_xetscheduler.c	2020-09-09 19:52:30.635668706 +0200
++++ strace-5.7/tests-mx32/sched_xetscheduler.c	2020-09-09 19:52:38.915673641 +0200
+@@ -7,6 +7,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #if defined __NR_sched_getscheduler && defined __NR_sched_setscheduler
+ 
+@@ -17,8 +18,13 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	TAIL_ALLOC_OBJECT_CONST_PTR(struct sched_param, param);
+-	long rc = syscall(__NR_sched_getscheduler, 0);
++	const int pid = getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
++
++	long rc = syscall(__NR_sched_getscheduler, pid);
+ 	const char *scheduler;
+ 	switch (rc) {
+ 		case SCHED_FIFO:
+@@ -50,33 +56,43 @@
+ 		default:
+ 			scheduler = "SCHED_OTHER";
+ 	}
+-	printf("sched_getscheduler(0) = %ld (%s)\n",
+-	       rc, scheduler);
++	pidns_print_leader();
++	printf("sched_getscheduler(%d%s) = %ld (%s)\n",
++	       pid, pid_str, rc, scheduler);
+ 
+ 	rc = syscall(__NR_sched_getscheduler, -1);
++	pidns_print_leader();
+ 	printf("sched_getscheduler(-1) = %s\n", sprintrc(rc));
+ 
+ 	param->sched_priority = -1;
+ 
+-	rc = syscall(__NR_sched_setscheduler, 0, SCHED_FIFO, NULL);
+-	printf("sched_setscheduler(0, SCHED_FIFO, NULL) = %s\n", sprintrc(rc));
+-
+-	rc = syscall(__NR_sched_setscheduler, 0, SCHED_FIFO, param + 1);
+-	printf("sched_setscheduler(0, SCHED_FIFO, %p) = %s\n", param + 1,
+-	       sprintrc(rc));
+-
+-	rc = syscall(__NR_sched_setscheduler, 0, 0xfaceda7a, param);
+-	printf("sched_setscheduler(0, %#x /* SCHED_??? */, [%d]) = %s\n",
+-	       0xfaceda7a, param->sched_priority, sprintrc(rc));
++	rc = syscall(__NR_sched_setscheduler, pid, SCHED_FIFO, NULL);
++	pidns_print_leader();
++	printf("sched_setscheduler(%d%s, SCHED_FIFO, NULL) = %s\n",
++	       pid, pid_str, sprintrc(rc));
++
++	rc = syscall(__NR_sched_setscheduler, pid, SCHED_FIFO, param + 1);
++	pidns_print_leader();
++	printf("sched_setscheduler(%d%s, SCHED_FIFO, %p) = %s\n",
++	       pid, pid_str, param + 1, sprintrc(rc));
++
++	rc = syscall(__NR_sched_setscheduler, pid, 0xfaceda7a, param);
++	pidns_print_leader();
++	printf("sched_setscheduler(%d%s, %#x /* SCHED_??? */, [%d]) = %s\n",
++	       pid, pid_str, 0xfaceda7a,
++	       param->sched_priority, sprintrc(rc));
+ 
+ 	rc = syscall(__NR_sched_setscheduler, -1, SCHED_FIFO, param);
++	pidns_print_leader();
+ 	printf("sched_setscheduler(-1, SCHED_FIFO, [%d]) = %s\n",
+ 	       param->sched_priority, sprintrc(rc));
+ 
+-	rc = syscall(__NR_sched_setscheduler, 0, SCHED_FIFO, param);
+-	printf("sched_setscheduler(0, SCHED_FIFO, [%d]) = %s\n",
+-	       param->sched_priority, sprintrc(rc));
++	rc = syscall(__NR_sched_setscheduler, pid, SCHED_FIFO, param);
++	pidns_print_leader();
++	printf("sched_setscheduler(%d%s, SCHED_FIFO, [%d]) = %s\n",
++	       pid, pid_str, param->sched_priority, sprintrc(rc));
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-mx32/signal_receive--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/signal_receive--pidns-translation.c	2020-09-09 19:52:38.915673641 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "signal_receive.c"
+Index: strace-5.7/tests-mx32/signal_receive.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/signal_receive.c	2020-09-09 19:52:30.635668706 +0200
++++ strace-5.7/tests-mx32/signal_receive.c	2020-09-09 19:52:38.915673641 +0200
+@@ -8,6 +8,7 @@
+  */
+ 
+ #include "tests.h"
++#include "pidns.h"
+ #include <signal.h>
+ #include <stdio.h>
+ #include <unistd.h>
+@@ -26,10 +27,13 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	static const char prefix[] = "KERNEL BUG";
+ 	int printed = 0;
+ 
+ 	const int pid = getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
+ 	const int uid = geteuid();
+ 
+ 	for (int sig = 1; sig <= 31; ++sig) {
+@@ -73,10 +77,13 @@
+ 		const int e_pid = s_pid;
+ 		const int e_uid = s_uid;
+ #endif
+-		printf("kill(%d, %s) = 0\n", pid, signal2name(sig));
+-		printf("--- %s {si_signo=%s, si_code=SI_USER, si_pid=%d"
++		pidns_print_leader();
++		printf("kill(%d%s, %s) = 0\n", pid, pid_str, signal2name(sig));
++		pidns_print_leader();
++		printf("--- %s {si_signo=%s, si_code=SI_USER, si_pid=%d%s"
+ 		       ", si_uid=%d} ---\n",
+-		       signal2name(sig), signal2name(e_sig), e_pid, e_uid);
++		       signal2name(sig), signal2name(e_sig),
++		       e_pid, pid_str, e_uid);
+ 
+ 		if (s_code || sig != s_sig || pid != s_pid || uid != s_uid) {
+ 			/*
+@@ -91,11 +98,11 @@
+ 			}
+ 			fprintf(stderr,
+ 				"%s: expected: si_signo=%d, si_code=%d"
+-				", si_pid=%d, si_uid=%d\n"
++				", si_pid=%d%s, si_uid=%d\n"
+ 				"%s: received: si_signo=%d, si_code=%d"
+-				", si_pid=%d, si_uid=%d\n",
+-				prefix, sig, SI_USER, pid, uid,
+-				prefix, sig, s_code, s_pid, s_uid);
++				", si_pid=%d%s, si_uid=%d\n",
++				prefix, sig, SI_USER, pid, pid_str, uid,
++				prefix, sig, s_code, s_pid, pid_str, s_uid);
+ 		}
+ 	}
+ 
+@@ -104,6 +111,7 @@
+ 			"*** PLEASE FIX THE KERNEL ***\n", prefix);
+ 	}
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-mx32/so_peercred--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/so_peercred--pidns-translation.c	2020-09-09 19:52:38.915673641 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "so_peercred.c"
+Index: strace-5.7/tests-mx32/so_peercred.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/so_peercred.c	2020-09-09 19:52:30.636668707 +0200
++++ strace-5.7/tests-mx32/so_peercred.c	2020-09-09 19:52:38.915673641 +0200
+@@ -9,6 +9,7 @@
+  */
+ 
+ #include "tests.h"
++#include "pidns.h"
+ 
+ #include <stddef.h>
+ #include <stdio.h>
+@@ -53,6 +54,8 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	TAIL_ALLOC_OBJECT_CONST_PTR(struct ucred, peercred);
+ 	TAIL_ALLOC_OBJECT_CONST_PTR(socklen_t, len);
+ 
+@@ -75,6 +78,8 @@
+ 	struct ucred *const gid_truncated =
+ 		tail_alloc(sizeof_gid_truncated);
+ 
++	const char *pid_str = pidns_pid2str(PT_TGID);
++
+ 	int sv[2];
+ 	if (socketpair(AF_UNIX, SOCK_STREAM, 0, sv))
+                 perror_msg_and_skip("socketpair AF_UNIX SOCK_STREAM");
+@@ -82,8 +87,10 @@
+ 	/* classic getsockopt */
+ 	*len = sizeof(*peercred);
+ 	get_peercred(sv[0], peercred, len);
++	pidns_print_leader();
+ 	printf("getsockopt(%d, %s", sv[0], so_str());
+ 	PRINT_FIELD_D(", {", *peercred, pid);
++	printf("%s", pid_str);
+ 	PRINT_FIELD_UID(", ", *peercred, uid);
+ 	PRINT_FIELD_UID(", ", *peercred, gid);
+ 	printf("}, [%d]) = %s\n", *len, errstr);
+@@ -91,14 +98,17 @@
+ 	/* getsockopt with zero optlen */
+ 	*len = 0;
+ 	get_peercred(sv[0], peercred, len);
++	pidns_print_leader();
+ 	printf("getsockopt(%d, %s, %p, [0]) = %s\n",
+ 	       sv[0], so_str(), peercred, errstr);
+ 
+ 	/* getsockopt with optlen larger than necessary - shortened */
+ 	*len = sizeof(*peercred) + 1;
+ 	get_peercred(sv[0], peercred, len);
++	pidns_print_leader();
+ 	printf("getsockopt(%d, %s", sv[0], so_str());
+ 	PRINT_FIELD_D(", {", *peercred, pid);
++	printf("%s", pid_str);
+ 	PRINT_FIELD_UID(", ", *peercred, uid);
+ 	PRINT_FIELD_UID(", ", *peercred, gid);
+ 	printf("}, [%u->%d]) = %s\n",
+@@ -110,6 +120,7 @@
+ 	 */
+ 	*len = sizeof_pid_truncated;
+ 	get_peercred(sv[0], pid_truncated, len);
++	pidns_print_leader();
+ 	printf("getsockopt(%d, %s, {pid=", sv[0], so_str());
+ 	print_quoted_hex(pid_truncated, *len);
+ 	printf("}, [%d]) = %s\n", *len, errstr);
+@@ -120,8 +131,10 @@
+ 	 */
+ 	*len = sizeof_pid;
+ 	get_peercred(sv[0], pid, len);
++	pidns_print_leader();
+ 	printf("getsockopt(%d, %s", sv[0], so_str());
+ 	PRINT_FIELD_D(", {", *pid, pid);
++	printf("%s", pid_str);
+ 	printf("}, [%d]) = %s\n", *len, errstr);
+ 
+ 	/*
+@@ -136,8 +149,10 @@
+ 	 * to struct ucred.pid field.
+ 	 */
+ 	memcpy(uid, uid_truncated, sizeof_uid_truncated);
++	pidns_print_leader();
+ 	printf("getsockopt(%d, %s", sv[0], so_str());
+ 	PRINT_FIELD_D(", {", *uid, pid);
++	printf("%s", pid_str);
+ 	printf(", uid=");
+ 	print_quoted_hex(&uid->uid, sizeof_uid_truncated -
+ 				    offsetof(struct ucred, uid));
+@@ -149,8 +164,10 @@
+ 	 */
+ 	*len = sizeof_uid;
+ 	get_peercred(sv[0], uid, len);
++	pidns_print_leader();
+ 	printf("getsockopt(%d, %s", sv[0], so_str());
+ 	PRINT_FIELD_D(", {", *uid, pid);
++	printf("%s", pid_str);
+ 	PRINT_FIELD_UID(", ", *uid, uid);
+ 	printf("}, [%d]) = %s\n", *len, errstr);
+ 
+@@ -166,8 +183,10 @@
+ 	 * to struct ucred.pid and struct ucred.uid fields.
+ 	 */
+ 	memcpy(peercred, gid_truncated, sizeof_gid_truncated);
++	pidns_print_leader();
+ 	printf("getsockopt(%d, %s", sv[0], so_str());
+ 	PRINT_FIELD_D(", {", *peercred, pid);
++	printf("%s", pid_str);
+ 	PRINT_FIELD_UID(", ", *peercred, uid);
+ 	printf(", gid=");
+ 	print_quoted_hex(&peercred->gid, sizeof_gid_truncated -
+@@ -177,14 +196,17 @@
+ 	/* getsockopt optval EFAULT */
+ 	*len = sizeof(*peercred);
+ 	get_peercred(sv[0], &peercred->uid, len);
++	pidns_print_leader();
+ 	printf("getsockopt(%d, %s, %p, [%d]) = %s\n",
+ 	       sv[0], so_str(), &peercred->uid, *len, errstr);
+ 
+ 	/* getsockopt optlen EFAULT */
+ 	get_peercred(sv[0], peercred, len + 1);
++	pidns_print_leader();
+ 	printf("getsockopt(%d, %s, %p, %p) = %s\n",
+ 	       sv[0], so_str(), peercred, len + 1, errstr);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-mx32/tgkill--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/tgkill--pidns-translation.c	2020-09-09 19:52:38.916673642 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "tgkill.c"
+Index: strace-5.7/tests-mx32/tgkill.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/tgkill.c	2020-09-09 19:52:30.636668707 +0200
++++ strace-5.7/tests-mx32/tgkill.c	2020-09-09 19:52:38.916673642 +0200
+@@ -9,6 +9,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #ifdef __NR_tgkill
+ 
+@@ -36,28 +37,46 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	const int pid = getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
++	const int tid = syscall(__NR_gettid);
++	const char *tid_str = pidns_pid2str(PT_TID);
+ 	const int bad_pid = -1;
+ 	const int bad_sig = 0xface;
+ 
+-	k_tgkill(pid, pid, 0);
+-	printf("tgkill(%d, %d, 0) = %s\n", pid, pid, errstr);
++	k_tgkill(pid, tid, 0);
++	pidns_print_leader();
++	printf("tgkill(%d%s, %d%s, 0) = %s\n",
++		pid, pid_str, tid, tid_str, errstr);
+ 
+ 	k_tgkill(pid, bad_pid, 0);
+-	printf("tgkill(%d, %d, 0) = %s\n", pid, bad_pid, errstr);
+-
+-	k_tgkill(bad_pid, pid, 0);
+-	printf("tgkill(%d, %d, 0) = %s\n", bad_pid, pid, errstr);
+-
+-	k_tgkill(pid, pid, SIGCONT);
+-	printf("tgkill(%d, %d, SIGCONT) = %s\n", pid, pid, errstr);
+-
+-	k_tgkill(pid, pid, bad_sig);
+-	printf("tgkill(%d, %d, %d) = %s\n", pid, pid, bad_sig, errstr);
+-
+-	k_tgkill(pid, pid, -bad_sig);
+-	printf("tgkill(%d, %d, %d) = %s\n", pid, pid, -bad_sig, errstr);
++	pidns_print_leader();
++	printf("tgkill(%d%s, %d, 0) = %s\n",
++		pid, pid_str, bad_pid, errstr);
++
++	k_tgkill(bad_pid, tid, 0);
++	pidns_print_leader();
++	printf("tgkill(%d, %d%s, 0) = %s\n",
++		bad_pid, tid, tid_str, errstr);
++
++	k_tgkill(pid, tid, SIGCONT);
++	pidns_print_leader();
++	printf("tgkill(%d%s, %d%s, SIGCONT) = %s\n",
++		pid, pid_str, tid, tid_str, errstr);
++
++	k_tgkill(pid, tid, bad_sig);
++	pidns_print_leader();
++	printf("tgkill(%d%s, %d%s, %d) = %s\n",
++		pid, pid_str, tid, tid_str, bad_sig, errstr);
++
++	k_tgkill(pid, tid, -bad_sig);
++	pidns_print_leader();
++	printf("tgkill(%d%s, %d%s, %d) = %s\n",
++		pid, pid_str, tid, tid_str, -bad_sig, errstr);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-mx32/tkill--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/tkill--pidns-translation.c	2020-09-09 19:52:38.916673642 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "tkill.c"
+Index: strace-5.7/tests-mx32/tkill.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/tkill.c	2020-09-09 19:52:30.636668707 +0200
++++ strace-5.7/tests-mx32/tkill.c	2020-09-09 19:52:38.916673642 +0200
+@@ -9,6 +9,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #ifdef __NR_tkill
+ 
+@@ -33,22 +34,30 @@
+ int
+ main(void)
+ {
+-	const int pid = getpid();
++	PIDNS_TEST_INIT;
++
++	const int tid = syscall(__NR_gettid);
++	const char *tid_str = pidns_pid2str(PT_TID);
+ 	const int bad_pid = -1;
+ 	const int bad_sig = 0xface;
+ 
+-	k_tkill(pid, 0);
+-	printf("tkill(%d, 0) = %s\n", pid, errstr);
+-
+-	k_tkill(pid, SIGCONT);
+-	printf("tkill(%d, SIGCONT) = %s\n", pid, errstr);
++	k_tkill(tid, 0);
++	pidns_print_leader();
++	printf("tkill(%d%s, 0) = %s\n", tid, tid_str, errstr);
++
++	k_tkill(tid, SIGCONT);
++	pidns_print_leader();
++	printf("tkill(%d%s, SIGCONT) = %s\n", tid, tid_str, errstr);
+ 
+ 	k_tkill(bad_pid, bad_sig);
++	pidns_print_leader();
+ 	printf("tkill(%d, %d) = %s\n", bad_pid, bad_sig, errstr);
+ 
+ 	k_tkill(bad_pid, -bad_sig);
++	pidns_print_leader();
+ 	printf("tkill(%d, %d) = %s\n", bad_pid, -bad_sig, errstr);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-mx32/trie_for_tests.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/trie_for_tests.c	2020-09-09 19:52:38.916673642 +0200
+@@ -0,0 +1 @@
++#include "trie.c"
+Index: strace-5.7/tests-mx32/trie_test.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/trie_test.c	2020-09-09 19:52:38.916673642 +0200
+@@ -0,0 +1,121 @@
++/*
++ * Copyright (c) 2017-2019 The strace developers.
++ * All rights reserved.
++ *
++ * SPDX-License-Identifier: GPL-2.0-or-later
++ */
++
++#include "tests.h"
++#include "trie.h"
++
++#include <stdio.h>
++#include <inttypes.h>
++
++static void
++assert_equals(const char *msg, uint64_t expected, uint64_t actual) {
++	if (actual != expected)
++		error_msg_and_fail("%s: expected: %" PRIu64
++		                   ", actual: %" PRIu64, msg, expected, actual);
++}
++
++static void
++iterate_fn(void *data, uint64_t key, uint64_t value)
++{
++	uint64_t expected = key < 256 && key % 10 == 0 ? key + 42 : -1ULL;
++	assert_equals("iterate_fn", expected, value);
++
++	int *count = (int *) data;
++	if (value != -1ULL)
++		(*count)++;
++}
++
++static void
++test_trie_iterate_fn(void)
++{
++	struct trie *t = trie_create(8, 6, 3, 3, -1);
++	for (int i = 0; i < 26; i++)
++		trie_set(t, i * 10, i * 10 + 42);
++
++	static const struct {
++		uint64_t start;
++		uint64_t end;
++		int expected_count;
++	} iterate_params[] = {
++		{0, 256, 26},
++		{0, UINT64_MAX, 26},
++		{20, 90, 8},
++		{99, 999, 16},
++		{10000, 100000, 0},
++		{200, 100, 0},
++	};
++
++	for (size_t i = 0; i < ARRAY_SIZE(iterate_params); i++) {
++		int count = 0;
++		trie_iterate_keys(t, iterate_params[i].start, iterate_params[i].end, iterate_fn, &count);
++		assert_equals("iteration count", iterate_params[i].expected_count, count);
++	}
++}
++
++struct key_value_pair {
++	uint64_t key, value;
++};
++
++static void
++test_trie_get(void)
++{
++	static const struct {
++		uint8_t key_size;
++		uint8_t item_size_lg;
++		uint8_t node_key_bits;
++		uint8_t data_block_key_bits;
++		uint64_t empty_value;
++
++		struct key_value_pair set_values[3], get_values[3];
++	} params[] = {
++		{64, 6, 10, 10, 0,
++			{{300, 1}, {0xfacefeed, 0xabcdef123456}, {-1ULL, -1ULL}},
++			{{301, 0}, {0xfacefeed, 0xabcdef123456}, {-1ULL, -1ULL}}},
++		{8, 2, 4, 4, 10,
++			{{0xab, 0xcd}, {0xface, 2}, {0, 3}},
++			{{0xab, 0xd}, {0xface, 10}, {0, 3}}},
++		{30, 0, 6, 3, -1,
++			{{0xaaaa, 127}, {0xface, 0}, {0, 0}},
++			{{0xaaaa, 1}, {0xface, 0}, {1, 1}}},
++		{16, 4, 5, 11, 0xffffff,
++			{{0xabcdef, 42}, {0xabcd, 42}, {0xffff, 0}},
++			{{0xabcdef, 0xffff}, {0xabcd, 42}, {0xffff, 0}}},
++		{41, 5, 1, 1, -1,
++			{{0xabcdef01, 0x22222222}, {-1, 0x33333333}, {10, 10}},
++			{{0xabcdef01, 0x22222222}, {-1, 0xffffffff}, {10, 10}}},
++	};
++
++	for (size_t i = 0; i < ARRAY_SIZE(params); i++) {
++		struct trie *t = trie_create(params[i].key_size,
++		                             params[i].item_size_lg,
++					     params[i].node_key_bits,
++					     params[i].data_block_key_bits,
++					     params[i].empty_value);
++
++		if (!t)
++			error_msg_and_fail("trie creation failed");
++
++		for (size_t j = 0; j < ARRAY_SIZE(params[i].set_values); j++) {
++			struct key_value_pair kv = params[i].set_values[j];
++			trie_set(t, kv.key, kv.value);
++		}
++		for (size_t j = 0; j < ARRAY_SIZE(params[i].get_values); j++) {
++			struct key_value_pair kv = params[i].get_values[j];
++			assert_equals("trie_get", kv.value, trie_get(t, kv.key));
++		}
++
++		trie_free(t);
++	}
++}
++
++int
++main(void)
++{
++	test_trie_get();
++	test_trie_iterate_fn();
++	return 0;
++}
+Index: strace-5.7/tests-mx32/xet_robust_list--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/xet_robust_list--pidns-translation.c	2020-09-09 19:52:38.916673642 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "xet_robust_list.c"
+Index: strace-5.7/tests-mx32/xet_robust_list.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/xet_robust_list.c	2020-09-09 19:52:30.637668707 +0200
++++ strace-5.7/tests-mx32/xet_robust_list.c	2020-09-09 19:52:38.917673643 +0200
+@@ -8,6 +8,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #if defined __NR_get_robust_list && defined __NR_set_robust_list
+ 
+@@ -30,27 +31,36 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	const pid_t pid = getpid();
++	const char *pid_str = pidns_pid2str(PT_TGID);
+ 	const long long_pid = (unsigned long) (0xdeadbeef00000000LL | pid);
+ 	TAIL_ALLOC_OBJECT_CONST_PTR(void *, p_head);
+ 	TAIL_ALLOC_OBJECT_CONST_PTR(size_t, p_len);
+ 
+ 	if (syscall(__NR_get_robust_list, long_pid, p_head, p_len))
+ 		perror_msg_and_skip("get_robust_list");
+-	printf("get_robust_list(%d, [%s], [%lu]) = 0\n",
+-	       (int) pid, sprintaddr(*p_head), (unsigned long) *p_len);
++	pidns_print_leader();
++	printf("get_robust_list(%d%s, [%s], [%lu]) = 0\n",
++	       pid, pid_str, sprintaddr(*p_head),
++	       (unsigned long) *p_len);
+ 
+ 	void *head = tail_alloc(*p_len);
+ 	if (syscall(__NR_set_robust_list, head, *p_len))
+ 		perror_msg_and_skip("set_robust_list");
++	pidns_print_leader();
+ 	printf("set_robust_list(%p, %lu) = 0\n",
+ 	       head, (unsigned long) *p_len);
+ 
+ 	if (syscall(__NR_get_robust_list, long_pid, p_head, p_len))
+ 		perror_msg_and_skip("get_robust_list");
+-	printf("get_robust_list(%d, [%s], [%lu]) = 0\n",
+-	       (int) pid, sprintaddr(*p_head), (unsigned long) *p_len);
++	pidns_print_leader();
++	printf("get_robust_list(%d%s, [%s], [%lu]) = 0\n",
++	       pid, pid_str, sprintaddr(*p_head),
++	       (unsigned long) *p_len);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-mx32/xetpgid--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/xetpgid--pidns-translation.c	2020-09-09 19:52:38.917673643 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "xetpgid.c"
+Index: strace-5.7/tests-mx32/xetpgid.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/xetpgid.c	2020-09-09 19:52:30.637668707 +0200
++++ strace-5.7/tests-mx32/xetpgid.c	2020-09-09 19:52:38.917673643 +0200
+@@ -10,6 +10,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #if defined __NR_getpgid && defined __NR_setpgid
+ 
+@@ -19,13 +20,21 @@
+ int
+ main(void)
+ {
+-	const int pid = getpid();
+-	long rc = syscall(__NR_getpgid, F8ILL_KULONG_MASK | pid);
+-	printf("getpgid(%d) = %ld\n", pid, rc);
++	PIDNS_TEST_INIT;
+ 
+-	rc = syscall(__NR_setpgid, F8ILL_KULONG_MASK, F8ILL_KULONG_MASK | pid);
+-	printf("setpgid(0, %d) = %ld\n", pid, rc);
++	const int pid = getpid();
++	long pgid = syscall(__NR_getpgid, F8ILL_KULONG_MASK | pid);
++	pidns_print_leader();
++	printf("getpgid(%d%s) = %ld%s\n", pid, pidns_pid2str(PT_TGID),
++		pgid, pidns_pid2str(PT_PGID));
++
++	long rc = syscall(__NR_setpgid, F8ILL_KULONG_MASK,
++		F8ILL_KULONG_MASK | pgid);
++	pidns_print_leader();
++	printf("setpgid(0, %ld%s) = %s\n", pgid, pidns_pid2str(PT_PGID),
++		sprintrc(rc));
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-mx32/xetpriority--pidns-translation.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/xetpriority--pidns-translation.c	2020-09-09 19:52:38.917673643 +0200
+@@ -0,0 +1,2 @@
++#define PIDNS_TRANSLATION
++#include "xetpriority.c"
+Index: strace-5.7/tests-mx32/xetpriority.c
+===================================================================
+--- strace-5.7.orig/tests-mx32/xetpriority.c	2020-09-09 19:52:30.638668708 +0200
++++ strace-5.7/tests-mx32/xetpriority.c	2020-09-09 19:52:38.917673643 +0200
+@@ -7,6 +7,7 @@
+ 
+ #include "tests.h"
+ #include "scno.h"
++#include "pidns.h"
+ 
+ #if defined __NR_getpriority && defined __NR_setpriority
+ 
+@@ -17,15 +18,30 @@
+ int
+ main(void)
+ {
++	PIDNS_TEST_INIT;
++
+ 	const int pid = getpid();
++	const int pgid = getpgid(0);
++
+ 	long rc = syscall(__NR_getpriority, PRIO_PROCESS,
+ 			  F8ILL_KULONG_MASK | pid);
+-	printf("getpriority(PRIO_PROCESS, %d) = %ld\n", pid, rc);
++	pidns_print_leader();
++	printf("getpriority(PRIO_PROCESS, %d%s) = %ld\n",
++		pid, pidns_pid2str(PT_TGID), rc);
+ 
+ 	rc = syscall(__NR_setpriority, PRIO_PROCESS,
+ 		     F8ILL_KULONG_MASK | pid, F8ILL_KULONG_MASK);
+-	printf("setpriority(PRIO_PROCESS, %d, 0) = %s\n", pid, sprintrc(rc));
++	pidns_print_leader();
++	printf("setpriority(PRIO_PROCESS, %d%s, 0) = %s\n",
++		pid, pidns_pid2str(PT_TGID), sprintrc(rc));
++
++	rc = syscall(__NR_getpriority, PRIO_PGRP,
++			  F8ILL_KULONG_MASK | pgid);
++	pidns_print_leader();
++	printf("getpriority(PRIO_PGRP, %d%s) = %ld\n",
++		pgid, pidns_pid2str(PT_PGID), rc);
+ 
++	pidns_print_leader();
+ 	puts("+++ exited with 0 +++");
+ 	return 0;
+ }
+Index: strace-5.7/tests-mx32/xmalloc_for_tests.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ strace-5.7/tests-mx32/xmalloc_for_tests.c	2020-09-09 19:52:38.917673643 +0200
+@@ -0,0 +1,2 @@
++#define error_msg_and_die error_msg_and_fail
++#include "xmalloc.c"
+Index: strace-5.7/Makefile.in
+===================================================================
+--- strace-5.7.orig/Makefile.in	2020-09-09 19:52:30.641668710 +0200
++++ strace-5.7/Makefile.in	2020-09-09 19:52:38.920673644 +0200
+@@ -1870,7 +1870,7 @@
+ CODE_COVERAGE_GENHTML_OPTIONS = $(CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT) \
+ 	--prefix $(shell cd $(abs_top_srcdir)/.. && pwd || echo .)
+ 
+-CODE_COVERAGE_IGNORE_PATTERN = '/usr/include/*'
++CODE_COVERAGE_IGNORE_PATTERN = '/usr/include/*' '*/tests/*' '*/tests-m32/*' '*/tests-mx32/*'
+ 
+ # Enable this to get link map generated
+ #strace_LDFLAGS += -Wl,-Map=strace.mapfile
+Index: strace-5.7/tests/Makefile.in
+===================================================================
+--- strace-5.7.orig/tests/Makefile.in	2020-09-09 19:52:30.693668741 +0200
++++ strace-5.7/tests/Makefile.in	2020-09-09 20:23:40.076946659 +0200
+@@ -121,10 +121,17 @@
+ 	clone3-success-Xabbrev$(EXEEXT) clone3-success-Xraw$(EXEEXT) \
+ 	clone3-success-Xverbose$(EXEEXT) count-f$(EXEEXT) \
+ 	delay$(EXEEXT) execve-v$(EXEEXT) execveat-v$(EXEEXT) \
++	fcntl--pidns-translation$(EXEEXT) \
++	fcntl64--pidns-translation$(EXEEXT) \
+ 	filter_seccomp-flag$(EXEEXT) filter_seccomp-perf$(EXEEXT) \
+-	filter-unavailable$(EXEEXT) fork-f$(EXEEXT) fsync-y$(EXEEXT) \
+-	get_process_reaper$(EXEEXT) getpid$(EXEEXT) getppid$(EXEEXT) \
+-	gettid$(EXEEXT) inject-nf$(EXEEXT) int_0x80$(EXEEXT) \
++	filter-unavailable$(EXEEXT) fork-f$(EXEEXT) \
++	fork--pidns-translation$(EXEEXT) fsync-y$(EXEEXT) \
++	get_process_reaper$(EXEEXT) \
++	getpgrp--pidns-translation$(EXEEXT) getpid$(EXEEXT) \
++	getpid--pidns-translation$(EXEEXT) getppid$(EXEEXT) \
++	getsid--pidns-translation$(EXEEXT) gettid$(EXEEXT) \
++	gettid--pidns-translation$(EXEEXT) inject-nf$(EXEEXT) \
++	int_0x80$(EXEEXT) ioctl_block--pidns-translation$(EXEEXT) \
+ 	ioctl_dm-v$(EXEEXT) ioctl_evdev-success$(EXEEXT) \
+ 	ioctl_evdev-success-Xabbrev$(EXEEXT) \
+ 	ioctl_evdev-success-Xraw$(EXEEXT) \
+@@ -151,43 +158,68 @@
+ 	ioctl_v4l2-success-v-Xabbrev$(EXEEXT) \
+ 	ioctl_v4l2-success-v-Xraw$(EXEEXT) \
+ 	ioctl_v4l2-success-v-Xverbose$(EXEEXT) \
+-	is_linux_mips_n64$(EXEEXT) kill_child$(EXEEXT) \
+-	ksysent$(EXEEXT) list_sigaction_signum$(EXEEXT) \
+-	localtime$(EXEEXT) looping_threads$(EXEEXT) \
+-	mmsg-silent$(EXEEXT) mmsg_name-v$(EXEEXT) \
++	ioprio--pidns-translation$(EXEEXT) is_linux_mips_n64$(EXEEXT) \
++	kcmp-y--pidns-translation$(EXEEXT) kill_child$(EXEEXT) \
++	kill--pidns-translation$(EXEEXT) ksysent$(EXEEXT) \
++	list_sigaction_signum$(EXEEXT) localtime$(EXEEXT) \
++	looping_threads$(EXEEXT) \
++	migrate_pages--pidns-translation$(EXEEXT) mmsg-silent$(EXEEXT) \
++	mmsg_name-v$(EXEEXT) move_pages--pidns-translation$(EXEEXT) \
+ 	msg_control-v$(EXEEXT) net-accept-connect$(EXEEXT) \
++	net-sockaddr--pidns-translation$(EXEEXT) \
+ 	net-tpacket_stats-success$(EXEEXT) nlattr_ifla_xdp-y$(EXEEXT) \
++	netlink_audit--pidns-translation$(EXEEXT) \
+ 	netlink_inet_diag$(EXEEXT) netlink_netlink_diag$(EXEEXT) \
+ 	netlink_unix_diag$(EXEEXT) nsyscalls$(EXEEXT) \
+ 	nsyscalls-d$(EXEEXT) oldselect-P$(EXEEXT) \
+ 	oldselect-efault-P$(EXEEXT) orphaned_process_group$(EXEEXT) \
+ 	pc$(EXEEXT) perf_event_open_nonverbose$(EXEEXT) \
+-	perf_event_open_unabbrev$(EXEEXT) poll-P$(EXEEXT) \
+-	ppoll-P$(EXEEXT) ppoll-v$(EXEEXT) \
++	perf_event_open_unabbrev$(EXEEXT) \
++	pidfd_open--pidns-translation$(EXEEXT) \
++	pidfd_send_signal--pidns-translation$(EXEEXT) \
++	pidns-cache$(EXEEXT) poll-P$(EXEEXT) ppoll-P$(EXEEXT) \
++	ppoll-v$(EXEEXT) prlimit64--pidns-translation$(EXEEXT) \
+ 	prctl-seccomp-filter-v$(EXEEXT) prctl-seccomp-strict$(EXEEXT) \
+ 	prctl-spec-inject$(EXEEXT) print_maxfd$(EXEEXT) \
+-	print_ppid_tracerpid$(EXEEXT) qual_fault$(EXEEXT) \
+-	qual_inject-error-signal$(EXEEXT) qual_inject-retval$(EXEEXT) \
+-	qual_inject-signal$(EXEEXT) qual_signal$(EXEEXT) \
+-	quotactl-success$(EXEEXT) quotactl-success-v$(EXEEXT) \
+-	quotactl-v$(EXEEXT) quotactl-xfs-success$(EXEEXT) \
+-	quotactl-xfs-success-v$(EXEEXT) quotactl-xfs-v$(EXEEXT) \
+-	redirect-fds$(EXEEXT) restart_syscall$(EXEEXT) \
+-	run_expect_termsig$(EXEEXT) scm_rights$(EXEEXT) \
+-	seccomp-filter-v$(EXEEXT) seccomp-strict$(EXEEXT) \
+-	select-P$(EXEEXT) set_ptracer_any$(EXEEXT) \
+-	set_sigblock$(EXEEXT) set_sigign$(EXEEXT) \
+-	setpgrp-exec$(EXEEXT) signal_receive$(EXEEXT) sleep$(EXEEXT) \
++	print_ppid_tracerpid$(EXEEXT) \
++	process_vm_readv--pidns-translation$(EXEEXT) \
++	process_vm_writev--pidns-translation$(EXEEXT) \
++	qual_fault$(EXEEXT) qual_inject-error-signal$(EXEEXT) \
++	qual_inject-retval$(EXEEXT) qual_inject-signal$(EXEEXT) \
++	qual_signal$(EXEEXT) quotactl-success$(EXEEXT) \
++	quotactl-success-v$(EXEEXT) quotactl-v$(EXEEXT) \
++	quotactl-xfs-success$(EXEEXT) quotactl-xfs-success-v$(EXEEXT) \
++	quotactl-xfs-v$(EXEEXT) redirect-fds$(EXEEXT) \
++	restart_syscall$(EXEEXT) \
++	rt_sigqueueinfo--pidns-translation$(EXEEXT) \
++	rt_tgsigqueueinfo--pidns-translation$(EXEEXT) \
++	run_expect_termsig$(EXEEXT) \
++	sched_xetaffinity--pidns-translation$(EXEEXT) \
++	sched_xetattr--pidns-translation$(EXEEXT) \
++	sched_xetparam--pidns-translation$(EXEEXT) \
++	sched_xetscheduler--pidns-translation$(EXEEXT) \
++	scm_rights$(EXEEXT) seccomp-filter-v$(EXEEXT) \
++	seccomp-strict$(EXEEXT) select-P$(EXEEXT) \
++	set_ptracer_any$(EXEEXT) set_sigblock$(EXEEXT) \
++	set_sigign$(EXEEXT) setpgrp-exec$(EXEEXT) \
++	signal_receive$(EXEEXT) \
++	signal_receive--pidns-translation$(EXEEXT) sleep$(EXEEXT) \
+ 	stack-fcall$(EXEEXT) stack-fcall-attach$(EXEEXT) \
+ 	stack-fcall-mangled$(EXEEXT) status-none-threads$(EXEEXT) \
+-	status-unfinished-threads$(EXEEXT) syslog-success$(EXEEXT) \
++	status-unfinished-threads$(EXEEXT) \
++	so_peercred--pidns-translation$(EXEEXT) \
++	syslog-success$(EXEEXT) tgkill--pidns-translation$(EXEEXT) \
+ 	threads-execve$(EXEEXT) \
+ 	threads-execve--quiet-thread-execve$(EXEEXT) \
+ 	threads-execve-q$(EXEEXT) threads-execve-qq$(EXEEXT) \
+-	threads-execve-qqq$(EXEEXT) tracer_ppid_pgid_sid$(EXEEXT) \
++	threads-execve-qqq$(EXEEXT) tkill--pidns-translation$(EXEEXT) \
++	tracer_ppid_pgid_sid$(EXEEXT) trie_test$(EXEEXT) \
+ 	unblock_reset_raise$(EXEEXT) unix-pair-send-recv$(EXEEXT) \
+ 	unix-pair-sendto-recvfrom$(EXEEXT) vfork-f$(EXEEXT) \
+-	wait4-v$(EXEEXT) waitid-v$(EXEEXT) zeroargc$(EXEEXT)
++	wait4-v$(EXEEXT) waitid-v$(EXEEXT) \
++	xetpgid--pidns-translation$(EXEEXT) \
++	xetpriority--pidns-translation$(EXEEXT) \
++	xet_robust_list--pidns-translation$(EXEEXT) zeroargc$(EXEEXT)
+ @ENABLE_STACKTRACE_TRUE@@USE_DEMANGLE_TRUE@am__append_1 = strace-k-demangle.test
+ TESTS = $(GEN_TESTS) $(DECODER_TESTS) $(MISC_TESTS) $(am__EXEEXT_2)
+ subdir = tests
+@@ -545,7 +577,8 @@
+ 	libtests_a-tail_alloc.$(OBJEXT) \
+ 	libtests_a-test_printpath.$(OBJEXT) \
+ 	libtests_a-test_printstrn.$(OBJEXT) \
+-	libtests_a-test_ucopy.$(OBJEXT) libtests_a-tprintf.$(OBJEXT)
++	libtests_a-test_ucopy.$(OBJEXT) libtests_a-tprintf.$(OBJEXT) \
++	libtests_a-xmalloc_for_tests.$(OBJEXT)
+ libtests_a_OBJECTS = $(am_libtests_a_OBJECTS)
+ _newselect_SOURCES = _newselect.c
+ _newselect_OBJECTS = _newselect.$(OBJEXT)
+@@ -973,10 +1006,19 @@
+ fcntl_OBJECTS = fcntl.$(OBJEXT)
+ fcntl_LDADD = $(LDADD)
+ fcntl_DEPENDENCIES = libtests.a
++fcntl__pidns_translation_SOURCES = fcntl--pidns-translation.c
++fcntl__pidns_translation_OBJECTS = fcntl--pidns-translation.$(OBJEXT)
++fcntl__pidns_translation_LDADD = $(LDADD)
++fcntl__pidns_translation_DEPENDENCIES = libtests.a
+ fcntl64_SOURCES = fcntl64.c
+ fcntl64_OBJECTS = fcntl64.$(OBJEXT)
+ fcntl64_LDADD = $(LDADD)
+ fcntl64_DEPENDENCIES = libtests.a
++fcntl64__pidns_translation_SOURCES = fcntl64--pidns-translation.c
++fcntl64__pidns_translation_OBJECTS =  \
++	fcntl64--pidns-translation.$(OBJEXT)
++fcntl64__pidns_translation_LDADD = $(LDADD)
++fcntl64__pidns_translation_DEPENDENCIES = libtests.a
+ fdatasync_SOURCES = fdatasync.c
+ fdatasync_OBJECTS = fdatasync.$(OBJEXT)
+ fdatasync_LDADD = $(LDADD)
+@@ -1012,6 +1054,10 @@
+ flock_OBJECTS = flock.$(OBJEXT)
+ flock_LDADD = $(LDADD)
+ flock_DEPENDENCIES = libtests.a
++fork__pidns_translation_SOURCES = fork--pidns-translation.c
++fork__pidns_translation_OBJECTS = fork--pidns-translation.$(OBJEXT)
++fork__pidns_translation_LDADD = $(LDADD)
++fork__pidns_translation_DEPENDENCIES = libtests.a
+ fork_f_SOURCES = fork-f.c
+ fork_f_OBJECTS = fork-f.$(OBJEXT)
+ fork_f_LDADD = $(LDADD)
+@@ -1180,10 +1226,20 @@
+ getpgrp_OBJECTS = getpgrp.$(OBJEXT)
+ getpgrp_LDADD = $(LDADD)
+ getpgrp_DEPENDENCIES = libtests.a
++getpgrp__pidns_translation_SOURCES = getpgrp--pidns-translation.c
++getpgrp__pidns_translation_OBJECTS =  \
++	getpgrp--pidns-translation.$(OBJEXT)
++getpgrp__pidns_translation_LDADD = $(LDADD)
++getpgrp__pidns_translation_DEPENDENCIES = libtests.a
+ getpid_SOURCES = getpid.c
+ getpid_OBJECTS = getpid.$(OBJEXT)
+ getpid_LDADD = $(LDADD)
+ getpid_DEPENDENCIES = libtests.a
++getpid__pidns_translation_SOURCES = getpid--pidns-translation.c
++getpid__pidns_translation_OBJECTS =  \
++	getpid--pidns-translation.$(OBJEXT)
++getpid__pidns_translation_LDADD = $(LDADD)
++getpid__pidns_translation_DEPENDENCIES = libtests.a
+ getppid_SOURCES = getppid.c
+ getppid_OBJECTS = getppid.$(OBJEXT)
+ getppid_LDADD = $(LDADD)
+@@ -1220,6 +1276,11 @@
+ getsid_OBJECTS = getsid.$(OBJEXT)
+ getsid_LDADD = $(LDADD)
+ getsid_DEPENDENCIES = libtests.a
++getsid__pidns_translation_SOURCES = getsid--pidns-translation.c
++getsid__pidns_translation_OBJECTS =  \
++	getsid--pidns-translation.$(OBJEXT)
++getsid__pidns_translation_LDADD = $(LDADD)
++getsid__pidns_translation_DEPENDENCIES = libtests.a
+ getsockname_SOURCES = getsockname.c
+ getsockname_OBJECTS = getsockname.$(OBJEXT)
+ getsockname_LDADD = $(LDADD)
+@@ -1228,6 +1289,11 @@
+ gettid_OBJECTS = gettid.$(OBJEXT)
+ gettid_LDADD = $(LDADD)
+ gettid_DEPENDENCIES = libtests.a
++gettid__pidns_translation_SOURCES = gettid--pidns-translation.c
++gettid__pidns_translation_OBJECTS =  \
++	gettid--pidns-translation.$(OBJEXT)
++gettid__pidns_translation_LDADD = $(LDADD)
++gettid__pidns_translation_DEPENDENCIES = libtests.a
+ getuid_SOURCES = getuid.c
+ getuid_OBJECTS = getuid.$(OBJEXT)
+ getuid_LDADD = $(LDADD)
+@@ -1308,6 +1374,12 @@
+ ioctl_block_OBJECTS = ioctl_block.$(OBJEXT)
+ ioctl_block_LDADD = $(LDADD)
+ ioctl_block_DEPENDENCIES = libtests.a
++ioctl_block__pidns_translation_SOURCES =  \
++	ioctl_block--pidns-translation.c
++ioctl_block__pidns_translation_OBJECTS =  \
++	ioctl_block--pidns-translation.$(OBJEXT)
++ioctl_block__pidns_translation_LDADD = $(LDADD)
++ioctl_block__pidns_translation_DEPENDENCIES = libtests.a
+ ioctl_dm_SOURCES = ioctl_dm.c
+ ioctl_dm_OBJECTS = ioctl_dm.$(OBJEXT)
+ ioctl_dm_LDADD = $(LDADD)
+@@ -1628,6 +1700,11 @@
+ ioprio_OBJECTS = ioprio.$(OBJEXT)
+ ioprio_LDADD = $(LDADD)
+ ioprio_DEPENDENCIES = libtests.a
++ioprio__pidns_translation_SOURCES = ioprio--pidns-translation.c
++ioprio__pidns_translation_OBJECTS =  \
++	ioprio--pidns-translation.$(OBJEXT)
++ioprio__pidns_translation_LDADD = $(LDADD)
++ioprio__pidns_translation_DEPENDENCIES = libtests.a
+ ioprio_Xabbrev_SOURCES = ioprio-Xabbrev.c
+ ioprio_Xabbrev_OBJECTS = ioprio-Xabbrev.$(OBJEXT)
+ ioprio_Xabbrev_LDADD = $(LDADD)
+@@ -1724,6 +1801,11 @@
+ kcmp_y_OBJECTS = kcmp-y.$(OBJEXT)
+ kcmp_y_LDADD = $(LDADD)
+ kcmp_y_DEPENDENCIES = libtests.a
++kcmp_y__pidns_translation_SOURCES = kcmp-y--pidns-translation.c
++kcmp_y__pidns_translation_OBJECTS =  \
++	kcmp-y--pidns-translation.$(OBJEXT)
++kcmp_y__pidns_translation_LDADD = $(LDADD)
++kcmp_y__pidns_translation_DEPENDENCIES = libtests.a
+ kern_features_SOURCES = kern_features.c
+ kern_features_OBJECTS = kern_features.$(OBJEXT)
+ kern_features_LDADD = $(LDADD)
+@@ -1772,6 +1854,10 @@
+ kill_OBJECTS = kill.$(OBJEXT)
+ kill_LDADD = $(LDADD)
+ kill_DEPENDENCIES = libtests.a
++kill__pidns_translation_SOURCES = kill--pidns-translation.c
++kill__pidns_translation_OBJECTS = kill--pidns-translation.$(OBJEXT)
++kill__pidns_translation_LDADD = $(LDADD)
++kill__pidns_translation_DEPENDENCIES = libtests.a
+ kill_child_SOURCES = kill_child.c
+ kill_child_OBJECTS = kill_child.$(OBJEXT)
+ kill_child_LDADD = $(LDADD)
+@@ -1878,6 +1964,12 @@
+ migrate_pages_OBJECTS = migrate_pages.$(OBJEXT)
+ migrate_pages_LDADD = $(LDADD)
+ migrate_pages_DEPENDENCIES = libtests.a
++migrate_pages__pidns_translation_SOURCES =  \
++	migrate_pages--pidns-translation.c
++migrate_pages__pidns_translation_OBJECTS =  \
++	migrate_pages--pidns-translation.$(OBJEXT)
++migrate_pages__pidns_translation_LDADD = $(LDADD)
++migrate_pages__pidns_translation_DEPENDENCIES = libtests.a
+ mincore_SOURCES = mincore.c
+ mincore_OBJECTS = mincore.$(OBJEXT)
+ mincore_LDADD = $(LDADD)
+@@ -1990,6 +2082,12 @@
+ move_pages_OBJECTS = move_pages.$(OBJEXT)
+ move_pages_LDADD = $(LDADD)
+ move_pages_DEPENDENCIES = libtests.a
++move_pages__pidns_translation_SOURCES =  \
++	move_pages--pidns-translation.c
++move_pages__pidns_translation_OBJECTS =  \
++	move_pages--pidns-translation.$(OBJEXT)
++move_pages__pidns_translation_LDADD = $(LDADD)
++move_pages__pidns_translation_DEPENDENCIES = libtests.a
+ move_pages_Xabbrev_SOURCES = move_pages-Xabbrev.c
+ move_pages_Xabbrev_OBJECTS = move_pages-Xabbrev.$(OBJEXT)
+ move_pages_Xabbrev_LDADD = $(LDADD)
+@@ -2086,6 +2184,12 @@
+ net_sockaddr_OBJECTS = net-sockaddr.$(OBJEXT)
+ net_sockaddr_LDADD = $(LDADD)
+ net_sockaddr_DEPENDENCIES = libtests.a
++net_sockaddr__pidns_translation_SOURCES =  \
++	net-sockaddr--pidns-translation.c
++net_sockaddr__pidns_translation_OBJECTS =  \
++	net-sockaddr--pidns-translation.$(OBJEXT)
++net_sockaddr__pidns_translation_LDADD = $(LDADD)
++net_sockaddr__pidns_translation_DEPENDENCIES = libtests.a
+ net_tpacket_req_SOURCES = net-tpacket_req.c
+ net_tpacket_req_OBJECTS = net-tpacket_req.$(OBJEXT)
+ net_tpacket_req_LDADD = $(LDADD)
+@@ -2123,6 +2227,12 @@
+ netlink_audit_OBJECTS = netlink_audit.$(OBJEXT)
+ netlink_audit_LDADD = $(LDADD)
+ netlink_audit_DEPENDENCIES = libtests.a
++netlink_audit__pidns_translation_SOURCES =  \
++	netlink_audit--pidns-translation.c
++netlink_audit__pidns_translation_OBJECTS =  \
++	netlink_audit--pidns-translation.$(OBJEXT)
++netlink_audit__pidns_translation_LDADD = $(LDADD)
++netlink_audit__pidns_translation_DEPENDENCIES = libtests.a
+ netlink_crypto_SOURCES = netlink_crypto.c
+ netlink_crypto_OBJECTS = netlink_crypto.$(OBJEXT)
+ netlink_crypto_LDADD = $(LDADD)
+@@ -2543,6 +2653,12 @@
+ 	pidfd_open--decode-fd-socket.$(OBJEXT)
+ pidfd_open__decode_fd_socket_LDADD = $(LDADD)
+ pidfd_open__decode_fd_socket_DEPENDENCIES = libtests.a
++pidfd_open__pidns_translation_SOURCES =  \
++	pidfd_open--pidns-translation.c
++pidfd_open__pidns_translation_OBJECTS =  \
++	pidfd_open--pidns-translation.$(OBJEXT)
++pidfd_open__pidns_translation_LDADD = $(LDADD)
++pidfd_open__pidns_translation_DEPENDENCIES = libtests.a
+ pidfd_open_P_SOURCES = pidfd_open-P.c
+ pidfd_open_P_OBJECTS = pidfd_open-P.$(OBJEXT)
+ pidfd_open_P_LDADD = $(LDADD)
+@@ -2559,6 +2675,16 @@
+ pidfd_send_signal_OBJECTS = pidfd_send_signal.$(OBJEXT)
+ pidfd_send_signal_LDADD = $(LDADD)
+ pidfd_send_signal_DEPENDENCIES = libtests.a
++pidfd_send_signal__pidns_translation_SOURCES =  \
++	pidfd_send_signal--pidns-translation.c
++pidfd_send_signal__pidns_translation_OBJECTS =  \
++	pidfd_send_signal--pidns-translation.$(OBJEXT)
++pidfd_send_signal__pidns_translation_LDADD = $(LDADD)
++pidfd_send_signal__pidns_translation_DEPENDENCIES = libtests.a
++pidns_cache_SOURCES = pidns-cache.c
++pidns_cache_OBJECTS = pidns-cache.$(OBJEXT)
++pidns_cache_LDADD = $(LDADD)
++pidns_cache_DEPENDENCIES = libtests.a
+ pipe_SOURCES = pipe.c
+ pipe_OBJECTS = pipe.$(OBJEXT)
+ pipe_LDADD = $(LDADD)
+@@ -2717,14 +2843,31 @@
+ prlimit64_OBJECTS = prlimit64.$(OBJEXT)
+ prlimit64_LDADD = $(LDADD)
+ prlimit64_DEPENDENCIES = libtests.a
++prlimit64__pidns_translation_SOURCES = prlimit64--pidns-translation.c
++prlimit64__pidns_translation_OBJECTS =  \
++	prlimit64--pidns-translation.$(OBJEXT)
++prlimit64__pidns_translation_LDADD = $(LDADD)
++prlimit64__pidns_translation_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_readv__pidns_translation_SOURCES =  \
++	process_vm_readv--pidns-translation.c
++process_vm_readv__pidns_translation_OBJECTS =  \
++	process_vm_readv--pidns-translation.$(OBJEXT)
++process_vm_readv__pidns_translation_LDADD = $(LDADD)
++process_vm_readv__pidns_translation_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
++process_vm_writev__pidns_translation_SOURCES =  \
++	process_vm_writev--pidns-translation.c
++process_vm_writev__pidns_translation_OBJECTS =  \
++	process_vm_writev--pidns-translation.$(OBJEXT)
++process_vm_writev__pidns_translation_LDADD = $(LDADD)
++process_vm_writev__pidns_translation_DEPENDENCIES = libtests.a
+ pselect6_SOURCES = pselect6.c
+ pselect6_OBJECTS = pselect6.$(OBJEXT)
+ pselect6_LDADD = $(LDADD)
+@@ -2918,6 +3061,12 @@
+ rt_sigqueueinfo_OBJECTS = rt_sigqueueinfo.$(OBJEXT)
+ rt_sigqueueinfo_LDADD = $(LDADD)
+ rt_sigqueueinfo_DEPENDENCIES = libtests.a
++rt_sigqueueinfo__pidns_translation_SOURCES =  \
++	rt_sigqueueinfo--pidns-translation.c
++rt_sigqueueinfo__pidns_translation_OBJECTS =  \
++	rt_sigqueueinfo--pidns-translation.$(OBJEXT)
++rt_sigqueueinfo__pidns_translation_LDADD = $(LDADD)
++rt_sigqueueinfo__pidns_translation_DEPENDENCIES = libtests.a
+ rt_sigreturn_SOURCES = rt_sigreturn.c
+ rt_sigreturn_OBJECTS = rt_sigreturn.$(OBJEXT)
+ rt_sigreturn_LDADD = $(LDADD)
+@@ -2934,6 +3083,12 @@
+ rt_tgsigqueueinfo_OBJECTS = rt_tgsigqueueinfo.$(OBJEXT)
+ rt_tgsigqueueinfo_LDADD = $(LDADD)
+ rt_tgsigqueueinfo_DEPENDENCIES = libtests.a
++rt_tgsigqueueinfo__pidns_translation_SOURCES =  \
++	rt_tgsigqueueinfo--pidns-translation.c
++rt_tgsigqueueinfo__pidns_translation_OBJECTS =  \
++	rt_tgsigqueueinfo--pidns-translation.$(OBJEXT)
++rt_tgsigqueueinfo__pidns_translation_LDADD = $(LDADD)
++rt_tgsigqueueinfo__pidns_translation_DEPENDENCIES = libtests.a
+ run_expect_termsig_SOURCES = run_expect_termsig.c
+ run_expect_termsig_OBJECTS = run_expect_termsig.$(OBJEXT)
+ run_expect_termsig_LDADD = $(LDADD)
+@@ -2974,18 +3129,42 @@
+ sched_xetaffinity_OBJECTS = sched_xetaffinity.$(OBJEXT)
+ sched_xetaffinity_LDADD = $(LDADD)
+ sched_xetaffinity_DEPENDENCIES = libtests.a
++sched_xetaffinity__pidns_translation_SOURCES =  \
++	sched_xetaffinity--pidns-translation.c
++sched_xetaffinity__pidns_translation_OBJECTS =  \
++	sched_xetaffinity--pidns-translation.$(OBJEXT)
++sched_xetaffinity__pidns_translation_LDADD = $(LDADD)
++sched_xetaffinity__pidns_translation_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_xetattr__pidns_translation_SOURCES =  \
++	sched_xetattr--pidns-translation.c
++sched_xetattr__pidns_translation_OBJECTS =  \
++	sched_xetattr--pidns-translation.$(OBJEXT)
++sched_xetattr__pidns_translation_LDADD = $(LDADD)
++sched_xetattr__pidns_translation_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_xetparam__pidns_translation_SOURCES =  \
++	sched_xetparam--pidns-translation.c
++sched_xetparam__pidns_translation_OBJECTS =  \
++	sched_xetparam--pidns-translation.$(OBJEXT)
++sched_xetparam__pidns_translation_LDADD = $(LDADD)
++sched_xetparam__pidns_translation_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_xetscheduler__pidns_translation_SOURCES =  \
++	sched_xetscheduler--pidns-translation.c
++sched_xetscheduler__pidns_translation_OBJECTS =  \
++	sched_xetscheduler--pidns-translation.$(OBJEXT)
++sched_xetscheduler__pidns_translation_LDADD = $(LDADD)
++sched_xetscheduler__pidns_translation_DEPENDENCIES = libtests.a
+ sched_yield_SOURCES = sched_yield.c
+ sched_yield_OBJECTS = sched_yield.$(OBJEXT)
+ sched_yield_LDADD = $(LDADD)
+@@ -3198,6 +3377,12 @@
+ signal_receive_OBJECTS = signal_receive.$(OBJEXT)
+ signal_receive_LDADD = $(LDADD)
+ signal_receive_DEPENDENCIES = libtests.a
++signal_receive__pidns_translation_SOURCES =  \
++	signal_receive--pidns-translation.c
++signal_receive__pidns_translation_OBJECTS =  \
++	signal_receive--pidns-translation.$(OBJEXT)
++signal_receive__pidns_translation_LDADD = $(LDADD)
++signal_receive__pidns_translation_DEPENDENCIES = libtests.a
+ signalfd4_SOURCES = signalfd4.c
+ signalfd4_OBJECTS = signalfd4.$(OBJEXT)
+ signalfd4_LDADD = $(LDADD)
+@@ -3234,6 +3419,12 @@
+ so_peercred_OBJECTS = so_peercred.$(OBJEXT)
+ so_peercred_LDADD = $(LDADD)
+ so_peercred_DEPENDENCIES = libtests.a
++so_peercred__pidns_translation_SOURCES =  \
++	so_peercred--pidns-translation.c
++so_peercred__pidns_translation_OBJECTS =  \
++	so_peercred--pidns-translation.$(OBJEXT)
++so_peercred__pidns_translation_LDADD = $(LDADD)
++so_peercred__pidns_translation_DEPENDENCIES = libtests.a
+ so_peercred_Xabbrev_SOURCES = so_peercred-Xabbrev.c
+ so_peercred_Xabbrev_OBJECTS = so_peercred-Xabbrev.$(OBJEXT)
+ so_peercred_Xabbrev_LDADD = $(LDADD)
+@@ -3448,6 +3639,11 @@
+ tgkill_OBJECTS = tgkill.$(OBJEXT)
+ tgkill_LDADD = $(LDADD)
+ tgkill_DEPENDENCIES = libtests.a
++tgkill__pidns_translation_SOURCES = tgkill--pidns-translation.c
++tgkill__pidns_translation_OBJECTS =  \
++	tgkill--pidns-translation.$(OBJEXT)
++tgkill__pidns_translation_LDADD = $(LDADD)
++tgkill__pidns_translation_DEPENDENCIES = libtests.a
+ threads_execve_SOURCES = threads-execve.c
+ threads_execve_OBJECTS = threads-execve.$(OBJEXT)
+ threads_execve_DEPENDENCIES = $(am__DEPENDENCIES_1) $(LDADD)
+@@ -3493,10 +3689,20 @@
+ tkill_OBJECTS = tkill.$(OBJEXT)
+ tkill_LDADD = $(LDADD)
+ tkill_DEPENDENCIES = libtests.a
++tkill__pidns_translation_SOURCES = tkill--pidns-translation.c
++tkill__pidns_translation_OBJECTS = tkill--pidns-translation.$(OBJEXT)
++tkill__pidns_translation_LDADD = $(LDADD)
++tkill__pidns_translation_DEPENDENCIES = libtests.a
+ tracer_ppid_pgid_sid_SOURCES = tracer_ppid_pgid_sid.c
+ tracer_ppid_pgid_sid_OBJECTS = tracer_ppid_pgid_sid.$(OBJEXT)
+ tracer_ppid_pgid_sid_LDADD = $(LDADD)
+ tracer_ppid_pgid_sid_DEPENDENCIES = libtests.a
++am_trie_test_OBJECTS = trie_test-trie_test.$(OBJEXT) \
++	trie_test-trie_for_tests.$(OBJEXT)
++trie_test_OBJECTS = $(am_trie_test_OBJECTS)
++trie_test_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_1)
++trie_test_LINK = $(CCLD) $(trie_test_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
++	$(LDFLAGS) -o $@
+ truncate_SOURCES = truncate.c
+ truncate_OBJECTS = truncate.$(OBJEXT)
+ truncate_LDADD = $(LDADD)
+@@ -3658,6 +3864,12 @@
+ xet_robust_list_OBJECTS = xet_robust_list.$(OBJEXT)
+ xet_robust_list_LDADD = $(LDADD)
+ xet_robust_list_DEPENDENCIES = libtests.a
++xet_robust_list__pidns_translation_SOURCES =  \
++	xet_robust_list--pidns-translation.c
++xet_robust_list__pidns_translation_OBJECTS =  \
++	xet_robust_list--pidns-translation.$(OBJEXT)
++xet_robust_list__pidns_translation_LDADD = $(LDADD)
++xet_robust_list__pidns_translation_DEPENDENCIES = libtests.a
+ xet_thread_area_x86_SOURCES = xet_thread_area_x86.c
+ xet_thread_area_x86_OBJECTS = xet_thread_area_x86.$(OBJEXT)
+ xet_thread_area_x86_LDADD = $(LDADD)
+@@ -3670,10 +3882,21 @@
+ xetpgid_OBJECTS = xetpgid.$(OBJEXT)
+ xetpgid_LDADD = $(LDADD)
+ xetpgid_DEPENDENCIES = libtests.a
++xetpgid__pidns_translation_SOURCES = xetpgid--pidns-translation.c
++xetpgid__pidns_translation_OBJECTS =  \
++	xetpgid--pidns-translation.$(OBJEXT)
++xetpgid__pidns_translation_LDADD = $(LDADD)
++xetpgid__pidns_translation_DEPENDENCIES = libtests.a
+ xetpriority_SOURCES = xetpriority.c
+ xetpriority_OBJECTS = xetpriority.$(OBJEXT)
+ xetpriority_LDADD = $(LDADD)
+ xetpriority_DEPENDENCIES = libtests.a
++xetpriority__pidns_translation_SOURCES =  \
++	xetpriority--pidns-translation.c
++xetpriority__pidns_translation_OBJECTS =  \
++	xetpriority--pidns-translation.$(OBJEXT)
++xetpriority__pidns_translation_LDADD = $(LDADD)
++xetpriority__pidns_translation_DEPENDENCIES = libtests.a
+ xettimeofday_SOURCES = xettimeofday.c
+ xettimeofday_OBJECTS = xettimeofday.$(OBJEXT)
+ xettimeofday_LDADD = $(LDADD)
+@@ -3759,13 +3982,15 @@
+ 	./$(DEPDIR)/fanotify_mark.Po ./$(DEPDIR)/fchdir.Po \
+ 	./$(DEPDIR)/fchmod.Po ./$(DEPDIR)/fchmodat.Po \
+ 	./$(DEPDIR)/fchown.Po ./$(DEPDIR)/fchown32.Po \
+-	./$(DEPDIR)/fchownat.Po ./$(DEPDIR)/fcntl.Po \
+-	./$(DEPDIR)/fcntl64.Po ./$(DEPDIR)/fdatasync.Po \
++	./$(DEPDIR)/fchownat.Po \
++	./$(DEPDIR)/fcntl--pidns-translation.Po ./$(DEPDIR)/fcntl.Po \
++	./$(DEPDIR)/fcntl64--pidns-translation.Po ./$(DEPDIR)/fcntl64.Po \
++	./$(DEPDIR)/fdatasync.Po \
+ 	./$(DEPDIR)/fflush.Po ./$(DEPDIR)/file_handle.Po \
+ 	./$(DEPDIR)/file_ioctl.Po ./$(DEPDIR)/filter-unavailable.Po \
+ 	./$(DEPDIR)/filter_seccomp-flag.Po \
+ 	./$(DEPDIR)/filter_seccomp-perf.Po ./$(DEPDIR)/finit_module.Po \
+-	./$(DEPDIR)/flock.Po ./$(DEPDIR)/fork-f.Po \
++	./$(DEPDIR)/flock.Po ./$(DEPDIR)/fork--pidns-translation.Po ./$(DEPDIR)/fork-f.Po \
+ 	./$(DEPDIR)/fsconfig-P.Po ./$(DEPDIR)/fsconfig.Po \
+ 	./$(DEPDIR)/fsmount.Po ./$(DEPDIR)/fsopen.Po \
+ 	./$(DEPDIR)/fspick-P.Po ./$(DEPDIR)/fspick.Po \
+@@ -3786,13 +4011,14 @@
+ 	./$(DEPDIR)/geteuid32.Po ./$(DEPDIR)/getgid.Po \
+ 	./$(DEPDIR)/getgid32.Po ./$(DEPDIR)/getgroups.Po \
+ 	./$(DEPDIR)/getgroups32.Po ./$(DEPDIR)/getpeername.Po \
+-	./$(DEPDIR)/getpgrp.Po ./$(DEPDIR)/getpid.Po \
++	./$(DEPDIR)/getpgrp--pidns-translation.Po ./$(DEPDIR)/getpgrp.Po \
++	./$(DEPDIR)/getpid--pidns-translation.Po ./$(DEPDIR)/getpid.Po \
+ 	./$(DEPDIR)/getppid.Po ./$(DEPDIR)/getrandom.Po \
+ 	./$(DEPDIR)/getresgid.Po ./$(DEPDIR)/getresgid32.Po \
+ 	./$(DEPDIR)/getresuid.Po ./$(DEPDIR)/getresuid32.Po \
+ 	./$(DEPDIR)/getrlimit.Po ./$(DEPDIR)/getrusage.Po \
+-	./$(DEPDIR)/getsid.Po ./$(DEPDIR)/getsockname.Po \
+-	./$(DEPDIR)/gettid.Po ./$(DEPDIR)/getuid.Po \
++	./$(DEPDIR)/getsid--pidns-translation.Po ./$(DEPDIR)/getsid.Po ./$(DEPDIR)/getsockname.Po \
++	./$(DEPDIR)/gettid--pidns-translation.Po ./$(DEPDIR)/gettid.Po ./$(DEPDIR)/getuid.Po \
+ 	./$(DEPDIR)/getuid32.Po ./$(DEPDIR)/getxgid.Po \
+ 	./$(DEPDIR)/getxpid.Po ./$(DEPDIR)/getxuid.Po \
+ 	./$(DEPDIR)/group_req.Po ./$(DEPDIR)/inet-cmsg.Po \
+@@ -3802,7 +4028,7 @@
+ 	./$(DEPDIR)/inotify_init1.Po ./$(DEPDIR)/int_0x80.Po \
+ 	./$(DEPDIR)/io_uring_enter.Po ./$(DEPDIR)/io_uring_register.Po \
+ 	./$(DEPDIR)/io_uring_setup.Po ./$(DEPDIR)/ioctl.Po \
+-	./$(DEPDIR)/ioctl_block.Po ./$(DEPDIR)/ioctl_dm-v.Po \
++	./$(DEPDIR)/ioctl_block--pidns-translation.Po ./$(DEPDIR)/ioctl_block.Po ./$(DEPDIR)/ioctl_dm-v.Po \
+ 	./$(DEPDIR)/ioctl_dm.Po ./$(DEPDIR)/ioctl_evdev-Xabbrev.Po \
+ 	./$(DEPDIR)/ioctl_evdev-Xraw.Po \
+ 	./$(DEPDIR)/ioctl_evdev-Xverbose.Po \
+@@ -3861,7 +4087,7 @@
+ 	./$(DEPDIR)/ioctl_v4l2-v-Xverbose.Po \
+ 	./$(DEPDIR)/ioctl_v4l2-v.Po ./$(DEPDIR)/ioctl_v4l2.Po \
+ 	./$(DEPDIR)/ioctl_watchdog.Po ./$(DEPDIR)/ioperm.Po \
+-	./$(DEPDIR)/iopl.Po ./$(DEPDIR)/ioprio-Xabbrev.Po \
++	./$(DEPDIR)/iopl.Po ./$(DEPDIR)/ioprio--pidns-translation.Po ./$(DEPDIR)/ioprio-Xabbrev.Po \
+ 	./$(DEPDIR)/ioprio-Xraw.Po ./$(DEPDIR)/ioprio-Xverbose.Po \
+ 	./$(DEPDIR)/ioprio.Po ./$(DEPDIR)/ip_mreq.Po \
+ 	./$(DEPDIR)/ipc.Po ./$(DEPDIR)/ipc_msg-Xabbrev.Po \
+@@ -3873,15 +4099,15 @@
+ 	./$(DEPDIR)/ipc_sem-Xverbose.Po ./$(DEPDIR)/ipc_sem.Po \
+ 	./$(DEPDIR)/ipc_shm-Xabbrev.Po ./$(DEPDIR)/ipc_shm-Xraw.Po \
+ 	./$(DEPDIR)/ipc_shm-Xverbose.Po ./$(DEPDIR)/ipc_shm.Po \
+-	./$(DEPDIR)/is_linux_mips_n64.Po ./$(DEPDIR)/kcmp-y.Po \
+-	./$(DEPDIR)/kcmp.Po ./$(DEPDIR)/kern_features.Po \
++	./$(DEPDIR)/is_linux_mips_n64.Po ./$(DEPDIR)/kcmp-y--pidns-translation.Po \
++	./$(DEPDIR)/kcmp-y.Po ./$(DEPDIR)/kcmp.Po ./$(DEPDIR)/kern_features.Po \
+ 	./$(DEPDIR)/kernel_version-Xabbrev.Po \
+ 	./$(DEPDIR)/kernel_version-Xraw.Po \
+ 	./$(DEPDIR)/kernel_version-Xverbose.Po \
+ 	./$(DEPDIR)/kernel_version.Po ./$(DEPDIR)/kexec_file_load.Po \
+ 	./$(DEPDIR)/kexec_load.Po ./$(DEPDIR)/keyctl-Xabbrev.Po \
+ 	./$(DEPDIR)/keyctl-Xraw.Po ./$(DEPDIR)/keyctl-Xverbose.Po \
+-	./$(DEPDIR)/keyctl.Po ./$(DEPDIR)/kill.Po \
++	./$(DEPDIR)/keyctl.Po ./$(DEPDIR)/kill--pidns-translation.Po ./$(DEPDIR)/kill.Po \
+ 	./$(DEPDIR)/kill_child.Po ./$(DEPDIR)/ksysent.Po \
+ 	./$(DEPDIR)/lchown.Po ./$(DEPDIR)/lchown32.Po \
+ 	./$(DEPDIR)/libtests_a-create_nl_socket.Po \
+@@ -3915,7 +4141,8 @@
+ 	./$(DEPDIR)/libtests_a-test_printpath.Po \
+ 	./$(DEPDIR)/libtests_a-test_printstrn.Po \
+ 	./$(DEPDIR)/libtests_a-test_ucopy.Po \
+-	./$(DEPDIR)/libtests_a-tprintf.Po ./$(DEPDIR)/link.Po \
++	./$(DEPDIR)/libtests_a-tprintf.Po \
++	./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po ./$(DEPDIR)/link.Po \
+ 	./$(DEPDIR)/linkat.Po ./$(DEPDIR)/list_sigaction_signum.Po \
+ 	./$(DEPDIR)/llseek.Po ./$(DEPDIR)/localtime.Po \
+ 	./$(DEPDIR)/lookup_dcookie.Po ./$(DEPDIR)/looping_threads.Po \
+@@ -3928,7 +4155,9 @@
+ 	./$(DEPDIR)/membarrier.Po ./$(DEPDIR)/memfd_create-Xabbrev.Po \
+ 	./$(DEPDIR)/memfd_create-Xraw.Po \
+ 	./$(DEPDIR)/memfd_create-Xverbose.Po \
+-	./$(DEPDIR)/memfd_create.Po ./$(DEPDIR)/migrate_pages.Po \
++	./$(DEPDIR)/memfd_create.Po \
++	./$(DEPDIR)/migrate_pages--pidns-translation.Po \
++	./$(DEPDIR)/migrate_pages.Po \
+ 	./$(DEPDIR)/mincore.Po ./$(DEPDIR)/mkdir.Po \
+ 	./$(DEPDIR)/mkdirat.Po ./$(DEPDIR)/mknod.Po \
+ 	./$(DEPDIR)/mknodat.Po ./$(DEPDIR)/mlock.Po \
+@@ -3944,7 +4173,7 @@
+ 	./$(DEPDIR)/modify_ldt.Po ./$(DEPDIR)/mount-Xabbrev.Po \
+ 	./$(DEPDIR)/mount-Xraw.Po ./$(DEPDIR)/mount-Xverbose.Po \
+ 	./$(DEPDIR)/mount.Po ./$(DEPDIR)/move_mount-P.Po \
+-	./$(DEPDIR)/move_mount.Po ./$(DEPDIR)/move_pages-Xabbrev.Po \
++	./$(DEPDIR)/move_mount.Po ./$(DEPDIR)/move_pages--pidns-translation.Po ./$(DEPDIR)/move_pages-Xabbrev.Po \
+ 	./$(DEPDIR)/move_pages-Xraw.Po \
+ 	./$(DEPDIR)/move_pages-Xverbose.Po ./$(DEPDIR)/move_pages.Po \
+ 	./$(DEPDIR)/mq.Po ./$(DEPDIR)/mq_sendrecv-read.Po \
+@@ -3961,12 +4190,13 @@
+ 	./$(DEPDIR)/net-packet_mreq-Xabbrev.Po \
+ 	./$(DEPDIR)/net-packet_mreq-Xraw.Po \
+ 	./$(DEPDIR)/net-packet_mreq-Xverbose.Po \
+-	./$(DEPDIR)/net-packet_mreq.Po ./$(DEPDIR)/net-sockaddr.Po \
++	./$(DEPDIR)/net-packet_mreq.Po ./$(DEPDIR)/net-sockaddr--pidns-translation.Po ./$(DEPDIR)/net-sockaddr.Po \
+ 	./$(DEPDIR)/net-tpacket_req.Po \
+ 	./$(DEPDIR)/net-tpacket_stats-success.Po \
+ 	./$(DEPDIR)/net-tpacket_stats.Po ./$(DEPDIR)/net-y-unix.Po \
+ 	./$(DEPDIR)/net-yy-inet.Po ./$(DEPDIR)/net-yy-inet6.Po \
+ 	./$(DEPDIR)/net-yy-netlink.Po ./$(DEPDIR)/net-yy-unix.Po \
++	./$(DEPDIR)/netlink_audit--pidns-translation.Po \
+ 	./$(DEPDIR)/netlink_audit.Po ./$(DEPDIR)/netlink_crypto.Po \
+ 	./$(DEPDIR)/netlink_generic.Po \
+ 	./$(DEPDIR)/netlink_inet_diag.Po \
+@@ -4043,9 +4273,11 @@
+ 	./$(DEPDIR)/pidfd_open--decode-fd-path.Po \
+ 	./$(DEPDIR)/pidfd_open--decode-fd-pidfd.Po \
+ 	./$(DEPDIR)/pidfd_open--decode-fd-socket.Po \
++	./$(DEPDIR)/pidfd_open--pidns-translation.Po \
+ 	./$(DEPDIR)/pidfd_open-P.Po ./$(DEPDIR)/pidfd_open-y.Po \
+ 	./$(DEPDIR)/pidfd_open-yy.Po ./$(DEPDIR)/pidfd_open.Po \
+-	./$(DEPDIR)/pidfd_send_signal.Po ./$(DEPDIR)/pipe.Po \
++	./$(DEPDIR)/pidfd_send_signal--pidns-translation.Po \
++	./$(DEPDIR)/pidfd_send_signal.Po ./$(DEPDIR)/pidns-cache.Po ./$(DEPDIR)/pipe.Po \
+ 	./$(DEPDIR)/pipe2.Po ./$(DEPDIR)/pkey_alloc.Po \
+ 	./$(DEPDIR)/pkey_free.Po ./$(DEPDIR)/pkey_mprotect.Po \
+ 	./$(DEPDIR)/poll-P.Po ./$(DEPDIR)/poll.Po \
+@@ -4070,8 +4302,10 @@
+ 	./$(DEPDIR)/printsignal-Xverbose.Po ./$(DEPDIR)/printstr.Po \
+ 	./$(DEPDIR)/printstrn-umoven-peekdata.Po \
+ 	./$(DEPDIR)/printstrn-umoven-undumpable.Po \
+-	./$(DEPDIR)/printstrn-umoven.Po ./$(DEPDIR)/prlimit64.Po \
++	./$(DEPDIR)/printstrn-umoven.Po ./$(DEPDIR)/prlimit64--pidns-translation.Po ./$(DEPDIR)/prlimit64.Po \
++	./$(DEPDIR)/process_vm_readv--pidns-translation.Po \
+ 	./$(DEPDIR)/process_vm_readv.Po \
++	./$(DEPDIR)/process_vm_writev--pidns-translation.Po \
+ 	./$(DEPDIR)/process_vm_writev.Po ./$(DEPDIR)/pselect6.Po \
+ 	./$(DEPDIR)/ptrace.Po ./$(DEPDIR)/ptrace_syscall_info.Po \
+ 	./$(DEPDIR)/pwritev-pwritev.Po ./$(DEPDIR)/qual_fault.Po \
+@@ -4101,9 +4335,10 @@
+ 	./$(DEPDIR)/request_key.Po ./$(DEPDIR)/restart_syscall.Po \
+ 	./$(DEPDIR)/riscv_flush_icache.Po ./$(DEPDIR)/rmdir.Po \
+ 	./$(DEPDIR)/rt_sigaction.Po ./$(DEPDIR)/rt_sigpending.Po \
+-	./$(DEPDIR)/rt_sigprocmask.Po ./$(DEPDIR)/rt_sigqueueinfo.Po \
++	./$(DEPDIR)/rt_sigprocmask.Po ./$(DEPDIR)/rt_sigqueueinfo--pidns-translation.Po ./$(DEPDIR)/rt_sigqueueinfo.Po \
+ 	./$(DEPDIR)/rt_sigreturn.Po ./$(DEPDIR)/rt_sigsuspend.Po \
+ 	./$(DEPDIR)/rt_sigtimedwait.Po \
++	./$(DEPDIR)/rt_tgsigqueueinfo--pidns-translation.Po \
+ 	./$(DEPDIR)/rt_tgsigqueueinfo.Po \
+ 	./$(DEPDIR)/run_expect_termsig.Po \
+ 	./$(DEPDIR)/s390_guarded_storage-v.Po \
+@@ -4113,9 +4348,15 @@
+ 	./$(DEPDIR)/s390_sthyi.Po \
+ 	./$(DEPDIR)/sched_get_priority_mxx.Po \
+ 	./$(DEPDIR)/sched_rr_get_interval.Po \
+-	./$(DEPDIR)/sched_xetaffinity.Po ./$(DEPDIR)/sched_xetattr.Po \
++	./$(DEPDIR)/sched_xetaffinity--pidns-translation.Po \
++	./$(DEPDIR)/sched_xetaffinity.Po \
++	./$(DEPDIR)/sched_xetattr--pidns-translation.Po \
++	./$(DEPDIR)/sched_xetattr.Po \
++	./$(DEPDIR)/sched_xetparam--pidns-translation.Po \
+ 	./$(DEPDIR)/sched_xetparam.Po \
+-	./$(DEPDIR)/sched_xetscheduler.Po ./$(DEPDIR)/sched_yield.Po \
++	./$(DEPDIR)/sched_xetscheduler--pidns-translation.Po \
++	./$(DEPDIR)/sched_xetscheduler.Po \
++	./$(DEPDIR)/sched_yield.Po \
+ 	./$(DEPDIR)/scm_rights.Po ./$(DEPDIR)/seccomp-filter-v.Po \
+ 	./$(DEPDIR)/seccomp-filter.Po ./$(DEPDIR)/seccomp-strict.Po \
+ 	./$(DEPDIR)/seccomp_get_action_avail.Po \
+@@ -4143,11 +4384,12 @@
+ 	./$(DEPDIR)/shmxt.Po ./$(DEPDIR)/shutdown.Po \
+ 	./$(DEPDIR)/sigaction.Po ./$(DEPDIR)/sigaltstack.Po \
+ 	./$(DEPDIR)/siginfo.Po ./$(DEPDIR)/signal.Po \
+-	./$(DEPDIR)/signal_receive.Po ./$(DEPDIR)/signalfd4.Po \
++	./$(DEPDIR)/signal_receive--pidns-translation.Po ./$(DEPDIR)/signal_receive.Po ./$(DEPDIR)/signalfd4.Po \
+ 	./$(DEPDIR)/sigpending.Po ./$(DEPDIR)/sigprocmask.Po \
+ 	./$(DEPDIR)/sigreturn.Po ./$(DEPDIR)/sigsuspend.Po \
+ 	./$(DEPDIR)/sleep.Po ./$(DEPDIR)/so_error.Po \
+-	./$(DEPDIR)/so_linger.Po ./$(DEPDIR)/so_peercred-Xabbrev.Po \
++	./$(DEPDIR)/so_linger.Po ./$(DEPDIR)/so_peercred--pidns-translation.Po \
++	./$(DEPDIR)/so_peercred-Xabbrev.Po \
+ 	./$(DEPDIR)/so_peercred-Xraw.Po \
+ 	./$(DEPDIR)/so_peercred-Xverbose.Po ./$(DEPDIR)/so_peercred.Po \
+ 	./$(DEPDIR)/sock_filter-v-Xabbrev.Po \
+@@ -4186,7 +4428,7 @@
+ 	./$(DEPDIR)/symlinkat.Po ./$(DEPDIR)/sync.Po \
+ 	./$(DEPDIR)/sync_file_range.Po ./$(DEPDIR)/sync_file_range2.Po \
+ 	./$(DEPDIR)/sysinfo.Po ./$(DEPDIR)/syslog-success.Po \
+-	./$(DEPDIR)/syslog.Po ./$(DEPDIR)/tee.Po ./$(DEPDIR)/tgkill.Po \
++	./$(DEPDIR)/syslog.Po ./$(DEPDIR)/tee.Po ./$(DEPDIR)/tgkill--pidns-translation.Po ./$(DEPDIR)/tgkill.Po \
+ 	./$(DEPDIR)/threads-execve--quiet-thread-execve.Po \
+ 	./$(DEPDIR)/threads-execve-q.Po \
+ 	./$(DEPDIR)/threads-execve-qq.Po \
+@@ -4194,7 +4436,8 @@
+ 	./$(DEPDIR)/threads-execve.Po ./$(DEPDIR)/time.Po \
+ 	./$(DEPDIR)/timer_create.Po ./$(DEPDIR)/timer_xettime.Po \
+ 	./$(DEPDIR)/timerfd_xettime.Po ./$(DEPDIR)/times-fail.Po \
+-	./$(DEPDIR)/times.Po ./$(DEPDIR)/tkill.Po ./$(DEPDIR)/tracer_ppid_pgid_sid.Po \
++	./$(DEPDIR)/times.Po ./$(DEPDIR)/tkill--pidns-translation.Po \
++	./$(DEPDIR)/tkill.Po ./$(DEPDIR)/tracer_ppid_pgid_sid.Po \
+ 	./$(DEPDIR)/truncate.Po ./$(DEPDIR)/truncate64-truncate64.Po \
+ 	./$(DEPDIR)/ugetrlimit.Po ./$(DEPDIR)/uio-uio.Po \
+ 	./$(DEPDIR)/umask.Po ./$(DEPDIR)/umount.Po \
+@@ -4216,9 +4459,11 @@
+ 	./$(DEPDIR)/wait4-v.Po ./$(DEPDIR)/wait4.Po \
+ 	./$(DEPDIR)/waitid-v.Po ./$(DEPDIR)/waitid.Po \
+ 	./$(DEPDIR)/waitpid.Po ./$(DEPDIR)/xattr-strings.Po \
+-	./$(DEPDIR)/xattr.Po ./$(DEPDIR)/xet_robust_list.Po \
++	./$(DEPDIR)/xattr.Po ./$(DEPDIR)/xet_robust_list--pidns-translation.Po \
++	./$(DEPDIR)/xet_robust_list.Po \
+ 	./$(DEPDIR)/xet_thread_area_x86.Po ./$(DEPDIR)/xetitimer.Po \
+-	./$(DEPDIR)/xetpgid.Po ./$(DEPDIR)/xetpriority.Po \
++	./$(DEPDIR)/xetpgid--pidns-translation.Po ./$(DEPDIR)/xetpgid.Po \
++	./$(DEPDIR)/xetpriority--pidns-translation.Po ./$(DEPDIR)/xetpriority.Po \
+ 	./$(DEPDIR)/xettimeofday.Po ./$(DEPDIR)/zeroargc.Po
+ am__mv = mv -f
+ AM_V_lt = $(am__v_lt_@AM_V@)
+@@ -4264,26 +4509,30 @@
+ 	fadvise64_64.c fallocate.c fanotify_init.c fanotify_mark.c \
+ 	fanotify_mark-Xabbrev.c fanotify_mark-Xraw.c \
+ 	fanotify_mark-Xverbose.c fchdir.c fchmod.c fchmodat.c fchown.c \
+-	fchown32.c fchownat.c fcntl.c fcntl64.c fdatasync.c fflush.c \
++	fchown32.c fchownat.c fcntl.c fcntl--pidns-translation.c \
++	fcntl64.c fcntl64--pidns-translation.c fdatasync.c fflush.c \
+ 	file_handle.c file_ioctl.c filter-unavailable.c \
+ 	filter_seccomp-flag.c filter_seccomp-perf.c finit_module.c \
+-	flock.c fork-f.c fsconfig.c fsconfig-P.c fsmount.c fsopen.c \
+-	fspick.c fspick-P.c fstat.c fstat-Xabbrev.c fstat-Xraw.c \
+-	fstat-Xverbose.c fstat64.c fstat64-Xabbrev.c fstat64-Xraw.c \
+-	fstat64-Xverbose.c fstatat64.c fstatfs.c fstatfs64.c fsync.c \
+-	fsync-y.c ftruncate.c ftruncate64.c futex.c futimesat.c \
+-	get_mempolicy.c get_process_reaper.c getcpu.c getcwd.c \
+-	getdents.c getdents-v.c getdents64.c getdents64-v.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 getxgid.c getxpid.c getxuid.c \
+-	group_req.c inet-cmsg.c init_module.c inject-nf.c inotify.c \
+-	inotify_init.c inotify_init-y.c inotify_init1.c \
+-	inotify_init1-y.c int_0x80.c io_uring_enter.c \
+-	io_uring_register.c io_uring_setup.c ioctl.c ioctl_block.c \
+-	ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-Xabbrev.c \
++	flock.c fork--pidns-translation.c fork-f.c fsconfig.c \
++	fsconfig-P.c fsmount.c fsopen.c fspick.c fspick-P.c fstat.c \
++	fstat-Xabbrev.c fstat-Xraw.c fstat-Xverbose.c fstat64.c \
++	fstat64-Xabbrev.c fstat64-Xraw.c fstat64-Xverbose.c \
++	fstatat64.c fstatfs.c fstatfs64.c fsync.c fsync-y.c \
++	ftruncate.c ftruncate64.c futex.c futimesat.c get_mempolicy.c \
++	get_process_reaper.c getcpu.c getcwd.c getdents.c getdents-v.c \
++	getdents64.c getdents64-v.c getegid.c getegid32.c geteuid.c \
++	geteuid32.c getgid.c getgid32.c getgroups.c getgroups32.c \
++	getpeername.c getpgrp.c getpgrp--pidns-translation.c getpid.c \
++	getpid--pidns-translation.c getppid.c getrandom.c getresgid.c \
++	getresgid32.c getresuid.c getresuid32.c getrlimit.c \
++	getrusage.c getsid.c getsid--pidns-translation.c getsockname.c \
++	gettid.c gettid--pidns-translation.c getuid.c getuid32.c \
++	getxgid.c getxpid.c getxuid.c group_req.c inet-cmsg.c \
++	init_module.c inject-nf.c inotify.c inotify_init.c \
++	inotify_init-y.c inotify_init1.c inotify_init1-y.c int_0x80.c \
++	io_uring_enter.c io_uring_register.c io_uring_setup.c ioctl.c \
++	ioctl_block.c ioctl_block--pidns-translation.c ioctl_dm.c \
++	ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-Xabbrev.c \
+ 	ioctl_evdev-Xraw.c ioctl_evdev-Xverbose.c \
+ 	ioctl_evdev-success.c ioctl_evdev-success-Xabbrev.c \
+ 	ioctl_evdev-success-Xraw.c ioctl_evdev-success-Xverbose.c \
+@@ -4311,47 +4560,51 @@
+ 	ioctl_v4l2-success-v-Xverbose.c ioctl_v4l2-v.c \
+ 	ioctl_v4l2-v-Xabbrev.c ioctl_v4l2-v-Xraw.c \
+ 	ioctl_v4l2-v-Xverbose.c ioctl_watchdog.c ioperm.c iopl.c \
+-	ioprio.c ioprio-Xabbrev.c ioprio-Xraw.c ioprio-Xverbose.c \
+-	ip_mreq.c ipc.c ipc_msg.c ipc_msg-Xabbrev.c ipc_msg-Xraw.c \
+-	ipc_msg-Xverbose.c ipc_msgbuf.c ipc_msgbuf-Xabbrev.c \
+-	ipc_msgbuf-Xraw.c ipc_msgbuf-Xverbose.c ipc_sem.c \
+-	ipc_sem-Xabbrev.c ipc_sem-Xraw.c ipc_sem-Xverbose.c ipc_shm.c \
+-	ipc_shm-Xabbrev.c ipc_shm-Xraw.c ipc_shm-Xverbose.c \
+-	is_linux_mips_n64.c kcmp.c kcmp-y.c kern_features.c \
++	ioprio.c ioprio--pidns-translation.c ioprio-Xabbrev.c \
++	ioprio-Xraw.c ioprio-Xverbose.c ip_mreq.c ipc.c ipc_msg.c \
++	ipc_msg-Xabbrev.c ipc_msg-Xraw.c ipc_msg-Xverbose.c \
++	ipc_msgbuf.c ipc_msgbuf-Xabbrev.c ipc_msgbuf-Xraw.c \
++	ipc_msgbuf-Xverbose.c ipc_sem.c ipc_sem-Xabbrev.c \
++	ipc_sem-Xraw.c ipc_sem-Xverbose.c ipc_shm.c ipc_shm-Xabbrev.c \
++	ipc_shm-Xraw.c ipc_shm-Xverbose.c is_linux_mips_n64.c kcmp.c \
++	kcmp-y.c kcmp-y--pidns-translation.c kern_features.c \
+ 	kernel_version.c kernel_version-Xabbrev.c \
+ 	kernel_version-Xraw.c kernel_version-Xverbose.c \
+ 	kexec_file_load.c kexec_load.c keyctl.c keyctl-Xabbrev.c \
+-	keyctl-Xraw.c keyctl-Xverbose.c kill.c kill_child.c ksysent.c \
+-	lchown.c lchown32.c link.c linkat.c list_sigaction_signum.c \
+-	llseek.c localtime.c lookup_dcookie.c looping_threads.c \
+-	lseek.c lstat.c lstat64.c madvise.c maybe_switch_current_tcp.c \
++	keyctl-Xraw.c keyctl-Xverbose.c kill.c \
++	kill--pidns-translation.c kill_child.c ksysent.c lchown.c \
++	lchown32.c link.c linkat.c list_sigaction_signum.c llseek.c \
++	localtime.c lookup_dcookie.c looping_threads.c lseek.c lstat.c \
++	lstat64.c madvise.c maybe_switch_current_tcp.c \
+ 	maybe_switch_current_tcp--quiet-thread-execve.c mbind.c \
+ 	mbind-Xabbrev.c mbind-Xraw.c mbind-Xverbose.c membarrier.c \
+ 	memfd_create.c memfd_create-Xabbrev.c memfd_create-Xraw.c \
+-	memfd_create-Xverbose.c migrate_pages.c mincore.c mkdir.c \
+-	mkdirat.c mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c \
++	memfd_create-Xverbose.c migrate_pages.c \
++	migrate_pages--pidns-translation.c mincore.c mkdir.c mkdirat.c \
++	mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c \
+ 	mmap-Xabbrev.c mmap-Xraw.c mmap-Xverbose.c mmap64.c \
+ 	mmap64-Xabbrev.c mmap64-Xraw.c mmap64-Xverbose.c mmsg.c \
+ 	mmsg-silent.c mmsg_name.c mmsg_name-v.c modify_ldt.c mount.c \
+ 	mount-Xabbrev.c mount-Xraw.c mount-Xverbose.c move_mount.c \
+-	move_mount-P.c move_pages.c move_pages-Xabbrev.c \
+-	move_pages-Xraw.c move_pages-Xverbose.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--decode-fds-dev-netlink.c net--decode-fds-none-netlink.c \
+-	net--decode-fds-path-netlink.c \
++	move_mount-P.c move_pages.c move_pages--pidns-translation.c \
++	move_pages-Xabbrev.c move_pages-Xraw.c move_pages-Xverbose.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--decode-fds-dev-netlink.c \
++	net--decode-fds-none-netlink.c net--decode-fds-path-netlink.c \
+ 	net--decode-fds-socket-netlink.c net-accept-connect.c \
+ 	net-icmp_filter.c net-packet_mreq.c net-packet_mreq-Xabbrev.c \
+ 	net-packet_mreq-Xraw.c net-packet_mreq-Xverbose.c \
+-	net-sockaddr.c net-tpacket_req.c net-tpacket_stats.c \
++	net-sockaddr.c net-sockaddr--pidns-translation.c \
++	net-tpacket_req.c net-tpacket_stats.c \
+ 	net-tpacket_stats-success.c net-y-unix.c net-yy-inet.c \
+ 	net-yy-inet6.c net-yy-netlink.c net-yy-unix.c netlink_audit.c \
+-	netlink_crypto.c netlink_generic.c netlink_inet_diag.c \
+-	netlink_kobject_uevent.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 nfnetlink_acct.c \
+-	nfnetlink_cthelper.c nfnetlink_ctnetlink.c \
++	netlink_audit--pidns-translation.c netlink_crypto.c \
++	netlink_generic.c netlink_inet_diag.c netlink_kobject_uevent.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 \
++	nfnetlink_acct.c nfnetlink_cthelper.c nfnetlink_ctnetlink.c \
+ 	nfnetlink_ctnetlink_exp.c nfnetlink_cttimeout.c \
+ 	nfnetlink_ipset.c nfnetlink_nft_compat.c nfnetlink_nftables.c \
+ 	nfnetlink_osf.c nfnetlink_queue.c nfnetlink_ulog.c nlattr.c \
+@@ -4381,12 +4634,13 @@
+ 	personality-Xraw.c personality-Xverbose.c pidfd_getfd.c \
+ 	pidfd_getfd-y.c pidfd_getfd-yy.c pidfd_open.c \
+ 	pidfd_open--decode-fd-path.c pidfd_open--decode-fd-pidfd.c \
+-	pidfd_open--decode-fd-socket.c pidfd_open-P.c pidfd_open-y.c \
+-	pidfd_open-yy.c pidfd_send_signal.c pipe.c pipe2.c \
+-	pkey_alloc.c pkey_free.c pkey_mprotect.c poll.c poll-P.c \
+-	ppoll.c ppoll-P.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 \
++	pidfd_open--decode-fd-socket.c pidfd_open--pidns-translation.c \
++	pidfd_open-P.c pidfd_open-y.c pidfd_open-yy.c \
++	pidfd_send_signal.c pidfd_send_signal--pidns-translation.c \
++	pidns-cache.c pipe.c pipe2.c pkey_alloc.c pkey_free.c \
++	pkey_mprotect.c poll.c poll-P.c ppoll.c ppoll-P.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-spec-inject.c \
+ 	prctl-tid_address.c prctl-tsc.c pread64-pwrite64.c preadv.c \
+ 	preadv-pwritev.c preadv2-pwritev2.c print_maxfd.c \
+@@ -4395,8 +4649,10 @@
+ 	printsignal-Xabbrev.c printsignal-Xraw.c \
+ 	printsignal-Xverbose.c printstr.c printstrn-umoven.c \
+ 	printstrn-umoven-peekdata.c printstrn-umoven-undumpable.c \
+-	prlimit64.c process_vm_readv.c process_vm_writev.c pselect6.c \
+-	ptrace.c ptrace_syscall_info.c pwritev.c qual_fault.c \
++	prlimit64.c prlimit64--pidns-translation.c process_vm_readv.c \
++	process_vm_readv--pidns-translation.c process_vm_writev.c \
++	process_vm_writev--pidns-translation.c pselect6.c ptrace.c \
++	ptrace_syscall_info.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-Xabbrev.c quotactl-Xraw.c quotactl-Xverbose.c \
+@@ -4409,60 +4665,70 @@
+ 	remap_file_pages-Xraw.c remap_file_pages-Xverbose.c rename.c \
+ 	renameat.c renameat2.c request_key.c restart_syscall.c \
+ 	riscv_flush_icache.c rmdir.c rt_sigaction.c rt_sigpending.c \
+-	rt_sigprocmask.c rt_sigqueueinfo.c rt_sigreturn.c \
++	rt_sigprocmask.c rt_sigqueueinfo.c \
++	rt_sigqueueinfo--pidns-translation.c rt_sigreturn.c \
+ 	rt_sigsuspend.c rt_sigtimedwait.c rt_tgsigqueueinfo.c \
+-	run_expect_termsig.c s390_guarded_storage.c \
+-	s390_guarded_storage-v.c s390_pci_mmio_read_write.c \
+-	s390_runtime_instr.c s390_sthyi.c s390_sthyi-v.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 \
+-	seccomp_get_action_avail.c select.c select-P.c semop.c \
+-	semop-indirect.c semtimedop.c sendfile.c sendfile64.c \
+-	set_mempolicy.c set_mempolicy-Xabbrev.c set_mempolicy-Xraw.c \
+-	set_mempolicy-Xverbose.c set_ptracer_any.c set_sigblock.c \
+-	set_sigign.c setdomainname.c setfsgid.c setfsgid32.c \
+-	setfsuid.c setfsuid32.c setgid.c setgid32.c setgroups.c \
+-	setgroups32.c sethostname.c setns.c setpgrp-exec.c setregid.c \
+-	setregid32.c setresgid.c setresgid32.c setresuid.c \
+-	setresuid32.c setreuid.c setreuid32.c setrlimit.c \
+-	setrlimit-Xabbrev.c setrlimit-Xraw.c setrlimit-Xverbose.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 \
+-	so_error.c so_linger.c so_peercred.c so_peercred-Xabbrev.c \
+-	so_peercred-Xraw.c so_peercred-Xverbose.c sock_filter-v.c \
+-	sock_filter-v-Xabbrev.c sock_filter-v-Xraw.c \
+-	sock_filter-v-Xverbose.c sockaddr_xlat-Xabbrev.c \
+-	sockaddr_xlat-Xraw.c sockaddr_xlat-Xverbose.c socketcall.c \
+-	sockopt-sol_netlink.c sockopt-timestamp.c splice.c \
+-	$(stack_fcall_SOURCES) $(stack_fcall_attach_SOURCES) \
+-	$(stack_fcall_mangled_SOURCES) stat.c stat64.c statfs.c \
+-	statfs64.c status-all.c status-failed.c status-failed-long.c \
+-	status-failed-status.c status-none.c status-none-f.c \
+-	status-none-threads.c status-successful.c \
+-	status-successful-long.c status-successful-status.c \
+-	status-unfinished.c status-unfinished-threads.c statx.c \
+-	strace--strings-in-hex.c strace--strings-in-hex-all.c \
++	rt_tgsigqueueinfo--pidns-translation.c run_expect_termsig.c \
++	s390_guarded_storage.c s390_guarded_storage-v.c \
++	s390_pci_mmio_read_write.c s390_runtime_instr.c s390_sthyi.c \
++	s390_sthyi-v.c sched_get_priority_mxx.c \
++	sched_rr_get_interval.c sched_xetaffinity.c \
++	sched_xetaffinity--pidns-translation.c sched_xetattr.c \
++	sched_xetattr--pidns-translation.c sched_xetparam.c \
++	sched_xetparam--pidns-translation.c sched_xetscheduler.c \
++	sched_xetscheduler--pidns-translation.c sched_yield.c \
++	scm_rights.c seccomp-filter.c seccomp-filter-v.c \
++	seccomp-strict.c seccomp_get_action_avail.c select.c \
++	select-P.c semop.c semop-indirect.c semtimedop.c sendfile.c \
++	sendfile64.c set_mempolicy.c set_mempolicy-Xabbrev.c \
++	set_mempolicy-Xraw.c set_mempolicy-Xverbose.c \
++	set_ptracer_any.c set_sigblock.c set_sigign.c setdomainname.c \
++	setfsgid.c setfsgid32.c setfsuid.c setfsuid32.c setgid.c \
++	setgid32.c setgroups.c setgroups32.c sethostname.c setns.c \
++	setpgrp-exec.c setregid.c setregid32.c setresgid.c \
++	setresgid32.c setresuid.c setresuid32.c setreuid.c \
++	setreuid32.c setrlimit.c setrlimit-Xabbrev.c setrlimit-Xraw.c \
++	setrlimit-Xverbose.c setuid.c setuid32.c shmxt.c shutdown.c \
++	sigaction.c sigaltstack.c siginfo.c signal.c signal_receive.c \
++	signal_receive--pidns-translation.c signalfd4.c sigpending.c \
++	sigprocmask.c sigreturn.c sigsuspend.c sleep.c so_error.c \
++	so_linger.c so_peercred.c so_peercred--pidns-translation.c \
++	so_peercred-Xabbrev.c so_peercred-Xraw.c \
++	so_peercred-Xverbose.c sock_filter-v.c sock_filter-v-Xabbrev.c \
++	sock_filter-v-Xraw.c sock_filter-v-Xverbose.c \
++	sockaddr_xlat-Xabbrev.c sockaddr_xlat-Xraw.c \
++	sockaddr_xlat-Xverbose.c socketcall.c sockopt-sol_netlink.c \
++	sockopt-timestamp.c splice.c $(stack_fcall_SOURCES) \
++	$(stack_fcall_attach_SOURCES) $(stack_fcall_mangled_SOURCES) \
++	stat.c stat64.c statfs.c statfs64.c status-all.c \
++	status-failed.c status-failed-long.c status-failed-status.c \
++	status-none.c status-none-f.c status-none-threads.c \
++	status-successful.c status-successful-long.c \
++	status-successful-status.c status-unfinished.c \
++	status-unfinished-threads.c statx.c strace--strings-in-hex.c \
++	strace--strings-in-hex-all.c \
+ 	strace--strings-in-hex-non-ascii.c strace-x.c strace-xx.c \
+ 	swap.c sxetmask.c symlink.c symlinkat.c sync.c \
+ 	sync_file_range.c sync_file_range2.c sysinfo.c syslog.c \
+-	syslog-success.c tee.c tgkill.c threads-execve.c \
+-	threads-execve--quiet-thread-execve.c threads-execve-q.c \
+-	threads-execve-qq.c threads-execve-qqq.c time.c timer_create.c \
+-	timer_xettime.c timerfd_xettime.c times.c times-fail.c tkill.c \
+-	tracer_ppid_pgid_sid.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 umovestr_cached.c \
+-	umovestr_cached_adjacent.c uname.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 \
+-	utimensat-Xabbrev.c utimensat-Xraw.c utimensat-Xverbose.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 xet_thread_area_x86.c xetitimer.c xetpgid.c \
+-	xetpriority.c xettimeofday.c zeroargc.c
++	syslog-success.c tee.c tgkill.c tgkill--pidns-translation.c \
++	threads-execve.c threads-execve--quiet-thread-execve.c \
++	threads-execve-q.c threads-execve-qq.c threads-execve-qqq.c \
++	time.c timer_create.c timer_xettime.c timerfd_xettime.c \
++	times.c times-fail.c tkill.c tkill--pidns-translation.c \
++	tracer_ppid_pgid_sid.c $(trie_test_SOURCES) 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 umovestr_cached.c umovestr_cached_adjacent.c \
++	uname.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 utimensat-Xabbrev.c \
++	utimensat-Xraw.c utimensat-Xverbose.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 \
++	xet_robust_list--pidns-translation.c xet_thread_area_x86.c \
++	xetitimer.c xetpgid.c xetpgid--pidns-translation.c \
++	xetpriority.c xetpriority--pidns-translation.c xettimeofday.c \
++	zeroargc.c
+ DIST_SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c \
+ 	accept.c accept4.c access.c acct.c add_key.c adjtimex.c aio.c \
+ 	aio_pgetevents.c alarm.c answer.c attach-f-p.c \
+@@ -4490,26 +4756,30 @@
+ 	fadvise64_64.c fallocate.c fanotify_init.c fanotify_mark.c \
+ 	fanotify_mark-Xabbrev.c fanotify_mark-Xraw.c \
+ 	fanotify_mark-Xverbose.c fchdir.c fchmod.c fchmodat.c fchown.c \
+-	fchown32.c fchownat.c fcntl.c fcntl64.c fdatasync.c fflush.c \
++	fchown32.c fchownat.c fcntl.c fcntl--pidns-translation.c \
++	fcntl64.c fcntl64--pidns-translation.c fdatasync.c fflush.c \
+ 	file_handle.c file_ioctl.c filter-unavailable.c \
+ 	filter_seccomp-flag.c filter_seccomp-perf.c finit_module.c \
+-	flock.c fork-f.c fsconfig.c fsconfig-P.c fsmount.c fsopen.c \
+-	fspick.c fspick-P.c fstat.c fstat-Xabbrev.c fstat-Xraw.c \
+-	fstat-Xverbose.c fstat64.c fstat64-Xabbrev.c fstat64-Xraw.c \
+-	fstat64-Xverbose.c fstatat64.c fstatfs.c fstatfs64.c fsync.c \
+-	fsync-y.c ftruncate.c ftruncate64.c futex.c futimesat.c \
+-	get_mempolicy.c get_process_reaper.c getcpu.c getcwd.c \
+-	getdents.c getdents-v.c getdents64.c getdents64-v.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 getxgid.c getxpid.c getxuid.c \
+-	group_req.c inet-cmsg.c init_module.c inject-nf.c inotify.c \
+-	inotify_init.c inotify_init-y.c inotify_init1.c \
+-	inotify_init1-y.c int_0x80.c io_uring_enter.c \
+-	io_uring_register.c io_uring_setup.c ioctl.c ioctl_block.c \
+-	ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-Xabbrev.c \
++	flock.c fork--pidns-translation.c fork-f.c fsconfig.c \
++	fsconfig-P.c fsmount.c fsopen.c fspick.c fspick-P.c fstat.c \
++	fstat-Xabbrev.c fstat-Xraw.c fstat-Xverbose.c fstat64.c \
++	fstat64-Xabbrev.c fstat64-Xraw.c fstat64-Xverbose.c \
++	fstatat64.c fstatfs.c fstatfs64.c fsync.c fsync-y.c \
++	ftruncate.c ftruncate64.c futex.c futimesat.c get_mempolicy.c \
++	get_process_reaper.c getcpu.c getcwd.c getdents.c getdents-v.c \
++	getdents64.c getdents64-v.c getegid.c getegid32.c geteuid.c \
++	geteuid32.c getgid.c getgid32.c getgroups.c getgroups32.c \
++	getpeername.c getpgrp.c getpgrp--pidns-translation.c getpid.c \
++	getpid--pidns-translation.c getppid.c getrandom.c getresgid.c \
++	getresgid32.c getresuid.c getresuid32.c getrlimit.c \
++	getrusage.c getsid.c getsid--pidns-translation.c getsockname.c \
++	gettid.c gettid--pidns-translation.c getuid.c getuid32.c \
++	getxgid.c getxpid.c getxuid.c group_req.c inet-cmsg.c \
++	init_module.c inject-nf.c inotify.c inotify_init.c \
++	inotify_init-y.c inotify_init1.c inotify_init1-y.c int_0x80.c \
++	io_uring_enter.c io_uring_register.c io_uring_setup.c ioctl.c \
++	ioctl_block.c ioctl_block--pidns-translation.c ioctl_dm.c \
++	ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-Xabbrev.c \
+ 	ioctl_evdev-Xraw.c ioctl_evdev-Xverbose.c \
+ 	ioctl_evdev-success.c ioctl_evdev-success-Xabbrev.c \
+ 	ioctl_evdev-success-Xraw.c ioctl_evdev-success-Xverbose.c \
+@@ -4537,47 +4807,51 @@
+ 	ioctl_v4l2-success-v-Xverbose.c ioctl_v4l2-v.c \
+ 	ioctl_v4l2-v-Xabbrev.c ioctl_v4l2-v-Xraw.c \
+ 	ioctl_v4l2-v-Xverbose.c ioctl_watchdog.c ioperm.c iopl.c \
+-	ioprio.c ioprio-Xabbrev.c ioprio-Xraw.c ioprio-Xverbose.c \
+-	ip_mreq.c ipc.c ipc_msg.c ipc_msg-Xabbrev.c ipc_msg-Xraw.c \
+-	ipc_msg-Xverbose.c ipc_msgbuf.c ipc_msgbuf-Xabbrev.c \
+-	ipc_msgbuf-Xraw.c ipc_msgbuf-Xverbose.c ipc_sem.c \
+-	ipc_sem-Xabbrev.c ipc_sem-Xraw.c ipc_sem-Xverbose.c ipc_shm.c \
+-	ipc_shm-Xabbrev.c ipc_shm-Xraw.c ipc_shm-Xverbose.c \
+-	is_linux_mips_n64.c kcmp.c kcmp-y.c kern_features.c \
++	ioprio.c ioprio--pidns-translation.c ioprio-Xabbrev.c \
++	ioprio-Xraw.c ioprio-Xverbose.c ip_mreq.c ipc.c ipc_msg.c \
++	ipc_msg-Xabbrev.c ipc_msg-Xraw.c ipc_msg-Xverbose.c \
++	ipc_msgbuf.c ipc_msgbuf-Xabbrev.c ipc_msgbuf-Xraw.c \
++	ipc_msgbuf-Xverbose.c ipc_sem.c ipc_sem-Xabbrev.c \
++	ipc_sem-Xraw.c ipc_sem-Xverbose.c ipc_shm.c ipc_shm-Xabbrev.c \
++	ipc_shm-Xraw.c ipc_shm-Xverbose.c is_linux_mips_n64.c kcmp.c \
++	kcmp-y.c kcmp-y--pidns-translation.c kern_features.c \
+ 	kernel_version.c kernel_version-Xabbrev.c \
+ 	kernel_version-Xraw.c kernel_version-Xverbose.c \
+ 	kexec_file_load.c kexec_load.c keyctl.c keyctl-Xabbrev.c \
+-	keyctl-Xraw.c keyctl-Xverbose.c kill.c kill_child.c ksysent.c \
+-	lchown.c lchown32.c link.c linkat.c list_sigaction_signum.c \
+-	llseek.c localtime.c lookup_dcookie.c looping_threads.c \
+-	lseek.c lstat.c lstat64.c madvise.c maybe_switch_current_tcp.c \
++	keyctl-Xraw.c keyctl-Xverbose.c kill.c \
++	kill--pidns-translation.c kill_child.c ksysent.c lchown.c \
++	lchown32.c link.c linkat.c list_sigaction_signum.c llseek.c \
++	localtime.c lookup_dcookie.c looping_threads.c lseek.c lstat.c \
++	lstat64.c madvise.c maybe_switch_current_tcp.c \
+ 	maybe_switch_current_tcp--quiet-thread-execve.c mbind.c \
+ 	mbind-Xabbrev.c mbind-Xraw.c mbind-Xverbose.c membarrier.c \
+ 	memfd_create.c memfd_create-Xabbrev.c memfd_create-Xraw.c \
+-	memfd_create-Xverbose.c migrate_pages.c mincore.c mkdir.c \
+-	mkdirat.c mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c \
++	memfd_create-Xverbose.c migrate_pages.c \
++	migrate_pages--pidns-translation.c mincore.c mkdir.c mkdirat.c \
++	mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c \
+ 	mmap-Xabbrev.c mmap-Xraw.c mmap-Xverbose.c mmap64.c \
+ 	mmap64-Xabbrev.c mmap64-Xraw.c mmap64-Xverbose.c mmsg.c \
+ 	mmsg-silent.c mmsg_name.c mmsg_name-v.c modify_ldt.c mount.c \
+ 	mount-Xabbrev.c mount-Xraw.c mount-Xverbose.c move_mount.c \
+-	move_mount-P.c move_pages.c move_pages-Xabbrev.c \
+-	move_pages-Xraw.c move_pages-Xverbose.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--decode-fds-dev-netlink.c net--decode-fds-none-netlink.c \
+-	net--decode-fds-path-netlink.c \
++	move_mount-P.c move_pages.c move_pages--pidns-translation.c \
++	move_pages-Xabbrev.c move_pages-Xraw.c move_pages-Xverbose.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--decode-fds-dev-netlink.c \
++	net--decode-fds-none-netlink.c net--decode-fds-path-netlink.c \
+ 	net--decode-fds-socket-netlink.c net-accept-connect.c \
+ 	net-icmp_filter.c net-packet_mreq.c net-packet_mreq-Xabbrev.c \
+ 	net-packet_mreq-Xraw.c net-packet_mreq-Xverbose.c \
+-	net-sockaddr.c net-tpacket_req.c net-tpacket_stats.c \
++	net-sockaddr.c net-sockaddr--pidns-translation.c \
++	net-tpacket_req.c net-tpacket_stats.c \
+ 	net-tpacket_stats-success.c net-y-unix.c net-yy-inet.c \
+ 	net-yy-inet6.c net-yy-netlink.c net-yy-unix.c netlink_audit.c \
+-	netlink_crypto.c netlink_generic.c netlink_inet_diag.c \
+-	netlink_kobject_uevent.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 nfnetlink_acct.c \
+-	nfnetlink_cthelper.c nfnetlink_ctnetlink.c \
++	netlink_audit--pidns-translation.c netlink_crypto.c \
++	netlink_generic.c netlink_inet_diag.c netlink_kobject_uevent.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 \
++	nfnetlink_acct.c nfnetlink_cthelper.c nfnetlink_ctnetlink.c \
+ 	nfnetlink_ctnetlink_exp.c nfnetlink_cttimeout.c \
+ 	nfnetlink_ipset.c nfnetlink_nft_compat.c nfnetlink_nftables.c \
+ 	nfnetlink_osf.c nfnetlink_queue.c nfnetlink_ulog.c nlattr.c \
+@@ -4607,12 +4881,13 @@
+ 	personality-Xraw.c personality-Xverbose.c pidfd_getfd.c \
+ 	pidfd_getfd-y.c pidfd_getfd-yy.c pidfd_open.c \
+ 	pidfd_open--decode-fd-path.c pidfd_open--decode-fd-pidfd.c \
+-	pidfd_open--decode-fd-socket.c pidfd_open-P.c pidfd_open-y.c \
+-	pidfd_open-yy.c pidfd_send_signal.c pipe.c pipe2.c \
+-	pkey_alloc.c pkey_free.c pkey_mprotect.c poll.c poll-P.c \
+-	ppoll.c ppoll-P.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 \
++	pidfd_open--decode-fd-socket.c pidfd_open--pidns-translation.c \
++	pidfd_open-P.c pidfd_open-y.c pidfd_open-yy.c \
++	pidfd_send_signal.c pidfd_send_signal--pidns-translation.c \
++	pidns-cache.c pipe.c pipe2.c pkey_alloc.c pkey_free.c \
++	pkey_mprotect.c poll.c poll-P.c ppoll.c ppoll-P.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-spec-inject.c \
+ 	prctl-tid_address.c prctl-tsc.c pread64-pwrite64.c preadv.c \
+ 	preadv-pwritev.c preadv2-pwritev2.c print_maxfd.c \
+@@ -4621,8 +4896,10 @@
+ 	printsignal-Xabbrev.c printsignal-Xraw.c \
+ 	printsignal-Xverbose.c printstr.c printstrn-umoven.c \
+ 	printstrn-umoven-peekdata.c printstrn-umoven-undumpable.c \
+-	prlimit64.c process_vm_readv.c process_vm_writev.c pselect6.c \
+-	ptrace.c ptrace_syscall_info.c pwritev.c qual_fault.c \
++	prlimit64.c prlimit64--pidns-translation.c process_vm_readv.c \
++	process_vm_readv--pidns-translation.c process_vm_writev.c \
++	process_vm_writev--pidns-translation.c pselect6.c ptrace.c \
++	ptrace_syscall_info.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-Xabbrev.c quotactl-Xraw.c quotactl-Xverbose.c \
+@@ -4635,60 +4912,70 @@
+ 	remap_file_pages-Xraw.c remap_file_pages-Xverbose.c rename.c \
+ 	renameat.c renameat2.c request_key.c restart_syscall.c \
+ 	riscv_flush_icache.c rmdir.c rt_sigaction.c rt_sigpending.c \
+-	rt_sigprocmask.c rt_sigqueueinfo.c rt_sigreturn.c \
++	rt_sigprocmask.c rt_sigqueueinfo.c \
++	rt_sigqueueinfo--pidns-translation.c rt_sigreturn.c \
+ 	rt_sigsuspend.c rt_sigtimedwait.c rt_tgsigqueueinfo.c \
+-	run_expect_termsig.c s390_guarded_storage.c \
+-	s390_guarded_storage-v.c s390_pci_mmio_read_write.c \
+-	s390_runtime_instr.c s390_sthyi.c s390_sthyi-v.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 \
+-	seccomp_get_action_avail.c select.c select-P.c semop.c \
+-	semop-indirect.c semtimedop.c sendfile.c sendfile64.c \
+-	set_mempolicy.c set_mempolicy-Xabbrev.c set_mempolicy-Xraw.c \
+-	set_mempolicy-Xverbose.c set_ptracer_any.c set_sigblock.c \
+-	set_sigign.c setdomainname.c setfsgid.c setfsgid32.c \
+-	setfsuid.c setfsuid32.c setgid.c setgid32.c setgroups.c \
+-	setgroups32.c sethostname.c setns.c setpgrp-exec.c setregid.c \
+-	setregid32.c setresgid.c setresgid32.c setresuid.c \
+-	setresuid32.c setreuid.c setreuid32.c setrlimit.c \
+-	setrlimit-Xabbrev.c setrlimit-Xraw.c setrlimit-Xverbose.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 \
+-	so_error.c so_linger.c so_peercred.c so_peercred-Xabbrev.c \
+-	so_peercred-Xraw.c so_peercred-Xverbose.c sock_filter-v.c \
+-	sock_filter-v-Xabbrev.c sock_filter-v-Xraw.c \
+-	sock_filter-v-Xverbose.c sockaddr_xlat-Xabbrev.c \
+-	sockaddr_xlat-Xraw.c sockaddr_xlat-Xverbose.c socketcall.c \
+-	sockopt-sol_netlink.c sockopt-timestamp.c splice.c \
+-	$(stack_fcall_SOURCES) $(stack_fcall_attach_SOURCES) \
+-	$(stack_fcall_mangled_SOURCES) stat.c stat64.c statfs.c \
+-	statfs64.c status-all.c status-failed.c status-failed-long.c \
+-	status-failed-status.c status-none.c status-none-f.c \
+-	status-none-threads.c status-successful.c \
+-	status-successful-long.c status-successful-status.c \
+-	status-unfinished.c status-unfinished-threads.c statx.c \
+-	strace--strings-in-hex.c strace--strings-in-hex-all.c \
++	rt_tgsigqueueinfo--pidns-translation.c run_expect_termsig.c \
++	s390_guarded_storage.c s390_guarded_storage-v.c \
++	s390_pci_mmio_read_write.c s390_runtime_instr.c s390_sthyi.c \
++	s390_sthyi-v.c sched_get_priority_mxx.c \
++	sched_rr_get_interval.c sched_xetaffinity.c \
++	sched_xetaffinity--pidns-translation.c sched_xetattr.c \
++	sched_xetattr--pidns-translation.c sched_xetparam.c \
++	sched_xetparam--pidns-translation.c sched_xetscheduler.c \
++	sched_xetscheduler--pidns-translation.c sched_yield.c \
++	scm_rights.c seccomp-filter.c seccomp-filter-v.c \
++	seccomp-strict.c seccomp_get_action_avail.c select.c \
++	select-P.c semop.c semop-indirect.c semtimedop.c sendfile.c \
++	sendfile64.c set_mempolicy.c set_mempolicy-Xabbrev.c \
++	set_mempolicy-Xraw.c set_mempolicy-Xverbose.c \
++	set_ptracer_any.c set_sigblock.c set_sigign.c setdomainname.c \
++	setfsgid.c setfsgid32.c setfsuid.c setfsuid32.c setgid.c \
++	setgid32.c setgroups.c setgroups32.c sethostname.c setns.c \
++	setpgrp-exec.c setregid.c setregid32.c setresgid.c \
++	setresgid32.c setresuid.c setresuid32.c setreuid.c \
++	setreuid32.c setrlimit.c setrlimit-Xabbrev.c setrlimit-Xraw.c \
++	setrlimit-Xverbose.c setuid.c setuid32.c shmxt.c shutdown.c \
++	sigaction.c sigaltstack.c siginfo.c signal.c signal_receive.c \
++	signal_receive--pidns-translation.c signalfd4.c sigpending.c \
++	sigprocmask.c sigreturn.c sigsuspend.c sleep.c so_error.c \
++	so_linger.c so_peercred.c so_peercred--pidns-translation.c \
++	so_peercred-Xabbrev.c so_peercred-Xraw.c \
++	so_peercred-Xverbose.c sock_filter-v.c sock_filter-v-Xabbrev.c \
++	sock_filter-v-Xraw.c sock_filter-v-Xverbose.c \
++	sockaddr_xlat-Xabbrev.c sockaddr_xlat-Xraw.c \
++	sockaddr_xlat-Xverbose.c socketcall.c sockopt-sol_netlink.c \
++	sockopt-timestamp.c splice.c $(stack_fcall_SOURCES) \
++	$(stack_fcall_attach_SOURCES) $(stack_fcall_mangled_SOURCES) \
++	stat.c stat64.c statfs.c statfs64.c status-all.c \
++	status-failed.c status-failed-long.c status-failed-status.c \
++	status-none.c status-none-f.c status-none-threads.c \
++	status-successful.c status-successful-long.c \
++	status-successful-status.c status-unfinished.c \
++	status-unfinished-threads.c statx.c strace--strings-in-hex.c \
++	strace--strings-in-hex-all.c \
+ 	strace--strings-in-hex-non-ascii.c strace-x.c strace-xx.c \
+ 	swap.c sxetmask.c symlink.c symlinkat.c sync.c \
+ 	sync_file_range.c sync_file_range2.c sysinfo.c syslog.c \
+-	syslog-success.c tee.c tgkill.c threads-execve.c \
+-	threads-execve--quiet-thread-execve.c threads-execve-q.c \
+-	threads-execve-qq.c threads-execve-qqq.c time.c timer_create.c \
+-	timer_xettime.c timerfd_xettime.c times.c times-fail.c tkill.c \
+-	tracer_ppid_pgid_sid.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 umovestr_cached.c \
+-	umovestr_cached_adjacent.c uname.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 \
+-	utimensat-Xabbrev.c utimensat-Xraw.c utimensat-Xverbose.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 xet_thread_area_x86.c xetitimer.c xetpgid.c \
+-	xetpriority.c xettimeofday.c zeroargc.c
++	syslog-success.c tee.c tgkill.c tgkill--pidns-translation.c \
++	threads-execve.c threads-execve--quiet-thread-execve.c \
++	threads-execve-q.c threads-execve-qq.c threads-execve-qqq.c \
++	time.c timer_create.c timer_xettime.c timerfd_xettime.c \
++	times.c times-fail.c tkill.c tkill--pidns-translation.c \
++	tracer_ppid_pgid_sid.c $(trie_test_SOURCES) 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 umovestr_cached.c umovestr_cached_adjacent.c \
++	uname.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 utimensat-Xabbrev.c \
++	utimensat-Xraw.c utimensat-Xverbose.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 \
++	xet_robust_list--pidns-translation.c xet_thread_area_x86.c \
++	xetitimer.c xetpgid.c xetpgid--pidns-translation.c \
++	xetpriority.c xetpriority--pidns-translation.c xettimeofday.c \
++	zeroargc.c
+ am__can_run_installinfo = \
+   case $$AM_UPDATE_INFO_DIR in \
+     n|no|NO) false;; \
+@@ -5145,6 +5432,7 @@
+ 	test_ucopy.h \
+ 	tests.h \
+ 	tprintf.c \
++	xmalloc_for_tests.c \
+ 	# end of libtests_a_SOURCES
+ 
+ libtests_a_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+@@ -5825,6 +6113,10 @@
+ 	stack-fcall-mangled-0.c stack-fcall-mangled-1.c \
+ 	stack-fcall-mangled-2.c stack-fcall-mangled-3.c
+ 
++trie_test_SOURCES = trie_test.c trie_for_tests.c
++trie_test_CPPFLAGS = $(AM_CPPFLAGS) $(CODE_COVERAGE_CPPFLAGS)
++trie_test_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS)
++trie_test_LDADD = $(LDADD) $(CODE_COVERAGE_LIBS)
+ 
+ # Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in; do not edit.
+ GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test \
+@@ -5861,13 +6153,14 @@
+ 	fanotify_mark-Xverbose.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 filter_seccomp.gen.test \
+-	filter_seccomp-flag.gen.test finit_module.gen.test \
+-	flock.gen.test fork-f.gen.test fsconfig.gen.test \
+-	fsconfig-P.gen.test fsmount.gen.test fsopen.gen.test \
+-	fspick.gen.test fspick-P.gen.test fstat.gen.test \
+-	fstat-Xabbrev.gen.test fstat-Xraw.gen.test \
++	fcntl--pidns-translation.gen.test fcntl64.gen.test \
++	fcntl64--pidns-translation.gen.test fdatasync.gen.test \
++	file_handle.gen.test file_ioctl.gen.test \
++	filter_seccomp.gen.test filter_seccomp-flag.gen.test \
++	finit_module.gen.test flock.gen.test fork-f.gen.test \
++	fsconfig.gen.test fsconfig-P.gen.test fsmount.gen.test \
++	fsopen.gen.test fspick.gen.test fspick-P.gen.test \
++	fstat.gen.test fstat-Xabbrev.gen.test fstat-Xraw.gen.test \
+ 	fstat-Xverbose.gen.test fstat64.gen.test \
+ 	fstat64-Xabbrev.gen.test fstat64-Xraw.gen.test \
+ 	fstat64-Xverbose.gen.test fstatat64.gen.test fstatfs.gen.test \
+@@ -5881,11 +6174,13 @@
+ 	geteuid32-creds.gen.test getgid.gen.test getgid-creds.gen.test \
+ 	getgid32.gen.test getgid32-creds.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 \
+-	getuid-creds.gen.test getuid32.gen.test \
++	getpgrp--pidns-translation.gen.test getpid.gen.test \
++	getpid--pidns-translation.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 \
++	getsid--pidns-translation.gen.test getsockname.gen.test \
++	gettid.gen.test getuid-creds.gen.test getuid32.gen.test \
+ 	getuid32-creds.gen.test getxgid.gen.test getxpid.gen.test \
+ 	getxuid.gen.test group_req.gen.test inet-cmsg.gen.test \
+ 	init_module.gen.test inotify.gen.test inotify_init.gen.test \
+@@ -5937,9 +6232,9 @@
+ 	ioctl_v4l2-success-v-Xraw.gen.test \
+ 	ioctl_v4l2-success-v-Xverbose.gen.test ioctl_watchdog.gen.test \
+ 	ioperm.gen.test iopl.gen.test ioprio.gen.test \
+-	ioprio-Xabbrev.gen.test ioprio-Xraw.gen.test \
+-	ioprio-Xverbose.gen.test ip_mreq.gen.test ipc.gen.test \
+-	ipc_msg.gen.test ipc_msg-Xabbrev.gen.test \
++	ioprio--pidns-translation.gen.test ioprio-Xabbrev.gen.test \
++	ioprio-Xraw.gen.test ioprio-Xverbose.gen.test ip_mreq.gen.test \
++	ipc.gen.test ipc_msg.gen.test ipc_msg-Xabbrev.gen.test \
+ 	ipc_msg-Xraw.gen.test ipc_msg-Xverbose.gen.test \
+ 	ipc_msgbuf-Xabbrev.gen.test ipc_msgbuf-Xraw.gen.test \
+ 	ipc_msgbuf-Xverbose.gen.test ipc_sem.gen.test \
+@@ -5947,24 +6242,27 @@
+ 	ipc_sem-Xverbose.gen.test ipc_shm.gen.test \
+ 	ipc_shm-Xabbrev.gen.test ipc_shm-Xraw.gen.test \
+ 	ipc_shm-Xverbose.gen.test kcmp.gen.test kcmp-y.gen.test \
+-	kern_features.gen.test kernel_version.gen.test \
+-	kernel_version-Xabbrev.gen.test kernel_version-Xraw.gen.test \
+-	kernel_version-Xverbose.gen.test kexec_file_load.gen.test \
+-	kexec_load.gen.test keyctl.gen.test keyctl-Xabbrev.gen.test \
+-	keyctl-Xraw.gen.test keyctl-Xverbose.gen.test kill.gen.test \
+-	ksysent.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 \
++	kcmp-y--pidns-translation.gen.test kern_features.gen.test \
++	kernel_version.gen.test kernel_version-Xabbrev.gen.test \
++	kernel_version-Xraw.gen.test kernel_version-Xverbose.gen.test \
++	kexec_file_load.gen.test kexec_load.gen.test keyctl.gen.test \
++	keyctl-Xabbrev.gen.test keyctl-Xraw.gen.test \
++	keyctl-Xverbose.gen.test kill.gen.test \
++	kill--pidns-translation.gen.test ksysent.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 \
+ 	maybe_switch_current_tcp.gen.test \
+ 	maybe_switch_current_tcp--quiet-thread-execve.gen.test \
+ 	mbind.gen.test mbind-Xabbrev.gen.test mbind-Xraw.gen.test \
+ 	mbind-Xverbose.gen.test membarrier.gen.test \
+ 	memfd_create.gen.test memfd_create-Xabbrev.gen.test \
+ 	memfd_create-Xraw.gen.test memfd_create-Xverbose.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 \
+-	mmap-Xabbrev.gen.test mmap-Xraw.gen.test \
++	migrate_pages.gen.test \
++	migrate_pages--pidns-translation.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 mmap-Xabbrev.gen.test mmap-Xraw.gen.test \
+ 	mmap-Xverbose.gen.test mmap64.gen.test mmap64-Xabbrev.gen.test \
+ 	mmap64-Xraw.gen.test mmap64-Xverbose.gen.test mmsg.gen.test \
+ 	mmsg-silent.gen.test mmsg_name.gen.test mmsg_name-v.gen.test \
+@@ -5972,17 +6270,19 @@
+ 	mount-Xraw.gen.test mount-Xverbose.gen.test \
+ 	move_mount.gen.test move_mount-P.gen.test move_pages.gen.test \
+ 	move_pages-Xabbrev.gen.test move_pages-Xraw.gen.test \
+-	move_pages-Xverbose.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--decode-fds-dev-netlink.gen.test \
++	move_pages-Xverbose.gen.test \
++	move_pages--pidns-translation.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--decode-fds-dev-netlink.gen.test \
+ 	net--decode-fds-none-netlink.gen.test \
+ 	net--decode-fds-path-netlink.gen.test \
+ 	net--decode-fds-socket-netlink.gen.test \
+ 	net-icmp_filter.gen.test net-packet_mreq.gen.test \
+ 	net-packet_mreq-Xabbrev.gen.test net-packet_mreq-Xraw.gen.test \
+ 	net-packet_mreq-Xverbose.gen.test net-sockaddr.gen.test \
++	net-sockaddr--pidns-translation.gen.test \
+ 	net-tpacket_req.gen.test net-tpacket_stats.gen.test \
+ 	net-yy-inet6.gen.test netlink_audit.gen.test \
+ 	netlink_crypto.gen.test netlink_generic.gen.test \
+@@ -6036,18 +6336,25 @@
+ 	pidfd_open--decode-fd-pidfd.gen.test \
+ 	pidfd_open--decode-fd-socket.gen.test pidfd_open-P.gen.test \
+ 	pidfd_open-y.gen.test pidfd_open-yy.gen.test \
+-	pidfd_send_signal.gen.test pipe2.gen.test pkey_alloc.gen.test \
+-	pkey_free.gen.test pkey_mprotect.gen.test ppoll.gen.test \
+-	ppoll-P.gen.test ppoll-v.gen.test pread64-pwrite64.gen.test \
+-	preadv.gen.test preadv-pwritev.gen.test \
+-	preadv2-pwritev2.gen.test printpath-umovestr.gen.test \
++	pidfd_open--pidns-translation.gen.test \
++	pidfd_send_signal.gen.test \
++	pidfd_send_signal--pidns-translation.gen.test pipe2.gen.test \
++	pkey_alloc.gen.test pkey_free.gen.test pkey_mprotect.gen.test \
++	ppoll.gen.test ppoll-P.gen.test ppoll-v.gen.test \
++	pread64-pwrite64.gen.test preadv.gen.test \
++	preadv-pwritev.gen.test preadv2-pwritev2.gen.test \
++	printpath-umovestr.gen.test \
+ 	printpath-umovestr-peekdata.gen.test \
+ 	printpath-umovestr-undumpable.gen.test \
+ 	printsignal-Xabbrev.gen.test printsignal-Xraw.gen.test \
+ 	printsignal-Xverbose.gen.test printstr.gen.test \
+ 	printstrn-umoven.gen.test printstrn-umoven-peekdata.gen.test \
+ 	printstrn-umoven-undumpable.gen.test prlimit64.gen.test \
+-	process_vm_readv.gen.test process_vm_writev.gen.test \
++	prlimit64--pidns-translation.gen.test \
++	process_vm_readv.gen.test \
++	process_vm_readv--pidns-translation.gen.test \
++	process_vm_writev.gen.test \
++	process_vm_writev--pidns-translation.gen.test \
+ 	pselect6.gen.test ptrace.gen.test ptrace_syscall_info.gen.test \
+ 	pwritev.gen.test quotactl.gen.test quotactl-Xabbrev.gen.test \
+ 	quotactl-Xraw.gen.test quotactl-Xverbose.gen.test \
+@@ -6063,15 +6370,23 @@
+ 	renameat.gen.test renameat2.gen.test request_key.gen.test \
+ 	riscv_flush_icache.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 s390_guarded_storage.gen.test \
+-	s390_guarded_storage-v.gen.test \
++	rt_sigqueueinfo.gen.test \
++	rt_sigqueueinfo--pidns-translation.gen.test \
++	rt_sigreturn.gen.test rt_sigsuspend.gen.test \
++	rt_sigtimedwait.gen.test rt_tgsigqueueinfo.gen.test \
++	rt_tgsigqueueinfo--pidns-translation.gen.test \
++	s390_guarded_storage.gen.test s390_guarded_storage-v.gen.test \
+ 	s390_pci_mmio_read_write.gen.test s390_runtime_instr.gen.test \
+ 	s390_sthyi.gen.test s390_sthyi-v.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_xetaffinity.gen.test \
++	sched_xetaffinity--pidns-translation.gen.test \
++	sched_xetattr.gen.test \
++	sched_xetattr--pidns-translation.gen.test \
++	sched_xetparam.gen.test \
++	sched_xetparam--pidns-translation.gen.test \
++	sched_xetscheduler.gen.test \
++	sched_xetscheduler--pidns-translation.gen.test \
+ 	sched_yield.gen.test seccomp-filter.gen.test \
+ 	seccomp-filter-v.gen.test seccomp_get_action_avail.gen.test \
+ 	select.gen.test select-P.gen.test semop.gen.test \
+@@ -6089,18 +6404,20 @@
+ 	setrlimit-Xraw.gen.test setrlimit-Xverbose.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 \
++	signal.gen.test signal_receive.gen.test \
++	signal_receive--pidns-translation.gen.test signalfd4.gen.test \
+ 	sigpending.gen.test sigprocmask.gen.test sigreturn.gen.test \
+ 	sigsuspend.gen.test so_error.gen.test so_linger.gen.test \
+ 	so_peercred.gen.test so_peercred-Xabbrev.gen.test \
+ 	so_peercred-Xraw.gen.test so_peercred-Xverbose.gen.test \
+-	sock_filter-v.gen.test sock_filter-v-Xabbrev.gen.test \
+-	sock_filter-v-Xraw.gen.test sock_filter-v-Xverbose.gen.test \
+-	sockaddr_xlat-Xabbrev.gen.test sockaddr_xlat-Xraw.gen.test \
+-	sockaddr_xlat-Xverbose.gen.test socketcall.gen.test \
+-	sockopt-sol_netlink.gen.test sockopt-timestamp.gen.test \
+-	splice.gen.test stat.gen.test stat64.gen.test statfs.gen.test \
+-	statfs64.gen.test status-all.gen.test status-failed.gen.test \
++	so_peercred--pidns-translation.gen.test sock_filter-v.gen.test \
++	sock_filter-v-Xabbrev.gen.test sock_filter-v-Xraw.gen.test \
++	sock_filter-v-Xverbose.gen.test sockaddr_xlat-Xabbrev.gen.test \
++	sockaddr_xlat-Xraw.gen.test sockaddr_xlat-Xverbose.gen.test \
++	socketcall.gen.test sockopt-sol_netlink.gen.test \
++	sockopt-timestamp.gen.test splice.gen.test stat.gen.test \
++	stat64.gen.test statfs.gen.test statfs64.gen.test \
++	status-all.gen.test status-failed.gen.test \
+ 	status-failed-long.gen.test status-failed-status.gen.test \
+ 	status-none.gen.test status-successful.gen.test \
+ 	status-successful-long.gen.test \
+@@ -6142,33 +6459,37 @@
+ 	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 tgkill.gen.test \
++	tgkill--pidns-translation.gen.test \
+ 	threads-execve--quiet-thread-execve.gen.test \
+ 	threads-execve-q.gen.test threads-execve-qq.gen.test \
+ 	threads-execve-qqq.gen.test time.gen.test \
+ 	timer_create.gen.test timer_xettime.gen.test \
+ 	timerfd_xettime.gen.test times.gen.test times-fail.gen.test \
+-	tkill.gen.test trace_clock.gen.test trace_creds.gen.test \
+-	trace_fstat.gen.test trace_fstatfs.gen.test \
+-	trace_lstat.gen.test trace_personality_32.gen.test \
+-	trace_personality_64.gen.test \
++	tkill.gen.test tkill--pidns-translation.gen.test \
++	trace_clock.gen.test trace_creds.gen.test trace_fstat.gen.test \
++	trace_fstatfs.gen.test trace_lstat.gen.test \
++	trace_personality_32.gen.test trace_personality_64.gen.test \
+ 	trace_personality_regex_32.gen.test \
+ 	trace_personality_regex_64.gen.test \
+ 	trace_personality_regex_x32.gen.test \
+ 	trace_personality_x32.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 umovestr_cached_adjacent.gen.test \
+-	unlink.gen.test unlinkat.gen.test unshare.gen.test \
+-	userfaultfd.gen.test ustat.gen.test utime.gen.test \
+-	utimensat.gen.test utimensat-Xabbrev.gen.test \
+-	utimensat-Xraw.gen.test utimensat-Xverbose.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 \
++	trie_test.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 \
++	umovestr_cached_adjacent.gen.test unlink.gen.test \
++	unlinkat.gen.test unshare.gen.test userfaultfd.gen.test \
++	ustat.gen.test utime.gen.test utimensat.gen.test \
++	utimensat-Xabbrev.gen.test utimensat-Xraw.gen.test \
++	utimensat-Xverbose.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 \
++	xet_robust_list--pidns-translation.gen.test xetitimer.gen.test \
++	xetpgid.gen.test xetpgid--pidns-translation.gen.test \
++	xetpriority.gen.test xetpriority--pidns-translation.gen.test \
+ 	xettimeofday.gen.test
+ @ENABLE_STACKTRACE_FALSE@STACKTRACE_TESTS = 
+ @ENABLE_STACKTRACE_TRUE@STACKTRACE_TESTS = strace-k.test \
+@@ -6198,6 +6519,7 @@
+ 	int_0x80.test \
+ 	inotify_init-y.test \
+ 	ioctl.test \
++	ioctl_block--pidns-translation.test \
+ 	ioctl_evdev-success.test \
+ 	ipc_msgbuf.test \
+ 	kern_features-fault.test \
+@@ -6269,15 +6591,19 @@
+ 	filtering_fd-syntax.test \
+ 	filtering_syscall-syntax.test \
+ 	first_exec_failure.test \
++	fork--pidns-translation.test \
+ 	get_regs.test \
++	gettid--pidns-translation.test \
+ 	inject-nf.test \
+ 	interactive_block.test \
+ 	kill_child.test \
+ 	localtime.test \
+ 	looping_threads.test \
++	netlink_audit--pidns-translation.test \
+ 	opipe.test \
+ 	options-syntax.test \
+ 	pc.test \
++	pidns-cache.test \
+ 	printpath-umovestr-legacy.test \
+ 	printstrn-umoven-legacy.test \
+ 	qual_fault-syntax.test \
+@@ -6350,6 +6676,7 @@
+ 	filter_seccomp.in \
+ 	filter_seccomp.sh \
+ 	filter-unavailable.expected \
++	fork--pidns-translation.awk \
+ 	fstatat.c \
+ 	fstatx.c \
+ 	gen_pure_executables.sh \
+@@ -6935,10 +7262,18 @@
+ 	@rm -f fcntl$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fcntl_OBJECTS) $(fcntl_LDADD) $(LIBS)
+ 
++fcntl--pidns-translation$(EXEEXT): $(fcntl__pidns_translation_OBJECTS) $(fcntl__pidns_translation_DEPENDENCIES) $(EXTRA_fcntl__pidns_translation_DEPENDENCIES) 
++	@rm -f fcntl--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fcntl__pidns_translation_OBJECTS) $(fcntl__pidns_translation_LDADD) $(LIBS)
++
+ fcntl64$(EXEEXT): $(fcntl64_OBJECTS) $(fcntl64_DEPENDENCIES) $(EXTRA_fcntl64_DEPENDENCIES) 
+ 	@rm -f fcntl64$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fcntl64_OBJECTS) $(fcntl64_LDADD) $(LIBS)
+ 
++fcntl64--pidns-translation$(EXEEXT): $(fcntl64__pidns_translation_OBJECTS) $(fcntl64__pidns_translation_DEPENDENCIES) $(EXTRA_fcntl64__pidns_translation_DEPENDENCIES) 
++	@rm -f fcntl64--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fcntl64__pidns_translation_OBJECTS) $(fcntl64__pidns_translation_LDADD) $(LIBS)
++
+ fdatasync$(EXEEXT): $(fdatasync_OBJECTS) $(fdatasync_DEPENDENCIES) $(EXTRA_fdatasync_DEPENDENCIES) 
+ 	@rm -f fdatasync$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fdatasync_OBJECTS) $(fdatasync_LDADD) $(LIBS)
+@@ -6975,6 +7310,10 @@
+ 	@rm -f flock$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(flock_OBJECTS) $(flock_LDADD) $(LIBS)
+ 
++fork--pidns-translation$(EXEEXT): $(fork__pidns_translation_OBJECTS) $(fork__pidns_translation_DEPENDENCIES) $(EXTRA_fork__pidns_translation_DEPENDENCIES) 
++	@rm -f fork--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fork__pidns_translation_OBJECTS) $(fork__pidns_translation_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)
+@@ -7143,10 +7482,18 @@
+ 	@rm -f getpgrp$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(getpgrp_OBJECTS) $(getpgrp_LDADD) $(LIBS)
+ 
++getpgrp--pidns-translation$(EXEEXT): $(getpgrp__pidns_translation_OBJECTS) $(getpgrp__pidns_translation_DEPENDENCIES) $(EXTRA_getpgrp__pidns_translation_DEPENDENCIES) 
++	@rm -f getpgrp--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(getpgrp__pidns_translation_OBJECTS) $(getpgrp__pidns_translation_LDADD) $(LIBS)
++
+ getpid$(EXEEXT): $(getpid_OBJECTS) $(getpid_DEPENDENCIES) $(EXTRA_getpid_DEPENDENCIES) 
+ 	@rm -f getpid$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(getpid_OBJECTS) $(getpid_LDADD) $(LIBS)
+ 
++getpid--pidns-translation$(EXEEXT): $(getpid__pidns_translation_OBJECTS) $(getpid__pidns_translation_DEPENDENCIES) $(EXTRA_getpid__pidns_translation_DEPENDENCIES) 
++	@rm -f getpid--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(getpid__pidns_translation_OBJECTS) $(getpid__pidns_translation_LDADD) $(LIBS)
++
+ getppid$(EXEEXT): $(getppid_OBJECTS) $(getppid_DEPENDENCIES) $(EXTRA_getppid_DEPENDENCIES) 
+ 	@rm -f getppid$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(getppid_OBJECTS) $(getppid_LDADD) $(LIBS)
+@@ -7183,6 +7530,10 @@
+ 	@rm -f getsid$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(getsid_OBJECTS) $(getsid_LDADD) $(LIBS)
+ 
++getsid--pidns-translation$(EXEEXT): $(getsid__pidns_translation_OBJECTS) $(getsid__pidns_translation_DEPENDENCIES) $(EXTRA_getsid__pidns_translation_DEPENDENCIES) 
++	@rm -f getsid--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(getsid__pidns_translation_OBJECTS) $(getsid__pidns_translation_LDADD) $(LIBS)
++
+ getsockname$(EXEEXT): $(getsockname_OBJECTS) $(getsockname_DEPENDENCIES) $(EXTRA_getsockname_DEPENDENCIES) 
+ 	@rm -f getsockname$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(getsockname_OBJECTS) $(getsockname_LDADD) $(LIBS)
+@@ -7191,6 +7542,10 @@
+ 	@rm -f gettid$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(gettid_OBJECTS) $(gettid_LDADD) $(LIBS)
+ 
++gettid--pidns-translation$(EXEEXT): $(gettid__pidns_translation_OBJECTS) $(gettid__pidns_translation_DEPENDENCIES) $(EXTRA_gettid__pidns_translation_DEPENDENCIES) 
++	@rm -f gettid--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(gettid__pidns_translation_OBJECTS) $(gettid__pidns_translation_LDADD) $(LIBS)
++
+ getuid$(EXEEXT): $(getuid_OBJECTS) $(getuid_DEPENDENCIES) $(EXTRA_getuid_DEPENDENCIES) 
+ 	@rm -f getuid$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(getuid_OBJECTS) $(getuid_LDADD) $(LIBS)
+@@ -7271,6 +7626,10 @@
+ 	@rm -f ioctl_block$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(ioctl_block_OBJECTS) $(ioctl_block_LDADD) $(LIBS)
+ 
++ioctl_block--pidns-translation$(EXEEXT): $(ioctl_block__pidns_translation_OBJECTS) $(ioctl_block__pidns_translation_DEPENDENCIES) $(EXTRA_ioctl_block__pidns_translation_DEPENDENCIES) 
++	@rm -f ioctl_block--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(ioctl_block__pidns_translation_OBJECTS) $(ioctl_block__pidns_translation_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)
+@@ -7571,6 +7930,10 @@
+ 	@rm -f ioprio$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(ioprio_OBJECTS) $(ioprio_LDADD) $(LIBS)
+ 
++ioprio--pidns-translation$(EXEEXT): $(ioprio__pidns_translation_OBJECTS) $(ioprio__pidns_translation_DEPENDENCIES) $(EXTRA_ioprio__pidns_translation_DEPENDENCIES) 
++	@rm -f ioprio--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(ioprio__pidns_translation_OBJECTS) $(ioprio__pidns_translation_LDADD) $(LIBS)
++
+ ioprio-Xabbrev$(EXEEXT): $(ioprio_Xabbrev_OBJECTS) $(ioprio_Xabbrev_DEPENDENCIES) $(EXTRA_ioprio_Xabbrev_DEPENDENCIES) 
+ 	@rm -f ioprio-Xabbrev$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(ioprio_Xabbrev_OBJECTS) $(ioprio_Xabbrev_LDADD) $(LIBS)
+@@ -7667,6 +8030,10 @@
+ 	@rm -f kcmp-y$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(kcmp_y_OBJECTS) $(kcmp_y_LDADD) $(LIBS)
+ 
++kcmp-y--pidns-translation$(EXEEXT): $(kcmp_y__pidns_translation_OBJECTS) $(kcmp_y__pidns_translation_DEPENDENCIES) $(EXTRA_kcmp_y__pidns_translation_DEPENDENCIES) 
++	@rm -f kcmp-y--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(kcmp_y__pidns_translation_OBJECTS) $(kcmp_y__pidns_translation_LDADD) $(LIBS)
++
+ kern_features$(EXEEXT): $(kern_features_OBJECTS) $(kern_features_DEPENDENCIES) $(EXTRA_kern_features_DEPENDENCIES) 
+ 	@rm -f kern_features$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(kern_features_OBJECTS) $(kern_features_LDADD) $(LIBS)
+@@ -7715,6 +8082,10 @@
+ 	@rm -f kill$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(kill_OBJECTS) $(kill_LDADD) $(LIBS)
+ 
++kill--pidns-translation$(EXEEXT): $(kill__pidns_translation_OBJECTS) $(kill__pidns_translation_DEPENDENCIES) $(EXTRA_kill__pidns_translation_DEPENDENCIES) 
++	@rm -f kill--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(kill__pidns_translation_OBJECTS) $(kill__pidns_translation_LDADD) $(LIBS)
++
+ kill_child$(EXEEXT): $(kill_child_OBJECTS) $(kill_child_DEPENDENCIES) $(EXTRA_kill_child_DEPENDENCIES) 
+ 	@rm -f kill_child$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(kill_child_OBJECTS) $(kill_child_LDADD) $(LIBS)
+@@ -7823,6 +8194,10 @@
+ 	@rm -f migrate_pages$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(migrate_pages_OBJECTS) $(migrate_pages_LDADD) $(LIBS)
+ 
++migrate_pages--pidns-translation$(EXEEXT): $(migrate_pages__pidns_translation_OBJECTS) $(migrate_pages__pidns_translation_DEPENDENCIES) $(EXTRA_migrate_pages__pidns_translation_DEPENDENCIES) 
++	@rm -f migrate_pages--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(migrate_pages__pidns_translation_OBJECTS) $(migrate_pages__pidns_translation_LDADD) $(LIBS)
++
+ mincore$(EXEEXT): $(mincore_OBJECTS) $(mincore_DEPENDENCIES) $(EXTRA_mincore_DEPENDENCIES) 
+ 	@rm -f mincore$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(mincore_OBJECTS) $(mincore_LDADD) $(LIBS)
+@@ -7935,6 +8310,10 @@
+ 	@rm -f move_pages$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(move_pages_OBJECTS) $(move_pages_LDADD) $(LIBS)
+ 
++move_pages--pidns-translation$(EXEEXT): $(move_pages__pidns_translation_OBJECTS) $(move_pages__pidns_translation_DEPENDENCIES) $(EXTRA_move_pages__pidns_translation_DEPENDENCIES) 
++	@rm -f move_pages--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(move_pages__pidns_translation_OBJECTS) $(move_pages__pidns_translation_LDADD) $(LIBS)
++
+ move_pages-Xabbrev$(EXEEXT): $(move_pages_Xabbrev_OBJECTS) $(move_pages_Xabbrev_DEPENDENCIES) $(EXTRA_move_pages_Xabbrev_DEPENDENCIES) 
+ 	@rm -f move_pages-Xabbrev$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(move_pages_Xabbrev_OBJECTS) $(move_pages_Xabbrev_LDADD) $(LIBS)
+@@ -8027,6 +8406,10 @@
+ 	@rm -f net-sockaddr$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(net_sockaddr_OBJECTS) $(net_sockaddr_LDADD) $(LIBS)
+ 
++net-sockaddr--pidns-translation$(EXEEXT): $(net_sockaddr__pidns_translation_OBJECTS) $(net_sockaddr__pidns_translation_DEPENDENCIES) $(EXTRA_net_sockaddr__pidns_translation_DEPENDENCIES) 
++	@rm -f net-sockaddr--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(net_sockaddr__pidns_translation_OBJECTS) $(net_sockaddr__pidns_translation_LDADD) $(LIBS)
++
+ net-tpacket_req$(EXEEXT): $(net_tpacket_req_OBJECTS) $(net_tpacket_req_DEPENDENCIES) $(EXTRA_net_tpacket_req_DEPENDENCIES) 
+ 	@rm -f net-tpacket_req$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(net_tpacket_req_OBJECTS) $(net_tpacket_req_LDADD) $(LIBS)
+@@ -8063,6 +8446,10 @@
+ 	@rm -f netlink_audit$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(netlink_audit_OBJECTS) $(netlink_audit_LDADD) $(LIBS)
+ 
++netlink_audit--pidns-translation$(EXEEXT): $(netlink_audit__pidns_translation_OBJECTS) $(netlink_audit__pidns_translation_DEPENDENCIES) $(EXTRA_netlink_audit__pidns_translation_DEPENDENCIES) 
++	@rm -f netlink_audit--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(netlink_audit__pidns_translation_OBJECTS) $(netlink_audit__pidns_translation_LDADD) $(LIBS)
++
+ netlink_crypto$(EXEEXT): $(netlink_crypto_OBJECTS) $(netlink_crypto_DEPENDENCIES) $(EXTRA_netlink_crypto_DEPENDENCIES) 
+ 	@rm -f netlink_crypto$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(netlink_crypto_OBJECTS) $(netlink_crypto_LDADD) $(LIBS)
+@@ -8479,6 +8866,10 @@
+ 	@rm -f pidfd_open--decode-fd-socket$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(pidfd_open__decode_fd_socket_OBJECTS) $(pidfd_open__decode_fd_socket_LDADD) $(LIBS)
+ 
++pidfd_open--pidns-translation$(EXEEXT): $(pidfd_open__pidns_translation_OBJECTS) $(pidfd_open__pidns_translation_DEPENDENCIES) $(EXTRA_pidfd_open__pidns_translation_DEPENDENCIES) 
++	@rm -f pidfd_open--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(pidfd_open__pidns_translation_OBJECTS) $(pidfd_open__pidns_translation_LDADD) $(LIBS)
++
+ pidfd_open-P$(EXEEXT): $(pidfd_open_P_OBJECTS) $(pidfd_open_P_DEPENDENCIES) $(EXTRA_pidfd_open_P_DEPENDENCIES) 
+ 	@rm -f pidfd_open-P$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(pidfd_open_P_OBJECTS) $(pidfd_open_P_LDADD) $(LIBS)
+@@ -8495,6 +8886,14 @@
+ 	@rm -f pidfd_send_signal$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(pidfd_send_signal_OBJECTS) $(pidfd_send_signal_LDADD) $(LIBS)
+ 
++pidfd_send_signal--pidns-translation$(EXEEXT): $(pidfd_send_signal__pidns_translation_OBJECTS) $(pidfd_send_signal__pidns_translation_DEPENDENCIES) $(EXTRA_pidfd_send_signal__pidns_translation_DEPENDENCIES) 
++	@rm -f pidfd_send_signal--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(pidfd_send_signal__pidns_translation_OBJECTS) $(pidfd_send_signal__pidns_translation_LDADD) $(LIBS)
++
++pidns-cache$(EXEEXT): $(pidns_cache_OBJECTS) $(pidns_cache_DEPENDENCIES) $(EXTRA_pidns_cache_DEPENDENCIES) 
++	@rm -f pidns-cache$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(pidns_cache_OBJECTS) $(pidns_cache_LDADD) $(LIBS)
++
+ pipe$(EXEEXT): $(pipe_OBJECTS) $(pipe_DEPENDENCIES) $(EXTRA_pipe_DEPENDENCIES) 
+ 	@rm -f pipe$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(pipe_OBJECTS) $(pipe_LDADD) $(LIBS)
+@@ -8647,14 +9046,26 @@
+ 	@rm -f prlimit64$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(prlimit64_OBJECTS) $(prlimit64_LDADD) $(LIBS)
+ 
++prlimit64--pidns-translation$(EXEEXT): $(prlimit64__pidns_translation_OBJECTS) $(prlimit64__pidns_translation_DEPENDENCIES) $(EXTRA_prlimit64__pidns_translation_DEPENDENCIES) 
++	@rm -f prlimit64--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(prlimit64__pidns_translation_OBJECTS) $(prlimit64__pidns_translation_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_readv--pidns-translation$(EXEEXT): $(process_vm_readv__pidns_translation_OBJECTS) $(process_vm_readv__pidns_translation_DEPENDENCIES) $(EXTRA_process_vm_readv__pidns_translation_DEPENDENCIES) 
++	@rm -f process_vm_readv--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(process_vm_readv__pidns_translation_OBJECTS) $(process_vm_readv__pidns_translation_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)
+ 
++process_vm_writev--pidns-translation$(EXEEXT): $(process_vm_writev__pidns_translation_OBJECTS) $(process_vm_writev__pidns_translation_DEPENDENCIES) $(EXTRA_process_vm_writev__pidns_translation_DEPENDENCIES) 
++	@rm -f process_vm_writev--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(process_vm_writev__pidns_translation_OBJECTS) $(process_vm_writev__pidns_translation_LDADD) $(LIBS)
++
+ pselect6$(EXEEXT): $(pselect6_OBJECTS) $(pselect6_DEPENDENCIES) $(EXTRA_pselect6_DEPENDENCIES) 
+ 	@rm -f pselect6$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(pselect6_OBJECTS) $(pselect6_LDADD) $(LIBS)
+@@ -8847,6 +9258,10 @@
+ 	@rm -f rt_sigqueueinfo$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(rt_sigqueueinfo_OBJECTS) $(rt_sigqueueinfo_LDADD) $(LIBS)
+ 
++rt_sigqueueinfo--pidns-translation$(EXEEXT): $(rt_sigqueueinfo__pidns_translation_OBJECTS) $(rt_sigqueueinfo__pidns_translation_DEPENDENCIES) $(EXTRA_rt_sigqueueinfo__pidns_translation_DEPENDENCIES) 
++	@rm -f rt_sigqueueinfo--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(rt_sigqueueinfo__pidns_translation_OBJECTS) $(rt_sigqueueinfo__pidns_translation_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)
+@@ -8863,6 +9278,10 @@
+ 	@rm -f rt_tgsigqueueinfo$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(rt_tgsigqueueinfo_OBJECTS) $(rt_tgsigqueueinfo_LDADD) $(LIBS)
+ 
++rt_tgsigqueueinfo--pidns-translation$(EXEEXT): $(rt_tgsigqueueinfo__pidns_translation_OBJECTS) $(rt_tgsigqueueinfo__pidns_translation_DEPENDENCIES) $(EXTRA_rt_tgsigqueueinfo__pidns_translation_DEPENDENCIES) 
++	@rm -f rt_tgsigqueueinfo--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(rt_tgsigqueueinfo__pidns_translation_OBJECTS) $(rt_tgsigqueueinfo__pidns_translation_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)
+@@ -8903,18 +9322,34 @@
+ 	@rm -f sched_xetaffinity$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(sched_xetaffinity_OBJECTS) $(sched_xetaffinity_LDADD) $(LIBS)
+ 
++sched_xetaffinity--pidns-translation$(EXEEXT): $(sched_xetaffinity__pidns_translation_OBJECTS) $(sched_xetaffinity__pidns_translation_DEPENDENCIES) $(EXTRA_sched_xetaffinity__pidns_translation_DEPENDENCIES) 
++	@rm -f sched_xetaffinity--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(sched_xetaffinity__pidns_translation_OBJECTS) $(sched_xetaffinity__pidns_translation_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_xetattr--pidns-translation$(EXEEXT): $(sched_xetattr__pidns_translation_OBJECTS) $(sched_xetattr__pidns_translation_DEPENDENCIES) $(EXTRA_sched_xetattr__pidns_translation_DEPENDENCIES) 
++	@rm -f sched_xetattr--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(sched_xetattr__pidns_translation_OBJECTS) $(sched_xetattr__pidns_translation_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_xetparam--pidns-translation$(EXEEXT): $(sched_xetparam__pidns_translation_OBJECTS) $(sched_xetparam__pidns_translation_DEPENDENCIES) $(EXTRA_sched_xetparam__pidns_translation_DEPENDENCIES) 
++	@rm -f sched_xetparam--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(sched_xetparam__pidns_translation_OBJECTS) $(sched_xetparam__pidns_translation_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_xetscheduler--pidns-translation$(EXEEXT): $(sched_xetscheduler__pidns_translation_OBJECTS) $(sched_xetscheduler__pidns_translation_DEPENDENCIES) $(EXTRA_sched_xetscheduler__pidns_translation_DEPENDENCIES) 
++	@rm -f sched_xetscheduler--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(sched_xetscheduler__pidns_translation_OBJECTS) $(sched_xetscheduler__pidns_translation_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)
+@@ -9127,6 +9562,10 @@
+ 	@rm -f signal_receive$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(signal_receive_OBJECTS) $(signal_receive_LDADD) $(LIBS)
+ 
++signal_receive--pidns-translation$(EXEEXT): $(signal_receive__pidns_translation_OBJECTS) $(signal_receive__pidns_translation_DEPENDENCIES) $(EXTRA_signal_receive__pidns_translation_DEPENDENCIES) 
++	@rm -f signal_receive--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(signal_receive__pidns_translation_OBJECTS) $(signal_receive__pidns_translation_LDADD) $(LIBS)
++
+ signalfd4$(EXEEXT): $(signalfd4_OBJECTS) $(signalfd4_DEPENDENCIES) $(EXTRA_signalfd4_DEPENDENCIES) 
+ 	@rm -f signalfd4$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(signalfd4_OBJECTS) $(signalfd4_LDADD) $(LIBS)
+@@ -9163,6 +9602,10 @@
+ 	@rm -f so_peercred$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(so_peercred_OBJECTS) $(so_peercred_LDADD) $(LIBS)
+ 
++so_peercred--pidns-translation$(EXEEXT): $(so_peercred__pidns_translation_OBJECTS) $(so_peercred__pidns_translation_DEPENDENCIES) $(EXTRA_so_peercred__pidns_translation_DEPENDENCIES) 
++	@rm -f so_peercred--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(so_peercred__pidns_translation_OBJECTS) $(so_peercred__pidns_translation_LDADD) $(LIBS)
++
+ so_peercred-Xabbrev$(EXEEXT): $(so_peercred_Xabbrev_OBJECTS) $(so_peercred_Xabbrev_DEPENDENCIES) $(EXTRA_so_peercred_Xabbrev_DEPENDENCIES) 
+ 	@rm -f so_peercred-Xabbrev$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(so_peercred_Xabbrev_OBJECTS) $(so_peercred_Xabbrev_LDADD) $(LIBS)
+@@ -9367,6 +9810,10 @@
+ 	@rm -f tgkill$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(tgkill_OBJECTS) $(tgkill_LDADD) $(LIBS)
+ 
++tgkill--pidns-translation$(EXEEXT): $(tgkill__pidns_translation_OBJECTS) $(tgkill__pidns_translation_DEPENDENCIES) $(EXTRA_tgkill__pidns_translation_DEPENDENCIES) 
++	@rm -f tgkill--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(tgkill__pidns_translation_OBJECTS) $(tgkill__pidns_translation_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)
+@@ -9415,10 +9862,18 @@
+ 	@rm -f tkill$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(tkill_OBJECTS) $(tkill_LDADD) $(LIBS)
+ 
++tkill--pidns-translation$(EXEEXT): $(tkill__pidns_translation_OBJECTS) $(tkill__pidns_translation_DEPENDENCIES) $(EXTRA_tkill__pidns_translation_DEPENDENCIES) 
++	@rm -f tkill--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(tkill__pidns_translation_OBJECTS) $(tkill__pidns_translation_LDADD) $(LIBS)
++
+ tracer_ppid_pgid_sid$(EXEEXT): $(tracer_ppid_pgid_sid_OBJECTS) $(tracer_ppid_pgid_sid_DEPENDENCIES) $(EXTRA_tracer_ppid_pgid_sid_DEPENDENCIES) 
+ 	@rm -f tracer_ppid_pgid_sid$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(tracer_ppid_pgid_sid_OBJECTS) $(tracer_ppid_pgid_sid_LDADD) $(LIBS)
+ 
++trie_test$(EXEEXT): $(trie_test_OBJECTS) $(trie_test_DEPENDENCIES) $(EXTRA_trie_test_DEPENDENCIES) 
++	@rm -f trie_test$(EXEEXT)
++	$(AM_V_CCLD)$(trie_test_LINK) $(trie_test_OBJECTS) $(trie_test_LDADD) $(LIBS)
++
+ truncate$(EXEEXT): $(truncate_OBJECTS) $(truncate_DEPENDENCIES) $(EXTRA_truncate_DEPENDENCIES) 
+ 	@rm -f truncate$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(truncate_OBJECTS) $(truncate_LDADD) $(LIBS)
+@@ -9579,6 +10034,10 @@
+ 	@rm -f xet_robust_list$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(xet_robust_list_OBJECTS) $(xet_robust_list_LDADD) $(LIBS)
+ 
++xet_robust_list--pidns-translation$(EXEEXT): $(xet_robust_list__pidns_translation_OBJECTS) $(xet_robust_list__pidns_translation_DEPENDENCIES) $(EXTRA_xet_robust_list__pidns_translation_DEPENDENCIES) 
++	@rm -f xet_robust_list--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(xet_robust_list__pidns_translation_OBJECTS) $(xet_robust_list__pidns_translation_LDADD) $(LIBS)
++
+ xet_thread_area_x86$(EXEEXT): $(xet_thread_area_x86_OBJECTS) $(xet_thread_area_x86_DEPENDENCIES) $(EXTRA_xet_thread_area_x86_DEPENDENCIES) 
+ 	@rm -f xet_thread_area_x86$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(xet_thread_area_x86_OBJECTS) $(xet_thread_area_x86_LDADD) $(LIBS)
+@@ -9591,10 +10050,18 @@
+ 	@rm -f xetpgid$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(xetpgid_OBJECTS) $(xetpgid_LDADD) $(LIBS)
+ 
++xetpgid--pidns-translation$(EXEEXT): $(xetpgid__pidns_translation_OBJECTS) $(xetpgid__pidns_translation_DEPENDENCIES) $(EXTRA_xetpgid__pidns_translation_DEPENDENCIES) 
++	@rm -f xetpgid--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(xetpgid__pidns_translation_OBJECTS) $(xetpgid__pidns_translation_LDADD) $(LIBS)
++
+ xetpriority$(EXEEXT): $(xetpriority_OBJECTS) $(xetpriority_DEPENDENCIES) $(EXTRA_xetpriority_DEPENDENCIES) 
+ 	@rm -f xetpriority$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(xetpriority_OBJECTS) $(xetpriority_LDADD) $(LIBS)
+ 
++xetpriority--pidns-translation$(EXEEXT): $(xetpriority__pidns_translation_OBJECTS) $(xetpriority__pidns_translation_DEPENDENCIES) $(EXTRA_xetpriority__pidns_translation_DEPENDENCIES) 
++	@rm -f xetpriority--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(xetpriority__pidns_translation_OBJECTS) $(xetpriority__pidns_translation_LDADD) $(LIBS)
++
+ xettimeofday$(EXEEXT): $(xettimeofday_OBJECTS) $(xettimeofday_DEPENDENCIES) $(EXTRA_xettimeofday_DEPENDENCIES) 
+ 	@rm -f xettimeofday$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(xettimeofday_OBJECTS) $(xettimeofday_LDADD) $(LIBS)
+@@ -9714,7 +10181,9 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchown.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchown32.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl64--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl64.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fdatasync.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fflush.Po@am__quote@ # am--include-marker
+@@ -9725,6 +10194,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter_seccomp-perf.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/finit_module.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flock.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fork--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fork-f.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsconfig-P.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsconfig.Po@am__quote@ # am--include-marker
+@@ -9766,7 +10236,9 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getgroups.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getgroups32.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpeername.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpgrp--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpgrp.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpid--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpid.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getppid.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getrandom.Po@am__quote@ # am--include-marker
+@@ -9776,8 +10248,10 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getresuid32.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getrlimit.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getrusage.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getsid--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getsid.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getsockname.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettid--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettid.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getuid.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getuid32.Po@am__quote@ # am--include-marker
+@@ -9798,6 +10272,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/io_uring_register.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/io_uring_setup.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_block--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_block.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_dm-v.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_dm.Po@am__quote@ # am--include-marker
+@@ -9873,6 +10348,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_watchdog.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioperm.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iopl.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioprio--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioprio-Xabbrev.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioprio-Xraw.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioprio-Xverbose.Po@am__quote@ # am--include-marker
+@@ -9896,6 +10372,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_shm-Xverbose.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_shm.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/is_linux_mips_n64.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kcmp-y--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kcmp-y.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kcmp.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kern_features.Po@am__quote@ # am--include-marker
+@@ -9909,6 +10386,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyctl-Xraw.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyctl-Xverbose.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyctl.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kill--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kill.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kill_child.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ksysent.Po@am__quote@ # am--include-marker
+@@ -9946,6 +10424,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-test_printstrn.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-test_ucopy.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-tprintf.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/link.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list_sigaction_signum.Po@am__quote@ # am--include-marker
+@@ -9968,6 +10447,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memfd_create-Xraw.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memfd_create-Xverbose.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memfd_create.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/migrate_pages--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/migrate_pages.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mincore.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkdir.Po@am__quote@ # am--include-marker
+@@ -9996,6 +10476,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_mount-P.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_mount.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_pages--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_pages-Xabbrev.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_pages-Xraw.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_pages-Xverbose.Po@am__quote@ # am--include-marker
+@@ -10019,6 +10500,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-packet_mreq-Xraw.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-packet_mreq-Xverbose.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-packet_mreq.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-sockaddr--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-sockaddr.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-tpacket_req.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-tpacket_stats-success.Po@am__quote@ # am--include-marker
+@@ -10028,6 +10510,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-yy-inet6.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-yy-netlink.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-yy-unix.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_audit--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_audit.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_crypto.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_generic.Po@am__quote@ # am--include-marker
+@@ -10132,11 +10615,14 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open--decode-fd-path.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open--decode-fd-pidfd.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open--decode-fd-socket.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open-P.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open-y.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open-yy.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_send_signal--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_send_signal.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidns-cache.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipe.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipe2.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pkey_alloc.Po@am__quote@ # am--include-marker
+@@ -10174,8 +10660,11 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printstrn-umoven-peekdata.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printstrn-umoven-undumpable.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printstrn-umoven.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prlimit64--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prlimit64.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process_vm_readv--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process_vm_readv.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process_vm_writev--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process_vm_writev.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pselect6.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ptrace.Po@am__quote@ # am--include-marker
+@@ -10224,10 +10713,12 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigaction.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigpending.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigprocmask.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigqueueinfo--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigqueueinfo.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigreturn.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigsuspend.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigtimedwait.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_tgsigqueueinfo--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_tgsigqueueinfo.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/run_expect_termsig.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/s390_guarded_storage-v.Po@am__quote@ # am--include-marker
+@@ -10238,9 +10729,13 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/s390_sthyi.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_get_priority_mxx.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_rr_get_interval.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetaffinity--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetaffinity.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetattr--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetattr.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetparam--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetparam.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetscheduler--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetscheduler.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_yield.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scm_rights.Po@am__quote@ # am--include-marker
+@@ -10294,6 +10789,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigaltstack.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/siginfo.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal_receive--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal_receive.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signalfd4.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigpending.Po@am__quote@ # am--include-marker
+@@ -10303,6 +10799,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sleep.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_error.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_linger.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred-Xabbrev.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred-Xraw.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred-Xverbose.Po@am__quote@ # am--include-marker
+@@ -10362,6 +10859,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/syslog-success.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/syslog.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tee.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tgkill--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tgkill.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads-execve--quiet-thread-execve.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads-execve-q.Po@am__quote@ # am--include-marker
+@@ -10374,6 +10872,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timerfd_xettime.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/times-fail.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/times.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tkill--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tkill.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tracer_ppid_pgid_sid.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/truncate.Po@am__quote@ # am--include-marker
+@@ -10415,10 +10914,13 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/waitpid.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xattr-strings.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xattr.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xet_robust_list--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xet_robust_list.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xet_thread_area_x86.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetitimer.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetpgid--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetpgid.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetpriority--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetpriority.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xettimeofday.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zeroargc.Po@am__quote@ # am--include-marker
+@@ -10893,6 +11395,20 @@
+ @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-tprintf.obj `if test -f 'tprintf.c'; then $(CYGPATH_W) 'tprintf.c'; else $(CYGPATH_W) '$(srcdir)/tprintf.c'; fi`
+ 
++libtests_a-xmalloc_for_tests.o: xmalloc_for_tests.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-xmalloc_for_tests.o -MD -MP -MF $(DEPDIR)/libtests_a-xmalloc_for_tests.Tpo -c -o libtests_a-xmalloc_for_tests.o `test -f 'xmalloc_for_tests.c' || echo '$(srcdir)/'`xmalloc_for_tests.c
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-xmalloc_for_tests.Tpo $(DEPDIR)/libtests_a-xmalloc_for_tests.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='xmalloc_for_tests.c' object='libtests_a-xmalloc_for_tests.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-xmalloc_for_tests.o `test -f 'xmalloc_for_tests.c' || echo '$(srcdir)/'`xmalloc_for_tests.c
++
++libtests_a-xmalloc_for_tests.obj: xmalloc_for_tests.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-xmalloc_for_tests.obj -MD -MP -MF $(DEPDIR)/libtests_a-xmalloc_for_tests.Tpo -c -o libtests_a-xmalloc_for_tests.obj `if test -f 'xmalloc_for_tests.c'; then $(CYGPATH_W) 'xmalloc_for_tests.c'; else $(CYGPATH_W) '$(srcdir)/xmalloc_for_tests.c'; fi`
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-xmalloc_for_tests.Tpo $(DEPDIR)/libtests_a-xmalloc_for_tests.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='xmalloc_for_tests.c' object='libtests_a-xmalloc_for_tests.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-xmalloc_for_tests.obj `if test -f 'xmalloc_for_tests.c'; then $(CYGPATH_W) 'xmalloc_for_tests.c'; else $(CYGPATH_W) '$(srcdir)/xmalloc_for_tests.c'; fi`
++
+ fstat64-fstat64.o: fstat64.c
+ @am__fastdepCC_TRUE@	$(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__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/fstat64-fstat64.Tpo $(DEPDIR)/fstat64-fstat64.Po
+@@ -11103,6 +11619,34 @@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(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`
+ 
++trie_test-trie_test.o: trie_test.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -MT trie_test-trie_test.o -MD -MP -MF $(DEPDIR)/trie_test-trie_test.Tpo -c -o trie_test-trie_test.o `test -f 'trie_test.c' || echo '$(srcdir)/'`trie_test.c
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/trie_test-trie_test.Tpo $(DEPDIR)/trie_test-trie_test.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='trie_test.c' object='trie_test-trie_test.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) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -c -o trie_test-trie_test.o `test -f 'trie_test.c' || echo '$(srcdir)/'`trie_test.c
++
++trie_test-trie_test.obj: trie_test.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -MT trie_test-trie_test.obj -MD -MP -MF $(DEPDIR)/trie_test-trie_test.Tpo -c -o trie_test-trie_test.obj `if test -f 'trie_test.c'; then $(CYGPATH_W) 'trie_test.c'; else $(CYGPATH_W) '$(srcdir)/trie_test.c'; fi`
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/trie_test-trie_test.Tpo $(DEPDIR)/trie_test-trie_test.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='trie_test.c' object='trie_test-trie_test.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) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -c -o trie_test-trie_test.obj `if test -f 'trie_test.c'; then $(CYGPATH_W) 'trie_test.c'; else $(CYGPATH_W) '$(srcdir)/trie_test.c'; fi`
++
++trie_test-trie_for_tests.o: trie_for_tests.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -MT trie_test-trie_for_tests.o -MD -MP -MF $(DEPDIR)/trie_test-trie_for_tests.Tpo -c -o trie_test-trie_for_tests.o `test -f 'trie_for_tests.c' || echo '$(srcdir)/'`trie_for_tests.c
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/trie_test-trie_for_tests.Tpo $(DEPDIR)/trie_test-trie_for_tests.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='trie_for_tests.c' object='trie_test-trie_for_tests.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) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -c -o trie_test-trie_for_tests.o `test -f 'trie_for_tests.c' || echo '$(srcdir)/'`trie_for_tests.c
++
++trie_test-trie_for_tests.obj: trie_for_tests.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -MT trie_test-trie_for_tests.obj -MD -MP -MF $(DEPDIR)/trie_test-trie_for_tests.Tpo -c -o trie_test-trie_for_tests.obj `if test -f 'trie_for_tests.c'; then $(CYGPATH_W) 'trie_for_tests.c'; else $(CYGPATH_W) '$(srcdir)/trie_for_tests.c'; fi`
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/trie_test-trie_for_tests.Tpo $(DEPDIR)/trie_test-trie_for_tests.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='trie_for_tests.c' object='trie_test-trie_for_tests.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) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -c -o trie_test-trie_for_tests.obj `if test -f 'trie_for_tests.c'; then $(CYGPATH_W) 'trie_for_tests.c'; else $(CYGPATH_W) '$(srcdir)/trie_for_tests.c'; fi`
++
+ truncate64-truncate64.o: truncate64.c
+ @am__fastdepCC_TRUE@	$(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__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/truncate64-truncate64.Tpo $(DEPDIR)/truncate64-truncate64.Po
+@@ -11551,7 +12095,9 @@
+ 	-rm -f ./$(DEPDIR)/fchown.Po
+ 	-rm -f ./$(DEPDIR)/fchown32.Po
+ 	-rm -f ./$(DEPDIR)/fchownat.Po
++	-rm -f ./$(DEPDIR)/fcntl--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/fcntl.Po
++	-rm -f ./$(DEPDIR)/fcntl64--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/fcntl64.Po
+ 	-rm -f ./$(DEPDIR)/fdatasync.Po
+ 	-rm -f ./$(DEPDIR)/fflush.Po
+@@ -11562,6 +12108,7 @@
+ 	-rm -f ./$(DEPDIR)/filter_seccomp-perf.Po
+ 	-rm -f ./$(DEPDIR)/finit_module.Po
+ 	-rm -f ./$(DEPDIR)/flock.Po
++	-rm -f ./$(DEPDIR)/fork--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/fork-f.Po
+ 	-rm -f ./$(DEPDIR)/fsconfig-P.Po
+ 	-rm -f ./$(DEPDIR)/fsconfig.Po
+@@ -11603,7 +12150,9 @@
+ 	-rm -f ./$(DEPDIR)/getgroups.Po
+ 	-rm -f ./$(DEPDIR)/getgroups32.Po
+ 	-rm -f ./$(DEPDIR)/getpeername.Po
++	-rm -f ./$(DEPDIR)/getpgrp--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/getpgrp.Po
++	-rm -f ./$(DEPDIR)/getpid--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/getpid.Po
+ 	-rm -f ./$(DEPDIR)/getppid.Po
+ 	-rm -f ./$(DEPDIR)/getrandom.Po
+@@ -11613,8 +12162,10 @@
+ 	-rm -f ./$(DEPDIR)/getresuid32.Po
+ 	-rm -f ./$(DEPDIR)/getrlimit.Po
+ 	-rm -f ./$(DEPDIR)/getrusage.Po
++	-rm -f ./$(DEPDIR)/getsid--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/getsid.Po
+ 	-rm -f ./$(DEPDIR)/getsockname.Po
++	-rm -f ./$(DEPDIR)/gettid--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/gettid.Po
+ 	-rm -f ./$(DEPDIR)/getuid.Po
+ 	-rm -f ./$(DEPDIR)/getuid32.Po
+@@ -11635,6 +12186,7 @@
+ 	-rm -f ./$(DEPDIR)/io_uring_register.Po
+ 	-rm -f ./$(DEPDIR)/io_uring_setup.Po
+ 	-rm -f ./$(DEPDIR)/ioctl.Po
++	-rm -f ./$(DEPDIR)/ioctl_block--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/ioctl_block.Po
+ 	-rm -f ./$(DEPDIR)/ioctl_dm-v.Po
+ 	-rm -f ./$(DEPDIR)/ioctl_dm.Po
+@@ -11710,6 +12262,7 @@
+ 	-rm -f ./$(DEPDIR)/ioctl_watchdog.Po
+ 	-rm -f ./$(DEPDIR)/ioperm.Po
+ 	-rm -f ./$(DEPDIR)/iopl.Po
++	-rm -f ./$(DEPDIR)/ioprio--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/ioprio-Xabbrev.Po
+ 	-rm -f ./$(DEPDIR)/ioprio-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/ioprio-Xverbose.Po
+@@ -11733,6 +12286,7 @@
+ 	-rm -f ./$(DEPDIR)/ipc_shm-Xverbose.Po
+ 	-rm -f ./$(DEPDIR)/ipc_shm.Po
+ 	-rm -f ./$(DEPDIR)/is_linux_mips_n64.Po
++	-rm -f ./$(DEPDIR)/kcmp-y--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/kcmp-y.Po
+ 	-rm -f ./$(DEPDIR)/kcmp.Po
+ 	-rm -f ./$(DEPDIR)/kern_features.Po
+@@ -11746,6 +12300,7 @@
+ 	-rm -f ./$(DEPDIR)/keyctl-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/keyctl-Xverbose.Po
+ 	-rm -f ./$(DEPDIR)/keyctl.Po
++	-rm -f ./$(DEPDIR)/kill--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/kill.Po
+ 	-rm -f ./$(DEPDIR)/kill_child.Po
+ 	-rm -f ./$(DEPDIR)/ksysent.Po
+@@ -11783,6 +12338,7 @@
+ 	-rm -f ./$(DEPDIR)/libtests_a-test_printstrn.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-test_ucopy.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-tprintf.Po
++	-rm -f ./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po
+ 	-rm -f ./$(DEPDIR)/link.Po
+ 	-rm -f ./$(DEPDIR)/linkat.Po
+ 	-rm -f ./$(DEPDIR)/list_sigaction_signum.Po
+@@ -11805,6 +12361,7 @@
+ 	-rm -f ./$(DEPDIR)/memfd_create-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/memfd_create-Xverbose.Po
+ 	-rm -f ./$(DEPDIR)/memfd_create.Po
++	-rm -f ./$(DEPDIR)/migrate_pages--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/migrate_pages.Po
+ 	-rm -f ./$(DEPDIR)/mincore.Po
+ 	-rm -f ./$(DEPDIR)/mkdir.Po
+@@ -11833,6 +12390,7 @@
+ 	-rm -f ./$(DEPDIR)/mount.Po
+ 	-rm -f ./$(DEPDIR)/move_mount-P.Po
+ 	-rm -f ./$(DEPDIR)/move_mount.Po
++	-rm -f ./$(DEPDIR)/move_pages--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/move_pages-Xabbrev.Po
+ 	-rm -f ./$(DEPDIR)/move_pages-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/move_pages-Xverbose.Po
+@@ -11856,6 +12414,7 @@
+ 	-rm -f ./$(DEPDIR)/net-packet_mreq-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/net-packet_mreq-Xverbose.Po
+ 	-rm -f ./$(DEPDIR)/net-packet_mreq.Po
++	-rm -f ./$(DEPDIR)/net-sockaddr--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/net-sockaddr.Po
+ 	-rm -f ./$(DEPDIR)/net-tpacket_req.Po
+ 	-rm -f ./$(DEPDIR)/net-tpacket_stats-success.Po
+@@ -11865,6 +12424,7 @@
+ 	-rm -f ./$(DEPDIR)/net-yy-inet6.Po
+ 	-rm -f ./$(DEPDIR)/net-yy-netlink.Po
+ 	-rm -f ./$(DEPDIR)/net-yy-unix.Po
++	-rm -f ./$(DEPDIR)/netlink_audit--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/netlink_audit.Po
+ 	-rm -f ./$(DEPDIR)/netlink_crypto.Po
+ 	-rm -f ./$(DEPDIR)/netlink_generic.Po
+@@ -11969,11 +12529,14 @@
+ 	-rm -f ./$(DEPDIR)/pidfd_open--decode-fd-path.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open--decode-fd-pidfd.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open--decode-fd-socket.Po
++	-rm -f ./$(DEPDIR)/pidfd_open--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open-P.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open-y.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open-yy.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open.Po
++	-rm -f ./$(DEPDIR)/pidfd_send_signal--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_send_signal.Po
++	-rm -f ./$(DEPDIR)/pidns-cache.Po
+ 	-rm -f ./$(DEPDIR)/pipe.Po
+ 	-rm -f ./$(DEPDIR)/pipe2.Po
+ 	-rm -f ./$(DEPDIR)/pkey_alloc.Po
+@@ -12011,8 +12574,11 @@
+ 	-rm -f ./$(DEPDIR)/printstrn-umoven-peekdata.Po
+ 	-rm -f ./$(DEPDIR)/printstrn-umoven-undumpable.Po
+ 	-rm -f ./$(DEPDIR)/printstrn-umoven.Po
++	-rm -f ./$(DEPDIR)/prlimit64--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/prlimit64.Po
++	-rm -f ./$(DEPDIR)/process_vm_readv--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/process_vm_readv.Po
++	-rm -f ./$(DEPDIR)/process_vm_writev--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/process_vm_writev.Po
+ 	-rm -f ./$(DEPDIR)/pselect6.Po
+ 	-rm -f ./$(DEPDIR)/ptrace.Po
+@@ -12061,10 +12627,12 @@
+ 	-rm -f ./$(DEPDIR)/rt_sigaction.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigpending.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigprocmask.Po
++	-rm -f ./$(DEPDIR)/rt_sigqueueinfo--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigqueueinfo.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigreturn.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigsuspend.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigtimedwait.Po
++	-rm -f ./$(DEPDIR)/rt_tgsigqueueinfo--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/rt_tgsigqueueinfo.Po
+ 	-rm -f ./$(DEPDIR)/run_expect_termsig.Po
+ 	-rm -f ./$(DEPDIR)/s390_guarded_storage-v.Po
+@@ -12075,9 +12643,13 @@
+ 	-rm -f ./$(DEPDIR)/s390_sthyi.Po
+ 	-rm -f ./$(DEPDIR)/sched_get_priority_mxx.Po
+ 	-rm -f ./$(DEPDIR)/sched_rr_get_interval.Po
++	-rm -f ./$(DEPDIR)/sched_xetaffinity--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/sched_xetaffinity.Po
++	-rm -f ./$(DEPDIR)/sched_xetattr--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/sched_xetattr.Po
++	-rm -f ./$(DEPDIR)/sched_xetparam--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/sched_xetparam.Po
++	-rm -f ./$(DEPDIR)/sched_xetscheduler--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/sched_xetscheduler.Po
+ 	-rm -f ./$(DEPDIR)/sched_yield.Po
+ 	-rm -f ./$(DEPDIR)/scm_rights.Po
+@@ -12131,6 +12703,7 @@
+ 	-rm -f ./$(DEPDIR)/sigaltstack.Po
+ 	-rm -f ./$(DEPDIR)/siginfo.Po
+ 	-rm -f ./$(DEPDIR)/signal.Po
++	-rm -f ./$(DEPDIR)/signal_receive--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/signal_receive.Po
+ 	-rm -f ./$(DEPDIR)/signalfd4.Po
+ 	-rm -f ./$(DEPDIR)/sigpending.Po
+@@ -12140,6 +12713,7 @@
+ 	-rm -f ./$(DEPDIR)/sleep.Po
+ 	-rm -f ./$(DEPDIR)/so_error.Po
+ 	-rm -f ./$(DEPDIR)/so_linger.Po
++	-rm -f ./$(DEPDIR)/so_peercred--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/so_peercred-Xabbrev.Po
+ 	-rm -f ./$(DEPDIR)/so_peercred-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/so_peercred-Xverbose.Po
+@@ -12199,6 +12773,7 @@
+ 	-rm -f ./$(DEPDIR)/syslog-success.Po
+ 	-rm -f ./$(DEPDIR)/syslog.Po
+ 	-rm -f ./$(DEPDIR)/tee.Po
++	-rm -f ./$(DEPDIR)/tgkill--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/tgkill.Po
+ 	-rm -f ./$(DEPDIR)/threads-execve--quiet-thread-execve.Po
+ 	-rm -f ./$(DEPDIR)/threads-execve-q.Po
+@@ -12211,6 +12786,7 @@
+ 	-rm -f ./$(DEPDIR)/timerfd_xettime.Po
+ 	-rm -f ./$(DEPDIR)/times-fail.Po
+ 	-rm -f ./$(DEPDIR)/times.Po
++	-rm -f ./$(DEPDIR)/tkill--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/tkill.Po
+ 	-rm -f ./$(DEPDIR)/tracer_ppid_pgid_sid.Po
+ 	-rm -f ./$(DEPDIR)/truncate.Po
+@@ -12252,10 +12828,13 @@
+ 	-rm -f ./$(DEPDIR)/waitpid.Po
+ 	-rm -f ./$(DEPDIR)/xattr-strings.Po
+ 	-rm -f ./$(DEPDIR)/xattr.Po
++	-rm -f ./$(DEPDIR)/xet_robust_list--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/xet_robust_list.Po
+ 	-rm -f ./$(DEPDIR)/xet_thread_area_x86.Po
+ 	-rm -f ./$(DEPDIR)/xetitimer.Po
++	-rm -f ./$(DEPDIR)/xetpgid--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/xetpgid.Po
++	-rm -f ./$(DEPDIR)/xetpriority--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/xetpriority.Po
+ 	-rm -f ./$(DEPDIR)/xettimeofday.Po
+ 	-rm -f ./$(DEPDIR)/zeroargc.Po
+@@ -12409,7 +12988,9 @@
+ 	-rm -f ./$(DEPDIR)/fchown.Po
+ 	-rm -f ./$(DEPDIR)/fchown32.Po
+ 	-rm -f ./$(DEPDIR)/fchownat.Po
++	-rm -f ./$(DEPDIR)/fcntl--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/fcntl.Po
++	-rm -f ./$(DEPDIR)/fcntl64--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/fcntl64.Po
+ 	-rm -f ./$(DEPDIR)/fdatasync.Po
+ 	-rm -f ./$(DEPDIR)/fflush.Po
+@@ -12420,6 +13001,7 @@
+ 	-rm -f ./$(DEPDIR)/filter_seccomp-perf.Po
+ 	-rm -f ./$(DEPDIR)/finit_module.Po
+ 	-rm -f ./$(DEPDIR)/flock.Po
++	-rm -f ./$(DEPDIR)/fork--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/fork-f.Po
+ 	-rm -f ./$(DEPDIR)/fsconfig-P.Po
+ 	-rm -f ./$(DEPDIR)/fsconfig.Po
+@@ -12461,7 +13043,9 @@
+ 	-rm -f ./$(DEPDIR)/getgroups.Po
+ 	-rm -f ./$(DEPDIR)/getgroups32.Po
+ 	-rm -f ./$(DEPDIR)/getpeername.Po
++	-rm -f ./$(DEPDIR)/getpgrp--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/getpgrp.Po
++	-rm -f ./$(DEPDIR)/getpid--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/getpid.Po
+ 	-rm -f ./$(DEPDIR)/getppid.Po
+ 	-rm -f ./$(DEPDIR)/getrandom.Po
+@@ -12471,8 +13055,10 @@
+ 	-rm -f ./$(DEPDIR)/getresuid32.Po
+ 	-rm -f ./$(DEPDIR)/getrlimit.Po
+ 	-rm -f ./$(DEPDIR)/getrusage.Po
++	-rm -f ./$(DEPDIR)/getsid--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/getsid.Po
+ 	-rm -f ./$(DEPDIR)/getsockname.Po
++	-rm -f ./$(DEPDIR)/gettid--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/gettid.Po
+ 	-rm -f ./$(DEPDIR)/getuid.Po
+ 	-rm -f ./$(DEPDIR)/getuid32.Po
+@@ -12493,6 +13079,7 @@
+ 	-rm -f ./$(DEPDIR)/io_uring_register.Po
+ 	-rm -f ./$(DEPDIR)/io_uring_setup.Po
+ 	-rm -f ./$(DEPDIR)/ioctl.Po
++	-rm -f ./$(DEPDIR)/ioctl_block--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/ioctl_block.Po
+ 	-rm -f ./$(DEPDIR)/ioctl_dm-v.Po
+ 	-rm -f ./$(DEPDIR)/ioctl_dm.Po
+@@ -12568,6 +13155,7 @@
+ 	-rm -f ./$(DEPDIR)/ioctl_watchdog.Po
+ 	-rm -f ./$(DEPDIR)/ioperm.Po
+ 	-rm -f ./$(DEPDIR)/iopl.Po
++	-rm -f ./$(DEPDIR)/ioprio--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/ioprio-Xabbrev.Po
+ 	-rm -f ./$(DEPDIR)/ioprio-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/ioprio-Xverbose.Po
+@@ -12591,6 +13179,7 @@
+ 	-rm -f ./$(DEPDIR)/ipc_shm-Xverbose.Po
+ 	-rm -f ./$(DEPDIR)/ipc_shm.Po
+ 	-rm -f ./$(DEPDIR)/is_linux_mips_n64.Po
++	-rm -f ./$(DEPDIR)/kcmp-y--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/kcmp-y.Po
+ 	-rm -f ./$(DEPDIR)/kcmp.Po
+ 	-rm -f ./$(DEPDIR)/kern_features.Po
+@@ -12604,6 +13193,7 @@
+ 	-rm -f ./$(DEPDIR)/keyctl-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/keyctl-Xverbose.Po
+ 	-rm -f ./$(DEPDIR)/keyctl.Po
++	-rm -f ./$(DEPDIR)/kill--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/kill.Po
+ 	-rm -f ./$(DEPDIR)/kill_child.Po
+ 	-rm -f ./$(DEPDIR)/ksysent.Po
+@@ -12641,6 +13231,7 @@
+ 	-rm -f ./$(DEPDIR)/libtests_a-test_printstrn.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-test_ucopy.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-tprintf.Po
++	-rm -f ./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po
+ 	-rm -f ./$(DEPDIR)/link.Po
+ 	-rm -f ./$(DEPDIR)/linkat.Po
+ 	-rm -f ./$(DEPDIR)/list_sigaction_signum.Po
+@@ -12663,6 +13254,7 @@
+ 	-rm -f ./$(DEPDIR)/memfd_create-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/memfd_create-Xverbose.Po
+ 	-rm -f ./$(DEPDIR)/memfd_create.Po
++	-rm -f ./$(DEPDIR)/migrate_pages--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/migrate_pages.Po
+ 	-rm -f ./$(DEPDIR)/mincore.Po
+ 	-rm -f ./$(DEPDIR)/mkdir.Po
+@@ -12691,6 +13283,7 @@
+ 	-rm -f ./$(DEPDIR)/mount.Po
+ 	-rm -f ./$(DEPDIR)/move_mount-P.Po
+ 	-rm -f ./$(DEPDIR)/move_mount.Po
++	-rm -f ./$(DEPDIR)/move_pages--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/move_pages-Xabbrev.Po
+ 	-rm -f ./$(DEPDIR)/move_pages-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/move_pages-Xverbose.Po
+@@ -12714,6 +13307,7 @@
+ 	-rm -f ./$(DEPDIR)/net-packet_mreq-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/net-packet_mreq-Xverbose.Po
+ 	-rm -f ./$(DEPDIR)/net-packet_mreq.Po
++	-rm -f ./$(DEPDIR)/net-sockaddr--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/net-sockaddr.Po
+ 	-rm -f ./$(DEPDIR)/net-tpacket_req.Po
+ 	-rm -f ./$(DEPDIR)/net-tpacket_stats-success.Po
+@@ -12723,6 +13317,7 @@
+ 	-rm -f ./$(DEPDIR)/net-yy-inet6.Po
+ 	-rm -f ./$(DEPDIR)/net-yy-netlink.Po
+ 	-rm -f ./$(DEPDIR)/net-yy-unix.Po
++	-rm -f ./$(DEPDIR)/netlink_audit--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/netlink_audit.Po
+ 	-rm -f ./$(DEPDIR)/netlink_crypto.Po
+ 	-rm -f ./$(DEPDIR)/netlink_generic.Po
+@@ -12827,11 +13422,14 @@
+ 	-rm -f ./$(DEPDIR)/pidfd_open--decode-fd-path.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open--decode-fd-pidfd.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open--decode-fd-socket.Po
++	-rm -f ./$(DEPDIR)/pidfd_open--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open-P.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open-y.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open-yy.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open.Po
++	-rm -f ./$(DEPDIR)/pidfd_send_signal--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_send_signal.Po
++	-rm -f ./$(DEPDIR)/pidns-cache.Po
+ 	-rm -f ./$(DEPDIR)/pipe.Po
+ 	-rm -f ./$(DEPDIR)/pipe2.Po
+ 	-rm -f ./$(DEPDIR)/pkey_alloc.Po
+@@ -12869,8 +13467,11 @@
+ 	-rm -f ./$(DEPDIR)/printstrn-umoven-peekdata.Po
+ 	-rm -f ./$(DEPDIR)/printstrn-umoven-undumpable.Po
+ 	-rm -f ./$(DEPDIR)/printstrn-umoven.Po
++	-rm -f ./$(DEPDIR)/prlimit64--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/prlimit64.Po
++	-rm -f ./$(DEPDIR)/process_vm_readv--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/process_vm_readv.Po
++	-rm -f ./$(DEPDIR)/process_vm_writev--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/process_vm_writev.Po
+ 	-rm -f ./$(DEPDIR)/pselect6.Po
+ 	-rm -f ./$(DEPDIR)/ptrace.Po
+@@ -12919,10 +13520,12 @@
+ 	-rm -f ./$(DEPDIR)/rt_sigaction.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigpending.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigprocmask.Po
++	-rm -f ./$(DEPDIR)/rt_sigqueueinfo--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigqueueinfo.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigreturn.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigsuspend.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigtimedwait.Po
++	-rm -f ./$(DEPDIR)/rt_tgsigqueueinfo--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/rt_tgsigqueueinfo.Po
+ 	-rm -f ./$(DEPDIR)/run_expect_termsig.Po
+ 	-rm -f ./$(DEPDIR)/s390_guarded_storage-v.Po
+@@ -12933,9 +13536,13 @@
+ 	-rm -f ./$(DEPDIR)/s390_sthyi.Po
+ 	-rm -f ./$(DEPDIR)/sched_get_priority_mxx.Po
+ 	-rm -f ./$(DEPDIR)/sched_rr_get_interval.Po
++	-rm -f ./$(DEPDIR)/sched_xetaffinity--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/sched_xetaffinity.Po
++	-rm -f ./$(DEPDIR)/sched_xetattr--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/sched_xetattr.Po
++	-rm -f ./$(DEPDIR)/sched_xetparam--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/sched_xetparam.Po
++	-rm -f ./$(DEPDIR)/sched_xetscheduler--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/sched_xetscheduler.Po
+ 	-rm -f ./$(DEPDIR)/sched_yield.Po
+ 	-rm -f ./$(DEPDIR)/scm_rights.Po
+@@ -12989,6 +13596,7 @@
+ 	-rm -f ./$(DEPDIR)/sigaltstack.Po
+ 	-rm -f ./$(DEPDIR)/siginfo.Po
+ 	-rm -f ./$(DEPDIR)/signal.Po
++	-rm -f ./$(DEPDIR)/signal_receive--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/signal_receive.Po
+ 	-rm -f ./$(DEPDIR)/signalfd4.Po
+ 	-rm -f ./$(DEPDIR)/sigpending.Po
+@@ -12998,6 +13606,7 @@
+ 	-rm -f ./$(DEPDIR)/sleep.Po
+ 	-rm -f ./$(DEPDIR)/so_error.Po
+ 	-rm -f ./$(DEPDIR)/so_linger.Po
++	-rm -f ./$(DEPDIR)/so_peercred--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/so_peercred-Xabbrev.Po
+ 	-rm -f ./$(DEPDIR)/so_peercred-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/so_peercred-Xverbose.Po
+@@ -13057,6 +13666,7 @@
+ 	-rm -f ./$(DEPDIR)/syslog-success.Po
+ 	-rm -f ./$(DEPDIR)/syslog.Po
+ 	-rm -f ./$(DEPDIR)/tee.Po
++	-rm -f ./$(DEPDIR)/tgkill--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/tgkill.Po
+ 	-rm -f ./$(DEPDIR)/threads-execve--quiet-thread-execve.Po
+ 	-rm -f ./$(DEPDIR)/threads-execve-q.Po
+@@ -13069,6 +13679,7 @@
+ 	-rm -f ./$(DEPDIR)/timerfd_xettime.Po
+ 	-rm -f ./$(DEPDIR)/times-fail.Po
+ 	-rm -f ./$(DEPDIR)/times.Po
++	-rm -f ./$(DEPDIR)/tkill--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/tkill.Po
+ 	-rm -f ./$(DEPDIR)/tracer_ppid_pgid_sid.Po
+ 	-rm -f ./$(DEPDIR)/truncate.Po
+@@ -13110,14 +13721,26 @@
+ 	-rm -f ./$(DEPDIR)/waitpid.Po
+ 	-rm -f ./$(DEPDIR)/xattr-strings.Po
+ 	-rm -f ./$(DEPDIR)/xattr.Po
++	-rm -f ./$(DEPDIR)/xet_robust_list--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/xet_robust_list.Po
+ 	-rm -f ./$(DEPDIR)/xet_thread_area_x86.Po
+ 	-rm -f ./$(DEPDIR)/xetitimer.Po
++	-rm -f ./$(DEPDIR)/xetpgid--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/xetpgid.Po
++	-rm -f ./$(DEPDIR)/xetpriority--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/xetpriority.Po
+ 	-rm -f ./$(DEPDIR)/xettimeofday.Po
+ 	-rm -f ./$(DEPDIR)/zeroargc.Po
+ 	-rm -f Makefile
++distclean-am: clean-am distclean-compile distclean-generic \
++	distclean-tags
++
++dvi: dvi-am
++
++dvi-am:
++
++html: html-am
++	-rm -f Makefile
+ maintainer-clean-am: distclean-am maintainer-clean-generic
+ 
+ mostlyclean: mostlyclean-am
+@@ -13407,9 +14030,15 @@
+ $(srcdir)/fcntl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/fcntl--pidns-translation.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)/fcntl64--pidns-translation.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) $^ $@
+ 
+@@ -13569,9 +14198,15 @@
+ $(srcdir)/getpgrp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/getpgrp--pidns-translation.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)/getpid--pidns-translation.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) $^ $@
+ 
+@@ -13599,6 +14234,9 @@
+ $(srcdir)/getsid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/getsid--pidns-translation.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) $^ $@
+ 
+@@ -13878,6 +14516,9 @@
+ $(srcdir)/ioprio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/ioprio--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/ioprio-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13944,6 +14585,9 @@
+ $(srcdir)/kcmp-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/kcmp-y--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/kern_features.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13980,6 +14624,9 @@
+ $(srcdir)/kill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/kill--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/ksysent.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -14043,6 +14690,9 @@
+ $(srcdir)/migrate_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/migrate_pages--pidns-translation.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) $^ $@
+ 
+@@ -14133,6 +14783,9 @@
+ $(srcdir)/move_pages-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/move_pages--pidns-translation.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) $^ $@
+ 
+@@ -14190,6 +14843,9 @@
+ $(srcdir)/net-sockaddr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/net-sockaddr--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/net-tpacket_req.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -14499,9 +15155,15 @@
+ $(srcdir)/pidfd_open-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/pidfd_open--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/pidfd_send_signal.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/pidfd_send_signal--pidns-translation.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) $^ $@
+ 
+@@ -14568,12 +15230,21 @@
+ $(srcdir)/prlimit64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/prlimit64--pidns-translation.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_readv--pidns-translation.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)/process_vm_writev--pidns-translation.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) $^ $@
+ 
+@@ -14682,6 +15353,9 @@
+ $(srcdir)/rt_sigqueueinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/rt_sigqueueinfo--pidns-translation.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) $^ $@
+ 
+@@ -14694,6 +15368,9 @@
+ $(srcdir)/rt_tgsigqueueinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/rt_tgsigqueueinfo--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/s390_guarded_storage.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -14724,15 +15401,27 @@
+ $(srcdir)/sched_xetaffinity.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/sched_xetaffinity--pidns-translation.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_xetattr--pidns-translation.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_xetparam--pidns-translation.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_xetscheduler--pidns-translation.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) $^ $@
+ 
+@@ -14871,6 +15560,9 @@
+ $(srcdir)/signal_receive.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/signal_receive--pidns-translation.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) $^ $@
+ 
+@@ -14904,6 +15596,9 @@
+ $(srcdir)/so_peercred-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/so_peercred--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/sock_filter-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -15120,6 +15815,9 @@
+ $(srcdir)/tgkill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/tgkill--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/threads-execve--quiet-thread-execve.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -15153,6 +15851,9 @@
+ $(srcdir)/tkill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/tkill--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/trace_clock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -15201,6 +15902,9 @@
+ $(srcdir)/trace_statfs_like.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/trie_test.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) $^ $@
+ 
+@@ -15291,15 +15995,24 @@
+ $(srcdir)/xet_robust_list.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/xet_robust_list--pidns-translation.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)/xetpgid--pidns-translation.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)/xetpriority--pidns-translation.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) $^ $@
+ 
+Index: strace-5.7/tests-m32/Makefile.in
+===================================================================
+--- strace-5.7.orig/tests-m32/Makefile.in	2020-09-09 19:52:30.741668769 +0200
++++ strace-5.7/tests-m32/Makefile.in	2020-09-09 20:23:32.889940661 +0200
+@@ -121,10 +121,17 @@
+ 	clone3-success-Xabbrev$(EXEEXT) clone3-success-Xraw$(EXEEXT) \
+ 	clone3-success-Xverbose$(EXEEXT) count-f$(EXEEXT) \
+ 	delay$(EXEEXT) execve-v$(EXEEXT) execveat-v$(EXEEXT) \
++	fcntl--pidns-translation$(EXEEXT) \
++	fcntl64--pidns-translation$(EXEEXT) \
+ 	filter_seccomp-flag$(EXEEXT) filter_seccomp-perf$(EXEEXT) \
+-	filter-unavailable$(EXEEXT) fork-f$(EXEEXT) fsync-y$(EXEEXT) \
+-	get_process_reaper$(EXEEXT) getpid$(EXEEXT) getppid$(EXEEXT) \
+-	gettid$(EXEEXT) inject-nf$(EXEEXT) int_0x80$(EXEEXT) \
++	filter-unavailable$(EXEEXT) fork-f$(EXEEXT) \
++	fork--pidns-translation$(EXEEXT) fsync-y$(EXEEXT) \
++	get_process_reaper$(EXEEXT) \
++	getpgrp--pidns-translation$(EXEEXT) getpid$(EXEEXT) \
++	getpid--pidns-translation$(EXEEXT) getppid$(EXEEXT) \
++	getsid--pidns-translation$(EXEEXT) gettid$(EXEEXT) \
++	gettid--pidns-translation$(EXEEXT) inject-nf$(EXEEXT) \
++	int_0x80$(EXEEXT) ioctl_block--pidns-translation$(EXEEXT) \
+ 	ioctl_dm-v$(EXEEXT) ioctl_evdev-success$(EXEEXT) \
+ 	ioctl_evdev-success-Xabbrev$(EXEEXT) \
+ 	ioctl_evdev-success-Xraw$(EXEEXT) \
+@@ -151,43 +158,68 @@
+ 	ioctl_v4l2-success-v-Xabbrev$(EXEEXT) \
+ 	ioctl_v4l2-success-v-Xraw$(EXEEXT) \
+ 	ioctl_v4l2-success-v-Xverbose$(EXEEXT) \
+-	is_linux_mips_n64$(EXEEXT) kill_child$(EXEEXT) \
+-	ksysent$(EXEEXT) list_sigaction_signum$(EXEEXT) \
+-	localtime$(EXEEXT) looping_threads$(EXEEXT) \
+-	mmsg-silent$(EXEEXT) mmsg_name-v$(EXEEXT) \
++	ioprio--pidns-translation$(EXEEXT) is_linux_mips_n64$(EXEEXT) \
++	kcmp-y--pidns-translation$(EXEEXT) kill_child$(EXEEXT) \
++	kill--pidns-translation$(EXEEXT) ksysent$(EXEEXT) \
++	list_sigaction_signum$(EXEEXT) localtime$(EXEEXT) \
++	looping_threads$(EXEEXT) \
++	migrate_pages--pidns-translation$(EXEEXT) mmsg-silent$(EXEEXT) \
++	mmsg_name-v$(EXEEXT) move_pages--pidns-translation$(EXEEXT) \
+ 	msg_control-v$(EXEEXT) net-accept-connect$(EXEEXT) \
++	net-sockaddr--pidns-translation$(EXEEXT) \
+ 	net-tpacket_stats-success$(EXEEXT) nlattr_ifla_xdp-y$(EXEEXT) \
++	netlink_audit--pidns-translation$(EXEEXT) \
+ 	netlink_inet_diag$(EXEEXT) netlink_netlink_diag$(EXEEXT) \
+ 	netlink_unix_diag$(EXEEXT) nsyscalls$(EXEEXT) \
+ 	nsyscalls-d$(EXEEXT) oldselect-P$(EXEEXT) \
+ 	oldselect-efault-P$(EXEEXT) orphaned_process_group$(EXEEXT) \
+ 	pc$(EXEEXT) perf_event_open_nonverbose$(EXEEXT) \
+-	perf_event_open_unabbrev$(EXEEXT) poll-P$(EXEEXT) \
+-	ppoll-P$(EXEEXT) ppoll-v$(EXEEXT) \
++	perf_event_open_unabbrev$(EXEEXT) \
++	pidfd_open--pidns-translation$(EXEEXT) \
++	pidfd_send_signal--pidns-translation$(EXEEXT) \
++	pidns-cache$(EXEEXT) poll-P$(EXEEXT) ppoll-P$(EXEEXT) \
++	ppoll-v$(EXEEXT) prlimit64--pidns-translation$(EXEEXT) \
+ 	prctl-seccomp-filter-v$(EXEEXT) prctl-seccomp-strict$(EXEEXT) \
+ 	prctl-spec-inject$(EXEEXT) print_maxfd$(EXEEXT) \
+-	print_ppid_tracerpid$(EXEEXT) qual_fault$(EXEEXT) \
+-	qual_inject-error-signal$(EXEEXT) qual_inject-retval$(EXEEXT) \
+-	qual_inject-signal$(EXEEXT) qual_signal$(EXEEXT) \
+-	quotactl-success$(EXEEXT) quotactl-success-v$(EXEEXT) \
+-	quotactl-v$(EXEEXT) quotactl-xfs-success$(EXEEXT) \
+-	quotactl-xfs-success-v$(EXEEXT) quotactl-xfs-v$(EXEEXT) \
+-	redirect-fds$(EXEEXT) restart_syscall$(EXEEXT) \
+-	run_expect_termsig$(EXEEXT) scm_rights$(EXEEXT) \
+-	seccomp-filter-v$(EXEEXT) seccomp-strict$(EXEEXT) \
+-	select-P$(EXEEXT) set_ptracer_any$(EXEEXT) \
+-	set_sigblock$(EXEEXT) set_sigign$(EXEEXT) \
+-	setpgrp-exec$(EXEEXT) signal_receive$(EXEEXT) sleep$(EXEEXT) \
++	print_ppid_tracerpid$(EXEEXT) \
++	process_vm_readv--pidns-translation$(EXEEXT) \
++	process_vm_writev--pidns-translation$(EXEEXT) \
++	qual_fault$(EXEEXT) qual_inject-error-signal$(EXEEXT) \
++	qual_inject-retval$(EXEEXT) qual_inject-signal$(EXEEXT) \
++	qual_signal$(EXEEXT) quotactl-success$(EXEEXT) \
++	quotactl-success-v$(EXEEXT) quotactl-v$(EXEEXT) \
++	quotactl-xfs-success$(EXEEXT) quotactl-xfs-success-v$(EXEEXT) \
++	quotactl-xfs-v$(EXEEXT) redirect-fds$(EXEEXT) \
++	restart_syscall$(EXEEXT) \
++	rt_sigqueueinfo--pidns-translation$(EXEEXT) \
++	rt_tgsigqueueinfo--pidns-translation$(EXEEXT) \
++	run_expect_termsig$(EXEEXT) \
++	sched_xetaffinity--pidns-translation$(EXEEXT) \
++	sched_xetattr--pidns-translation$(EXEEXT) \
++	sched_xetparam--pidns-translation$(EXEEXT) \
++	sched_xetscheduler--pidns-translation$(EXEEXT) \
++	scm_rights$(EXEEXT) seccomp-filter-v$(EXEEXT) \
++	seccomp-strict$(EXEEXT) select-P$(EXEEXT) \
++	set_ptracer_any$(EXEEXT) set_sigblock$(EXEEXT) \
++	set_sigign$(EXEEXT) setpgrp-exec$(EXEEXT) \
++	signal_receive$(EXEEXT) \
++	signal_receive--pidns-translation$(EXEEXT) sleep$(EXEEXT) \
+ 	stack-fcall$(EXEEXT) stack-fcall-attach$(EXEEXT) \
+ 	stack-fcall-mangled$(EXEEXT) status-none-threads$(EXEEXT) \
+-	status-unfinished-threads$(EXEEXT) syslog-success$(EXEEXT) \
++	status-unfinished-threads$(EXEEXT) \
++	so_peercred--pidns-translation$(EXEEXT) \
++	syslog-success$(EXEEXT) tgkill--pidns-translation$(EXEEXT) \
+ 	threads-execve$(EXEEXT) \
+ 	threads-execve--quiet-thread-execve$(EXEEXT) \
+ 	threads-execve-q$(EXEEXT) threads-execve-qq$(EXEEXT) \
+-	threads-execve-qqq$(EXEEXT) tracer_ppid_pgid_sid$(EXEEXT) \
++	threads-execve-qqq$(EXEEXT) tkill--pidns-translation$(EXEEXT) \
++	tracer_ppid_pgid_sid$(EXEEXT) trie_test$(EXEEXT) \
+ 	unblock_reset_raise$(EXEEXT) unix-pair-send-recv$(EXEEXT) \
+ 	unix-pair-sendto-recvfrom$(EXEEXT) vfork-f$(EXEEXT) \
+-	wait4-v$(EXEEXT) waitid-v$(EXEEXT) zeroargc$(EXEEXT)
++	wait4-v$(EXEEXT) waitid-v$(EXEEXT) \
++	xetpgid--pidns-translation$(EXEEXT) \
++	xetpriority--pidns-translation$(EXEEXT) \
++	xet_robust_list--pidns-translation$(EXEEXT) zeroargc$(EXEEXT)
+ @ENABLE_STACKTRACE_TRUE@@USE_DEMANGLE_TRUE@am__append_1 = strace-k-demangle.test
+ TESTS = $(GEN_TESTS) $(DECODER_TESTS) $(MISC_TESTS) $(am__EXEEXT_2)
+ subdir = tests-m32
+@@ -545,7 +577,8 @@
+ 	libtests_a-tail_alloc.$(OBJEXT) \
+ 	libtests_a-test_printpath.$(OBJEXT) \
+ 	libtests_a-test_printstrn.$(OBJEXT) \
+-	libtests_a-test_ucopy.$(OBJEXT) libtests_a-tprintf.$(OBJEXT)
++	libtests_a-test_ucopy.$(OBJEXT) libtests_a-tprintf.$(OBJEXT) \
++	libtests_a-xmalloc_for_tests.$(OBJEXT)
+ libtests_a_OBJECTS = $(am_libtests_a_OBJECTS)
+ _newselect_SOURCES = _newselect.c
+ _newselect_OBJECTS = _newselect.$(OBJEXT)
+@@ -973,10 +1006,19 @@
+ fcntl_OBJECTS = fcntl.$(OBJEXT)
+ fcntl_LDADD = $(LDADD)
+ fcntl_DEPENDENCIES = libtests.a
++fcntl__pidns_translation_SOURCES = fcntl--pidns-translation.c
++fcntl__pidns_translation_OBJECTS = fcntl--pidns-translation.$(OBJEXT)
++fcntl__pidns_translation_LDADD = $(LDADD)
++fcntl__pidns_translation_DEPENDENCIES = libtests.a
+ fcntl64_SOURCES = fcntl64.c
+ fcntl64_OBJECTS = fcntl64.$(OBJEXT)
+ fcntl64_LDADD = $(LDADD)
+ fcntl64_DEPENDENCIES = libtests.a
++fcntl64__pidns_translation_SOURCES = fcntl64--pidns-translation.c
++fcntl64__pidns_translation_OBJECTS =  \
++	fcntl64--pidns-translation.$(OBJEXT)
++fcntl64__pidns_translation_LDADD = $(LDADD)
++fcntl64__pidns_translation_DEPENDENCIES = libtests.a
+ fdatasync_SOURCES = fdatasync.c
+ fdatasync_OBJECTS = fdatasync.$(OBJEXT)
+ fdatasync_LDADD = $(LDADD)
+@@ -1012,6 +1054,10 @@
+ flock_OBJECTS = flock.$(OBJEXT)
+ flock_LDADD = $(LDADD)
+ flock_DEPENDENCIES = libtests.a
++fork__pidns_translation_SOURCES = fork--pidns-translation.c
++fork__pidns_translation_OBJECTS = fork--pidns-translation.$(OBJEXT)
++fork__pidns_translation_LDADD = $(LDADD)
++fork__pidns_translation_DEPENDENCIES = libtests.a
+ fork_f_SOURCES = fork-f.c
+ fork_f_OBJECTS = fork-f.$(OBJEXT)
+ fork_f_LDADD = $(LDADD)
+@@ -1180,10 +1226,20 @@
+ getpgrp_OBJECTS = getpgrp.$(OBJEXT)
+ getpgrp_LDADD = $(LDADD)
+ getpgrp_DEPENDENCIES = libtests.a
++getpgrp__pidns_translation_SOURCES = getpgrp--pidns-translation.c
++getpgrp__pidns_translation_OBJECTS =  \
++	getpgrp--pidns-translation.$(OBJEXT)
++getpgrp__pidns_translation_LDADD = $(LDADD)
++getpgrp__pidns_translation_DEPENDENCIES = libtests.a
+ getpid_SOURCES = getpid.c
+ getpid_OBJECTS = getpid.$(OBJEXT)
+ getpid_LDADD = $(LDADD)
+ getpid_DEPENDENCIES = libtests.a
++getpid__pidns_translation_SOURCES = getpid--pidns-translation.c
++getpid__pidns_translation_OBJECTS =  \
++	getpid--pidns-translation.$(OBJEXT)
++getpid__pidns_translation_LDADD = $(LDADD)
++getpid__pidns_translation_DEPENDENCIES = libtests.a
+ getppid_SOURCES = getppid.c
+ getppid_OBJECTS = getppid.$(OBJEXT)
+ getppid_LDADD = $(LDADD)
+@@ -1220,6 +1276,11 @@
+ getsid_OBJECTS = getsid.$(OBJEXT)
+ getsid_LDADD = $(LDADD)
+ getsid_DEPENDENCIES = libtests.a
++getsid__pidns_translation_SOURCES = getsid--pidns-translation.c
++getsid__pidns_translation_OBJECTS =  \
++	getsid--pidns-translation.$(OBJEXT)
++getsid__pidns_translation_LDADD = $(LDADD)
++getsid__pidns_translation_DEPENDENCIES = libtests.a
+ getsockname_SOURCES = getsockname.c
+ getsockname_OBJECTS = getsockname.$(OBJEXT)
+ getsockname_LDADD = $(LDADD)
+@@ -1228,6 +1289,11 @@
+ gettid_OBJECTS = gettid.$(OBJEXT)
+ gettid_LDADD = $(LDADD)
+ gettid_DEPENDENCIES = libtests.a
++gettid__pidns_translation_SOURCES = gettid--pidns-translation.c
++gettid__pidns_translation_OBJECTS =  \
++	gettid--pidns-translation.$(OBJEXT)
++gettid__pidns_translation_LDADD = $(LDADD)
++gettid__pidns_translation_DEPENDENCIES = libtests.a
+ getuid_SOURCES = getuid.c
+ getuid_OBJECTS = getuid.$(OBJEXT)
+ getuid_LDADD = $(LDADD)
+@@ -1308,6 +1374,12 @@
+ ioctl_block_OBJECTS = ioctl_block.$(OBJEXT)
+ ioctl_block_LDADD = $(LDADD)
+ ioctl_block_DEPENDENCIES = libtests.a
++ioctl_block__pidns_translation_SOURCES =  \
++	ioctl_block--pidns-translation.c
++ioctl_block__pidns_translation_OBJECTS =  \
++	ioctl_block--pidns-translation.$(OBJEXT)
++ioctl_block__pidns_translation_LDADD = $(LDADD)
++ioctl_block__pidns_translation_DEPENDENCIES = libtests.a
+ ioctl_dm_SOURCES = ioctl_dm.c
+ ioctl_dm_OBJECTS = ioctl_dm.$(OBJEXT)
+ ioctl_dm_LDADD = $(LDADD)
+@@ -1628,6 +1700,11 @@
+ ioprio_OBJECTS = ioprio.$(OBJEXT)
+ ioprio_LDADD = $(LDADD)
+ ioprio_DEPENDENCIES = libtests.a
++ioprio__pidns_translation_SOURCES = ioprio--pidns-translation.c
++ioprio__pidns_translation_OBJECTS =  \
++	ioprio--pidns-translation.$(OBJEXT)
++ioprio__pidns_translation_LDADD = $(LDADD)
++ioprio__pidns_translation_DEPENDENCIES = libtests.a
+ ioprio_Xabbrev_SOURCES = ioprio-Xabbrev.c
+ ioprio_Xabbrev_OBJECTS = ioprio-Xabbrev.$(OBJEXT)
+ ioprio_Xabbrev_LDADD = $(LDADD)
+@@ -1724,6 +1801,11 @@
+ kcmp_y_OBJECTS = kcmp-y.$(OBJEXT)
+ kcmp_y_LDADD = $(LDADD)
+ kcmp_y_DEPENDENCIES = libtests.a
++kcmp_y__pidns_translation_SOURCES = kcmp-y--pidns-translation.c
++kcmp_y__pidns_translation_OBJECTS =  \
++	kcmp-y--pidns-translation.$(OBJEXT)
++kcmp_y__pidns_translation_LDADD = $(LDADD)
++kcmp_y__pidns_translation_DEPENDENCIES = libtests.a
+ kern_features_SOURCES = kern_features.c
+ kern_features_OBJECTS = kern_features.$(OBJEXT)
+ kern_features_LDADD = $(LDADD)
+@@ -1772,6 +1854,10 @@
+ kill_OBJECTS = kill.$(OBJEXT)
+ kill_LDADD = $(LDADD)
+ kill_DEPENDENCIES = libtests.a
++kill__pidns_translation_SOURCES = kill--pidns-translation.c
++kill__pidns_translation_OBJECTS = kill--pidns-translation.$(OBJEXT)
++kill__pidns_translation_LDADD = $(LDADD)
++kill__pidns_translation_DEPENDENCIES = libtests.a
+ kill_child_SOURCES = kill_child.c
+ kill_child_OBJECTS = kill_child.$(OBJEXT)
+ kill_child_LDADD = $(LDADD)
+@@ -1878,6 +1964,12 @@
+ migrate_pages_OBJECTS = migrate_pages.$(OBJEXT)
+ migrate_pages_LDADD = $(LDADD)
+ migrate_pages_DEPENDENCIES = libtests.a
++migrate_pages__pidns_translation_SOURCES =  \
++	migrate_pages--pidns-translation.c
++migrate_pages__pidns_translation_OBJECTS =  \
++	migrate_pages--pidns-translation.$(OBJEXT)
++migrate_pages__pidns_translation_LDADD = $(LDADD)
++migrate_pages__pidns_translation_DEPENDENCIES = libtests.a
+ mincore_SOURCES = mincore.c
+ mincore_OBJECTS = mincore.$(OBJEXT)
+ mincore_LDADD = $(LDADD)
+@@ -1990,6 +2082,12 @@
+ move_pages_OBJECTS = move_pages.$(OBJEXT)
+ move_pages_LDADD = $(LDADD)
+ move_pages_DEPENDENCIES = libtests.a
++move_pages__pidns_translation_SOURCES =  \
++	move_pages--pidns-translation.c
++move_pages__pidns_translation_OBJECTS =  \
++	move_pages--pidns-translation.$(OBJEXT)
++move_pages__pidns_translation_LDADD = $(LDADD)
++move_pages__pidns_translation_DEPENDENCIES = libtests.a
+ move_pages_Xabbrev_SOURCES = move_pages-Xabbrev.c
+ move_pages_Xabbrev_OBJECTS = move_pages-Xabbrev.$(OBJEXT)
+ move_pages_Xabbrev_LDADD = $(LDADD)
+@@ -2086,6 +2184,12 @@
+ net_sockaddr_OBJECTS = net-sockaddr.$(OBJEXT)
+ net_sockaddr_LDADD = $(LDADD)
+ net_sockaddr_DEPENDENCIES = libtests.a
++net_sockaddr__pidns_translation_SOURCES =  \
++	net-sockaddr--pidns-translation.c
++net_sockaddr__pidns_translation_OBJECTS =  \
++	net-sockaddr--pidns-translation.$(OBJEXT)
++net_sockaddr__pidns_translation_LDADD = $(LDADD)
++net_sockaddr__pidns_translation_DEPENDENCIES = libtests.a
+ net_tpacket_req_SOURCES = net-tpacket_req.c
+ net_tpacket_req_OBJECTS = net-tpacket_req.$(OBJEXT)
+ net_tpacket_req_LDADD = $(LDADD)
+@@ -2123,6 +2227,12 @@
+ netlink_audit_OBJECTS = netlink_audit.$(OBJEXT)
+ netlink_audit_LDADD = $(LDADD)
+ netlink_audit_DEPENDENCIES = libtests.a
++netlink_audit__pidns_translation_SOURCES =  \
++	netlink_audit--pidns-translation.c
++netlink_audit__pidns_translation_OBJECTS =  \
++	netlink_audit--pidns-translation.$(OBJEXT)
++netlink_audit__pidns_translation_LDADD = $(LDADD)
++netlink_audit__pidns_translation_DEPENDENCIES = libtests.a
+ netlink_crypto_SOURCES = netlink_crypto.c
+ netlink_crypto_OBJECTS = netlink_crypto.$(OBJEXT)
+ netlink_crypto_LDADD = $(LDADD)
+@@ -2543,6 +2653,12 @@
+ 	pidfd_open--decode-fd-socket.$(OBJEXT)
+ pidfd_open__decode_fd_socket_LDADD = $(LDADD)
+ pidfd_open__decode_fd_socket_DEPENDENCIES = libtests.a
++pidfd_open__pidns_translation_SOURCES =  \
++	pidfd_open--pidns-translation.c
++pidfd_open__pidns_translation_OBJECTS =  \
++	pidfd_open--pidns-translation.$(OBJEXT)
++pidfd_open__pidns_translation_LDADD = $(LDADD)
++pidfd_open__pidns_translation_DEPENDENCIES = libtests.a
+ pidfd_open_P_SOURCES = pidfd_open-P.c
+ pidfd_open_P_OBJECTS = pidfd_open-P.$(OBJEXT)
+ pidfd_open_P_LDADD = $(LDADD)
+@@ -2559,6 +2675,16 @@
+ pidfd_send_signal_OBJECTS = pidfd_send_signal.$(OBJEXT)
+ pidfd_send_signal_LDADD = $(LDADD)
+ pidfd_send_signal_DEPENDENCIES = libtests.a
++pidfd_send_signal__pidns_translation_SOURCES =  \
++	pidfd_send_signal--pidns-translation.c
++pidfd_send_signal__pidns_translation_OBJECTS =  \
++	pidfd_send_signal--pidns-translation.$(OBJEXT)
++pidfd_send_signal__pidns_translation_LDADD = $(LDADD)
++pidfd_send_signal__pidns_translation_DEPENDENCIES = libtests.a
++pidns_cache_SOURCES = pidns-cache.c
++pidns_cache_OBJECTS = pidns-cache.$(OBJEXT)
++pidns_cache_LDADD = $(LDADD)
++pidns_cache_DEPENDENCIES = libtests.a
+ pipe_SOURCES = pipe.c
+ pipe_OBJECTS = pipe.$(OBJEXT)
+ pipe_LDADD = $(LDADD)
+@@ -2717,14 +2843,31 @@
+ prlimit64_OBJECTS = prlimit64.$(OBJEXT)
+ prlimit64_LDADD = $(LDADD)
+ prlimit64_DEPENDENCIES = libtests.a
++prlimit64__pidns_translation_SOURCES = prlimit64--pidns-translation.c
++prlimit64__pidns_translation_OBJECTS =  \
++	prlimit64--pidns-translation.$(OBJEXT)
++prlimit64__pidns_translation_LDADD = $(LDADD)
++prlimit64__pidns_translation_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_readv__pidns_translation_SOURCES =  \
++	process_vm_readv--pidns-translation.c
++process_vm_readv__pidns_translation_OBJECTS =  \
++	process_vm_readv--pidns-translation.$(OBJEXT)
++process_vm_readv__pidns_translation_LDADD = $(LDADD)
++process_vm_readv__pidns_translation_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
++process_vm_writev__pidns_translation_SOURCES =  \
++	process_vm_writev--pidns-translation.c
++process_vm_writev__pidns_translation_OBJECTS =  \
++	process_vm_writev--pidns-translation.$(OBJEXT)
++process_vm_writev__pidns_translation_LDADD = $(LDADD)
++process_vm_writev__pidns_translation_DEPENDENCIES = libtests.a
+ pselect6_SOURCES = pselect6.c
+ pselect6_OBJECTS = pselect6.$(OBJEXT)
+ pselect6_LDADD = $(LDADD)
+@@ -2918,6 +3061,12 @@
+ rt_sigqueueinfo_OBJECTS = rt_sigqueueinfo.$(OBJEXT)
+ rt_sigqueueinfo_LDADD = $(LDADD)
+ rt_sigqueueinfo_DEPENDENCIES = libtests.a
++rt_sigqueueinfo__pidns_translation_SOURCES =  \
++	rt_sigqueueinfo--pidns-translation.c
++rt_sigqueueinfo__pidns_translation_OBJECTS =  \
++	rt_sigqueueinfo--pidns-translation.$(OBJEXT)
++rt_sigqueueinfo__pidns_translation_LDADD = $(LDADD)
++rt_sigqueueinfo__pidns_translation_DEPENDENCIES = libtests.a
+ rt_sigreturn_SOURCES = rt_sigreturn.c
+ rt_sigreturn_OBJECTS = rt_sigreturn.$(OBJEXT)
+ rt_sigreturn_LDADD = $(LDADD)
+@@ -2934,6 +3083,12 @@
+ rt_tgsigqueueinfo_OBJECTS = rt_tgsigqueueinfo.$(OBJEXT)
+ rt_tgsigqueueinfo_LDADD = $(LDADD)
+ rt_tgsigqueueinfo_DEPENDENCIES = libtests.a
++rt_tgsigqueueinfo__pidns_translation_SOURCES =  \
++	rt_tgsigqueueinfo--pidns-translation.c
++rt_tgsigqueueinfo__pidns_translation_OBJECTS =  \
++	rt_tgsigqueueinfo--pidns-translation.$(OBJEXT)
++rt_tgsigqueueinfo__pidns_translation_LDADD = $(LDADD)
++rt_tgsigqueueinfo__pidns_translation_DEPENDENCIES = libtests.a
+ run_expect_termsig_SOURCES = run_expect_termsig.c
+ run_expect_termsig_OBJECTS = run_expect_termsig.$(OBJEXT)
+ run_expect_termsig_LDADD = $(LDADD)
+@@ -2974,18 +3129,42 @@
+ sched_xetaffinity_OBJECTS = sched_xetaffinity.$(OBJEXT)
+ sched_xetaffinity_LDADD = $(LDADD)
+ sched_xetaffinity_DEPENDENCIES = libtests.a
++sched_xetaffinity__pidns_translation_SOURCES =  \
++	sched_xetaffinity--pidns-translation.c
++sched_xetaffinity__pidns_translation_OBJECTS =  \
++	sched_xetaffinity--pidns-translation.$(OBJEXT)
++sched_xetaffinity__pidns_translation_LDADD = $(LDADD)
++sched_xetaffinity__pidns_translation_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_xetattr__pidns_translation_SOURCES =  \
++	sched_xetattr--pidns-translation.c
++sched_xetattr__pidns_translation_OBJECTS =  \
++	sched_xetattr--pidns-translation.$(OBJEXT)
++sched_xetattr__pidns_translation_LDADD = $(LDADD)
++sched_xetattr__pidns_translation_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_xetparam__pidns_translation_SOURCES =  \
++	sched_xetparam--pidns-translation.c
++sched_xetparam__pidns_translation_OBJECTS =  \
++	sched_xetparam--pidns-translation.$(OBJEXT)
++sched_xetparam__pidns_translation_LDADD = $(LDADD)
++sched_xetparam__pidns_translation_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_xetscheduler__pidns_translation_SOURCES =  \
++	sched_xetscheduler--pidns-translation.c
++sched_xetscheduler__pidns_translation_OBJECTS =  \
++	sched_xetscheduler--pidns-translation.$(OBJEXT)
++sched_xetscheduler__pidns_translation_LDADD = $(LDADD)
++sched_xetscheduler__pidns_translation_DEPENDENCIES = libtests.a
+ sched_yield_SOURCES = sched_yield.c
+ sched_yield_OBJECTS = sched_yield.$(OBJEXT)
+ sched_yield_LDADD = $(LDADD)
+@@ -3198,6 +3377,12 @@
+ signal_receive_OBJECTS = signal_receive.$(OBJEXT)
+ signal_receive_LDADD = $(LDADD)
+ signal_receive_DEPENDENCIES = libtests.a
++signal_receive__pidns_translation_SOURCES =  \
++	signal_receive--pidns-translation.c
++signal_receive__pidns_translation_OBJECTS =  \
++	signal_receive--pidns-translation.$(OBJEXT)
++signal_receive__pidns_translation_LDADD = $(LDADD)
++signal_receive__pidns_translation_DEPENDENCIES = libtests.a
+ signalfd4_SOURCES = signalfd4.c
+ signalfd4_OBJECTS = signalfd4.$(OBJEXT)
+ signalfd4_LDADD = $(LDADD)
+@@ -3234,6 +3419,12 @@
+ so_peercred_OBJECTS = so_peercred.$(OBJEXT)
+ so_peercred_LDADD = $(LDADD)
+ so_peercred_DEPENDENCIES = libtests.a
++so_peercred__pidns_translation_SOURCES =  \
++	so_peercred--pidns-translation.c
++so_peercred__pidns_translation_OBJECTS =  \
++	so_peercred--pidns-translation.$(OBJEXT)
++so_peercred__pidns_translation_LDADD = $(LDADD)
++so_peercred__pidns_translation_DEPENDENCIES = libtests.a
+ so_peercred_Xabbrev_SOURCES = so_peercred-Xabbrev.c
+ so_peercred_Xabbrev_OBJECTS = so_peercred-Xabbrev.$(OBJEXT)
+ so_peercred_Xabbrev_LDADD = $(LDADD)
+@@ -3448,6 +3639,11 @@
+ tgkill_OBJECTS = tgkill.$(OBJEXT)
+ tgkill_LDADD = $(LDADD)
+ tgkill_DEPENDENCIES = libtests.a
++tgkill__pidns_translation_SOURCES = tgkill--pidns-translation.c
++tgkill__pidns_translation_OBJECTS =  \
++	tgkill--pidns-translation.$(OBJEXT)
++tgkill__pidns_translation_LDADD = $(LDADD)
++tgkill__pidns_translation_DEPENDENCIES = libtests.a
+ threads_execve_SOURCES = threads-execve.c
+ threads_execve_OBJECTS = threads-execve.$(OBJEXT)
+ threads_execve_DEPENDENCIES = $(am__DEPENDENCIES_1) $(LDADD)
+@@ -3493,10 +3689,20 @@
+ tkill_OBJECTS = tkill.$(OBJEXT)
+ tkill_LDADD = $(LDADD)
+ tkill_DEPENDENCIES = libtests.a
++tkill__pidns_translation_SOURCES = tkill--pidns-translation.c
++tkill__pidns_translation_OBJECTS = tkill--pidns-translation.$(OBJEXT)
++tkill__pidns_translation_LDADD = $(LDADD)
++tkill__pidns_translation_DEPENDENCIES = libtests.a
+ tracer_ppid_pgid_sid_SOURCES = tracer_ppid_pgid_sid.c
+ tracer_ppid_pgid_sid_OBJECTS = tracer_ppid_pgid_sid.$(OBJEXT)
+ tracer_ppid_pgid_sid_LDADD = $(LDADD)
+ tracer_ppid_pgid_sid_DEPENDENCIES = libtests.a
++am_trie_test_OBJECTS = trie_test-trie_test.$(OBJEXT) \
++	trie_test-trie_for_tests.$(OBJEXT)
++trie_test_OBJECTS = $(am_trie_test_OBJECTS)
++trie_test_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_1)
++trie_test_LINK = $(CCLD) $(trie_test_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
++	$(LDFLAGS) -o $@
+ truncate_SOURCES = truncate.c
+ truncate_OBJECTS = truncate.$(OBJEXT)
+ truncate_LDADD = $(LDADD)
+@@ -3658,6 +3864,12 @@
+ xet_robust_list_OBJECTS = xet_robust_list.$(OBJEXT)
+ xet_robust_list_LDADD = $(LDADD)
+ xet_robust_list_DEPENDENCIES = libtests.a
++xet_robust_list__pidns_translation_SOURCES =  \
++	xet_robust_list--pidns-translation.c
++xet_robust_list__pidns_translation_OBJECTS =  \
++	xet_robust_list--pidns-translation.$(OBJEXT)
++xet_robust_list__pidns_translation_LDADD = $(LDADD)
++xet_robust_list__pidns_translation_DEPENDENCIES = libtests.a
+ xet_thread_area_x86_SOURCES = xet_thread_area_x86.c
+ xet_thread_area_x86_OBJECTS = xet_thread_area_x86.$(OBJEXT)
+ xet_thread_area_x86_LDADD = $(LDADD)
+@@ -3670,10 +3882,21 @@
+ xetpgid_OBJECTS = xetpgid.$(OBJEXT)
+ xetpgid_LDADD = $(LDADD)
+ xetpgid_DEPENDENCIES = libtests.a
++xetpgid__pidns_translation_SOURCES = xetpgid--pidns-translation.c
++xetpgid__pidns_translation_OBJECTS =  \
++	xetpgid--pidns-translation.$(OBJEXT)
++xetpgid__pidns_translation_LDADD = $(LDADD)
++xetpgid__pidns_translation_DEPENDENCIES = libtests.a
+ xetpriority_SOURCES = xetpriority.c
+ xetpriority_OBJECTS = xetpriority.$(OBJEXT)
+ xetpriority_LDADD = $(LDADD)
+ xetpriority_DEPENDENCIES = libtests.a
++xetpriority__pidns_translation_SOURCES =  \
++	xetpriority--pidns-translation.c
++xetpriority__pidns_translation_OBJECTS =  \
++	xetpriority--pidns-translation.$(OBJEXT)
++xetpriority__pidns_translation_LDADD = $(LDADD)
++xetpriority__pidns_translation_DEPENDENCIES = libtests.a
+ xettimeofday_SOURCES = xettimeofday.c
+ xettimeofday_OBJECTS = xettimeofday.$(OBJEXT)
+ xettimeofday_LDADD = $(LDADD)
+@@ -3759,13 +3982,15 @@
+ 	./$(DEPDIR)/fanotify_mark.Po ./$(DEPDIR)/fchdir.Po \
+ 	./$(DEPDIR)/fchmod.Po ./$(DEPDIR)/fchmodat.Po \
+ 	./$(DEPDIR)/fchown.Po ./$(DEPDIR)/fchown32.Po \
+-	./$(DEPDIR)/fchownat.Po ./$(DEPDIR)/fcntl.Po \
+-	./$(DEPDIR)/fcntl64.Po ./$(DEPDIR)/fdatasync.Po \
++	./$(DEPDIR)/fchownat.Po \
++	./$(DEPDIR)/fcntl--pidns-translation.Po ./$(DEPDIR)/fcntl.Po \
++	./$(DEPDIR)/fcntl64--pidns-translation.Po ./$(DEPDIR)/fcntl64.Po \
++	./$(DEPDIR)/fdatasync.Po \
+ 	./$(DEPDIR)/fflush.Po ./$(DEPDIR)/file_handle.Po \
+ 	./$(DEPDIR)/file_ioctl.Po ./$(DEPDIR)/filter-unavailable.Po \
+ 	./$(DEPDIR)/filter_seccomp-flag.Po \
+ 	./$(DEPDIR)/filter_seccomp-perf.Po ./$(DEPDIR)/finit_module.Po \
+-	./$(DEPDIR)/flock.Po ./$(DEPDIR)/fork-f.Po \
++	./$(DEPDIR)/flock.Po ./$(DEPDIR)/fork--pidns-translation.Po ./$(DEPDIR)/fork-f.Po \
+ 	./$(DEPDIR)/fsconfig-P.Po ./$(DEPDIR)/fsconfig.Po \
+ 	./$(DEPDIR)/fsmount.Po ./$(DEPDIR)/fsopen.Po \
+ 	./$(DEPDIR)/fspick-P.Po ./$(DEPDIR)/fspick.Po \
+@@ -3786,13 +4011,14 @@
+ 	./$(DEPDIR)/geteuid32.Po ./$(DEPDIR)/getgid.Po \
+ 	./$(DEPDIR)/getgid32.Po ./$(DEPDIR)/getgroups.Po \
+ 	./$(DEPDIR)/getgroups32.Po ./$(DEPDIR)/getpeername.Po \
+-	./$(DEPDIR)/getpgrp.Po ./$(DEPDIR)/getpid.Po \
++	./$(DEPDIR)/getpgrp--pidns-translation.Po ./$(DEPDIR)/getpgrp.Po \
++	./$(DEPDIR)/getpid--pidns-translation.Po ./$(DEPDIR)/getpid.Po \
+ 	./$(DEPDIR)/getppid.Po ./$(DEPDIR)/getrandom.Po \
+ 	./$(DEPDIR)/getresgid.Po ./$(DEPDIR)/getresgid32.Po \
+ 	./$(DEPDIR)/getresuid.Po ./$(DEPDIR)/getresuid32.Po \
+ 	./$(DEPDIR)/getrlimit.Po ./$(DEPDIR)/getrusage.Po \
+-	./$(DEPDIR)/getsid.Po ./$(DEPDIR)/getsockname.Po \
+-	./$(DEPDIR)/gettid.Po ./$(DEPDIR)/getuid.Po \
++	./$(DEPDIR)/getsid--pidns-translation.Po ./$(DEPDIR)/getsid.Po ./$(DEPDIR)/getsockname.Po \
++	./$(DEPDIR)/gettid--pidns-translation.Po ./$(DEPDIR)/gettid.Po ./$(DEPDIR)/getuid.Po \
+ 	./$(DEPDIR)/getuid32.Po ./$(DEPDIR)/getxgid.Po \
+ 	./$(DEPDIR)/getxpid.Po ./$(DEPDIR)/getxuid.Po \
+ 	./$(DEPDIR)/group_req.Po ./$(DEPDIR)/inet-cmsg.Po \
+@@ -3802,7 +4028,7 @@
+ 	./$(DEPDIR)/inotify_init1.Po ./$(DEPDIR)/int_0x80.Po \
+ 	./$(DEPDIR)/io_uring_enter.Po ./$(DEPDIR)/io_uring_register.Po \
+ 	./$(DEPDIR)/io_uring_setup.Po ./$(DEPDIR)/ioctl.Po \
+-	./$(DEPDIR)/ioctl_block.Po ./$(DEPDIR)/ioctl_dm-v.Po \
++	./$(DEPDIR)/ioctl_block--pidns-translation.Po ./$(DEPDIR)/ioctl_block.Po ./$(DEPDIR)/ioctl_dm-v.Po \
+ 	./$(DEPDIR)/ioctl_dm.Po ./$(DEPDIR)/ioctl_evdev-Xabbrev.Po \
+ 	./$(DEPDIR)/ioctl_evdev-Xraw.Po \
+ 	./$(DEPDIR)/ioctl_evdev-Xverbose.Po \
+@@ -3861,7 +4087,7 @@
+ 	./$(DEPDIR)/ioctl_v4l2-v-Xverbose.Po \
+ 	./$(DEPDIR)/ioctl_v4l2-v.Po ./$(DEPDIR)/ioctl_v4l2.Po \
+ 	./$(DEPDIR)/ioctl_watchdog.Po ./$(DEPDIR)/ioperm.Po \
+-	./$(DEPDIR)/iopl.Po ./$(DEPDIR)/ioprio-Xabbrev.Po \
++	./$(DEPDIR)/iopl.Po ./$(DEPDIR)/ioprio--pidns-translation.Po ./$(DEPDIR)/ioprio-Xabbrev.Po \
+ 	./$(DEPDIR)/ioprio-Xraw.Po ./$(DEPDIR)/ioprio-Xverbose.Po \
+ 	./$(DEPDIR)/ioprio.Po ./$(DEPDIR)/ip_mreq.Po \
+ 	./$(DEPDIR)/ipc.Po ./$(DEPDIR)/ipc_msg-Xabbrev.Po \
+@@ -3873,15 +4099,15 @@
+ 	./$(DEPDIR)/ipc_sem-Xverbose.Po ./$(DEPDIR)/ipc_sem.Po \
+ 	./$(DEPDIR)/ipc_shm-Xabbrev.Po ./$(DEPDIR)/ipc_shm-Xraw.Po \
+ 	./$(DEPDIR)/ipc_shm-Xverbose.Po ./$(DEPDIR)/ipc_shm.Po \
+-	./$(DEPDIR)/is_linux_mips_n64.Po ./$(DEPDIR)/kcmp-y.Po \
+-	./$(DEPDIR)/kcmp.Po ./$(DEPDIR)/kern_features.Po \
++	./$(DEPDIR)/is_linux_mips_n64.Po ./$(DEPDIR)/kcmp-y--pidns-translation.Po \
++	./$(DEPDIR)/kcmp-y.Po ./$(DEPDIR)/kcmp.Po ./$(DEPDIR)/kern_features.Po \
+ 	./$(DEPDIR)/kernel_version-Xabbrev.Po \
+ 	./$(DEPDIR)/kernel_version-Xraw.Po \
+ 	./$(DEPDIR)/kernel_version-Xverbose.Po \
+ 	./$(DEPDIR)/kernel_version.Po ./$(DEPDIR)/kexec_file_load.Po \
+ 	./$(DEPDIR)/kexec_load.Po ./$(DEPDIR)/keyctl-Xabbrev.Po \
+ 	./$(DEPDIR)/keyctl-Xraw.Po ./$(DEPDIR)/keyctl-Xverbose.Po \
+-	./$(DEPDIR)/keyctl.Po ./$(DEPDIR)/kill.Po \
++	./$(DEPDIR)/keyctl.Po ./$(DEPDIR)/kill--pidns-translation.Po ./$(DEPDIR)/kill.Po \
+ 	./$(DEPDIR)/kill_child.Po ./$(DEPDIR)/ksysent.Po \
+ 	./$(DEPDIR)/lchown.Po ./$(DEPDIR)/lchown32.Po \
+ 	./$(DEPDIR)/libtests_a-create_nl_socket.Po \
+@@ -3915,7 +4141,8 @@
+ 	./$(DEPDIR)/libtests_a-test_printpath.Po \
+ 	./$(DEPDIR)/libtests_a-test_printstrn.Po \
+ 	./$(DEPDIR)/libtests_a-test_ucopy.Po \
+-	./$(DEPDIR)/libtests_a-tprintf.Po ./$(DEPDIR)/link.Po \
++	./$(DEPDIR)/libtests_a-tprintf.Po \
++	./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po ./$(DEPDIR)/link.Po \
+ 	./$(DEPDIR)/linkat.Po ./$(DEPDIR)/list_sigaction_signum.Po \
+ 	./$(DEPDIR)/llseek.Po ./$(DEPDIR)/localtime.Po \
+ 	./$(DEPDIR)/lookup_dcookie.Po ./$(DEPDIR)/looping_threads.Po \
+@@ -3928,7 +4155,9 @@
+ 	./$(DEPDIR)/membarrier.Po ./$(DEPDIR)/memfd_create-Xabbrev.Po \
+ 	./$(DEPDIR)/memfd_create-Xraw.Po \
+ 	./$(DEPDIR)/memfd_create-Xverbose.Po \
+-	./$(DEPDIR)/memfd_create.Po ./$(DEPDIR)/migrate_pages.Po \
++	./$(DEPDIR)/memfd_create.Po \
++	./$(DEPDIR)/migrate_pages--pidns-translation.Po \
++	./$(DEPDIR)/migrate_pages.Po \
+ 	./$(DEPDIR)/mincore.Po ./$(DEPDIR)/mkdir.Po \
+ 	./$(DEPDIR)/mkdirat.Po ./$(DEPDIR)/mknod.Po \
+ 	./$(DEPDIR)/mknodat.Po ./$(DEPDIR)/mlock.Po \
+@@ -3944,7 +4173,7 @@
+ 	./$(DEPDIR)/modify_ldt.Po ./$(DEPDIR)/mount-Xabbrev.Po \
+ 	./$(DEPDIR)/mount-Xraw.Po ./$(DEPDIR)/mount-Xverbose.Po \
+ 	./$(DEPDIR)/mount.Po ./$(DEPDIR)/move_mount-P.Po \
+-	./$(DEPDIR)/move_mount.Po ./$(DEPDIR)/move_pages-Xabbrev.Po \
++	./$(DEPDIR)/move_mount.Po ./$(DEPDIR)/move_pages--pidns-translation.Po ./$(DEPDIR)/move_pages-Xabbrev.Po \
+ 	./$(DEPDIR)/move_pages-Xraw.Po \
+ 	./$(DEPDIR)/move_pages-Xverbose.Po ./$(DEPDIR)/move_pages.Po \
+ 	./$(DEPDIR)/mq.Po ./$(DEPDIR)/mq_sendrecv-read.Po \
+@@ -3961,12 +4190,13 @@
+ 	./$(DEPDIR)/net-packet_mreq-Xabbrev.Po \
+ 	./$(DEPDIR)/net-packet_mreq-Xraw.Po \
+ 	./$(DEPDIR)/net-packet_mreq-Xverbose.Po \
+-	./$(DEPDIR)/net-packet_mreq.Po ./$(DEPDIR)/net-sockaddr.Po \
++	./$(DEPDIR)/net-packet_mreq.Po ./$(DEPDIR)/net-sockaddr--pidns-translation.Po ./$(DEPDIR)/net-sockaddr.Po \
+ 	./$(DEPDIR)/net-tpacket_req.Po \
+ 	./$(DEPDIR)/net-tpacket_stats-success.Po \
+ 	./$(DEPDIR)/net-tpacket_stats.Po ./$(DEPDIR)/net-y-unix.Po \
+ 	./$(DEPDIR)/net-yy-inet.Po ./$(DEPDIR)/net-yy-inet6.Po \
+ 	./$(DEPDIR)/net-yy-netlink.Po ./$(DEPDIR)/net-yy-unix.Po \
++	./$(DEPDIR)/netlink_audit--pidns-translation.Po \
+ 	./$(DEPDIR)/netlink_audit.Po ./$(DEPDIR)/netlink_crypto.Po \
+ 	./$(DEPDIR)/netlink_generic.Po \
+ 	./$(DEPDIR)/netlink_inet_diag.Po \
+@@ -4043,9 +4273,11 @@
+ 	./$(DEPDIR)/pidfd_open--decode-fd-path.Po \
+ 	./$(DEPDIR)/pidfd_open--decode-fd-pidfd.Po \
+ 	./$(DEPDIR)/pidfd_open--decode-fd-socket.Po \
++	./$(DEPDIR)/pidfd_open--pidns-translation.Po \
+ 	./$(DEPDIR)/pidfd_open-P.Po ./$(DEPDIR)/pidfd_open-y.Po \
+ 	./$(DEPDIR)/pidfd_open-yy.Po ./$(DEPDIR)/pidfd_open.Po \
+-	./$(DEPDIR)/pidfd_send_signal.Po ./$(DEPDIR)/pipe.Po \
++	./$(DEPDIR)/pidfd_send_signal--pidns-translation.Po \
++	./$(DEPDIR)/pidfd_send_signal.Po ./$(DEPDIR)/pidns-cache.Po ./$(DEPDIR)/pipe.Po \
+ 	./$(DEPDIR)/pipe2.Po ./$(DEPDIR)/pkey_alloc.Po \
+ 	./$(DEPDIR)/pkey_free.Po ./$(DEPDIR)/pkey_mprotect.Po \
+ 	./$(DEPDIR)/poll-P.Po ./$(DEPDIR)/poll.Po \
+@@ -4070,8 +4302,10 @@
+ 	./$(DEPDIR)/printsignal-Xverbose.Po ./$(DEPDIR)/printstr.Po \
+ 	./$(DEPDIR)/printstrn-umoven-peekdata.Po \
+ 	./$(DEPDIR)/printstrn-umoven-undumpable.Po \
+-	./$(DEPDIR)/printstrn-umoven.Po ./$(DEPDIR)/prlimit64.Po \
++	./$(DEPDIR)/printstrn-umoven.Po ./$(DEPDIR)/prlimit64--pidns-translation.Po ./$(DEPDIR)/prlimit64.Po \
++	./$(DEPDIR)/process_vm_readv--pidns-translation.Po \
+ 	./$(DEPDIR)/process_vm_readv.Po \
++	./$(DEPDIR)/process_vm_writev--pidns-translation.Po \
+ 	./$(DEPDIR)/process_vm_writev.Po ./$(DEPDIR)/pselect6.Po \
+ 	./$(DEPDIR)/ptrace.Po ./$(DEPDIR)/ptrace_syscall_info.Po \
+ 	./$(DEPDIR)/pwritev-pwritev.Po ./$(DEPDIR)/qual_fault.Po \
+@@ -4101,9 +4335,10 @@
+ 	./$(DEPDIR)/request_key.Po ./$(DEPDIR)/restart_syscall.Po \
+ 	./$(DEPDIR)/riscv_flush_icache.Po ./$(DEPDIR)/rmdir.Po \
+ 	./$(DEPDIR)/rt_sigaction.Po ./$(DEPDIR)/rt_sigpending.Po \
+-	./$(DEPDIR)/rt_sigprocmask.Po ./$(DEPDIR)/rt_sigqueueinfo.Po \
++	./$(DEPDIR)/rt_sigprocmask.Po ./$(DEPDIR)/rt_sigqueueinfo--pidns-translation.Po ./$(DEPDIR)/rt_sigqueueinfo.Po \
+ 	./$(DEPDIR)/rt_sigreturn.Po ./$(DEPDIR)/rt_sigsuspend.Po \
+ 	./$(DEPDIR)/rt_sigtimedwait.Po \
++	./$(DEPDIR)/rt_tgsigqueueinfo--pidns-translation.Po \
+ 	./$(DEPDIR)/rt_tgsigqueueinfo.Po \
+ 	./$(DEPDIR)/run_expect_termsig.Po \
+ 	./$(DEPDIR)/s390_guarded_storage-v.Po \
+@@ -4113,9 +4348,15 @@
+ 	./$(DEPDIR)/s390_sthyi.Po \
+ 	./$(DEPDIR)/sched_get_priority_mxx.Po \
+ 	./$(DEPDIR)/sched_rr_get_interval.Po \
+-	./$(DEPDIR)/sched_xetaffinity.Po ./$(DEPDIR)/sched_xetattr.Po \
++	./$(DEPDIR)/sched_xetaffinity--pidns-translation.Po \
++	./$(DEPDIR)/sched_xetaffinity.Po \
++	./$(DEPDIR)/sched_xetattr--pidns-translation.Po \
++	./$(DEPDIR)/sched_xetattr.Po \
++	./$(DEPDIR)/sched_xetparam--pidns-translation.Po \
+ 	./$(DEPDIR)/sched_xetparam.Po \
+-	./$(DEPDIR)/sched_xetscheduler.Po ./$(DEPDIR)/sched_yield.Po \
++	./$(DEPDIR)/sched_xetscheduler--pidns-translation.Po \
++	./$(DEPDIR)/sched_xetscheduler.Po \
++	./$(DEPDIR)/sched_yield.Po \
+ 	./$(DEPDIR)/scm_rights.Po ./$(DEPDIR)/seccomp-filter-v.Po \
+ 	./$(DEPDIR)/seccomp-filter.Po ./$(DEPDIR)/seccomp-strict.Po \
+ 	./$(DEPDIR)/seccomp_get_action_avail.Po \
+@@ -4143,11 +4384,12 @@
+ 	./$(DEPDIR)/shmxt.Po ./$(DEPDIR)/shutdown.Po \
+ 	./$(DEPDIR)/sigaction.Po ./$(DEPDIR)/sigaltstack.Po \
+ 	./$(DEPDIR)/siginfo.Po ./$(DEPDIR)/signal.Po \
+-	./$(DEPDIR)/signal_receive.Po ./$(DEPDIR)/signalfd4.Po \
++	./$(DEPDIR)/signal_receive--pidns-translation.Po ./$(DEPDIR)/signal_receive.Po ./$(DEPDIR)/signalfd4.Po \
+ 	./$(DEPDIR)/sigpending.Po ./$(DEPDIR)/sigprocmask.Po \
+ 	./$(DEPDIR)/sigreturn.Po ./$(DEPDIR)/sigsuspend.Po \
+ 	./$(DEPDIR)/sleep.Po ./$(DEPDIR)/so_error.Po \
+-	./$(DEPDIR)/so_linger.Po ./$(DEPDIR)/so_peercred-Xabbrev.Po \
++	./$(DEPDIR)/so_linger.Po ./$(DEPDIR)/so_peercred--pidns-translation.Po \
++	./$(DEPDIR)/so_peercred-Xabbrev.Po \
+ 	./$(DEPDIR)/so_peercred-Xraw.Po \
+ 	./$(DEPDIR)/so_peercred-Xverbose.Po ./$(DEPDIR)/so_peercred.Po \
+ 	./$(DEPDIR)/sock_filter-v-Xabbrev.Po \
+@@ -4186,7 +4428,7 @@
+ 	./$(DEPDIR)/symlinkat.Po ./$(DEPDIR)/sync.Po \
+ 	./$(DEPDIR)/sync_file_range.Po ./$(DEPDIR)/sync_file_range2.Po \
+ 	./$(DEPDIR)/sysinfo.Po ./$(DEPDIR)/syslog-success.Po \
+-	./$(DEPDIR)/syslog.Po ./$(DEPDIR)/tee.Po ./$(DEPDIR)/tgkill.Po \
++	./$(DEPDIR)/syslog.Po ./$(DEPDIR)/tee.Po ./$(DEPDIR)/tgkill--pidns-translation.Po ./$(DEPDIR)/tgkill.Po \
+ 	./$(DEPDIR)/threads-execve--quiet-thread-execve.Po \
+ 	./$(DEPDIR)/threads-execve-q.Po \
+ 	./$(DEPDIR)/threads-execve-qq.Po \
+@@ -4194,7 +4436,8 @@
+ 	./$(DEPDIR)/threads-execve.Po ./$(DEPDIR)/time.Po \
+ 	./$(DEPDIR)/timer_create.Po ./$(DEPDIR)/timer_xettime.Po \
+ 	./$(DEPDIR)/timerfd_xettime.Po ./$(DEPDIR)/times-fail.Po \
+-	./$(DEPDIR)/times.Po ./$(DEPDIR)/tkill.Po ./$(DEPDIR)/tracer_ppid_pgid_sid.Po \
++	./$(DEPDIR)/times.Po ./$(DEPDIR)/tkill--pidns-translation.Po \
++	./$(DEPDIR)/tkill.Po ./$(DEPDIR)/tracer_ppid_pgid_sid.Po \
+ 	./$(DEPDIR)/truncate.Po ./$(DEPDIR)/truncate64-truncate64.Po \
+ 	./$(DEPDIR)/ugetrlimit.Po ./$(DEPDIR)/uio-uio.Po \
+ 	./$(DEPDIR)/umask.Po ./$(DEPDIR)/umount.Po \
+@@ -4216,9 +4459,11 @@
+ 	./$(DEPDIR)/wait4-v.Po ./$(DEPDIR)/wait4.Po \
+ 	./$(DEPDIR)/waitid-v.Po ./$(DEPDIR)/waitid.Po \
+ 	./$(DEPDIR)/waitpid.Po ./$(DEPDIR)/xattr-strings.Po \
+-	./$(DEPDIR)/xattr.Po ./$(DEPDIR)/xet_robust_list.Po \
++	./$(DEPDIR)/xattr.Po ./$(DEPDIR)/xet_robust_list--pidns-translation.Po \
++	./$(DEPDIR)/xet_robust_list.Po \
+ 	./$(DEPDIR)/xet_thread_area_x86.Po ./$(DEPDIR)/xetitimer.Po \
+-	./$(DEPDIR)/xetpgid.Po ./$(DEPDIR)/xetpriority.Po \
++	./$(DEPDIR)/xetpgid--pidns-translation.Po ./$(DEPDIR)/xetpgid.Po \
++	./$(DEPDIR)/xetpriority--pidns-translation.Po ./$(DEPDIR)/xetpriority.Po \
+ 	./$(DEPDIR)/xettimeofday.Po ./$(DEPDIR)/zeroargc.Po
+ am__mv = mv -f
+ AM_V_lt = $(am__v_lt_@AM_V@)
+@@ -4264,26 +4509,30 @@
+ 	fadvise64_64.c fallocate.c fanotify_init.c fanotify_mark.c \
+ 	fanotify_mark-Xabbrev.c fanotify_mark-Xraw.c \
+ 	fanotify_mark-Xverbose.c fchdir.c fchmod.c fchmodat.c fchown.c \
+-	fchown32.c fchownat.c fcntl.c fcntl64.c fdatasync.c fflush.c \
++	fchown32.c fchownat.c fcntl.c fcntl--pidns-translation.c \
++	fcntl64.c fcntl64--pidns-translation.c fdatasync.c fflush.c \
+ 	file_handle.c file_ioctl.c filter-unavailable.c \
+ 	filter_seccomp-flag.c filter_seccomp-perf.c finit_module.c \
+-	flock.c fork-f.c fsconfig.c fsconfig-P.c fsmount.c fsopen.c \
+-	fspick.c fspick-P.c fstat.c fstat-Xabbrev.c fstat-Xraw.c \
+-	fstat-Xverbose.c fstat64.c fstat64-Xabbrev.c fstat64-Xraw.c \
+-	fstat64-Xverbose.c fstatat64.c fstatfs.c fstatfs64.c fsync.c \
+-	fsync-y.c ftruncate.c ftruncate64.c futex.c futimesat.c \
+-	get_mempolicy.c get_process_reaper.c getcpu.c getcwd.c \
+-	getdents.c getdents-v.c getdents64.c getdents64-v.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 getxgid.c getxpid.c getxuid.c \
+-	group_req.c inet-cmsg.c init_module.c inject-nf.c inotify.c \
+-	inotify_init.c inotify_init-y.c inotify_init1.c \
+-	inotify_init1-y.c int_0x80.c io_uring_enter.c \
+-	io_uring_register.c io_uring_setup.c ioctl.c ioctl_block.c \
+-	ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-Xabbrev.c \
++	flock.c fork--pidns-translation.c fork-f.c fsconfig.c \
++	fsconfig-P.c fsmount.c fsopen.c fspick.c fspick-P.c fstat.c \
++	fstat-Xabbrev.c fstat-Xraw.c fstat-Xverbose.c fstat64.c \
++	fstat64-Xabbrev.c fstat64-Xraw.c fstat64-Xverbose.c \
++	fstatat64.c fstatfs.c fstatfs64.c fsync.c fsync-y.c \
++	ftruncate.c ftruncate64.c futex.c futimesat.c get_mempolicy.c \
++	get_process_reaper.c getcpu.c getcwd.c getdents.c getdents-v.c \
++	getdents64.c getdents64-v.c getegid.c getegid32.c geteuid.c \
++	geteuid32.c getgid.c getgid32.c getgroups.c getgroups32.c \
++	getpeername.c getpgrp.c getpgrp--pidns-translation.c getpid.c \
++	getpid--pidns-translation.c getppid.c getrandom.c getresgid.c \
++	getresgid32.c getresuid.c getresuid32.c getrlimit.c \
++	getrusage.c getsid.c getsid--pidns-translation.c getsockname.c \
++	gettid.c gettid--pidns-translation.c getuid.c getuid32.c \
++	getxgid.c getxpid.c getxuid.c group_req.c inet-cmsg.c \
++	init_module.c inject-nf.c inotify.c inotify_init.c \
++	inotify_init-y.c inotify_init1.c inotify_init1-y.c int_0x80.c \
++	io_uring_enter.c io_uring_register.c io_uring_setup.c ioctl.c \
++	ioctl_block.c ioctl_block--pidns-translation.c ioctl_dm.c \
++	ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-Xabbrev.c \
+ 	ioctl_evdev-Xraw.c ioctl_evdev-Xverbose.c \
+ 	ioctl_evdev-success.c ioctl_evdev-success-Xabbrev.c \
+ 	ioctl_evdev-success-Xraw.c ioctl_evdev-success-Xverbose.c \
+@@ -4311,47 +4560,51 @@
+ 	ioctl_v4l2-success-v-Xverbose.c ioctl_v4l2-v.c \
+ 	ioctl_v4l2-v-Xabbrev.c ioctl_v4l2-v-Xraw.c \
+ 	ioctl_v4l2-v-Xverbose.c ioctl_watchdog.c ioperm.c iopl.c \
+-	ioprio.c ioprio-Xabbrev.c ioprio-Xraw.c ioprio-Xverbose.c \
+-	ip_mreq.c ipc.c ipc_msg.c ipc_msg-Xabbrev.c ipc_msg-Xraw.c \
+-	ipc_msg-Xverbose.c ipc_msgbuf.c ipc_msgbuf-Xabbrev.c \
+-	ipc_msgbuf-Xraw.c ipc_msgbuf-Xverbose.c ipc_sem.c \
+-	ipc_sem-Xabbrev.c ipc_sem-Xraw.c ipc_sem-Xverbose.c ipc_shm.c \
+-	ipc_shm-Xabbrev.c ipc_shm-Xraw.c ipc_shm-Xverbose.c \
+-	is_linux_mips_n64.c kcmp.c kcmp-y.c kern_features.c \
++	ioprio.c ioprio--pidns-translation.c ioprio-Xabbrev.c \
++	ioprio-Xraw.c ioprio-Xverbose.c ip_mreq.c ipc.c ipc_msg.c \
++	ipc_msg-Xabbrev.c ipc_msg-Xraw.c ipc_msg-Xverbose.c \
++	ipc_msgbuf.c ipc_msgbuf-Xabbrev.c ipc_msgbuf-Xraw.c \
++	ipc_msgbuf-Xverbose.c ipc_sem.c ipc_sem-Xabbrev.c \
++	ipc_sem-Xraw.c ipc_sem-Xverbose.c ipc_shm.c ipc_shm-Xabbrev.c \
++	ipc_shm-Xraw.c ipc_shm-Xverbose.c is_linux_mips_n64.c kcmp.c \
++	kcmp-y.c kcmp-y--pidns-translation.c kern_features.c \
+ 	kernel_version.c kernel_version-Xabbrev.c \
+ 	kernel_version-Xraw.c kernel_version-Xverbose.c \
+ 	kexec_file_load.c kexec_load.c keyctl.c keyctl-Xabbrev.c \
+-	keyctl-Xraw.c keyctl-Xverbose.c kill.c kill_child.c ksysent.c \
+-	lchown.c lchown32.c link.c linkat.c list_sigaction_signum.c \
+-	llseek.c localtime.c lookup_dcookie.c looping_threads.c \
+-	lseek.c lstat.c lstat64.c madvise.c maybe_switch_current_tcp.c \
++	keyctl-Xraw.c keyctl-Xverbose.c kill.c \
++	kill--pidns-translation.c kill_child.c ksysent.c lchown.c \
++	lchown32.c link.c linkat.c list_sigaction_signum.c llseek.c \
++	localtime.c lookup_dcookie.c looping_threads.c lseek.c lstat.c \
++	lstat64.c madvise.c maybe_switch_current_tcp.c \
+ 	maybe_switch_current_tcp--quiet-thread-execve.c mbind.c \
+ 	mbind-Xabbrev.c mbind-Xraw.c mbind-Xverbose.c membarrier.c \
+ 	memfd_create.c memfd_create-Xabbrev.c memfd_create-Xraw.c \
+-	memfd_create-Xverbose.c migrate_pages.c mincore.c mkdir.c \
+-	mkdirat.c mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c \
++	memfd_create-Xverbose.c migrate_pages.c \
++	migrate_pages--pidns-translation.c mincore.c mkdir.c mkdirat.c \
++	mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c \
+ 	mmap-Xabbrev.c mmap-Xraw.c mmap-Xverbose.c mmap64.c \
+ 	mmap64-Xabbrev.c mmap64-Xraw.c mmap64-Xverbose.c mmsg.c \
+ 	mmsg-silent.c mmsg_name.c mmsg_name-v.c modify_ldt.c mount.c \
+ 	mount-Xabbrev.c mount-Xraw.c mount-Xverbose.c move_mount.c \
+-	move_mount-P.c move_pages.c move_pages-Xabbrev.c \
+-	move_pages-Xraw.c move_pages-Xverbose.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--decode-fds-dev-netlink.c net--decode-fds-none-netlink.c \
+-	net--decode-fds-path-netlink.c \
++	move_mount-P.c move_pages.c move_pages--pidns-translation.c \
++	move_pages-Xabbrev.c move_pages-Xraw.c move_pages-Xverbose.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--decode-fds-dev-netlink.c \
++	net--decode-fds-none-netlink.c net--decode-fds-path-netlink.c \
+ 	net--decode-fds-socket-netlink.c net-accept-connect.c \
+ 	net-icmp_filter.c net-packet_mreq.c net-packet_mreq-Xabbrev.c \
+ 	net-packet_mreq-Xraw.c net-packet_mreq-Xverbose.c \
+-	net-sockaddr.c net-tpacket_req.c net-tpacket_stats.c \
++	net-sockaddr.c net-sockaddr--pidns-translation.c \
++	net-tpacket_req.c net-tpacket_stats.c \
+ 	net-tpacket_stats-success.c net-y-unix.c net-yy-inet.c \
+ 	net-yy-inet6.c net-yy-netlink.c net-yy-unix.c netlink_audit.c \
+-	netlink_crypto.c netlink_generic.c netlink_inet_diag.c \
+-	netlink_kobject_uevent.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 nfnetlink_acct.c \
+-	nfnetlink_cthelper.c nfnetlink_ctnetlink.c \
++	netlink_audit--pidns-translation.c netlink_crypto.c \
++	netlink_generic.c netlink_inet_diag.c netlink_kobject_uevent.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 \
++	nfnetlink_acct.c nfnetlink_cthelper.c nfnetlink_ctnetlink.c \
+ 	nfnetlink_ctnetlink_exp.c nfnetlink_cttimeout.c \
+ 	nfnetlink_ipset.c nfnetlink_nft_compat.c nfnetlink_nftables.c \
+ 	nfnetlink_osf.c nfnetlink_queue.c nfnetlink_ulog.c nlattr.c \
+@@ -4381,12 +4634,13 @@
+ 	personality-Xraw.c personality-Xverbose.c pidfd_getfd.c \
+ 	pidfd_getfd-y.c pidfd_getfd-yy.c pidfd_open.c \
+ 	pidfd_open--decode-fd-path.c pidfd_open--decode-fd-pidfd.c \
+-	pidfd_open--decode-fd-socket.c pidfd_open-P.c pidfd_open-y.c \
+-	pidfd_open-yy.c pidfd_send_signal.c pipe.c pipe2.c \
+-	pkey_alloc.c pkey_free.c pkey_mprotect.c poll.c poll-P.c \
+-	ppoll.c ppoll-P.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 \
++	pidfd_open--decode-fd-socket.c pidfd_open--pidns-translation.c \
++	pidfd_open-P.c pidfd_open-y.c pidfd_open-yy.c \
++	pidfd_send_signal.c pidfd_send_signal--pidns-translation.c \
++	pidns-cache.c pipe.c pipe2.c pkey_alloc.c pkey_free.c \
++	pkey_mprotect.c poll.c poll-P.c ppoll.c ppoll-P.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-spec-inject.c \
+ 	prctl-tid_address.c prctl-tsc.c pread64-pwrite64.c preadv.c \
+ 	preadv-pwritev.c preadv2-pwritev2.c print_maxfd.c \
+@@ -4395,8 +4649,10 @@
+ 	printsignal-Xabbrev.c printsignal-Xraw.c \
+ 	printsignal-Xverbose.c printstr.c printstrn-umoven.c \
+ 	printstrn-umoven-peekdata.c printstrn-umoven-undumpable.c \
+-	prlimit64.c process_vm_readv.c process_vm_writev.c pselect6.c \
+-	ptrace.c ptrace_syscall_info.c pwritev.c qual_fault.c \
++	prlimit64.c prlimit64--pidns-translation.c process_vm_readv.c \
++	process_vm_readv--pidns-translation.c process_vm_writev.c \
++	process_vm_writev--pidns-translation.c pselect6.c ptrace.c \
++	ptrace_syscall_info.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-Xabbrev.c quotactl-Xraw.c quotactl-Xverbose.c \
+@@ -4409,60 +4665,70 @@
+ 	remap_file_pages-Xraw.c remap_file_pages-Xverbose.c rename.c \
+ 	renameat.c renameat2.c request_key.c restart_syscall.c \
+ 	riscv_flush_icache.c rmdir.c rt_sigaction.c rt_sigpending.c \
+-	rt_sigprocmask.c rt_sigqueueinfo.c rt_sigreturn.c \
++	rt_sigprocmask.c rt_sigqueueinfo.c \
++	rt_sigqueueinfo--pidns-translation.c rt_sigreturn.c \
+ 	rt_sigsuspend.c rt_sigtimedwait.c rt_tgsigqueueinfo.c \
+-	run_expect_termsig.c s390_guarded_storage.c \
+-	s390_guarded_storage-v.c s390_pci_mmio_read_write.c \
+-	s390_runtime_instr.c s390_sthyi.c s390_sthyi-v.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 \
+-	seccomp_get_action_avail.c select.c select-P.c semop.c \
+-	semop-indirect.c semtimedop.c sendfile.c sendfile64.c \
+-	set_mempolicy.c set_mempolicy-Xabbrev.c set_mempolicy-Xraw.c \
+-	set_mempolicy-Xverbose.c set_ptracer_any.c set_sigblock.c \
+-	set_sigign.c setdomainname.c setfsgid.c setfsgid32.c \
+-	setfsuid.c setfsuid32.c setgid.c setgid32.c setgroups.c \
+-	setgroups32.c sethostname.c setns.c setpgrp-exec.c setregid.c \
+-	setregid32.c setresgid.c setresgid32.c setresuid.c \
+-	setresuid32.c setreuid.c setreuid32.c setrlimit.c \
+-	setrlimit-Xabbrev.c setrlimit-Xraw.c setrlimit-Xverbose.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 \
+-	so_error.c so_linger.c so_peercred.c so_peercred-Xabbrev.c \
+-	so_peercred-Xraw.c so_peercred-Xverbose.c sock_filter-v.c \
+-	sock_filter-v-Xabbrev.c sock_filter-v-Xraw.c \
+-	sock_filter-v-Xverbose.c sockaddr_xlat-Xabbrev.c \
+-	sockaddr_xlat-Xraw.c sockaddr_xlat-Xverbose.c socketcall.c \
+-	sockopt-sol_netlink.c sockopt-timestamp.c splice.c \
+-	$(stack_fcall_SOURCES) $(stack_fcall_attach_SOURCES) \
+-	$(stack_fcall_mangled_SOURCES) stat.c stat64.c statfs.c \
+-	statfs64.c status-all.c status-failed.c status-failed-long.c \
+-	status-failed-status.c status-none.c status-none-f.c \
+-	status-none-threads.c status-successful.c \
+-	status-successful-long.c status-successful-status.c \
+-	status-unfinished.c status-unfinished-threads.c statx.c \
+-	strace--strings-in-hex.c strace--strings-in-hex-all.c \
++	rt_tgsigqueueinfo--pidns-translation.c run_expect_termsig.c \
++	s390_guarded_storage.c s390_guarded_storage-v.c \
++	s390_pci_mmio_read_write.c s390_runtime_instr.c s390_sthyi.c \
++	s390_sthyi-v.c sched_get_priority_mxx.c \
++	sched_rr_get_interval.c sched_xetaffinity.c \
++	sched_xetaffinity--pidns-translation.c sched_xetattr.c \
++	sched_xetattr--pidns-translation.c sched_xetparam.c \
++	sched_xetparam--pidns-translation.c sched_xetscheduler.c \
++	sched_xetscheduler--pidns-translation.c sched_yield.c \
++	scm_rights.c seccomp-filter.c seccomp-filter-v.c \
++	seccomp-strict.c seccomp_get_action_avail.c select.c \
++	select-P.c semop.c semop-indirect.c semtimedop.c sendfile.c \
++	sendfile64.c set_mempolicy.c set_mempolicy-Xabbrev.c \
++	set_mempolicy-Xraw.c set_mempolicy-Xverbose.c \
++	set_ptracer_any.c set_sigblock.c set_sigign.c setdomainname.c \
++	setfsgid.c setfsgid32.c setfsuid.c setfsuid32.c setgid.c \
++	setgid32.c setgroups.c setgroups32.c sethostname.c setns.c \
++	setpgrp-exec.c setregid.c setregid32.c setresgid.c \
++	setresgid32.c setresuid.c setresuid32.c setreuid.c \
++	setreuid32.c setrlimit.c setrlimit-Xabbrev.c setrlimit-Xraw.c \
++	setrlimit-Xverbose.c setuid.c setuid32.c shmxt.c shutdown.c \
++	sigaction.c sigaltstack.c siginfo.c signal.c signal_receive.c \
++	signal_receive--pidns-translation.c signalfd4.c sigpending.c \
++	sigprocmask.c sigreturn.c sigsuspend.c sleep.c so_error.c \
++	so_linger.c so_peercred.c so_peercred--pidns-translation.c \
++	so_peercred-Xabbrev.c so_peercred-Xraw.c \
++	so_peercred-Xverbose.c sock_filter-v.c sock_filter-v-Xabbrev.c \
++	sock_filter-v-Xraw.c sock_filter-v-Xverbose.c \
++	sockaddr_xlat-Xabbrev.c sockaddr_xlat-Xraw.c \
++	sockaddr_xlat-Xverbose.c socketcall.c sockopt-sol_netlink.c \
++	sockopt-timestamp.c splice.c $(stack_fcall_SOURCES) \
++	$(stack_fcall_attach_SOURCES) $(stack_fcall_mangled_SOURCES) \
++	stat.c stat64.c statfs.c statfs64.c status-all.c \
++	status-failed.c status-failed-long.c status-failed-status.c \
++	status-none.c status-none-f.c status-none-threads.c \
++	status-successful.c status-successful-long.c \
++	status-successful-status.c status-unfinished.c \
++	status-unfinished-threads.c statx.c strace--strings-in-hex.c \
++	strace--strings-in-hex-all.c \
+ 	strace--strings-in-hex-non-ascii.c strace-x.c strace-xx.c \
+ 	swap.c sxetmask.c symlink.c symlinkat.c sync.c \
+ 	sync_file_range.c sync_file_range2.c sysinfo.c syslog.c \
+-	syslog-success.c tee.c tgkill.c threads-execve.c \
+-	threads-execve--quiet-thread-execve.c threads-execve-q.c \
+-	threads-execve-qq.c threads-execve-qqq.c time.c timer_create.c \
+-	timer_xettime.c timerfd_xettime.c times.c times-fail.c tkill.c \
+-	tracer_ppid_pgid_sid.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 umovestr_cached.c \
+-	umovestr_cached_adjacent.c uname.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 \
+-	utimensat-Xabbrev.c utimensat-Xraw.c utimensat-Xverbose.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 xet_thread_area_x86.c xetitimer.c xetpgid.c \
+-	xetpriority.c xettimeofday.c zeroargc.c
++	syslog-success.c tee.c tgkill.c tgkill--pidns-translation.c \
++	threads-execve.c threads-execve--quiet-thread-execve.c \
++	threads-execve-q.c threads-execve-qq.c threads-execve-qqq.c \
++	time.c timer_create.c timer_xettime.c timerfd_xettime.c \
++	times.c times-fail.c tkill.c tkill--pidns-translation.c \
++	tracer_ppid_pgid_sid.c $(trie_test_SOURCES) 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 umovestr_cached.c umovestr_cached_adjacent.c \
++	uname.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 utimensat-Xabbrev.c \
++	utimensat-Xraw.c utimensat-Xverbose.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 \
++	xet_robust_list--pidns-translation.c xet_thread_area_x86.c \
++	xetitimer.c xetpgid.c xetpgid--pidns-translation.c \
++	xetpriority.c xetpriority--pidns-translation.c xettimeofday.c \
++	zeroargc.c
+ DIST_SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c \
+ 	accept.c accept4.c access.c acct.c add_key.c adjtimex.c aio.c \
+ 	aio_pgetevents.c alarm.c answer.c attach-f-p.c \
+@@ -4490,26 +4756,30 @@
+ 	fadvise64_64.c fallocate.c fanotify_init.c fanotify_mark.c \
+ 	fanotify_mark-Xabbrev.c fanotify_mark-Xraw.c \
+ 	fanotify_mark-Xverbose.c fchdir.c fchmod.c fchmodat.c fchown.c \
+-	fchown32.c fchownat.c fcntl.c fcntl64.c fdatasync.c fflush.c \
++	fchown32.c fchownat.c fcntl.c fcntl--pidns-translation.c \
++	fcntl64.c fcntl64--pidns-translation.c fdatasync.c fflush.c \
+ 	file_handle.c file_ioctl.c filter-unavailable.c \
+ 	filter_seccomp-flag.c filter_seccomp-perf.c finit_module.c \
+-	flock.c fork-f.c fsconfig.c fsconfig-P.c fsmount.c fsopen.c \
+-	fspick.c fspick-P.c fstat.c fstat-Xabbrev.c fstat-Xraw.c \
+-	fstat-Xverbose.c fstat64.c fstat64-Xabbrev.c fstat64-Xraw.c \
+-	fstat64-Xverbose.c fstatat64.c fstatfs.c fstatfs64.c fsync.c \
+-	fsync-y.c ftruncate.c ftruncate64.c futex.c futimesat.c \
+-	get_mempolicy.c get_process_reaper.c getcpu.c getcwd.c \
+-	getdents.c getdents-v.c getdents64.c getdents64-v.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 getxgid.c getxpid.c getxuid.c \
+-	group_req.c inet-cmsg.c init_module.c inject-nf.c inotify.c \
+-	inotify_init.c inotify_init-y.c inotify_init1.c \
+-	inotify_init1-y.c int_0x80.c io_uring_enter.c \
+-	io_uring_register.c io_uring_setup.c ioctl.c ioctl_block.c \
+-	ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-Xabbrev.c \
++	flock.c fork--pidns-translation.c fork-f.c fsconfig.c \
++	fsconfig-P.c fsmount.c fsopen.c fspick.c fspick-P.c fstat.c \
++	fstat-Xabbrev.c fstat-Xraw.c fstat-Xverbose.c fstat64.c \
++	fstat64-Xabbrev.c fstat64-Xraw.c fstat64-Xverbose.c \
++	fstatat64.c fstatfs.c fstatfs64.c fsync.c fsync-y.c \
++	ftruncate.c ftruncate64.c futex.c futimesat.c get_mempolicy.c \
++	get_process_reaper.c getcpu.c getcwd.c getdents.c getdents-v.c \
++	getdents64.c getdents64-v.c getegid.c getegid32.c geteuid.c \
++	geteuid32.c getgid.c getgid32.c getgroups.c getgroups32.c \
++	getpeername.c getpgrp.c getpgrp--pidns-translation.c getpid.c \
++	getpid--pidns-translation.c getppid.c getrandom.c getresgid.c \
++	getresgid32.c getresuid.c getresuid32.c getrlimit.c \
++	getrusage.c getsid.c getsid--pidns-translation.c getsockname.c \
++	gettid.c gettid--pidns-translation.c getuid.c getuid32.c \
++	getxgid.c getxpid.c getxuid.c group_req.c inet-cmsg.c \
++	init_module.c inject-nf.c inotify.c inotify_init.c \
++	inotify_init-y.c inotify_init1.c inotify_init1-y.c int_0x80.c \
++	io_uring_enter.c io_uring_register.c io_uring_setup.c ioctl.c \
++	ioctl_block.c ioctl_block--pidns-translation.c ioctl_dm.c \
++	ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-Xabbrev.c \
+ 	ioctl_evdev-Xraw.c ioctl_evdev-Xverbose.c \
+ 	ioctl_evdev-success.c ioctl_evdev-success-Xabbrev.c \
+ 	ioctl_evdev-success-Xraw.c ioctl_evdev-success-Xverbose.c \
+@@ -4537,47 +4807,51 @@
+ 	ioctl_v4l2-success-v-Xverbose.c ioctl_v4l2-v.c \
+ 	ioctl_v4l2-v-Xabbrev.c ioctl_v4l2-v-Xraw.c \
+ 	ioctl_v4l2-v-Xverbose.c ioctl_watchdog.c ioperm.c iopl.c \
+-	ioprio.c ioprio-Xabbrev.c ioprio-Xraw.c ioprio-Xverbose.c \
+-	ip_mreq.c ipc.c ipc_msg.c ipc_msg-Xabbrev.c ipc_msg-Xraw.c \
+-	ipc_msg-Xverbose.c ipc_msgbuf.c ipc_msgbuf-Xabbrev.c \
+-	ipc_msgbuf-Xraw.c ipc_msgbuf-Xverbose.c ipc_sem.c \
+-	ipc_sem-Xabbrev.c ipc_sem-Xraw.c ipc_sem-Xverbose.c ipc_shm.c \
+-	ipc_shm-Xabbrev.c ipc_shm-Xraw.c ipc_shm-Xverbose.c \
+-	is_linux_mips_n64.c kcmp.c kcmp-y.c kern_features.c \
++	ioprio.c ioprio--pidns-translation.c ioprio-Xabbrev.c \
++	ioprio-Xraw.c ioprio-Xverbose.c ip_mreq.c ipc.c ipc_msg.c \
++	ipc_msg-Xabbrev.c ipc_msg-Xraw.c ipc_msg-Xverbose.c \
++	ipc_msgbuf.c ipc_msgbuf-Xabbrev.c ipc_msgbuf-Xraw.c \
++	ipc_msgbuf-Xverbose.c ipc_sem.c ipc_sem-Xabbrev.c \
++	ipc_sem-Xraw.c ipc_sem-Xverbose.c ipc_shm.c ipc_shm-Xabbrev.c \
++	ipc_shm-Xraw.c ipc_shm-Xverbose.c is_linux_mips_n64.c kcmp.c \
++	kcmp-y.c kcmp-y--pidns-translation.c kern_features.c \
+ 	kernel_version.c kernel_version-Xabbrev.c \
+ 	kernel_version-Xraw.c kernel_version-Xverbose.c \
+ 	kexec_file_load.c kexec_load.c keyctl.c keyctl-Xabbrev.c \
+-	keyctl-Xraw.c keyctl-Xverbose.c kill.c kill_child.c ksysent.c \
+-	lchown.c lchown32.c link.c linkat.c list_sigaction_signum.c \
+-	llseek.c localtime.c lookup_dcookie.c looping_threads.c \
+-	lseek.c lstat.c lstat64.c madvise.c maybe_switch_current_tcp.c \
++	keyctl-Xraw.c keyctl-Xverbose.c kill.c \
++	kill--pidns-translation.c kill_child.c ksysent.c lchown.c \
++	lchown32.c link.c linkat.c list_sigaction_signum.c llseek.c \
++	localtime.c lookup_dcookie.c looping_threads.c lseek.c lstat.c \
++	lstat64.c madvise.c maybe_switch_current_tcp.c \
+ 	maybe_switch_current_tcp--quiet-thread-execve.c mbind.c \
+ 	mbind-Xabbrev.c mbind-Xraw.c mbind-Xverbose.c membarrier.c \
+ 	memfd_create.c memfd_create-Xabbrev.c memfd_create-Xraw.c \
+-	memfd_create-Xverbose.c migrate_pages.c mincore.c mkdir.c \
+-	mkdirat.c mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c \
++	memfd_create-Xverbose.c migrate_pages.c \
++	migrate_pages--pidns-translation.c mincore.c mkdir.c mkdirat.c \
++	mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c \
+ 	mmap-Xabbrev.c mmap-Xraw.c mmap-Xverbose.c mmap64.c \
+ 	mmap64-Xabbrev.c mmap64-Xraw.c mmap64-Xverbose.c mmsg.c \
+ 	mmsg-silent.c mmsg_name.c mmsg_name-v.c modify_ldt.c mount.c \
+ 	mount-Xabbrev.c mount-Xraw.c mount-Xverbose.c move_mount.c \
+-	move_mount-P.c move_pages.c move_pages-Xabbrev.c \
+-	move_pages-Xraw.c move_pages-Xverbose.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--decode-fds-dev-netlink.c net--decode-fds-none-netlink.c \
+-	net--decode-fds-path-netlink.c \
++	move_mount-P.c move_pages.c move_pages--pidns-translation.c \
++	move_pages-Xabbrev.c move_pages-Xraw.c move_pages-Xverbose.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--decode-fds-dev-netlink.c \
++	net--decode-fds-none-netlink.c net--decode-fds-path-netlink.c \
+ 	net--decode-fds-socket-netlink.c net-accept-connect.c \
+ 	net-icmp_filter.c net-packet_mreq.c net-packet_mreq-Xabbrev.c \
+ 	net-packet_mreq-Xraw.c net-packet_mreq-Xverbose.c \
+-	net-sockaddr.c net-tpacket_req.c net-tpacket_stats.c \
++	net-sockaddr.c net-sockaddr--pidns-translation.c \
++	net-tpacket_req.c net-tpacket_stats.c \
+ 	net-tpacket_stats-success.c net-y-unix.c net-yy-inet.c \
+ 	net-yy-inet6.c net-yy-netlink.c net-yy-unix.c netlink_audit.c \
+-	netlink_crypto.c netlink_generic.c netlink_inet_diag.c \
+-	netlink_kobject_uevent.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 nfnetlink_acct.c \
+-	nfnetlink_cthelper.c nfnetlink_ctnetlink.c \
++	netlink_audit--pidns-translation.c netlink_crypto.c \
++	netlink_generic.c netlink_inet_diag.c netlink_kobject_uevent.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 \
++	nfnetlink_acct.c nfnetlink_cthelper.c nfnetlink_ctnetlink.c \
+ 	nfnetlink_ctnetlink_exp.c nfnetlink_cttimeout.c \
+ 	nfnetlink_ipset.c nfnetlink_nft_compat.c nfnetlink_nftables.c \
+ 	nfnetlink_osf.c nfnetlink_queue.c nfnetlink_ulog.c nlattr.c \
+@@ -4607,12 +4881,13 @@
+ 	personality-Xraw.c personality-Xverbose.c pidfd_getfd.c \
+ 	pidfd_getfd-y.c pidfd_getfd-yy.c pidfd_open.c \
+ 	pidfd_open--decode-fd-path.c pidfd_open--decode-fd-pidfd.c \
+-	pidfd_open--decode-fd-socket.c pidfd_open-P.c pidfd_open-y.c \
+-	pidfd_open-yy.c pidfd_send_signal.c pipe.c pipe2.c \
+-	pkey_alloc.c pkey_free.c pkey_mprotect.c poll.c poll-P.c \
+-	ppoll.c ppoll-P.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 \
++	pidfd_open--decode-fd-socket.c pidfd_open--pidns-translation.c \
++	pidfd_open-P.c pidfd_open-y.c pidfd_open-yy.c \
++	pidfd_send_signal.c pidfd_send_signal--pidns-translation.c \
++	pidns-cache.c pipe.c pipe2.c pkey_alloc.c pkey_free.c \
++	pkey_mprotect.c poll.c poll-P.c ppoll.c ppoll-P.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-spec-inject.c \
+ 	prctl-tid_address.c prctl-tsc.c pread64-pwrite64.c preadv.c \
+ 	preadv-pwritev.c preadv2-pwritev2.c print_maxfd.c \
+@@ -4621,8 +4896,10 @@
+ 	printsignal-Xabbrev.c printsignal-Xraw.c \
+ 	printsignal-Xverbose.c printstr.c printstrn-umoven.c \
+ 	printstrn-umoven-peekdata.c printstrn-umoven-undumpable.c \
+-	prlimit64.c process_vm_readv.c process_vm_writev.c pselect6.c \
+-	ptrace.c ptrace_syscall_info.c pwritev.c qual_fault.c \
++	prlimit64.c prlimit64--pidns-translation.c process_vm_readv.c \
++	process_vm_readv--pidns-translation.c process_vm_writev.c \
++	process_vm_writev--pidns-translation.c pselect6.c ptrace.c \
++	ptrace_syscall_info.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-Xabbrev.c quotactl-Xraw.c quotactl-Xverbose.c \
+@@ -4635,60 +4912,70 @@
+ 	remap_file_pages-Xraw.c remap_file_pages-Xverbose.c rename.c \
+ 	renameat.c renameat2.c request_key.c restart_syscall.c \
+ 	riscv_flush_icache.c rmdir.c rt_sigaction.c rt_sigpending.c \
+-	rt_sigprocmask.c rt_sigqueueinfo.c rt_sigreturn.c \
++	rt_sigprocmask.c rt_sigqueueinfo.c \
++	rt_sigqueueinfo--pidns-translation.c rt_sigreturn.c \
+ 	rt_sigsuspend.c rt_sigtimedwait.c rt_tgsigqueueinfo.c \
+-	run_expect_termsig.c s390_guarded_storage.c \
+-	s390_guarded_storage-v.c s390_pci_mmio_read_write.c \
+-	s390_runtime_instr.c s390_sthyi.c s390_sthyi-v.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 \
+-	seccomp_get_action_avail.c select.c select-P.c semop.c \
+-	semop-indirect.c semtimedop.c sendfile.c sendfile64.c \
+-	set_mempolicy.c set_mempolicy-Xabbrev.c set_mempolicy-Xraw.c \
+-	set_mempolicy-Xverbose.c set_ptracer_any.c set_sigblock.c \
+-	set_sigign.c setdomainname.c setfsgid.c setfsgid32.c \
+-	setfsuid.c setfsuid32.c setgid.c setgid32.c setgroups.c \
+-	setgroups32.c sethostname.c setns.c setpgrp-exec.c setregid.c \
+-	setregid32.c setresgid.c setresgid32.c setresuid.c \
+-	setresuid32.c setreuid.c setreuid32.c setrlimit.c \
+-	setrlimit-Xabbrev.c setrlimit-Xraw.c setrlimit-Xverbose.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 \
+-	so_error.c so_linger.c so_peercred.c so_peercred-Xabbrev.c \
+-	so_peercred-Xraw.c so_peercred-Xverbose.c sock_filter-v.c \
+-	sock_filter-v-Xabbrev.c sock_filter-v-Xraw.c \
+-	sock_filter-v-Xverbose.c sockaddr_xlat-Xabbrev.c \
+-	sockaddr_xlat-Xraw.c sockaddr_xlat-Xverbose.c socketcall.c \
+-	sockopt-sol_netlink.c sockopt-timestamp.c splice.c \
+-	$(stack_fcall_SOURCES) $(stack_fcall_attach_SOURCES) \
+-	$(stack_fcall_mangled_SOURCES) stat.c stat64.c statfs.c \
+-	statfs64.c status-all.c status-failed.c status-failed-long.c \
+-	status-failed-status.c status-none.c status-none-f.c \
+-	status-none-threads.c status-successful.c \
+-	status-successful-long.c status-successful-status.c \
+-	status-unfinished.c status-unfinished-threads.c statx.c \
+-	strace--strings-in-hex.c strace--strings-in-hex-all.c \
++	rt_tgsigqueueinfo--pidns-translation.c run_expect_termsig.c \
++	s390_guarded_storage.c s390_guarded_storage-v.c \
++	s390_pci_mmio_read_write.c s390_runtime_instr.c s390_sthyi.c \
++	s390_sthyi-v.c sched_get_priority_mxx.c \
++	sched_rr_get_interval.c sched_xetaffinity.c \
++	sched_xetaffinity--pidns-translation.c sched_xetattr.c \
++	sched_xetattr--pidns-translation.c sched_xetparam.c \
++	sched_xetparam--pidns-translation.c sched_xetscheduler.c \
++	sched_xetscheduler--pidns-translation.c sched_yield.c \
++	scm_rights.c seccomp-filter.c seccomp-filter-v.c \
++	seccomp-strict.c seccomp_get_action_avail.c select.c \
++	select-P.c semop.c semop-indirect.c semtimedop.c sendfile.c \
++	sendfile64.c set_mempolicy.c set_mempolicy-Xabbrev.c \
++	set_mempolicy-Xraw.c set_mempolicy-Xverbose.c \
++	set_ptracer_any.c set_sigblock.c set_sigign.c setdomainname.c \
++	setfsgid.c setfsgid32.c setfsuid.c setfsuid32.c setgid.c \
++	setgid32.c setgroups.c setgroups32.c sethostname.c setns.c \
++	setpgrp-exec.c setregid.c setregid32.c setresgid.c \
++	setresgid32.c setresuid.c setresuid32.c setreuid.c \
++	setreuid32.c setrlimit.c setrlimit-Xabbrev.c setrlimit-Xraw.c \
++	setrlimit-Xverbose.c setuid.c setuid32.c shmxt.c shutdown.c \
++	sigaction.c sigaltstack.c siginfo.c signal.c signal_receive.c \
++	signal_receive--pidns-translation.c signalfd4.c sigpending.c \
++	sigprocmask.c sigreturn.c sigsuspend.c sleep.c so_error.c \
++	so_linger.c so_peercred.c so_peercred--pidns-translation.c \
++	so_peercred-Xabbrev.c so_peercred-Xraw.c \
++	so_peercred-Xverbose.c sock_filter-v.c sock_filter-v-Xabbrev.c \
++	sock_filter-v-Xraw.c sock_filter-v-Xverbose.c \
++	sockaddr_xlat-Xabbrev.c sockaddr_xlat-Xraw.c \
++	sockaddr_xlat-Xverbose.c socketcall.c sockopt-sol_netlink.c \
++	sockopt-timestamp.c splice.c $(stack_fcall_SOURCES) \
++	$(stack_fcall_attach_SOURCES) $(stack_fcall_mangled_SOURCES) \
++	stat.c stat64.c statfs.c statfs64.c status-all.c \
++	status-failed.c status-failed-long.c status-failed-status.c \
++	status-none.c status-none-f.c status-none-threads.c \
++	status-successful.c status-successful-long.c \
++	status-successful-status.c status-unfinished.c \
++	status-unfinished-threads.c statx.c strace--strings-in-hex.c \
++	strace--strings-in-hex-all.c \
+ 	strace--strings-in-hex-non-ascii.c strace-x.c strace-xx.c \
+ 	swap.c sxetmask.c symlink.c symlinkat.c sync.c \
+ 	sync_file_range.c sync_file_range2.c sysinfo.c syslog.c \
+-	syslog-success.c tee.c tgkill.c threads-execve.c \
+-	threads-execve--quiet-thread-execve.c threads-execve-q.c \
+-	threads-execve-qq.c threads-execve-qqq.c time.c timer_create.c \
+-	timer_xettime.c timerfd_xettime.c times.c times-fail.c tkill.c \
+-	tracer_ppid_pgid_sid.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 umovestr_cached.c \
+-	umovestr_cached_adjacent.c uname.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 \
+-	utimensat-Xabbrev.c utimensat-Xraw.c utimensat-Xverbose.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 xet_thread_area_x86.c xetitimer.c xetpgid.c \
+-	xetpriority.c xettimeofday.c zeroargc.c
++	syslog-success.c tee.c tgkill.c tgkill--pidns-translation.c \
++	threads-execve.c threads-execve--quiet-thread-execve.c \
++	threads-execve-q.c threads-execve-qq.c threads-execve-qqq.c \
++	time.c timer_create.c timer_xettime.c timerfd_xettime.c \
++	times.c times-fail.c tkill.c tkill--pidns-translation.c \
++	tracer_ppid_pgid_sid.c $(trie_test_SOURCES) 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 umovestr_cached.c umovestr_cached_adjacent.c \
++	uname.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 utimensat-Xabbrev.c \
++	utimensat-Xraw.c utimensat-Xverbose.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 \
++	xet_robust_list--pidns-translation.c xet_thread_area_x86.c \
++	xetitimer.c xetpgid.c xetpgid--pidns-translation.c \
++	xetpriority.c xetpriority--pidns-translation.c xettimeofday.c \
++	zeroargc.c
+ am__can_run_installinfo = \
+   case $$AM_UPDATE_INFO_DIR in \
+     n|no|NO) false;; \
+@@ -5145,6 +5432,7 @@
+ 	test_ucopy.h \
+ 	tests.h \
+ 	tprintf.c \
++	xmalloc_for_tests.c \
+ 	# end of libtests_a_SOURCES
+ 
+ libtests_a_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+@@ -5825,6 +6113,10 @@
+ 	stack-fcall-mangled-0.c stack-fcall-mangled-1.c \
+ 	stack-fcall-mangled-2.c stack-fcall-mangled-3.c
+ 
++trie_test_SOURCES = trie_test.c trie_for_tests.c
++trie_test_CPPFLAGS = $(AM_CPPFLAGS) $(CODE_COVERAGE_CPPFLAGS)
++trie_test_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS)
++trie_test_LDADD = $(LDADD) $(CODE_COVERAGE_LIBS)
+ 
+ # Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in; do not edit.
+ GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test \
+@@ -5861,13 +6153,14 @@
+ 	fanotify_mark-Xverbose.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 filter_seccomp.gen.test \
+-	filter_seccomp-flag.gen.test finit_module.gen.test \
+-	flock.gen.test fork-f.gen.test fsconfig.gen.test \
+-	fsconfig-P.gen.test fsmount.gen.test fsopen.gen.test \
+-	fspick.gen.test fspick-P.gen.test fstat.gen.test \
+-	fstat-Xabbrev.gen.test fstat-Xraw.gen.test \
++	fcntl--pidns-translation.gen.test fcntl64.gen.test \
++	fcntl64--pidns-translation.gen.test fdatasync.gen.test \
++	file_handle.gen.test file_ioctl.gen.test \
++	filter_seccomp.gen.test filter_seccomp-flag.gen.test \
++	finit_module.gen.test flock.gen.test fork-f.gen.test \
++	fsconfig.gen.test fsconfig-P.gen.test fsmount.gen.test \
++	fsopen.gen.test fspick.gen.test fspick-P.gen.test \
++	fstat.gen.test fstat-Xabbrev.gen.test fstat-Xraw.gen.test \
+ 	fstat-Xverbose.gen.test fstat64.gen.test \
+ 	fstat64-Xabbrev.gen.test fstat64-Xraw.gen.test \
+ 	fstat64-Xverbose.gen.test fstatat64.gen.test fstatfs.gen.test \
+@@ -5881,11 +6174,13 @@
+ 	geteuid32-creds.gen.test getgid.gen.test getgid-creds.gen.test \
+ 	getgid32.gen.test getgid32-creds.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 \
+-	getuid-creds.gen.test getuid32.gen.test \
++	getpgrp--pidns-translation.gen.test getpid.gen.test \
++	getpid--pidns-translation.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 \
++	getsid--pidns-translation.gen.test getsockname.gen.test \
++	gettid.gen.test getuid-creds.gen.test getuid32.gen.test \
+ 	getuid32-creds.gen.test getxgid.gen.test getxpid.gen.test \
+ 	getxuid.gen.test group_req.gen.test inet-cmsg.gen.test \
+ 	init_module.gen.test inotify.gen.test inotify_init.gen.test \
+@@ -5937,9 +6232,9 @@
+ 	ioctl_v4l2-success-v-Xraw.gen.test \
+ 	ioctl_v4l2-success-v-Xverbose.gen.test ioctl_watchdog.gen.test \
+ 	ioperm.gen.test iopl.gen.test ioprio.gen.test \
+-	ioprio-Xabbrev.gen.test ioprio-Xraw.gen.test \
+-	ioprio-Xverbose.gen.test ip_mreq.gen.test ipc.gen.test \
+-	ipc_msg.gen.test ipc_msg-Xabbrev.gen.test \
++	ioprio--pidns-translation.gen.test ioprio-Xabbrev.gen.test \
++	ioprio-Xraw.gen.test ioprio-Xverbose.gen.test ip_mreq.gen.test \
++	ipc.gen.test ipc_msg.gen.test ipc_msg-Xabbrev.gen.test \
+ 	ipc_msg-Xraw.gen.test ipc_msg-Xverbose.gen.test \
+ 	ipc_msgbuf-Xabbrev.gen.test ipc_msgbuf-Xraw.gen.test \
+ 	ipc_msgbuf-Xverbose.gen.test ipc_sem.gen.test \
+@@ -5947,24 +6242,27 @@
+ 	ipc_sem-Xverbose.gen.test ipc_shm.gen.test \
+ 	ipc_shm-Xabbrev.gen.test ipc_shm-Xraw.gen.test \
+ 	ipc_shm-Xverbose.gen.test kcmp.gen.test kcmp-y.gen.test \
+-	kern_features.gen.test kernel_version.gen.test \
+-	kernel_version-Xabbrev.gen.test kernel_version-Xraw.gen.test \
+-	kernel_version-Xverbose.gen.test kexec_file_load.gen.test \
+-	kexec_load.gen.test keyctl.gen.test keyctl-Xabbrev.gen.test \
+-	keyctl-Xraw.gen.test keyctl-Xverbose.gen.test kill.gen.test \
+-	ksysent.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 \
++	kcmp-y--pidns-translation.gen.test kern_features.gen.test \
++	kernel_version.gen.test kernel_version-Xabbrev.gen.test \
++	kernel_version-Xraw.gen.test kernel_version-Xverbose.gen.test \
++	kexec_file_load.gen.test kexec_load.gen.test keyctl.gen.test \
++	keyctl-Xabbrev.gen.test keyctl-Xraw.gen.test \
++	keyctl-Xverbose.gen.test kill.gen.test \
++	kill--pidns-translation.gen.test ksysent.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 \
+ 	maybe_switch_current_tcp.gen.test \
+ 	maybe_switch_current_tcp--quiet-thread-execve.gen.test \
+ 	mbind.gen.test mbind-Xabbrev.gen.test mbind-Xraw.gen.test \
+ 	mbind-Xverbose.gen.test membarrier.gen.test \
+ 	memfd_create.gen.test memfd_create-Xabbrev.gen.test \
+ 	memfd_create-Xraw.gen.test memfd_create-Xverbose.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 \
+-	mmap-Xabbrev.gen.test mmap-Xraw.gen.test \
++	migrate_pages.gen.test \
++	migrate_pages--pidns-translation.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 mmap-Xabbrev.gen.test mmap-Xraw.gen.test \
+ 	mmap-Xverbose.gen.test mmap64.gen.test mmap64-Xabbrev.gen.test \
+ 	mmap64-Xraw.gen.test mmap64-Xverbose.gen.test mmsg.gen.test \
+ 	mmsg-silent.gen.test mmsg_name.gen.test mmsg_name-v.gen.test \
+@@ -5972,17 +6270,19 @@
+ 	mount-Xraw.gen.test mount-Xverbose.gen.test \
+ 	move_mount.gen.test move_mount-P.gen.test move_pages.gen.test \
+ 	move_pages-Xabbrev.gen.test move_pages-Xraw.gen.test \
+-	move_pages-Xverbose.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--decode-fds-dev-netlink.gen.test \
++	move_pages-Xverbose.gen.test \
++	move_pages--pidns-translation.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--decode-fds-dev-netlink.gen.test \
+ 	net--decode-fds-none-netlink.gen.test \
+ 	net--decode-fds-path-netlink.gen.test \
+ 	net--decode-fds-socket-netlink.gen.test \
+ 	net-icmp_filter.gen.test net-packet_mreq.gen.test \
+ 	net-packet_mreq-Xabbrev.gen.test net-packet_mreq-Xraw.gen.test \
+ 	net-packet_mreq-Xverbose.gen.test net-sockaddr.gen.test \
++	net-sockaddr--pidns-translation.gen.test \
+ 	net-tpacket_req.gen.test net-tpacket_stats.gen.test \
+ 	net-yy-inet6.gen.test netlink_audit.gen.test \
+ 	netlink_crypto.gen.test netlink_generic.gen.test \
+@@ -6036,18 +6336,25 @@
+ 	pidfd_open--decode-fd-pidfd.gen.test \
+ 	pidfd_open--decode-fd-socket.gen.test pidfd_open-P.gen.test \
+ 	pidfd_open-y.gen.test pidfd_open-yy.gen.test \
+-	pidfd_send_signal.gen.test pipe2.gen.test pkey_alloc.gen.test \
+-	pkey_free.gen.test pkey_mprotect.gen.test ppoll.gen.test \
+-	ppoll-P.gen.test ppoll-v.gen.test pread64-pwrite64.gen.test \
+-	preadv.gen.test preadv-pwritev.gen.test \
+-	preadv2-pwritev2.gen.test printpath-umovestr.gen.test \
++	pidfd_open--pidns-translation.gen.test \
++	pidfd_send_signal.gen.test \
++	pidfd_send_signal--pidns-translation.gen.test pipe2.gen.test \
++	pkey_alloc.gen.test pkey_free.gen.test pkey_mprotect.gen.test \
++	ppoll.gen.test ppoll-P.gen.test ppoll-v.gen.test \
++	pread64-pwrite64.gen.test preadv.gen.test \
++	preadv-pwritev.gen.test preadv2-pwritev2.gen.test \
++	printpath-umovestr.gen.test \
+ 	printpath-umovestr-peekdata.gen.test \
+ 	printpath-umovestr-undumpable.gen.test \
+ 	printsignal-Xabbrev.gen.test printsignal-Xraw.gen.test \
+ 	printsignal-Xverbose.gen.test printstr.gen.test \
+ 	printstrn-umoven.gen.test printstrn-umoven-peekdata.gen.test \
+ 	printstrn-umoven-undumpable.gen.test prlimit64.gen.test \
+-	process_vm_readv.gen.test process_vm_writev.gen.test \
++	prlimit64--pidns-translation.gen.test \
++	process_vm_readv.gen.test \
++	process_vm_readv--pidns-translation.gen.test \
++	process_vm_writev.gen.test \
++	process_vm_writev--pidns-translation.gen.test \
+ 	pselect6.gen.test ptrace.gen.test ptrace_syscall_info.gen.test \
+ 	pwritev.gen.test quotactl.gen.test quotactl-Xabbrev.gen.test \
+ 	quotactl-Xraw.gen.test quotactl-Xverbose.gen.test \
+@@ -6063,15 +6370,23 @@
+ 	renameat.gen.test renameat2.gen.test request_key.gen.test \
+ 	riscv_flush_icache.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 s390_guarded_storage.gen.test \
+-	s390_guarded_storage-v.gen.test \
++	rt_sigqueueinfo.gen.test \
++	rt_sigqueueinfo--pidns-translation.gen.test \
++	rt_sigreturn.gen.test rt_sigsuspend.gen.test \
++	rt_sigtimedwait.gen.test rt_tgsigqueueinfo.gen.test \
++	rt_tgsigqueueinfo--pidns-translation.gen.test \
++	s390_guarded_storage.gen.test s390_guarded_storage-v.gen.test \
+ 	s390_pci_mmio_read_write.gen.test s390_runtime_instr.gen.test \
+ 	s390_sthyi.gen.test s390_sthyi-v.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_xetaffinity.gen.test \
++	sched_xetaffinity--pidns-translation.gen.test \
++	sched_xetattr.gen.test \
++	sched_xetattr--pidns-translation.gen.test \
++	sched_xetparam.gen.test \
++	sched_xetparam--pidns-translation.gen.test \
++	sched_xetscheduler.gen.test \
++	sched_xetscheduler--pidns-translation.gen.test \
+ 	sched_yield.gen.test seccomp-filter.gen.test \
+ 	seccomp-filter-v.gen.test seccomp_get_action_avail.gen.test \
+ 	select.gen.test select-P.gen.test semop.gen.test \
+@@ -6089,18 +6404,20 @@
+ 	setrlimit-Xraw.gen.test setrlimit-Xverbose.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 \
++	signal.gen.test signal_receive.gen.test \
++	signal_receive--pidns-translation.gen.test signalfd4.gen.test \
+ 	sigpending.gen.test sigprocmask.gen.test sigreturn.gen.test \
+ 	sigsuspend.gen.test so_error.gen.test so_linger.gen.test \
+ 	so_peercred.gen.test so_peercred-Xabbrev.gen.test \
+ 	so_peercred-Xraw.gen.test so_peercred-Xverbose.gen.test \
+-	sock_filter-v.gen.test sock_filter-v-Xabbrev.gen.test \
+-	sock_filter-v-Xraw.gen.test sock_filter-v-Xverbose.gen.test \
+-	sockaddr_xlat-Xabbrev.gen.test sockaddr_xlat-Xraw.gen.test \
+-	sockaddr_xlat-Xverbose.gen.test socketcall.gen.test \
+-	sockopt-sol_netlink.gen.test sockopt-timestamp.gen.test \
+-	splice.gen.test stat.gen.test stat64.gen.test statfs.gen.test \
+-	statfs64.gen.test status-all.gen.test status-failed.gen.test \
++	so_peercred--pidns-translation.gen.test sock_filter-v.gen.test \
++	sock_filter-v-Xabbrev.gen.test sock_filter-v-Xraw.gen.test \
++	sock_filter-v-Xverbose.gen.test sockaddr_xlat-Xabbrev.gen.test \
++	sockaddr_xlat-Xraw.gen.test sockaddr_xlat-Xverbose.gen.test \
++	socketcall.gen.test sockopt-sol_netlink.gen.test \
++	sockopt-timestamp.gen.test splice.gen.test stat.gen.test \
++	stat64.gen.test statfs.gen.test statfs64.gen.test \
++	status-all.gen.test status-failed.gen.test \
+ 	status-failed-long.gen.test status-failed-status.gen.test \
+ 	status-none.gen.test status-successful.gen.test \
+ 	status-successful-long.gen.test \
+@@ -6142,33 +6459,37 @@
+ 	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 tgkill.gen.test \
++	tgkill--pidns-translation.gen.test \
+ 	threads-execve--quiet-thread-execve.gen.test \
+ 	threads-execve-q.gen.test threads-execve-qq.gen.test \
+ 	threads-execve-qqq.gen.test time.gen.test \
+ 	timer_create.gen.test timer_xettime.gen.test \
+ 	timerfd_xettime.gen.test times.gen.test times-fail.gen.test \
+-	tkill.gen.test trace_clock.gen.test trace_creds.gen.test \
+-	trace_fstat.gen.test trace_fstatfs.gen.test \
+-	trace_lstat.gen.test trace_personality_32.gen.test \
+-	trace_personality_64.gen.test \
++	tkill.gen.test tkill--pidns-translation.gen.test \
++	trace_clock.gen.test trace_creds.gen.test trace_fstat.gen.test \
++	trace_fstatfs.gen.test trace_lstat.gen.test \
++	trace_personality_32.gen.test trace_personality_64.gen.test \
+ 	trace_personality_regex_32.gen.test \
+ 	trace_personality_regex_64.gen.test \
+ 	trace_personality_regex_x32.gen.test \
+ 	trace_personality_x32.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 umovestr_cached_adjacent.gen.test \
+-	unlink.gen.test unlinkat.gen.test unshare.gen.test \
+-	userfaultfd.gen.test ustat.gen.test utime.gen.test \
+-	utimensat.gen.test utimensat-Xabbrev.gen.test \
+-	utimensat-Xraw.gen.test utimensat-Xverbose.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 \
++	trie_test.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 \
++	umovestr_cached_adjacent.gen.test unlink.gen.test \
++	unlinkat.gen.test unshare.gen.test userfaultfd.gen.test \
++	ustat.gen.test utime.gen.test utimensat.gen.test \
++	utimensat-Xabbrev.gen.test utimensat-Xraw.gen.test \
++	utimensat-Xverbose.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 \
++	xet_robust_list--pidns-translation.gen.test xetitimer.gen.test \
++	xetpgid.gen.test xetpgid--pidns-translation.gen.test \
++	xetpriority.gen.test xetpriority--pidns-translation.gen.test \
+ 	xettimeofday.gen.test
+ @ENABLE_STACKTRACE_FALSE@STACKTRACE_TESTS = 
+ @ENABLE_STACKTRACE_TRUE@STACKTRACE_TESTS = strace-k.test \
+@@ -6198,6 +6519,7 @@
+ 	int_0x80.test \
+ 	inotify_init-y.test \
+ 	ioctl.test \
++	ioctl_block--pidns-translation.test \
+ 	ioctl_evdev-success.test \
+ 	ipc_msgbuf.test \
+ 	kern_features-fault.test \
+@@ -6269,15 +6591,19 @@
+ 	filtering_fd-syntax.test \
+ 	filtering_syscall-syntax.test \
+ 	first_exec_failure.test \
++	fork--pidns-translation.test \
+ 	get_regs.test \
++	gettid--pidns-translation.test \
+ 	inject-nf.test \
+ 	interactive_block.test \
+ 	kill_child.test \
+ 	localtime.test \
+ 	looping_threads.test \
++	netlink_audit--pidns-translation.test \
+ 	opipe.test \
+ 	options-syntax.test \
+ 	pc.test \
++	pidns-cache.test \
+ 	printpath-umovestr-legacy.test \
+ 	printstrn-umoven-legacy.test \
+ 	qual_fault-syntax.test \
+@@ -6350,6 +6676,7 @@
+ 	filter_seccomp.in \
+ 	filter_seccomp.sh \
+ 	filter-unavailable.expected \
++	fork--pidns-translation.awk \
+ 	fstatat.c \
+ 	fstatx.c \
+ 	gen_pure_executables.sh \
+@@ -6935,10 +7262,18 @@
+ 	@rm -f fcntl$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fcntl_OBJECTS) $(fcntl_LDADD) $(LIBS)
+ 
++fcntl--pidns-translation$(EXEEXT): $(fcntl__pidns_translation_OBJECTS) $(fcntl__pidns_translation_DEPENDENCIES) $(EXTRA_fcntl__pidns_translation_DEPENDENCIES) 
++	@rm -f fcntl--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fcntl__pidns_translation_OBJECTS) $(fcntl__pidns_translation_LDADD) $(LIBS)
++
+ fcntl64$(EXEEXT): $(fcntl64_OBJECTS) $(fcntl64_DEPENDENCIES) $(EXTRA_fcntl64_DEPENDENCIES) 
+ 	@rm -f fcntl64$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fcntl64_OBJECTS) $(fcntl64_LDADD) $(LIBS)
+ 
++fcntl64--pidns-translation$(EXEEXT): $(fcntl64__pidns_translation_OBJECTS) $(fcntl64__pidns_translation_DEPENDENCIES) $(EXTRA_fcntl64__pidns_translation_DEPENDENCIES) 
++	@rm -f fcntl64--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fcntl64__pidns_translation_OBJECTS) $(fcntl64__pidns_translation_LDADD) $(LIBS)
++
+ fdatasync$(EXEEXT): $(fdatasync_OBJECTS) $(fdatasync_DEPENDENCIES) $(EXTRA_fdatasync_DEPENDENCIES) 
+ 	@rm -f fdatasync$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fdatasync_OBJECTS) $(fdatasync_LDADD) $(LIBS)
+@@ -6975,6 +7310,10 @@
+ 	@rm -f flock$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(flock_OBJECTS) $(flock_LDADD) $(LIBS)
+ 
++fork--pidns-translation$(EXEEXT): $(fork__pidns_translation_OBJECTS) $(fork__pidns_translation_DEPENDENCIES) $(EXTRA_fork__pidns_translation_DEPENDENCIES) 
++	@rm -f fork--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fork__pidns_translation_OBJECTS) $(fork__pidns_translation_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)
+@@ -7143,10 +7482,18 @@
+ 	@rm -f getpgrp$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(getpgrp_OBJECTS) $(getpgrp_LDADD) $(LIBS)
+ 
++getpgrp--pidns-translation$(EXEEXT): $(getpgrp__pidns_translation_OBJECTS) $(getpgrp__pidns_translation_DEPENDENCIES) $(EXTRA_getpgrp__pidns_translation_DEPENDENCIES) 
++	@rm -f getpgrp--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(getpgrp__pidns_translation_OBJECTS) $(getpgrp__pidns_translation_LDADD) $(LIBS)
++
+ getpid$(EXEEXT): $(getpid_OBJECTS) $(getpid_DEPENDENCIES) $(EXTRA_getpid_DEPENDENCIES) 
+ 	@rm -f getpid$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(getpid_OBJECTS) $(getpid_LDADD) $(LIBS)
+ 
++getpid--pidns-translation$(EXEEXT): $(getpid__pidns_translation_OBJECTS) $(getpid__pidns_translation_DEPENDENCIES) $(EXTRA_getpid__pidns_translation_DEPENDENCIES) 
++	@rm -f getpid--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(getpid__pidns_translation_OBJECTS) $(getpid__pidns_translation_LDADD) $(LIBS)
++
+ getppid$(EXEEXT): $(getppid_OBJECTS) $(getppid_DEPENDENCIES) $(EXTRA_getppid_DEPENDENCIES) 
+ 	@rm -f getppid$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(getppid_OBJECTS) $(getppid_LDADD) $(LIBS)
+@@ -7183,6 +7530,10 @@
+ 	@rm -f getsid$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(getsid_OBJECTS) $(getsid_LDADD) $(LIBS)
+ 
++getsid--pidns-translation$(EXEEXT): $(getsid__pidns_translation_OBJECTS) $(getsid__pidns_translation_DEPENDENCIES) $(EXTRA_getsid__pidns_translation_DEPENDENCIES) 
++	@rm -f getsid--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(getsid__pidns_translation_OBJECTS) $(getsid__pidns_translation_LDADD) $(LIBS)
++
+ getsockname$(EXEEXT): $(getsockname_OBJECTS) $(getsockname_DEPENDENCIES) $(EXTRA_getsockname_DEPENDENCIES) 
+ 	@rm -f getsockname$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(getsockname_OBJECTS) $(getsockname_LDADD) $(LIBS)
+@@ -7191,6 +7542,10 @@
+ 	@rm -f gettid$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(gettid_OBJECTS) $(gettid_LDADD) $(LIBS)
+ 
++gettid--pidns-translation$(EXEEXT): $(gettid__pidns_translation_OBJECTS) $(gettid__pidns_translation_DEPENDENCIES) $(EXTRA_gettid__pidns_translation_DEPENDENCIES) 
++	@rm -f gettid--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(gettid__pidns_translation_OBJECTS) $(gettid__pidns_translation_LDADD) $(LIBS)
++
+ getuid$(EXEEXT): $(getuid_OBJECTS) $(getuid_DEPENDENCIES) $(EXTRA_getuid_DEPENDENCIES) 
+ 	@rm -f getuid$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(getuid_OBJECTS) $(getuid_LDADD) $(LIBS)
+@@ -7271,6 +7626,10 @@
+ 	@rm -f ioctl_block$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(ioctl_block_OBJECTS) $(ioctl_block_LDADD) $(LIBS)
+ 
++ioctl_block--pidns-translation$(EXEEXT): $(ioctl_block__pidns_translation_OBJECTS) $(ioctl_block__pidns_translation_DEPENDENCIES) $(EXTRA_ioctl_block__pidns_translation_DEPENDENCIES) 
++	@rm -f ioctl_block--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(ioctl_block__pidns_translation_OBJECTS) $(ioctl_block__pidns_translation_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)
+@@ -7571,6 +7930,10 @@
+ 	@rm -f ioprio$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(ioprio_OBJECTS) $(ioprio_LDADD) $(LIBS)
+ 
++ioprio--pidns-translation$(EXEEXT): $(ioprio__pidns_translation_OBJECTS) $(ioprio__pidns_translation_DEPENDENCIES) $(EXTRA_ioprio__pidns_translation_DEPENDENCIES) 
++	@rm -f ioprio--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(ioprio__pidns_translation_OBJECTS) $(ioprio__pidns_translation_LDADD) $(LIBS)
++
+ ioprio-Xabbrev$(EXEEXT): $(ioprio_Xabbrev_OBJECTS) $(ioprio_Xabbrev_DEPENDENCIES) $(EXTRA_ioprio_Xabbrev_DEPENDENCIES) 
+ 	@rm -f ioprio-Xabbrev$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(ioprio_Xabbrev_OBJECTS) $(ioprio_Xabbrev_LDADD) $(LIBS)
+@@ -7667,6 +8030,10 @@
+ 	@rm -f kcmp-y$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(kcmp_y_OBJECTS) $(kcmp_y_LDADD) $(LIBS)
+ 
++kcmp-y--pidns-translation$(EXEEXT): $(kcmp_y__pidns_translation_OBJECTS) $(kcmp_y__pidns_translation_DEPENDENCIES) $(EXTRA_kcmp_y__pidns_translation_DEPENDENCIES) 
++	@rm -f kcmp-y--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(kcmp_y__pidns_translation_OBJECTS) $(kcmp_y__pidns_translation_LDADD) $(LIBS)
++
+ kern_features$(EXEEXT): $(kern_features_OBJECTS) $(kern_features_DEPENDENCIES) $(EXTRA_kern_features_DEPENDENCIES) 
+ 	@rm -f kern_features$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(kern_features_OBJECTS) $(kern_features_LDADD) $(LIBS)
+@@ -7715,6 +8082,10 @@
+ 	@rm -f kill$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(kill_OBJECTS) $(kill_LDADD) $(LIBS)
+ 
++kill--pidns-translation$(EXEEXT): $(kill__pidns_translation_OBJECTS) $(kill__pidns_translation_DEPENDENCIES) $(EXTRA_kill__pidns_translation_DEPENDENCIES) 
++	@rm -f kill--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(kill__pidns_translation_OBJECTS) $(kill__pidns_translation_LDADD) $(LIBS)
++
+ kill_child$(EXEEXT): $(kill_child_OBJECTS) $(kill_child_DEPENDENCIES) $(EXTRA_kill_child_DEPENDENCIES) 
+ 	@rm -f kill_child$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(kill_child_OBJECTS) $(kill_child_LDADD) $(LIBS)
+@@ -7823,6 +8194,10 @@
+ 	@rm -f migrate_pages$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(migrate_pages_OBJECTS) $(migrate_pages_LDADD) $(LIBS)
+ 
++migrate_pages--pidns-translation$(EXEEXT): $(migrate_pages__pidns_translation_OBJECTS) $(migrate_pages__pidns_translation_DEPENDENCIES) $(EXTRA_migrate_pages__pidns_translation_DEPENDENCIES) 
++	@rm -f migrate_pages--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(migrate_pages__pidns_translation_OBJECTS) $(migrate_pages__pidns_translation_LDADD) $(LIBS)
++
+ mincore$(EXEEXT): $(mincore_OBJECTS) $(mincore_DEPENDENCIES) $(EXTRA_mincore_DEPENDENCIES) 
+ 	@rm -f mincore$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(mincore_OBJECTS) $(mincore_LDADD) $(LIBS)
+@@ -7935,6 +8310,10 @@
+ 	@rm -f move_pages$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(move_pages_OBJECTS) $(move_pages_LDADD) $(LIBS)
+ 
++move_pages--pidns-translation$(EXEEXT): $(move_pages__pidns_translation_OBJECTS) $(move_pages__pidns_translation_DEPENDENCIES) $(EXTRA_move_pages__pidns_translation_DEPENDENCIES) 
++	@rm -f move_pages--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(move_pages__pidns_translation_OBJECTS) $(move_pages__pidns_translation_LDADD) $(LIBS)
++
+ move_pages-Xabbrev$(EXEEXT): $(move_pages_Xabbrev_OBJECTS) $(move_pages_Xabbrev_DEPENDENCIES) $(EXTRA_move_pages_Xabbrev_DEPENDENCIES) 
+ 	@rm -f move_pages-Xabbrev$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(move_pages_Xabbrev_OBJECTS) $(move_pages_Xabbrev_LDADD) $(LIBS)
+@@ -8027,6 +8406,10 @@
+ 	@rm -f net-sockaddr$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(net_sockaddr_OBJECTS) $(net_sockaddr_LDADD) $(LIBS)
+ 
++net-sockaddr--pidns-translation$(EXEEXT): $(net_sockaddr__pidns_translation_OBJECTS) $(net_sockaddr__pidns_translation_DEPENDENCIES) $(EXTRA_net_sockaddr__pidns_translation_DEPENDENCIES) 
++	@rm -f net-sockaddr--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(net_sockaddr__pidns_translation_OBJECTS) $(net_sockaddr__pidns_translation_LDADD) $(LIBS)
++
+ net-tpacket_req$(EXEEXT): $(net_tpacket_req_OBJECTS) $(net_tpacket_req_DEPENDENCIES) $(EXTRA_net_tpacket_req_DEPENDENCIES) 
+ 	@rm -f net-tpacket_req$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(net_tpacket_req_OBJECTS) $(net_tpacket_req_LDADD) $(LIBS)
+@@ -8063,6 +8446,10 @@
+ 	@rm -f netlink_audit$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(netlink_audit_OBJECTS) $(netlink_audit_LDADD) $(LIBS)
+ 
++netlink_audit--pidns-translation$(EXEEXT): $(netlink_audit__pidns_translation_OBJECTS) $(netlink_audit__pidns_translation_DEPENDENCIES) $(EXTRA_netlink_audit__pidns_translation_DEPENDENCIES) 
++	@rm -f netlink_audit--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(netlink_audit__pidns_translation_OBJECTS) $(netlink_audit__pidns_translation_LDADD) $(LIBS)
++
+ netlink_crypto$(EXEEXT): $(netlink_crypto_OBJECTS) $(netlink_crypto_DEPENDENCIES) $(EXTRA_netlink_crypto_DEPENDENCIES) 
+ 	@rm -f netlink_crypto$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(netlink_crypto_OBJECTS) $(netlink_crypto_LDADD) $(LIBS)
+@@ -8479,6 +8866,10 @@
+ 	@rm -f pidfd_open--decode-fd-socket$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(pidfd_open__decode_fd_socket_OBJECTS) $(pidfd_open__decode_fd_socket_LDADD) $(LIBS)
+ 
++pidfd_open--pidns-translation$(EXEEXT): $(pidfd_open__pidns_translation_OBJECTS) $(pidfd_open__pidns_translation_DEPENDENCIES) $(EXTRA_pidfd_open__pidns_translation_DEPENDENCIES) 
++	@rm -f pidfd_open--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(pidfd_open__pidns_translation_OBJECTS) $(pidfd_open__pidns_translation_LDADD) $(LIBS)
++
+ pidfd_open-P$(EXEEXT): $(pidfd_open_P_OBJECTS) $(pidfd_open_P_DEPENDENCIES) $(EXTRA_pidfd_open_P_DEPENDENCIES) 
+ 	@rm -f pidfd_open-P$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(pidfd_open_P_OBJECTS) $(pidfd_open_P_LDADD) $(LIBS)
+@@ -8495,6 +8886,14 @@
+ 	@rm -f pidfd_send_signal$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(pidfd_send_signal_OBJECTS) $(pidfd_send_signal_LDADD) $(LIBS)
+ 
++pidfd_send_signal--pidns-translation$(EXEEXT): $(pidfd_send_signal__pidns_translation_OBJECTS) $(pidfd_send_signal__pidns_translation_DEPENDENCIES) $(EXTRA_pidfd_send_signal__pidns_translation_DEPENDENCIES) 
++	@rm -f pidfd_send_signal--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(pidfd_send_signal__pidns_translation_OBJECTS) $(pidfd_send_signal__pidns_translation_LDADD) $(LIBS)
++
++pidns-cache$(EXEEXT): $(pidns_cache_OBJECTS) $(pidns_cache_DEPENDENCIES) $(EXTRA_pidns_cache_DEPENDENCIES) 
++	@rm -f pidns-cache$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(pidns_cache_OBJECTS) $(pidns_cache_LDADD) $(LIBS)
++
+ pipe$(EXEEXT): $(pipe_OBJECTS) $(pipe_DEPENDENCIES) $(EXTRA_pipe_DEPENDENCIES) 
+ 	@rm -f pipe$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(pipe_OBJECTS) $(pipe_LDADD) $(LIBS)
+@@ -8647,14 +9046,26 @@
+ 	@rm -f prlimit64$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(prlimit64_OBJECTS) $(prlimit64_LDADD) $(LIBS)
+ 
++prlimit64--pidns-translation$(EXEEXT): $(prlimit64__pidns_translation_OBJECTS) $(prlimit64__pidns_translation_DEPENDENCIES) $(EXTRA_prlimit64__pidns_translation_DEPENDENCIES) 
++	@rm -f prlimit64--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(prlimit64__pidns_translation_OBJECTS) $(prlimit64__pidns_translation_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_readv--pidns-translation$(EXEEXT): $(process_vm_readv__pidns_translation_OBJECTS) $(process_vm_readv__pidns_translation_DEPENDENCIES) $(EXTRA_process_vm_readv__pidns_translation_DEPENDENCIES) 
++	@rm -f process_vm_readv--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(process_vm_readv__pidns_translation_OBJECTS) $(process_vm_readv__pidns_translation_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)
+ 
++process_vm_writev--pidns-translation$(EXEEXT): $(process_vm_writev__pidns_translation_OBJECTS) $(process_vm_writev__pidns_translation_DEPENDENCIES) $(EXTRA_process_vm_writev__pidns_translation_DEPENDENCIES) 
++	@rm -f process_vm_writev--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(process_vm_writev__pidns_translation_OBJECTS) $(process_vm_writev__pidns_translation_LDADD) $(LIBS)
++
+ pselect6$(EXEEXT): $(pselect6_OBJECTS) $(pselect6_DEPENDENCIES) $(EXTRA_pselect6_DEPENDENCIES) 
+ 	@rm -f pselect6$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(pselect6_OBJECTS) $(pselect6_LDADD) $(LIBS)
+@@ -8847,6 +9258,10 @@
+ 	@rm -f rt_sigqueueinfo$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(rt_sigqueueinfo_OBJECTS) $(rt_sigqueueinfo_LDADD) $(LIBS)
+ 
++rt_sigqueueinfo--pidns-translation$(EXEEXT): $(rt_sigqueueinfo__pidns_translation_OBJECTS) $(rt_sigqueueinfo__pidns_translation_DEPENDENCIES) $(EXTRA_rt_sigqueueinfo__pidns_translation_DEPENDENCIES) 
++	@rm -f rt_sigqueueinfo--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(rt_sigqueueinfo__pidns_translation_OBJECTS) $(rt_sigqueueinfo__pidns_translation_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)
+@@ -8863,6 +9278,10 @@
+ 	@rm -f rt_tgsigqueueinfo$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(rt_tgsigqueueinfo_OBJECTS) $(rt_tgsigqueueinfo_LDADD) $(LIBS)
+ 
++rt_tgsigqueueinfo--pidns-translation$(EXEEXT): $(rt_tgsigqueueinfo__pidns_translation_OBJECTS) $(rt_tgsigqueueinfo__pidns_translation_DEPENDENCIES) $(EXTRA_rt_tgsigqueueinfo__pidns_translation_DEPENDENCIES) 
++	@rm -f rt_tgsigqueueinfo--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(rt_tgsigqueueinfo__pidns_translation_OBJECTS) $(rt_tgsigqueueinfo__pidns_translation_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)
+@@ -8903,18 +9322,34 @@
+ 	@rm -f sched_xetaffinity$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(sched_xetaffinity_OBJECTS) $(sched_xetaffinity_LDADD) $(LIBS)
+ 
++sched_xetaffinity--pidns-translation$(EXEEXT): $(sched_xetaffinity__pidns_translation_OBJECTS) $(sched_xetaffinity__pidns_translation_DEPENDENCIES) $(EXTRA_sched_xetaffinity__pidns_translation_DEPENDENCIES) 
++	@rm -f sched_xetaffinity--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(sched_xetaffinity__pidns_translation_OBJECTS) $(sched_xetaffinity__pidns_translation_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_xetattr--pidns-translation$(EXEEXT): $(sched_xetattr__pidns_translation_OBJECTS) $(sched_xetattr__pidns_translation_DEPENDENCIES) $(EXTRA_sched_xetattr__pidns_translation_DEPENDENCIES) 
++	@rm -f sched_xetattr--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(sched_xetattr__pidns_translation_OBJECTS) $(sched_xetattr__pidns_translation_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_xetparam--pidns-translation$(EXEEXT): $(sched_xetparam__pidns_translation_OBJECTS) $(sched_xetparam__pidns_translation_DEPENDENCIES) $(EXTRA_sched_xetparam__pidns_translation_DEPENDENCIES) 
++	@rm -f sched_xetparam--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(sched_xetparam__pidns_translation_OBJECTS) $(sched_xetparam__pidns_translation_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_xetscheduler--pidns-translation$(EXEEXT): $(sched_xetscheduler__pidns_translation_OBJECTS) $(sched_xetscheduler__pidns_translation_DEPENDENCIES) $(EXTRA_sched_xetscheduler__pidns_translation_DEPENDENCIES) 
++	@rm -f sched_xetscheduler--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(sched_xetscheduler__pidns_translation_OBJECTS) $(sched_xetscheduler__pidns_translation_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)
+@@ -9127,6 +9562,10 @@
+ 	@rm -f signal_receive$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(signal_receive_OBJECTS) $(signal_receive_LDADD) $(LIBS)
+ 
++signal_receive--pidns-translation$(EXEEXT): $(signal_receive__pidns_translation_OBJECTS) $(signal_receive__pidns_translation_DEPENDENCIES) $(EXTRA_signal_receive__pidns_translation_DEPENDENCIES) 
++	@rm -f signal_receive--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(signal_receive__pidns_translation_OBJECTS) $(signal_receive__pidns_translation_LDADD) $(LIBS)
++
+ signalfd4$(EXEEXT): $(signalfd4_OBJECTS) $(signalfd4_DEPENDENCIES) $(EXTRA_signalfd4_DEPENDENCIES) 
+ 	@rm -f signalfd4$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(signalfd4_OBJECTS) $(signalfd4_LDADD) $(LIBS)
+@@ -9163,6 +9602,10 @@
+ 	@rm -f so_peercred$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(so_peercred_OBJECTS) $(so_peercred_LDADD) $(LIBS)
+ 
++so_peercred--pidns-translation$(EXEEXT): $(so_peercred__pidns_translation_OBJECTS) $(so_peercred__pidns_translation_DEPENDENCIES) $(EXTRA_so_peercred__pidns_translation_DEPENDENCIES) 
++	@rm -f so_peercred--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(so_peercred__pidns_translation_OBJECTS) $(so_peercred__pidns_translation_LDADD) $(LIBS)
++
+ so_peercred-Xabbrev$(EXEEXT): $(so_peercred_Xabbrev_OBJECTS) $(so_peercred_Xabbrev_DEPENDENCIES) $(EXTRA_so_peercred_Xabbrev_DEPENDENCIES) 
+ 	@rm -f so_peercred-Xabbrev$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(so_peercred_Xabbrev_OBJECTS) $(so_peercred_Xabbrev_LDADD) $(LIBS)
+@@ -9367,6 +9810,10 @@
+ 	@rm -f tgkill$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(tgkill_OBJECTS) $(tgkill_LDADD) $(LIBS)
+ 
++tgkill--pidns-translation$(EXEEXT): $(tgkill__pidns_translation_OBJECTS) $(tgkill__pidns_translation_DEPENDENCIES) $(EXTRA_tgkill__pidns_translation_DEPENDENCIES) 
++	@rm -f tgkill--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(tgkill__pidns_translation_OBJECTS) $(tgkill__pidns_translation_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)
+@@ -9415,10 +9862,18 @@
+ 	@rm -f tkill$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(tkill_OBJECTS) $(tkill_LDADD) $(LIBS)
+ 
++tkill--pidns-translation$(EXEEXT): $(tkill__pidns_translation_OBJECTS) $(tkill__pidns_translation_DEPENDENCIES) $(EXTRA_tkill__pidns_translation_DEPENDENCIES) 
++	@rm -f tkill--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(tkill__pidns_translation_OBJECTS) $(tkill__pidns_translation_LDADD) $(LIBS)
++
+ tracer_ppid_pgid_sid$(EXEEXT): $(tracer_ppid_pgid_sid_OBJECTS) $(tracer_ppid_pgid_sid_DEPENDENCIES) $(EXTRA_tracer_ppid_pgid_sid_DEPENDENCIES) 
+ 	@rm -f tracer_ppid_pgid_sid$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(tracer_ppid_pgid_sid_OBJECTS) $(tracer_ppid_pgid_sid_LDADD) $(LIBS)
+ 
++trie_test$(EXEEXT): $(trie_test_OBJECTS) $(trie_test_DEPENDENCIES) $(EXTRA_trie_test_DEPENDENCIES) 
++	@rm -f trie_test$(EXEEXT)
++	$(AM_V_CCLD)$(trie_test_LINK) $(trie_test_OBJECTS) $(trie_test_LDADD) $(LIBS)
++
+ truncate$(EXEEXT): $(truncate_OBJECTS) $(truncate_DEPENDENCIES) $(EXTRA_truncate_DEPENDENCIES) 
+ 	@rm -f truncate$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(truncate_OBJECTS) $(truncate_LDADD) $(LIBS)
+@@ -9579,6 +10034,10 @@
+ 	@rm -f xet_robust_list$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(xet_robust_list_OBJECTS) $(xet_robust_list_LDADD) $(LIBS)
+ 
++xet_robust_list--pidns-translation$(EXEEXT): $(xet_robust_list__pidns_translation_OBJECTS) $(xet_robust_list__pidns_translation_DEPENDENCIES) $(EXTRA_xet_robust_list__pidns_translation_DEPENDENCIES) 
++	@rm -f xet_robust_list--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(xet_robust_list__pidns_translation_OBJECTS) $(xet_robust_list__pidns_translation_LDADD) $(LIBS)
++
+ xet_thread_area_x86$(EXEEXT): $(xet_thread_area_x86_OBJECTS) $(xet_thread_area_x86_DEPENDENCIES) $(EXTRA_xet_thread_area_x86_DEPENDENCIES) 
+ 	@rm -f xet_thread_area_x86$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(xet_thread_area_x86_OBJECTS) $(xet_thread_area_x86_LDADD) $(LIBS)
+@@ -9591,10 +10050,18 @@
+ 	@rm -f xetpgid$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(xetpgid_OBJECTS) $(xetpgid_LDADD) $(LIBS)
+ 
++xetpgid--pidns-translation$(EXEEXT): $(xetpgid__pidns_translation_OBJECTS) $(xetpgid__pidns_translation_DEPENDENCIES) $(EXTRA_xetpgid__pidns_translation_DEPENDENCIES) 
++	@rm -f xetpgid--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(xetpgid__pidns_translation_OBJECTS) $(xetpgid__pidns_translation_LDADD) $(LIBS)
++
+ xetpriority$(EXEEXT): $(xetpriority_OBJECTS) $(xetpriority_DEPENDENCIES) $(EXTRA_xetpriority_DEPENDENCIES) 
+ 	@rm -f xetpriority$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(xetpriority_OBJECTS) $(xetpriority_LDADD) $(LIBS)
+ 
++xetpriority--pidns-translation$(EXEEXT): $(xetpriority__pidns_translation_OBJECTS) $(xetpriority__pidns_translation_DEPENDENCIES) $(EXTRA_xetpriority__pidns_translation_DEPENDENCIES) 
++	@rm -f xetpriority--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(xetpriority__pidns_translation_OBJECTS) $(xetpriority__pidns_translation_LDADD) $(LIBS)
++
+ xettimeofday$(EXEEXT): $(xettimeofday_OBJECTS) $(xettimeofday_DEPENDENCIES) $(EXTRA_xettimeofday_DEPENDENCIES) 
+ 	@rm -f xettimeofday$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(xettimeofday_OBJECTS) $(xettimeofday_LDADD) $(LIBS)
+@@ -9714,7 +10181,9 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchown.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchown32.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl64--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl64.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fdatasync.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fflush.Po@am__quote@ # am--include-marker
+@@ -9725,6 +10194,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter_seccomp-perf.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/finit_module.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flock.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fork--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fork-f.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsconfig-P.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsconfig.Po@am__quote@ # am--include-marker
+@@ -9766,7 +10236,9 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getgroups.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getgroups32.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpeername.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpgrp--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpgrp.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpid--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpid.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getppid.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getrandom.Po@am__quote@ # am--include-marker
+@@ -9776,8 +10248,10 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getresuid32.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getrlimit.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getrusage.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getsid--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getsid.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getsockname.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettid--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettid.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getuid.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getuid32.Po@am__quote@ # am--include-marker
+@@ -9798,6 +10272,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/io_uring_register.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/io_uring_setup.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_block--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_block.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_dm-v.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_dm.Po@am__quote@ # am--include-marker
+@@ -9873,6 +10348,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_watchdog.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioperm.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iopl.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioprio--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioprio-Xabbrev.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioprio-Xraw.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioprio-Xverbose.Po@am__quote@ # am--include-marker
+@@ -9896,6 +10372,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_shm-Xverbose.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_shm.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/is_linux_mips_n64.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kcmp-y--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kcmp-y.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kcmp.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kern_features.Po@am__quote@ # am--include-marker
+@@ -9909,6 +10386,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyctl-Xraw.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyctl-Xverbose.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyctl.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kill--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kill.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kill_child.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ksysent.Po@am__quote@ # am--include-marker
+@@ -9946,6 +10424,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-test_printstrn.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-test_ucopy.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-tprintf.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/link.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list_sigaction_signum.Po@am__quote@ # am--include-marker
+@@ -9968,6 +10447,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memfd_create-Xraw.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memfd_create-Xverbose.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memfd_create.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/migrate_pages--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/migrate_pages.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mincore.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkdir.Po@am__quote@ # am--include-marker
+@@ -9996,6 +10476,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_mount-P.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_mount.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_pages--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_pages-Xabbrev.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_pages-Xraw.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_pages-Xverbose.Po@am__quote@ # am--include-marker
+@@ -10019,6 +10500,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-packet_mreq-Xraw.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-packet_mreq-Xverbose.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-packet_mreq.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-sockaddr--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-sockaddr.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-tpacket_req.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-tpacket_stats-success.Po@am__quote@ # am--include-marker
+@@ -10028,6 +10510,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-yy-inet6.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-yy-netlink.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-yy-unix.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_audit--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_audit.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_crypto.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_generic.Po@am__quote@ # am--include-marker
+@@ -10132,11 +10615,14 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open--decode-fd-path.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open--decode-fd-pidfd.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open--decode-fd-socket.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open-P.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open-y.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open-yy.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_send_signal--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_send_signal.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidns-cache.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipe.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipe2.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pkey_alloc.Po@am__quote@ # am--include-marker
+@@ -10174,8 +10660,11 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printstrn-umoven-peekdata.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printstrn-umoven-undumpable.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printstrn-umoven.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prlimit64--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prlimit64.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process_vm_readv--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process_vm_readv.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process_vm_writev--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process_vm_writev.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pselect6.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ptrace.Po@am__quote@ # am--include-marker
+@@ -10224,10 +10713,12 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigaction.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigpending.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigprocmask.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigqueueinfo--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigqueueinfo.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigreturn.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigsuspend.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigtimedwait.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_tgsigqueueinfo--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_tgsigqueueinfo.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/run_expect_termsig.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/s390_guarded_storage-v.Po@am__quote@ # am--include-marker
+@@ -10238,9 +10729,13 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/s390_sthyi.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_get_priority_mxx.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_rr_get_interval.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetaffinity--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetaffinity.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetattr--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetattr.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetparam--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetparam.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetscheduler--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetscheduler.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_yield.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scm_rights.Po@am__quote@ # am--include-marker
+@@ -10294,6 +10789,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigaltstack.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/siginfo.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal_receive--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal_receive.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signalfd4.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigpending.Po@am__quote@ # am--include-marker
+@@ -10303,6 +10799,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sleep.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_error.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_linger.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred-Xabbrev.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred-Xraw.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred-Xverbose.Po@am__quote@ # am--include-marker
+@@ -10362,6 +10859,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/syslog-success.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/syslog.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tee.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tgkill--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tgkill.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads-execve--quiet-thread-execve.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads-execve-q.Po@am__quote@ # am--include-marker
+@@ -10374,6 +10872,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timerfd_xettime.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/times-fail.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/times.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tkill--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tkill.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tracer_ppid_pgid_sid.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/truncate.Po@am__quote@ # am--include-marker
+@@ -10415,10 +10914,13 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/waitpid.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xattr-strings.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xattr.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xet_robust_list--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xet_robust_list.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xet_thread_area_x86.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetitimer.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetpgid--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetpgid.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetpriority--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetpriority.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xettimeofday.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zeroargc.Po@am__quote@ # am--include-marker
+@@ -10893,6 +11395,20 @@
+ @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-tprintf.obj `if test -f 'tprintf.c'; then $(CYGPATH_W) 'tprintf.c'; else $(CYGPATH_W) '$(srcdir)/tprintf.c'; fi`
+ 
++libtests_a-xmalloc_for_tests.o: xmalloc_for_tests.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-xmalloc_for_tests.o -MD -MP -MF $(DEPDIR)/libtests_a-xmalloc_for_tests.Tpo -c -o libtests_a-xmalloc_for_tests.o `test -f 'xmalloc_for_tests.c' || echo '$(srcdir)/'`xmalloc_for_tests.c
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-xmalloc_for_tests.Tpo $(DEPDIR)/libtests_a-xmalloc_for_tests.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='xmalloc_for_tests.c' object='libtests_a-xmalloc_for_tests.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-xmalloc_for_tests.o `test -f 'xmalloc_for_tests.c' || echo '$(srcdir)/'`xmalloc_for_tests.c
++
++libtests_a-xmalloc_for_tests.obj: xmalloc_for_tests.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-xmalloc_for_tests.obj -MD -MP -MF $(DEPDIR)/libtests_a-xmalloc_for_tests.Tpo -c -o libtests_a-xmalloc_for_tests.obj `if test -f 'xmalloc_for_tests.c'; then $(CYGPATH_W) 'xmalloc_for_tests.c'; else $(CYGPATH_W) '$(srcdir)/xmalloc_for_tests.c'; fi`
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-xmalloc_for_tests.Tpo $(DEPDIR)/libtests_a-xmalloc_for_tests.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='xmalloc_for_tests.c' object='libtests_a-xmalloc_for_tests.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-xmalloc_for_tests.obj `if test -f 'xmalloc_for_tests.c'; then $(CYGPATH_W) 'xmalloc_for_tests.c'; else $(CYGPATH_W) '$(srcdir)/xmalloc_for_tests.c'; fi`
++
+ fstat64-fstat64.o: fstat64.c
+ @am__fastdepCC_TRUE@	$(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__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/fstat64-fstat64.Tpo $(DEPDIR)/fstat64-fstat64.Po
+@@ -11103,6 +11619,34 @@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(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`
+ 
++trie_test-trie_test.o: trie_test.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -MT trie_test-trie_test.o -MD -MP -MF $(DEPDIR)/trie_test-trie_test.Tpo -c -o trie_test-trie_test.o `test -f 'trie_test.c' || echo '$(srcdir)/'`trie_test.c
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/trie_test-trie_test.Tpo $(DEPDIR)/trie_test-trie_test.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='trie_test.c' object='trie_test-trie_test.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) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -c -o trie_test-trie_test.o `test -f 'trie_test.c' || echo '$(srcdir)/'`trie_test.c
++
++trie_test-trie_test.obj: trie_test.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -MT trie_test-trie_test.obj -MD -MP -MF $(DEPDIR)/trie_test-trie_test.Tpo -c -o trie_test-trie_test.obj `if test -f 'trie_test.c'; then $(CYGPATH_W) 'trie_test.c'; else $(CYGPATH_W) '$(srcdir)/trie_test.c'; fi`
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/trie_test-trie_test.Tpo $(DEPDIR)/trie_test-trie_test.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='trie_test.c' object='trie_test-trie_test.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) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -c -o trie_test-trie_test.obj `if test -f 'trie_test.c'; then $(CYGPATH_W) 'trie_test.c'; else $(CYGPATH_W) '$(srcdir)/trie_test.c'; fi`
++
++trie_test-trie_for_tests.o: trie_for_tests.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -MT trie_test-trie_for_tests.o -MD -MP -MF $(DEPDIR)/trie_test-trie_for_tests.Tpo -c -o trie_test-trie_for_tests.o `test -f 'trie_for_tests.c' || echo '$(srcdir)/'`trie_for_tests.c
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/trie_test-trie_for_tests.Tpo $(DEPDIR)/trie_test-trie_for_tests.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='trie_for_tests.c' object='trie_test-trie_for_tests.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) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -c -o trie_test-trie_for_tests.o `test -f 'trie_for_tests.c' || echo '$(srcdir)/'`trie_for_tests.c
++
++trie_test-trie_for_tests.obj: trie_for_tests.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -MT trie_test-trie_for_tests.obj -MD -MP -MF $(DEPDIR)/trie_test-trie_for_tests.Tpo -c -o trie_test-trie_for_tests.obj `if test -f 'trie_for_tests.c'; then $(CYGPATH_W) 'trie_for_tests.c'; else $(CYGPATH_W) '$(srcdir)/trie_for_tests.c'; fi`
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/trie_test-trie_for_tests.Tpo $(DEPDIR)/trie_test-trie_for_tests.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='trie_for_tests.c' object='trie_test-trie_for_tests.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) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -c -o trie_test-trie_for_tests.obj `if test -f 'trie_for_tests.c'; then $(CYGPATH_W) 'trie_for_tests.c'; else $(CYGPATH_W) '$(srcdir)/trie_for_tests.c'; fi`
++
+ truncate64-truncate64.o: truncate64.c
+ @am__fastdepCC_TRUE@	$(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__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/truncate64-truncate64.Tpo $(DEPDIR)/truncate64-truncate64.Po
+@@ -11551,7 +12095,9 @@
+ 	-rm -f ./$(DEPDIR)/fchown.Po
+ 	-rm -f ./$(DEPDIR)/fchown32.Po
+ 	-rm -f ./$(DEPDIR)/fchownat.Po
++	-rm -f ./$(DEPDIR)/fcntl--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/fcntl.Po
++	-rm -f ./$(DEPDIR)/fcntl64--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/fcntl64.Po
+ 	-rm -f ./$(DEPDIR)/fdatasync.Po
+ 	-rm -f ./$(DEPDIR)/fflush.Po
+@@ -11562,6 +12108,7 @@
+ 	-rm -f ./$(DEPDIR)/filter_seccomp-perf.Po
+ 	-rm -f ./$(DEPDIR)/finit_module.Po
+ 	-rm -f ./$(DEPDIR)/flock.Po
++	-rm -f ./$(DEPDIR)/fork--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/fork-f.Po
+ 	-rm -f ./$(DEPDIR)/fsconfig-P.Po
+ 	-rm -f ./$(DEPDIR)/fsconfig.Po
+@@ -11603,7 +12150,9 @@
+ 	-rm -f ./$(DEPDIR)/getgroups.Po
+ 	-rm -f ./$(DEPDIR)/getgroups32.Po
+ 	-rm -f ./$(DEPDIR)/getpeername.Po
++	-rm -f ./$(DEPDIR)/getpgrp--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/getpgrp.Po
++	-rm -f ./$(DEPDIR)/getpid--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/getpid.Po
+ 	-rm -f ./$(DEPDIR)/getppid.Po
+ 	-rm -f ./$(DEPDIR)/getrandom.Po
+@@ -11613,8 +12162,10 @@
+ 	-rm -f ./$(DEPDIR)/getresuid32.Po
+ 	-rm -f ./$(DEPDIR)/getrlimit.Po
+ 	-rm -f ./$(DEPDIR)/getrusage.Po
++	-rm -f ./$(DEPDIR)/getsid--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/getsid.Po
+ 	-rm -f ./$(DEPDIR)/getsockname.Po
++	-rm -f ./$(DEPDIR)/gettid--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/gettid.Po
+ 	-rm -f ./$(DEPDIR)/getuid.Po
+ 	-rm -f ./$(DEPDIR)/getuid32.Po
+@@ -11635,6 +12186,7 @@
+ 	-rm -f ./$(DEPDIR)/io_uring_register.Po
+ 	-rm -f ./$(DEPDIR)/io_uring_setup.Po
+ 	-rm -f ./$(DEPDIR)/ioctl.Po
++	-rm -f ./$(DEPDIR)/ioctl_block--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/ioctl_block.Po
+ 	-rm -f ./$(DEPDIR)/ioctl_dm-v.Po
+ 	-rm -f ./$(DEPDIR)/ioctl_dm.Po
+@@ -11710,6 +12262,7 @@
+ 	-rm -f ./$(DEPDIR)/ioctl_watchdog.Po
+ 	-rm -f ./$(DEPDIR)/ioperm.Po
+ 	-rm -f ./$(DEPDIR)/iopl.Po
++	-rm -f ./$(DEPDIR)/ioprio--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/ioprio-Xabbrev.Po
+ 	-rm -f ./$(DEPDIR)/ioprio-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/ioprio-Xverbose.Po
+@@ -11733,6 +12286,7 @@
+ 	-rm -f ./$(DEPDIR)/ipc_shm-Xverbose.Po
+ 	-rm -f ./$(DEPDIR)/ipc_shm.Po
+ 	-rm -f ./$(DEPDIR)/is_linux_mips_n64.Po
++	-rm -f ./$(DEPDIR)/kcmp-y--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/kcmp-y.Po
+ 	-rm -f ./$(DEPDIR)/kcmp.Po
+ 	-rm -f ./$(DEPDIR)/kern_features.Po
+@@ -11746,6 +12300,7 @@
+ 	-rm -f ./$(DEPDIR)/keyctl-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/keyctl-Xverbose.Po
+ 	-rm -f ./$(DEPDIR)/keyctl.Po
++	-rm -f ./$(DEPDIR)/kill--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/kill.Po
+ 	-rm -f ./$(DEPDIR)/kill_child.Po
+ 	-rm -f ./$(DEPDIR)/ksysent.Po
+@@ -11783,6 +12338,7 @@
+ 	-rm -f ./$(DEPDIR)/libtests_a-test_printstrn.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-test_ucopy.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-tprintf.Po
++	-rm -f ./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po
+ 	-rm -f ./$(DEPDIR)/link.Po
+ 	-rm -f ./$(DEPDIR)/linkat.Po
+ 	-rm -f ./$(DEPDIR)/list_sigaction_signum.Po
+@@ -11805,6 +12361,7 @@
+ 	-rm -f ./$(DEPDIR)/memfd_create-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/memfd_create-Xverbose.Po
+ 	-rm -f ./$(DEPDIR)/memfd_create.Po
++	-rm -f ./$(DEPDIR)/migrate_pages--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/migrate_pages.Po
+ 	-rm -f ./$(DEPDIR)/mincore.Po
+ 	-rm -f ./$(DEPDIR)/mkdir.Po
+@@ -11833,6 +12390,7 @@
+ 	-rm -f ./$(DEPDIR)/mount.Po
+ 	-rm -f ./$(DEPDIR)/move_mount-P.Po
+ 	-rm -f ./$(DEPDIR)/move_mount.Po
++	-rm -f ./$(DEPDIR)/move_pages--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/move_pages-Xabbrev.Po
+ 	-rm -f ./$(DEPDIR)/move_pages-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/move_pages-Xverbose.Po
+@@ -11856,6 +12414,7 @@
+ 	-rm -f ./$(DEPDIR)/net-packet_mreq-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/net-packet_mreq-Xverbose.Po
+ 	-rm -f ./$(DEPDIR)/net-packet_mreq.Po
++	-rm -f ./$(DEPDIR)/net-sockaddr--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/net-sockaddr.Po
+ 	-rm -f ./$(DEPDIR)/net-tpacket_req.Po
+ 	-rm -f ./$(DEPDIR)/net-tpacket_stats-success.Po
+@@ -11865,6 +12424,7 @@
+ 	-rm -f ./$(DEPDIR)/net-yy-inet6.Po
+ 	-rm -f ./$(DEPDIR)/net-yy-netlink.Po
+ 	-rm -f ./$(DEPDIR)/net-yy-unix.Po
++	-rm -f ./$(DEPDIR)/netlink_audit--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/netlink_audit.Po
+ 	-rm -f ./$(DEPDIR)/netlink_crypto.Po
+ 	-rm -f ./$(DEPDIR)/netlink_generic.Po
+@@ -11969,11 +12529,14 @@
+ 	-rm -f ./$(DEPDIR)/pidfd_open--decode-fd-path.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open--decode-fd-pidfd.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open--decode-fd-socket.Po
++	-rm -f ./$(DEPDIR)/pidfd_open--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open-P.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open-y.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open-yy.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open.Po
++	-rm -f ./$(DEPDIR)/pidfd_send_signal--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_send_signal.Po
++	-rm -f ./$(DEPDIR)/pidns-cache.Po
+ 	-rm -f ./$(DEPDIR)/pipe.Po
+ 	-rm -f ./$(DEPDIR)/pipe2.Po
+ 	-rm -f ./$(DEPDIR)/pkey_alloc.Po
+@@ -12011,8 +12574,11 @@
+ 	-rm -f ./$(DEPDIR)/printstrn-umoven-peekdata.Po
+ 	-rm -f ./$(DEPDIR)/printstrn-umoven-undumpable.Po
+ 	-rm -f ./$(DEPDIR)/printstrn-umoven.Po
++	-rm -f ./$(DEPDIR)/prlimit64--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/prlimit64.Po
++	-rm -f ./$(DEPDIR)/process_vm_readv--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/process_vm_readv.Po
++	-rm -f ./$(DEPDIR)/process_vm_writev--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/process_vm_writev.Po
+ 	-rm -f ./$(DEPDIR)/pselect6.Po
+ 	-rm -f ./$(DEPDIR)/ptrace.Po
+@@ -12061,10 +12627,12 @@
+ 	-rm -f ./$(DEPDIR)/rt_sigaction.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigpending.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigprocmask.Po
++	-rm -f ./$(DEPDIR)/rt_sigqueueinfo--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigqueueinfo.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigreturn.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigsuspend.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigtimedwait.Po
++	-rm -f ./$(DEPDIR)/rt_tgsigqueueinfo--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/rt_tgsigqueueinfo.Po
+ 	-rm -f ./$(DEPDIR)/run_expect_termsig.Po
+ 	-rm -f ./$(DEPDIR)/s390_guarded_storage-v.Po
+@@ -12075,9 +12643,13 @@
+ 	-rm -f ./$(DEPDIR)/s390_sthyi.Po
+ 	-rm -f ./$(DEPDIR)/sched_get_priority_mxx.Po
+ 	-rm -f ./$(DEPDIR)/sched_rr_get_interval.Po
++	-rm -f ./$(DEPDIR)/sched_xetaffinity--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/sched_xetaffinity.Po
++	-rm -f ./$(DEPDIR)/sched_xetattr--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/sched_xetattr.Po
++	-rm -f ./$(DEPDIR)/sched_xetparam--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/sched_xetparam.Po
++	-rm -f ./$(DEPDIR)/sched_xetscheduler--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/sched_xetscheduler.Po
+ 	-rm -f ./$(DEPDIR)/sched_yield.Po
+ 	-rm -f ./$(DEPDIR)/scm_rights.Po
+@@ -12131,6 +12703,7 @@
+ 	-rm -f ./$(DEPDIR)/sigaltstack.Po
+ 	-rm -f ./$(DEPDIR)/siginfo.Po
+ 	-rm -f ./$(DEPDIR)/signal.Po
++	-rm -f ./$(DEPDIR)/signal_receive--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/signal_receive.Po
+ 	-rm -f ./$(DEPDIR)/signalfd4.Po
+ 	-rm -f ./$(DEPDIR)/sigpending.Po
+@@ -12140,6 +12713,7 @@
+ 	-rm -f ./$(DEPDIR)/sleep.Po
+ 	-rm -f ./$(DEPDIR)/so_error.Po
+ 	-rm -f ./$(DEPDIR)/so_linger.Po
++	-rm -f ./$(DEPDIR)/so_peercred--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/so_peercred-Xabbrev.Po
+ 	-rm -f ./$(DEPDIR)/so_peercred-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/so_peercred-Xverbose.Po
+@@ -12199,6 +12773,7 @@
+ 	-rm -f ./$(DEPDIR)/syslog-success.Po
+ 	-rm -f ./$(DEPDIR)/syslog.Po
+ 	-rm -f ./$(DEPDIR)/tee.Po
++	-rm -f ./$(DEPDIR)/tgkill--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/tgkill.Po
+ 	-rm -f ./$(DEPDIR)/threads-execve--quiet-thread-execve.Po
+ 	-rm -f ./$(DEPDIR)/threads-execve-q.Po
+@@ -12211,6 +12786,7 @@
+ 	-rm -f ./$(DEPDIR)/timerfd_xettime.Po
+ 	-rm -f ./$(DEPDIR)/times-fail.Po
+ 	-rm -f ./$(DEPDIR)/times.Po
++	-rm -f ./$(DEPDIR)/tkill--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/tkill.Po
+ 	-rm -f ./$(DEPDIR)/tracer_ppid_pgid_sid.Po
+ 	-rm -f ./$(DEPDIR)/truncate.Po
+@@ -12252,10 +12828,13 @@
+ 	-rm -f ./$(DEPDIR)/waitpid.Po
+ 	-rm -f ./$(DEPDIR)/xattr-strings.Po
+ 	-rm -f ./$(DEPDIR)/xattr.Po
++	-rm -f ./$(DEPDIR)/xet_robust_list--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/xet_robust_list.Po
+ 	-rm -f ./$(DEPDIR)/xet_thread_area_x86.Po
+ 	-rm -f ./$(DEPDIR)/xetitimer.Po
++	-rm -f ./$(DEPDIR)/xetpgid--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/xetpgid.Po
++	-rm -f ./$(DEPDIR)/xetpriority--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/xetpriority.Po
+ 	-rm -f ./$(DEPDIR)/xettimeofday.Po
+ 	-rm -f ./$(DEPDIR)/zeroargc.Po
+@@ -12409,7 +12988,9 @@
+ 	-rm -f ./$(DEPDIR)/fchown.Po
+ 	-rm -f ./$(DEPDIR)/fchown32.Po
+ 	-rm -f ./$(DEPDIR)/fchownat.Po
++	-rm -f ./$(DEPDIR)/fcntl--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/fcntl.Po
++	-rm -f ./$(DEPDIR)/fcntl64--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/fcntl64.Po
+ 	-rm -f ./$(DEPDIR)/fdatasync.Po
+ 	-rm -f ./$(DEPDIR)/fflush.Po
+@@ -12420,6 +13001,7 @@
+ 	-rm -f ./$(DEPDIR)/filter_seccomp-perf.Po
+ 	-rm -f ./$(DEPDIR)/finit_module.Po
+ 	-rm -f ./$(DEPDIR)/flock.Po
++	-rm -f ./$(DEPDIR)/fork--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/fork-f.Po
+ 	-rm -f ./$(DEPDIR)/fsconfig-P.Po
+ 	-rm -f ./$(DEPDIR)/fsconfig.Po
+@@ -12461,7 +13043,9 @@
+ 	-rm -f ./$(DEPDIR)/getgroups.Po
+ 	-rm -f ./$(DEPDIR)/getgroups32.Po
+ 	-rm -f ./$(DEPDIR)/getpeername.Po
++	-rm -f ./$(DEPDIR)/getpgrp--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/getpgrp.Po
++	-rm -f ./$(DEPDIR)/getpid--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/getpid.Po
+ 	-rm -f ./$(DEPDIR)/getppid.Po
+ 	-rm -f ./$(DEPDIR)/getrandom.Po
+@@ -12471,8 +13055,10 @@
+ 	-rm -f ./$(DEPDIR)/getresuid32.Po
+ 	-rm -f ./$(DEPDIR)/getrlimit.Po
+ 	-rm -f ./$(DEPDIR)/getrusage.Po
++	-rm -f ./$(DEPDIR)/getsid--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/getsid.Po
+ 	-rm -f ./$(DEPDIR)/getsockname.Po
++	-rm -f ./$(DEPDIR)/gettid--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/gettid.Po
+ 	-rm -f ./$(DEPDIR)/getuid.Po
+ 	-rm -f ./$(DEPDIR)/getuid32.Po
+@@ -12493,6 +13079,7 @@
+ 	-rm -f ./$(DEPDIR)/io_uring_register.Po
+ 	-rm -f ./$(DEPDIR)/io_uring_setup.Po
+ 	-rm -f ./$(DEPDIR)/ioctl.Po
++	-rm -f ./$(DEPDIR)/ioctl_block--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/ioctl_block.Po
+ 	-rm -f ./$(DEPDIR)/ioctl_dm-v.Po
+ 	-rm -f ./$(DEPDIR)/ioctl_dm.Po
+@@ -12568,6 +13155,7 @@
+ 	-rm -f ./$(DEPDIR)/ioctl_watchdog.Po
+ 	-rm -f ./$(DEPDIR)/ioperm.Po
+ 	-rm -f ./$(DEPDIR)/iopl.Po
++	-rm -f ./$(DEPDIR)/ioprio--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/ioprio-Xabbrev.Po
+ 	-rm -f ./$(DEPDIR)/ioprio-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/ioprio-Xverbose.Po
+@@ -12591,6 +13179,7 @@
+ 	-rm -f ./$(DEPDIR)/ipc_shm-Xverbose.Po
+ 	-rm -f ./$(DEPDIR)/ipc_shm.Po
+ 	-rm -f ./$(DEPDIR)/is_linux_mips_n64.Po
++	-rm -f ./$(DEPDIR)/kcmp-y--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/kcmp-y.Po
+ 	-rm -f ./$(DEPDIR)/kcmp.Po
+ 	-rm -f ./$(DEPDIR)/kern_features.Po
+@@ -12604,6 +13193,7 @@
+ 	-rm -f ./$(DEPDIR)/keyctl-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/keyctl-Xverbose.Po
+ 	-rm -f ./$(DEPDIR)/keyctl.Po
++	-rm -f ./$(DEPDIR)/kill--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/kill.Po
+ 	-rm -f ./$(DEPDIR)/kill_child.Po
+ 	-rm -f ./$(DEPDIR)/ksysent.Po
+@@ -12641,6 +13231,7 @@
+ 	-rm -f ./$(DEPDIR)/libtests_a-test_printstrn.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-test_ucopy.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-tprintf.Po
++	-rm -f ./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po
+ 	-rm -f ./$(DEPDIR)/link.Po
+ 	-rm -f ./$(DEPDIR)/linkat.Po
+ 	-rm -f ./$(DEPDIR)/list_sigaction_signum.Po
+@@ -12663,6 +13254,7 @@
+ 	-rm -f ./$(DEPDIR)/memfd_create-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/memfd_create-Xverbose.Po
+ 	-rm -f ./$(DEPDIR)/memfd_create.Po
++	-rm -f ./$(DEPDIR)/migrate_pages--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/migrate_pages.Po
+ 	-rm -f ./$(DEPDIR)/mincore.Po
+ 	-rm -f ./$(DEPDIR)/mkdir.Po
+@@ -12691,6 +13283,7 @@
+ 	-rm -f ./$(DEPDIR)/mount.Po
+ 	-rm -f ./$(DEPDIR)/move_mount-P.Po
+ 	-rm -f ./$(DEPDIR)/move_mount.Po
++	-rm -f ./$(DEPDIR)/move_pages--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/move_pages-Xabbrev.Po
+ 	-rm -f ./$(DEPDIR)/move_pages-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/move_pages-Xverbose.Po
+@@ -12714,6 +13307,7 @@
+ 	-rm -f ./$(DEPDIR)/net-packet_mreq-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/net-packet_mreq-Xverbose.Po
+ 	-rm -f ./$(DEPDIR)/net-packet_mreq.Po
++	-rm -f ./$(DEPDIR)/net-sockaddr--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/net-sockaddr.Po
+ 	-rm -f ./$(DEPDIR)/net-tpacket_req.Po
+ 	-rm -f ./$(DEPDIR)/net-tpacket_stats-success.Po
+@@ -12723,6 +13317,7 @@
+ 	-rm -f ./$(DEPDIR)/net-yy-inet6.Po
+ 	-rm -f ./$(DEPDIR)/net-yy-netlink.Po
+ 	-rm -f ./$(DEPDIR)/net-yy-unix.Po
++	-rm -f ./$(DEPDIR)/netlink_audit--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/netlink_audit.Po
+ 	-rm -f ./$(DEPDIR)/netlink_crypto.Po
+ 	-rm -f ./$(DEPDIR)/netlink_generic.Po
+@@ -12827,11 +13422,14 @@
+ 	-rm -f ./$(DEPDIR)/pidfd_open--decode-fd-path.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open--decode-fd-pidfd.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open--decode-fd-socket.Po
++	-rm -f ./$(DEPDIR)/pidfd_open--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open-P.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open-y.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open-yy.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open.Po
++	-rm -f ./$(DEPDIR)/pidfd_send_signal--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_send_signal.Po
++	-rm -f ./$(DEPDIR)/pidns-cache.Po
+ 	-rm -f ./$(DEPDIR)/pipe.Po
+ 	-rm -f ./$(DEPDIR)/pipe2.Po
+ 	-rm -f ./$(DEPDIR)/pkey_alloc.Po
+@@ -12869,8 +13467,11 @@
+ 	-rm -f ./$(DEPDIR)/printstrn-umoven-peekdata.Po
+ 	-rm -f ./$(DEPDIR)/printstrn-umoven-undumpable.Po
+ 	-rm -f ./$(DEPDIR)/printstrn-umoven.Po
++	-rm -f ./$(DEPDIR)/prlimit64--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/prlimit64.Po
++	-rm -f ./$(DEPDIR)/process_vm_readv--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/process_vm_readv.Po
++	-rm -f ./$(DEPDIR)/process_vm_writev--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/process_vm_writev.Po
+ 	-rm -f ./$(DEPDIR)/pselect6.Po
+ 	-rm -f ./$(DEPDIR)/ptrace.Po
+@@ -12919,10 +13520,12 @@
+ 	-rm -f ./$(DEPDIR)/rt_sigaction.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigpending.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigprocmask.Po
++	-rm -f ./$(DEPDIR)/rt_sigqueueinfo--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigqueueinfo.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigreturn.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigsuspend.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigtimedwait.Po
++	-rm -f ./$(DEPDIR)/rt_tgsigqueueinfo--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/rt_tgsigqueueinfo.Po
+ 	-rm -f ./$(DEPDIR)/run_expect_termsig.Po
+ 	-rm -f ./$(DEPDIR)/s390_guarded_storage-v.Po
+@@ -12933,9 +13536,13 @@
+ 	-rm -f ./$(DEPDIR)/s390_sthyi.Po
+ 	-rm -f ./$(DEPDIR)/sched_get_priority_mxx.Po
+ 	-rm -f ./$(DEPDIR)/sched_rr_get_interval.Po
++	-rm -f ./$(DEPDIR)/sched_xetaffinity--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/sched_xetaffinity.Po
++	-rm -f ./$(DEPDIR)/sched_xetattr--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/sched_xetattr.Po
++	-rm -f ./$(DEPDIR)/sched_xetparam--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/sched_xetparam.Po
++	-rm -f ./$(DEPDIR)/sched_xetscheduler--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/sched_xetscheduler.Po
+ 	-rm -f ./$(DEPDIR)/sched_yield.Po
+ 	-rm -f ./$(DEPDIR)/scm_rights.Po
+@@ -12989,6 +13596,7 @@
+ 	-rm -f ./$(DEPDIR)/sigaltstack.Po
+ 	-rm -f ./$(DEPDIR)/siginfo.Po
+ 	-rm -f ./$(DEPDIR)/signal.Po
++	-rm -f ./$(DEPDIR)/signal_receive--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/signal_receive.Po
+ 	-rm -f ./$(DEPDIR)/signalfd4.Po
+ 	-rm -f ./$(DEPDIR)/sigpending.Po
+@@ -12998,6 +13606,7 @@
+ 	-rm -f ./$(DEPDIR)/sleep.Po
+ 	-rm -f ./$(DEPDIR)/so_error.Po
+ 	-rm -f ./$(DEPDIR)/so_linger.Po
++	-rm -f ./$(DEPDIR)/so_peercred--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/so_peercred-Xabbrev.Po
+ 	-rm -f ./$(DEPDIR)/so_peercred-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/so_peercred-Xverbose.Po
+@@ -13057,6 +13666,7 @@
+ 	-rm -f ./$(DEPDIR)/syslog-success.Po
+ 	-rm -f ./$(DEPDIR)/syslog.Po
+ 	-rm -f ./$(DEPDIR)/tee.Po
++	-rm -f ./$(DEPDIR)/tgkill--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/tgkill.Po
+ 	-rm -f ./$(DEPDIR)/threads-execve--quiet-thread-execve.Po
+ 	-rm -f ./$(DEPDIR)/threads-execve-q.Po
+@@ -13069,6 +13679,7 @@
+ 	-rm -f ./$(DEPDIR)/timerfd_xettime.Po
+ 	-rm -f ./$(DEPDIR)/times-fail.Po
+ 	-rm -f ./$(DEPDIR)/times.Po
++	-rm -f ./$(DEPDIR)/tkill--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/tkill.Po
+ 	-rm -f ./$(DEPDIR)/tracer_ppid_pgid_sid.Po
+ 	-rm -f ./$(DEPDIR)/truncate.Po
+@@ -13110,14 +13721,26 @@
+ 	-rm -f ./$(DEPDIR)/waitpid.Po
+ 	-rm -f ./$(DEPDIR)/xattr-strings.Po
+ 	-rm -f ./$(DEPDIR)/xattr.Po
++	-rm -f ./$(DEPDIR)/xet_robust_list--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/xet_robust_list.Po
+ 	-rm -f ./$(DEPDIR)/xet_thread_area_x86.Po
+ 	-rm -f ./$(DEPDIR)/xetitimer.Po
++	-rm -f ./$(DEPDIR)/xetpgid--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/xetpgid.Po
++	-rm -f ./$(DEPDIR)/xetpriority--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/xetpriority.Po
+ 	-rm -f ./$(DEPDIR)/xettimeofday.Po
+ 	-rm -f ./$(DEPDIR)/zeroargc.Po
+ 	-rm -f Makefile
++distclean-am: clean-am distclean-compile distclean-generic \
++	distclean-tags
++
++dvi: dvi-am
++
++dvi-am:
++
++html: html-am
++	-rm -f Makefile
+ maintainer-clean-am: distclean-am maintainer-clean-generic
+ 
+ mostlyclean: mostlyclean-am
+@@ -13407,9 +14030,15 @@
+ $(srcdir)/fcntl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/fcntl--pidns-translation.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)/fcntl64--pidns-translation.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) $^ $@
+ 
+@@ -13569,9 +14198,15 @@
+ $(srcdir)/getpgrp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/getpgrp--pidns-translation.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)/getpid--pidns-translation.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) $^ $@
+ 
+@@ -13599,6 +14234,9 @@
+ $(srcdir)/getsid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/getsid--pidns-translation.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) $^ $@
+ 
+@@ -13878,6 +14516,9 @@
+ $(srcdir)/ioprio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/ioprio--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/ioprio-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13944,6 +14585,9 @@
+ $(srcdir)/kcmp-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/kcmp-y--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/kern_features.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13980,6 +14624,9 @@
+ $(srcdir)/kill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/kill--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/ksysent.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -14043,6 +14690,9 @@
+ $(srcdir)/migrate_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/migrate_pages--pidns-translation.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) $^ $@
+ 
+@@ -14133,6 +14783,9 @@
+ $(srcdir)/move_pages-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/move_pages--pidns-translation.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) $^ $@
+ 
+@@ -14190,6 +14843,9 @@
+ $(srcdir)/net-sockaddr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/net-sockaddr--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/net-tpacket_req.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -14499,9 +15155,15 @@
+ $(srcdir)/pidfd_open-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/pidfd_open--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/pidfd_send_signal.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/pidfd_send_signal--pidns-translation.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) $^ $@
+ 
+@@ -14568,12 +15230,21 @@
+ $(srcdir)/prlimit64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/prlimit64--pidns-translation.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_readv--pidns-translation.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)/process_vm_writev--pidns-translation.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) $^ $@
+ 
+@@ -14682,6 +15353,9 @@
+ $(srcdir)/rt_sigqueueinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/rt_sigqueueinfo--pidns-translation.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) $^ $@
+ 
+@@ -14694,6 +15368,9 @@
+ $(srcdir)/rt_tgsigqueueinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/rt_tgsigqueueinfo--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/s390_guarded_storage.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -14724,15 +15401,27 @@
+ $(srcdir)/sched_xetaffinity.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/sched_xetaffinity--pidns-translation.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_xetattr--pidns-translation.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_xetparam--pidns-translation.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_xetscheduler--pidns-translation.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) $^ $@
+ 
+@@ -14871,6 +15560,9 @@
+ $(srcdir)/signal_receive.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/signal_receive--pidns-translation.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) $^ $@
+ 
+@@ -14904,6 +15596,9 @@
+ $(srcdir)/so_peercred-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/so_peercred--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/sock_filter-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -15120,6 +15815,9 @@
+ $(srcdir)/tgkill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/tgkill--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/threads-execve--quiet-thread-execve.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -15153,6 +15851,9 @@
+ $(srcdir)/tkill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/tkill--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/trace_clock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -15201,6 +15902,9 @@
+ $(srcdir)/trace_statfs_like.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/trie_test.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) $^ $@
+ 
+@@ -15291,15 +15995,24 @@
+ $(srcdir)/xet_robust_list.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/xet_robust_list--pidns-translation.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)/xetpgid--pidns-translation.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)/xetpriority--pidns-translation.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) $^ $@
+ 
+Index: strace-5.7/tests-mx32/Makefile.in
+===================================================================
+--- strace-5.7.orig/tests-mx32/Makefile.in	2020-09-09 19:52:30.790668799 +0200
++++ strace-5.7/tests-mx32/Makefile.in	2020-09-09 20:23:25.738934694 +0200
+@@ -121,10 +121,17 @@
+ 	clone3-success-Xabbrev$(EXEEXT) clone3-success-Xraw$(EXEEXT) \
+ 	clone3-success-Xverbose$(EXEEXT) count-f$(EXEEXT) \
+ 	delay$(EXEEXT) execve-v$(EXEEXT) execveat-v$(EXEEXT) \
++	fcntl--pidns-translation$(EXEEXT) \
++	fcntl64--pidns-translation$(EXEEXT) \
+ 	filter_seccomp-flag$(EXEEXT) filter_seccomp-perf$(EXEEXT) \
+-	filter-unavailable$(EXEEXT) fork-f$(EXEEXT) fsync-y$(EXEEXT) \
+-	get_process_reaper$(EXEEXT) getpid$(EXEEXT) getppid$(EXEEXT) \
+-	gettid$(EXEEXT) inject-nf$(EXEEXT) int_0x80$(EXEEXT) \
++	filter-unavailable$(EXEEXT) fork-f$(EXEEXT) \
++	fork--pidns-translation$(EXEEXT) fsync-y$(EXEEXT) \
++	get_process_reaper$(EXEEXT) \
++	getpgrp--pidns-translation$(EXEEXT) getpid$(EXEEXT) \
++	getpid--pidns-translation$(EXEEXT) getppid$(EXEEXT) \
++	getsid--pidns-translation$(EXEEXT) gettid$(EXEEXT) \
++	gettid--pidns-translation$(EXEEXT) inject-nf$(EXEEXT) \
++	int_0x80$(EXEEXT) ioctl_block--pidns-translation$(EXEEXT) \
+ 	ioctl_dm-v$(EXEEXT) ioctl_evdev-success$(EXEEXT) \
+ 	ioctl_evdev-success-Xabbrev$(EXEEXT) \
+ 	ioctl_evdev-success-Xraw$(EXEEXT) \
+@@ -151,43 +158,68 @@
+ 	ioctl_v4l2-success-v-Xabbrev$(EXEEXT) \
+ 	ioctl_v4l2-success-v-Xraw$(EXEEXT) \
+ 	ioctl_v4l2-success-v-Xverbose$(EXEEXT) \
+-	is_linux_mips_n64$(EXEEXT) kill_child$(EXEEXT) \
+-	ksysent$(EXEEXT) list_sigaction_signum$(EXEEXT) \
+-	localtime$(EXEEXT) looping_threads$(EXEEXT) \
+-	mmsg-silent$(EXEEXT) mmsg_name-v$(EXEEXT) \
++	ioprio--pidns-translation$(EXEEXT) is_linux_mips_n64$(EXEEXT) \
++	kcmp-y--pidns-translation$(EXEEXT) kill_child$(EXEEXT) \
++	kill--pidns-translation$(EXEEXT) ksysent$(EXEEXT) \
++	list_sigaction_signum$(EXEEXT) localtime$(EXEEXT) \
++	looping_threads$(EXEEXT) \
++	migrate_pages--pidns-translation$(EXEEXT) mmsg-silent$(EXEEXT) \
++	mmsg_name-v$(EXEEXT) move_pages--pidns-translation$(EXEEXT) \
+ 	msg_control-v$(EXEEXT) net-accept-connect$(EXEEXT) \
++	net-sockaddr--pidns-translation$(EXEEXT) \
+ 	net-tpacket_stats-success$(EXEEXT) nlattr_ifla_xdp-y$(EXEEXT) \
++	netlink_audit--pidns-translation$(EXEEXT) \
+ 	netlink_inet_diag$(EXEEXT) netlink_netlink_diag$(EXEEXT) \
+ 	netlink_unix_diag$(EXEEXT) nsyscalls$(EXEEXT) \
+ 	nsyscalls-d$(EXEEXT) oldselect-P$(EXEEXT) \
+ 	oldselect-efault-P$(EXEEXT) orphaned_process_group$(EXEEXT) \
+ 	pc$(EXEEXT) perf_event_open_nonverbose$(EXEEXT) \
+-	perf_event_open_unabbrev$(EXEEXT) poll-P$(EXEEXT) \
+-	ppoll-P$(EXEEXT) ppoll-v$(EXEEXT) \
++	perf_event_open_unabbrev$(EXEEXT) \
++	pidfd_open--pidns-translation$(EXEEXT) \
++	pidfd_send_signal--pidns-translation$(EXEEXT) \
++	pidns-cache$(EXEEXT) poll-P$(EXEEXT) ppoll-P$(EXEEXT) \
++	ppoll-v$(EXEEXT) prlimit64--pidns-translation$(EXEEXT) \
+ 	prctl-seccomp-filter-v$(EXEEXT) prctl-seccomp-strict$(EXEEXT) \
+ 	prctl-spec-inject$(EXEEXT) print_maxfd$(EXEEXT) \
+-	print_ppid_tracerpid$(EXEEXT) qual_fault$(EXEEXT) \
+-	qual_inject-error-signal$(EXEEXT) qual_inject-retval$(EXEEXT) \
+-	qual_inject-signal$(EXEEXT) qual_signal$(EXEEXT) \
+-	quotactl-success$(EXEEXT) quotactl-success-v$(EXEEXT) \
+-	quotactl-v$(EXEEXT) quotactl-xfs-success$(EXEEXT) \
+-	quotactl-xfs-success-v$(EXEEXT) quotactl-xfs-v$(EXEEXT) \
+-	redirect-fds$(EXEEXT) restart_syscall$(EXEEXT) \
+-	run_expect_termsig$(EXEEXT) scm_rights$(EXEEXT) \
+-	seccomp-filter-v$(EXEEXT) seccomp-strict$(EXEEXT) \
+-	select-P$(EXEEXT) set_ptracer_any$(EXEEXT) \
+-	set_sigblock$(EXEEXT) set_sigign$(EXEEXT) \
+-	setpgrp-exec$(EXEEXT) signal_receive$(EXEEXT) sleep$(EXEEXT) \
++	print_ppid_tracerpid$(EXEEXT) \
++	process_vm_readv--pidns-translation$(EXEEXT) \
++	process_vm_writev--pidns-translation$(EXEEXT) \
++	qual_fault$(EXEEXT) qual_inject-error-signal$(EXEEXT) \
++	qual_inject-retval$(EXEEXT) qual_inject-signal$(EXEEXT) \
++	qual_signal$(EXEEXT) quotactl-success$(EXEEXT) \
++	quotactl-success-v$(EXEEXT) quotactl-v$(EXEEXT) \
++	quotactl-xfs-success$(EXEEXT) quotactl-xfs-success-v$(EXEEXT) \
++	quotactl-xfs-v$(EXEEXT) redirect-fds$(EXEEXT) \
++	restart_syscall$(EXEEXT) \
++	rt_sigqueueinfo--pidns-translation$(EXEEXT) \
++	rt_tgsigqueueinfo--pidns-translation$(EXEEXT) \
++	run_expect_termsig$(EXEEXT) \
++	sched_xetaffinity--pidns-translation$(EXEEXT) \
++	sched_xetattr--pidns-translation$(EXEEXT) \
++	sched_xetparam--pidns-translation$(EXEEXT) \
++	sched_xetscheduler--pidns-translation$(EXEEXT) \
++	scm_rights$(EXEEXT) seccomp-filter-v$(EXEEXT) \
++	seccomp-strict$(EXEEXT) select-P$(EXEEXT) \
++	set_ptracer_any$(EXEEXT) set_sigblock$(EXEEXT) \
++	set_sigign$(EXEEXT) setpgrp-exec$(EXEEXT) \
++	signal_receive$(EXEEXT) \
++	signal_receive--pidns-translation$(EXEEXT) sleep$(EXEEXT) \
+ 	stack-fcall$(EXEEXT) stack-fcall-attach$(EXEEXT) \
+ 	stack-fcall-mangled$(EXEEXT) status-none-threads$(EXEEXT) \
+-	status-unfinished-threads$(EXEEXT) syslog-success$(EXEEXT) \
++	status-unfinished-threads$(EXEEXT) \
++	so_peercred--pidns-translation$(EXEEXT) \
++	syslog-success$(EXEEXT) tgkill--pidns-translation$(EXEEXT) \
+ 	threads-execve$(EXEEXT) \
+ 	threads-execve--quiet-thread-execve$(EXEEXT) \
+ 	threads-execve-q$(EXEEXT) threads-execve-qq$(EXEEXT) \
+-	threads-execve-qqq$(EXEEXT) tracer_ppid_pgid_sid$(EXEEXT) \
++	threads-execve-qqq$(EXEEXT) tkill--pidns-translation$(EXEEXT) \
++	tracer_ppid_pgid_sid$(EXEEXT) trie_test$(EXEEXT) \
+ 	unblock_reset_raise$(EXEEXT) unix-pair-send-recv$(EXEEXT) \
+ 	unix-pair-sendto-recvfrom$(EXEEXT) vfork-f$(EXEEXT) \
+-	wait4-v$(EXEEXT) waitid-v$(EXEEXT) zeroargc$(EXEEXT)
++	wait4-v$(EXEEXT) waitid-v$(EXEEXT) \
++	xetpgid--pidns-translation$(EXEEXT) \
++	xetpriority--pidns-translation$(EXEEXT) \
++	xet_robust_list--pidns-translation$(EXEEXT) zeroargc$(EXEEXT)
+ @ENABLE_STACKTRACE_TRUE@@USE_DEMANGLE_TRUE@am__append_1 = strace-k-demangle.test
+ TESTS = $(GEN_TESTS) $(DECODER_TESTS) $(MISC_TESTS) $(am__EXEEXT_2)
+ subdir = tests-mx32
+@@ -545,7 +577,8 @@
+ 	libtests_a-tail_alloc.$(OBJEXT) \
+ 	libtests_a-test_printpath.$(OBJEXT) \
+ 	libtests_a-test_printstrn.$(OBJEXT) \
+-	libtests_a-test_ucopy.$(OBJEXT) libtests_a-tprintf.$(OBJEXT)
++	libtests_a-test_ucopy.$(OBJEXT) libtests_a-tprintf.$(OBJEXT) \
++	libtests_a-xmalloc_for_tests.$(OBJEXT)
+ libtests_a_OBJECTS = $(am_libtests_a_OBJECTS)
+ _newselect_SOURCES = _newselect.c
+ _newselect_OBJECTS = _newselect.$(OBJEXT)
+@@ -973,10 +1006,19 @@
+ fcntl_OBJECTS = fcntl.$(OBJEXT)
+ fcntl_LDADD = $(LDADD)
+ fcntl_DEPENDENCIES = libtests.a
++fcntl__pidns_translation_SOURCES = fcntl--pidns-translation.c
++fcntl__pidns_translation_OBJECTS = fcntl--pidns-translation.$(OBJEXT)
++fcntl__pidns_translation_LDADD = $(LDADD)
++fcntl__pidns_translation_DEPENDENCIES = libtests.a
+ fcntl64_SOURCES = fcntl64.c
+ fcntl64_OBJECTS = fcntl64.$(OBJEXT)
+ fcntl64_LDADD = $(LDADD)
+ fcntl64_DEPENDENCIES = libtests.a
++fcntl64__pidns_translation_SOURCES = fcntl64--pidns-translation.c
++fcntl64__pidns_translation_OBJECTS =  \
++	fcntl64--pidns-translation.$(OBJEXT)
++fcntl64__pidns_translation_LDADD = $(LDADD)
++fcntl64__pidns_translation_DEPENDENCIES = libtests.a
+ fdatasync_SOURCES = fdatasync.c
+ fdatasync_OBJECTS = fdatasync.$(OBJEXT)
+ fdatasync_LDADD = $(LDADD)
+@@ -1012,6 +1054,10 @@
+ flock_OBJECTS = flock.$(OBJEXT)
+ flock_LDADD = $(LDADD)
+ flock_DEPENDENCIES = libtests.a
++fork__pidns_translation_SOURCES = fork--pidns-translation.c
++fork__pidns_translation_OBJECTS = fork--pidns-translation.$(OBJEXT)
++fork__pidns_translation_LDADD = $(LDADD)
++fork__pidns_translation_DEPENDENCIES = libtests.a
+ fork_f_SOURCES = fork-f.c
+ fork_f_OBJECTS = fork-f.$(OBJEXT)
+ fork_f_LDADD = $(LDADD)
+@@ -1180,10 +1226,20 @@
+ getpgrp_OBJECTS = getpgrp.$(OBJEXT)
+ getpgrp_LDADD = $(LDADD)
+ getpgrp_DEPENDENCIES = libtests.a
++getpgrp__pidns_translation_SOURCES = getpgrp--pidns-translation.c
++getpgrp__pidns_translation_OBJECTS =  \
++	getpgrp--pidns-translation.$(OBJEXT)
++getpgrp__pidns_translation_LDADD = $(LDADD)
++getpgrp__pidns_translation_DEPENDENCIES = libtests.a
+ getpid_SOURCES = getpid.c
+ getpid_OBJECTS = getpid.$(OBJEXT)
+ getpid_LDADD = $(LDADD)
+ getpid_DEPENDENCIES = libtests.a
++getpid__pidns_translation_SOURCES = getpid--pidns-translation.c
++getpid__pidns_translation_OBJECTS =  \
++	getpid--pidns-translation.$(OBJEXT)
++getpid__pidns_translation_LDADD = $(LDADD)
++getpid__pidns_translation_DEPENDENCIES = libtests.a
+ getppid_SOURCES = getppid.c
+ getppid_OBJECTS = getppid.$(OBJEXT)
+ getppid_LDADD = $(LDADD)
+@@ -1220,6 +1276,11 @@
+ getsid_OBJECTS = getsid.$(OBJEXT)
+ getsid_LDADD = $(LDADD)
+ getsid_DEPENDENCIES = libtests.a
++getsid__pidns_translation_SOURCES = getsid--pidns-translation.c
++getsid__pidns_translation_OBJECTS =  \
++	getsid--pidns-translation.$(OBJEXT)
++getsid__pidns_translation_LDADD = $(LDADD)
++getsid__pidns_translation_DEPENDENCIES = libtests.a
+ getsockname_SOURCES = getsockname.c
+ getsockname_OBJECTS = getsockname.$(OBJEXT)
+ getsockname_LDADD = $(LDADD)
+@@ -1228,6 +1289,11 @@
+ gettid_OBJECTS = gettid.$(OBJEXT)
+ gettid_LDADD = $(LDADD)
+ gettid_DEPENDENCIES = libtests.a
++gettid__pidns_translation_SOURCES = gettid--pidns-translation.c
++gettid__pidns_translation_OBJECTS =  \
++	gettid--pidns-translation.$(OBJEXT)
++gettid__pidns_translation_LDADD = $(LDADD)
++gettid__pidns_translation_DEPENDENCIES = libtests.a
+ getuid_SOURCES = getuid.c
+ getuid_OBJECTS = getuid.$(OBJEXT)
+ getuid_LDADD = $(LDADD)
+@@ -1308,6 +1374,12 @@
+ ioctl_block_OBJECTS = ioctl_block.$(OBJEXT)
+ ioctl_block_LDADD = $(LDADD)
+ ioctl_block_DEPENDENCIES = libtests.a
++ioctl_block__pidns_translation_SOURCES =  \
++	ioctl_block--pidns-translation.c
++ioctl_block__pidns_translation_OBJECTS =  \
++	ioctl_block--pidns-translation.$(OBJEXT)
++ioctl_block__pidns_translation_LDADD = $(LDADD)
++ioctl_block__pidns_translation_DEPENDENCIES = libtests.a
+ ioctl_dm_SOURCES = ioctl_dm.c
+ ioctl_dm_OBJECTS = ioctl_dm.$(OBJEXT)
+ ioctl_dm_LDADD = $(LDADD)
+@@ -1628,6 +1700,11 @@
+ ioprio_OBJECTS = ioprio.$(OBJEXT)
+ ioprio_LDADD = $(LDADD)
+ ioprio_DEPENDENCIES = libtests.a
++ioprio__pidns_translation_SOURCES = ioprio--pidns-translation.c
++ioprio__pidns_translation_OBJECTS =  \
++	ioprio--pidns-translation.$(OBJEXT)
++ioprio__pidns_translation_LDADD = $(LDADD)
++ioprio__pidns_translation_DEPENDENCIES = libtests.a
+ ioprio_Xabbrev_SOURCES = ioprio-Xabbrev.c
+ ioprio_Xabbrev_OBJECTS = ioprio-Xabbrev.$(OBJEXT)
+ ioprio_Xabbrev_LDADD = $(LDADD)
+@@ -1724,6 +1801,11 @@
+ kcmp_y_OBJECTS = kcmp-y.$(OBJEXT)
+ kcmp_y_LDADD = $(LDADD)
+ kcmp_y_DEPENDENCIES = libtests.a
++kcmp_y__pidns_translation_SOURCES = kcmp-y--pidns-translation.c
++kcmp_y__pidns_translation_OBJECTS =  \
++	kcmp-y--pidns-translation.$(OBJEXT)
++kcmp_y__pidns_translation_LDADD = $(LDADD)
++kcmp_y__pidns_translation_DEPENDENCIES = libtests.a
+ kern_features_SOURCES = kern_features.c
+ kern_features_OBJECTS = kern_features.$(OBJEXT)
+ kern_features_LDADD = $(LDADD)
+@@ -1772,6 +1854,10 @@
+ kill_OBJECTS = kill.$(OBJEXT)
+ kill_LDADD = $(LDADD)
+ kill_DEPENDENCIES = libtests.a
++kill__pidns_translation_SOURCES = kill--pidns-translation.c
++kill__pidns_translation_OBJECTS = kill--pidns-translation.$(OBJEXT)
++kill__pidns_translation_LDADD = $(LDADD)
++kill__pidns_translation_DEPENDENCIES = libtests.a
+ kill_child_SOURCES = kill_child.c
+ kill_child_OBJECTS = kill_child.$(OBJEXT)
+ kill_child_LDADD = $(LDADD)
+@@ -1878,6 +1964,12 @@
+ migrate_pages_OBJECTS = migrate_pages.$(OBJEXT)
+ migrate_pages_LDADD = $(LDADD)
+ migrate_pages_DEPENDENCIES = libtests.a
++migrate_pages__pidns_translation_SOURCES =  \
++	migrate_pages--pidns-translation.c
++migrate_pages__pidns_translation_OBJECTS =  \
++	migrate_pages--pidns-translation.$(OBJEXT)
++migrate_pages__pidns_translation_LDADD = $(LDADD)
++migrate_pages__pidns_translation_DEPENDENCIES = libtests.a
+ mincore_SOURCES = mincore.c
+ mincore_OBJECTS = mincore.$(OBJEXT)
+ mincore_LDADD = $(LDADD)
+@@ -1990,6 +2082,12 @@
+ move_pages_OBJECTS = move_pages.$(OBJEXT)
+ move_pages_LDADD = $(LDADD)
+ move_pages_DEPENDENCIES = libtests.a
++move_pages__pidns_translation_SOURCES =  \
++	move_pages--pidns-translation.c
++move_pages__pidns_translation_OBJECTS =  \
++	move_pages--pidns-translation.$(OBJEXT)
++move_pages__pidns_translation_LDADD = $(LDADD)
++move_pages__pidns_translation_DEPENDENCIES = libtests.a
+ move_pages_Xabbrev_SOURCES = move_pages-Xabbrev.c
+ move_pages_Xabbrev_OBJECTS = move_pages-Xabbrev.$(OBJEXT)
+ move_pages_Xabbrev_LDADD = $(LDADD)
+@@ -2086,6 +2184,12 @@
+ net_sockaddr_OBJECTS = net-sockaddr.$(OBJEXT)
+ net_sockaddr_LDADD = $(LDADD)
+ net_sockaddr_DEPENDENCIES = libtests.a
++net_sockaddr__pidns_translation_SOURCES =  \
++	net-sockaddr--pidns-translation.c
++net_sockaddr__pidns_translation_OBJECTS =  \
++	net-sockaddr--pidns-translation.$(OBJEXT)
++net_sockaddr__pidns_translation_LDADD = $(LDADD)
++net_sockaddr__pidns_translation_DEPENDENCIES = libtests.a
+ net_tpacket_req_SOURCES = net-tpacket_req.c
+ net_tpacket_req_OBJECTS = net-tpacket_req.$(OBJEXT)
+ net_tpacket_req_LDADD = $(LDADD)
+@@ -2123,6 +2227,12 @@
+ netlink_audit_OBJECTS = netlink_audit.$(OBJEXT)
+ netlink_audit_LDADD = $(LDADD)
+ netlink_audit_DEPENDENCIES = libtests.a
++netlink_audit__pidns_translation_SOURCES =  \
++	netlink_audit--pidns-translation.c
++netlink_audit__pidns_translation_OBJECTS =  \
++	netlink_audit--pidns-translation.$(OBJEXT)
++netlink_audit__pidns_translation_LDADD = $(LDADD)
++netlink_audit__pidns_translation_DEPENDENCIES = libtests.a
+ netlink_crypto_SOURCES = netlink_crypto.c
+ netlink_crypto_OBJECTS = netlink_crypto.$(OBJEXT)
+ netlink_crypto_LDADD = $(LDADD)
+@@ -2543,6 +2653,12 @@
+ 	pidfd_open--decode-fd-socket.$(OBJEXT)
+ pidfd_open__decode_fd_socket_LDADD = $(LDADD)
+ pidfd_open__decode_fd_socket_DEPENDENCIES = libtests.a
++pidfd_open__pidns_translation_SOURCES =  \
++	pidfd_open--pidns-translation.c
++pidfd_open__pidns_translation_OBJECTS =  \
++	pidfd_open--pidns-translation.$(OBJEXT)
++pidfd_open__pidns_translation_LDADD = $(LDADD)
++pidfd_open__pidns_translation_DEPENDENCIES = libtests.a
+ pidfd_open_P_SOURCES = pidfd_open-P.c
+ pidfd_open_P_OBJECTS = pidfd_open-P.$(OBJEXT)
+ pidfd_open_P_LDADD = $(LDADD)
+@@ -2559,6 +2675,16 @@
+ pidfd_send_signal_OBJECTS = pidfd_send_signal.$(OBJEXT)
+ pidfd_send_signal_LDADD = $(LDADD)
+ pidfd_send_signal_DEPENDENCIES = libtests.a
++pidfd_send_signal__pidns_translation_SOURCES =  \
++	pidfd_send_signal--pidns-translation.c
++pidfd_send_signal__pidns_translation_OBJECTS =  \
++	pidfd_send_signal--pidns-translation.$(OBJEXT)
++pidfd_send_signal__pidns_translation_LDADD = $(LDADD)
++pidfd_send_signal__pidns_translation_DEPENDENCIES = libtests.a
++pidns_cache_SOURCES = pidns-cache.c
++pidns_cache_OBJECTS = pidns-cache.$(OBJEXT)
++pidns_cache_LDADD = $(LDADD)
++pidns_cache_DEPENDENCIES = libtests.a
+ pipe_SOURCES = pipe.c
+ pipe_OBJECTS = pipe.$(OBJEXT)
+ pipe_LDADD = $(LDADD)
+@@ -2717,14 +2843,31 @@
+ prlimit64_OBJECTS = prlimit64.$(OBJEXT)
+ prlimit64_LDADD = $(LDADD)
+ prlimit64_DEPENDENCIES = libtests.a
++prlimit64__pidns_translation_SOURCES = prlimit64--pidns-translation.c
++prlimit64__pidns_translation_OBJECTS =  \
++	prlimit64--pidns-translation.$(OBJEXT)
++prlimit64__pidns_translation_LDADD = $(LDADD)
++prlimit64__pidns_translation_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_readv__pidns_translation_SOURCES =  \
++	process_vm_readv--pidns-translation.c
++process_vm_readv__pidns_translation_OBJECTS =  \
++	process_vm_readv--pidns-translation.$(OBJEXT)
++process_vm_readv__pidns_translation_LDADD = $(LDADD)
++process_vm_readv__pidns_translation_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
++process_vm_writev__pidns_translation_SOURCES =  \
++	process_vm_writev--pidns-translation.c
++process_vm_writev__pidns_translation_OBJECTS =  \
++	process_vm_writev--pidns-translation.$(OBJEXT)
++process_vm_writev__pidns_translation_LDADD = $(LDADD)
++process_vm_writev__pidns_translation_DEPENDENCIES = libtests.a
+ pselect6_SOURCES = pselect6.c
+ pselect6_OBJECTS = pselect6.$(OBJEXT)
+ pselect6_LDADD = $(LDADD)
+@@ -2918,6 +3061,12 @@
+ rt_sigqueueinfo_OBJECTS = rt_sigqueueinfo.$(OBJEXT)
+ rt_sigqueueinfo_LDADD = $(LDADD)
+ rt_sigqueueinfo_DEPENDENCIES = libtests.a
++rt_sigqueueinfo__pidns_translation_SOURCES =  \
++	rt_sigqueueinfo--pidns-translation.c
++rt_sigqueueinfo__pidns_translation_OBJECTS =  \
++	rt_sigqueueinfo--pidns-translation.$(OBJEXT)
++rt_sigqueueinfo__pidns_translation_LDADD = $(LDADD)
++rt_sigqueueinfo__pidns_translation_DEPENDENCIES = libtests.a
+ rt_sigreturn_SOURCES = rt_sigreturn.c
+ rt_sigreturn_OBJECTS = rt_sigreturn.$(OBJEXT)
+ rt_sigreturn_LDADD = $(LDADD)
+@@ -2934,6 +3083,12 @@
+ rt_tgsigqueueinfo_OBJECTS = rt_tgsigqueueinfo.$(OBJEXT)
+ rt_tgsigqueueinfo_LDADD = $(LDADD)
+ rt_tgsigqueueinfo_DEPENDENCIES = libtests.a
++rt_tgsigqueueinfo__pidns_translation_SOURCES =  \
++	rt_tgsigqueueinfo--pidns-translation.c
++rt_tgsigqueueinfo__pidns_translation_OBJECTS =  \
++	rt_tgsigqueueinfo--pidns-translation.$(OBJEXT)
++rt_tgsigqueueinfo__pidns_translation_LDADD = $(LDADD)
++rt_tgsigqueueinfo__pidns_translation_DEPENDENCIES = libtests.a
+ run_expect_termsig_SOURCES = run_expect_termsig.c
+ run_expect_termsig_OBJECTS = run_expect_termsig.$(OBJEXT)
+ run_expect_termsig_LDADD = $(LDADD)
+@@ -2974,18 +3129,42 @@
+ sched_xetaffinity_OBJECTS = sched_xetaffinity.$(OBJEXT)
+ sched_xetaffinity_LDADD = $(LDADD)
+ sched_xetaffinity_DEPENDENCIES = libtests.a
++sched_xetaffinity__pidns_translation_SOURCES =  \
++	sched_xetaffinity--pidns-translation.c
++sched_xetaffinity__pidns_translation_OBJECTS =  \
++	sched_xetaffinity--pidns-translation.$(OBJEXT)
++sched_xetaffinity__pidns_translation_LDADD = $(LDADD)
++sched_xetaffinity__pidns_translation_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_xetattr__pidns_translation_SOURCES =  \
++	sched_xetattr--pidns-translation.c
++sched_xetattr__pidns_translation_OBJECTS =  \
++	sched_xetattr--pidns-translation.$(OBJEXT)
++sched_xetattr__pidns_translation_LDADD = $(LDADD)
++sched_xetattr__pidns_translation_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_xetparam__pidns_translation_SOURCES =  \
++	sched_xetparam--pidns-translation.c
++sched_xetparam__pidns_translation_OBJECTS =  \
++	sched_xetparam--pidns-translation.$(OBJEXT)
++sched_xetparam__pidns_translation_LDADD = $(LDADD)
++sched_xetparam__pidns_translation_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_xetscheduler__pidns_translation_SOURCES =  \
++	sched_xetscheduler--pidns-translation.c
++sched_xetscheduler__pidns_translation_OBJECTS =  \
++	sched_xetscheduler--pidns-translation.$(OBJEXT)
++sched_xetscheduler__pidns_translation_LDADD = $(LDADD)
++sched_xetscheduler__pidns_translation_DEPENDENCIES = libtests.a
+ sched_yield_SOURCES = sched_yield.c
+ sched_yield_OBJECTS = sched_yield.$(OBJEXT)
+ sched_yield_LDADD = $(LDADD)
+@@ -3198,6 +3377,12 @@
+ signal_receive_OBJECTS = signal_receive.$(OBJEXT)
+ signal_receive_LDADD = $(LDADD)
+ signal_receive_DEPENDENCIES = libtests.a
++signal_receive__pidns_translation_SOURCES =  \
++	signal_receive--pidns-translation.c
++signal_receive__pidns_translation_OBJECTS =  \
++	signal_receive--pidns-translation.$(OBJEXT)
++signal_receive__pidns_translation_LDADD = $(LDADD)
++signal_receive__pidns_translation_DEPENDENCIES = libtests.a
+ signalfd4_SOURCES = signalfd4.c
+ signalfd4_OBJECTS = signalfd4.$(OBJEXT)
+ signalfd4_LDADD = $(LDADD)
+@@ -3234,6 +3419,12 @@
+ so_peercred_OBJECTS = so_peercred.$(OBJEXT)
+ so_peercred_LDADD = $(LDADD)
+ so_peercred_DEPENDENCIES = libtests.a
++so_peercred__pidns_translation_SOURCES =  \
++	so_peercred--pidns-translation.c
++so_peercred__pidns_translation_OBJECTS =  \
++	so_peercred--pidns-translation.$(OBJEXT)
++so_peercred__pidns_translation_LDADD = $(LDADD)
++so_peercred__pidns_translation_DEPENDENCIES = libtests.a
+ so_peercred_Xabbrev_SOURCES = so_peercred-Xabbrev.c
+ so_peercred_Xabbrev_OBJECTS = so_peercred-Xabbrev.$(OBJEXT)
+ so_peercred_Xabbrev_LDADD = $(LDADD)
+@@ -3448,6 +3639,11 @@
+ tgkill_OBJECTS = tgkill.$(OBJEXT)
+ tgkill_LDADD = $(LDADD)
+ tgkill_DEPENDENCIES = libtests.a
++tgkill__pidns_translation_SOURCES = tgkill--pidns-translation.c
++tgkill__pidns_translation_OBJECTS =  \
++	tgkill--pidns-translation.$(OBJEXT)
++tgkill__pidns_translation_LDADD = $(LDADD)
++tgkill__pidns_translation_DEPENDENCIES = libtests.a
+ threads_execve_SOURCES = threads-execve.c
+ threads_execve_OBJECTS = threads-execve.$(OBJEXT)
+ threads_execve_DEPENDENCIES = $(am__DEPENDENCIES_1) $(LDADD)
+@@ -3493,10 +3689,20 @@
+ tkill_OBJECTS = tkill.$(OBJEXT)
+ tkill_LDADD = $(LDADD)
+ tkill_DEPENDENCIES = libtests.a
++tkill__pidns_translation_SOURCES = tkill--pidns-translation.c
++tkill__pidns_translation_OBJECTS = tkill--pidns-translation.$(OBJEXT)
++tkill__pidns_translation_LDADD = $(LDADD)
++tkill__pidns_translation_DEPENDENCIES = libtests.a
+ tracer_ppid_pgid_sid_SOURCES = tracer_ppid_pgid_sid.c
+ tracer_ppid_pgid_sid_OBJECTS = tracer_ppid_pgid_sid.$(OBJEXT)
+ tracer_ppid_pgid_sid_LDADD = $(LDADD)
+ tracer_ppid_pgid_sid_DEPENDENCIES = libtests.a
++am_trie_test_OBJECTS = trie_test-trie_test.$(OBJEXT) \
++	trie_test-trie_for_tests.$(OBJEXT)
++trie_test_OBJECTS = $(am_trie_test_OBJECTS)
++trie_test_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_1)
++trie_test_LINK = $(CCLD) $(trie_test_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
++	$(LDFLAGS) -o $@
+ truncate_SOURCES = truncate.c
+ truncate_OBJECTS = truncate.$(OBJEXT)
+ truncate_LDADD = $(LDADD)
+@@ -3658,6 +3864,12 @@
+ xet_robust_list_OBJECTS = xet_robust_list.$(OBJEXT)
+ xet_robust_list_LDADD = $(LDADD)
+ xet_robust_list_DEPENDENCIES = libtests.a
++xet_robust_list__pidns_translation_SOURCES =  \
++	xet_robust_list--pidns-translation.c
++xet_robust_list__pidns_translation_OBJECTS =  \
++	xet_robust_list--pidns-translation.$(OBJEXT)
++xet_robust_list__pidns_translation_LDADD = $(LDADD)
++xet_robust_list__pidns_translation_DEPENDENCIES = libtests.a
+ xet_thread_area_x86_SOURCES = xet_thread_area_x86.c
+ xet_thread_area_x86_OBJECTS = xet_thread_area_x86.$(OBJEXT)
+ xet_thread_area_x86_LDADD = $(LDADD)
+@@ -3670,10 +3882,21 @@
+ xetpgid_OBJECTS = xetpgid.$(OBJEXT)
+ xetpgid_LDADD = $(LDADD)
+ xetpgid_DEPENDENCIES = libtests.a
++xetpgid__pidns_translation_SOURCES = xetpgid--pidns-translation.c
++xetpgid__pidns_translation_OBJECTS =  \
++	xetpgid--pidns-translation.$(OBJEXT)
++xetpgid__pidns_translation_LDADD = $(LDADD)
++xetpgid__pidns_translation_DEPENDENCIES = libtests.a
+ xetpriority_SOURCES = xetpriority.c
+ xetpriority_OBJECTS = xetpriority.$(OBJEXT)
+ xetpriority_LDADD = $(LDADD)
+ xetpriority_DEPENDENCIES = libtests.a
++xetpriority__pidns_translation_SOURCES =  \
++	xetpriority--pidns-translation.c
++xetpriority__pidns_translation_OBJECTS =  \
++	xetpriority--pidns-translation.$(OBJEXT)
++xetpriority__pidns_translation_LDADD = $(LDADD)
++xetpriority__pidns_translation_DEPENDENCIES = libtests.a
+ xettimeofday_SOURCES = xettimeofday.c
+ xettimeofday_OBJECTS = xettimeofday.$(OBJEXT)
+ xettimeofday_LDADD = $(LDADD)
+@@ -3759,13 +3982,15 @@
+ 	./$(DEPDIR)/fanotify_mark.Po ./$(DEPDIR)/fchdir.Po \
+ 	./$(DEPDIR)/fchmod.Po ./$(DEPDIR)/fchmodat.Po \
+ 	./$(DEPDIR)/fchown.Po ./$(DEPDIR)/fchown32.Po \
+-	./$(DEPDIR)/fchownat.Po ./$(DEPDIR)/fcntl.Po \
+-	./$(DEPDIR)/fcntl64.Po ./$(DEPDIR)/fdatasync.Po \
++	./$(DEPDIR)/fchownat.Po \
++	./$(DEPDIR)/fcntl--pidns-translation.Po ./$(DEPDIR)/fcntl.Po \
++	./$(DEPDIR)/fcntl64--pidns-translation.Po ./$(DEPDIR)/fcntl64.Po \
++	./$(DEPDIR)/fdatasync.Po \
+ 	./$(DEPDIR)/fflush.Po ./$(DEPDIR)/file_handle.Po \
+ 	./$(DEPDIR)/file_ioctl.Po ./$(DEPDIR)/filter-unavailable.Po \
+ 	./$(DEPDIR)/filter_seccomp-flag.Po \
+ 	./$(DEPDIR)/filter_seccomp-perf.Po ./$(DEPDIR)/finit_module.Po \
+-	./$(DEPDIR)/flock.Po ./$(DEPDIR)/fork-f.Po \
++	./$(DEPDIR)/flock.Po ./$(DEPDIR)/fork--pidns-translation.Po ./$(DEPDIR)/fork-f.Po \
+ 	./$(DEPDIR)/fsconfig-P.Po ./$(DEPDIR)/fsconfig.Po \
+ 	./$(DEPDIR)/fsmount.Po ./$(DEPDIR)/fsopen.Po \
+ 	./$(DEPDIR)/fspick-P.Po ./$(DEPDIR)/fspick.Po \
+@@ -3786,13 +4011,14 @@
+ 	./$(DEPDIR)/geteuid32.Po ./$(DEPDIR)/getgid.Po \
+ 	./$(DEPDIR)/getgid32.Po ./$(DEPDIR)/getgroups.Po \
+ 	./$(DEPDIR)/getgroups32.Po ./$(DEPDIR)/getpeername.Po \
+-	./$(DEPDIR)/getpgrp.Po ./$(DEPDIR)/getpid.Po \
++	./$(DEPDIR)/getpgrp--pidns-translation.Po ./$(DEPDIR)/getpgrp.Po \
++	./$(DEPDIR)/getpid--pidns-translation.Po ./$(DEPDIR)/getpid.Po \
+ 	./$(DEPDIR)/getppid.Po ./$(DEPDIR)/getrandom.Po \
+ 	./$(DEPDIR)/getresgid.Po ./$(DEPDIR)/getresgid32.Po \
+ 	./$(DEPDIR)/getresuid.Po ./$(DEPDIR)/getresuid32.Po \
+ 	./$(DEPDIR)/getrlimit.Po ./$(DEPDIR)/getrusage.Po \
+-	./$(DEPDIR)/getsid.Po ./$(DEPDIR)/getsockname.Po \
+-	./$(DEPDIR)/gettid.Po ./$(DEPDIR)/getuid.Po \
++	./$(DEPDIR)/getsid--pidns-translation.Po ./$(DEPDIR)/getsid.Po ./$(DEPDIR)/getsockname.Po \
++	./$(DEPDIR)/gettid--pidns-translation.Po ./$(DEPDIR)/gettid.Po ./$(DEPDIR)/getuid.Po \
+ 	./$(DEPDIR)/getuid32.Po ./$(DEPDIR)/getxgid.Po \
+ 	./$(DEPDIR)/getxpid.Po ./$(DEPDIR)/getxuid.Po \
+ 	./$(DEPDIR)/group_req.Po ./$(DEPDIR)/inet-cmsg.Po \
+@@ -3802,7 +4028,7 @@
+ 	./$(DEPDIR)/inotify_init1.Po ./$(DEPDIR)/int_0x80.Po \
+ 	./$(DEPDIR)/io_uring_enter.Po ./$(DEPDIR)/io_uring_register.Po \
+ 	./$(DEPDIR)/io_uring_setup.Po ./$(DEPDIR)/ioctl.Po \
+-	./$(DEPDIR)/ioctl_block.Po ./$(DEPDIR)/ioctl_dm-v.Po \
++	./$(DEPDIR)/ioctl_block--pidns-translation.Po ./$(DEPDIR)/ioctl_block.Po ./$(DEPDIR)/ioctl_dm-v.Po \
+ 	./$(DEPDIR)/ioctl_dm.Po ./$(DEPDIR)/ioctl_evdev-Xabbrev.Po \
+ 	./$(DEPDIR)/ioctl_evdev-Xraw.Po \
+ 	./$(DEPDIR)/ioctl_evdev-Xverbose.Po \
+@@ -3861,7 +4087,7 @@
+ 	./$(DEPDIR)/ioctl_v4l2-v-Xverbose.Po \
+ 	./$(DEPDIR)/ioctl_v4l2-v.Po ./$(DEPDIR)/ioctl_v4l2.Po \
+ 	./$(DEPDIR)/ioctl_watchdog.Po ./$(DEPDIR)/ioperm.Po \
+-	./$(DEPDIR)/iopl.Po ./$(DEPDIR)/ioprio-Xabbrev.Po \
++	./$(DEPDIR)/iopl.Po ./$(DEPDIR)/ioprio--pidns-translation.Po ./$(DEPDIR)/ioprio-Xabbrev.Po \
+ 	./$(DEPDIR)/ioprio-Xraw.Po ./$(DEPDIR)/ioprio-Xverbose.Po \
+ 	./$(DEPDIR)/ioprio.Po ./$(DEPDIR)/ip_mreq.Po \
+ 	./$(DEPDIR)/ipc.Po ./$(DEPDIR)/ipc_msg-Xabbrev.Po \
+@@ -3873,15 +4099,15 @@
+ 	./$(DEPDIR)/ipc_sem-Xverbose.Po ./$(DEPDIR)/ipc_sem.Po \
+ 	./$(DEPDIR)/ipc_shm-Xabbrev.Po ./$(DEPDIR)/ipc_shm-Xraw.Po \
+ 	./$(DEPDIR)/ipc_shm-Xverbose.Po ./$(DEPDIR)/ipc_shm.Po \
+-	./$(DEPDIR)/is_linux_mips_n64.Po ./$(DEPDIR)/kcmp-y.Po \
+-	./$(DEPDIR)/kcmp.Po ./$(DEPDIR)/kern_features.Po \
++	./$(DEPDIR)/is_linux_mips_n64.Po ./$(DEPDIR)/kcmp-y--pidns-translation.Po \
++	./$(DEPDIR)/kcmp-y.Po ./$(DEPDIR)/kcmp.Po ./$(DEPDIR)/kern_features.Po \
+ 	./$(DEPDIR)/kernel_version-Xabbrev.Po \
+ 	./$(DEPDIR)/kernel_version-Xraw.Po \
+ 	./$(DEPDIR)/kernel_version-Xverbose.Po \
+ 	./$(DEPDIR)/kernel_version.Po ./$(DEPDIR)/kexec_file_load.Po \
+ 	./$(DEPDIR)/kexec_load.Po ./$(DEPDIR)/keyctl-Xabbrev.Po \
+ 	./$(DEPDIR)/keyctl-Xraw.Po ./$(DEPDIR)/keyctl-Xverbose.Po \
+-	./$(DEPDIR)/keyctl.Po ./$(DEPDIR)/kill.Po \
++	./$(DEPDIR)/keyctl.Po ./$(DEPDIR)/kill--pidns-translation.Po ./$(DEPDIR)/kill.Po \
+ 	./$(DEPDIR)/kill_child.Po ./$(DEPDIR)/ksysent.Po \
+ 	./$(DEPDIR)/lchown.Po ./$(DEPDIR)/lchown32.Po \
+ 	./$(DEPDIR)/libtests_a-create_nl_socket.Po \
+@@ -3915,7 +4141,8 @@
+ 	./$(DEPDIR)/libtests_a-test_printpath.Po \
+ 	./$(DEPDIR)/libtests_a-test_printstrn.Po \
+ 	./$(DEPDIR)/libtests_a-test_ucopy.Po \
+-	./$(DEPDIR)/libtests_a-tprintf.Po ./$(DEPDIR)/link.Po \
++	./$(DEPDIR)/libtests_a-tprintf.Po \
++	./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po ./$(DEPDIR)/link.Po \
+ 	./$(DEPDIR)/linkat.Po ./$(DEPDIR)/list_sigaction_signum.Po \
+ 	./$(DEPDIR)/llseek.Po ./$(DEPDIR)/localtime.Po \
+ 	./$(DEPDIR)/lookup_dcookie.Po ./$(DEPDIR)/looping_threads.Po \
+@@ -3928,7 +4155,9 @@
+ 	./$(DEPDIR)/membarrier.Po ./$(DEPDIR)/memfd_create-Xabbrev.Po \
+ 	./$(DEPDIR)/memfd_create-Xraw.Po \
+ 	./$(DEPDIR)/memfd_create-Xverbose.Po \
+-	./$(DEPDIR)/memfd_create.Po ./$(DEPDIR)/migrate_pages.Po \
++	./$(DEPDIR)/memfd_create.Po \
++	./$(DEPDIR)/migrate_pages--pidns-translation.Po \
++	./$(DEPDIR)/migrate_pages.Po \
+ 	./$(DEPDIR)/mincore.Po ./$(DEPDIR)/mkdir.Po \
+ 	./$(DEPDIR)/mkdirat.Po ./$(DEPDIR)/mknod.Po \
+ 	./$(DEPDIR)/mknodat.Po ./$(DEPDIR)/mlock.Po \
+@@ -3944,7 +4173,7 @@
+ 	./$(DEPDIR)/modify_ldt.Po ./$(DEPDIR)/mount-Xabbrev.Po \
+ 	./$(DEPDIR)/mount-Xraw.Po ./$(DEPDIR)/mount-Xverbose.Po \
+ 	./$(DEPDIR)/mount.Po ./$(DEPDIR)/move_mount-P.Po \
+-	./$(DEPDIR)/move_mount.Po ./$(DEPDIR)/move_pages-Xabbrev.Po \
++	./$(DEPDIR)/move_mount.Po ./$(DEPDIR)/move_pages--pidns-translation.Po ./$(DEPDIR)/move_pages-Xabbrev.Po \
+ 	./$(DEPDIR)/move_pages-Xraw.Po \
+ 	./$(DEPDIR)/move_pages-Xverbose.Po ./$(DEPDIR)/move_pages.Po \
+ 	./$(DEPDIR)/mq.Po ./$(DEPDIR)/mq_sendrecv-read.Po \
+@@ -3961,12 +4190,13 @@
+ 	./$(DEPDIR)/net-packet_mreq-Xabbrev.Po \
+ 	./$(DEPDIR)/net-packet_mreq-Xraw.Po \
+ 	./$(DEPDIR)/net-packet_mreq-Xverbose.Po \
+-	./$(DEPDIR)/net-packet_mreq.Po ./$(DEPDIR)/net-sockaddr.Po \
++	./$(DEPDIR)/net-packet_mreq.Po ./$(DEPDIR)/net-sockaddr--pidns-translation.Po ./$(DEPDIR)/net-sockaddr.Po \
+ 	./$(DEPDIR)/net-tpacket_req.Po \
+ 	./$(DEPDIR)/net-tpacket_stats-success.Po \
+ 	./$(DEPDIR)/net-tpacket_stats.Po ./$(DEPDIR)/net-y-unix.Po \
+ 	./$(DEPDIR)/net-yy-inet.Po ./$(DEPDIR)/net-yy-inet6.Po \
+ 	./$(DEPDIR)/net-yy-netlink.Po ./$(DEPDIR)/net-yy-unix.Po \
++	./$(DEPDIR)/netlink_audit--pidns-translation.Po \
+ 	./$(DEPDIR)/netlink_audit.Po ./$(DEPDIR)/netlink_crypto.Po \
+ 	./$(DEPDIR)/netlink_generic.Po \
+ 	./$(DEPDIR)/netlink_inet_diag.Po \
+@@ -4043,9 +4273,11 @@
+ 	./$(DEPDIR)/pidfd_open--decode-fd-path.Po \
+ 	./$(DEPDIR)/pidfd_open--decode-fd-pidfd.Po \
+ 	./$(DEPDIR)/pidfd_open--decode-fd-socket.Po \
++	./$(DEPDIR)/pidfd_open--pidns-translation.Po \
+ 	./$(DEPDIR)/pidfd_open-P.Po ./$(DEPDIR)/pidfd_open-y.Po \
+ 	./$(DEPDIR)/pidfd_open-yy.Po ./$(DEPDIR)/pidfd_open.Po \
+-	./$(DEPDIR)/pidfd_send_signal.Po ./$(DEPDIR)/pipe.Po \
++	./$(DEPDIR)/pidfd_send_signal--pidns-translation.Po \
++	./$(DEPDIR)/pidfd_send_signal.Po ./$(DEPDIR)/pidns-cache.Po ./$(DEPDIR)/pipe.Po \
+ 	./$(DEPDIR)/pipe2.Po ./$(DEPDIR)/pkey_alloc.Po \
+ 	./$(DEPDIR)/pkey_free.Po ./$(DEPDIR)/pkey_mprotect.Po \
+ 	./$(DEPDIR)/poll-P.Po ./$(DEPDIR)/poll.Po \
+@@ -4070,8 +4302,10 @@
+ 	./$(DEPDIR)/printsignal-Xverbose.Po ./$(DEPDIR)/printstr.Po \
+ 	./$(DEPDIR)/printstrn-umoven-peekdata.Po \
+ 	./$(DEPDIR)/printstrn-umoven-undumpable.Po \
+-	./$(DEPDIR)/printstrn-umoven.Po ./$(DEPDIR)/prlimit64.Po \
++	./$(DEPDIR)/printstrn-umoven.Po ./$(DEPDIR)/prlimit64--pidns-translation.Po ./$(DEPDIR)/prlimit64.Po \
++	./$(DEPDIR)/process_vm_readv--pidns-translation.Po \
+ 	./$(DEPDIR)/process_vm_readv.Po \
++	./$(DEPDIR)/process_vm_writev--pidns-translation.Po \
+ 	./$(DEPDIR)/process_vm_writev.Po ./$(DEPDIR)/pselect6.Po \
+ 	./$(DEPDIR)/ptrace.Po ./$(DEPDIR)/ptrace_syscall_info.Po \
+ 	./$(DEPDIR)/pwritev-pwritev.Po ./$(DEPDIR)/qual_fault.Po \
+@@ -4101,9 +4335,10 @@
+ 	./$(DEPDIR)/request_key.Po ./$(DEPDIR)/restart_syscall.Po \
+ 	./$(DEPDIR)/riscv_flush_icache.Po ./$(DEPDIR)/rmdir.Po \
+ 	./$(DEPDIR)/rt_sigaction.Po ./$(DEPDIR)/rt_sigpending.Po \
+-	./$(DEPDIR)/rt_sigprocmask.Po ./$(DEPDIR)/rt_sigqueueinfo.Po \
++	./$(DEPDIR)/rt_sigprocmask.Po ./$(DEPDIR)/rt_sigqueueinfo--pidns-translation.Po ./$(DEPDIR)/rt_sigqueueinfo.Po \
+ 	./$(DEPDIR)/rt_sigreturn.Po ./$(DEPDIR)/rt_sigsuspend.Po \
+ 	./$(DEPDIR)/rt_sigtimedwait.Po \
++	./$(DEPDIR)/rt_tgsigqueueinfo--pidns-translation.Po \
+ 	./$(DEPDIR)/rt_tgsigqueueinfo.Po \
+ 	./$(DEPDIR)/run_expect_termsig.Po \
+ 	./$(DEPDIR)/s390_guarded_storage-v.Po \
+@@ -4113,9 +4348,15 @@
+ 	./$(DEPDIR)/s390_sthyi.Po \
+ 	./$(DEPDIR)/sched_get_priority_mxx.Po \
+ 	./$(DEPDIR)/sched_rr_get_interval.Po \
+-	./$(DEPDIR)/sched_xetaffinity.Po ./$(DEPDIR)/sched_xetattr.Po \
++	./$(DEPDIR)/sched_xetaffinity--pidns-translation.Po \
++	./$(DEPDIR)/sched_xetaffinity.Po \
++	./$(DEPDIR)/sched_xetattr--pidns-translation.Po \
++	./$(DEPDIR)/sched_xetattr.Po \
++	./$(DEPDIR)/sched_xetparam--pidns-translation.Po \
+ 	./$(DEPDIR)/sched_xetparam.Po \
+-	./$(DEPDIR)/sched_xetscheduler.Po ./$(DEPDIR)/sched_yield.Po \
++	./$(DEPDIR)/sched_xetscheduler--pidns-translation.Po \
++	./$(DEPDIR)/sched_xetscheduler.Po \
++	./$(DEPDIR)/sched_yield.Po \
+ 	./$(DEPDIR)/scm_rights.Po ./$(DEPDIR)/seccomp-filter-v.Po \
+ 	./$(DEPDIR)/seccomp-filter.Po ./$(DEPDIR)/seccomp-strict.Po \
+ 	./$(DEPDIR)/seccomp_get_action_avail.Po \
+@@ -4143,11 +4384,12 @@
+ 	./$(DEPDIR)/shmxt.Po ./$(DEPDIR)/shutdown.Po \
+ 	./$(DEPDIR)/sigaction.Po ./$(DEPDIR)/sigaltstack.Po \
+ 	./$(DEPDIR)/siginfo.Po ./$(DEPDIR)/signal.Po \
+-	./$(DEPDIR)/signal_receive.Po ./$(DEPDIR)/signalfd4.Po \
++	./$(DEPDIR)/signal_receive--pidns-translation.Po ./$(DEPDIR)/signal_receive.Po ./$(DEPDIR)/signalfd4.Po \
+ 	./$(DEPDIR)/sigpending.Po ./$(DEPDIR)/sigprocmask.Po \
+ 	./$(DEPDIR)/sigreturn.Po ./$(DEPDIR)/sigsuspend.Po \
+ 	./$(DEPDIR)/sleep.Po ./$(DEPDIR)/so_error.Po \
+-	./$(DEPDIR)/so_linger.Po ./$(DEPDIR)/so_peercred-Xabbrev.Po \
++	./$(DEPDIR)/so_linger.Po ./$(DEPDIR)/so_peercred--pidns-translation.Po \
++	./$(DEPDIR)/so_peercred-Xabbrev.Po \
+ 	./$(DEPDIR)/so_peercred-Xraw.Po \
+ 	./$(DEPDIR)/so_peercred-Xverbose.Po ./$(DEPDIR)/so_peercred.Po \
+ 	./$(DEPDIR)/sock_filter-v-Xabbrev.Po \
+@@ -4186,7 +4428,7 @@
+ 	./$(DEPDIR)/symlinkat.Po ./$(DEPDIR)/sync.Po \
+ 	./$(DEPDIR)/sync_file_range.Po ./$(DEPDIR)/sync_file_range2.Po \
+ 	./$(DEPDIR)/sysinfo.Po ./$(DEPDIR)/syslog-success.Po \
+-	./$(DEPDIR)/syslog.Po ./$(DEPDIR)/tee.Po ./$(DEPDIR)/tgkill.Po \
++	./$(DEPDIR)/syslog.Po ./$(DEPDIR)/tee.Po ./$(DEPDIR)/tgkill--pidns-translation.Po ./$(DEPDIR)/tgkill.Po \
+ 	./$(DEPDIR)/threads-execve--quiet-thread-execve.Po \
+ 	./$(DEPDIR)/threads-execve-q.Po \
+ 	./$(DEPDIR)/threads-execve-qq.Po \
+@@ -4194,7 +4436,8 @@
+ 	./$(DEPDIR)/threads-execve.Po ./$(DEPDIR)/time.Po \
+ 	./$(DEPDIR)/timer_create.Po ./$(DEPDIR)/timer_xettime.Po \
+ 	./$(DEPDIR)/timerfd_xettime.Po ./$(DEPDIR)/times-fail.Po \
+-	./$(DEPDIR)/times.Po ./$(DEPDIR)/tkill.Po ./$(DEPDIR)/tracer_ppid_pgid_sid.Po \
++	./$(DEPDIR)/times.Po ./$(DEPDIR)/tkill--pidns-translation.Po \
++	./$(DEPDIR)/tkill.Po ./$(DEPDIR)/tracer_ppid_pgid_sid.Po \
+ 	./$(DEPDIR)/truncate.Po ./$(DEPDIR)/truncate64-truncate64.Po \
+ 	./$(DEPDIR)/ugetrlimit.Po ./$(DEPDIR)/uio-uio.Po \
+ 	./$(DEPDIR)/umask.Po ./$(DEPDIR)/umount.Po \
+@@ -4216,9 +4459,11 @@
+ 	./$(DEPDIR)/wait4-v.Po ./$(DEPDIR)/wait4.Po \
+ 	./$(DEPDIR)/waitid-v.Po ./$(DEPDIR)/waitid.Po \
+ 	./$(DEPDIR)/waitpid.Po ./$(DEPDIR)/xattr-strings.Po \
+-	./$(DEPDIR)/xattr.Po ./$(DEPDIR)/xet_robust_list.Po \
++	./$(DEPDIR)/xattr.Po ./$(DEPDIR)/xet_robust_list--pidns-translation.Po \
++	./$(DEPDIR)/xet_robust_list.Po \
+ 	./$(DEPDIR)/xet_thread_area_x86.Po ./$(DEPDIR)/xetitimer.Po \
+-	./$(DEPDIR)/xetpgid.Po ./$(DEPDIR)/xetpriority.Po \
++	./$(DEPDIR)/xetpgid--pidns-translation.Po ./$(DEPDIR)/xetpgid.Po \
++	./$(DEPDIR)/xetpriority--pidns-translation.Po ./$(DEPDIR)/xetpriority.Po \
+ 	./$(DEPDIR)/xettimeofday.Po ./$(DEPDIR)/zeroargc.Po
+ am__mv = mv -f
+ AM_V_lt = $(am__v_lt_@AM_V@)
+@@ -4264,26 +4509,30 @@
+ 	fadvise64_64.c fallocate.c fanotify_init.c fanotify_mark.c \
+ 	fanotify_mark-Xabbrev.c fanotify_mark-Xraw.c \
+ 	fanotify_mark-Xverbose.c fchdir.c fchmod.c fchmodat.c fchown.c \
+-	fchown32.c fchownat.c fcntl.c fcntl64.c fdatasync.c fflush.c \
++	fchown32.c fchownat.c fcntl.c fcntl--pidns-translation.c \
++	fcntl64.c fcntl64--pidns-translation.c fdatasync.c fflush.c \
+ 	file_handle.c file_ioctl.c filter-unavailable.c \
+ 	filter_seccomp-flag.c filter_seccomp-perf.c finit_module.c \
+-	flock.c fork-f.c fsconfig.c fsconfig-P.c fsmount.c fsopen.c \
+-	fspick.c fspick-P.c fstat.c fstat-Xabbrev.c fstat-Xraw.c \
+-	fstat-Xverbose.c fstat64.c fstat64-Xabbrev.c fstat64-Xraw.c \
+-	fstat64-Xverbose.c fstatat64.c fstatfs.c fstatfs64.c fsync.c \
+-	fsync-y.c ftruncate.c ftruncate64.c futex.c futimesat.c \
+-	get_mempolicy.c get_process_reaper.c getcpu.c getcwd.c \
+-	getdents.c getdents-v.c getdents64.c getdents64-v.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 getxgid.c getxpid.c getxuid.c \
+-	group_req.c inet-cmsg.c init_module.c inject-nf.c inotify.c \
+-	inotify_init.c inotify_init-y.c inotify_init1.c \
+-	inotify_init1-y.c int_0x80.c io_uring_enter.c \
+-	io_uring_register.c io_uring_setup.c ioctl.c ioctl_block.c \
+-	ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-Xabbrev.c \
++	flock.c fork--pidns-translation.c fork-f.c fsconfig.c \
++	fsconfig-P.c fsmount.c fsopen.c fspick.c fspick-P.c fstat.c \
++	fstat-Xabbrev.c fstat-Xraw.c fstat-Xverbose.c fstat64.c \
++	fstat64-Xabbrev.c fstat64-Xraw.c fstat64-Xverbose.c \
++	fstatat64.c fstatfs.c fstatfs64.c fsync.c fsync-y.c \
++	ftruncate.c ftruncate64.c futex.c futimesat.c get_mempolicy.c \
++	get_process_reaper.c getcpu.c getcwd.c getdents.c getdents-v.c \
++	getdents64.c getdents64-v.c getegid.c getegid32.c geteuid.c \
++	geteuid32.c getgid.c getgid32.c getgroups.c getgroups32.c \
++	getpeername.c getpgrp.c getpgrp--pidns-translation.c getpid.c \
++	getpid--pidns-translation.c getppid.c getrandom.c getresgid.c \
++	getresgid32.c getresuid.c getresuid32.c getrlimit.c \
++	getrusage.c getsid.c getsid--pidns-translation.c getsockname.c \
++	gettid.c gettid--pidns-translation.c getuid.c getuid32.c \
++	getxgid.c getxpid.c getxuid.c group_req.c inet-cmsg.c \
++	init_module.c inject-nf.c inotify.c inotify_init.c \
++	inotify_init-y.c inotify_init1.c inotify_init1-y.c int_0x80.c \
++	io_uring_enter.c io_uring_register.c io_uring_setup.c ioctl.c \
++	ioctl_block.c ioctl_block--pidns-translation.c ioctl_dm.c \
++	ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-Xabbrev.c \
+ 	ioctl_evdev-Xraw.c ioctl_evdev-Xverbose.c \
+ 	ioctl_evdev-success.c ioctl_evdev-success-Xabbrev.c \
+ 	ioctl_evdev-success-Xraw.c ioctl_evdev-success-Xverbose.c \
+@@ -4311,47 +4560,51 @@
+ 	ioctl_v4l2-success-v-Xverbose.c ioctl_v4l2-v.c \
+ 	ioctl_v4l2-v-Xabbrev.c ioctl_v4l2-v-Xraw.c \
+ 	ioctl_v4l2-v-Xverbose.c ioctl_watchdog.c ioperm.c iopl.c \
+-	ioprio.c ioprio-Xabbrev.c ioprio-Xraw.c ioprio-Xverbose.c \
+-	ip_mreq.c ipc.c ipc_msg.c ipc_msg-Xabbrev.c ipc_msg-Xraw.c \
+-	ipc_msg-Xverbose.c ipc_msgbuf.c ipc_msgbuf-Xabbrev.c \
+-	ipc_msgbuf-Xraw.c ipc_msgbuf-Xverbose.c ipc_sem.c \
+-	ipc_sem-Xabbrev.c ipc_sem-Xraw.c ipc_sem-Xverbose.c ipc_shm.c \
+-	ipc_shm-Xabbrev.c ipc_shm-Xraw.c ipc_shm-Xverbose.c \
+-	is_linux_mips_n64.c kcmp.c kcmp-y.c kern_features.c \
++	ioprio.c ioprio--pidns-translation.c ioprio-Xabbrev.c \
++	ioprio-Xraw.c ioprio-Xverbose.c ip_mreq.c ipc.c ipc_msg.c \
++	ipc_msg-Xabbrev.c ipc_msg-Xraw.c ipc_msg-Xverbose.c \
++	ipc_msgbuf.c ipc_msgbuf-Xabbrev.c ipc_msgbuf-Xraw.c \
++	ipc_msgbuf-Xverbose.c ipc_sem.c ipc_sem-Xabbrev.c \
++	ipc_sem-Xraw.c ipc_sem-Xverbose.c ipc_shm.c ipc_shm-Xabbrev.c \
++	ipc_shm-Xraw.c ipc_shm-Xverbose.c is_linux_mips_n64.c kcmp.c \
++	kcmp-y.c kcmp-y--pidns-translation.c kern_features.c \
+ 	kernel_version.c kernel_version-Xabbrev.c \
+ 	kernel_version-Xraw.c kernel_version-Xverbose.c \
+ 	kexec_file_load.c kexec_load.c keyctl.c keyctl-Xabbrev.c \
+-	keyctl-Xraw.c keyctl-Xverbose.c kill.c kill_child.c ksysent.c \
+-	lchown.c lchown32.c link.c linkat.c list_sigaction_signum.c \
+-	llseek.c localtime.c lookup_dcookie.c looping_threads.c \
+-	lseek.c lstat.c lstat64.c madvise.c maybe_switch_current_tcp.c \
++	keyctl-Xraw.c keyctl-Xverbose.c kill.c \
++	kill--pidns-translation.c kill_child.c ksysent.c lchown.c \
++	lchown32.c link.c linkat.c list_sigaction_signum.c llseek.c \
++	localtime.c lookup_dcookie.c looping_threads.c lseek.c lstat.c \
++	lstat64.c madvise.c maybe_switch_current_tcp.c \
+ 	maybe_switch_current_tcp--quiet-thread-execve.c mbind.c \
+ 	mbind-Xabbrev.c mbind-Xraw.c mbind-Xverbose.c membarrier.c \
+ 	memfd_create.c memfd_create-Xabbrev.c memfd_create-Xraw.c \
+-	memfd_create-Xverbose.c migrate_pages.c mincore.c mkdir.c \
+-	mkdirat.c mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c \
++	memfd_create-Xverbose.c migrate_pages.c \
++	migrate_pages--pidns-translation.c mincore.c mkdir.c mkdirat.c \
++	mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c \
+ 	mmap-Xabbrev.c mmap-Xraw.c mmap-Xverbose.c mmap64.c \
+ 	mmap64-Xabbrev.c mmap64-Xraw.c mmap64-Xverbose.c mmsg.c \
+ 	mmsg-silent.c mmsg_name.c mmsg_name-v.c modify_ldt.c mount.c \
+ 	mount-Xabbrev.c mount-Xraw.c mount-Xverbose.c move_mount.c \
+-	move_mount-P.c move_pages.c move_pages-Xabbrev.c \
+-	move_pages-Xraw.c move_pages-Xverbose.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--decode-fds-dev-netlink.c net--decode-fds-none-netlink.c \
+-	net--decode-fds-path-netlink.c \
++	move_mount-P.c move_pages.c move_pages--pidns-translation.c \
++	move_pages-Xabbrev.c move_pages-Xraw.c move_pages-Xverbose.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--decode-fds-dev-netlink.c \
++	net--decode-fds-none-netlink.c net--decode-fds-path-netlink.c \
+ 	net--decode-fds-socket-netlink.c net-accept-connect.c \
+ 	net-icmp_filter.c net-packet_mreq.c net-packet_mreq-Xabbrev.c \
+ 	net-packet_mreq-Xraw.c net-packet_mreq-Xverbose.c \
+-	net-sockaddr.c net-tpacket_req.c net-tpacket_stats.c \
++	net-sockaddr.c net-sockaddr--pidns-translation.c \
++	net-tpacket_req.c net-tpacket_stats.c \
+ 	net-tpacket_stats-success.c net-y-unix.c net-yy-inet.c \
+ 	net-yy-inet6.c net-yy-netlink.c net-yy-unix.c netlink_audit.c \
+-	netlink_crypto.c netlink_generic.c netlink_inet_diag.c \
+-	netlink_kobject_uevent.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 nfnetlink_acct.c \
+-	nfnetlink_cthelper.c nfnetlink_ctnetlink.c \
++	netlink_audit--pidns-translation.c netlink_crypto.c \
++	netlink_generic.c netlink_inet_diag.c netlink_kobject_uevent.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 \
++	nfnetlink_acct.c nfnetlink_cthelper.c nfnetlink_ctnetlink.c \
+ 	nfnetlink_ctnetlink_exp.c nfnetlink_cttimeout.c \
+ 	nfnetlink_ipset.c nfnetlink_nft_compat.c nfnetlink_nftables.c \
+ 	nfnetlink_osf.c nfnetlink_queue.c nfnetlink_ulog.c nlattr.c \
+@@ -4381,12 +4634,13 @@
+ 	personality-Xraw.c personality-Xverbose.c pidfd_getfd.c \
+ 	pidfd_getfd-y.c pidfd_getfd-yy.c pidfd_open.c \
+ 	pidfd_open--decode-fd-path.c pidfd_open--decode-fd-pidfd.c \
+-	pidfd_open--decode-fd-socket.c pidfd_open-P.c pidfd_open-y.c \
+-	pidfd_open-yy.c pidfd_send_signal.c pipe.c pipe2.c \
+-	pkey_alloc.c pkey_free.c pkey_mprotect.c poll.c poll-P.c \
+-	ppoll.c ppoll-P.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 \
++	pidfd_open--decode-fd-socket.c pidfd_open--pidns-translation.c \
++	pidfd_open-P.c pidfd_open-y.c pidfd_open-yy.c \
++	pidfd_send_signal.c pidfd_send_signal--pidns-translation.c \
++	pidns-cache.c pipe.c pipe2.c pkey_alloc.c pkey_free.c \
++	pkey_mprotect.c poll.c poll-P.c ppoll.c ppoll-P.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-spec-inject.c \
+ 	prctl-tid_address.c prctl-tsc.c pread64-pwrite64.c preadv.c \
+ 	preadv-pwritev.c preadv2-pwritev2.c print_maxfd.c \
+@@ -4395,8 +4649,10 @@
+ 	printsignal-Xabbrev.c printsignal-Xraw.c \
+ 	printsignal-Xverbose.c printstr.c printstrn-umoven.c \
+ 	printstrn-umoven-peekdata.c printstrn-umoven-undumpable.c \
+-	prlimit64.c process_vm_readv.c process_vm_writev.c pselect6.c \
+-	ptrace.c ptrace_syscall_info.c pwritev.c qual_fault.c \
++	prlimit64.c prlimit64--pidns-translation.c process_vm_readv.c \
++	process_vm_readv--pidns-translation.c process_vm_writev.c \
++	process_vm_writev--pidns-translation.c pselect6.c ptrace.c \
++	ptrace_syscall_info.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-Xabbrev.c quotactl-Xraw.c quotactl-Xverbose.c \
+@@ -4409,60 +4665,70 @@
+ 	remap_file_pages-Xraw.c remap_file_pages-Xverbose.c rename.c \
+ 	renameat.c renameat2.c request_key.c restart_syscall.c \
+ 	riscv_flush_icache.c rmdir.c rt_sigaction.c rt_sigpending.c \
+-	rt_sigprocmask.c rt_sigqueueinfo.c rt_sigreturn.c \
++	rt_sigprocmask.c rt_sigqueueinfo.c \
++	rt_sigqueueinfo--pidns-translation.c rt_sigreturn.c \
+ 	rt_sigsuspend.c rt_sigtimedwait.c rt_tgsigqueueinfo.c \
+-	run_expect_termsig.c s390_guarded_storage.c \
+-	s390_guarded_storage-v.c s390_pci_mmio_read_write.c \
+-	s390_runtime_instr.c s390_sthyi.c s390_sthyi-v.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 \
+-	seccomp_get_action_avail.c select.c select-P.c semop.c \
+-	semop-indirect.c semtimedop.c sendfile.c sendfile64.c \
+-	set_mempolicy.c set_mempolicy-Xabbrev.c set_mempolicy-Xraw.c \
+-	set_mempolicy-Xverbose.c set_ptracer_any.c set_sigblock.c \
+-	set_sigign.c setdomainname.c setfsgid.c setfsgid32.c \
+-	setfsuid.c setfsuid32.c setgid.c setgid32.c setgroups.c \
+-	setgroups32.c sethostname.c setns.c setpgrp-exec.c setregid.c \
+-	setregid32.c setresgid.c setresgid32.c setresuid.c \
+-	setresuid32.c setreuid.c setreuid32.c setrlimit.c \
+-	setrlimit-Xabbrev.c setrlimit-Xraw.c setrlimit-Xverbose.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 \
+-	so_error.c so_linger.c so_peercred.c so_peercred-Xabbrev.c \
+-	so_peercred-Xraw.c so_peercred-Xverbose.c sock_filter-v.c \
+-	sock_filter-v-Xabbrev.c sock_filter-v-Xraw.c \
+-	sock_filter-v-Xverbose.c sockaddr_xlat-Xabbrev.c \
+-	sockaddr_xlat-Xraw.c sockaddr_xlat-Xverbose.c socketcall.c \
+-	sockopt-sol_netlink.c sockopt-timestamp.c splice.c \
+-	$(stack_fcall_SOURCES) $(stack_fcall_attach_SOURCES) \
+-	$(stack_fcall_mangled_SOURCES) stat.c stat64.c statfs.c \
+-	statfs64.c status-all.c status-failed.c status-failed-long.c \
+-	status-failed-status.c status-none.c status-none-f.c \
+-	status-none-threads.c status-successful.c \
+-	status-successful-long.c status-successful-status.c \
+-	status-unfinished.c status-unfinished-threads.c statx.c \
+-	strace--strings-in-hex.c strace--strings-in-hex-all.c \
++	rt_tgsigqueueinfo--pidns-translation.c run_expect_termsig.c \
++	s390_guarded_storage.c s390_guarded_storage-v.c \
++	s390_pci_mmio_read_write.c s390_runtime_instr.c s390_sthyi.c \
++	s390_sthyi-v.c sched_get_priority_mxx.c \
++	sched_rr_get_interval.c sched_xetaffinity.c \
++	sched_xetaffinity--pidns-translation.c sched_xetattr.c \
++	sched_xetattr--pidns-translation.c sched_xetparam.c \
++	sched_xetparam--pidns-translation.c sched_xetscheduler.c \
++	sched_xetscheduler--pidns-translation.c sched_yield.c \
++	scm_rights.c seccomp-filter.c seccomp-filter-v.c \
++	seccomp-strict.c seccomp_get_action_avail.c select.c \
++	select-P.c semop.c semop-indirect.c semtimedop.c sendfile.c \
++	sendfile64.c set_mempolicy.c set_mempolicy-Xabbrev.c \
++	set_mempolicy-Xraw.c set_mempolicy-Xverbose.c \
++	set_ptracer_any.c set_sigblock.c set_sigign.c setdomainname.c \
++	setfsgid.c setfsgid32.c setfsuid.c setfsuid32.c setgid.c \
++	setgid32.c setgroups.c setgroups32.c sethostname.c setns.c \
++	setpgrp-exec.c setregid.c setregid32.c setresgid.c \
++	setresgid32.c setresuid.c setresuid32.c setreuid.c \
++	setreuid32.c setrlimit.c setrlimit-Xabbrev.c setrlimit-Xraw.c \
++	setrlimit-Xverbose.c setuid.c setuid32.c shmxt.c shutdown.c \
++	sigaction.c sigaltstack.c siginfo.c signal.c signal_receive.c \
++	signal_receive--pidns-translation.c signalfd4.c sigpending.c \
++	sigprocmask.c sigreturn.c sigsuspend.c sleep.c so_error.c \
++	so_linger.c so_peercred.c so_peercred--pidns-translation.c \
++	so_peercred-Xabbrev.c so_peercred-Xraw.c \
++	so_peercred-Xverbose.c sock_filter-v.c sock_filter-v-Xabbrev.c \
++	sock_filter-v-Xraw.c sock_filter-v-Xverbose.c \
++	sockaddr_xlat-Xabbrev.c sockaddr_xlat-Xraw.c \
++	sockaddr_xlat-Xverbose.c socketcall.c sockopt-sol_netlink.c \
++	sockopt-timestamp.c splice.c $(stack_fcall_SOURCES) \
++	$(stack_fcall_attach_SOURCES) $(stack_fcall_mangled_SOURCES) \
++	stat.c stat64.c statfs.c statfs64.c status-all.c \
++	status-failed.c status-failed-long.c status-failed-status.c \
++	status-none.c status-none-f.c status-none-threads.c \
++	status-successful.c status-successful-long.c \
++	status-successful-status.c status-unfinished.c \
++	status-unfinished-threads.c statx.c strace--strings-in-hex.c \
++	strace--strings-in-hex-all.c \
+ 	strace--strings-in-hex-non-ascii.c strace-x.c strace-xx.c \
+ 	swap.c sxetmask.c symlink.c symlinkat.c sync.c \
+ 	sync_file_range.c sync_file_range2.c sysinfo.c syslog.c \
+-	syslog-success.c tee.c tgkill.c threads-execve.c \
+-	threads-execve--quiet-thread-execve.c threads-execve-q.c \
+-	threads-execve-qq.c threads-execve-qqq.c time.c timer_create.c \
+-	timer_xettime.c timerfd_xettime.c times.c times-fail.c tkill.c \
+-	tracer_ppid_pgid_sid.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 umovestr_cached.c \
+-	umovestr_cached_adjacent.c uname.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 \
+-	utimensat-Xabbrev.c utimensat-Xraw.c utimensat-Xverbose.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 xet_thread_area_x86.c xetitimer.c xetpgid.c \
+-	xetpriority.c xettimeofday.c zeroargc.c
++	syslog-success.c tee.c tgkill.c tgkill--pidns-translation.c \
++	threads-execve.c threads-execve--quiet-thread-execve.c \
++	threads-execve-q.c threads-execve-qq.c threads-execve-qqq.c \
++	time.c timer_create.c timer_xettime.c timerfd_xettime.c \
++	times.c times-fail.c tkill.c tkill--pidns-translation.c \
++	tracer_ppid_pgid_sid.c $(trie_test_SOURCES) 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 umovestr_cached.c umovestr_cached_adjacent.c \
++	uname.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 utimensat-Xabbrev.c \
++	utimensat-Xraw.c utimensat-Xverbose.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 \
++	xet_robust_list--pidns-translation.c xet_thread_area_x86.c \
++	xetitimer.c xetpgid.c xetpgid--pidns-translation.c \
++	xetpriority.c xetpriority--pidns-translation.c xettimeofday.c \
++	zeroargc.c
+ DIST_SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c \
+ 	accept.c accept4.c access.c acct.c add_key.c adjtimex.c aio.c \
+ 	aio_pgetevents.c alarm.c answer.c attach-f-p.c \
+@@ -4490,26 +4756,30 @@
+ 	fadvise64_64.c fallocate.c fanotify_init.c fanotify_mark.c \
+ 	fanotify_mark-Xabbrev.c fanotify_mark-Xraw.c \
+ 	fanotify_mark-Xverbose.c fchdir.c fchmod.c fchmodat.c fchown.c \
+-	fchown32.c fchownat.c fcntl.c fcntl64.c fdatasync.c fflush.c \
++	fchown32.c fchownat.c fcntl.c fcntl--pidns-translation.c \
++	fcntl64.c fcntl64--pidns-translation.c fdatasync.c fflush.c \
+ 	file_handle.c file_ioctl.c filter-unavailable.c \
+ 	filter_seccomp-flag.c filter_seccomp-perf.c finit_module.c \
+-	flock.c fork-f.c fsconfig.c fsconfig-P.c fsmount.c fsopen.c \
+-	fspick.c fspick-P.c fstat.c fstat-Xabbrev.c fstat-Xraw.c \
+-	fstat-Xverbose.c fstat64.c fstat64-Xabbrev.c fstat64-Xraw.c \
+-	fstat64-Xverbose.c fstatat64.c fstatfs.c fstatfs64.c fsync.c \
+-	fsync-y.c ftruncate.c ftruncate64.c futex.c futimesat.c \
+-	get_mempolicy.c get_process_reaper.c getcpu.c getcwd.c \
+-	getdents.c getdents-v.c getdents64.c getdents64-v.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 getxgid.c getxpid.c getxuid.c \
+-	group_req.c inet-cmsg.c init_module.c inject-nf.c inotify.c \
+-	inotify_init.c inotify_init-y.c inotify_init1.c \
+-	inotify_init1-y.c int_0x80.c io_uring_enter.c \
+-	io_uring_register.c io_uring_setup.c ioctl.c ioctl_block.c \
+-	ioctl_dm.c ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-Xabbrev.c \
++	flock.c fork--pidns-translation.c fork-f.c fsconfig.c \
++	fsconfig-P.c fsmount.c fsopen.c fspick.c fspick-P.c fstat.c \
++	fstat-Xabbrev.c fstat-Xraw.c fstat-Xverbose.c fstat64.c \
++	fstat64-Xabbrev.c fstat64-Xraw.c fstat64-Xverbose.c \
++	fstatat64.c fstatfs.c fstatfs64.c fsync.c fsync-y.c \
++	ftruncate.c ftruncate64.c futex.c futimesat.c get_mempolicy.c \
++	get_process_reaper.c getcpu.c getcwd.c getdents.c getdents-v.c \
++	getdents64.c getdents64-v.c getegid.c getegid32.c geteuid.c \
++	geteuid32.c getgid.c getgid32.c getgroups.c getgroups32.c \
++	getpeername.c getpgrp.c getpgrp--pidns-translation.c getpid.c \
++	getpid--pidns-translation.c getppid.c getrandom.c getresgid.c \
++	getresgid32.c getresuid.c getresuid32.c getrlimit.c \
++	getrusage.c getsid.c getsid--pidns-translation.c getsockname.c \
++	gettid.c gettid--pidns-translation.c getuid.c getuid32.c \
++	getxgid.c getxpid.c getxuid.c group_req.c inet-cmsg.c \
++	init_module.c inject-nf.c inotify.c inotify_init.c \
++	inotify_init-y.c inotify_init1.c inotify_init1-y.c int_0x80.c \
++	io_uring_enter.c io_uring_register.c io_uring_setup.c ioctl.c \
++	ioctl_block.c ioctl_block--pidns-translation.c ioctl_dm.c \
++	ioctl_dm-v.c ioctl_evdev.c ioctl_evdev-Xabbrev.c \
+ 	ioctl_evdev-Xraw.c ioctl_evdev-Xverbose.c \
+ 	ioctl_evdev-success.c ioctl_evdev-success-Xabbrev.c \
+ 	ioctl_evdev-success-Xraw.c ioctl_evdev-success-Xverbose.c \
+@@ -4537,47 +4807,51 @@
+ 	ioctl_v4l2-success-v-Xverbose.c ioctl_v4l2-v.c \
+ 	ioctl_v4l2-v-Xabbrev.c ioctl_v4l2-v-Xraw.c \
+ 	ioctl_v4l2-v-Xverbose.c ioctl_watchdog.c ioperm.c iopl.c \
+-	ioprio.c ioprio-Xabbrev.c ioprio-Xraw.c ioprio-Xverbose.c \
+-	ip_mreq.c ipc.c ipc_msg.c ipc_msg-Xabbrev.c ipc_msg-Xraw.c \
+-	ipc_msg-Xverbose.c ipc_msgbuf.c ipc_msgbuf-Xabbrev.c \
+-	ipc_msgbuf-Xraw.c ipc_msgbuf-Xverbose.c ipc_sem.c \
+-	ipc_sem-Xabbrev.c ipc_sem-Xraw.c ipc_sem-Xverbose.c ipc_shm.c \
+-	ipc_shm-Xabbrev.c ipc_shm-Xraw.c ipc_shm-Xverbose.c \
+-	is_linux_mips_n64.c kcmp.c kcmp-y.c kern_features.c \
++	ioprio.c ioprio--pidns-translation.c ioprio-Xabbrev.c \
++	ioprio-Xraw.c ioprio-Xverbose.c ip_mreq.c ipc.c ipc_msg.c \
++	ipc_msg-Xabbrev.c ipc_msg-Xraw.c ipc_msg-Xverbose.c \
++	ipc_msgbuf.c ipc_msgbuf-Xabbrev.c ipc_msgbuf-Xraw.c \
++	ipc_msgbuf-Xverbose.c ipc_sem.c ipc_sem-Xabbrev.c \
++	ipc_sem-Xraw.c ipc_sem-Xverbose.c ipc_shm.c ipc_shm-Xabbrev.c \
++	ipc_shm-Xraw.c ipc_shm-Xverbose.c is_linux_mips_n64.c kcmp.c \
++	kcmp-y.c kcmp-y--pidns-translation.c kern_features.c \
+ 	kernel_version.c kernel_version-Xabbrev.c \
+ 	kernel_version-Xraw.c kernel_version-Xverbose.c \
+ 	kexec_file_load.c kexec_load.c keyctl.c keyctl-Xabbrev.c \
+-	keyctl-Xraw.c keyctl-Xverbose.c kill.c kill_child.c ksysent.c \
+-	lchown.c lchown32.c link.c linkat.c list_sigaction_signum.c \
+-	llseek.c localtime.c lookup_dcookie.c looping_threads.c \
+-	lseek.c lstat.c lstat64.c madvise.c maybe_switch_current_tcp.c \
++	keyctl-Xraw.c keyctl-Xverbose.c kill.c \
++	kill--pidns-translation.c kill_child.c ksysent.c lchown.c \
++	lchown32.c link.c linkat.c list_sigaction_signum.c llseek.c \
++	localtime.c lookup_dcookie.c looping_threads.c lseek.c lstat.c \
++	lstat64.c madvise.c maybe_switch_current_tcp.c \
+ 	maybe_switch_current_tcp--quiet-thread-execve.c mbind.c \
+ 	mbind-Xabbrev.c mbind-Xraw.c mbind-Xverbose.c membarrier.c \
+ 	memfd_create.c memfd_create-Xabbrev.c memfd_create-Xraw.c \
+-	memfd_create-Xverbose.c migrate_pages.c mincore.c mkdir.c \
+-	mkdirat.c mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c \
++	memfd_create-Xverbose.c migrate_pages.c \
++	migrate_pages--pidns-translation.c mincore.c mkdir.c mkdirat.c \
++	mknod.c mknodat.c mlock.c mlock2.c mlockall.c mmap.c \
+ 	mmap-Xabbrev.c mmap-Xraw.c mmap-Xverbose.c mmap64.c \
+ 	mmap64-Xabbrev.c mmap64-Xraw.c mmap64-Xverbose.c mmsg.c \
+ 	mmsg-silent.c mmsg_name.c mmsg_name-v.c modify_ldt.c mount.c \
+ 	mount-Xabbrev.c mount-Xraw.c mount-Xverbose.c move_mount.c \
+-	move_mount-P.c move_pages.c move_pages-Xabbrev.c \
+-	move_pages-Xraw.c move_pages-Xverbose.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--decode-fds-dev-netlink.c net--decode-fds-none-netlink.c \
+-	net--decode-fds-path-netlink.c \
++	move_mount-P.c move_pages.c move_pages--pidns-translation.c \
++	move_pages-Xabbrev.c move_pages-Xraw.c move_pages-Xverbose.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--decode-fds-dev-netlink.c \
++	net--decode-fds-none-netlink.c net--decode-fds-path-netlink.c \
+ 	net--decode-fds-socket-netlink.c net-accept-connect.c \
+ 	net-icmp_filter.c net-packet_mreq.c net-packet_mreq-Xabbrev.c \
+ 	net-packet_mreq-Xraw.c net-packet_mreq-Xverbose.c \
+-	net-sockaddr.c net-tpacket_req.c net-tpacket_stats.c \
++	net-sockaddr.c net-sockaddr--pidns-translation.c \
++	net-tpacket_req.c net-tpacket_stats.c \
+ 	net-tpacket_stats-success.c net-y-unix.c net-yy-inet.c \
+ 	net-yy-inet6.c net-yy-netlink.c net-yy-unix.c netlink_audit.c \
+-	netlink_crypto.c netlink_generic.c netlink_inet_diag.c \
+-	netlink_kobject_uevent.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 nfnetlink_acct.c \
+-	nfnetlink_cthelper.c nfnetlink_ctnetlink.c \
++	netlink_audit--pidns-translation.c netlink_crypto.c \
++	netlink_generic.c netlink_inet_diag.c netlink_kobject_uevent.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 \
++	nfnetlink_acct.c nfnetlink_cthelper.c nfnetlink_ctnetlink.c \
+ 	nfnetlink_ctnetlink_exp.c nfnetlink_cttimeout.c \
+ 	nfnetlink_ipset.c nfnetlink_nft_compat.c nfnetlink_nftables.c \
+ 	nfnetlink_osf.c nfnetlink_queue.c nfnetlink_ulog.c nlattr.c \
+@@ -4607,12 +4881,13 @@
+ 	personality-Xraw.c personality-Xverbose.c pidfd_getfd.c \
+ 	pidfd_getfd-y.c pidfd_getfd-yy.c pidfd_open.c \
+ 	pidfd_open--decode-fd-path.c pidfd_open--decode-fd-pidfd.c \
+-	pidfd_open--decode-fd-socket.c pidfd_open-P.c pidfd_open-y.c \
+-	pidfd_open-yy.c pidfd_send_signal.c pipe.c pipe2.c \
+-	pkey_alloc.c pkey_free.c pkey_mprotect.c poll.c poll-P.c \
+-	ppoll.c ppoll-P.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 \
++	pidfd_open--decode-fd-socket.c pidfd_open--pidns-translation.c \
++	pidfd_open-P.c pidfd_open-y.c pidfd_open-yy.c \
++	pidfd_send_signal.c pidfd_send_signal--pidns-translation.c \
++	pidns-cache.c pipe.c pipe2.c pkey_alloc.c pkey_free.c \
++	pkey_mprotect.c poll.c poll-P.c ppoll.c ppoll-P.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-spec-inject.c \
+ 	prctl-tid_address.c prctl-tsc.c pread64-pwrite64.c preadv.c \
+ 	preadv-pwritev.c preadv2-pwritev2.c print_maxfd.c \
+@@ -4621,8 +4896,10 @@
+ 	printsignal-Xabbrev.c printsignal-Xraw.c \
+ 	printsignal-Xverbose.c printstr.c printstrn-umoven.c \
+ 	printstrn-umoven-peekdata.c printstrn-umoven-undumpable.c \
+-	prlimit64.c process_vm_readv.c process_vm_writev.c pselect6.c \
+-	ptrace.c ptrace_syscall_info.c pwritev.c qual_fault.c \
++	prlimit64.c prlimit64--pidns-translation.c process_vm_readv.c \
++	process_vm_readv--pidns-translation.c process_vm_writev.c \
++	process_vm_writev--pidns-translation.c pselect6.c ptrace.c \
++	ptrace_syscall_info.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-Xabbrev.c quotactl-Xraw.c quotactl-Xverbose.c \
+@@ -4635,60 +4912,70 @@
+ 	remap_file_pages-Xraw.c remap_file_pages-Xverbose.c rename.c \
+ 	renameat.c renameat2.c request_key.c restart_syscall.c \
+ 	riscv_flush_icache.c rmdir.c rt_sigaction.c rt_sigpending.c \
+-	rt_sigprocmask.c rt_sigqueueinfo.c rt_sigreturn.c \
++	rt_sigprocmask.c rt_sigqueueinfo.c \
++	rt_sigqueueinfo--pidns-translation.c rt_sigreturn.c \
+ 	rt_sigsuspend.c rt_sigtimedwait.c rt_tgsigqueueinfo.c \
+-	run_expect_termsig.c s390_guarded_storage.c \
+-	s390_guarded_storage-v.c s390_pci_mmio_read_write.c \
+-	s390_runtime_instr.c s390_sthyi.c s390_sthyi-v.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 \
+-	seccomp_get_action_avail.c select.c select-P.c semop.c \
+-	semop-indirect.c semtimedop.c sendfile.c sendfile64.c \
+-	set_mempolicy.c set_mempolicy-Xabbrev.c set_mempolicy-Xraw.c \
+-	set_mempolicy-Xverbose.c set_ptracer_any.c set_sigblock.c \
+-	set_sigign.c setdomainname.c setfsgid.c setfsgid32.c \
+-	setfsuid.c setfsuid32.c setgid.c setgid32.c setgroups.c \
+-	setgroups32.c sethostname.c setns.c setpgrp-exec.c setregid.c \
+-	setregid32.c setresgid.c setresgid32.c setresuid.c \
+-	setresuid32.c setreuid.c setreuid32.c setrlimit.c \
+-	setrlimit-Xabbrev.c setrlimit-Xraw.c setrlimit-Xverbose.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 \
+-	so_error.c so_linger.c so_peercred.c so_peercred-Xabbrev.c \
+-	so_peercred-Xraw.c so_peercred-Xverbose.c sock_filter-v.c \
+-	sock_filter-v-Xabbrev.c sock_filter-v-Xraw.c \
+-	sock_filter-v-Xverbose.c sockaddr_xlat-Xabbrev.c \
+-	sockaddr_xlat-Xraw.c sockaddr_xlat-Xverbose.c socketcall.c \
+-	sockopt-sol_netlink.c sockopt-timestamp.c splice.c \
+-	$(stack_fcall_SOURCES) $(stack_fcall_attach_SOURCES) \
+-	$(stack_fcall_mangled_SOURCES) stat.c stat64.c statfs.c \
+-	statfs64.c status-all.c status-failed.c status-failed-long.c \
+-	status-failed-status.c status-none.c status-none-f.c \
+-	status-none-threads.c status-successful.c \
+-	status-successful-long.c status-successful-status.c \
+-	status-unfinished.c status-unfinished-threads.c statx.c \
+-	strace--strings-in-hex.c strace--strings-in-hex-all.c \
++	rt_tgsigqueueinfo--pidns-translation.c run_expect_termsig.c \
++	s390_guarded_storage.c s390_guarded_storage-v.c \
++	s390_pci_mmio_read_write.c s390_runtime_instr.c s390_sthyi.c \
++	s390_sthyi-v.c sched_get_priority_mxx.c \
++	sched_rr_get_interval.c sched_xetaffinity.c \
++	sched_xetaffinity--pidns-translation.c sched_xetattr.c \
++	sched_xetattr--pidns-translation.c sched_xetparam.c \
++	sched_xetparam--pidns-translation.c sched_xetscheduler.c \
++	sched_xetscheduler--pidns-translation.c sched_yield.c \
++	scm_rights.c seccomp-filter.c seccomp-filter-v.c \
++	seccomp-strict.c seccomp_get_action_avail.c select.c \
++	select-P.c semop.c semop-indirect.c semtimedop.c sendfile.c \
++	sendfile64.c set_mempolicy.c set_mempolicy-Xabbrev.c \
++	set_mempolicy-Xraw.c set_mempolicy-Xverbose.c \
++	set_ptracer_any.c set_sigblock.c set_sigign.c setdomainname.c \
++	setfsgid.c setfsgid32.c setfsuid.c setfsuid32.c setgid.c \
++	setgid32.c setgroups.c setgroups32.c sethostname.c setns.c \
++	setpgrp-exec.c setregid.c setregid32.c setresgid.c \
++	setresgid32.c setresuid.c setresuid32.c setreuid.c \
++	setreuid32.c setrlimit.c setrlimit-Xabbrev.c setrlimit-Xraw.c \
++	setrlimit-Xverbose.c setuid.c setuid32.c shmxt.c shutdown.c \
++	sigaction.c sigaltstack.c siginfo.c signal.c signal_receive.c \
++	signal_receive--pidns-translation.c signalfd4.c sigpending.c \
++	sigprocmask.c sigreturn.c sigsuspend.c sleep.c so_error.c \
++	so_linger.c so_peercred.c so_peercred--pidns-translation.c \
++	so_peercred-Xabbrev.c so_peercred-Xraw.c \
++	so_peercred-Xverbose.c sock_filter-v.c sock_filter-v-Xabbrev.c \
++	sock_filter-v-Xraw.c sock_filter-v-Xverbose.c \
++	sockaddr_xlat-Xabbrev.c sockaddr_xlat-Xraw.c \
++	sockaddr_xlat-Xverbose.c socketcall.c sockopt-sol_netlink.c \
++	sockopt-timestamp.c splice.c $(stack_fcall_SOURCES) \
++	$(stack_fcall_attach_SOURCES) $(stack_fcall_mangled_SOURCES) \
++	stat.c stat64.c statfs.c statfs64.c status-all.c \
++	status-failed.c status-failed-long.c status-failed-status.c \
++	status-none.c status-none-f.c status-none-threads.c \
++	status-successful.c status-successful-long.c \
++	status-successful-status.c status-unfinished.c \
++	status-unfinished-threads.c statx.c strace--strings-in-hex.c \
++	strace--strings-in-hex-all.c \
+ 	strace--strings-in-hex-non-ascii.c strace-x.c strace-xx.c \
+ 	swap.c sxetmask.c symlink.c symlinkat.c sync.c \
+ 	sync_file_range.c sync_file_range2.c sysinfo.c syslog.c \
+-	syslog-success.c tee.c tgkill.c threads-execve.c \
+-	threads-execve--quiet-thread-execve.c threads-execve-q.c \
+-	threads-execve-qq.c threads-execve-qqq.c time.c timer_create.c \
+-	timer_xettime.c timerfd_xettime.c times.c times-fail.c tkill.c \
+-	tracer_ppid_pgid_sid.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 umovestr_cached.c \
+-	umovestr_cached_adjacent.c uname.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 \
+-	utimensat-Xabbrev.c utimensat-Xraw.c utimensat-Xverbose.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 xet_thread_area_x86.c xetitimer.c xetpgid.c \
+-	xetpriority.c xettimeofday.c zeroargc.c
++	syslog-success.c tee.c tgkill.c tgkill--pidns-translation.c \
++	threads-execve.c threads-execve--quiet-thread-execve.c \
++	threads-execve-q.c threads-execve-qq.c threads-execve-qqq.c \
++	time.c timer_create.c timer_xettime.c timerfd_xettime.c \
++	times.c times-fail.c tkill.c tkill--pidns-translation.c \
++	tracer_ppid_pgid_sid.c $(trie_test_SOURCES) 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 umovestr_cached.c umovestr_cached_adjacent.c \
++	uname.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 utimensat-Xabbrev.c \
++	utimensat-Xraw.c utimensat-Xverbose.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 \
++	xet_robust_list--pidns-translation.c xet_thread_area_x86.c \
++	xetitimer.c xetpgid.c xetpgid--pidns-translation.c \
++	xetpriority.c xetpriority--pidns-translation.c xettimeofday.c \
++	zeroargc.c
+ am__can_run_installinfo = \
+   case $$AM_UPDATE_INFO_DIR in \
+     n|no|NO) false;; \
+@@ -5145,6 +5432,7 @@
+ 	test_ucopy.h \
+ 	tests.h \
+ 	tprintf.c \
++	xmalloc_for_tests.c \
+ 	# end of libtests_a_SOURCES
+ 
+ libtests_a_CPPFLAGS = $(AM_CPPFLAGS) -D_FILE_OFFSET_BITS=64
+@@ -5825,6 +6113,10 @@
+ 	stack-fcall-mangled-0.c stack-fcall-mangled-1.c \
+ 	stack-fcall-mangled-2.c stack-fcall-mangled-3.c
+ 
++trie_test_SOURCES = trie_test.c trie_for_tests.c
++trie_test_CPPFLAGS = $(AM_CPPFLAGS) $(CODE_COVERAGE_CPPFLAGS)
++trie_test_CFLAGS = $(AM_CFLAGS) $(CODE_COVERAGE_CFLAGS)
++trie_test_LDADD = $(LDADD) $(CODE_COVERAGE_LIBS)
+ 
+ # Generated by ./tests/gen_tests.sh from ./tests/gen_tests.in; do not edit.
+ GEN_TESTS = _newselect.gen.test _newselect-P.gen.test accept.gen.test \
+@@ -5861,13 +6153,14 @@
+ 	fanotify_mark-Xverbose.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 filter_seccomp.gen.test \
+-	filter_seccomp-flag.gen.test finit_module.gen.test \
+-	flock.gen.test fork-f.gen.test fsconfig.gen.test \
+-	fsconfig-P.gen.test fsmount.gen.test fsopen.gen.test \
+-	fspick.gen.test fspick-P.gen.test fstat.gen.test \
+-	fstat-Xabbrev.gen.test fstat-Xraw.gen.test \
++	fcntl--pidns-translation.gen.test fcntl64.gen.test \
++	fcntl64--pidns-translation.gen.test fdatasync.gen.test \
++	file_handle.gen.test file_ioctl.gen.test \
++	filter_seccomp.gen.test filter_seccomp-flag.gen.test \
++	finit_module.gen.test flock.gen.test fork-f.gen.test \
++	fsconfig.gen.test fsconfig-P.gen.test fsmount.gen.test \
++	fsopen.gen.test fspick.gen.test fspick-P.gen.test \
++	fstat.gen.test fstat-Xabbrev.gen.test fstat-Xraw.gen.test \
+ 	fstat-Xverbose.gen.test fstat64.gen.test \
+ 	fstat64-Xabbrev.gen.test fstat64-Xraw.gen.test \
+ 	fstat64-Xverbose.gen.test fstatat64.gen.test fstatfs.gen.test \
+@@ -5881,11 +6174,13 @@
+ 	geteuid32-creds.gen.test getgid.gen.test getgid-creds.gen.test \
+ 	getgid32.gen.test getgid32-creds.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 \
+-	getuid-creds.gen.test getuid32.gen.test \
++	getpgrp--pidns-translation.gen.test getpid.gen.test \
++	getpid--pidns-translation.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 \
++	getsid--pidns-translation.gen.test getsockname.gen.test \
++	gettid.gen.test getuid-creds.gen.test getuid32.gen.test \
+ 	getuid32-creds.gen.test getxgid.gen.test getxpid.gen.test \
+ 	getxuid.gen.test group_req.gen.test inet-cmsg.gen.test \
+ 	init_module.gen.test inotify.gen.test inotify_init.gen.test \
+@@ -5937,9 +6232,9 @@
+ 	ioctl_v4l2-success-v-Xraw.gen.test \
+ 	ioctl_v4l2-success-v-Xverbose.gen.test ioctl_watchdog.gen.test \
+ 	ioperm.gen.test iopl.gen.test ioprio.gen.test \
+-	ioprio-Xabbrev.gen.test ioprio-Xraw.gen.test \
+-	ioprio-Xverbose.gen.test ip_mreq.gen.test ipc.gen.test \
+-	ipc_msg.gen.test ipc_msg-Xabbrev.gen.test \
++	ioprio--pidns-translation.gen.test ioprio-Xabbrev.gen.test \
++	ioprio-Xraw.gen.test ioprio-Xverbose.gen.test ip_mreq.gen.test \
++	ipc.gen.test ipc_msg.gen.test ipc_msg-Xabbrev.gen.test \
+ 	ipc_msg-Xraw.gen.test ipc_msg-Xverbose.gen.test \
+ 	ipc_msgbuf-Xabbrev.gen.test ipc_msgbuf-Xraw.gen.test \
+ 	ipc_msgbuf-Xverbose.gen.test ipc_sem.gen.test \
+@@ -5947,24 +6242,27 @@
+ 	ipc_sem-Xverbose.gen.test ipc_shm.gen.test \
+ 	ipc_shm-Xabbrev.gen.test ipc_shm-Xraw.gen.test \
+ 	ipc_shm-Xverbose.gen.test kcmp.gen.test kcmp-y.gen.test \
+-	kern_features.gen.test kernel_version.gen.test \
+-	kernel_version-Xabbrev.gen.test kernel_version-Xraw.gen.test \
+-	kernel_version-Xverbose.gen.test kexec_file_load.gen.test \
+-	kexec_load.gen.test keyctl.gen.test keyctl-Xabbrev.gen.test \
+-	keyctl-Xraw.gen.test keyctl-Xverbose.gen.test kill.gen.test \
+-	ksysent.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 \
++	kcmp-y--pidns-translation.gen.test kern_features.gen.test \
++	kernel_version.gen.test kernel_version-Xabbrev.gen.test \
++	kernel_version-Xraw.gen.test kernel_version-Xverbose.gen.test \
++	kexec_file_load.gen.test kexec_load.gen.test keyctl.gen.test \
++	keyctl-Xabbrev.gen.test keyctl-Xraw.gen.test \
++	keyctl-Xverbose.gen.test kill.gen.test \
++	kill--pidns-translation.gen.test ksysent.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 \
+ 	maybe_switch_current_tcp.gen.test \
+ 	maybe_switch_current_tcp--quiet-thread-execve.gen.test \
+ 	mbind.gen.test mbind-Xabbrev.gen.test mbind-Xraw.gen.test \
+ 	mbind-Xverbose.gen.test membarrier.gen.test \
+ 	memfd_create.gen.test memfd_create-Xabbrev.gen.test \
+ 	memfd_create-Xraw.gen.test memfd_create-Xverbose.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 \
+-	mmap-Xabbrev.gen.test mmap-Xraw.gen.test \
++	migrate_pages.gen.test \
++	migrate_pages--pidns-translation.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 mmap-Xabbrev.gen.test mmap-Xraw.gen.test \
+ 	mmap-Xverbose.gen.test mmap64.gen.test mmap64-Xabbrev.gen.test \
+ 	mmap64-Xraw.gen.test mmap64-Xverbose.gen.test mmsg.gen.test \
+ 	mmsg-silent.gen.test mmsg_name.gen.test mmsg_name-v.gen.test \
+@@ -5972,17 +6270,19 @@
+ 	mount-Xraw.gen.test mount-Xverbose.gen.test \
+ 	move_mount.gen.test move_mount-P.gen.test move_pages.gen.test \
+ 	move_pages-Xabbrev.gen.test move_pages-Xraw.gen.test \
+-	move_pages-Xverbose.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--decode-fds-dev-netlink.gen.test \
++	move_pages-Xverbose.gen.test \
++	move_pages--pidns-translation.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--decode-fds-dev-netlink.gen.test \
+ 	net--decode-fds-none-netlink.gen.test \
+ 	net--decode-fds-path-netlink.gen.test \
+ 	net--decode-fds-socket-netlink.gen.test \
+ 	net-icmp_filter.gen.test net-packet_mreq.gen.test \
+ 	net-packet_mreq-Xabbrev.gen.test net-packet_mreq-Xraw.gen.test \
+ 	net-packet_mreq-Xverbose.gen.test net-sockaddr.gen.test \
++	net-sockaddr--pidns-translation.gen.test \
+ 	net-tpacket_req.gen.test net-tpacket_stats.gen.test \
+ 	net-yy-inet6.gen.test netlink_audit.gen.test \
+ 	netlink_crypto.gen.test netlink_generic.gen.test \
+@@ -6036,18 +6336,25 @@
+ 	pidfd_open--decode-fd-pidfd.gen.test \
+ 	pidfd_open--decode-fd-socket.gen.test pidfd_open-P.gen.test \
+ 	pidfd_open-y.gen.test pidfd_open-yy.gen.test \
+-	pidfd_send_signal.gen.test pipe2.gen.test pkey_alloc.gen.test \
+-	pkey_free.gen.test pkey_mprotect.gen.test ppoll.gen.test \
+-	ppoll-P.gen.test ppoll-v.gen.test pread64-pwrite64.gen.test \
+-	preadv.gen.test preadv-pwritev.gen.test \
+-	preadv2-pwritev2.gen.test printpath-umovestr.gen.test \
++	pidfd_open--pidns-translation.gen.test \
++	pidfd_send_signal.gen.test \
++	pidfd_send_signal--pidns-translation.gen.test pipe2.gen.test \
++	pkey_alloc.gen.test pkey_free.gen.test pkey_mprotect.gen.test \
++	ppoll.gen.test ppoll-P.gen.test ppoll-v.gen.test \
++	pread64-pwrite64.gen.test preadv.gen.test \
++	preadv-pwritev.gen.test preadv2-pwritev2.gen.test \
++	printpath-umovestr.gen.test \
+ 	printpath-umovestr-peekdata.gen.test \
+ 	printpath-umovestr-undumpable.gen.test \
+ 	printsignal-Xabbrev.gen.test printsignal-Xraw.gen.test \
+ 	printsignal-Xverbose.gen.test printstr.gen.test \
+ 	printstrn-umoven.gen.test printstrn-umoven-peekdata.gen.test \
+ 	printstrn-umoven-undumpable.gen.test prlimit64.gen.test \
+-	process_vm_readv.gen.test process_vm_writev.gen.test \
++	prlimit64--pidns-translation.gen.test \
++	process_vm_readv.gen.test \
++	process_vm_readv--pidns-translation.gen.test \
++	process_vm_writev.gen.test \
++	process_vm_writev--pidns-translation.gen.test \
+ 	pselect6.gen.test ptrace.gen.test ptrace_syscall_info.gen.test \
+ 	pwritev.gen.test quotactl.gen.test quotactl-Xabbrev.gen.test \
+ 	quotactl-Xraw.gen.test quotactl-Xverbose.gen.test \
+@@ -6063,15 +6370,23 @@
+ 	renameat.gen.test renameat2.gen.test request_key.gen.test \
+ 	riscv_flush_icache.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 s390_guarded_storage.gen.test \
+-	s390_guarded_storage-v.gen.test \
++	rt_sigqueueinfo.gen.test \
++	rt_sigqueueinfo--pidns-translation.gen.test \
++	rt_sigreturn.gen.test rt_sigsuspend.gen.test \
++	rt_sigtimedwait.gen.test rt_tgsigqueueinfo.gen.test \
++	rt_tgsigqueueinfo--pidns-translation.gen.test \
++	s390_guarded_storage.gen.test s390_guarded_storage-v.gen.test \
+ 	s390_pci_mmio_read_write.gen.test s390_runtime_instr.gen.test \
+ 	s390_sthyi.gen.test s390_sthyi-v.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_xetaffinity.gen.test \
++	sched_xetaffinity--pidns-translation.gen.test \
++	sched_xetattr.gen.test \
++	sched_xetattr--pidns-translation.gen.test \
++	sched_xetparam.gen.test \
++	sched_xetparam--pidns-translation.gen.test \
++	sched_xetscheduler.gen.test \
++	sched_xetscheduler--pidns-translation.gen.test \
+ 	sched_yield.gen.test seccomp-filter.gen.test \
+ 	seccomp-filter-v.gen.test seccomp_get_action_avail.gen.test \
+ 	select.gen.test select-P.gen.test semop.gen.test \
+@@ -6089,18 +6404,20 @@
+ 	setrlimit-Xraw.gen.test setrlimit-Xverbose.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 \
++	signal.gen.test signal_receive.gen.test \
++	signal_receive--pidns-translation.gen.test signalfd4.gen.test \
+ 	sigpending.gen.test sigprocmask.gen.test sigreturn.gen.test \
+ 	sigsuspend.gen.test so_error.gen.test so_linger.gen.test \
+ 	so_peercred.gen.test so_peercred-Xabbrev.gen.test \
+ 	so_peercred-Xraw.gen.test so_peercred-Xverbose.gen.test \
+-	sock_filter-v.gen.test sock_filter-v-Xabbrev.gen.test \
+-	sock_filter-v-Xraw.gen.test sock_filter-v-Xverbose.gen.test \
+-	sockaddr_xlat-Xabbrev.gen.test sockaddr_xlat-Xraw.gen.test \
+-	sockaddr_xlat-Xverbose.gen.test socketcall.gen.test \
+-	sockopt-sol_netlink.gen.test sockopt-timestamp.gen.test \
+-	splice.gen.test stat.gen.test stat64.gen.test statfs.gen.test \
+-	statfs64.gen.test status-all.gen.test status-failed.gen.test \
++	so_peercred--pidns-translation.gen.test sock_filter-v.gen.test \
++	sock_filter-v-Xabbrev.gen.test sock_filter-v-Xraw.gen.test \
++	sock_filter-v-Xverbose.gen.test sockaddr_xlat-Xabbrev.gen.test \
++	sockaddr_xlat-Xraw.gen.test sockaddr_xlat-Xverbose.gen.test \
++	socketcall.gen.test sockopt-sol_netlink.gen.test \
++	sockopt-timestamp.gen.test splice.gen.test stat.gen.test \
++	stat64.gen.test statfs.gen.test statfs64.gen.test \
++	status-all.gen.test status-failed.gen.test \
+ 	status-failed-long.gen.test status-failed-status.gen.test \
+ 	status-none.gen.test status-successful.gen.test \
+ 	status-successful-long.gen.test \
+@@ -6142,33 +6459,37 @@
+ 	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 tgkill.gen.test \
++	tgkill--pidns-translation.gen.test \
+ 	threads-execve--quiet-thread-execve.gen.test \
+ 	threads-execve-q.gen.test threads-execve-qq.gen.test \
+ 	threads-execve-qqq.gen.test time.gen.test \
+ 	timer_create.gen.test timer_xettime.gen.test \
+ 	timerfd_xettime.gen.test times.gen.test times-fail.gen.test \
+-	tkill.gen.test trace_clock.gen.test trace_creds.gen.test \
+-	trace_fstat.gen.test trace_fstatfs.gen.test \
+-	trace_lstat.gen.test trace_personality_32.gen.test \
+-	trace_personality_64.gen.test \
++	tkill.gen.test tkill--pidns-translation.gen.test \
++	trace_clock.gen.test trace_creds.gen.test trace_fstat.gen.test \
++	trace_fstatfs.gen.test trace_lstat.gen.test \
++	trace_personality_32.gen.test trace_personality_64.gen.test \
+ 	trace_personality_regex_32.gen.test \
+ 	trace_personality_regex_64.gen.test \
+ 	trace_personality_regex_x32.gen.test \
+ 	trace_personality_x32.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 umovestr_cached_adjacent.gen.test \
+-	unlink.gen.test unlinkat.gen.test unshare.gen.test \
+-	userfaultfd.gen.test ustat.gen.test utime.gen.test \
+-	utimensat.gen.test utimensat-Xabbrev.gen.test \
+-	utimensat-Xraw.gen.test utimensat-Xverbose.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 \
++	trie_test.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 \
++	umovestr_cached_adjacent.gen.test unlink.gen.test \
++	unlinkat.gen.test unshare.gen.test userfaultfd.gen.test \
++	ustat.gen.test utime.gen.test utimensat.gen.test \
++	utimensat-Xabbrev.gen.test utimensat-Xraw.gen.test \
++	utimensat-Xverbose.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 \
++	xet_robust_list--pidns-translation.gen.test xetitimer.gen.test \
++	xetpgid.gen.test xetpgid--pidns-translation.gen.test \
++	xetpriority.gen.test xetpriority--pidns-translation.gen.test \
+ 	xettimeofday.gen.test
+ @ENABLE_STACKTRACE_FALSE@STACKTRACE_TESTS = 
+ @ENABLE_STACKTRACE_TRUE@STACKTRACE_TESTS = strace-k.test \
+@@ -6198,6 +6519,7 @@
+ 	int_0x80.test \
+ 	inotify_init-y.test \
+ 	ioctl.test \
++	ioctl_block--pidns-translation.test \
+ 	ioctl_evdev-success.test \
+ 	ipc_msgbuf.test \
+ 	kern_features-fault.test \
+@@ -6269,15 +6591,19 @@
+ 	filtering_fd-syntax.test \
+ 	filtering_syscall-syntax.test \
+ 	first_exec_failure.test \
++	fork--pidns-translation.test \
+ 	get_regs.test \
++	gettid--pidns-translation.test \
+ 	inject-nf.test \
+ 	interactive_block.test \
+ 	kill_child.test \
+ 	localtime.test \
+ 	looping_threads.test \
++	netlink_audit--pidns-translation.test \
+ 	opipe.test \
+ 	options-syntax.test \
+ 	pc.test \
++	pidns-cache.test \
+ 	printpath-umovestr-legacy.test \
+ 	printstrn-umoven-legacy.test \
+ 	qual_fault-syntax.test \
+@@ -6350,6 +6676,7 @@
+ 	filter_seccomp.in \
+ 	filter_seccomp.sh \
+ 	filter-unavailable.expected \
++	fork--pidns-translation.awk \
+ 	fstatat.c \
+ 	fstatx.c \
+ 	gen_pure_executables.sh \
+@@ -6935,10 +7262,18 @@
+ 	@rm -f fcntl$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fcntl_OBJECTS) $(fcntl_LDADD) $(LIBS)
+ 
++fcntl--pidns-translation$(EXEEXT): $(fcntl__pidns_translation_OBJECTS) $(fcntl__pidns_translation_DEPENDENCIES) $(EXTRA_fcntl__pidns_translation_DEPENDENCIES) 
++	@rm -f fcntl--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fcntl__pidns_translation_OBJECTS) $(fcntl__pidns_translation_LDADD) $(LIBS)
++
+ fcntl64$(EXEEXT): $(fcntl64_OBJECTS) $(fcntl64_DEPENDENCIES) $(EXTRA_fcntl64_DEPENDENCIES) 
+ 	@rm -f fcntl64$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fcntl64_OBJECTS) $(fcntl64_LDADD) $(LIBS)
+ 
++fcntl64--pidns-translation$(EXEEXT): $(fcntl64__pidns_translation_OBJECTS) $(fcntl64__pidns_translation_DEPENDENCIES) $(EXTRA_fcntl64__pidns_translation_DEPENDENCIES) 
++	@rm -f fcntl64--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fcntl64__pidns_translation_OBJECTS) $(fcntl64__pidns_translation_LDADD) $(LIBS)
++
+ fdatasync$(EXEEXT): $(fdatasync_OBJECTS) $(fdatasync_DEPENDENCIES) $(EXTRA_fdatasync_DEPENDENCIES) 
+ 	@rm -f fdatasync$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fdatasync_OBJECTS) $(fdatasync_LDADD) $(LIBS)
+@@ -6975,6 +7310,10 @@
+ 	@rm -f flock$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(flock_OBJECTS) $(flock_LDADD) $(LIBS)
+ 
++fork--pidns-translation$(EXEEXT): $(fork__pidns_translation_OBJECTS) $(fork__pidns_translation_DEPENDENCIES) $(EXTRA_fork__pidns_translation_DEPENDENCIES) 
++	@rm -f fork--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fork__pidns_translation_OBJECTS) $(fork__pidns_translation_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)
+@@ -7143,10 +7482,18 @@
+ 	@rm -f getpgrp$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(getpgrp_OBJECTS) $(getpgrp_LDADD) $(LIBS)
+ 
++getpgrp--pidns-translation$(EXEEXT): $(getpgrp__pidns_translation_OBJECTS) $(getpgrp__pidns_translation_DEPENDENCIES) $(EXTRA_getpgrp__pidns_translation_DEPENDENCIES) 
++	@rm -f getpgrp--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(getpgrp__pidns_translation_OBJECTS) $(getpgrp__pidns_translation_LDADD) $(LIBS)
++
+ getpid$(EXEEXT): $(getpid_OBJECTS) $(getpid_DEPENDENCIES) $(EXTRA_getpid_DEPENDENCIES) 
+ 	@rm -f getpid$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(getpid_OBJECTS) $(getpid_LDADD) $(LIBS)
+ 
++getpid--pidns-translation$(EXEEXT): $(getpid__pidns_translation_OBJECTS) $(getpid__pidns_translation_DEPENDENCIES) $(EXTRA_getpid__pidns_translation_DEPENDENCIES) 
++	@rm -f getpid--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(getpid__pidns_translation_OBJECTS) $(getpid__pidns_translation_LDADD) $(LIBS)
++
+ getppid$(EXEEXT): $(getppid_OBJECTS) $(getppid_DEPENDENCIES) $(EXTRA_getppid_DEPENDENCIES) 
+ 	@rm -f getppid$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(getppid_OBJECTS) $(getppid_LDADD) $(LIBS)
+@@ -7183,6 +7530,10 @@
+ 	@rm -f getsid$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(getsid_OBJECTS) $(getsid_LDADD) $(LIBS)
+ 
++getsid--pidns-translation$(EXEEXT): $(getsid__pidns_translation_OBJECTS) $(getsid__pidns_translation_DEPENDENCIES) $(EXTRA_getsid__pidns_translation_DEPENDENCIES) 
++	@rm -f getsid--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(getsid__pidns_translation_OBJECTS) $(getsid__pidns_translation_LDADD) $(LIBS)
++
+ getsockname$(EXEEXT): $(getsockname_OBJECTS) $(getsockname_DEPENDENCIES) $(EXTRA_getsockname_DEPENDENCIES) 
+ 	@rm -f getsockname$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(getsockname_OBJECTS) $(getsockname_LDADD) $(LIBS)
+@@ -7191,6 +7542,10 @@
+ 	@rm -f gettid$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(gettid_OBJECTS) $(gettid_LDADD) $(LIBS)
+ 
++gettid--pidns-translation$(EXEEXT): $(gettid__pidns_translation_OBJECTS) $(gettid__pidns_translation_DEPENDENCIES) $(EXTRA_gettid__pidns_translation_DEPENDENCIES) 
++	@rm -f gettid--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(gettid__pidns_translation_OBJECTS) $(gettid__pidns_translation_LDADD) $(LIBS)
++
+ getuid$(EXEEXT): $(getuid_OBJECTS) $(getuid_DEPENDENCIES) $(EXTRA_getuid_DEPENDENCIES) 
+ 	@rm -f getuid$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(getuid_OBJECTS) $(getuid_LDADD) $(LIBS)
+@@ -7271,6 +7626,10 @@
+ 	@rm -f ioctl_block$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(ioctl_block_OBJECTS) $(ioctl_block_LDADD) $(LIBS)
+ 
++ioctl_block--pidns-translation$(EXEEXT): $(ioctl_block__pidns_translation_OBJECTS) $(ioctl_block__pidns_translation_DEPENDENCIES) $(EXTRA_ioctl_block__pidns_translation_DEPENDENCIES) 
++	@rm -f ioctl_block--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(ioctl_block__pidns_translation_OBJECTS) $(ioctl_block__pidns_translation_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)
+@@ -7571,6 +7930,10 @@
+ 	@rm -f ioprio$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(ioprio_OBJECTS) $(ioprio_LDADD) $(LIBS)
+ 
++ioprio--pidns-translation$(EXEEXT): $(ioprio__pidns_translation_OBJECTS) $(ioprio__pidns_translation_DEPENDENCIES) $(EXTRA_ioprio__pidns_translation_DEPENDENCIES) 
++	@rm -f ioprio--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(ioprio__pidns_translation_OBJECTS) $(ioprio__pidns_translation_LDADD) $(LIBS)
++
+ ioprio-Xabbrev$(EXEEXT): $(ioprio_Xabbrev_OBJECTS) $(ioprio_Xabbrev_DEPENDENCIES) $(EXTRA_ioprio_Xabbrev_DEPENDENCIES) 
+ 	@rm -f ioprio-Xabbrev$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(ioprio_Xabbrev_OBJECTS) $(ioprio_Xabbrev_LDADD) $(LIBS)
+@@ -7667,6 +8030,10 @@
+ 	@rm -f kcmp-y$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(kcmp_y_OBJECTS) $(kcmp_y_LDADD) $(LIBS)
+ 
++kcmp-y--pidns-translation$(EXEEXT): $(kcmp_y__pidns_translation_OBJECTS) $(kcmp_y__pidns_translation_DEPENDENCIES) $(EXTRA_kcmp_y__pidns_translation_DEPENDENCIES) 
++	@rm -f kcmp-y--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(kcmp_y__pidns_translation_OBJECTS) $(kcmp_y__pidns_translation_LDADD) $(LIBS)
++
+ kern_features$(EXEEXT): $(kern_features_OBJECTS) $(kern_features_DEPENDENCIES) $(EXTRA_kern_features_DEPENDENCIES) 
+ 	@rm -f kern_features$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(kern_features_OBJECTS) $(kern_features_LDADD) $(LIBS)
+@@ -7715,6 +8082,10 @@
+ 	@rm -f kill$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(kill_OBJECTS) $(kill_LDADD) $(LIBS)
+ 
++kill--pidns-translation$(EXEEXT): $(kill__pidns_translation_OBJECTS) $(kill__pidns_translation_DEPENDENCIES) $(EXTRA_kill__pidns_translation_DEPENDENCIES) 
++	@rm -f kill--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(kill__pidns_translation_OBJECTS) $(kill__pidns_translation_LDADD) $(LIBS)
++
+ kill_child$(EXEEXT): $(kill_child_OBJECTS) $(kill_child_DEPENDENCIES) $(EXTRA_kill_child_DEPENDENCIES) 
+ 	@rm -f kill_child$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(kill_child_OBJECTS) $(kill_child_LDADD) $(LIBS)
+@@ -7823,6 +8194,10 @@
+ 	@rm -f migrate_pages$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(migrate_pages_OBJECTS) $(migrate_pages_LDADD) $(LIBS)
+ 
++migrate_pages--pidns-translation$(EXEEXT): $(migrate_pages__pidns_translation_OBJECTS) $(migrate_pages__pidns_translation_DEPENDENCIES) $(EXTRA_migrate_pages__pidns_translation_DEPENDENCIES) 
++	@rm -f migrate_pages--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(migrate_pages__pidns_translation_OBJECTS) $(migrate_pages__pidns_translation_LDADD) $(LIBS)
++
+ mincore$(EXEEXT): $(mincore_OBJECTS) $(mincore_DEPENDENCIES) $(EXTRA_mincore_DEPENDENCIES) 
+ 	@rm -f mincore$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(mincore_OBJECTS) $(mincore_LDADD) $(LIBS)
+@@ -7935,6 +8310,10 @@
+ 	@rm -f move_pages$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(move_pages_OBJECTS) $(move_pages_LDADD) $(LIBS)
+ 
++move_pages--pidns-translation$(EXEEXT): $(move_pages__pidns_translation_OBJECTS) $(move_pages__pidns_translation_DEPENDENCIES) $(EXTRA_move_pages__pidns_translation_DEPENDENCIES) 
++	@rm -f move_pages--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(move_pages__pidns_translation_OBJECTS) $(move_pages__pidns_translation_LDADD) $(LIBS)
++
+ move_pages-Xabbrev$(EXEEXT): $(move_pages_Xabbrev_OBJECTS) $(move_pages_Xabbrev_DEPENDENCIES) $(EXTRA_move_pages_Xabbrev_DEPENDENCIES) 
+ 	@rm -f move_pages-Xabbrev$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(move_pages_Xabbrev_OBJECTS) $(move_pages_Xabbrev_LDADD) $(LIBS)
+@@ -8027,6 +8406,10 @@
+ 	@rm -f net-sockaddr$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(net_sockaddr_OBJECTS) $(net_sockaddr_LDADD) $(LIBS)
+ 
++net-sockaddr--pidns-translation$(EXEEXT): $(net_sockaddr__pidns_translation_OBJECTS) $(net_sockaddr__pidns_translation_DEPENDENCIES) $(EXTRA_net_sockaddr__pidns_translation_DEPENDENCIES) 
++	@rm -f net-sockaddr--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(net_sockaddr__pidns_translation_OBJECTS) $(net_sockaddr__pidns_translation_LDADD) $(LIBS)
++
+ net-tpacket_req$(EXEEXT): $(net_tpacket_req_OBJECTS) $(net_tpacket_req_DEPENDENCIES) $(EXTRA_net_tpacket_req_DEPENDENCIES) 
+ 	@rm -f net-tpacket_req$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(net_tpacket_req_OBJECTS) $(net_tpacket_req_LDADD) $(LIBS)
+@@ -8063,6 +8446,10 @@
+ 	@rm -f netlink_audit$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(netlink_audit_OBJECTS) $(netlink_audit_LDADD) $(LIBS)
+ 
++netlink_audit--pidns-translation$(EXEEXT): $(netlink_audit__pidns_translation_OBJECTS) $(netlink_audit__pidns_translation_DEPENDENCIES) $(EXTRA_netlink_audit__pidns_translation_DEPENDENCIES) 
++	@rm -f netlink_audit--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(netlink_audit__pidns_translation_OBJECTS) $(netlink_audit__pidns_translation_LDADD) $(LIBS)
++
+ netlink_crypto$(EXEEXT): $(netlink_crypto_OBJECTS) $(netlink_crypto_DEPENDENCIES) $(EXTRA_netlink_crypto_DEPENDENCIES) 
+ 	@rm -f netlink_crypto$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(netlink_crypto_OBJECTS) $(netlink_crypto_LDADD) $(LIBS)
+@@ -8479,6 +8866,10 @@
+ 	@rm -f pidfd_open--decode-fd-socket$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(pidfd_open__decode_fd_socket_OBJECTS) $(pidfd_open__decode_fd_socket_LDADD) $(LIBS)
+ 
++pidfd_open--pidns-translation$(EXEEXT): $(pidfd_open__pidns_translation_OBJECTS) $(pidfd_open__pidns_translation_DEPENDENCIES) $(EXTRA_pidfd_open__pidns_translation_DEPENDENCIES) 
++	@rm -f pidfd_open--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(pidfd_open__pidns_translation_OBJECTS) $(pidfd_open__pidns_translation_LDADD) $(LIBS)
++
+ pidfd_open-P$(EXEEXT): $(pidfd_open_P_OBJECTS) $(pidfd_open_P_DEPENDENCIES) $(EXTRA_pidfd_open_P_DEPENDENCIES) 
+ 	@rm -f pidfd_open-P$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(pidfd_open_P_OBJECTS) $(pidfd_open_P_LDADD) $(LIBS)
+@@ -8495,6 +8886,14 @@
+ 	@rm -f pidfd_send_signal$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(pidfd_send_signal_OBJECTS) $(pidfd_send_signal_LDADD) $(LIBS)
+ 
++pidfd_send_signal--pidns-translation$(EXEEXT): $(pidfd_send_signal__pidns_translation_OBJECTS) $(pidfd_send_signal__pidns_translation_DEPENDENCIES) $(EXTRA_pidfd_send_signal__pidns_translation_DEPENDENCIES) 
++	@rm -f pidfd_send_signal--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(pidfd_send_signal__pidns_translation_OBJECTS) $(pidfd_send_signal__pidns_translation_LDADD) $(LIBS)
++
++pidns-cache$(EXEEXT): $(pidns_cache_OBJECTS) $(pidns_cache_DEPENDENCIES) $(EXTRA_pidns_cache_DEPENDENCIES) 
++	@rm -f pidns-cache$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(pidns_cache_OBJECTS) $(pidns_cache_LDADD) $(LIBS)
++
+ pipe$(EXEEXT): $(pipe_OBJECTS) $(pipe_DEPENDENCIES) $(EXTRA_pipe_DEPENDENCIES) 
+ 	@rm -f pipe$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(pipe_OBJECTS) $(pipe_LDADD) $(LIBS)
+@@ -8647,14 +9046,26 @@
+ 	@rm -f prlimit64$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(prlimit64_OBJECTS) $(prlimit64_LDADD) $(LIBS)
+ 
++prlimit64--pidns-translation$(EXEEXT): $(prlimit64__pidns_translation_OBJECTS) $(prlimit64__pidns_translation_DEPENDENCIES) $(EXTRA_prlimit64__pidns_translation_DEPENDENCIES) 
++	@rm -f prlimit64--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(prlimit64__pidns_translation_OBJECTS) $(prlimit64__pidns_translation_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_readv--pidns-translation$(EXEEXT): $(process_vm_readv__pidns_translation_OBJECTS) $(process_vm_readv__pidns_translation_DEPENDENCIES) $(EXTRA_process_vm_readv__pidns_translation_DEPENDENCIES) 
++	@rm -f process_vm_readv--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(process_vm_readv__pidns_translation_OBJECTS) $(process_vm_readv__pidns_translation_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)
+ 
++process_vm_writev--pidns-translation$(EXEEXT): $(process_vm_writev__pidns_translation_OBJECTS) $(process_vm_writev__pidns_translation_DEPENDENCIES) $(EXTRA_process_vm_writev__pidns_translation_DEPENDENCIES) 
++	@rm -f process_vm_writev--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(process_vm_writev__pidns_translation_OBJECTS) $(process_vm_writev__pidns_translation_LDADD) $(LIBS)
++
+ pselect6$(EXEEXT): $(pselect6_OBJECTS) $(pselect6_DEPENDENCIES) $(EXTRA_pselect6_DEPENDENCIES) 
+ 	@rm -f pselect6$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(pselect6_OBJECTS) $(pselect6_LDADD) $(LIBS)
+@@ -8847,6 +9258,10 @@
+ 	@rm -f rt_sigqueueinfo$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(rt_sigqueueinfo_OBJECTS) $(rt_sigqueueinfo_LDADD) $(LIBS)
+ 
++rt_sigqueueinfo--pidns-translation$(EXEEXT): $(rt_sigqueueinfo__pidns_translation_OBJECTS) $(rt_sigqueueinfo__pidns_translation_DEPENDENCIES) $(EXTRA_rt_sigqueueinfo__pidns_translation_DEPENDENCIES) 
++	@rm -f rt_sigqueueinfo--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(rt_sigqueueinfo__pidns_translation_OBJECTS) $(rt_sigqueueinfo__pidns_translation_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)
+@@ -8863,6 +9278,10 @@
+ 	@rm -f rt_tgsigqueueinfo$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(rt_tgsigqueueinfo_OBJECTS) $(rt_tgsigqueueinfo_LDADD) $(LIBS)
+ 
++rt_tgsigqueueinfo--pidns-translation$(EXEEXT): $(rt_tgsigqueueinfo__pidns_translation_OBJECTS) $(rt_tgsigqueueinfo__pidns_translation_DEPENDENCIES) $(EXTRA_rt_tgsigqueueinfo__pidns_translation_DEPENDENCIES) 
++	@rm -f rt_tgsigqueueinfo--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(rt_tgsigqueueinfo__pidns_translation_OBJECTS) $(rt_tgsigqueueinfo__pidns_translation_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)
+@@ -8903,18 +9322,34 @@
+ 	@rm -f sched_xetaffinity$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(sched_xetaffinity_OBJECTS) $(sched_xetaffinity_LDADD) $(LIBS)
+ 
++sched_xetaffinity--pidns-translation$(EXEEXT): $(sched_xetaffinity__pidns_translation_OBJECTS) $(sched_xetaffinity__pidns_translation_DEPENDENCIES) $(EXTRA_sched_xetaffinity__pidns_translation_DEPENDENCIES) 
++	@rm -f sched_xetaffinity--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(sched_xetaffinity__pidns_translation_OBJECTS) $(sched_xetaffinity__pidns_translation_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_xetattr--pidns-translation$(EXEEXT): $(sched_xetattr__pidns_translation_OBJECTS) $(sched_xetattr__pidns_translation_DEPENDENCIES) $(EXTRA_sched_xetattr__pidns_translation_DEPENDENCIES) 
++	@rm -f sched_xetattr--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(sched_xetattr__pidns_translation_OBJECTS) $(sched_xetattr__pidns_translation_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_xetparam--pidns-translation$(EXEEXT): $(sched_xetparam__pidns_translation_OBJECTS) $(sched_xetparam__pidns_translation_DEPENDENCIES) $(EXTRA_sched_xetparam__pidns_translation_DEPENDENCIES) 
++	@rm -f sched_xetparam--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(sched_xetparam__pidns_translation_OBJECTS) $(sched_xetparam__pidns_translation_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_xetscheduler--pidns-translation$(EXEEXT): $(sched_xetscheduler__pidns_translation_OBJECTS) $(sched_xetscheduler__pidns_translation_DEPENDENCIES) $(EXTRA_sched_xetscheduler__pidns_translation_DEPENDENCIES) 
++	@rm -f sched_xetscheduler--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(sched_xetscheduler__pidns_translation_OBJECTS) $(sched_xetscheduler__pidns_translation_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)
+@@ -9127,6 +9562,10 @@
+ 	@rm -f signal_receive$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(signal_receive_OBJECTS) $(signal_receive_LDADD) $(LIBS)
+ 
++signal_receive--pidns-translation$(EXEEXT): $(signal_receive__pidns_translation_OBJECTS) $(signal_receive__pidns_translation_DEPENDENCIES) $(EXTRA_signal_receive__pidns_translation_DEPENDENCIES) 
++	@rm -f signal_receive--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(signal_receive__pidns_translation_OBJECTS) $(signal_receive__pidns_translation_LDADD) $(LIBS)
++
+ signalfd4$(EXEEXT): $(signalfd4_OBJECTS) $(signalfd4_DEPENDENCIES) $(EXTRA_signalfd4_DEPENDENCIES) 
+ 	@rm -f signalfd4$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(signalfd4_OBJECTS) $(signalfd4_LDADD) $(LIBS)
+@@ -9163,6 +9602,10 @@
+ 	@rm -f so_peercred$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(so_peercred_OBJECTS) $(so_peercred_LDADD) $(LIBS)
+ 
++so_peercred--pidns-translation$(EXEEXT): $(so_peercred__pidns_translation_OBJECTS) $(so_peercred__pidns_translation_DEPENDENCIES) $(EXTRA_so_peercred__pidns_translation_DEPENDENCIES) 
++	@rm -f so_peercred--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(so_peercred__pidns_translation_OBJECTS) $(so_peercred__pidns_translation_LDADD) $(LIBS)
++
+ so_peercred-Xabbrev$(EXEEXT): $(so_peercred_Xabbrev_OBJECTS) $(so_peercred_Xabbrev_DEPENDENCIES) $(EXTRA_so_peercred_Xabbrev_DEPENDENCIES) 
+ 	@rm -f so_peercred-Xabbrev$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(so_peercred_Xabbrev_OBJECTS) $(so_peercred_Xabbrev_LDADD) $(LIBS)
+@@ -9367,6 +9810,10 @@
+ 	@rm -f tgkill$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(tgkill_OBJECTS) $(tgkill_LDADD) $(LIBS)
+ 
++tgkill--pidns-translation$(EXEEXT): $(tgkill__pidns_translation_OBJECTS) $(tgkill__pidns_translation_DEPENDENCIES) $(EXTRA_tgkill__pidns_translation_DEPENDENCIES) 
++	@rm -f tgkill--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(tgkill__pidns_translation_OBJECTS) $(tgkill__pidns_translation_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)
+@@ -9415,10 +9862,18 @@
+ 	@rm -f tkill$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(tkill_OBJECTS) $(tkill_LDADD) $(LIBS)
+ 
++tkill--pidns-translation$(EXEEXT): $(tkill__pidns_translation_OBJECTS) $(tkill__pidns_translation_DEPENDENCIES) $(EXTRA_tkill__pidns_translation_DEPENDENCIES) 
++	@rm -f tkill--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(tkill__pidns_translation_OBJECTS) $(tkill__pidns_translation_LDADD) $(LIBS)
++
+ tracer_ppid_pgid_sid$(EXEEXT): $(tracer_ppid_pgid_sid_OBJECTS) $(tracer_ppid_pgid_sid_DEPENDENCIES) $(EXTRA_tracer_ppid_pgid_sid_DEPENDENCIES) 
+ 	@rm -f tracer_ppid_pgid_sid$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(tracer_ppid_pgid_sid_OBJECTS) $(tracer_ppid_pgid_sid_LDADD) $(LIBS)
+ 
++trie_test$(EXEEXT): $(trie_test_OBJECTS) $(trie_test_DEPENDENCIES) $(EXTRA_trie_test_DEPENDENCIES) 
++	@rm -f trie_test$(EXEEXT)
++	$(AM_V_CCLD)$(trie_test_LINK) $(trie_test_OBJECTS) $(trie_test_LDADD) $(LIBS)
++
+ truncate$(EXEEXT): $(truncate_OBJECTS) $(truncate_DEPENDENCIES) $(EXTRA_truncate_DEPENDENCIES) 
+ 	@rm -f truncate$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(truncate_OBJECTS) $(truncate_LDADD) $(LIBS)
+@@ -9579,6 +10034,10 @@
+ 	@rm -f xet_robust_list$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(xet_robust_list_OBJECTS) $(xet_robust_list_LDADD) $(LIBS)
+ 
++xet_robust_list--pidns-translation$(EXEEXT): $(xet_robust_list__pidns_translation_OBJECTS) $(xet_robust_list__pidns_translation_DEPENDENCIES) $(EXTRA_xet_robust_list__pidns_translation_DEPENDENCIES) 
++	@rm -f xet_robust_list--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(xet_robust_list__pidns_translation_OBJECTS) $(xet_robust_list__pidns_translation_LDADD) $(LIBS)
++
+ xet_thread_area_x86$(EXEEXT): $(xet_thread_area_x86_OBJECTS) $(xet_thread_area_x86_DEPENDENCIES) $(EXTRA_xet_thread_area_x86_DEPENDENCIES) 
+ 	@rm -f xet_thread_area_x86$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(xet_thread_area_x86_OBJECTS) $(xet_thread_area_x86_LDADD) $(LIBS)
+@@ -9591,10 +10050,18 @@
+ 	@rm -f xetpgid$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(xetpgid_OBJECTS) $(xetpgid_LDADD) $(LIBS)
+ 
++xetpgid--pidns-translation$(EXEEXT): $(xetpgid__pidns_translation_OBJECTS) $(xetpgid__pidns_translation_DEPENDENCIES) $(EXTRA_xetpgid__pidns_translation_DEPENDENCIES) 
++	@rm -f xetpgid--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(xetpgid__pidns_translation_OBJECTS) $(xetpgid__pidns_translation_LDADD) $(LIBS)
++
+ xetpriority$(EXEEXT): $(xetpriority_OBJECTS) $(xetpriority_DEPENDENCIES) $(EXTRA_xetpriority_DEPENDENCIES) 
+ 	@rm -f xetpriority$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(xetpriority_OBJECTS) $(xetpriority_LDADD) $(LIBS)
+ 
++xetpriority--pidns-translation$(EXEEXT): $(xetpriority__pidns_translation_OBJECTS) $(xetpriority__pidns_translation_DEPENDENCIES) $(EXTRA_xetpriority__pidns_translation_DEPENDENCIES) 
++	@rm -f xetpriority--pidns-translation$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(xetpriority__pidns_translation_OBJECTS) $(xetpriority__pidns_translation_LDADD) $(LIBS)
++
+ xettimeofday$(EXEEXT): $(xettimeofday_OBJECTS) $(xettimeofday_DEPENDENCIES) $(EXTRA_xettimeofday_DEPENDENCIES) 
+ 	@rm -f xettimeofday$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(xettimeofday_OBJECTS) $(xettimeofday_LDADD) $(LIBS)
+@@ -9714,7 +10181,9 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchown.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchown32.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl64--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl64.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fdatasync.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fflush.Po@am__quote@ # am--include-marker
+@@ -9725,6 +10194,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter_seccomp-perf.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/finit_module.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flock.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fork--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fork-f.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsconfig-P.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fsconfig.Po@am__quote@ # am--include-marker
+@@ -9766,7 +10236,9 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getgroups.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getgroups32.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpeername.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpgrp--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpgrp.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpid--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getpid.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getppid.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getrandom.Po@am__quote@ # am--include-marker
+@@ -9776,8 +10248,10 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getresuid32.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getrlimit.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getrusage.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getsid--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getsid.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getsockname.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettid--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gettid.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getuid.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getuid32.Po@am__quote@ # am--include-marker
+@@ -9798,6 +10272,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/io_uring_register.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/io_uring_setup.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_block--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_block.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_dm-v.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_dm.Po@am__quote@ # am--include-marker
+@@ -9873,6 +10348,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioctl_watchdog.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioperm.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iopl.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioprio--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioprio-Xabbrev.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioprio-Xraw.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioprio-Xverbose.Po@am__quote@ # am--include-marker
+@@ -9896,6 +10372,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_shm-Xverbose.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ipc_shm.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/is_linux_mips_n64.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kcmp-y--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kcmp-y.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kcmp.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kern_features.Po@am__quote@ # am--include-marker
+@@ -9909,6 +10386,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyctl-Xraw.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyctl-Xverbose.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keyctl.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kill--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kill.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kill_child.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ksysent.Po@am__quote@ # am--include-marker
+@@ -9946,6 +10424,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-test_printstrn.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-test_ucopy.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-tprintf.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/link.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list_sigaction_signum.Po@am__quote@ # am--include-marker
+@@ -9968,6 +10447,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memfd_create-Xraw.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memfd_create-Xverbose.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/memfd_create.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/migrate_pages--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/migrate_pages.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mincore.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkdir.Po@am__quote@ # am--include-marker
+@@ -9996,6 +10476,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mount.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_mount-P.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_mount.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_pages--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_pages-Xabbrev.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_pages-Xraw.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/move_pages-Xverbose.Po@am__quote@ # am--include-marker
+@@ -10019,6 +10500,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-packet_mreq-Xraw.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-packet_mreq-Xverbose.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-packet_mreq.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-sockaddr--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-sockaddr.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-tpacket_req.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-tpacket_stats-success.Po@am__quote@ # am--include-marker
+@@ -10028,6 +10510,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-yy-inet6.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-yy-netlink.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/net-yy-unix.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_audit--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_audit.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_crypto.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/netlink_generic.Po@am__quote@ # am--include-marker
+@@ -10132,11 +10615,14 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open--decode-fd-path.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open--decode-fd-pidfd.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open--decode-fd-socket.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open-P.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open-y.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open-yy.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_open.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_send_signal--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidfd_send_signal.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pidns-cache.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipe.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pipe2.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pkey_alloc.Po@am__quote@ # am--include-marker
+@@ -10174,8 +10660,11 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printstrn-umoven-peekdata.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printstrn-umoven-undumpable.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printstrn-umoven.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prlimit64--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prlimit64.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process_vm_readv--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process_vm_readv.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process_vm_writev--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process_vm_writev.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pselect6.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ptrace.Po@am__quote@ # am--include-marker
+@@ -10224,10 +10713,12 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigaction.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigpending.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigprocmask.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigqueueinfo--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigqueueinfo.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigreturn.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigsuspend.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_sigtimedwait.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_tgsigqueueinfo--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rt_tgsigqueueinfo.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/run_expect_termsig.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/s390_guarded_storage-v.Po@am__quote@ # am--include-marker
+@@ -10238,9 +10729,13 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/s390_sthyi.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_get_priority_mxx.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_rr_get_interval.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetaffinity--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetaffinity.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetattr--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetattr.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetparam--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetparam.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetscheduler--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_xetscheduler.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_yield.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/scm_rights.Po@am__quote@ # am--include-marker
+@@ -10294,6 +10789,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigaltstack.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/siginfo.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal_receive--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signal_receive.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signalfd4.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sigpending.Po@am__quote@ # am--include-marker
+@@ -10303,6 +10799,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sleep.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_error.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_linger.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred-Xabbrev.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred-Xraw.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/so_peercred-Xverbose.Po@am__quote@ # am--include-marker
+@@ -10362,6 +10859,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/syslog-success.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/syslog.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tee.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tgkill--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tgkill.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads-execve--quiet-thread-execve.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/threads-execve-q.Po@am__quote@ # am--include-marker
+@@ -10374,6 +10872,7 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/timerfd_xettime.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/times-fail.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/times.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tkill--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tkill.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tracer_ppid_pgid_sid.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/truncate.Po@am__quote@ # am--include-marker
+@@ -10415,10 +10914,13 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/waitpid.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xattr-strings.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xattr.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xet_robust_list--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xet_robust_list.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xet_thread_area_x86.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetitimer.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetpgid--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetpgid.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetpriority--pidns-translation.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xetpriority.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xettimeofday.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zeroargc.Po@am__quote@ # am--include-marker
+@@ -10893,6 +11395,20 @@
+ @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-tprintf.obj `if test -f 'tprintf.c'; then $(CYGPATH_W) 'tprintf.c'; else $(CYGPATH_W) '$(srcdir)/tprintf.c'; fi`
+ 
++libtests_a-xmalloc_for_tests.o: xmalloc_for_tests.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-xmalloc_for_tests.o -MD -MP -MF $(DEPDIR)/libtests_a-xmalloc_for_tests.Tpo -c -o libtests_a-xmalloc_for_tests.o `test -f 'xmalloc_for_tests.c' || echo '$(srcdir)/'`xmalloc_for_tests.c
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-xmalloc_for_tests.Tpo $(DEPDIR)/libtests_a-xmalloc_for_tests.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='xmalloc_for_tests.c' object='libtests_a-xmalloc_for_tests.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-xmalloc_for_tests.o `test -f 'xmalloc_for_tests.c' || echo '$(srcdir)/'`xmalloc_for_tests.c
++
++libtests_a-xmalloc_for_tests.obj: xmalloc_for_tests.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libtests_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libtests_a-xmalloc_for_tests.obj -MD -MP -MF $(DEPDIR)/libtests_a-xmalloc_for_tests.Tpo -c -o libtests_a-xmalloc_for_tests.obj `if test -f 'xmalloc_for_tests.c'; then $(CYGPATH_W) 'xmalloc_for_tests.c'; else $(CYGPATH_W) '$(srcdir)/xmalloc_for_tests.c'; fi`
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libtests_a-xmalloc_for_tests.Tpo $(DEPDIR)/libtests_a-xmalloc_for_tests.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='xmalloc_for_tests.c' object='libtests_a-xmalloc_for_tests.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-xmalloc_for_tests.obj `if test -f 'xmalloc_for_tests.c'; then $(CYGPATH_W) 'xmalloc_for_tests.c'; else $(CYGPATH_W) '$(srcdir)/xmalloc_for_tests.c'; fi`
++
+ fstat64-fstat64.o: fstat64.c
+ @am__fastdepCC_TRUE@	$(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__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/fstat64-fstat64.Tpo $(DEPDIR)/fstat64-fstat64.Po
+@@ -11103,6 +11619,34 @@
+ @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(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`
+ 
++trie_test-trie_test.o: trie_test.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -MT trie_test-trie_test.o -MD -MP -MF $(DEPDIR)/trie_test-trie_test.Tpo -c -o trie_test-trie_test.o `test -f 'trie_test.c' || echo '$(srcdir)/'`trie_test.c
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/trie_test-trie_test.Tpo $(DEPDIR)/trie_test-trie_test.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='trie_test.c' object='trie_test-trie_test.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) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -c -o trie_test-trie_test.o `test -f 'trie_test.c' || echo '$(srcdir)/'`trie_test.c
++
++trie_test-trie_test.obj: trie_test.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -MT trie_test-trie_test.obj -MD -MP -MF $(DEPDIR)/trie_test-trie_test.Tpo -c -o trie_test-trie_test.obj `if test -f 'trie_test.c'; then $(CYGPATH_W) 'trie_test.c'; else $(CYGPATH_W) '$(srcdir)/trie_test.c'; fi`
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/trie_test-trie_test.Tpo $(DEPDIR)/trie_test-trie_test.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='trie_test.c' object='trie_test-trie_test.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) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -c -o trie_test-trie_test.obj `if test -f 'trie_test.c'; then $(CYGPATH_W) 'trie_test.c'; else $(CYGPATH_W) '$(srcdir)/trie_test.c'; fi`
++
++trie_test-trie_for_tests.o: trie_for_tests.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -MT trie_test-trie_for_tests.o -MD -MP -MF $(DEPDIR)/trie_test-trie_for_tests.Tpo -c -o trie_test-trie_for_tests.o `test -f 'trie_for_tests.c' || echo '$(srcdir)/'`trie_for_tests.c
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/trie_test-trie_for_tests.Tpo $(DEPDIR)/trie_test-trie_for_tests.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='trie_for_tests.c' object='trie_test-trie_for_tests.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) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -c -o trie_test-trie_for_tests.o `test -f 'trie_for_tests.c' || echo '$(srcdir)/'`trie_for_tests.c
++
++trie_test-trie_for_tests.obj: trie_for_tests.c
++@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -MT trie_test-trie_for_tests.obj -MD -MP -MF $(DEPDIR)/trie_test-trie_for_tests.Tpo -c -o trie_test-trie_for_tests.obj `if test -f 'trie_for_tests.c'; then $(CYGPATH_W) 'trie_for_tests.c'; else $(CYGPATH_W) '$(srcdir)/trie_for_tests.c'; fi`
++@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/trie_test-trie_for_tests.Tpo $(DEPDIR)/trie_test-trie_for_tests.Po
++@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='trie_for_tests.c' object='trie_test-trie_for_tests.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) $(trie_test_CPPFLAGS) $(CPPFLAGS) $(trie_test_CFLAGS) $(CFLAGS) -c -o trie_test-trie_for_tests.obj `if test -f 'trie_for_tests.c'; then $(CYGPATH_W) 'trie_for_tests.c'; else $(CYGPATH_W) '$(srcdir)/trie_for_tests.c'; fi`
++
+ truncate64-truncate64.o: truncate64.c
+ @am__fastdepCC_TRUE@	$(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__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/truncate64-truncate64.Tpo $(DEPDIR)/truncate64-truncate64.Po
+@@ -11551,7 +12095,9 @@
+ 	-rm -f ./$(DEPDIR)/fchown.Po
+ 	-rm -f ./$(DEPDIR)/fchown32.Po
+ 	-rm -f ./$(DEPDIR)/fchownat.Po
++	-rm -f ./$(DEPDIR)/fcntl--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/fcntl.Po
++	-rm -f ./$(DEPDIR)/fcntl64--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/fcntl64.Po
+ 	-rm -f ./$(DEPDIR)/fdatasync.Po
+ 	-rm -f ./$(DEPDIR)/fflush.Po
+@@ -11562,6 +12108,7 @@
+ 	-rm -f ./$(DEPDIR)/filter_seccomp-perf.Po
+ 	-rm -f ./$(DEPDIR)/finit_module.Po
+ 	-rm -f ./$(DEPDIR)/flock.Po
++	-rm -f ./$(DEPDIR)/fork--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/fork-f.Po
+ 	-rm -f ./$(DEPDIR)/fsconfig-P.Po
+ 	-rm -f ./$(DEPDIR)/fsconfig.Po
+@@ -11603,7 +12150,9 @@
+ 	-rm -f ./$(DEPDIR)/getgroups.Po
+ 	-rm -f ./$(DEPDIR)/getgroups32.Po
+ 	-rm -f ./$(DEPDIR)/getpeername.Po
++	-rm -f ./$(DEPDIR)/getpgrp--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/getpgrp.Po
++	-rm -f ./$(DEPDIR)/getpid--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/getpid.Po
+ 	-rm -f ./$(DEPDIR)/getppid.Po
+ 	-rm -f ./$(DEPDIR)/getrandom.Po
+@@ -11613,8 +12162,10 @@
+ 	-rm -f ./$(DEPDIR)/getresuid32.Po
+ 	-rm -f ./$(DEPDIR)/getrlimit.Po
+ 	-rm -f ./$(DEPDIR)/getrusage.Po
++	-rm -f ./$(DEPDIR)/getsid--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/getsid.Po
+ 	-rm -f ./$(DEPDIR)/getsockname.Po
++	-rm -f ./$(DEPDIR)/gettid--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/gettid.Po
+ 	-rm -f ./$(DEPDIR)/getuid.Po
+ 	-rm -f ./$(DEPDIR)/getuid32.Po
+@@ -11635,6 +12186,7 @@
+ 	-rm -f ./$(DEPDIR)/io_uring_register.Po
+ 	-rm -f ./$(DEPDIR)/io_uring_setup.Po
+ 	-rm -f ./$(DEPDIR)/ioctl.Po
++	-rm -f ./$(DEPDIR)/ioctl_block--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/ioctl_block.Po
+ 	-rm -f ./$(DEPDIR)/ioctl_dm-v.Po
+ 	-rm -f ./$(DEPDIR)/ioctl_dm.Po
+@@ -11710,6 +12262,7 @@
+ 	-rm -f ./$(DEPDIR)/ioctl_watchdog.Po
+ 	-rm -f ./$(DEPDIR)/ioperm.Po
+ 	-rm -f ./$(DEPDIR)/iopl.Po
++	-rm -f ./$(DEPDIR)/ioprio--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/ioprio-Xabbrev.Po
+ 	-rm -f ./$(DEPDIR)/ioprio-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/ioprio-Xverbose.Po
+@@ -11733,6 +12286,7 @@
+ 	-rm -f ./$(DEPDIR)/ipc_shm-Xverbose.Po
+ 	-rm -f ./$(DEPDIR)/ipc_shm.Po
+ 	-rm -f ./$(DEPDIR)/is_linux_mips_n64.Po
++	-rm -f ./$(DEPDIR)/kcmp-y--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/kcmp-y.Po
+ 	-rm -f ./$(DEPDIR)/kcmp.Po
+ 	-rm -f ./$(DEPDIR)/kern_features.Po
+@@ -11746,6 +12300,7 @@
+ 	-rm -f ./$(DEPDIR)/keyctl-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/keyctl-Xverbose.Po
+ 	-rm -f ./$(DEPDIR)/keyctl.Po
++	-rm -f ./$(DEPDIR)/kill--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/kill.Po
+ 	-rm -f ./$(DEPDIR)/kill_child.Po
+ 	-rm -f ./$(DEPDIR)/ksysent.Po
+@@ -11783,6 +12338,7 @@
+ 	-rm -f ./$(DEPDIR)/libtests_a-test_printstrn.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-test_ucopy.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-tprintf.Po
++	-rm -f ./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po
+ 	-rm -f ./$(DEPDIR)/link.Po
+ 	-rm -f ./$(DEPDIR)/linkat.Po
+ 	-rm -f ./$(DEPDIR)/list_sigaction_signum.Po
+@@ -11805,6 +12361,7 @@
+ 	-rm -f ./$(DEPDIR)/memfd_create-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/memfd_create-Xverbose.Po
+ 	-rm -f ./$(DEPDIR)/memfd_create.Po
++	-rm -f ./$(DEPDIR)/migrate_pages--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/migrate_pages.Po
+ 	-rm -f ./$(DEPDIR)/mincore.Po
+ 	-rm -f ./$(DEPDIR)/mkdir.Po
+@@ -11833,6 +12390,7 @@
+ 	-rm -f ./$(DEPDIR)/mount.Po
+ 	-rm -f ./$(DEPDIR)/move_mount-P.Po
+ 	-rm -f ./$(DEPDIR)/move_mount.Po
++	-rm -f ./$(DEPDIR)/move_pages--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/move_pages-Xabbrev.Po
+ 	-rm -f ./$(DEPDIR)/move_pages-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/move_pages-Xverbose.Po
+@@ -11856,6 +12414,7 @@
+ 	-rm -f ./$(DEPDIR)/net-packet_mreq-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/net-packet_mreq-Xverbose.Po
+ 	-rm -f ./$(DEPDIR)/net-packet_mreq.Po
++	-rm -f ./$(DEPDIR)/net-sockaddr--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/net-sockaddr.Po
+ 	-rm -f ./$(DEPDIR)/net-tpacket_req.Po
+ 	-rm -f ./$(DEPDIR)/net-tpacket_stats-success.Po
+@@ -11865,6 +12424,7 @@
+ 	-rm -f ./$(DEPDIR)/net-yy-inet6.Po
+ 	-rm -f ./$(DEPDIR)/net-yy-netlink.Po
+ 	-rm -f ./$(DEPDIR)/net-yy-unix.Po
++	-rm -f ./$(DEPDIR)/netlink_audit--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/netlink_audit.Po
+ 	-rm -f ./$(DEPDIR)/netlink_crypto.Po
+ 	-rm -f ./$(DEPDIR)/netlink_generic.Po
+@@ -11969,11 +12529,14 @@
+ 	-rm -f ./$(DEPDIR)/pidfd_open--decode-fd-path.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open--decode-fd-pidfd.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open--decode-fd-socket.Po
++	-rm -f ./$(DEPDIR)/pidfd_open--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open-P.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open-y.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open-yy.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open.Po
++	-rm -f ./$(DEPDIR)/pidfd_send_signal--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_send_signal.Po
++	-rm -f ./$(DEPDIR)/pidns-cache.Po
+ 	-rm -f ./$(DEPDIR)/pipe.Po
+ 	-rm -f ./$(DEPDIR)/pipe2.Po
+ 	-rm -f ./$(DEPDIR)/pkey_alloc.Po
+@@ -12011,8 +12574,11 @@
+ 	-rm -f ./$(DEPDIR)/printstrn-umoven-peekdata.Po
+ 	-rm -f ./$(DEPDIR)/printstrn-umoven-undumpable.Po
+ 	-rm -f ./$(DEPDIR)/printstrn-umoven.Po
++	-rm -f ./$(DEPDIR)/prlimit64--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/prlimit64.Po
++	-rm -f ./$(DEPDIR)/process_vm_readv--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/process_vm_readv.Po
++	-rm -f ./$(DEPDIR)/process_vm_writev--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/process_vm_writev.Po
+ 	-rm -f ./$(DEPDIR)/pselect6.Po
+ 	-rm -f ./$(DEPDIR)/ptrace.Po
+@@ -12061,10 +12627,12 @@
+ 	-rm -f ./$(DEPDIR)/rt_sigaction.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigpending.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigprocmask.Po
++	-rm -f ./$(DEPDIR)/rt_sigqueueinfo--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigqueueinfo.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigreturn.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigsuspend.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigtimedwait.Po
++	-rm -f ./$(DEPDIR)/rt_tgsigqueueinfo--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/rt_tgsigqueueinfo.Po
+ 	-rm -f ./$(DEPDIR)/run_expect_termsig.Po
+ 	-rm -f ./$(DEPDIR)/s390_guarded_storage-v.Po
+@@ -12075,9 +12643,13 @@
+ 	-rm -f ./$(DEPDIR)/s390_sthyi.Po
+ 	-rm -f ./$(DEPDIR)/sched_get_priority_mxx.Po
+ 	-rm -f ./$(DEPDIR)/sched_rr_get_interval.Po
++	-rm -f ./$(DEPDIR)/sched_xetaffinity--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/sched_xetaffinity.Po
++	-rm -f ./$(DEPDIR)/sched_xetattr--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/sched_xetattr.Po
++	-rm -f ./$(DEPDIR)/sched_xetparam--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/sched_xetparam.Po
++	-rm -f ./$(DEPDIR)/sched_xetscheduler--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/sched_xetscheduler.Po
+ 	-rm -f ./$(DEPDIR)/sched_yield.Po
+ 	-rm -f ./$(DEPDIR)/scm_rights.Po
+@@ -12131,6 +12703,7 @@
+ 	-rm -f ./$(DEPDIR)/sigaltstack.Po
+ 	-rm -f ./$(DEPDIR)/siginfo.Po
+ 	-rm -f ./$(DEPDIR)/signal.Po
++	-rm -f ./$(DEPDIR)/signal_receive--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/signal_receive.Po
+ 	-rm -f ./$(DEPDIR)/signalfd4.Po
+ 	-rm -f ./$(DEPDIR)/sigpending.Po
+@@ -12140,6 +12713,7 @@
+ 	-rm -f ./$(DEPDIR)/sleep.Po
+ 	-rm -f ./$(DEPDIR)/so_error.Po
+ 	-rm -f ./$(DEPDIR)/so_linger.Po
++	-rm -f ./$(DEPDIR)/so_peercred--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/so_peercred-Xabbrev.Po
+ 	-rm -f ./$(DEPDIR)/so_peercred-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/so_peercred-Xverbose.Po
+@@ -12199,6 +12773,7 @@
+ 	-rm -f ./$(DEPDIR)/syslog-success.Po
+ 	-rm -f ./$(DEPDIR)/syslog.Po
+ 	-rm -f ./$(DEPDIR)/tee.Po
++	-rm -f ./$(DEPDIR)/tgkill--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/tgkill.Po
+ 	-rm -f ./$(DEPDIR)/threads-execve--quiet-thread-execve.Po
+ 	-rm -f ./$(DEPDIR)/threads-execve-q.Po
+@@ -12211,6 +12786,7 @@
+ 	-rm -f ./$(DEPDIR)/timerfd_xettime.Po
+ 	-rm -f ./$(DEPDIR)/times-fail.Po
+ 	-rm -f ./$(DEPDIR)/times.Po
++	-rm -f ./$(DEPDIR)/tkill--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/tkill.Po
+ 	-rm -f ./$(DEPDIR)/tracer_ppid_pgid_sid.Po
+ 	-rm -f ./$(DEPDIR)/truncate.Po
+@@ -12252,10 +12828,13 @@
+ 	-rm -f ./$(DEPDIR)/waitpid.Po
+ 	-rm -f ./$(DEPDIR)/xattr-strings.Po
+ 	-rm -f ./$(DEPDIR)/xattr.Po
++	-rm -f ./$(DEPDIR)/xet_robust_list--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/xet_robust_list.Po
+ 	-rm -f ./$(DEPDIR)/xet_thread_area_x86.Po
+ 	-rm -f ./$(DEPDIR)/xetitimer.Po
++	-rm -f ./$(DEPDIR)/xetpgid--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/xetpgid.Po
++	-rm -f ./$(DEPDIR)/xetpriority--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/xetpriority.Po
+ 	-rm -f ./$(DEPDIR)/xettimeofday.Po
+ 	-rm -f ./$(DEPDIR)/zeroargc.Po
+@@ -12409,7 +12988,9 @@
+ 	-rm -f ./$(DEPDIR)/fchown.Po
+ 	-rm -f ./$(DEPDIR)/fchown32.Po
+ 	-rm -f ./$(DEPDIR)/fchownat.Po
++	-rm -f ./$(DEPDIR)/fcntl--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/fcntl.Po
++	-rm -f ./$(DEPDIR)/fcntl64--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/fcntl64.Po
+ 	-rm -f ./$(DEPDIR)/fdatasync.Po
+ 	-rm -f ./$(DEPDIR)/fflush.Po
+@@ -12420,6 +13001,7 @@
+ 	-rm -f ./$(DEPDIR)/filter_seccomp-perf.Po
+ 	-rm -f ./$(DEPDIR)/finit_module.Po
+ 	-rm -f ./$(DEPDIR)/flock.Po
++	-rm -f ./$(DEPDIR)/fork--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/fork-f.Po
+ 	-rm -f ./$(DEPDIR)/fsconfig-P.Po
+ 	-rm -f ./$(DEPDIR)/fsconfig.Po
+@@ -12461,7 +13043,9 @@
+ 	-rm -f ./$(DEPDIR)/getgroups.Po
+ 	-rm -f ./$(DEPDIR)/getgroups32.Po
+ 	-rm -f ./$(DEPDIR)/getpeername.Po
++	-rm -f ./$(DEPDIR)/getpgrp--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/getpgrp.Po
++	-rm -f ./$(DEPDIR)/getpid--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/getpid.Po
+ 	-rm -f ./$(DEPDIR)/getppid.Po
+ 	-rm -f ./$(DEPDIR)/getrandom.Po
+@@ -12471,8 +13055,10 @@
+ 	-rm -f ./$(DEPDIR)/getresuid32.Po
+ 	-rm -f ./$(DEPDIR)/getrlimit.Po
+ 	-rm -f ./$(DEPDIR)/getrusage.Po
++	-rm -f ./$(DEPDIR)/getsid--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/getsid.Po
+ 	-rm -f ./$(DEPDIR)/getsockname.Po
++	-rm -f ./$(DEPDIR)/gettid--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/gettid.Po
+ 	-rm -f ./$(DEPDIR)/getuid.Po
+ 	-rm -f ./$(DEPDIR)/getuid32.Po
+@@ -12493,6 +13079,7 @@
+ 	-rm -f ./$(DEPDIR)/io_uring_register.Po
+ 	-rm -f ./$(DEPDIR)/io_uring_setup.Po
+ 	-rm -f ./$(DEPDIR)/ioctl.Po
++	-rm -f ./$(DEPDIR)/ioctl_block--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/ioctl_block.Po
+ 	-rm -f ./$(DEPDIR)/ioctl_dm-v.Po
+ 	-rm -f ./$(DEPDIR)/ioctl_dm.Po
+@@ -12568,6 +13155,7 @@
+ 	-rm -f ./$(DEPDIR)/ioctl_watchdog.Po
+ 	-rm -f ./$(DEPDIR)/ioperm.Po
+ 	-rm -f ./$(DEPDIR)/iopl.Po
++	-rm -f ./$(DEPDIR)/ioprio--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/ioprio-Xabbrev.Po
+ 	-rm -f ./$(DEPDIR)/ioprio-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/ioprio-Xverbose.Po
+@@ -12591,6 +13179,7 @@
+ 	-rm -f ./$(DEPDIR)/ipc_shm-Xverbose.Po
+ 	-rm -f ./$(DEPDIR)/ipc_shm.Po
+ 	-rm -f ./$(DEPDIR)/is_linux_mips_n64.Po
++	-rm -f ./$(DEPDIR)/kcmp-y--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/kcmp-y.Po
+ 	-rm -f ./$(DEPDIR)/kcmp.Po
+ 	-rm -f ./$(DEPDIR)/kern_features.Po
+@@ -12604,6 +13193,7 @@
+ 	-rm -f ./$(DEPDIR)/keyctl-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/keyctl-Xverbose.Po
+ 	-rm -f ./$(DEPDIR)/keyctl.Po
++	-rm -f ./$(DEPDIR)/kill--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/kill.Po
+ 	-rm -f ./$(DEPDIR)/kill_child.Po
+ 	-rm -f ./$(DEPDIR)/ksysent.Po
+@@ -12641,6 +13231,7 @@
+ 	-rm -f ./$(DEPDIR)/libtests_a-test_printstrn.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-test_ucopy.Po
+ 	-rm -f ./$(DEPDIR)/libtests_a-tprintf.Po
++	-rm -f ./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po
+ 	-rm -f ./$(DEPDIR)/link.Po
+ 	-rm -f ./$(DEPDIR)/linkat.Po
+ 	-rm -f ./$(DEPDIR)/list_sigaction_signum.Po
+@@ -12663,6 +13254,7 @@
+ 	-rm -f ./$(DEPDIR)/memfd_create-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/memfd_create-Xverbose.Po
+ 	-rm -f ./$(DEPDIR)/memfd_create.Po
++	-rm -f ./$(DEPDIR)/migrate_pages--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/migrate_pages.Po
+ 	-rm -f ./$(DEPDIR)/mincore.Po
+ 	-rm -f ./$(DEPDIR)/mkdir.Po
+@@ -12691,6 +13283,7 @@
+ 	-rm -f ./$(DEPDIR)/mount.Po
+ 	-rm -f ./$(DEPDIR)/move_mount-P.Po
+ 	-rm -f ./$(DEPDIR)/move_mount.Po
++	-rm -f ./$(DEPDIR)/move_pages--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/move_pages-Xabbrev.Po
+ 	-rm -f ./$(DEPDIR)/move_pages-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/move_pages-Xverbose.Po
+@@ -12714,6 +13307,7 @@
+ 	-rm -f ./$(DEPDIR)/net-packet_mreq-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/net-packet_mreq-Xverbose.Po
+ 	-rm -f ./$(DEPDIR)/net-packet_mreq.Po
++	-rm -f ./$(DEPDIR)/net-sockaddr--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/net-sockaddr.Po
+ 	-rm -f ./$(DEPDIR)/net-tpacket_req.Po
+ 	-rm -f ./$(DEPDIR)/net-tpacket_stats-success.Po
+@@ -12723,6 +13317,7 @@
+ 	-rm -f ./$(DEPDIR)/net-yy-inet6.Po
+ 	-rm -f ./$(DEPDIR)/net-yy-netlink.Po
+ 	-rm -f ./$(DEPDIR)/net-yy-unix.Po
++	-rm -f ./$(DEPDIR)/netlink_audit--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/netlink_audit.Po
+ 	-rm -f ./$(DEPDIR)/netlink_crypto.Po
+ 	-rm -f ./$(DEPDIR)/netlink_generic.Po
+@@ -12827,11 +13422,14 @@
+ 	-rm -f ./$(DEPDIR)/pidfd_open--decode-fd-path.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open--decode-fd-pidfd.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open--decode-fd-socket.Po
++	-rm -f ./$(DEPDIR)/pidfd_open--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open-P.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open-y.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open-yy.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_open.Po
++	-rm -f ./$(DEPDIR)/pidfd_send_signal--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/pidfd_send_signal.Po
++	-rm -f ./$(DEPDIR)/pidns-cache.Po
+ 	-rm -f ./$(DEPDIR)/pipe.Po
+ 	-rm -f ./$(DEPDIR)/pipe2.Po
+ 	-rm -f ./$(DEPDIR)/pkey_alloc.Po
+@@ -12869,8 +13467,11 @@
+ 	-rm -f ./$(DEPDIR)/printstrn-umoven-peekdata.Po
+ 	-rm -f ./$(DEPDIR)/printstrn-umoven-undumpable.Po
+ 	-rm -f ./$(DEPDIR)/printstrn-umoven.Po
++	-rm -f ./$(DEPDIR)/prlimit64--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/prlimit64.Po
++	-rm -f ./$(DEPDIR)/process_vm_readv--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/process_vm_readv.Po
++	-rm -f ./$(DEPDIR)/process_vm_writev--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/process_vm_writev.Po
+ 	-rm -f ./$(DEPDIR)/pselect6.Po
+ 	-rm -f ./$(DEPDIR)/ptrace.Po
+@@ -12919,10 +13520,12 @@
+ 	-rm -f ./$(DEPDIR)/rt_sigaction.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigpending.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigprocmask.Po
++	-rm -f ./$(DEPDIR)/rt_sigqueueinfo--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigqueueinfo.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigreturn.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigsuspend.Po
+ 	-rm -f ./$(DEPDIR)/rt_sigtimedwait.Po
++	-rm -f ./$(DEPDIR)/rt_tgsigqueueinfo--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/rt_tgsigqueueinfo.Po
+ 	-rm -f ./$(DEPDIR)/run_expect_termsig.Po
+ 	-rm -f ./$(DEPDIR)/s390_guarded_storage-v.Po
+@@ -12933,9 +13536,13 @@
+ 	-rm -f ./$(DEPDIR)/s390_sthyi.Po
+ 	-rm -f ./$(DEPDIR)/sched_get_priority_mxx.Po
+ 	-rm -f ./$(DEPDIR)/sched_rr_get_interval.Po
++	-rm -f ./$(DEPDIR)/sched_xetaffinity--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/sched_xetaffinity.Po
++	-rm -f ./$(DEPDIR)/sched_xetattr--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/sched_xetattr.Po
++	-rm -f ./$(DEPDIR)/sched_xetparam--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/sched_xetparam.Po
++	-rm -f ./$(DEPDIR)/sched_xetscheduler--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/sched_xetscheduler.Po
+ 	-rm -f ./$(DEPDIR)/sched_yield.Po
+ 	-rm -f ./$(DEPDIR)/scm_rights.Po
+@@ -12989,6 +13596,7 @@
+ 	-rm -f ./$(DEPDIR)/sigaltstack.Po
+ 	-rm -f ./$(DEPDIR)/siginfo.Po
+ 	-rm -f ./$(DEPDIR)/signal.Po
++	-rm -f ./$(DEPDIR)/signal_receive--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/signal_receive.Po
+ 	-rm -f ./$(DEPDIR)/signalfd4.Po
+ 	-rm -f ./$(DEPDIR)/sigpending.Po
+@@ -12998,6 +13606,7 @@
+ 	-rm -f ./$(DEPDIR)/sleep.Po
+ 	-rm -f ./$(DEPDIR)/so_error.Po
+ 	-rm -f ./$(DEPDIR)/so_linger.Po
++	-rm -f ./$(DEPDIR)/so_peercred--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/so_peercred-Xabbrev.Po
+ 	-rm -f ./$(DEPDIR)/so_peercred-Xraw.Po
+ 	-rm -f ./$(DEPDIR)/so_peercred-Xverbose.Po
+@@ -13057,6 +13666,7 @@
+ 	-rm -f ./$(DEPDIR)/syslog-success.Po
+ 	-rm -f ./$(DEPDIR)/syslog.Po
+ 	-rm -f ./$(DEPDIR)/tee.Po
++	-rm -f ./$(DEPDIR)/tgkill--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/tgkill.Po
+ 	-rm -f ./$(DEPDIR)/threads-execve--quiet-thread-execve.Po
+ 	-rm -f ./$(DEPDIR)/threads-execve-q.Po
+@@ -13069,6 +13679,7 @@
+ 	-rm -f ./$(DEPDIR)/timerfd_xettime.Po
+ 	-rm -f ./$(DEPDIR)/times-fail.Po
+ 	-rm -f ./$(DEPDIR)/times.Po
++	-rm -f ./$(DEPDIR)/tkill--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/tkill.Po
+ 	-rm -f ./$(DEPDIR)/tracer_ppid_pgid_sid.Po
+ 	-rm -f ./$(DEPDIR)/truncate.Po
+@@ -13110,14 +13721,26 @@
+ 	-rm -f ./$(DEPDIR)/waitpid.Po
+ 	-rm -f ./$(DEPDIR)/xattr-strings.Po
+ 	-rm -f ./$(DEPDIR)/xattr.Po
++	-rm -f ./$(DEPDIR)/xet_robust_list--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/xet_robust_list.Po
+ 	-rm -f ./$(DEPDIR)/xet_thread_area_x86.Po
+ 	-rm -f ./$(DEPDIR)/xetitimer.Po
++	-rm -f ./$(DEPDIR)/xetpgid--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/xetpgid.Po
++	-rm -f ./$(DEPDIR)/xetpriority--pidns-translation.Po
+ 	-rm -f ./$(DEPDIR)/xetpriority.Po
+ 	-rm -f ./$(DEPDIR)/xettimeofday.Po
+ 	-rm -f ./$(DEPDIR)/zeroargc.Po
+ 	-rm -f Makefile
++distclean-am: clean-am distclean-compile distclean-generic \
++	distclean-tags
++
++dvi: dvi-am
++
++dvi-am:
++
++html: html-am
++	-rm -f Makefile
+ maintainer-clean-am: distclean-am maintainer-clean-generic
+ 
+ mostlyclean: mostlyclean-am
+@@ -13407,9 +14030,15 @@
+ $(srcdir)/fcntl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/fcntl--pidns-translation.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)/fcntl64--pidns-translation.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) $^ $@
+ 
+@@ -13569,9 +14198,15 @@
+ $(srcdir)/getpgrp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/getpgrp--pidns-translation.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)/getpid--pidns-translation.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) $^ $@
+ 
+@@ -13599,6 +14234,9 @@
+ $(srcdir)/getsid.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/getsid--pidns-translation.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) $^ $@
+ 
+@@ -13878,6 +14516,9 @@
+ $(srcdir)/ioprio.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/ioprio--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/ioprio-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13944,6 +14585,9 @@
+ $(srcdir)/kcmp-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/kcmp-y--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/kern_features.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13980,6 +14624,9 @@
+ $(srcdir)/kill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/kill--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/ksysent.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -14043,6 +14690,9 @@
+ $(srcdir)/migrate_pages.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/migrate_pages--pidns-translation.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) $^ $@
+ 
+@@ -14133,6 +14783,9 @@
+ $(srcdir)/move_pages-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/move_pages--pidns-translation.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) $^ $@
+ 
+@@ -14190,6 +14843,9 @@
+ $(srcdir)/net-sockaddr.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/net-sockaddr--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/net-tpacket_req.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -14499,9 +15155,15 @@
+ $(srcdir)/pidfd_open-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/pidfd_open--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/pidfd_send_signal.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/pidfd_send_signal--pidns-translation.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) $^ $@
+ 
+@@ -14568,12 +15230,21 @@
+ $(srcdir)/prlimit64.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/prlimit64--pidns-translation.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_readv--pidns-translation.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)/process_vm_writev--pidns-translation.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) $^ $@
+ 
+@@ -14682,6 +15353,9 @@
+ $(srcdir)/rt_sigqueueinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/rt_sigqueueinfo--pidns-translation.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) $^ $@
+ 
+@@ -14694,6 +15368,9 @@
+ $(srcdir)/rt_tgsigqueueinfo.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/rt_tgsigqueueinfo--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/s390_guarded_storage.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -14724,15 +15401,27 @@
+ $(srcdir)/sched_xetaffinity.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/sched_xetaffinity--pidns-translation.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_xetattr--pidns-translation.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_xetparam--pidns-translation.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_xetscheduler--pidns-translation.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) $^ $@
+ 
+@@ -14871,6 +15560,9 @@
+ $(srcdir)/signal_receive.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/signal_receive--pidns-translation.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) $^ $@
+ 
+@@ -14904,6 +15596,9 @@
+ $(srcdir)/so_peercred-Xverbose.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/so_peercred--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/sock_filter-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -15120,6 +15815,9 @@
+ $(srcdir)/tgkill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/tgkill--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/threads-execve--quiet-thread-execve.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -15153,6 +15851,9 @@
+ $(srcdir)/tkill.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/tkill--pidns-translation.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/trace_clock.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -15201,6 +15902,9 @@
+ $(srcdir)/trace_statfs_like.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/trie_test.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) $^ $@
+ 
+@@ -15291,15 +15995,24 @@
+ $(srcdir)/xet_robust_list.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/xet_robust_list--pidns-translation.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)/xetpgid--pidns-translation.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)/xetpriority--pidns-translation.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/SOURCES/0201-limit-qual_fault-scope-on-aarch64.patch b/SOURCES/0201-limit-qual_fault-scope-on-aarch64.patch
deleted file mode 100644
index 49c2e90..0000000
--- a/SOURCES/0201-limit-qual_fault-scope-on-aarch64.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-Limit the scope of qual_fault.tests on aarch64 as otherwise it takes
-unacceptable amount of time on available builders (more than an hour).
-Index: strace-4.24/tests/qual_fault.test
-===================================================================
---- strace-4.24.orig/tests/qual_fault.test	2019-06-13 17:37:10.708269613 +0200
-+++ strace-4.24/tests/qual_fault.test	2019-06-13 17:41:29.358829506 +0200
-@@ -75,18 +75,32 @@
- 	done
- }
- 
--for err in '' ENOSYS 22 einval; do
-+
-+case "$STRACE_ARCH" in
-+	aarch64)
-+	NUMBERS1='2'
-+	NUMBERS2='3'
-+	ERRS='EnoSys 22'
-+	;;
-+	*)
-+	ERRS='ENOSYS 22 einval'
-+	NUMBERS1='1 2 3 5 7 11'
-+	NUMBERS2='1 2 3 5 7 11'
-+	;;
-+esac
-+
-+for err in '' $(echo $ERRS); do
- 	for fault in writev desc,51; do
- 		check_fault_injection \
- 			writev $fault "$err" '' '' 1 -efault=chdir
- 		check_fault_injection \
- 			writev $fault "$err" '' '' 1 -efault=chdir -efault=none
--		for F in 1 2 3 5 7 11; do
-+		for F in $(echo $NUMBERS1); do
- 			check_fault_injection \
- 				writev $fault "$err" $F '' 1
- 			check_fault_injection \
- 				writev $fault "$err" $F + 1
--			for S in 1 2 3 5 7 11; do
-+			for S in $(echo $NUMBERS2); do
- 				check_fault_injection \
- 					writev $fault "$err" $F $S 1
- 				check_fault_injection \
diff --git a/SOURCES/2001-limit-qual_fault-scope-on-aarch64.patch b/SOURCES/2001-limit-qual_fault-scope-on-aarch64.patch
new file mode 100644
index 0000000..a1e42f3
--- /dev/null
+++ b/SOURCES/2001-limit-qual_fault-scope-on-aarch64.patch
@@ -0,0 +1,60 @@
+Limit the scope of qual_fault.tests on aarch64 as otherwise it takes
+unacceptable amount of time on available builders (more than an hour).
+Index: strace-5.7/tests/qual_fault.test
+===================================================================
+--- strace-5.7.orig/tests/qual_fault.test	2020-06-02 10:41:25.870177356 +0200
++++ strace-5.7/tests/qual_fault.test	2020-06-02 10:48:33.284302800 +0200
+@@ -83,19 +83,35 @@
+ 	done
+ }
+ 
+-for err in '' ENOSYS 22 einval; do
++
++case "$STRACE_ARCH" in
++	aarch64)
++	ERRS='EnoSys 22'
++	NUMBERS1='2'
++	NUMBERS2='3'
++	NUMBERS3='5'
++	;;
++	*)
++	ERRS='ENOSYS 22 einval'
++	NUMBERS1='1 2 3 5 7 11'
++	NUMBERS2='1 2 3 5 7 11'
++	NUMBERS3='1 2 3 5 7 11'
++	;;
++esac
++
++for err in '' $(echo $ERRS); do
+ 	for fault in writev desc,51; do
+ 		check_fault_injection \
+ 			writev $fault "$err" '' '' '' 1 -efault=chdir
+ 		check_fault_injection \
+ 			writev $fault "$err" '' '' '' 1 -efault=chdir -efault=none
+-		for F in 1 2 3 5 7 11; do
++		for F in $(echo $NUMBERS1); do
+ 			check_fault_injection \
+ 				writev $fault "$err" $F '' '' 1
+ 			check_fault_injection \
+ 				writev $fault "$err" $F '' + 1
+ 
+-			for L in 1 2 3 5 7 11; do
++			for L in $(echo $NUMBERS2); do
+ 				[ "$L" -ge "$F" ] ||
+ 					continue
+ 				check_fault_injection \
+@@ -104,12 +119,12 @@
+ 					writev $fault "$err" $F $L + 1
+ 			done
+ 
+-			for S in 1 2 3 5 7 11; do
++			for S in $(echo $NUMBERS2); do
+ 				check_fault_injection \
+ 					writev $fault "$err" $F '' $S 1
+ 				check_fault_injection \
+ 					writev $fault "$err" $F '' $S 4
+-				for L in 1 2 3 5 7 11; do
++				for L in $(echo $NUMBERS3); do
+ 					[ "$L" -ge "$F" ] ||
+ 						continue
+ 					check_fault_injection \
diff --git a/SOURCES/2003-undef-ARRAY_SIZE.patch b/SOURCES/2003-undef-ARRAY_SIZE.patch
new file mode 100644
index 0000000..e4e87bb
--- /dev/null
+++ b/SOURCES/2003-undef-ARRAY_SIZE.patch
@@ -0,0 +1,17 @@
+Index: strace-5.7/unwind.c
+===================================================================
+--- strace-5.7.orig/unwind.c	2018-12-10 01:00:00.000000000 +0100
++++ strace-5.7/unwind.c	2020-06-02 11:13:42.777871147 +0200
+@@ -9,6 +9,12 @@
+ #include "unwind.h"
+ 
+ #ifdef USE_DEMANGLE
++/*
++ * demangle.h defines ARRAY_SIZE without proper guard, and its definition
++ * is "good enough" for us.
++ */
++#undef ARRAY_SIZE
++
+ # if defined HAVE_DEMANGLE_H
+ #  include <demangle.h>
+ # elif defined HAVE_LIBIBERTY_DEMANGLE_H
diff --git a/SPECS/strace.spec b/SPECS/strace.spec
index eb2a476..1cd4d1e 100644
--- a/SPECS/strace.spec
+++ b/SPECS/strace.spec
@@ -1,7 +1,7 @@
 Summary: Tracks and displays system calls associated with a running process
 Name: strace
-Version: 5.1
-Release: 1%{?dist}
+Version: 5.7
+Release: 2%{?dist}
 # The test suite is GPLv2+, all the rest is LGPLv2.1+.
 License: LGPL-2.1+ and GPL-2.0+
 Group: Development/Debuggers
@@ -13,10 +13,10 @@ BuildRequires: pkgconfig(bluez)
 BuildRequires: elfutils-devel binutils-devel
 
 ## Reported by covscan
-# v5.2-3-g7ada13f "evdev: avoid bit vector decoding on non-successful and 0 return codes"
-Patch30: 0030-evdev-avoid-bit-vector-decoding-on-non-successful-an.patch
-# v5.2-4-g96194ed "evdev: fix array size calculation in decode_bitset_"
-Patch31: 0031-evdev-fix-array-size-calculation-in-decode_bitset_.patch
+## v5.2-3-g7ada13f "evdev: avoid bit vector decoding on non-successful and 0 return codes"
+#Patch30: 0030-evdev-avoid-bit-vector-decoding-on-non-successful-an.patch
+## v5.2-4-g96194ed "evdev: fix array size calculation in decode_bitset_"
+#Patch31: 0031-evdev-fix-array-size-calculation-in-decode_bitset_.patch
 
 ### Pre-requisite for "tests: test evdev bitset decoding more thoroughly"
 ## v4.25~89 "tests: check decoding of successful evdev ioctl"
@@ -24,8 +24,8 @@ Patch31: 0031-evdev-fix-array-size-calculation-in-decode_bitset_.patch
 
 ## Test for patches "evdev: avoid bit vector decoding on non-successful and 0
 ## return codes" and "evdev: fix array size calculation in decode_bitset_"
-# v5.2-5-gcdd8206 "tests: test evdev bitset decoding more thoroughly"
-Patch33: 0033-tests-test-evdev-bitset-decoding-more-thoroughly.patch
+## v5.2-5-gcdd8206 "tests: test evdev bitset decoding more thoroughly"
+#Patch33: 0033-tests-test-evdev-bitset-decoding-more-thoroughly.patch
 
 ### https://bugzilla.redhat.com/1747475 https://bugzilla.redhat.com/1747514
 ## v4.26~65 "s390x: beautify sthyi data tail prints"
@@ -33,14 +33,14 @@ Patch33: 0033-tests-test-evdev-bitset-decoding-more-thoroughly.patch
 
 ## Reported by covscan (https://bugzilla.redhat.com/1747524
 ## https://bugzilla.redhat.com/1747526 https://bugzilla.redhat.com/1747530)
-# v5.2-84-g91281fec "v4l2: avoid shifting left a signed number by 31 bit"
-Patch35: 0035-v4l2-avoid-shifting-left-a-signed-number-by-31-bit.patch
-# v5.2~21 "syscall.c: avoid infinite loop in subcalls parsing"
-Patch36: 0036-syscall.c-avoid-infinite-loop-in-subcalls-parsing.patch
-# v5.2~19 "kvm: avoid bogus vcpu_info assignment in vcpu_register"
-Patch37: 0037-kvm-avoid-bogus-vcpu_info-assignment-in-vcpu_registe.patch
-# v5.4~97 "xlat: use unsgined type for mount_flags fallback values"
-Patch38: 0038-xlat-use-unsgined-type-for-mount_flags-fallback-valu.patch
+## v5.2-84-g91281fec "v4l2: avoid shifting left a signed number by 31 bit"
+#Patch35: 0035-v4l2-avoid-shifting-left-a-signed-number-by-31-bit.patch
+## v5.2~21 "syscall.c: avoid infinite loop in subcalls parsing"
+#Patch36: 0036-syscall.c-avoid-infinite-loop-in-subcalls-parsing.patch
+## v5.2~19 "kvm: avoid bogus vcpu_info assignment in vcpu_register"
+#Patch37: 0037-kvm-avoid-bogus-vcpu_info-assignment-in-vcpu_registe.patch
+## v5.4~97 "xlat: use unsgined type for mount_flags fallback values"
+#Patch38: 0038-xlat-use-unsgined-type-for-mount_flags-fallback-valu.patch
 
 ## Missing stack traces on attach (https://bugzilla.redhat.com/1788636)
 ## RHEL 7: https://bugzilla.redhat.com/1790052
@@ -48,24 +48,24 @@ Patch38: 0038-xlat-use-unsgined-type-for-mount_flags-fallback-valu.patch
 ## RHEL 6 DTS: https://bugzilla.redhat.com/1790058
 ## RHEL 7 DTS: https://bugzilla.redhat.com/1790057
 ## RHEL 8 DTS: https://bugzilla.redhat.com/1790054
-# v5.4-18-g69b2c33 "unwind-libdw: fix initialization of libdwfl cache"
-Patch39: 0039-unwind-libdw-fix-initialization-of-libdwfl-cache.patch
-# v5.4-27-g35e080a "syscall: do not capture stack trace while the tracee executes strace code"
-Patch40: 0040-syscall-do-not-capture-stack-trace-while-the-tracee-.patch
-# v5.4-63-g8e515c7 "tests: add strace-k-p test"
-Patch41: 0041-tests-add-strace-k-p-test.patch
+## v5.4-18-g69b2c33 "unwind-libdw: fix initialization of libdwfl cache"
+#Patch39: 0039-unwind-libdw-fix-initialization-of-libdwfl-cache.patch
+## v5.4-27-g35e080a "syscall: do not capture stack trace while the tracee executes strace code"
+#Patch40: 0040-syscall-do-not-capture-stack-trace-while-the-tracee-.patch
+## v5.4-63-g8e515c7 "tests: add strace-k-p test"
+#Patch41: 0041-tests-add-strace-k-p-test.patch
 
 ## https://bugzilla.redhat.com/1746885
-# v5.2-92-gc108f0b "sockaddr: properly decode sockaddr_hci addresses without hci_channel"
-Patch42: 0042-sockaddr-properly-decode-sockaddr_hci-addresses-with.patch
+## v5.2-92-gc108f0b "sockaddr: properly decode sockaddr_hci addresses without hci_channel"
+#Patch42: 0042-sockaddr-properly-decode-sockaddr_hci-addresses-with.patch
 
 ## Some ipc tests from strace internal testsuite occasionally fail
 ## https://bugzilla.redhat.com/1795251 https://bugzilla.redhat.com/1795261
 ## https://bugzilla.redhat.com/1794490 https://bugzilla.redhat.com/1795273
-# v5.3~102 "tests: fix expected output for some ipc tests"
-Patch43: 0043-tests-fix-expected-output-for-some-ipc-tests.patch
-# v5.4~49 "tests: fix -a argument in ipc_msgbuf-Xraw test"
-Patch44: 0044-tests-fix-a-argument-in-ipc_msgbuf-Xraw-test.patch
+## v5.3~102 "tests: fix expected output for some ipc tests"
+#Patch43: 0043-tests-fix-expected-output-for-some-ipc-tests.patch
+## v5.4~49 "tests: fix -a argument in ipc_msgbuf-Xraw test"
+#Patch44: 0044-tests-fix-a-argument-in-ipc_msgbuf-Xraw-test.patch
 
 ### Update bpf decoder, as bpf-obj_get_info_by_fd-prog-v.gen.test has started
 ### to fail after BPF rebase in RHEL 8.2 kernel.
@@ -86,20 +86,138 @@ Patch44: 0044-tests-fix-a-argument-in-ipc_msgbuf-Xraw-test.patch
 ## v5.1~6 "tests: robustify bpf-obj_get_info_by_fd test against future kernels"
 #Patch52: 0052-tests-robustify-bpf-obj_get_info_by_fd-test-against-.patch
 
+## Patches 53-86 were on DTS 9 for
+## "some devtoolset-9-strace internal tests fail on rhel-alt-7.6"
+## https://bugzilla.redhat.com/1758201
+
+## Update io_uring(2) decoder (https://bugzilla.redhat.com/1853011)
+## v5.5~65 "io_uring: do not depend on kernel header definitions"
+#Patch87:  0087-io_uring-do-not-depend-on-kernel-header-definitions.patch
+## v5.5~64 "io_uring: de-indent the switch case statements"
+#Patch88:  0088-io_uring-de-indent-the-switch-case-statements.patch
+## v5.3~15 "Add support for printing local arrays to print_array"
+#Patch89:  0089-Add-support-for-printing-local-arrays-to-print_array.patch
+## v5.5~63 "Rework interface for printing local arrays"
+#Patch90:  0090-Rework-interface-for-printing-local-arrays.patch
+## v5.5~62 "io_uring: decode io_uring_params.resv with IS_ARRAY_ZERO and PRINT_FIELD_ARRAY"
+#Patch91:  0091-io_uring-decode-io_uring_params.resv-with-IS_ARRAY_Z.patch
+## v5.5~61 "io_uring: print io_sqring_offsets and io_cqring_offsets reserved fields"
+#Patch92:  0092-io_uring-print-io_sqring_offsets-and-io_cqring_offse.patch
+## v5.5~60 "io_uring: add support for IORING_REGISTER_EVENTFD and IORING_UNREGISTER_EVENTFD"
+#Patch93:  0093-io_uring-add-support-for-IORING_REGISTER_EVENTFD-and.patch
+## v5.5~59 "io_uring: implement decoding of struct io_uring_params.features"
+#Patch94:  0094-io_uring-implement-decoding-of-struct-io_uring_param.patch
+## v5.5~58 "xlat: add IORING_SETUP_CQSIZE to uring_setup_flags"
+#Patch95:  0095-xlat-add-IORING_SETUP_CQSIZE-to-uring_setup_flags.patch
+## v5.5~42 "io_uring: check struct io_* types automatically"
+#Patch96:  0096-io_uring-check-struct-io_-types-automatically.patch
+## v5.5~41 "io_uring: add support for IORING_REGISTER_FILES_UPDATE"
+#Patch97:  0097-io_uring-add-support-for-IORING_REGISTER_FILES_UPDAT.patch
+## v5.5~27 "xlat: update uring_setup_features constants"
+#Patch98:  0098-xlat-update-uring_setup_features-constants.patch
+## v5.5~26 "xlat: add IORING_SETUP_CLAMP to uring_setup_flags"
+#Patch99:  0099-xlat-add-IORING_SETUP_CLAMP-to-uring_setup_flags.patch
+## v5.5~25 "io_uring: add support of wq_fd field decoding to io_uring_setup"
+#Patch100: 0100-io_uring-add-support-of-wq_fd-field-decoding-to-io_u.patch
+## v5.6~190 "tests/io_uring_register: properly handle big endian architectures"
+#Patch101: 0101-tests-io_uring_register-properly-handle-big-endian-a.patch
+## v5.6~157 "io_uring: decode IORING_REGISTER_EVENTFD_ASYNC io_uring_reginster command"
+#Patch102: 0102-io_uring-decode-IORING_REGISTER_EVENTFD_ASYNC-io_uri.patch
+## v5.6~95 "io_uring: de-indent some code in io_uring_setup decoder"
+#Patch103: 0103-io_uring-de-indent-some-code-in-io_uring_setup-decod.patch
+## v5.3~29 "defs.h: introduce {opt,dispatch}_{word,klong}size"
+#Patch104: 0104-defs.h-introduce-opt-dispatch-_-word-klong-size.patch
+## v5.3~9 "Handle xlat verbosity in evdev bitset printing"
+#Patch105: 0105-Handle-xlat-verbosity-in-evdev-bitset-printing.patch
+## v5.6~94 "io_uring: support IORING_REGISTER_PROBE io_uring_register command"
+#Patch106: 0106-io_uring-support-IORING_REGISTER_PROBE-io_uring_regi.patch
+## v5.6~93 "io_uring: add support for IORING_{UN,}REGISTER_PERSONALITY commands"
+#Patch107: 0107-io_uring-add-support-for-IORING_-UN-REGISTER_PERSONA.patch
+## v5.6~17 "tests: fix clang compilation warning"
+#Patch108: 0108-tests-fix-clang-compilation-warning.patch
+## v5.6~10 "tests: workaround clang compilation warning"
+#Patch109: 0109-tests-workaround-clang-compilation-warning.patch
+## v5.7~87 "xlat: add IORING_FEAT_FAST_POLL to uring_setup_features"
+#Patch110: 0110-xlat-add-IORING_FEAT_FAST_POLL-to-uring_setup_featur.patch
+## v5.7~85 "xlat: update uring_ops"
+#Patch111: 0111-xlat-update-uring_ops.patch
+## v5.7~68 "tests: correct error message in io_uring_register test"
+#Patch112: 0112-tests-correct-error-message-in-io_uring_register-tes.patch
+# v5.8~58 "io_uring: Remove struct io_cqring_offsets compile time asserts"
+Patch113: 0113-io_uring-Remove-struct-io_cqring_offsets-compile-tim.patch
+# v5.8~57 "io_uring: Add io_cqring_offset flags"
+Patch114: 0114-io_uring-Add-io_cqring_offset-flags.patch
+# v5.8~47 "xlat: update IORING_* constants"
+Patch115: 0115-xlat-update-IORING_-constants.patch
+## v5.5~71 "macros.h: introduce sizeof_field macro"
+#Patch116: 0116-macros.h-introduce-sizeof_field-macro.patch
+## v5.5~49 "types: new infrastructure for automatic checking of structure types"
+#Patch117: 0117-types-new-infrastructure-for-automatic-checking-of-s.patch
+# v5.8~59 "types: skip field lines that start with comments"
+Patch118: 0118-types-skip-field-lines-that-start-with-comments.patch
+
+## PID namespace translation support
+## https://bugzilla.redhat.com/1035434
+## https://bugzilla.redhat.com/1725113 https://bugzilla.redhat.com/1790836
+## https://bugzilla.redhat.com/1804334 https://bugzilla.redhat.com/1807458
+# v5.8~62 "print_fields.h: add PRINT_FIELD_LEN macro"
+Patch119: 0119-print_fields.h-add-PRINT_FIELD_LEN-macro.patch
+# v5.8~61 "Move ilog* functions from util.c to defs.h"
+Patch120: 0120-Move-ilog-functions-from-util.c-to-defs.h.patch
+## v5.8~59 "types: skip field lines that start with comments"
+#Patch121: 0121-types-skip-field-lines-that-start-with-comments.patch
+# v5.8~54 "tests/inject-nf.test: replace getpid with geteuid"
+Patch122: 0122-tests-inject-nf.test-replace-getpid-with-geteuid.patch
+# v5.8~18 "fcntl: use print_fields.h macros"
+Patch123: 0123-fcntl-use-print_fields.h-macros.patch
+# v5.8~17 "kcmp: fix KCMP_FILE decoding"
+Patch124: 0124-kcmp-fix-KCMP_FILE-decoding.patch
+# v5.8~15 "printsiginfo: fix printing of siginfo_t.si_pid and siginfo_t.si_uid"
+Patch125: 0125-printsiginfo-fix-printing-of-siginfo_t.si_pid-and-si.patch
+# v5.8~14 "Use PRINT_FIELD_UID instead of printuid where appropriate"
+Patch126: 0126-Use-PRINT_FIELD_UID-instead-of-printuid-where-approp.patch
+# v5.8~10 "Consistently print process ids as signed integers"
+Patch127: 0127-Consistently-print-process-ids-as-signed-integers.patch
+# v5.8~9 "Remove tcb parameter of read_int_from_file"
+Patch128: 0128-Remove-tcb-parameter-of-read_int_from_file.patch
+# v5.8~6 "Add "struct tcb *" parameters to various functions"
+Patch129: 0129-Add-struct-tcb-parameters-to-various-functions.patch
+# v5.8~53 "Modify %process class: trace syscalls associated with process lifecycle"
+Patch130: 0130-Modify-process-class-trace-syscalls-associated-with-.patch
+# v5.8~5 "Introduce SYS_FUNC(tkill)"
+Patch131: 0131-Introduce-SYS_FUNC-tkill.patch
+# v5.8~4 "tests: check decoding of tkill syscall"
+Patch132: 0132-tests-check-decoding-of-tkill-syscall.patch
+# v5.8~3 "tests: check decoding of tgkill syscall"
+Patch133: 0133-tests-check-decoding-of-tgkill-syscall.patch
+# v5.8-5-gdea0284 "PID namespace translation support"
+Patch134: 0134-PID-namespace-translation-support.patch
+# v5.8-6-g173257d "Use printpid in decoders"
+Patch135: 0135-Use-printpid-in-decoders.patch
+# v5.8-7-g18c2208 "Use get_proc_pid for /proc paths"
+Patch136: 0136-Use-get_proc_pid-for-proc-paths.patch
+# v5.8-8-g7ecee07 "Implement testing framework for pidns"
+Patch137: 0137-Implement-testing-framework-for-pidns.patch
+# v5.8-9-gf350ce0 "Add tests for PID namespace translation"
+Patch138: 0138-Add-tests-for-PID-namespace-translation.patch
+
 ### Wire up rseq and kexec_file_load in order to avoid kexec_file_load
 ### test failure on aarch64. Addresses https://bugzilla.redhat.com/1676045
 ### ("strace: FTBFS in Fedora rawhide/f30").
 ## v5.0~62 "Wire up rseq syscall on architectures that use generic unistd.h"
-#Patch100: 0100-Wire-up-rseq-syscall-on-architectures-that-use-gener.patch
+#Patch1000: 1000-Wire-up-rseq-syscall-on-architectures-that-use-gener.patch
 ## v5.0~61 "Wire up kexec_file_load syscall on architectures that use generic unistd.h"
-#Patch101: 0101-Wire-up-kexec_file_load-syscall-on-architectures-tha.patch
+#Patch1001: 1001-Wire-up-kexec_file_load-syscall-on-architectures-tha.patch
 
 ### RHEL7-only: headers on some builders do not provide O_TMPFILE
-#Patch200: 0200-strace-provide-O_TMPFILE-fallback-definition.patch
+#Patch2000: 2000-strace-provide-O_TMPFILE-fallback-definition.patch
 ## RHEL-only: aarch64 brew builders are extremely slow on qual_fault.test
-Patch201: 0201-limit-qual_fault-scope-on-aarch64.patch
+Patch2001: 2001-limit-qual_fault-scope-on-aarch64.patch
 ### RHEL8.2-only: disable ksysent test due to missing rebase
-#Patch202: 0202-disable-ksysent-on-8.2.patch
+#Patch2002: 2002-disable-ksysent-on-8.2.patch
+## RHEL-only: avoid ARRAY_SIZE macro re-definition in libiberty.h
+Patch2003: 2003-undef-ARRAY_SIZE.patch
+
 
 # We no longer need to build a separate strace32 binary, but we don't want
 # to break existing strace32 users' workflows.
@@ -109,7 +227,8 @@ Patch201: 0201-limit-qual_fault-scope-on-aarch64.patch
 %define _isa_compat %{?__isa_name:(%{__isa_name}-32)}%{!?__isa:%{nil}}
 %define evr %{?epoch:%{epoch}:}%{version}-%{release}
 Provides:  strace32 = %{evr}
-Obsoletes: strace32 < %{version} strace32%{_isa_compat} < %{version}
+# strace32 was a real package before strace-4.24 in RHEL
+Obsoletes: strace32 < 4.24
 %endif
 
 %description
@@ -125,21 +244,21 @@ received by a process.
 %prep
 %setup -q
 
-%patch30 -p1
-%patch31 -p1
+#%patch30 -p1
+#%patch31 -p1
 #%patch32 -p1
-%patch33 -p1
+#%patch33 -p1
 #%patch34 -p1
-%patch35 -p1
-%patch36 -p1
-%patch37 -p1
-%patch38 -p1
-%patch39 -p1
-%patch40 -p1
-%patch41 -p1
-%patch42 -p1
-%patch43 -p1
-%patch44 -p1
+#%patch35 -p1
+#%patch36 -p1
+#%patch37 -p1
+#%patch38 -p1
+#%patch39 -p1
+#%patch40 -p1
+#%patch41 -p1
+#%patch42 -p1
+#%patch43 -p1
+#%patch44 -p1
 #%patch45 -p1
 #%patch46 -p1
 #%patch47 -p1
@@ -148,13 +267,68 @@ received by a process.
 #%patch50 -p1
 #%patch51 -p1
 #%patch52 -p1
-
+#%patch87 -p1
+#%patch88 -p1
+#%patch89 -p1
+#%patch90 -p1
+#%patch91 -p1
+#%patch92 -p1
+#%patch93 -p1
+#%patch94 -p1
+#%patch95 -p1
+#%patch96 -p1
+#%patch97 -p1
+#%patch98 -p1
+#%patch99 -p1
 #%patch100 -p1
 #%patch101 -p1
-
-#%patch200 -p1
-%patch201 -p1
-#%patch202 -p1
+#%patch102 -p1
+#%patch103 -p1
+#%patch104 -p1
+#%patch105 -p1
+#%patch106 -p1
+#%patch107 -p1
+#%patch108 -p1
+#%patch109 -p1
+#%patch110 -p1
+#%patch111 -p1
+#%patch112 -p1
+%patch113 -p1
+%patch114 -p1
+%patch115 -p1
+#%patch116 -p1
+#%patch117 -p1
+%patch118 -p1
+%patch119 -p1
+%patch120 -p1
+#%patch121 -p1
+%patch122 -p1
+%patch123 -p1
+%patch124 -p1
+%patch125 -p1
+%patch126 -p1
+%patch127 -p1
+%patch128 -p1
+%patch129 -p1
+%patch130 -p1
+%patch131 -p1
+%patch132 -p1
+%patch133 -p1
+%patch134 -p1
+%patch135 -p1
+%patch136 -p1
+%patch137 -p1
+%patch138 -p1
+
+#%patch1000 -p1
+#%patch1001 -p1
+
+#%patch2000 -p1
+%patch2001 -p1
+#%patch2002 -p1
+%patch2003 -p1
+
+chmod a+x tests/*.test
 
 echo -n %version-%release > .tarball-version
 echo -n 2020 > .year
@@ -231,6 +405,16 @@ echo 'END OF TEST SUITE INFORMATION'
 %{_mandir}/man1/*
 
 %changelog
+* Mon Nov 09 2020 Eugene Syromiatnikov <esyr@redhat.com> - 5.7-2
+- Add PID namespace translation support (#1725113).
+
+* Mon Nov 09 2020 Eugene Syromiatnikov <esyr@redhat.com> - 5.7-1
+- Rebase to v5.7; drop upstream patches on top of 5.1 (#1873229).
+
+* Mon Aug 24 2020 Eugene Syromiatnikov <esyr@redhat.com> - 5.1-2
+- Update io_uring(2) decoder (#1853011).
+- Fix "Obsoletes:" tag on s390x (#1852960).
+
 * Thu Jan 30 2020 Eugene Syromiatnikov <esyr@redhat.com> - 5.1-1
 - Rebase to strace 5.1 (#1777847).