| Avoid conflicts between sys/mount.h and linux/mount.h that are seen |
| with glibc 2.36 |
| |
| Source: https://github.com/archlinux/svntogit-packages/blob/packages/qemu/trunk/qemu-7.0.0-glibc-2.36.patch |
| |
| Upstream-Status: Pending |
| Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| --- a/linux-user/syscall.c |
| +++ b/linux-user/syscall.c |
| @@ -95,7 +95,25 @@ |
| #include <linux/soundcard.h> |
| #include <linux/kd.h> |
| #include <linux/mtio.h> |
| + |
| +#ifdef HAVE_SYS_MOUNT_FSCONFIG |
| +/* |
| + * glibc >= 2.36 linux/mount.h conflicts with sys/mount.h, |
| + * which in turn prevents use of linux/fs.h. So we have to |
| + * define the constants ourselves for now. |
| + */ |
| +#define FS_IOC_GETFLAGS _IOR('f', 1, long) |
| +#define FS_IOC_SETFLAGS _IOW('f', 2, long) |
| +#define FS_IOC_GETVERSION _IOR('v', 1, long) |
| +#define FS_IOC_SETVERSION _IOW('v', 2, long) |
| +#define FS_IOC_FIEMAP _IOWR('f', 11, struct fiemap) |
| +#define FS_IOC32_GETFLAGS _IOR('f', 1, int) |
| +#define FS_IOC32_SETFLAGS _IOW('f', 2, int) |
| +#define FS_IOC32_GETVERSION _IOR('v', 1, int) |
| +#define FS_IOC32_SETVERSION _IOW('v', 2, int) |
| +#else |
| #include <linux/fs.h> |
| +#endif |
| #include <linux/fd.h> |
| #if defined(CONFIG_FIEMAP) |
| #include <linux/fiemap.h> |
| --- a/meson.build |
| +++ b/meson.build |
| @@ -1686,6 +1686,8 @@ config_host_data.set('HAVE_OPTRESET', |
| cc.has_header_symbol('getopt.h', 'optreset')) |
| config_host_data.set('HAVE_IPPROTO_MPTCP', |
| cc.has_header_symbol('netinet/in.h', 'IPPROTO_MPTCP')) |
| +config_host_data.set('HAVE_SYS_MOUNT_FSCONFIG', |
| + cc.has_header_symbol('sys/mount.h', 'FSCONFIG_SET_FLAG')) |
| |
| # has_member |
| config_host_data.set('HAVE_SIGEV_NOTIFY_THREAD_ID', |