kumquat-buildroot/package/ltp-testsuite/0005-fanotify-Rework-checks-for-fallback-definitions.patch
Petr Vorel 3ab1810b65 package/ltp-testsuite: proper fix for missing __kernel_fsid_t
Backported 4 fixes from upstream (2 of them require calling autoreconf).

Fixes: http://autobuild.buildroot.net/results/7a29e3b767e3d23dd64c130daa735ca6c062baf8

Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
[yann.morin.1998@free.fr: add upstream patchwork URL for patch 7]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2019-11-16 10:39:48 +01:00

92 lines
2.9 KiB
Diff

From bf02784428c1e61e8b227c0e565992bfae36d301 Mon Sep 17 00:00:00 2001
From: Petr Vorel <petr.vorel@gmail.com>
Date: Tue, 12 Nov 2019 23:18:32 +0100
Subject: [PATCH 2/3] fanotify: Rework checks for fallback definitions
Add autoconf checks for struct fanotify_event_info_fid
and struct fanotify_event_info_header.
Instead of detecting via FAN_REPORT_FID or HAVE_NAME_TO_HANDLE_AT.
Acked-by: Cyril Hrubis <chrubis@suse.cz>
Acked-by: Jan Stancek <jstancek@redhat.com>
Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
[Upstream status: bf02784428c1e61e8b227c0e565992bfae36d301]
---
configure.ac | 1 +
m4/ltp-fanotify.m4 | 7 +++++++
testcases/kernel/syscalls/fanotify/fanotify.h | 14 ++++++++------
3 files changed, 16 insertions(+), 6 deletions(-)
create mode 100644 m4/ltp-fanotify.m4
diff --git a/configure.ac b/configure.ac
index 3785dff63..b762e83c2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -213,6 +213,7 @@ LTP_CHECK_CAPABILITY_SUPPORT
LTP_CHECK_CC_WARN_OLDSTYLE
LTP_CHECK_CLONE_SUPPORTS_7_ARGS
LTP_CHECK_CRYPTO
+LTP_CHECK_FANOTIFY
LTP_CHECK_FIDEDUPE
LTP_CHECK_FORTIFY_SOURCE
LTP_CHECK_FTS_H
diff --git a/m4/ltp-fanotify.m4 b/m4/ltp-fanotify.m4
new file mode 100644
index 000000000..e7b77d8a4
--- /dev/null
+++ b/m4/ltp-fanotify.m4
@@ -0,0 +1,7 @@
+dnl SPDX-License-Identifier: GPL-2.0-or-later
+dnl Copyright (c) 2019 Petr Vorel <petr.vorel@gmail.com>
+
+AC_DEFUN([LTP_CHECK_FANOTIFY],[
+AC_CHECK_TYPES([struct fanotify_event_info_header],,,[#include <sys/fanotify.h>])
+AC_CHECK_TYPES([struct fanotify_event_info_fid],,,[#include <sys/fanotify.h>])
+])
diff --git a/testcases/kernel/syscalls/fanotify/fanotify.h b/testcases/kernel/syscalls/fanotify/fanotify.h
index 573ed5f59..9d2fded13 100644
--- a/testcases/kernel/syscalls/fanotify/fanotify.h
+++ b/testcases/kernel/syscalls/fanotify/fanotify.h
@@ -101,6 +101,10 @@ static long fanotify_mark(int fd, unsigned int flags, uint64_t mask,
#define FAN_OPEN_EXEC_PERM 0x00040000
#endif
+#ifndef FAN_REPORT_FID
+#define FAN_REPORT_FID 0x00000200
+#endif
+
/*
* FAN_ALL_PERM_EVENTS has been deprecated, so any new permission events
* are not to be added to it. To cover the instance where a new permission
@@ -123,23 +127,21 @@ typedef struct {
#define __kernel_fsid_t lapi_fsid_t
#endif /* __kernel_fsid_t */
-#ifndef FAN_REPORT_FID
-#define FAN_REPORT_FID 0x00000200
-
+#ifndef HAVE_STRUCT_FANOTIFY_EVENT_INFO_HEADER
struct fanotify_event_info_header {
uint8_t info_type;
uint8_t pad;
uint16_t len;
};
+#endif /* HAVE_STRUCT_FANOTIFY_EVENT_INFO_HEADER */
-#ifdef HAVE_NAME_TO_HANDLE_AT
+#ifndef HAVE_STRUCT_FANOTIFY_EVENT_INFO_FID
struct fanotify_event_info_fid {
struct fanotify_event_info_header hdr;
__kernel_fsid_t fsid;
unsigned char handle[0];
};
-#endif /* HAVE_NAME_TO_HANDLE_AT */
-#endif /* ! FAN_REPORT_FID */
+#endif /* HAVE_STRUCT_FANOTIFY_EVENT_INFO_FID */
#ifdef HAVE_NAME_TO_HANDLE_AT
/*
--
2.24.0