diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..a2c5d2d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+SOURCES/strace-5.13.tar.xz
diff --git a/.strace.metadata b/.strace.metadata
new file mode 100644
index 0000000..4c2d4b4
--- /dev/null
+++ b/.strace.metadata
@@ -0,0 +1 @@
+0f48c474de7d34009d3455f589efe790d24050b5 SOURCES/strace-5.13.tar.xz
diff --git a/SOURCES/0141-tests-change-sockopt-timestamp-test-to-use-syscall-_.patch b/SOURCES/0141-tests-change-sockopt-timestamp-test-to-use-syscall-_.patch
new file mode 100644
index 0000000..394c0e4
--- /dev/null
+++ b/SOURCES/0141-tests-change-sockopt-timestamp-test-to-use-syscall-_.patch
@@ -0,0 +1,378 @@
+From 9aada05f4c7f95220a5b16416f530419db6b4dff Mon Sep 17 00:00:00 2001
+From: "Dmitry V. Levin" <ldv@strace.io>
+Date: Fri, 23 Jul 2021 08:00:00 +0000
+Subject: [PATCH] tests: change sockopt-timestamp test to use
+ syscall(__NR_recvmsg)
+
+Since the glibc recvmsg wrapper became unsuitable for our needs,
+invoke __NR_recvmsg syscall directly.
+
+* tests/sockopt-timestamp.c: Include "scno.h" and <errno.h>,
+conditionalize on __NR_recvmsg.
+(TEST_OLD_SCM_TIMESTAMPS): Remove.
+(k_recvmsg): New function.
+(test_sockopt): Use it instead of recvmsg.
+---
+ tests/sockopt-timestamp.c | 72 ++++++++++++++++++++++-------------------------
+ 1 file changed, 34 insertions(+), 38 deletions(-)
+
+diff --git a/tests/sockopt-timestamp.c b/tests/sockopt-timestamp.c
+index 56627bb..ed73ca1 100644
+--- a/tests/sockopt-timestamp.c
++++ b/tests/sockopt-timestamp.c
+@@ -9,44 +9,45 @@
+  */
+ 
+ #include "tests.h"
+-#include <stdio.h>
+-#include <string.h>
+-#include <unistd.h>
+-#include <sys/socket.h>
+-
+-#if defined HAVE_STRUCT___KERNEL_SOCK_TIMEVAL	\
+- || defined HAVE_STRUCT___KERNEL_TIMESPEC
+-# include <linux/time_types.h>
+-#endif
++#include "scno.h"
+ 
+-#include "kernel_timeval.h"
+-#include "kernel_old_timespec.h"
++#ifdef __NR_recvmsg
+ 
+-#define XLAT_MACROS_ONLY
+-# include "xlat/sock_options.h"
+-#undef XLAT_MACROS_ONLY
++# include <errno.h>
++# include <stdio.h>
++# include <string.h>
++# include <unistd.h>
++# include <sys/socket.h>
+ 
+-#undef TEST_OLD_SCM_TIMESTAMPS
++# if defined HAVE_STRUCT___KERNEL_SOCK_TIMEVAL	\
++  || defined HAVE_STRUCT___KERNEL_TIMESPEC
++#  include <linux/time_types.h>
++# endif
+ 
+-/*
+- * Sadly, starting with commit
+- * glibc-2.33.9000-707-g13c51549e2077f2f3bf84e8fd0b46d8b0c615912, on every
+- * 32-bit architecture where 32-bit time_t support is enabled,
+- * glibc mangles old scm timestamps.
+- */
+-#if GLIBC_PREREQ_GE(2, 33) && defined __TIMESIZE && __TIMESIZE != 64
+-# define TEST_OLD_SCM_TIMESTAMPS 0
+-#endif
++# include "kernel_timeval.h"
++# include "kernel_old_timespec.h"
+ 
+-#ifndef TEST_OLD_SCM_TIMESTAMPS
+-# define TEST_OLD_SCM_TIMESTAMPS 1
+-#endif
++# define XLAT_MACROS_ONLY
++#  include "xlat/sock_options.h"
++# undef XLAT_MACROS_ONLY
+ 
+-#if TEST_OLD_SCM_TIMESTAMPS \
+- || defined HAVE_STRUCT___KERNEL_TIMESPEC \
+- || defined HAVE_STRUCT___KERNEL_SOCK_TIMEVAL
++static const char *errstr;
++
++static long
++k_recvmsg(const unsigned int fd, const void *const ptr, const unsigned int flags)
++{
++	const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL;
++	const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL;
++	const kernel_ulong_t arg1 = fill | fd;
++	const kernel_ulong_t arg2 = (uintptr_t) ptr;
++	const kernel_ulong_t arg3 = fill | flags;
++	const long rc = syscall(__NR_recvmsg, arg1, arg2, arg3, bad, bad, bad);
++	if (rc && errno == ENOSYS)
++		perror_msg_and_skip("recvmsg");
++	errstr = sprintrc(rc);
++	return rc;
++}
+ 
+-# if TEST_OLD_SCM_TIMESTAMPS
+ static void
+ print_timestamp_old(const struct cmsghdr *c)
+ {
+@@ -84,7 +85,6 @@ print_timestampns_old(const struct cmsghdr *c)
+ 	printf("{tv_sec=%lld, tv_nsec=%lld}",
+ 	       (long long) ts.tv_sec, (long long) ts.tv_nsec);
+ }
+-# endif /* TEST_OLD_SCM_TIMESTAMPS */
+ 
+ # ifdef HAVE_STRUCT___KERNEL_SOCK_TIMEVAL
+ static void
+@@ -162,7 +162,7 @@ test_sockopt(int so_val, const char *str, void (*fun)(const struct cmsghdr *))
+ 		.msg_controllen = sizeof(control)
+ 	};
+ 
+-	if (recvmsg(sv[0], &mh, 0) != (int) size)
++	if (k_recvmsg(sv[0], &mh, 0) != (int) size)
+ 		perror_msg_and_fail("recvmsg");
+ 	if (close(sv[0]))
+ 		perror_msg_and_fail("close recv");
+@@ -210,10 +210,8 @@ main(void)
+ 		const char *str;
+ 		void (*fun)(const struct cmsghdr *);
+ 	} tests[] = {
+-# if TEST_OLD_SCM_TIMESTAMPS
+ 		{ SO_TIMESTAMP_OLD, "SO_TIMESTAMP_OLD", print_timestamp_old },
+ 		{ SO_TIMESTAMPNS_OLD, "SO_TIMESTAMPNS_OLD", print_timestampns_old },
+-# endif
+ # ifdef HAVE_STRUCT___KERNEL_SOCK_TIMEVAL
+ 		{ SO_TIMESTAMP_NEW, "SO_TIMESTAMP_NEW", print_timestamp_new },
+ # endif
+@@ -235,8 +233,6 @@ main(void)
+ 
+ #else
+ 
+-SKIP_MAIN_UNDEFINED("TEST_OLD_SCM_TIMESTAMPS"
+-		    " || HAVE_STRUCT___KERNEL_TIMESPEC"
+-		    " || HAVE_STRUCT___KERNEL_SOCK_TIMEVAL")
++SKIP_MAIN_UNDEFINED("__NR_recvmsg")
+ 
+ #endif
+diff --git a/tests-m32/sockopt-timestamp.c b/tests-m32/sockopt-timestamp.c
+index 56627bb..ed73ca1 100644
+--- a/tests-m32/sockopt-timestamp.c
++++ b/tests-m32/sockopt-timestamp.c
+@@ -9,44 +9,45 @@
+  */
+ 
+ #include "tests.h"
+-#include <stdio.h>
+-#include <string.h>
+-#include <unistd.h>
+-#include <sys/socket.h>
+-
+-#if defined HAVE_STRUCT___KERNEL_SOCK_TIMEVAL	\
+- || defined HAVE_STRUCT___KERNEL_TIMESPEC
+-# include <linux/time_types.h>
+-#endif
++#include "scno.h"
+ 
+-#include "kernel_timeval.h"
+-#include "kernel_old_timespec.h"
++#ifdef __NR_recvmsg
+ 
+-#define XLAT_MACROS_ONLY
+-# include "xlat/sock_options.h"
+-#undef XLAT_MACROS_ONLY
++# include <errno.h>
++# include <stdio.h>
++# include <string.h>
++# include <unistd.h>
++# include <sys/socket.h>
+ 
+-#undef TEST_OLD_SCM_TIMESTAMPS
++# if defined HAVE_STRUCT___KERNEL_SOCK_TIMEVAL	\
++  || defined HAVE_STRUCT___KERNEL_TIMESPEC
++#  include <linux/time_types.h>
++# endif
+ 
+-/*
+- * Sadly, starting with commit
+- * glibc-2.33.9000-707-g13c51549e2077f2f3bf84e8fd0b46d8b0c615912, on every
+- * 32-bit architecture where 32-bit time_t support is enabled,
+- * glibc mangles old scm timestamps.
+- */
+-#if GLIBC_PREREQ_GE(2, 33) && defined __TIMESIZE && __TIMESIZE != 64
+-# define TEST_OLD_SCM_TIMESTAMPS 0
+-#endif
++# include "kernel_timeval.h"
++# include "kernel_old_timespec.h"
+ 
+-#ifndef TEST_OLD_SCM_TIMESTAMPS
+-# define TEST_OLD_SCM_TIMESTAMPS 1
+-#endif
++# define XLAT_MACROS_ONLY
++#  include "xlat/sock_options.h"
++# undef XLAT_MACROS_ONLY
+ 
+-#if TEST_OLD_SCM_TIMESTAMPS \
+- || defined HAVE_STRUCT___KERNEL_TIMESPEC \
+- || defined HAVE_STRUCT___KERNEL_SOCK_TIMEVAL
++static const char *errstr;
++
++static long
++k_recvmsg(const unsigned int fd, const void *const ptr, const unsigned int flags)
++{
++	const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL;
++	const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL;
++	const kernel_ulong_t arg1 = fill | fd;
++	const kernel_ulong_t arg2 = (uintptr_t) ptr;
++	const kernel_ulong_t arg3 = fill | flags;
++	const long rc = syscall(__NR_recvmsg, arg1, arg2, arg3, bad, bad, bad);
++	if (rc && errno == ENOSYS)
++		perror_msg_and_skip("recvmsg");
++	errstr = sprintrc(rc);
++	return rc;
++}
+ 
+-# if TEST_OLD_SCM_TIMESTAMPS
+ static void
+ print_timestamp_old(const struct cmsghdr *c)
+ {
+@@ -84,7 +85,6 @@ print_timestampns_old(const struct cmsghdr *c)
+ 	printf("{tv_sec=%lld, tv_nsec=%lld}",
+ 	       (long long) ts.tv_sec, (long long) ts.tv_nsec);
+ }
+-# endif /* TEST_OLD_SCM_TIMESTAMPS */
+ 
+ # ifdef HAVE_STRUCT___KERNEL_SOCK_TIMEVAL
+ static void
+@@ -162,7 +162,7 @@ test_sockopt(int so_val, const char *str, void (*fun)(const struct cmsghdr *))
+ 		.msg_controllen = sizeof(control)
+ 	};
+ 
+-	if (recvmsg(sv[0], &mh, 0) != (int) size)
++	if (k_recvmsg(sv[0], &mh, 0) != (int) size)
+ 		perror_msg_and_fail("recvmsg");
+ 	if (close(sv[0]))
+ 		perror_msg_and_fail("close recv");
+@@ -210,10 +210,8 @@ main(void)
+ 		const char *str;
+ 		void (*fun)(const struct cmsghdr *);
+ 	} tests[] = {
+-# if TEST_OLD_SCM_TIMESTAMPS
+ 		{ SO_TIMESTAMP_OLD, "SO_TIMESTAMP_OLD", print_timestamp_old },
+ 		{ SO_TIMESTAMPNS_OLD, "SO_TIMESTAMPNS_OLD", print_timestampns_old },
+-# endif
+ # ifdef HAVE_STRUCT___KERNEL_SOCK_TIMEVAL
+ 		{ SO_TIMESTAMP_NEW, "SO_TIMESTAMP_NEW", print_timestamp_new },
+ # endif
+@@ -235,8 +233,6 @@ main(void)
+ 
+ #else
+ 
+-SKIP_MAIN_UNDEFINED("TEST_OLD_SCM_TIMESTAMPS"
+-		    " || HAVE_STRUCT___KERNEL_TIMESPEC"
+-		    " || HAVE_STRUCT___KERNEL_SOCK_TIMEVAL")
++SKIP_MAIN_UNDEFINED("__NR_recvmsg")
+ 
+ #endif
+diff --git a/tests-mx32/sockopt-timestamp.c b/tests-mx32/sockopt-timestamp.c
+index 56627bb..ed73ca1 100644
+--- a/tests-mx32/sockopt-timestamp.c
++++ b/tests-mx32/sockopt-timestamp.c
+@@ -9,44 +9,45 @@
+  */
+ 
+ #include "tests.h"
+-#include <stdio.h>
+-#include <string.h>
+-#include <unistd.h>
+-#include <sys/socket.h>
+-
+-#if defined HAVE_STRUCT___KERNEL_SOCK_TIMEVAL	\
+- || defined HAVE_STRUCT___KERNEL_TIMESPEC
+-# include <linux/time_types.h>
+-#endif
++#include "scno.h"
+ 
+-#include "kernel_timeval.h"
+-#include "kernel_old_timespec.h"
++#ifdef __NR_recvmsg
+ 
+-#define XLAT_MACROS_ONLY
+-# include "xlat/sock_options.h"
+-#undef XLAT_MACROS_ONLY
++# include <errno.h>
++# include <stdio.h>
++# include <string.h>
++# include <unistd.h>
++# include <sys/socket.h>
+ 
+-#undef TEST_OLD_SCM_TIMESTAMPS
++# if defined HAVE_STRUCT___KERNEL_SOCK_TIMEVAL	\
++  || defined HAVE_STRUCT___KERNEL_TIMESPEC
++#  include <linux/time_types.h>
++# endif
+ 
+-/*
+- * Sadly, starting with commit
+- * glibc-2.33.9000-707-g13c51549e2077f2f3bf84e8fd0b46d8b0c615912, on every
+- * 32-bit architecture where 32-bit time_t support is enabled,
+- * glibc mangles old scm timestamps.
+- */
+-#if GLIBC_PREREQ_GE(2, 33) && defined __TIMESIZE && __TIMESIZE != 64
+-# define TEST_OLD_SCM_TIMESTAMPS 0
+-#endif
++# include "kernel_timeval.h"
++# include "kernel_old_timespec.h"
+ 
+-#ifndef TEST_OLD_SCM_TIMESTAMPS
+-# define TEST_OLD_SCM_TIMESTAMPS 1
+-#endif
++# define XLAT_MACROS_ONLY
++#  include "xlat/sock_options.h"
++# undef XLAT_MACROS_ONLY
+ 
+-#if TEST_OLD_SCM_TIMESTAMPS \
+- || defined HAVE_STRUCT___KERNEL_TIMESPEC \
+- || defined HAVE_STRUCT___KERNEL_SOCK_TIMEVAL
++static const char *errstr;
++
++static long
++k_recvmsg(const unsigned int fd, const void *const ptr, const unsigned int flags)
++{
++	const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL;
++	const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL;
++	const kernel_ulong_t arg1 = fill | fd;
++	const kernel_ulong_t arg2 = (uintptr_t) ptr;
++	const kernel_ulong_t arg3 = fill | flags;
++	const long rc = syscall(__NR_recvmsg, arg1, arg2, arg3, bad, bad, bad);
++	if (rc && errno == ENOSYS)
++		perror_msg_and_skip("recvmsg");
++	errstr = sprintrc(rc);
++	return rc;
++}
+ 
+-# if TEST_OLD_SCM_TIMESTAMPS
+ static void
+ print_timestamp_old(const struct cmsghdr *c)
+ {
+@@ -84,7 +85,6 @@ print_timestampns_old(const struct cmsghdr *c)
+ 	printf("{tv_sec=%lld, tv_nsec=%lld}",
+ 	       (long long) ts.tv_sec, (long long) ts.tv_nsec);
+ }
+-# endif /* TEST_OLD_SCM_TIMESTAMPS */
+ 
+ # ifdef HAVE_STRUCT___KERNEL_SOCK_TIMEVAL
+ static void
+@@ -162,7 +162,7 @@ test_sockopt(int so_val, const char *str, void (*fun)(const struct cmsghdr *))
+ 		.msg_controllen = sizeof(control)
+ 	};
+ 
+-	if (recvmsg(sv[0], &mh, 0) != (int) size)
++	if (k_recvmsg(sv[0], &mh, 0) != (int) size)
+ 		perror_msg_and_fail("recvmsg");
+ 	if (close(sv[0]))
+ 		perror_msg_and_fail("close recv");
+@@ -210,10 +210,8 @@ main(void)
+ 		const char *str;
+ 		void (*fun)(const struct cmsghdr *);
+ 	} tests[] = {
+-# if TEST_OLD_SCM_TIMESTAMPS
+ 		{ SO_TIMESTAMP_OLD, "SO_TIMESTAMP_OLD", print_timestamp_old },
+ 		{ SO_TIMESTAMPNS_OLD, "SO_TIMESTAMPNS_OLD", print_timestampns_old },
+-# endif
+ # ifdef HAVE_STRUCT___KERNEL_SOCK_TIMEVAL
+ 		{ SO_TIMESTAMP_NEW, "SO_TIMESTAMP_NEW", print_timestamp_new },
+ # endif
+@@ -235,8 +233,6 @@ main(void)
+ 
+ #else
+ 
+-SKIP_MAIN_UNDEFINED("TEST_OLD_SCM_TIMESTAMPS"
+-		    " || HAVE_STRUCT___KERNEL_TIMESPEC"
+-		    " || HAVE_STRUCT___KERNEL_SOCK_TIMEVAL")
++SKIP_MAIN_UNDEFINED("__NR_recvmsg")
+ 
+ #endif
+-- 
+2.1.4
+
diff --git a/SOURCES/0150-filter_qualify-free-allocated-data-on-the-error-path.patch b/SOURCES/0150-filter_qualify-free-allocated-data-on-the-error-path.patch
new file mode 100644
index 0000000..7043b2f
--- /dev/null
+++ b/SOURCES/0150-filter_qualify-free-allocated-data-on-the-error-path.patch
@@ -0,0 +1,77 @@
+From a034f8a50cbe15d250457ed2eefbf9db059f724f Mon Sep 17 00:00:00 2001
+From: Eugene Syromyatnikov <evgsyr@gmail.com>
+Date: Wed, 18 Aug 2021 21:48:38 +0200
+Subject: [PATCH 147/150] filter_qualify: free allocated data on the error path
+ exit of parse_poke_token
+
+While not terribly required due to the fact that issues with option
+parsing lead to program termination, these changes avoid leaking data
+allocated in the function's scope and not stored elsewhere, which might
+come handy if it ever be used dynamically during the runtime.
+
+This also has been reported as resource leaks by covscan, and these
+changes should calm it.
+
+* src/filter_qualify.c (parse_poke_token): Go to err label instead of
+returning right away; free poke->data, poke, and str_tokenized before
+returning false.
+
+References: https://bugzilla.redhat.com/show_bug.cgi?id=1995509
+---
+ src/filter_qualify.c | 18 ++++++++++++------
+ 1 file changed, 12 insertions(+), 6 deletions(-)
+
+diff --git a/src/filter_qualify.c b/src/filter_qualify.c
+index df05496..a1a6471 100644
+--- a/src/filter_qualify.c
++++ b/src/filter_qualify.c
+@@ -169,34 +169,40 @@ parse_poke_token(const char *input, struct inject_opts *fopts, bool isenter)
+ 		poke->is_enter = isenter;
+ 
+ 		if ((val = STR_STRIP_PREFIX(token, "@arg")) == token)
+-			return false;
++			goto err;
+ 		if ((val[0] >= '1') && (val[0] <= '7')) {
+ 			poke->arg_no = val[0] - '0';
+ 		} else {
+-			return false;
++			goto err;
+ 		}
+ 		if (val[1] != '=')
+-			return false;
++			goto err;
+ 		val += 2;
+ 
+ 		data_len = strlen(val);
+ 		if ((data_len == 0) || (data_len % 2) || (data_len > 2048))
+-			return false;
++			goto err;
+ 		data_len /= 2;
+ 		poke->data_len = data_len;
+ 		poke->data = xmalloc(data_len);
+ 
+ 		for (size_t i = 0; i < data_len; i++)
+ 			if (sscanf(&val[2 * i], "%2hhx", &poke->data[i]) != 1)
+-				return false;
++				goto err;
+ 
+ 		if (poke_add(fopts->data.poke_idx, poke))
+-			return false;
++			goto err;
+ 	}
+ 	free(str_tokenized);
+ 
+ 	fopts->data.flags |= flag;
+ 	return true;
++
++err:
++	free(poke->data);
++	free(poke);
++	free(str_tokenized);
++	return false;
+ }
+ 
+ static bool
+-- 
+2.1.4
+
diff --git a/SOURCES/0151-macros-expand-BIT-macros-add-MASK-macros-add-_SAFE-m.patch b/SOURCES/0151-macros-expand-BIT-macros-add-MASK-macros-add-_SAFE-m.patch
new file mode 100644
index 0000000..6ee45fb
--- /dev/null
+++ b/SOURCES/0151-macros-expand-BIT-macros-add-MASK-macros-add-_SAFE-m.patch
@@ -0,0 +1,70 @@
+From 3f3dd44f1964c54b55e8c84343579bd7c1924df5 Mon Sep 17 00:00:00 2001
+From: Eugene Syromyatnikov <evgsyr@gmail.com>
+Date: Wed, 18 Aug 2021 21:49:12 +0200
+Subject: [PATCH 148/150] macros: expand BIT macros, add MASK macros; add
+ *_SAFE macros
+
+These macros might make reading a code that often converts between powers
+of 2 and values/masks a bit easier;  moreover, the *_SAFE versions should
+help in cases where the shift values are expected to be equal to the type
+bit width (which lead to UB otherwise).
+
+Switching from BIT to BIT32 should also clarify bitness, which may be somewhat
+murky at times (cf. printxval, printflags, and printxvals).
+
+* src/macros.h [!BIT] (BIT): Rename to...
+[!BIT32] (BIT32): ...this.
+[!BIT64] (BIT64): New macro.
+[!MASK32] (MASK32): Likewise.
+[!MASK64] (MASK64): Likewise.
+(BIT32_SAFE, BIT64_SAFE, MASK32_SAFE, MASK64_SAFE): New macros.
+(FLAG): Use BIT32.
+---
+ src/macros.h | 30 +++++++++++++++++++++++++++---
+ 1 file changed, 27 insertions(+), 3 deletions(-)
+
+diff --git a/src/macros.h b/src/macros.h
+index 467f5d0..2d7a83d 100644
+--- a/src/macros.h
++++ b/src/macros.h
+@@ -78,10 +78,34 @@ is_filled(const char *ptr, char fill, size_t size)
+ # define IS_ARRAY_ZERO(arr_)	\
+ 	is_filled((const char *) (arr_), 0, sizeof(arr_) + MUST_BE_ARRAY(arr_))
+ 
+-# ifndef BIT
+-#  define BIT(x_) (1U << (x_))
++# ifndef BIT32
++#  define BIT32(x_) (1U << (x_))
+ # endif
+ 
+-# define FLAG(name_) name_ = BIT(name_##_BIT)
++# ifndef BIT64
++#  define BIT64(x_) (1ULL << (x_))
++# endif
++
++# ifndef MASK32
++#  define MASK32(x_) (BIT32(x_) - 1U)
++# endif
++
++# ifndef MASK64
++#  define MASK64(x_) (BIT64(x_) - 1ULL)
++# endif
++
++/*
++ * "Safe" versions that avoid UB for values that are >= type bit size
++ * (the usually expected behaviour of the bit shift in that case is zero,
++ * but at least powerpc is notorious for returning the input value when shift
++ * by 64 bits is performed).
++ */
++
++# define BIT32_SAFE(x_) ((x_) < 32 ? BIT32(x_) : 0)
++# define BIT64_SAFE(x_) ((x_) < 64 ? BIT64(x_) : 0)
++# define MASK32_SAFE(x_) (BIT32_SAFE(x_) - 1U)
++# define MASK64_SAFE(x_) (BIT64_SAFE(x_) - 1ULL)
++
++# define FLAG(name_) name_ = BIT32(name_##_BIT)
+ 
+ #endif /* !STRACE_MACROS_H */
+-- 
+2.1.4
+
diff --git a/SOURCES/0152-trie-use-BIT-and-MASK-macros.patch b/SOURCES/0152-trie-use-BIT-and-MASK-macros.patch
new file mode 100644
index 0000000..91c6fe3
--- /dev/null
+++ b/SOURCES/0152-trie-use-BIT-and-MASK-macros.patch
@@ -0,0 +1,151 @@
+From 8ef5456338a947944cc03b95c22c837af5884ddc Mon Sep 17 00:00:00 2001
+From: Eugene Syromyatnikov <evgsyr@gmail.com>
+Date: Wed, 18 Aug 2021 21:51:22 +0200
+Subject: [PATCH 149/150] trie: use BIT* and MASK* macros
+
+This makes reading the code a bit easier.  It also solves some issues
+where there is a hypothertical possibility of having bit shifts of size
+64, by virtue of using the *_SAFE macros (that should silence some
+reported "left shifting by more than 63 bits has undefined behavior"
+covscan issues).
+
+* src/trie.c (trie_create): Use BIT32, MASK64.
+(trie_create_data_block): Use BIT32, change iterator variable type
+to size_t.
+(trie_get_node): Use BIT64, MASK64.
+(trie_data_block_calc_pos): Use BIT32, MASK64, MASK64_SAFE.
+(trie_iterate_keys_node): Use BIT64, MASK64, MASK64_SAFE.
+(trie_free_node): Use BIT64.
+---
+ src/trie.c | 34 +++++++++++++++++-----------------
+ 1 file changed, 17 insertions(+), 17 deletions(-)
+
+diff --git a/src/trie.c b/src/trie.c
+index 586ff25..0a231e4 100644
+--- a/src/trie.c
++++ b/src/trie.c
+@@ -15,6 +15,7 @@
+ #include <stdio.h>
+ 
+ #include "trie.h"
++#include "macros.h"
+ #include "xmalloc.h"
+ 
+ static const uint8_t ptr_sz_lg = (sizeof(void *) == 8 ? 6 : 5);
+@@ -87,7 +88,7 @@ trie_create(uint8_t key_size, uint8_t item_size_lg, uint8_t node_key_bits,
+ 		/ t->node_key_bits;
+ 
+ 	if (item_size_lg != 6)
+-		t->empty_value &= (((uint64_t) 1 << (1 << t->item_size_lg)) - 1);
++		t->empty_value &= MASK64(BIT32(t->item_size_lg));
+ 
+ 	return t;
+ }
+@@ -96,8 +97,8 @@ 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);
++	for (size_t i = 1; i < BIT32(6 - t->item_size_lg); i++) {
++		fill_value <<= BIT32(t->item_size_lg);
+ 		fill_value |= t->empty_value;
+ 	}
+ 
+@@ -105,7 +106,7 @@ trie_create_data_block(struct trie *t)
+ 	if (sz < 6)
+ 		sz = 6;
+ 
+-	size_t count = 1 << (sz - 6);
++	size_t count = BIT32(sz - 6);
+ 	uint64_t *data_block = xcalloc(count, 8);
+ 
+ 	for (size_t i = 0; i < count; i++)
+@@ -119,7 +120,7 @@ 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)
++	if (t->key_size < 64 && key > MASK64(t->key_size))
+ 		return NULL;
+ 
+ 	for (uint8_t cur_depth = 0; cur_depth <= t->max_depth; cur_depth++) {
+@@ -133,13 +134,13 @@ trie_get_node(struct trie *t, uint64_t key, bool auto_create)
+ 			if (cur_depth == t->max_depth)
+ 				*cur_node = trie_create_data_block(t);
+ 			else
+-				*cur_node = xcalloc(1 << sz, 1);
++				*cur_node = xcalloc(BIT64(sz), 1);
+ 		}
+ 
+ 		if (cur_depth == t->max_depth)
+ 			break;
+ 
+-		size_t pos = (key >> offs) & ((1 << (sz - ptr_sz_lg)) - 1);
++		size_t pos = (key >> offs) & MASK64(sz - ptr_sz_lg);
+ 		cur_node = (((void **) (*cur_node)) + pos);
+ 	}
+ 
+@@ -152,7 +153,7 @@ trie_data_block_calc_pos(struct trie *t, uint64_t key,
+ {
+ 	uint64_t key_mask;
+ 
+-	key_mask = (1 << t->data_block_key_bits) - 1;
++	key_mask = MASK64(t->data_block_key_bits);
+ 	*pos = (key & key_mask) >> (6 - t->item_size_lg);
+ 
+ 	if (t->item_size_lg == 6) {
+@@ -161,10 +162,10 @@ trie_data_block_calc_pos(struct trie *t, uint64_t key,
+ 		return;
+ 	}
+ 
+-	key_mask = (1 << (6 - t->item_size_lg)) - 1;
+-	*offs = (key & key_mask) * (1 << t->item_size_lg);
++	key_mask = MASK64(6 - t->item_size_lg);
++	*offs = (key & key_mask) << t->item_size_lg;
+ 
+-	*mask = (((uint64_t) 1 << (1 << t->item_size_lg)) - 1) << *offs;
++	*mask = MASK64_SAFE(BIT32(t->item_size_lg)) << *offs;
+ }
+ 
+ bool
+@@ -211,7 +212,7 @@ trie_iterate_keys_node(struct trie *t,
+ 		return 0;
+ 
+ 	if (t->key_size < 64) {
+-		uint64_t key_max = ((uint64_t) 1 << t->key_size) - 1;
++		uint64_t key_max = MASK64(t->key_size);
+ 		if (end > key_max)
+ 			end = key_max;
+ 	}
+@@ -228,15 +229,14 @@ trie_iterate_keys_node(struct trie *t,
+ 		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;
++	uint64_t first_key_in_node = start & ~MASK64_SAFE(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 mask = MASK64_SAFE(node_key_bits);
+ 	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 child_key_count = BIT64(node_bit_off);
+ 
+ 	uint64_t count = 0;
+ 
+@@ -274,7 +274,7 @@ trie_free_node(struct trie *t, void *node, uint8_t depth)
+ 	if (depth >= t->max_depth)
+ 		goto free_node;
+ 
+-	size_t sz = 1 << (trie_get_node_size(t, depth) - ptr_sz_lg);
++	size_t sz = BIT64(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);
+ 
+-- 
+2.1.4
+
diff --git a/SOURCES/0153-tee-rewrite-num_params-access-in-tee_fetch_buf_data.patch b/SOURCES/0153-tee-rewrite-num_params-access-in-tee_fetch_buf_data.patch
new file mode 100644
index 0000000..56aa8a1
--- /dev/null
+++ b/SOURCES/0153-tee-rewrite-num_params-access-in-tee_fetch_buf_data.patch
@@ -0,0 +1,52 @@
+From 3a68f90c2a5a208b475cc2014f85ae04541ec5b6 Mon Sep 17 00:00:00 2001
+From: Eugene Syromyatnikov <evgsyr@gmail.com>
+Date: Fri, 20 Aug 2021 21:31:01 +0200
+Subject: [PATCH 150/150] tee: rewrite num_params access in tee_fetch_buf_data
+
+Pointer to num_params field of the fetched structure is passed in a
+separate function argument which provokes covscan complaints about
+uninitialised accesses and also tingles my aliasing rules senses.
+Rewrite to access it via the arg_struct argument which is fetched
+earlier in the function flow.
+
+* src/tee.c (TEE_FETCH_BUF_DATA): Change &arg_.num_params
+to offsetof(typeof(arg_), num_params).
+(tee_fetch_buf_data): Accept offset of the num_params field instead
+of pointer to it; reconstruct the num_params pointer using it.
+---
+ src/tee.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/src/tee.c b/src/tee.c
+index f9eda52..d7e9b15 100644
+--- a/src/tee.c
++++ b/src/tee.c
+@@ -33,7 +33,7 @@ struct tee_ioctl_shm_register_fd_data {
+ 
+ #define TEE_FETCH_BUF_DATA(buf_, arg_, params_) \
+ 	tee_fetch_buf_data(tcp, arg, &buf_, sizeof(arg_), \
+-			   &arg_, &arg_.num_params, \
++			   &arg_, offsetof(typeof(arg_), num_params), \
+ 			   params_)
+ 
+ /* session id is printed as 0x%x in libteec */
+@@ -56,7 +56,7 @@ tee_fetch_buf_data(struct tcb *const tcp,
+ 		   struct tee_ioctl_buf_data *buf,
+ 		   size_t arg_size,
+ 		   void *arg_struct,
+-		   unsigned *num_params,
++		   size_t num_params_offs,
+ 		   uint64_t *params)
+ {
+ 	if (umove_or_printaddr(tcp, arg, buf))
+@@ -69,6 +69,7 @@ tee_fetch_buf_data(struct tcb *const tcp,
+ 		tee_print_buf(buf);
+ 		return RVAL_IOCTL_DECODED;
+ 	}
++	uint32_t *num_params = (uint32_t *) (arg_struct + num_params_offs);
+ 	if (entering(tcp) &&
+ 	    (arg_size + TEE_IOCTL_PARAM_SIZE(*num_params) != buf->buf_len)) {
+ 		/*
+-- 
+2.1.4
+
diff --git a/SOURCES/0154-tests-call-setsockopt-directly-in-sockopt-timestamp.patch b/SOURCES/0154-tests-call-setsockopt-directly-in-sockopt-timestamp.patch
new file mode 100644
index 0000000..8e019c1
--- /dev/null
+++ b/SOURCES/0154-tests-call-setsockopt-directly-in-sockopt-timestamp.patch
@@ -0,0 +1,171 @@
+From 719ccf8f4bf4263b02c686f16f579fd6119bb52c Mon Sep 17 00:00:00 2001
+From: Eugene Syromyatnikov <evgsyr@gmail.com>
+Date: Mon, 23 Aug 2021 18:24:39 +0200
+Subject: [PATCH] tests: call setsockopt directly in sockopt-timestamp
+
+While commit v5.13-10-g0211fdc "tests: change sockopt-timestamp test to
+use syscall(__NR_recvmsg)" has fixed issues with glibc-induced mangling
+on newer kernels, the combination of an older kernel and new glibc still
+causes issues, as glibc silently falls back to SO_TIMESTAMP{,NS}_OLD, as
+implemented in glibc-2.34~294 "linux: Add fallback for 64-bit time_t
+SO_TIMESTAMP{NS}".  Avoid that by calling setsockopt directly as well.
+
+* tests/sockopt-timestamp.c (SC_setsockopt): New macro constant.
+(k_setsockopt): New function.
+(test_sockopt): Call k_setsockopt instead of setsockopt.
+
+Complements: v5.13-10-g0211fdc "tests: change sockopt-timestamp test to use syscall(__NR_recvmsg)"
+---
+ tests/sockopt-timestamp.c | 31 ++++++++++++++++++++++++++++++-
+ 1 file changed, 30 insertions(+), 1 deletion(-)
+
+diff --git a/tests/sockopt-timestamp.c b/tests/sockopt-timestamp.c
+index 34c4d89..4bd96fd 100644
+--- a/tests/sockopt-timestamp.c
++++ b/tests/sockopt-timestamp.c
+@@ -48,6 +48,30 @@ k_recvmsg(const unsigned int fd, const void *const ptr, const unsigned int flags
+ 	return rc;
+ }
+ 
++#define SC_setsockopt 14
++static long
++k_setsockopt(const unsigned int fd, const unsigned int level,
++	     const unsigned int optname, const void *const optval,
++	     const unsigned int len)
++{
++	const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL;
++#ifdef __NR_setsockopt
++	const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL;
++#endif
++
++	return syscall(
++#ifdef __NR_setsockopt
++		__NR_setsockopt,
++#else /* socketcall */
++		__NR_socketcall, SC_setsockopt,
++#endif
++		fill | fd , fill | level, fill | optname, optval, fill | len
++#ifdef __NR_setsockopt
++		, bad
++#endif
++		);
++}
++
+ static void
+ print_timestamp_old(const struct cmsghdr *c)
+ {
+@@ -139,7 +163,12 @@ test_sockopt(int so_val, const char *str, void (*fun)(const struct cmsghdr *))
+ 		perror_msg_and_skip(data);
+ 
+ 	const int opt_1 = 1;
+-	if (setsockopt(sv[0], SOL_SOCKET, so_val, &opt_1, sizeof(opt_1))) {
++	/*
++	 * glibc-2.34~294 adds fallsback for SO_TIMESTAMP{,NS}_NEW that calls
++	 * SO_TIMESTAMP{,NS}_OLD, so we have to call the setsockopt directly
++	 * in order to avoid unexpected recvmsg msg types.
++	 */
++	if (k_setsockopt(sv[0], SOL_SOCKET, so_val, &opt_1, sizeof(opt_1))) {
+ 		perror(str);
+ 		return 0;
+ 	}
+diff --git a/tests-m32/sockopt-timestamp.c b/tests-m32/sockopt-timestamp.c
+index 34c4d89..4bd96fd 100644
+--- a/tests-m32/sockopt-timestamp.c
++++ b/tests-m32/sockopt-timestamp.c
+@@ -48,6 +48,30 @@ k_recvmsg(const unsigned int fd, const void *const ptr, const unsigned int flags
+ 	return rc;
+ }
+ 
++#define SC_setsockopt 14
++static long
++k_setsockopt(const unsigned int fd, const unsigned int level,
++	     const unsigned int optname, const void *const optval,
++	     const unsigned int len)
++{
++	const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL;
++#ifdef __NR_setsockopt
++	const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL;
++#endif
++
++	return syscall(
++#ifdef __NR_setsockopt
++		__NR_setsockopt,
++#else /* socketcall */
++		__NR_socketcall, SC_setsockopt,
++#endif
++		fill | fd , fill | level, fill | optname, optval, fill | len
++#ifdef __NR_setsockopt
++		, bad
++#endif
++		);
++}
++
+ static void
+ print_timestamp_old(const struct cmsghdr *c)
+ {
+@@ -139,7 +163,12 @@ test_sockopt(int so_val, const char *str, void (*fun)(const struct cmsghdr *))
+ 		perror_msg_and_skip(data);
+ 
+ 	const int opt_1 = 1;
+-	if (setsockopt(sv[0], SOL_SOCKET, so_val, &opt_1, sizeof(opt_1))) {
++	/*
++	 * glibc-2.34~294 adds fallsback for SO_TIMESTAMP{,NS}_NEW that calls
++	 * SO_TIMESTAMP{,NS}_OLD, so we have to call the setsockopt directly
++	 * in order to avoid unexpected recvmsg msg types.
++	 */
++	if (k_setsockopt(sv[0], SOL_SOCKET, so_val, &opt_1, sizeof(opt_1))) {
+ 		perror(str);
+ 		return 0;
+ 	}
+diff --git a/tests-mx32/sockopt-timestamp.c b/tests-mx32/sockopt-timestamp.c
+index 34c4d89..4bd96fd 100644
+--- a/tests-mx32/sockopt-timestamp.c
++++ b/tests-mx32/sockopt-timestamp.c
+@@ -48,6 +48,30 @@ k_recvmsg(const unsigned int fd, const void *const ptr, const unsigned int flags
+ 	return rc;
+ }
+ 
++#define SC_setsockopt 14
++static long
++k_setsockopt(const unsigned int fd, const unsigned int level,
++	     const unsigned int optname, const void *const optval,
++	     const unsigned int len)
++{
++	const kernel_ulong_t fill = (kernel_ulong_t) 0xdefaced00000000ULL;
++#ifdef __NR_setsockopt
++	const kernel_ulong_t bad = (kernel_ulong_t) 0xbadc0dedbadc0dedULL;
++#endif
++
++	return syscall(
++#ifdef __NR_setsockopt
++		__NR_setsockopt,
++#else /* socketcall */
++		__NR_socketcall, SC_setsockopt,
++#endif
++		fill | fd , fill | level, fill | optname, optval, fill | len
++#ifdef __NR_setsockopt
++		, bad
++#endif
++		);
++}
++
+ static void
+ print_timestamp_old(const struct cmsghdr *c)
+ {
+@@ -139,7 +163,12 @@ test_sockopt(int so_val, const char *str, void (*fun)(const struct cmsghdr *))
+ 		perror_msg_and_skip(data);
+ 
+ 	const int opt_1 = 1;
+-	if (setsockopt(sv[0], SOL_SOCKET, so_val, &opt_1, sizeof(opt_1))) {
++	/*
++	 * glibc-2.34~294 adds fallsback for SO_TIMESTAMP{,NS}_NEW that calls
++	 * SO_TIMESTAMP{,NS}_OLD, so we have to call the setsockopt directly
++	 * in order to avoid unexpected recvmsg msg types.
++	 */
++	if (k_setsockopt(sv[0], SOL_SOCKET, so_val, &opt_1, sizeof(opt_1))) {
+ 		perror(str);
+ 		return 0;
+ 	}
+-- 
+2.1.4
+
diff --git a/SOURCES/0167-print_ifindex-fix-IFNAME_QUOTED_SZ-definition.patch b/SOURCES/0167-print_ifindex-fix-IFNAME_QUOTED_SZ-definition.patch
new file mode 100644
index 0000000..9f19614
--- /dev/null
+++ b/SOURCES/0167-print_ifindex-fix-IFNAME_QUOTED_SZ-definition.patch
@@ -0,0 +1,55 @@
+From e27b06773eaf5c0307bcc5637d7457be9be1e6ea Mon Sep 17 00:00:00 2001
+From: Eugene Syromyatnikov <evgsyr@gmail.com>
+Date: Wed, 1 Dec 2021 17:11:02 +0100
+Subject: [PATCH] print_ifindex: fix IFNAME_QUOTED_SZ definition
+
+sizeof(IFNAMSIZ) instead of IFNAMSIZ was mistakenly used
+for IFNAME_QUOTED_SZ initial definition in commit v4.23~87
+"print_ifindex: respect xlat style settings".
+
+* src/print_ifindex.c (IFNAME_QUOTED_SZ): Use IFNAMSIZ
+instead of sizeof(IFNAMSIZ).
+* NEWS: Mention it.
+
+Reported-by: Paulo Andrade <pandrade@redhat.com>
+Suggested-by: Paulo Andrade <pandrade@redhat.com>
+Fixes: v4.23~87 "print_ifindex: respect xlat style settings"
+References: https://bugzilla.redhat.com/show_bug.cgi?id=2028146
+---
+ NEWS                | 4 ++++
+ src/print_ifindex.c | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/NEWS b/NEWS
+index 9bab673..a3036b8 100644
+--- a/NEWS
++++ b/NEWS
+@@ -16,6 +16,12 @@ Noteworthy changes in release ?.?? (????-??-??)
+     PTRACE_*, RTM_*, RTPROT_*, TRAP_*, UFFD_*, UFFDIO_*, and V4L2_* constants.
+   * Updated lists of ioctl commands from Linux 5.13.
+ 
++ * Bug fixes
++  * Fixed insufficient buffer size used for network interface name printing,
++    that previously led to assertions on attempts of printing interface names
++    that require quoting, for example, names longer than 4 characters in -xx
++    mode (addresses RHBZ bug #2028146).
++
+ * Portability
+   * On powerpc and powerpc64, linux kernel >= 2.6.23 is required.
+     Older versions without a decent PTRACE_GETREGS support will not work.
+diff --git a/src/print_ifindex.c b/src/print_ifindex.c
+index ec48093..dc9d592 100644
+--- a/src/print_ifindex.c
++++ b/src/print_ifindex.c
+@@ -13,7 +13,7 @@
+ 
+ # define INI_PFX "if_nametoindex(\""
+ # define INI_SFX "\")"
+-# define IFNAME_QUOTED_SZ (sizeof(IFNAMSIZ) * 4 + 3)
++# define IFNAME_QUOTED_SZ (IFNAMSIZ * 4 + 3)
+ 
+ const char *
+ get_ifname(const unsigned int ifindex)
+-- 
+2.1.4
+
diff --git a/SOURCES/0168-m4-fix-st_SELINUX-check.patch b/SOURCES/0168-m4-fix-st_SELINUX-check.patch
new file mode 100644
index 0000000..9c3203f
--- /dev/null
+++ b/SOURCES/0168-m4-fix-st_SELINUX-check.patch
@@ -0,0 +1,208 @@
+From b8f375c2c8140e759122bca3e3469386d3ba5184 Mon Sep 17 00:00:00 2001
+From: "Dmitry V. Levin" <ldv@strace.io>
+Date: Mon, 29 Nov 2021 08:00:00 +0000
+Subject: [PATCH 168/174] m4: fix st_SELINUX check
+
+* m4/st_selinux.m4: Make sure selinux support is enabled only if
+all expected functions are provided by libselinux.
+
+Fixes: v5.12~49 "Implement --secontext[=full] option to display SELinux contexts"
+---
+ m4/st_selinux.m4 | 36 ++++++++++++++++--------------------
+ 1 file changed, 16 insertions(+), 20 deletions(-)
+
+diff --git a/m4/st_selinux.m4 b/m4/st_selinux.m4
+index da72a48..7b24eba 100644
+--- a/m4/st_selinux.m4
++++ b/m4/st_selinux.m4
+@@ -34,29 +34,25 @@ AS_IF([test "x$with_libselinux" != xno],
+        AS_IF([test "x$found_selinux_h" = xyes],
+ 	     [saved_LDFLAGS="$LDFLAGS"
+ 	      LDFLAGS="$LDFLAGS $libselinux_LDFLAGS"
+-	      AC_CHECK_LIB([selinux],[getpidcon],
+-		[libselinux_LIBS="-lselinux"
+-		 enable_secontext=yes
+-		],
+-		[if test "x$with_libselinux" != xcheck; then
+-		   AC_MSG_FAILURE([failed to find getpidcon in libselinux])
+-		 fi
+-		]
+-	      )
+-	      AC_CHECK_LIB([selinux],[getfilecon],
+-		[libselinux_LIBS="-lselinux"
+-		 enable_secontext=yes
+-		],
+-		[if test "x$with_libselinux" != xcheck; then
+-		   AC_MSG_FAILURE([failed to find getfilecon in libselinux])
+-		 fi
+-		]
++	      missing=
++	      for func in getpidcon getfilecon; do
++		AC_CHECK_LIB([selinux], [$func], [:],
++			     [missing="$missing $func"])
++	      done
++	      AS_IF([test "x$missing" = x],
++	            [libselinux_LIBS="-lselinux"
++		     enable_secontext=yes
++		    ],
++		    [AS_IF([test "x$with_libselinux" != xcheck],
++			   [AC_MSG_FAILURE([failed to find in libselinux:$missing])]
++		     )
++		    ]
+ 	      )
+ 	      LDFLAGS="$saved_LDFLAGS"
+ 	     ],
+-	     [if test "x$with_libselinux" != xcheck; then
+-		AC_MSG_FAILURE([failed to find selinux.h])
+-	      fi
++	     [AS_IF([test "x$with_libselinux" != xcheck],
++		    [AC_MSG_FAILURE([failed to find selinux.h])]
++	      )
+ 	     ]
+        )
+       ]
+--- old/configure	2022-02-07 20:17:58.364068436 +0100
++++ new/configure	2022-02-07 20:19:17.092067347 +0100
+@@ -18437,9 +18437,12 @@
+        if test "x$found_selinux_h" = xyes; then :
+   saved_LDFLAGS="$LDFLAGS"
+ 	      LDFLAGS="$LDFLAGS $libselinux_LDFLAGS"
+-	      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getpidcon in -lselinux" >&5
+-$as_echo_n "checking for getpidcon in -lselinux... " >&6; }
+-if ${ac_cv_lib_selinux_getpidcon+:} false; then :
++	      missing=
++	      for func in getpidcon getfilecon; do
++		as_ac_Lib=`$as_echo "ac_cv_lib_selinux_$func" | $as_tr_sh`
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $func in -lselinux" >&5
++$as_echo_n "checking for $func in -lselinux... " >&6; }
++if eval \${$as_ac_Lib+:} false; then :
+   $as_echo_n "(cached) " >&6
+ else
+   ac_check_lib_save_LIBS=$LIBS
+@@ -18453,101 +18456,59 @@
+ #ifdef __cplusplus
+ extern "C"
+ #endif
+-char getpidcon ();
++char $func ();
+ int
+ main ()
+ {
+-return getpidcon ();
++return $func ();
+   ;
+   return 0;
+ }
+ _ACEOF
+ if ac_fn_c_try_link "$LINENO"; then :
+-  ac_cv_lib_selinux_getpidcon=yes
++  eval "$as_ac_Lib=yes"
+ else
+-  ac_cv_lib_selinux_getpidcon=no
++  eval "$as_ac_Lib=no"
+ fi
+ rm -f core conftest.err conftest.$ac_objext \
+     conftest$ac_exeext conftest.$ac_ext
+ LIBS=$ac_check_lib_save_LIBS
+ fi
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_getpidcon" >&5
+-$as_echo "$ac_cv_lib_selinux_getpidcon" >&6; }
+-if test "x$ac_cv_lib_selinux_getpidcon" = xyes; then :
+-  libselinux_LIBS="-lselinux"
+-		 enable_secontext=yes
+-
++eval ac_res=\$$as_ac_Lib
++	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
++$as_echo "$ac_res" >&6; }
++if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
++  :
+ else
+-  if test "x$with_libselinux" != xcheck; then
+-		   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+-as_fn_error $? "failed to find getpidcon in libselinux
+-See \`config.log' for more details" "$LINENO" 5; }
+-		 fi
+-
+-
++  missing="$missing $func"
+ fi
+ 
+-	      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getfilecon in -lselinux" >&5
+-$as_echo_n "checking for getfilecon in -lselinux... " >&6; }
+-if ${ac_cv_lib_selinux_getfilecon+:} false; then :
+-  $as_echo_n "(cached) " >&6
+-else
+-  ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lselinux  $LIBS"
+-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h.  */
+-
+-/* Override any GCC internal prototype to avoid an error.
+-   Use char because int might match the return type of a GCC
+-   builtin and then its argument prototype would still apply.  */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-char getfilecon ();
+-int
+-main ()
+-{
+-return getfilecon ();
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-if ac_fn_c_try_link "$LINENO"; then :
+-  ac_cv_lib_selinux_getfilecon=yes
+-else
+-  ac_cv_lib_selinux_getfilecon=no
+-fi
+-rm -f core conftest.err conftest.$ac_objext \
+-    conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_getfilecon" >&5
+-$as_echo "$ac_cv_lib_selinux_getfilecon" >&6; }
+-if test "x$ac_cv_lib_selinux_getfilecon" = xyes; then :
++	      done
++	      if test "x$missing" = x; then :
+   libselinux_LIBS="-lselinux"
+-		 enable_secontext=yes
++		     enable_secontext=yes
+ 
+ else
+-  if test "x$with_libselinux" != xcheck; then
+-		   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
++  if test "x$with_libselinux" != xcheck; then :
++  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+-as_fn_error $? "failed to find getfilecon in libselinux
++as_fn_error $? "failed to find in libselinux:$missing
+ See \`config.log' for more details" "$LINENO" 5; }
+-		 fi
+-
+ 
+ fi
+ 
++
++fi
+ 	      LDFLAGS="$saved_LDFLAGS"
+ 
+ else
+-  if test "x$with_libselinux" != xcheck; then
+-		{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
++  if test "x$with_libselinux" != xcheck; then :
++  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ as_fn_error $? "failed to find selinux.h
+ See \`config.log' for more details" "$LINENO" 5; }
+-	      fi
++
++fi
+ 
+ 
+ fi
+-- 
+2.1.4
+
diff --git a/SOURCES/0169-Implement-displaying-of-expected-context-upon-mismat.patch b/SOURCES/0169-Implement-displaying-of-expected-context-upon-mismat.patch
new file mode 100644
index 0000000..c1e08db
--- /dev/null
+++ b/SOURCES/0169-Implement-displaying-of-expected-context-upon-mismat.patch
@@ -0,0 +1,6958 @@
+From 8b07b18a44f7e0ebdb65b791d79d588dd90b70b6 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Renaud=20M=C3=A9trich?= <rmetrich@redhat.com>
+Date: Tue, 5 Oct 2021 08:36:22 +0200
+Subject: [PATCH 169/174] Implement displaying of expected context upon
+ mismatch
+
+New option to --secontext=... (also available as -e secontext=...)
+- mismatch: print expected context on mismatch
+
+When using 'mismatch', an additional check is made on the context by
+reading the context database and comparing the output after stripping
+the unwanted part (e.g. stripping nothing in 'full' mode, keeping the
+type only in default mode):
+- if it differs, prints the expected context after printing '!!'
+- if not, don't print anything
+
+Example with /home/rmetrich/GIT/strace/autom4te.cache/output.3 file:
+
+----
+$ matchpathcon /home/rmetrich/GIT/strace/autom4te.cache/output.3
+/home/rmetrich/GIT/strace/autom4te.cache/output.3	unconfined_u:object_r:user_home_t:s0
+
+$ ls -Z /home/rmetrich/GIT/strace/autom4te.cache/output.3
+system_u:object_r:user_home_t:s0 /home/rmetrich/GIT/strace/autom4te.cache/output.3
+----
+
+From above, we see the user part differs ('unconfined_u' vs 'system_u')
+
+Output in '!full' mode (no diff found on type):
+
+----
+$ strace --secontext=mismatch -e statx stat /home/rmetrich/GIT/strace/autom4te.cache/output.3
+... statx(AT_FDCWD, "/home/rmetrich/GIT/strace/autom4te.cache/output.3" [user_home_t], ...
+----
+
+Output in 'full' mode (diff found on user):
+
+----
+... statx(AT_FDCWD, "/home/rmetrich/GIT/strace/autom4te.cache/output.3" [system_u:object_r:user_home_t:s0!!unconfined_u:object_r:user_home_t:s0], ...
+----
+
+* NEWS: Mention this change.
+* doc/strace.1.in: Document it.
+* m4/st_selinux.m4 (st_SELINUX): Check for selabel_open
+and selabel_lookup.
+* src/filter_qualify.c [ENABLE_SECONTEXT]: Include "secontext.h".
+[ENABLE_SECONTEXT] (secontext_set): New variable.
+[ENABLE_SECONTEXT] (secontextstr_to_uint, qualify_secontext): New
+functions.
+(qual_options) [ENABLE_SECONTEXT]: Add "secontext".
+* src/secontext.c: Include <sys/stat.h>, <unistd.h>, <selinux/label.h>,
+"largefile_wrappers.h", "number_set.h", and "xmalloc.h".
+(selinux_context, selinux_context_full): Remove.
+(getcontext): Use is_number_in_set instead of selinux_context_full.
+(selinux_getpidcon): Use is_number_in_set instead of selinux_context.
+(get_expected_filecontext): New function.
+(selinux_getfdcon, selinux_getfilecon): Use it to print context mismatch
+if SECONTEXT_MISMATCH is set in secontext_set.
+* src/secontext.h (selinux_context, selinux_context_full): Remove.
+(secontext_bits): New enum.
+(secontext_set, qualify_secontext, selinux_set_format): New
+declarations.
+* src/strace.c (SECONTEXT_E_QUAL): New macro.
+(usage): Use it, describe --secontext.
+(init) [ENABLE_SECONTEXT]: Call qualify_secontext, rename
+GETOPT_SECONTEXT to GETOPT_QUAL_SECONTEXT, use is_number_in_set
+instead of selinux_context.
+(init) [ENABLE_SECONTEXT] (secontext_qual): New variable.
+(init) [ENABLE_SECONTEXT] <GETOPT_QUAL_SECONTEXT>: Use it.
+* tests/.gitignore: Add *--secontext_full_mismatch,
+*--secontext_full_mismatch.c, *--secontext_mismatch, and
+*--secontext_mismatch.c.
+* tests/gen_secontext.sh: Generate *--secontext_full_mismatch.c
+and *--secontext_mismatch.c.
+* tests/gen_tests.in (access--secontext_full_mismatch,
+access--secontext_mismatch, chmod--secontext_full_mismatch,
+chmod--secontext_mismatch, execve--secontext_full_mismatch,
+execve--secontext_mismatch, execveat--secontext_full_mismatch,
+execveat--secontext_mismatch, faccessat--secontext_full_mismatch,
+faccessat--secontext_mismatch, faccessat-y--secontext_full_mismatch,
+faccessat-y--secontext_mismatch, fanotify_mark--secontext_full_mismatch,
+fanotify_mark--secontext_mismatch, fchmod--secontext_full_mismatch,
+fchmod--secontext_mismatch, fchmod-y--secontext_full_mismatch,
+fchmod-y--secontext_mismatch, fchmodat--secontext_full_mismatch,
+fchmodat--secontext_mismatch, fchownat--secontext_full_mismatch,
+fchownat--secontext_mismatch, file_handle--secontext_full_mismatch,
+file_handle--secontext_mismatch, linkat--secontext_full_mismatch,
+linkat--secontext_mismatch, open--secontext_full_mismatch,
+open--secontext_mismatch, openat--secontext_full_mismatch,
+openat--secontext_mismatch): New tests.
+* tests/linkat.c: Include <string.h>.
+(main) [PRINT_SECONTEXT_MISMATCH]: Check context mismatch.
+* tests/options-syntax.test: Check --secontext and -e secontext syntax.
+* tests/secontext.h (secontext_field): New enum.
+(secontext_full_file, secontext_short_file): Add "mismatch" argument.
+(update_secontext_type): Rename to update_secontext_field, add "field"
+argument.
+(SECONTEXT_FILE): Conditionalize "mismatch" argument passed to
+secontext_full_file and secontext_short_file on
+PRINT_SECONTEXT_MISMATCH.
+* tests/secontext.c: Include <sys/stat.h> and <selinux/label.h>.
+(get_type_from_context, raw_expected_secontext_full_file,
+raw_expected_secontext_short_file): New functions.
+(raw_secontext_short_file, raw_secontext_short_pid): Use
+get_type_from_context.
+(secontext_full_file): Add "mismatch" argument, use
+raw_expected_secontext_full_file if mismatch is enabled.
+(secontext_short_file): Add "mismatch" argument, use
+raw_expected_secontext_short_file if mismatch is enabled.
+(update_secontext_type): Rename to update_secontext_field, add "field"
+argument.
+
+Co-authored-by: Dmitry V. Levin <ldv@strace.io>
+
+Conflicts:
+	NEWS
+	doc/strace.1.in
+	src/filter_qualify.c
+	src/strace.c
+---
+ NEWS                      |   2 +
+ doc/strace.1.in           |  33 +++++++--
+ m4/st_selinux.m4          |   2 +-
+ src/filter_qualify.c      |  29 ++++++++
+ src/secontext.c           | 114 ++++++++++++++++++++++++++----
+ src/secontext.h           |  15 +++-
+ src/strace.c              |  49 ++++++++-----
+ tests/.gitignore          |   4 ++
+ tests/gen_secontext.sh    |  12 +++-
+ tests/gen_tests.in        |  34 ++++++++-
+ tests/linkat.c            |  46 +++++++++++-
+ tests/options-syntax.test |  14 +++-
+ tests/secontext.c         | 176 ++++++++++++++++++++++++++++++++--------------
+ tests/secontext.h         |  28 ++++++--
+ 14 files changed, 453 insertions(+), 105 deletions(-)
+
+diff --git a/NEWS b/NEWS
+index 969ed11..f7542ea 100644
+--- a/NEWS
++++ b/NEWS
+@@ -2,6 +2,8 @@ Noteworthy changes in release 5.13 (2021-07-18)
+ ===============================================
+ 
+ * Improvements
++  * Implemented --secontext=mismatch option to find mismatches in SELinux
++    contexts.
+   * Print netlink data in a more structured way.
+   * Implemented decoding of NT_PRSTATUS and NT_FPREGSET regsets
+     of PTRACE_GETREGSET and PTRACE_SETREGSET requests.
+diff --git a/doc/strace.1.in b/doc/strace.1.in
+index 003e9e5..439243b 100644
+--- a/doc/strace.1.in
++++ b/doc/strace.1.in
+@@ -53,7 +53,7 @@ strace \- trace system calls and signals
+ .OM \-P path
+ .OM \-p pid
+ .OP \-\-seccomp\-bpf
+-.if '@ENABLE_SECONTEXT_FALSE@'#' .OP \-\-secontext\fR[=full]
++.if '@ENABLE_SECONTEXT_FALSE@'#' .OP \-\-secontext\fR[=\fIformat\fR]
+ .BR "" {
+ .OR \-p pid
+ .BR "" |
+@@ -259,6 +259,7 @@ is one of
+ .BR inject ,
+ .BR status ,
+ .BR quiet " (or " silent " or " silence " or " q ),
++.if '@ENABLE_SECONTEXT_FALSE@'#' .BR secontext ,
+ .BR decode\-fds " (or " decode\-fd ),
+ or
+ .BR kvm ,
+@@ -1086,13 +1087,33 @@ and PIDs associated with pidfd file descriptors.
+ If strace and tracee are in different PID namespaces, print PIDs in
+ strace's namespace, too.
+ .if '@ENABLE_SECONTEXT_FALSE@'#' .TP
+-.if '@ENABLE_SECONTEXT_FALSE@'#' .BR \-\-secontext "[=full]"
++.if '@ENABLE_SECONTEXT_FALSE@'#' .BR \-\-secontext\fR[=\fIformat\fR]
++.if '@ENABLE_SECONTEXT_FALSE@'#' .TQ
++.if '@ENABLE_SECONTEXT_FALSE@'#' .BR \-e\ secontext\fR=\fIformat\fR
+ .if '@ENABLE_SECONTEXT_FALSE@'#' When SELinux is available and is not disabled,
+ .if '@ENABLE_SECONTEXT_FALSE@'#' print in square brackets SELinux contexts of
+-.if '@ENABLE_SECONTEXT_FALSE@'#' processes, files, and descriptors.  When
+-.if '@ENABLE_SECONTEXT_FALSE@'#' .B full
+-.if '@ENABLE_SECONTEXT_FALSE@'#' is specified, print the complete context (user,
+-.if '@ENABLE_SECONTEXT_FALSE@'#' role, type and category) instead of just the type.
++.if '@ENABLE_SECONTEXT_FALSE@'#' processes, files, and descriptors.  The
++.if '@ENABLE_SECONTEXT_FALSE@'#' .I format
++.if '@ENABLE_SECONTEXT_FALSE@'#' argument is a comma-separated list of items
++.if '@ENABLE_SECONTEXT_FALSE@'#' being one of the following:
++.if '@ENABLE_SECONTEXT_FALSE@'#' .RS
++.if '@ENABLE_SECONTEXT_FALSE@'#' .TP 18
++.if '@ENABLE_SECONTEXT_FALSE@'#' .BR full
++.if '@ENABLE_SECONTEXT_FALSE@'#' Print the full context (user, role, type level
++.if '@ENABLE_SECONTEXT_FALSE@'#' and category).
++.if '@ENABLE_SECONTEXT_FALSE@'#' .TQ
++.if '@ENABLE_SECONTEXT_FALSE@'#' .BR mismatch
++.if '@ENABLE_SECONTEXT_FALSE@'#' Also print the context recorded by the SELinux
++.if '@ENABLE_SECONTEXT_FALSE@'#' database in case the current context differs.
++.if '@ENABLE_SECONTEXT_FALSE@'#' The latter is printed after two exclamation marks (!!).
++.if '@ENABLE_SECONTEXT_FALSE@'#' .RE
++.if '@ENABLE_SECONTEXT_FALSE@'#' .IP
++.if '@ENABLE_SECONTEXT_FALSE@'#' The default value for
++.if '@ENABLE_SECONTEXT_FALSE@'#' .BR \-\-secontext
++.if '@ENABLE_SECONTEXT_FALSE@'#' is
++.if '@ENABLE_SECONTEXT_FALSE@'#' .BR !full,mismatch
++.if '@ENABLE_SECONTEXT_FALSE@'#' which prints only the type instead of full context
++.if '@ENABLE_SECONTEXT_FALSE@'#' and doesn't check for context mismatches.
+ .SS Statistics
+ .TP 12
+ .B \-c
+diff --git a/m4/st_selinux.m4 b/m4/st_selinux.m4
+index 7b24eba..60e23a9 100644
+--- a/m4/st_selinux.m4
++++ b/m4/st_selinux.m4
+@@ -35,7 +35,7 @@ AS_IF([test "x$with_libselinux" != xno],
+ 	     [saved_LDFLAGS="$LDFLAGS"
+ 	      LDFLAGS="$LDFLAGS $libselinux_LDFLAGS"
+ 	      missing=
+-	      for func in getpidcon getfilecon; do
++	      for func in getpidcon getfilecon selabel_open selabel_lookup; do
+ 		AC_CHECK_LIB([selinux], [$func], [:],
+ 			     [missing="$missing $func"])
+ 	      done
+diff --git a/src/filter_qualify.c b/src/filter_qualify.c
+index df05496..a5b4fe7 100644
+--- a/src/filter_qualify.c
++++ b/src/filter_qualify.c
+@@ -14,6 +14,9 @@
+ #include "poke.h"
+ #include "retval.h"
+ #include "static_assert.h"
++#ifdef ENABLE_SECONTEXT
++# include "secontext.h"
++#endif
+ 
+ struct number_set *read_set;
+ struct number_set *write_set;
+@@ -591,6 +594,29 @@ qualify_kvm(const char *const str)
+ 	}
+ }
+ 
++#ifdef ENABLE_SECONTEXT
++struct number_set *secontext_set;
++
++static int
++secontextstr_to_uint(const char *s)
++{
++	static const struct xlat_data secontext_strs[] = {
++		{ SECONTEXT_FULL,	"full" },
++		{ SECONTEXT_MISMATCH,	"mismatch" },
++	};
++
++	return (int) find_arg_val(s, secontext_strs, -1ULL, -1ULL);
++}
++
++void
++qualify_secontext(const char *const str)
++{
++	if (!secontext_set)
++		secontext_set = alloc_number_set_array(1);
++	qualify_tokens(str, secontext_set, secontextstr_to_uint, "secontext");
++}
++#endif
++
+ static const struct qual_options {
+ 	const char *name;
+ 	void (*qualify)(const char *);
+@@ -622,6 +648,9 @@ static const struct qual_options {
+ 	{ "kvm",	qualify_kvm	},
+ 	{ "decode-fd",	qualify_decode_fd },
+ 	{ "decode-fds",	qualify_decode_fd },
++#ifdef ENABLE_SECONTEXT
++	{ "secontext",  qualify_secontext },
++#endif
+ };
+ 
+ void
+diff --git a/src/secontext.c b/src/secontext.c
+index ccf9b34..9a91386 100644
+--- a/src/secontext.c
++++ b/src/secontext.c
+@@ -10,14 +10,17 @@
+ #include <stdlib.h>
+ #include <fcntl.h>
+ #include <limits.h>
++#include <sys/stat.h>
++#include <unistd.h>
+ #include <selinux/selinux.h>
++#include <selinux/label.h>
+ 
++#include "largefile_wrappers.h"
++#include "number_set.h"
+ #include "secontext.h"
++#include "xmalloc.h"
+ #include "xstring.h"
+ 
+-bool selinux_context = false;
+-bool selinux_context_full = false;
+-
+ static int
+ getcontext(int rc, char **secontext, char **result)
+ {
+@@ -25,7 +28,7 @@ getcontext(int rc, char **secontext, char **result)
+ 		return rc;
+ 
+ 	*result = NULL;
+-	if (!selinux_context_full) {
++	if (!is_number_in_set(SECONTEXT_FULL, secontext_set)) {
+ 		char *saveptr = NULL;
+ 		char *secontext_copy = xstrdup(*secontext);
+ 		const char *token;
+@@ -59,6 +62,36 @@ getcontext(int rc, char **secontext, char **result)
+ 	freecon(*secontext);
+ 	return 0;
+ }
++
++static int
++get_expected_filecontext(const char *path, char **result)
++{
++	static struct selabel_handle *hdl;
++
++	if (!hdl) {
++		static bool disabled;
++		if (disabled)
++			return -1;
++
++		hdl = selabel_open(SELABEL_CTX_FILE, NULL, 0);
++		if (!hdl) {
++			perror_msg("could not open SELinux database, disabling "
++				   "context mismatch checking");
++			disabled = true;
++			return -1;
++		}
++	}
++
++	strace_stat_t stb;
++	if (stat_file(path, &stb) < 0) {
++		return -1;
++	}
++
++	char *secontext;
++	return getcontext(selabel_lookup(hdl, &secontext, path, stb.st_mode),
++			  &secontext, result);
++}
++
+ /*
+  * Retrieves the SELinux context of the given PID (extracted from the tcb).
+  * Memory must be freed.
+@@ -67,7 +100,7 @@ getcontext(int rc, char **secontext, char **result)
+ int
+ selinux_getpidcon(struct tcb *tcp, char **result)
+ {
+-	if (!selinux_context)
++	if (number_set_array_is_empty(secontext_set, 0))
+ 		return -1;
+ 
+ 	int proc_pid = 0;
+@@ -87,7 +120,7 @@ selinux_getpidcon(struct tcb *tcp, char **result)
+ int
+ selinux_getfdcon(pid_t pid, int fd, char **result)
+ {
+-	if (!selinux_context || pid <= 0 || fd < 0)
++	if (number_set_array_is_empty(secontext_set, 0) || pid <= 0 || fd < 0)
+ 		return -1;
+ 
+ 	int proc_pid = 0;
+@@ -99,7 +132,33 @@ selinux_getfdcon(pid_t pid, int fd, char **result)
+ 	xsprintf(linkpath, "/proc/%u/fd/%u", proc_pid, fd);
+ 
+ 	char *secontext;
+-	return getcontext(getfilecon(linkpath, &secontext), &secontext, result);
++	int rc = getcontext(getfilecon(linkpath, &secontext), &secontext, result);
++	if (rc < 0 || !is_number_in_set(SECONTEXT_MISMATCH, secontext_set))
++		return rc;
++
++	/*
++	 * We need to resolve the path, because selabel_lookup() doesn't
++	 * resolve anything.  Using readlink() is sufficient here.
++	 */
++
++	char buf[PATH_MAX];
++	ssize_t n = readlink(linkpath, buf, sizeof(buf));
++	if ((size_t) n >= sizeof(buf))
++		return 0;
++	buf[n] = '\0';
++
++	char *expected;
++	if (get_expected_filecontext(buf, &expected) < 0)
++		return 0;
++	if (strcmp(expected, *result) == 0) {
++		free(expected);
++		return 0;
++	}
++	char *final_result = xasprintf("%s!!%s", *result, expected);
++	free(expected);
++	free(*result);
++	*result = final_result;
++	return 0;
+ }
+ 
+ /*
+@@ -110,7 +169,7 @@ selinux_getfdcon(pid_t pid, int fd, char **result)
+ int
+ selinux_getfilecon(struct tcb *tcp, const char *path, char **result)
+ {
+-	if (!selinux_context)
++	if (number_set_array_is_empty(secontext_set, 0))
+ 		return -1;
+ 
+ 	int proc_pid = 0;
+@@ -118,22 +177,49 @@ selinux_getfilecon(struct tcb *tcp, const char *path, char **result)
+ 	if (!proc_pid)
+ 		return -1;
+ 
+-	int ret = -1;
++	int rc = -1;
+ 	char fname[PATH_MAX];
+ 
+ 	if (path[0] == '/')
+-		ret = snprintf(fname, sizeof(fname), "/proc/%u/root%s",
++		rc = snprintf(fname, sizeof(fname), "/proc/%u/root%s",
+ 			       proc_pid, path);
+ 	else if (tcp->last_dirfd == AT_FDCWD)
+-		ret = snprintf(fname, sizeof(fname), "/proc/%u/cwd/%s",
++		rc = snprintf(fname, sizeof(fname), "/proc/%u/cwd/%s",
+ 			       proc_pid, path);
+ 	else if (tcp->last_dirfd >= 0 )
+-		ret = snprintf(fname, sizeof(fname), "/proc/%u/fd/%u/%s",
++		rc = snprintf(fname, sizeof(fname), "/proc/%u/fd/%u/%s",
+ 			       proc_pid, tcp->last_dirfd, path);
+ 
+-	if ((unsigned int) ret >= sizeof(fname))
++	if ((unsigned int) rc >= sizeof(fname))
+ 		return -1;
+ 
+ 	char *secontext;
+-	return getcontext(getfilecon(fname, &secontext), &secontext, result);
++	rc = getcontext(getfilecon(fname, &secontext), &secontext, result);
++	if (rc < 0 || !is_number_in_set(SECONTEXT_MISMATCH, secontext_set))
++		return rc;
++
++	/*
++	 * We need to fully resolve the path, because selabel_lookup() doesn't
++	 * resolve anything.  Using realpath() is the only solution here to make
++	 * sure the path is canonicalized.
++	 */
++
++	char *resolved = realpath(fname, NULL);
++	if (!resolved)
++		return 0;
++
++	char *expected;
++	rc = get_expected_filecontext(resolved, &expected);
++	free(resolved);
++	if (rc < 0)
++		return 0;
++	if (strcmp(expected, *result) == 0) {
++		free(expected);
++		return 0;
++	}
++	char *final_result = xasprintf("%s!!%s", *result, expected);
++	free(expected);
++	free(*result);
++	*result = final_result;
++	return 0;
+ }
+diff --git a/src/secontext.h b/src/secontext.h
+index 1ed88c7..39222d0 100644
+--- a/src/secontext.h
++++ b/src/secontext.h
+@@ -11,11 +11,22 @@
+ 
+ # include "defs.h"
+ 
+-extern bool selinux_context;
+-extern bool selinux_context_full;
++void qualify_secontext(const char *const str);
++
++enum secontext_bits {
++	/* Display full context instead of type only */
++	SECONTEXT_FULL,
++	/* Check for context mismatch */
++	SECONTEXT_MISMATCH,
++
++	NUMBER_OF_SECONTEXT_BITS
++};
++
++extern struct number_set *secontext_set;
+ 
+ int selinux_getfdcon(pid_t pid, int fd, char **context);
+ int selinux_getfilecon(struct tcb *tcp, const char *path, char **context);
+ int selinux_getpidcon(struct tcb *tcp, char **context);
++void selinux_set_format(const char *optarg);
+ 
+ #endif /* !STRACE_SECONTEXT_H */
+diff --git a/src/strace.c b/src/strace.c
+index fb42fe9..0a18478 100644
+--- a/src/strace.c
++++ b/src/strace.c
+@@ -264,9 +264,11 @@ usage(void)
+ # define K_OPT ""
+ #endif
+ #ifdef ENABLE_SECONTEXT
+-# define SECONTEXT_OPT "[--secontext[=full]]\n"
++# define SECONTEXT_OPT "              [--secontext[=FORMAT]]\n"
++# define SECONTEXT_E_QUAL ", secontext"
+ #else
+ # define SECONTEXT_OPT ""
++# define SECONTEXT_E_QUAL ""
+ #endif
+ 
+ 	printf("\
+@@ -282,7 +284,7 @@ Usage: strace [-ACdffhi" K_OPT "qqrtttTvVwxxyyzZ] [-I N] [-b execve] [-e EXPR]..
+ General:\n\
+   -e EXPR        a qualifying expression: OPTION=[!]all or OPTION=[!]VAL1[,VAL2]...\n\
+      options:    trace, abbrev, verbose, raw, signal, read, write, fault,\n\
+-                 inject, status, quiet, kvm, decode-fds\n\
++                 inject, status, quiet, kvm, decode-fds" SECONTEXT_E_QUAL "\n\
+ \n\
+ Startup:\n\
+   -E VAR=VAL, --env=VAR=VAL\n\
+@@ -358,6 +360,19 @@ Output format:\n\
+                  path (file path),\n\
+                  pidfd (associated PID for pidfds),\n\
+                  socket (protocol-specific information for socket descriptors)\n\
++"
++#ifdef ENABLE_SECONTEXT
++"\
++  -e secontext=FORMAT, --secontext[=FORMAT]\n\
++                 print SELinux contexts in square brackets\n\
++     formats:    comma-separated list of all, full, mismatch, none\n\
++                 all: equivalent to full,mismatch\n\
++                 full: print the full context instead of the type only\n\
++                 mismatch: print expected context when actual is not matching\n\
++                 none: equivalent to not specifying the option at all\n\
++"
++#endif
++"\
+   -i, --instruction-pointer\n\
+                  print instruction pointer at time of syscall\n\
+ "
+@@ -1991,6 +2006,9 @@ init(int argc, char *argv[])
+ 	static const char tflag_str[] = "format:time";
+ 	static const char ttflag_str[] = "precision:us,format:time";
+ 	static const char tttflag_str[] = "format:unix,precision:us";
++#ifdef ENABLE_SECONTEXT
++	static const char secontext_qual[] = "!full,mismatch";
++#endif
+ 
+ 	int c, i;
+ 	int optF = 0, zflags = 0;
+@@ -2054,6 +2072,9 @@ init(int argc, char *argv[])
+ 	qualify_quiet("none");
+ 	qualify_decode_fd("none");
+ 	qualify_signals("all");
++#ifdef ENABLE_SECONTEXT
++	qualify_secontext("none");
++#endif
+ 
+ 	static const char optstring[] =
+ 		"+a:Ab:cCdDe:E:fFhiI:kno:O:p:P:qrs:S:tTu:U:vVwxX:yzZ";
+@@ -2066,9 +2087,6 @@ init(int argc, char *argv[])
+ 		GETOPT_OUTPUT_SEPARATELY,
+ 		GETOPT_TS,
+ 		GETOPT_PIDNS_TRANSLATION,
+-#ifdef ENABLE_SECONTEXT
+-		GETOPT_SECONTEXT,
+-#endif
+ 
+ 		GETOPT_QUAL_TRACE,
+ 		GETOPT_QUAL_ABBREV,
+@@ -2083,6 +2101,9 @@ init(int argc, char *argv[])
+ 		GETOPT_QUAL_KVM,
+ 		GETOPT_QUAL_QUIET,
+ 		GETOPT_QUAL_DECODE_FD,
++#ifdef ENABLE_SECONTEXT
++		GETOPT_QUAL_SECONTEXT,
++#endif
+ 	};
+ 	static const struct option longopts[] = {
+ 		{ "columns",		required_argument, 0, 'a' },
+@@ -2125,9 +2146,6 @@ init(int argc, char *argv[])
+ 		{ "failed-only",	no_argument,	   0, 'Z' },
+ 		{ "failing-only",	no_argument,	   0, 'Z' },
+ 		{ "seccomp-bpf",	no_argument,	   0, GETOPT_SECCOMP },
+-#ifdef ENABLE_SECONTEXT
+-		{ "secontext",		optional_argument, 0, GETOPT_SECONTEXT },
+-#endif
+ 
+ 		{ "trace",	required_argument, 0, GETOPT_QUAL_TRACE },
+ 		{ "abbrev",	required_argument, 0, GETOPT_QUAL_ABBREV },
+@@ -2144,6 +2162,9 @@ init(int argc, char *argv[])
+ 		{ "silent",	optional_argument, 0, GETOPT_QUAL_QUIET },
+ 		{ "silence",	optional_argument, 0, GETOPT_QUAL_QUIET },
+ 		{ "decode-fds",	optional_argument, 0, GETOPT_QUAL_DECODE_FD },
++#ifdef ENABLE_SECONTEXT
++		{ "secontext",	optional_argument, 0, GETOPT_QUAL_SECONTEXT },
++#endif
+ 
+ 		{ 0, 0, 0, 0 }
+ 	};
+@@ -2357,14 +2378,8 @@ init(int argc, char *argv[])
+ 			seccomp_filtering = true;
+ 			break;
+ #ifdef ENABLE_SECONTEXT
+-		case GETOPT_SECONTEXT:
+-			selinux_context = true;
+-			if (optarg) {
+-				if (!strcmp(optarg, "full"))
+-					selinux_context_full = true;
+-				else
+-					error_opt_arg(c, lopt, optarg);
+-			}
++		case GETOPT_QUAL_SECONTEXT:
++			qualify_secontext(optarg ? optarg : secontext_qual);
+ 			break;
+ #endif
+ 		case GETOPT_QUAL_TRACE:
+@@ -2550,7 +2565,7 @@ init(int argc, char *argv[])
+ 			error_msg("-y/--decode-fds has no effect "
+ 				  "with -c/--summary-only");
+ #ifdef ENABLE_SECONTEXT
+-		if (selinux_context)
++		if (!number_set_array_is_empty(secontext_set, 0))
+ 			error_msg("--secontext has no effect with "
+ 				  "-c/--summary-only");
+ #endif
+diff --git a/tests/gen_tests.in b/tests/gen_tests.in
+index 8b4e2e9..71e2f17 100644
+--- a/tests/gen_tests.in
++++ b/tests/gen_tests.in
+@@ -12,6 +12,8 @@ accept4	-a37
+ access	-a30 --trace-path=access_sample
+ access--secontext	-a30 --secontext --trace-path=access_sample -e trace=access
+ access--secontext_full	-a30 --secontext=full --trace-path=access_sample -e trace=access
++access--secontext_full_mismatch	-a30 --secontext=full,mismatch --trace-path=access_sample -e trace=access
++access--secontext_mismatch	-a30 --secontext=mismatch --trace-path=access_sample -e trace=access
+ acct	-a20
+ add_key	-a30 -s12
+ adjtimex	-a15
+@@ -27,8 +29,10 @@ bpf-v	-a20 -v -e trace=bpf
+ btrfs	+ioctl.test
+ chdir	-a10
+ chmod	-a28
+-chmod--secontext	-a28 --secontext -e trace=chmod
+-chmod--secontext_full	-a28 --secontext=full -e trace=chmod
++chmod--secontext	-a28 -e secontext=!full,mismatch -e trace=chmod
++chmod--secontext_full	-a28 -e secontext=full -e trace=chmod
++chmod--secontext_full_mismatch	-a28 --secontext=mismatch,full -e trace=chmod
++chmod--secontext_mismatch	-a28 --secontext=mismatch -e trace=chmod
+ chown	-a28
+ chown32	-a31
+ chroot	-a13
+@@ -84,16 +88,24 @@ epoll_wait	-a26
+ erestartsys	-a34 -e signal=none -e trace=recvfrom
+ execve--secontext	+execve.test --secontext
+ execve--secontext_full	+execve.test --secontext=full
++execve--secontext_full_mismatch	+execve.test --secontext=full,mismatch
++execve--secontext_mismatch	+execve.test --secontext=mismatch
+ execveat
+ execveat--secontext	--secontext --trace=execveat
+ execveat--secontext_full	--secontext=full --trace=execveat
++execveat--secontext_full_mismatch	--secontext=full,mismatch --trace=execveat
++execveat--secontext_mismatch	--secontext=mismatch --trace=execveat
+ execveat-v	-v -e trace=execveat
+ faccessat--secontext	+faccessat.test -a24 --secontext
+ faccessat--secontext_full	+faccessat.test -a24 --secontext=full
++faccessat--secontext_full_mismatch	+faccessat.test -a24 --secontext=full,mismatch
++faccessat--secontext_mismatch	+faccessat.test -a24 --secontext=mismatch
+ faccessat-P	-a23 --trace=faccessat -P /dev/full
+ faccessat-y	+faccessat.test -a24 -y
+ faccessat-y--secontext	+faccessat.test -a24 -y --secontext
+ faccessat-y--secontext_full	+faccessat.test -a24 -y --secontext=full
++faccessat-y--secontext_full_mismatch	+faccessat.test -a24 -y --secontext=full,mismatch
++faccessat-y--secontext_mismatch	+faccessat.test -a24 -y --secontext=mismatch
+ faccessat-yy	+faccessat.test -a24 -yy
+ faccessat2-P	-a27 --trace=faccessat2 -P /dev/full
+ faccessat2-y	+faccessat2.test -a28 -y
+@@ -104,6 +116,8 @@ fanotify_init
+ fanotify_mark	-a32
+ fanotify_mark--secontext	-a32 --secontext -e trace=fanotify_mark
+ fanotify_mark--secontext_full	-a32 --secontext=full -e trace=fanotify_mark
++fanotify_mark--secontext_full_mismatch	-a32 --secontext=full,mismatch -e trace=fanotify_mark
++fanotify_mark--secontext_mismatch	-a32 --secontext=mismatch -e trace=fanotify_mark
+ fanotify_mark-Xabbrev	-a32 -Xabbrev -e trace=fanotify_mark
+ fanotify_mark-Xraw	-a32 -Xraw -e trace=fanotify_mark
+ fanotify_mark-Xverbose	-a32 -Xverbose -e trace=fanotify_mark
+@@ -111,17 +125,25 @@ fchdir	-a11
+ fchmod	-a15
+ fchmod--secontext	-a15 --secontext -e trace=fchmod
+ fchmod--secontext_full	-a15 --secontext=full -e trace=fchmod
++fchmod--secontext_full_mismatch	-a15 --secontext=full,mismatch -e trace=fchmod
++fchmod--secontext_mismatch	-a15 --secontext=mismatch -e trace=fchmod
+ fchmod-y	-y -e trace=fchmod
+ fchmod-y--secontext	-a15 -y --secontext -e trace=fchmod
+ fchmod-y--secontext_full	-a15 -y --secontext=full -e trace=fchmod
++fchmod-y--secontext_full_mismatch	-a15 -y --secontext=full,mismatch -e trace=fchmod
++fchmod-y--secontext_mismatch	-a15 -y --secontext=mismatch -e trace=fchmod
+ fchmodat
+ fchmodat--secontext	--secontext -e trace=fchmodat
+ fchmodat--secontext_full	--secontext=full -e trace=fchmodat
++fchmodat--secontext_full_mismatch	--secontext=full,mismatch -e trace=fchmodat
++fchmodat--secontext_mismatch	--secontext=mismatch -e trace=fchmodat
+ fchown	-a16
+ fchown32	-a18
+ fchownat
+ fchownat--secontext	--secontext -e trace=fchownat
+ fchownat--secontext_full	--secontext=full -e trace=fchownat
++fchownat--secontext_full_mismatch	-e secontext=full,mismatch -e trace=fchownat
++fchownat--secontext_mismatch	-e secontext=mismatch -e trace=fchownat
+ fcntl	-a8
+ fcntl--pidns-translation	test_pidns -a8 -e trace=fcntl
+ fcntl64	-a8
+@@ -130,6 +152,8 @@ fdatasync	-a14
+ file_handle	-e trace=name_to_handle_at,open_by_handle_at
+ file_handle--secontext	--secontext -e trace=name_to_handle_at,open_by_handle_at
+ file_handle--secontext_full	--secontext=full -e trace=name_to_handle_at,open_by_handle_at
++file_handle--secontext_full_mismatch	--secontext=full,mismatch -e trace=name_to_handle_at,open_by_handle_at
++file_handle--secontext_mismatch	--secontext=mismatch -e trace=name_to_handle_at,open_by_handle_at
+ filter_seccomp	. "${srcdir=.}/filter_seccomp.sh"; test_prog_set --seccomp-bpf -f
+ filter_seccomp-flag	../$NAME
+ finit_module	-a25
+@@ -383,6 +407,8 @@ link
+ linkat
+ linkat--secontext	--secontext -e trace=linkat
+ linkat--secontext_full	--secontext=full -e trace=linkat
++linkat--secontext_full_mismatch	--secontext=full,mismatch -e trace=linkat
++linkat--secontext_mismatch	--secontext=mismatch -e trace=linkat
+ lookup_dcookie	-a27
+ lstat	-a31 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full
+ lstat64	-a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full
+@@ -526,11 +552,15 @@ oldstat	-a32 -v -P stat.sample -P /dev/full
+ open	-a30 -P $NAME.sample
+ open--secontext		-a30 -P open.sample --secontext --trace=open
+ open--secontext_full	-a30 -P open.sample --secontext=full --trace=open
++open--secontext_full_mismatch	-a30 -P open.sample --secontext=full,mismatch --trace=open
++open--secontext_mismatch		-a30 -P open.sample --secontext=mismatch --trace=open
+ open_tree -a30 -y
+ open_tree-P -a30 --decode-fds -P /dev/full -e trace=open_tree
+ openat	-a36 -P $NAME.sample
+ openat--secontext	-a36 -P openat.sample -P $PWD/openat.sample --secontext -e trace=openat
+ openat--secontext_full	-a36 -P openat.sample -P $PWD/openat.sample --secontext=full -e trace=openat
++openat--secontext_full_mismatch	-a36 -P openat.sample -P $PWD/openat.sample --secontext=full,mismatch -e trace=openat
++openat--secontext_mismatch	-a36 -P openat.sample -P $PWD/openat.sample --secontext=mismatch -e trace=openat
+ openat2	-a35
+ openat2-Xabbrev	--trace=openat2 -a35 -Xabbrev
+ openat2-Xraw	--trace=openat2 -a32 -Xraw
+diff --git a/tests/linkat.c b/tests/linkat.c
+index 1d41d3d..1a869e3 100644
+--- a/tests/linkat.c
++++ b/tests/linkat.c
+@@ -15,6 +15,7 @@
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <sys/stat.h>
++#include <string.h>
+ 
+ #include "secontext.h"
+ #include "xmalloc.h"
+@@ -88,10 +89,42 @@ main(void)
+ 		perror_msg_and_fail("close");
+ 
+ 	free(sample_1_secontext);
+-	update_secontext_type(sample_1, "default_t");
++
++#ifdef PRINT_SECONTEXT_MISMATCH
++	update_secontext_field(sample_1, SECONTEXT_USER, "system_u");
++	sample_1_secontext = SECONTEXT_FILE(sample_1);
++
++# ifdef PRINT_SECONTEXT_FULL
++	/* The mismatch should be detected */
++	if (*sample_1_secontext && strstr(sample_1_secontext, "!!") == NULL)
++		perror_msg_and_fail("Context mismatch not detected: %s",
++				    sample_1_secontext);
++	if (*sample_1_secontext && strstr(sample_1_secontext, "system_u") == NULL)
++		perror_msg_and_fail("Context mismatch not detected: %s",
++				    sample_1_secontext);
++# else
++	/* The mismatch cannot be detected since it's on user part */
++	if (*sample_1_secontext && strstr(sample_1_secontext, "!!") != NULL)
++		perror_msg_and_fail("Context mismatch detected: %s",
++				    sample_1_secontext);
++# endif
++
++	free(sample_1_secontext);
++#endif
++
++	update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t");
+ 	sample_1_secontext = SECONTEXT_FILE(sample_1);
+ 	sample_2_secontext = sample_1_secontext;
+ 
++#ifdef PRINT_SECONTEXT_MISMATCH
++	if (*sample_1_secontext && strstr(sample_1_secontext, "!!") == NULL)
++		perror_msg_and_fail("Context mismatch not detected: %s",
++				    sample_1_secontext);
++	if (*sample_1_secontext && strstr(sample_1_secontext, "default_t") == NULL)
++		perror_msg_and_fail("Context mismatch not detected: %s",
++				    sample_1_secontext);
++#endif
++
+ 	rc = syscall(__NR_linkat, -100, sample_1, -100, sample_2, 0);
+ 	printf("%s%s(AT_FDCWD, \"%s\"%s, AT_FDCWD, \"%s\"%s, 0) = %s\n",
+ 	       my_secontext, "linkat",
+@@ -108,8 +141,19 @@ main(void)
+ 
+ 	int dfd_old = get_dir_fd(".");
+ 	char *cwd = get_fd_path(dfd_old);
++
++	update_secontext_field(".", SECONTEXT_TYPE, "default_t");
+ 	char *dfd_old_secontext = SECONTEXT_FILE(".");
+ 
++#ifdef PRINT_SECONTEXT_MISMATCH
++	if (*dfd_old_secontext && strstr(dfd_old_secontext, "!!") == NULL)
++		perror_msg_and_fail("Context mismatch not detected: %s",
++				    dfd_old_secontext);
++	if (*dfd_old_secontext && strstr(dfd_old_secontext, "default_t") == NULL)
++		perror_msg_and_fail("Context mismatch not detected: %s",
++				    dfd_old_secontext);
++#endif
++
+ 	rc = syscall(__NR_linkat, dfd_old, sample_1, -100, sample_2, 0);
+ 	/* no context printed for sample_2 since file doesn't exist yet */
+ 	printf("%s%s(%d%s, \"%s\"%s, AT_FDCWD, \"%s\", 0) = %s\n",
+diff --git a/tests/options-syntax.test b/tests/options-syntax.test
+index 765b2f8..848d297 100755
+--- a/tests/options-syntax.test
++++ b/tests/options-syntax.test
+@@ -48,8 +48,18 @@ check_e '-t and --absolute-timestamps cannot be provided simultaneously' -t --ti
+ check_e '-t and --absolute-timestamps cannot be provided simultaneously' --absolute-timestamps -ttt -p $$
+ check_e '-t and --absolute-timestamps cannot be provided simultaneously' -t --timestamps=ns -t -p $$
+ check_e '-t and --absolute-timestamps cannot be provided simultaneously' --timestamps=ns -t --absolute-timestamps=unix -p $$
+-[ -z "$compiled_with_secontext" ] ||
+-	check_h "invalid --secontext argument: 'ss'" --secontext=ss
++if [ -n "$compiled_with_secontext" ]; then
++	for opt in '--secontext' '-e secontext'; do
++		check_e "invalid secontext ''" $opt=
++		check_e "invalid secontext 'ss'" $opt=ss
++		check_e "invalid secontext 'ss'" $opt=ss,full,mismatch
++		check_e "invalid secontext 'ss'" $opt=full,ss,mismatch
++		check_e "invalid secontext 'ss'" $opt=full,ss
++		check_e "invalid secontext 'ss'" $opt=full,mismatch,ss
++		check_e "invalid secontext 'ss'" $opt=!full,ss
++		check_e "invalid secontext 'ss'" $opt=!full,mismatch,ss
++	done
++fi
+ check_h 'PROG [ARGS] must be specified with -D/--daemonize' -D -p $$
+ check_h 'PROG [ARGS] must be specified with -D/--daemonize' -DD -p $$
+ check_h 'PROG [ARGS] must be specified with -D/--daemonize' -DDD -p $$
+diff --git a/tests/secontext.c b/tests/secontext.c
+index 21c6370..848eea9 100644
+--- a/tests/secontext.c
++++ b/tests/secontext.c
+@@ -13,8 +13,10 @@
+ # include <errno.h>
+ # include <stdlib.h>
+ # include <string.h>
++# include <sys/stat.h>
+ # include <unistd.h>
+ # include <selinux/selinux.h>
++# include <selinux/label.h>
+ 
+ # include "xmalloc.h"
+ 
+@@ -55,6 +57,79 @@ strip_trailing_newlines(char *context)
+ }
+ 
+ static char *
++get_type_from_context(const char *full_context)
++{
++	int saved_errno = errno;
++
++	if (!full_context)
++		return NULL;
++
++	char *saveptr = NULL;
++	const char *token;
++	unsigned int i;
++
++	char *ctx_copy = xstrdup(full_context);
++	char *context = NULL;
++	for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0;
++	     token; token = strtok_r(NULL, ":", &saveptr), i++) {
++		if (i == 2) {
++			context = xstrdup(token);
++			break;
++		}
++	}
++	if (!context)
++		context = xstrdup(full_context);
++	free(ctx_copy);
++
++	errno = saved_errno;
++	return context;
++}
++
++static char *
++raw_expected_secontext_full_file(const char *filename)
++{
++	int saved_errno = errno;
++	char *secontext;
++
++	static struct selabel_handle *hdl;
++	if (!hdl) {
++		hdl = selabel_open(SELABEL_CTX_FILE, NULL, 0);
++		if (!hdl)
++			perror_msg_and_skip("selabel_open");
++	}
++
++	char *resolved = realpath(filename, NULL);
++	if (!resolved)
++		perror_msg_and_fail("realpath: %s", filename);
++
++	struct stat statbuf;
++	if (stat(resolved, &statbuf) < 0)
++		perror_msg_and_fail("stat: %s", resolved);
++
++	if (selabel_lookup(hdl, &secontext, resolved, statbuf.st_mode) < 0)
++		perror_msg_and_skip("selabel_lookup: %s", resolved);
++	free(resolved);
++
++	char *full_secontext = xstrdup(secontext);
++	freecon(secontext);
++	errno = saved_errno;
++	return full_secontext;
++}
++
++static char *
++raw_expected_secontext_short_file(const char *filename)
++{
++	int saved_errno = errno;
++
++	char *ctx = raw_expected_secontext_full_file(filename);
++	char *type = get_type_from_context(ctx);
++	free(ctx);
++
++	errno = saved_errno;
++	return type;
++}
++
++static char *
+ raw_secontext_full_file(const char *filename)
+ {
+ 	int saved_errno = errno;
+@@ -75,29 +150,11 @@ raw_secontext_short_file(const char *filename)
+ 	int saved_errno = errno;
+ 
+ 	char *ctx = raw_secontext_full_file(filename);
+-	if (ctx == NULL)
+-		return ctx;
+-
+-	char *saveptr = NULL;
+-	const char *token;
+-	unsigned int i;
+-
+-	char *ctx_copy = xstrdup(ctx);
+-	char *context = NULL;
+-	for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0;
+-	     token; token = strtok_r(NULL, ":", &saveptr), i++) {
+-		if (i == 2) {
+-			context = xstrdup(token);
+-			break;
+-		}
+-	}
+-	if (context == NULL)
+-		context = xstrdup(ctx);
+-	free(ctx_copy);
++	char *type = get_type_from_context(ctx);
+ 	free(ctx);
+ 
+ 	errno = saved_errno;
+-	return context;
++	return type;
+ }
+ 
+ static char *
+@@ -121,35 +178,30 @@ raw_secontext_short_pid(pid_t pid)
+ 	int saved_errno = errno;
+ 
+ 	char *ctx = raw_secontext_full_pid(pid);
+-	if (ctx == NULL)
+-		return ctx;
+-
+-	char *saveptr = NULL;
+-	const char *token;
+-	int i;
+-
+-	char *ctx_copy = xstrdup(ctx);
+-	char *context = NULL;
+-	for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0;
+-	     token; token = strtok_r(NULL, ":", &saveptr), i++) {
+-		if (i == 2) {
+-			context = xstrdup(token);
+-			break;
+-		}
+-	}
+-	if (context == NULL)
+-		context = xstrdup(ctx);
+-	free(ctx_copy);
++	char *type = get_type_from_context(ctx);
+ 	free(ctx);
+ 
+ 	errno = saved_errno;
+-	return context;
++	return type;
+ }
+ 
+ char *
+-secontext_full_file(const char *filename)
++secontext_full_file(const char *filename, bool mismatch)
+ {
+-	return FORMAT_SPACE_BEFORE(raw_secontext_full_file(filename));
++	int saved_errno = errno;
++	char *context = raw_secontext_full_file(filename);
++	if (context && mismatch) {
++		char *expected = raw_expected_secontext_full_file(filename);
++		if (expected && strcmp(context, expected)) {
++			char *context_mismatch =
++				xasprintf("%s!!%s", context, expected);
++			free(context);
++			context = context_mismatch;
++		}
++		free(expected);
++	}
++	errno = saved_errno;
++	return FORMAT_SPACE_BEFORE(context);
+ }
+ 
+ char *
+@@ -159,9 +211,22 @@ secontext_full_pid(pid_t pid)
+ }
+ 
+ char *
+-secontext_short_file(const char *filename)
++secontext_short_file(const char *filename, bool mismatch)
+ {
+-	return FORMAT_SPACE_BEFORE(raw_secontext_short_file(filename));
++	int saved_errno = errno;
++	char *context = raw_secontext_short_file(filename);
++	if (context && mismatch) {
++		char *expected = raw_expected_secontext_short_file(filename);
++		if (expected && strcmp(context, expected)) {
++			char *context_mismatch =
++				xasprintf("%s!!%s", context, expected);
++			free(context);
++			context = context_mismatch;
++		}
++		free(expected);
++	}
++	errno = saved_errno;
++	return FORMAT_SPACE_BEFORE(context);
+ }
+ 
+ char *
+@@ -171,31 +236,38 @@ secontext_short_pid(pid_t pid)
+ }
+ 
+ void
+-update_secontext_type(const char *file, const char *newtype)
++update_secontext_field(const char *file, enum secontext_field field,
++		       const char *newvalue)
+ {
++	int saved_errno = errno;
++	assert(field >= SECONTEXT_USER && field <= SECONTEXT_TYPE);
++
+ 	char *ctx = raw_secontext_full_file(file);
+ 	if (ctx == NULL)
+ 		return;
+ 
+ 	char *saveptr = NULL;
+ 	char *token;
+-	int field;
++	int nfields;
+ 	char *split[4];
+ 
+-	for (token = strtok_r(ctx, ":", &saveptr), field = 0;
+-	     token; token = strtok_r(NULL, ":", &saveptr), field++) {
+-		assert(field < 4);
+-		split[field] = token;
++	for (token = strtok_r(ctx, ":", &saveptr), nfields = 0;
++	     token; token = strtok_r(NULL, ":", &saveptr), nfields++) {
++		assert(nfields < 4);
++		split[nfields] = token;
+ 	}
+-	assert(field == 4);
++	assert(nfields == 4);
++
++	split[field] = (char *)newvalue;
+ 
+ 	char *newcontext = xasprintf("%s:%s:%s:%s", split[0], split[1],
+-				     newtype, split[3]);
++				     split[2], split[3]);
+ 
+ 	(void) setfilecon(file, newcontext);
+ 
+ 	free(newcontext);
+ 	free(ctx);
++	errno = saved_errno;
+ }
+ 
+ #endif /* HAVE_SELINUX_RUNTIME */
+diff --git a/tests/secontext.h b/tests/secontext.h
+index c65f53a..1d0251a 100644
+--- a/tests/secontext.h
++++ b/tests/secontext.h
+@@ -9,24 +9,39 @@
+ #include "xmalloc.h"
+ #include <unistd.h>
+ 
+-char *secontext_full_file(const char *) ATTRIBUTE_MALLOC;
++char *secontext_full_file(const char *, bool) ATTRIBUTE_MALLOC;
+ char *secontext_full_pid(pid_t) ATTRIBUTE_MALLOC;
+ 
+-char *secontext_short_file(const char *) ATTRIBUTE_MALLOC;
++char *secontext_short_file(const char *, bool) ATTRIBUTE_MALLOC;
+ char *secontext_short_pid(pid_t) ATTRIBUTE_MALLOC;
+ 
++enum secontext_field {
++	SECONTEXT_USER,
++	SECONTEXT_ROLE,
++	SECONTEXT_TYPE
++};
++
+ #if defined TEST_SECONTEXT && defined HAVE_SELINUX_RUNTIME
+ 
+-void update_secontext_type(const char *file, const char *newtype);
++void update_secontext_field(const char *file, enum secontext_field field,
++			    const char *newvalue);
+ 
+ # ifdef PRINT_SECONTEXT_FULL
+ 
+-#  define SECONTEXT_FILE(filename)	secontext_full_file(filename)
++#  ifdef PRINT_SECONTEXT_MISMATCH
++#   define SECONTEXT_FILE(filename)	secontext_full_file(filename, true)
++#  else
++#   define SECONTEXT_FILE(filename)	secontext_full_file(filename, false)
++#  endif
+ #  define SECONTEXT_PID(pid)		secontext_full_pid(pid)
+ 
+ # else
+ 
+-#  define SECONTEXT_FILE(filename)	secontext_short_file(filename)
++#  ifdef PRINT_SECONTEXT_MISMATCH
++#   define SECONTEXT_FILE(filename)	secontext_short_file(filename, true)
++#  else
++#   define SECONTEXT_FILE(filename)	secontext_short_file(filename, false)
++#  endif
+ #  define SECONTEXT_PID(pid)		secontext_short_pid(pid)
+ 
+ # endif
+@@ -34,7 +49,8 @@ void update_secontext_type(const char *file, const char *newtype);
+ #else
+ 
+ static inline void
+-update_secontext_type(const char *file, const char *newtype)
++update_secontext_field(const char *file, enum secontext_field field,
++		       const char *newvalue)
+ {
+ }
+ 
+diff --git a/tests-m32/gen_tests.in b/tests-m32/gen_tests.in
+index 8b4e2e9..71e2f17 100644
+--- a/tests-m32/gen_tests.in
++++ b/tests-m32/gen_tests.in
+@@ -12,6 +12,8 @@ accept4	-a37
+ access	-a30 --trace-path=access_sample
+ access--secontext	-a30 --secontext --trace-path=access_sample -e trace=access
+ access--secontext_full	-a30 --secontext=full --trace-path=access_sample -e trace=access
++access--secontext_full_mismatch	-a30 --secontext=full,mismatch --trace-path=access_sample -e trace=access
++access--secontext_mismatch	-a30 --secontext=mismatch --trace-path=access_sample -e trace=access
+ acct	-a20
+ add_key	-a30 -s12
+ adjtimex	-a15
+@@ -27,8 +29,10 @@ bpf-v	-a20 -v -e trace=bpf
+ btrfs	+ioctl.test
+ chdir	-a10
+ chmod	-a28
+-chmod--secontext	-a28 --secontext -e trace=chmod
+-chmod--secontext_full	-a28 --secontext=full -e trace=chmod
++chmod--secontext	-a28 -e secontext=!full,mismatch -e trace=chmod
++chmod--secontext_full	-a28 -e secontext=full -e trace=chmod
++chmod--secontext_full_mismatch	-a28 --secontext=mismatch,full -e trace=chmod
++chmod--secontext_mismatch	-a28 --secontext=mismatch -e trace=chmod
+ chown	-a28
+ chown32	-a31
+ chroot	-a13
+@@ -84,16 +88,24 @@ epoll_wait	-a26
+ erestartsys	-a34 -e signal=none -e trace=recvfrom
+ execve--secontext	+execve.test --secontext
+ execve--secontext_full	+execve.test --secontext=full
++execve--secontext_full_mismatch	+execve.test --secontext=full,mismatch
++execve--secontext_mismatch	+execve.test --secontext=mismatch
+ execveat
+ execveat--secontext	--secontext --trace=execveat
+ execveat--secontext_full	--secontext=full --trace=execveat
++execveat--secontext_full_mismatch	--secontext=full,mismatch --trace=execveat
++execveat--secontext_mismatch	--secontext=mismatch --trace=execveat
+ execveat-v	-v -e trace=execveat
+ faccessat--secontext	+faccessat.test -a24 --secontext
+ faccessat--secontext_full	+faccessat.test -a24 --secontext=full
++faccessat--secontext_full_mismatch	+faccessat.test -a24 --secontext=full,mismatch
++faccessat--secontext_mismatch	+faccessat.test -a24 --secontext=mismatch
+ faccessat-P	-a23 --trace=faccessat -P /dev/full
+ faccessat-y	+faccessat.test -a24 -y
+ faccessat-y--secontext	+faccessat.test -a24 -y --secontext
+ faccessat-y--secontext_full	+faccessat.test -a24 -y --secontext=full
++faccessat-y--secontext_full_mismatch	+faccessat.test -a24 -y --secontext=full,mismatch
++faccessat-y--secontext_mismatch	+faccessat.test -a24 -y --secontext=mismatch
+ faccessat-yy	+faccessat.test -a24 -yy
+ faccessat2-P	-a27 --trace=faccessat2 -P /dev/full
+ faccessat2-y	+faccessat2.test -a28 -y
+@@ -104,6 +116,8 @@ fanotify_init
+ fanotify_mark	-a32
+ fanotify_mark--secontext	-a32 --secontext -e trace=fanotify_mark
+ fanotify_mark--secontext_full	-a32 --secontext=full -e trace=fanotify_mark
++fanotify_mark--secontext_full_mismatch	-a32 --secontext=full,mismatch -e trace=fanotify_mark
++fanotify_mark--secontext_mismatch	-a32 --secontext=mismatch -e trace=fanotify_mark
+ fanotify_mark-Xabbrev	-a32 -Xabbrev -e trace=fanotify_mark
+ fanotify_mark-Xraw	-a32 -Xraw -e trace=fanotify_mark
+ fanotify_mark-Xverbose	-a32 -Xverbose -e trace=fanotify_mark
+@@ -111,17 +125,25 @@ fchdir	-a11
+ fchmod	-a15
+ fchmod--secontext	-a15 --secontext -e trace=fchmod
+ fchmod--secontext_full	-a15 --secontext=full -e trace=fchmod
++fchmod--secontext_full_mismatch	-a15 --secontext=full,mismatch -e trace=fchmod
++fchmod--secontext_mismatch	-a15 --secontext=mismatch -e trace=fchmod
+ fchmod-y	-y -e trace=fchmod
+ fchmod-y--secontext	-a15 -y --secontext -e trace=fchmod
+ fchmod-y--secontext_full	-a15 -y --secontext=full -e trace=fchmod
++fchmod-y--secontext_full_mismatch	-a15 -y --secontext=full,mismatch -e trace=fchmod
++fchmod-y--secontext_mismatch	-a15 -y --secontext=mismatch -e trace=fchmod
+ fchmodat
+ fchmodat--secontext	--secontext -e trace=fchmodat
+ fchmodat--secontext_full	--secontext=full -e trace=fchmodat
++fchmodat--secontext_full_mismatch	--secontext=full,mismatch -e trace=fchmodat
++fchmodat--secontext_mismatch	--secontext=mismatch -e trace=fchmodat
+ fchown	-a16
+ fchown32	-a18
+ fchownat
+ fchownat--secontext	--secontext -e trace=fchownat
+ fchownat--secontext_full	--secontext=full -e trace=fchownat
++fchownat--secontext_full_mismatch	-e secontext=full,mismatch -e trace=fchownat
++fchownat--secontext_mismatch	-e secontext=mismatch -e trace=fchownat
+ fcntl	-a8
+ fcntl--pidns-translation	test_pidns -a8 -e trace=fcntl
+ fcntl64	-a8
+@@ -130,6 +152,8 @@ fdatasync	-a14
+ file_handle	-e trace=name_to_handle_at,open_by_handle_at
+ file_handle--secontext	--secontext -e trace=name_to_handle_at,open_by_handle_at
+ file_handle--secontext_full	--secontext=full -e trace=name_to_handle_at,open_by_handle_at
++file_handle--secontext_full_mismatch	--secontext=full,mismatch -e trace=name_to_handle_at,open_by_handle_at
++file_handle--secontext_mismatch	--secontext=mismatch -e trace=name_to_handle_at,open_by_handle_at
+ filter_seccomp	. "${srcdir=.}/filter_seccomp.sh"; test_prog_set --seccomp-bpf -f
+ filter_seccomp-flag	../$NAME
+ finit_module	-a25
+@@ -383,6 +407,8 @@ link
+ linkat
+ linkat--secontext	--secontext -e trace=linkat
+ linkat--secontext_full	--secontext=full -e trace=linkat
++linkat--secontext_full_mismatch	--secontext=full,mismatch -e trace=linkat
++linkat--secontext_mismatch	--secontext=mismatch -e trace=linkat
+ lookup_dcookie	-a27
+ lstat	-a31 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full
+ lstat64	-a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full
+@@ -526,11 +552,15 @@ oldstat	-a32 -v -P stat.sample -P /dev/full
+ open	-a30 -P $NAME.sample
+ open--secontext		-a30 -P open.sample --secontext --trace=open
+ open--secontext_full	-a30 -P open.sample --secontext=full --trace=open
++open--secontext_full_mismatch	-a30 -P open.sample --secontext=full,mismatch --trace=open
++open--secontext_mismatch		-a30 -P open.sample --secontext=mismatch --trace=open
+ open_tree -a30 -y
+ open_tree-P -a30 --decode-fds -P /dev/full -e trace=open_tree
+ openat	-a36 -P $NAME.sample
+ openat--secontext	-a36 -P openat.sample -P $PWD/openat.sample --secontext -e trace=openat
+ openat--secontext_full	-a36 -P openat.sample -P $PWD/openat.sample --secontext=full -e trace=openat
++openat--secontext_full_mismatch	-a36 -P openat.sample -P $PWD/openat.sample --secontext=full,mismatch -e trace=openat
++openat--secontext_mismatch	-a36 -P openat.sample -P $PWD/openat.sample --secontext=mismatch -e trace=openat
+ openat2	-a35
+ openat2-Xabbrev	--trace=openat2 -a35 -Xabbrev
+ openat2-Xraw	--trace=openat2 -a32 -Xraw
+diff --git a/tests-m32/linkat.c b/tests-m32/linkat.c
+index 1d41d3d..1a869e3 100644
+--- a/tests-m32/linkat.c
++++ b/tests-m32/linkat.c
+@@ -15,6 +15,7 @@
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <sys/stat.h>
++#include <string.h>
+ 
+ #include "secontext.h"
+ #include "xmalloc.h"
+@@ -88,10 +89,42 @@ main(void)
+ 		perror_msg_and_fail("close");
+ 
+ 	free(sample_1_secontext);
+-	update_secontext_type(sample_1, "default_t");
++
++#ifdef PRINT_SECONTEXT_MISMATCH
++	update_secontext_field(sample_1, SECONTEXT_USER, "system_u");
++	sample_1_secontext = SECONTEXT_FILE(sample_1);
++
++# ifdef PRINT_SECONTEXT_FULL
++	/* The mismatch should be detected */
++	if (*sample_1_secontext && strstr(sample_1_secontext, "!!") == NULL)
++		perror_msg_and_fail("Context mismatch not detected: %s",
++				    sample_1_secontext);
++	if (*sample_1_secontext && strstr(sample_1_secontext, "system_u") == NULL)
++		perror_msg_and_fail("Context mismatch not detected: %s",
++				    sample_1_secontext);
++# else
++	/* The mismatch cannot be detected since it's on user part */
++	if (*sample_1_secontext && strstr(sample_1_secontext, "!!") != NULL)
++		perror_msg_and_fail("Context mismatch detected: %s",
++				    sample_1_secontext);
++# endif
++
++	free(sample_1_secontext);
++#endif
++
++	update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t");
+ 	sample_1_secontext = SECONTEXT_FILE(sample_1);
+ 	sample_2_secontext = sample_1_secontext;
+ 
++#ifdef PRINT_SECONTEXT_MISMATCH
++	if (*sample_1_secontext && strstr(sample_1_secontext, "!!") == NULL)
++		perror_msg_and_fail("Context mismatch not detected: %s",
++				    sample_1_secontext);
++	if (*sample_1_secontext && strstr(sample_1_secontext, "default_t") == NULL)
++		perror_msg_and_fail("Context mismatch not detected: %s",
++				    sample_1_secontext);
++#endif
++
+ 	rc = syscall(__NR_linkat, -100, sample_1, -100, sample_2, 0);
+ 	printf("%s%s(AT_FDCWD, \"%s\"%s, AT_FDCWD, \"%s\"%s, 0) = %s\n",
+ 	       my_secontext, "linkat",
+@@ -108,8 +141,19 @@ main(void)
+ 
+ 	int dfd_old = get_dir_fd(".");
+ 	char *cwd = get_fd_path(dfd_old);
++
++	update_secontext_field(".", SECONTEXT_TYPE, "default_t");
+ 	char *dfd_old_secontext = SECONTEXT_FILE(".");
+ 
++#ifdef PRINT_SECONTEXT_MISMATCH
++	if (*dfd_old_secontext && strstr(dfd_old_secontext, "!!") == NULL)
++		perror_msg_and_fail("Context mismatch not detected: %s",
++				    dfd_old_secontext);
++	if (*dfd_old_secontext && strstr(dfd_old_secontext, "default_t") == NULL)
++		perror_msg_and_fail("Context mismatch not detected: %s",
++				    dfd_old_secontext);
++#endif
++
+ 	rc = syscall(__NR_linkat, dfd_old, sample_1, -100, sample_2, 0);
+ 	/* no context printed for sample_2 since file doesn't exist yet */
+ 	printf("%s%s(%d%s, \"%s\"%s, AT_FDCWD, \"%s\", 0) = %s\n",
+diff --git a/tests-m32/options-syntax.test b/tests-m32/options-syntax.test
+index 765b2f8..848d297 100755
+--- a/tests-m32/options-syntax.test
++++ b/tests-m32/options-syntax.test
+@@ -48,8 +48,18 @@ check_e '-t and --absolute-timestamps cannot be provided simultaneously' -t --ti
+ check_e '-t and --absolute-timestamps cannot be provided simultaneously' --absolute-timestamps -ttt -p $$
+ check_e '-t and --absolute-timestamps cannot be provided simultaneously' -t --timestamps=ns -t -p $$
+ check_e '-t and --absolute-timestamps cannot be provided simultaneously' --timestamps=ns -t --absolute-timestamps=unix -p $$
+-[ -z "$compiled_with_secontext" ] ||
+-	check_h "invalid --secontext argument: 'ss'" --secontext=ss
++if [ -n "$compiled_with_secontext" ]; then
++	for opt in '--secontext' '-e secontext'; do
++		check_e "invalid secontext ''" $opt=
++		check_e "invalid secontext 'ss'" $opt=ss
++		check_e "invalid secontext 'ss'" $opt=ss,full,mismatch
++		check_e "invalid secontext 'ss'" $opt=full,ss,mismatch
++		check_e "invalid secontext 'ss'" $opt=full,ss
++		check_e "invalid secontext 'ss'" $opt=full,mismatch,ss
++		check_e "invalid secontext 'ss'" $opt=!full,ss
++		check_e "invalid secontext 'ss'" $opt=!full,mismatch,ss
++	done
++fi
+ check_h 'PROG [ARGS] must be specified with -D/--daemonize' -D -p $$
+ check_h 'PROG [ARGS] must be specified with -D/--daemonize' -DD -p $$
+ check_h 'PROG [ARGS] must be specified with -D/--daemonize' -DDD -p $$
+diff --git a/tests-m32/secontext.c b/tests-m32/secontext.c
+index 21c6370..848eea9 100644
+--- a/tests-m32/secontext.c
++++ b/tests-m32/secontext.c
+@@ -13,8 +13,10 @@
+ # include <errno.h>
+ # include <stdlib.h>
+ # include <string.h>
++# include <sys/stat.h>
+ # include <unistd.h>
+ # include <selinux/selinux.h>
++# include <selinux/label.h>
+ 
+ # include "xmalloc.h"
+ 
+@@ -55,6 +57,79 @@ strip_trailing_newlines(char *context)
+ }
+ 
+ static char *
++get_type_from_context(const char *full_context)
++{
++	int saved_errno = errno;
++
++	if (!full_context)
++		return NULL;
++
++	char *saveptr = NULL;
++	const char *token;
++	unsigned int i;
++
++	char *ctx_copy = xstrdup(full_context);
++	char *context = NULL;
++	for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0;
++	     token; token = strtok_r(NULL, ":", &saveptr), i++) {
++		if (i == 2) {
++			context = xstrdup(token);
++			break;
++		}
++	}
++	if (!context)
++		context = xstrdup(full_context);
++	free(ctx_copy);
++
++	errno = saved_errno;
++	return context;
++}
++
++static char *
++raw_expected_secontext_full_file(const char *filename)
++{
++	int saved_errno = errno;
++	char *secontext;
++
++	static struct selabel_handle *hdl;
++	if (!hdl) {
++		hdl = selabel_open(SELABEL_CTX_FILE, NULL, 0);
++		if (!hdl)
++			perror_msg_and_skip("selabel_open");
++	}
++
++	char *resolved = realpath(filename, NULL);
++	if (!resolved)
++		perror_msg_and_fail("realpath: %s", filename);
++
++	struct stat statbuf;
++	if (stat(resolved, &statbuf) < 0)
++		perror_msg_and_fail("stat: %s", resolved);
++
++	if (selabel_lookup(hdl, &secontext, resolved, statbuf.st_mode) < 0)
++		perror_msg_and_skip("selabel_lookup: %s", resolved);
++	free(resolved);
++
++	char *full_secontext = xstrdup(secontext);
++	freecon(secontext);
++	errno = saved_errno;
++	return full_secontext;
++}
++
++static char *
++raw_expected_secontext_short_file(const char *filename)
++{
++	int saved_errno = errno;
++
++	char *ctx = raw_expected_secontext_full_file(filename);
++	char *type = get_type_from_context(ctx);
++	free(ctx);
++
++	errno = saved_errno;
++	return type;
++}
++
++static char *
+ raw_secontext_full_file(const char *filename)
+ {
+ 	int saved_errno = errno;
+@@ -75,29 +150,11 @@ raw_secontext_short_file(const char *filename)
+ 	int saved_errno = errno;
+ 
+ 	char *ctx = raw_secontext_full_file(filename);
+-	if (ctx == NULL)
+-		return ctx;
+-
+-	char *saveptr = NULL;
+-	const char *token;
+-	unsigned int i;
+-
+-	char *ctx_copy = xstrdup(ctx);
+-	char *context = NULL;
+-	for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0;
+-	     token; token = strtok_r(NULL, ":", &saveptr), i++) {
+-		if (i == 2) {
+-			context = xstrdup(token);
+-			break;
+-		}
+-	}
+-	if (context == NULL)
+-		context = xstrdup(ctx);
+-	free(ctx_copy);
++	char *type = get_type_from_context(ctx);
+ 	free(ctx);
+ 
+ 	errno = saved_errno;
+-	return context;
++	return type;
+ }
+ 
+ static char *
+@@ -121,35 +178,30 @@ raw_secontext_short_pid(pid_t pid)
+ 	int saved_errno = errno;
+ 
+ 	char *ctx = raw_secontext_full_pid(pid);
+-	if (ctx == NULL)
+-		return ctx;
+-
+-	char *saveptr = NULL;
+-	const char *token;
+-	int i;
+-
+-	char *ctx_copy = xstrdup(ctx);
+-	char *context = NULL;
+-	for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0;
+-	     token; token = strtok_r(NULL, ":", &saveptr), i++) {
+-		if (i == 2) {
+-			context = xstrdup(token);
+-			break;
+-		}
+-	}
+-	if (context == NULL)
+-		context = xstrdup(ctx);
+-	free(ctx_copy);
++	char *type = get_type_from_context(ctx);
+ 	free(ctx);
+ 
+ 	errno = saved_errno;
+-	return context;
++	return type;
+ }
+ 
+ char *
+-secontext_full_file(const char *filename)
++secontext_full_file(const char *filename, bool mismatch)
+ {
+-	return FORMAT_SPACE_BEFORE(raw_secontext_full_file(filename));
++	int saved_errno = errno;
++	char *context = raw_secontext_full_file(filename);
++	if (context && mismatch) {
++		char *expected = raw_expected_secontext_full_file(filename);
++		if (expected && strcmp(context, expected)) {
++			char *context_mismatch =
++				xasprintf("%s!!%s", context, expected);
++			free(context);
++			context = context_mismatch;
++		}
++		free(expected);
++	}
++	errno = saved_errno;
++	return FORMAT_SPACE_BEFORE(context);
+ }
+ 
+ char *
+@@ -159,9 +211,22 @@ secontext_full_pid(pid_t pid)
+ }
+ 
+ char *
+-secontext_short_file(const char *filename)
++secontext_short_file(const char *filename, bool mismatch)
+ {
+-	return FORMAT_SPACE_BEFORE(raw_secontext_short_file(filename));
++	int saved_errno = errno;
++	char *context = raw_secontext_short_file(filename);
++	if (context && mismatch) {
++		char *expected = raw_expected_secontext_short_file(filename);
++		if (expected && strcmp(context, expected)) {
++			char *context_mismatch =
++				xasprintf("%s!!%s", context, expected);
++			free(context);
++			context = context_mismatch;
++		}
++		free(expected);
++	}
++	errno = saved_errno;
++	return FORMAT_SPACE_BEFORE(context);
+ }
+ 
+ char *
+@@ -171,31 +236,38 @@ secontext_short_pid(pid_t pid)
+ }
+ 
+ void
+-update_secontext_type(const char *file, const char *newtype)
++update_secontext_field(const char *file, enum secontext_field field,
++		       const char *newvalue)
+ {
++	int saved_errno = errno;
++	assert(field >= SECONTEXT_USER && field <= SECONTEXT_TYPE);
++
+ 	char *ctx = raw_secontext_full_file(file);
+ 	if (ctx == NULL)
+ 		return;
+ 
+ 	char *saveptr = NULL;
+ 	char *token;
+-	int field;
++	int nfields;
+ 	char *split[4];
+ 
+-	for (token = strtok_r(ctx, ":", &saveptr), field = 0;
+-	     token; token = strtok_r(NULL, ":", &saveptr), field++) {
+-		assert(field < 4);
+-		split[field] = token;
++	for (token = strtok_r(ctx, ":", &saveptr), nfields = 0;
++	     token; token = strtok_r(NULL, ":", &saveptr), nfields++) {
++		assert(nfields < 4);
++		split[nfields] = token;
+ 	}
+-	assert(field == 4);
++	assert(nfields == 4);
++
++	split[field] = (char *)newvalue;
+ 
+ 	char *newcontext = xasprintf("%s:%s:%s:%s", split[0], split[1],
+-				     newtype, split[3]);
++				     split[2], split[3]);
+ 
+ 	(void) setfilecon(file, newcontext);
+ 
+ 	free(newcontext);
+ 	free(ctx);
++	errno = saved_errno;
+ }
+ 
+ #endif /* HAVE_SELINUX_RUNTIME */
+diff --git a/tests-m32/secontext.h b/tests-m32/secontext.h
+index c65f53a..1d0251a 100644
+--- a/tests-m32/secontext.h
++++ b/tests-m32/secontext.h
+@@ -9,24 +9,39 @@
+ #include "xmalloc.h"
+ #include <unistd.h>
+ 
+-char *secontext_full_file(const char *) ATTRIBUTE_MALLOC;
++char *secontext_full_file(const char *, bool) ATTRIBUTE_MALLOC;
+ char *secontext_full_pid(pid_t) ATTRIBUTE_MALLOC;
+ 
+-char *secontext_short_file(const char *) ATTRIBUTE_MALLOC;
++char *secontext_short_file(const char *, bool) ATTRIBUTE_MALLOC;
+ char *secontext_short_pid(pid_t) ATTRIBUTE_MALLOC;
+ 
++enum secontext_field {
++	SECONTEXT_USER,
++	SECONTEXT_ROLE,
++	SECONTEXT_TYPE
++};
++
+ #if defined TEST_SECONTEXT && defined HAVE_SELINUX_RUNTIME
+ 
+-void update_secontext_type(const char *file, const char *newtype);
++void update_secontext_field(const char *file, enum secontext_field field,
++			    const char *newvalue);
+ 
+ # ifdef PRINT_SECONTEXT_FULL
+ 
+-#  define SECONTEXT_FILE(filename)	secontext_full_file(filename)
++#  ifdef PRINT_SECONTEXT_MISMATCH
++#   define SECONTEXT_FILE(filename)	secontext_full_file(filename, true)
++#  else
++#   define SECONTEXT_FILE(filename)	secontext_full_file(filename, false)
++#  endif
+ #  define SECONTEXT_PID(pid)		secontext_full_pid(pid)
+ 
+ # else
+ 
+-#  define SECONTEXT_FILE(filename)	secontext_short_file(filename)
++#  ifdef PRINT_SECONTEXT_MISMATCH
++#   define SECONTEXT_FILE(filename)	secontext_short_file(filename, true)
++#  else
++#   define SECONTEXT_FILE(filename)	secontext_short_file(filename, false)
++#  endif
+ #  define SECONTEXT_PID(pid)		secontext_short_pid(pid)
+ 
+ # endif
+@@ -34,7 +49,8 @@ void update_secontext_type(const char *file, const char *newtype);
+ #else
+ 
+ static inline void
+-update_secontext_type(const char *file, const char *newtype)
++update_secontext_field(const char *file, enum secontext_field field,
++		       const char *newvalue)
+ {
+ }
+ 
+diff --git a/tests-mx32/gen_tests.in b/tests-mx32/gen_tests.in
+index 8b4e2e9..71e2f17 100644
+--- a/tests-mx32/gen_tests.in
++++ b/tests-mx32/gen_tests.in
+@@ -12,6 +12,8 @@ accept4	-a37
+ access	-a30 --trace-path=access_sample
+ access--secontext	-a30 --secontext --trace-path=access_sample -e trace=access
+ access--secontext_full	-a30 --secontext=full --trace-path=access_sample -e trace=access
++access--secontext_full_mismatch	-a30 --secontext=full,mismatch --trace-path=access_sample -e trace=access
++access--secontext_mismatch	-a30 --secontext=mismatch --trace-path=access_sample -e trace=access
+ acct	-a20
+ add_key	-a30 -s12
+ adjtimex	-a15
+@@ -27,8 +29,10 @@ bpf-v	-a20 -v -e trace=bpf
+ btrfs	+ioctl.test
+ chdir	-a10
+ chmod	-a28
+-chmod--secontext	-a28 --secontext -e trace=chmod
+-chmod--secontext_full	-a28 --secontext=full -e trace=chmod
++chmod--secontext	-a28 -e secontext=!full,mismatch -e trace=chmod
++chmod--secontext_full	-a28 -e secontext=full -e trace=chmod
++chmod--secontext_full_mismatch	-a28 --secontext=mismatch,full -e trace=chmod
++chmod--secontext_mismatch	-a28 --secontext=mismatch -e trace=chmod
+ chown	-a28
+ chown32	-a31
+ chroot	-a13
+@@ -84,16 +88,24 @@ epoll_wait	-a26
+ erestartsys	-a34 -e signal=none -e trace=recvfrom
+ execve--secontext	+execve.test --secontext
+ execve--secontext_full	+execve.test --secontext=full
++execve--secontext_full_mismatch	+execve.test --secontext=full,mismatch
++execve--secontext_mismatch	+execve.test --secontext=mismatch
+ execveat
+ execveat--secontext	--secontext --trace=execveat
+ execveat--secontext_full	--secontext=full --trace=execveat
++execveat--secontext_full_mismatch	--secontext=full,mismatch --trace=execveat
++execveat--secontext_mismatch	--secontext=mismatch --trace=execveat
+ execveat-v	-v -e trace=execveat
+ faccessat--secontext	+faccessat.test -a24 --secontext
+ faccessat--secontext_full	+faccessat.test -a24 --secontext=full
++faccessat--secontext_full_mismatch	+faccessat.test -a24 --secontext=full,mismatch
++faccessat--secontext_mismatch	+faccessat.test -a24 --secontext=mismatch
+ faccessat-P	-a23 --trace=faccessat -P /dev/full
+ faccessat-y	+faccessat.test -a24 -y
+ faccessat-y--secontext	+faccessat.test -a24 -y --secontext
+ faccessat-y--secontext_full	+faccessat.test -a24 -y --secontext=full
++faccessat-y--secontext_full_mismatch	+faccessat.test -a24 -y --secontext=full,mismatch
++faccessat-y--secontext_mismatch	+faccessat.test -a24 -y --secontext=mismatch
+ faccessat-yy	+faccessat.test -a24 -yy
+ faccessat2-P	-a27 --trace=faccessat2 -P /dev/full
+ faccessat2-y	+faccessat2.test -a28 -y
+@@ -104,6 +116,8 @@ fanotify_init
+ fanotify_mark	-a32
+ fanotify_mark--secontext	-a32 --secontext -e trace=fanotify_mark
+ fanotify_mark--secontext_full	-a32 --secontext=full -e trace=fanotify_mark
++fanotify_mark--secontext_full_mismatch	-a32 --secontext=full,mismatch -e trace=fanotify_mark
++fanotify_mark--secontext_mismatch	-a32 --secontext=mismatch -e trace=fanotify_mark
+ fanotify_mark-Xabbrev	-a32 -Xabbrev -e trace=fanotify_mark
+ fanotify_mark-Xraw	-a32 -Xraw -e trace=fanotify_mark
+ fanotify_mark-Xverbose	-a32 -Xverbose -e trace=fanotify_mark
+@@ -111,17 +125,25 @@ fchdir	-a11
+ fchmod	-a15
+ fchmod--secontext	-a15 --secontext -e trace=fchmod
+ fchmod--secontext_full	-a15 --secontext=full -e trace=fchmod
++fchmod--secontext_full_mismatch	-a15 --secontext=full,mismatch -e trace=fchmod
++fchmod--secontext_mismatch	-a15 --secontext=mismatch -e trace=fchmod
+ fchmod-y	-y -e trace=fchmod
+ fchmod-y--secontext	-a15 -y --secontext -e trace=fchmod
+ fchmod-y--secontext_full	-a15 -y --secontext=full -e trace=fchmod
++fchmod-y--secontext_full_mismatch	-a15 -y --secontext=full,mismatch -e trace=fchmod
++fchmod-y--secontext_mismatch	-a15 -y --secontext=mismatch -e trace=fchmod
+ fchmodat
+ fchmodat--secontext	--secontext -e trace=fchmodat
+ fchmodat--secontext_full	--secontext=full -e trace=fchmodat
++fchmodat--secontext_full_mismatch	--secontext=full,mismatch -e trace=fchmodat
++fchmodat--secontext_mismatch	--secontext=mismatch -e trace=fchmodat
+ fchown	-a16
+ fchown32	-a18
+ fchownat
+ fchownat--secontext	--secontext -e trace=fchownat
+ fchownat--secontext_full	--secontext=full -e trace=fchownat
++fchownat--secontext_full_mismatch	-e secontext=full,mismatch -e trace=fchownat
++fchownat--secontext_mismatch	-e secontext=mismatch -e trace=fchownat
+ fcntl	-a8
+ fcntl--pidns-translation	test_pidns -a8 -e trace=fcntl
+ fcntl64	-a8
+@@ -130,6 +152,8 @@ fdatasync	-a14
+ file_handle	-e trace=name_to_handle_at,open_by_handle_at
+ file_handle--secontext	--secontext -e trace=name_to_handle_at,open_by_handle_at
+ file_handle--secontext_full	--secontext=full -e trace=name_to_handle_at,open_by_handle_at
++file_handle--secontext_full_mismatch	--secontext=full,mismatch -e trace=name_to_handle_at,open_by_handle_at
++file_handle--secontext_mismatch	--secontext=mismatch -e trace=name_to_handle_at,open_by_handle_at
+ filter_seccomp	. "${srcdir=.}/filter_seccomp.sh"; test_prog_set --seccomp-bpf -f
+ filter_seccomp-flag	../$NAME
+ finit_module	-a25
+@@ -383,6 +407,8 @@ link
+ linkat
+ linkat--secontext	--secontext -e trace=linkat
+ linkat--secontext_full	--secontext=full -e trace=linkat
++linkat--secontext_full_mismatch	--secontext=full,mismatch -e trace=linkat
++linkat--secontext_mismatch	--secontext=mismatch -e trace=linkat
+ lookup_dcookie	-a27
+ lstat	-a31 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full
+ lstat64	-a32 --no-abbrev --trace-path=stat.sample --trace-path=/dev/full
+@@ -526,11 +552,15 @@ oldstat	-a32 -v -P stat.sample -P /dev/full
+ open	-a30 -P $NAME.sample
+ open--secontext		-a30 -P open.sample --secontext --trace=open
+ open--secontext_full	-a30 -P open.sample --secontext=full --trace=open
++open--secontext_full_mismatch	-a30 -P open.sample --secontext=full,mismatch --trace=open
++open--secontext_mismatch		-a30 -P open.sample --secontext=mismatch --trace=open
+ open_tree -a30 -y
+ open_tree-P -a30 --decode-fds -P /dev/full -e trace=open_tree
+ openat	-a36 -P $NAME.sample
+ openat--secontext	-a36 -P openat.sample -P $PWD/openat.sample --secontext -e trace=openat
+ openat--secontext_full	-a36 -P openat.sample -P $PWD/openat.sample --secontext=full -e trace=openat
++openat--secontext_full_mismatch	-a36 -P openat.sample -P $PWD/openat.sample --secontext=full,mismatch -e trace=openat
++openat--secontext_mismatch	-a36 -P openat.sample -P $PWD/openat.sample --secontext=mismatch -e trace=openat
+ openat2	-a35
+ openat2-Xabbrev	--trace=openat2 -a35 -Xabbrev
+ openat2-Xraw	--trace=openat2 -a32 -Xraw
+diff --git a/tests-mx32/linkat.c b/tests-mx32/linkat.c
+index 1d41d3d..1a869e3 100644
+--- a/tests-mx32/linkat.c
++++ b/tests-mx32/linkat.c
+@@ -15,6 +15,7 @@
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <sys/stat.h>
++#include <string.h>
+ 
+ #include "secontext.h"
+ #include "xmalloc.h"
+@@ -88,10 +89,42 @@ main(void)
+ 		perror_msg_and_fail("close");
+ 
+ 	free(sample_1_secontext);
+-	update_secontext_type(sample_1, "default_t");
++
++#ifdef PRINT_SECONTEXT_MISMATCH
++	update_secontext_field(sample_1, SECONTEXT_USER, "system_u");
++	sample_1_secontext = SECONTEXT_FILE(sample_1);
++
++# ifdef PRINT_SECONTEXT_FULL
++	/* The mismatch should be detected */
++	if (*sample_1_secontext && strstr(sample_1_secontext, "!!") == NULL)
++		perror_msg_and_fail("Context mismatch not detected: %s",
++				    sample_1_secontext);
++	if (*sample_1_secontext && strstr(sample_1_secontext, "system_u") == NULL)
++		perror_msg_and_fail("Context mismatch not detected: %s",
++				    sample_1_secontext);
++# else
++	/* The mismatch cannot be detected since it's on user part */
++	if (*sample_1_secontext && strstr(sample_1_secontext, "!!") != NULL)
++		perror_msg_and_fail("Context mismatch detected: %s",
++				    sample_1_secontext);
++# endif
++
++	free(sample_1_secontext);
++#endif
++
++	update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t");
+ 	sample_1_secontext = SECONTEXT_FILE(sample_1);
+ 	sample_2_secontext = sample_1_secontext;
+ 
++#ifdef PRINT_SECONTEXT_MISMATCH
++	if (*sample_1_secontext && strstr(sample_1_secontext, "!!") == NULL)
++		perror_msg_and_fail("Context mismatch not detected: %s",
++				    sample_1_secontext);
++	if (*sample_1_secontext && strstr(sample_1_secontext, "default_t") == NULL)
++		perror_msg_and_fail("Context mismatch not detected: %s",
++				    sample_1_secontext);
++#endif
++
+ 	rc = syscall(__NR_linkat, -100, sample_1, -100, sample_2, 0);
+ 	printf("%s%s(AT_FDCWD, \"%s\"%s, AT_FDCWD, \"%s\"%s, 0) = %s\n",
+ 	       my_secontext, "linkat",
+@@ -108,8 +141,19 @@ main(void)
+ 
+ 	int dfd_old = get_dir_fd(".");
+ 	char *cwd = get_fd_path(dfd_old);
++
++	update_secontext_field(".", SECONTEXT_TYPE, "default_t");
+ 	char *dfd_old_secontext = SECONTEXT_FILE(".");
+ 
++#ifdef PRINT_SECONTEXT_MISMATCH
++	if (*dfd_old_secontext && strstr(dfd_old_secontext, "!!") == NULL)
++		perror_msg_and_fail("Context mismatch not detected: %s",
++				    dfd_old_secontext);
++	if (*dfd_old_secontext && strstr(dfd_old_secontext, "default_t") == NULL)
++		perror_msg_and_fail("Context mismatch not detected: %s",
++				    dfd_old_secontext);
++#endif
++
+ 	rc = syscall(__NR_linkat, dfd_old, sample_1, -100, sample_2, 0);
+ 	/* no context printed for sample_2 since file doesn't exist yet */
+ 	printf("%s%s(%d%s, \"%s\"%s, AT_FDCWD, \"%s\", 0) = %s\n",
+diff --git a/tests-mx32/options-syntax.test b/tests-mx32/options-syntax.test
+index 765b2f8..848d297 100755
+--- a/tests-mx32/options-syntax.test
++++ b/tests-mx32/options-syntax.test
+@@ -48,8 +48,18 @@ check_e '-t and --absolute-timestamps cannot be provided simultaneously' -t --ti
+ check_e '-t and --absolute-timestamps cannot be provided simultaneously' --absolute-timestamps -ttt -p $$
+ check_e '-t and --absolute-timestamps cannot be provided simultaneously' -t --timestamps=ns -t -p $$
+ check_e '-t and --absolute-timestamps cannot be provided simultaneously' --timestamps=ns -t --absolute-timestamps=unix -p $$
+-[ -z "$compiled_with_secontext" ] ||
+-	check_h "invalid --secontext argument: 'ss'" --secontext=ss
++if [ -n "$compiled_with_secontext" ]; then
++	for opt in '--secontext' '-e secontext'; do
++		check_e "invalid secontext ''" $opt=
++		check_e "invalid secontext 'ss'" $opt=ss
++		check_e "invalid secontext 'ss'" $opt=ss,full,mismatch
++		check_e "invalid secontext 'ss'" $opt=full,ss,mismatch
++		check_e "invalid secontext 'ss'" $opt=full,ss
++		check_e "invalid secontext 'ss'" $opt=full,mismatch,ss
++		check_e "invalid secontext 'ss'" $opt=!full,ss
++		check_e "invalid secontext 'ss'" $opt=!full,mismatch,ss
++	done
++fi
+ check_h 'PROG [ARGS] must be specified with -D/--daemonize' -D -p $$
+ check_h 'PROG [ARGS] must be specified with -D/--daemonize' -DD -p $$
+ check_h 'PROG [ARGS] must be specified with -D/--daemonize' -DDD -p $$
+diff --git a/tests-mx32/secontext.c b/tests-mx32/secontext.c
+index 21c6370..848eea9 100644
+--- a/tests-mx32/secontext.c
++++ b/tests-mx32/secontext.c
+@@ -13,8 +13,10 @@
+ # include <errno.h>
+ # include <stdlib.h>
+ # include <string.h>
++# include <sys/stat.h>
+ # include <unistd.h>
+ # include <selinux/selinux.h>
++# include <selinux/label.h>
+ 
+ # include "xmalloc.h"
+ 
+@@ -55,6 +57,79 @@ strip_trailing_newlines(char *context)
+ }
+ 
+ static char *
++get_type_from_context(const char *full_context)
++{
++	int saved_errno = errno;
++
++	if (!full_context)
++		return NULL;
++
++	char *saveptr = NULL;
++	const char *token;
++	unsigned int i;
++
++	char *ctx_copy = xstrdup(full_context);
++	char *context = NULL;
++	for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0;
++	     token; token = strtok_r(NULL, ":", &saveptr), i++) {
++		if (i == 2) {
++			context = xstrdup(token);
++			break;
++		}
++	}
++	if (!context)
++		context = xstrdup(full_context);
++	free(ctx_copy);
++
++	errno = saved_errno;
++	return context;
++}
++
++static char *
++raw_expected_secontext_full_file(const char *filename)
++{
++	int saved_errno = errno;
++	char *secontext;
++
++	static struct selabel_handle *hdl;
++	if (!hdl) {
++		hdl = selabel_open(SELABEL_CTX_FILE, NULL, 0);
++		if (!hdl)
++			perror_msg_and_skip("selabel_open");
++	}
++
++	char *resolved = realpath(filename, NULL);
++	if (!resolved)
++		perror_msg_and_fail("realpath: %s", filename);
++
++	struct stat statbuf;
++	if (stat(resolved, &statbuf) < 0)
++		perror_msg_and_fail("stat: %s", resolved);
++
++	if (selabel_lookup(hdl, &secontext, resolved, statbuf.st_mode) < 0)
++		perror_msg_and_skip("selabel_lookup: %s", resolved);
++	free(resolved);
++
++	char *full_secontext = xstrdup(secontext);
++	freecon(secontext);
++	errno = saved_errno;
++	return full_secontext;
++}
++
++static char *
++raw_expected_secontext_short_file(const char *filename)
++{
++	int saved_errno = errno;
++
++	char *ctx = raw_expected_secontext_full_file(filename);
++	char *type = get_type_from_context(ctx);
++	free(ctx);
++
++	errno = saved_errno;
++	return type;
++}
++
++static char *
+ raw_secontext_full_file(const char *filename)
+ {
+ 	int saved_errno = errno;
+@@ -75,29 +150,11 @@ raw_secontext_short_file(const char *filename)
+ 	int saved_errno = errno;
+ 
+ 	char *ctx = raw_secontext_full_file(filename);
+-	if (ctx == NULL)
+-		return ctx;
+-
+-	char *saveptr = NULL;
+-	const char *token;
+-	unsigned int i;
+-
+-	char *ctx_copy = xstrdup(ctx);
+-	char *context = NULL;
+-	for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0;
+-	     token; token = strtok_r(NULL, ":", &saveptr), i++) {
+-		if (i == 2) {
+-			context = xstrdup(token);
+-			break;
+-		}
+-	}
+-	if (context == NULL)
+-		context = xstrdup(ctx);
+-	free(ctx_copy);
++	char *type = get_type_from_context(ctx);
+ 	free(ctx);
+ 
+ 	errno = saved_errno;
+-	return context;
++	return type;
+ }
+ 
+ static char *
+@@ -121,35 +178,30 @@ raw_secontext_short_pid(pid_t pid)
+ 	int saved_errno = errno;
+ 
+ 	char *ctx = raw_secontext_full_pid(pid);
+-	if (ctx == NULL)
+-		return ctx;
+-
+-	char *saveptr = NULL;
+-	const char *token;
+-	int i;
+-
+-	char *ctx_copy = xstrdup(ctx);
+-	char *context = NULL;
+-	for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0;
+-	     token; token = strtok_r(NULL, ":", &saveptr), i++) {
+-		if (i == 2) {
+-			context = xstrdup(token);
+-			break;
+-		}
+-	}
+-	if (context == NULL)
+-		context = xstrdup(ctx);
+-	free(ctx_copy);
++	char *type = get_type_from_context(ctx);
+ 	free(ctx);
+ 
+ 	errno = saved_errno;
+-	return context;
++	return type;
+ }
+ 
+ char *
+-secontext_full_file(const char *filename)
++secontext_full_file(const char *filename, bool mismatch)
+ {
+-	return FORMAT_SPACE_BEFORE(raw_secontext_full_file(filename));
++	int saved_errno = errno;
++	char *context = raw_secontext_full_file(filename);
++	if (context && mismatch) {
++		char *expected = raw_expected_secontext_full_file(filename);
++		if (expected && strcmp(context, expected)) {
++			char *context_mismatch =
++				xasprintf("%s!!%s", context, expected);
++			free(context);
++			context = context_mismatch;
++		}
++		free(expected);
++	}
++	errno = saved_errno;
++	return FORMAT_SPACE_BEFORE(context);
+ }
+ 
+ char *
+@@ -159,9 +211,22 @@ secontext_full_pid(pid_t pid)
+ }
+ 
+ char *
+-secontext_short_file(const char *filename)
++secontext_short_file(const char *filename, bool mismatch)
+ {
+-	return FORMAT_SPACE_BEFORE(raw_secontext_short_file(filename));
++	int saved_errno = errno;
++	char *context = raw_secontext_short_file(filename);
++	if (context && mismatch) {
++		char *expected = raw_expected_secontext_short_file(filename);
++		if (expected && strcmp(context, expected)) {
++			char *context_mismatch =
++				xasprintf("%s!!%s", context, expected);
++			free(context);
++			context = context_mismatch;
++		}
++		free(expected);
++	}
++	errno = saved_errno;
++	return FORMAT_SPACE_BEFORE(context);
+ }
+ 
+ char *
+@@ -171,31 +236,38 @@ secontext_short_pid(pid_t pid)
+ }
+ 
+ void
+-update_secontext_type(const char *file, const char *newtype)
++update_secontext_field(const char *file, enum secontext_field field,
++		       const char *newvalue)
+ {
++	int saved_errno = errno;
++	assert(field >= SECONTEXT_USER && field <= SECONTEXT_TYPE);
++
+ 	char *ctx = raw_secontext_full_file(file);
+ 	if (ctx == NULL)
+ 		return;
+ 
+ 	char *saveptr = NULL;
+ 	char *token;
+-	int field;
++	int nfields;
+ 	char *split[4];
+ 
+-	for (token = strtok_r(ctx, ":", &saveptr), field = 0;
+-	     token; token = strtok_r(NULL, ":", &saveptr), field++) {
+-		assert(field < 4);
+-		split[field] = token;
++	for (token = strtok_r(ctx, ":", &saveptr), nfields = 0;
++	     token; token = strtok_r(NULL, ":", &saveptr), nfields++) {
++		assert(nfields < 4);
++		split[nfields] = token;
+ 	}
+-	assert(field == 4);
++	assert(nfields == 4);
++
++	split[field] = (char *)newvalue;
+ 
+ 	char *newcontext = xasprintf("%s:%s:%s:%s", split[0], split[1],
+-				     newtype, split[3]);
++				     split[2], split[3]);
+ 
+ 	(void) setfilecon(file, newcontext);
+ 
+ 	free(newcontext);
+ 	free(ctx);
++	errno = saved_errno;
+ }
+ 
+ #endif /* HAVE_SELINUX_RUNTIME */
+diff --git a/tests-mx32/secontext.h b/tests-mx32/secontext.h
+index c65f53a..1d0251a 100644
+--- a/tests-mx32/secontext.h
++++ b/tests-mx32/secontext.h
+@@ -9,24 +9,39 @@
+ #include "xmalloc.h"
+ #include <unistd.h>
+ 
+-char *secontext_full_file(const char *) ATTRIBUTE_MALLOC;
++char *secontext_full_file(const char *, bool) ATTRIBUTE_MALLOC;
+ char *secontext_full_pid(pid_t) ATTRIBUTE_MALLOC;
+ 
+-char *secontext_short_file(const char *) ATTRIBUTE_MALLOC;
++char *secontext_short_file(const char *, bool) ATTRIBUTE_MALLOC;
+ char *secontext_short_pid(pid_t) ATTRIBUTE_MALLOC;
+ 
++enum secontext_field {
++	SECONTEXT_USER,
++	SECONTEXT_ROLE,
++	SECONTEXT_TYPE
++};
++
+ #if defined TEST_SECONTEXT && defined HAVE_SELINUX_RUNTIME
+ 
+-void update_secontext_type(const char *file, const char *newtype);
++void update_secontext_field(const char *file, enum secontext_field field,
++			    const char *newvalue);
+ 
+ # ifdef PRINT_SECONTEXT_FULL
+ 
+-#  define SECONTEXT_FILE(filename)	secontext_full_file(filename)
++#  ifdef PRINT_SECONTEXT_MISMATCH
++#   define SECONTEXT_FILE(filename)	secontext_full_file(filename, true)
++#  else
++#   define SECONTEXT_FILE(filename)	secontext_full_file(filename, false)
++#  endif
+ #  define SECONTEXT_PID(pid)		secontext_full_pid(pid)
+ 
+ # else
+ 
+-#  define SECONTEXT_FILE(filename)	secontext_short_file(filename)
++#  ifdef PRINT_SECONTEXT_MISMATCH
++#   define SECONTEXT_FILE(filename)	secontext_short_file(filename, true)
++#  else
++#   define SECONTEXT_FILE(filename)	secontext_short_file(filename, false)
++#  endif
+ #  define SECONTEXT_PID(pid)		secontext_short_pid(pid)
+ 
+ # endif
+@@ -34,7 +49,8 @@ void update_secontext_type(const char *file, const char *newtype);
+ #else
+ 
+ static inline void
+-update_secontext_type(const char *file, const char *newtype)
++update_secontext_field(const char *file, enum secontext_field field,
++		       const char *newvalue)
+ {
+ }
+ 
+--- old/tests/Makefile.in	2022-02-07 20:23:38.724063729 +0100
++++ new/tests/Makefile.in	2022-02-07 20:24:05.660063357 +0100
+@@ -614,25 +614,55 @@
+ 	xet_thread_area_x86$(EXEEXT) xetitimer$(EXEEXT) \
+ 	xetpgid$(EXEEXT) xetpriority$(EXEEXT) xettimeofday$(EXEEXT)
+ am__EXEEXT_2 = access--secontext$(EXEEXT) \
+-	access--secontext_full$(EXEEXT) chmod--secontext$(EXEEXT) \
+-	chmod--secontext_full$(EXEEXT) execve--secontext$(EXEEXT) \
+-	execve--secontext_full$(EXEEXT) execveat--secontext$(EXEEXT) \
+-	execveat--secontext_full$(EXEEXT) \
++	access--secontext_full$(EXEEXT) \
++	access--secontext_full_mismatch$(EXEEXT) \
++	access--secontext_mismatch$(EXEEXT) chmod--secontext$(EXEEXT) \
++	chmod--secontext_full$(EXEEXT) \
++	chmod--secontext_full_mismatch$(EXEEXT) \
++	chmod--secontext_mismatch$(EXEEXT) execve--secontext$(EXEEXT) \
++	execve--secontext_full$(EXEEXT) \
++	execve--secontext_full_mismatch$(EXEEXT) \
++	execve--secontext_mismatch$(EXEEXT) \
++	execveat--secontext$(EXEEXT) execveat--secontext_full$(EXEEXT) \
++	execveat--secontext_full_mismatch$(EXEEXT) \
++	execveat--secontext_mismatch$(EXEEXT) \
+ 	faccessat--secontext$(EXEEXT) \
+ 	faccessat--secontext_full$(EXEEXT) \
++	faccessat--secontext_full_mismatch$(EXEEXT) \
++	faccessat--secontext_mismatch$(EXEEXT) \
+ 	faccessat-y--secontext$(EXEEXT) \
+ 	faccessat-y--secontext_full$(EXEEXT) \
++	faccessat-y--secontext_full_mismatch$(EXEEXT) \
++	faccessat-y--secontext_mismatch$(EXEEXT) \
+ 	fanotify_mark--secontext$(EXEEXT) \
+ 	fanotify_mark--secontext_full$(EXEEXT) \
++	fanotify_mark--secontext_full_mismatch$(EXEEXT) \
++	fanotify_mark--secontext_mismatch$(EXEEXT) \
+ 	fchmod--secontext$(EXEEXT) fchmod--secontext_full$(EXEEXT) \
++	fchmod--secontext_full_mismatch$(EXEEXT) \
++	fchmod--secontext_mismatch$(EXEEXT) \
+ 	fchmod-y--secontext$(EXEEXT) fchmod-y--secontext_full$(EXEEXT) \
++	fchmod-y--secontext_full_mismatch$(EXEEXT) \
++	fchmod-y--secontext_mismatch$(EXEEXT) \
+ 	fchmodat--secontext$(EXEEXT) fchmodat--secontext_full$(EXEEXT) \
++	fchmodat--secontext_full_mismatch$(EXEEXT) \
++	fchmodat--secontext_mismatch$(EXEEXT) \
+ 	fchownat--secontext$(EXEEXT) fchownat--secontext_full$(EXEEXT) \
++	fchownat--secontext_full_mismatch$(EXEEXT) \
++	fchownat--secontext_mismatch$(EXEEXT) \
+ 	file_handle--secontext$(EXEEXT) \
+ 	file_handle--secontext_full$(EXEEXT) \
++	file_handle--secontext_full_mismatch$(EXEEXT) \
++	file_handle--secontext_mismatch$(EXEEXT) \
+ 	linkat--secontext$(EXEEXT) linkat--secontext_full$(EXEEXT) \
+-	open--secontext$(EXEEXT) open--secontext_full$(EXEEXT) \
+-	openat--secontext$(EXEEXT) openat--secontext_full$(EXEEXT)
++	linkat--secontext_full_mismatch$(EXEEXT) \
++	linkat--secontext_mismatch$(EXEEXT) open--secontext$(EXEEXT) \
++	open--secontext_full$(EXEEXT) \
++	open--secontext_full_mismatch$(EXEEXT) \
++	open--secontext_mismatch$(EXEEXT) openat--secontext$(EXEEXT) \
++	openat--secontext_full$(EXEEXT) \
++	openat--secontext_full_mismatch$(EXEEXT) \
++	openat--secontext_mismatch$(EXEEXT)
+ ARFLAGS = cru
+ AM_V_AR = $(am__v_AR_@AM_V@)
+ am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
+@@ -661,6 +691,17 @@
+ access__secontext_full_SOURCES = access--secontext_full.c
+ access__secontext_full_OBJECTS = access--secontext_full.$(OBJEXT)
+ access__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++access__secontext_full_mismatch_SOURCES =  \
++	access--secontext_full_mismatch.c
++access__secontext_full_mismatch_OBJECTS =  \
++	access--secontext_full_mismatch.$(OBJEXT)
++access__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++access__secontext_mismatch_SOURCES = access--secontext_mismatch.c
++access__secontext_mismatch_OBJECTS =  \
++	access--secontext_mismatch.$(OBJEXT)
++access__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ acct_SOURCES = acct.c
+ acct_OBJECTS = acct.$(OBJEXT)
+ acct_LDADD = $(LDADD)
+@@ -789,6 +830,17 @@
+ chmod__secontext_full_SOURCES = chmod--secontext_full.c
+ chmod__secontext_full_OBJECTS = chmod--secontext_full.$(OBJEXT)
+ chmod__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++chmod__secontext_full_mismatch_SOURCES =  \
++	chmod--secontext_full_mismatch.c
++chmod__secontext_full_mismatch_OBJECTS =  \
++	chmod--secontext_full_mismatch.$(OBJEXT)
++chmod__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++chmod__secontext_mismatch_SOURCES = chmod--secontext_mismatch.c
++chmod__secontext_mismatch_OBJECTS =  \
++	chmod--secontext_mismatch.$(OBJEXT)
++chmod__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ chown_SOURCES = chown.c
+ chown_OBJECTS = chown.$(OBJEXT)
+ chown_LDADD = $(LDADD)
+@@ -1030,6 +1082,17 @@
+ execve__secontext_full_SOURCES = execve--secontext_full.c
+ execve__secontext_full_OBJECTS = execve--secontext_full.$(OBJEXT)
+ execve__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++execve__secontext_full_mismatch_SOURCES =  \
++	execve--secontext_full_mismatch.c
++execve__secontext_full_mismatch_OBJECTS =  \
++	execve--secontext_full_mismatch.$(OBJEXT)
++execve__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++execve__secontext_mismatch_SOURCES = execve--secontext_mismatch.c
++execve__secontext_mismatch_OBJECTS =  \
++	execve--secontext_mismatch.$(OBJEXT)
++execve__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ execve_v_SOURCES = execve-v.c
+ execve_v_OBJECTS = execve-v.$(OBJEXT)
+ execve_v_LDADD = $(LDADD)
+@@ -1044,6 +1107,17 @@
+ execveat__secontext_full_SOURCES = execveat--secontext_full.c
+ execveat__secontext_full_OBJECTS = execveat--secontext_full.$(OBJEXT)
+ execveat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++execveat__secontext_full_mismatch_SOURCES =  \
++	execveat--secontext_full_mismatch.c
++execveat__secontext_full_mismatch_OBJECTS =  \
++	execveat--secontext_full_mismatch.$(OBJEXT)
++execveat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++execveat__secontext_mismatch_SOURCES = execveat--secontext_mismatch.c
++execveat__secontext_mismatch_OBJECTS =  \
++	execveat--secontext_mismatch.$(OBJEXT)
++execveat__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ execveat_v_SOURCES = execveat-v.c
+ execveat_v_OBJECTS = execveat-v.$(OBJEXT)
+ execveat_v_LDADD = $(LDADD)
+@@ -1060,6 +1134,18 @@
+ 	faccessat--secontext_full.$(OBJEXT)
+ faccessat__secontext_full_DEPENDENCIES = $(LDADD) \
+ 	$(am__DEPENDENCIES_2)
++faccessat__secontext_full_mismatch_SOURCES =  \
++	faccessat--secontext_full_mismatch.c
++faccessat__secontext_full_mismatch_OBJECTS =  \
++	faccessat--secontext_full_mismatch.$(OBJEXT)
++faccessat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++faccessat__secontext_mismatch_SOURCES =  \
++	faccessat--secontext_mismatch.c
++faccessat__secontext_mismatch_OBJECTS =  \
++	faccessat--secontext_mismatch.$(OBJEXT)
++faccessat__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ faccessat_P_SOURCES = faccessat-P.c
+ faccessat_P_OBJECTS = faccessat-P.$(OBJEXT)
+ faccessat_P_LDADD = $(LDADD)
+@@ -1076,6 +1162,18 @@
+ 	faccessat-y--secontext_full.$(OBJEXT)
+ faccessat_y__secontext_full_DEPENDENCIES = $(LDADD) \
+ 	$(am__DEPENDENCIES_2)
++faccessat_y__secontext_full_mismatch_SOURCES =  \
++	faccessat-y--secontext_full_mismatch.c
++faccessat_y__secontext_full_mismatch_OBJECTS =  \
++	faccessat-y--secontext_full_mismatch.$(OBJEXT)
++faccessat_y__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++faccessat_y__secontext_mismatch_SOURCES =  \
++	faccessat-y--secontext_mismatch.c
++faccessat_y__secontext_mismatch_OBJECTS =  \
++	faccessat-y--secontext_mismatch.$(OBJEXT)
++faccessat_y__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ faccessat_yy_SOURCES = faccessat-yy.c
+ faccessat_yy_OBJECTS = faccessat-yy.$(OBJEXT)
+ faccessat_yy_LDADD = $(LDADD)
+@@ -1125,6 +1223,18 @@
+ 	fanotify_mark--secontext_full.$(OBJEXT)
+ fanotify_mark__secontext_full_DEPENDENCIES = $(LDADD) \
+ 	$(am__DEPENDENCIES_2)
++fanotify_mark__secontext_full_mismatch_SOURCES =  \
++	fanotify_mark--secontext_full_mismatch.c
++fanotify_mark__secontext_full_mismatch_OBJECTS =  \
++	fanotify_mark--secontext_full_mismatch.$(OBJEXT)
++fanotify_mark__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++fanotify_mark__secontext_mismatch_SOURCES =  \
++	fanotify_mark--secontext_mismatch.c
++fanotify_mark__secontext_mismatch_OBJECTS =  \
++	fanotify_mark--secontext_mismatch.$(OBJEXT)
++fanotify_mark__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ fanotify_mark_Xabbrev_SOURCES = fanotify_mark-Xabbrev.c
+ fanotify_mark_Xabbrev_OBJECTS = fanotify_mark-Xabbrev.$(OBJEXT)
+ fanotify_mark_Xabbrev_LDADD = $(LDADD)
+@@ -1151,6 +1261,17 @@
+ fchmod__secontext_full_SOURCES = fchmod--secontext_full.c
+ fchmod__secontext_full_OBJECTS = fchmod--secontext_full.$(OBJEXT)
+ fchmod__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++fchmod__secontext_full_mismatch_SOURCES =  \
++	fchmod--secontext_full_mismatch.c
++fchmod__secontext_full_mismatch_OBJECTS =  \
++	fchmod--secontext_full_mismatch.$(OBJEXT)
++fchmod__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++fchmod__secontext_mismatch_SOURCES = fchmod--secontext_mismatch.c
++fchmod__secontext_mismatch_OBJECTS =  \
++	fchmod--secontext_mismatch.$(OBJEXT)
++fchmod__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ fchmod_y_SOURCES = fchmod-y.c
+ fchmod_y_OBJECTS = fchmod-y.$(OBJEXT)
+ fchmod_y_LDADD = $(LDADD)
+@@ -1161,6 +1282,17 @@
+ fchmod_y__secontext_full_SOURCES = fchmod-y--secontext_full.c
+ fchmod_y__secontext_full_OBJECTS = fchmod-y--secontext_full.$(OBJEXT)
+ fchmod_y__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++fchmod_y__secontext_full_mismatch_SOURCES =  \
++	fchmod-y--secontext_full_mismatch.c
++fchmod_y__secontext_full_mismatch_OBJECTS =  \
++	fchmod-y--secontext_full_mismatch.$(OBJEXT)
++fchmod_y__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++fchmod_y__secontext_mismatch_SOURCES = fchmod-y--secontext_mismatch.c
++fchmod_y__secontext_mismatch_OBJECTS =  \
++	fchmod-y--secontext_mismatch.$(OBJEXT)
++fchmod_y__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ fchmodat_SOURCES = fchmodat.c
+ fchmodat_OBJECTS = fchmodat.$(OBJEXT)
+ fchmodat_LDADD = $(LDADD)
+@@ -1171,6 +1303,17 @@
+ fchmodat__secontext_full_SOURCES = fchmodat--secontext_full.c
+ fchmodat__secontext_full_OBJECTS = fchmodat--secontext_full.$(OBJEXT)
+ fchmodat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++fchmodat__secontext_full_mismatch_SOURCES =  \
++	fchmodat--secontext_full_mismatch.c
++fchmodat__secontext_full_mismatch_OBJECTS =  \
++	fchmodat--secontext_full_mismatch.$(OBJEXT)
++fchmodat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++fchmodat__secontext_mismatch_SOURCES = fchmodat--secontext_mismatch.c
++fchmodat__secontext_mismatch_OBJECTS =  \
++	fchmodat--secontext_mismatch.$(OBJEXT)
++fchmodat__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ fchown_SOURCES = fchown.c
+ fchown_OBJECTS = fchown.$(OBJEXT)
+ fchown_LDADD = $(LDADD)
+@@ -1189,6 +1332,17 @@
+ fchownat__secontext_full_SOURCES = fchownat--secontext_full.c
+ fchownat__secontext_full_OBJECTS = fchownat--secontext_full.$(OBJEXT)
+ fchownat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++fchownat__secontext_full_mismatch_SOURCES =  \
++	fchownat--secontext_full_mismatch.c
++fchownat__secontext_full_mismatch_OBJECTS =  \
++	fchownat--secontext_full_mismatch.$(OBJEXT)
++fchownat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++fchownat__secontext_mismatch_SOURCES = fchownat--secontext_mismatch.c
++fchownat__secontext_mismatch_OBJECTS =  \
++	fchownat--secontext_mismatch.$(OBJEXT)
++fchownat__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ fcntl_SOURCES = fcntl.c
+ fcntl_OBJECTS = fcntl.$(OBJEXT)
+ fcntl_LDADD = $(LDADD)
+@@ -1226,6 +1380,18 @@
+ 	file_handle--secontext_full.$(OBJEXT)
+ file_handle__secontext_full_DEPENDENCIES = $(LDADD) \
+ 	$(am__DEPENDENCIES_2)
++file_handle__secontext_full_mismatch_SOURCES =  \
++	file_handle--secontext_full_mismatch.c
++file_handle__secontext_full_mismatch_OBJECTS =  \
++	file_handle--secontext_full_mismatch.$(OBJEXT)
++file_handle__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++file_handle__secontext_mismatch_SOURCES =  \
++	file_handle--secontext_mismatch.c
++file_handle__secontext_mismatch_OBJECTS =  \
++	file_handle--secontext_mismatch.$(OBJEXT)
++file_handle__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ filter_unavailable_SOURCES = filter-unavailable.c
+ filter_unavailable_OBJECTS = filter-unavailable.$(OBJEXT)
+ filter_unavailable_DEPENDENCIES = $(LDADD)
+@@ -2317,6 +2483,17 @@
+ linkat__secontext_full_SOURCES = linkat--secontext_full.c
+ linkat__secontext_full_OBJECTS = linkat--secontext_full.$(OBJEXT)
+ linkat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++linkat__secontext_full_mismatch_SOURCES =  \
++	linkat--secontext_full_mismatch.c
++linkat__secontext_full_mismatch_OBJECTS =  \
++	linkat--secontext_full_mismatch.$(OBJEXT)
++linkat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++linkat__secontext_mismatch_SOURCES = linkat--secontext_mismatch.c
++linkat__secontext_mismatch_OBJECTS =  \
++	linkat--secontext_mismatch.$(OBJEXT)
++linkat__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ list_sigaction_signum_SOURCES = list_sigaction_signum.c
+ list_sigaction_signum_OBJECTS = list_sigaction_signum.$(OBJEXT)
+ list_sigaction_signum_LDADD = $(LDADD)
+@@ -2975,6 +3152,15 @@
+ open__secontext_full_SOURCES = open--secontext_full.c
+ open__secontext_full_OBJECTS = open--secontext_full.$(OBJEXT)
+ open__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++open__secontext_full_mismatch_SOURCES =  \
++	open--secontext_full_mismatch.c
++open__secontext_full_mismatch_OBJECTS =  \
++	open--secontext_full_mismatch.$(OBJEXT)
++open__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++open__secontext_mismatch_SOURCES = open--secontext_mismatch.c
++open__secontext_mismatch_OBJECTS = open--secontext_mismatch.$(OBJEXT)
++open__secontext_mismatch_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
+ open_tree_SOURCES = open_tree.c
+ open_tree_OBJECTS = open_tree.$(OBJEXT)
+ open_tree_LDADD = $(LDADD)
+@@ -2993,6 +3179,17 @@
+ openat__secontext_full_SOURCES = openat--secontext_full.c
+ openat__secontext_full_OBJECTS = openat--secontext_full.$(OBJEXT)
+ openat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++openat__secontext_full_mismatch_SOURCES =  \
++	openat--secontext_full_mismatch.c
++openat__secontext_full_mismatch_OBJECTS =  \
++	openat--secontext_full_mismatch.$(OBJEXT)
++openat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++openat__secontext_mismatch_SOURCES = openat--secontext_mismatch.c
++openat__secontext_mismatch_OBJECTS =  \
++	openat--secontext_mismatch.$(OBJEXT)
++openat__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ openat2_SOURCES = openat2.c
+ openat2_OBJECTS = openat2.$(OBJEXT)
+ openat2_LDADD = $(LDADD)
+@@ -4449,6 +4646,8 @@
+ 	./$(DEPDIR)/_newselect.Po ./$(DEPDIR)/accept.Po \
+ 	./$(DEPDIR)/accept4.Po ./$(DEPDIR)/access--secontext.Po \
+ 	./$(DEPDIR)/access--secontext_full.Po ./$(DEPDIR)/access.Po \
++	./$(DEPDIR)/access--secontext_full_mismatch.Po \
++	./$(DEPDIR)/access--secontext_mismatch.Po \
+ 	./$(DEPDIR)/acct.Po ./$(DEPDIR)/add_key.Po \
+ 	./$(DEPDIR)/adjtimex.Po ./$(DEPDIR)/aio.Po \
+ 	./$(DEPDIR)/aio_pgetevents.Po ./$(DEPDIR)/alarm.Po \
+@@ -4468,6 +4667,8 @@
+ 	./$(DEPDIR)/chdir.Po ./$(DEPDIR)/check_sigblock.Po \
+ 	./$(DEPDIR)/check_sigign.Po ./$(DEPDIR)/chmod--secontext.Po \
+ 	./$(DEPDIR)/chmod--secontext_full.Po ./$(DEPDIR)/chmod.Po \
++	./$(DEPDIR)/chmod--secontext_full_mismatch.Po \
++	./$(DEPDIR)/chmod--secontext_mismatch.Po \
+ 	./$(DEPDIR)/chown.Po ./$(DEPDIR)/chown32.Po \
+ 	./$(DEPDIR)/chroot.Po ./$(DEPDIR)/clock_adjtime.Po \
+ 	./$(DEPDIR)/clock_adjtime64.Po ./$(DEPDIR)/clock_nanosleep.Po \
+@@ -4503,14 +4704,22 @@
+ 	./$(DEPDIR)/epoll_wait.Po ./$(DEPDIR)/erestartsys.Po \
+ 	./$(DEPDIR)/eventfd.Po ./$(DEPDIR)/execve--secontext.Po \
+ 	./$(DEPDIR)/execve--secontext_full.Po ./$(DEPDIR)/execve-v.Po \
++	./$(DEPDIR)/execve--secontext_full_mismatch.Po \
++	./$(DEPDIR)/execve--secontext_mismatch.Po \
+ 	./$(DEPDIR)/execve.Po ./$(DEPDIR)/execveat--secontext.Po \
+ 	./$(DEPDIR)/execveat--secontext_full.Po \
++	./$(DEPDIR)/execveat--secontext_full_mismatch.Po \
++	./$(DEPDIR)/execveat--secontext_mismatch.Po \
+ 	./$(DEPDIR)/execveat-v.Po ./$(DEPDIR)/execveat.Po \
+ 	./$(DEPDIR)/faccessat--secontext.Po \
+ 	./$(DEPDIR)/faccessat--secontext_full.Po \
++	./$(DEPDIR)/faccessat--secontext_full_mismatch.Po \
++	./$(DEPDIR)/faccessat--secontext_mismatch.Po \
+ 	./$(DEPDIR)/faccessat-P.Po \
+ 	./$(DEPDIR)/faccessat-y--secontext.Po \
+ 	./$(DEPDIR)/faccessat-y--secontext_full.Po \
++	./$(DEPDIR)/faccessat-y--secontext_full_mismatch.Po \
++	./$(DEPDIR)/faccessat-y--secontext_mismatch.Po \
+ 	./$(DEPDIR)/faccessat-y.Po ./$(DEPDIR)/faccessat-yy.Po \
+ 	./$(DEPDIR)/faccessat.Po ./$(DEPDIR)/faccessat2-P.Po \
+ 	./$(DEPDIR)/faccessat2-y.Po ./$(DEPDIR)/faccessat2-yy.Po \
+@@ -4519,26 +4728,38 @@
+ 	./$(DEPDIR)/fanotify_init.Po \
+ 	./$(DEPDIR)/fanotify_mark--secontext.Po \
+ 	./$(DEPDIR)/fanotify_mark--secontext_full.Po \
++	./$(DEPDIR)/fanotify_mark--secontext_full_mismatch.Po \
++	./$(DEPDIR)/fanotify_mark--secontext_mismatch.Po \
+ 	./$(DEPDIR)/fanotify_mark-Xabbrev.Po \
+ 	./$(DEPDIR)/fanotify_mark-Xraw.Po \
+ 	./$(DEPDIR)/fanotify_mark-Xverbose.Po \
+ 	./$(DEPDIR)/fanotify_mark.Po ./$(DEPDIR)/fchdir.Po \
+ 	./$(DEPDIR)/fchmod--secontext.Po \
+ 	./$(DEPDIR)/fchmod--secontext_full.Po \
++	./$(DEPDIR)/fchmod--secontext_full_mismatch.Po \
++	./$(DEPDIR)/fchmod--secontext_mismatch.Po \
+ 	./$(DEPDIR)/fchmod-y--secontext.Po \
+ 	./$(DEPDIR)/fchmod-y--secontext_full.Po \
++	./$(DEPDIR)/fchmod-y--secontext_full_mismatch.Po \
++	./$(DEPDIR)/fchmod-y--secontext_mismatch.Po \
+ 	./$(DEPDIR)/fchmod-y.Po ./$(DEPDIR)/fchmod.Po \
+ 	./$(DEPDIR)/fchmodat--secontext.Po \
+ 	./$(DEPDIR)/fchmodat--secontext_full.Po \
++	./$(DEPDIR)/fchmodat--secontext_full_mismatch.Po \
++	./$(DEPDIR)/fchmodat--secontext_mismatch.Po \
+ 	./$(DEPDIR)/fchmodat.Po ./$(DEPDIR)/fchown.Po \
+ 	./$(DEPDIR)/fchown32.Po ./$(DEPDIR)/fchownat--secontext.Po \
+ 	./$(DEPDIR)/fchownat--secontext_full.Po \
++	./$(DEPDIR)/fchownat--secontext_full_mismatch.Po \
++	./$(DEPDIR)/fchownat--secontext_mismatch.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--secontext.Po \
+ 	./$(DEPDIR)/file_handle--secontext_full.Po \
++	./$(DEPDIR)/file_handle--secontext_full_mismatch.Po \
++	./$(DEPDIR)/file_handle--secontext_mismatch.Po \
+ 	./$(DEPDIR)/file_handle.Po ./$(DEPDIR)/filter-unavailable.Po \
+ 	./$(DEPDIR)/filter_seccomp-flag.Po \
+ 	./$(DEPDIR)/filter_seccomp-perf.Po ./$(DEPDIR)/finit_module.Po \
+@@ -4753,6 +4972,8 @@
+ 	./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po \
+ 	./$(DEPDIR)/link.Po ./$(DEPDIR)/linkat--secontext.Po \
+ 	./$(DEPDIR)/linkat--secontext_full.Po ./$(DEPDIR)/linkat.Po \
++	./$(DEPDIR)/linkat--secontext_full_mismatch.Po \
++	./$(DEPDIR)/linkat--secontext_mismatch.Po \
+ 	./$(DEPDIR)/list_sigaction_signum.Po ./$(DEPDIR)/llseek.Po \
+ 	./$(DEPDIR)/localtime.Po ./$(DEPDIR)/lookup_dcookie.Po \
+ 	./$(DEPDIR)/looping_threads.Po ./$(DEPDIR)/lseek.Po \
+@@ -4867,9 +5088,13 @@
+ 	./$(DEPDIR)/oldselect-efault.Po ./$(DEPDIR)/oldselect.Po \
+ 	./$(DEPDIR)/oldstat.Po ./$(DEPDIR)/open--secontext.Po \
+ 	./$(DEPDIR)/open--secontext_full.Po ./$(DEPDIR)/open.Po \
++	./$(DEPDIR)/open--secontext_full_mismatch.Po \
++	./$(DEPDIR)/open--secontext_mismatch.Po \
+ 	./$(DEPDIR)/open_tree-P.Po ./$(DEPDIR)/open_tree.Po \
+ 	./$(DEPDIR)/openat--secontext.Po \
+ 	./$(DEPDIR)/openat--secontext_full.Po ./$(DEPDIR)/openat.Po \
++	./$(DEPDIR)/openat--secontext_full_mismatch.Po \
++	./$(DEPDIR)/openat--secontext_mismatch.Po \
+ 	./$(DEPDIR)/openat2-Xabbrev.Po ./$(DEPDIR)/openat2-Xraw.Po \
+ 	./$(DEPDIR)/openat2-Xverbose.Po \
+ 	./$(DEPDIR)/openat2-v-y-Xabbrev.Po \
+@@ -5118,7 +5343,8 @@
+ am__v_CCLD_1 = 
+ SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c accept.c \
+ 	accept4.c access.c access--secontext.c \
+-	access--secontext_full.c acct.c add_key.c adjtimex.c aio.c \
++	access--secontext_full.c access--secontext_full_mismatch.c \
++	access--secontext_mismatch.c acct.c add_key.c adjtimex.c aio.c \
+ 	aio_pgetevents.c alarm.c answer.c attach-f-p.c \
+ 	attach-f-p-cmd.c attach-p-cmd-cmd.c attach-p-cmd-p.c \
+ 	block_reset_raise_run.c block_reset_run.c bpf.c \
+@@ -4467,7 +4665,8 @@
+ 	bpf-success.c bpf-success-long-y.c bpf-success-v.c bpf-v.c \
+ 	brk.c btrfs.c caps.c caps-abbrev.c chdir.c check_sigblock.c \
+ 	check_sigign.c chmod.c chmod--secontext.c \
+-	chmod--secontext_full.c chown.c chown32.c chroot.c \
++	chmod--secontext_full.c chmod--secontext_full_mismatch.c \
++	chmod--secontext_mismatch.c chown.c chown32.c chroot.c \
+ 	clock_adjtime.c clock_adjtime64.c clock_nanosleep.c \
+ 	clock_xettime.c clock_xettime64.c clone-flags.c clone3.c \
+ 	clone3-Xabbrev.c clone3-Xraw.c clone3-Xverbose.c \
+@@ -4483,24 +4682,40 @@
+ 	dup3-y.c dup3-yy.c epoll_create.c epoll_create1.c epoll_ctl.c \
+ 	epoll_pwait.c epoll_pwait2.c epoll_pwait2-P.c epoll_pwait2-y.c \
+ 	epoll_wait.c erestartsys.c eventfd.c execve.c \
+-	execve--secontext.c execve--secontext_full.c execve-v.c \
+-	execveat.c execveat--secontext.c execveat--secontext_full.c \
+-	execveat-v.c faccessat.c faccessat--secontext.c \
+-	faccessat--secontext_full.c faccessat-P.c faccessat-y.c \
++	execve--secontext.c execve--secontext_full.c \
++	execve--secontext_full_mismatch.c execve--secontext_mismatch.c \
++	execve-v.c execveat.c execveat--secontext.c \
++	execveat--secontext_full.c execveat--secontext_full_mismatch.c \
++	execveat--secontext_mismatch.c execveat-v.c faccessat.c \
++	faccessat--secontext.c faccessat--secontext_full.c \
++	faccessat--secontext_full_mismatch.c \
++	faccessat--secontext_mismatch.c faccessat-P.c faccessat-y.c \
+ 	faccessat-y--secontext.c faccessat-y--secontext_full.c \
+-	faccessat-yy.c faccessat2.c faccessat2-P.c faccessat2-y.c \
+-	faccessat2-yy.c fadvise64.c fadvise64_64.c fallocate.c \
+-	fanotify_init.c fanotify_mark.c fanotify_mark--secontext.c \
+-	fanotify_mark--secontext_full.c fanotify_mark-Xabbrev.c \
++	faccessat-y--secontext_full_mismatch.c \
++	faccessat-y--secontext_mismatch.c faccessat-yy.c faccessat2.c \
++	faccessat2-P.c faccessat2-y.c faccessat2-yy.c fadvise64.c \
++	fadvise64_64.c fallocate.c fanotify_init.c fanotify_mark.c \
++	fanotify_mark--secontext.c fanotify_mark--secontext_full.c \
++	fanotify_mark--secontext_full_mismatch.c \
++	fanotify_mark--secontext_mismatch.c fanotify_mark-Xabbrev.c \
+ 	fanotify_mark-Xraw.c fanotify_mark-Xverbose.c fchdir.c \
+ 	fchmod.c fchmod--secontext.c fchmod--secontext_full.c \
++	fchmod--secontext_full_mismatch.c fchmod--secontext_mismatch.c \
+ 	fchmod-y.c fchmod-y--secontext.c fchmod-y--secontext_full.c \
+-	fchmodat.c fchmodat--secontext.c fchmodat--secontext_full.c \
+-	fchown.c fchown32.c fchownat.c fchownat--secontext.c \
+-	fchownat--secontext_full.c fcntl.c fcntl--pidns-translation.c \
+-	fcntl64.c fcntl64--pidns-translation.c fdatasync.c fflush.c \
++	fchmod-y--secontext_full_mismatch.c \
++	fchmod-y--secontext_mismatch.c fchmodat.c \
++	fchmodat--secontext.c fchmodat--secontext_full.c \
++	fchmodat--secontext_full_mismatch.c \
++	fchmodat--secontext_mismatch.c fchown.c fchown32.c fchownat.c \
++	fchownat--secontext.c fchownat--secontext_full.c \
++	fchownat--secontext_full_mismatch.c \
++	fchownat--secontext_mismatch.c fcntl.c \
++	fcntl--pidns-translation.c fcntl64.c \
++	fcntl64--pidns-translation.c fdatasync.c fflush.c \
+ 	file_handle.c file_handle--secontext.c \
+-	file_handle--secontext_full.c filter-unavailable.c \
++	file_handle--secontext_full.c \
++	file_handle--secontext_full_mismatch.c \
++	file_handle--secontext_mismatch.c filter-unavailable.c \
+ 	filter_seccomp-flag.c filter_seccomp-perf.c finit_module.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 \
+@@ -4587,6 +4802,7 @@
+ 	landlock_create_ruleset-y.c landlock_restrict_self.c \
+ 	landlock_restrict_self-y.c lchown.c lchown32.c link.c linkat.c \
+ 	linkat--secontext.c linkat--secontext_full.c \
++	linkat--secontext_full_mismatch.c linkat--secontext_mismatch.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 \
+@@ -4640,8 +4856,10 @@
+ 	old_mmap-v-none.c oldfstat.c oldlstat.c oldselect.c \
+ 	oldselect-P.c oldselect-efault.c oldselect-efault-P.c \
+ 	oldstat.c open.c open--secontext.c open--secontext_full.c \
++	open--secontext_full_mismatch.c open--secontext_mismatch.c \
+ 	open_tree.c open_tree-P.c openat.c openat--secontext.c \
+-	openat--secontext_full.c openat2.c openat2-Xabbrev.c \
++	openat--secontext_full.c openat--secontext_full_mismatch.c \
++	openat--secontext_mismatch.c openat2.c openat2-Xabbrev.c \
+ 	openat2-Xraw.c openat2-Xverbose.c openat2-v.c openat2-v-y.c \
+ 	openat2-v-y-Xabbrev.c openat2-v-y-Xraw.c \
+ 	openat2-v-y-Xverbose.c openat2-y.c orphaned_process_group.c \
+@@ -4752,7 +4970,8 @@
+ 	xetpriority--pidns-translation.c xettimeofday.c zeroargc.c
+ DIST_SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c \
+ 	accept.c accept4.c access.c access--secontext.c \
+-	access--secontext_full.c acct.c add_key.c adjtimex.c aio.c \
++	access--secontext_full.c access--secontext_full_mismatch.c \
++	access--secontext_mismatch.c acct.c add_key.c adjtimex.c aio.c \
+ 	aio_pgetevents.c alarm.c answer.c attach-f-p.c \
+ 	attach-f-p-cmd.c attach-p-cmd-cmd.c attach-p-cmd-p.c \
+ 	block_reset_raise_run.c block_reset_run.c bpf.c \
+@@ -4761,7 +4980,8 @@
+ 	bpf-success.c bpf-success-long-y.c bpf-success-v.c bpf-v.c \
+ 	brk.c btrfs.c caps.c caps-abbrev.c chdir.c check_sigblock.c \
+ 	check_sigign.c chmod.c chmod--secontext.c \
+-	chmod--secontext_full.c chown.c chown32.c chroot.c \
++	chmod--secontext_full.c chmod--secontext_full_mismatch.c \
++	chmod--secontext_mismatch.c chown.c chown32.c chroot.c \
+ 	clock_adjtime.c clock_adjtime64.c clock_nanosleep.c \
+ 	clock_xettime.c clock_xettime64.c clone-flags.c clone3.c \
+ 	clone3-Xabbrev.c clone3-Xraw.c clone3-Xverbose.c \
+@@ -4777,24 +4997,40 @@
+ 	dup3-y.c dup3-yy.c epoll_create.c epoll_create1.c epoll_ctl.c \
+ 	epoll_pwait.c epoll_pwait2.c epoll_pwait2-P.c epoll_pwait2-y.c \
+ 	epoll_wait.c erestartsys.c eventfd.c execve.c \
+-	execve--secontext.c execve--secontext_full.c execve-v.c \
+-	execveat.c execveat--secontext.c execveat--secontext_full.c \
+-	execveat-v.c faccessat.c faccessat--secontext.c \
+-	faccessat--secontext_full.c faccessat-P.c faccessat-y.c \
++	execve--secontext.c execve--secontext_full.c \
++	execve--secontext_full_mismatch.c execve--secontext_mismatch.c \
++	execve-v.c execveat.c execveat--secontext.c \
++	execveat--secontext_full.c execveat--secontext_full_mismatch.c \
++	execveat--secontext_mismatch.c execveat-v.c faccessat.c \
++	faccessat--secontext.c faccessat--secontext_full.c \
++	faccessat--secontext_full_mismatch.c \
++	faccessat--secontext_mismatch.c faccessat-P.c faccessat-y.c \
+ 	faccessat-y--secontext.c faccessat-y--secontext_full.c \
+-	faccessat-yy.c faccessat2.c faccessat2-P.c faccessat2-y.c \
+-	faccessat2-yy.c fadvise64.c fadvise64_64.c fallocate.c \
+-	fanotify_init.c fanotify_mark.c fanotify_mark--secontext.c \
+-	fanotify_mark--secontext_full.c fanotify_mark-Xabbrev.c \
++	faccessat-y--secontext_full_mismatch.c \
++	faccessat-y--secontext_mismatch.c faccessat-yy.c faccessat2.c \
++	faccessat2-P.c faccessat2-y.c faccessat2-yy.c fadvise64.c \
++	fadvise64_64.c fallocate.c fanotify_init.c fanotify_mark.c \
++	fanotify_mark--secontext.c fanotify_mark--secontext_full.c \
++	fanotify_mark--secontext_full_mismatch.c \
++	fanotify_mark--secontext_mismatch.c fanotify_mark-Xabbrev.c \
+ 	fanotify_mark-Xraw.c fanotify_mark-Xverbose.c fchdir.c \
+ 	fchmod.c fchmod--secontext.c fchmod--secontext_full.c \
++	fchmod--secontext_full_mismatch.c fchmod--secontext_mismatch.c \
+ 	fchmod-y.c fchmod-y--secontext.c fchmod-y--secontext_full.c \
+-	fchmodat.c fchmodat--secontext.c fchmodat--secontext_full.c \
+-	fchown.c fchown32.c fchownat.c fchownat--secontext.c \
+-	fchownat--secontext_full.c fcntl.c fcntl--pidns-translation.c \
+-	fcntl64.c fcntl64--pidns-translation.c fdatasync.c fflush.c \
++	fchmod-y--secontext_full_mismatch.c \
++	fchmod-y--secontext_mismatch.c fchmodat.c \
++	fchmodat--secontext.c fchmodat--secontext_full.c \
++	fchmodat--secontext_full_mismatch.c \
++	fchmodat--secontext_mismatch.c fchown.c fchown32.c fchownat.c \
++	fchownat--secontext.c fchownat--secontext_full.c \
++	fchownat--secontext_full_mismatch.c \
++	fchownat--secontext_mismatch.c fcntl.c \
++	fcntl--pidns-translation.c fcntl64.c \
++	fcntl64--pidns-translation.c fdatasync.c fflush.c \
+ 	file_handle.c file_handle--secontext.c \
+-	file_handle--secontext_full.c filter-unavailable.c \
++	file_handle--secontext_full.c \
++	file_handle--secontext_full_mismatch.c \
++	file_handle--secontext_mismatch.c filter-unavailable.c \
+ 	filter_seccomp-flag.c filter_seccomp-perf.c finit_module.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 \
+@@ -4881,6 +5117,7 @@
+ 	landlock_create_ruleset-y.c landlock_restrict_self.c \
+ 	landlock_restrict_self-y.c lchown.c lchown32.c link.c linkat.c \
+ 	linkat--secontext.c linkat--secontext_full.c \
++	linkat--secontext_full_mismatch.c linkat--secontext_mismatch.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 \
+@@ -4934,8 +5171,10 @@
+ 	old_mmap-v-none.c oldfstat.c oldlstat.c oldselect.c \
+ 	oldselect-P.c oldselect-efault.c oldselect-efault-P.c \
+ 	oldstat.c open.c open--secontext.c open--secontext_full.c \
++	open--secontext_full_mismatch.c open--secontext_mismatch.c \
+ 	open_tree.c open_tree-P.c openat.c openat--secontext.c \
+-	openat--secontext_full.c openat2.c openat2-Xabbrev.c \
++	openat--secontext_full.c openat--secontext_full_mismatch.c \
++	openat--secontext_mismatch.c openat2.c openat2-Xabbrev.c \
+ 	openat2-Xraw.c openat2-Xverbose.c openat2-v.c openat2-v-y.c \
+ 	openat2-v-y-Xabbrev.c openat2-v-y-Xraw.c \
+ 	openat2-v-y-Xverbose.c openat2-y.c orphaned_process_group.c \
+@@ -6211,66 +6450,126 @@
+ secontext_EXECUTABLES = \
+   access--secontext \
+   access--secontext_full \
++  access--secontext_full_mismatch \
++  access--secontext_mismatch \
+   chmod--secontext \
+   chmod--secontext_full \
++  chmod--secontext_full_mismatch \
++  chmod--secontext_mismatch \
+   execve--secontext \
+   execve--secontext_full \
++  execve--secontext_full_mismatch \
++  execve--secontext_mismatch \
+   execveat--secontext \
+   execveat--secontext_full \
++  execveat--secontext_full_mismatch \
++  execveat--secontext_mismatch \
+   faccessat--secontext \
+   faccessat--secontext_full \
++  faccessat--secontext_full_mismatch \
++  faccessat--secontext_mismatch \
+   faccessat-y--secontext \
+   faccessat-y--secontext_full \
++  faccessat-y--secontext_full_mismatch \
++  faccessat-y--secontext_mismatch \
+   fanotify_mark--secontext \
+   fanotify_mark--secontext_full \
++  fanotify_mark--secontext_full_mismatch \
++  fanotify_mark--secontext_mismatch \
+   fchmod--secontext \
+   fchmod--secontext_full \
++  fchmod--secontext_full_mismatch \
++  fchmod--secontext_mismatch \
+   fchmod-y--secontext \
+   fchmod-y--secontext_full \
++  fchmod-y--secontext_full_mismatch \
++  fchmod-y--secontext_mismatch \
+   fchmodat--secontext \
+   fchmodat--secontext_full \
++  fchmodat--secontext_full_mismatch \
++  fchmodat--secontext_mismatch \
+   fchownat--secontext \
+   fchownat--secontext_full \
++  fchownat--secontext_full_mismatch \
++  fchownat--secontext_mismatch \
+   file_handle--secontext \
+   file_handle--secontext_full \
++  file_handle--secontext_full_mismatch \
++  file_handle--secontext_mismatch \
+   linkat--secontext \
+   linkat--secontext_full \
++  linkat--secontext_full_mismatch \
++  linkat--secontext_mismatch \
+   open--secontext \
+   open--secontext_full \
++  open--secontext_full_mismatch \
++  open--secontext_mismatch \
+   openat--secontext \
+   openat--secontext_full \
++  openat--secontext_full_mismatch \
++  openat--secontext_mismatch \
+   #
+ 
+ access__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ access__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++access__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++access__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ chmod__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ chmod__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++chmod__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++chmod__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ execve__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ execve__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++execve__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++execve__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ execveat__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ execveat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++execveat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++execveat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ faccessat__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ faccessat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++faccessat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++faccessat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ faccessat_y__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ faccessat_y__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++faccessat_y__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++faccessat_y__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ fanotify_mark__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ fanotify_mark__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++fanotify_mark__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++fanotify_mark__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ fchmod__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ fchmod__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++fchmod__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++fchmod__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ fchmod_y__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ fchmod_y__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++fchmod_y__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++fchmod_y__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ fchmodat__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ fchmodat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++fchmodat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++fchmodat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ fchownat__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ fchownat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++fchownat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++fchownat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ file_handle__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ file_handle__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++file_handle__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++file_handle__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ linkat__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ linkat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++linkat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++linkat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ open__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ open__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++open__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++open__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ openat__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ openat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++openat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++openat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ attach_f_p_LDADD = -lpthread $(LDADD)
+ count_f_LDADD = -lpthread $(LDADD)
+ delay_LDADD = $(clock_LIBS) $(LDADD)
+@@ -6324,15 +6623,20 @@
+ # 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 \
+ 	accept4.gen.test access.gen.test access--secontext.gen.test \
+-	access--secontext_full.gen.test acct.gen.test add_key.gen.test \
+-	adjtimex.gen.test aio.gen.test aio_pgetevents.gen.test \
+-	alarm.gen.test bpf.gen.test bpf-obj_get_info_by_fd.gen.test \
++	access--secontext_full.gen.test \
++	access--secontext_full_mismatch.gen.test \
++	access--secontext_mismatch.gen.test acct.gen.test \
++	add_key.gen.test adjtimex.gen.test aio.gen.test \
++	aio_pgetevents.gen.test alarm.gen.test bpf.gen.test \
++	bpf-obj_get_info_by_fd.gen.test \
+ 	bpf-obj_get_info_by_fd-prog.gen.test \
+ 	bpf-obj_get_info_by_fd-prog-v.gen.test \
+ 	bpf-obj_get_info_by_fd-v.gen.test bpf-v.gen.test \
+ 	btrfs.gen.test chdir.gen.test chmod.gen.test \
+ 	chmod--secontext.gen.test chmod--secontext_full.gen.test \
+-	chown.gen.test chown32.gen.test chroot.gen.test clock.gen.test \
++	chmod--secontext_full_mismatch.gen.test \
++	chmod--secontext_mismatch.gen.test chown.gen.test \
++	chown32.gen.test chroot.gen.test clock.gen.test \
+ 	clock_adjtime.gen.test clock_adjtime64.gen.test \
+ 	clock_nanosleep.gen.test clock_xettime.gen.test \
+ 	clock_xettime64.gen.test clone3.gen.test \
+@@ -6355,36 +6659,53 @@
+ 	epoll_pwait2-P.gen.test epoll_pwait2-y.gen.test \
+ 	epoll_wait.gen.test erestartsys.gen.test \
+ 	execve--secontext.gen.test execve--secontext_full.gen.test \
+-	execveat.gen.test execveat--secontext.gen.test \
+-	execveat--secontext_full.gen.test execveat-v.gen.test \
++	execve--secontext_full_mismatch.gen.test \
++	execve--secontext_mismatch.gen.test execveat.gen.test \
++	execveat--secontext.gen.test execveat--secontext_full.gen.test \
++	execveat--secontext_full_mismatch.gen.test \
++	execveat--secontext_mismatch.gen.test execveat-v.gen.test \
+ 	faccessat--secontext.gen.test \
+-	faccessat--secontext_full.gen.test faccessat-P.gen.test \
++	faccessat--secontext_full.gen.test \
++	faccessat--secontext_full_mismatch.gen.test \
++	faccessat--secontext_mismatch.gen.test faccessat-P.gen.test \
+ 	faccessat-y.gen.test faccessat-y--secontext.gen.test \
+-	faccessat-y--secontext_full.gen.test faccessat-yy.gen.test \
++	faccessat-y--secontext_full.gen.test \
++	faccessat-y--secontext_full_mismatch.gen.test \
++	faccessat-y--secontext_mismatch.gen.test faccessat-yy.gen.test \
+ 	faccessat2-P.gen.test faccessat2-y.gen.test \
+ 	faccessat2-yy.gen.test fadvise64_64.gen.test \
+ 	fallocate.gen.test fanotify_init.gen.test \
+ 	fanotify_mark.gen.test fanotify_mark--secontext.gen.test \
+ 	fanotify_mark--secontext_full.gen.test \
++	fanotify_mark--secontext_full_mismatch.gen.test \
++	fanotify_mark--secontext_mismatch.gen.test \
+ 	fanotify_mark-Xabbrev.gen.test fanotify_mark-Xraw.gen.test \
+ 	fanotify_mark-Xverbose.gen.test fchdir.gen.test \
+ 	fchmod.gen.test fchmod--secontext.gen.test \
+-	fchmod--secontext_full.gen.test fchmod-y.gen.test \
++	fchmod--secontext_full.gen.test \
++	fchmod--secontext_full_mismatch.gen.test \
++	fchmod--secontext_mismatch.gen.test fchmod-y.gen.test \
+ 	fchmod-y--secontext.gen.test fchmod-y--secontext_full.gen.test \
+-	fchmodat.gen.test fchmodat--secontext.gen.test \
+-	fchmodat--secontext_full.gen.test fchown.gen.test \
++	fchmod-y--secontext_full_mismatch.gen.test \
++	fchmod-y--secontext_mismatch.gen.test fchmodat.gen.test \
++	fchmodat--secontext.gen.test fchmodat--secontext_full.gen.test \
++	fchmodat--secontext_full_mismatch.gen.test \
++	fchmodat--secontext_mismatch.gen.test fchown.gen.test \
+ 	fchown32.gen.test fchownat.gen.test \
+ 	fchownat--secontext.gen.test fchownat--secontext_full.gen.test \
+-	fcntl.gen.test fcntl--pidns-translation.gen.test \
+-	fcntl64.gen.test fcntl64--pidns-translation.gen.test \
+-	fdatasync.gen.test file_handle.gen.test \
+-	file_handle--secontext.gen.test \
+-	file_handle--secontext_full.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 \
++	fchownat--secontext_full_mismatch.gen.test \
++	fchownat--secontext_mismatch.gen.test fcntl.gen.test \
++	fcntl--pidns-translation.gen.test fcntl64.gen.test \
++	fcntl64--pidns-translation.gen.test fdatasync.gen.test \
++	file_handle.gen.test file_handle--secontext.gen.test \
++	file_handle--secontext_full.gen.test \
++	file_handle--secontext_full_mismatch.gen.test \
++	file_handle--secontext_mismatch.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 \
+@@ -6511,8 +6832,10 @@
+ 	landlock_restrict_self-y.gen.test lchown.gen.test \
+ 	lchown32.gen.test link.gen.test linkat.gen.test \
+ 	linkat--secontext.gen.test linkat--secontext_full.gen.test \
+-	lookup_dcookie.gen.test lstat.gen.test lstat64.gen.test \
+-	madvise.gen.test maybe_switch_current_tcp.gen.test \
++	linkat--secontext_full_mismatch.gen.test \
++	linkat--secontext_mismatch.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 \
+@@ -6581,16 +6904,19 @@
+ 	oldselect.gen.test oldselect-P.gen.test \
+ 	oldselect-efault.gen.test oldselect-efault-P.gen.test \
+ 	oldstat.gen.test open.gen.test open--secontext.gen.test \
+-	open--secontext_full.gen.test open_tree.gen.test \
++	open--secontext_full.gen.test \
++	open--secontext_full_mismatch.gen.test \
++	open--secontext_mismatch.gen.test open_tree.gen.test \
+ 	open_tree-P.gen.test openat.gen.test \
+ 	openat--secontext.gen.test openat--secontext_full.gen.test \
+-	openat2.gen.test openat2-Xabbrev.gen.test \
+-	openat2-Xraw.gen.test openat2-Xverbose.gen.test \
+-	openat2-v.gen.test openat2-v-y.gen.test \
+-	openat2-v-y-Xabbrev.gen.test openat2-v-y-Xraw.gen.test \
+-	openat2-v-y-Xverbose.gen.test openat2-y.gen.test \
+-	orphaned_process_group.gen.test osf_utimes.gen.test \
+-	pause.gen.test perf_event_open.gen.test \
++	openat--secontext_full_mismatch.gen.test \
++	openat--secontext_mismatch.gen.test openat2.gen.test \
++	openat2-Xabbrev.gen.test openat2-Xraw.gen.test \
++	openat2-Xverbose.gen.test openat2-v.gen.test \
++	openat2-v-y.gen.test openat2-v-y-Xabbrev.gen.test \
++	openat2-v-y-Xraw.gen.test openat2-v-y-Xverbose.gen.test \
++	openat2-y.gen.test orphaned_process_group.gen.test \
++	osf_utimes.gen.test pause.gen.test perf_event_open.gen.test \
+ 	perf_event_open_nonverbose.gen.test \
+ 	perf_event_open_unabbrev.gen.test personality-Xabbrev.gen.test \
+ 	personality-Xraw.gen.test personality-Xverbose.gen.test \
+@@ -7154,6 +7480,14 @@
+ 	@rm -f access--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(access__secontext_full_OBJECTS) $(access__secontext_full_LDADD) $(LIBS)
+ 
++access--secontext_full_mismatch$(EXEEXT): $(access__secontext_full_mismatch_OBJECTS) $(access__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_access__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f access--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(access__secontext_full_mismatch_OBJECTS) $(access__secontext_full_mismatch_LDADD) $(LIBS)
++
++access--secontext_mismatch$(EXEEXT): $(access__secontext_mismatch_OBJECTS) $(access__secontext_mismatch_DEPENDENCIES) $(EXTRA_access__secontext_mismatch_DEPENDENCIES) 
++	@rm -f access--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(access__secontext_mismatch_OBJECTS) $(access__secontext_mismatch_LDADD) $(LIBS)
++
+ acct$(EXEEXT): $(acct_OBJECTS) $(acct_DEPENDENCIES) $(EXTRA_acct_DEPENDENCIES) 
+ 	@rm -f acct$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(acct_OBJECTS) $(acct_LDADD) $(LIBS)
+@@ -7282,6 +7616,14 @@
+ 	@rm -f chmod--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(chmod__secontext_full_OBJECTS) $(chmod__secontext_full_LDADD) $(LIBS)
+ 
++chmod--secontext_full_mismatch$(EXEEXT): $(chmod__secontext_full_mismatch_OBJECTS) $(chmod__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_chmod__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f chmod--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(chmod__secontext_full_mismatch_OBJECTS) $(chmod__secontext_full_mismatch_LDADD) $(LIBS)
++
++chmod--secontext_mismatch$(EXEEXT): $(chmod__secontext_mismatch_OBJECTS) $(chmod__secontext_mismatch_DEPENDENCIES) $(EXTRA_chmod__secontext_mismatch_DEPENDENCIES) 
++	@rm -f chmod--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(chmod__secontext_mismatch_OBJECTS) $(chmod__secontext_mismatch_LDADD) $(LIBS)
++
+ chown$(EXEEXT): $(chown_OBJECTS) $(chown_DEPENDENCIES) $(EXTRA_chown_DEPENDENCIES) 
+ 	@rm -f chown$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(chown_OBJECTS) $(chown_LDADD) $(LIBS)
+@@ -7526,6 +7868,14 @@
+ 	@rm -f execve--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(execve__secontext_full_OBJECTS) $(execve__secontext_full_LDADD) $(LIBS)
+ 
++execve--secontext_full_mismatch$(EXEEXT): $(execve__secontext_full_mismatch_OBJECTS) $(execve__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_execve__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f execve--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(execve__secontext_full_mismatch_OBJECTS) $(execve__secontext_full_mismatch_LDADD) $(LIBS)
++
++execve--secontext_mismatch$(EXEEXT): $(execve__secontext_mismatch_OBJECTS) $(execve__secontext_mismatch_DEPENDENCIES) $(EXTRA_execve__secontext_mismatch_DEPENDENCIES) 
++	@rm -f execve--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(execve__secontext_mismatch_OBJECTS) $(execve__secontext_mismatch_LDADD) $(LIBS)
++
+ execve-v$(EXEEXT): $(execve_v_OBJECTS) $(execve_v_DEPENDENCIES) $(EXTRA_execve_v_DEPENDENCIES) 
+ 	@rm -f execve-v$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(execve_v_OBJECTS) $(execve_v_LDADD) $(LIBS)
+@@ -7542,6 +7892,14 @@
+ 	@rm -f execveat--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(execveat__secontext_full_OBJECTS) $(execveat__secontext_full_LDADD) $(LIBS)
+ 
++execveat--secontext_full_mismatch$(EXEEXT): $(execveat__secontext_full_mismatch_OBJECTS) $(execveat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_execveat__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f execveat--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(execveat__secontext_full_mismatch_OBJECTS) $(execveat__secontext_full_mismatch_LDADD) $(LIBS)
++
++execveat--secontext_mismatch$(EXEEXT): $(execveat__secontext_mismatch_OBJECTS) $(execveat__secontext_mismatch_DEPENDENCIES) $(EXTRA_execveat__secontext_mismatch_DEPENDENCIES) 
++	@rm -f execveat--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(execveat__secontext_mismatch_OBJECTS) $(execveat__secontext_mismatch_LDADD) $(LIBS)
++
+ execveat-v$(EXEEXT): $(execveat_v_OBJECTS) $(execveat_v_DEPENDENCIES) $(EXTRA_execveat_v_DEPENDENCIES) 
+ 	@rm -f execveat-v$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(execveat_v_OBJECTS) $(execveat_v_LDADD) $(LIBS)
+@@ -7558,6 +7916,14 @@
+ 	@rm -f faccessat--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(faccessat__secontext_full_OBJECTS) $(faccessat__secontext_full_LDADD) $(LIBS)
+ 
++faccessat--secontext_full_mismatch$(EXEEXT): $(faccessat__secontext_full_mismatch_OBJECTS) $(faccessat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_faccessat__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f faccessat--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(faccessat__secontext_full_mismatch_OBJECTS) $(faccessat__secontext_full_mismatch_LDADD) $(LIBS)
++
++faccessat--secontext_mismatch$(EXEEXT): $(faccessat__secontext_mismatch_OBJECTS) $(faccessat__secontext_mismatch_DEPENDENCIES) $(EXTRA_faccessat__secontext_mismatch_DEPENDENCIES) 
++	@rm -f faccessat--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(faccessat__secontext_mismatch_OBJECTS) $(faccessat__secontext_mismatch_LDADD) $(LIBS)
++
+ faccessat-P$(EXEEXT): $(faccessat_P_OBJECTS) $(faccessat_P_DEPENDENCIES) $(EXTRA_faccessat_P_DEPENDENCIES) 
+ 	@rm -f faccessat-P$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(faccessat_P_OBJECTS) $(faccessat_P_LDADD) $(LIBS)
+@@ -7574,6 +7940,14 @@
+ 	@rm -f faccessat-y--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(faccessat_y__secontext_full_OBJECTS) $(faccessat_y__secontext_full_LDADD) $(LIBS)
+ 
++faccessat-y--secontext_full_mismatch$(EXEEXT): $(faccessat_y__secontext_full_mismatch_OBJECTS) $(faccessat_y__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_faccessat_y__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f faccessat-y--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(faccessat_y__secontext_full_mismatch_OBJECTS) $(faccessat_y__secontext_full_mismatch_LDADD) $(LIBS)
++
++faccessat-y--secontext_mismatch$(EXEEXT): $(faccessat_y__secontext_mismatch_OBJECTS) $(faccessat_y__secontext_mismatch_DEPENDENCIES) $(EXTRA_faccessat_y__secontext_mismatch_DEPENDENCIES) 
++	@rm -f faccessat-y--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(faccessat_y__secontext_mismatch_OBJECTS) $(faccessat_y__secontext_mismatch_LDADD) $(LIBS)
++
+ faccessat-yy$(EXEEXT): $(faccessat_yy_OBJECTS) $(faccessat_yy_DEPENDENCIES) $(EXTRA_faccessat_yy_DEPENDENCIES) 
+ 	@rm -f faccessat-yy$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(faccessat_yy_OBJECTS) $(faccessat_yy_LDADD) $(LIBS)
+@@ -7622,6 +7996,14 @@
+ 	@rm -f fanotify_mark--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fanotify_mark__secontext_full_OBJECTS) $(fanotify_mark__secontext_full_LDADD) $(LIBS)
+ 
++fanotify_mark--secontext_full_mismatch$(EXEEXT): $(fanotify_mark__secontext_full_mismatch_OBJECTS) $(fanotify_mark__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fanotify_mark__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f fanotify_mark--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fanotify_mark__secontext_full_mismatch_OBJECTS) $(fanotify_mark__secontext_full_mismatch_LDADD) $(LIBS)
++
++fanotify_mark--secontext_mismatch$(EXEEXT): $(fanotify_mark__secontext_mismatch_OBJECTS) $(fanotify_mark__secontext_mismatch_DEPENDENCIES) $(EXTRA_fanotify_mark__secontext_mismatch_DEPENDENCIES) 
++	@rm -f fanotify_mark--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fanotify_mark__secontext_mismatch_OBJECTS) $(fanotify_mark__secontext_mismatch_LDADD) $(LIBS)
++
+ fanotify_mark-Xabbrev$(EXEEXT): $(fanotify_mark_Xabbrev_OBJECTS) $(fanotify_mark_Xabbrev_DEPENDENCIES) $(EXTRA_fanotify_mark_Xabbrev_DEPENDENCIES) 
+ 	@rm -f fanotify_mark-Xabbrev$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fanotify_mark_Xabbrev_OBJECTS) $(fanotify_mark_Xabbrev_LDADD) $(LIBS)
+@@ -7650,6 +8032,14 @@
+ 	@rm -f fchmod--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fchmod__secontext_full_OBJECTS) $(fchmod__secontext_full_LDADD) $(LIBS)
+ 
++fchmod--secontext_full_mismatch$(EXEEXT): $(fchmod__secontext_full_mismatch_OBJECTS) $(fchmod__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchmod__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f fchmod--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fchmod__secontext_full_mismatch_OBJECTS) $(fchmod__secontext_full_mismatch_LDADD) $(LIBS)
++
++fchmod--secontext_mismatch$(EXEEXT): $(fchmod__secontext_mismatch_OBJECTS) $(fchmod__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchmod__secontext_mismatch_DEPENDENCIES) 
++	@rm -f fchmod--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fchmod__secontext_mismatch_OBJECTS) $(fchmod__secontext_mismatch_LDADD) $(LIBS)
++
+ fchmod-y$(EXEEXT): $(fchmod_y_OBJECTS) $(fchmod_y_DEPENDENCIES) $(EXTRA_fchmod_y_DEPENDENCIES) 
+ 	@rm -f fchmod-y$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fchmod_y_OBJECTS) $(fchmod_y_LDADD) $(LIBS)
+@@ -7662,6 +8052,14 @@
+ 	@rm -f fchmod-y--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fchmod_y__secontext_full_OBJECTS) $(fchmod_y__secontext_full_LDADD) $(LIBS)
+ 
++fchmod-y--secontext_full_mismatch$(EXEEXT): $(fchmod_y__secontext_full_mismatch_OBJECTS) $(fchmod_y__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchmod_y__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f fchmod-y--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fchmod_y__secontext_full_mismatch_OBJECTS) $(fchmod_y__secontext_full_mismatch_LDADD) $(LIBS)
++
++fchmod-y--secontext_mismatch$(EXEEXT): $(fchmod_y__secontext_mismatch_OBJECTS) $(fchmod_y__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchmod_y__secontext_mismatch_DEPENDENCIES) 
++	@rm -f fchmod-y--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fchmod_y__secontext_mismatch_OBJECTS) $(fchmod_y__secontext_mismatch_LDADD) $(LIBS)
++
+ fchmodat$(EXEEXT): $(fchmodat_OBJECTS) $(fchmodat_DEPENDENCIES) $(EXTRA_fchmodat_DEPENDENCIES) 
+ 	@rm -f fchmodat$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fchmodat_OBJECTS) $(fchmodat_LDADD) $(LIBS)
+@@ -7674,6 +8072,14 @@
+ 	@rm -f fchmodat--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fchmodat__secontext_full_OBJECTS) $(fchmodat__secontext_full_LDADD) $(LIBS)
+ 
++fchmodat--secontext_full_mismatch$(EXEEXT): $(fchmodat__secontext_full_mismatch_OBJECTS) $(fchmodat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchmodat__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f fchmodat--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fchmodat__secontext_full_mismatch_OBJECTS) $(fchmodat__secontext_full_mismatch_LDADD) $(LIBS)
++
++fchmodat--secontext_mismatch$(EXEEXT): $(fchmodat__secontext_mismatch_OBJECTS) $(fchmodat__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchmodat__secontext_mismatch_DEPENDENCIES) 
++	@rm -f fchmodat--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fchmodat__secontext_mismatch_OBJECTS) $(fchmodat__secontext_mismatch_LDADD) $(LIBS)
++
+ fchown$(EXEEXT): $(fchown_OBJECTS) $(fchown_DEPENDENCIES) $(EXTRA_fchown_DEPENDENCIES) 
+ 	@rm -f fchown$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fchown_OBJECTS) $(fchown_LDADD) $(LIBS)
+@@ -7694,6 +8100,14 @@
+ 	@rm -f fchownat--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fchownat__secontext_full_OBJECTS) $(fchownat__secontext_full_LDADD) $(LIBS)
+ 
++fchownat--secontext_full_mismatch$(EXEEXT): $(fchownat__secontext_full_mismatch_OBJECTS) $(fchownat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchownat__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f fchownat--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fchownat__secontext_full_mismatch_OBJECTS) $(fchownat__secontext_full_mismatch_LDADD) $(LIBS)
++
++fchownat--secontext_mismatch$(EXEEXT): $(fchownat__secontext_mismatch_OBJECTS) $(fchownat__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchownat__secontext_mismatch_DEPENDENCIES) 
++	@rm -f fchownat--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fchownat__secontext_mismatch_OBJECTS) $(fchownat__secontext_mismatch_LDADD) $(LIBS)
++
+ fcntl$(EXEEXT): $(fcntl_OBJECTS) $(fcntl_DEPENDENCIES) $(EXTRA_fcntl_DEPENDENCIES) 
+ 	@rm -f fcntl$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fcntl_OBJECTS) $(fcntl_LDADD) $(LIBS)
+@@ -7730,6 +8144,14 @@
+ 	@rm -f file_handle--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(file_handle__secontext_full_OBJECTS) $(file_handle__secontext_full_LDADD) $(LIBS)
+ 
++file_handle--secontext_full_mismatch$(EXEEXT): $(file_handle__secontext_full_mismatch_OBJECTS) $(file_handle__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_file_handle__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f file_handle--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(file_handle__secontext_full_mismatch_OBJECTS) $(file_handle__secontext_full_mismatch_LDADD) $(LIBS)
++
++file_handle--secontext_mismatch$(EXEEXT): $(file_handle__secontext_mismatch_OBJECTS) $(file_handle__secontext_mismatch_DEPENDENCIES) $(EXTRA_file_handle__secontext_mismatch_DEPENDENCIES) 
++	@rm -f file_handle--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(file_handle__secontext_mismatch_OBJECTS) $(file_handle__secontext_mismatch_LDADD) $(LIBS)
++
+ filter-unavailable$(EXEEXT): $(filter_unavailable_OBJECTS) $(filter_unavailable_DEPENDENCIES) $(EXTRA_filter_unavailable_DEPENDENCIES) 
+ 	@rm -f filter-unavailable$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(filter_unavailable_OBJECTS) $(filter_unavailable_LDADD) $(LIBS)
+@@ -8774,6 +9196,14 @@
+ 	@rm -f linkat--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(linkat__secontext_full_OBJECTS) $(linkat__secontext_full_LDADD) $(LIBS)
+ 
++linkat--secontext_full_mismatch$(EXEEXT): $(linkat__secontext_full_mismatch_OBJECTS) $(linkat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_linkat__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f linkat--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(linkat__secontext_full_mismatch_OBJECTS) $(linkat__secontext_full_mismatch_LDADD) $(LIBS)
++
++linkat--secontext_mismatch$(EXEEXT): $(linkat__secontext_mismatch_OBJECTS) $(linkat__secontext_mismatch_DEPENDENCIES) $(EXTRA_linkat__secontext_mismatch_DEPENDENCIES) 
++	@rm -f linkat--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(linkat__secontext_mismatch_OBJECTS) $(linkat__secontext_mismatch_LDADD) $(LIBS)
++
+ list_sigaction_signum$(EXEEXT): $(list_sigaction_signum_OBJECTS) $(list_sigaction_signum_DEPENDENCIES) $(EXTRA_list_sigaction_signum_DEPENDENCIES) 
+ 	@rm -f list_sigaction_signum$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(list_sigaction_signum_OBJECTS) $(list_sigaction_signum_LDADD) $(LIBS)
+@@ -9422,6 +9852,14 @@
+ 	@rm -f open--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(open__secontext_full_OBJECTS) $(open__secontext_full_LDADD) $(LIBS)
+ 
++open--secontext_full_mismatch$(EXEEXT): $(open__secontext_full_mismatch_OBJECTS) $(open__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_open__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f open--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(open__secontext_full_mismatch_OBJECTS) $(open__secontext_full_mismatch_LDADD) $(LIBS)
++
++open--secontext_mismatch$(EXEEXT): $(open__secontext_mismatch_OBJECTS) $(open__secontext_mismatch_DEPENDENCIES) $(EXTRA_open__secontext_mismatch_DEPENDENCIES) 
++	@rm -f open--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(open__secontext_mismatch_OBJECTS) $(open__secontext_mismatch_LDADD) $(LIBS)
++
+ open_tree$(EXEEXT): $(open_tree_OBJECTS) $(open_tree_DEPENDENCIES) $(EXTRA_open_tree_DEPENDENCIES) 
+ 	@rm -f open_tree$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(open_tree_OBJECTS) $(open_tree_LDADD) $(LIBS)
+@@ -9442,6 +9880,14 @@
+ 	@rm -f openat--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(openat__secontext_full_OBJECTS) $(openat__secontext_full_LDADD) $(LIBS)
+ 
++openat--secontext_full_mismatch$(EXEEXT): $(openat__secontext_full_mismatch_OBJECTS) $(openat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_openat__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f openat--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(openat__secontext_full_mismatch_OBJECTS) $(openat__secontext_full_mismatch_LDADD) $(LIBS)
++
++openat--secontext_mismatch$(EXEEXT): $(openat__secontext_mismatch_OBJECTS) $(openat__secontext_mismatch_DEPENDENCIES) $(EXTRA_openat__secontext_mismatch_DEPENDENCIES) 
++	@rm -f openat--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(openat__secontext_mismatch_OBJECTS) $(openat__secontext_mismatch_LDADD) $(LIBS)
++
+ openat2$(EXEEXT): $(openat2_OBJECTS) $(openat2_DEPENDENCIES) $(EXTRA_openat2_DEPENDENCIES) 
+ 	@rm -f openat2$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(openat2_OBJECTS) $(openat2_LDADD) $(LIBS)
+@@ -10834,6 +11280,8 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/accept4.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/acct.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/add_key.Po@am__quote@ # am--include-marker
+@@ -10866,6 +11314,8 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_sigign.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chown.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chown32.Po@am__quote@ # am--include-marker
+@@ -10927,17 +11377,25 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eventfd.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve-v.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat-v.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-P.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-yy.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat.Po@am__quote@ # am--include-marker
+@@ -10951,6 +11409,8 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_init.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xabbrev.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xraw.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xverbose.Po@am__quote@ # am--include-marker
+@@ -10958,17 +11418,25 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchdir.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat.Po@am__quote@ # am--include-marker
+ @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--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext_mismatch.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
+@@ -10978,6 +11446,8 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fflush.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter-unavailable.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter_seccomp-flag.Po@am__quote@ # am--include-marker
+@@ -11275,6 +11745,8 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/link.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext_mismatch.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
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/llseek.Po@am__quote@ # am--include-marker
+@@ -11437,11 +11909,15 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oldstat.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open_tree-P.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open_tree.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-Xabbrev.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-Xraw.Po@am__quote@ # am--include-marker
+@@ -13003,6 +13479,12 @@
+ $(srcdir)/access--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/access--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/access--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/acct.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13054,6 +13536,12 @@
+ $(srcdir)/chmod--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/chmod--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/chmod--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/chown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13219,6 +13707,12 @@
+ $(srcdir)/execve--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/execve--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/execve--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/execveat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13228,6 +13722,12 @@
+ $(srcdir)/execveat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/execveat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/execveat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/execveat-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13237,6 +13737,12 @@
+ $(srcdir)/faccessat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/faccessat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/faccessat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/faccessat-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13249,6 +13755,12 @@
+ $(srcdir)/faccessat-y--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/faccessat-y--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/faccessat-y--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/faccessat-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13279,6 +13791,12 @@
+ $(srcdir)/fanotify_mark--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/fanotify_mark--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/fanotify_mark--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/fanotify_mark-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13300,6 +13818,12 @@
+ $(srcdir)/fchmod--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/fchmod--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/fchmod--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/fchmod-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13309,6 +13833,12 @@
+ $(srcdir)/fchmod-y--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/fchmod-y--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/fchmod-y--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/fchmodat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13318,6 +13848,12 @@
+ $(srcdir)/fchmodat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/fchmodat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/fchmodat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/fchown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13333,6 +13869,12 @@
+ $(srcdir)/fchownat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/fchownat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/fchownat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/fcntl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13357,6 +13899,12 @@
+ $(srcdir)/file_handle--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/file_handle--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/file_handle--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/filter_seccomp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -14116,6 +14664,12 @@
+ $(srcdir)/linkat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/linkat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/linkat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/lookup_dcookie.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -14545,6 +15099,12 @@
+ $(srcdir)/open--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/open--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/open--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/open_tree.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -14560,6 +15120,12 @@
+ $(srcdir)/openat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/openat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/openat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/openat2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+--- old/tests-m32/Makefile.in	2022-02-07 20:23:38.724063729 +0100
++++ new/tests-m32/Makefile.in	2022-02-07 20:24:03.512063387 +0100
+@@ -614,25 +614,55 @@
+ 	xet_thread_area_x86$(EXEEXT) xetitimer$(EXEEXT) \
+ 	xetpgid$(EXEEXT) xetpriority$(EXEEXT) xettimeofday$(EXEEXT)
+ am__EXEEXT_2 = access--secontext$(EXEEXT) \
+-	access--secontext_full$(EXEEXT) chmod--secontext$(EXEEXT) \
+-	chmod--secontext_full$(EXEEXT) execve--secontext$(EXEEXT) \
+-	execve--secontext_full$(EXEEXT) execveat--secontext$(EXEEXT) \
+-	execveat--secontext_full$(EXEEXT) \
++	access--secontext_full$(EXEEXT) \
++	access--secontext_full_mismatch$(EXEEXT) \
++	access--secontext_mismatch$(EXEEXT) chmod--secontext$(EXEEXT) \
++	chmod--secontext_full$(EXEEXT) \
++	chmod--secontext_full_mismatch$(EXEEXT) \
++	chmod--secontext_mismatch$(EXEEXT) execve--secontext$(EXEEXT) \
++	execve--secontext_full$(EXEEXT) \
++	execve--secontext_full_mismatch$(EXEEXT) \
++	execve--secontext_mismatch$(EXEEXT) \
++	execveat--secontext$(EXEEXT) execveat--secontext_full$(EXEEXT) \
++	execveat--secontext_full_mismatch$(EXEEXT) \
++	execveat--secontext_mismatch$(EXEEXT) \
+ 	faccessat--secontext$(EXEEXT) \
+ 	faccessat--secontext_full$(EXEEXT) \
++	faccessat--secontext_full_mismatch$(EXEEXT) \
++	faccessat--secontext_mismatch$(EXEEXT) \
+ 	faccessat-y--secontext$(EXEEXT) \
+ 	faccessat-y--secontext_full$(EXEEXT) \
++	faccessat-y--secontext_full_mismatch$(EXEEXT) \
++	faccessat-y--secontext_mismatch$(EXEEXT) \
+ 	fanotify_mark--secontext$(EXEEXT) \
+ 	fanotify_mark--secontext_full$(EXEEXT) \
++	fanotify_mark--secontext_full_mismatch$(EXEEXT) \
++	fanotify_mark--secontext_mismatch$(EXEEXT) \
+ 	fchmod--secontext$(EXEEXT) fchmod--secontext_full$(EXEEXT) \
++	fchmod--secontext_full_mismatch$(EXEEXT) \
++	fchmod--secontext_mismatch$(EXEEXT) \
+ 	fchmod-y--secontext$(EXEEXT) fchmod-y--secontext_full$(EXEEXT) \
++	fchmod-y--secontext_full_mismatch$(EXEEXT) \
++	fchmod-y--secontext_mismatch$(EXEEXT) \
+ 	fchmodat--secontext$(EXEEXT) fchmodat--secontext_full$(EXEEXT) \
++	fchmodat--secontext_full_mismatch$(EXEEXT) \
++	fchmodat--secontext_mismatch$(EXEEXT) \
+ 	fchownat--secontext$(EXEEXT) fchownat--secontext_full$(EXEEXT) \
++	fchownat--secontext_full_mismatch$(EXEEXT) \
++	fchownat--secontext_mismatch$(EXEEXT) \
+ 	file_handle--secontext$(EXEEXT) \
+ 	file_handle--secontext_full$(EXEEXT) \
++	file_handle--secontext_full_mismatch$(EXEEXT) \
++	file_handle--secontext_mismatch$(EXEEXT) \
+ 	linkat--secontext$(EXEEXT) linkat--secontext_full$(EXEEXT) \
+-	open--secontext$(EXEEXT) open--secontext_full$(EXEEXT) \
+-	openat--secontext$(EXEEXT) openat--secontext_full$(EXEEXT)
++	linkat--secontext_full_mismatch$(EXEEXT) \
++	linkat--secontext_mismatch$(EXEEXT) open--secontext$(EXEEXT) \
++	open--secontext_full$(EXEEXT) \
++	open--secontext_full_mismatch$(EXEEXT) \
++	open--secontext_mismatch$(EXEEXT) openat--secontext$(EXEEXT) \
++	openat--secontext_full$(EXEEXT) \
++	openat--secontext_full_mismatch$(EXEEXT) \
++	openat--secontext_mismatch$(EXEEXT)
+ ARFLAGS = cru
+ AM_V_AR = $(am__v_AR_@AM_V@)
+ am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
+@@ -662,6 +692,17 @@
+ access__secontext_full_SOURCES = access--secontext_full.c
+ access__secontext_full_OBJECTS = access--secontext_full.$(OBJEXT)
+ access__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++access__secontext_full_mismatch_SOURCES =  \
++	access--secontext_full_mismatch.c
++access__secontext_full_mismatch_OBJECTS =  \
++	access--secontext_full_mismatch.$(OBJEXT)
++access__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++access__secontext_mismatch_SOURCES = access--secontext_mismatch.c
++access__secontext_mismatch_OBJECTS =  \
++	access--secontext_mismatch.$(OBJEXT)
++access__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ acct_SOURCES = acct.c
+ acct_OBJECTS = acct.$(OBJEXT)
+ acct_LDADD = $(LDADD)
+@@ -790,6 +831,17 @@
+ chmod__secontext_full_SOURCES = chmod--secontext_full.c
+ chmod__secontext_full_OBJECTS = chmod--secontext_full.$(OBJEXT)
+ chmod__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++chmod__secontext_full_mismatch_SOURCES =  \
++	chmod--secontext_full_mismatch.c
++chmod__secontext_full_mismatch_OBJECTS =  \
++	chmod--secontext_full_mismatch.$(OBJEXT)
++chmod__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++chmod__secontext_mismatch_SOURCES = chmod--secontext_mismatch.c
++chmod__secontext_mismatch_OBJECTS =  \
++	chmod--secontext_mismatch.$(OBJEXT)
++chmod__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ chown_SOURCES = chown.c
+ chown_OBJECTS = chown.$(OBJEXT)
+ chown_LDADD = $(LDADD)
+@@ -1031,6 +1083,17 @@
+ execve__secontext_full_SOURCES = execve--secontext_full.c
+ execve__secontext_full_OBJECTS = execve--secontext_full.$(OBJEXT)
+ execve__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++execve__secontext_full_mismatch_SOURCES =  \
++	execve--secontext_full_mismatch.c
++execve__secontext_full_mismatch_OBJECTS =  \
++	execve--secontext_full_mismatch.$(OBJEXT)
++execve__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++execve__secontext_mismatch_SOURCES = execve--secontext_mismatch.c
++execve__secontext_mismatch_OBJECTS =  \
++	execve--secontext_mismatch.$(OBJEXT)
++execve__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ execve_v_SOURCES = execve-v.c
+ execve_v_OBJECTS = execve-v.$(OBJEXT)
+ execve_v_LDADD = $(LDADD)
+@@ -1045,6 +1108,17 @@
+ execveat__secontext_full_SOURCES = execveat--secontext_full.c
+ execveat__secontext_full_OBJECTS = execveat--secontext_full.$(OBJEXT)
+ execveat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++execveat__secontext_full_mismatch_SOURCES =  \
++	execveat--secontext_full_mismatch.c
++execveat__secontext_full_mismatch_OBJECTS =  \
++	execveat--secontext_full_mismatch.$(OBJEXT)
++execveat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++execveat__secontext_mismatch_SOURCES = execveat--secontext_mismatch.c
++execveat__secontext_mismatch_OBJECTS =  \
++	execveat--secontext_mismatch.$(OBJEXT)
++execveat__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ execveat_v_SOURCES = execveat-v.c
+ execveat_v_OBJECTS = execveat-v.$(OBJEXT)
+ execveat_v_LDADD = $(LDADD)
+@@ -1061,6 +1135,18 @@
+ 	faccessat--secontext_full.$(OBJEXT)
+ faccessat__secontext_full_DEPENDENCIES = $(LDADD) \
+ 	$(am__DEPENDENCIES_2)
++faccessat__secontext_full_mismatch_SOURCES =  \
++	faccessat--secontext_full_mismatch.c
++faccessat__secontext_full_mismatch_OBJECTS =  \
++	faccessat--secontext_full_mismatch.$(OBJEXT)
++faccessat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++faccessat__secontext_mismatch_SOURCES =  \
++	faccessat--secontext_mismatch.c
++faccessat__secontext_mismatch_OBJECTS =  \
++	faccessat--secontext_mismatch.$(OBJEXT)
++faccessat__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ faccessat_P_SOURCES = faccessat-P.c
+ faccessat_P_OBJECTS = faccessat-P.$(OBJEXT)
+ faccessat_P_LDADD = $(LDADD)
+@@ -1077,6 +1163,18 @@
+ 	faccessat-y--secontext_full.$(OBJEXT)
+ faccessat_y__secontext_full_DEPENDENCIES = $(LDADD) \
+ 	$(am__DEPENDENCIES_2)
++faccessat_y__secontext_full_mismatch_SOURCES =  \
++	faccessat-y--secontext_full_mismatch.c
++faccessat_y__secontext_full_mismatch_OBJECTS =  \
++	faccessat-y--secontext_full_mismatch.$(OBJEXT)
++faccessat_y__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++faccessat_y__secontext_mismatch_SOURCES =  \
++	faccessat-y--secontext_mismatch.c
++faccessat_y__secontext_mismatch_OBJECTS =  \
++	faccessat-y--secontext_mismatch.$(OBJEXT)
++faccessat_y__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ faccessat_yy_SOURCES = faccessat-yy.c
+ faccessat_yy_OBJECTS = faccessat-yy.$(OBJEXT)
+ faccessat_yy_LDADD = $(LDADD)
+@@ -1126,6 +1224,18 @@
+ 	fanotify_mark--secontext_full.$(OBJEXT)
+ fanotify_mark__secontext_full_DEPENDENCIES = $(LDADD) \
+ 	$(am__DEPENDENCIES_2)
++fanotify_mark__secontext_full_mismatch_SOURCES =  \
++	fanotify_mark--secontext_full_mismatch.c
++fanotify_mark__secontext_full_mismatch_OBJECTS =  \
++	fanotify_mark--secontext_full_mismatch.$(OBJEXT)
++fanotify_mark__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++fanotify_mark__secontext_mismatch_SOURCES =  \
++	fanotify_mark--secontext_mismatch.c
++fanotify_mark__secontext_mismatch_OBJECTS =  \
++	fanotify_mark--secontext_mismatch.$(OBJEXT)
++fanotify_mark__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ fanotify_mark_Xabbrev_SOURCES = fanotify_mark-Xabbrev.c
+ fanotify_mark_Xabbrev_OBJECTS = fanotify_mark-Xabbrev.$(OBJEXT)
+ fanotify_mark_Xabbrev_LDADD = $(LDADD)
+@@ -1152,6 +1262,17 @@
+ fchmod__secontext_full_SOURCES = fchmod--secontext_full.c
+ fchmod__secontext_full_OBJECTS = fchmod--secontext_full.$(OBJEXT)
+ fchmod__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++fchmod__secontext_full_mismatch_SOURCES =  \
++	fchmod--secontext_full_mismatch.c
++fchmod__secontext_full_mismatch_OBJECTS =  \
++	fchmod--secontext_full_mismatch.$(OBJEXT)
++fchmod__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++fchmod__secontext_mismatch_SOURCES = fchmod--secontext_mismatch.c
++fchmod__secontext_mismatch_OBJECTS =  \
++	fchmod--secontext_mismatch.$(OBJEXT)
++fchmod__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ fchmod_y_SOURCES = fchmod-y.c
+ fchmod_y_OBJECTS = fchmod-y.$(OBJEXT)
+ fchmod_y_LDADD = $(LDADD)
+@@ -1162,6 +1283,17 @@
+ fchmod_y__secontext_full_SOURCES = fchmod-y--secontext_full.c
+ fchmod_y__secontext_full_OBJECTS = fchmod-y--secontext_full.$(OBJEXT)
+ fchmod_y__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++fchmod_y__secontext_full_mismatch_SOURCES =  \
++	fchmod-y--secontext_full_mismatch.c
++fchmod_y__secontext_full_mismatch_OBJECTS =  \
++	fchmod-y--secontext_full_mismatch.$(OBJEXT)
++fchmod_y__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++fchmod_y__secontext_mismatch_SOURCES = fchmod-y--secontext_mismatch.c
++fchmod_y__secontext_mismatch_OBJECTS =  \
++	fchmod-y--secontext_mismatch.$(OBJEXT)
++fchmod_y__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ fchmodat_SOURCES = fchmodat.c
+ fchmodat_OBJECTS = fchmodat.$(OBJEXT)
+ fchmodat_LDADD = $(LDADD)
+@@ -1172,6 +1304,17 @@
+ fchmodat__secontext_full_SOURCES = fchmodat--secontext_full.c
+ fchmodat__secontext_full_OBJECTS = fchmodat--secontext_full.$(OBJEXT)
+ fchmodat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++fchmodat__secontext_full_mismatch_SOURCES =  \
++	fchmodat--secontext_full_mismatch.c
++fchmodat__secontext_full_mismatch_OBJECTS =  \
++	fchmodat--secontext_full_mismatch.$(OBJEXT)
++fchmodat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++fchmodat__secontext_mismatch_SOURCES = fchmodat--secontext_mismatch.c
++fchmodat__secontext_mismatch_OBJECTS =  \
++	fchmodat--secontext_mismatch.$(OBJEXT)
++fchmodat__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ fchown_SOURCES = fchown.c
+ fchown_OBJECTS = fchown.$(OBJEXT)
+ fchown_LDADD = $(LDADD)
+@@ -1190,6 +1333,17 @@
+ fchownat__secontext_full_SOURCES = fchownat--secontext_full.c
+ fchownat__secontext_full_OBJECTS = fchownat--secontext_full.$(OBJEXT)
+ fchownat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++fchownat__secontext_full_mismatch_SOURCES =  \
++	fchownat--secontext_full_mismatch.c
++fchownat__secontext_full_mismatch_OBJECTS =  \
++	fchownat--secontext_full_mismatch.$(OBJEXT)
++fchownat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++fchownat__secontext_mismatch_SOURCES = fchownat--secontext_mismatch.c
++fchownat__secontext_mismatch_OBJECTS =  \
++	fchownat--secontext_mismatch.$(OBJEXT)
++fchownat__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ fcntl_SOURCES = fcntl.c
+ fcntl_OBJECTS = fcntl.$(OBJEXT)
+ fcntl_LDADD = $(LDADD)
+@@ -1227,6 +1381,18 @@
+ 	file_handle--secontext_full.$(OBJEXT)
+ file_handle__secontext_full_DEPENDENCIES = $(LDADD) \
+ 	$(am__DEPENDENCIES_2)
++file_handle__secontext_full_mismatch_SOURCES =  \
++	file_handle--secontext_full_mismatch.c
++file_handle__secontext_full_mismatch_OBJECTS =  \
++	file_handle--secontext_full_mismatch.$(OBJEXT)
++file_handle__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++file_handle__secontext_mismatch_SOURCES =  \
++	file_handle--secontext_mismatch.c
++file_handle__secontext_mismatch_OBJECTS =  \
++	file_handle--secontext_mismatch.$(OBJEXT)
++file_handle__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ filter_unavailable_SOURCES = filter-unavailable.c
+ filter_unavailable_OBJECTS = filter-unavailable.$(OBJEXT)
+ filter_unavailable_DEPENDENCIES = $(LDADD)
+@@ -2318,6 +2484,17 @@
+ linkat__secontext_full_SOURCES = linkat--secontext_full.c
+ linkat__secontext_full_OBJECTS = linkat--secontext_full.$(OBJEXT)
+ linkat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++linkat__secontext_full_mismatch_SOURCES =  \
++	linkat--secontext_full_mismatch.c
++linkat__secontext_full_mismatch_OBJECTS =  \
++	linkat--secontext_full_mismatch.$(OBJEXT)
++linkat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++linkat__secontext_mismatch_SOURCES = linkat--secontext_mismatch.c
++linkat__secontext_mismatch_OBJECTS =  \
++	linkat--secontext_mismatch.$(OBJEXT)
++linkat__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ list_sigaction_signum_SOURCES = list_sigaction_signum.c
+ list_sigaction_signum_OBJECTS = list_sigaction_signum.$(OBJEXT)
+ list_sigaction_signum_LDADD = $(LDADD)
+@@ -2976,6 +3153,15 @@
+ open__secontext_full_SOURCES = open--secontext_full.c
+ open__secontext_full_OBJECTS = open--secontext_full.$(OBJEXT)
+ open__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++open__secontext_full_mismatch_SOURCES =  \
++	open--secontext_full_mismatch.c
++open__secontext_full_mismatch_OBJECTS =  \
++	open--secontext_full_mismatch.$(OBJEXT)
++open__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++open__secontext_mismatch_SOURCES = open--secontext_mismatch.c
++open__secontext_mismatch_OBJECTS = open--secontext_mismatch.$(OBJEXT)
++open__secontext_mismatch_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
+ open_tree_SOURCES = open_tree.c
+ open_tree_OBJECTS = open_tree.$(OBJEXT)
+ open_tree_LDADD = $(LDADD)
+@@ -2994,6 +3180,17 @@
+ openat__secontext_full_SOURCES = openat--secontext_full.c
+ openat__secontext_full_OBJECTS = openat--secontext_full.$(OBJEXT)
+ openat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++openat__secontext_full_mismatch_SOURCES =  \
++	openat--secontext_full_mismatch.c
++openat__secontext_full_mismatch_OBJECTS =  \
++	openat--secontext_full_mismatch.$(OBJEXT)
++openat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++openat__secontext_mismatch_SOURCES = openat--secontext_mismatch.c
++openat__secontext_mismatch_OBJECTS =  \
++	openat--secontext_mismatch.$(OBJEXT)
++openat__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ openat2_SOURCES = openat2.c
+ openat2_OBJECTS = openat2.$(OBJEXT)
+ openat2_LDADD = $(LDADD)
+@@ -4449,6 +4646,8 @@
+ 	./$(DEPDIR)/_newselect.Po ./$(DEPDIR)/accept.Po \
+ 	./$(DEPDIR)/accept4.Po ./$(DEPDIR)/access--secontext.Po \
+ 	./$(DEPDIR)/access--secontext_full.Po ./$(DEPDIR)/access.Po \
++	./$(DEPDIR)/access--secontext_full_mismatch.Po \
++	./$(DEPDIR)/access--secontext_mismatch.Po \
+ 	./$(DEPDIR)/acct.Po ./$(DEPDIR)/add_key.Po \
+ 	./$(DEPDIR)/adjtimex.Po ./$(DEPDIR)/aio.Po \
+ 	./$(DEPDIR)/aio_pgetevents.Po ./$(DEPDIR)/alarm.Po \
+@@ -4468,6 +4667,8 @@
+ 	./$(DEPDIR)/chdir.Po ./$(DEPDIR)/check_sigblock.Po \
+ 	./$(DEPDIR)/check_sigign.Po ./$(DEPDIR)/chmod--secontext.Po \
+ 	./$(DEPDIR)/chmod--secontext_full.Po ./$(DEPDIR)/chmod.Po \
++	./$(DEPDIR)/chmod--secontext_full_mismatch.Po \
++	./$(DEPDIR)/chmod--secontext_mismatch.Po \
+ 	./$(DEPDIR)/chown.Po ./$(DEPDIR)/chown32.Po \
+ 	./$(DEPDIR)/chroot.Po ./$(DEPDIR)/clock_adjtime.Po \
+ 	./$(DEPDIR)/clock_adjtime64.Po ./$(DEPDIR)/clock_nanosleep.Po \
+@@ -4503,14 +4704,22 @@
+ 	./$(DEPDIR)/epoll_wait.Po ./$(DEPDIR)/erestartsys.Po \
+ 	./$(DEPDIR)/eventfd.Po ./$(DEPDIR)/execve--secontext.Po \
+ 	./$(DEPDIR)/execve--secontext_full.Po ./$(DEPDIR)/execve-v.Po \
++	./$(DEPDIR)/execve--secontext_full_mismatch.Po \
++	./$(DEPDIR)/execve--secontext_mismatch.Po \
+ 	./$(DEPDIR)/execve.Po ./$(DEPDIR)/execveat--secontext.Po \
+ 	./$(DEPDIR)/execveat--secontext_full.Po \
++	./$(DEPDIR)/execveat--secontext_full_mismatch.Po \
++	./$(DEPDIR)/execveat--secontext_mismatch.Po \
+ 	./$(DEPDIR)/execveat-v.Po ./$(DEPDIR)/execveat.Po \
+ 	./$(DEPDIR)/faccessat--secontext.Po \
+ 	./$(DEPDIR)/faccessat--secontext_full.Po \
++	./$(DEPDIR)/faccessat--secontext_full_mismatch.Po \
++	./$(DEPDIR)/faccessat--secontext_mismatch.Po \
+ 	./$(DEPDIR)/faccessat-P.Po \
+ 	./$(DEPDIR)/faccessat-y--secontext.Po \
+ 	./$(DEPDIR)/faccessat-y--secontext_full.Po \
++	./$(DEPDIR)/faccessat-y--secontext_full_mismatch.Po \
++	./$(DEPDIR)/faccessat-y--secontext_mismatch.Po \
+ 	./$(DEPDIR)/faccessat-y.Po ./$(DEPDIR)/faccessat-yy.Po \
+ 	./$(DEPDIR)/faccessat.Po ./$(DEPDIR)/faccessat2-P.Po \
+ 	./$(DEPDIR)/faccessat2-y.Po ./$(DEPDIR)/faccessat2-yy.Po \
+@@ -4519,26 +4728,38 @@
+ 	./$(DEPDIR)/fanotify_init.Po \
+ 	./$(DEPDIR)/fanotify_mark--secontext.Po \
+ 	./$(DEPDIR)/fanotify_mark--secontext_full.Po \
++	./$(DEPDIR)/fanotify_mark--secontext_full_mismatch.Po \
++	./$(DEPDIR)/fanotify_mark--secontext_mismatch.Po \
+ 	./$(DEPDIR)/fanotify_mark-Xabbrev.Po \
+ 	./$(DEPDIR)/fanotify_mark-Xraw.Po \
+ 	./$(DEPDIR)/fanotify_mark-Xverbose.Po \
+ 	./$(DEPDIR)/fanotify_mark.Po ./$(DEPDIR)/fchdir.Po \
+ 	./$(DEPDIR)/fchmod--secontext.Po \
+ 	./$(DEPDIR)/fchmod--secontext_full.Po \
++	./$(DEPDIR)/fchmod--secontext_full_mismatch.Po \
++	./$(DEPDIR)/fchmod--secontext_mismatch.Po \
+ 	./$(DEPDIR)/fchmod-y--secontext.Po \
+ 	./$(DEPDIR)/fchmod-y--secontext_full.Po \
++	./$(DEPDIR)/fchmod-y--secontext_full_mismatch.Po \
++	./$(DEPDIR)/fchmod-y--secontext_mismatch.Po \
+ 	./$(DEPDIR)/fchmod-y.Po ./$(DEPDIR)/fchmod.Po \
+ 	./$(DEPDIR)/fchmodat--secontext.Po \
+ 	./$(DEPDIR)/fchmodat--secontext_full.Po \
++	./$(DEPDIR)/fchmodat--secontext_full_mismatch.Po \
++	./$(DEPDIR)/fchmodat--secontext_mismatch.Po \
+ 	./$(DEPDIR)/fchmodat.Po ./$(DEPDIR)/fchown.Po \
+ 	./$(DEPDIR)/fchown32.Po ./$(DEPDIR)/fchownat--secontext.Po \
+ 	./$(DEPDIR)/fchownat--secontext_full.Po \
++	./$(DEPDIR)/fchownat--secontext_full_mismatch.Po \
++	./$(DEPDIR)/fchownat--secontext_mismatch.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--secontext.Po \
+ 	./$(DEPDIR)/file_handle--secontext_full.Po \
++	./$(DEPDIR)/file_handle--secontext_full_mismatch.Po \
++	./$(DEPDIR)/file_handle--secontext_mismatch.Po \
+ 	./$(DEPDIR)/file_handle.Po ./$(DEPDIR)/filter-unavailable.Po \
+ 	./$(DEPDIR)/filter_seccomp-flag.Po \
+ 	./$(DEPDIR)/filter_seccomp-perf.Po ./$(DEPDIR)/finit_module.Po \
+@@ -4753,6 +4972,8 @@
+ 	./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po \
+ 	./$(DEPDIR)/link.Po ./$(DEPDIR)/linkat--secontext.Po \
+ 	./$(DEPDIR)/linkat--secontext_full.Po ./$(DEPDIR)/linkat.Po \
++	./$(DEPDIR)/linkat--secontext_full_mismatch.Po \
++	./$(DEPDIR)/linkat--secontext_mismatch.Po \
+ 	./$(DEPDIR)/list_sigaction_signum.Po ./$(DEPDIR)/llseek.Po \
+ 	./$(DEPDIR)/localtime.Po ./$(DEPDIR)/lookup_dcookie.Po \
+ 	./$(DEPDIR)/looping_threads.Po ./$(DEPDIR)/lseek.Po \
+@@ -4867,9 +5088,13 @@
+ 	./$(DEPDIR)/oldselect-efault.Po ./$(DEPDIR)/oldselect.Po \
+ 	./$(DEPDIR)/oldstat.Po ./$(DEPDIR)/open--secontext.Po \
+ 	./$(DEPDIR)/open--secontext_full.Po ./$(DEPDIR)/open.Po \
++	./$(DEPDIR)/open--secontext_full_mismatch.Po \
++	./$(DEPDIR)/open--secontext_mismatch.Po \
+ 	./$(DEPDIR)/open_tree-P.Po ./$(DEPDIR)/open_tree.Po \
+ 	./$(DEPDIR)/openat--secontext.Po \
+ 	./$(DEPDIR)/openat--secontext_full.Po ./$(DEPDIR)/openat.Po \
++	./$(DEPDIR)/openat--secontext_full_mismatch.Po \
++	./$(DEPDIR)/openat--secontext_mismatch.Po \
+ 	./$(DEPDIR)/openat2-Xabbrev.Po ./$(DEPDIR)/openat2-Xraw.Po \
+ 	./$(DEPDIR)/openat2-Xverbose.Po \
+ 	./$(DEPDIR)/openat2-v-y-Xabbrev.Po \
+@@ -5119,7 +5316,8 @@
+ am__v_CCLD_1 = 
+ SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c accept.c \
+ 	accept4.c access.c access--secontext.c \
+-	access--secontext_full.c acct.c add_key.c adjtimex.c aio.c \
++	access--secontext_full.c access--secontext_full_mismatch.c \
++	access--secontext_mismatch.c acct.c add_key.c adjtimex.c aio.c \
+ 	aio_pgetevents.c alarm.c answer.c attach-f-p.c \
+ 	attach-f-p-cmd.c attach-p-cmd-cmd.c attach-p-cmd-p.c \
+ 	block_reset_raise_run.c block_reset_run.c bpf.c \
+@@ -4468,7 +4666,8 @@
+ 	bpf-success.c bpf-success-long-y.c bpf-success-v.c bpf-v.c \
+ 	brk.c btrfs.c caps.c caps-abbrev.c chdir.c check_sigblock.c \
+ 	check_sigign.c chmod.c chmod--secontext.c \
+-	chmod--secontext_full.c chown.c chown32.c chroot.c \
++	chmod--secontext_full.c chmod--secontext_full_mismatch.c \
++	chmod--secontext_mismatch.c chown.c chown32.c chroot.c \
+ 	clock_adjtime.c clock_adjtime64.c clock_nanosleep.c \
+ 	clock_xettime.c clock_xettime64.c clone-flags.c clone3.c \
+ 	clone3-Xabbrev.c clone3-Xraw.c clone3-Xverbose.c \
+@@ -4484,24 +4683,40 @@
+ 	dup3-y.c dup3-yy.c epoll_create.c epoll_create1.c epoll_ctl.c \
+ 	epoll_pwait.c epoll_pwait2.c epoll_pwait2-P.c epoll_pwait2-y.c \
+ 	epoll_wait.c erestartsys.c eventfd.c execve.c \
+-	execve--secontext.c execve--secontext_full.c execve-v.c \
+-	execveat.c execveat--secontext.c execveat--secontext_full.c \
+-	execveat-v.c faccessat.c faccessat--secontext.c \
+-	faccessat--secontext_full.c faccessat-P.c faccessat-y.c \
++	execve--secontext.c execve--secontext_full.c \
++	execve--secontext_full_mismatch.c execve--secontext_mismatch.c \
++	execve-v.c execveat.c execveat--secontext.c \
++	execveat--secontext_full.c execveat--secontext_full_mismatch.c \
++	execveat--secontext_mismatch.c execveat-v.c faccessat.c \
++	faccessat--secontext.c faccessat--secontext_full.c \
++	faccessat--secontext_full_mismatch.c \
++	faccessat--secontext_mismatch.c faccessat-P.c faccessat-y.c \
+ 	faccessat-y--secontext.c faccessat-y--secontext_full.c \
+-	faccessat-yy.c faccessat2.c faccessat2-P.c faccessat2-y.c \
+-	faccessat2-yy.c fadvise64.c fadvise64_64.c fallocate.c \
+-	fanotify_init.c fanotify_mark.c fanotify_mark--secontext.c \
+-	fanotify_mark--secontext_full.c fanotify_mark-Xabbrev.c \
++	faccessat-y--secontext_full_mismatch.c \
++	faccessat-y--secontext_mismatch.c faccessat-yy.c faccessat2.c \
++	faccessat2-P.c faccessat2-y.c faccessat2-yy.c fadvise64.c \
++	fadvise64_64.c fallocate.c fanotify_init.c fanotify_mark.c \
++	fanotify_mark--secontext.c fanotify_mark--secontext_full.c \
++	fanotify_mark--secontext_full_mismatch.c \
++	fanotify_mark--secontext_mismatch.c fanotify_mark-Xabbrev.c \
+ 	fanotify_mark-Xraw.c fanotify_mark-Xverbose.c fchdir.c \
+ 	fchmod.c fchmod--secontext.c fchmod--secontext_full.c \
++	fchmod--secontext_full_mismatch.c fchmod--secontext_mismatch.c \
+ 	fchmod-y.c fchmod-y--secontext.c fchmod-y--secontext_full.c \
+-	fchmodat.c fchmodat--secontext.c fchmodat--secontext_full.c \
+-	fchown.c fchown32.c fchownat.c fchownat--secontext.c \
+-	fchownat--secontext_full.c fcntl.c fcntl--pidns-translation.c \
+-	fcntl64.c fcntl64--pidns-translation.c fdatasync.c fflush.c \
++	fchmod-y--secontext_full_mismatch.c \
++	fchmod-y--secontext_mismatch.c fchmodat.c \
++	fchmodat--secontext.c fchmodat--secontext_full.c \
++	fchmodat--secontext_full_mismatch.c \
++	fchmodat--secontext_mismatch.c fchown.c fchown32.c fchownat.c \
++	fchownat--secontext.c fchownat--secontext_full.c \
++	fchownat--secontext_full_mismatch.c \
++	fchownat--secontext_mismatch.c fcntl.c \
++	fcntl--pidns-translation.c fcntl64.c \
++	fcntl64--pidns-translation.c fdatasync.c fflush.c \
+ 	file_handle.c file_handle--secontext.c \
+-	file_handle--secontext_full.c filter-unavailable.c \
++	file_handle--secontext_full.c \
++	file_handle--secontext_full_mismatch.c \
++	file_handle--secontext_mismatch.c filter-unavailable.c \
+ 	filter_seccomp-flag.c filter_seccomp-perf.c finit_module.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 \
+@@ -4588,6 +4803,7 @@
+ 	landlock_create_ruleset-y.c landlock_restrict_self.c \
+ 	landlock_restrict_self-y.c lchown.c lchown32.c link.c linkat.c \
+ 	linkat--secontext.c linkat--secontext_full.c \
++	linkat--secontext_full_mismatch.c linkat--secontext_mismatch.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 \
+@@ -4641,8 +4857,10 @@
+ 	old_mmap-v-none.c oldfstat.c oldlstat.c oldselect.c \
+ 	oldselect-P.c oldselect-efault.c oldselect-efault-P.c \
+ 	oldstat.c open.c open--secontext.c open--secontext_full.c \
++	open--secontext_full_mismatch.c open--secontext_mismatch.c \
+ 	open_tree.c open_tree-P.c openat.c openat--secontext.c \
+-	openat--secontext_full.c openat2.c openat2-Xabbrev.c \
++	openat--secontext_full.c openat--secontext_full_mismatch.c \
++	openat--secontext_mismatch.c openat2.c openat2-Xabbrev.c \
+ 	openat2-Xraw.c openat2-Xverbose.c openat2-v.c openat2-v-y.c \
+ 	openat2-v-y-Xabbrev.c openat2-v-y-Xraw.c \
+ 	openat2-v-y-Xverbose.c openat2-y.c orphaned_process_group.c \
+@@ -4753,7 +4971,8 @@
+ 	xetpriority--pidns-translation.c xettimeofday.c zeroargc.c
+ DIST_SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c \
+ 	accept.c accept4.c access.c access--secontext.c \
+-	access--secontext_full.c acct.c add_key.c adjtimex.c aio.c \
++	access--secontext_full.c access--secontext_full_mismatch.c \
++	access--secontext_mismatch.c acct.c add_key.c adjtimex.c aio.c \
+ 	aio_pgetevents.c alarm.c answer.c attach-f-p.c \
+ 	attach-f-p-cmd.c attach-p-cmd-cmd.c attach-p-cmd-p.c \
+ 	block_reset_raise_run.c block_reset_run.c bpf.c \
+@@ -4762,7 +4981,8 @@
+ 	bpf-success.c bpf-success-long-y.c bpf-success-v.c bpf-v.c \
+ 	brk.c btrfs.c caps.c caps-abbrev.c chdir.c check_sigblock.c \
+ 	check_sigign.c chmod.c chmod--secontext.c \
+-	chmod--secontext_full.c chown.c chown32.c chroot.c \
++	chmod--secontext_full.c chmod--secontext_full_mismatch.c \
++	chmod--secontext_mismatch.c chown.c chown32.c chroot.c \
+ 	clock_adjtime.c clock_adjtime64.c clock_nanosleep.c \
+ 	clock_xettime.c clock_xettime64.c clone-flags.c clone3.c \
+ 	clone3-Xabbrev.c clone3-Xraw.c clone3-Xverbose.c \
+@@ -4778,24 +4998,40 @@
+ 	dup3-y.c dup3-yy.c epoll_create.c epoll_create1.c epoll_ctl.c \
+ 	epoll_pwait.c epoll_pwait2.c epoll_pwait2-P.c epoll_pwait2-y.c \
+ 	epoll_wait.c erestartsys.c eventfd.c execve.c \
+-	execve--secontext.c execve--secontext_full.c execve-v.c \
+-	execveat.c execveat--secontext.c execveat--secontext_full.c \
+-	execveat-v.c faccessat.c faccessat--secontext.c \
+-	faccessat--secontext_full.c faccessat-P.c faccessat-y.c \
++	execve--secontext.c execve--secontext_full.c \
++	execve--secontext_full_mismatch.c execve--secontext_mismatch.c \
++	execve-v.c execveat.c execveat--secontext.c \
++	execveat--secontext_full.c execveat--secontext_full_mismatch.c \
++	execveat--secontext_mismatch.c execveat-v.c faccessat.c \
++	faccessat--secontext.c faccessat--secontext_full.c \
++	faccessat--secontext_full_mismatch.c \
++	faccessat--secontext_mismatch.c faccessat-P.c faccessat-y.c \
+ 	faccessat-y--secontext.c faccessat-y--secontext_full.c \
+-	faccessat-yy.c faccessat2.c faccessat2-P.c faccessat2-y.c \
+-	faccessat2-yy.c fadvise64.c fadvise64_64.c fallocate.c \
+-	fanotify_init.c fanotify_mark.c fanotify_mark--secontext.c \
+-	fanotify_mark--secontext_full.c fanotify_mark-Xabbrev.c \
++	faccessat-y--secontext_full_mismatch.c \
++	faccessat-y--secontext_mismatch.c faccessat-yy.c faccessat2.c \
++	faccessat2-P.c faccessat2-y.c faccessat2-yy.c fadvise64.c \
++	fadvise64_64.c fallocate.c fanotify_init.c fanotify_mark.c \
++	fanotify_mark--secontext.c fanotify_mark--secontext_full.c \
++	fanotify_mark--secontext_full_mismatch.c \
++	fanotify_mark--secontext_mismatch.c fanotify_mark-Xabbrev.c \
+ 	fanotify_mark-Xraw.c fanotify_mark-Xverbose.c fchdir.c \
+ 	fchmod.c fchmod--secontext.c fchmod--secontext_full.c \
++	fchmod--secontext_full_mismatch.c fchmod--secontext_mismatch.c \
+ 	fchmod-y.c fchmod-y--secontext.c fchmod-y--secontext_full.c \
+-	fchmodat.c fchmodat--secontext.c fchmodat--secontext_full.c \
+-	fchown.c fchown32.c fchownat.c fchownat--secontext.c \
+-	fchownat--secontext_full.c fcntl.c fcntl--pidns-translation.c \
+-	fcntl64.c fcntl64--pidns-translation.c fdatasync.c fflush.c \
++	fchmod-y--secontext_full_mismatch.c \
++	fchmod-y--secontext_mismatch.c fchmodat.c \
++	fchmodat--secontext.c fchmodat--secontext_full.c \
++	fchmodat--secontext_full_mismatch.c \
++	fchmodat--secontext_mismatch.c fchown.c fchown32.c fchownat.c \
++	fchownat--secontext.c fchownat--secontext_full.c \
++	fchownat--secontext_full_mismatch.c \
++	fchownat--secontext_mismatch.c fcntl.c \
++	fcntl--pidns-translation.c fcntl64.c \
++	fcntl64--pidns-translation.c fdatasync.c fflush.c \
+ 	file_handle.c file_handle--secontext.c \
+-	file_handle--secontext_full.c filter-unavailable.c \
++	file_handle--secontext_full.c \
++	file_handle--secontext_full_mismatch.c \
++	file_handle--secontext_mismatch.c filter-unavailable.c \
+ 	filter_seccomp-flag.c filter_seccomp-perf.c finit_module.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 \
+@@ -4882,6 +5118,7 @@
+ 	landlock_create_ruleset-y.c landlock_restrict_self.c \
+ 	landlock_restrict_self-y.c lchown.c lchown32.c link.c linkat.c \
+ 	linkat--secontext.c linkat--secontext_full.c \
++	linkat--secontext_full_mismatch.c linkat--secontext_mismatch.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 \
+@@ -4935,8 +5172,10 @@
+ 	old_mmap-v-none.c oldfstat.c oldlstat.c oldselect.c \
+ 	oldselect-P.c oldselect-efault.c oldselect-efault-P.c \
+ 	oldstat.c open.c open--secontext.c open--secontext_full.c \
++	open--secontext_full_mismatch.c open--secontext_mismatch.c \
+ 	open_tree.c open_tree-P.c openat.c openat--secontext.c \
+-	openat--secontext_full.c openat2.c openat2-Xabbrev.c \
++	openat--secontext_full.c openat--secontext_full_mismatch.c \
++	openat--secontext_mismatch.c openat2.c openat2-Xabbrev.c \
+ 	openat2-Xraw.c openat2-Xverbose.c openat2-v.c openat2-v-y.c \
+ 	openat2-v-y-Xabbrev.c openat2-v-y-Xraw.c \
+ 	openat2-v-y-Xverbose.c openat2-y.c orphaned_process_group.c \
+@@ -6212,66 +6451,126 @@
+ secontext_EXECUTABLES = \
+   access--secontext \
+   access--secontext_full \
++  access--secontext_full_mismatch \
++  access--secontext_mismatch \
+   chmod--secontext \
+   chmod--secontext_full \
++  chmod--secontext_full_mismatch \
++  chmod--secontext_mismatch \
+   execve--secontext \
+   execve--secontext_full \
++  execve--secontext_full_mismatch \
++  execve--secontext_mismatch \
+   execveat--secontext \
+   execveat--secontext_full \
++  execveat--secontext_full_mismatch \
++  execveat--secontext_mismatch \
+   faccessat--secontext \
+   faccessat--secontext_full \
++  faccessat--secontext_full_mismatch \
++  faccessat--secontext_mismatch \
+   faccessat-y--secontext \
+   faccessat-y--secontext_full \
++  faccessat-y--secontext_full_mismatch \
++  faccessat-y--secontext_mismatch \
+   fanotify_mark--secontext \
+   fanotify_mark--secontext_full \
++  fanotify_mark--secontext_full_mismatch \
++  fanotify_mark--secontext_mismatch \
+   fchmod--secontext \
+   fchmod--secontext_full \
++  fchmod--secontext_full_mismatch \
++  fchmod--secontext_mismatch \
+   fchmod-y--secontext \
+   fchmod-y--secontext_full \
++  fchmod-y--secontext_full_mismatch \
++  fchmod-y--secontext_mismatch \
+   fchmodat--secontext \
+   fchmodat--secontext_full \
++  fchmodat--secontext_full_mismatch \
++  fchmodat--secontext_mismatch \
+   fchownat--secontext \
+   fchownat--secontext_full \
++  fchownat--secontext_full_mismatch \
++  fchownat--secontext_mismatch \
+   file_handle--secontext \
+   file_handle--secontext_full \
++  file_handle--secontext_full_mismatch \
++  file_handle--secontext_mismatch \
+   linkat--secontext \
+   linkat--secontext_full \
++  linkat--secontext_full_mismatch \
++  linkat--secontext_mismatch \
+   open--secontext \
+   open--secontext_full \
++  open--secontext_full_mismatch \
++  open--secontext_mismatch \
+   openat--secontext \
+   openat--secontext_full \
++  openat--secontext_full_mismatch \
++  openat--secontext_mismatch \
+   #
+ 
+ access__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ access__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++access__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++access__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ chmod__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ chmod__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++chmod__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++chmod__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ execve__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ execve__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++execve__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++execve__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ execveat__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ execveat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++execveat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++execveat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ faccessat__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ faccessat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++faccessat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++faccessat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ faccessat_y__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ faccessat_y__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++faccessat_y__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++faccessat_y__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ fanotify_mark__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ fanotify_mark__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++fanotify_mark__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++fanotify_mark__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ fchmod__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ fchmod__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++fchmod__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++fchmod__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ fchmod_y__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ fchmod_y__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++fchmod_y__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++fchmod_y__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ fchmodat__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ fchmodat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++fchmodat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++fchmodat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ fchownat__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ fchownat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++fchownat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++fchownat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ file_handle__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ file_handle__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++file_handle__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++file_handle__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ linkat__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ linkat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++linkat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++linkat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ open__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ open__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++open__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++open__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ openat__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ openat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++openat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++openat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ attach_f_p_LDADD = -lpthread $(LDADD)
+ count_f_LDADD = -lpthread $(LDADD)
+ delay_LDADD = $(clock_LIBS) $(LDADD)
+@@ -6325,15 +6624,20 @@
+ # 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 \
+ 	accept4.gen.test access.gen.test access--secontext.gen.test \
+-	access--secontext_full.gen.test acct.gen.test add_key.gen.test \
+-	adjtimex.gen.test aio.gen.test aio_pgetevents.gen.test \
+-	alarm.gen.test bpf.gen.test bpf-obj_get_info_by_fd.gen.test \
++	access--secontext_full.gen.test \
++	access--secontext_full_mismatch.gen.test \
++	access--secontext_mismatch.gen.test acct.gen.test \
++	add_key.gen.test adjtimex.gen.test aio.gen.test \
++	aio_pgetevents.gen.test alarm.gen.test bpf.gen.test \
++	bpf-obj_get_info_by_fd.gen.test \
+ 	bpf-obj_get_info_by_fd-prog.gen.test \
+ 	bpf-obj_get_info_by_fd-prog-v.gen.test \
+ 	bpf-obj_get_info_by_fd-v.gen.test bpf-v.gen.test \
+ 	btrfs.gen.test chdir.gen.test chmod.gen.test \
+ 	chmod--secontext.gen.test chmod--secontext_full.gen.test \
+-	chown.gen.test chown32.gen.test chroot.gen.test clock.gen.test \
++	chmod--secontext_full_mismatch.gen.test \
++	chmod--secontext_mismatch.gen.test chown.gen.test \
++	chown32.gen.test chroot.gen.test clock.gen.test \
+ 	clock_adjtime.gen.test clock_adjtime64.gen.test \
+ 	clock_nanosleep.gen.test clock_xettime.gen.test \
+ 	clock_xettime64.gen.test clone3.gen.test \
+@@ -6356,36 +6660,53 @@
+ 	epoll_pwait2-P.gen.test epoll_pwait2-y.gen.test \
+ 	epoll_wait.gen.test erestartsys.gen.test \
+ 	execve--secontext.gen.test execve--secontext_full.gen.test \
+-	execveat.gen.test execveat--secontext.gen.test \
+-	execveat--secontext_full.gen.test execveat-v.gen.test \
++	execve--secontext_full_mismatch.gen.test \
++	execve--secontext_mismatch.gen.test execveat.gen.test \
++	execveat--secontext.gen.test execveat--secontext_full.gen.test \
++	execveat--secontext_full_mismatch.gen.test \
++	execveat--secontext_mismatch.gen.test execveat-v.gen.test \
+ 	faccessat--secontext.gen.test \
+-	faccessat--secontext_full.gen.test faccessat-P.gen.test \
++	faccessat--secontext_full.gen.test \
++	faccessat--secontext_full_mismatch.gen.test \
++	faccessat--secontext_mismatch.gen.test faccessat-P.gen.test \
+ 	faccessat-y.gen.test faccessat-y--secontext.gen.test \
+-	faccessat-y--secontext_full.gen.test faccessat-yy.gen.test \
++	faccessat-y--secontext_full.gen.test \
++	faccessat-y--secontext_full_mismatch.gen.test \
++	faccessat-y--secontext_mismatch.gen.test faccessat-yy.gen.test \
+ 	faccessat2-P.gen.test faccessat2-y.gen.test \
+ 	faccessat2-yy.gen.test fadvise64_64.gen.test \
+ 	fallocate.gen.test fanotify_init.gen.test \
+ 	fanotify_mark.gen.test fanotify_mark--secontext.gen.test \
+ 	fanotify_mark--secontext_full.gen.test \
++	fanotify_mark--secontext_full_mismatch.gen.test \
++	fanotify_mark--secontext_mismatch.gen.test \
+ 	fanotify_mark-Xabbrev.gen.test fanotify_mark-Xraw.gen.test \
+ 	fanotify_mark-Xverbose.gen.test fchdir.gen.test \
+ 	fchmod.gen.test fchmod--secontext.gen.test \
+-	fchmod--secontext_full.gen.test fchmod-y.gen.test \
++	fchmod--secontext_full.gen.test \
++	fchmod--secontext_full_mismatch.gen.test \
++	fchmod--secontext_mismatch.gen.test fchmod-y.gen.test \
+ 	fchmod-y--secontext.gen.test fchmod-y--secontext_full.gen.test \
+-	fchmodat.gen.test fchmodat--secontext.gen.test \
+-	fchmodat--secontext_full.gen.test fchown.gen.test \
++	fchmod-y--secontext_full_mismatch.gen.test \
++	fchmod-y--secontext_mismatch.gen.test fchmodat.gen.test \
++	fchmodat--secontext.gen.test fchmodat--secontext_full.gen.test \
++	fchmodat--secontext_full_mismatch.gen.test \
++	fchmodat--secontext_mismatch.gen.test fchown.gen.test \
+ 	fchown32.gen.test fchownat.gen.test \
+ 	fchownat--secontext.gen.test fchownat--secontext_full.gen.test \
+-	fcntl.gen.test fcntl--pidns-translation.gen.test \
+-	fcntl64.gen.test fcntl64--pidns-translation.gen.test \
+-	fdatasync.gen.test file_handle.gen.test \
+-	file_handle--secontext.gen.test \
+-	file_handle--secontext_full.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 \
++	fchownat--secontext_full_mismatch.gen.test \
++	fchownat--secontext_mismatch.gen.test fcntl.gen.test \
++	fcntl--pidns-translation.gen.test fcntl64.gen.test \
++	fcntl64--pidns-translation.gen.test fdatasync.gen.test \
++	file_handle.gen.test file_handle--secontext.gen.test \
++	file_handle--secontext_full.gen.test \
++	file_handle--secontext_full_mismatch.gen.test \
++	file_handle--secontext_mismatch.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 \
+@@ -6512,8 +6833,10 @@
+ 	landlock_restrict_self-y.gen.test lchown.gen.test \
+ 	lchown32.gen.test link.gen.test linkat.gen.test \
+ 	linkat--secontext.gen.test linkat--secontext_full.gen.test \
+-	lookup_dcookie.gen.test lstat.gen.test lstat64.gen.test \
+-	madvise.gen.test maybe_switch_current_tcp.gen.test \
++	linkat--secontext_full_mismatch.gen.test \
++	linkat--secontext_mismatch.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 \
+@@ -6582,16 +6905,19 @@
+ 	oldselect.gen.test oldselect-P.gen.test \
+ 	oldselect-efault.gen.test oldselect-efault-P.gen.test \
+ 	oldstat.gen.test open.gen.test open--secontext.gen.test \
+-	open--secontext_full.gen.test open_tree.gen.test \
++	open--secontext_full.gen.test \
++	open--secontext_full_mismatch.gen.test \
++	open--secontext_mismatch.gen.test open_tree.gen.test \
+ 	open_tree-P.gen.test openat.gen.test \
+ 	openat--secontext.gen.test openat--secontext_full.gen.test \
+-	openat2.gen.test openat2-Xabbrev.gen.test \
+-	openat2-Xraw.gen.test openat2-Xverbose.gen.test \
+-	openat2-v.gen.test openat2-v-y.gen.test \
+-	openat2-v-y-Xabbrev.gen.test openat2-v-y-Xraw.gen.test \
+-	openat2-v-y-Xverbose.gen.test openat2-y.gen.test \
+-	orphaned_process_group.gen.test osf_utimes.gen.test \
+-	pause.gen.test perf_event_open.gen.test \
++	openat--secontext_full_mismatch.gen.test \
++	openat--secontext_mismatch.gen.test openat2.gen.test \
++	openat2-Xabbrev.gen.test openat2-Xraw.gen.test \
++	openat2-Xverbose.gen.test openat2-v.gen.test \
++	openat2-v-y.gen.test openat2-v-y-Xabbrev.gen.test \
++	openat2-v-y-Xraw.gen.test openat2-v-y-Xverbose.gen.test \
++	openat2-y.gen.test orphaned_process_group.gen.test \
++	osf_utimes.gen.test pause.gen.test perf_event_open.gen.test \
+ 	perf_event_open_nonverbose.gen.test \
+ 	perf_event_open_unabbrev.gen.test personality-Xabbrev.gen.test \
+ 	personality-Xraw.gen.test personality-Xverbose.gen.test \
+@@ -7155,6 +7481,14 @@
+ 	@rm -f access--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(access__secontext_full_OBJECTS) $(access__secontext_full_LDADD) $(LIBS)
+ 
++access--secontext_full_mismatch$(EXEEXT): $(access__secontext_full_mismatch_OBJECTS) $(access__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_access__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f access--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(access__secontext_full_mismatch_OBJECTS) $(access__secontext_full_mismatch_LDADD) $(LIBS)
++
++access--secontext_mismatch$(EXEEXT): $(access__secontext_mismatch_OBJECTS) $(access__secontext_mismatch_DEPENDENCIES) $(EXTRA_access__secontext_mismatch_DEPENDENCIES) 
++	@rm -f access--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(access__secontext_mismatch_OBJECTS) $(access__secontext_mismatch_LDADD) $(LIBS)
++
+ acct$(EXEEXT): $(acct_OBJECTS) $(acct_DEPENDENCIES) $(EXTRA_acct_DEPENDENCIES) 
+ 	@rm -f acct$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(acct_OBJECTS) $(acct_LDADD) $(LIBS)
+@@ -7283,6 +7617,14 @@
+ 	@rm -f chmod--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(chmod__secontext_full_OBJECTS) $(chmod__secontext_full_LDADD) $(LIBS)
+ 
++chmod--secontext_full_mismatch$(EXEEXT): $(chmod__secontext_full_mismatch_OBJECTS) $(chmod__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_chmod__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f chmod--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(chmod__secontext_full_mismatch_OBJECTS) $(chmod__secontext_full_mismatch_LDADD) $(LIBS)
++
++chmod--secontext_mismatch$(EXEEXT): $(chmod__secontext_mismatch_OBJECTS) $(chmod__secontext_mismatch_DEPENDENCIES) $(EXTRA_chmod__secontext_mismatch_DEPENDENCIES) 
++	@rm -f chmod--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(chmod__secontext_mismatch_OBJECTS) $(chmod__secontext_mismatch_LDADD) $(LIBS)
++
+ chown$(EXEEXT): $(chown_OBJECTS) $(chown_DEPENDENCIES) $(EXTRA_chown_DEPENDENCIES) 
+ 	@rm -f chown$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(chown_OBJECTS) $(chown_LDADD) $(LIBS)
+@@ -7527,6 +7869,14 @@
+ 	@rm -f execve--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(execve__secontext_full_OBJECTS) $(execve__secontext_full_LDADD) $(LIBS)
+ 
++execve--secontext_full_mismatch$(EXEEXT): $(execve__secontext_full_mismatch_OBJECTS) $(execve__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_execve__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f execve--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(execve__secontext_full_mismatch_OBJECTS) $(execve__secontext_full_mismatch_LDADD) $(LIBS)
++
++execve--secontext_mismatch$(EXEEXT): $(execve__secontext_mismatch_OBJECTS) $(execve__secontext_mismatch_DEPENDENCIES) $(EXTRA_execve__secontext_mismatch_DEPENDENCIES) 
++	@rm -f execve--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(execve__secontext_mismatch_OBJECTS) $(execve__secontext_mismatch_LDADD) $(LIBS)
++
+ execve-v$(EXEEXT): $(execve_v_OBJECTS) $(execve_v_DEPENDENCIES) $(EXTRA_execve_v_DEPENDENCIES) 
+ 	@rm -f execve-v$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(execve_v_OBJECTS) $(execve_v_LDADD) $(LIBS)
+@@ -7543,6 +7893,14 @@
+ 	@rm -f execveat--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(execveat__secontext_full_OBJECTS) $(execveat__secontext_full_LDADD) $(LIBS)
+ 
++execveat--secontext_full_mismatch$(EXEEXT): $(execveat__secontext_full_mismatch_OBJECTS) $(execveat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_execveat__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f execveat--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(execveat__secontext_full_mismatch_OBJECTS) $(execveat__secontext_full_mismatch_LDADD) $(LIBS)
++
++execveat--secontext_mismatch$(EXEEXT): $(execveat__secontext_mismatch_OBJECTS) $(execveat__secontext_mismatch_DEPENDENCIES) $(EXTRA_execveat__secontext_mismatch_DEPENDENCIES) 
++	@rm -f execveat--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(execveat__secontext_mismatch_OBJECTS) $(execveat__secontext_mismatch_LDADD) $(LIBS)
++
+ execveat-v$(EXEEXT): $(execveat_v_OBJECTS) $(execveat_v_DEPENDENCIES) $(EXTRA_execveat_v_DEPENDENCIES) 
+ 	@rm -f execveat-v$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(execveat_v_OBJECTS) $(execveat_v_LDADD) $(LIBS)
+@@ -7559,6 +7917,14 @@
+ 	@rm -f faccessat--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(faccessat__secontext_full_OBJECTS) $(faccessat__secontext_full_LDADD) $(LIBS)
+ 
++faccessat--secontext_full_mismatch$(EXEEXT): $(faccessat__secontext_full_mismatch_OBJECTS) $(faccessat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_faccessat__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f faccessat--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(faccessat__secontext_full_mismatch_OBJECTS) $(faccessat__secontext_full_mismatch_LDADD) $(LIBS)
++
++faccessat--secontext_mismatch$(EXEEXT): $(faccessat__secontext_mismatch_OBJECTS) $(faccessat__secontext_mismatch_DEPENDENCIES) $(EXTRA_faccessat__secontext_mismatch_DEPENDENCIES) 
++	@rm -f faccessat--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(faccessat__secontext_mismatch_OBJECTS) $(faccessat__secontext_mismatch_LDADD) $(LIBS)
++
+ faccessat-P$(EXEEXT): $(faccessat_P_OBJECTS) $(faccessat_P_DEPENDENCIES) $(EXTRA_faccessat_P_DEPENDENCIES) 
+ 	@rm -f faccessat-P$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(faccessat_P_OBJECTS) $(faccessat_P_LDADD) $(LIBS)
+@@ -7575,6 +7941,14 @@
+ 	@rm -f faccessat-y--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(faccessat_y__secontext_full_OBJECTS) $(faccessat_y__secontext_full_LDADD) $(LIBS)
+ 
++faccessat-y--secontext_full_mismatch$(EXEEXT): $(faccessat_y__secontext_full_mismatch_OBJECTS) $(faccessat_y__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_faccessat_y__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f faccessat-y--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(faccessat_y__secontext_full_mismatch_OBJECTS) $(faccessat_y__secontext_full_mismatch_LDADD) $(LIBS)
++
++faccessat-y--secontext_mismatch$(EXEEXT): $(faccessat_y__secontext_mismatch_OBJECTS) $(faccessat_y__secontext_mismatch_DEPENDENCIES) $(EXTRA_faccessat_y__secontext_mismatch_DEPENDENCIES) 
++	@rm -f faccessat-y--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(faccessat_y__secontext_mismatch_OBJECTS) $(faccessat_y__secontext_mismatch_LDADD) $(LIBS)
++
+ faccessat-yy$(EXEEXT): $(faccessat_yy_OBJECTS) $(faccessat_yy_DEPENDENCIES) $(EXTRA_faccessat_yy_DEPENDENCIES) 
+ 	@rm -f faccessat-yy$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(faccessat_yy_OBJECTS) $(faccessat_yy_LDADD) $(LIBS)
+@@ -7623,6 +7997,14 @@
+ 	@rm -f fanotify_mark--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fanotify_mark__secontext_full_OBJECTS) $(fanotify_mark__secontext_full_LDADD) $(LIBS)
+ 
++fanotify_mark--secontext_full_mismatch$(EXEEXT): $(fanotify_mark__secontext_full_mismatch_OBJECTS) $(fanotify_mark__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fanotify_mark__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f fanotify_mark--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fanotify_mark__secontext_full_mismatch_OBJECTS) $(fanotify_mark__secontext_full_mismatch_LDADD) $(LIBS)
++
++fanotify_mark--secontext_mismatch$(EXEEXT): $(fanotify_mark__secontext_mismatch_OBJECTS) $(fanotify_mark__secontext_mismatch_DEPENDENCIES) $(EXTRA_fanotify_mark__secontext_mismatch_DEPENDENCIES) 
++	@rm -f fanotify_mark--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fanotify_mark__secontext_mismatch_OBJECTS) $(fanotify_mark__secontext_mismatch_LDADD) $(LIBS)
++
+ fanotify_mark-Xabbrev$(EXEEXT): $(fanotify_mark_Xabbrev_OBJECTS) $(fanotify_mark_Xabbrev_DEPENDENCIES) $(EXTRA_fanotify_mark_Xabbrev_DEPENDENCIES) 
+ 	@rm -f fanotify_mark-Xabbrev$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fanotify_mark_Xabbrev_OBJECTS) $(fanotify_mark_Xabbrev_LDADD) $(LIBS)
+@@ -7651,6 +8033,14 @@
+ 	@rm -f fchmod--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fchmod__secontext_full_OBJECTS) $(fchmod__secontext_full_LDADD) $(LIBS)
+ 
++fchmod--secontext_full_mismatch$(EXEEXT): $(fchmod__secontext_full_mismatch_OBJECTS) $(fchmod__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchmod__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f fchmod--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fchmod__secontext_full_mismatch_OBJECTS) $(fchmod__secontext_full_mismatch_LDADD) $(LIBS)
++
++fchmod--secontext_mismatch$(EXEEXT): $(fchmod__secontext_mismatch_OBJECTS) $(fchmod__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchmod__secontext_mismatch_DEPENDENCIES) 
++	@rm -f fchmod--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fchmod__secontext_mismatch_OBJECTS) $(fchmod__secontext_mismatch_LDADD) $(LIBS)
++
+ fchmod-y$(EXEEXT): $(fchmod_y_OBJECTS) $(fchmod_y_DEPENDENCIES) $(EXTRA_fchmod_y_DEPENDENCIES) 
+ 	@rm -f fchmod-y$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fchmod_y_OBJECTS) $(fchmod_y_LDADD) $(LIBS)
+@@ -7663,6 +8053,14 @@
+ 	@rm -f fchmod-y--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fchmod_y__secontext_full_OBJECTS) $(fchmod_y__secontext_full_LDADD) $(LIBS)
+ 
++fchmod-y--secontext_full_mismatch$(EXEEXT): $(fchmod_y__secontext_full_mismatch_OBJECTS) $(fchmod_y__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchmod_y__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f fchmod-y--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fchmod_y__secontext_full_mismatch_OBJECTS) $(fchmod_y__secontext_full_mismatch_LDADD) $(LIBS)
++
++fchmod-y--secontext_mismatch$(EXEEXT): $(fchmod_y__secontext_mismatch_OBJECTS) $(fchmod_y__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchmod_y__secontext_mismatch_DEPENDENCIES) 
++	@rm -f fchmod-y--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fchmod_y__secontext_mismatch_OBJECTS) $(fchmod_y__secontext_mismatch_LDADD) $(LIBS)
++
+ fchmodat$(EXEEXT): $(fchmodat_OBJECTS) $(fchmodat_DEPENDENCIES) $(EXTRA_fchmodat_DEPENDENCIES) 
+ 	@rm -f fchmodat$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fchmodat_OBJECTS) $(fchmodat_LDADD) $(LIBS)
+@@ -7675,6 +8073,14 @@
+ 	@rm -f fchmodat--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fchmodat__secontext_full_OBJECTS) $(fchmodat__secontext_full_LDADD) $(LIBS)
+ 
++fchmodat--secontext_full_mismatch$(EXEEXT): $(fchmodat__secontext_full_mismatch_OBJECTS) $(fchmodat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchmodat__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f fchmodat--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fchmodat__secontext_full_mismatch_OBJECTS) $(fchmodat__secontext_full_mismatch_LDADD) $(LIBS)
++
++fchmodat--secontext_mismatch$(EXEEXT): $(fchmodat__secontext_mismatch_OBJECTS) $(fchmodat__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchmodat__secontext_mismatch_DEPENDENCIES) 
++	@rm -f fchmodat--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fchmodat__secontext_mismatch_OBJECTS) $(fchmodat__secontext_mismatch_LDADD) $(LIBS)
++
+ fchown$(EXEEXT): $(fchown_OBJECTS) $(fchown_DEPENDENCIES) $(EXTRA_fchown_DEPENDENCIES) 
+ 	@rm -f fchown$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fchown_OBJECTS) $(fchown_LDADD) $(LIBS)
+@@ -7695,6 +8101,14 @@
+ 	@rm -f fchownat--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fchownat__secontext_full_OBJECTS) $(fchownat__secontext_full_LDADD) $(LIBS)
+ 
++fchownat--secontext_full_mismatch$(EXEEXT): $(fchownat__secontext_full_mismatch_OBJECTS) $(fchownat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchownat__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f fchownat--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fchownat__secontext_full_mismatch_OBJECTS) $(fchownat__secontext_full_mismatch_LDADD) $(LIBS)
++
++fchownat--secontext_mismatch$(EXEEXT): $(fchownat__secontext_mismatch_OBJECTS) $(fchownat__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchownat__secontext_mismatch_DEPENDENCIES) 
++	@rm -f fchownat--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fchownat__secontext_mismatch_OBJECTS) $(fchownat__secontext_mismatch_LDADD) $(LIBS)
++
+ fcntl$(EXEEXT): $(fcntl_OBJECTS) $(fcntl_DEPENDENCIES) $(EXTRA_fcntl_DEPENDENCIES) 
+ 	@rm -f fcntl$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fcntl_OBJECTS) $(fcntl_LDADD) $(LIBS)
+@@ -7731,6 +8145,14 @@
+ 	@rm -f file_handle--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(file_handle__secontext_full_OBJECTS) $(file_handle__secontext_full_LDADD) $(LIBS)
+ 
++file_handle--secontext_full_mismatch$(EXEEXT): $(file_handle__secontext_full_mismatch_OBJECTS) $(file_handle__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_file_handle__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f file_handle--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(file_handle__secontext_full_mismatch_OBJECTS) $(file_handle__secontext_full_mismatch_LDADD) $(LIBS)
++
++file_handle--secontext_mismatch$(EXEEXT): $(file_handle__secontext_mismatch_OBJECTS) $(file_handle__secontext_mismatch_DEPENDENCIES) $(EXTRA_file_handle__secontext_mismatch_DEPENDENCIES) 
++	@rm -f file_handle--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(file_handle__secontext_mismatch_OBJECTS) $(file_handle__secontext_mismatch_LDADD) $(LIBS)
++
+ filter-unavailable$(EXEEXT): $(filter_unavailable_OBJECTS) $(filter_unavailable_DEPENDENCIES) $(EXTRA_filter_unavailable_DEPENDENCIES) 
+ 	@rm -f filter-unavailable$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(filter_unavailable_OBJECTS) $(filter_unavailable_LDADD) $(LIBS)
+@@ -8775,6 +9197,14 @@
+ 	@rm -f linkat--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(linkat__secontext_full_OBJECTS) $(linkat__secontext_full_LDADD) $(LIBS)
+ 
++linkat--secontext_full_mismatch$(EXEEXT): $(linkat__secontext_full_mismatch_OBJECTS) $(linkat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_linkat__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f linkat--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(linkat__secontext_full_mismatch_OBJECTS) $(linkat__secontext_full_mismatch_LDADD) $(LIBS)
++
++linkat--secontext_mismatch$(EXEEXT): $(linkat__secontext_mismatch_OBJECTS) $(linkat__secontext_mismatch_DEPENDENCIES) $(EXTRA_linkat__secontext_mismatch_DEPENDENCIES) 
++	@rm -f linkat--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(linkat__secontext_mismatch_OBJECTS) $(linkat__secontext_mismatch_LDADD) $(LIBS)
++
+ list_sigaction_signum$(EXEEXT): $(list_sigaction_signum_OBJECTS) $(list_sigaction_signum_DEPENDENCIES) $(EXTRA_list_sigaction_signum_DEPENDENCIES) 
+ 	@rm -f list_sigaction_signum$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(list_sigaction_signum_OBJECTS) $(list_sigaction_signum_LDADD) $(LIBS)
+@@ -9423,6 +9853,14 @@
+ 	@rm -f open--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(open__secontext_full_OBJECTS) $(open__secontext_full_LDADD) $(LIBS)
+ 
++open--secontext_full_mismatch$(EXEEXT): $(open__secontext_full_mismatch_OBJECTS) $(open__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_open__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f open--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(open__secontext_full_mismatch_OBJECTS) $(open__secontext_full_mismatch_LDADD) $(LIBS)
++
++open--secontext_mismatch$(EXEEXT): $(open__secontext_mismatch_OBJECTS) $(open__secontext_mismatch_DEPENDENCIES) $(EXTRA_open__secontext_mismatch_DEPENDENCIES) 
++	@rm -f open--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(open__secontext_mismatch_OBJECTS) $(open__secontext_mismatch_LDADD) $(LIBS)
++
+ open_tree$(EXEEXT): $(open_tree_OBJECTS) $(open_tree_DEPENDENCIES) $(EXTRA_open_tree_DEPENDENCIES) 
+ 	@rm -f open_tree$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(open_tree_OBJECTS) $(open_tree_LDADD) $(LIBS)
+@@ -9443,6 +9881,14 @@
+ 	@rm -f openat--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(openat__secontext_full_OBJECTS) $(openat__secontext_full_LDADD) $(LIBS)
+ 
++openat--secontext_full_mismatch$(EXEEXT): $(openat__secontext_full_mismatch_OBJECTS) $(openat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_openat__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f openat--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(openat__secontext_full_mismatch_OBJECTS) $(openat__secontext_full_mismatch_LDADD) $(LIBS)
++
++openat--secontext_mismatch$(EXEEXT): $(openat__secontext_mismatch_OBJECTS) $(openat__secontext_mismatch_DEPENDENCIES) $(EXTRA_openat__secontext_mismatch_DEPENDENCIES) 
++	@rm -f openat--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(openat__secontext_mismatch_OBJECTS) $(openat__secontext_mismatch_LDADD) $(LIBS)
++
+ openat2$(EXEEXT): $(openat2_OBJECTS) $(openat2_DEPENDENCIES) $(EXTRA_openat2_DEPENDENCIES) 
+ 	@rm -f openat2$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(openat2_OBJECTS) $(openat2_LDADD) $(LIBS)
+@@ -10835,6 +11281,8 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/accept4.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/acct.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/add_key.Po@am__quote@ # am--include-marker
+@@ -10867,6 +11315,8 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_sigign.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chown.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chown32.Po@am__quote@ # am--include-marker
+@@ -10928,17 +11378,25 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eventfd.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve-v.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat-v.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-P.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-yy.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat.Po@am__quote@ # am--include-marker
+@@ -10952,6 +11410,8 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_init.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xabbrev.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xraw.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xverbose.Po@am__quote@ # am--include-marker
+@@ -10959,17 +11419,25 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchdir.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat.Po@am__quote@ # am--include-marker
+ @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--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext_mismatch.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
+@@ -10979,6 +11447,8 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fflush.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter-unavailable.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter_seccomp-flag.Po@am__quote@ # am--include-marker
+@@ -11276,6 +11746,8 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/link.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext_mismatch.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
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/llseek.Po@am__quote@ # am--include-marker
+@@ -11438,11 +11910,15 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oldstat.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open_tree-P.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open_tree.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-Xabbrev.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-Xraw.Po@am__quote@ # am--include-marker
+@@ -13004,6 +13480,12 @@
+ $(srcdir)/access--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/access--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/access--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/acct.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13055,6 +13537,12 @@
+ $(srcdir)/chmod--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/chmod--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/chmod--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/chown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13220,6 +13708,12 @@
+ $(srcdir)/execve--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/execve--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/execve--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/execveat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13229,6 +13723,12 @@
+ $(srcdir)/execveat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/execveat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/execveat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/execveat-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13238,6 +13738,12 @@
+ $(srcdir)/faccessat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/faccessat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/faccessat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/faccessat-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13250,6 +13756,12 @@
+ $(srcdir)/faccessat-y--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/faccessat-y--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/faccessat-y--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/faccessat-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13280,6 +13792,12 @@
+ $(srcdir)/fanotify_mark--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/fanotify_mark--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/fanotify_mark--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/fanotify_mark-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13301,6 +13819,12 @@
+ $(srcdir)/fchmod--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/fchmod--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/fchmod--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/fchmod-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13310,6 +13834,12 @@
+ $(srcdir)/fchmod-y--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/fchmod-y--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/fchmod-y--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/fchmodat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13319,6 +13849,12 @@
+ $(srcdir)/fchmodat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/fchmodat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/fchmodat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/fchown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13334,6 +13870,12 @@
+ $(srcdir)/fchownat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/fchownat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/fchownat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/fcntl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13358,6 +13900,12 @@
+ $(srcdir)/file_handle--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/file_handle--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/file_handle--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/filter_seccomp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -14117,6 +14665,12 @@
+ $(srcdir)/linkat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/linkat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/linkat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/lookup_dcookie.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -14546,6 +15100,12 @@
+ $(srcdir)/open--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/open--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/open--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/open_tree.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -14561,6 +15121,12 @@
+ $(srcdir)/openat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/openat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/openat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/openat2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+--- old/tests-mx32/Makefile.in	2022-02-07 20:23:38.728063729 +0100
++++ new/tests-mx32/Makefile.in	2022-02-07 20:24:04.572063372 +0100
+@@ -614,25 +614,55 @@
+ 	xet_thread_area_x86$(EXEEXT) xetitimer$(EXEEXT) \
+ 	xetpgid$(EXEEXT) xetpriority$(EXEEXT) xettimeofday$(EXEEXT)
+ am__EXEEXT_2 = access--secontext$(EXEEXT) \
+-	access--secontext_full$(EXEEXT) chmod--secontext$(EXEEXT) \
+-	chmod--secontext_full$(EXEEXT) execve--secontext$(EXEEXT) \
+-	execve--secontext_full$(EXEEXT) execveat--secontext$(EXEEXT) \
+-	execveat--secontext_full$(EXEEXT) \
++	access--secontext_full$(EXEEXT) \
++	access--secontext_full_mismatch$(EXEEXT) \
++	access--secontext_mismatch$(EXEEXT) chmod--secontext$(EXEEXT) \
++	chmod--secontext_full$(EXEEXT) \
++	chmod--secontext_full_mismatch$(EXEEXT) \
++	chmod--secontext_mismatch$(EXEEXT) execve--secontext$(EXEEXT) \
++	execve--secontext_full$(EXEEXT) \
++	execve--secontext_full_mismatch$(EXEEXT) \
++	execve--secontext_mismatch$(EXEEXT) \
++	execveat--secontext$(EXEEXT) execveat--secontext_full$(EXEEXT) \
++	execveat--secontext_full_mismatch$(EXEEXT) \
++	execveat--secontext_mismatch$(EXEEXT) \
+ 	faccessat--secontext$(EXEEXT) \
+ 	faccessat--secontext_full$(EXEEXT) \
++	faccessat--secontext_full_mismatch$(EXEEXT) \
++	faccessat--secontext_mismatch$(EXEEXT) \
+ 	faccessat-y--secontext$(EXEEXT) \
+ 	faccessat-y--secontext_full$(EXEEXT) \
++	faccessat-y--secontext_full_mismatch$(EXEEXT) \
++	faccessat-y--secontext_mismatch$(EXEEXT) \
+ 	fanotify_mark--secontext$(EXEEXT) \
+ 	fanotify_mark--secontext_full$(EXEEXT) \
++	fanotify_mark--secontext_full_mismatch$(EXEEXT) \
++	fanotify_mark--secontext_mismatch$(EXEEXT) \
+ 	fchmod--secontext$(EXEEXT) fchmod--secontext_full$(EXEEXT) \
++	fchmod--secontext_full_mismatch$(EXEEXT) \
++	fchmod--secontext_mismatch$(EXEEXT) \
+ 	fchmod-y--secontext$(EXEEXT) fchmod-y--secontext_full$(EXEEXT) \
++	fchmod-y--secontext_full_mismatch$(EXEEXT) \
++	fchmod-y--secontext_mismatch$(EXEEXT) \
+ 	fchmodat--secontext$(EXEEXT) fchmodat--secontext_full$(EXEEXT) \
++	fchmodat--secontext_full_mismatch$(EXEEXT) \
++	fchmodat--secontext_mismatch$(EXEEXT) \
+ 	fchownat--secontext$(EXEEXT) fchownat--secontext_full$(EXEEXT) \
++	fchownat--secontext_full_mismatch$(EXEEXT) \
++	fchownat--secontext_mismatch$(EXEEXT) \
+ 	file_handle--secontext$(EXEEXT) \
+ 	file_handle--secontext_full$(EXEEXT) \
++	file_handle--secontext_full_mismatch$(EXEEXT) \
++	file_handle--secontext_mismatch$(EXEEXT) \
+ 	linkat--secontext$(EXEEXT) linkat--secontext_full$(EXEEXT) \
+-	open--secontext$(EXEEXT) open--secontext_full$(EXEEXT) \
+-	openat--secontext$(EXEEXT) openat--secontext_full$(EXEEXT)
++	linkat--secontext_full_mismatch$(EXEEXT) \
++	linkat--secontext_mismatch$(EXEEXT) open--secontext$(EXEEXT) \
++	open--secontext_full$(EXEEXT) \
++	open--secontext_full_mismatch$(EXEEXT) \
++	open--secontext_mismatch$(EXEEXT) openat--secontext$(EXEEXT) \
++	openat--secontext_full$(EXEEXT) \
++	openat--secontext_full_mismatch$(EXEEXT) \
++	openat--secontext_mismatch$(EXEEXT)
+ ARFLAGS = cru
+ AM_V_AR = $(am__v_AR_@AM_V@)
+ am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
+@@ -662,6 +692,17 @@
+ access__secontext_full_SOURCES = access--secontext_full.c
+ access__secontext_full_OBJECTS = access--secontext_full.$(OBJEXT)
+ access__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++access__secontext_full_mismatch_SOURCES =  \
++	access--secontext_full_mismatch.c
++access__secontext_full_mismatch_OBJECTS =  \
++	access--secontext_full_mismatch.$(OBJEXT)
++access__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++access__secontext_mismatch_SOURCES = access--secontext_mismatch.c
++access__secontext_mismatch_OBJECTS =  \
++	access--secontext_mismatch.$(OBJEXT)
++access__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ acct_SOURCES = acct.c
+ acct_OBJECTS = acct.$(OBJEXT)
+ acct_LDADD = $(LDADD)
+@@ -790,6 +831,17 @@
+ chmod__secontext_full_SOURCES = chmod--secontext_full.c
+ chmod__secontext_full_OBJECTS = chmod--secontext_full.$(OBJEXT)
+ chmod__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++chmod__secontext_full_mismatch_SOURCES =  \
++	chmod--secontext_full_mismatch.c
++chmod__secontext_full_mismatch_OBJECTS =  \
++	chmod--secontext_full_mismatch.$(OBJEXT)
++chmod__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++chmod__secontext_mismatch_SOURCES = chmod--secontext_mismatch.c
++chmod__secontext_mismatch_OBJECTS =  \
++	chmod--secontext_mismatch.$(OBJEXT)
++chmod__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ chown_SOURCES = chown.c
+ chown_OBJECTS = chown.$(OBJEXT)
+ chown_LDADD = $(LDADD)
+@@ -1031,6 +1083,17 @@
+ execve__secontext_full_SOURCES = execve--secontext_full.c
+ execve__secontext_full_OBJECTS = execve--secontext_full.$(OBJEXT)
+ execve__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++execve__secontext_full_mismatch_SOURCES =  \
++	execve--secontext_full_mismatch.c
++execve__secontext_full_mismatch_OBJECTS =  \
++	execve--secontext_full_mismatch.$(OBJEXT)
++execve__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++execve__secontext_mismatch_SOURCES = execve--secontext_mismatch.c
++execve__secontext_mismatch_OBJECTS =  \
++	execve--secontext_mismatch.$(OBJEXT)
++execve__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ execve_v_SOURCES = execve-v.c
+ execve_v_OBJECTS = execve-v.$(OBJEXT)
+ execve_v_LDADD = $(LDADD)
+@@ -1045,6 +1108,17 @@
+ execveat__secontext_full_SOURCES = execveat--secontext_full.c
+ execveat__secontext_full_OBJECTS = execveat--secontext_full.$(OBJEXT)
+ execveat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++execveat__secontext_full_mismatch_SOURCES =  \
++	execveat--secontext_full_mismatch.c
++execveat__secontext_full_mismatch_OBJECTS =  \
++	execveat--secontext_full_mismatch.$(OBJEXT)
++execveat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++execveat__secontext_mismatch_SOURCES = execveat--secontext_mismatch.c
++execveat__secontext_mismatch_OBJECTS =  \
++	execveat--secontext_mismatch.$(OBJEXT)
++execveat__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ execveat_v_SOURCES = execveat-v.c
+ execveat_v_OBJECTS = execveat-v.$(OBJEXT)
+ execveat_v_LDADD = $(LDADD)
+@@ -1061,6 +1135,18 @@
+ 	faccessat--secontext_full.$(OBJEXT)
+ faccessat__secontext_full_DEPENDENCIES = $(LDADD) \
+ 	$(am__DEPENDENCIES_2)
++faccessat__secontext_full_mismatch_SOURCES =  \
++	faccessat--secontext_full_mismatch.c
++faccessat__secontext_full_mismatch_OBJECTS =  \
++	faccessat--secontext_full_mismatch.$(OBJEXT)
++faccessat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++faccessat__secontext_mismatch_SOURCES =  \
++	faccessat--secontext_mismatch.c
++faccessat__secontext_mismatch_OBJECTS =  \
++	faccessat--secontext_mismatch.$(OBJEXT)
++faccessat__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ faccessat_P_SOURCES = faccessat-P.c
+ faccessat_P_OBJECTS = faccessat-P.$(OBJEXT)
+ faccessat_P_LDADD = $(LDADD)
+@@ -1077,6 +1163,18 @@
+ 	faccessat-y--secontext_full.$(OBJEXT)
+ faccessat_y__secontext_full_DEPENDENCIES = $(LDADD) \
+ 	$(am__DEPENDENCIES_2)
++faccessat_y__secontext_full_mismatch_SOURCES =  \
++	faccessat-y--secontext_full_mismatch.c
++faccessat_y__secontext_full_mismatch_OBJECTS =  \
++	faccessat-y--secontext_full_mismatch.$(OBJEXT)
++faccessat_y__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++faccessat_y__secontext_mismatch_SOURCES =  \
++	faccessat-y--secontext_mismatch.c
++faccessat_y__secontext_mismatch_OBJECTS =  \
++	faccessat-y--secontext_mismatch.$(OBJEXT)
++faccessat_y__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ faccessat_yy_SOURCES = faccessat-yy.c
+ faccessat_yy_OBJECTS = faccessat-yy.$(OBJEXT)
+ faccessat_yy_LDADD = $(LDADD)
+@@ -1126,6 +1224,18 @@
+ 	fanotify_mark--secontext_full.$(OBJEXT)
+ fanotify_mark__secontext_full_DEPENDENCIES = $(LDADD) \
+ 	$(am__DEPENDENCIES_2)
++fanotify_mark__secontext_full_mismatch_SOURCES =  \
++	fanotify_mark--secontext_full_mismatch.c
++fanotify_mark__secontext_full_mismatch_OBJECTS =  \
++	fanotify_mark--secontext_full_mismatch.$(OBJEXT)
++fanotify_mark__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++fanotify_mark__secontext_mismatch_SOURCES =  \
++	fanotify_mark--secontext_mismatch.c
++fanotify_mark__secontext_mismatch_OBJECTS =  \
++	fanotify_mark--secontext_mismatch.$(OBJEXT)
++fanotify_mark__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ fanotify_mark_Xabbrev_SOURCES = fanotify_mark-Xabbrev.c
+ fanotify_mark_Xabbrev_OBJECTS = fanotify_mark-Xabbrev.$(OBJEXT)
+ fanotify_mark_Xabbrev_LDADD = $(LDADD)
+@@ -1152,6 +1262,17 @@
+ fchmod__secontext_full_SOURCES = fchmod--secontext_full.c
+ fchmod__secontext_full_OBJECTS = fchmod--secontext_full.$(OBJEXT)
+ fchmod__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++fchmod__secontext_full_mismatch_SOURCES =  \
++	fchmod--secontext_full_mismatch.c
++fchmod__secontext_full_mismatch_OBJECTS =  \
++	fchmod--secontext_full_mismatch.$(OBJEXT)
++fchmod__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++fchmod__secontext_mismatch_SOURCES = fchmod--secontext_mismatch.c
++fchmod__secontext_mismatch_OBJECTS =  \
++	fchmod--secontext_mismatch.$(OBJEXT)
++fchmod__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ fchmod_y_SOURCES = fchmod-y.c
+ fchmod_y_OBJECTS = fchmod-y.$(OBJEXT)
+ fchmod_y_LDADD = $(LDADD)
+@@ -1162,6 +1283,17 @@
+ fchmod_y__secontext_full_SOURCES = fchmod-y--secontext_full.c
+ fchmod_y__secontext_full_OBJECTS = fchmod-y--secontext_full.$(OBJEXT)
+ fchmod_y__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++fchmod_y__secontext_full_mismatch_SOURCES =  \
++	fchmod-y--secontext_full_mismatch.c
++fchmod_y__secontext_full_mismatch_OBJECTS =  \
++	fchmod-y--secontext_full_mismatch.$(OBJEXT)
++fchmod_y__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++fchmod_y__secontext_mismatch_SOURCES = fchmod-y--secontext_mismatch.c
++fchmod_y__secontext_mismatch_OBJECTS =  \
++	fchmod-y--secontext_mismatch.$(OBJEXT)
++fchmod_y__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ fchmodat_SOURCES = fchmodat.c
+ fchmodat_OBJECTS = fchmodat.$(OBJEXT)
+ fchmodat_LDADD = $(LDADD)
+@@ -1172,6 +1304,17 @@
+ fchmodat__secontext_full_SOURCES = fchmodat--secontext_full.c
+ fchmodat__secontext_full_OBJECTS = fchmodat--secontext_full.$(OBJEXT)
+ fchmodat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++fchmodat__secontext_full_mismatch_SOURCES =  \
++	fchmodat--secontext_full_mismatch.c
++fchmodat__secontext_full_mismatch_OBJECTS =  \
++	fchmodat--secontext_full_mismatch.$(OBJEXT)
++fchmodat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++fchmodat__secontext_mismatch_SOURCES = fchmodat--secontext_mismatch.c
++fchmodat__secontext_mismatch_OBJECTS =  \
++	fchmodat--secontext_mismatch.$(OBJEXT)
++fchmodat__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ fchown_SOURCES = fchown.c
+ fchown_OBJECTS = fchown.$(OBJEXT)
+ fchown_LDADD = $(LDADD)
+@@ -1190,6 +1333,17 @@
+ fchownat__secontext_full_SOURCES = fchownat--secontext_full.c
+ fchownat__secontext_full_OBJECTS = fchownat--secontext_full.$(OBJEXT)
+ fchownat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++fchownat__secontext_full_mismatch_SOURCES =  \
++	fchownat--secontext_full_mismatch.c
++fchownat__secontext_full_mismatch_OBJECTS =  \
++	fchownat--secontext_full_mismatch.$(OBJEXT)
++fchownat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++fchownat__secontext_mismatch_SOURCES = fchownat--secontext_mismatch.c
++fchownat__secontext_mismatch_OBJECTS =  \
++	fchownat--secontext_mismatch.$(OBJEXT)
++fchownat__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ fcntl_SOURCES = fcntl.c
+ fcntl_OBJECTS = fcntl.$(OBJEXT)
+ fcntl_LDADD = $(LDADD)
+@@ -1227,6 +1381,18 @@
+ 	file_handle--secontext_full.$(OBJEXT)
+ file_handle__secontext_full_DEPENDENCIES = $(LDADD) \
+ 	$(am__DEPENDENCIES_2)
++file_handle__secontext_full_mismatch_SOURCES =  \
++	file_handle--secontext_full_mismatch.c
++file_handle__secontext_full_mismatch_OBJECTS =  \
++	file_handle--secontext_full_mismatch.$(OBJEXT)
++file_handle__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++file_handle__secontext_mismatch_SOURCES =  \
++	file_handle--secontext_mismatch.c
++file_handle__secontext_mismatch_OBJECTS =  \
++	file_handle--secontext_mismatch.$(OBJEXT)
++file_handle__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ filter_unavailable_SOURCES = filter-unavailable.c
+ filter_unavailable_OBJECTS = filter-unavailable.$(OBJEXT)
+ filter_unavailable_DEPENDENCIES = $(LDADD)
+@@ -2318,6 +2484,17 @@
+ linkat__secontext_full_SOURCES = linkat--secontext_full.c
+ linkat__secontext_full_OBJECTS = linkat--secontext_full.$(OBJEXT)
+ linkat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++linkat__secontext_full_mismatch_SOURCES =  \
++	linkat--secontext_full_mismatch.c
++linkat__secontext_full_mismatch_OBJECTS =  \
++	linkat--secontext_full_mismatch.$(OBJEXT)
++linkat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++linkat__secontext_mismatch_SOURCES = linkat--secontext_mismatch.c
++linkat__secontext_mismatch_OBJECTS =  \
++	linkat--secontext_mismatch.$(OBJEXT)
++linkat__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ list_sigaction_signum_SOURCES = list_sigaction_signum.c
+ list_sigaction_signum_OBJECTS = list_sigaction_signum.$(OBJEXT)
+ list_sigaction_signum_LDADD = $(LDADD)
+@@ -2976,6 +3153,15 @@
+ open__secontext_full_SOURCES = open--secontext_full.c
+ open__secontext_full_OBJECTS = open--secontext_full.$(OBJEXT)
+ open__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++open__secontext_full_mismatch_SOURCES =  \
++	open--secontext_full_mismatch.c
++open__secontext_full_mismatch_OBJECTS =  \
++	open--secontext_full_mismatch.$(OBJEXT)
++open__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++open__secontext_mismatch_SOURCES = open--secontext_mismatch.c
++open__secontext_mismatch_OBJECTS = open--secontext_mismatch.$(OBJEXT)
++open__secontext_mismatch_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
+ open_tree_SOURCES = open_tree.c
+ open_tree_OBJECTS = open_tree.$(OBJEXT)
+ open_tree_LDADD = $(LDADD)
+@@ -2994,6 +3180,17 @@
+ openat__secontext_full_SOURCES = openat--secontext_full.c
+ openat__secontext_full_OBJECTS = openat--secontext_full.$(OBJEXT)
+ openat__secontext_full_DEPENDENCIES = $(LDADD) $(am__DEPENDENCIES_2)
++openat__secontext_full_mismatch_SOURCES =  \
++	openat--secontext_full_mismatch.c
++openat__secontext_full_mismatch_OBJECTS =  \
++	openat--secontext_full_mismatch.$(OBJEXT)
++openat__secontext_full_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
++openat__secontext_mismatch_SOURCES = openat--secontext_mismatch.c
++openat__secontext_mismatch_OBJECTS =  \
++	openat--secontext_mismatch.$(OBJEXT)
++openat__secontext_mismatch_DEPENDENCIES = $(LDADD) \
++	$(am__DEPENDENCIES_2)
+ openat2_SOURCES = openat2.c
+ openat2_OBJECTS = openat2.$(OBJEXT)
+ openat2_LDADD = $(LDADD)
+@@ -4449,6 +4646,8 @@
+ 	./$(DEPDIR)/_newselect.Po ./$(DEPDIR)/accept.Po \
+ 	./$(DEPDIR)/accept4.Po ./$(DEPDIR)/access--secontext.Po \
+ 	./$(DEPDIR)/access--secontext_full.Po ./$(DEPDIR)/access.Po \
++	./$(DEPDIR)/access--secontext_full_mismatch.Po \
++	./$(DEPDIR)/access--secontext_mismatch.Po \
+ 	./$(DEPDIR)/acct.Po ./$(DEPDIR)/add_key.Po \
+ 	./$(DEPDIR)/adjtimex.Po ./$(DEPDIR)/aio.Po \
+ 	./$(DEPDIR)/aio_pgetevents.Po ./$(DEPDIR)/alarm.Po \
+@@ -4468,6 +4667,8 @@
+ 	./$(DEPDIR)/chdir.Po ./$(DEPDIR)/check_sigblock.Po \
+ 	./$(DEPDIR)/check_sigign.Po ./$(DEPDIR)/chmod--secontext.Po \
+ 	./$(DEPDIR)/chmod--secontext_full.Po ./$(DEPDIR)/chmod.Po \
++	./$(DEPDIR)/chmod--secontext_full_mismatch.Po \
++	./$(DEPDIR)/chmod--secontext_mismatch.Po \
+ 	./$(DEPDIR)/chown.Po ./$(DEPDIR)/chown32.Po \
+ 	./$(DEPDIR)/chroot.Po ./$(DEPDIR)/clock_adjtime.Po \
+ 	./$(DEPDIR)/clock_adjtime64.Po ./$(DEPDIR)/clock_nanosleep.Po \
+@@ -4503,14 +4704,22 @@
+ 	./$(DEPDIR)/epoll_wait.Po ./$(DEPDIR)/erestartsys.Po \
+ 	./$(DEPDIR)/eventfd.Po ./$(DEPDIR)/execve--secontext.Po \
+ 	./$(DEPDIR)/execve--secontext_full.Po ./$(DEPDIR)/execve-v.Po \
++	./$(DEPDIR)/execve--secontext_full_mismatch.Po \
++	./$(DEPDIR)/execve--secontext_mismatch.Po \
+ 	./$(DEPDIR)/execve.Po ./$(DEPDIR)/execveat--secontext.Po \
+ 	./$(DEPDIR)/execveat--secontext_full.Po \
++	./$(DEPDIR)/execveat--secontext_full_mismatch.Po \
++	./$(DEPDIR)/execveat--secontext_mismatch.Po \
+ 	./$(DEPDIR)/execveat-v.Po ./$(DEPDIR)/execveat.Po \
+ 	./$(DEPDIR)/faccessat--secontext.Po \
+ 	./$(DEPDIR)/faccessat--secontext_full.Po \
++	./$(DEPDIR)/faccessat--secontext_full_mismatch.Po \
++	./$(DEPDIR)/faccessat--secontext_mismatch.Po \
+ 	./$(DEPDIR)/faccessat-P.Po \
+ 	./$(DEPDIR)/faccessat-y--secontext.Po \
+ 	./$(DEPDIR)/faccessat-y--secontext_full.Po \
++	./$(DEPDIR)/faccessat-y--secontext_full_mismatch.Po \
++	./$(DEPDIR)/faccessat-y--secontext_mismatch.Po \
+ 	./$(DEPDIR)/faccessat-y.Po ./$(DEPDIR)/faccessat-yy.Po \
+ 	./$(DEPDIR)/faccessat.Po ./$(DEPDIR)/faccessat2-P.Po \
+ 	./$(DEPDIR)/faccessat2-y.Po ./$(DEPDIR)/faccessat2-yy.Po \
+@@ -4519,26 +4728,38 @@
+ 	./$(DEPDIR)/fanotify_init.Po \
+ 	./$(DEPDIR)/fanotify_mark--secontext.Po \
+ 	./$(DEPDIR)/fanotify_mark--secontext_full.Po \
++	./$(DEPDIR)/fanotify_mark--secontext_full_mismatch.Po \
++	./$(DEPDIR)/fanotify_mark--secontext_mismatch.Po \
+ 	./$(DEPDIR)/fanotify_mark-Xabbrev.Po \
+ 	./$(DEPDIR)/fanotify_mark-Xraw.Po \
+ 	./$(DEPDIR)/fanotify_mark-Xverbose.Po \
+ 	./$(DEPDIR)/fanotify_mark.Po ./$(DEPDIR)/fchdir.Po \
+ 	./$(DEPDIR)/fchmod--secontext.Po \
+ 	./$(DEPDIR)/fchmod--secontext_full.Po \
++	./$(DEPDIR)/fchmod--secontext_full_mismatch.Po \
++	./$(DEPDIR)/fchmod--secontext_mismatch.Po \
+ 	./$(DEPDIR)/fchmod-y--secontext.Po \
+ 	./$(DEPDIR)/fchmod-y--secontext_full.Po \
++	./$(DEPDIR)/fchmod-y--secontext_full_mismatch.Po \
++	./$(DEPDIR)/fchmod-y--secontext_mismatch.Po \
+ 	./$(DEPDIR)/fchmod-y.Po ./$(DEPDIR)/fchmod.Po \
+ 	./$(DEPDIR)/fchmodat--secontext.Po \
+ 	./$(DEPDIR)/fchmodat--secontext_full.Po \
++	./$(DEPDIR)/fchmodat--secontext_full_mismatch.Po \
++	./$(DEPDIR)/fchmodat--secontext_mismatch.Po \
+ 	./$(DEPDIR)/fchmodat.Po ./$(DEPDIR)/fchown.Po \
+ 	./$(DEPDIR)/fchown32.Po ./$(DEPDIR)/fchownat--secontext.Po \
+ 	./$(DEPDIR)/fchownat--secontext_full.Po \
++	./$(DEPDIR)/fchownat--secontext_full_mismatch.Po \
++	./$(DEPDIR)/fchownat--secontext_mismatch.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--secontext.Po \
+ 	./$(DEPDIR)/file_handle--secontext_full.Po \
++	./$(DEPDIR)/file_handle--secontext_full_mismatch.Po \
++	./$(DEPDIR)/file_handle--secontext_mismatch.Po \
+ 	./$(DEPDIR)/file_handle.Po ./$(DEPDIR)/filter-unavailable.Po \
+ 	./$(DEPDIR)/filter_seccomp-flag.Po \
+ 	./$(DEPDIR)/filter_seccomp-perf.Po ./$(DEPDIR)/finit_module.Po \
+@@ -4753,6 +4972,8 @@
+ 	./$(DEPDIR)/libtests_a-xmalloc_for_tests.Po \
+ 	./$(DEPDIR)/link.Po ./$(DEPDIR)/linkat--secontext.Po \
+ 	./$(DEPDIR)/linkat--secontext_full.Po ./$(DEPDIR)/linkat.Po \
++	./$(DEPDIR)/linkat--secontext_full_mismatch.Po \
++	./$(DEPDIR)/linkat--secontext_mismatch.Po \
+ 	./$(DEPDIR)/list_sigaction_signum.Po ./$(DEPDIR)/llseek.Po \
+ 	./$(DEPDIR)/localtime.Po ./$(DEPDIR)/lookup_dcookie.Po \
+ 	./$(DEPDIR)/looping_threads.Po ./$(DEPDIR)/lseek.Po \
+@@ -4867,9 +5088,13 @@
+ 	./$(DEPDIR)/oldselect-efault.Po ./$(DEPDIR)/oldselect.Po \
+ 	./$(DEPDIR)/oldstat.Po ./$(DEPDIR)/open--secontext.Po \
+ 	./$(DEPDIR)/open--secontext_full.Po ./$(DEPDIR)/open.Po \
++	./$(DEPDIR)/open--secontext_full_mismatch.Po \
++	./$(DEPDIR)/open--secontext_mismatch.Po \
+ 	./$(DEPDIR)/open_tree-P.Po ./$(DEPDIR)/open_tree.Po \
+ 	./$(DEPDIR)/openat--secontext.Po \
+ 	./$(DEPDIR)/openat--secontext_full.Po ./$(DEPDIR)/openat.Po \
++	./$(DEPDIR)/openat--secontext_full_mismatch.Po \
++	./$(DEPDIR)/openat--secontext_mismatch.Po \
+ 	./$(DEPDIR)/openat2-Xabbrev.Po ./$(DEPDIR)/openat2-Xraw.Po \
+ 	./$(DEPDIR)/openat2-Xverbose.Po \
+ 	./$(DEPDIR)/openat2-v-y-Xabbrev.Po \
+@@ -5119,7 +5316,8 @@
+ am__v_CCLD_1 = 
+ SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c accept.c \
+ 	accept4.c access.c access--secontext.c \
+-	access--secontext_full.c acct.c add_key.c adjtimex.c aio.c \
++	access--secontext_full.c access--secontext_full_mismatch.c \
++	access--secontext_mismatch.c acct.c add_key.c adjtimex.c aio.c \
+ 	aio_pgetevents.c alarm.c answer.c attach-f-p.c \
+ 	attach-f-p-cmd.c attach-p-cmd-cmd.c attach-p-cmd-p.c \
+ 	block_reset_raise_run.c block_reset_run.c bpf.c \
+@@ -4468,7 +4666,8 @@
+ 	bpf-success.c bpf-success-long-y.c bpf-success-v.c bpf-v.c \
+ 	brk.c btrfs.c caps.c caps-abbrev.c chdir.c check_sigblock.c \
+ 	check_sigign.c chmod.c chmod--secontext.c \
+-	chmod--secontext_full.c chown.c chown32.c chroot.c \
++	chmod--secontext_full.c chmod--secontext_full_mismatch.c \
++	chmod--secontext_mismatch.c chown.c chown32.c chroot.c \
+ 	clock_adjtime.c clock_adjtime64.c clock_nanosleep.c \
+ 	clock_xettime.c clock_xettime64.c clone-flags.c clone3.c \
+ 	clone3-Xabbrev.c clone3-Xraw.c clone3-Xverbose.c \
+@@ -4484,24 +4683,40 @@
+ 	dup3-y.c dup3-yy.c epoll_create.c epoll_create1.c epoll_ctl.c \
+ 	epoll_pwait.c epoll_pwait2.c epoll_pwait2-P.c epoll_pwait2-y.c \
+ 	epoll_wait.c erestartsys.c eventfd.c execve.c \
+-	execve--secontext.c execve--secontext_full.c execve-v.c \
+-	execveat.c execveat--secontext.c execveat--secontext_full.c \
+-	execveat-v.c faccessat.c faccessat--secontext.c \
+-	faccessat--secontext_full.c faccessat-P.c faccessat-y.c \
++	execve--secontext.c execve--secontext_full.c \
++	execve--secontext_full_mismatch.c execve--secontext_mismatch.c \
++	execve-v.c execveat.c execveat--secontext.c \
++	execveat--secontext_full.c execveat--secontext_full_mismatch.c \
++	execveat--secontext_mismatch.c execveat-v.c faccessat.c \
++	faccessat--secontext.c faccessat--secontext_full.c \
++	faccessat--secontext_full_mismatch.c \
++	faccessat--secontext_mismatch.c faccessat-P.c faccessat-y.c \
+ 	faccessat-y--secontext.c faccessat-y--secontext_full.c \
+-	faccessat-yy.c faccessat2.c faccessat2-P.c faccessat2-y.c \
+-	faccessat2-yy.c fadvise64.c fadvise64_64.c fallocate.c \
+-	fanotify_init.c fanotify_mark.c fanotify_mark--secontext.c \
+-	fanotify_mark--secontext_full.c fanotify_mark-Xabbrev.c \
++	faccessat-y--secontext_full_mismatch.c \
++	faccessat-y--secontext_mismatch.c faccessat-yy.c faccessat2.c \
++	faccessat2-P.c faccessat2-y.c faccessat2-yy.c fadvise64.c \
++	fadvise64_64.c fallocate.c fanotify_init.c fanotify_mark.c \
++	fanotify_mark--secontext.c fanotify_mark--secontext_full.c \
++	fanotify_mark--secontext_full_mismatch.c \
++	fanotify_mark--secontext_mismatch.c fanotify_mark-Xabbrev.c \
+ 	fanotify_mark-Xraw.c fanotify_mark-Xverbose.c fchdir.c \
+ 	fchmod.c fchmod--secontext.c fchmod--secontext_full.c \
++	fchmod--secontext_full_mismatch.c fchmod--secontext_mismatch.c \
+ 	fchmod-y.c fchmod-y--secontext.c fchmod-y--secontext_full.c \
+-	fchmodat.c fchmodat--secontext.c fchmodat--secontext_full.c \
+-	fchown.c fchown32.c fchownat.c fchownat--secontext.c \
+-	fchownat--secontext_full.c fcntl.c fcntl--pidns-translation.c \
+-	fcntl64.c fcntl64--pidns-translation.c fdatasync.c fflush.c \
++	fchmod-y--secontext_full_mismatch.c \
++	fchmod-y--secontext_mismatch.c fchmodat.c \
++	fchmodat--secontext.c fchmodat--secontext_full.c \
++	fchmodat--secontext_full_mismatch.c \
++	fchmodat--secontext_mismatch.c fchown.c fchown32.c fchownat.c \
++	fchownat--secontext.c fchownat--secontext_full.c \
++	fchownat--secontext_full_mismatch.c \
++	fchownat--secontext_mismatch.c fcntl.c \
++	fcntl--pidns-translation.c fcntl64.c \
++	fcntl64--pidns-translation.c fdatasync.c fflush.c \
+ 	file_handle.c file_handle--secontext.c \
+-	file_handle--secontext_full.c filter-unavailable.c \
++	file_handle--secontext_full.c \
++	file_handle--secontext_full_mismatch.c \
++	file_handle--secontext_mismatch.c filter-unavailable.c \
+ 	filter_seccomp-flag.c filter_seccomp-perf.c finit_module.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 \
+@@ -4588,6 +4803,7 @@
+ 	landlock_create_ruleset-y.c landlock_restrict_self.c \
+ 	landlock_restrict_self-y.c lchown.c lchown32.c link.c linkat.c \
+ 	linkat--secontext.c linkat--secontext_full.c \
++	linkat--secontext_full_mismatch.c linkat--secontext_mismatch.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 \
+@@ -4641,8 +4857,10 @@
+ 	old_mmap-v-none.c oldfstat.c oldlstat.c oldselect.c \
+ 	oldselect-P.c oldselect-efault.c oldselect-efault-P.c \
+ 	oldstat.c open.c open--secontext.c open--secontext_full.c \
++	open--secontext_full_mismatch.c open--secontext_mismatch.c \
+ 	open_tree.c open_tree-P.c openat.c openat--secontext.c \
+-	openat--secontext_full.c openat2.c openat2-Xabbrev.c \
++	openat--secontext_full.c openat--secontext_full_mismatch.c \
++	openat--secontext_mismatch.c openat2.c openat2-Xabbrev.c \
+ 	openat2-Xraw.c openat2-Xverbose.c openat2-v.c openat2-v-y.c \
+ 	openat2-v-y-Xabbrev.c openat2-v-y-Xraw.c \
+ 	openat2-v-y-Xverbose.c openat2-y.c orphaned_process_group.c \
+@@ -4753,7 +4971,8 @@
+ 	xetpriority--pidns-translation.c xettimeofday.c zeroargc.c
+ DIST_SOURCES = $(libtests_a_SOURCES) _newselect.c _newselect-P.c \
+ 	accept.c accept4.c access.c access--secontext.c \
+-	access--secontext_full.c acct.c add_key.c adjtimex.c aio.c \
++	access--secontext_full.c access--secontext_full_mismatch.c \
++	access--secontext_mismatch.c acct.c add_key.c adjtimex.c aio.c \
+ 	aio_pgetevents.c alarm.c answer.c attach-f-p.c \
+ 	attach-f-p-cmd.c attach-p-cmd-cmd.c attach-p-cmd-p.c \
+ 	block_reset_raise_run.c block_reset_run.c bpf.c \
+@@ -4762,7 +4981,8 @@
+ 	bpf-success.c bpf-success-long-y.c bpf-success-v.c bpf-v.c \
+ 	brk.c btrfs.c caps.c caps-abbrev.c chdir.c check_sigblock.c \
+ 	check_sigign.c chmod.c chmod--secontext.c \
+-	chmod--secontext_full.c chown.c chown32.c chroot.c \
++	chmod--secontext_full.c chmod--secontext_full_mismatch.c \
++	chmod--secontext_mismatch.c chown.c chown32.c chroot.c \
+ 	clock_adjtime.c clock_adjtime64.c clock_nanosleep.c \
+ 	clock_xettime.c clock_xettime64.c clone-flags.c clone3.c \
+ 	clone3-Xabbrev.c clone3-Xraw.c clone3-Xverbose.c \
+@@ -4778,24 +4998,40 @@
+ 	dup3-y.c dup3-yy.c epoll_create.c epoll_create1.c epoll_ctl.c \
+ 	epoll_pwait.c epoll_pwait2.c epoll_pwait2-P.c epoll_pwait2-y.c \
+ 	epoll_wait.c erestartsys.c eventfd.c execve.c \
+-	execve--secontext.c execve--secontext_full.c execve-v.c \
+-	execveat.c execveat--secontext.c execveat--secontext_full.c \
+-	execveat-v.c faccessat.c faccessat--secontext.c \
+-	faccessat--secontext_full.c faccessat-P.c faccessat-y.c \
++	execve--secontext.c execve--secontext_full.c \
++	execve--secontext_full_mismatch.c execve--secontext_mismatch.c \
++	execve-v.c execveat.c execveat--secontext.c \
++	execveat--secontext_full.c execveat--secontext_full_mismatch.c \
++	execveat--secontext_mismatch.c execveat-v.c faccessat.c \
++	faccessat--secontext.c faccessat--secontext_full.c \
++	faccessat--secontext_full_mismatch.c \
++	faccessat--secontext_mismatch.c faccessat-P.c faccessat-y.c \
+ 	faccessat-y--secontext.c faccessat-y--secontext_full.c \
+-	faccessat-yy.c faccessat2.c faccessat2-P.c faccessat2-y.c \
+-	faccessat2-yy.c fadvise64.c fadvise64_64.c fallocate.c \
+-	fanotify_init.c fanotify_mark.c fanotify_mark--secontext.c \
+-	fanotify_mark--secontext_full.c fanotify_mark-Xabbrev.c \
++	faccessat-y--secontext_full_mismatch.c \
++	faccessat-y--secontext_mismatch.c faccessat-yy.c faccessat2.c \
++	faccessat2-P.c faccessat2-y.c faccessat2-yy.c fadvise64.c \
++	fadvise64_64.c fallocate.c fanotify_init.c fanotify_mark.c \
++	fanotify_mark--secontext.c fanotify_mark--secontext_full.c \
++	fanotify_mark--secontext_full_mismatch.c \
++	fanotify_mark--secontext_mismatch.c fanotify_mark-Xabbrev.c \
+ 	fanotify_mark-Xraw.c fanotify_mark-Xverbose.c fchdir.c \
+ 	fchmod.c fchmod--secontext.c fchmod--secontext_full.c \
++	fchmod--secontext_full_mismatch.c fchmod--secontext_mismatch.c \
+ 	fchmod-y.c fchmod-y--secontext.c fchmod-y--secontext_full.c \
+-	fchmodat.c fchmodat--secontext.c fchmodat--secontext_full.c \
+-	fchown.c fchown32.c fchownat.c fchownat--secontext.c \
+-	fchownat--secontext_full.c fcntl.c fcntl--pidns-translation.c \
+-	fcntl64.c fcntl64--pidns-translation.c fdatasync.c fflush.c \
++	fchmod-y--secontext_full_mismatch.c \
++	fchmod-y--secontext_mismatch.c fchmodat.c \
++	fchmodat--secontext.c fchmodat--secontext_full.c \
++	fchmodat--secontext_full_mismatch.c \
++	fchmodat--secontext_mismatch.c fchown.c fchown32.c fchownat.c \
++	fchownat--secontext.c fchownat--secontext_full.c \
++	fchownat--secontext_full_mismatch.c \
++	fchownat--secontext_mismatch.c fcntl.c \
++	fcntl--pidns-translation.c fcntl64.c \
++	fcntl64--pidns-translation.c fdatasync.c fflush.c \
+ 	file_handle.c file_handle--secontext.c \
+-	file_handle--secontext_full.c filter-unavailable.c \
++	file_handle--secontext_full.c \
++	file_handle--secontext_full_mismatch.c \
++	file_handle--secontext_mismatch.c filter-unavailable.c \
+ 	filter_seccomp-flag.c filter_seccomp-perf.c finit_module.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 \
+@@ -4882,6 +5118,7 @@
+ 	landlock_create_ruleset-y.c landlock_restrict_self.c \
+ 	landlock_restrict_self-y.c lchown.c lchown32.c link.c linkat.c \
+ 	linkat--secontext.c linkat--secontext_full.c \
++	linkat--secontext_full_mismatch.c linkat--secontext_mismatch.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 \
+@@ -4935,8 +5172,10 @@
+ 	old_mmap-v-none.c oldfstat.c oldlstat.c oldselect.c \
+ 	oldselect-P.c oldselect-efault.c oldselect-efault-P.c \
+ 	oldstat.c open.c open--secontext.c open--secontext_full.c \
++	open--secontext_full_mismatch.c open--secontext_mismatch.c \
+ 	open_tree.c open_tree-P.c openat.c openat--secontext.c \
+-	openat--secontext_full.c openat2.c openat2-Xabbrev.c \
++	openat--secontext_full.c openat--secontext_full_mismatch.c \
++	openat--secontext_mismatch.c openat2.c openat2-Xabbrev.c \
+ 	openat2-Xraw.c openat2-Xverbose.c openat2-v.c openat2-v-y.c \
+ 	openat2-v-y-Xabbrev.c openat2-v-y-Xraw.c \
+ 	openat2-v-y-Xverbose.c openat2-y.c orphaned_process_group.c \
+@@ -6212,66 +6451,126 @@
+ secontext_EXECUTABLES = \
+   access--secontext \
+   access--secontext_full \
++  access--secontext_full_mismatch \
++  access--secontext_mismatch \
+   chmod--secontext \
+   chmod--secontext_full \
++  chmod--secontext_full_mismatch \
++  chmod--secontext_mismatch \
+   execve--secontext \
+   execve--secontext_full \
++  execve--secontext_full_mismatch \
++  execve--secontext_mismatch \
+   execveat--secontext \
+   execveat--secontext_full \
++  execveat--secontext_full_mismatch \
++  execveat--secontext_mismatch \
+   faccessat--secontext \
+   faccessat--secontext_full \
++  faccessat--secontext_full_mismatch \
++  faccessat--secontext_mismatch \
+   faccessat-y--secontext \
+   faccessat-y--secontext_full \
++  faccessat-y--secontext_full_mismatch \
++  faccessat-y--secontext_mismatch \
+   fanotify_mark--secontext \
+   fanotify_mark--secontext_full \
++  fanotify_mark--secontext_full_mismatch \
++  fanotify_mark--secontext_mismatch \
+   fchmod--secontext \
+   fchmod--secontext_full \
++  fchmod--secontext_full_mismatch \
++  fchmod--secontext_mismatch \
+   fchmod-y--secontext \
+   fchmod-y--secontext_full \
++  fchmod-y--secontext_full_mismatch \
++  fchmod-y--secontext_mismatch \
+   fchmodat--secontext \
+   fchmodat--secontext_full \
++  fchmodat--secontext_full_mismatch \
++  fchmodat--secontext_mismatch \
+   fchownat--secontext \
+   fchownat--secontext_full \
++  fchownat--secontext_full_mismatch \
++  fchownat--secontext_mismatch \
+   file_handle--secontext \
+   file_handle--secontext_full \
++  file_handle--secontext_full_mismatch \
++  file_handle--secontext_mismatch \
+   linkat--secontext \
+   linkat--secontext_full \
++  linkat--secontext_full_mismatch \
++  linkat--secontext_mismatch \
+   open--secontext \
+   open--secontext_full \
++  open--secontext_full_mismatch \
++  open--secontext_mismatch \
+   openat--secontext \
+   openat--secontext_full \
++  openat--secontext_full_mismatch \
++  openat--secontext_mismatch \
+   #
+ 
+ access__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ access__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++access__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++access__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ chmod__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ chmod__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++chmod__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++chmod__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ execve__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ execve__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++execve__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++execve__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ execveat__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ execveat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++execveat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++execveat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ faccessat__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ faccessat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++faccessat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++faccessat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ faccessat_y__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ faccessat_y__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++faccessat_y__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++faccessat_y__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ fanotify_mark__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ fanotify_mark__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++fanotify_mark__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++fanotify_mark__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ fchmod__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ fchmod__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++fchmod__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++fchmod__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ fchmod_y__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ fchmod_y__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++fchmod_y__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++fchmod_y__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ fchmodat__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ fchmodat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++fchmodat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++fchmodat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ fchownat__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ fchownat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++fchownat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++fchownat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ file_handle__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ file_handle__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++file_handle__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++file_handle__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ linkat__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ linkat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++linkat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++linkat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ open__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ open__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++open__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++open__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ openat__secontext_LDADD = $(LDADD) $(libselinux_LDADD)
+ openat__secontext_full_LDADD = $(LDADD) $(libselinux_LDADD)
++openat__secontext_full_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
++openat__secontext_mismatch_LDADD = $(LDADD) $(libselinux_LDADD)
+ attach_f_p_LDADD = -lpthread $(LDADD)
+ count_f_LDADD = -lpthread $(LDADD)
+ delay_LDADD = $(clock_LIBS) $(LDADD)
+@@ -6325,15 +6624,20 @@
+ # 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 \
+ 	accept4.gen.test access.gen.test access--secontext.gen.test \
+-	access--secontext_full.gen.test acct.gen.test add_key.gen.test \
+-	adjtimex.gen.test aio.gen.test aio_pgetevents.gen.test \
+-	alarm.gen.test bpf.gen.test bpf-obj_get_info_by_fd.gen.test \
++	access--secontext_full.gen.test \
++	access--secontext_full_mismatch.gen.test \
++	access--secontext_mismatch.gen.test acct.gen.test \
++	add_key.gen.test adjtimex.gen.test aio.gen.test \
++	aio_pgetevents.gen.test alarm.gen.test bpf.gen.test \
++	bpf-obj_get_info_by_fd.gen.test \
+ 	bpf-obj_get_info_by_fd-prog.gen.test \
+ 	bpf-obj_get_info_by_fd-prog-v.gen.test \
+ 	bpf-obj_get_info_by_fd-v.gen.test bpf-v.gen.test \
+ 	btrfs.gen.test chdir.gen.test chmod.gen.test \
+ 	chmod--secontext.gen.test chmod--secontext_full.gen.test \
+-	chown.gen.test chown32.gen.test chroot.gen.test clock.gen.test \
++	chmod--secontext_full_mismatch.gen.test \
++	chmod--secontext_mismatch.gen.test chown.gen.test \
++	chown32.gen.test chroot.gen.test clock.gen.test \
+ 	clock_adjtime.gen.test clock_adjtime64.gen.test \
+ 	clock_nanosleep.gen.test clock_xettime.gen.test \
+ 	clock_xettime64.gen.test clone3.gen.test \
+@@ -6356,36 +6660,53 @@
+ 	epoll_pwait2-P.gen.test epoll_pwait2-y.gen.test \
+ 	epoll_wait.gen.test erestartsys.gen.test \
+ 	execve--secontext.gen.test execve--secontext_full.gen.test \
+-	execveat.gen.test execveat--secontext.gen.test \
+-	execveat--secontext_full.gen.test execveat-v.gen.test \
++	execve--secontext_full_mismatch.gen.test \
++	execve--secontext_mismatch.gen.test execveat.gen.test \
++	execveat--secontext.gen.test execveat--secontext_full.gen.test \
++	execveat--secontext_full_mismatch.gen.test \
++	execveat--secontext_mismatch.gen.test execveat-v.gen.test \
+ 	faccessat--secontext.gen.test \
+-	faccessat--secontext_full.gen.test faccessat-P.gen.test \
++	faccessat--secontext_full.gen.test \
++	faccessat--secontext_full_mismatch.gen.test \
++	faccessat--secontext_mismatch.gen.test faccessat-P.gen.test \
+ 	faccessat-y.gen.test faccessat-y--secontext.gen.test \
+-	faccessat-y--secontext_full.gen.test faccessat-yy.gen.test \
++	faccessat-y--secontext_full.gen.test \
++	faccessat-y--secontext_full_mismatch.gen.test \
++	faccessat-y--secontext_mismatch.gen.test faccessat-yy.gen.test \
+ 	faccessat2-P.gen.test faccessat2-y.gen.test \
+ 	faccessat2-yy.gen.test fadvise64_64.gen.test \
+ 	fallocate.gen.test fanotify_init.gen.test \
+ 	fanotify_mark.gen.test fanotify_mark--secontext.gen.test \
+ 	fanotify_mark--secontext_full.gen.test \
++	fanotify_mark--secontext_full_mismatch.gen.test \
++	fanotify_mark--secontext_mismatch.gen.test \
+ 	fanotify_mark-Xabbrev.gen.test fanotify_mark-Xraw.gen.test \
+ 	fanotify_mark-Xverbose.gen.test fchdir.gen.test \
+ 	fchmod.gen.test fchmod--secontext.gen.test \
+-	fchmod--secontext_full.gen.test fchmod-y.gen.test \
++	fchmod--secontext_full.gen.test \
++	fchmod--secontext_full_mismatch.gen.test \
++	fchmod--secontext_mismatch.gen.test fchmod-y.gen.test \
+ 	fchmod-y--secontext.gen.test fchmod-y--secontext_full.gen.test \
+-	fchmodat.gen.test fchmodat--secontext.gen.test \
+-	fchmodat--secontext_full.gen.test fchown.gen.test \
++	fchmod-y--secontext_full_mismatch.gen.test \
++	fchmod-y--secontext_mismatch.gen.test fchmodat.gen.test \
++	fchmodat--secontext.gen.test fchmodat--secontext_full.gen.test \
++	fchmodat--secontext_full_mismatch.gen.test \
++	fchmodat--secontext_mismatch.gen.test fchown.gen.test \
+ 	fchown32.gen.test fchownat.gen.test \
+ 	fchownat--secontext.gen.test fchownat--secontext_full.gen.test \
+-	fcntl.gen.test fcntl--pidns-translation.gen.test \
+-	fcntl64.gen.test fcntl64--pidns-translation.gen.test \
+-	fdatasync.gen.test file_handle.gen.test \
+-	file_handle--secontext.gen.test \
+-	file_handle--secontext_full.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 \
++	fchownat--secontext_full_mismatch.gen.test \
++	fchownat--secontext_mismatch.gen.test fcntl.gen.test \
++	fcntl--pidns-translation.gen.test fcntl64.gen.test \
++	fcntl64--pidns-translation.gen.test fdatasync.gen.test \
++	file_handle.gen.test file_handle--secontext.gen.test \
++	file_handle--secontext_full.gen.test \
++	file_handle--secontext_full_mismatch.gen.test \
++	file_handle--secontext_mismatch.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 \
+@@ -6512,8 +6833,10 @@
+ 	landlock_restrict_self-y.gen.test lchown.gen.test \
+ 	lchown32.gen.test link.gen.test linkat.gen.test \
+ 	linkat--secontext.gen.test linkat--secontext_full.gen.test \
+-	lookup_dcookie.gen.test lstat.gen.test lstat64.gen.test \
+-	madvise.gen.test maybe_switch_current_tcp.gen.test \
++	linkat--secontext_full_mismatch.gen.test \
++	linkat--secontext_mismatch.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 \
+@@ -6582,16 +6905,19 @@
+ 	oldselect.gen.test oldselect-P.gen.test \
+ 	oldselect-efault.gen.test oldselect-efault-P.gen.test \
+ 	oldstat.gen.test open.gen.test open--secontext.gen.test \
+-	open--secontext_full.gen.test open_tree.gen.test \
++	open--secontext_full.gen.test \
++	open--secontext_full_mismatch.gen.test \
++	open--secontext_mismatch.gen.test open_tree.gen.test \
+ 	open_tree-P.gen.test openat.gen.test \
+ 	openat--secontext.gen.test openat--secontext_full.gen.test \
+-	openat2.gen.test openat2-Xabbrev.gen.test \
+-	openat2-Xraw.gen.test openat2-Xverbose.gen.test \
+-	openat2-v.gen.test openat2-v-y.gen.test \
+-	openat2-v-y-Xabbrev.gen.test openat2-v-y-Xraw.gen.test \
+-	openat2-v-y-Xverbose.gen.test openat2-y.gen.test \
+-	orphaned_process_group.gen.test osf_utimes.gen.test \
+-	pause.gen.test perf_event_open.gen.test \
++	openat--secontext_full_mismatch.gen.test \
++	openat--secontext_mismatch.gen.test openat2.gen.test \
++	openat2-Xabbrev.gen.test openat2-Xraw.gen.test \
++	openat2-Xverbose.gen.test openat2-v.gen.test \
++	openat2-v-y.gen.test openat2-v-y-Xabbrev.gen.test \
++	openat2-v-y-Xraw.gen.test openat2-v-y-Xverbose.gen.test \
++	openat2-y.gen.test orphaned_process_group.gen.test \
++	osf_utimes.gen.test pause.gen.test perf_event_open.gen.test \
+ 	perf_event_open_nonverbose.gen.test \
+ 	perf_event_open_unabbrev.gen.test personality-Xabbrev.gen.test \
+ 	personality-Xraw.gen.test personality-Xverbose.gen.test \
+@@ -7155,6 +7481,14 @@
+ 	@rm -f access--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(access__secontext_full_OBJECTS) $(access__secontext_full_LDADD) $(LIBS)
+ 
++access--secontext_full_mismatch$(EXEEXT): $(access__secontext_full_mismatch_OBJECTS) $(access__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_access__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f access--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(access__secontext_full_mismatch_OBJECTS) $(access__secontext_full_mismatch_LDADD) $(LIBS)
++
++access--secontext_mismatch$(EXEEXT): $(access__secontext_mismatch_OBJECTS) $(access__secontext_mismatch_DEPENDENCIES) $(EXTRA_access__secontext_mismatch_DEPENDENCIES) 
++	@rm -f access--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(access__secontext_mismatch_OBJECTS) $(access__secontext_mismatch_LDADD) $(LIBS)
++
+ acct$(EXEEXT): $(acct_OBJECTS) $(acct_DEPENDENCIES) $(EXTRA_acct_DEPENDENCIES) 
+ 	@rm -f acct$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(acct_OBJECTS) $(acct_LDADD) $(LIBS)
+@@ -7283,6 +7617,14 @@
+ 	@rm -f chmod--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(chmod__secontext_full_OBJECTS) $(chmod__secontext_full_LDADD) $(LIBS)
+ 
++chmod--secontext_full_mismatch$(EXEEXT): $(chmod__secontext_full_mismatch_OBJECTS) $(chmod__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_chmod__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f chmod--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(chmod__secontext_full_mismatch_OBJECTS) $(chmod__secontext_full_mismatch_LDADD) $(LIBS)
++
++chmod--secontext_mismatch$(EXEEXT): $(chmod__secontext_mismatch_OBJECTS) $(chmod__secontext_mismatch_DEPENDENCIES) $(EXTRA_chmod__secontext_mismatch_DEPENDENCIES) 
++	@rm -f chmod--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(chmod__secontext_mismatch_OBJECTS) $(chmod__secontext_mismatch_LDADD) $(LIBS)
++
+ chown$(EXEEXT): $(chown_OBJECTS) $(chown_DEPENDENCIES) $(EXTRA_chown_DEPENDENCIES) 
+ 	@rm -f chown$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(chown_OBJECTS) $(chown_LDADD) $(LIBS)
+@@ -7527,6 +7869,14 @@
+ 	@rm -f execve--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(execve__secontext_full_OBJECTS) $(execve__secontext_full_LDADD) $(LIBS)
+ 
++execve--secontext_full_mismatch$(EXEEXT): $(execve__secontext_full_mismatch_OBJECTS) $(execve__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_execve__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f execve--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(execve__secontext_full_mismatch_OBJECTS) $(execve__secontext_full_mismatch_LDADD) $(LIBS)
++
++execve--secontext_mismatch$(EXEEXT): $(execve__secontext_mismatch_OBJECTS) $(execve__secontext_mismatch_DEPENDENCIES) $(EXTRA_execve__secontext_mismatch_DEPENDENCIES) 
++	@rm -f execve--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(execve__secontext_mismatch_OBJECTS) $(execve__secontext_mismatch_LDADD) $(LIBS)
++
+ execve-v$(EXEEXT): $(execve_v_OBJECTS) $(execve_v_DEPENDENCIES) $(EXTRA_execve_v_DEPENDENCIES) 
+ 	@rm -f execve-v$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(execve_v_OBJECTS) $(execve_v_LDADD) $(LIBS)
+@@ -7543,6 +7893,14 @@
+ 	@rm -f execveat--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(execveat__secontext_full_OBJECTS) $(execveat__secontext_full_LDADD) $(LIBS)
+ 
++execveat--secontext_full_mismatch$(EXEEXT): $(execveat__secontext_full_mismatch_OBJECTS) $(execveat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_execveat__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f execveat--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(execveat__secontext_full_mismatch_OBJECTS) $(execveat__secontext_full_mismatch_LDADD) $(LIBS)
++
++execveat--secontext_mismatch$(EXEEXT): $(execveat__secontext_mismatch_OBJECTS) $(execveat__secontext_mismatch_DEPENDENCIES) $(EXTRA_execveat__secontext_mismatch_DEPENDENCIES) 
++	@rm -f execveat--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(execveat__secontext_mismatch_OBJECTS) $(execveat__secontext_mismatch_LDADD) $(LIBS)
++
+ execveat-v$(EXEEXT): $(execveat_v_OBJECTS) $(execveat_v_DEPENDENCIES) $(EXTRA_execveat_v_DEPENDENCIES) 
+ 	@rm -f execveat-v$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(execveat_v_OBJECTS) $(execveat_v_LDADD) $(LIBS)
+@@ -7559,6 +7917,14 @@
+ 	@rm -f faccessat--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(faccessat__secontext_full_OBJECTS) $(faccessat__secontext_full_LDADD) $(LIBS)
+ 
++faccessat--secontext_full_mismatch$(EXEEXT): $(faccessat__secontext_full_mismatch_OBJECTS) $(faccessat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_faccessat__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f faccessat--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(faccessat__secontext_full_mismatch_OBJECTS) $(faccessat__secontext_full_mismatch_LDADD) $(LIBS)
++
++faccessat--secontext_mismatch$(EXEEXT): $(faccessat__secontext_mismatch_OBJECTS) $(faccessat__secontext_mismatch_DEPENDENCIES) $(EXTRA_faccessat__secontext_mismatch_DEPENDENCIES) 
++	@rm -f faccessat--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(faccessat__secontext_mismatch_OBJECTS) $(faccessat__secontext_mismatch_LDADD) $(LIBS)
++
+ faccessat-P$(EXEEXT): $(faccessat_P_OBJECTS) $(faccessat_P_DEPENDENCIES) $(EXTRA_faccessat_P_DEPENDENCIES) 
+ 	@rm -f faccessat-P$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(faccessat_P_OBJECTS) $(faccessat_P_LDADD) $(LIBS)
+@@ -7575,6 +7941,14 @@
+ 	@rm -f faccessat-y--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(faccessat_y__secontext_full_OBJECTS) $(faccessat_y__secontext_full_LDADD) $(LIBS)
+ 
++faccessat-y--secontext_full_mismatch$(EXEEXT): $(faccessat_y__secontext_full_mismatch_OBJECTS) $(faccessat_y__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_faccessat_y__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f faccessat-y--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(faccessat_y__secontext_full_mismatch_OBJECTS) $(faccessat_y__secontext_full_mismatch_LDADD) $(LIBS)
++
++faccessat-y--secontext_mismatch$(EXEEXT): $(faccessat_y__secontext_mismatch_OBJECTS) $(faccessat_y__secontext_mismatch_DEPENDENCIES) $(EXTRA_faccessat_y__secontext_mismatch_DEPENDENCIES) 
++	@rm -f faccessat-y--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(faccessat_y__secontext_mismatch_OBJECTS) $(faccessat_y__secontext_mismatch_LDADD) $(LIBS)
++
+ faccessat-yy$(EXEEXT): $(faccessat_yy_OBJECTS) $(faccessat_yy_DEPENDENCIES) $(EXTRA_faccessat_yy_DEPENDENCIES) 
+ 	@rm -f faccessat-yy$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(faccessat_yy_OBJECTS) $(faccessat_yy_LDADD) $(LIBS)
+@@ -7623,6 +7997,14 @@
+ 	@rm -f fanotify_mark--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fanotify_mark__secontext_full_OBJECTS) $(fanotify_mark__secontext_full_LDADD) $(LIBS)
+ 
++fanotify_mark--secontext_full_mismatch$(EXEEXT): $(fanotify_mark__secontext_full_mismatch_OBJECTS) $(fanotify_mark__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fanotify_mark__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f fanotify_mark--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fanotify_mark__secontext_full_mismatch_OBJECTS) $(fanotify_mark__secontext_full_mismatch_LDADD) $(LIBS)
++
++fanotify_mark--secontext_mismatch$(EXEEXT): $(fanotify_mark__secontext_mismatch_OBJECTS) $(fanotify_mark__secontext_mismatch_DEPENDENCIES) $(EXTRA_fanotify_mark__secontext_mismatch_DEPENDENCIES) 
++	@rm -f fanotify_mark--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fanotify_mark__secontext_mismatch_OBJECTS) $(fanotify_mark__secontext_mismatch_LDADD) $(LIBS)
++
+ fanotify_mark-Xabbrev$(EXEEXT): $(fanotify_mark_Xabbrev_OBJECTS) $(fanotify_mark_Xabbrev_DEPENDENCIES) $(EXTRA_fanotify_mark_Xabbrev_DEPENDENCIES) 
+ 	@rm -f fanotify_mark-Xabbrev$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fanotify_mark_Xabbrev_OBJECTS) $(fanotify_mark_Xabbrev_LDADD) $(LIBS)
+@@ -7651,6 +8033,14 @@
+ 	@rm -f fchmod--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fchmod__secontext_full_OBJECTS) $(fchmod__secontext_full_LDADD) $(LIBS)
+ 
++fchmod--secontext_full_mismatch$(EXEEXT): $(fchmod__secontext_full_mismatch_OBJECTS) $(fchmod__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchmod__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f fchmod--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fchmod__secontext_full_mismatch_OBJECTS) $(fchmod__secontext_full_mismatch_LDADD) $(LIBS)
++
++fchmod--secontext_mismatch$(EXEEXT): $(fchmod__secontext_mismatch_OBJECTS) $(fchmod__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchmod__secontext_mismatch_DEPENDENCIES) 
++	@rm -f fchmod--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fchmod__secontext_mismatch_OBJECTS) $(fchmod__secontext_mismatch_LDADD) $(LIBS)
++
+ fchmod-y$(EXEEXT): $(fchmod_y_OBJECTS) $(fchmod_y_DEPENDENCIES) $(EXTRA_fchmod_y_DEPENDENCIES) 
+ 	@rm -f fchmod-y$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fchmod_y_OBJECTS) $(fchmod_y_LDADD) $(LIBS)
+@@ -7663,6 +8053,14 @@
+ 	@rm -f fchmod-y--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fchmod_y__secontext_full_OBJECTS) $(fchmod_y__secontext_full_LDADD) $(LIBS)
+ 
++fchmod-y--secontext_full_mismatch$(EXEEXT): $(fchmod_y__secontext_full_mismatch_OBJECTS) $(fchmod_y__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchmod_y__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f fchmod-y--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fchmod_y__secontext_full_mismatch_OBJECTS) $(fchmod_y__secontext_full_mismatch_LDADD) $(LIBS)
++
++fchmod-y--secontext_mismatch$(EXEEXT): $(fchmod_y__secontext_mismatch_OBJECTS) $(fchmod_y__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchmod_y__secontext_mismatch_DEPENDENCIES) 
++	@rm -f fchmod-y--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fchmod_y__secontext_mismatch_OBJECTS) $(fchmod_y__secontext_mismatch_LDADD) $(LIBS)
++
+ fchmodat$(EXEEXT): $(fchmodat_OBJECTS) $(fchmodat_DEPENDENCIES) $(EXTRA_fchmodat_DEPENDENCIES) 
+ 	@rm -f fchmodat$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fchmodat_OBJECTS) $(fchmodat_LDADD) $(LIBS)
+@@ -7675,6 +8073,14 @@
+ 	@rm -f fchmodat--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fchmodat__secontext_full_OBJECTS) $(fchmodat__secontext_full_LDADD) $(LIBS)
+ 
++fchmodat--secontext_full_mismatch$(EXEEXT): $(fchmodat__secontext_full_mismatch_OBJECTS) $(fchmodat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchmodat__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f fchmodat--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fchmodat__secontext_full_mismatch_OBJECTS) $(fchmodat__secontext_full_mismatch_LDADD) $(LIBS)
++
++fchmodat--secontext_mismatch$(EXEEXT): $(fchmodat__secontext_mismatch_OBJECTS) $(fchmodat__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchmodat__secontext_mismatch_DEPENDENCIES) 
++	@rm -f fchmodat--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fchmodat__secontext_mismatch_OBJECTS) $(fchmodat__secontext_mismatch_LDADD) $(LIBS)
++
+ fchown$(EXEEXT): $(fchown_OBJECTS) $(fchown_DEPENDENCIES) $(EXTRA_fchown_DEPENDENCIES) 
+ 	@rm -f fchown$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fchown_OBJECTS) $(fchown_LDADD) $(LIBS)
+@@ -7695,6 +8101,14 @@
+ 	@rm -f fchownat--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fchownat__secontext_full_OBJECTS) $(fchownat__secontext_full_LDADD) $(LIBS)
+ 
++fchownat--secontext_full_mismatch$(EXEEXT): $(fchownat__secontext_full_mismatch_OBJECTS) $(fchownat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_fchownat__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f fchownat--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fchownat__secontext_full_mismatch_OBJECTS) $(fchownat__secontext_full_mismatch_LDADD) $(LIBS)
++
++fchownat--secontext_mismatch$(EXEEXT): $(fchownat__secontext_mismatch_OBJECTS) $(fchownat__secontext_mismatch_DEPENDENCIES) $(EXTRA_fchownat__secontext_mismatch_DEPENDENCIES) 
++	@rm -f fchownat--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(fchownat__secontext_mismatch_OBJECTS) $(fchownat__secontext_mismatch_LDADD) $(LIBS)
++
+ fcntl$(EXEEXT): $(fcntl_OBJECTS) $(fcntl_DEPENDENCIES) $(EXTRA_fcntl_DEPENDENCIES) 
+ 	@rm -f fcntl$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(fcntl_OBJECTS) $(fcntl_LDADD) $(LIBS)
+@@ -7731,6 +8145,14 @@
+ 	@rm -f file_handle--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(file_handle__secontext_full_OBJECTS) $(file_handle__secontext_full_LDADD) $(LIBS)
+ 
++file_handle--secontext_full_mismatch$(EXEEXT): $(file_handle__secontext_full_mismatch_OBJECTS) $(file_handle__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_file_handle__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f file_handle--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(file_handle__secontext_full_mismatch_OBJECTS) $(file_handle__secontext_full_mismatch_LDADD) $(LIBS)
++
++file_handle--secontext_mismatch$(EXEEXT): $(file_handle__secontext_mismatch_OBJECTS) $(file_handle__secontext_mismatch_DEPENDENCIES) $(EXTRA_file_handle__secontext_mismatch_DEPENDENCIES) 
++	@rm -f file_handle--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(file_handle__secontext_mismatch_OBJECTS) $(file_handle__secontext_mismatch_LDADD) $(LIBS)
++
+ filter-unavailable$(EXEEXT): $(filter_unavailable_OBJECTS) $(filter_unavailable_DEPENDENCIES) $(EXTRA_filter_unavailable_DEPENDENCIES) 
+ 	@rm -f filter-unavailable$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(filter_unavailable_OBJECTS) $(filter_unavailable_LDADD) $(LIBS)
+@@ -8775,6 +9197,14 @@
+ 	@rm -f linkat--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(linkat__secontext_full_OBJECTS) $(linkat__secontext_full_LDADD) $(LIBS)
+ 
++linkat--secontext_full_mismatch$(EXEEXT): $(linkat__secontext_full_mismatch_OBJECTS) $(linkat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_linkat__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f linkat--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(linkat__secontext_full_mismatch_OBJECTS) $(linkat__secontext_full_mismatch_LDADD) $(LIBS)
++
++linkat--secontext_mismatch$(EXEEXT): $(linkat__secontext_mismatch_OBJECTS) $(linkat__secontext_mismatch_DEPENDENCIES) $(EXTRA_linkat__secontext_mismatch_DEPENDENCIES) 
++	@rm -f linkat--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(linkat__secontext_mismatch_OBJECTS) $(linkat__secontext_mismatch_LDADD) $(LIBS)
++
+ list_sigaction_signum$(EXEEXT): $(list_sigaction_signum_OBJECTS) $(list_sigaction_signum_DEPENDENCIES) $(EXTRA_list_sigaction_signum_DEPENDENCIES) 
+ 	@rm -f list_sigaction_signum$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(list_sigaction_signum_OBJECTS) $(list_sigaction_signum_LDADD) $(LIBS)
+@@ -9423,6 +9853,14 @@
+ 	@rm -f open--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(open__secontext_full_OBJECTS) $(open__secontext_full_LDADD) $(LIBS)
+ 
++open--secontext_full_mismatch$(EXEEXT): $(open__secontext_full_mismatch_OBJECTS) $(open__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_open__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f open--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(open__secontext_full_mismatch_OBJECTS) $(open__secontext_full_mismatch_LDADD) $(LIBS)
++
++open--secontext_mismatch$(EXEEXT): $(open__secontext_mismatch_OBJECTS) $(open__secontext_mismatch_DEPENDENCIES) $(EXTRA_open__secontext_mismatch_DEPENDENCIES) 
++	@rm -f open--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(open__secontext_mismatch_OBJECTS) $(open__secontext_mismatch_LDADD) $(LIBS)
++
+ open_tree$(EXEEXT): $(open_tree_OBJECTS) $(open_tree_DEPENDENCIES) $(EXTRA_open_tree_DEPENDENCIES) 
+ 	@rm -f open_tree$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(open_tree_OBJECTS) $(open_tree_LDADD) $(LIBS)
+@@ -9443,6 +9881,14 @@
+ 	@rm -f openat--secontext_full$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(openat__secontext_full_OBJECTS) $(openat__secontext_full_LDADD) $(LIBS)
+ 
++openat--secontext_full_mismatch$(EXEEXT): $(openat__secontext_full_mismatch_OBJECTS) $(openat__secontext_full_mismatch_DEPENDENCIES) $(EXTRA_openat__secontext_full_mismatch_DEPENDENCIES) 
++	@rm -f openat--secontext_full_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(openat__secontext_full_mismatch_OBJECTS) $(openat__secontext_full_mismatch_LDADD) $(LIBS)
++
++openat--secontext_mismatch$(EXEEXT): $(openat__secontext_mismatch_OBJECTS) $(openat__secontext_mismatch_DEPENDENCIES) $(EXTRA_openat__secontext_mismatch_DEPENDENCIES) 
++	@rm -f openat--secontext_mismatch$(EXEEXT)
++	$(AM_V_CCLD)$(LINK) $(openat__secontext_mismatch_OBJECTS) $(openat__secontext_mismatch_LDADD) $(LIBS)
++
+ openat2$(EXEEXT): $(openat2_OBJECTS) $(openat2_DEPENDENCIES) $(EXTRA_openat2_DEPENDENCIES) 
+ 	@rm -f openat2$(EXEEXT)
+ 	$(AM_V_CCLD)$(LINK) $(openat2_OBJECTS) $(openat2_LDADD) $(LIBS)
+@@ -10835,6 +11281,8 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/accept4.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/access.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/acct.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/add_key.Po@am__quote@ # am--include-marker
+@@ -10867,6 +11315,8 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/check_sigign.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chmod.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chown.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chown32.Po@am__quote@ # am--include-marker
+@@ -10928,17 +11378,25 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eventfd.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve-v.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execve.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat-v.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/execveat.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-P.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-y.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat-yy.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faccessat.Po@am__quote@ # am--include-marker
+@@ -10952,6 +11410,8 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_init.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xabbrev.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xraw.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fanotify_mark-Xverbose.Po@am__quote@ # am--include-marker
+@@ -10959,17 +11419,25 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchdir.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod-y.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmod.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchmodat.Po@am__quote@ # am--include-marker
+ @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--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fchownat--secontext_mismatch.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
+@@ -10979,6 +11447,8 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fflush.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file_handle.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter-unavailable.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filter_seccomp-flag.Po@am__quote@ # am--include-marker
+@@ -11276,6 +11746,8 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/link.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat--secontext_mismatch.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
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/llseek.Po@am__quote@ # am--include-marker
+@@ -11438,11 +11910,15 @@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oldstat.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open_tree-P.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open_tree.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext_full.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext_full_mismatch.Po@am__quote@ # am--include-marker
++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat--secontext_mismatch.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-Xabbrev.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat2-Xraw.Po@am__quote@ # am--include-marker
+@@ -13004,6 +13480,12 @@
+ $(srcdir)/access--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/access--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/access--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/acct.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13055,6 +13537,12 @@
+ $(srcdir)/chmod--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/chmod--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/chmod--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/chown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13220,6 +13708,12 @@
+ $(srcdir)/execve--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/execve--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/execve--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/execveat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13229,6 +13723,12 @@
+ $(srcdir)/execveat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/execveat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/execveat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/execveat-v.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13238,6 +13738,12 @@
+ $(srcdir)/faccessat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/faccessat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/faccessat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/faccessat-P.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13250,6 +13756,12 @@
+ $(srcdir)/faccessat-y--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/faccessat-y--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/faccessat-y--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/faccessat-yy.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13280,6 +13792,12 @@
+ $(srcdir)/fanotify_mark--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/fanotify_mark--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/fanotify_mark--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/fanotify_mark-Xabbrev.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13301,6 +13819,12 @@
+ $(srcdir)/fchmod--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/fchmod--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/fchmod--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/fchmod-y.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13310,6 +13834,12 @@
+ $(srcdir)/fchmod-y--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/fchmod-y--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/fchmod-y--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/fchmodat.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13319,6 +13849,12 @@
+ $(srcdir)/fchmodat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/fchmodat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/fchmodat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/fchown.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13334,6 +13870,12 @@
+ $(srcdir)/fchownat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/fchownat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/fchownat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/fcntl.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -13358,6 +13900,12 @@
+ $(srcdir)/file_handle--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/file_handle--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/file_handle--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/filter_seccomp.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -14117,6 +14665,12 @@
+ $(srcdir)/linkat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/linkat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/linkat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/lookup_dcookie.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -14546,6 +15100,12 @@
+ $(srcdir)/open--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/open--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/open--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/open_tree.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+@@ -14561,6 +15121,12 @@
+ $(srcdir)/openat--secontext_full.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
++$(srcdir)/openat--secontext_full_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
++$(srcdir)/openat--secontext_mismatch.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
++	$(AM_V_GEN) $^ $@
++
+ $(srcdir)/openat2.gen.test: $(abs_srcdir)/gen_tests.sh $(srcdir)/gen_tests.in
+ 	$(AM_V_GEN) $^ $@
+ 
+--- old/configure	2022-02-07 20:23:38.732063729 +0100
++++ configure	2022-02-07 20:24:00.604063427 +0100
+@@ -18438,7 +18438,7 @@
+   saved_LDFLAGS="$LDFLAGS"
+ 	      LDFLAGS="$LDFLAGS $libselinux_LDFLAGS"
+ 	      missing=
+-	      for func in getpidcon getfilecon; do
++	      for func in getpidcon getfilecon selabel_open selabel_lookup; do
+ 		as_ac_Lib=`$as_echo "ac_cv_lib_selinux_$func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $func in -lselinux" >&5
+ $as_echo_n "checking for $func in -lselinux... " >&6; }
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests/access--secontext_mismatch.c	2022-02-07 20:42:23.500048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "access--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests/chmod--secontext_mismatch.c	2022-02-07 20:42:23.500048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "chmod--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests/execveat--secontext_mismatch.c	2022-02-07 20:42:23.504048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "execveat--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests/execve--secontext_mismatch.c	2022-02-07 20:42:23.504048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "execve--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests/faccessat--secontext_mismatch.c	2022-02-07 20:42:23.504048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "faccessat--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests/faccessat-y--secontext_mismatch.c	2022-02-07 20:42:23.508048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "faccessat-y--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests/fanotify_mark--secontext_mismatch.c	2022-02-07 20:42:23.508048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "fanotify_mark--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests/fchmodat--secontext_mismatch.c	2022-02-07 20:42:23.512048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "fchmodat--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests/fchmod--secontext_mismatch.c	2022-02-07 20:42:23.512048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "fchmod--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests/fchmod-y--secontext_mismatch.c	2022-02-07 20:42:23.512048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "fchmod-y--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests/fchownat--secontext_mismatch.c	2022-02-07 20:42:23.516048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "fchownat--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests/file_handle--secontext_mismatch.c	2022-02-07 20:42:23.516048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "file_handle--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests/linkat--secontext_mismatch.c	2022-02-07 20:42:23.520048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "linkat--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-m32/access--secontext_mismatch.c	2022-02-07 20:42:23.500048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "access--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-m32/chmod--secontext_mismatch.c	2022-02-07 20:42:23.500048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "chmod--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-m32/execveat--secontext_mismatch.c	2022-02-07 20:42:23.504048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "execveat--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-m32/execve--secontext_mismatch.c	2022-02-07 20:42:23.504048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "execve--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-m32/faccessat--secontext_mismatch.c	2022-02-07 20:42:23.504048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "faccessat--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-m32/faccessat-y--secontext_mismatch.c	2022-02-07 20:42:23.508048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "faccessat-y--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-m32/fanotify_mark--secontext_mismatch.c	2022-02-07 20:42:23.508048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "fanotify_mark--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-m32/fchmodat--secontext_mismatch.c	2022-02-07 20:42:23.512048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "fchmodat--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-m32/fchmod--secontext_mismatch.c	2022-02-07 20:42:23.512048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "fchmod--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-m32/fchmod-y--secontext_mismatch.c	2022-02-07 20:42:23.512048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "fchmod-y--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-m32/fchownat--secontext_mismatch.c	2022-02-07 20:42:23.516048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "fchownat--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-m32/file_handle--secontext_mismatch.c	2022-02-07 20:42:23.516048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "file_handle--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-m32/linkat--secontext_mismatch.c	2022-02-07 20:42:23.520048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "linkat--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-m32/openat--secontext_mismatch.c	2022-02-07 20:42:23.520048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "openat--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-m32/open--secontext_mismatch.c	2022-02-07 20:42:23.520048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "open--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-mx32/access--secontext_mismatch.c	2022-02-07 20:42:23.500048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "access--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-mx32/chmod--secontext_mismatch.c	2022-02-07 20:42:23.500048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "chmod--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-mx32/execveat--secontext_mismatch.c	2022-02-07 20:42:23.504048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "execveat--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-mx32/execve--secontext_mismatch.c	2022-02-07 20:42:23.504048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "execve--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-mx32/faccessat--secontext_mismatch.c	2022-02-07 20:42:23.504048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "faccessat--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-mx32/faccessat-y--secontext_mismatch.c	2022-02-07 20:42:23.508048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "faccessat-y--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-mx32/fanotify_mark--secontext_mismatch.c	2022-02-07 20:42:23.508048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "fanotify_mark--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-mx32/fchmodat--secontext_mismatch.c	2022-02-07 20:42:23.512048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "fchmodat--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-mx32/fchmod--secontext_mismatch.c	2022-02-07 20:42:23.512048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "fchmod--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-mx32/fchmod-y--secontext_mismatch.c	2022-02-07 20:42:23.512048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "fchmod-y--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-mx32/fchownat--secontext_mismatch.c	2022-02-07 20:42:23.516048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "fchownat--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-mx32/file_handle--secontext_mismatch.c	2022-02-07 20:42:23.516048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "file_handle--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-mx32/linkat--secontext_mismatch.c	2022-02-07 20:42:23.520048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "linkat--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-mx32/openat--secontext_mismatch.c	2022-02-07 20:42:23.520048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "openat--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-mx32/open--secontext_mismatch.c	2022-02-07 20:42:23.520048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "open--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests/openat--secontext_mismatch.c	2022-02-07 20:42:23.520048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "openat--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests/open--secontext_mismatch.c	2022-02-07 20:42:23.520048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "open--secontext.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests/access--secontext_full_mismatch.c	2022-02-07 20:42:23.500048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "access--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests/chmod--secontext_full_mismatch.c	2022-02-07 20:42:23.500048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "chmod--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests/execveat--secontext_full_mismatch.c	2022-02-07 20:42:23.504048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "execveat--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests/execve--secontext_full_mismatch.c	2022-02-07 20:42:23.500048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "execve--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests/faccessat--secontext_full_mismatch.c	2022-02-07 20:42:23.504048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "faccessat--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests/faccessat-y--secontext_full_mismatch.c	2022-02-07 20:42:23.508048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "faccessat-y--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests/fanotify_mark--secontext_full_mismatch.c	2022-02-07 20:42:23.508048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "fanotify_mark--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests/fchmodat--secontext_full_mismatch.c	2022-02-07 20:42:23.512048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "fchmodat--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests/fchmod--secontext_full_mismatch.c	2022-02-07 20:42:23.508048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "fchmod--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests/fchmod-y--secontext_full_mismatch.c	2022-02-07 20:42:23.512048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "fchmod-y--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests/fchownat--secontext_full_mismatch.c	2022-02-07 20:42:23.516048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "fchownat--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests/file_handle--secontext_full_mismatch.c	2022-02-07 20:42:23.516048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "file_handle--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests/linkat--secontext_full_mismatch.c	2022-02-07 20:42:23.516048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "linkat--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-m32/access--secontext_full_mismatch.c	2022-02-07 20:42:23.500048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "access--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-m32/chmod--secontext_full_mismatch.c	2022-02-07 20:42:23.500048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "chmod--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-m32/execveat--secontext_full_mismatch.c	2022-02-07 20:42:23.504048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "execveat--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-m32/execve--secontext_full_mismatch.c	2022-02-07 20:42:23.500048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "execve--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-m32/faccessat--secontext_full_mismatch.c	2022-02-07 20:42:23.504048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "faccessat--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-m32/faccessat-y--secontext_full_mismatch.c	2022-02-07 20:42:23.508048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "faccessat-y--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-m32/fanotify_mark--secontext_full_mismatch.c	2022-02-07 20:42:23.508048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "fanotify_mark--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-m32/fchmodat--secontext_full_mismatch.c	2022-02-07 20:42:23.512048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "fchmodat--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-m32/fchmod--secontext_full_mismatch.c	2022-02-07 20:42:23.508048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "fchmod--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-m32/fchmod-y--secontext_full_mismatch.c	2022-02-07 20:42:23.512048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "fchmod-y--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-m32/fchownat--secontext_full_mismatch.c	2022-02-07 20:42:23.516048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "fchownat--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-m32/file_handle--secontext_full_mismatch.c	2022-02-07 20:42:23.516048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "file_handle--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-m32/linkat--secontext_full_mismatch.c	2022-02-07 20:42:23.516048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "linkat--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-m32/openat--secontext_full_mismatch.c	2022-02-07 20:42:23.520048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "openat--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-m32/open--secontext_full_mismatch.c	2022-02-07 20:42:23.520048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "open--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-mx32/access--secontext_full_mismatch.c	2022-02-07 20:42:23.500048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "access--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-mx32/chmod--secontext_full_mismatch.c	2022-02-07 20:42:23.500048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "chmod--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-mx32/execveat--secontext_full_mismatch.c	2022-02-07 20:42:23.504048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "execveat--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-mx32/execve--secontext_full_mismatch.c	2022-02-07 20:42:23.500048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "execve--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-mx32/faccessat--secontext_full_mismatch.c	2022-02-07 20:42:23.504048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "faccessat--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-mx32/faccessat-y--secontext_full_mismatch.c	2022-02-07 20:42:23.508048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "faccessat-y--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-mx32/fanotify_mark--secontext_full_mismatch.c	2022-02-07 20:42:23.508048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "fanotify_mark--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-mx32/fchmodat--secontext_full_mismatch.c	2022-02-07 20:42:23.512048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "fchmodat--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-mx32/fchmod--secontext_full_mismatch.c	2022-02-07 20:42:23.508048176 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "fchmod--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-mx32/fchmod-y--secontext_full_mismatch.c	2022-02-07 20:42:23.512048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "fchmod-y--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-mx32/fchownat--secontext_full_mismatch.c	2022-02-07 20:42:23.516048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "fchownat--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-mx32/file_handle--secontext_full_mismatch.c	2022-02-07 20:42:23.516048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "file_handle--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-mx32/linkat--secontext_full_mismatch.c	2022-02-07 20:42:23.516048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "linkat--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-mx32/openat--secontext_full_mismatch.c	2022-02-07 20:42:23.520048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "openat--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests-mx32/open--secontext_full_mismatch.c	2022-02-07 20:42:23.520048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "open--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests/openat--secontext_full_mismatch.c	2022-02-07 20:42:23.520048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "openat--secontext_full.c"
+--- /dev/null	2022-02-02 22:09:50.443209891 +0100
++++ new/tests/open--secontext_full_mismatch.c	2022-02-07 20:42:23.520048175 +0100
+@@ -0,0 +1,2 @@
++#define PRINT_SECONTEXT_MISMATCH
++#include "open--secontext_full.c"
+-- 
+2.1.4
+
diff --git a/SOURCES/0170-tests-linkat-reset-errno-before-SELinux-context-mani.patch b/SOURCES/0170-tests-linkat-reset-errno-before-SELinux-context-mani.patch
new file mode 100644
index 0000000..78f92d3
--- /dev/null
+++ b/SOURCES/0170-tests-linkat-reset-errno-before-SELinux-context-mani.patch
@@ -0,0 +1,122 @@
+From f5fd689e40322a7b08a97eb2d26f192610728230 Mon Sep 17 00:00:00 2001
+From: Eugene Syromyatnikov <evgsyr@gmail.com>
+Date: Tue, 18 Jan 2022 16:10:28 +0100
+Subject: [PATCH 170/174] tests/linkat: reset errno before SELinux context
+ manipulation
+
+To avoid printing a stale error information in case of mismatch check
+failure.
+
+* tests/linkat.c: Include <errno.h>.
+(main): Add "errno = 0" before update_secontext_field calls.
+---
+ tests/linkat.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/tests/linkat.c b/tests/linkat.c
+index 1a869e3..c3e2ee4 100644
+--- a/tests/linkat.c
++++ b/tests/linkat.c
+@@ -10,6 +10,7 @@
+ #include "tests.h"
+ #include "scno.h"
+ 
++#include <errno.h>
+ #include <fcntl.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -91,6 +92,7 @@ main(void)
+ 	free(sample_1_secontext);
+ 
+ #ifdef PRINT_SECONTEXT_MISMATCH
++	errno = 0;
+ 	update_secontext_field(sample_1, SECONTEXT_USER, "system_u");
+ 	sample_1_secontext = SECONTEXT_FILE(sample_1);
+ 
+@@ -112,6 +114,7 @@ main(void)
+ 	free(sample_1_secontext);
+ #endif
+ 
++	errno = 0;
+ 	update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t");
+ 	sample_1_secontext = SECONTEXT_FILE(sample_1);
+ 	sample_2_secontext = sample_1_secontext;
+@@ -142,6 +145,7 @@ main(void)
+ 	int dfd_old = get_dir_fd(".");
+ 	char *cwd = get_fd_path(dfd_old);
+ 
++	errno = 0;
+ 	update_secontext_field(".", SECONTEXT_TYPE, "default_t");
+ 	char *dfd_old_secontext = SECONTEXT_FILE(".");
+ 
+--- a/tests-m32/linkat.c
++++ b/tests-m32/linkat.c
+@@ -10,6 +10,7 @@
+ #include "tests.h"
+ #include "scno.h"
+ 
++#include <errno.h>
+ #include <fcntl.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -91,6 +92,7 @@ main(void)
+ 	free(sample_1_secontext);
+ 
+ #ifdef PRINT_SECONTEXT_MISMATCH
++	errno = 0;
+ 	update_secontext_field(sample_1, SECONTEXT_USER, "system_u");
+ 	sample_1_secontext = SECONTEXT_FILE(sample_1);
+ 
+@@ -112,6 +114,7 @@ main(void)
+ 	free(sample_1_secontext);
+ #endif
+ 
++	errno = 0;
+ 	update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t");
+ 	sample_1_secontext = SECONTEXT_FILE(sample_1);
+ 	sample_2_secontext = sample_1_secontext;
+@@ -142,6 +145,7 @@ main(void)
+ 	int dfd_old = get_dir_fd(".");
+ 	char *cwd = get_fd_path(dfd_old);
+ 
++	errno = 0;
+ 	update_secontext_field(".", SECONTEXT_TYPE, "default_t");
+ 	char *dfd_old_secontext = SECONTEXT_FILE(".");
+ 
+--- a/tests-mx32/linkat.c
++++ b/tests-mx32/linkat.c
+@@ -10,6 +10,7 @@
+ #include "tests.h"
+ #include "scno.h"
+ 
++#include <errno.h>
+ #include <fcntl.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -91,6 +92,7 @@ main(void)
+ 	free(sample_1_secontext);
+ 
+ #ifdef PRINT_SECONTEXT_MISMATCH
++	errno = 0;
+ 	update_secontext_field(sample_1, SECONTEXT_USER, "system_u");
+ 	sample_1_secontext = SECONTEXT_FILE(sample_1);
+ 
+@@ -112,6 +114,7 @@ main(void)
+ 	free(sample_1_secontext);
+ #endif
+ 
++	errno = 0;
+ 	update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t");
+ 	sample_1_secontext = SECONTEXT_FILE(sample_1);
+ 	sample_2_secontext = sample_1_secontext;
+@@ -142,6 +145,7 @@ main(void)
+ 	int dfd_old = get_dir_fd(".");
+ 	char *cwd = get_fd_path(dfd_old);
+ 
++	errno = 0;
+ 	update_secontext_field(".", SECONTEXT_TYPE, "default_t");
+ 	char *dfd_old_secontext = SECONTEXT_FILE(".");
+ 
+-- 
+2.1.4
+
diff --git a/SOURCES/0171-tests-secontext-add-secontext-field-getters.patch b/SOURCES/0171-tests-secontext-add-secontext-field-getters.patch
new file mode 100644
index 0000000..fce5e5a
--- /dev/null
+++ b/SOURCES/0171-tests-secontext-add-secontext-field-getters.patch
@@ -0,0 +1,356 @@
+From 4951286eb634c00c11883b851c91f3a21975eabd Mon Sep 17 00:00:00 2001
+From: Eugene Syromyatnikov <evgsyr@gmail.com>
+Date: Tue, 18 Jan 2022 18:03:57 +0100
+Subject: [PATCH 171/174] tests/secontext: add secontext field getters
+
+* tests/secontext.h (get_secontext_field, get_secontext_field_file): New
+declarations.
+* tests/secontext.c (get_type_from_context): Rename to...
+(get_secontext_field): ...this;  remove "static" qualifier;  add "field"
+argument, use it.
+(raw_expected_secontext_short_file, raw_secontext_short_pid): Replace
+get_type_from_context call with get_secontext_field.
+(get_secontext_field_file): New function.
+(raw_secontext_short_file): Replace body with get_secontext_field_file
+call.
+---
+ tests/secontext.c | 27 +++++++++++++++------------
+ tests/secontext.h | 20 ++++++++++++++++++++
+ 2 files changed, 35 insertions(+), 12 deletions(-)
+
+diff --git a/tests/secontext.c b/tests/secontext.c
+index 848eea9..52211ed 100644
+--- a/tests/secontext.c
++++ b/tests/secontext.c
+@@ -56,8 +56,8 @@ strip_trailing_newlines(char *context)
+ 	return context;
+ }
+ 
+-static char *
+-get_type_from_context(const char *full_context)
++char *
++get_secontext_field(const char *full_context, enum secontext_field field)
+ {
+ 	int saved_errno = errno;
+ 
+@@ -72,7 +72,7 @@ get_type_from_context(const char *full_context)
+ 	char *context = NULL;
+ 	for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0;
+ 	     token; token = strtok_r(NULL, ":", &saveptr), i++) {
+-		if (i == 2) {
++		if (i == field) {
+ 			context = xstrdup(token);
+ 			break;
+ 		}
+@@ -122,7 +122,7 @@ raw_expected_secontext_short_file(const char *filename)
+ 	int saved_errno = errno;
+ 
+ 	char *ctx = raw_expected_secontext_full_file(filename);
+-	char *type = get_type_from_context(ctx);
++	char *type = get_secontext_field(ctx, SECONTEXT_TYPE);
+ 	free(ctx);
+ 
+ 	errno = saved_errno;
+@@ -144,20 +144,23 @@ raw_secontext_full_file(const char *filename)
+ 	return full_secontext;
+ }
+ 
+-static char *
+-raw_secontext_short_file(const char *filename)
++char *
++get_secontext_field_file(const char *file, enum secontext_field field)
+ {
+-	int saved_errno = errno;
+-
+-	char *ctx = raw_secontext_full_file(filename);
+-	char *type = get_type_from_context(ctx);
++	char *ctx = raw_secontext_full_file(file);
++	char *type =  get_secontext_field(ctx, field);
+ 	free(ctx);
+ 
+-	errno = saved_errno;
+ 	return type;
+ }
+ 
+ static char *
++raw_secontext_short_file(const char *filename)
++{
++	return get_secontext_field_file(filename, SECONTEXT_TYPE);
++}
++
++static char *
+ raw_secontext_full_pid(pid_t pid)
+ {
+ 	int saved_errno = errno;
+@@ -178,7 +181,7 @@ raw_secontext_short_pid(pid_t pid)
+ 	int saved_errno = errno;
+ 
+ 	char *ctx = raw_secontext_full_pid(pid);
+-	char *type = get_type_from_context(ctx);
++	char *type = get_secontext_field(ctx, SECONTEXT_TYPE);
+ 	free(ctx);
+ 
+ 	errno = saved_errno;
+diff --git a/tests/secontext.h b/tests/secontext.h
+index 1d0251a..e5571d5 100644
+--- a/tests/secontext.h
++++ b/tests/secontext.h
+@@ -23,6 +23,15 @@ enum secontext_field {
+ 
+ #if defined TEST_SECONTEXT && defined HAVE_SELINUX_RUNTIME
+ 
++/**
++ * Parse a SELinux context string and return a specified field, duplicated
++ * in a separate string.  The caller is responsible for freeing the memory
++ * pointed by the returned value.
++ */
++char *get_secontext_field(const char *full_context, enum secontext_field field);
++
++char *get_secontext_field_file(const char *file, enum secontext_field field);
++
+ void update_secontext_field(const char *file, enum secontext_field field,
+ 			    const char *newvalue);
+ 
+@@ -48,6 +57,17 @@ void update_secontext_field(const char *file, enum secontext_field field,
+ 
+ #else
+ 
++static inline char *
++get_secontext_field(const char *ctx, enum secontext_field field)
++{
++	return NULL;
++}
++static inline char *
++get_secontext_field_file(const char *file, enum secontext_field field)
++{
++	return NULL;
++}
++
+ static inline void
+ update_secontext_field(const char *file, enum secontext_field field,
+ 		       const char *newvalue)
+diff --git a/tests-m32/secontext.c b/tests-m32/secontext.c
+index 848eea9..52211ed 100644
+--- a/tests-m32/secontext.c
++++ b/tests-m32/secontext.c
+@@ -56,8 +56,8 @@ strip_trailing_newlines(char *context)
+ 	return context;
+ }
+ 
+-static char *
+-get_type_from_context(const char *full_context)
++char *
++get_secontext_field(const char *full_context, enum secontext_field field)
+ {
+ 	int saved_errno = errno;
+ 
+@@ -72,7 +72,7 @@ get_type_from_context(const char *full_context)
+ 	char *context = NULL;
+ 	for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0;
+ 	     token; token = strtok_r(NULL, ":", &saveptr), i++) {
+-		if (i == 2) {
++		if (i == field) {
+ 			context = xstrdup(token);
+ 			break;
+ 		}
+@@ -122,7 +122,7 @@ raw_expected_secontext_short_file(const char *filename)
+ 	int saved_errno = errno;
+ 
+ 	char *ctx = raw_expected_secontext_full_file(filename);
+-	char *type = get_type_from_context(ctx);
++	char *type = get_secontext_field(ctx, SECONTEXT_TYPE);
+ 	free(ctx);
+ 
+ 	errno = saved_errno;
+@@ -144,20 +144,23 @@ raw_secontext_full_file(const char *filename)
+ 	return full_secontext;
+ }
+ 
+-static char *
+-raw_secontext_short_file(const char *filename)
++char *
++get_secontext_field_file(const char *file, enum secontext_field field)
+ {
+-	int saved_errno = errno;
+-
+-	char *ctx = raw_secontext_full_file(filename);
+-	char *type = get_type_from_context(ctx);
++	char *ctx = raw_secontext_full_file(file);
++	char *type =  get_secontext_field(ctx, field);
+ 	free(ctx);
+ 
+-	errno = saved_errno;
+ 	return type;
+ }
+ 
+ static char *
++raw_secontext_short_file(const char *filename)
++{
++	return get_secontext_field_file(filename, SECONTEXT_TYPE);
++}
++
++static char *
+ raw_secontext_full_pid(pid_t pid)
+ {
+ 	int saved_errno = errno;
+@@ -178,7 +181,7 @@ raw_secontext_short_pid(pid_t pid)
+ 	int saved_errno = errno;
+ 
+ 	char *ctx = raw_secontext_full_pid(pid);
+-	char *type = get_type_from_context(ctx);
++	char *type = get_secontext_field(ctx, SECONTEXT_TYPE);
+ 	free(ctx);
+ 
+ 	errno = saved_errno;
+diff --git a/tests-m32/secontext.h b/tests-m32/secontext.h
+index 1d0251a..e5571d5 100644
+--- a/tests-m32/secontext.h
++++ b/tests-m32/secontext.h
+@@ -23,6 +23,15 @@ enum secontext_field {
+ 
+ #if defined TEST_SECONTEXT && defined HAVE_SELINUX_RUNTIME
+ 
++/**
++ * Parse a SELinux context string and return a specified field, duplicated
++ * in a separate string.  The caller is responsible for freeing the memory
++ * pointed by the returned value.
++ */
++char *get_secontext_field(const char *full_context, enum secontext_field field);
++
++char *get_secontext_field_file(const char *file, enum secontext_field field);
++
+ void update_secontext_field(const char *file, enum secontext_field field,
+ 			    const char *newvalue);
+ 
+@@ -48,6 +57,17 @@ void update_secontext_field(const char *file, enum secontext_field field,
+ 
+ #else
+ 
++static inline char *
++get_secontext_field(const char *ctx, enum secontext_field field)
++{
++	return NULL;
++}
++static inline char *
++get_secontext_field_file(const char *file, enum secontext_field field)
++{
++	return NULL;
++}
++
+ static inline void
+ update_secontext_field(const char *file, enum secontext_field field,
+ 		       const char *newvalue)
+diff --git a/tests-mx32/secontext.c b/tests-mx32/secontext.c
+index 848eea9..52211ed 100644
+--- a/tests-mx32/secontext.c
++++ b/tests-mx32/secontext.c
+@@ -56,8 +56,8 @@ strip_trailing_newlines(char *context)
+ 	return context;
+ }
+ 
+-static char *
+-get_type_from_context(const char *full_context)
++char *
++get_secontext_field(const char *full_context, enum secontext_field field)
+ {
+ 	int saved_errno = errno;
+ 
+@@ -72,7 +72,7 @@ get_type_from_context(const char *full_context)
+ 	char *context = NULL;
+ 	for (token = strtok_r(ctx_copy, ":", &saveptr), i = 0;
+ 	     token; token = strtok_r(NULL, ":", &saveptr), i++) {
+-		if (i == 2) {
++		if (i == field) {
+ 			context = xstrdup(token);
+ 			break;
+ 		}
+@@ -122,7 +122,7 @@ raw_expected_secontext_short_file(const char *filename)
+ 	int saved_errno = errno;
+ 
+ 	char *ctx = raw_expected_secontext_full_file(filename);
+-	char *type = get_type_from_context(ctx);
++	char *type = get_secontext_field(ctx, SECONTEXT_TYPE);
+ 	free(ctx);
+ 
+ 	errno = saved_errno;
+@@ -144,20 +144,23 @@ raw_secontext_full_file(const char *filename)
+ 	return full_secontext;
+ }
+ 
+-static char *
+-raw_secontext_short_file(const char *filename)
++char *
++get_secontext_field_file(const char *file, enum secontext_field field)
+ {
+-	int saved_errno = errno;
+-
+-	char *ctx = raw_secontext_full_file(filename);
+-	char *type = get_type_from_context(ctx);
++	char *ctx = raw_secontext_full_file(file);
++	char *type =  get_secontext_field(ctx, field);
+ 	free(ctx);
+ 
+-	errno = saved_errno;
+ 	return type;
+ }
+ 
+ static char *
++raw_secontext_short_file(const char *filename)
++{
++	return get_secontext_field_file(filename, SECONTEXT_TYPE);
++}
++
++static char *
+ raw_secontext_full_pid(pid_t pid)
+ {
+ 	int saved_errno = errno;
+@@ -178,7 +181,7 @@ raw_secontext_short_pid(pid_t pid)
+ 	int saved_errno = errno;
+ 
+ 	char *ctx = raw_secontext_full_pid(pid);
+-	char *type = get_type_from_context(ctx);
++	char *type = get_secontext_field(ctx, SECONTEXT_TYPE);
+ 	free(ctx);
+ 
+ 	errno = saved_errno;
+diff --git a/tests-mx32/secontext.h b/tests-mx32/secontext.h
+index 1d0251a..e5571d5 100644
+--- a/tests-mx32/secontext.h
++++ b/tests-mx32/secontext.h
+@@ -23,6 +23,15 @@ enum secontext_field {
+ 
+ #if defined TEST_SECONTEXT && defined HAVE_SELINUX_RUNTIME
+ 
++/**
++ * Parse a SELinux context string and return a specified field, duplicated
++ * in a separate string.  The caller is responsible for freeing the memory
++ * pointed by the returned value.
++ */
++char *get_secontext_field(const char *full_context, enum secontext_field field);
++
++char *get_secontext_field_file(const char *file, enum secontext_field field);
++
+ void update_secontext_field(const char *file, enum secontext_field field,
+ 			    const char *newvalue);
+ 
+@@ -48,6 +57,17 @@ void update_secontext_field(const char *file, enum secontext_field field,
+ 
+ #else
+ 
++static inline char *
++get_secontext_field(const char *ctx, enum secontext_field field)
++{
++	return NULL;
++}
++static inline char *
++get_secontext_field_file(const char *file, enum secontext_field field)
++{
++	return NULL;
++}
++
+ static inline void
+ update_secontext_field(const char *file, enum secontext_field field,
+ 		       const char *newvalue)
+-- 
+2.1.4
+
diff --git a/SOURCES/0172-tests-linkat-provide-fallback-values-for-secontext-f.patch b/SOURCES/0172-tests-linkat-provide-fallback-values-for-secontext-f.patch
new file mode 100644
index 0000000..066c93a
--- /dev/null
+++ b/SOURCES/0172-tests-linkat-provide-fallback-values-for-secontext-f.patch
@@ -0,0 +1,181 @@
+From 97e2742a7f1e6e113354911d04505ada3bfb5d70 Mon Sep 17 00:00:00 2001
+From: Eugene Syromyatnikov <evgsyr@gmail.com>
+Date: Tue, 18 Jan 2022 18:04:42 +0100
+Subject: [PATCH 172/174] tests/linkat: provide fallback values for secontext
+ fields changes
+
+* tests/linkat.c (mangle_secontext_field): New function.
+(main): Replace calls to update_secontext_field
+with mangle_secontext_field calls.
+---
+ tests/linkat.c | 23 ++++++++++++++++++++---
+ 1 file changed, 20 insertions(+), 3 deletions(-)
+
+diff --git a/tests/linkat.c b/tests/linkat.c
+index c3e2ee4..decb736 100644
+--- a/tests/linkat.c
++++ b/tests/linkat.c
+@@ -21,6 +21,20 @@
+ #include "secontext.h"
+ #include "xmalloc.h"
+ 
++static void
++mangle_secontext_field(const char *path, enum secontext_field field,
++		       const char *new_val, const char *fallback_val)
++{
++	char *orig = get_secontext_field_file(path, field);
++	if (!orig)
++		return;
++
++	update_secontext_field(path, field,
++			       strcmp(new_val, orig) ? new_val : fallback_val);
++
++	free(orig);
++}
++
+ int
+ main(void)
+ {
+@@ -93,7 +107,8 @@ main(void)
+ 
+ #ifdef PRINT_SECONTEXT_MISMATCH
+ 	errno = 0;
+-	update_secontext_field(sample_1, SECONTEXT_USER, "system_u");
++	mangle_secontext_field(sample_1, SECONTEXT_USER, "system_u",
++							 "unconfined_u");
+ 	sample_1_secontext = SECONTEXT_FILE(sample_1);
+ 
+ # ifdef PRINT_SECONTEXT_FULL
+@@ -115,7 +130,8 @@ main(void)
+ #endif
+ 
+ 	errno = 0;
+-	update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t");
++	mangle_secontext_field(sample_1, SECONTEXT_TYPE, "default_t",
++							 "unconfined_t");
+ 	sample_1_secontext = SECONTEXT_FILE(sample_1);
+ 	sample_2_secontext = sample_1_secontext;
+ 
+@@ -146,7 +162,8 @@ main(void)
+ 	char *cwd = get_fd_path(dfd_old);
+ 
+ 	errno = 0;
+-	update_secontext_field(".", SECONTEXT_TYPE, "default_t");
++	mangle_secontext_field(".", SECONTEXT_TYPE, "default_t",
++						    "unconfined_t");
+ 	char *dfd_old_secontext = SECONTEXT_FILE(".");
+ 
+ #ifdef PRINT_SECONTEXT_MISMATCH
+diff --git a/tests-m32/linkat.c b/tests-m32/linkat.c
+index c3e2ee4..decb736 100644
+--- a/tests-m32/linkat.c
++++ b/tests-m32/linkat.c
+@@ -21,6 +21,20 @@
+ #include "secontext.h"
+ #include "xmalloc.h"
+ 
++static void
++mangle_secontext_field(const char *path, enum secontext_field field,
++		       const char *new_val, const char *fallback_val)
++{
++	char *orig = get_secontext_field_file(path, field);
++	if (!orig)
++		return;
++
++	update_secontext_field(path, field,
++			       strcmp(new_val, orig) ? new_val : fallback_val);
++
++	free(orig);
++}
++
+ int
+ main(void)
+ {
+@@ -93,7 +107,8 @@ main(void)
+ 
+ #ifdef PRINT_SECONTEXT_MISMATCH
+ 	errno = 0;
+-	update_secontext_field(sample_1, SECONTEXT_USER, "system_u");
++	mangle_secontext_field(sample_1, SECONTEXT_USER, "system_u",
++							 "unconfined_u");
+ 	sample_1_secontext = SECONTEXT_FILE(sample_1);
+ 
+ # ifdef PRINT_SECONTEXT_FULL
+@@ -115,7 +130,8 @@ main(void)
+ #endif
+ 
+ 	errno = 0;
+-	update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t");
++	mangle_secontext_field(sample_1, SECONTEXT_TYPE, "default_t",
++							 "unconfined_t");
+ 	sample_1_secontext = SECONTEXT_FILE(sample_1);
+ 	sample_2_secontext = sample_1_secontext;
+ 
+@@ -146,7 +162,8 @@ main(void)
+ 	char *cwd = get_fd_path(dfd_old);
+ 
+ 	errno = 0;
+-	update_secontext_field(".", SECONTEXT_TYPE, "default_t");
++	mangle_secontext_field(".", SECONTEXT_TYPE, "default_t",
++						    "unconfined_t");
+ 	char *dfd_old_secontext = SECONTEXT_FILE(".");
+ 
+ #ifdef PRINT_SECONTEXT_MISMATCH
+diff --git a/tests-mx32/linkat.c b/tests-mx32/linkat.c
+index c3e2ee4..decb736 100644
+--- a/tests-mx32/linkat.c
++++ b/tests-mx32/linkat.c
+@@ -21,6 +21,20 @@
+ #include "secontext.h"
+ #include "xmalloc.h"
+ 
++static void
++mangle_secontext_field(const char *path, enum secontext_field field,
++		       const char *new_val, const char *fallback_val)
++{
++	char *orig = get_secontext_field_file(path, field);
++	if (!orig)
++		return;
++
++	update_secontext_field(path, field,
++			       strcmp(new_val, orig) ? new_val : fallback_val);
++
++	free(orig);
++}
++
+ int
+ main(void)
+ {
+@@ -93,7 +107,8 @@ main(void)
+ 
+ #ifdef PRINT_SECONTEXT_MISMATCH
+ 	errno = 0;
+-	update_secontext_field(sample_1, SECONTEXT_USER, "system_u");
++	mangle_secontext_field(sample_1, SECONTEXT_USER, "system_u",
++							 "unconfined_u");
+ 	sample_1_secontext = SECONTEXT_FILE(sample_1);
+ 
+ # ifdef PRINT_SECONTEXT_FULL
+@@ -115,7 +130,8 @@ main(void)
+ #endif
+ 
+ 	errno = 0;
+-	update_secontext_field(sample_1, SECONTEXT_TYPE, "default_t");
++	mangle_secontext_field(sample_1, SECONTEXT_TYPE, "default_t",
++							 "unconfined_t");
+ 	sample_1_secontext = SECONTEXT_FILE(sample_1);
+ 	sample_2_secontext = sample_1_secontext;
+ 
+@@ -146,7 +162,8 @@ main(void)
+ 	char *cwd = get_fd_path(dfd_old);
+ 
+ 	errno = 0;
+-	update_secontext_field(".", SECONTEXT_TYPE, "default_t");
++	mangle_secontext_field(".", SECONTEXT_TYPE, "default_t",
++						    "unconfined_t");
+ 	char *dfd_old_secontext = SECONTEXT_FILE(".");
+ 
+ #ifdef PRINT_SECONTEXT_MISMATCH
+-- 
+2.1.4
+
diff --git a/SOURCES/0173-tests-secontext-eliminate-separate-secontext_format-.patch b/SOURCES/0173-tests-secontext-eliminate-separate-secontext_format-.patch
new file mode 100644
index 0000000..c1eb4aa
--- /dev/null
+++ b/SOURCES/0173-tests-secontext-eliminate-separate-secontext_format-.patch
@@ -0,0 +1,63 @@
+From 6e8aa3749cb7e11e9a59db996f79f036bf7ef263 Mon Sep 17 00:00:00 2001
+From: Eugene Syromyatnikov <evgsyr@gmail.com>
+Date: Tue, 18 Jan 2022 18:05:19 +0100
+Subject: [PATCH 173/174] tests/secontext: eliminate separate secontext_format
+ declaration
+
+* tests/secontext.c (secontext_format): Remove declaration, supply
+the attributes to the definition.
+---
+ tests/secontext.c | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/tests/secontext.c b/tests/secontext.c
+index 52211ed..ba271c8 100644
+--- a/tests/secontext.c
++++ b/tests/secontext.c
+@@ -23,10 +23,7 @@
+ # define TEST_SECONTEXT
+ # include "secontext.h"
+ 
+-static char *
+-secontext_format(char *context, const char *fmt)
+-	ATTRIBUTE_FORMAT((printf, 2, 0)) ATTRIBUTE_MALLOC;
+-
++ATTRIBUTE_FORMAT((printf, 2, 0)) ATTRIBUTE_MALLOC
+ static char *
+ secontext_format(char *context, const char *fmt)
+ {
+diff --git a/tests-m32/secontext.c b/tests-m32/secontext.c
+index 52211ed..ba271c8 100644
+--- a/tests-m32/secontext.c
++++ b/tests-m32/secontext.c
+@@ -23,10 +23,7 @@
+ # define TEST_SECONTEXT
+ # include "secontext.h"
+ 
+-static char *
+-secontext_format(char *context, const char *fmt)
+-	ATTRIBUTE_FORMAT((printf, 2, 0)) ATTRIBUTE_MALLOC;
+-
++ATTRIBUTE_FORMAT((printf, 2, 0)) ATTRIBUTE_MALLOC
+ static char *
+ secontext_format(char *context, const char *fmt)
+ {
+diff --git a/tests-mx32/secontext.c b/tests-mx32/secontext.c
+index 52211ed..ba271c8 100644
+--- a/tests-mx32/secontext.c
++++ b/tests-mx32/secontext.c
+@@ -23,10 +23,7 @@
+ # define TEST_SECONTEXT
+ # include "secontext.h"
+ 
+-static char *
+-secontext_format(char *context, const char *fmt)
+-	ATTRIBUTE_FORMAT((printf, 2, 0)) ATTRIBUTE_MALLOC;
+-
++ATTRIBUTE_FORMAT((printf, 2, 0)) ATTRIBUTE_MALLOC
+ static char *
+ secontext_format(char *context, const char *fmt)
+ {
+-- 
+2.1.4
+
diff --git a/SOURCES/0174-tests-linkat-reset-context-to-the-expected-one-if-a-.patch b/SOURCES/0174-tests-linkat-reset-context-to-the-expected-one-if-a-.patch
new file mode 100644
index 0000000..9a34d01
--- /dev/null
+++ b/SOURCES/0174-tests-linkat-reset-context-to-the-expected-one-if-a-.patch
@@ -0,0 +1,190 @@
+From 78a81bcfb71ef3d9f6e8b1a32e123fbbc6112a60 Mon Sep 17 00:00:00 2001
+From: Eugene Syromyatnikov <evgsyr@gmail.com>
+Date: Tue, 18 Jan 2022 18:24:34 +0100
+Subject: [PATCH 174/174] tests/linkat: reset context to the expected one if a
+ mismatch has been detected
+
+* tests/secontext.h (reset_secontext_file): New declaration.
+* tests/secontext.c (reset_secontext_file): New function.
+* tests/linkat.c (main): Check that there is no initial mismatch
+in the sample_1 context, reset it otherwise.
+---
+ tests/linkat.c    | 3 +++
+ tests/secontext.c | 7 +++++++
+ tests/secontext.h | 7 +++++++
+ 3 files changed, 17 insertions(+)
+
+diff --git a/tests/linkat.c b/tests/linkat.c
+index decb736..781b85a 100644
+--- a/tests/linkat.c
++++ b/tests/linkat.c
+@@ -103,6 +103,9 @@ main(void)
+ 	if (close(fd_sample_2))
+ 		perror_msg_and_fail("close");
+ 
++	if (*sample_1_secontext && strstr(sample_1_secontext, "!!"))
++		reset_secontext_file(sample_1);
++
+ 	free(sample_1_secontext);
+ 
+ #ifdef PRINT_SECONTEXT_MISMATCH
+diff --git a/tests/secontext.c b/tests/secontext.c
+index ba271c8..94fadd4 100644
+--- a/tests/secontext.c
++++ b/tests/secontext.c
+@@ -235,6 +235,13 @@ secontext_short_pid(pid_t pid)
+ 	return FORMAT_SPACE_AFTER(raw_secontext_short_pid(pid));
+ }
+ 
++void reset_secontext_file(const char *file)
++{
++	char *proper_ctx = raw_expected_secontext_full_file(file);
++	(void) setfilecon(file, proper_ctx);
++	free(proper_ctx);
++}
++
+ void
+ update_secontext_field(const char *file, enum secontext_field field,
+ 		       const char *newvalue)
+diff --git a/tests/secontext.h b/tests/secontext.h
+index e5571d5..387263e 100644
+--- a/tests/secontext.h
++++ b/tests/secontext.h
+@@ -32,6 +32,8 @@ char *get_secontext_field(const char *full_context, enum secontext_field field);
+ 
+ char *get_secontext_field_file(const char *file, enum secontext_field field);
+ 
++void reset_secontext_file(const char *file);
++
+ void update_secontext_field(const char *file, enum secontext_field field,
+ 			    const char *newvalue);
+ 
+@@ -69,6 +71,11 @@ get_secontext_field_file(const char *file, enum secontext_field field)
+ }
+ 
+ static inline void
++reset_secontext_file(const char *file)
++{
++}
++
++static inline void
+ update_secontext_field(const char *file, enum secontext_field field,
+ 		       const char *newvalue)
+ {
+diff --git a/tests-m32/linkat.c b/tests-m32/linkat.c
+index decb736..781b85a 100644
+--- a/tests-m32/linkat.c
++++ b/tests-m32/linkat.c
+@@ -103,6 +103,9 @@ main(void)
+ 	if (close(fd_sample_2))
+ 		perror_msg_and_fail("close");
+ 
++	if (*sample_1_secontext && strstr(sample_1_secontext, "!!"))
++		reset_secontext_file(sample_1);
++
+ 	free(sample_1_secontext);
+ 
+ #ifdef PRINT_SECONTEXT_MISMATCH
+diff --git a/tests-m32/secontext.c b/tests-m32/secontext.c
+index ba271c8..94fadd4 100644
+--- a/tests-m32/secontext.c
++++ b/tests-m32/secontext.c
+@@ -235,6 +235,13 @@ secontext_short_pid(pid_t pid)
+ 	return FORMAT_SPACE_AFTER(raw_secontext_short_pid(pid));
+ }
+ 
++void reset_secontext_file(const char *file)
++{
++	char *proper_ctx = raw_expected_secontext_full_file(file);
++	(void) setfilecon(file, proper_ctx);
++	free(proper_ctx);
++}
++
+ void
+ update_secontext_field(const char *file, enum secontext_field field,
+ 		       const char *newvalue)
+diff --git a/tests-m32/secontext.h b/tests-m32/secontext.h
+index e5571d5..387263e 100644
+--- a/tests-m32/secontext.h
++++ b/tests-m32/secontext.h
+@@ -32,6 +32,8 @@ char *get_secontext_field(const char *full_context, enum secontext_field field);
+ 
+ char *get_secontext_field_file(const char *file, enum secontext_field field);
+ 
++void reset_secontext_file(const char *file);
++
+ void update_secontext_field(const char *file, enum secontext_field field,
+ 			    const char *newvalue);
+ 
+@@ -69,6 +71,11 @@ get_secontext_field_file(const char *file, enum secontext_field field)
+ }
+ 
+ static inline void
++reset_secontext_file(const char *file)
++{
++}
++
++static inline void
+ update_secontext_field(const char *file, enum secontext_field field,
+ 		       const char *newvalue)
+ {
+diff --git a/tests-mx32/linkat.c b/tests-mx32/linkat.c
+index decb736..781b85a 100644
+--- a/tests-mx32/linkat.c
++++ b/tests-mx32/linkat.c
+@@ -103,6 +103,9 @@ main(void)
+ 	if (close(fd_sample_2))
+ 		perror_msg_and_fail("close");
+ 
++	if (*sample_1_secontext && strstr(sample_1_secontext, "!!"))
++		reset_secontext_file(sample_1);
++
+ 	free(sample_1_secontext);
+ 
+ #ifdef PRINT_SECONTEXT_MISMATCH
+diff --git a/tests-mx32/secontext.c b/tests-mx32/secontext.c
+index ba271c8..94fadd4 100644
+--- a/tests-mx32/secontext.c
++++ b/tests-mx32/secontext.c
+@@ -235,6 +235,13 @@ secontext_short_pid(pid_t pid)
+ 	return FORMAT_SPACE_AFTER(raw_secontext_short_pid(pid));
+ }
+ 
++void reset_secontext_file(const char *file)
++{
++	char *proper_ctx = raw_expected_secontext_full_file(file);
++	(void) setfilecon(file, proper_ctx);
++	free(proper_ctx);
++}
++
+ void
+ update_secontext_field(const char *file, enum secontext_field field,
+ 		       const char *newvalue)
+diff --git a/tests-mx32/secontext.h b/tests-mx32/secontext.h
+index e5571d5..387263e 100644
+--- a/tests-mx32/secontext.h
++++ b/tests-mx32/secontext.h
+@@ -32,6 +32,8 @@ char *get_secontext_field(const char *full_context, enum secontext_field field);
+ 
+ char *get_secontext_field_file(const char *file, enum secontext_field field);
+ 
++void reset_secontext_file(const char *file);
++
+ void update_secontext_field(const char *file, enum secontext_field field,
+ 			    const char *newvalue);
+ 
+@@ -69,6 +71,11 @@ get_secontext_field_file(const char *file, enum secontext_field field)
+ }
+ 
+ static inline void
++reset_secontext_file(const char *file)
++{
++}
++
++static inline void
+ update_secontext_field(const char *file, enum secontext_field field,
+ 		       const char *newvalue)
+ {
+-- 
+2.1.4
+
diff --git a/SPECS/strace.spec b/SPECS/strace.spec
new file mode 100644
index 0000000..5f47339
--- /dev/null
+++ b/SPECS/strace.spec
@@ -0,0 +1,728 @@
+Summary: Tracks and displays system calls associated with a running process
+Name: strace
+Version: 5.13
+Release: 7%{?dist}
+# The test suite is GPLv2+, all the rest is LGPLv2.1+.
+License: LGPL-2.1+ and GPL-2.0+
+# Some distros require Group tag to be present,
+# some require Group tag to be absent,
+# some do not care about Group tag at all,
+# and we have to cater for all of them.
+%if 0%{?fedora} < 28 && 0%{?centos} < 8 && 0%{?rhel} < 8 && 0%{?suse_version} < 1500
+Group: Development%{?suse_version:/Tools}/Debuggers
+%endif
+URL: https://strace.io
+%if 0%{?fedora} >= 12 || 0%{?centos} >= 6 || 0%{?rhel} >= 6 || 0%{?suse_version} >= 1200
+Source: https://strace.io/files/%{version}/strace-%{version}.tar.xz
+BuildRequires: xz
+%else
+Source: strace-%{version}.tar.gz
+%endif
+BuildRequires: gcc gzip make
+
+# Install Bluetooth headers for AF_BLUETOOTH sockets decoding.
+%if 0%{?fedora} >= 18 || 0%{?centos} >= 6 || 0%{?rhel} >= 8 || 0%{?suse_version} >= 1200
+BuildRequires: pkgconfig(bluez)
+%endif
+
+# Install elfutils-devel or libdw-devel to enable strace -k option.
+# Install binutils-devel to enable symbol demangling.
+%if 0%{?fedora} >= 20 || 0%{?centos} >= 6 || 0%{?rhel} >= 6
+%define buildrequires_stacktrace BuildRequires: elfutils-devel binutils-devel
+%define buildrequires_selinux BuildRequires: libselinux-devel
+%endif
+%if 0%{?suse_version} >= 1100
+%define buildrequires_stacktrace BuildRequires: libdw-devel binutils-devel
+%define buildrequires_selinux BuildRequires: libselinux-devel
+%endif
+%{?buildrequires_stacktrace}
+%{?buildrequires_selinux}
+
+# OBS compatibility
+%{?!buildroot:BuildRoot: %_tmppath/buildroot-%name-%version-%release}
+%define maybe_use_defattr %{?suse_version:%%defattr(-,root,root)}
+
+# v5.13-10-g0211fdc "tests: change sockopt-timestamp test to use syscall(__NR_recvmsg)"
+Patch141: 0141-tests-change-sockopt-timestamp-test-to-use-syscall-_.patch
+# v5.13-55-g6b2191f "filter_qualify: free allocated data on the error path exit of parse_poke_token"
+Patch150: 0150-filter_qualify-free-allocated-data-on-the-error-path.patch
+# v5.13-56-g80dc60c "macros: expand BIT macros, add MASK macros; add *_SAFE macros"
+Patch151: 0151-macros-expand-BIT-macros-add-MASK-macros-add-_SAFE-m.patch
+# v5.13-58-g94ae5c2 "trie: use BIT* and MASK* macros"
+Patch152: 0152-trie-use-BIT-and-MASK-macros.patch
+# v5.13-65-g41b753e "tee: rewrite num_params access in tee_fetch_buf_data"
+Patch153: 0153-tee-rewrite-num_params-access-in-tee_fetch_buf_data.patch
+Patch154: 0154-tests-call-setsockopt-directly-in-sockopt-timestamp.patch
+
+# v5.15~1 "print_ifindex: fix IFNAME_QUOTED_SZ definition"
+Patch167: 0167-print_ifindex-fix-IFNAME_QUOTED_SZ-definition.patch
+
+# v5.15~18 "m4: fix st_SELINUX check"
+Patch168: 0168-m4-fix-st_SELINUX-check.patch
+# v5.16~31 "Implement displaying of expected context upon mismatch"
+Patch169: 0169-Implement-displaying-of-expected-context-upon-mismat.patch
+Patch170: 0170-tests-linkat-reset-errno-before-SELinux-context-mani.patch
+Patch171: 0171-tests-secontext-add-secontext-field-getters.patch
+Patch172: 0172-tests-linkat-provide-fallback-values-for-secontext-f.patch
+Patch173: 0173-tests-secontext-eliminate-separate-secontext_format-.patch
+Patch174: 0174-tests-linkat-reset-context-to-the-expected-one-if-a-.patch
+
+# Fallback definitions for make_build/make_install macros
+%{?!__make:       %global __make %_bindir/make}
+%{?!__install:    %global __install %_bindir/install}
+%{?!make_build:   %global make_build %__make %{?_smp_mflags}}
+%{?!make_install: %global make_install %__make install DESTDIR="%{?buildroot}" INSTALL="%__install -p"}
+
+%description
+The strace program intercepts and records the system calls called and
+received by a running process.  Strace can print a record of each
+system call, its arguments and its return value.  Strace is useful for
+diagnosing problems and debugging, as well as for instructional
+purposes.
+
+Install strace if you need a tool to track the system calls made and
+received by a process.
+
+%prep
+%setup -q
+
+%patch141 -p1
+%patch150 -p1
+%patch151 -p1
+%patch152 -p1
+%patch153 -p1
+%patch154 -p1
+
+%patch167 -p1
+
+%patch168 -p1
+%patch169 -p1
+%patch170 -p1
+%patch171 -p1
+%patch172 -p1
+%patch173 -p1
+%patch174 -p1
+
+echo -n %version-%release > .tarball-version
+echo -n 2021 > .year
+echo -n 2021-07-20 > doc/.strace.1.in.date
+
+%build
+echo 'BEGIN OF BUILD ENVIRONMENT INFORMATION'
+uname -a |head -1
+libc="$(ldd /bin/sh |sed -n 's|^[^/]*\(/[^ ]*/libc\.so[^ ]*\).*|\1|p' |head -1)"
+$libc |head -1
+file -L /bin/sh
+gcc --version |head -1
+ld --version |head -1
+kver="$(printf '%%s\n%%s\n' '#include <linux/version.h>' 'LINUX_VERSION_CODE' | gcc -E -P -)"
+printf 'kernel-headers %%s.%%s.%%s\n' $(($kver/65536)) $(($kver/256%%256)) $(($kver%%256))
+echo 'END OF BUILD ENVIRONMENT INFORMATION'
+
+CFLAGS="$RPM_OPT_FLAGS $LDFLAGS"
+# Removing explicit -m64 as it breaks mpers
+[ "x${CFLAGS#*-m64}" = "x${CFLAGS}" ] || CFLAGS=$(echo "$CFLAGS" | sed 's/-m64//g')
+export CFLAGS
+
+CPPFLAGS="-isystem %{_includedir} %{optflags}"
+# Removing explicit -m64 as it breaks mpers
+[ "x${CPPFLAGS#*-m64}" = "x${CPPFLAGS}" ] || CPPFLAGS=$(echo "$CPPFLAGS" | sed 's/-m64//g')
+export CPPFLAGS
+
+CFLAGS_FOR_BUILD="$RPM_OPT_FLAGS"; export CFLAGS_FOR_BUILD
+%configure --enable-mpers=check
+%make_build
+
+%install
+%make_install
+
+# some say uncompressed changelog files are too big
+for f in ChangeLog ChangeLog-CVS; do
+	gzip -9n < "$f" > "$f".gz &
+done
+wait
+
+%check
+%{buildroot}%{_bindir}/strace -V
+%make_build -k check VERBOSE=1
+echo 'BEGIN OF TEST SUITE INFORMATION'
+tail -n 99999 -- tests*/test-suite.log tests*/ksysent.gen.log
+find tests* -type f -name '*.log' -print0 |
+	xargs -r0 grep -H '^KERNEL BUG:' -- ||:
+echo 'END OF TEST SUITE INFORMATION'
+
+%files
+%maybe_use_defattr
+%doc CREDITS ChangeLog.gz ChangeLog-CVS.gz COPYING NEWS README
+%{_bindir}/strace
+%{_bindir}/strace-log-merge
+%{_mandir}/man1/*
+
+%changelog
+* Mon Feb 07 2022 Eugene Syromiatnikov <esyr@redhat.com> - 5.13-7
+- Update tests-m32 and tests-mx32 with --secontext=mismatch option support
+  changes (#2046264).
+
+* Wed Jan 19 2022 Eugene Syromiatnikov <esyr@redhat.com> - 5.13-6
+- Add --secontext=mismatch option support (#2038965).
+
+* Wed Jan 05 2022 Eugene Syromiatnikov <esyr@redhat.com> - 5.13-5
+- Fix incorrect ifname printing buffer size (#2028166).
+
+* Mon Aug 23 2021 Eugene Syromiatnikov <esyr@redhat.com> - 5.13-3
+- Address some issues reported by covscan (#1996691).
+- Replace 0141-tests-disable-sockopt-timestamp-on-new-glibc-with-__.patch
+  with upstream v5.13-10-g0211fdc "tests: change sockopt-timestamp test
+  to use syscall(__NR_recvmsg)"
+  and 0154-tests-call-setsockopt-directly-in-sockopt-timestamp.patch.
+- Undo forceful injection of -m64 into CFLAGS/CPPFLAGS to avoid breaking
+  mpers and its tests (#1996676).
+
+* Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 5.13-2
+- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
+  Related: rhbz#1991688
+
+* Tue Jul 20 2021 Eugene Syromiatnikov <esyr@redhat.com> - 5.13-1
+- Rebase to v5.13 (#1925722, #1925967, #1928305, #1973048).
+
+* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 5.10-2
+- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
+
+* Mon Dec 14 2020 Dmitry V. Levin <ldv@altlinux.org> - 5.10-1
+- v5.9 -> v5.10.
+
+* Thu Sep 24 2020 Dmitry V. Levin <ldv@altlinux.org> - 5.9-1
+- v5.8 -> v5.9.
+
+* Thu Aug 06 2020 Dmitry V. Levin <ldv@altlinux.org> - 5.8-1
+- v5.7 -> v5.8.
+
+* Mon Jun 01 2020 Dmitry V. Levin <ldv@altlinux.org> - 5.7-1
+- v5.6 -> v5.7.
+
+* Tue Apr 07 2020 Dmitry V. Levin <ldv@altlinux.org> - 5.6-1
+- v5.5 -> v5.6.
+
+* Thu Feb 06 2020 Dmitry V. Levin <ldv@altlinux.org> - 5.5-1
+- v5.4 -> v5.5.
+
+* Thu Nov 28 2019 Dmitry V. Levin <ldv@altlinux.org> - 5.4-1
+- v5.3 -> v5.4.
+
+* Wed Sep 25 2019 Dmitry V. Levin <ldv@altlinux.org> - 5.3-1
+- v5.2 -> v5.3.
+
+* Fri Jul 12 2019 Dmitry V. Levin <ldv@altlinux.org> - 5.2-1
+- v5.1 -> v5.2.
+
+* Wed May 22 2019 Dmitry V. Levin <ldv@altlinux.org> - 5.1-1
+- v5.0 -> v5.1.
+
+* Tue Mar 19 2019 Dmitry V. Levin <ldv@altlinux.org> - 5.0-1
+- v4.26 -> v5.0 (resolves: #478419, #526740, #851457, #1609318,
+  #1610774, #1662936, #1676045).
+
+* Wed Dec 26 2018 Dmitry V. Levin <ldv@altlinux.org> - 4.26-1
+- v4.25 -> v4.26.
+
+* Tue Oct 30 2018 Dmitry V. Levin <ldv@altlinux.org> - 4.25-1
+- v4.24 -> v4.25.
+
+* Tue Aug 14 2018 Dmitry V. Levin <ldv@altlinux.org> - 4.24-1
+- v4.23 -> v4.24.
+
+* Thu Jun 14 2018 Dmitry V. Levin <ldv@altlinux.org> - 4.23-1
+- v4.22 -> v4.23.
+- Enabled libdw backend for -k option (#1568647).
+
+* Thu Apr 05 2018 Dmitry V. Levin <ldv@altlinux.org> - 4.22-1
+- v4.21 -> v4.22.
+
+* Tue Feb 13 2018 Dmitry V. Levin <ldv@altlinux.org> - 4.21-1
+- v4.20 -> v4.21.
+
+* Mon Nov 13 2017 Dmitry V. Levin <ldv@altlinux.org> - 4.20-1
+- v4.19 -> v4.20.
+
+* Tue Sep 05 2017 Dmitry V. Levin <ldv@altlinux.org> - 4.19-1
+- v4.18 -> v4.19.
+
+* Wed Jul 05 2017 Dmitry V. Levin <ldv@altlinux.org> - 4.18-1
+- v4.17 -> v4.18.
+
+* Wed May 24 2017 Dmitry V. Levin <ldv@altlinux.org> - 4.17-1
+- v4.16 -> v4.17.
+
+* Tue Feb 14 2017 Dmitry V. Levin <ldv@altlinux.org> - 4.16-1
+- v4.15 -> v4.16.
+
+* Wed Dec 14 2016 Dmitry V. Levin <ldv@altlinux.org> - 4.15-1
+- v4.14-100-g622af42 -> v4.15.
+
+* Wed Nov 16 2016 Dmitry V. Levin <ldv@altlinux.org> - 4.14.0.100.622a-1
+- v4.14 -> v4.14-100-g622af42:
+  + implemented syscall fault injection.
+
+* Tue Oct 04 2016 Dmitry V. Levin <ldv@altlinux.org> - 4.14-1
+- v4.13 -> v4.14:
+  + added printing of the mode argument of open and openat syscalls
+    when O_TMPFILE flag is set (#1377846).
+
+* Tue Jul 26 2016 Dmitry V. Levin <ldv@altlinux.org> - 4.13-1
+- v4.12 -> v4.13.
+
+* Tue May 31 2016 Dmitry V. Levin <ldv@altlinux.org> - 4.12-1
+- v4.11-163-g972018f -> v4.12.
+
+* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 4.11.0.163.9720-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Fri Jan 15 2016 Dmitry V. Levin <ldv@altlinux.org> - 4.11.0.163.9720-1
+- New upstream snapshot v4.11-163-g972018f:
+  + fixed decoding of syscalls unknown to the kernel on s390/s390x (#1298294).
+
+* Wed Dec 23 2015 Dmitry V. Levin <ldv@altlinux.org> - 4.11-2
+- Enabled experimental -k option on x86_64 (#1170296).
+
+* Mon Dec 21 2015 Dmitry V. Levin <ldv@altlinux.org> - 4.11-1
+- New upstream release:
+  + print nanoseconds along with seconds in stat family syscalls (#1251176).
+
+* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.10-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Mon May 11 2015 Marcin Juszkiewicz <mjuszkiewicz@redhat.com> - 4.10-2
+- Backport set of upstream patches to get it buildable on AArch64
+
+* Fri Mar 06 2015 Dmitry V. Levin <ldv@altlinux.org> - 4.10-1
+- New upstream release:
+  + enhanced ioctl decoding (#902788).
+
+* Mon Nov 03 2014 Lubomir Rintel <lkundrak@v3.sk> - 4.9-3
+- Regenerate ioctl entries with proper kernel headers
+
+* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.9-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
+
+* Fri Aug 15 2014 Dmitry V. Levin <ldv@altlinux.org> - 4.9-1
+- New upstream release:
+  + fixed build when <sys/ptrace.h> and <linux/ptrace.h> conflict (#993384);
+  + updated CLOCK_* constants (#1088455);
+  + enabled ppc64le support (#1122323);
+  + fixed attach to a process on ppc64le (#1129569).
+
+* Fri Jul 25 2014 Dan HorĂ¡k <dan[at]danny.cz> - 4.8-5
+- update for ppc64
+
+* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.8-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Fri Dec  6 2013 Peter Robinson <pbrobinson@fedoraproject.org> 4.8-3
+- Fix FTBFS
+
+* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.8-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
+
+* Mon Jun 03 2013 Dmitry V. Levin <ldv@altlinux.org> - 4.8-1
+- New upstream release:
+  + fixed ERESTARTNOINTR leaking to userspace on ancient kernels (#659382);
+  + fixed decoding of *xattr syscalls (#885233);
+  + fixed handling of files with 64-bit inode numbers by 32-bit strace (#912790);
+  + added aarch64 support (#969858).
+
+* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.7-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
+* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.7-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Wed May 02 2012 Dmitry V. Levin <ldv@altlinux.org> 4.7-1
+- New upstream release.
+  + implemented proper handling of real SIGTRAPs (#162774).
+
+* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.6-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Mon Mar 14 2011 Dmitry V. Levin <ldv@altlinux.org> - 4.6-1
+- New upstream release.
+  + fixed a corner case in waitpid handling (#663547).
+
+* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.5.20-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Tue Apr 13 2010 Roland McGrath <roland@redhat.com> - 4.5.20-1
+- New upstream release, work mostly by Andreas Schwab and Dmitry V. Levin.
+  + fixed potential stack buffer overflow in select decoder (#556678);
+  + fixed FTBFS (#539044).
+
+* Wed Oct 21 2009 Roland McGrath <roland@redhat.com> - 4.5.19-1
+- New upstream release, work mostly by Dmitry V. Levin <ldv@altlinux.org>
+  + exit/kill strace with traced process exitcode/signal (#105371);
+  + fixed build on ARM EABI (#507576);
+  + fixed display of 32-bit argv array on 64-bit architectures (#519480);
+  + fixed display of 32-bit fcntl(F_SETLK) on 64-bit architectures (#471169);
+  + fixed several bugs in strings decoder, including potential heap
+    memory corruption (#470529, #478324, #511035).
+
+* Thu Aug 28 2008 Roland McGrath <roland@redhat.com> - 4.5.18-1
+- build fix for newer kernel headers (#457291)
+- fix CLONE_VFORK handling (#455078)
+- Support new Linux/PPC system call subpage_prot and PROT_SAO flag.
+- In sigaction system call, display sa_flags value along with SIG_DFL/SIG_IGN.
+
+* Mon Jul 21 2008 Roland McGrath <roland@redhat.com> - 4.5.17-1
+- handle O_CLOEXEC, MSG_CMSG_CLOEXEC (#365781)
+- fix biarch stat64 decoding (#222275)
+- fix spurious "..." in printing of environment strings (#358241)
+- improve prctl decoding (#364401)
+- fix hang wait on exited child with exited child (#354261)
+- fix biarch fork/vfork (-f) tracing (#447475)
+- fix biarch printing of negative argument kill (#430585)
+- fix biarch decoding of error return values (#447587)
+- fix -f tracing of CLONE_VFORK (#455078)
+- fix ia64 register clobberation in -f tracing (#453438)
+- print SO_NODEFER, SA_RESETHAND instead of SA_NOMASK, SA_ONESHOT (#455821)
+- fix futex argument decoding (#448628, #448629)
+
+* Fri Aug  3 2007 Roland McGrath <roland@redhat.com> - 4.5.16-1
+- fix multithread issues (#240962, #240961, #247907)
+- fix spurious SIGSTOP on early interrupt (#240986)
+- fix utime for biarch (#247185)
+- fix -u error message (#247170)
+- better futex syscall printing (##241467)
+- fix argv/envp printing with small -s settings, and for biarch
+- new syscalls: getcpu, eventfd, timerfd, signalfd, epoll_pwait,
+  move_pages, utimensat
+
+* Tue Jan 16 2007 Roland McGrath <roland@redhat.com> - 4.5.15-1
+- biarch fixes (#179740, #192193, #171626, #173050, #218433, #218043)
+- fix -ff -o behavior (#204950, #218435, #193808, #219423)
+- better quotactl printing (#118696)
+- *at, inotify*, pselect6, ppoll and unshare syscalls (#178633, #191275)
+- glibc-2.5 build fixes (#209856)
+- memory corruption fixes (#200621
+- fix race in child setup under -f (#180293)
+- show ipc key values in hex (#198179, #192182)
+- disallow -c with -ff (#187847)
+- Resolves: RHBZ #179740, RHBZ #192193, RHBZ #204950, RHBZ #218435
+- Resolves: RHBZ #193808, RHBZ #219423, RHBZ #171626, RHBZ #173050
+- Resolves: RHBZ #218433, RHBZ #218043, RHBZ #118696, RHBZ #178633
+- Resolves: RHBZ #191275, RHBZ #209856, RHBZ #200621, RHBZ #180293
+- Resolves: RHBZ #198179, RHBZ #198182, RHBZ #187847
+
+* Mon Nov 20 2006 Jakub Jelinek <jakub@redhat.com> - 4.5.14-4
+- Fix ia64 syscall decoding (#206768)
+- Fix build with glibc-2.4.90-33 and up on all arches but ia64
+- Fix build against 2.6.18+ headers
+
+* Tue Aug 22 2006 Roland McGrath <roland@redhat.com> - 4.5.14-3
+- Fix bogus decoding of syscalls >= 300 (#201462, #202620).
+
+* Fri Jul 14 2006 Jesse Keating <jkeating@redhat.com> - 4.5.14-2
+- rebuild
+
+* Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> - 4.5.14-1.2
+- bump again for long double bug on ppc{,64}
+
+* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 4.5.14-1.1
+- rebuilt for new gcc4.1 snapshot and glibc changes
+
+* Mon Jan 16 2006 Roland McGrath <roland@redhat.com> - 4.5.14-1
+- Fix biarch decoding of socket syscalls (#174354).
+- Fix biarch -e support (#173986).
+- Accept numeric syscalls in -e (#174798).
+- Fix ipc syscall decoding (#164755).
+- Improve msgrcv printing (#164757).
+- Man page updates (#165375).
+- Improve mount syscall printing (#165377).
+- Correct printing of restarting syscalls (#165469).
+
+* Wed Aug  3 2005 Roland McGrath <roland@redhat.com> - 4.5.13-1
+- Fix setsockopt decoding on 64-bit (#162449).
+- Fix typos in socket option name strings (#161578).
+- Display more IPV6 socket options by name (#162450).
+- Don't display inappropriate syscalls for -e trace=file (#159340).
+- New selector type -e trace=desc for file-descriptor using calls (#159400).
+- Fix 32-bit old_mmap syscall decoding on x86-64 (#162467, #164215).
+- Fix errors detaching from multithreaded process on interrupt (#161919).
+- Note 4.5.12 fix for crash handling bad signal numbers (#162739).
+
+* Wed Jun  8 2005 Roland McGrath <roland@redhat.com> - 4.5.12-1
+- Fix known syscall recognition for IA32 processes on x86-64 (#158934).
+- Fix bad output for ptrace on x86-64 (#159787).
+- Fix potential buffer overruns (#151570, #159196).
+- Make some diagnostics more consistent (#159308).
+- Update PowerPC system calls.
+- Better printing for Linux aio system calls.
+- Don't truncate statfs64 fields to 32 bits in output (#158243).
+- Cosmetic code cleanups (#159688).
+
+* Tue Mar 22 2005 Roland McGrath <roland@redhat.com> - 4.5.11-1
+- Build tweaks.
+- Note 4.5.10 select fix (#151570).
+
+* Mon Mar 14 2005 Roland McGrath <roland@redhat.com> - 4.5.10-1
+- Fix select handling on nonstandard fd_set sizes.
+- Don't print errors for null file name pointers.
+- Fix initial execve output with -i (#143365).
+
+* Fri Feb  4 2005 Roland McGrath <roland@redhat.com> - 4.5.9-2
+- update ia64 syscall list (#146245)
+- fix x86_64 syscall argument extraction for 32-bit processes (#146093)
+- fix -e signal=NAME parsing (#143362)
+- fix x86_64 exit_group syscall handling
+- improve socket ioctl printing (#138223)
+- code cleanups (#143369, #143370)
+- improve mount flags printing (#141932)
+- support symbolic printing of x86_64 arch_prctl parameters (#142667)
+- fix potential crash in getxattr printing
+
+* Tue Oct 19 2004 Roland McGrath <roland@redhat.com> - 4.5.8-1
+- fix multithreaded exit handling (#132150, #135254)
+- fix ioctl name matching (#129808)
+- print RTC_* ioctl structure contents (#58606)
+- grok epoll_* syscalls (#134463)
+- grok new RLIMIT_* values (#133594)
+- print struct cmsghdr contents for sendmsg (#131689)
+- fix clock_* and timer_* argument output (#131420)
+
+* Tue Aug 31 2004 Roland McGrath <roland@redhat.com> - 4.5.7-2
+- new upstream version, misc fixes and updates (#128091, #129166, #128391, #129378, #130965, #131177)
+
+* Mon Jul 12 2004 Roland McGrath <roland@redhat.com> 4.5.6-1
+- new upstream version, updates ioctl lists (#127398), fixes quotactl (#127393), more ioctl decoding (#126917)
+
+* Sun Jun 27 2004 Roland McGrath <roland@redhat.com> 4.5.5-1
+- new upstream version, fixes x86-64 biarch support (#126547)
+
+* Tue Jun 15 2004 Elliot Lee <sopwith@redhat.com> 4.5.4-2
+- rebuilt
+
+* Thu Jun  3 2004 Roland McGrath <roland@redhat.com> 4.5.4-0.FC1
+- rebuilt for FC1 update
+
+* Thu Jun  3 2004 Roland McGrath <roland@redhat.com> 4.5.4-1
+- new upstream version, more ioctls (#122257), minor fixes
+
+* Fri Apr 16 2004 Roland McGrath <roland@redhat.com> 4.5.3-1
+- new upstream version, mq_* calls (#120701), -p vs NPTL (#120462), more fixes (#118694, #120541, #118685)
+
+* Tue Mar 02 2004 Elliot Lee <sopwith@redhat.com> 4.5.2-1.1
+- rebuilt
+
+* Mon Mar  1 2004 Roland McGrath <roland@redhat.com> 4.5.2-1
+- new upstream version, sched_* calls (#116990), show core flag (#112117)
+
+* Fri Feb 13 2004 Elliot Lee <sopwith@redhat.com>
+- rebuilt
+
+* Thu Nov 13 2003 Roland McGrath <roland@redhat.com> 4.5.1-1
+- new upstream version, more fixes (#108012, #105366, #105359, #105358)
+
+* Tue Sep 30 2003 Roland McGrath <roland@redhat.com> 4.5-3
+- revert bogus s390 fix
+
+* Thu Sep 25 2003 Roland McGrath <roland@redhat.com> 4.5-1.2.1AS
+- rebuilt for 2.1AS erratum
+
+* Wed Sep 24 2003 Roland McGrath <roland@redhat.com> 4.5-2
+- rebuilt
+
+* Wed Sep 24 2003 Roland McGrath <roland@redhat.com> 4.5-1
+- new upstream version, more fixes (#101499, #104365)
+
+* Thu Jul 17 2003 Roland McGrath <roland@redhat.com> 4.4.99-2
+- rebuilt
+
+* Thu Jul 17 2003 Roland McGrath <roland@redhat.com> 4.4.99-1
+- new upstream version, groks more new system calls, PF_INET6 sockets
+
+* Tue Jun 10 2003 Roland McGrath <roland@redhat.com> 4.4.98-1
+- new upstream version, more fixes (#90754, #91085)
+
+* Wed Jun 04 2003 Elliot Lee <sopwith@redhat.com>
+- rebuilt
+
+* Sun Mar 30 2003 Roland McGrath <roland@redhat.com> 4.4.96-1
+- new upstream version, handles yet more 2.5 syscalls, x86_64 & ia64 fixes
+
+* Mon Feb 24 2003 Elliot Lee <sopwith@redhat.com> 4.4.95-2
+- rebuilt
+
+* Mon Feb 24 2003 Roland McGrath <roland@redhat.com> 4.4.95-1
+- new upstream version, fixed getresuid/getresgid (#84959)
+
+* Wed Feb 19 2003 Roland McGrath <roland@redhat.com> 4.4.94-1
+- new upstream version, new option -E to set environment variables (#82392)
+
+* Wed Jan 22 2003 Tim Powers <timp@redhat.com> 4.4.93-2
+- rebuilt
+
+* Tue Jan 21 2003 Roland McGrath <roland@redhat.com> 4.4.93-1
+- new upstream version, fixes ppc and s390 bugs, adds missing ptrace requests
+
+* Fri Jan 10 2003 Roland McGrath <roland@redhat.com> 4.4.91-1
+- new upstream version, fixes -f on x86-64
+
+* Fri Jan 10 2003 Roland McGrath <roland@redhat.com> 4.4.90-1
+- new upstream version, fixes all known bugs modulo ia64 and s390 issues
+
+* Fri Jan 03 2003 Florian La Roche <Florian.LaRoche@redhat.de> 4.4-11
+- add further s390 patch from IBM
+
+* Wed Nov 27 2002 Tim Powers <timp@redhat.com> 4.4-10
+- remove unpackaged files from the buildroot
+
+* Mon Oct 07 2002 Phil Knirsch <pknirsch@redhat.com> 4.4-9.1
+- Added latest s390(x) patch.
+
+* Fri Sep 06 2002 Karsten Hopp <karsten@redhat.de> 4.4-9
+- preliminary x86_64 support with an ugly patch to help
+  debugging. Needs cleanup!
+
+* Mon Sep  2 2002 Jakub Jelinek <jakub@redhat.com> 4.4-8
+- newer version of the clone fixing patch (Roland McGrath)
+- aio syscalls for i386/ia64/ppc (Ben LaHaise)
+
+* Wed Aug 28 2002 Jakub Jelinek <jakub@redhat.com> 4.4-7
+- fix strace -f (Roland McGrath, #68994)
+- handle ?et_thread_area, SA_RESTORER (Ulrich Drepper)
+
+* Fri Jun 21 2002 Jakub Jelinek <jakub@redhat.com> 4.4-6
+- handle futexes, *xattr, sendfile64, etc. (Ulrich Drepper)
+- handle modify_ldt (#66894)
+
+* Thu May 23 2002 Tim Powers <timp@redhat.com>
+- automated rebuild
+
+* Tue Apr 16 2002 Jakub Jelinek <jakub@redhat.com> 4.4-4
+- fix for the last patch by Jeff Law (#62591)
+
+* Mon Mar  4 2002 Preston Brown <pbrown@redhat.com> 4.4-3
+- integrate patch from Jeff Law to eliminate hang tracing threads
+
+* Sat Feb 23 2002 Florian La Roche <Florian.LaRoche@redhat.de>
+- minor update from debian tar-ball
+
+* Wed Jan 02 2002 Florian La Roche <Florian.LaRoche@redhat.de>
+- update to 4.4
+
+* Sun Jul 22 2001 Florian La Roche <Florian.LaRoche@redhat.de>
+- disable s390 patches, they are already included
+
+* Wed Jul 18 2001 Preston Brown <pbrown@redhat.com> 4.3-1
+- new upstream version.  Seems to have integrated most new syscalls
+- tracing threaded programs is now functional.
+
+* Mon Jun 11 2001 Than Ngo <than@redhat.com>
+- port s390 patches from IBM
+
+* Wed May 16 2001 Nalin Dahyabhai <nalin@redhat.com>
+- modify new syscall patch to allocate enough heap space in setgroups32()
+
+* Wed Feb 14 2001 Jakub Jelinek <jakub@redhat.com>
+- #include <time.h> in addition to <sys/time.h>
+
+* Fri Jan 26 2001 Karsten Hopp <karsten@redhat.com>
+- clean up conflicting patches. This happened only
+  when building on S390
+
+* Fri Jan 19 2001 Bill Nottingham <notting@redhat.com>
+- update to CVS, reintegrate ia64 support
+
+* Fri Dec  8 2000 Bernhard Rosenkraenzer <bero@redhat.com>
+- Get S/390 support into the normal package
+
+* Sat Nov 18 2000 Florian La Roche <Florian.LaRoche@redhat.de>
+- added S/390 patch from IBM, adapting it to not conflict with
+  IA64 patch
+
+* Sat Aug 19 2000 Jakub Jelinek <jakub@redhat.com>
+- doh, actually apply the 2.4 syscalls patch
+- make it compile with 2.4.0-test7-pre4+ headers, add
+  getdents64 and fcntl64
+
+* Thu Aug  3 2000 Jakub Jelinek <jakub@redhat.com>
+- add a bunch of new 2.4 syscalls (#14036)
+
+* Wed Jul 12 2000 Prospector <bugzilla@redhat.com>
+- automatic rebuild
+- excludearch ia64
+
+* Fri Jun  2 2000 Matt Wilson <msw@redhat.com>
+- use buildinstall for FHS
+
+* Wed May 24 2000 Jakub Jelinek <jakub@redhat.com>
+- make things compile on sparc
+- fix sigreturn on sparc
+
+* Fri Mar 31 2000 Bill Nottingham <notting@redhat.com>
+- fix stat64 misdef (#10485)
+
+* Tue Mar 21 2000 Michael K. Johnson <johnsonm@redhat.com>
+- added ia64 patch
+
+* Thu Feb 03 2000 Cristian Gafton <gafton@redhat.com>
+- man pages are compressed
+- version 4.2 (why are we keeping all these patches around?)
+
+* Sat Nov 27 1999 Jeff Johnson <jbj@redhat.com>
+- update to 4.1 (with sparc socketcall patch).
+
+* Fri Nov 12 1999 Jakub Jelinek <jakub@redhat.com>
+- fix socketcall on sparc.
+
+* Thu Sep 02 1999 Cristian Gafton <gafton@redhat.com>
+- fix KERN_SECURELVL compile problem
+
+* Tue Aug 31 1999 Cristian Gafton <gafton@redhat.com>
+- added alpha patch from HJLu to fix the osf_sigprocmask interpretation
+
+* Sat Jun 12 1999 Jeff Johnson <jbj@redhat.com>
+- update to 3.99.1.
+
+* Wed Jun  2 1999 Jeff Johnson <jbj@redhat.com>
+- add (the other :-) jj's sparc patch.
+
+* Wed May 26 1999 Jeff Johnson <jbj@redhat.com>
+- upgrade to 3.99 in order to
+-    add new 2.2.x open flags (#2955).
+-    add new 2.2.x syscalls (#2866).
+- strace 3.1 patches carried along for now.
+
+* Sun May 16 1999 Jeff Johnson <jbj@redhat.com>
+- don't rely on (broken!) rpm %%patch (#2735)
+
+* Tue Apr 06 1999 Preston Brown <pbrown@redhat.com>
+- strip binary
+
+* Sun Mar 21 1999 Cristian Gafton <gafton@redhat.com>
+- auto rebuild in the new build environment (release 16)
+
+* Tue Feb  9 1999 Jeff Johnson <jbj@redhat.com>
+- vfork est arrive!
+
+* Tue Feb  9 1999 Christopher Blizzard <blizzard@redhat.com>
+- Add patch to follow clone() syscalls, too.
+
+* Sun Jan 17 1999 Jeff Johnson <jbj@redhat.com>
+- patch to build alpha/sparc with glibc 2.1.
+
+* Thu Dec 03 1998 Cristian Gafton <gafton@redhat.com>
+- patch to build on ARM
+
+* Wed Sep 30 1998 Jeff Johnson <jbj@redhat.com>
+- fix typo (printf, not tprintf).
+
+* Sat Sep 19 1998 Jeff Johnson <jbj@redhat.com>
+- fix compile problem on sparc.
+
+* Tue Aug 18 1998 Cristian Gafton <gafton@redhat.com>
+- buildroot
+
+* Mon Jul 20 1998 Cristian Gafton <gafton@redhat.com>
+- added the umoven patch from James Youngman <jay@gnu.org>
+- fixed build problems on newer glibc releases
+
+* Mon Jun 08 1998 Prospector System <bugs@redhat.com>
+- translations modified for de, fr, tr