diff mbox series

[1/1] lapi/fsmount.h: Fix headers conflict

Message ID 20240105001745.1461744-1-pvorel@suse.cz
State Changes Requested
Headers show
Series [1/1] lapi/fsmount.h: Fix headers conflict | expand

Commit Message

Petr Vorel Jan. 5, 2024, 12:17 a.m. UTC
glibc doc [1] mentions conflict between <linux/mount.h> and
<sys/mount.h>. Because <linux/fs.h> includes <linux/mount.h> it's easy
to get <linux/mount.h> mounted indirectly.

Problem was fixed on glibc 2.37:
774058d729 ("linux: Fix sys/mount.h usage with kernel headers")
and it got backported to git tree for 2.36 and to some distros.
But it still fails for older glibc.

Therefore include <sys/mount.h> only if <linux/mount.h> not already
included.

[1] https://sourceware.org/glibc/wiki/Synchronizing_Headers

Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
Tested:
https://github.com/pevik/ltp/actions/runs/7416306243

vs. failures on Cyril's tst_fd iterator patchset which would be affected
by this
https://github.com/pevik/ltp/actions/runs/7415994730

Kind regards,
Petr

 include/lapi/fsmount.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Petr Vorel Jan. 5, 2024, 12:29 a.m. UTC | #1
Hi,

I'm sorry, this is broken, fixed v2 is sent.

Kind regards,
Petr
diff mbox series

Patch

diff --git a/include/lapi/fsmount.h b/include/lapi/fsmount.h
index 07eb42ffa..da3cdf3c2 100644
--- a/include/lapi/fsmount.h
+++ b/include/lapi/fsmount.h
@@ -1,6 +1,6 @@ 
 // SPDX-License-Identifier: GPL-2.0-or-later
 /*
- * Copyright (c) Linux Test Project, 2021-2022
+ * Copyright (c) Linux Test Project, 2021-2024
  * Copyright (c) 2020 Linaro Limited. All rights reserved.
  * Author: Viresh Kumar <viresh.kumar@linaro.org>
  */
@@ -11,12 +11,13 @@ 
 #include "config.h"
 #include <sys/syscall.h>
 #include <sys/types.h>
-#include <sys/mount.h>
 
 #ifndef HAVE_FSOPEN
 # ifdef HAVE_LINUX_MOUNT_H
 #  include <linux/mount.h>
 # endif
+#elif !defined(HAVE_LINUX_MOUNT_H)
+# include <sys/mount.h>
 #endif
 
 #include "lapi/fcntl.h"